@itwin/map-layers 5.4.4 → 5.6.0

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 (304) hide show
  1. package/CHANGELOG.md +18 -2
  2. package/README.md +7 -7
  3. package/lib/cjs/BrowserStorage.d.ts.map +1 -1
  4. package/lib/cjs/BrowserStorage.js +23 -13
  5. package/lib/cjs/BrowserStorage.js.map +1 -1
  6. package/lib/cjs/CustomParamUtils.d.ts +1 -1
  7. package/lib/cjs/CustomParamUtils.d.ts.map +1 -1
  8. package/lib/cjs/CustomParamUtils.js +6 -3
  9. package/lib/cjs/CustomParamUtils.js.map +1 -1
  10. package/lib/cjs/CustomParamsMappingStorage.d.ts +1 -1
  11. package/lib/cjs/CustomParamsMappingStorage.d.ts.map +1 -1
  12. package/lib/cjs/CustomParamsMappingStorage.js +3 -3
  13. package/lib/cjs/CustomParamsMappingStorage.js.map +1 -1
  14. package/lib/cjs/CustomParamsStorage.d.ts +1 -1
  15. package/lib/cjs/CustomParamsStorage.d.ts.map +1 -1
  16. package/lib/cjs/CustomParamsStorage.js +3 -3
  17. package/lib/cjs/CustomParamsStorage.js.map +1 -1
  18. package/lib/cjs/MapLayerPreferences.d.ts +2 -1
  19. package/lib/cjs/MapLayerPreferences.d.ts.map +1 -1
  20. package/lib/cjs/MapLayerPreferences.js +50 -25
  21. package/lib/cjs/MapLayerPreferences.js.map +1 -1
  22. package/lib/cjs/MapLayersActionIds.d.ts +5 -0
  23. package/lib/cjs/MapLayersActionIds.d.ts.map +1 -0
  24. package/lib/cjs/MapLayersActionIds.js +10 -0
  25. package/lib/cjs/MapLayersActionIds.js.map +1 -0
  26. package/lib/cjs/MapLayersPrefBrowserStorage.d.ts.map +1 -1
  27. package/lib/cjs/MapLayersPrefBrowserStorage.js +4 -5
  28. package/lib/cjs/MapLayersPrefBrowserStorage.js.map +1 -1
  29. package/lib/cjs/PreferencesBrowserStorage.d.ts +17 -17
  30. package/lib/cjs/PreferencesBrowserStorage.d.ts.map +1 -1
  31. package/lib/cjs/PreferencesBrowserStorage.js +14 -14
  32. package/lib/cjs/PreferencesBrowserStorage.js.map +1 -1
  33. package/lib/cjs/map-layers.d.ts +1 -0
  34. package/lib/cjs/map-layers.d.ts.map +1 -1
  35. package/lib/cjs/map-layers.js +4 -3
  36. package/lib/cjs/map-layers.js.map +1 -1
  37. package/lib/cjs/mapLayers.d.ts +2 -2
  38. package/lib/cjs/mapLayers.d.ts.map +1 -1
  39. package/lib/cjs/mapLayers.js.map +1 -1
  40. package/lib/cjs/public/locales/en/mapLayers.json +179 -184
  41. package/lib/cjs/ui/FeatureInfoUiItemsProvider.d.ts +3 -4
  42. package/lib/cjs/ui/FeatureInfoUiItemsProvider.d.ts.map +1 -1
  43. package/lib/cjs/ui/FeatureInfoUiItemsProvider.js +48 -18
  44. package/lib/cjs/ui/FeatureInfoUiItemsProvider.js.map +1 -1
  45. package/lib/cjs/ui/Interfaces.d.ts +3 -3
  46. package/lib/cjs/ui/Interfaces.d.ts.map +1 -1
  47. package/lib/cjs/ui/Interfaces.js.map +1 -1
  48. package/lib/cjs/ui/MapLayersUiItemsProvider.d.ts +3 -2
  49. package/lib/cjs/ui/MapLayersUiItemsProvider.d.ts.map +1 -1
  50. package/lib/cjs/ui/MapLayersUiItemsProvider.js +2 -6
  51. package/lib/cjs/ui/MapLayersUiItemsProvider.js.map +1 -1
  52. package/lib/cjs/ui/widget/AttachLayerPopupButton.d.ts.map +1 -1
  53. package/lib/cjs/ui/widget/AttachLayerPopupButton.js +81 -46
  54. package/lib/cjs/ui/widget/AttachLayerPopupButton.js.map +1 -1
  55. package/lib/cjs/ui/widget/BasemapPanel.d.ts.map +1 -1
  56. package/lib/cjs/ui/widget/BasemapPanel.js +44 -25
  57. package/lib/cjs/ui/widget/BasemapPanel.js.map +1 -1
  58. package/lib/cjs/ui/widget/BasemapPanel.scss +2 -4
  59. package/lib/cjs/ui/widget/ConfirmMessageDialog.d.ts +1 -1
  60. package/lib/cjs/ui/widget/ConfirmMessageDialog.d.ts.map +1 -1
  61. package/lib/cjs/ui/widget/ConfirmMessageDialog.js +31 -8
  62. package/lib/cjs/ui/widget/ConfirmMessageDialog.js.map +1 -1
  63. package/lib/cjs/ui/widget/CustomParamEditDialog.d.ts +1 -1
  64. package/lib/cjs/ui/widget/CustomParamEditDialog.d.ts.map +1 -1
  65. package/lib/cjs/ui/widget/CustomParamEditDialog.js +34 -20
  66. package/lib/cjs/ui/widget/CustomParamEditDialog.js.map +1 -1
  67. package/lib/cjs/ui/widget/CustomParamEditDialog.scss +1 -2
  68. package/lib/cjs/ui/widget/CustomParamsSettings.d.ts.map +1 -1
  69. package/lib/cjs/ui/widget/CustomParamsSettings.js +42 -27
  70. package/lib/cjs/ui/widget/CustomParamsSettings.js.map +1 -1
  71. package/lib/cjs/ui/widget/CustomParamsSettings.scss +7 -9
  72. package/lib/cjs/ui/widget/FeatureInfoDataProvider.d.ts +3 -2
  73. package/lib/cjs/ui/widget/FeatureInfoDataProvider.d.ts.map +1 -1
  74. package/lib/cjs/ui/widget/FeatureInfoDataProvider.js +4 -2
  75. package/lib/cjs/ui/widget/FeatureInfoDataProvider.js.map +1 -1
  76. package/lib/cjs/ui/widget/FeatureInfoWidget.d.ts +1 -1
  77. package/lib/cjs/ui/widget/FeatureInfoWidget.d.ts.map +1 -1
  78. package/lib/cjs/ui/widget/FeatureInfoWidget.js +34 -15
  79. package/lib/cjs/ui/widget/FeatureInfoWidget.js.map +1 -1
  80. package/lib/cjs/ui/widget/MapLayerActionButtons.d.ts +1 -1
  81. package/lib/cjs/ui/widget/MapLayerActionButtons.d.ts.map +1 -1
  82. package/lib/cjs/ui/widget/MapLayerActionButtons.js +30 -17
  83. package/lib/cjs/ui/widget/MapLayerActionButtons.js.map +1 -1
  84. package/lib/cjs/ui/widget/MapLayerDroppable.d.ts +2 -2
  85. package/lib/cjs/ui/widget/MapLayerDroppable.d.ts.map +1 -1
  86. package/lib/cjs/ui/widget/MapLayerDroppable.js +64 -50
  87. package/lib/cjs/ui/widget/MapLayerDroppable.js.map +1 -1
  88. package/lib/cjs/ui/widget/MapLayerManager.d.ts +2 -2
  89. package/lib/cjs/ui/widget/MapLayerManager.d.ts.map +1 -1
  90. package/lib/cjs/ui/widget/MapLayerManager.js +158 -84
  91. package/lib/cjs/ui/widget/MapLayerManager.js.map +1 -1
  92. package/lib/cjs/ui/widget/MapLayerManager.scss +3 -6
  93. package/lib/cjs/ui/widget/MapLayerSettingsMenu.d.ts +2 -2
  94. package/lib/cjs/ui/widget/MapLayerSettingsMenu.d.ts.map +1 -1
  95. package/lib/cjs/ui/widget/MapLayerSettingsMenu.js +33 -13
  96. package/lib/cjs/ui/widget/MapLayerSettingsMenu.js.map +1 -1
  97. package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.d.ts.map +1 -1
  98. package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.js +36 -14
  99. package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.js.map +1 -1
  100. package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.scss +5 -5
  101. package/lib/cjs/ui/widget/MapLayersWidget.d.ts +1 -1
  102. package/lib/cjs/ui/widget/MapLayersWidget.d.ts.map +1 -1
  103. package/lib/cjs/ui/widget/MapLayersWidget.js +34 -11
  104. package/lib/cjs/ui/widget/MapLayersWidget.js.map +1 -1
  105. package/lib/cjs/ui/widget/MapManagerMapLayersHeader.d.ts.map +1 -1
  106. package/lib/cjs/ui/widget/MapManagerMapLayersHeader.js +5 -8
  107. package/lib/cjs/ui/widget/MapManagerMapLayersHeader.js.map +1 -1
  108. package/lib/cjs/ui/widget/MapManagerSettings.d.ts.map +1 -1
  109. package/lib/cjs/ui/widget/MapManagerSettings.js +55 -56
  110. package/lib/cjs/ui/widget/MapManagerSettings.js.map +1 -1
  111. package/lib/cjs/ui/widget/MapManagerSettings.scss +1 -1
  112. package/lib/cjs/ui/widget/MapSelectFeaturesDialog.d.ts +2 -2
  113. package/lib/cjs/ui/widget/MapSelectFeaturesDialog.d.ts.map +1 -1
  114. package/lib/cjs/ui/widget/MapSelectFeaturesDialog.js +33 -18
  115. package/lib/cjs/ui/widget/MapSelectFeaturesDialog.js.map +1 -1
  116. package/lib/cjs/ui/widget/MapSelectFeaturesDialog.scss +1 -3
  117. package/lib/cjs/ui/widget/MapUrlDialog.d.ts +4 -3
  118. package/lib/cjs/ui/widget/MapUrlDialog.d.ts.map +1 -1
  119. package/lib/cjs/ui/widget/MapUrlDialog.js +104 -81
  120. package/lib/cjs/ui/widget/MapUrlDialog.js.map +1 -1
  121. package/lib/cjs/ui/widget/MapUrlDialog.scss +6 -7
  122. package/lib/cjs/ui/widget/SelectApiKey.d.ts.map +1 -1
  123. package/lib/cjs/ui/widget/SelectApiKey.js +38 -10
  124. package/lib/cjs/ui/widget/SelectApiKey.js.map +1 -1
  125. package/lib/cjs/ui/widget/SelectCustomParam.d.ts.map +1 -1
  126. package/lib/cjs/ui/widget/SelectCustomParam.js +40 -11
  127. package/lib/cjs/ui/widget/SelectCustomParam.js.map +1 -1
  128. package/lib/cjs/ui/widget/SelectMapFormat.d.ts +3 -3
  129. package/lib/cjs/ui/widget/SelectMapFormat.d.ts.map +1 -1
  130. package/lib/cjs/ui/widget/SelectMapFormat.js +36 -16
  131. package/lib/cjs/ui/widget/SelectMapFormat.js.map +1 -1
  132. package/lib/cjs/ui/widget/SubLayersDataProvider.d.ts +2 -2
  133. package/lib/cjs/ui/widget/SubLayersDataProvider.d.ts.map +1 -1
  134. package/lib/cjs/ui/widget/SubLayersDataProvider.js +13 -9
  135. package/lib/cjs/ui/widget/SubLayersDataProvider.js.map +1 -1
  136. package/lib/cjs/ui/widget/SubLayersPopupButton.d.ts +1 -1
  137. package/lib/cjs/ui/widget/SubLayersPopupButton.d.ts.map +1 -1
  138. package/lib/cjs/ui/widget/SubLayersPopupButton.js +30 -12
  139. package/lib/cjs/ui/widget/SubLayersPopupButton.js.map +1 -1
  140. package/lib/cjs/ui/widget/SubLayersTree.d.ts +2 -2
  141. package/lib/cjs/ui/widget/SubLayersTree.d.ts.map +1 -1
  142. package/lib/cjs/ui/widget/SubLayersTree.js +83 -45
  143. package/lib/cjs/ui/widget/SubLayersTree.js.map +1 -1
  144. package/lib/cjs/ui/widget/SubLayersTree.scss +4 -7
  145. package/lib/cjs/ui/widget/TransparencyPopupButton.d.ts.map +1 -1
  146. package/lib/cjs/ui/widget/TransparencyPopupButton.js +33 -16
  147. package/lib/cjs/ui/widget/TransparencyPopupButton.js.map +1 -1
  148. package/lib/cjs/ui/widget/TransparencyPopupButton.scss +1 -2
  149. package/lib/cjs/ui/widget/UserPreferencesStorageOptions.d.ts +1 -1
  150. package/lib/cjs/ui/widget/UserPreferencesStorageOptions.d.ts.map +1 -1
  151. package/lib/cjs/ui/widget/UserPreferencesStorageOptions.js +2 -8
  152. package/lib/cjs/ui/widget/UserPreferencesStorageOptions.js.map +1 -1
  153. package/lib/esm/BrowserStorage.d.ts.map +1 -1
  154. package/lib/esm/BrowserStorage.js +23 -13
  155. package/lib/esm/BrowserStorage.js.map +1 -1
  156. package/lib/esm/CustomParamUtils.d.ts +1 -1
  157. package/lib/esm/CustomParamUtils.d.ts.map +1 -1
  158. package/lib/esm/CustomParamUtils.js +6 -3
  159. package/lib/esm/CustomParamUtils.js.map +1 -1
  160. package/lib/esm/CustomParamsMappingStorage.d.ts +1 -1
  161. package/lib/esm/CustomParamsMappingStorage.d.ts.map +1 -1
  162. package/lib/esm/CustomParamsMappingStorage.js +3 -3
  163. package/lib/esm/CustomParamsMappingStorage.js.map +1 -1
  164. package/lib/esm/CustomParamsStorage.d.ts +1 -1
  165. package/lib/esm/CustomParamsStorage.d.ts.map +1 -1
  166. package/lib/esm/CustomParamsStorage.js +3 -3
  167. package/lib/esm/CustomParamsStorage.js.map +1 -1
  168. package/lib/esm/MapLayerPreferences.d.ts +2 -1
  169. package/lib/esm/MapLayerPreferences.d.ts.map +1 -1
  170. package/lib/esm/MapLayerPreferences.js +50 -25
  171. package/lib/esm/MapLayerPreferences.js.map +1 -1
  172. package/lib/esm/MapLayersActionIds.d.ts +5 -0
  173. package/lib/esm/MapLayersActionIds.d.ts.map +1 -0
  174. package/lib/esm/MapLayersActionIds.js +7 -0
  175. package/lib/esm/MapLayersActionIds.js.map +1 -0
  176. package/lib/esm/MapLayersPrefBrowserStorage.d.ts.map +1 -1
  177. package/lib/esm/MapLayersPrefBrowserStorage.js +4 -5
  178. package/lib/esm/MapLayersPrefBrowserStorage.js.map +1 -1
  179. package/lib/esm/PreferencesBrowserStorage.d.ts +17 -17
  180. package/lib/esm/PreferencesBrowserStorage.d.ts.map +1 -1
  181. package/lib/esm/PreferencesBrowserStorage.js +14 -14
  182. package/lib/esm/PreferencesBrowserStorage.js.map +1 -1
  183. package/lib/esm/map-layers.d.ts +1 -0
  184. package/lib/esm/map-layers.d.ts.map +1 -1
  185. package/lib/esm/map-layers.js +4 -3
  186. package/lib/esm/map-layers.js.map +1 -1
  187. package/lib/esm/mapLayers.d.ts +2 -2
  188. package/lib/esm/mapLayers.d.ts.map +1 -1
  189. package/lib/esm/mapLayers.js.map +1 -1
  190. package/lib/esm/public/locales/en/mapLayers.json +179 -184
  191. package/lib/esm/ui/FeatureInfoUiItemsProvider.d.ts +3 -4
  192. package/lib/esm/ui/FeatureInfoUiItemsProvider.d.ts.map +1 -1
  193. package/lib/esm/ui/FeatureInfoUiItemsProvider.js +48 -18
  194. package/lib/esm/ui/FeatureInfoUiItemsProvider.js.map +1 -1
  195. package/lib/esm/ui/Interfaces.d.ts +3 -3
  196. package/lib/esm/ui/Interfaces.d.ts.map +1 -1
  197. package/lib/esm/ui/Interfaces.js.map +1 -1
  198. package/lib/esm/ui/MapLayersUiItemsProvider.d.ts +3 -2
  199. package/lib/esm/ui/MapLayersUiItemsProvider.d.ts.map +1 -1
  200. package/lib/esm/ui/MapLayersUiItemsProvider.js +2 -6
  201. package/lib/esm/ui/MapLayersUiItemsProvider.js.map +1 -1
  202. package/lib/esm/ui/widget/AttachLayerPopupButton.d.ts.map +1 -1
  203. package/lib/esm/ui/widget/AttachLayerPopupButton.js +57 -45
  204. package/lib/esm/ui/widget/AttachLayerPopupButton.js.map +1 -1
  205. package/lib/esm/ui/widget/BasemapPanel.d.ts.map +1 -1
  206. package/lib/esm/ui/widget/BasemapPanel.js +19 -23
  207. package/lib/esm/ui/widget/BasemapPanel.js.map +1 -1
  208. package/lib/esm/ui/widget/BasemapPanel.scss +2 -4
  209. package/lib/esm/ui/widget/ConfirmMessageDialog.d.ts +1 -1
  210. package/lib/esm/ui/widget/ConfirmMessageDialog.d.ts.map +1 -1
  211. package/lib/esm/ui/widget/ConfirmMessageDialog.js +5 -5
  212. package/lib/esm/ui/widget/ConfirmMessageDialog.js.map +1 -1
  213. package/lib/esm/ui/widget/CustomParamEditDialog.d.ts +1 -1
  214. package/lib/esm/ui/widget/CustomParamEditDialog.d.ts.map +1 -1
  215. package/lib/esm/ui/widget/CustomParamEditDialog.js +9 -18
  216. package/lib/esm/ui/widget/CustomParamEditDialog.js.map +1 -1
  217. package/lib/esm/ui/widget/CustomParamEditDialog.scss +1 -2
  218. package/lib/esm/ui/widget/CustomParamsSettings.d.ts.map +1 -1
  219. package/lib/esm/ui/widget/CustomParamsSettings.js +17 -25
  220. package/lib/esm/ui/widget/CustomParamsSettings.js.map +1 -1
  221. package/lib/esm/ui/widget/CustomParamsSettings.scss +7 -9
  222. package/lib/esm/ui/widget/FeatureInfoDataProvider.d.ts +3 -2
  223. package/lib/esm/ui/widget/FeatureInfoDataProvider.d.ts.map +1 -1
  224. package/lib/esm/ui/widget/FeatureInfoDataProvider.js +4 -2
  225. package/lib/esm/ui/widget/FeatureInfoDataProvider.js.map +1 -1
  226. package/lib/esm/ui/widget/FeatureInfoWidget.d.ts +1 -1
  227. package/lib/esm/ui/widget/FeatureInfoWidget.d.ts.map +1 -1
  228. package/lib/esm/ui/widget/FeatureInfoWidget.js +10 -14
  229. package/lib/esm/ui/widget/FeatureInfoWidget.js.map +1 -1
  230. package/lib/esm/ui/widget/MapLayerActionButtons.d.ts +1 -1
  231. package/lib/esm/ui/widget/MapLayerActionButtons.d.ts.map +1 -1
  232. package/lib/esm/ui/widget/MapLayerActionButtons.js +6 -16
  233. package/lib/esm/ui/widget/MapLayerActionButtons.js.map +1 -1
  234. package/lib/esm/ui/widget/MapLayerDroppable.d.ts +2 -2
  235. package/lib/esm/ui/widget/MapLayerDroppable.d.ts.map +1 -1
  236. package/lib/esm/ui/widget/MapLayerDroppable.js +38 -47
  237. package/lib/esm/ui/widget/MapLayerDroppable.js.map +1 -1
  238. package/lib/esm/ui/widget/MapLayerManager.d.ts +2 -2
  239. package/lib/esm/ui/widget/MapLayerManager.d.ts.map +1 -1
  240. package/lib/esm/ui/widget/MapLayerManager.js +134 -83
  241. package/lib/esm/ui/widget/MapLayerManager.js.map +1 -1
  242. package/lib/esm/ui/widget/MapLayerManager.scss +3 -6
  243. package/lib/esm/ui/widget/MapLayerSettingsMenu.d.ts +2 -2
  244. package/lib/esm/ui/widget/MapLayerSettingsMenu.d.ts.map +1 -1
  245. package/lib/esm/ui/widget/MapLayerSettingsMenu.js +9 -12
  246. package/lib/esm/ui/widget/MapLayerSettingsMenu.js.map +1 -1
  247. package/lib/esm/ui/widget/MapLayerSettingsPopupButton.d.ts.map +1 -1
  248. package/lib/esm/ui/widget/MapLayerSettingsPopupButton.js +11 -12
  249. package/lib/esm/ui/widget/MapLayerSettingsPopupButton.js.map +1 -1
  250. package/lib/esm/ui/widget/MapLayerSettingsPopupButton.scss +5 -5
  251. package/lib/esm/ui/widget/MapLayersWidget.d.ts +1 -1
  252. package/lib/esm/ui/widget/MapLayersWidget.d.ts.map +1 -1
  253. package/lib/esm/ui/widget/MapLayersWidget.js +9 -9
  254. package/lib/esm/ui/widget/MapLayersWidget.js.map +1 -1
  255. package/lib/esm/ui/widget/MapManagerMapLayersHeader.d.ts.map +1 -1
  256. package/lib/esm/ui/widget/MapManagerMapLayersHeader.js +5 -8
  257. package/lib/esm/ui/widget/MapManagerMapLayersHeader.js.map +1 -1
  258. package/lib/esm/ui/widget/MapManagerSettings.d.ts.map +1 -1
  259. package/lib/esm/ui/widget/MapManagerSettings.js +29 -53
  260. package/lib/esm/ui/widget/MapManagerSettings.js.map +1 -1
  261. package/lib/esm/ui/widget/MapManagerSettings.scss +1 -1
  262. package/lib/esm/ui/widget/MapSelectFeaturesDialog.d.ts +2 -2
  263. package/lib/esm/ui/widget/MapSelectFeaturesDialog.d.ts.map +1 -1
  264. package/lib/esm/ui/widget/MapSelectFeaturesDialog.js +7 -15
  265. package/lib/esm/ui/widget/MapSelectFeaturesDialog.js.map +1 -1
  266. package/lib/esm/ui/widget/MapSelectFeaturesDialog.scss +1 -3
  267. package/lib/esm/ui/widget/MapUrlDialog.d.ts +4 -3
  268. package/lib/esm/ui/widget/MapUrlDialog.d.ts.map +1 -1
  269. package/lib/esm/ui/widget/MapUrlDialog.js +79 -79
  270. package/lib/esm/ui/widget/MapUrlDialog.js.map +1 -1
  271. package/lib/esm/ui/widget/MapUrlDialog.scss +6 -7
  272. package/lib/esm/ui/widget/SelectApiKey.d.ts.map +1 -1
  273. package/lib/esm/ui/widget/SelectApiKey.js +12 -7
  274. package/lib/esm/ui/widget/SelectApiKey.js.map +1 -1
  275. package/lib/esm/ui/widget/SelectCustomParam.d.ts.map +1 -1
  276. package/lib/esm/ui/widget/SelectCustomParam.js +14 -8
  277. package/lib/esm/ui/widget/SelectCustomParam.js.map +1 -1
  278. package/lib/esm/ui/widget/SelectMapFormat.d.ts +3 -3
  279. package/lib/esm/ui/widget/SelectMapFormat.d.ts.map +1 -1
  280. package/lib/esm/ui/widget/SelectMapFormat.js +11 -14
  281. package/lib/esm/ui/widget/SelectMapFormat.js.map +1 -1
  282. package/lib/esm/ui/widget/SubLayersDataProvider.d.ts +2 -2
  283. package/lib/esm/ui/widget/SubLayersDataProvider.d.ts.map +1 -1
  284. package/lib/esm/ui/widget/SubLayersDataProvider.js +13 -9
  285. package/lib/esm/ui/widget/SubLayersDataProvider.js.map +1 -1
  286. package/lib/esm/ui/widget/SubLayersPopupButton.d.ts +1 -1
  287. package/lib/esm/ui/widget/SubLayersPopupButton.d.ts.map +1 -1
  288. package/lib/esm/ui/widget/SubLayersPopupButton.js +6 -11
  289. package/lib/esm/ui/widget/SubLayersPopupButton.js.map +1 -1
  290. package/lib/esm/ui/widget/SubLayersTree.d.ts +2 -2
  291. package/lib/esm/ui/widget/SubLayersTree.d.ts.map +1 -1
  292. package/lib/esm/ui/widget/SubLayersTree.js +59 -44
  293. package/lib/esm/ui/widget/SubLayersTree.js.map +1 -1
  294. package/lib/esm/ui/widget/SubLayersTree.scss +4 -7
  295. package/lib/esm/ui/widget/TransparencyPopupButton.d.ts.map +1 -1
  296. package/lib/esm/ui/widget/TransparencyPopupButton.js +8 -14
  297. package/lib/esm/ui/widget/TransparencyPopupButton.js.map +1 -1
  298. package/lib/esm/ui/widget/TransparencyPopupButton.scss +1 -2
  299. package/lib/esm/ui/widget/UserPreferencesStorageOptions.d.ts +1 -1
  300. package/lib/esm/ui/widget/UserPreferencesStorageOptions.d.ts.map +1 -1
  301. package/lib/esm/ui/widget/UserPreferencesStorageOptions.js +2 -8
  302. package/lib/esm/ui/widget/UserPreferencesStorageOptions.js.map +1 -1
  303. package/lib/public/locales/en/mapLayers.json +179 -184
  304. package/package.json +9 -21
