@itwin/map-layers 5.6.1 → 6.0.0-dev.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 +10 -2
- package/README.md +2 -0
- package/lib/cjs/BrowserStorage.js.map +1 -1
- package/lib/cjs/CustomParamUtils.js.map +1 -1
- package/lib/cjs/MapLayerPreferences.d.ts +2 -2
- package/lib/cjs/MapLayerPreferences.d.ts.map +1 -1
- package/lib/cjs/MapLayerPreferences.js +4 -4
- package/lib/cjs/MapLayerPreferences.js.map +1 -1
- package/lib/cjs/MapLayersActionIds.js +1 -1
- package/lib/cjs/MapLayersActionIds.js.map +1 -1
- package/lib/cjs/PreferencesBrowserStorage.js.map +1 -1
- package/lib/cjs/ui/FeatureInfoUiItemsProvider.d.ts +6 -7
- package/lib/cjs/ui/FeatureInfoUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/ui/FeatureInfoUiItemsProvider.js +26 -22
- package/lib/cjs/ui/FeatureInfoUiItemsProvider.js.map +1 -1
- package/lib/cjs/ui/Interfaces.d.ts +1 -1
- package/lib/cjs/ui/Interfaces.d.ts.map +1 -1
- package/lib/cjs/ui/MapLayersUiItemsProvider.js.map +1 -1
- package/lib/cjs/ui/widget/AttachLayerPopupButton.d.ts +1 -2
- package/lib/cjs/ui/widget/AttachLayerPopupButton.d.ts.map +1 -1
- package/lib/cjs/ui/widget/AttachLayerPopupButton.js +10 -26
- package/lib/cjs/ui/widget/AttachLayerPopupButton.js.map +1 -1
- package/lib/cjs/ui/widget/BasemapPanel.d.ts +1 -2
- package/lib/cjs/ui/widget/BasemapPanel.d.ts.map +1 -1
- package/lib/cjs/ui/widget/BasemapPanel.js +14 -25
- package/lib/cjs/ui/widget/BasemapPanel.js.map +1 -1
- package/lib/cjs/ui/widget/ConfirmMessageDialog.d.ts +7 -8
- package/lib/cjs/ui/widget/ConfirmMessageDialog.d.ts.map +1 -1
- package/lib/cjs/ui/widget/ConfirmMessageDialog.js +16 -9
- package/lib/cjs/ui/widget/ConfirmMessageDialog.js.map +1 -1
- package/lib/cjs/ui/widget/CustomParamEditDialog.d.ts +1 -2
- package/lib/cjs/ui/widget/CustomParamEditDialog.d.ts.map +1 -1
- package/lib/cjs/ui/widget/CustomParamEditDialog.js +1 -3
- package/lib/cjs/ui/widget/CustomParamEditDialog.js.map +1 -1
- package/lib/cjs/ui/widget/CustomParamsSettings.d.ts +1 -2
- package/lib/cjs/ui/widget/CustomParamsSettings.d.ts.map +1 -1
- package/lib/cjs/ui/widget/CustomParamsSettings.js +2 -10
- package/lib/cjs/ui/widget/CustomParamsSettings.js.map +1 -1
- package/lib/cjs/ui/widget/CustomParamsSettings.scss +2 -0
- package/lib/cjs/ui/widget/FeatureInfoDataProvider.js.map +1 -1
- package/lib/cjs/ui/widget/FeatureInfoWidget.d.ts +1 -2
- package/lib/cjs/ui/widget/FeatureInfoWidget.d.ts.map +1 -1
- package/lib/cjs/ui/widget/FeatureInfoWidget.js +7 -6
- package/lib/cjs/ui/widget/FeatureInfoWidget.js.map +1 -1
- package/lib/cjs/ui/widget/MapLayerActionButtons.d.ts +1 -2
- package/lib/cjs/ui/widget/MapLayerActionButtons.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapLayerActionButtons.js +2 -2
- package/lib/cjs/ui/widget/MapLayerActionButtons.js.map +1 -1
- package/lib/cjs/ui/widget/MapLayerDroppable.d.ts +1 -2
- package/lib/cjs/ui/widget/MapLayerDroppable.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapLayerDroppable.js +4 -6
- package/lib/cjs/ui/widget/MapLayerDroppable.js.map +1 -1
- package/lib/cjs/ui/widget/MapLayerManager.d.ts +1 -1
- package/lib/cjs/ui/widget/MapLayerManager.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapLayerManager.js +5 -6
- package/lib/cjs/ui/widget/MapLayerManager.js.map +1 -1
- package/lib/cjs/ui/widget/MapLayerManager.scss +0 -3
- package/lib/cjs/ui/widget/MapLayerSettingsMenu.d.ts +2 -3
- package/lib/cjs/ui/widget/MapLayerSettingsMenu.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapLayerSettingsMenu.js +3 -4
- package/lib/cjs/ui/widget/MapLayerSettingsMenu.js.map +1 -1
- package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.d.ts +1 -2
- package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.js +5 -6
- package/lib/cjs/ui/widget/MapLayerSettingsPopupButton.js.map +1 -1
- package/lib/cjs/ui/widget/MapLayersWidget.d.ts +1 -2
- package/lib/cjs/ui/widget/MapLayersWidget.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapLayersWidget.js +3 -4
- package/lib/cjs/ui/widget/MapLayersWidget.js.map +1 -1
- package/lib/cjs/ui/widget/MapManagerMapLayersHeader.d.ts +1 -2
- package/lib/cjs/ui/widget/MapManagerMapLayersHeader.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapManagerSettings.d.ts +1 -2
- package/lib/cjs/ui/widget/MapManagerSettings.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapManagerSettings.js +8 -9
- package/lib/cjs/ui/widget/MapManagerSettings.js.map +1 -1
- package/lib/cjs/ui/widget/MapSelectFeaturesDialog.d.ts +1 -2
- package/lib/cjs/ui/widget/MapSelectFeaturesDialog.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapSelectFeaturesDialog.js +4 -6
- package/lib/cjs/ui/widget/MapSelectFeaturesDialog.js.map +1 -1
- package/lib/cjs/ui/widget/MapUrlDialog.d.ts +2 -3
- package/lib/cjs/ui/widget/MapUrlDialog.d.ts.map +1 -1
- package/lib/cjs/ui/widget/MapUrlDialog.js +12 -17
- package/lib/cjs/ui/widget/MapUrlDialog.js.map +1 -1
- package/lib/cjs/ui/widget/SelectApiKey.d.ts +1 -2
- package/lib/cjs/ui/widget/SelectApiKey.d.ts.map +1 -1
- package/lib/cjs/ui/widget/SelectApiKey.js +2 -3
- package/lib/cjs/ui/widget/SelectApiKey.js.map +1 -1
- package/lib/cjs/ui/widget/SelectCustomParam.d.ts +1 -2
- package/lib/cjs/ui/widget/SelectCustomParam.d.ts.map +1 -1
- package/lib/cjs/ui/widget/SelectCustomParam.js +3 -4
- package/lib/cjs/ui/widget/SelectCustomParam.js.map +1 -1
- package/lib/cjs/ui/widget/SelectMapFormat.d.ts +1 -1
- package/lib/cjs/ui/widget/SelectMapFormat.d.ts.map +1 -1
- package/lib/cjs/ui/widget/SelectMapFormat.js +1 -2
- package/lib/cjs/ui/widget/SelectMapFormat.js.map +1 -1
- package/lib/cjs/ui/widget/SubLayersDataProvider.d.ts +1 -1
- package/lib/cjs/ui/widget/SubLayersDataProvider.d.ts.map +1 -1
- package/lib/cjs/ui/widget/SubLayersDataProvider.js +2 -2
- package/lib/cjs/ui/widget/SubLayersDataProvider.js.map +1 -1
- package/lib/cjs/ui/widget/SubLayersPopupButton.d.ts +2 -3
- package/lib/cjs/ui/widget/SubLayersPopupButton.d.ts.map +1 -1
- package/lib/cjs/ui/widget/SubLayersPopupButton.js +6 -4
- package/lib/cjs/ui/widget/SubLayersPopupButton.js.map +1 -1
- package/lib/cjs/ui/widget/SubLayersTree.d.ts +4 -5
- package/lib/cjs/ui/widget/SubLayersTree.d.ts.map +1 -1
- package/lib/cjs/ui/widget/SubLayersTree.js +28 -21
- package/lib/cjs/ui/widget/SubLayersTree.js.map +1 -1
- package/lib/cjs/ui/widget/TransparencyPopupButton.d.ts +2 -3
- package/lib/cjs/ui/widget/TransparencyPopupButton.d.ts.map +1 -1
- package/lib/cjs/ui/widget/TransparencyPopupButton.js +1 -2
- package/lib/cjs/ui/widget/TransparencyPopupButton.js.map +1 -1
- package/lib/cjs/ui/widget/UserPreferencesStorageOptions.d.ts +1 -1
- package/lib/cjs/ui/widget/UserPreferencesStorageOptions.d.ts.map +1 -1
- package/lib/esm/BrowserStorage.js.map +1 -1
- package/lib/esm/CustomParamUtils.js.map +1 -1
- package/lib/esm/MapLayerPreferences.d.ts +2 -2
- package/lib/esm/MapLayerPreferences.d.ts.map +1 -1
- package/lib/esm/MapLayerPreferences.js +3 -3
- package/lib/esm/MapLayerPreferences.js.map +1 -1
- package/lib/esm/PreferencesBrowserStorage.js.map +1 -1
- package/lib/esm/ui/FeatureInfoUiItemsProvider.d.ts +6 -7
- package/lib/esm/ui/FeatureInfoUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/ui/FeatureInfoUiItemsProvider.js +27 -23
- package/lib/esm/ui/FeatureInfoUiItemsProvider.js.map +1 -1
- package/lib/esm/ui/Interfaces.d.ts +1 -1
- package/lib/esm/ui/Interfaces.d.ts.map +1 -1
- package/lib/esm/ui/MapLayersUiItemsProvider.js.map +1 -1
- package/lib/esm/ui/widget/AttachLayerPopupButton.d.ts +1 -2
- package/lib/esm/ui/widget/AttachLayerPopupButton.d.ts.map +1 -1
- package/lib/esm/ui/widget/AttachLayerPopupButton.js +11 -27
- package/lib/esm/ui/widget/AttachLayerPopupButton.js.map +1 -1
- package/lib/esm/ui/widget/BasemapPanel.d.ts +1 -2
- package/lib/esm/ui/widget/BasemapPanel.d.ts.map +1 -1
- package/lib/esm/ui/widget/BasemapPanel.js +15 -26
- package/lib/esm/ui/widget/BasemapPanel.js.map +1 -1
- package/lib/esm/ui/widget/ConfirmMessageDialog.d.ts +7 -8
- package/lib/esm/ui/widget/ConfirmMessageDialog.d.ts.map +1 -1
- package/lib/esm/ui/widget/ConfirmMessageDialog.js +17 -10
- package/lib/esm/ui/widget/ConfirmMessageDialog.js.map +1 -1
- package/lib/esm/ui/widget/CustomParamEditDialog.d.ts +1 -2
- package/lib/esm/ui/widget/CustomParamEditDialog.d.ts.map +1 -1
- package/lib/esm/ui/widget/CustomParamEditDialog.js +3 -5
- package/lib/esm/ui/widget/CustomParamEditDialog.js.map +1 -1
- package/lib/esm/ui/widget/CustomParamsSettings.d.ts +1 -2
- package/lib/esm/ui/widget/CustomParamsSettings.d.ts.map +1 -1
- package/lib/esm/ui/widget/CustomParamsSettings.js +3 -11
- package/lib/esm/ui/widget/CustomParamsSettings.js.map +1 -1
- package/lib/esm/ui/widget/CustomParamsSettings.scss +2 -0
- package/lib/esm/ui/widget/FeatureInfoDataProvider.js.map +1 -1
- package/lib/esm/ui/widget/FeatureInfoWidget.d.ts +1 -2
- package/lib/esm/ui/widget/FeatureInfoWidget.d.ts.map +1 -1
- package/lib/esm/ui/widget/FeatureInfoWidget.js +10 -9
- package/lib/esm/ui/widget/FeatureInfoWidget.js.map +1 -1
- package/lib/esm/ui/widget/MapLayerActionButtons.d.ts +1 -2
- package/lib/esm/ui/widget/MapLayerActionButtons.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapLayerActionButtons.js +2 -2
- package/lib/esm/ui/widget/MapLayerActionButtons.js.map +1 -1
- package/lib/esm/ui/widget/MapLayerDroppable.d.ts +1 -2
- package/lib/esm/ui/widget/MapLayerDroppable.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapLayerDroppable.js +5 -7
- package/lib/esm/ui/widget/MapLayerDroppable.js.map +1 -1
- package/lib/esm/ui/widget/MapLayerManager.d.ts +1 -1
- package/lib/esm/ui/widget/MapLayerManager.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapLayerManager.js +5 -6
- package/lib/esm/ui/widget/MapLayerManager.js.map +1 -1
- package/lib/esm/ui/widget/MapLayerManager.scss +0 -3
- package/lib/esm/ui/widget/MapLayerSettingsMenu.d.ts +2 -3
- package/lib/esm/ui/widget/MapLayerSettingsMenu.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapLayerSettingsMenu.js +3 -4
- package/lib/esm/ui/widget/MapLayerSettingsMenu.js.map +1 -1
- package/lib/esm/ui/widget/MapLayerSettingsPopupButton.d.ts +1 -2
- package/lib/esm/ui/widget/MapLayerSettingsPopupButton.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapLayerSettingsPopupButton.js +5 -6
- package/lib/esm/ui/widget/MapLayerSettingsPopupButton.js.map +1 -1
- package/lib/esm/ui/widget/MapLayersWidget.d.ts +1 -2
- package/lib/esm/ui/widget/MapLayersWidget.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapLayersWidget.js +3 -4
- package/lib/esm/ui/widget/MapLayersWidget.js.map +1 -1
- package/lib/esm/ui/widget/MapManagerMapLayersHeader.d.ts +1 -2
- package/lib/esm/ui/widget/MapManagerMapLayersHeader.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapManagerSettings.d.ts +1 -2
- package/lib/esm/ui/widget/MapManagerSettings.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapManagerSettings.js +8 -9
- package/lib/esm/ui/widget/MapManagerSettings.js.map +1 -1
- package/lib/esm/ui/widget/MapSelectFeaturesDialog.d.ts +1 -2
- package/lib/esm/ui/widget/MapSelectFeaturesDialog.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapSelectFeaturesDialog.js +4 -6
- package/lib/esm/ui/widget/MapSelectFeaturesDialog.js.map +1 -1
- package/lib/esm/ui/widget/MapUrlDialog.d.ts +2 -3
- package/lib/esm/ui/widget/MapUrlDialog.d.ts.map +1 -1
- package/lib/esm/ui/widget/MapUrlDialog.js +14 -19
- package/lib/esm/ui/widget/MapUrlDialog.js.map +1 -1
- package/lib/esm/ui/widget/SelectApiKey.d.ts +1 -2
- package/lib/esm/ui/widget/SelectApiKey.d.ts.map +1 -1
- package/lib/esm/ui/widget/SelectApiKey.js +2 -3
- package/lib/esm/ui/widget/SelectApiKey.js.map +1 -1
- package/lib/esm/ui/widget/SelectCustomParam.d.ts +1 -2
- package/lib/esm/ui/widget/SelectCustomParam.d.ts.map +1 -1
- package/lib/esm/ui/widget/SelectCustomParam.js +3 -4
- package/lib/esm/ui/widget/SelectCustomParam.js.map +1 -1
- package/lib/esm/ui/widget/SelectMapFormat.d.ts +1 -1
- package/lib/esm/ui/widget/SelectMapFormat.d.ts.map +1 -1
- package/lib/esm/ui/widget/SelectMapFormat.js +2 -3
- package/lib/esm/ui/widget/SelectMapFormat.js.map +1 -1
- package/lib/esm/ui/widget/SubLayersDataProvider.d.ts +1 -1
- package/lib/esm/ui/widget/SubLayersDataProvider.d.ts.map +1 -1
- package/lib/esm/ui/widget/SubLayersDataProvider.js +1 -1
- package/lib/esm/ui/widget/SubLayersDataProvider.js.map +1 -1
- package/lib/esm/ui/widget/SubLayersPopupButton.d.ts +2 -3
- package/lib/esm/ui/widget/SubLayersPopupButton.d.ts.map +1 -1
- package/lib/esm/ui/widget/SubLayersPopupButton.js +7 -5
- package/lib/esm/ui/widget/SubLayersPopupButton.js.map +1 -1
- package/lib/esm/ui/widget/SubLayersTree.d.ts +4 -5
- package/lib/esm/ui/widget/SubLayersTree.d.ts.map +1 -1
- package/lib/esm/ui/widget/SubLayersTree.js +23 -16
- package/lib/esm/ui/widget/SubLayersTree.js.map +1 -1
- package/lib/esm/ui/widget/TransparencyPopupButton.d.ts +2 -3
- package/lib/esm/ui/widget/TransparencyPopupButton.d.ts.map +1 -1
- package/lib/esm/ui/widget/TransparencyPopupButton.js +1 -2
- package/lib/esm/ui/widget/TransparencyPopupButton.js.map +1 -1
- package/lib/esm/ui/widget/UserPreferencesStorageOptions.d.ts +1 -1
- package/lib/esm/ui/widget/UserPreferencesStorageOptions.d.ts.map +1 -1
- package/package.json +48 -56
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapLayerSettingsPopupButton.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapLayerSettingsPopupButton.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MapLayerSettingsPopupButton.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapLayerSettingsPopupButton.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 \"./MapLayerSettingsPopupButton.scss\";\nimport * as React from \"react\";\nimport { RelativePosition } from \"@itwin/appui-abstract\";\nimport { Popup } from \"@itwin/core-react\";\nimport { SvgSettings } from \"@itwin/itwinui-icons-react\";\nimport { IconButton } from \"@itwin/itwinui-react\";\nimport { MapLayersUI } from \"../../mapLayers\";\nimport { MapManagerSettings } from \"./MapManagerSettings\";\n\nexport interface MapLayerSettingsPopupButtonProps {\n disabled?: boolean;\n}\n\n/** @alpha */\nexport function MapLayerSettingsPopupButton(props: MapLayerSettingsPopupButtonProps) {\n const panelRef = React.useRef<HTMLDivElement>(null);\n const [isSettingsOpen, setIsSettingsOpen] = React.useState(false);\n const [buttonTooltip] = React.useState(MapLayersUI.localization.getLocalizedString(\"mapLayers:Widget.SettingsButtonTooltip\"));\n\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const togglePopupDisplay = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n event.preventDefault();\n setIsSettingsOpen((prev) => !prev);\n },\n [setIsSettingsOpen],\n );\n\n const handleCloseSetting = React.useCallback(() => {\n setIsSettingsOpen(false);\n }, [setIsSettingsOpen]);\n\n const isInsideCoreDialog = React.useCallback((element: HTMLElement) => {\n if (element.nodeName === \"DIV\") {\n if (element.classList && element.classList.contains(\"core-dialog\")) {\n return true;\n }\n if (element.parentElement && isInsideCoreDialog(element.parentElement)) {\n return true;\n }\n } else {\n // istanbul ignore else\n if (element.parentElement && isInsideCoreDialog(element.parentElement)) {\n return true;\n }\n }\n return false;\n }, []);\n\n const handleOutsideClick = React.useCallback(\n (event: MouseEvent) => {\n if (isInsideCoreDialog(event.target as HTMLElement)) {\n return;\n }\n\n // If clicking on button that open panel - don't trigger outside click processing\n if (buttonRef?.current && buttonRef?.current.contains(event.target as Node)) {\n return;\n }\n\n // If clicking the panel, this is not an outside clicked\n if (panelRef.current && panelRef?.current.contains(event.target as Node)) {\n return;\n }\n\n // If we reach this point, we got an outside clicked, no close the popup\n setIsSettingsOpen(false);\n },\n [isInsideCoreDialog],\n );\n\n return (\n <>\n <IconButton\n disabled={props.disabled}\n styleType=\"borderless\"\n label={buttonTooltip}\n className=\"maplayers-settings-popup-button\"\n onClick={togglePopupDisplay}\n ref={buttonRef}\n >\n <SvgSettings />\n </IconButton>\n {/*eslint-disable-next-line @typescript-eslint/no-deprecated */}\n <Popup\n className=\"maplayers-settings-popup\"\n isOpen={isSettingsOpen}\n position={RelativePosition.BottomRight}\n onClose={handleCloseSetting}\n target={buttonRef.current}\n onOutsideClick={handleOutsideClick}\n repositionOnResize={true}\n >\n <div ref={panelRef} className=\"maplayers-settings-popup-panel\">\n <MapManagerSettings />\n </div>\n </Popup>\n </>\n );\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import type { MapLayerOptions } from "../Interfaces";
|
|
3
2
|
/**
|
|
4
3
|
* Widget to Manage Map Layers
|
|
@@ -7,6 +6,6 @@ import type { MapLayerOptions } from "../Interfaces";
|
|
|
7
6
|
interface MapLayersWidgetProps {
|
|
8
7
|
mapLayerOptions?: MapLayerOptions;
|
|
9
8
|
}
|
|
10
|
-
export declare function MapLayersWidget(props: MapLayersWidgetProps): JSX.Element;
|
|
9
|
+
export declare function MapLayersWidget(props: MapLayersWidgetProps): import("react/jsx-runtime").JSX.Element;
|
|
11
10
|
export {};
|
|
12
11
|
//# sourceMappingURL=MapLayersWidget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapLayersWidget.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapLayersWidget.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MapLayersWidget.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapLayersWidget.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD;;;GAGG;AACH,UAAU,oBAAoB;IAC5B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CA+B1D"}
|
|
@@ -5,10 +5,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { useActiveViewport } from "@itwin/appui-react";
|
|
8
|
-
import {
|
|
9
|
-
import { MapLayerManager } from "./MapLayerManager";
|
|
8
|
+
import { Flex } from "@itwin/itwinui-react";
|
|
10
9
|
import { MapLayersUI } from "../../mapLayers";
|
|
11
|
-
|
|
10
|
+
import { MapLayerManager } from "./MapLayerManager";
|
|
12
11
|
export function MapLayersWidget(props) {
|
|
13
12
|
const [notGeoLocatedMsg] = React.useState(MapLayersUI.localization.getLocalizedString("mapLayers:Messages.NotSupported"));
|
|
14
13
|
const activeViewport = useActiveViewport();
|
|
@@ -25,6 +24,6 @@ export function MapLayersWidget(props) {
|
|
|
25
24
|
return ref.current ? ref.current : document.body;
|
|
26
25
|
} }) }));
|
|
27
26
|
}
|
|
28
|
-
return (_jsx(
|
|
27
|
+
return (_jsx(Flex, { justifyContent: "center", style: { width: "100%", height: "100%" }, children: _jsx("div", { className: "map-manager-not-geo-located-text", children: notGeoLocatedMsg }) }));
|
|
29
28
|
}
|
|
30
29
|
//# sourceMappingURL=MapLayersWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapLayersWidget.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapLayersWidget.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MapLayersWidget.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapLayersWidget.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAUpD,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC1H,MAAM,cAAc,GAAG,iBAAiB,EAAE,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;IAC9F,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,CAAC;QAC1E,OAAO,CACL,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,wBAAwB,YAC/C,KAAC,eAAe,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;IACJ,CAAC;IAED,OAAO,CACL,KAAC,IAAI,IAAC,cAAc,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YACpE,cAAK,SAAS,EAAC,kCAAkC,YAAE,gBAAgB,GAAO,GACrE,CACR,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as React from \"react\";\nimport { useActiveViewport } from \"@itwin/appui-react\";\nimport { Flex } from \"@itwin/itwinui-react\";\nimport { MapLayersUI } from \"../../mapLayers\";\nimport { MapLayerManager } from \"./MapLayerManager\";\n\nimport type { MapLayerOptions } from \"../Interfaces\";\n/**\n * Widget to Manage Map Layers\n * @beta\n */\ninterface MapLayersWidgetProps {\n mapLayerOptions?: MapLayerOptions;\n}\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 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 <Flex justifyContent=\"center\" style={{ width: \"100%\", height: \"100%\" }}>\n <div className=\"map-manager-not-geo-located-text\">{notGeoLocatedMsg}</div>\n </Flex>\n );\n}\n"]}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import "./MapLayerManager.scss";
|
|
3
2
|
interface MapManagerLayersHeaderProps {
|
|
4
3
|
label: string;
|
|
5
4
|
isOverlay: boolean;
|
|
6
5
|
disabled?: boolean;
|
|
7
6
|
}
|
|
8
|
-
export declare function MapManagerLayersHeader(props: MapManagerLayersHeaderProps): JSX.Element;
|
|
7
|
+
export declare function MapManagerLayersHeader(props: MapManagerLayersHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
9
8
|
export {};
|
|
10
9
|
//# sourceMappingURL=MapManagerMapLayersHeader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapManagerMapLayersHeader.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerMapLayersHeader.tsx"],"names":[],"mappings":"
|
|
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,2CASxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapManagerSettings.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MapManagerSettings.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapManagerSettings.tsx"],"names":[],"mappings":"AAMA,OAAO,2BAA2B,CAAC;AAiDnC,wBAAgB,kBAAkB,4CAyRjC"}
|
|
@@ -4,17 +4,16 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
// cSpell:ignore droppable Sublayer Basemap
|
|
7
|
+
import "./MapManagerSettings.scss";
|
|
7
8
|
import * as React from "react";
|
|
8
|
-
import { NumberInput } from "@itwin/core-react";
|
|
9
|
-
import { QuantityType } from "@itwin/core-frontend";
|
|
10
9
|
import { PlanarClipMaskMode, PlanarClipMaskPriority, TerrainHeightOriginMode } from "@itwin/core-common";
|
|
11
|
-
import {
|
|
12
|
-
import "
|
|
13
|
-
import { Select, Slider, Tab, Tabs, ToggleSwitch } from "@itwin/itwinui-react";
|
|
10
|
+
import { QuantityType } from "@itwin/core-frontend";
|
|
11
|
+
import { NumberInput } from "@itwin/core-react";
|
|
14
12
|
import { QuantityNumberInput } from "@itwin/imodel-components-react";
|
|
13
|
+
import { Select, Slider, Tab, Tabs, ToggleSwitch } from "@itwin/itwinui-react";
|
|
15
14
|
import { MapLayersUI } from "../../mapLayers";
|
|
16
15
|
import { CustomParamsSettingsPanel } from "./CustomParamsSettings";
|
|
17
|
-
|
|
16
|
+
import { useSourceMapContext } from "./MapLayerManager";
|
|
18
17
|
var MapMaskingOption;
|
|
19
18
|
(function (MapMaskingOption) {
|
|
20
19
|
MapMaskingOption[MapMaskingOption["None"] = 0] = "None";
|
|
@@ -46,7 +45,6 @@ function getHeightOriginModeFromKey(mode) {
|
|
|
46
45
|
}
|
|
47
46
|
return TerrainHeightOriginMode.Ground;
|
|
48
47
|
}
|
|
49
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
50
48
|
export function MapManagerSettings() {
|
|
51
49
|
const { activeViewport } = useSourceMapContext();
|
|
52
50
|
const backgroundMapSettings = activeViewport.view.getDisplayStyle3d().settings.backgroundMap;
|
|
@@ -148,7 +146,8 @@ export function MapManagerSettings() {
|
|
|
148
146
|
}, [updateBackgroundMap]);
|
|
149
147
|
/** Disable commas and letters */
|
|
150
148
|
const onKeyDown = React.useCallback((event) => {
|
|
151
|
-
|
|
149
|
+
const isLetter = /^[a-zA-Z]$/.test(event.key);
|
|
150
|
+
if (event.key === "," || isLetter) {
|
|
152
151
|
event.preventDefault();
|
|
153
152
|
}
|
|
154
153
|
}, []);
|
|
@@ -171,6 +170,6 @@ export function MapManagerSettings() {
|
|
|
171
170
|
const [overrideMaskTransparencyLabel] = React.useState(MapLayersUI.localization.getLocalizedString("mapLayers:Settings.OverrideMaskTransparency"));
|
|
172
171
|
const [maskTransparencyLabel] = React.useState(MapLayersUI.localization.getLocalizedString("mapLayers:Settings.MaskTransparency"));
|
|
173
172
|
const [tabIndex, setTabIndex] = React.useState(0);
|
|
174
|
-
return (_jsxs(Tabs, { labels: [_jsx(Tab, { label: "General" }, "general"), _jsx(Tab, { label: "Advanced" }, "advanced")], onTabSelected: setTabIndex, children: [tabIndex === 0 && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "maplayers-settings-container", children: [_jsx("span", { className: "map-manager-settings-label", children: transparencyLabel }), _jsx(Slider, { min: 0, max: 100, values: [transparency * 100], onChange: handleAlphaChange, step: 1 }), _jsx("span", { className: "map-manager-settings-label", children: locatableLabel }), _jsx(ToggleSwitch, { onChange: onLocatableToggle, checked: isLocatable }), _jsx("span", { className: "map-manager-settings-label", children: maskingLabel }), _jsx(ToggleSwitch, { onChange: onMaskingToggle, checked: masking !== MapMaskingOption.None }), _jsx("span", { className: "map-manager-settings-label", children: overrideMaskTransparencyLabel }), _jsx(ToggleSwitch, { disabled: masking === MapMaskingOption.None, onChange: onOverrideMaskTransparencyToggle, checked: overrideMaskTransparency }), _jsx("span", { className: "map-manager-settings-label", children: maskTransparencyLabel }), _jsx(Slider, { disabled: masking === MapMaskingOption.None || !overrideMaskTransparency, min: 0, max: 100, values: [getNormalizedMaskTransparency() * 100], onChange: handleMaskTransparencyChange, step: 1 }), _jsxs(_Fragment, { children: [_jsx("span", { className: "map-manager-settings-label", children: elevationOffsetLabel }), _jsx(QuantityNumberInput, { disabled: applyTerrain, persistenceValue: groundBias, step: 1, snap: true, quantityType: QuantityType.LengthEngineering, onChange: handleElevationChange, onKeyDown: onKeyDown }), _jsx("span", { className: "map-manager-settings-label", children: useDepthBufferLabel }), _jsx(ToggleSwitch, { disabled: applyTerrain, onChange: onToggleUseDepthBuffer, checked: useDepthBuffer })] })] }), _jsx("div", { className: "map-manager-settings-group", children: _jsxs("fieldset", { children: [_jsx("legend", { children: terrainLabel }), _jsxs("div", { className: "maplayers-settings-container", children: [_jsx("span", { className: "map-manager-settings-label", children: enableLabel }), _jsx(ToggleSwitch, { onChange: onToggleTerrain, checked: applyTerrain }), _jsx("span", { className: "map-manager-settings-label", children: modelHeightLabel }), _jsx(QuantityNumberInput, { disabled: !applyTerrain, persistenceValue: terrainOrigin, snap: true, quantityType: QuantityType.LengthEngineering, onChange: handleHeightOriginChange, onKeyDown: onKeyDown }), _jsx("span", { className: "map-manager-settings-label", children: heightOriginLabel }), _jsx(Select, {
|
|
173
|
+
return (_jsxs(Tabs, { activeIndex: tabIndex, orientation: "horizontal", labels: [_jsx(Tab, { label: "General" }, "general"), _jsx(Tab, { label: "Advanced" }, "advanced")], onTabSelected: setTabIndex, children: [tabIndex === 0 && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "maplayers-settings-container", children: [_jsx("span", { className: "map-manager-settings-label", children: transparencyLabel }), _jsx(Slider, { min: 0, max: 100, values: [transparency * 100], onChange: handleAlphaChange, step: 1 }), _jsx("span", { className: "map-manager-settings-label", children: locatableLabel }), _jsx(ToggleSwitch, { onChange: onLocatableToggle, checked: isLocatable }), _jsx("span", { className: "map-manager-settings-label", children: maskingLabel }), _jsx(ToggleSwitch, { onChange: onMaskingToggle, checked: masking !== MapMaskingOption.None }), _jsx("span", { className: "map-manager-settings-label", children: overrideMaskTransparencyLabel }), _jsx(ToggleSwitch, { disabled: masking === MapMaskingOption.None, onChange: onOverrideMaskTransparencyToggle, checked: overrideMaskTransparency }), _jsx("span", { className: "map-manager-settings-label", children: maskTransparencyLabel }), _jsx(Slider, { disabled: masking === MapMaskingOption.None || !overrideMaskTransparency, min: 0, max: 100, values: [getNormalizedMaskTransparency() * 100], onChange: handleMaskTransparencyChange, step: 1 }), _jsxs(_Fragment, { children: [_jsx("span", { className: "map-manager-settings-label", children: elevationOffsetLabel }), _jsx(QuantityNumberInput, { disabled: applyTerrain, persistenceValue: groundBias, step: 1, snap: true, quantityType: QuantityType.LengthEngineering, onChange: handleElevationChange, onKeyDown: onKeyDown }), _jsx("span", { className: "map-manager-settings-label", children: useDepthBufferLabel }), _jsx(ToggleSwitch, { disabled: applyTerrain, onChange: onToggleUseDepthBuffer, checked: useDepthBuffer })] })] }), _jsx("div", { className: "map-manager-settings-group", children: _jsxs("fieldset", { children: [_jsx("legend", { children: terrainLabel }), _jsxs("div", { className: "maplayers-settings-container", children: [_jsx("span", { className: "map-manager-settings-label", children: enableLabel }), _jsx(ToggleSwitch, { onChange: onToggleTerrain, checked: applyTerrain }), _jsx("span", { className: "map-manager-settings-label", children: modelHeightLabel }), _jsx(QuantityNumberInput, { disabled: !applyTerrain, persistenceValue: terrainOrigin, snap: true, quantityType: QuantityType.LengthEngineering, onChange: handleHeightOriginChange, onKeyDown: onKeyDown }), _jsx("span", { className: "map-manager-settings-label", children: heightOriginLabel }), _jsx(Select, { options: terrainHeightOptions.current, disabled: !applyTerrain, value: heightOriginMode, onChange: handleElevationTypeSelected, size: "small" }), _jsx("span", { className: "map-manager-settings-label", children: exaggerationLabel }), _jsx(NumberInput, { value: exaggeration, disabled: !applyTerrain, onChange: handleExaggerationChange, onKeyDown: onKeyDown })] })] }) })] })), tabIndex === 1 && _jsx(CustomParamsSettingsPanel, {})] }));
|
|
175
174
|
}
|
|
176
175
|
//# 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 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"]}
|
|
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 \"./MapManagerSettings.scss\";\nimport * as React from \"react\";\nimport { PlanarClipMaskMode, PlanarClipMaskPriority, TerrainHeightOriginMode } from \"@itwin/core-common\";\nimport { QuantityType } from \"@itwin/core-frontend\";\nimport { NumberInput } from \"@itwin/core-react\";\nimport { QuantityNumberInput } from \"@itwin/imodel-components-react\";\nimport { Select, Slider, Tab, Tabs, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport { MapLayersUI } from \"../../mapLayers\";\nimport { CustomParamsSettingsPanel } from \"./CustomParamsSettings\";\nimport { useSourceMapContext } from \"./MapLayerManager\";\n\nimport type { ViewState3d } from \"@itwin/core-frontend\";\nimport type { BackgroundMapProps, BackgroundMapSettings, TerrainProps } from \"@itwin/core-common\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\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\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 const isLetter = /^[a-zA-Z]$/.test(event.key);\n if (event.key === \",\" || isLetter) {\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 activeIndex={tabIndex} orientation=\"horizontal\" 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 <ToggleSwitch onChange={onLocatableToggle} checked={isLocatable} />\n\n <span className=\"map-manager-settings-label\">{maskingLabel}</span>\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 <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 <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 <Select\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 {/*eslint-disable-next-line @typescript-eslint/no-deprecated */}\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"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import "./MapSelectFeaturesDialog.scss";
|
|
3
2
|
import type { MapLayerSource } from "@itwin/core-frontend";
|
|
4
3
|
import type { MapSubLayerProps } from "@itwin/core-common";
|
|
@@ -8,5 +7,5 @@ export interface MapSelectFeaturesProps {
|
|
|
8
7
|
handleOk: (subLayers: MapSubLayerProps[]) => void;
|
|
9
8
|
handleCancel: () => void;
|
|
10
9
|
}
|
|
11
|
-
export declare function MapSelectFeaturesDialog(props: MapSelectFeaturesProps): JSX.Element;
|
|
10
|
+
export declare function MapSelectFeaturesDialog(props: MapSelectFeaturesProps): import("react/jsx-runtime").JSX.Element;
|
|
12
11
|
//# sourceMappingURL=MapSelectFeaturesDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapSelectFeaturesDialog.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapSelectFeaturesDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MapSelectFeaturesDialog.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapSelectFeaturesDialog.tsx"],"names":[],"mappings":"AAMA,OAAO,gCAAgC,CAAC;AAOxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,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;AAID,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,2CA6EpE"}
|
|
@@ -4,16 +4,14 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
// cSpell:ignore Modeless WMTS
|
|
7
|
-
import { Dialog } from "@itwin/core-react";
|
|
8
|
-
import * as React from "react";
|
|
9
7
|
import "./MapSelectFeaturesDialog.scss";
|
|
8
|
+
import * as React from "react";
|
|
9
|
+
import { SvgStatusWarning } from "@itwin/itwinui-icons-color-react";
|
|
10
|
+
import { Button, Icon, Modal, ModalContent } from "@itwin/itwinui-react";
|
|
10
11
|
import { MapLayersUI } from "../../mapLayers";
|
|
11
12
|
import { SubLayersTree } from "./SubLayersTree";
|
|
12
|
-
import { Button, Icon } from "@itwin/itwinui-react";
|
|
13
|
-
import { SvgStatusWarning } from "@itwin/itwinui-icons-color-react";
|
|
14
13
|
const minHeight = 250;
|
|
15
14
|
const maxSubLayers = 30;
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
17
15
|
export function MapSelectFeaturesDialog(props) {
|
|
18
16
|
const [subLayers, setSubLayers] = React.useState(props.subLayers);
|
|
19
17
|
const dialogContainer = React.useRef(null);
|
|
@@ -40,6 +38,6 @@ export function MapSelectFeaturesDialog(props) {
|
|
|
40
38
|
function getFooter() {
|
|
41
39
|
return (_jsxs("div", { className: "map-layer-features-footer", children: [_jsx("div", { className: "map-layer-features-footer-warnMessage", children: renderWarningMessage() }), _jsxs("div", { className: "map-layer-features-footer-buttons", children: [_jsx(Button, { className: "map-layer-features-footer-button", styleType: "high-visibility", onClick: handleOk, disabled: !readyToSave(), children: MapLayersUI.translate("Dialog.Add") }), _jsx(Button, { className: "map-layer-features-footer-button", styleType: "default", onClick: handleCancel, children: MapLayersUI.translate("Dialog.Cancel") })] })] }));
|
|
42
40
|
}
|
|
43
|
-
return (_jsx("div", { ref: dialogContainer, children: _jsx(
|
|
41
|
+
return (_jsx("div", { ref: dialogContainer, children: _jsx(Modal, { as: "div", className: "map-layer-select-features-dialog", title: MapLayersUI.translate("CustomAttach.SelectLayersToCreate"), isOpen: true, onClose: handleCancel, style: { minHeight, maxWidth: 600 }, portal: true, children: _jsxs(ModalContent, { children: [_jsx(SubLayersTree, { expandMode: "full", checkboxStyle: "standard", subLayers: subLayers, onSubLayerStateChange: () => setSubLayers([...subLayers]) }), getFooter()] }) }) }));
|
|
44
42
|
}
|
|
45
43
|
//# sourceMappingURL=MapSelectFeaturesDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapSelectFeaturesDialog.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapSelectFeaturesDialog.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG,8BAA8B;AAE9B,OAAO,
|
|
1
|
+
{"version":3,"file":"MapSelectFeaturesDialog.js","sourceRoot":"","sources":["../../../../src/ui/widget/MapSelectFeaturesDialog.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 Modeless WMTS\n\nimport \"./MapSelectFeaturesDialog.scss\";\nimport * as React from \"react\";\nimport { SvgStatusWarning } from \"@itwin/itwinui-icons-color-react\";\nimport { Button, Icon, Modal, ModalContent } from \"@itwin/itwinui-react\";\nimport { MapLayersUI } from \"../../mapLayers\";\nimport { SubLayersTree } from \"./SubLayersTree\";\n\nimport type { MapLayerSource } from \"@itwin/core-frontend\";\nimport type { MapSubLayerProps } from \"@itwin/core-common\";\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\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 <Modal\n as=\"div\"\n className=\"map-layer-select-features-dialog\"\n title={MapLayersUI.translate(\"CustomAttach.SelectLayersToCreate\")}\n isOpen={true}\n onClose={handleCancel}\n style={{ minHeight, maxWidth: 600 }}\n portal\n >\n {/* 'onSubLayerStateChange' is used to trigger hook state change only, no need to update subLayer objects */}\n <ModalContent>\n <SubLayersTree expandMode=\"full\" checkboxStyle=\"standard\" subLayers={subLayers} onSubLayerStateChange={() => setSubLayers([...subLayers])} />\n {getFooter()}\n </ModalContent>\n </Modal>\n </div>\n );\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import "./MapUrlDialog.scss";
|
|
3
2
|
import { MapLayerSource } from "@itwin/core-frontend";
|
|
4
3
|
import type { ImageMapLayerSettings } from "@itwin/core-common";
|
|
@@ -11,7 +10,7 @@ export declare const MAP_TYPES: {
|
|
|
11
10
|
tileUrl: string;
|
|
12
11
|
arcGisFeature: string;
|
|
13
12
|
};
|
|
14
|
-
export
|
|
13
|
+
export type LayerCreationMode = "single" | "multiple";
|
|
15
14
|
interface MapUrlDialogProps {
|
|
16
15
|
activeViewport?: ScreenViewport;
|
|
17
16
|
isOverlay: boolean;
|
|
@@ -35,6 +34,6 @@ export interface SourceState {
|
|
|
35
34
|
[key: string]: string;
|
|
36
35
|
};
|
|
37
36
|
}
|
|
38
|
-
export declare function MapUrlDialog(props: MapUrlDialogProps): JSX.Element;
|
|
37
|
+
export declare function MapUrlDialog(props: MapUrlDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
39
38
|
export {};
|
|
40
39
|
//# sourceMappingURL=MapUrlDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapUrlDialog.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapUrlDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MapUrlDialog.d.ts","sourceRoot":"","sources":["../../../../src/ui/widget/MapUrlDialog.tsx"],"names":[],"mappings":"AAMA,OAAO,qBAAqB,CAAC;AAG7B,OAAO,EAAa,cAAc,EAAqE,MAAM,sBAAsB,CAAC;AAapI,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAwB,wBAAwB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC;AAMF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAAC;AACtD,UAAU,iBAAiB;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,eAAe,CAAC;IAGlC,cAAc,CAAC,EAAE;QACf,KAAK,EAAE,qBAAqB,CAAC;QAC7B,UAAU,CAAC,EAAE,wBAAwB,CAAC;QACtC,MAAM,CAAC,EAAE,cAAc,CAAC;KACzB,CAAC;IAEF,oBAAoB,CAAC,EAAE,cAAc,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,wBAAwB,CAAC;IACrC,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC3C,qBAAqB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACnD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,2CA6qBpD"}
|
|
@@ -6,12 +6,11 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
6
6
|
// cSpell:ignore Modeless WMTS
|
|
7
7
|
import "./MapUrlDialog.scss";
|
|
8
8
|
import * as React from "react";
|
|
9
|
-
import { SpecialKey } from "@itwin/appui-abstract";
|
|
10
9
|
import { BeEvent, Guid } from "@itwin/core-bentley";
|
|
11
10
|
import { IModelApp, MapLayerSource, MapLayerSourceStatus, NotifyMessageDetails, OutputMessagePriority } from "@itwin/core-frontend";
|
|
12
|
-
import {
|
|
11
|
+
import { useCrossOriginPopup } from "@itwin/core-react";
|
|
13
12
|
import { SvgStatusWarning, SvgTechnicalPreviewMini } from "@itwin/itwinui-icons-color-react";
|
|
14
|
-
import { Button, Icon, Input, LabeledInput, ProgressLinear } from "@itwin/itwinui-react";
|
|
13
|
+
import { Button, Icon, Input, LabeledInput, Modal, ModalButtonBar, ModalContent, ProgressLinear } from "@itwin/itwinui-react";
|
|
15
14
|
import { CustomParamsMappingStorage } from "../../CustomParamsMappingStorage";
|
|
16
15
|
import { CustomParamsStorage } from "../../CustomParamsStorage";
|
|
17
16
|
import { CustomParamUtils } from "../../CustomParamUtils";
|
|
@@ -31,7 +30,6 @@ const URL_SCHEMES = {
|
|
|
31
30
|
http: "http://",
|
|
32
31
|
https: "https://",
|
|
33
32
|
};
|
|
34
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
35
33
|
export function MapUrlDialog(props) {
|
|
36
34
|
const { onOkResult, mapLayerOptions } = props;
|
|
37
35
|
const getMapUrlFromProps = React.useCallback(() => {
|
|
@@ -167,7 +165,7 @@ export function MapUrlDialog(props) {
|
|
|
167
165
|
hasTokenEndPoint = true;
|
|
168
166
|
}
|
|
169
167
|
}
|
|
170
|
-
catch
|
|
168
|
+
catch { }
|
|
171
169
|
}
|
|
172
170
|
else if (userName.length > 0 || password.length > 0) {
|
|
173
171
|
// This is a patch until @itwin\core-frontend return the expected 'InvalidCredentials' status.
|
|
@@ -255,7 +253,7 @@ export function MapUrlDialog(props) {
|
|
|
255
253
|
try {
|
|
256
254
|
await MapLayerPreferences.replaceSource(props.mapLayerSourceToEdit, source, vp.iModel.iTwinId, vp?.iModel.iModelId);
|
|
257
255
|
}
|
|
258
|
-
catch
|
|
256
|
+
catch {
|
|
259
257
|
const errorMessage = IModelApp.localization.getLocalizedString("mapLayers:Messages.MapLayerEditError", {
|
|
260
258
|
layerName: props.mapLayerSourceToEdit?.name,
|
|
261
259
|
});
|
|
@@ -408,7 +406,7 @@ export function MapUrlDialog(props) {
|
|
|
408
406
|
await updateAuthState(source, validation);
|
|
409
407
|
}
|
|
410
408
|
}
|
|
411
|
-
catch
|
|
409
|
+
catch { }
|
|
412
410
|
}
|
|
413
411
|
})();
|
|
414
412
|
}, [isAccessClientInitialized, props.signInModeArgs, shouldAutoAttachSource, updateAuthState]);
|
|
@@ -436,8 +434,7 @@ export function MapUrlDialog(props) {
|
|
|
436
434
|
oauthProcessSucceeded,
|
|
437
435
|
]);
|
|
438
436
|
const handleOnKeyDown = React.useCallback((event) => {
|
|
439
|
-
|
|
440
|
-
if (event.key === SpecialKey.Enter) {
|
|
437
|
+
if (event.key === "Enter") {
|
|
441
438
|
if (readyToSave()) {
|
|
442
439
|
handleOk();
|
|
443
440
|
}
|
|
@@ -512,16 +509,14 @@ export function MapUrlDialog(props) {
|
|
|
512
509
|
}
|
|
513
510
|
// Use a hook to display the popup.
|
|
514
511
|
// The display of the popup is controlled by the 'showOauthPopup' state variable.
|
|
512
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
515
513
|
useCrossOriginPopup(showOauthPopup, externalLoginUrl, externalLoginTitle, 450, 450, handleOAuthPopupClose);
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
} }), serverRequireCredentials &&
|
|
524
|
-
externalLoginUrl === undefined && // external login is handled in popup
|
|
525
|
-
props.mapLayerSourceToEdit === undefined && (_jsxs(_Fragment, { children: [_jsx("span", { className: "map-layer-source-label", children: userNameLabel }), _jsx(LabeledInput, { className: "map-layer-source-input", displayStyle: "inline", placeholder: serverRequireCredentials ? userNameRequiredLabel : userNameLabel, status: (!userName && serverRequireCredentials) || invalidCredentialsProvided ? "warning" : undefined, disabled: layerAttachPending || layerAuthPending, onChange: onUsernameChange, value: userName, size: "small" }), _jsx("span", { className: "map-layer-source-label", children: passwordLabel }), _jsx(LabeledInput, { className: "map-layer-source-input", displayStyle: "inline", type: "password", placeholder: serverRequireCredentials ? passwordRequiredLabel : passwordLabel, status: (!password && serverRequireCredentials) || invalidCredentialsProvided ? "warning" : undefined, disabled: layerAttachPending || layerAuthPending, onChange: onPasswordChange, onKeyPress: handleOnKeyDown, value: password, size: "small" })] })), !props.signInModeArgs && !props.mapLayerSourceToEdit && (_jsx("div", { title: !isSettingsStorageAvailable ? noSaveSettingsWarning : "", children: hasImodelContext && mapLayerOptions?.showUserPreferencesStorageOptions && (_jsx(UserPreferencesStorageOptions, { disabled: !isSettingsStorageAvailable, itwinChecked: settingsStorage === "iTwin", modelChecked: settingsStorage === "Model", onChange: onRadioChange })) }))] }) }), renderWarningMessage(), (layerAttachPending || layerAuthPending) && (_jsx("div", { className: "map-layer-source-progressBar", children: _jsx(ProgressLinear, { indeterminate: true }) }))] }) }));
|
|
514
|
+
return (_jsx("div", { ref: dialogContainer, children: _jsxs(Modal, { as: "div", className: "map-layer-url-dialog", title: dialogTitle, isOpen: true, onClose: handleCancel, style: { minHeight: 120, maxWidth: 600 }, portal: true, children: [_jsxs(ModalContent, { children: [_jsxs("div", { className: "map-layer-source-url", children: [_jsx("span", { className: "map-layer-source-label", children: typeLabel }), _jsx(SelectMapFormat, { value: mapType, disabled: props.signInModeArgs !== undefined || props.mapLayerSourceToEdit !== undefined || layerAttachPending || layerAuthPending, onChange: setMapType, mapTypesOptions: mapLayerOptions?.mapTypeOptions, status: incompatibleFormat ? "warning" : undefined, message: incompatibleFormat ? MapLayersUI.translate("CustomAttach.InvalidType") : undefined }), _jsx("span", { className: "map-layer-source-label", children: nameLabel }), _jsx(Input, { className: "map-layer-source-input", placeholder: nameInputPlaceHolder, onChange: onNameChange, value: mapName, disabled: !!props.signInModeArgs || layerAttachPending || layerAuthPending }), _jsx("span", { className: "map-layer-source-label", children: urlLabel }), _jsx(Input, { className: "map-layer-source-input", placeholder: urlInputPlaceHolder, onKeyDown: handleOnKeyDown, onChange: onUrlChange, disabled: !!props.signInModeArgs || props.mapLayerSourceToEdit !== undefined || layerAttachPending || layerAuthPending, value: mapUrl }), _jsxs("span", { className: "map-layer-source-label", children: [MapLayersUI.translate("CustomAttach.CustomParamsLabel"), _jsx("div", { title: MapLayersUI.translate("Labels.TechPreviewBadgeTooltip"), className: "map-layer-source-previewBadge-icon", children: _jsx(Icon, { size: "small", children: _jsx(SvgTechnicalPreviewMini, {}) }) })] }), _jsx(SelectCustomParam, { value: customParamNames, disabled: layerAttachPending || layerAuthPending, onChange: (paramNames) => {
|
|
515
|
+
setCustomParamNames(paramNames);
|
|
516
|
+
SetCustomParamNamesChangedByUser(true);
|
|
517
|
+
resetSignInState();
|
|
518
|
+
} }), serverRequireCredentials &&
|
|
519
|
+
externalLoginUrl === undefined && // external login is handled in popup
|
|
520
|
+
props.mapLayerSourceToEdit === undefined && (_jsxs(_Fragment, { children: [_jsx("span", { className: "map-layer-source-label", children: userNameLabel }), _jsx(LabeledInput, { className: "map-layer-source-input", displayStyle: "inline", placeholder: serverRequireCredentials ? userNameRequiredLabel : userNameLabel, status: (!userName && serverRequireCredentials) || invalidCredentialsProvided ? "warning" : undefined, disabled: layerAttachPending || layerAuthPending, onChange: onUsernameChange, value: userName, size: "small" }), _jsx("span", { className: "map-layer-source-label", children: passwordLabel }), _jsx(LabeledInput, { className: "map-layer-source-input", displayStyle: "inline", type: "password", placeholder: serverRequireCredentials ? passwordRequiredLabel : passwordLabel, status: (!password && serverRequireCredentials) || invalidCredentialsProvided ? "warning" : undefined, disabled: layerAttachPending || layerAuthPending, onChange: onPasswordChange, onKeyDown: handleOnKeyDown, value: password, size: "small" })] })), !props.signInModeArgs && !props.mapLayerSourceToEdit && (_jsx("div", { title: !isSettingsStorageAvailable ? noSaveSettingsWarning : "", children: hasImodelContext && mapLayerOptions?.showUserPreferencesStorageOptions && (_jsx(UserPreferencesStorageOptions, { disabled: !isSettingsStorageAvailable, itwinChecked: settingsStorage === "iTwin", modelChecked: settingsStorage === "Model", onChange: onRadioChange })) }))] }), _jsxs(ModalButtonBar, { children: [_jsx(Button, { className: "map-layer-features-footer-button", styleType: "high-visibility", onClick: handleOk, disabled: !readyToSave(), children: props?.mapLayerSourceToEdit ? MapLayersUI.translate("Dialog.Edit") : MapLayersUI.translate("Dialog.Add") }), _jsx(Button, { className: "map-layer-source-footer-button", styleType: "default", onClick: handleCancel, children: MapLayersUI.translate("Dialog.Cancel") })] })] }), renderWarningMessage(), (layerAttachPending || layerAuthPending) && (_jsx("div", { className: "map-layer-source-progressBar", children: _jsx(ProgressLinear, { indeterminate: true }) }))] }) }));
|
|
526
521
|
}
|
|
527
522
|
//# sourceMappingURL=MapUrlDialog.js.map
|