@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.
- package/CHANGELOG.md +18 -2
- package/README.md +7 -7
- package/lib/cjs/BrowserStorage.d.ts.map +1 -1
- package/lib/cjs/BrowserStorage.js +23 -13
- package/lib/cjs/BrowserStorage.js.map +1 -1
- package/lib/cjs/CustomParamUtils.d.ts +1 -1
- package/lib/cjs/CustomParamUtils.d.ts.map +1 -1
- package/lib/cjs/CustomParamUtils.js +6 -3
- package/lib/cjs/CustomParamUtils.js.map +1 -1
- package/lib/cjs/CustomParamsMappingStorage.d.ts +1 -1
- package/lib/cjs/CustomParamsMappingStorage.d.ts.map +1 -1
- package/lib/cjs/CustomParamsMappingStorage.js +3 -3
- package/lib/cjs/CustomParamsMappingStorage.js.map +1 -1
- package/lib/cjs/CustomParamsStorage.d.ts +1 -1
- package/lib/cjs/CustomParamsStorage.d.ts.map +1 -1
- package/lib/cjs/CustomParamsStorage.js +3 -3
- package/lib/cjs/CustomParamsStorage.js.map +1 -1
- package/lib/cjs/MapLayerPreferences.d.ts +2 -1
- package/lib/cjs/MapLayerPreferences.d.ts.map +1 -1
- package/lib/cjs/MapLayerPreferences.js +50 -25
- package/lib/cjs/MapLayerPreferences.js.map +1 -1
- package/lib/cjs/MapLayersActionIds.d.ts +5 -0
- package/lib/cjs/MapLayersActionIds.d.ts.map +1 -0
- package/lib/cjs/MapLayersActionIds.js +10 -0
- package/lib/cjs/MapLayersActionIds.js.map +1 -0
- package/lib/cjs/MapLayersPrefBrowserStorage.d.ts.map +1 -1
- package/lib/cjs/MapLayersPrefBrowserStorage.js +4 -5
- package/lib/cjs/MapLayersPrefBrowserStorage.js.map +1 -1
- package/lib/cjs/PreferencesBrowserStorage.d.ts +17 -17
- package/lib/cjs/PreferencesBrowserStorage.d.ts.map +1 -1
- package/lib/cjs/PreferencesBrowserStorage.js +14 -14
- package/lib/cjs/PreferencesBrowserStorage.js.map +1 -1
- package/lib/cjs/map-layers.d.ts +1 -0
- package/lib/cjs/map-layers.d.ts.map +1 -1
- package/lib/cjs/map-layers.js +4 -3
- package/lib/cjs/map-layers.js.map +1 -1
- package/lib/cjs/mapLayers.d.ts +2 -2
- package/lib/cjs/mapLayers.d.ts.map +1 -1
- package/lib/cjs/mapLayers.js.map +1 -1
- package/lib/cjs/public/locales/en/mapLayers.json +179 -184
- package/lib/cjs/ui/FeatureInfoUiItemsProvider.d.ts +3 -4
- package/lib/cjs/ui/FeatureInfoUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/ui/FeatureInfoUiItemsProvider.js +48 -18
- package/lib/cjs/ui/FeatureInfoUiItemsProvider.js.map +1 -1
- package/lib/cjs/ui/Interfaces.d.ts +3 -3
- package/lib/cjs/ui/Interfaces.d.ts.map +1 -1
- package/lib/cjs/ui/Interfaces.js.map +1 -1
- package/lib/cjs/ui/MapLayersUiItemsProvider.d.ts +3 -2
- package/lib/cjs/ui/MapLayersUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/ui/MapLayersUiItemsProvider.js +2 -6
- package/lib/cjs/ui/MapLayersUiItemsProvider.js.map +1 -1
- package/lib/cjs/ui/widget/AttachLayerPopupButton.d.ts.map +1 -1
- package/lib/cjs/ui/widget/AttachLayerPopupButton.js +81 -46
- package/lib/cjs/ui/widget/AttachLayerPopupButton.js.map +1 -1
- package/lib/cjs/ui/widget/BasemapPanel.d.ts.map +1 -1
- package/lib/cjs/ui/widget/BasemapPanel.js +44 -25
- package/lib/cjs/ui/widget/BasemapPanel.js.map +1 -1
- package/lib/cjs/ui/widget/BasemapPanel.scss +2 -4
- package/lib/cjs/ui/widget/ConfirmMessageDialog.d.ts +1 -1
- package/lib/cjs/ui/widget/ConfirmMessageDialog.d.ts.map +1 -1
- package/lib/cjs/ui/widget/ConfirmMessageDialog.js +31 -8
- package/lib/cjs/ui/widget/ConfirmMessageDialog.js.map +1 -1
- package/lib/cjs/ui/widget/CustomParamEditDialog.d.ts +1 -1
- package/lib/cjs/ui/widget/CustomParamEditDialog.d.ts.map +1 -1
- package/lib/cjs/ui/widget/CustomParamEditDialog.js +34 -20
- package/lib/cjs/ui/widget/CustomParamEditDialog.js.map +1 -1
- package/lib/cjs/ui/widget/CustomParamEditDialog.scss +1 -2
- package/lib/cjs/ui/widget/CustomParamsSettings.d.ts.map +1 -1
- package/lib/cjs/ui/widget/CustomParamsSettings.js +42 -27
- package/lib/cjs/ui/widget/CustomParamsSettings.js.map +1 -1
- package/lib/cjs/ui/widget/CustomParamsSettings.scss +7 -9
- package/lib/cjs/ui/widget/FeatureInfoDataProvider.d.ts +3 -2
- package/lib/cjs/ui/widget/FeatureInfoDataProvider.d.ts.map +1 -1
- package/lib/cjs/ui/widget/FeatureInfoDataProvider.js +4 -2
- package/lib/cjs/ui/widget/FeatureInfoDataProvider.js.map +1 -1
- package/lib/cjs/ui/widget/FeatureInfoWidget.d.ts +1 -1
- package/lib/cjs/ui/widget/FeatureInfoWidget.d.ts.map +1 -1
- package/lib/cjs/ui/widget/FeatureInfoWidget.js +34 -15
- package/lib/cjs/ui/widget/FeatureInfoWidget.js.map +1 -1
- package/lib/cjs/ui/widget/MapLayerActionButtons.d.ts +1 -1
- package/lib/cjs/ui/widget/MapLayerActionButtons.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapLayerActionButtons.js +30 -17
- package/lib/cjs/ui/widget/MapLayerActionButtons.js.map +1 -1
- package/lib/cjs/ui/widget/MapLayerDroppable.d.ts +2 -2
- package/lib/cjs/ui/widget/MapLayerDroppable.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapLayerDroppable.js +64 -50
- package/lib/cjs/ui/widget/MapLayerDroppable.js.map +1 -1
- package/lib/cjs/ui/widget/MapLayerManager.d.ts +2 -2
- package/lib/cjs/ui/widget/MapLayerManager.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapLayerManager.js +158 -84
- package/lib/cjs/ui/widget/MapLayerManager.js.map +1 -1
- package/lib/cjs/ui/widget/MapLayerManager.scss +3 -6
- package/lib/cjs/ui/widget/MapLayerSettingsMenu.d.ts +2 -2
- package/lib/cjs/ui/widget/MapLayerSettingsMenu.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapLayerSettingsMenu.js +33 -13
- package/lib/cjs/ui/widget/MapLayerSettingsMenu.js.map +1 -1
- package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.js +36 -14
- package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.js.map +1 -1
- package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.scss +5 -5
- package/lib/cjs/ui/widget/MapLayersWidget.d.ts +1 -1
- package/lib/cjs/ui/widget/MapLayersWidget.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapLayersWidget.js +34 -11
- package/lib/cjs/ui/widget/MapLayersWidget.js.map +1 -1
- package/lib/cjs/ui/widget/MapManagerMapLayersHeader.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapManagerMapLayersHeader.js +5 -8
- package/lib/cjs/ui/widget/MapManagerMapLayersHeader.js.map +1 -1
- package/lib/cjs/ui/widget/MapManagerSettings.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapManagerSettings.js +55 -56
- package/lib/cjs/ui/widget/MapManagerSettings.js.map +1 -1
- package/lib/cjs/ui/widget/MapManagerSettings.scss +1 -1
- package/lib/cjs/ui/widget/MapSelectFeaturesDialog.d.ts +2 -2
- package/lib/cjs/ui/widget/MapSelectFeaturesDialog.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapSelectFeaturesDialog.js +33 -18
- package/lib/cjs/ui/widget/MapSelectFeaturesDialog.js.map +1 -1
- package/lib/cjs/ui/widget/MapSelectFeaturesDialog.scss +1 -3
- package/lib/cjs/ui/widget/MapUrlDialog.d.ts +4 -3
- package/lib/cjs/ui/widget/MapUrlDialog.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapUrlDialog.js +104 -81
- package/lib/cjs/ui/widget/MapUrlDialog.js.map +1 -1
- package/lib/cjs/ui/widget/MapUrlDialog.scss +6 -7
- package/lib/cjs/ui/widget/SelectApiKey.d.ts.map +1 -1
- package/lib/cjs/ui/widget/SelectApiKey.js +38 -10
- package/lib/cjs/ui/widget/SelectApiKey.js.map +1 -1
- package/lib/cjs/ui/widget/SelectCustomParam.d.ts.map +1 -1
- package/lib/cjs/ui/widget/SelectCustomParam.js +40 -11
- package/lib/cjs/ui/widget/SelectCustomParam.js.map +1 -1
- package/lib/cjs/ui/widget/SelectMapFormat.d.ts +3 -3
- package/lib/cjs/ui/widget/SelectMapFormat.d.ts.map +1 -1
- package/lib/cjs/ui/widget/SelectMapFormat.js +36 -16
- package/lib/cjs/ui/widget/SelectMapFormat.js.map +1 -1
- package/lib/cjs/ui/widget/SubLayersDataProvider.d.ts +2 -2
- package/lib/cjs/ui/widget/SubLayersDataProvider.d.ts.map +1 -1
- package/lib/cjs/ui/widget/SubLayersDataProvider.js +13 -9
- package/lib/cjs/ui/widget/SubLayersDataProvider.js.map +1 -1
- package/lib/cjs/ui/widget/SubLayersPopupButton.d.ts +1 -1
- package/lib/cjs/ui/widget/SubLayersPopupButton.d.ts.map +1 -1
- package/lib/cjs/ui/widget/SubLayersPopupButton.js +30 -12
- package/lib/cjs/ui/widget/SubLayersPopupButton.js.map +1 -1
- package/lib/cjs/ui/widget/SubLayersTree.d.ts +2 -2
- package/lib/cjs/ui/widget/SubLayersTree.d.ts.map +1 -1
- package/lib/cjs/ui/widget/SubLayersTree.js +83 -45
- package/lib/cjs/ui/widget/SubLayersTree.js.map +1 -1
- package/lib/cjs/ui/widget/SubLayersTree.scss +4 -7
- package/lib/cjs/ui/widget/TransparencyPopupButton.d.ts.map +1 -1
- package/lib/cjs/ui/widget/TransparencyPopupButton.js +33 -16
- package/lib/cjs/ui/widget/TransparencyPopupButton.js.map +1 -1
- package/lib/cjs/ui/widget/TransparencyPopupButton.scss +1 -2
- package/lib/cjs/ui/widget/UserPreferencesStorageOptions.d.ts +1 -1
- package/lib/cjs/ui/widget/UserPreferencesStorageOptions.d.ts.map +1 -1
- package/lib/cjs/ui/widget/UserPreferencesStorageOptions.js +2 -8
- package/lib/cjs/ui/widget/UserPreferencesStorageOptions.js.map +1 -1
- package/lib/esm/BrowserStorage.d.ts.map +1 -1
- package/lib/esm/BrowserStorage.js +23 -13
- package/lib/esm/BrowserStorage.js.map +1 -1
- package/lib/esm/CustomParamUtils.d.ts +1 -1
- package/lib/esm/CustomParamUtils.d.ts.map +1 -1
- package/lib/esm/CustomParamUtils.js +6 -3
- package/lib/esm/CustomParamUtils.js.map +1 -1
- package/lib/esm/CustomParamsMappingStorage.d.ts +1 -1
- package/lib/esm/CustomParamsMappingStorage.d.ts.map +1 -1
- package/lib/esm/CustomParamsMappingStorage.js +3 -3
- package/lib/esm/CustomParamsMappingStorage.js.map +1 -1
- package/lib/esm/CustomParamsStorage.d.ts +1 -1
- package/lib/esm/CustomParamsStorage.d.ts.map +1 -1
- package/lib/esm/CustomParamsStorage.js +3 -3
- package/lib/esm/CustomParamsStorage.js.map +1 -1
- package/lib/esm/MapLayerPreferences.d.ts +2 -1
- package/lib/esm/MapLayerPreferences.d.ts.map +1 -1
- package/lib/esm/MapLayerPreferences.js +50 -25
- package/lib/esm/MapLayerPreferences.js.map +1 -1
- package/lib/esm/MapLayersActionIds.d.ts +5 -0
- package/lib/esm/MapLayersActionIds.d.ts.map +1 -0
- package/lib/esm/MapLayersActionIds.js +7 -0
- package/lib/esm/MapLayersActionIds.js.map +1 -0
- package/lib/esm/MapLayersPrefBrowserStorage.d.ts.map +1 -1
- package/lib/esm/MapLayersPrefBrowserStorage.js +4 -5
- package/lib/esm/MapLayersPrefBrowserStorage.js.map +1 -1
- package/lib/esm/PreferencesBrowserStorage.d.ts +17 -17
- package/lib/esm/PreferencesBrowserStorage.d.ts.map +1 -1
- package/lib/esm/PreferencesBrowserStorage.js +14 -14
- package/lib/esm/PreferencesBrowserStorage.js.map +1 -1
- package/lib/esm/map-layers.d.ts +1 -0
- package/lib/esm/map-layers.d.ts.map +1 -1
- package/lib/esm/map-layers.js +4 -3
- package/lib/esm/map-layers.js.map +1 -1
- package/lib/esm/mapLayers.d.ts +2 -2
- package/lib/esm/mapLayers.d.ts.map +1 -1
- package/lib/esm/mapLayers.js.map +1 -1
- package/lib/esm/public/locales/en/mapLayers.json +179 -184
- package/lib/esm/ui/FeatureInfoUiItemsProvider.d.ts +3 -4
- package/lib/esm/ui/FeatureInfoUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/ui/FeatureInfoUiItemsProvider.js +48 -18
- package/lib/esm/ui/FeatureInfoUiItemsProvider.js.map +1 -1
- package/lib/esm/ui/Interfaces.d.ts +3 -3
- package/lib/esm/ui/Interfaces.d.ts.map +1 -1
- package/lib/esm/ui/Interfaces.js.map +1 -1
- package/lib/esm/ui/MapLayersUiItemsProvider.d.ts +3 -2
- package/lib/esm/ui/MapLayersUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/ui/MapLayersUiItemsProvider.js +2 -6
- package/lib/esm/ui/MapLayersUiItemsProvider.js.map +1 -1
- package/lib/esm/ui/widget/AttachLayerPopupButton.d.ts.map +1 -1
- package/lib/esm/ui/widget/AttachLayerPopupButton.js +57 -45
- package/lib/esm/ui/widget/AttachLayerPopupButton.js.map +1 -1
- package/lib/esm/ui/widget/BasemapPanel.d.ts.map +1 -1
- package/lib/esm/ui/widget/BasemapPanel.js +19 -23
- package/lib/esm/ui/widget/BasemapPanel.js.map +1 -1
- package/lib/esm/ui/widget/BasemapPanel.scss +2 -4
- package/lib/esm/ui/widget/ConfirmMessageDialog.d.ts +1 -1
- package/lib/esm/ui/widget/ConfirmMessageDialog.d.ts.map +1 -1
- package/lib/esm/ui/widget/ConfirmMessageDialog.js +5 -5
- package/lib/esm/ui/widget/ConfirmMessageDialog.js.map +1 -1
- package/lib/esm/ui/widget/CustomParamEditDialog.d.ts +1 -1
- package/lib/esm/ui/widget/CustomParamEditDialog.d.ts.map +1 -1
- package/lib/esm/ui/widget/CustomParamEditDialog.js +9 -18
- package/lib/esm/ui/widget/CustomParamEditDialog.js.map +1 -1
- package/lib/esm/ui/widget/CustomParamEditDialog.scss +1 -2
- package/lib/esm/ui/widget/CustomParamsSettings.d.ts.map +1 -1
- package/lib/esm/ui/widget/CustomParamsSettings.js +17 -25
- package/lib/esm/ui/widget/CustomParamsSettings.js.map +1 -1
- package/lib/esm/ui/widget/CustomParamsSettings.scss +7 -9
- package/lib/esm/ui/widget/FeatureInfoDataProvider.d.ts +3 -2
- package/lib/esm/ui/widget/FeatureInfoDataProvider.d.ts.map +1 -1
- package/lib/esm/ui/widget/FeatureInfoDataProvider.js +4 -2
- package/lib/esm/ui/widget/FeatureInfoDataProvider.js.map +1 -1
- package/lib/esm/ui/widget/FeatureInfoWidget.d.ts +1 -1
- package/lib/esm/ui/widget/FeatureInfoWidget.d.ts.map +1 -1
- package/lib/esm/ui/widget/FeatureInfoWidget.js +10 -14
- package/lib/esm/ui/widget/FeatureInfoWidget.js.map +1 -1
- package/lib/esm/ui/widget/MapLayerActionButtons.d.ts +1 -1
- package/lib/esm/ui/widget/MapLayerActionButtons.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapLayerActionButtons.js +6 -16
- package/lib/esm/ui/widget/MapLayerActionButtons.js.map +1 -1
- package/lib/esm/ui/widget/MapLayerDroppable.d.ts +2 -2
- package/lib/esm/ui/widget/MapLayerDroppable.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapLayerDroppable.js +38 -47
- package/lib/esm/ui/widget/MapLayerDroppable.js.map +1 -1
- package/lib/esm/ui/widget/MapLayerManager.d.ts +2 -2
- package/lib/esm/ui/widget/MapLayerManager.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapLayerManager.js +134 -83
- package/lib/esm/ui/widget/MapLayerManager.js.map +1 -1
- package/lib/esm/ui/widget/MapLayerManager.scss +3 -6
- package/lib/esm/ui/widget/MapLayerSettingsMenu.d.ts +2 -2
- package/lib/esm/ui/widget/MapLayerSettingsMenu.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapLayerSettingsMenu.js +9 -12
- package/lib/esm/ui/widget/MapLayerSettingsMenu.js.map +1 -1
- package/lib/esm/ui/widget/MapLayerSettingsPopupButton.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapLayerSettingsPopupButton.js +11 -12
- package/lib/esm/ui/widget/MapLayerSettingsPopupButton.js.map +1 -1
- package/lib/esm/ui/widget/MapLayerSettingsPopupButton.scss +5 -5
- package/lib/esm/ui/widget/MapLayersWidget.d.ts +1 -1
- package/lib/esm/ui/widget/MapLayersWidget.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapLayersWidget.js +9 -9
- package/lib/esm/ui/widget/MapLayersWidget.js.map +1 -1
- package/lib/esm/ui/widget/MapManagerMapLayersHeader.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapManagerMapLayersHeader.js +5 -8
- package/lib/esm/ui/widget/MapManagerMapLayersHeader.js.map +1 -1
- package/lib/esm/ui/widget/MapManagerSettings.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapManagerSettings.js +29 -53
- package/lib/esm/ui/widget/MapManagerSettings.js.map +1 -1
- package/lib/esm/ui/widget/MapManagerSettings.scss +1 -1
- package/lib/esm/ui/widget/MapSelectFeaturesDialog.d.ts +2 -2
- package/lib/esm/ui/widget/MapSelectFeaturesDialog.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapSelectFeaturesDialog.js +7 -15
- package/lib/esm/ui/widget/MapSelectFeaturesDialog.js.map +1 -1
- package/lib/esm/ui/widget/MapSelectFeaturesDialog.scss +1 -3
- package/lib/esm/ui/widget/MapUrlDialog.d.ts +4 -3
- package/lib/esm/ui/widget/MapUrlDialog.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapUrlDialog.js +79 -79
- package/lib/esm/ui/widget/MapUrlDialog.js.map +1 -1
- package/lib/esm/ui/widget/MapUrlDialog.scss +6 -7
- package/lib/esm/ui/widget/SelectApiKey.d.ts.map +1 -1
- package/lib/esm/ui/widget/SelectApiKey.js +12 -7
- package/lib/esm/ui/widget/SelectApiKey.js.map +1 -1
- package/lib/esm/ui/widget/SelectCustomParam.d.ts.map +1 -1
- package/lib/esm/ui/widget/SelectCustomParam.js +14 -8
- package/lib/esm/ui/widget/SelectCustomParam.js.map +1 -1
- package/lib/esm/ui/widget/SelectMapFormat.d.ts +3 -3
- package/lib/esm/ui/widget/SelectMapFormat.d.ts.map +1 -1
- package/lib/esm/ui/widget/SelectMapFormat.js +11 -14
- package/lib/esm/ui/widget/SelectMapFormat.js.map +1 -1
- package/lib/esm/ui/widget/SubLayersDataProvider.d.ts +2 -2
- package/lib/esm/ui/widget/SubLayersDataProvider.d.ts.map +1 -1
- package/lib/esm/ui/widget/SubLayersDataProvider.js +13 -9
- package/lib/esm/ui/widget/SubLayersDataProvider.js.map +1 -1
- package/lib/esm/ui/widget/SubLayersPopupButton.d.ts +1 -1
- package/lib/esm/ui/widget/SubLayersPopupButton.d.ts.map +1 -1
- package/lib/esm/ui/widget/SubLayersPopupButton.js +6 -11
- package/lib/esm/ui/widget/SubLayersPopupButton.js.map +1 -1
- package/lib/esm/ui/widget/SubLayersTree.d.ts +2 -2
- package/lib/esm/ui/widget/SubLayersTree.d.ts.map +1 -1
- package/lib/esm/ui/widget/SubLayersTree.js +59 -44
- package/lib/esm/ui/widget/SubLayersTree.js.map +1 -1
- package/lib/esm/ui/widget/SubLayersTree.scss +4 -7
- package/lib/esm/ui/widget/TransparencyPopupButton.d.ts.map +1 -1
- package/lib/esm/ui/widget/TransparencyPopupButton.js +8 -14
- package/lib/esm/ui/widget/TransparencyPopupButton.js.map +1 -1
- package/lib/esm/ui/widget/TransparencyPopupButton.scss +1 -2
- package/lib/esm/ui/widget/UserPreferencesStorageOptions.d.ts +1 -1
- package/lib/esm/ui/widget/UserPreferencesStorageOptions.d.ts.map +1 -1
- package/lib/esm/ui/widget/UserPreferencesStorageOptions.js +2 -8
- package/lib/esm/ui/widget/UserPreferencesStorageOptions.js.map +1 -1
- package/lib/public/locales/en/mapLayers.json +179 -184
- package/package.json +9 -21
|
@@ -1,14 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
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
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.BasemapPanel = void 0;
|
|
27
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
2
28
|
/*---------------------------------------------------------------------------------------------
|
|
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
32
|
/* eslint-disable deprecation/deprecation */
|
|
7
33
|
// cSpell:ignore droppable Sublayer Basemap
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.BasemapPanel = void 0;
|
|
10
34
|
require("./BasemapPanel.scss");
|
|
11
|
-
const React = require("react");
|
|
35
|
+
const React = __importStar(require("react"));
|
|
12
36
|
const appui_react_1 = require("@itwin/appui-react");
|
|
13
37
|
const core_common_1 = require("@itwin/core-common");
|
|
14
38
|
const core_react_1 = require("@itwin/core-react");
|
|
@@ -81,15 +105,18 @@ function BasemapPanel(props) {
|
|
|
81
105
|
const handleMapImageryChanged = React.useCallback((args) => {
|
|
82
106
|
const baseMap = args.backgroundBase;
|
|
83
107
|
// Optimization: If serialized 'backgroundBase' objects are identical, skip refresh
|
|
84
|
-
if (JSON.stringify(baseMap.toJSON()) === JSON.stringify(selectedBaseMap?.toJSON()))
|
|
108
|
+
if (JSON.stringify(baseMap.toJSON()) === JSON.stringify(selectedBaseMap?.toJSON())) {
|
|
85
109
|
return;
|
|
110
|
+
}
|
|
86
111
|
setSelectedBaseMap(baseMap); // cache current base map objects
|
|
87
112
|
updateBaseMapOptions(baseMap);
|
|
88
113
|
if (baseMap instanceof core_common_1.ImageMapLayerSettings) {
|
|
89
|
-
if (baseMap.transparency !== baseMapTransparencyValue)
|
|
114
|
+
if (baseMap.transparency !== baseMapTransparencyValue) {
|
|
90
115
|
setBaseMapTransparencyValue(baseMap.transparency);
|
|
91
|
-
|
|
116
|
+
}
|
|
117
|
+
if (baseMap.visible !== baseMapVisible) {
|
|
92
118
|
setBaseMapVisible(baseMap.visible);
|
|
119
|
+
}
|
|
93
120
|
}
|
|
94
121
|
else if (baseMap instanceof core_common_1.ColorDef) {
|
|
95
122
|
if (baseMap.getAlpha() !== baseMapTransparencyValue) {
|
|
@@ -122,9 +149,9 @@ function BasemapPanel(props) {
|
|
|
122
149
|
}, [activeViewport]);
|
|
123
150
|
// This effect is only to keep a custom base map option when a 'default' base map is picked.
|
|
124
151
|
React.useEffect(() => {
|
|
125
|
-
if (selectedBaseMap instanceof core_common_1.BaseMapLayerSettings
|
|
126
|
-
|
|
127
|
-
|
|
152
|
+
if (selectedBaseMap instanceof core_common_1.BaseMapLayerSettings &&
|
|
153
|
+
!selectedBaseMap.provider &&
|
|
154
|
+
undefined === baseMapOptions.find((opt) => opt.label === selectedBaseMap.name)) {
|
|
128
155
|
setCustomBaseMap(selectedBaseMap);
|
|
129
156
|
}
|
|
130
157
|
}, [baseMapOptions, selectedBaseMap]);
|
|
@@ -139,8 +166,8 @@ function BasemapPanel(props) {
|
|
|
139
166
|
core_common_1.ColorDef.create(core_common_1.ColorByName.darkBrown),
|
|
140
167
|
]);
|
|
141
168
|
const baseIsColor = React.useMemo(() => selectedBaseMap instanceof core_common_1.ColorDef, [selectedBaseMap]);
|
|
142
|
-
const baseIsMap = React.useMemo(() => !baseIsColor &&
|
|
143
|
-
const bgColor = React.useMemo(() => baseIsColor ? selectedBaseMap.toJSON() : presetColors[0].toJSON(), [baseIsColor, selectedBaseMap, presetColors]);
|
|
169
|
+
const baseIsMap = React.useMemo(() => !baseIsColor && selectedBaseMap !== undefined, [baseIsColor, selectedBaseMap]);
|
|
170
|
+
const bgColor = React.useMemo(() => (baseIsColor ? selectedBaseMap.toJSON() : presetColors[0].toJSON()), [baseIsColor, selectedBaseMap, presetColors]);
|
|
144
171
|
const [colorDialogTitle] = React.useState(mapLayers_1.MapLayersUI.localization.getLocalizedString("mapLayers:ColorDialog.Title"));
|
|
145
172
|
const [selectedBaseMapValue, setSelectedBaseMapValue] = React.useState({ value: "", label: "" });
|
|
146
173
|
React.useEffect(() => {
|
|
@@ -190,8 +217,8 @@ function BasemapPanel(props) {
|
|
|
190
217
|
}, []);
|
|
191
218
|
const handleBgColorClick = React.useCallback((newColor, e) => {
|
|
192
219
|
e.preventDefault();
|
|
193
|
-
appui_react_1.UiFramework.dialogs.modal.open(
|
|
194
|
-
}, [presetColors, handleBackgroundColorDialogOk]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
220
|
+
appui_react_1.UiFramework.dialogs.modal.open((0, jsx_runtime_1.jsx)(imodel_components_react_1.ColorPickerDialog, { dialogTitle: colorDialogTitle, color: newColor, colorPresets: presetColors, colorInputType: "rgb", onOkResult: handleBackgroundColorDialogOk, onCancelResult: handleBackgroundColorDialogCancel }));
|
|
221
|
+
}, [colorDialogTitle, presetColors, handleBackgroundColorDialogOk, handleBackgroundColorDialogCancel]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
195
222
|
const handleBaseMapSelection = React.useCallback((value) => {
|
|
196
223
|
if (activeViewport && value) {
|
|
197
224
|
if (value === customBaseMapValue && customBaseMap) {
|
|
@@ -229,15 +256,7 @@ function BasemapPanel(props) {
|
|
|
229
256
|
const [baseLayerLabel] = React.useState(mapLayers_1.MapLayersUI.localization.getLocalizedString("mapLayers:Basemap.BaseLayer"));
|
|
230
257
|
const [selectBaseMapLabel] = React.useState(mapLayers_1.MapLayersUI.localization.getLocalizedString("mapLayers:Basemap.SelectBaseMap"));
|
|
231
258
|
const [toggleVisibility] = React.useState(mapLayers_1.MapLayersUI.localization.getLocalizedString("mapLayers:Widget.ToggleVisibility"));
|
|
232
|
-
return (
|
|
233
|
-
React.createElement("span", { className: "map-manager-base-label" }, baseLayerLabel),
|
|
234
|
-
React.createElement("div", { className: "map-manager-base-item" },
|
|
235
|
-
React.createElement(itwinui_react_1.Button, { className: "map-manager-basemap-visibility map-manager-visibility-icon", size: "small", styleType: "borderless", title: toggleVisibility, onClick: handleVisibilityChange, disabled: props.disabled || !activeViewport || !(activeViewport.displayStyle.backgroundMapBase instanceof core_common_1.ImageMapLayerSettings) },
|
|
236
|
-
React.createElement(core_react_1.WebFontIcon, { iconName: baseMapVisible ? "icon-visibility" : "icon-visibility-hide-2" })),
|
|
237
|
-
React.createElement(itwinui_react_1.Select, { className: "map-manager-base-item-select", options: baseMapOptions, placeholder: selectBaseMapLabel, value: selectedBaseMapValue.value, onChange: handleBaseMapSelection, size: "small", disabled: props.disabled }),
|
|
238
|
-
baseIsColor &&
|
|
239
|
-
React.createElement(imodel_components_react_1.ColorSwatch, { className: "map-manager-base-item-color", colorDef: core_common_1.ColorDef.fromJSON(bgColor), round: false, onColorPick: handleBgColorClick }),
|
|
240
|
-
React.createElement(TransparencyPopupButton_1.TransparencyPopupButton, { disabled: props.disabled, transparency: baseMapTransparencyValue, onTransparencyChange: handleBasemapTransparencyChange }))));
|
|
259
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { className: "map-manager-base-label", children: baseLayerLabel }), (0, jsx_runtime_1.jsxs)("div", { className: "map-manager-base-item", children: [(0, jsx_runtime_1.jsx)(itwinui_react_1.Button, { className: "map-manager-basemap-visibility map-manager-visibility-icon", size: "small", styleType: "borderless", title: toggleVisibility, onClick: handleVisibilityChange, disabled: props.disabled || !activeViewport || !(activeViewport.displayStyle.backgroundMapBase instanceof core_common_1.ImageMapLayerSettings), children: (0, jsx_runtime_1.jsx)(core_react_1.WebFontIcon, { iconName: baseMapVisible ? "icon-visibility" : "icon-visibility-hide-2" }) }), (0, jsx_runtime_1.jsx)(itwinui_react_1.Select, { className: "map-manager-base-item-select", options: baseMapOptions, placeholder: selectBaseMapLabel, value: selectedBaseMapValue.value, onChange: handleBaseMapSelection, size: "small", disabled: props.disabled }), baseIsColor && ((0, jsx_runtime_1.jsx)(imodel_components_react_1.ColorSwatch, { className: "map-manager-base-item-color", colorDef: core_common_1.ColorDef.fromJSON(bgColor), round: false, onColorPick: handleBgColorClick })), (0, jsx_runtime_1.jsx)(TransparencyPopupButton_1.TransparencyPopupButton, { disabled: props.disabled, transparency: baseMapTransparencyValue, onTransparencyChange: handleBasemapTransparencyChange })] })] }));
|
|
241
260
|
}
|
|
242
261
|
exports.BasemapPanel = BasemapPanel;
|
|
243
262
|
//# sourceMappingURL=BasemapPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasemapPanel.js","sourceRoot":"","sources":["../../../../src/ui/widget/BasemapPanel.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/* eslint-disable deprecation/deprecation */\n// cSpell:ignore droppable Sublayer Basemap\n\nimport \"./BasemapPanel.scss\";\nimport * as React from \"react\";\nimport { UiFramework } from \"@itwin/appui-react\";\nimport {\n BackgroundMapType, BaseLayerSettings, BaseMapLayerSettings, ColorByName, ColorDef, ImageMapLayerSettings, MapImagerySettings, MapLayerProps,\n} from \"@itwin/core-common\";\nimport { Viewport } from \"@itwin/core-frontend\";\nimport { WebFontIcon } from \"@itwin/core-react\";\nimport { ColorPickerDialog, ColorSwatch } from \"@itwin/imodel-components-react\";\nimport { Button, Select, SelectOption } from \"@itwin/itwinui-react\";\nimport { MapLayersUI } from \"../../mapLayers\";\nimport { useSourceMapContext } from \"./MapLayerManager\";\nimport { TransparencyPopupButton } from \"./TransparencyPopupButton\";\n\nconst customBaseMapValue = \"customBaseMap\";\nconst getSelectKeyFromProvider = (base: BaseMapLayerSettings) => `${base.provider ? `${base.provider.name}.${BackgroundMapType[base.provider.type]}` : `${base.name}`}`;\n\ninterface BasemapPanelProps {\n disabled?: boolean;\n}\n\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function BasemapPanel(props: BasemapPanelProps) {\n const [useColorLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Basemap.ColorFill\"));\n const { activeViewport, bases } = useSourceMapContext();\n const [selectedBaseMap, setSelectedBaseMap] = React.useState<BaseLayerSettings | undefined>(()=> {\n return activeViewport?.displayStyle.settings.mapImagery.backgroundBase;\n });\n const [baseMapTransparencyValue, setBaseMapTransparencyValue] = React.useState(() => {\n if (activeViewport) {\n const mapImagery = activeViewport.displayStyle.settings.mapImagery;\n if (mapImagery.backgroundBase instanceof ImageMapLayerSettings) {\n return mapImagery.backgroundBase.transparency;\n } else if (mapImagery.backgroundBase instanceof ColorDef ) {\n return mapImagery.backgroundBase.getAlpha()/255;\n } else {\n return 0;\n }\n } else {\n return 0;\n }\n });\n const [customBaseMap, setCustomBaseMap] = React.useState<BaseMapLayerSettings|undefined>();\n const [baseMapVisible, setBaseMapVisible] = React.useState(() => {\n if (activeViewport && activeViewport.displayStyle.backgroundMapBase instanceof ImageMapLayerSettings) {\n return activeViewport.displayStyle.backgroundMapBase.visible;\n }\n return false;\n });\n\n const getBaseMapOptions = React.useCallback((baseMap: BaseLayerSettings|undefined) => {\n const baseOptions: SelectOption<string>[] = [];\n\n baseOptions.push({ value: useColorLabel, label: useColorLabel });\n\n if (bases) {\n baseOptions.push(...bases.map((bgProvider) => {\n const value = getSelectKeyFromProvider(bgProvider);\n const label = MapLayersUI.translate(`WellKnownBaseMaps.${value}`);\n return { value, label };\n } ));\n }\n\n // Add new custom base map definition (avoid adding duplicate entry)\n if (baseMap instanceof BaseMapLayerSettings && !baseMap.provider) {\n // Add new option only if not created duplicate (Support of base map definition without provider)\n if (undefined === baseOptions.find((opt)=>opt.label === baseMap.name)) {\n baseOptions.push({value: customBaseMapValue, label: baseMap.name});\n }\n } else if (customBaseMap) {\n // Add previously defined custom map definition\n baseOptions.push({value: customBaseMapValue, label: customBaseMap.name});\n }\n return baseOptions;\n\n }, [bases, customBaseMap, useColorLabel]);\n\n const [baseMapOptions, setBaseMapOptions] = React.useState<SelectOption<string>[]>(()=>getBaseMapOptions(selectedBaseMap));\n\n const updateBaseMapOptions = React.useCallback((baseMap: BaseLayerSettings|undefined) => {\n setBaseMapOptions(getBaseMapOptions(baseMap));\n }, [getBaseMapOptions]);\n\n const handleMapImageryChanged = React.useCallback((args: Readonly<MapImagerySettings>) => {\n\n const baseMap = args.backgroundBase;\n\n // Optimization: If serialized 'backgroundBase' objects are identical, skip refresh\n if (JSON.stringify(baseMap.toJSON()) === JSON.stringify(selectedBaseMap?.toJSON()))\n return;\n\n setSelectedBaseMap(baseMap); // cache current base map objects\n updateBaseMapOptions(baseMap);\n\n if (baseMap instanceof ImageMapLayerSettings) {\n if (baseMap.transparency !== baseMapTransparencyValue)\n setBaseMapTransparencyValue(baseMap.transparency);\n\n if (baseMap.visible !== baseMapVisible)\n setBaseMapVisible(baseMap.visible);\n\n } else if (baseMap instanceof ColorDef) {\n if (baseMap.getAlpha() !== baseMapTransparencyValue ) {\n setBaseMapTransparencyValue(baseMap.getAlpha()/255);\n }\n }\n }, [baseMapTransparencyValue, baseMapVisible, selectedBaseMap, updateBaseMapOptions]);\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport) => {\n handleMapImageryChanged(vp.displayStyle.settings.mapImagery);\n };\n return activeViewport?.onDisplayStyleChanged.addListener(handleDisplayStyleChange);\n }, [activeViewport, handleMapImageryChanged]);\n\n // Monitor display style's onMapImageryChanged event\n React.useEffect(() => {\n return activeViewport?.displayStyle.settings.onMapImageryChanged.addListener(handleMapImageryChanged);\n }, [activeViewport, handleMapImageryChanged]);\n\n // Monitor viewport updates, and refresh the widget accordingly .\n // Note: This is needed for multiple viewport applications.\n React.useEffect(() => {\n if (activeViewport) {\n handleMapImageryChanged(activeViewport.displayStyle.settings.mapImagery);\n }\n }, [activeViewport, handleMapImageryChanged]);\n\n const handleBasemapTransparencyChange = React.useCallback((transparency: number) => {\n if (activeViewport) {\n activeViewport.displayStyle.changeBaseMapTransparency(transparency);\n setBaseMapTransparencyValue(transparency);\n }\n }, [activeViewport]);\n\n // This effect is only to keep a custom base map option when a 'default' base map is picked.\n React.useEffect(() => {\n if (selectedBaseMap instanceof BaseMapLayerSettings\n && !selectedBaseMap.provider\n && undefined === baseMapOptions.find((opt)=>opt.label === selectedBaseMap.name)) {\n setCustomBaseMap(selectedBaseMap);\n }\n }, [baseMapOptions, selectedBaseMap]);\n\n const [presetColors] = React.useState([\n ColorDef.create(ColorByName.grey),\n ColorDef.create(ColorByName.lightGrey),\n ColorDef.create(ColorByName.darkGrey),\n ColorDef.create(ColorByName.lightBlue),\n ColorDef.create(ColorByName.lightGreen),\n ColorDef.create(ColorByName.darkGreen),\n ColorDef.create(ColorByName.tan),\n ColorDef.create(ColorByName.darkBrown),\n ]);\n\n const baseIsColor = React.useMemo(() => selectedBaseMap instanceof ColorDef, [selectedBaseMap]);\n const baseIsMap = React.useMemo(() => !baseIsColor && (selectedBaseMap !== undefined), [baseIsColor, selectedBaseMap]);\n const bgColor = React.useMemo(() => baseIsColor ? (selectedBaseMap as ColorDef).toJSON(): presetColors[0].toJSON(),\n [baseIsColor, selectedBaseMap, presetColors]);\n const [colorDialogTitle] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:ColorDialog.Title\"));\n const [selectedBaseMapValue, setSelectedBaseMapValue] = React.useState<SelectOption<string>>({value: \"\", label: \"\"});\n\n React.useEffect(() => {\n if (baseIsMap) {\n if (selectedBaseMap instanceof BaseMapLayerSettings && selectedBaseMap.provider) {\n const mapName = getSelectKeyFromProvider(selectedBaseMap);\n const foundItem = baseMapOptions.find((value) => value.value === mapName);\n if (foundItem) {\n setSelectedBaseMapValue(foundItem);\n return;\n }\n } else if (selectedBaseMap instanceof BaseMapLayerSettings) {\n // We got a custom base map\n\n // First check if the name matches a label of existing base map.\n // If it matches, we assume it's a legacy base map definition missing the provider information.\n let foundItem = baseMapOptions.find((opt) => opt.value !== customBaseMapValue && opt.label === selectedBaseMap.name);\n if (foundItem) {\n setSelectedBaseMapValue(foundItem);\n return;\n }\n\n // Use custom base map entry\n foundItem = baseMapOptions.find((opt) => opt.value === customBaseMapValue);\n if (foundItem) {\n setSelectedBaseMapValue(foundItem);\n return;\n }\n\n }\n } else if (baseIsColor) {\n setSelectedBaseMapValue(baseMapOptions[0]);\n return;\n }\n setSelectedBaseMapValue({value: \"\", label: \"\"});\n }, [baseIsColor, baseIsMap, baseMapOptions, selectedBaseMap]);\n\n const handleBackgroundColorDialogOk = React.useCallback((bgColorDef: ColorDef) => {\n UiFramework.dialogs.modal.close();\n if (activeViewport) {\n // change color and make sure previously set transparency is not lost.\n const curTransparency = activeViewport.displayStyle.backgroundMapBase instanceof ColorDef ? activeViewport.displayStyle.backgroundMapBase.getTransparency() : 0;\n activeViewport.displayStyle.backgroundMapBase = bgColorDef.withTransparency(curTransparency);\n\n setSelectedBaseMap(bgColorDef);\n }\n }, [activeViewport]);\n\n const handleBackgroundColorDialogCancel = React.useCallback(() => {\n UiFramework.dialogs.modal.close();\n }, []);\n\n const handleBgColorClick = React.useCallback((newColor: ColorDef, e: React.MouseEvent<Element, MouseEvent>) => {\n e.preventDefault();\n UiFramework.dialogs.modal.open(<ColorPickerDialog dialogTitle={colorDialogTitle} color={newColor} colorPresets={presetColors} colorInputType={\"rgb\"}\n onOkResult={handleBackgroundColorDialogOk} onCancelResult={handleBackgroundColorDialogCancel} />);\n }, [presetColors, handleBackgroundColorDialogOk]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleBaseMapSelection = React.useCallback((value: string) => {\n if (activeViewport && value) {\n if (value === customBaseMapValue && customBaseMap) {\n activeViewport.displayStyle.backgroundMapBase = customBaseMap;\n } else if (bases) {\n const baseMap = bases.find((provider) => getSelectKeyFromProvider(provider) === value);\n if (baseMap) {\n const baseProps: MapLayerProps = baseMap.toJSON();\n if (activeViewport.displayStyle.backgroundMapBase instanceof BaseMapLayerSettings) {\n activeViewport.displayStyle.backgroundMapBase = activeViewport.displayStyle.backgroundMapBase.clone({...baseProps, visible: baseMapVisible});\n } else {\n activeViewport.displayStyle.backgroundMapBase = BaseMapLayerSettings.fromJSON({...baseProps, visible: baseMapVisible});\n }\n } else {\n const bgColorDef = ColorDef.fromJSON(bgColor);\n const curTransparency = activeViewport.displayStyle.backgroundMapBase instanceof ColorDef ? activeViewport.displayStyle.backgroundMapBase.getTransparency() : 0;\n activeViewport.displayStyle.backgroundMapBase = bgColorDef.withTransparency(curTransparency);\n }\n }\n }\n }, [activeViewport, customBaseMap, bases, baseMapVisible, bgColor]);\n\n const handleVisibilityChange = React.useCallback(() => {\n if (activeViewport) {\n const newState = !baseMapVisible;\n // BaseMap visibility is only support when backgroundBase is an instance of BaseMapLayerSettings (i.e not a color)...\n if (activeViewport.displayStyle.backgroundMapBase instanceof BaseMapLayerSettings) {\n activeViewport.displayStyle.backgroundMapBase = activeViewport.displayStyle.backgroundMapBase.clone({ visible: newState });\n }\n setBaseMapVisible(newState);\n }\n }, [baseMapVisible, activeViewport]);\n\n const [baseLayerLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Basemap.BaseLayer\"));\n const [selectBaseMapLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Basemap.SelectBaseMap\"));\n const [toggleVisibility] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Widget.ToggleVisibility\"));\n\n return (\n <>\n <span className=\"map-manager-base-label\">{baseLayerLabel}</span>\n <div className=\"map-manager-base-item\" >\n <Button className=\"map-manager-basemap-visibility map-manager-visibility-icon\" size=\"small\" styleType=\"borderless\" title={toggleVisibility} onClick={handleVisibilityChange} disabled={props.disabled || !activeViewport || !(activeViewport.displayStyle.backgroundMapBase instanceof ImageMapLayerSettings)}>\n <WebFontIcon iconName={baseMapVisible ? \"icon-visibility\" : \"icon-visibility-hide-2\"} />\n </Button>\n <Select className=\"map-manager-base-item-select\"\n options={baseMapOptions}\n placeholder={selectBaseMapLabel}\n value={selectedBaseMapValue.value}\n onChange={handleBaseMapSelection} size=\"small\"\n disabled={props.disabled}\n />\n {\n baseIsColor &&\n <ColorSwatch className=\"map-manager-base-item-color\" colorDef={ColorDef.fromJSON(bgColor)} round={false} onColorPick={handleBgColorClick} />\n }\n <TransparencyPopupButton disabled={props.disabled} transparency={baseMapTransparencyValue} onTransparencyChange={handleBasemapTransparencyChange} />\n </div>\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"BasemapPanel.js","sourceRoot":"","sources":["../../../../src/ui/widget/BasemapPanel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;gGAGgG;AAChG,4CAA4C;AAC5C,2CAA2C;AAE3C,+BAA6B;AAC7B,6CAA+B;AAC/B,oDAAiD;AACjD,oDAA2H;AAC3H,kDAAgD;AAChD,4EAAgF;AAChF,wDAAsD;AACtD,+CAA8C;AAC9C,uDAAwD;AACxD,uEAAoE;AAKpE,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAC3C,MAAM,wBAAwB,GAAG,CAAC,IAA0B,EAAE,EAAE,CAC9D,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,+BAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AAMzG,gBAAgB;AAChB,gEAAgE;AAChE,SAAgB,YAAY,CAAC,KAAwB;IACnD,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,uBAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACnH,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,IAAA,qCAAmB,GAAE,CAAC;IACxD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgC,GAAG,EAAE;QAC/F,OAAO,cAAc,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;IACzE,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,wBAAwB,EAAE,2BAA2B,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QAClF,IAAI,cAAc,EAAE;YAClB,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;YACnE,IAAI,UAAU,CAAC,cAAc,YAAY,mCAAqB,EAAE;gBAC9D,OAAO,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC;aAC/C;iBAAM,IAAI,UAAU,CAAC,cAAc,YAAY,sBAAQ,EAAE;gBACxD,OAAO,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC;aACnD;iBAAM;gBACL,OAAO,CAAC,CAAC;aACV;SACF;aAAM;YACL,OAAO,CAAC,CAAC;SACV;IACH,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAoC,CAAC;IAC7F,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QAC9D,IAAI,cAAc,IAAI,cAAc,CAAC,YAAY,CAAC,iBAAiB,YAAY,mCAAqB,EAAE;YACpG,OAAO,cAAc,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC;SAC9D;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CACzC,CAAC,OAAsC,EAAE,EAAE;QACzC,MAAM,WAAW,GAA2B,EAAE,CAAC;QAE/C,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QAEjE,IAAI,KAAK,EAAE;YACT,WAAW,CAAC,IAAI,CACd,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC1B,MAAM,KAAK,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;gBACnD,MAAM,KAAK,GAAG,uBAAW,CAAC,SAAS,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC;gBAClE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC1B,CAAC,CAAC,CACH,CAAC;SACH;QAED,oEAAoE;QACpE,IAAI,OAAO,YAAY,kCAAoB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAChE,iGAAiG;YACjG,IAAI,SAAS,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE;gBACvE,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;aACtE;SACF;aAAM,IAAI,aAAa,EAAE;YACxB,+CAA+C;YAC/C,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;SAC5E;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,EACD,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,CAAC,CACtC,CAAC;IAEF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAyB,GAAG,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IAE7H,MAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAC5C,CAAC,OAAsC,EAAE,EAAE;QACzC,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,MAAM,uBAAuB,GAAG,KAAK,CAAC,WAAW,CAC/C,CAAC,IAAkC,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;QAEpC,oFAAoF;QACpF,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE;YAClF,OAAO;SACR;QAED,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC;QAC9D,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAE9B,IAAI,OAAO,YAAY,mCAAqB,EAAE;YAC5C,IAAI,OAAO,CAAC,YAAY,KAAK,wBAAwB,EAAE;gBACrD,2BAA2B,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;aACnD;YAED,IAAI,OAAO,CAAC,OAAO,KAAK,cAAc,EAAE;gBACtC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aACpC;SACF;aAAM,IAAI,OAAO,YAAY,sBAAQ,EAAE;YACtC,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,wBAAwB,EAAE;gBACnD,2BAA2B,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC;aACvD;SACF;IACH,CAAC,EACD,CAAC,wBAAwB,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,CAAC,CAClF,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,wBAAwB,GAAG,CAAC,EAAY,EAAE,EAAE;YAChD,uBAAuB,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC/D,CAAC,CAAC;QACF,OAAO,cAAc,EAAE,qBAAqB,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACrF,CAAC,EAAE,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAE9C,oDAAoD;IACpD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,cAAc,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IACxG,CAAC,EAAE,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAE9C,iEAAiE;IACjE,2DAA2D;IAC3D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,cAAc,EAAE;YAClB,uBAAuB,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC1E;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAE9C,MAAM,+BAA+B,GAAG,KAAK,CAAC,WAAW,CACvD,CAAC,YAAoB,EAAE,EAAE;QACvB,IAAI,cAAc,EAAE;YAClB,cAAc,CAAC,YAAY,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;YACpE,2BAA2B,CAAC,YAAY,CAAC,CAAC;SAC3C;IACH,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,4FAA4F;IAC5F,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IACE,eAAe,YAAY,kCAAoB;YAC/C,CAAC,eAAe,CAAC,QAAQ;YACzB,SAAS,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,eAAe,CAAC,IAAI,CAAC,EAC9E;YACA,gBAAgB,CAAC,eAAe,CAAC,CAAC;SACnC;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;IAEtC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;QACpC,sBAAQ,CAAC,MAAM,CAAC,yBAAW,CAAC,IAAI,CAAC;QACjC,sBAAQ,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC;QACtC,sBAAQ,CAAC,MAAM,CAAC,yBAAW,CAAC,QAAQ,CAAC;QACrC,sBAAQ,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC;QACtC,sBAAQ,CAAC,MAAM,CAAC,yBAAW,CAAC,UAAU,CAAC;QACvC,sBAAQ,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC;QACtC,sBAAQ,CAAC,MAAM,CAAC,yBAAW,CAAC,GAAG,CAAC;QAChC,sBAAQ,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC;KACvC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,YAAY,sBAAQ,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAChG,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;IACrH,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAC3B,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,eAA4B,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EACvF,CAAC,WAAW,EAAE,eAAe,EAAE,YAAY,CAAC,CAC7C,CAAC;IACF,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,uBAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACtH,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAuB,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAEvH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,SAAS,EAAE;YACb,IAAI,eAAe,YAAY,kCAAoB,IAAI,eAAe,CAAC,QAAQ,EAAE;gBAC/E,MAAM,OAAO,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;gBAC1D,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;gBAC1E,IAAI,SAAS,EAAE;oBACb,uBAAuB,CAAC,SAAS,CAAC,CAAC;oBACnC,OAAO;iBACR;aACF;iBAAM,IAAI,eAAe,YAAY,kCAAoB,EAAE;gBAC1D,2BAA2B;gBAE3B,gEAAgE;gBAChE,+FAA+F;gBAC/F,IAAI,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,kBAAkB,IAAI,GAAG,CAAC,KAAK,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC;gBACrH,IAAI,SAAS,EAAE;oBACb,uBAAuB,CAAC,SAAS,CAAC,CAAC;oBACnC,OAAO;iBACR;gBAED,4BAA4B;gBAC5B,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,kBAAkB,CAAC,CAAC;gBAC3E,IAAI,SAAS,EAAE;oBACb,uBAAuB,CAAC,SAAS,CAAC,CAAC;oBACnC,OAAO;iBACR;aACF;SACF;aAAM,IAAI,WAAW,EAAE;YACtB,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO;SACR;QACD,uBAAuB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;IAE9D,MAAM,6BAA6B,GAAG,KAAK,CAAC,WAAW,CACrD,CAAC,UAAoB,EAAE,EAAE;QACvB,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,cAAc,EAAE;YAClB,sEAAsE;YACtE,MAAM,eAAe,GACnB,cAAc,CAAC,YAAY,CAAC,iBAAiB,YAAY,sBAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1I,cAAc,CAAC,YAAY,CAAC,iBAAiB,GAAG,UAAU,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YAE7F,kBAAkB,CAAC,UAAU,CAAC,CAAC;SAChC;IACH,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,MAAM,iCAAiC,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC/D,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAC1C,CAAC,QAAkB,EAAE,CAAwC,EAAE,EAAE;QAC/D,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAC5B,uBAAC,2CAAiB,IAChB,WAAW,EAAE,gBAAgB,EAC7B,KAAK,EAAE,QAAQ,EACf,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,KAAK,EACrB,UAAU,EAAE,6BAA6B,EACzC,cAAc,EAAE,iCAAiC,GACjD,CACH,CAAC;IACJ,CAAC,EACD,CAAC,gBAAgB,EAAE,YAAY,EAAE,6BAA6B,EAAE,iCAAiC,CAAC,CACnG,CAAC,CAAC,kDAAkD;IAErD,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAC9C,CAAC,KAAa,EAAE,EAAE;QAChB,IAAI,cAAc,IAAI,KAAK,EAAE;YAC3B,IAAI,KAAK,KAAK,kBAAkB,IAAI,aAAa,EAAE;gBACjD,cAAc,CAAC,YAAY,CAAC,iBAAiB,GAAG,aAAa,CAAC;aAC/D;iBAAM,IAAI,KAAK,EAAE;gBAChB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,wBAAwB,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC;gBACvF,IAAI,OAAO,EAAE;oBACX,MAAM,SAAS,GAAkB,OAAO,CAAC,MAAM,EAAE,CAAC;oBAClD,IAAI,cAAc,CAAC,YAAY,CAAC,iBAAiB,YAAY,kCAAoB,EAAE;wBACjF,cAAc,CAAC,YAAY,CAAC,iBAAiB,GAAG,cAAc,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;qBAChJ;yBAAM;wBACL,cAAc,CAAC,YAAY,CAAC,iBAAiB,GAAG,kCAAoB,CAAC,QAAQ,CAAC,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;qBAC1H;iBACF;qBAAM;oBACL,MAAM,UAAU,GAAG,sBAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC9C,MAAM,eAAe,GACnB,cAAc,CAAC,YAAY,CAAC,iBAAiB,YAAY,sBAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1I,cAAc,CAAC,YAAY,CAAC,iBAAiB,GAAG,UAAU,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;iBAC9F;aACF;SACF;IACH,CAAC,EACD,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,CAChE,CAAC;IAEF,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACpD,IAAI,cAAc,EAAE;YAClB,MAAM,QAAQ,GAAG,CAAC,cAAc,CAAC;YACjC,qHAAqH;YACrH,IAAI,cAAc,CAAC,YAAY,CAAC,iBAAiB,YAAY,kCAAoB,EAAE;gBACjF,cAAc,CAAC,YAAY,CAAC,iBAAiB,GAAG,cAAc,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;aAC5H;YACD,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SAC7B;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;IAErC,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,uBAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACpH,MAAM,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,uBAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC5H,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,uBAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAE5H,OAAO,CACL,6DACE,iCAAM,SAAS,EAAC,wBAAwB,YAAE,cAAc,GAAQ,EAChE,iCAAK,SAAS,EAAC,uBAAuB,aACpC,uBAAC,sBAAM,IACL,SAAS,EAAC,4DAA4D,EACtE,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,YAAY,EACtB,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,iBAAiB,YAAY,mCAAqB,CAAC,YAEhI,uBAAC,wBAAW,IAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,wBAAwB,GAAI,GACjF,EACT,uBAAC,sBAAM,IACL,SAAS,EAAC,8BAA8B,EACxC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,kBAAkB,EAC/B,KAAK,EAAE,oBAAoB,CAAC,KAAK,EACjC,QAAQ,EAAE,sBAAsB,EAChC,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,GACxB,EACD,WAAW,IAAI,CACd,uBAAC,qCAAW,IAAC,SAAS,EAAC,6BAA6B,EAAC,QAAQ,EAAE,sBAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,GAAI,CAC7I,EACD,uBAAC,iDAAuB,IAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,+BAA+B,GAAI,IAChJ,IACL,CACJ,CAAC;AACJ,CAAC;AA3SD,oCA2SC","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/* eslint-disable deprecation/deprecation */\n// cSpell:ignore droppable Sublayer Basemap\n\nimport \"./BasemapPanel.scss\";\nimport * as React from \"react\";\nimport { UiFramework } from \"@itwin/appui-react\";\nimport { BackgroundMapType, BaseMapLayerSettings, ColorByName, ColorDef, ImageMapLayerSettings } from \"@itwin/core-common\";\nimport { WebFontIcon } from \"@itwin/core-react\";\nimport { ColorPickerDialog, ColorSwatch } from \"@itwin/imodel-components-react\";\nimport { Button, Select } from \"@itwin/itwinui-react\";\nimport { MapLayersUI } from \"../../mapLayers\";\nimport { useSourceMapContext } from \"./MapLayerManager\";\nimport { TransparencyPopupButton } from \"./TransparencyPopupButton\";\n\nimport type { BaseLayerSettings, MapImagerySettings, MapLayerProps } from \"@itwin/core-common\";\nimport type { Viewport } from \"@itwin/core-frontend\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nconst customBaseMapValue = \"customBaseMap\";\nconst getSelectKeyFromProvider = (base: BaseMapLayerSettings) =>\n `${base.provider ? `${base.provider.name}.${BackgroundMapType[base.provider.type]}` : `${base.name}`}`;\n\ninterface BasemapPanelProps {\n disabled?: boolean;\n}\n\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function BasemapPanel(props: BasemapPanelProps) {\n const [useColorLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Basemap.ColorFill\"));\n const { activeViewport, bases } = useSourceMapContext();\n const [selectedBaseMap, setSelectedBaseMap] = React.useState<BaseLayerSettings | undefined>(() => {\n return activeViewport?.displayStyle.settings.mapImagery.backgroundBase;\n });\n const [baseMapTransparencyValue, setBaseMapTransparencyValue] = React.useState(() => {\n if (activeViewport) {\n const mapImagery = activeViewport.displayStyle.settings.mapImagery;\n if (mapImagery.backgroundBase instanceof ImageMapLayerSettings) {\n return mapImagery.backgroundBase.transparency;\n } else if (mapImagery.backgroundBase instanceof ColorDef) {\n return mapImagery.backgroundBase.getAlpha() / 255;\n } else {\n return 0;\n }\n } else {\n return 0;\n }\n });\n const [customBaseMap, setCustomBaseMap] = React.useState<BaseMapLayerSettings | undefined>();\n const [baseMapVisible, setBaseMapVisible] = React.useState(() => {\n if (activeViewport && activeViewport.displayStyle.backgroundMapBase instanceof ImageMapLayerSettings) {\n return activeViewport.displayStyle.backgroundMapBase.visible;\n }\n return false;\n });\n\n const getBaseMapOptions = React.useCallback(\n (baseMap: BaseLayerSettings | undefined) => {\n const baseOptions: SelectOption<string>[] = [];\n\n baseOptions.push({ value: useColorLabel, label: useColorLabel });\n\n if (bases) {\n baseOptions.push(\n ...bases.map((bgProvider) => {\n const value = getSelectKeyFromProvider(bgProvider);\n const label = MapLayersUI.translate(`WellKnownBaseMaps.${value}`);\n return { value, label };\n }),\n );\n }\n\n // Add new custom base map definition (avoid adding duplicate entry)\n if (baseMap instanceof BaseMapLayerSettings && !baseMap.provider) {\n // Add new option only if not created duplicate (Support of base map definition without provider)\n if (undefined === baseOptions.find((opt) => opt.label === baseMap.name)) {\n baseOptions.push({ value: customBaseMapValue, label: baseMap.name });\n }\n } else if (customBaseMap) {\n // Add previously defined custom map definition\n baseOptions.push({ value: customBaseMapValue, label: customBaseMap.name });\n }\n return baseOptions;\n },\n [bases, customBaseMap, useColorLabel],\n );\n\n const [baseMapOptions, setBaseMapOptions] = React.useState<SelectOption<string>[]>(() => getBaseMapOptions(selectedBaseMap));\n\n const updateBaseMapOptions = React.useCallback(\n (baseMap: BaseLayerSettings | undefined) => {\n setBaseMapOptions(getBaseMapOptions(baseMap));\n },\n [getBaseMapOptions],\n );\n\n const handleMapImageryChanged = React.useCallback(\n (args: Readonly<MapImagerySettings>) => {\n const baseMap = args.backgroundBase;\n\n // Optimization: If serialized 'backgroundBase' objects are identical, skip refresh\n if (JSON.stringify(baseMap.toJSON()) === JSON.stringify(selectedBaseMap?.toJSON())) {\n return;\n }\n\n setSelectedBaseMap(baseMap); // cache current base map objects\n updateBaseMapOptions(baseMap);\n\n if (baseMap instanceof ImageMapLayerSettings) {\n if (baseMap.transparency !== baseMapTransparencyValue) {\n setBaseMapTransparencyValue(baseMap.transparency);\n }\n\n if (baseMap.visible !== baseMapVisible) {\n setBaseMapVisible(baseMap.visible);\n }\n } else if (baseMap instanceof ColorDef) {\n if (baseMap.getAlpha() !== baseMapTransparencyValue) {\n setBaseMapTransparencyValue(baseMap.getAlpha() / 255);\n }\n }\n },\n [baseMapTransparencyValue, baseMapVisible, selectedBaseMap, updateBaseMapOptions],\n );\n\n React.useEffect(() => {\n const handleDisplayStyleChange = (vp: Viewport) => {\n handleMapImageryChanged(vp.displayStyle.settings.mapImagery);\n };\n return activeViewport?.onDisplayStyleChanged.addListener(handleDisplayStyleChange);\n }, [activeViewport, handleMapImageryChanged]);\n\n // Monitor display style's onMapImageryChanged event\n React.useEffect(() => {\n return activeViewport?.displayStyle.settings.onMapImageryChanged.addListener(handleMapImageryChanged);\n }, [activeViewport, handleMapImageryChanged]);\n\n // Monitor viewport updates, and refresh the widget accordingly .\n // Note: This is needed for multiple viewport applications.\n React.useEffect(() => {\n if (activeViewport) {\n handleMapImageryChanged(activeViewport.displayStyle.settings.mapImagery);\n }\n }, [activeViewport, handleMapImageryChanged]);\n\n const handleBasemapTransparencyChange = React.useCallback(\n (transparency: number) => {\n if (activeViewport) {\n activeViewport.displayStyle.changeBaseMapTransparency(transparency);\n setBaseMapTransparencyValue(transparency);\n }\n },\n [activeViewport],\n );\n\n // This effect is only to keep a custom base map option when a 'default' base map is picked.\n React.useEffect(() => {\n if (\n selectedBaseMap instanceof BaseMapLayerSettings &&\n !selectedBaseMap.provider &&\n undefined === baseMapOptions.find((opt) => opt.label === selectedBaseMap.name)\n ) {\n setCustomBaseMap(selectedBaseMap);\n }\n }, [baseMapOptions, selectedBaseMap]);\n\n const [presetColors] = React.useState([\n ColorDef.create(ColorByName.grey),\n ColorDef.create(ColorByName.lightGrey),\n ColorDef.create(ColorByName.darkGrey),\n ColorDef.create(ColorByName.lightBlue),\n ColorDef.create(ColorByName.lightGreen),\n ColorDef.create(ColorByName.darkGreen),\n ColorDef.create(ColorByName.tan),\n ColorDef.create(ColorByName.darkBrown),\n ]);\n\n const baseIsColor = React.useMemo(() => selectedBaseMap instanceof ColorDef, [selectedBaseMap]);\n const baseIsMap = React.useMemo(() => !baseIsColor && selectedBaseMap !== undefined, [baseIsColor, selectedBaseMap]);\n const bgColor = React.useMemo(\n () => (baseIsColor ? (selectedBaseMap as ColorDef).toJSON() : presetColors[0].toJSON()),\n [baseIsColor, selectedBaseMap, presetColors],\n );\n const [colorDialogTitle] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:ColorDialog.Title\"));\n const [selectedBaseMapValue, setSelectedBaseMapValue] = React.useState<SelectOption<string>>({ value: \"\", label: \"\" });\n\n React.useEffect(() => {\n if (baseIsMap) {\n if (selectedBaseMap instanceof BaseMapLayerSettings && selectedBaseMap.provider) {\n const mapName = getSelectKeyFromProvider(selectedBaseMap);\n const foundItem = baseMapOptions.find((value) => value.value === mapName);\n if (foundItem) {\n setSelectedBaseMapValue(foundItem);\n return;\n }\n } else if (selectedBaseMap instanceof BaseMapLayerSettings) {\n // We got a custom base map\n\n // First check if the name matches a label of existing base map.\n // If it matches, we assume it's a legacy base map definition missing the provider information.\n let foundItem = baseMapOptions.find((opt) => opt.value !== customBaseMapValue && opt.label === selectedBaseMap.name);\n if (foundItem) {\n setSelectedBaseMapValue(foundItem);\n return;\n }\n\n // Use custom base map entry\n foundItem = baseMapOptions.find((opt) => opt.value === customBaseMapValue);\n if (foundItem) {\n setSelectedBaseMapValue(foundItem);\n return;\n }\n }\n } else if (baseIsColor) {\n setSelectedBaseMapValue(baseMapOptions[0]);\n return;\n }\n setSelectedBaseMapValue({ value: \"\", label: \"\" });\n }, [baseIsColor, baseIsMap, baseMapOptions, selectedBaseMap]);\n\n const handleBackgroundColorDialogOk = React.useCallback(\n (bgColorDef: ColorDef) => {\n UiFramework.dialogs.modal.close();\n if (activeViewport) {\n // change color and make sure previously set transparency is not lost.\n const curTransparency =\n activeViewport.displayStyle.backgroundMapBase instanceof ColorDef ? activeViewport.displayStyle.backgroundMapBase.getTransparency() : 0;\n activeViewport.displayStyle.backgroundMapBase = bgColorDef.withTransparency(curTransparency);\n\n setSelectedBaseMap(bgColorDef);\n }\n },\n [activeViewport],\n );\n\n const handleBackgroundColorDialogCancel = React.useCallback(() => {\n UiFramework.dialogs.modal.close();\n }, []);\n\n const handleBgColorClick = React.useCallback(\n (newColor: ColorDef, e: React.MouseEvent<Element, MouseEvent>) => {\n e.preventDefault();\n UiFramework.dialogs.modal.open(\n <ColorPickerDialog\n dialogTitle={colorDialogTitle}\n color={newColor}\n colorPresets={presetColors}\n colorInputType={\"rgb\"}\n onOkResult={handleBackgroundColorDialogOk}\n onCancelResult={handleBackgroundColorDialogCancel}\n />,\n );\n },\n [colorDialogTitle, presetColors, handleBackgroundColorDialogOk, handleBackgroundColorDialogCancel],\n ); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleBaseMapSelection = React.useCallback(\n (value: string) => {\n if (activeViewport && value) {\n if (value === customBaseMapValue && customBaseMap) {\n activeViewport.displayStyle.backgroundMapBase = customBaseMap;\n } else if (bases) {\n const baseMap = bases.find((provider) => getSelectKeyFromProvider(provider) === value);\n if (baseMap) {\n const baseProps: MapLayerProps = baseMap.toJSON();\n if (activeViewport.displayStyle.backgroundMapBase instanceof BaseMapLayerSettings) {\n activeViewport.displayStyle.backgroundMapBase = activeViewport.displayStyle.backgroundMapBase.clone({ ...baseProps, visible: baseMapVisible });\n } else {\n activeViewport.displayStyle.backgroundMapBase = BaseMapLayerSettings.fromJSON({ ...baseProps, visible: baseMapVisible });\n }\n } else {\n const bgColorDef = ColorDef.fromJSON(bgColor);\n const curTransparency =\n activeViewport.displayStyle.backgroundMapBase instanceof ColorDef ? activeViewport.displayStyle.backgroundMapBase.getTransparency() : 0;\n activeViewport.displayStyle.backgroundMapBase = bgColorDef.withTransparency(curTransparency);\n }\n }\n }\n },\n [activeViewport, customBaseMap, bases, baseMapVisible, bgColor],\n );\n\n const handleVisibilityChange = React.useCallback(() => {\n if (activeViewport) {\n const newState = !baseMapVisible;\n // BaseMap visibility is only support when backgroundBase is an instance of BaseMapLayerSettings (i.e not a color)...\n if (activeViewport.displayStyle.backgroundMapBase instanceof BaseMapLayerSettings) {\n activeViewport.displayStyle.backgroundMapBase = activeViewport.displayStyle.backgroundMapBase.clone({ visible: newState });\n }\n setBaseMapVisible(newState);\n }\n }, [baseMapVisible, activeViewport]);\n\n const [baseLayerLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Basemap.BaseLayer\"));\n const [selectBaseMapLabel] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Basemap.SelectBaseMap\"));\n const [toggleVisibility] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Widget.ToggleVisibility\"));\n\n return (\n <>\n <span className=\"map-manager-base-label\">{baseLayerLabel}</span>\n <div className=\"map-manager-base-item\">\n <Button\n className=\"map-manager-basemap-visibility map-manager-visibility-icon\"\n size=\"small\"\n styleType=\"borderless\"\n title={toggleVisibility}\n onClick={handleVisibilityChange}\n disabled={props.disabled || !activeViewport || !(activeViewport.displayStyle.backgroundMapBase instanceof ImageMapLayerSettings)}\n >\n <WebFontIcon iconName={baseMapVisible ? \"icon-visibility\" : \"icon-visibility-hide-2\"} />\n </Button>\n <Select\n className=\"map-manager-base-item-select\"\n options={baseMapOptions}\n placeholder={selectBaseMapLabel}\n value={selectedBaseMapValue.value}\n onChange={handleBaseMapSelection}\n size=\"small\"\n disabled={props.disabled}\n />\n {baseIsColor && (\n <ColorSwatch className=\"map-manager-base-item-color\" colorDef={ColorDef.fromJSON(bgColor)} round={false} onColorPick={handleBgColorClick} />\n )}\n <TransparencyPopupButton disabled={props.disabled} transparency={baseMapTransparencyValue} onTransparencyChange={handleBasemapTransparencyChange} />\n </div>\n </>\n );\n}\n"]}
|
|
@@ -23,7 +23,6 @@ $hovered-icon-color: $buic-foreground-primary;
|
|
|
23
23
|
align-items: center;
|
|
24
24
|
width: 100%;
|
|
25
25
|
margin-top: 5px;
|
|
26
|
-
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
.map-manager-base-label {
|
|
@@ -41,9 +40,8 @@ $hovered-icon-color: $buic-foreground-primary;
|
|
|
41
40
|
overflow: hidden;
|
|
42
41
|
}
|
|
43
42
|
|
|
44
|
-
|
|
45
43
|
.map-manager-base-item-select {
|
|
46
|
-
width: 100%;
|
|
44
|
+
width: 100%; // makes the Select control fill empty space on the right
|
|
47
45
|
}
|
|
48
46
|
|
|
49
47
|
button.map-manager-base-settings-button {
|
|
@@ -64,7 +62,7 @@ $hovered-icon-color: $buic-foreground-primary;
|
|
|
64
62
|
}
|
|
65
63
|
|
|
66
64
|
.map-manager-base-item-select {
|
|
67
|
-
height:
|
|
65
|
+
height: 2em;
|
|
68
66
|
width: 100%;
|
|
69
67
|
min-width: 100px;
|
|
70
68
|
margin-right: 6px;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { CommonProps } from "@itwin/core-react";
|
|
2
|
+
import type { CommonProps } from "@itwin/core-react";
|
|
3
3
|
import "./MapUrlDialog.scss";
|
|
4
4
|
interface ConfirmMessageDialogProps extends CommonProps {
|
|
5
5
|
/** Title to show in title bar of dialog */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmMessageDialog.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/ConfirmMessageDialog.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"ConfirmMessageDialog.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/ConfirmMessageDialog.tsx"],"names":[],"mappings":";AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,qBAAqB,CAAC;AAG7B,UAAU,yBAA0B,SAAQ,WAAW;IACrD,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,yJAAyJ;IACzJ,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,yIAAyI;IACzI,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,0IAA0I;IAC1I,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAGD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,eA6BpE"}
|
|
@@ -1,12 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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.ConfirmMessageDialog = void 0;
|
|
9
|
-
const
|
|
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
|
|
33
|
+
const React = __importStar(require("react"));
|
|
10
34
|
const core_react_1 = require("@itwin/core-react");
|
|
11
35
|
require("./MapUrlDialog.scss");
|
|
12
36
|
const appui_abstract_1 = require("@itwin/appui-abstract");
|
|
@@ -16,8 +40,7 @@ function ConfirmMessageDialog(props) {
|
|
|
16
40
|
{ type: appui_abstract_1.DialogButtonType.Yes, onClick: props.onYesResult ?? (() => { }) },
|
|
17
41
|
{ type: appui_abstract_1.DialogButtonType.No, onClick: props.onNoResult ?? (() => { }) },
|
|
18
42
|
], [props.onYesResult, props.onNoResult]);
|
|
19
|
-
return (
|
|
20
|
-
React.createElement("div", null, props.message)));
|
|
43
|
+
return ((0, jsx_runtime_1.jsx)(core_react_1.Dialog, { className: props.className, title: props.title, opened: true, resizable: false, movable: true, modal: true, buttonCluster: buttonCluster, onClose: props.onClose, onEscape: props.onEscape, minHeight: props.minHeight, maxHeight: props.maxHeight, minWidth: props.minWidth, maxWidth: props.maxWidth, trapFocus: false, children: (0, jsx_runtime_1.jsx)("div", { children: props.message }) }));
|
|
21
44
|
}
|
|
22
45
|
exports.ConfirmMessageDialog = ConfirmMessageDialog;
|
|
23
46
|
//# sourceMappingURL=ConfirmMessageDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmMessageDialog.js","sourceRoot":"","sources":["../../../../src/ui/widget/ConfirmMessageDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConfirmMessageDialog.js","sourceRoot":"","sources":["../../../../src/ui/widget/ConfirmMessageDialog.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;gGAGgG;AAChG,8BAA8B;AAE9B,6CAA+B;AAE/B,kDAA2C;AAE3C,+BAA6B;AAC7B,0DAAyD;AAmBzD,gEAAgE;AAChE,SAAgB,oBAAoB,CAAC,KAAgC;IACnE,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CACjC,GAAG,EAAE,CAAC;QACJ,EAAE,IAAI,EAAE,iCAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE;QACxE,EAAE,IAAI,EAAE,iCAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE;KACvE,EACD,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CACtC,CAAC;IAEF,OAAO,CACL,uBAAC,mBAAM,IACL,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,IAAI,EACX,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,SAAS,EAAE,KAAK,YAEhB,0CAAM,KAAK,CAAC,OAAO,GAAO,GACnB,CACV,CAAC;AACJ,CAAC;AA7BD,oDA6BC","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 * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Dialog } from \"@itwin/core-react\";\n\nimport \"./MapUrlDialog.scss\";\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\n\ninterface ConfirmMessageDialogProps extends CommonProps {\n /** Title to show in title bar of dialog */\n title?: string | JSX.Element;\n message?: string | JSX.Element;\n onYesResult?: () => void;\n onNoResult?: () => void;\n onClose?: () => void;\n onEscape?: () => void;\n minWidth?: string | number;\n /** Minimum height that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. Default: 100px */\n minHeight?: string | number;\n /** Maximum width that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\n maxWidth?: string | number;\n /** Maximum height that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\n maxHeight?: string | number;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function ConfirmMessageDialog(props: ConfirmMessageDialogProps) {\n const buttonCluster = React.useMemo(\n () => [\n { type: DialogButtonType.Yes, onClick: props.onYesResult ?? (() => {}) },\n { type: DialogButtonType.No, onClick: props.onNoResult ?? (() => {}) },\n ],\n [props.onYesResult, props.onNoResult],\n );\n\n return (\n <Dialog\n className={props.className}\n title={props.title}\n opened={true}\n resizable={false}\n movable={true}\n modal={true}\n buttonCluster={buttonCluster}\n onClose={props.onClose}\n onEscape={props.onEscape}\n minHeight={props.minHeight}\n maxHeight={props.maxHeight}\n minWidth={props.minWidth}\n maxWidth={props.maxWidth}\n trapFocus={false}\n >\n <div>{props.message}</div>\n </Dialog>\n );\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import "./CustomParamEditDialog.scss";
|
|
3
|
-
import { CustomParamItem } from "../Interfaces";
|
|
3
|
+
import type { CustomParamItem } from "../Interfaces";
|
|
4
4
|
interface CustomParamEditDialogProps {
|
|
5
5
|
item?: CustomParamItem;
|
|
6
6
|
onOkResult?: (newItem: CustomParamItem, oldIem?: CustomParamItem) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomParamEditDialog.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/CustomParamEditDialog.tsx"],"names":[],"mappings":";AAKA,OAAO,8BAA8B,CAAC;AAOtC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"CustomParamEditDialog.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/CustomParamEditDialog.tsx"],"names":[],"mappings":";AAKA,OAAO,8BAA8B,CAAC;AAOtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,UAAU,0BAA0B;IAClC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1E,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,eA8FtE"}
|
|
@@ -1,12 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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.CustomParamEditDialog = 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
|
+
*--------------------------------------------------------------------------------------------*/
|
|
8
32
|
require("./CustomParamEditDialog.scss");
|
|
9
|
-
const React = require("react");
|
|
33
|
+
const React = __importStar(require("react"));
|
|
10
34
|
const appui_react_1 = require("@itwin/appui-react");
|
|
11
35
|
const core_react_1 = require("@itwin/core-react");
|
|
12
36
|
const itwinui_react_1 = require("@itwin/itwinui-react");
|
|
@@ -14,7 +38,7 @@ const CustomParamsStorage_1 = require("../../CustomParamsStorage");
|
|
|
14
38
|
const mapLayers_1 = require("../../mapLayers");
|
|
15
39
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
16
40
|
function CustomParamEditDialog(props) {
|
|
17
|
-
const [originalItemName] = React.useState(() => props.item ? props.item.name : undefined);
|
|
41
|
+
const [originalItemName] = React.useState(() => (props.item ? props.item.name : undefined));
|
|
18
42
|
const [item, setItem] = React.useState(() => props.item ?? { name: "", key: "", value: "", secret: true });
|
|
19
43
|
const [cpStorage] = React.useState(() => new CustomParamsStorage_1.CustomParamsStorage());
|
|
20
44
|
const handleCancel = React.useCallback(() => {
|
|
@@ -32,26 +56,16 @@ function CustomParamEditDialog(props) {
|
|
|
32
56
|
appui_react_1.UiFramework.dialogs.modal.close();
|
|
33
57
|
}, [item, props]);
|
|
34
58
|
const nameAlreadyExists = React.useMemo(() => {
|
|
35
|
-
const itemExistInStorage = () => item.name ? !!cpStorage.get(item.name) : false;
|
|
59
|
+
const itemExistInStorage = () => (item.name ? !!cpStorage.get(item.name) : false);
|
|
36
60
|
return originalItemName ? originalItemName !== item.name && itemExistInStorage() : itemExistInStorage();
|
|
37
61
|
}, [cpStorage, item.name, originalItemName]);
|
|
38
62
|
const readyToSave = React.useCallback(() => {
|
|
39
|
-
return
|
|
63
|
+
return item.name.trim().length > 0 && item.key.trim().length > 0 && item.value.trim().length > 0 && !nameAlreadyExists;
|
|
40
64
|
}, [item.key, item.name, item.value, nameAlreadyExists]);
|
|
41
65
|
function renderFooter() {
|
|
42
|
-
return (
|
|
43
|
-
React.createElement("div", { className: "custom-param-edit-dialog-footer-buttons" },
|
|
44
|
-
React.createElement(itwinui_react_1.Button, { className: "custom-param-edit-dialog-footer-button", styleType: 'high-visibility', onClick: handleOk, disabled: !readyToSave() }, props.item ? mapLayers_1.MapLayersUI.translate("Dialog.Edit") : mapLayers_1.MapLayersUI.translate("Dialog.Add")),
|
|
45
|
-
React.createElement(itwinui_react_1.Button, { className: "custom-param-edit-dialog-footer-button", styleType: 'default', onClick: handleCancel }, mapLayers_1.MapLayersUI.translate("Dialog.Cancel")))));
|
|
66
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "custom-param-edit-dialog-footer", children: (0, jsx_runtime_1.jsxs)("div", { className: "custom-param-edit-dialog-footer-buttons", children: [(0, jsx_runtime_1.jsx)(itwinui_react_1.Button, { className: "custom-param-edit-dialog-footer-button", styleType: "high-visibility", onClick: handleOk, disabled: !readyToSave(), children: props.item ? mapLayers_1.MapLayersUI.translate("Dialog.Edit") : mapLayers_1.MapLayersUI.translate("Dialog.Add") }), (0, jsx_runtime_1.jsx)(itwinui_react_1.Button, { className: "custom-param-edit-dialog-footer-button", styleType: "default", onClick: handleCancel, children: mapLayers_1.MapLayersUI.translate("Dialog.Cancel") })] }) }));
|
|
46
67
|
}
|
|
47
|
-
return (
|
|
48
|
-
React.createElement(React.Fragment, null,
|
|
49
|
-
React.createElement(itwinui_react_1.LabeledInput, { className: "custom-param-edit-dialog-input", label: mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.ParamNameLabel"), value: item.name, onChange: (event) => setItem({ ...item, name: event.target.value }), status: nameAlreadyExists ? "warning" : undefined, message: nameAlreadyExists ? mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.NameExists") : undefined }),
|
|
50
|
-
React.createElement(itwinui_react_1.LabeledInput, { className: "custom-param-edit-dialog-input", label: mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.ParamKeyLabel"), value: item.key, onChange: (event) => setItem({ ...item, key: event.target.value }) }),
|
|
51
|
-
React.createElement(itwinui_react_1.LabeledInput, { className: "custom-param-edit-dialog-input", label: mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.ParamValueLabel"), type: item.secret ? "password" : "", value: item.value, onChange: (event) => setItem({ ...item, value: event.target.value }), message: !item.secret ? mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.ParamValueNonPrivateMessage") : undefined }),
|
|
52
|
-
React.createElement("div", { className: "custom-param-edit-dialog-secret custom-param-edit-dialog-input", title: mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.PrivateToggleTooltip") },
|
|
53
|
-
React.createElement(itwinui_react_1.ToggleSwitch, { checked: item.secret, label: mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.PrivateToggleLabel"), onChange: (event) => setItem({ ...item, secret: event.target.checked }) })),
|
|
54
|
-
renderFooter())));
|
|
68
|
+
return ((0, jsx_runtime_1.jsx)(core_react_1.Dialog, { title: mapLayers_1.MapLayersUI.translate(props.item ? "CustomParamEditDialog.DialogTitleEdit" : "CustomParamEditDialog.DialogTitleAdd"), opened: true, resizable: true, movable: true, modal: true, onClose: handleCancel, onEscape: handleCancel, minHeight: 120, maxWidth: 120, trapFocus: false, children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(itwinui_react_1.LabeledInput, { className: "custom-param-edit-dialog-input", label: mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.ParamNameLabel"), value: item.name, onChange: (event) => setItem({ ...item, name: event.target.value }), status: nameAlreadyExists ? "warning" : undefined, message: nameAlreadyExists ? mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.NameExists") : undefined }), (0, jsx_runtime_1.jsx)(itwinui_react_1.LabeledInput, { className: "custom-param-edit-dialog-input", label: mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.ParamKeyLabel"), value: item.key, onChange: (event) => setItem({ ...item, key: event.target.value }) }), (0, jsx_runtime_1.jsx)(itwinui_react_1.LabeledInput, { className: "custom-param-edit-dialog-input", label: mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.ParamValueLabel"), type: item.secret ? "password" : "", value: item.value, onChange: (event) => setItem({ ...item, value: event.target.value }), message: !item.secret ? mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.ParamValueNonPrivateMessage") : undefined }), (0, jsx_runtime_1.jsx)("div", { className: "custom-param-edit-dialog-secret custom-param-edit-dialog-input", title: mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.PrivateToggleTooltip"), children: (0, jsx_runtime_1.jsx)(itwinui_react_1.ToggleSwitch, { checked: item.secret, label: mapLayers_1.MapLayersUI.translate("CustomParamEditDialog.PrivateToggleLabel"), onChange: (event) => setItem({ ...item, secret: event.target.checked }) }) }), renderFooter()] }) }));
|
|
55
69
|
}
|
|
56
70
|
exports.CustomParamEditDialog = CustomParamEditDialog;
|
|
57
71
|
//# sourceMappingURL=CustomParamEditDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomParamEditDialog.js","sourceRoot":"","sources":["../../../../src/ui/widget/CustomParamEditDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CustomParamEditDialog.js","sourceRoot":"","sources":["../../../../src/ui/widget/CustomParamEditDialog.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\nimport \"./CustomParamEditDialog.scss\";\nimport * as React from \"react\";\nimport { UiFramework } from \"@itwin/appui-react\";\nimport { Dialog } from \"@itwin/core-react\";\nimport { Button, LabeledInput, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport { CustomParamsStorage } from \"../../CustomParamsStorage\";\nimport { MapLayersUI } from \"../../mapLayers\";\nimport type { CustomParamItem } from \"../Interfaces\";\n\ninterface CustomParamEditDialogProps {\n item?: CustomParamItem;\n onOkResult?: (newItem: CustomParamItem, oldIem?: CustomParamItem) => void;\n onCancelResult?: () => void;\n}\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function CustomParamEditDialog(props: CustomParamEditDialogProps) {\n const [originalItemName] = React.useState<string | undefined>(() => (props.item ? props.item.name : undefined));\n const [item, setItem] = React.useState<CustomParamItem>(() => props.item ?? { name: \"\", key: \"\", value: \"\", secret: true });\n const [cpStorage] = React.useState(() => new CustomParamsStorage());\n\n const handleCancel = React.useCallback(() => {\n if (props.onCancelResult) {\n props.onCancelResult();\n return;\n }\n UiFramework.dialogs.modal.close();\n }, [props]);\n\n const handleOk = React.useCallback(() => {\n if (props.onOkResult) {\n props.onOkResult(item, props.item);\n return;\n }\n UiFramework.dialogs.modal.close();\n }, [item, props]);\n\n const nameAlreadyExists = React.useMemo<boolean>(() => {\n const itemExistInStorage = () => (item.name ? !!cpStorage.get(item.name) : false);\n return originalItemName ? originalItemName !== item.name && itemExistInStorage() : itemExistInStorage();\n }, [cpStorage, item.name, originalItemName]);\n\n const readyToSave = React.useCallback(() => {\n return item.name.trim().length > 0 && item.key.trim().length > 0 && item.value.trim().length > 0 && !nameAlreadyExists;\n }, [item.key, item.name, item.value, nameAlreadyExists]);\n\n function renderFooter() {\n return (\n <div className=\"custom-param-edit-dialog-footer\">\n <div className=\"custom-param-edit-dialog-footer-buttons\">\n <Button className=\"custom-param-edit-dialog-footer-button\" styleType=\"high-visibility\" onClick={handleOk} disabled={!readyToSave()}>\n {props.item ? MapLayersUI.translate(\"Dialog.Edit\") : MapLayersUI.translate(\"Dialog.Add\")}\n </Button>\n <Button className=\"custom-param-edit-dialog-footer-button\" styleType=\"default\" onClick={handleCancel}>\n {MapLayersUI.translate(\"Dialog.Cancel\")}\n </Button>\n </div>\n </div>\n );\n }\n return (\n <Dialog\n title={MapLayersUI.translate(props.item ? \"CustomParamEditDialog.DialogTitleEdit\" : \"CustomParamEditDialog.DialogTitleAdd\")}\n opened={true}\n resizable={true}\n movable={true}\n modal={true}\n onClose={handleCancel}\n onEscape={handleCancel}\n minHeight={120}\n maxWidth={120}\n trapFocus={false}\n >\n <>\n <LabeledInput\n className=\"custom-param-edit-dialog-input\"\n label={MapLayersUI.translate(\"CustomParamEditDialog.ParamNameLabel\")}\n value={item.name}\n onChange={(event) => setItem({ ...item, name: event.target.value })}\n status={nameAlreadyExists ? \"warning\" : undefined}\n message={nameAlreadyExists ? MapLayersUI.translate(\"CustomParamEditDialog.NameExists\") : undefined}\n />\n <LabeledInput\n className=\"custom-param-edit-dialog-input\"\n label={MapLayersUI.translate(\"CustomParamEditDialog.ParamKeyLabel\")}\n value={item.key}\n onChange={(event) => setItem({ ...item, key: event.target.value })}\n />\n <LabeledInput\n className=\"custom-param-edit-dialog-input\"\n label={MapLayersUI.translate(\"CustomParamEditDialog.ParamValueLabel\")}\n type={item.secret ? \"password\" : \"\"}\n value={item.value}\n onChange={(event) => setItem({ ...item, value: event.target.value })}\n message={!item.secret ? MapLayersUI.translate(\"CustomParamEditDialog.ParamValueNonPrivateMessage\") : undefined}\n />\n <div\n className=\"custom-param-edit-dialog-secret custom-param-edit-dialog-input\"\n title={MapLayersUI.translate(\"CustomParamEditDialog.PrivateToggleTooltip\")}\n >\n <ToggleSwitch\n checked={item.secret}\n label={MapLayersUI.translate(\"CustomParamEditDialog.PrivateToggleLabel\")}\n onChange={(event) => setItem({ ...item, secret: event.target.checked })}\n />\n </div>\n {renderFooter()}\n </>\n </Dialog>\n );\n}\n"]}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
|
|
6
|
-
|
|
7
6
|
.custom-param-edit-dialog-secret {
|
|
8
7
|
margin-top: 10px;
|
|
9
8
|
}
|
|
@@ -23,4 +22,4 @@
|
|
|
23
22
|
|
|
24
23
|
.custom-param-edit-dialog-input {
|
|
25
24
|
margin-bottom: 5px;
|
|
26
|
-
}
|
|
25
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomParamsSettings.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/CustomParamsSettings.tsx"],"names":[],"mappings":";AAKA,OAAO,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"CustomParamsSettings.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/CustomParamsSettings.tsx"],"names":[],"mappings":";AAKA,OAAO,6BAA6B,CAAC;AAkBrC,wBAAgB,yBAAyB,gBAuKxC"}
|