@@ -1,11 +1,35 @@
1
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
- *--------------------------------------------------------------------------------------------*/
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
6
25
  Object.defineProperty(exports, "__esModule", { value: true });
7
26
  exports.MapLayersWidget = void 0;
8
- const React = require("react");
27
+ const jsx_runtime_1 = require("react/jsx-runtime");
28
+ /*---------------------------------------------------------------------------------------------
29
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
30
+ * See LICENSE.md in the project root for license terms and full copyright notice.
31
+ *--------------------------------------------------------------------------------------------*/
32
+ const React = __importStar(require("react"));
9
33
  const appui_react_1 = require("@itwin/appui-react");
10
34
  const core_react_1 = require("@itwin/core-react");
11
35
  const MapLayerManager_1 = require("./MapLayerManager");
@@ -22,13 +46,12 @@ function MapLayersWidget(props) {
22
46
  updateIsGeoLocated();
23
47
  return activeViewport?.iModel.onEcefLocationChanged.addListener(updateIsGeoLocated);
24
48
  }, [activeViewport?.iModel]);
25
- if (activeViewport && isGeoLocated && activeViewport.view.isSpatialView())
26
- return (React.createElement("div", { ref: ref, className: "map-manager-layer-host" },
27
- React.createElement(MapLayerManager_1.MapLayerManager, { activeViewport: activeViewport, mapLayerOptions: props.mapLayerOptions, getContainerForClone: () => {
49
+ if (activeViewport && isGeoLocated && activeViewport.view.isSpatialView()) {
50
+ return ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: "map-manager-layer-host", children: (0, jsx_runtime_1.jsx)(MapLayerManager_1.MapLayerManager, { activeViewport: activeViewport, mapLayerOptions: props.mapLayerOptions, getContainerForClone: () => {
28
51
  return ref.current ? ref.current : document.body;
29
- } })));
30
- return (React.createElement(core_react_1.FillCentered, null,
31
- React.createElement("div", { className: "map-manager-not-geo-located-text" }, notGeoLocatedMsg)));
52
+ } }) }));
53
+ }
54
+ return ((0, jsx_runtime_1.jsx)(core_react_1.FillCentered, { children: (0, jsx_runtime_1.jsx)("div", { className: "map-manager-not-geo-located-text", children: notGeoLocatedMsg }) }));
32
55
  }
33
56
  exports.MapLayersWidget = MapLayersWidget;
34
57
  //# sourceMappingURL=MapLayersWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapLayersWidget.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapLayersWidget.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,+BAA+B;AAC/B,oDAAuD;AACvD,kDAAiD;AAEjD,uDAAoD;AACpD,+CAA8C;AAS9C,gEAAgE;AAChE,SAAgB,eAAe,CAAC,KAA2B;IACzD,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,uBAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC1H,MAAM,cAAc,GAAG,IAAA,+BAAiB,GAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAE9F,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACxF,iHAAiH;QACjH,kBAAkB,EAAE,CAAC;QACrB,OAAO,cAAc,EAAE,MAAM,CAAC,qBAAqB,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACtF,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IAE7B,IAAI,cAAc,IAAI,YAAY,IAAI,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE;QACvE,OAAO,CACL,6BAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,wBAAwB;YAC/C,oBAAC,iCAAe,IAAC,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,oBAAoB,EAAE,GAAG,EAAE;oBAClH,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACnD,CAAC,GAAI,CACD,CACP,CAAC;IAEJ,OAAO,CACL,oBAAC,yBAAY;QAAC,6BAAK,SAAS,EAAC,kCAAkC,IAAE,gBAAgB,CAAO,CAAe,CACxG,CAAC;AACJ,CAAC;AAzBD,0CAyBC","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 * as React from \"react\";\nimport { useActiveViewport } from \"@itwin/appui-react\";\nimport { FillCentered } from \"@itwin/core-react\";\nimport { MapLayerOptions } from \"../Interfaces\";\nimport { MapLayerManager } from \"./MapLayerManager\";\nimport { MapLayersUI } from \"../../mapLayers\";\n\n/**\n * Widget to Manage Map Layers\n * @beta\n */\ninterface MapLayersWidgetProps {\n mapLayerOptions?: MapLayerOptions;\n}\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function MapLayersWidget(props: MapLayersWidgetProps) {\n const [notGeoLocatedMsg] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Messages.NotSupported\"));\n const activeViewport = useActiveViewport();\n const ref = React.useRef<HTMLDivElement>(null);\n const [isGeoLocated, setIsGeoLocated] = React.useState(!!activeViewport?.iModel.isGeoLocated);\n\n React.useEffect(() => {\n const updateIsGeoLocated = () => setIsGeoLocated(!!activeViewport?.iModel.isGeoLocated);\n // call immediately in case the activeViewport changes after its iModel.onEcefLocationChanged has already emitted\n updateIsGeoLocated();\n return activeViewport?.iModel.onEcefLocationChanged.addListener(updateIsGeoLocated);\n }, [activeViewport?.iModel]);\n\n if (activeViewport && isGeoLocated && activeViewport.view.isSpatialView())\n return (\n <div ref={ref} className=\"map-manager-layer-host\">\n <MapLayerManager activeViewport={activeViewport} mapLayerOptions={props.mapLayerOptions} getContainerForClone={() => {\n return ref.current ? ref.current : document.body;\n }} />\n </div>\n );\n\n return (\n <FillCentered><div className=\"map-manager-not-geo-located-text\">{notGeoLocatedMsg}</div></FillCentered>\n );\n}\n"]}
1
+ {"version":3,"file":"MapLayersWidget.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapLayersWidget.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;gGAGgG;AAEhG,6CAA+B;AAC/B,oDAAuD;AACvD,kDAAiD;AAEjD,uDAAoD;AACpD,+CAA8C;AAS9C,gEAAgE;AAChE,SAAgB,eAAe,CAAC,KAA2B;IACzD,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,uBAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC1H,MAAM,cAAc,GAAG,IAAA,+BAAiB,GAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAE9F,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACxF,iHAAiH;QACjH,kBAAkB,EAAE,CAAC;QACrB,OAAO,cAAc,EAAE,MAAM,CAAC,qBAAqB,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACtF,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IAE7B,IAAI,cAAc,IAAI,YAAY,IAAI,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;QACzE,OAAO,CACL,gCAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,wBAAwB,YAC/C,uBAAC,iCAAe,IACd,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,oBAAoB,EAAE,GAAG,EAAE;oBACzB,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACnD,CAAC,GACD,GACE,CACP,CAAC;KACH;IAED,OAAO,CACL,uBAAC,yBAAY,cACX,gCAAK,SAAS,EAAC,kCAAkC,YAAE,gBAAgB,GAAO,GAC7D,CAChB,CAAC;AACJ,CAAC;AAhCD,0CAgCC","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 * as React from \"react\";\nimport { useActiveViewport } from \"@itwin/appui-react\";\nimport { FillCentered } from \"@itwin/core-react\";\nimport type { MapLayerOptions } from \"../Interfaces\";\nimport { MapLayerManager } from \"./MapLayerManager\";\nimport { MapLayersUI } from \"../../mapLayers\";\n\n/**\n * Widget to Manage Map Layers\n * @beta\n */\ninterface MapLayersWidgetProps {\n mapLayerOptions?: MapLayerOptions;\n}\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function MapLayersWidget(props: MapLayersWidgetProps) {\n const [notGeoLocatedMsg] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Messages.NotSupported\"));\n const activeViewport = useActiveViewport();\n const ref = React.useRef<HTMLDivElement>(null);\n const [isGeoLocated, setIsGeoLocated] = React.useState(!!activeViewport?.iModel.isGeoLocated);\n\n React.useEffect(() => {\n const updateIsGeoLocated = () => setIsGeoLocated(!!activeViewport?.iModel.isGeoLocated);\n // call immediately in case the activeViewport changes after its iModel.onEcefLocationChanged has already emitted\n updateIsGeoLocated();\n return activeViewport?.iModel.onEcefLocationChanged.addListener(updateIsGeoLocated);\n }, [activeViewport?.iModel]);\n\n if (activeViewport && isGeoLocated && activeViewport.view.isSpatialView()) {\n return (\n <div ref={ref} className=\"map-manager-layer-host\">\n <MapLayerManager\n activeViewport={activeViewport}\n mapLayerOptions={props.mapLayerOptions}\n getContainerForClone={() => {\n return ref.current ? ref.current : document.body;\n }}\n />\n </div>\n );\n }\n\n return (\n <FillCentered>\n <div className=\"map-manager-not-geo-located-text\">{notGeoLocatedMsg}</div>\n </FillCentered>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MapManagerMapLayersHeader.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerMapLayersHeader.tsx"],"names":[],"mappings":";AAOA,OAAO,wBAAwB,CAAC;AAEhC,UAAU,2BAA2B;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,eAUxE"}
1
+ {"version":3,"file":"MapManagerMapLayersHeader.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerMapLayersHeader.tsx"],"names":[],"mappings":";AAMA,OAAO,wBAAwB,CAAC;AAEhC,UAAU,2BAA2B;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,eASxE"}
@@ -1,19 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MapManagerLayersHeader = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
5
  /*---------------------------------------------------------------------------------------------
5
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
6
- * See LICENSE.md in the project root for license terms and full copyright notice.
7
- *--------------------------------------------------------------------------------------------*/
6
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
7
+ * See LICENSE.md in the project root for license terms and full copyright notice.
8
+ *--------------------------------------------------------------------------------------------*/
8
9
  const itwinui_react_1 = require("@itwin/itwinui-react");
9
- const React = require("react");
10
10
  const AttachLayerPopupButton_1 = require("./AttachLayerPopupButton");
11
11
  require("./MapLayerManager.scss");
12
12
  function MapManagerLayersHeader(props) {
13
- return (React.createElement("div", { className: "map-manager-layers" },
14
- React.createElement("span", { className: "map-manager-layers-label" }, props.label),
15
- React.createElement(itwinui_react_1.ButtonGroup, null,
16
- React.createElement(AttachLayerPopupButton_1.AttachLayerPopupButton, { disabled: props.disabled, isOverlay: props.isOverlay }))));
13
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "map-manager-layers", children: [(0, jsx_runtime_1.jsx)("span", { className: "map-manager-layers-label", children: props.label }), (0, jsx_runtime_1.jsx)(itwinui_react_1.ButtonGroup, { children: (0, jsx_runtime_1.jsx)(AttachLayerPopupButton_1.AttachLayerPopupButton, { disabled: props.disabled, isOverlay: props.isOverlay }) })] }));
17
14
  }
18
15
  exports.MapManagerLayersHeader = MapManagerLayersHeader;
19
16
  //# sourceMappingURL=MapManagerMapLayersHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapManagerMapLayersHeader.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerMapLayersHeader.tsx"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F,wDAAmD;AACnD,+BAA+B;AAC/B,qEAAkE;AAClE,kCAAgC;AAQhC,SAAgB,sBAAsB,CAAC,KAAkC;IACvE,OAAO,CACL,6BAAK,SAAS,EAAC,oBAAoB;QACjC,8BAAM,SAAS,EAAC,0BAA0B,IAAE,KAAK,CAAC,KAAK,CAAQ;QAC/D,oBAAC,2BAAW;YACV,oBAAC,+CAAsB,IAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,GAAI,CAEpE,CACV,CACP,CAAC;AACJ,CAAC;AAVD,wDAUC","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*--------------------------------------------------------------------------------------------*/\nimport { ButtonGroup } from \"@itwin/itwinui-react\";\nimport * as React from \"react\";\nimport { AttachLayerPopupButton } from \"./AttachLayerPopupButton\";\nimport \"./MapLayerManager.scss\";\n\ninterface MapManagerLayersHeaderProps {\n label: string;\n isOverlay: boolean;\n disabled?: boolean;\n}\n\nexport function MapManagerLayersHeader(props: MapManagerLayersHeaderProps) {\n return (\n <div className=\"map-manager-layers\">\n <span className=\"map-manager-layers-label\">{props.label}</span>\n <ButtonGroup>\n <AttachLayerPopupButton disabled={props.disabled} isOverlay={props.isOverlay} />\n\n </ButtonGroup>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"MapManagerMapLayersHeader.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerMapLayersHeader.tsx"],"names":[],"mappings":";;;;AAAA;;;gGAGgG;AAChG,wDAAmD;AACnD,qEAAkE;AAClE,kCAAgC;AAQhC,SAAgB,sBAAsB,CAAC,KAAkC;IACvE,OAAO,CACL,iCAAK,SAAS,EAAC,oBAAoB,aACjC,iCAAM,SAAS,EAAC,0BAA0B,YAAE,KAAK,CAAC,KAAK,GAAQ,EAC/D,uBAAC,2BAAW,cACV,uBAAC,+CAAsB,IAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,GAAI,GACpE,IACV,CACP,CAAC;AACJ,CAAC;AATD,wDASC","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 *--------------------------------------------------------------------------------------------*/\nimport { ButtonGroup } from \"@itwin/itwinui-react\";\nimport { AttachLayerPopupButton } from \"./AttachLayerPopupButton\";\nimport \"./MapLayerManager.scss\";\n\ninterface MapManagerLayersHeaderProps {\n label: string;\n isOverlay: boolean;\n disabled?: boolean;\n}\n\nexport function MapManagerLayersHeader(props: MapManagerLayersHeaderProps) {\n return (\n <div className=\"map-manager-layers\">\n <span className=\"map-manager-layers-label\">{props.label}</span>\n <ButtonGroup>\n <AttachLayerPopupButton disabled={props.disabled} isOverlay={props.isOverlay} />\n </ButtonGroup>\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MapManagerSettings.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.tsx"],"names":[],"mappings":";AAWA,OAAO,2BAA2B,CAAC;AAwCnC,wBAAgB,kBAAkB,gBA0NjC"}
1
+ {"version":3,"file":"MapManagerSettings.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.tsx"],"names":[],"mappings":";AAaA,OAAO,2BAA2B,CAAC;AA4CnC,wBAAgB,kBAAkB,gBA6RjC"}
@@ -1,12 +1,36 @@
1
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
- // cSpell:ignore droppable Sublayer Basemap
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
7
25
  Object.defineProperty(exports, "__esModule", { value: true });
8
26
  exports.MapManagerSettings = void 0;
9
- const React = require("react");
27
+ const jsx_runtime_1 = require("react/jsx-runtime");
28
+ /*---------------------------------------------------------------------------------------------
29
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
30
+ * See LICENSE.md in the project root for license terms and full copyright notice.
31
+ *--------------------------------------------------------------------------------------------*/
32
+ // cSpell:ignore droppable Sublayer Basemap
33
+ const React = __importStar(require("react"));
10
34
  const core_react_1 = require("@itwin/core-react");
11
35
  const core_frontend_1 = require("@itwin/core-frontend");
12
36
  const core_common_1 = require("@itwin/core-common");
@@ -31,26 +55,28 @@ function getMapMaskingFromBackgroundMapSetting(backgroundMapSettings) {
31
55
  return MapMaskingOption.None;
32
56
  }
33
57
  function getHeightOriginModeKey(mode) {
34
- if (core_common_1.TerrainHeightOriginMode.Geodetic === mode)
58
+ if (core_common_1.TerrainHeightOriginMode.Geodetic === mode) {
35
59
  return "geodetic";
36
- if (core_common_1.TerrainHeightOriginMode.Geoid === mode)
60
+ }
61
+ if (core_common_1.TerrainHeightOriginMode.Geoid === mode) {
37
62
  return "geoid";
63
+ }
38
64
  return "ground";
39
65
  }
40
66
  function getHeightOriginModeFromKey(mode) {
41
- if ("geodetic" === mode)
67
+ if ("geodetic" === mode) {
42
68
  return core_common_1.TerrainHeightOriginMode.Geodetic;
43
- if ("geoid" === mode)
69
+ }
70
+ if ("geoid" === mode) {
44
71
  return core_common_1.TerrainHeightOriginMode.Geoid;
72
+ }
45
73
  return core_common_1.TerrainHeightOriginMode.Ground;
46
74
  }
47
75
  // eslint-disable-next-line @typescript-eslint/naming-convention
48
76
  function MapManagerSettings() {
49
77
  const { activeViewport } = (0, MapLayerManager_1.useSourceMapContext)();
50
78
  const backgroundMapSettings = activeViewport.view.getDisplayStyle3d().settings.backgroundMap;
51
- const [transparency, setTransparency] = React.useState(() => typeof backgroundMapSettings.transparency === "boolean"
52
- ? 0
53
- : Math.round((backgroundMapSettings.transparency) * 100) / 100);
79
+ const [transparency, setTransparency] = React.useState(() => typeof backgroundMapSettings.transparency === "boolean" ? 0 : Math.round(backgroundMapSettings.transparency * 100) / 100);
54
80
  const terrainSettings = backgroundMapSettings.terrainSettings;
55
81
  const [groundBias, setGroundBias] = React.useState(() => backgroundMapSettings.groundBias);
56
82
  const terrainHeightOptions = React.useRef([
@@ -72,13 +98,15 @@ function MapManagerSettings() {
72
98
  setHeightOriginMode(newValue);
73
99
  }
74
100
  }, [updateTerrainSettings]);
75
- const [maskTransparency, setMaskTransparency] = React.useState(() => backgroundMapSettings.planarClipMask.transparency === undefined
76
- ? undefined
77
- : Math.round((backgroundMapSettings.planarClipMask.transparency) * 100) / 100);
78
- const getNormalizedMaskTransparency = React.useCallback(() => { return (maskTransparency === undefined ? 0 : maskTransparency); }, [maskTransparency]);
101
+ const [maskTransparency, setMaskTransparency] = React.useState(() => backgroundMapSettings.planarClipMask.transparency === undefined ? undefined : Math.round(backgroundMapSettings.planarClipMask.transparency * 100) / 100);
102
+ const getNormalizedMaskTransparency = React.useCallback(() => {
103
+ return maskTransparency === undefined ? 0 : maskTransparency;
104
+ }, [maskTransparency]);
79
105
  const updateMaskingSettings = React.useCallback((option) => {
80
106
  if (option === MapMaskingOption.AllModels) {
81
- activeViewport.changeBackgroundMapProps({ planarClipMask: { mode: core_common_1.PlanarClipMaskMode.Priority, priority: core_common_1.PlanarClipMaskPriority.BackgroundMap, transparency: maskTransparency } });
107
+ activeViewport.changeBackgroundMapProps({
108
+ planarClipMask: { mode: core_common_1.PlanarClipMaskMode.Priority, priority: core_common_1.PlanarClipMaskPriority.BackgroundMap, transparency: maskTransparency },
109
+ });
82
110
  }
83
111
  if (option === MapMaskingOption.None) {
84
112
  activeViewport.changeBackgroundMapProps({ planarClipMask: { mode: core_common_1.PlanarClipMaskMode.None } });
@@ -95,7 +123,9 @@ function MapManagerSettings() {
95
123
  const onOverrideMaskTransparencyToggle = React.useCallback((e) => {
96
124
  const checked = e.target.checked;
97
125
  const trans = checked ? getNormalizedMaskTransparency() : undefined;
98
- activeViewport.changeBackgroundMapProps({ planarClipMask: { mode: core_common_1.PlanarClipMaskMode.Priority, priority: core_common_1.PlanarClipMaskPriority.BackgroundMap, transparency: trans } });
126
+ activeViewport.changeBackgroundMapProps({
127
+ planarClipMask: { mode: core_common_1.PlanarClipMaskMode.Priority, priority: core_common_1.PlanarClipMaskPriority.BackgroundMap, transparency: trans },
128
+ });
99
129
  setOverrideMaskTransparency(checked);
100
130
  }, [activeViewport, getNormalizedMaskTransparency]);
101
131
  const handleElevationChange = React.useCallback((value) => {
@@ -111,7 +141,9 @@ function MapManagerSettings() {
111
141
  }, [activeViewport]);
112
142
  const handleMaskTransparencyChange = React.useCallback((values) => {
113
143
  const newTransparency = values[0] / 100;
114
- activeViewport.changeBackgroundMapProps({ planarClipMask: { mode: core_common_1.PlanarClipMaskMode.Priority, priority: core_common_1.PlanarClipMaskPriority.BackgroundMap, transparency: newTransparency } });
144
+ activeViewport.changeBackgroundMapProps({
145
+ planarClipMask: { mode: core_common_1.PlanarClipMaskMode.Priority, priority: core_common_1.PlanarClipMaskPriority.BackgroundMap, transparency: newTransparency },
146
+ });
115
147
  setMaskTransparency(newTransparency);
116
148
  }, [activeViewport]);
117
149
  const [applyTerrain, setApplyTerrain] = React.useState(() => backgroundMapSettings.applyTerrain);
@@ -142,8 +174,9 @@ function MapManagerSettings() {
142
174
  }, [updateBackgroundMap]);
143
175
  /** Disable commas and letters */
144
176
  const onKeyDown = React.useCallback((event) => {
145
- if (event.keyCode === 188 || (event.keyCode >= 65 && event.keyCode <= 90))
177
+ if (event.keyCode === 188 || (event.keyCode >= 65 && event.keyCode <= 90)) {
146
178
  event.preventDefault();
179
+ }
147
180
  }, []);
148
181
  const [isLocatable, setIsLocatable] = React.useState(() => backgroundMapSettings.locatable);
149
182
  const onLocatableToggle = React.useCallback((e) => {
@@ -164,41 +197,7 @@ function MapManagerSettings() {
164
197
  const [overrideMaskTransparencyLabel] = React.useState(mapLayers_1.MapLayersUI.localization.getLocalizedString("mapLayers:Settings.OverrideMaskTransparency"));
165
198
  const [maskTransparencyLabel] = React.useState(mapLayers_1.MapLayersUI.localization.getLocalizedString("mapLayers:Settings.MaskTransparency"));
166
199
  const [tabIndex, setTabIndex] = React.useState(0);
167
- return (React.createElement(itwinui_react_1.Tabs, { labels: [
168
- React.createElement(itwinui_react_1.Tab, { key: "general", label: 'General' }),
169
- React.createElement(itwinui_react_1.Tab, { key: "advanced", label: 'Advanced' }),
170
- ], onTabSelected: setTabIndex },
171
- tabIndex === 0 && React.createElement(React.Fragment, null,
172
- React.createElement("div", { className: "maplayers-settings-container" },
173
- React.createElement("span", { className: "map-manager-settings-label" }, transparencyLabel),
174
- React.createElement(itwinui_react_1.Slider, { min: 0, max: 100, values: [transparency * 100], onChange: handleAlphaChange, step: 1 }),
175
- React.createElement("span", { className: "map-manager-settings-label" }, locatableLabel),
176
- React.createElement(itwinui_react_1.ToggleSwitch, { onChange: onLocatableToggle, checked: isLocatable }),
177
- React.createElement("span", { className: "map-manager-settings-label" }, maskingLabel),
178
- React.createElement(itwinui_react_1.ToggleSwitch, { onChange: onMaskingToggle, checked: masking !== MapMaskingOption.None }),
179
- React.createElement("span", { className: "map-manager-settings-label" }, overrideMaskTransparencyLabel),
180
- React.createElement(itwinui_react_1.ToggleSwitch, { disabled: masking === MapMaskingOption.None, onChange: onOverrideMaskTransparencyToggle, checked: overrideMaskTransparency }),
181
- React.createElement("span", { className: "map-manager-settings-label" }, maskTransparencyLabel),
182
- React.createElement(itwinui_react_1.Slider, { disabled: masking === MapMaskingOption.None || !overrideMaskTransparency, min: 0, max: 100, values: [getNormalizedMaskTransparency() * 100], onChange: handleMaskTransparencyChange, step: 1 }),
183
- React.createElement(React.Fragment, null,
184
- React.createElement("span", { className: "map-manager-settings-label" }, elevationOffsetLabel),
185
- React.createElement(imodel_components_react_1.QuantityNumberInput, { disabled: applyTerrain, persistenceValue: groundBias, step: 1, snap: true, quantityType: core_frontend_1.QuantityType.LengthEngineering, onChange: handleElevationChange, onKeyDown: onKeyDown }),
186
- React.createElement("span", { className: "map-manager-settings-label" }, useDepthBufferLabel),
187
- React.createElement(itwinui_react_1.ToggleSwitch, { disabled: applyTerrain, onChange: onToggleUseDepthBuffer, checked: useDepthBuffer }))),
188
- React.createElement("div", { className: "map-manager-settings-group" },
189
- React.createElement("fieldset", null,
190
- React.createElement("legend", null, terrainLabel),
191
- React.createElement("div", { className: "maplayers-settings-container" },
192
- React.createElement("span", { className: "map-manager-settings-label" }, enableLabel),
193
- React.createElement(itwinui_react_1.ToggleSwitch, { onChange: onToggleTerrain, checked: applyTerrain }),
194
- React.createElement("span", { className: "map-manager-settings-label" }, modelHeightLabel),
195
- React.createElement(imodel_components_react_1.QuantityNumberInput, { disabled: !applyTerrain, persistenceValue: terrainOrigin, snap: true, quantityType: core_frontend_1.QuantityType.LengthEngineering, onChange: handleHeightOriginChange, onKeyDown: onKeyDown }),
196
- React.createElement("span", { className: "map-manager-settings-label" }, heightOriginLabel),
197
- React.createElement(itwinui_react_1.Select, { popoverProps: { appendTo: "parent" }, options: terrainHeightOptions.current, disabled: !applyTerrain, value: heightOriginMode, onChange: handleElevationTypeSelected, size: "small" }),
198
- React.createElement("span", { className: "map-manager-settings-label" }, exaggerationLabel),
199
- React.createElement(core_react_1.NumberInput, { value: exaggeration, disabled: !applyTerrain, onChange: handleExaggerationChange, onKeyDown: onKeyDown }))))),
200
- tabIndex === 1 &&
201
- React.createElement(CustomParamsSettings_1.CustomParamsSettingsPanel, null)));
200
+ return ((0, jsx_runtime_1.jsxs)(itwinui_react_1.Tabs, { labels: [(0, jsx_runtime_1.jsx)(itwinui_react_1.Tab, { label: "General" }, "general"), (0, jsx_runtime_1.jsx)(itwinui_react_1.Tab, { label: "Advanced" }, "advanced")], onTabSelected: setTabIndex, children: [tabIndex === 0 && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: "maplayers-settings-container", children: [(0, jsx_runtime_1.jsx)("span", { className: "map-manager-settings-label", children: transparencyLabel }), (0, jsx_runtime_1.jsx)(itwinui_react_1.Slider, { min: 0, max: 100, values: [transparency * 100], onChange: handleAlphaChange, step: 1 }), (0, jsx_runtime_1.jsx)("span", { className: "map-manager-settings-label", children: locatableLabel }), (0, jsx_runtime_1.jsx)(itwinui_react_1.ToggleSwitch, { onChange: onLocatableToggle, checked: isLocatable }), (0, jsx_runtime_1.jsx)("span", { className: "map-manager-settings-label", children: maskingLabel }), (0, jsx_runtime_1.jsx)(itwinui_react_1.ToggleSwitch, { onChange: onMaskingToggle, checked: masking !== MapMaskingOption.None }), (0, jsx_runtime_1.jsx)("span", { className: "map-manager-settings-label", children: overrideMaskTransparencyLabel }), (0, jsx_runtime_1.jsx)(itwinui_react_1.ToggleSwitch, { disabled: masking === MapMaskingOption.None, onChange: onOverrideMaskTransparencyToggle, checked: overrideMaskTransparency }), (0, jsx_runtime_1.jsx)("span", { className: "map-manager-settings-label", children: maskTransparencyLabel }), (0, jsx_runtime_1.jsx)(itwinui_react_1.Slider, { disabled: masking === MapMaskingOption.None || !overrideMaskTransparency, min: 0, max: 100, values: [getNormalizedMaskTransparency() * 100], onChange: handleMaskTransparencyChange, step: 1 }), (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { className: "map-manager-settings-label", children: elevationOffsetLabel }), (0, jsx_runtime_1.jsx)(imodel_components_react_1.QuantityNumberInput, { disabled: applyTerrain, persistenceValue: groundBias, step: 1, snap: true, quantityType: core_frontend_1.QuantityType.LengthEngineering, onChange: handleElevationChange, onKeyDown: onKeyDown }), (0, jsx_runtime_1.jsx)("span", { className: "map-manager-settings-label", children: useDepthBufferLabel }), (0, jsx_runtime_1.jsx)(itwinui_react_1.ToggleSwitch, { disabled: applyTerrain, onChange: onToggleUseDepthBuffer, checked: useDepthBuffer })] })] }), (0, jsx_runtime_1.jsx)("div", { className: "map-manager-settings-group", children: (0, jsx_runtime_1.jsxs)("fieldset", { children: [(0, jsx_runtime_1.jsx)("legend", { children: terrainLabel }), (0, jsx_runtime_1.jsxs)("div", { className: "maplayers-settings-container", children: [(0, jsx_runtime_1.jsx)("span", { className: "map-manager-settings-label", children: enableLabel }), (0, jsx_runtime_1.jsx)(itwinui_react_1.ToggleSwitch, { onChange: onToggleTerrain, checked: applyTerrain }), (0, jsx_runtime_1.jsx)("span", { className: "map-manager-settings-label", children: modelHeightLabel }), (0, jsx_runtime_1.jsx)(imodel_components_react_1.QuantityNumberInput, { disabled: !applyTerrain, persistenceValue: terrainOrigin, snap: true, quantityType: core_frontend_1.QuantityType.LengthEngineering, onChange: handleHeightOriginChange, onKeyDown: onKeyDown }), (0, jsx_runtime_1.jsx)("span", { className: "map-manager-settings-label", children: heightOriginLabel }), (0, jsx_runtime_1.jsx)(itwinui_react_1.Select, { popoverProps: { appendTo: "parent" }, options: terrainHeightOptions.current, disabled: !applyTerrain, value: heightOriginMode, onChange: handleElevationTypeSelected, size: "small" }), (0, jsx_runtime_1.jsx)("span", { className: "map-manager-settings-label", children: exaggerationLabel }), (0, jsx_runtime_1.jsx)(core_react_1.NumberInput, { value: exaggeration, disabled: !applyTerrain, onChange: handleExaggerationChange, onKeyDown: onKeyDown })] })] }) })] })), tabIndex === 1 && (0, jsx_runtime_1.jsx)(CustomParamsSettings_1.CustomParamsSettingsPanel, {})] }));
202
201
  }
203
202
  exports.MapManagerSettings = MapManagerSettings;
204
203
  //# sourceMappingURL=MapManagerSettings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapManagerSettings.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.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// cSpell:ignore droppable Sublayer Basemap\n\nimport * as React from \"react\";\nimport { NumberInput } from \"@itwin/core-react\";\nimport { QuantityType, ViewState3d } from \"@itwin/core-frontend\";\nimport { BackgroundMapProps, BackgroundMapSettings, PlanarClipMaskMode, PlanarClipMaskPriority, TerrainHeightOriginMode, TerrainProps } from \"@itwin/core-common\";\nimport { useSourceMapContext } from \"./MapLayerManager\";\nimport \"./MapManagerSettings.scss\";\nimport { Select, SelectOption, Slider, Tab, Tabs, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport { QuantityNumberInput } from \"@itwin/imodel-components-react\";\nimport { MapLayersUI } from \"../../mapLayers\";\nimport { CustomParamsSettingsPanel } from \"./CustomParamsSettings\";\n\n/* eslint-disable deprecation/deprecation */\n\nenum MapMaskingOption {\n None,\n AllModels\n}\n\nfunction getMapMaskingFromBackgroundMapSetting(backgroundMapSettings: BackgroundMapSettings): MapMaskingOption {\n if (backgroundMapSettings.planarClipMask.mode === PlanarClipMaskMode.Priority && backgroundMapSettings.planarClipMask.priority) {\n if (backgroundMapSettings.planarClipMask.priority >= PlanarClipMaskPriority.BackgroundMap) {\n return MapMaskingOption.AllModels;\n }\n\n }\n return MapMaskingOption.None;\n}\n\nfunction getHeightOriginModeKey(mode: TerrainHeightOriginMode): string {\n if (TerrainHeightOriginMode.Geodetic === mode)\n return \"geodetic\";\n if (TerrainHeightOriginMode.Geoid === mode)\n return \"geoid\";\n return \"ground\";\n}\n\nfunction getHeightOriginModeFromKey(mode: string): TerrainHeightOriginMode {\n if (\"geodetic\" === mode)\n return TerrainHeightOriginMode.Geodetic;\n if (\"geoid\" === mode)\n return TerrainHeightOriginMode.Geoid;\n return TerrainHeightOriginMode.Ground;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function MapManagerSettings() {\n const { activeViewport } = useSourceMapContext();\n const backgroundMapSettings = (activeViewport!.view as ViewState3d).getDisplayStyle3d().settings.backgroundMap;\n\n const [transparency, setTransparency] = React.useState(() =>\n typeof backgroundMapSettings.transparency === \"boolean\"\n ? 0\n : Math.round((backgroundMapSettings.transparency) * 100) / 100);\n\n const terrainSettings = backgroundMapSettings.terrainSettings;\n const [groundBias, setGroundBias] = React.useState(() => backgroundMapSettings.groundBias);\n\n const terrainHeightOptions = React.useRef<SelectOption<string>[]>([\n { value: \"geodetic\", label: MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGeodetic\") },\n { value: \"geoid\", label: MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGeoid\") },\n { value: \"ground\", label: MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGround\") },\n ]);\n\n const updateTerrainSettings = React.useCallback((props: TerrainProps) => {\n activeViewport!.changeBackgroundMapProps({ terrainSettings: props });\n }, [activeViewport]);\n\n const updateBackgroundMap = React.useCallback((props: BackgroundMapProps) => {\n activeViewport!.changeBackgroundMapProps(props);\n }, [activeViewport]);\n\n const [heightOriginMode, setHeightOriginMode] = React.useState(() => getHeightOriginModeKey(terrainSettings.heightOriginMode));\n const handleElevationTypeSelected = React.useCallback((newValue: string): void => {\n if (newValue) {\n const newHeightOriginMode = getHeightOriginModeFromKey(newValue);\n updateTerrainSettings({ heightOriginMode: newHeightOriginMode });\n setHeightOriginMode(newValue);\n }\n }, [updateTerrainSettings]);\n\n const [maskTransparency, setMaskTransparency] = React.useState(() =>\n backgroundMapSettings.planarClipMask.transparency === undefined\n ? undefined\n : Math.round((backgroundMapSettings.planarClipMask.transparency) * 100) / 100);\n\n const getNormalizedMaskTransparency = React.useCallback(() => { return (maskTransparency === undefined ? 0 : maskTransparency); }, [maskTransparency]);\n\n const updateMaskingSettings = React.useCallback((option: MapMaskingOption) => {\n if (option === MapMaskingOption.AllModels) {\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: maskTransparency } });\n }\n if (option === MapMaskingOption.None) {\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.None } });\n }\n }, [activeViewport, maskTransparency]);\n\n const [masking, setMasking] = React.useState(() => getMapMaskingFromBackgroundMapSetting(backgroundMapSettings));\n\n const onMaskingToggle = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked;\n const maskingOption = checked ? MapMaskingOption.AllModels : MapMaskingOption.None;\n updateMaskingSettings(maskingOption);\n setMasking(maskingOption);\n }, [updateMaskingSettings]);\n\n const [overrideMaskTransparency, setOverrideMaskTransparency] = React.useState(() => backgroundMapSettings.planarClipMask.transparency !== undefined);\n\n const onOverrideMaskTransparencyToggle = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked;\n const trans = checked ? getNormalizedMaskTransparency() : undefined;\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: trans } });\n\n setOverrideMaskTransparency(checked);\n }, [activeViewport, getNormalizedMaskTransparency]);\n\n const handleElevationChange = React.useCallback((value: number) => {\n if (value !== undefined) {\n updateBackgroundMap({ groundBias: value });\n setGroundBias(value);\n }\n }, [updateBackgroundMap]);\n\n const handleAlphaChange = React.useCallback((values: readonly number[]) => {\n const newTransparency = values[0] / 100;\n activeViewport!.changeBackgroundMapProps({ transparency: newTransparency });\n setTransparency(newTransparency);\n }, [activeViewport]);\n\n const handleMaskTransparencyChange = React.useCallback((values: readonly number[]) => {\n const newTransparency = values[0] / 100;\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: newTransparency } });\n setMaskTransparency(newTransparency);\n }, [activeViewport]);\n\n const [applyTerrain, setApplyTerrain] = React.useState(() => backgroundMapSettings.applyTerrain);\n\n const onToggleTerrain = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked;\n updateBackgroundMap({ applyTerrain: checked });\n setApplyTerrain(checked);\n }, [updateBackgroundMap]);\n\n const [exaggeration, setExaggeration] = React.useState(() => terrainSettings.exaggeration);\n\n const handleExaggerationChange = React.useCallback((value: number | undefined, _stringValue: string) => {\n if (undefined !== value) {\n updateTerrainSettings({ exaggeration: value });\n setExaggeration(value);\n }\n }, [updateTerrainSettings]);\n\n const [terrainOrigin, setTerrainOrigin] = React.useState(() => terrainSettings.heightOrigin);\n\n const handleHeightOriginChange = React.useCallback((value: number) => {\n if (undefined !== value) {\n updateTerrainSettings({ heightOrigin: value });\n setTerrainOrigin(value);\n }\n }, [updateTerrainSettings]);\n\n const [useDepthBuffer, setUseDepthBuffer] = React.useState(() => backgroundMapSettings.useDepthBuffer);\n const onToggleUseDepthBuffer = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked;\n updateBackgroundMap({ useDepthBuffer: checked });\n setUseDepthBuffer(checked);\n }, [updateBackgroundMap]);\n\n /** Disable commas and letters */\n const onKeyDown = React.useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.keyCode === 188 || (event.keyCode >= 65 && event.keyCode <= 90))\n event.preventDefault();\n }, []);\n\n const [isLocatable, setIsLocatable] = React.useState(() => backgroundMapSettings.locatable);\n const onLocatableToggle = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked;\n updateBackgroundMap({ nonLocatable: !checked });\n setIsLocatable(checked);\n }, [updateBackgroundMap]);\n\n const [transparencyLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.Transparency\"));\n const [terrainLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.Terrain\"));\n const [enableLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.Enable\"));\n const [elevationOffsetLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.ElevationOffset\"));\n const [useDepthBufferLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.UseDepthBuffer\"));\n const [modelHeightLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.ModelHeight\"));\n const [heightOriginLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.HeightOrigin\"));\n const [exaggerationLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.Exaggeration\"));\n const [locatableLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.Locatable\"));\n const [maskingLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.Mask\"));\n const [overrideMaskTransparencyLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.OverrideMaskTransparency\"));\n const [maskTransparencyLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.MaskTransparency\"));\n\n const [tabIndex, setTabIndex] = React.useState(0);\n\n return (\n <Tabs\n labels={[\n <Tab key={\"general\"} label='General' />,\n <Tab key={\"advanced\"} label='Advanced' />,\n ]}\n onTabSelected={setTabIndex}>\n {tabIndex === 0 && <>\n <div className=\"maplayers-settings-container\">\n\n <span className=\"map-manager-settings-label\">{transparencyLabel}</span>\n <Slider min={0} max={100} values={[transparency * 100]} onChange={handleAlphaChange} step={1} />\n\n <span className=\"map-manager-settings-label\">{locatableLabel}</span>\n {/* eslint-disable-next-line deprecation/deprecation */}\n <ToggleSwitch onChange={onLocatableToggle} checked={isLocatable} />\n\n <span className=\"map-manager-settings-label\">{maskingLabel}</span>\n {/* eslint-disable-next-line deprecation/deprecation */}\n <ToggleSwitch onChange={onMaskingToggle} checked={masking !== MapMaskingOption.None} />\n\n <span className=\"map-manager-settings-label\">{overrideMaskTransparencyLabel}</span>\n <ToggleSwitch disabled={masking === MapMaskingOption.None} onChange={onOverrideMaskTransparencyToggle} checked={overrideMaskTransparency} />\n\n <span className=\"map-manager-settings-label\">{maskTransparencyLabel}</span>\n <Slider disabled={masking === MapMaskingOption.None || !overrideMaskTransparency} min={0} max={100} values={[getNormalizedMaskTransparency() * 100]} onChange={handleMaskTransparencyChange} step={1} />\n\n <>\n <span className=\"map-manager-settings-label\">{elevationOffsetLabel}</span>\n <QuantityNumberInput disabled={applyTerrain} persistenceValue={groundBias} step={1} snap quantityType={QuantityType.LengthEngineering} onChange={handleElevationChange} onKeyDown={onKeyDown} />\n\n <span className=\"map-manager-settings-label\">{useDepthBufferLabel}</span>\n {/* eslint-disable-next-line deprecation/deprecation */}\n <ToggleSwitch disabled={applyTerrain} onChange={onToggleUseDepthBuffer} checked={useDepthBuffer} />\n </>\n\n </div>\n <div className=\"map-manager-settings-group\">\n <fieldset>\n <legend>{terrainLabel}</legend>\n\n <div className=\"maplayers-settings-container\">\n\n <span className=\"map-manager-settings-label\">{enableLabel}</span>\n {/* eslint-disable-next-line deprecation/deprecation */}\n <ToggleSwitch onChange={onToggleTerrain} checked={applyTerrain} />\n\n <span className=\"map-manager-settings-label\">{modelHeightLabel}</span>\n <QuantityNumberInput disabled={!applyTerrain} persistenceValue={terrainOrigin} snap quantityType={QuantityType.LengthEngineering} onChange={handleHeightOriginChange} onKeyDown={onKeyDown} />\n\n <span className=\"map-manager-settings-label\">{heightOriginLabel}</span>\n {/* elevation correction component: 'popoverProps' is needed here otherwise selecting an option closes the menu popup.*/}\n <Select popoverProps={{ appendTo: \"parent\" }} options={terrainHeightOptions.current} disabled={!applyTerrain} value={heightOriginMode} onChange={handleElevationTypeSelected} size=\"small\" />\n\n <span className=\"map-manager-settings-label\">{exaggerationLabel}</span>\n <NumberInput value={exaggeration} disabled={!applyTerrain} onChange={handleExaggerationChange} onKeyDown={onKeyDown} />\n </div>\n\n </fieldset>\n </div>\n\n </>\n }\n {tabIndex === 1 &&\n <CustomParamsSettingsPanel></CustomParamsSettingsPanel>\n }\n </Tabs>\n );\n}\n"]}
1
+ {"version":3,"file":"MapManagerSettings.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.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// cSpell:ignore droppable Sublayer Basemap\n\nimport * as React from \"react\";\nimport { NumberInput } from \"@itwin/core-react\";\nimport type { ViewState3d } from \"@itwin/core-frontend\";\nimport { QuantityType } from \"@itwin/core-frontend\";\nimport type { BackgroundMapProps, BackgroundMapSettings, TerrainProps } from \"@itwin/core-common\";\nimport { PlanarClipMaskMode, PlanarClipMaskPriority, TerrainHeightOriginMode } from \"@itwin/core-common\";\nimport { useSourceMapContext } from \"./MapLayerManager\";\nimport \"./MapManagerSettings.scss\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport { Select, Slider, Tab, Tabs, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport { QuantityNumberInput } from \"@itwin/imodel-components-react\";\nimport { MapLayersUI } from \"../../mapLayers\";\nimport { CustomParamsSettingsPanel } from \"./CustomParamsSettings\";\n\n/* eslint-disable deprecation/deprecation */\n\nenum MapMaskingOption {\n None,\n AllModels,\n}\n\nfunction getMapMaskingFromBackgroundMapSetting(backgroundMapSettings: BackgroundMapSettings): MapMaskingOption {\n if (backgroundMapSettings.planarClipMask.mode === PlanarClipMaskMode.Priority && backgroundMapSettings.planarClipMask.priority) {\n if (backgroundMapSettings.planarClipMask.priority >= PlanarClipMaskPriority.BackgroundMap) {\n return MapMaskingOption.AllModels;\n }\n }\n return MapMaskingOption.None;\n}\n\nfunction getHeightOriginModeKey(mode: TerrainHeightOriginMode): string {\n if (TerrainHeightOriginMode.Geodetic === mode) {\n return \"geodetic\";\n }\n if (TerrainHeightOriginMode.Geoid === mode) {\n return \"geoid\";\n }\n return \"ground\";\n}\n\nfunction getHeightOriginModeFromKey(mode: string): TerrainHeightOriginMode {\n if (\"geodetic\" === mode) {\n return TerrainHeightOriginMode.Geodetic;\n }\n if (\"geoid\" === mode) {\n return TerrainHeightOriginMode.Geoid;\n }\n return TerrainHeightOriginMode.Ground;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function MapManagerSettings() {\n const { activeViewport } = useSourceMapContext();\n const backgroundMapSettings = (activeViewport!.view as ViewState3d).getDisplayStyle3d().settings.backgroundMap;\n\n const [transparency, setTransparency] = React.useState(() =>\n typeof backgroundMapSettings.transparency === \"boolean\" ? 0 : Math.round(backgroundMapSettings.transparency * 100) / 100,\n );\n\n const terrainSettings = backgroundMapSettings.terrainSettings;\n const [groundBias, setGroundBias] = React.useState(() => backgroundMapSettings.groundBias);\n\n const terrainHeightOptions = React.useRef<SelectOption<string>[]>([\n { value: \"geodetic\", label: MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGeodetic\") },\n { value: \"geoid\", label: MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGeoid\") },\n { value: \"ground\", label: MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.ElevationTypeGround\") },\n ]);\n\n const updateTerrainSettings = React.useCallback(\n (props: TerrainProps) => {\n activeViewport!.changeBackgroundMapProps({ terrainSettings: props });\n },\n [activeViewport],\n );\n\n const updateBackgroundMap = React.useCallback(\n (props: BackgroundMapProps) => {\n activeViewport!.changeBackgroundMapProps(props);\n },\n [activeViewport],\n );\n\n const [heightOriginMode, setHeightOriginMode] = React.useState(() => getHeightOriginModeKey(terrainSettings.heightOriginMode));\n const handleElevationTypeSelected = React.useCallback(\n (newValue: string): void => {\n if (newValue) {\n const newHeightOriginMode = getHeightOriginModeFromKey(newValue);\n updateTerrainSettings({ heightOriginMode: newHeightOriginMode });\n setHeightOriginMode(newValue);\n }\n },\n [updateTerrainSettings],\n );\n\n const [maskTransparency, setMaskTransparency] = React.useState(() =>\n backgroundMapSettings.planarClipMask.transparency === undefined ? undefined : Math.round(backgroundMapSettings.planarClipMask.transparency * 100) / 100,\n );\n\n const getNormalizedMaskTransparency = React.useCallback(() => {\n return maskTransparency === undefined ? 0 : maskTransparency;\n }, [maskTransparency]);\n\n const updateMaskingSettings = React.useCallback(\n (option: MapMaskingOption) => {\n if (option === MapMaskingOption.AllModels) {\n activeViewport!.changeBackgroundMapProps({\n planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: maskTransparency },\n });\n }\n if (option === MapMaskingOption.None) {\n activeViewport!.changeBackgroundMapProps({ planarClipMask: { mode: PlanarClipMaskMode.None } });\n }\n },\n [activeViewport, maskTransparency],\n );\n\n const [masking, setMasking] = React.useState(() => getMapMaskingFromBackgroundMapSetting(backgroundMapSettings));\n\n const onMaskingToggle = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked;\n const maskingOption = checked ? MapMaskingOption.AllModels : MapMaskingOption.None;\n updateMaskingSettings(maskingOption);\n setMasking(maskingOption);\n },\n [updateMaskingSettings],\n );\n\n const [overrideMaskTransparency, setOverrideMaskTransparency] = React.useState(() => backgroundMapSettings.planarClipMask.transparency !== undefined);\n\n const onOverrideMaskTransparencyToggle = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked;\n const trans = checked ? getNormalizedMaskTransparency() : undefined;\n activeViewport!.changeBackgroundMapProps({\n planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: trans },\n });\n\n setOverrideMaskTransparency(checked);\n },\n [activeViewport, getNormalizedMaskTransparency],\n );\n\n const handleElevationChange = React.useCallback(\n (value: number) => {\n if (value !== undefined) {\n updateBackgroundMap({ groundBias: value });\n setGroundBias(value);\n }\n },\n [updateBackgroundMap],\n );\n\n const handleAlphaChange = React.useCallback(\n (values: readonly number[]) => {\n const newTransparency = values[0] / 100;\n activeViewport!.changeBackgroundMapProps({ transparency: newTransparency });\n setTransparency(newTransparency);\n },\n [activeViewport],\n );\n\n const handleMaskTransparencyChange = React.useCallback(\n (values: readonly number[]) => {\n const newTransparency = values[0] / 100;\n activeViewport!.changeBackgroundMapProps({\n planarClipMask: { mode: PlanarClipMaskMode.Priority, priority: PlanarClipMaskPriority.BackgroundMap, transparency: newTransparency },\n });\n setMaskTransparency(newTransparency);\n },\n [activeViewport],\n );\n\n const [applyTerrain, setApplyTerrain] = React.useState(() => backgroundMapSettings.applyTerrain);\n\n const onToggleTerrain = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked;\n updateBackgroundMap({ applyTerrain: checked });\n setApplyTerrain(checked);\n },\n [updateBackgroundMap],\n );\n\n const [exaggeration, setExaggeration] = React.useState(() => terrainSettings.exaggeration);\n\n const handleExaggerationChange = React.useCallback(\n (value: number | undefined, _stringValue: string) => {\n if (undefined !== value) {\n updateTerrainSettings({ exaggeration: value });\n setExaggeration(value);\n }\n },\n [updateTerrainSettings],\n );\n\n const [terrainOrigin, setTerrainOrigin] = React.useState(() => terrainSettings.heightOrigin);\n\n const handleHeightOriginChange = React.useCallback(\n (value: number) => {\n if (undefined !== value) {\n updateTerrainSettings({ heightOrigin: value });\n setTerrainOrigin(value);\n }\n },\n [updateTerrainSettings],\n );\n\n const [useDepthBuffer, setUseDepthBuffer] = React.useState(() => backgroundMapSettings.useDepthBuffer);\n const onToggleUseDepthBuffer = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked;\n updateBackgroundMap({ useDepthBuffer: checked });\n setUseDepthBuffer(checked);\n },\n [updateBackgroundMap],\n );\n\n /** Disable commas and letters */\n const onKeyDown = React.useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.keyCode === 188 || (event.keyCode >= 65 && event.keyCode <= 90)) {\n event.preventDefault();\n }\n }, []);\n\n const [isLocatable, setIsLocatable] = React.useState(() => backgroundMapSettings.locatable);\n const onLocatableToggle = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked;\n updateBackgroundMap({ nonLocatable: !checked });\n setIsLocatable(checked);\n },\n [updateBackgroundMap],\n );\n\n const [transparencyLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.Transparency\"));\n const [terrainLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.Terrain\"));\n const [enableLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.Enable\"));\n const [elevationOffsetLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.ElevationOffset\"));\n const [useDepthBufferLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.UseDepthBuffer\"));\n const [modelHeightLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.ModelHeight\"));\n const [heightOriginLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.HeightOrigin\"));\n const [exaggerationLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.Exaggeration\"));\n const [locatableLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.Locatable\"));\n const [maskingLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.Mask\"));\n const [overrideMaskTransparencyLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.OverrideMaskTransparency\"));\n const [maskTransparencyLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Settings.MaskTransparency\"));\n\n const [tabIndex, setTabIndex] = React.useState(0);\n\n return (\n <Tabs labels={[<Tab key={\"general\"} label=\"General\" />, <Tab key={\"advanced\"} label=\"Advanced\" />]} onTabSelected={setTabIndex}>\n {tabIndex === 0 && (\n <>\n <div className=\"maplayers-settings-container\">\n <span className=\"map-manager-settings-label\">{transparencyLabel}</span>\n <Slider min={0} max={100} values={[transparency * 100]} onChange={handleAlphaChange} step={1} />\n\n <span className=\"map-manager-settings-label\">{locatableLabel}</span>\n {/* eslint-disable-next-line deprecation/deprecation */}\n <ToggleSwitch onChange={onLocatableToggle} checked={isLocatable} />\n\n <span className=\"map-manager-settings-label\">{maskingLabel}</span>\n {/* eslint-disable-next-line deprecation/deprecation */}\n <ToggleSwitch onChange={onMaskingToggle} checked={masking !== MapMaskingOption.None} />\n\n <span className=\"map-manager-settings-label\">{overrideMaskTransparencyLabel}</span>\n <ToggleSwitch disabled={masking === MapMaskingOption.None} onChange={onOverrideMaskTransparencyToggle} checked={overrideMaskTransparency} />\n\n <span className=\"map-manager-settings-label\">{maskTransparencyLabel}</span>\n <Slider\n disabled={masking === MapMaskingOption.None || !overrideMaskTransparency}\n min={0}\n max={100}\n values={[getNormalizedMaskTransparency() * 100]}\n onChange={handleMaskTransparencyChange}\n step={1}\n />\n\n <>\n <span className=\"map-manager-settings-label\">{elevationOffsetLabel}</span>\n <QuantityNumberInput\n disabled={applyTerrain}\n persistenceValue={groundBias}\n step={1}\n snap\n quantityType={QuantityType.LengthEngineering}\n onChange={handleElevationChange}\n onKeyDown={onKeyDown}\n />\n\n <span className=\"map-manager-settings-label\">{useDepthBufferLabel}</span>\n {/* eslint-disable-next-line deprecation/deprecation */}\n <ToggleSwitch disabled={applyTerrain} onChange={onToggleUseDepthBuffer} checked={useDepthBuffer} />\n </>\n </div>\n <div className=\"map-manager-settings-group\">\n <fieldset>\n <legend>{terrainLabel}</legend>\n\n <div className=\"maplayers-settings-container\">\n <span className=\"map-manager-settings-label\">{enableLabel}</span>\n {/* eslint-disable-next-line deprecation/deprecation */}\n <ToggleSwitch onChange={onToggleTerrain} checked={applyTerrain} />\n\n <span className=\"map-manager-settings-label\">{modelHeightLabel}</span>\n <QuantityNumberInput\n disabled={!applyTerrain}\n persistenceValue={terrainOrigin}\n snap\n quantityType={QuantityType.LengthEngineering}\n onChange={handleHeightOriginChange}\n onKeyDown={onKeyDown}\n />\n\n <span className=\"map-manager-settings-label\">{heightOriginLabel}</span>\n {/* elevation correction component: 'popoverProps' is needed here otherwise selecting an option closes the menu popup.*/}\n <Select\n popoverProps={{ appendTo: \"parent\" }}\n options={terrainHeightOptions.current}\n disabled={!applyTerrain}\n value={heightOriginMode}\n onChange={handleElevationTypeSelected}\n size=\"small\"\n />\n\n <span className=\"map-manager-settings-label\">{exaggerationLabel}</span>\n <NumberInput value={exaggeration} disabled={!applyTerrain} onChange={handleExaggerationChange} onKeyDown={onKeyDown} />\n </div>\n </fieldset>\n </div>\n </>\n )}\n {tabIndex === 1 && <CustomParamsSettingsPanel></CustomParamsSettingsPanel>}\n </Tabs>\n );\n}\n"]}
@@ -27,4 +27,4 @@ $hovered-icon-color: $buic-foreground-primary-tone;
27
27
 
28
28
  .map-manager-settings-terrain-container {
29
29
  margin-top: 1rem;
30
- }
30
+ }
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import "./MapSelectFeaturesDialog.scss";
3
- import { MapLayerSource } from "@itwin/core-frontend";
4
- import { MapSubLayerProps } from "@itwin/core-common";
3
+ import type { MapLayerSource } from "@itwin/core-frontend";
4
+ import type { MapSubLayerProps } from "@itwin/core-common";
5
5
  export interface MapSelectFeaturesProps {
6
6
  source: MapLayerSource;
7
7
  subLayers: MapSubLayerProps[];
@@ -1 +1 @@
1
- {"version":3,"file":"MapSelectFeaturesDialog.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapSelectFeaturesDialog.tsx"],"names":[],"mappings":";AAQA,OAAO,gCAAgC,CAAC;AAGxC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAKtD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAClD,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAKD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,eAyFpE"}
1
+ {"version":3,"file":"MapSelectFeaturesDialog.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapSelectFeaturesDialog.tsx"],"names":[],"mappings":";AAQA,OAAO,gCAAgC,CAAC;AAGxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAClD,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAKD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,eAiFpE"}
@@ -1,13 +1,37 @@
1
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
- // cSpell:ignore Modeless WMTS
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
7
25
  Object.defineProperty(exports, "__esModule", { value: true });
8
26
  exports.MapSelectFeaturesDialog = void 0;
27
+ const jsx_runtime_1 = require("react/jsx-runtime");
28
+ /*---------------------------------------------------------------------------------------------
29
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
30
+ * See LICENSE.md in the project root for license terms and full copyright notice.
31
+ *--------------------------------------------------------------------------------------------*/
32
+ // cSpell:ignore Modeless WMTS
9
33
  const core_react_1 = require("@itwin/core-react");
10
- const React = require("react");
34
+ const React = __importStar(require("react"));
11
35
  require("./MapSelectFeaturesDialog.scss");
12
36
  const mapLayers_1 = require("../../mapLayers");
13
37
  const SubLayersTree_1 = require("./SubLayersTree");
@@ -37,21 +61,12 @@ function MapSelectFeaturesDialog(props) {
37
61
  else if (hasTooManyVisibleLayers()) {
38
62
  warningMessage = mapLayers_1.MapLayersUI.translate("CustomAttach.TooManyLayersSelected", { layerCount: subLayers.filter((entry) => entry.visible).length });
39
63
  }
40
- return (React.createElement("div", { className: "map-layer-source-warnMessage" }, warningMessage !== undefined && React.createElement(React.Fragment, null,
41
- React.createElement(itwinui_react_1.Icon, { size: "small" },
42
- React.createElement(itwinui_icons_color_react_1.SvgStatusWarning, null)),
43
- React.createElement("span", { className: "map-layer-source-warnMessage-label" }, warningMessage))));
64
+ return ((0, jsx_runtime_1.jsx)("div", { className: "map-layer-source-warnMessage", children: warningMessage !== undefined && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(itwinui_react_1.Icon, { size: "small", children: (0, jsx_runtime_1.jsx)(itwinui_icons_color_react_1.SvgStatusWarning, {}) }), (0, jsx_runtime_1.jsx)("span", { className: "map-layer-source-warnMessage-label", children: warningMessage })] })) }));
44
65
  }
45
66
  function getFooter() {
46
- return (React.createElement("div", { className: "map-layer-features-footer" },
47
- React.createElement("div", { className: "map-layer-features-footer-warnMessage" }, renderWarningMessage()),
48
- React.createElement("div", { className: "map-layer-features-footer-buttons" },
49
- React.createElement(itwinui_react_1.Button, { className: "map-layer-features-footer-button", styleType: 'high-visibility', onClick: handleOk, disabled: !readyToSave() }, mapLayers_1.MapLayersUI.translate("Dialog.Add")),
50
- React.createElement(itwinui_react_1.Button, { className: "map-layer-features-footer-button", styleType: 'default', onClick: handleCancel }, mapLayers_1.MapLayersUI.translate("Dialog.Cancel")))));
67
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "map-layer-features-footer", children: [(0, jsx_runtime_1.jsx)("div", { className: "map-layer-features-footer-warnMessage", children: renderWarningMessage() }), (0, jsx_runtime_1.jsxs)("div", { className: "map-layer-features-footer-buttons", children: [(0, jsx_runtime_1.jsx)(itwinui_react_1.Button, { className: "map-layer-features-footer-button", styleType: "high-visibility", onClick: handleOk, disabled: !readyToSave(), children: mapLayers_1.MapLayersUI.translate("Dialog.Add") }), (0, jsx_runtime_1.jsx)(itwinui_react_1.Button, { className: "map-layer-features-footer-button", styleType: "default", onClick: handleCancel, children: mapLayers_1.MapLayersUI.translate("Dialog.Cancel") })] })] }));
51
68
  }
52
- return (React.createElement("div", { ref: dialogContainer },
53
- React.createElement(core_react_1.Dialog, { className: "map-layer-select-features-dialog", title: mapLayers_1.MapLayersUI.translate("CustomAttach.SelectLayersToCreate"), opened: true, resizable: true, movable: true, modal: true, footer: getFooter(), onClose: handleCancel, onEscape: handleCancel, minHeight: minHeight, maxWidth: 600, titleStyle: { paddingLeft: "10px" }, footerStyle: { paddingBottom: "10px", paddingRight: "10px" }, trapFocus: false },
54
- React.createElement(SubLayersTree_1.SubLayersTree, { expandMode: "full", checkboxStyle: "standard", subLayers: subLayers, onSubLayerStateChange: () => setSubLayers([...subLayers]) }))));
69
+ return ((0, jsx_runtime_1.jsx)("div", { ref: dialogContainer, children: (0, jsx_runtime_1.jsx)(core_react_1.Dialog, { className: "map-layer-select-features-dialog", title: mapLayers_1.MapLayersUI.translate("CustomAttach.SelectLayersToCreate"), opened: true, resizable: true, movable: true, modal: true, footer: getFooter(), onClose: handleCancel, onEscape: handleCancel, minHeight: minHeight, maxWidth: 600, titleStyle: { paddingLeft: "10px" }, footerStyle: { paddingBottom: "10px", paddingRight: "10px" }, trapFocus: false, children: (0, jsx_runtime_1.jsx)(SubLayersTree_1.SubLayersTree, { expandMode: "full", checkboxStyle: "standard", subLayers: subLayers, onSubLayerStateChange: () => setSubLayers([...subLayers]) }) }) }));
55
70
  }
56
71
  exports.MapSelectFeaturesDialog = MapSelectFeaturesDialog;
57
72
  //# sourceMappingURL=MapSelectFeaturesDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapSelectFeaturesDialog.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapSelectFeaturesDialog.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F,8BAA8B;;;AAE9B,kDAA2C;AAC3C,+BAA+B;AAC/B,0CAAwC;AAExC,+CAA8C;AAG9C,mDAAgD;AAChD,wDAAoD;AACpD,gFAAoE;AAQpE,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,gEAAgE;AAChE,SAAgB,uBAAuB,CAAC,KAA6B;IACnE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAElE,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACtC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEvB,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC1C,KAAK,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAC,EAAE,CAAA,KAAK,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAC,EAAE,CAAA,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC;IACrG,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAE7C,SAAS,oBAAoB;QAC3B,IAAI,cAAkC,CAAC;QAEvC,iCAAiC;QACjC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YACvB,cAAc,GAAG,uBAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;SACzE;aAAM,IAAI,uBAAuB,EAAE,EAAE;YACpC,cAAc,GAAG,uBAAW,CAAC,SAAS,CAAC,oCAAoC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAC,EAAE,CAAA,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC;SAC9I;QAED,OAAO,CACL,6BAAK,SAAS,EAAC,8BAA8B,IAC1C,cAAc,KAAK,SAAS,IAAI;YAC/B,oBAAC,oBAAI,IAAC,IAAI,EAAC,OAAO;gBAAC,oBAAC,4CAAgB,OAAoB,CAAO;YAC/D,8BAAM,SAAS,EAAC,oCAAoC,IAAE,cAAc,CAAS,CAC5E,CACC,CAAC,CAAC;IAEZ,CAAC;IAED,SAAS,SAAS;QAChB,OAAO,CACL,6BAAK,SAAS,EAAC,2BAA2B;YACxC,6BAAK,SAAS,EAAC,uCAAuC,IACnD,oBAAoB,EAAE,CACnB;YAEN,6BAAK,SAAS,EAAC,mCAAmC;gBAChD,oBAAC,sBAAM,IACL,SAAS,EAAC,kCAAkC,EAC5C,SAAS,EAAC,iBAAiB,EAC3B,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,CAAC,WAAW,EAAE,IAEvB,uBAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CAC7B;gBACT,oBAAC,sBAAM,IACL,SAAS,EAAC,kCAAkC,EAC5C,SAAS,EAAC,SAAS,EACnB,OAAO,EAAE,YAAY,IAEpB,uBAAW,CAAC,SAAS,CAAC,eAAe,CAAC,CAChC,CACL,CACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,6BAAK,GAAG,EAAE,eAAe;QACvB,oBAAC,mBAAM,IACL,SAAS,EAAC,kCAAkC,EAC5C,KAAK,EAAE,uBAAW,CAAC,SAAS,CAAC,mCAAmC,CAAC,EACjE,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,GAAG,EACb,UAAU,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EACnC,WAAW,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAC5D,SAAS,EAAE,KAAK;YAGhB,oBAAC,6BAAa,IAAC,UAAU,EAAC,MAAM,EAAC,aAAa,EAAC,UAAU,EAAC,SAAS,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAErI,CACJ,CACR,CAAC;AACJ,CAAC;AAzFD,0DAyFC","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// cSpell:ignore Modeless WMTS\n\nimport { Dialog } from \"@itwin/core-react\";\nimport * as React from \"react\";\nimport \"./MapSelectFeaturesDialog.scss\";\n\nimport { MapLayersUI } from \"../../mapLayers\";\nimport { MapLayerSource } from \"@itwin/core-frontend\";\nimport { MapSubLayerProps } from \"@itwin/core-common\";\nimport { SubLayersTree } from \"./SubLayersTree\";\nimport { Button, Icon } from \"@itwin/itwinui-react\";\nimport { SvgStatusWarning } from \"@itwin/itwinui-icons-color-react\";\n\nexport interface MapSelectFeaturesProps {\n source: MapLayerSource;\n subLayers: MapSubLayerProps[];\n handleOk: (subLayers: MapSubLayerProps[]) => void;\n handleCancel: () => void;\n}\nconst minHeight = 250;\nconst maxSubLayers = 30;\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function MapSelectFeaturesDialog(props: MapSelectFeaturesProps) {\n const [subLayers, setSubLayers] = React.useState(props.subLayers);\n\n const dialogContainer = React.useRef<HTMLDivElement>(null);\n\n const handleOk = React.useCallback(() => {\n props.handleOk(subLayers);\n }, [props, subLayers]);\n\n const handleCancel = React.useCallback(() => {\n props.handleCancel();\n }, [props]);\n\n const hasVisibleLayers = () => subLayers.some((entry)=>entry.visible);\n const hasTooManyVisibleLayers = () => subLayers.filter((entry)=>entry.visible).length > maxSubLayers;\n const readyToSave = () => hasVisibleLayers();\n\n function renderWarningMessage(): React.ReactNode {\n let warningMessage: string | undefined;\n\n // Get the proper warning message\n if (!hasVisibleLayers()) {\n warningMessage = MapLayersUI.translate(\"CustomAttach.NoLayersSelected\");\n } else if (hasTooManyVisibleLayers()) {\n warningMessage = MapLayersUI.translate(\"CustomAttach.TooManyLayersSelected\", { layerCount: subLayers.filter((entry)=>entry.visible).length});\n }\n\n return (\n <div className=\"map-layer-source-warnMessage\">\n {warningMessage !== undefined && <>\n <Icon size=\"small\"><SvgStatusWarning></SvgStatusWarning></Icon>\n <span className=\"map-layer-source-warnMessage-label\">{warningMessage}</span >\n </>}\n </div>);\n\n }\n\n function getFooter() {\n return (\n <div className=\"map-layer-features-footer\">\n <div className=\"map-layer-features-footer-warnMessage\">\n {renderWarningMessage()}\n </div>\n\n <div className=\"map-layer-features-footer-buttons\">\n <Button\n className=\"map-layer-features-footer-button\"\n styleType='high-visibility'\n onClick={handleOk}\n disabled={!readyToSave()}\n >\n {MapLayersUI.translate(\"Dialog.Add\")}\n </Button>\n <Button\n className=\"map-layer-features-footer-button\"\n styleType='default'\n onClick={handleCancel}\n >\n {MapLayersUI.translate(\"Dialog.Cancel\")}\n </Button>\n </div>\n </div>\n );\n }\n\n return (\n <div ref={dialogContainer}>\n <Dialog\n className=\"map-layer-select-features-dialog\"\n title={MapLayersUI.translate(\"CustomAttach.SelectLayersToCreate\")}\n opened={true}\n resizable={true}\n movable={true}\n modal={true}\n footer={getFooter()}\n onClose={handleCancel}\n onEscape={handleCancel}\n minHeight={minHeight}\n maxWidth={600}\n titleStyle={{ paddingLeft: \"10px\" }}\n footerStyle={{ paddingBottom: \"10px\", paddingRight: \"10px\" }}\n trapFocus={false}\n >\n {/* 'onSubLayerStateChange' is used to trigger hook state change only, no need to update subLayer objects */}\n <SubLayersTree expandMode=\"full\" checkboxStyle=\"standard\" subLayers={subLayers} onSubLayerStateChange={() => setSubLayers([...subLayers])}/>\n\n </Dialog>\n </div >\n );\n}\n"]}
1
+ {"version":3,"file":"MapSelectFeaturesDialog.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapSelectFeaturesDialog.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;gGAGgG;AAChG,8BAA8B;AAE9B,kDAA2C;AAC3C,6CAA+B;AAC/B,0CAAwC;AAExC,+CAA8C;AAG9C,mDAAgD;AAChD,wDAAoD;AACpD,gFAAoE;AAQpE,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,gEAAgE;AAChE,SAAgB,uBAAuB,CAAC,KAA6B;IACnE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAElE,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACtC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEvB,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC1C,KAAK,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxE,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC;IACvG,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAE7C,SAAS,oBAAoB;QAC3B,IAAI,cAAkC,CAAC;QAEvC,iCAAiC;QACjC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YACvB,cAAc,GAAG,uBAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;SACzE;aAAM,IAAI,uBAAuB,EAAE,EAAE;YACpC,cAAc,GAAG,uBAAW,CAAC,SAAS,CAAC,oCAAoC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACjJ;QAED,OAAO,CACL,gCAAK,SAAS,EAAC,8BAA8B,YAC1C,cAAc,KAAK,SAAS,IAAI,CAC/B,6DACE,uBAAC,oBAAI,IAAC,IAAI,EAAC,OAAO,YAChB,uBAAC,4CAAgB,KAAoB,GAChC,EACP,iCAAM,SAAS,EAAC,oCAAoC,YAAE,cAAc,GAAQ,IAC3E,CACJ,GACG,CACP,CAAC;IACJ,CAAC;IAED,SAAS,SAAS;QAChB,OAAO,CACL,iCAAK,SAAS,EAAC,2BAA2B,aACxC,gCAAK,SAAS,EAAC,uCAAuC,YAAE,oBAAoB,EAAE,GAAO,EAErF,iCAAK,SAAS,EAAC,mCAAmC,aAChD,uBAAC,sBAAM,IAAC,SAAS,EAAC,kCAAkC,EAAC,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,YACzH,uBAAW,CAAC,SAAS,CAAC,YAAY,CAAC,GAC7B,EACT,uBAAC,sBAAM,IAAC,SAAS,EAAC,kCAAkC,EAAC,SAAS,EAAC,SAAS,EAAC,OAAO,EAAE,YAAY,YAC3F,uBAAW,CAAC,SAAS,CAAC,eAAe,CAAC,GAChC,IACL,IACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,gCAAK,GAAG,EAAE,eAAe,YACvB,uBAAC,mBAAM,IACL,SAAS,EAAC,kCAAkC,EAC5C,KAAK,EAAE,uBAAW,CAAC,SAAS,CAAC,mCAAmC,CAAC,EACjE,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,GAAG,EACb,UAAU,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EACnC,WAAW,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAC5D,SAAS,EAAE,KAAK,YAGhB,uBAAC,6BAAa,IAAC,UAAU,EAAC,MAAM,EAAC,aAAa,EAAC,UAAU,EAAC,SAAS,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAI,GACtI,GACL,CACP,CAAC;AACJ,CAAC;AAjFD,0DAiFC","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// cSpell:ignore Modeless WMTS\n\nimport { Dialog } from \"@itwin/core-react\";\nimport * as React from \"react\";\nimport \"./MapSelectFeaturesDialog.scss\";\n\nimport { MapLayersUI } from \"../../mapLayers\";\nimport type { MapLayerSource } from \"@itwin/core-frontend\";\nimport type { MapSubLayerProps } from \"@itwin/core-common\";\nimport { SubLayersTree } from \"./SubLayersTree\";\nimport { Button, Icon } from \"@itwin/itwinui-react\";\nimport { SvgStatusWarning } from \"@itwin/itwinui-icons-color-react\";\n\nexport interface MapSelectFeaturesProps {\n source: MapLayerSource;\n subLayers: MapSubLayerProps[];\n handleOk: (subLayers: MapSubLayerProps[]) => void;\n handleCancel: () => void;\n}\nconst minHeight = 250;\nconst maxSubLayers = 30;\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function MapSelectFeaturesDialog(props: MapSelectFeaturesProps) {\n const [subLayers, setSubLayers] = React.useState(props.subLayers);\n\n const dialogContainer = React.useRef<HTMLDivElement>(null);\n\n const handleOk = React.useCallback(() => {\n props.handleOk(subLayers);\n }, [props, subLayers]);\n\n const handleCancel = React.useCallback(() => {\n props.handleCancel();\n }, [props]);\n\n const hasVisibleLayers = () => subLayers.some((entry) => entry.visible);\n const hasTooManyVisibleLayers = () => subLayers.filter((entry) => entry.visible).length > maxSubLayers;\n const readyToSave = () => hasVisibleLayers();\n\n function renderWarningMessage(): React.ReactNode {\n let warningMessage: string | undefined;\n\n // Get the proper warning message\n if (!hasVisibleLayers()) {\n warningMessage = MapLayersUI.translate(\"CustomAttach.NoLayersSelected\");\n } else if (hasTooManyVisibleLayers()) {\n warningMessage = MapLayersUI.translate(\"CustomAttach.TooManyLayersSelected\", { layerCount: subLayers.filter((entry) => entry.visible).length });\n }\n\n return (\n <div className=\"map-layer-source-warnMessage\">\n {warningMessage !== undefined && (\n <>\n <Icon size=\"small\">\n <SvgStatusWarning></SvgStatusWarning>\n </Icon>\n <span className=\"map-layer-source-warnMessage-label\">{warningMessage}</span>\n </>\n )}\n </div>\n );\n }\n\n function getFooter() {\n return (\n <div className=\"map-layer-features-footer\">\n <div className=\"map-layer-features-footer-warnMessage\">{renderWarningMessage()}</div>\n\n <div className=\"map-layer-features-footer-buttons\">\n <Button className=\"map-layer-features-footer-button\" styleType=\"high-visibility\" onClick={handleOk} disabled={!readyToSave()}>\n {MapLayersUI.translate(\"Dialog.Add\")}\n </Button>\n <Button className=\"map-layer-features-footer-button\" styleType=\"default\" onClick={handleCancel}>\n {MapLayersUI.translate(\"Dialog.Cancel\")}\n </Button>\n </div>\n </div>\n );\n }\n\n return (\n <div ref={dialogContainer}>\n <Dialog\n className=\"map-layer-select-features-dialog\"\n title={MapLayersUI.translate(\"CustomAttach.SelectLayersToCreate\")}\n opened={true}\n resizable={true}\n movable={true}\n modal={true}\n footer={getFooter()}\n onClose={handleCancel}\n onEscape={handleCancel}\n minHeight={minHeight}\n maxWidth={600}\n titleStyle={{ paddingLeft: \"10px\" }}\n footerStyle={{ paddingBottom: \"10px\", paddingRight: \"10px\" }}\n trapFocus={false}\n >\n {/* 'onSubLayerStateChange' is used to trigger hook state change only, no need to update subLayer objects */}\n <SubLayersTree expandMode=\"full\" checkboxStyle=\"standard\" subLayers={subLayers} onSubLayerStateChange={() => setSubLayers([...subLayers])} />\n </Dialog>\n </div>\n );\n}\n"]}
@@ -4,8 +4,7 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
 
6
6
  .map-layer-select-features-dialog {
7
- z-Index: 21000;
8
-
7
+ z-index: 21000;
9
8
  }
10
9
 
11
10
  .map-layer-select-features-dialog.core-dialog .core-dialog-container .core-dialog-area > .core-dialog-content {
@@ -14,4 +13,3 @@
14
13
  .map-layer-select-features-dialog .map-manager-sublayer-tree-content {
15
14
  min-height: 200px;
16
15
  }
17
-