From b3a29f2a33116b68cb0040b7119bfe44bb26534f Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 25 Mar 2024 13:22:02 -0700 Subject: [PATCH 001/151] sentinel1-explorer: add Map, Layout, Renderers and SceneInfo components --- package.json | 2 + src/config.json | 12 ++ .../About/AboutSentinel1Explorer.tsx | 26 +++ .../About/AboutSentinel1ExplorerContent.tsx | 66 ++++++ .../components/About/index.ts | 16 ++ .../components/Layout/Layout.tsx | 125 ++++++++++++ .../components/Map/Map.tsx | 69 +++++++ .../RasterFunctionSelectorContainer.tsx | 24 +++ .../RasterFunctionSelector/index.ts | 16 ++ .../thumbnails/placeholder.JPG | Bin 0 -> 15252 bytes .../useSentinel1RasterFunctions.tsx | 67 +++++++ .../SceneInfo/SceneInfoContainer.tsx | 112 +++++++++++ .../components/SceneInfo/index.ts | 16 ++ .../useQueryAvailableSentinel1Scenes.tsx | 58 ++++++ src/sentinel-1-explorer/index.tsx | 53 +++++ .../store/getPreloadedState.ts | 188 ++++++++++++++++++ src/sentinel-1-explorer/store/index.ts | 22 ++ src/shared/services/sentinel-1/config.ts | 105 ++++++++++ .../services/sentinel-1/getTimeExtent.ts | 49 +++++ 19 files changed, 1026 insertions(+) create mode 100644 src/sentinel-1-explorer/components/About/AboutSentinel1Explorer.tsx create mode 100644 src/sentinel-1-explorer/components/About/AboutSentinel1ExplorerContent.tsx create mode 100644 src/sentinel-1-explorer/components/About/index.ts create mode 100644 src/sentinel-1-explorer/components/Layout/Layout.tsx create mode 100644 src/sentinel-1-explorer/components/Map/Map.tsx create mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx create mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/index.ts create mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/thumbnails/placeholder.JPG create mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx create mode 100644 src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx create mode 100644 src/sentinel-1-explorer/components/SceneInfo/index.ts create mode 100644 src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx create mode 100644 src/sentinel-1-explorer/index.tsx create mode 100644 src/sentinel-1-explorer/store/getPreloadedState.ts create mode 100644 src/sentinel-1-explorer/store/index.ts create mode 100644 src/shared/services/sentinel-1/config.ts create mode 100644 src/shared/services/sentinel-1/getTimeExtent.ts diff --git a/package.json b/package.json index b94e0609..342d4fa4 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,12 @@ "test": "jest --passWithNoTests", "start-landsat": "webpack serve --mode development --open --env app=landsat", "start-landcover": "webpack serve --mode development --open --env app=landcover-explorer", + "start-sentinel1": "webpack serve --mode development --open --env app=sentinel1-explorer", "start-spectral-sampling-tool": "webpack serve --mode development --open --env app=spectral-sampling-tool", "start-landsat-surface-temp": "webpack serve --mode development --open --env app=landsat-surface-temp", "build-landsat": "webpack --mode production --env app=landsat", "build-landcover": "webpack --mode production --env app=landcover-explorer", + "build-sentinel1": "webpack --mode production --env app=sentinel1-explorer", "build-spectral-sampling-tool": "webpack --mode production --env app=spectral-sampling-tool", "build-landsat-surface-temp": "webpack --mode production --env app=landsat-surface-temp", "prepare": "husky install", diff --git a/src/config.json b/src/config.json index ba13126f..ce8f125b 100644 --- a/src/config.json +++ b/src/config.json @@ -16,6 +16,14 @@ "pathname": "/landcoverexplorer", "entrypoint": "/src/landcover-explorer/index.tsx" }, + "sentinel1-explorer": { + "title": "Esri | Sentinel-1 Explorer", + "webmapId": "f8770e0adc5c41038026494b871ceb99", + "description": "", + "animationMetadataSources": "Esri, European Space Agency", + "pathname": "/sentinel1explorer", + "entrypoint": "/src/sentinel-1-explorer/index.tsx" + }, "spectral-sampling-tool": { "title": "Spectral Sampling Tool", "webmapId": "81609bbe235942919ad27c77e42c600e", @@ -35,6 +43,10 @@ "landsat-level-2": { "development": "https://utility.arcgis.com/usrsvcs/servers/f89d8adb0d5141a7a5820e8a6375480e/rest/services/LandsatC2L2/ImageServer", "production": "https://utility.arcgis.com/usrsvcs/servers/125204cf060644659af558f4f6719b0f/rest/services/LandsatC2L2/ImageServer" + }, + "sentinel-1": { + "development": "https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer", + "production": "https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer" } } } diff --git a/src/sentinel-1-explorer/components/About/AboutSentinel1Explorer.tsx b/src/sentinel-1-explorer/components/About/AboutSentinel1Explorer.tsx new file mode 100644 index 00000000..b4fc0b2d --- /dev/null +++ b/src/sentinel-1-explorer/components/About/AboutSentinel1Explorer.tsx @@ -0,0 +1,26 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { About } from '@shared/components/About'; +import React from 'react'; +import { AboutSentinel1ExplorerContent } from './AboutSentinel1ExplorerContent'; + +export const AboutSentinel1Explorer = () => { + return ( + + + + ); +}; diff --git a/src/sentinel-1-explorer/components/About/AboutSentinel1ExplorerContent.tsx b/src/sentinel-1-explorer/components/About/AboutSentinel1ExplorerContent.tsx new file mode 100644 index 00000000..fd321d07 --- /dev/null +++ b/src/sentinel-1-explorer/components/About/AboutSentinel1ExplorerContent.tsx @@ -0,0 +1,66 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { appConfig } from '@shared/config'; +import React from 'react'; + +export const AboutSentinel1ExplorerContent = () => { + return ( +
+
+
+ {appConfig.title} +
+
+ +
+

+ About the data +

+ +

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. + Excepturi esse quos ab vel, ducimus deserunt temporibus quam + soluta assumenda! Doloribus repudiandae id voluptatem sint + incidunt numquam vero! Enim, amet natus? +

+
+ +
+

+ About the app +

+ +

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. + Aliquid nesciunt qui maxime mollitia odit dolorum, quod + repellat cum amet nihil natus! Itaque inventore tempore + nihil repudiandae. Earum tempore quos reprehenderit. +

+
+ +
+

+ Attribution and Terms of Use +

+
+
+ ); +}; diff --git a/src/sentinel-1-explorer/components/About/index.ts b/src/sentinel-1-explorer/components/About/index.ts new file mode 100644 index 00000000..134608bd --- /dev/null +++ b/src/sentinel-1-explorer/components/About/index.ts @@ -0,0 +1,16 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { AboutSentinel1Explorer } from './AboutSentinel1Explorer'; diff --git a/src/sentinel-1-explorer/components/Layout/Layout.tsx b/src/sentinel-1-explorer/components/Layout/Layout.tsx new file mode 100644 index 00000000..91fd7eb3 --- /dev/null +++ b/src/sentinel-1-explorer/components/Layout/Layout.tsx @@ -0,0 +1,125 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import BottomPanel from '@shared/components/BottomPanel/BottomPanel'; +import { Calendar } from '@shared/components/Calendar'; +import { AppHeader } from '@shared/components/AppHeader'; +import { + ContainerOfSecondaryControls, + ModeSelector, +} from '@shared/components/ModeSelector'; +import { useSelector } from 'react-redux'; +import { + selectActiveAnalysisTool, + selectAppMode, +} from '@shared/store/ImageryScene/selectors'; +import { AnimationControl } from '@shared/components/AnimationControl'; +import { AnalysisToolSelector } from '@shared/components/AnalysisToolSelector'; +import { SwipeLayerSelector } from '@shared/components/SwipeLayerSelector'; +import { useSaveAppState2HashParams } from '@shared/hooks/useSaveAppState2HashParams'; +import { IS_MOBILE_DEVICE } from '@shared/constants/UI'; +import { DynamicModeInfo } from '@shared/components/DynamicModeInfo'; +import { appConfig } from '@shared/config'; +import { useQueryAvailableSentinel1Scenes } from '../../hooks/useQueryAvailableSentinel1Scenes'; +import { SceneInfo } from '../SceneInfo'; +import { Sentinel1FunctionSelector } from '../RasterFunctionSelector'; + +export const Layout = () => { + const mode = useSelector(selectAppMode); + + const analysisTool = useSelector(selectActiveAnalysisTool); + + const dynamicModeOn = mode === 'dynamic'; + + const shouldShowSecondaryControls = + mode === 'swipe' || mode === 'animate' || mode === 'analysis'; + + /** + * This custom hook gets invoked whenever the acquisition year, map center, or other filters are + * changes, it will dispatch the query that finds the available sentinel-1 scenes. + */ + useQueryAvailableSentinel1Scenes(); + + useSaveAppState2HashParams(); + + if (IS_MOBILE_DEVICE) { + return ( + <> + + +
+ + {/* */} + +
+
+ + ); + } + + return ( + <> + + +
+ + + {shouldShowSecondaryControls && ( + + + {/* + */} + + )} + + {/* {mode === 'analysis' && analysisTool === 'change' && ( + + + + )} */} +
+ +
+ {dynamicModeOn ? ( + <> + {/* + */} + + ) : ( + <> +
+ +
+ + {/* {mode === 'analysis' && ( +
+ + + + +
+ )} */} + + + + )} + + +
+
+ + ); +}; diff --git a/src/sentinel-1-explorer/components/Map/Map.tsx b/src/sentinel-1-explorer/components/Map/Map.tsx new file mode 100644 index 00000000..24e94c91 --- /dev/null +++ b/src/sentinel-1-explorer/components/Map/Map.tsx @@ -0,0 +1,69 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { FC } from 'react'; +import MapViewContainer from '@shared/components/MapView/MapViewContainer'; +// import { LandsatLayer } from '../LandsatLayer'; +// import { SwipeWidget } from '../SwipeWidget'; +import { AnimationLayer } from '@shared/components/AnimationLayer'; +import { GroupLayer } from '@shared/components/GroupLayer'; +import { AnalysisToolQueryLocation } from '@shared/components/AnalysisToolQueryLocation'; +import { Zoom2NativeScale } from '@shared/components/Zoom2NativeScale/Zoom2NativeScale'; +import { MapPopUpAnchorPoint } from '@shared/components/MapPopUpAnchorPoint'; +import { HillshadeLayer } from '@shared/components/HillshadeLayer/HillshadeLayer'; +// import { ChangeLayer } from '../ChangeLayer'; +// import { ZoomToExtent } from '../ZoomToExtent'; +import { ScreenshotWidget } from '@shared/components/ScreenshotWidget/ScreenshotWidget'; +import { MapMagnifier } from '@shared/components/MapMagnifier'; +import CustomMapArrtribution from '@shared/components/CustomMapArrtribution/CustomMapArrtribution'; +import { MapActionButtonsGroup } from '@shared/components/MapActionButton'; +import { CopyLinkWidget } from '@shared/components/CopyLinkWidget'; + +export const Map = () => { + return ( + + + {/* + */} + {/* */} + + + + {/* */} + + + + + + {/* */} + + + + + {/* */} + + + + ); +}; + +export default Map; diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx b/src/sentinel-1-explorer/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx new file mode 100644 index 00000000..3d193d2b --- /dev/null +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx @@ -0,0 +1,24 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { RasterFunctionSelector } from '@shared/components/RasterFunctionSelector'; +import React from 'react'; +import { useSentinel1RasterFunctions } from './useSentinel1RasterFunctions'; + +export const RasterFunctionSelectorContainer = () => { + const data = useSentinel1RasterFunctions(); + + return ; +}; diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/index.ts b/src/sentinel-1-explorer/components/RasterFunctionSelector/index.ts new file mode 100644 index 00000000..29f30ac0 --- /dev/null +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/index.ts @@ -0,0 +1,16 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { RasterFunctionSelectorContainer as Sentinel1FunctionSelector } from './RasterFunctionSelectorContainer'; diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/thumbnails/placeholder.JPG b/src/sentinel-1-explorer/components/RasterFunctionSelector/thumbnails/placeholder.JPG new file mode 100644 index 0000000000000000000000000000000000000000..0ce25ada228c581a3cd233e5231f61506c56f824 GIT binary patch literal 15252 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 literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx new file mode 100644 index 00000000..9e8e6215 --- /dev/null +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx @@ -0,0 +1,67 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { useMemo } from 'react'; +import { + SENTINEL1_RASTER_FUNCTION_INFOS, + Sentinel1FunctionName, +} from '@shared/services/sentinel-1/config'; + +import { RasterFunctionInfo } from '@typing/imagery-service'; + +import PlaceholderThumbnail from './thumbnails/placeholder.jpg'; + +const Sentinel1RendererThumbnailByName: Record = + { + 'Sentinel-1 RGB dB': PlaceholderThumbnail, + 'Sentinel-1 RGB dB DRA': PlaceholderThumbnail, + 'Sentinel-1 RTC VH dB with DRA': PlaceholderThumbnail, + 'Sentinel-1 RTC VV dB with DRA': PlaceholderThumbnail, + // 'NDMI Colorized': LandsatNDMIThumbnail, + }; + +const Sentinel1RendererLegendByName: Record = { + 'Sentinel-1 RGB dB': null, + 'Sentinel-1 RGB dB DRA': null, + 'Sentinel-1 RTC VH dB with DRA': null, + 'Sentinel-1 RTC VV dB with DRA': null, +}; + +export const getSentinel1RasterFunctionInfo = (): RasterFunctionInfo[] => { + return SENTINEL1_RASTER_FUNCTION_INFOS.map((d) => { + const name: Sentinel1FunctionName = d.name as Sentinel1FunctionName; + + const thumbnail = Sentinel1RendererThumbnailByName[name]; + const legend = Sentinel1RendererLegendByName[name]; + + return { + ...d, + thumbnail, + legend, + } as RasterFunctionInfo; + }); +}; + +/** + * Get raster function information that includes thumbnail and legend + * @returns + */ +export const useSentinel1RasterFunctions = (): RasterFunctionInfo[] => { + const rasterFunctionInfosWithThumbnail = useMemo(() => { + return getSentinel1RasterFunctionInfo(); + }, []); + + return rasterFunctionInfosWithThumbnail; +}; diff --git a/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx b/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx new file mode 100644 index 00000000..9afcc348 --- /dev/null +++ b/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx @@ -0,0 +1,112 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { useMemo } from 'react'; +import { + SceneInfoTable, + SceneInfoTableData, +} from '@shared/components/SceneInfoTable'; +// import { useDataFromSelectedLandsatScene } from './useDataFromSelectedLandsatScene'; +import { DATE_FORMAT } from '@shared/constants/UI'; +import { useSelector } from 'react-redux'; +import { selectAppMode } from '@shared/store/ImageryScene/selectors'; +import { formatInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone'; + +export const SceneInfoContainer = () => { + const mode = useSelector(selectAppMode); + + // const data = useDataFromSelectedLandsatScene(); + + // const tableData: SceneInfoTableData[] = useMemo(() => { + // if (!data) { + // return []; + // } + + // const { + // satellite, + // row, + // path, + // acquisitionDate, + // sensor, + // formattedCloudCover, + // // collectionCategory, + // // collectionNumber, + // correctionLevel, + // // processingDate, + // name, + // sunAzimuth, + // sunElevation, + // } = data; + + // return [ + // // the produt id is too long to be displayed in one row, + // // therefore we need to split it into two separate rows + // { + // name: 'Scene ID', + // value: name.slice(0, 17), + // }, + // { + // name: '', + // value: name.slice(17), + // }, + // { + // name: 'Satellite', + // value: satellite, + // }, + // { + // name: 'Sensor', + // value: sensor, + // }, + // { + // name: 'Correction', + // value: correctionLevel, + // }, + // { + // name: 'Path, Row', + // value: path.toString() + ', ' + row.toString(), + // }, + // // { + // // name: 'Row', + // // value: row.toString(), + // // }, + // { + // name: 'Acquired', + // value: formatInUTCTimeZone(acquisitionDate, DATE_FORMAT), + // }, + // { + // name: 'Sun Elevation', + // value: sunElevation.toFixed(3), + // }, + // { + // name: 'Sun Azimuth', + // value: sunAzimuth.toFixed(3), + // }, + // { + // name: 'Cloud Cover', + // value: `${formattedCloudCover}%`, + // }, + // ]; + // }, [data]); + + if (mode === 'dynamic' || mode === 'analysis') { + return null; + } + + // if (!tableData || !tableData.length) { + // return null; + // } + + return ; +}; diff --git a/src/sentinel-1-explorer/components/SceneInfo/index.ts b/src/sentinel-1-explorer/components/SceneInfo/index.ts new file mode 100644 index 00000000..74d3725a --- /dev/null +++ b/src/sentinel-1-explorer/components/SceneInfo/index.ts @@ -0,0 +1,16 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { SceneInfoContainer as SceneInfo } from './SceneInfoContainer'; diff --git a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx new file mode 100644 index 00000000..8c100f5c --- /dev/null +++ b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx @@ -0,0 +1,58 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { useEffect } from 'react'; +import { useSelector } from 'react-redux'; +import { selectMapCenter } from '@shared/store/Map/selectors'; +import { useDispatch } from 'react-redux'; +// import { updateObjectIdOfSelectedScene } from '@shared/store/ImageryScene/thunks'; +import { selectIsAnimationPlaying } from '@shared/store/UI/selectors'; +// import { queryAvailableScenes } from '@shared/store/Landsat/thunks'; +import { selectQueryParams4SceneInSelectedMode } from '@shared/store/ImageryScene/selectors'; +// import { selectAcquisitionYear } from '@shared/store/ImageryScene/selectors'; + +/** + * This custom hook queries the landsat service and find landsat scenes + * that were acquired within the selected date range and intersect with the center of the map screen + * @returns + */ +export const useQueryAvailableSentinel1Scenes = (): void => { + const dispatch = useDispatch(); + + const queryParams = useSelector(selectQueryParams4SceneInSelectedMode); + + const acquisitionDateRange = queryParams?.acquisitionDateRange; + + const isAnimationPlaying = useSelector(selectIsAnimationPlaying); + + /** + * current map center + */ + const center = useSelector(selectMapCenter); + + useEffect(() => { + if (!center || !acquisitionDateRange) { + return; + } + + if (isAnimationPlaying) { + return; + } + + // dispatch(queryAvailableScenes(acquisitionDateRange)); + }, [center, acquisitionDateRange, isAnimationPlaying]); + + return null; +}; diff --git a/src/sentinel-1-explorer/index.tsx b/src/sentinel-1-explorer/index.tsx new file mode 100644 index 00000000..9b8996f3 --- /dev/null +++ b/src/sentinel-1-explorer/index.tsx @@ -0,0 +1,53 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// import '@arcgis/core/assets/esri/themes/dark/main.css'; +import '@shared/styles/index.css'; +import React from 'react'; +import { createRoot } from 'react-dom/client'; +import { Provider as ReduxProvider } from 'react-redux'; +import { getSentinel1ExplorerStore } from './store'; +import ErrorBoundary from '@shared/components/ErrorBoundary/ErrorBoundary'; +import { Map } from './components/Map/Map'; +import { Layout } from './components/Layout/Layout'; +import { AboutSentinel1Explorer } from './components/About'; +import { ErrorPage } from '@shared/components/ErrorPage'; +import { getTimeExtentOfSentinel1Service } from '@shared/services/sentinel-1/getTimeExtent'; +import AppContextProvider from '@shared/contexts/AppContextProvider'; + +(async () => { + const root = createRoot(document.getElementById('root')); + + try { + const store = await getSentinel1ExplorerStore(); + + const timeExtent = await getTimeExtentOfSentinel1Service(); + // console.log(timeExtent); + + root.render( + + + + + + + + + + ); + } catch (err) { + root.render(); + } +})(); diff --git a/src/sentinel-1-explorer/store/getPreloadedState.ts b/src/sentinel-1-explorer/store/getPreloadedState.ts new file mode 100644 index 00000000..b9ac0831 --- /dev/null +++ b/src/sentinel-1-explorer/store/getPreloadedState.ts @@ -0,0 +1,188 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// import { PartialRootState } from './configureStore'; + +import { initialMapState, MapState } from '@shared/store/Map/reducer'; +import { + getAnimationSpeedFromHashParams, + getChangeCompareToolDataFromHashParams, + getHashParamValueByKey, + getMapCenterFromHashParams, + getMaskToolDataFromHashParams, + getQueryParams4MainSceneFromHashParams, + getQueryParams4ScenesInAnimationFromHashParams, + getQueryParams4SecondarySceneFromHashParams, + getSpectralProfileToolDataFromHashParams, + getTemporalProfileToolDataFromHashParams, +} from '@shared/utils/url-hash-params'; +import { MAP_CENTER, MAP_ZOOM } from '@shared/constants/map'; +// import { initialUIState, UIState } from './UI/reducer'; +import { + AnalysisTool, + AppMode, + DefaultQueryParams4ImageryScene, + initialImagerySceneState, + ImageryScenesState, + QueryParams4ImageryScene, + // QueryParams4ImageryScene, +} from '@shared/store/ImageryScene/reducer'; +import { IS_MOBILE_DEVICE } from '@shared/constants/UI'; +import { initialUIState, UIState } from '@shared/store/UI/reducer'; +// import { +// MaskToolState, +// initialMaskToolState, +// } from '@shared/store/MaskTool/reducer'; +// import { +// TrendToolState, +// initialTrendToolState, +// } from '@shared/store/TrendTool/reducer'; +// import { +// initialSpectralProfileToolState, +// SpectralProfileToolState, +// } from '@shared/store/SpectralProfileTool/reducer'; +// import { +// ChangeCompareToolState, +// initialChangeCompareToolState, +// } from '@shared/store/ChangeCompareTool/reducer'; +import { initialLandsatState } from '@shared/store/Landsat/reducer'; +import { PartialRootState } from '@shared/store/configureStore'; +import { Sentinel1FunctionName } from '@shared/services/sentinel-1/config'; +// import { getRandomElement } from '@shared/utils/snippets/getRandomElement'; + +/** + * Map location info that contains center and zoom info from URL Hash Params + */ +const mapLocationFromHashParams = getMapCenterFromHashParams(); + +// /** +// * Use the location of a randomly selected interesting place if there is no map location info +// * found in the URL hash params. +// */ +// const randomInterestingPlace = !mapLocationFromHashParams +// ? getRandomElement([]) +// : null; + +const getPreloadedMapState = (): MapState => { + const mapLocation = mapLocationFromHashParams; + + // if (!mapLocation) { + // mapLocation = randomInterestingPlace?.location; + // } + + // show map labels if there is no `hideMapLabels` in hash params + const showMapLabel = getHashParamValueByKey('hideMapLabels') === null; + + // show terrain if there is no `hideTerrain` in hash params + const showTerrain = getHashParamValueByKey('hideTerrain') === null; + + const showBasemap = getHashParamValueByKey('hideBasemap') === null; + + return { + ...initialMapState, + center: mapLocation?.center || MAP_CENTER, + zoom: mapLocation?.zoom || MAP_ZOOM, + showMapLabel, + showTerrain, + showBasemap, + }; +}; + +const getPreloadedImageryScenesState = (): ImageryScenesState => { + let mode: AppMode = + (getHashParamValueByKey('mode') as AppMode) || 'dynamic'; + + // user is only allowed to use the "dynamic" mode when using mobile device + if (IS_MOBILE_DEVICE) { + mode = 'dynamic'; + } + + const defaultRasterFunction: Sentinel1FunctionName = 'Sentinel-1 RGB dB'; + + // Attempt to extract query parameters from the URL hash. + // If not found, fallback to using the default values along with the raster function from a randomly selected interesting location, + // which will serve as the map center. + const queryParams4MainScene = getQueryParams4MainSceneFromHashParams() || { + ...DefaultQueryParams4ImageryScene, + rasterFunctionName: defaultRasterFunction, + // randomInterestingPlace?.renderer || defaultRasterFunction, + }; + + const queryParams4SecondaryScene = + getQueryParams4SecondarySceneFromHashParams() || { + ...DefaultQueryParams4ImageryScene, + rasterFunctionName: defaultRasterFunction, + }; + + const queryParams4ScenesInAnimation = + getQueryParams4ScenesInAnimationFromHashParams() || []; + + const queryParamsById: { + [key: string]: QueryParams4ImageryScene; + } = {}; + + const tool = getHashParamValueByKey('tool') as AnalysisTool; + + for (const queryParams of queryParams4ScenesInAnimation) { + queryParamsById[queryParams.uniqueId] = queryParams; + } + + return { + ...initialImagerySceneState, + mode, + tool: tool || 'mask', + queryParams4MainScene, + queryParams4SecondaryScene, + queryParamsList: { + byId: queryParamsById, + ids: queryParams4ScenesInAnimation.map((d) => d.uniqueId), + selectedItemID: queryParams4ScenesInAnimation[0] + ? queryParams4ScenesInAnimation[0].uniqueId + : null, + }, + // idOfSelectedItemInListOfQueryParams: queryParams4ScenesInAnimation[0] + // ? queryParams4ScenesInAnimation[0].uniqueId + // : null, + }; +}; + +const getPreloadedUIState = (): UIState => { + const animationSpeed = getAnimationSpeedFromHashParams(); + + const proloadedUIState: UIState = { + ...initialUIState, + // nameOfSelectedInterestingPlace: randomInterestingPlace?.name || '', + }; + + if (animationSpeed) { + proloadedUIState.animationSpeed = animationSpeed; + proloadedUIState.animationStatus = 'loading'; + } + + return proloadedUIState; +}; + +export const getPreloadedState = async (): Promise => { + // get default raster function and location and pass to the getPreloadedMapState, getPreloadedUIState and getPreloadedImageryScenesState + + return { + Map: getPreloadedMapState(), + UI: getPreloadedUIState(), + Landsat: { + ...initialLandsatState, + }, + ImageryScenes: getPreloadedImageryScenesState(), + }; +}; diff --git a/src/sentinel-1-explorer/store/index.ts b/src/sentinel-1-explorer/store/index.ts new file mode 100644 index 00000000..8047b7a2 --- /dev/null +++ b/src/sentinel-1-explorer/store/index.ts @@ -0,0 +1,22 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import configureAppStore from '@shared/store/configureStore'; +import { getPreloadedState } from './getPreloadedState'; + +export const getSentinel1ExplorerStore = async () => { + const preloadedState = await getPreloadedState(); + return configureAppStore(preloadedState); +}; diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts new file mode 100644 index 00000000..9b917357 --- /dev/null +++ b/src/shared/services/sentinel-1/config.ts @@ -0,0 +1,105 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// import { TIER } from '@shared/constants'; +import { TIER, getServiceConfig } from '@shared/config'; + +const serviceConfig = getServiceConfig('sentinel-1'); + +/** + * Sentinel-1 RTC 10-meter C-band synthetic aperture radar (SAR) imagery in single and dual V-polarization with on-the-fly functions for visualization and unit conversions for analysis. + * This imagery layer is updated daily with the latest available imagery from the Microsoft Planetary Computer data catalog. + * @see https://www.arcgis.com/home/item.html?id=ca91605a3261409aa984f01f7d065fbc + */ +export const SENTINEL_1_ITEM_ID = `ca91605a3261409aa984f01f7d065fbc`; + +/** + * URL of the Sentinel-1 Item on ArcGIS Online + */ +export const SENTINEL_1_ITEM_URL = `https://www.arcgis.com/home/item.html?id=${SENTINEL_1_ITEM_ID}`; + +/** + * This is the original service URL, which will prompt user to sign in by default as it requires subscription + */ +const SENTINEL_1_ORIGINAL_SERVICE_URL = + 'https://sentinel1.imagery1.arcgis.com/arcgis/rest/services/Sentinel1RTC/ImageServer'; + +/** + * Service URL to be used in PROD enviroment + */ +export const SENTINEL_1_SERVICE_URL_PROD = + serviceConfig?.production || SENTINEL_1_ORIGINAL_SERVICE_URL; + +/** + * Service URL to be used in DEV enviroment + */ +export const SENTINEL_1_SERVICE_URL_DEV = + serviceConfig?.development || SENTINEL_1_ORIGINAL_SERVICE_URL; + +/** + * A proxy imagery service which has embedded credential that points to the actual Landsat Level-2 imagery service + * @see https://landsat.imagery1.arcgis.com/arcgis/rest/services/LandsatC2L2/ImageServer + */ +export const SENTINEL_1_SERVICE_URL = + TIER === 'development' + ? SENTINEL_1_SERVICE_URL_DEV + : SENTINEL_1_SERVICE_URL_PROD; + +/** + * List of Raster Functions for the Sentinel-1 service + */ +const SENTINEL1_RASTER_FUNCTIONS = [ + 'Sentinel-1 RGB dB DRA', + 'Sentinel-1 RGB dB', + 'Sentinel-1 RTC VV dB with DRA', + 'Sentinel-1 RTC VH dB with DRA', +] as const; + +export type Sentinel1FunctionName = (typeof SENTINEL1_RASTER_FUNCTIONS)[number]; + +/** + * Sentinel-1 Raster Function Infos + * @see https://sentinel1.imagery1.arcgis.com/arcgis/rest/services/Sentinel1RTC/ImageServer/rasterFunctionInfos + */ +export const SENTINEL1_RASTER_FUNCTION_INFOS: { + name: Sentinel1FunctionName; + description: string; + label: string; +}[] = [ + { + name: 'Sentinel-1 RGB dB DRA', + description: + 'RGB color composite of VV,VH,VV/VH in dB scale with a dynamic stretch applied for visualization only', + label: 'RGB dB DRA', + }, + { + name: 'Sentinel-1 RGB dB', + description: + 'RGB color composite of VV,VH,VV/VH in dB scale for visualization and some computational analysis', + label: 'RGB dB', + }, + { + name: 'Sentinel-1 RTC VV dB with DRA', + description: + 'VV data in dB scale with a dynamic stretch applied for visualization only', + label: 'VV dB', + }, + { + name: 'Sentinel-1 RTC VH dB with DRA', + description: + 'VH data in dB scale with a dynamic stretch applied for visualization only', + label: 'VH dB', + }, +]; diff --git a/src/shared/services/sentinel-1/getTimeExtent.ts b/src/shared/services/sentinel-1/getTimeExtent.ts new file mode 100644 index 00000000..3e682d63 --- /dev/null +++ b/src/shared/services/sentinel-1/getTimeExtent.ts @@ -0,0 +1,49 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ImageryServiceTimeExtentData } from '@typing/imagery-service'; +import { SENTINEL_1_SERVICE_URL } from './config'; +import { getTimeExtent } from '../helpers/getTimeExtent'; + +let timeExtentData: ImageryServiceTimeExtentData = null; + +/** + * Get Landsat layer's time extent + * @returns TimeExtentData + * + * @example + * Usage + * ``` + * getTimeExtent() + * ``` + * + * Returns + * ``` + * { + * start: 1363622294000, + * end: 1683500585000 + * } + * ``` + */ +export const getTimeExtentOfSentinel1Service = + async (): Promise => { + if (timeExtentData) { + return timeExtentData; + } + + const data = await getTimeExtent(SENTINEL_1_SERVICE_URL); + + return (timeExtentData = data); + }; From 4e81924fbdc23df3d139ed88ac2c20234c352140 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 25 Mar 2024 16:10:10 -0700 Subject: [PATCH 002/151] feat(sentinel1explorer): add Sentinel-1 Layer and placeholder DynamicInfo --- .../components/Layout/Layout.tsx | 4 +- .../components/Map/Map.tsx | 5 +- .../Sentinel1Layer/Sentinel1Layer.tsx | 101 +++++++++++++ .../components/Sentinel1Layer/index.ts | 16 +++ .../DynamicModeInfo/DynamicModeInfo.tsx | 2 + .../DynamicModeInfo/Sentinel1Info.tsx | 30 ++++ src/shared/hooks/useImageLayer.tsx | 136 ++++++++++++++++++ 7 files changed, 290 insertions(+), 4 deletions(-) create mode 100644 src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx create mode 100644 src/sentinel-1-explorer/components/Sentinel1Layer/index.ts create mode 100644 src/shared/components/DynamicModeInfo/Sentinel1Info.tsx create mode 100644 src/shared/hooks/useImageLayer.tsx diff --git a/src/sentinel-1-explorer/components/Layout/Layout.tsx b/src/sentinel-1-explorer/components/Layout/Layout.tsx index 91fd7eb3..f48821dd 100644 --- a/src/sentinel-1-explorer/components/Layout/Layout.tsx +++ b/src/sentinel-1-explorer/components/Layout/Layout.tsx @@ -95,8 +95,8 @@ export const Layout = () => {
{dynamicModeOn ? ( <> - {/* - */} + + {/* */} ) : ( <> diff --git a/src/sentinel-1-explorer/components/Map/Map.tsx b/src/sentinel-1-explorer/components/Map/Map.tsx index 24e94c91..471e1366 100644 --- a/src/sentinel-1-explorer/components/Map/Map.tsx +++ b/src/sentinel-1-explorer/components/Map/Map.tsx @@ -30,6 +30,7 @@ import { MapMagnifier } from '@shared/components/MapMagnifier'; import CustomMapArrtribution from '@shared/components/CustomMapArrtribution/CustomMapArrtribution'; import { MapActionButtonsGroup } from '@shared/components/MapActionButton'; import { CopyLinkWidget } from '@shared/components/CopyLinkWidget'; +import { Sentinel1Layer } from '../Sentinel1Layer'; export const Map = () => { return ( @@ -39,8 +40,8 @@ export const Map = () => { // hillsahde/terrain layer can be added on top of it with blend mode applied index={1} > - {/* - */} + + {/* */} {/* */} diff --git a/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx b/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx new file mode 100644 index 00000000..7db101f4 --- /dev/null +++ b/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx @@ -0,0 +1,101 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import MapView from '@arcgis/core/views/MapView'; +import React, { FC, useEffect } from 'react'; +import { useSelector } from 'react-redux'; +import { + selectQueryParams4SceneInSelectedMode, + selectAppMode, + // selectActiveAnalysisTool, +} from '@shared/store/ImageryScene/selectors'; +import { selectAnimationStatus } from '@shared/store/UI/selectors'; +import GroupLayer from '@arcgis/core/layers/GroupLayer'; +// import { selectChangeCompareLayerIsOn } from '@shared/store/ChangeCompareTool/selectors'; +import { useImageryLayer } from '@shared/hooks/useImageLayer'; +import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; + +type Props = { + mapView?: MapView; + groupLayer?: GroupLayer; +}; + +export const Sentinel1Layer: FC = ({ mapView, groupLayer }: Props) => { + const mode = useSelector(selectAppMode); + + const { rasterFunctionName, objectIdOfSelectedScene } = + useSelector(selectQueryParams4SceneInSelectedMode) || {}; + + const animationStatus = useSelector(selectAnimationStatus); + + // const analysisTool = useSelector(selectActiveAnalysisTool); + + // const changeCompareLayerIsOn = useSelector(selectChangeCompareLayerIsOn); + + const getVisibility = () => { + if (mode === 'dynamic') { + return true; + } + + if (mode === 'find a scene') { + return objectIdOfSelectedScene !== null; + } + + if (mode === 'analysis') { + // // no need to show landsat layer when user is viewing change layer in the change compare tool + // if (analysisTool === 'change' && changeCompareLayerIsOn) { + // return false; + // } + + return objectIdOfSelectedScene !== null; + } + + // when in animate mode, only need to show landsat layer if animation is not playing + if ( + mode === 'animate' && + objectIdOfSelectedScene && + animationStatus === null + ) { + return true; + } + + return false; + }; + + const getObjectId = () => { + // should ignore the object id of selected scene if in dynamic mode, + if (mode === 'dynamic') { + return null; + } + + return objectIdOfSelectedScene; + }; + + const layer = useImageryLayer({ + url: SENTINEL_1_SERVICE_URL, + visible: getVisibility(), + rasterFunction: rasterFunctionName, + objectId: getObjectId(), + }); + + useEffect(() => { + if (groupLayer && layer) { + groupLayer.add(layer); + groupLayer.reorder(layer, 0); + } + }, [groupLayer, layer]); + + return null; +}; diff --git a/src/sentinel-1-explorer/components/Sentinel1Layer/index.ts b/src/sentinel-1-explorer/components/Sentinel1Layer/index.ts new file mode 100644 index 00000000..af4f4255 --- /dev/null +++ b/src/sentinel-1-explorer/components/Sentinel1Layer/index.ts @@ -0,0 +1,16 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { Sentinel1Layer } from './Sentinel1Layer'; diff --git a/src/shared/components/DynamicModeInfo/DynamicModeInfo.tsx b/src/shared/components/DynamicModeInfo/DynamicModeInfo.tsx index 768daffe..4d360cc6 100644 --- a/src/shared/components/DynamicModeInfo/DynamicModeInfo.tsx +++ b/src/shared/components/DynamicModeInfo/DynamicModeInfo.tsx @@ -16,6 +16,7 @@ import { APP_NAME } from '@shared/config'; import React from 'react'; import LandsatInfo from './LandsatInfo'; +import { Sentinel1Info } from './Sentinel1Info'; export const DynamicModeInfo = () => { return ( @@ -25,6 +26,7 @@ export const DynamicModeInfo = () => {
{APP_NAME === 'landsat' && } + {APP_NAME === 'sentinel1-explorer' && } ); }; diff --git a/src/shared/components/DynamicModeInfo/Sentinel1Info.tsx b/src/shared/components/DynamicModeInfo/Sentinel1Info.tsx new file mode 100644 index 00000000..871294ae --- /dev/null +++ b/src/shared/components/DynamicModeInfo/Sentinel1Info.tsx @@ -0,0 +1,30 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { IS_MOBILE_DEVICE } from '@shared/constants/UI'; +import React from 'react'; + +export const Sentinel1Info = () => { + return ( + <> +

+ Lorem ipsum dolor sit, amet consectetur adipisicing elit. Eius + quidem obcaecati ea tempore ullam alias reprehenderit. Aperiam + reprehenderit, sapiente cupiditate possimus alias blanditiis ad + vel, accusamus non atque doloribus architecto! +

+ + ); +}; diff --git a/src/shared/hooks/useImageLayer.tsx b/src/shared/hooks/useImageLayer.tsx new file mode 100644 index 00000000..73716bcc --- /dev/null +++ b/src/shared/hooks/useImageLayer.tsx @@ -0,0 +1,136 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { useEffect, useRef, useState } from 'react'; +import ImageryLayer from '@arcgis/core/layers/ImageryLayer'; +import MosaicRule from '@arcgis/core/layers/support/MosaicRule'; + +type Props = { + /** + * service url + */ + url: string; + /** + * name of selected raster function that will be used to render the imagery layer + */ + rasterFunction: string; + /** + * object id of the selected scene + */ + objectId?: number; + /** + * visibility of the imagery layer + */ + visible?: boolean; +}; + +/** + * Get the mosaic rule that will be used to define how the Landsat images should be mosaicked. + * @param objectId - object id of the selected Landsat scene + * @returns A Promise that resolves to an IMosaicRule object representing the mosaic rule. + * + * @see https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-MosaicRule.html + */ +export const getMosaicRule = async (objectId: number): Promise => { + if (!objectId) { + return null; + } + + // {"mosaicMethod":"esriMosaicLockRaster","where":"objectid in (2969545)","ascending":false,"lockRasterIds":[2969545]} + return new MosaicRule({ + method: 'lock-raster', + ascending: false, + where: `objectid in (${objectId})`, + lockRasterIds: [objectId], + }); +}; + +/** + * A custom React hook that returns an Imagery Layer instance . + * The hook also updates the Imagery Layer when the input parameters are changed. + * + * @returns {IImageryLayer} - The Landsat-2 Imagery Layer. + */ +export const useImageryLayer = ({ + url, + visible, + rasterFunction, + objectId, +}: Props) => { + const layerRef = useRef(); + + const [landsatLayer, setLandsatLayer] = useState(); + + /** + * initialize landsat layer using mosaic created using the input year + */ + const init = async () => { + const mosaicRule = objectId ? await getMosaicRule(objectId) : null; + + layerRef.current = new ImageryLayer({ + // URL to the imagery service + url, + mosaicRule, + rasterFunction: { + functionName: rasterFunction, + }, + visible, + // blendMode: 'multiply' + }); + + setLandsatLayer(layerRef.current); + }; + + useEffect(() => { + if (!layerRef.current) { + init(); + } else { + // layerRef.current.mosaicRule = createMosaicRuleByYear( + // year, + // aquisitionMonth + // ) as any; + } + }, []); + + useEffect(() => { + if (!layerRef.current) { + return; + } + + layerRef.current.rasterFunction = { + functionName: rasterFunction, + } as any; + }, [rasterFunction]); + + useEffect(() => { + (async () => { + if (!layerRef.current) { + return; + } + + layerRef.current.mosaicRule = await getMosaicRule(objectId); + })(); + }, [objectId]); + + useEffect(() => { + if (!layerRef.current) { + return; + } + + layerRef.current.visible = visible; + }, [visible]); + + return landsatLayer; +}; From 9160e99f937ec9bb2fe29711b67d70be017967df Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 25 Mar 2024 16:14:18 -0700 Subject: [PATCH 003/151] refactor: rename useImageryLayer to useImageryLayerByObjectId --- .../components/Sentinel1Layer/Sentinel1Layer.tsx | 4 ++-- src/shared/hooks/useImageLayer.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx b/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx index 7db101f4..4e3b9893 100644 --- a/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx +++ b/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx @@ -24,7 +24,7 @@ import { import { selectAnimationStatus } from '@shared/store/UI/selectors'; import GroupLayer from '@arcgis/core/layers/GroupLayer'; // import { selectChangeCompareLayerIsOn } from '@shared/store/ChangeCompareTool/selectors'; -import { useImageryLayer } from '@shared/hooks/useImageLayer'; +import { useImageryLayerByObjectId } from '@shared/hooks/useImageLayer'; import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; type Props = { @@ -83,7 +83,7 @@ export const Sentinel1Layer: FC = ({ mapView, groupLayer }: Props) => { return objectIdOfSelectedScene; }; - const layer = useImageryLayer({ + const layer = useImageryLayerByObjectId({ url: SENTINEL_1_SERVICE_URL, visible: getVisibility(), rasterFunction: rasterFunctionName, diff --git a/src/shared/hooks/useImageLayer.tsx b/src/shared/hooks/useImageLayer.tsx index 73716bcc..3ddb3ff9 100644 --- a/src/shared/hooks/useImageLayer.tsx +++ b/src/shared/hooks/useImageLayer.tsx @@ -63,7 +63,7 @@ export const getMosaicRule = async (objectId: number): Promise => { * * @returns {IImageryLayer} - The Landsat-2 Imagery Layer. */ -export const useImageryLayer = ({ +export const useImageryLayerByObjectId = ({ url, visible, rasterFunction, From 2a9349bd2e88d9b6de216615eeea0393f6ac2877 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 25 Mar 2024 16:16:47 -0700 Subject: [PATCH 004/151] refactor: useImageryLayerByObjectId hook should use more generic contant names --- src/shared/hooks/useImageLayer.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/shared/hooks/useImageLayer.tsx b/src/shared/hooks/useImageLayer.tsx index 3ddb3ff9..46850434 100644 --- a/src/shared/hooks/useImageLayer.tsx +++ b/src/shared/hooks/useImageLayer.tsx @@ -37,8 +37,8 @@ type Props = { }; /** - * Get the mosaic rule that will be used to define how the Landsat images should be mosaicked. - * @param objectId - object id of the selected Landsat scene + * Get the mosaic rule that will be used to define how the Imagery images should be mosaicked. + * @param objectId - object id of the selected Imagery scene * @returns A Promise that resolves to an IMosaicRule object representing the mosaic rule. * * @see https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-MosaicRule.html @@ -61,7 +61,7 @@ export const getMosaicRule = async (objectId: number): Promise => { * A custom React hook that returns an Imagery Layer instance . * The hook also updates the Imagery Layer when the input parameters are changed. * - * @returns {IImageryLayer} - The Landsat-2 Imagery Layer. + * @returns {IImageryLayer} - The Imagery Layer. */ export const useImageryLayerByObjectId = ({ url, @@ -71,10 +71,10 @@ export const useImageryLayerByObjectId = ({ }: Props) => { const layerRef = useRef(); - const [landsatLayer, setLandsatLayer] = useState(); + const [layer, setLayer] = useState(); /** - * initialize landsat layer using mosaic created using the input year + * initialize imagery layer using mosaic created using the input year */ const init = async () => { const mosaicRule = objectId ? await getMosaicRule(objectId) : null; @@ -90,7 +90,7 @@ export const useImageryLayerByObjectId = ({ // blendMode: 'multiply' }); - setLandsatLayer(layerRef.current); + setLayer(layerRef.current); }; useEffect(() => { @@ -132,5 +132,5 @@ export const useImageryLayerByObjectId = ({ layerRef.current.visible = visible; }, [visible]); - return landsatLayer; + return layer; }; From c590aad7a9b07f184cfde35d26d9eb07363797db Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 25 Mar 2024 16:23:16 -0700 Subject: [PATCH 005/151] refactor(shared): update Calendar Component to use shouldShowCloudFilter flag --- .../components/Calendar/CalendarContainer.tsx | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/shared/components/Calendar/CalendarContainer.tsx b/src/shared/components/Calendar/CalendarContainer.tsx index a4e0c4a6..b0977848 100644 --- a/src/shared/components/Calendar/CalendarContainer.tsx +++ b/src/shared/components/Calendar/CalendarContainer.tsx @@ -112,6 +112,10 @@ const CalendarContainer = () => { // */ // useUpdateAcquisitionYear(); + const shouldShowCloudFilter = useMemo(() => { + return APP_NAME === 'landsat' || APP_NAME === 'landsat-surface-temp'; + }, []); + return (
{ {APP_NAME === 'landsat' && } - { - dispatch(cloudCoverChanged(newValue)); - }} - /> + {shouldShowCloudFilter && ( + { + dispatch(cloudCoverChanged(newValue)); + }} + /> + )}
Date: Tue, 26 Mar 2024 14:22:22 -0700 Subject: [PATCH 006/151] feat(sentinel1): add FIELD_NAMES lookup table --- src/shared/services/sentinel-1/config.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index 9b917357..31c5683f 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -57,6 +57,23 @@ export const SENTINEL_1_SERVICE_URL = ? SENTINEL_1_SERVICE_URL_DEV : SENTINEL_1_SERVICE_URL_PROD; +/** + * Field Names Look-up table for Sentinel1RTC (ImageServer) + * @see https://sentinel1.imagery1.arcgis.com/arcgis/rest/services/Sentinel1RTC/ImageServer + */ +export const FIELD_NAMES = { + OBJECTID: 'objectid', + NAME: 'name', + CENTER_X: 'centerx', + CENTER_Y: 'centery', + POLARIZATION_TYPE: 'polarizationtype', + SENSOR: 'sensor', + ORBIT_DIRECTION: 'orbitdirection', + ACQUISITION_DATE: 'acquisitiondate', + ABS_ORBIT: 'absoluteorbit', + RELATIVE_ORBIT: 'relativeorbit', +}; + /** * List of Raster Functions for the Sentinel-1 service */ From f2b96cf94782a97caf3bced3f7e1a65353c273a2 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 27 Mar 2024 10:21:00 -0700 Subject: [PATCH 007/151] feat(sentinel-1): add getSentinel1Scenes and helper functions --- src/shared/services/helpers/getExtentById.ts | 35 +++ src/shared/services/helpers/getFeatureById.ts | 37 +++ .../helpers/intersectWithImageryScene.ts | 52 ++++ .../services/sentinel-1/getSentinel1Scenes.ts | 283 ++++++++++++++++++ src/types/imagery-service.d.ts | 37 +++ 5 files changed, 444 insertions(+) create mode 100644 src/shared/services/helpers/getExtentById.ts create mode 100644 src/shared/services/helpers/getFeatureById.ts create mode 100644 src/shared/services/helpers/intersectWithImageryScene.ts create mode 100644 src/shared/services/sentinel-1/getSentinel1Scenes.ts diff --git a/src/shared/services/helpers/getExtentById.ts b/src/shared/services/helpers/getExtentById.ts new file mode 100644 index 00000000..41775b05 --- /dev/null +++ b/src/shared/services/helpers/getExtentById.ts @@ -0,0 +1,35 @@ +import { IExtent } from '@esri/arcgis-rest-feature-service'; + +/** + * Get the extent of a feature from a imagery service using the object Id as key. + * @param objectId The unique identifier of the feature + * @returns IExtent The extent of the feature from the input service + */ +export const getExtentByObjectId = async ( + serviceUrl: string, + objectId: number +): Promise => { + const queryParams = new URLSearchParams({ + f: 'json', + returnExtentOnly: 'true', + objectIds: objectId.toString(), + }); + + const res = await fetch(`${serviceUrl}/query?${queryParams.toString()}`); + + if (!res.ok) { + throw new Error('failed to query ' + serviceUrl); + } + + const data = await res.json(); + + if (data.error) { + throw data.error; + } + + if (!data?.extent) { + return null; + } + + return data?.extent as IExtent; +}; diff --git a/src/shared/services/helpers/getFeatureById.ts b/src/shared/services/helpers/getFeatureById.ts new file mode 100644 index 00000000..7ae39c6b --- /dev/null +++ b/src/shared/services/helpers/getFeatureById.ts @@ -0,0 +1,37 @@ +import { IFeature } from '@esri/arcgis-rest-feature-service'; + +/** + * Query Imagery Service to get a feature by ObjectID + * @param serviceUrl URL of the Imagery Service + * @param objectId object id of the feature + * @returns + */ +export const getFeatureByObjectId = async ( + serviceUrl: string, + objectId: number +): Promise => { + const queryParams = new URLSearchParams({ + f: 'json', + returnGeometry: 'true', + objectIds: objectId.toString(), + outFields: '*', + }); + + const res = await fetch(`${serviceUrl}/query?${queryParams.toString()}`); + + if (!res.ok) { + throw new Error('failed to query ' + serviceUrl); + } + + const data = await res.json(); + + if (data.error) { + throw data.error; + } + + if (!data?.features || !data.features.length) { + return null; + } + + return data?.features[0] as IFeature; +}; diff --git a/src/shared/services/helpers/intersectWithImageryScene.ts b/src/shared/services/helpers/intersectWithImageryScene.ts new file mode 100644 index 00000000..712b698f --- /dev/null +++ b/src/shared/services/helpers/intersectWithImageryScene.ts @@ -0,0 +1,52 @@ +import { Point } from '@arcgis/core/geometry'; + +export type IntersectWithImagerySceneParams = { + serviceUrl: string; + objectId: number; + point: Point; + + abortController?: AbortController; +}; + +/** + * Check if the input point intersects with a Imagery scene specified by the input object ID. + * @param point Point geometry representing the location to check for intersection. + * @param objectId Object ID of the imagery scene to check intersection with. + * @returns {boolean} Returns true if the input point intersects with the specified Imagery scene, otherwise false. + */ +export const intersectWithImageryScene = async ({ + serviceUrl, + objectId, + point, + abortController, +}: IntersectWithImagerySceneParams): Promise => { + const geometry = JSON.stringify({ + spatialReference: { + wkid: 4326, + }, + x: point.longitude, + y: point.latitude, + }); + + const queryParams = new URLSearchParams({ + f: 'json', + returnCountOnly: 'true', + returnGeometry: 'false', + objectIds: objectId.toString(), + geometry, + spatialRel: 'esriSpatialRelIntersects', + geometryType: 'esriGeometryPoint', + }); + + const res = await fetch(`${serviceUrl}/query?${queryParams.toString()}`, { + signal: abortController.signal, + }); + + if (!res.ok) { + throw new Error('failed to query service' + serviceUrl); + } + + const data = await res.json(); + + return data?.count && data?.count > 0; +}; diff --git a/src/shared/services/sentinel-1/getSentinel1Scenes.ts b/src/shared/services/sentinel-1/getSentinel1Scenes.ts new file mode 100644 index 00000000..ca41147d --- /dev/null +++ b/src/shared/services/sentinel-1/getSentinel1Scenes.ts @@ -0,0 +1,283 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { FIELD_NAMES } from './config'; +import { SENTINEL_1_SERVICE_URL } from './config'; +import { IExtent, IFeature } from '@esri/arcgis-rest-feature-service'; +import { getFormatedDateString } from '@shared/utils/date-time/formatDateString'; +import { Sentinel1Scene } from '@typing/imagery-service'; +import { DateRange } from '@typing/shared'; +import { Point } from '@arcgis/core/geometry'; +import { getFeatureByObjectId } from '../helpers/getFeatureById'; +import { getExtentByObjectId } from '../helpers/getExtentById'; +import { intersectWithImageryScene } from '../helpers/intersectWithImageryScene'; + +type GetSentinel1ScenesParams = { + /** + * longitude and latitude (e.g. [-105, 40]) + */ + mapPoint: number[]; + /** + * acquisition date range. + * + * @example + * ``` + * { + * startDate: '2023-01-01', + * endDate: '2023-12-31' + * } + * ``` + */ + acquisitionDateRange?: DateRange; + /** + * acquisition month + */ + acquisitionMonth?: number; + /** + * acquisition date in formate of `YYYY-MM-DD` (e.g. `2023-05-26`) + */ + acquisitionDate?: string; + /** + * abortController that will be used to cancel the unfinished requests + */ + abortController: AbortController; +}; + +// let controller:AbortController = null; + +const { + OBJECTID, + ACQUISITION_DATE, + NAME, + SENSOR, + ORBIT_DIRECTION, + POLARIZATION_TYPE, +} = FIELD_NAMES; + +/** + * A Map that will be used to retrieve Sentinel-1 Scene data using the object Id as key + */ +const sentinel1SceneByObjectId: Map = new Map(); + +/** + * Formats the features from Sentinel-1 service and returns an array of Sentinel-1 objects. + * @param features - An array of IFeature objects from Sentinel-1 service. + * @returns An array of Sentinel1Scene objects containing the acquisition date, formatted acquisition date, and other attributes. + */ +export const getFormattedLandsatScenes = ( + features: IFeature[] +): Sentinel1Scene[] => { + return features.map((feature) => { + const { attributes } = feature; + + const acquisitionDate = attributes[ACQUISITION_DATE]; + + const name = attributes[NAME]; + + /** + * formatted aquisition date should be like `2023-05-01` + */ + const formattedAcquisitionDate = getFormatedDateString({ + date: +acquisitionDate, + }); //format(acquisitionDate, 'yyyy-MM-dd'); + + const [acquisitionYear, acquisitionMonth] = formattedAcquisitionDate + .split('-') + .map((d) => +d); + + const formattedScene: Sentinel1Scene = { + objectId: attributes[OBJECTID], + name, + sensor: attributes[SENSOR], + orbitDirection: attributes[ORBIT_DIRECTION], + polarizationType: attributes[POLARIZATION_TYPE], + acquisitionDate, + formattedAcquisitionDate, + acquisitionYear, + acquisitionMonth, + }; + + return formattedScene; + }); +}; + +/** + * Query the Sentinel-1 imagery service to find a list of scenes for available Sentinel-1 data that + * intersect with the input map point or map extent and were acquired during the input year and month. + * + * @param {number} params - The params object that will be used query Sentinel-1 data + * @returns {Promise} A promise that resolves to an array of Sentinel1Scene objects. + * + */ +export const getSentinel1Scenes = async ({ + mapPoint, + // acquisitionYear, + acquisitionDateRange, + acquisitionMonth, + acquisitionDate, + abortController, +}: GetSentinel1ScenesParams): Promise => { + const whereClauses = [ + // `(${CATEGORY} = 1)` + ]; + + if (acquisitionDateRange) { + whereClauses.push( + `(${ACQUISITION_DATE} BETWEEN timestamp '${acquisitionDateRange.startDate} 00:00:00' AND timestamp '${acquisitionDateRange.endDate} 23:59:59')` + ); + } else if (acquisitionDate) { + // if acquisitionDate is provided, only query scenes that are acquired on this date, + // otherwise, query scenes that were acquired within the acquisitionYear year + whereClauses.push( + `(${ACQUISITION_DATE} BETWEEN timestamp '${acquisitionDate} 00:00:00' AND timestamp '${acquisitionDate} 23:59:59')` + ); + } + + // if (acquisitionMonth) { + // whereClauses.push(`(${MONTH} = ${acquisitionMonth})`); + // } + + const [longitude, latitude] = mapPoint; + + const geometry = JSON.stringify({ + spatialReference: { + wkid: 4326, + }, + x: longitude, + y: latitude, + }); + + const params = new URLSearchParams({ + f: 'json', + spatialRel: 'esriSpatialRelIntersects', + // geometryType: 'esriGeometryEnvelope', + geometryType: 'esriGeometryPoint', + // inSR: '102100', + // outFields: [ + // ACQUISITION_DATE, + // CLOUD_COVER, + // NAME, + // BEST, + // SENSORNAME, + // WRS_PATH, + // WRS_ROW, + // CATEGORY, + // LANDSAT_PRODUCT_ID, + // SUNAZIMUTH, + // SUNELEVATION, + // ].join(','), + outFields: '*', + orderByFields: ACQUISITION_DATE, + resultOffset: '0', + returnGeometry: 'false', + resultRecordCount: '1000', + geometry, + where: whereClauses.join(` AND `), + }); + + const res = await fetch( + `${SENTINEL_1_SERVICE_URL}/query?${params.toString()}`, + { + signal: abortController.signal, + } + ); + + if (!res.ok) { + throw new Error('failed to query Sentinel-1 Imagery service'); + } + + const data = await res.json(); + + if (data.error) { + throw data.error; + } + + const sentinel1Scenes: Sentinel1Scene[] = getFormattedLandsatScenes( + data?.features || [] + ); + + // save the sentinel-1 scenes to `landsatSceneByObjectId` map + for (const sentinel1Scene of sentinel1Scenes) { + sentinel1SceneByObjectId.set(sentinel1Scene.objectId, sentinel1Scene); + } + + return sentinel1Scenes; +}; + +/** + * Query a feature from Sentinel-1 service using the input object Id, + * and return the feature as formatted Sentinel Scene. + * @param objectId The unique identifier of the feature + * @returns The formatted Sentinel-11 Scene corresponding to the objectId + */ +export const getSentinel1SceneByObjectId = async ( + objectId: number +): Promise => { + // Check if the landsat scene already exists in the cache + if (sentinel1SceneByObjectId.has(objectId)) { + return sentinel1SceneByObjectId.get(objectId); + } + + const feature = await getFeatureByObjectId( + SENTINEL_1_SERVICE_URL, + objectId + ); + + if (!feature) { + return null; + } + + const sentinel1Scene: Sentinel1Scene = getFormattedLandsatScenes([ + feature, + ])[0]; + + sentinel1SceneByObjectId.set(objectId, sentinel1Scene); + + return sentinel1Scene; +}; + +/** + * Get the extent of a feature from Sentinel-1 service using the object Id as key. + * @param objectId The unique identifier of the feature + * @returns IExtent The extent of the feature from Sentinel-1 service + */ +export const getExtentOfSentinel1SceneByObjectId = async ( + objectId: number +): Promise => { + const extent = await getExtentByObjectId(SENTINEL_1_SERVICE_URL, objectId); + + return extent; +}; + +/** + * Check if the input point intersects with the Sentinel-1 scene specified by the input object ID. + * @param point Point geometry representing the location to check for intersection. + * @param objectId Object ID of the Sentinel-1 scene to check intersection with. + * @returns {boolean} Returns true if the input point intersects with the specified Sentinel-1 scene, otherwise false. + */ +export const intersectWithSentinel1Scene = async ( + point: Point, + objectId: number, + abortController?: AbortController +) => { + const res = await intersectWithImageryScene({ + serviceUrl: SENTINEL_1_SERVICE_URL, + objectId, + point, + abortController, + }); + + return res; +}; diff --git a/src/types/imagery-service.d.ts b/src/types/imagery-service.d.ts index 06f2df6b..f64e18cd 100644 --- a/src/types/imagery-service.d.ts +++ b/src/types/imagery-service.d.ts @@ -168,3 +168,40 @@ type ImageryServiceTimeExtentData = { start: number; end: number; }; + +export type Sentinel1Scene = { + objectId: number; + /** + * product name + * @example S1A_IW_GRDH_1SDV_20141003T040550_20141003T040619_002660_002F64_EC04 + */ + name: string; + /** + * name of the sensor + */ + sensor: string; + /** + * orbit direction of the sentinel-1 imagery scene + */ + orbitDirection: 'Ascending' | 'Descending'; + /** + * single polarisation (HH or VV) or dual polarisation (HH+HV or VV+VH) + */ + polarizationType: string; + /** + * acquisitionDate as a string in ISO format (YYYY-MM-DD). + */ + formattedAcquisitionDate: string; + /** + * acquisitionDate in unix timestamp + */ + acquisitionDate: number; + /** + * year when this scene was acquired + */ + acquisitionYear: number; + /** + * month when this scene was acquired + */ + acquisitionMonth: number; +}; From 91c048124d9c23ef7fc8ac7d3481070a3992c4b5 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 27 Mar 2024 11:41:50 -0700 Subject: [PATCH 008/151] feat: add redux slice for Sentinel-1 --- .../useQueryAvailableSentinel1Scenes.tsx | 4 +- .../sentinel-1/covert2ImageryScenes.ts | 35 ++++++ src/shared/store/Sentinel1/reducer.ts | 76 +++++++++++++ src/shared/store/Sentinel1/selectors.ts | 22 ++++ src/shared/store/Sentinel1/thunks.ts | 104 ++++++++++++++++++ src/shared/store/rootReducer.ts | 2 + 6 files changed, 241 insertions(+), 2 deletions(-) create mode 100644 src/shared/services/sentinel-1/covert2ImageryScenes.ts create mode 100644 src/shared/store/Sentinel1/reducer.ts create mode 100644 src/shared/store/Sentinel1/selectors.ts create mode 100644 src/shared/store/Sentinel1/thunks.ts diff --git a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx index 8c100f5c..7f70a712 100644 --- a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx +++ b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx @@ -19,7 +19,7 @@ import { selectMapCenter } from '@shared/store/Map/selectors'; import { useDispatch } from 'react-redux'; // import { updateObjectIdOfSelectedScene } from '@shared/store/ImageryScene/thunks'; import { selectIsAnimationPlaying } from '@shared/store/UI/selectors'; -// import { queryAvailableScenes } from '@shared/store/Landsat/thunks'; +import { queryAvailableScenes } from '@shared/store/Sentinel1/thunks'; import { selectQueryParams4SceneInSelectedMode } from '@shared/store/ImageryScene/selectors'; // import { selectAcquisitionYear } from '@shared/store/ImageryScene/selectors'; @@ -51,7 +51,7 @@ export const useQueryAvailableSentinel1Scenes = (): void => { return; } - // dispatch(queryAvailableScenes(acquisitionDateRange)); + dispatch(queryAvailableScenes(acquisitionDateRange)); }, [center, acquisitionDateRange, isAnimationPlaying]); return null; diff --git a/src/shared/services/sentinel-1/covert2ImageryScenes.ts b/src/shared/services/sentinel-1/covert2ImageryScenes.ts new file mode 100644 index 00000000..62713a5b --- /dev/null +++ b/src/shared/services/sentinel-1/covert2ImageryScenes.ts @@ -0,0 +1,35 @@ +import { ImageryScene } from '@shared/store/ImageryScene/reducer'; +import { Sentinel1Scene } from '@typing/imagery-service'; + +export const convert2ImageryScenes = ( + scenes: Sentinel1Scene[] +): ImageryScene[] => { + // convert list of Landsat scenes to list of imagery scenes + const imageryScenes: ImageryScene[] = scenes.map( + (landsatScene: Sentinel1Scene) => { + const { + objectId, + name, + formattedAcquisitionDate, + acquisitionDate, + acquisitionYear, + acquisitionMonth, + } = landsatScene; + + const imageryScene: ImageryScene = { + objectId, + sceneId: name, + formattedAcquisitionDate, + acquisitionDate, + acquisitionYear, + acquisitionMonth, + cloudCover: 0, + satellite: 'Sentinel-1', + }; + + return imageryScene; + } + ); + + return imageryScenes; +}; diff --git a/src/shared/store/Sentinel1/reducer.ts b/src/shared/store/Sentinel1/reducer.ts new file mode 100644 index 00000000..c72ef9ef --- /dev/null +++ b/src/shared/store/Sentinel1/reducer.ts @@ -0,0 +1,76 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + createSlice, + // createSelector, + PayloadAction, + // createAsyncThunk +} from '@reduxjs/toolkit'; +import { Sentinel1Scene } from '@typing/imagery-service'; + +export type Sentinel1State = { + /** + * Sentinel-1 scenes that intersect with center point of map view and were acquired during the input year. + */ + sentinel1Scenes?: { + byObjectId?: { + [key: number]: Sentinel1Scene; + }; + objectIds?: number[]; + }; +}; + +export const initialSentinel1State: Sentinel1State = { + sentinel1Scenes: { + byObjectId: {}, + objectIds: [], + }, +}; + +const slice = createSlice({ + name: 'Sentinel1', + initialState: initialSentinel1State, + reducers: { + sentinel1ScenesUpdated: ( + state, + action: PayloadAction + ) => { + const objectIds: number[] = []; + + const byObjectId: { + [key: number]: Sentinel1Scene; + } = {}; + + for (const scene of action.payload) { + const { objectId } = scene; + + objectIds.push(objectId); + byObjectId[objectId] = scene; + } + + state.sentinel1Scenes = { + objectIds, + byObjectId, + }; + }, + }, +}); + +const { reducer } = slice; + +export const { sentinel1ScenesUpdated } = slice.actions; + +export default reducer; diff --git a/src/shared/store/Sentinel1/selectors.ts b/src/shared/store/Sentinel1/selectors.ts new file mode 100644 index 00000000..e0aa24d8 --- /dev/null +++ b/src/shared/store/Sentinel1/selectors.ts @@ -0,0 +1,22 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createSelector } from '@reduxjs/toolkit'; +import { RootState } from '../configureStore'; + +export const selectAvailableScenesByObjectId = createSelector( + (state: RootState) => state.Sentinel1.sentinel1Scenes.byObjectId, + (byObjectId) => byObjectId +); diff --git a/src/shared/store/Sentinel1/thunks.ts b/src/shared/store/Sentinel1/thunks.ts new file mode 100644 index 00000000..1be6c875 --- /dev/null +++ b/src/shared/store/Sentinel1/thunks.ts @@ -0,0 +1,104 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { batch } from 'react-redux'; +import { selectMapCenter } from '../Map/selectors'; +import { RootState, StoreDispatch, StoreGetState } from '../configureStore'; +import { sentinel1ScenesUpdated } from './reducer'; +import { Sentinel1Scene } from '@typing/imagery-service'; +import { + ImageryScene, + availableImageryScenesUpdated, +} from '../ImageryScene/reducer'; +import { DateRange } from '@typing/shared'; +import { selectQueryParams4SceneInSelectedMode } from '../ImageryScene/selectors'; +import { getSentinel1Scenes } from '@shared/services/sentinel-1/getSentinel1Scenes'; +import { convert2ImageryScenes } from '@shared/services/sentinel-1/covert2ImageryScenes'; + +let abortController: AbortController = null; +/** + * Query Sentinel-1 Scenes that intersect with center point of map view that were acquired within the user selected acquisition year. + * @param year use selected acquisition year + * @returns + */ +export const queryAvailableScenes = + (acquisitionDateRange: DateRange) => + async (dispatch: StoreDispatch, getState: StoreGetState) => { + if (!acquisitionDateRange) { + return; + } + + if (abortController) { + abortController.abort(); + } + + abortController = new AbortController(); + + try { + const { objectIdOfSelectedScene, acquisitionDate } = + selectQueryParams4SceneInSelectedMode(getState()) || {}; + + const center = selectMapCenter(getState()); + + // get scenes that were acquired within the acquisition year + const scenes = await getSentinel1Scenes({ + acquisitionDateRange, + mapPoint: center, + abortController, + }); + + // sort scenes uing acquisition date in an ascending order + // which is necessary for us to select between two overlapping scenes in step below + scenes.sort((a, b) => a.acquisitionDate - b.acquisitionDate); + + const sentinel1Scenes: Sentinel1Scene[] = []; + + for (const currScene of scenes) { + // Get the last Sentinel-1 scene in the 'Sentinel1Scene' array + const prevScene = sentinel1Scenes[sentinel1Scenes.length - 1]; + + // Check if there is a previous scene and its acquisition date matches the current scene. + // We aim to keep only one Sentinel-1 scene for each day. When there are two scenes acquired on the same date, + // we prioritize keeping the currently selected scene or the one acquired later. + if ( + prevScene && + prevScene.formattedAcquisitionDate === + currScene.formattedAcquisitionDate + ) { + // Check if the previous scene is the currently selected scene + // Skip the current iteration if the previous scene is the selected scene + if (prevScene.objectId === objectIdOfSelectedScene) { + continue; + } + + // Remove the previous scene from 'sentinel1Scenes' as it was acquired before the current scene + sentinel1Scenes.pop(); + } + + sentinel1Scenes.push(currScene); + } + + // convert list of Landsat scenes to list of imagery scenes + const imageryScenes: ImageryScene[] = + convert2ImageryScenes(sentinel1Scenes); + + batch(() => { + dispatch(sentinel1ScenesUpdated(sentinel1Scenes)); + dispatch(availableImageryScenesUpdated(imageryScenes)); + }); + } catch (err) { + console.error(err); + } + }; diff --git a/src/shared/store/rootReducer.ts b/src/shared/store/rootReducer.ts index 4e51ef89..11e06c77 100644 --- a/src/shared/store/rootReducer.ts +++ b/src/shared/store/rootReducer.ts @@ -25,6 +25,7 @@ import ChangeCompareTool from './ChangeCompareTool/reducer'; import Landsat from './Landsat/reducer'; import SpectralSamplingTool from './SpectralSamplingTool/reducer'; import LandcoverExplorer from './LandcoverExplorer/reducer'; +import Sentinel1 from './Sentinel1/reducer'; const reducers = combineReducers({ Map, @@ -38,6 +39,7 @@ const reducers = combineReducers({ ChangeCompareTool, SpectralSamplingTool, LandcoverExplorer, + Sentinel1, }); export default reducers; From eb19e35e66b61c0d2eaa489d8a3d410712e4738e Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 27 Mar 2024 13:19:15 -0700 Subject: [PATCH 009/151] feat: add deduplicateListOfImageryScenes to deduplicate imagery scenes list based on acquisition date --- .../helpers/deduplicateListOfScenes.ts | 51 +++++++++++++++++++ src/shared/store/Sentinel1/thunks.ts | 43 ++++------------ 2 files changed, 60 insertions(+), 34 deletions(-) create mode 100644 src/shared/services/helpers/deduplicateListOfScenes.ts diff --git a/src/shared/services/helpers/deduplicateListOfScenes.ts b/src/shared/services/helpers/deduplicateListOfScenes.ts new file mode 100644 index 00000000..26ade881 --- /dev/null +++ b/src/shared/services/helpers/deduplicateListOfScenes.ts @@ -0,0 +1,51 @@ +import { ImageryScene } from '@shared/store/ImageryScene/reducer'; + +/** + * Deduplicates a list of imagery scenes based on acquisition date, keeping only one scene per day. + * When there are multiple scenes acquired on the same day, the function prioritizes keeping the currently + * selected scene or the one acquired later. + * + * @param scenes An array of ImageryScene objects to be deduplicated. + * @param objectIdOfSelectedScene The object ID of the scene that should be prioritized if there are multiple + * scenes acquired on the same day. + * @returns An array of deduplicated ImageryScene objects. + */ +export const deduplicateListOfImageryScenes = ( + scenes: ImageryScene[], + objectIdOfSelectedScene: number +): ImageryScene[] => { + // sort scenes uing acquisition date in an ascending order + // which is necessary for us to select between two overlapping scenes in step below + const sorted = [...scenes].sort( + (a, b) => a.acquisitionDate - b.acquisitionDate + ); + + const output: ImageryScene[] = []; + + for (const currScene of sorted) { + // Get the last imagery scene in the array + const prevScene = output[output.length - 1]; + + // Check if there is a previous scene and its acquisition date matches the current scene. + // We aim to keep only one imagery scene for each day. When there are two scenes acquired on the same date, + // we prioritize keeping the currently selected scene or the one acquired later. + if ( + prevScene && + prevScene.formattedAcquisitionDate === + currScene.formattedAcquisitionDate + ) { + // Check if the previous scene is the currently selected scene + // Skip the current iteration if the previous scene is the selected scene + if (prevScene.objectId === objectIdOfSelectedScene) { + continue; + } + + // Remove the previous scene from output as it was acquired before the current scene + output.pop(); + } + + output.push(currScene); + } + + return output; +}; diff --git a/src/shared/store/Sentinel1/thunks.ts b/src/shared/store/Sentinel1/thunks.ts index 1be6c875..1a8f9bba 100644 --- a/src/shared/store/Sentinel1/thunks.ts +++ b/src/shared/store/Sentinel1/thunks.ts @@ -26,6 +26,7 @@ import { DateRange } from '@typing/shared'; import { selectQueryParams4SceneInSelectedMode } from '../ImageryScene/selectors'; import { getSentinel1Scenes } from '@shared/services/sentinel-1/getSentinel1Scenes'; import { convert2ImageryScenes } from '@shared/services/sentinel-1/covert2ImageryScenes'; +import { deduplicateListOfImageryScenes } from '@shared/services/helpers/deduplicateListOfScenes'; let abortController: AbortController = null; /** @@ -59,43 +60,17 @@ export const queryAvailableScenes = abortController, }); - // sort scenes uing acquisition date in an ascending order - // which is necessary for us to select between two overlapping scenes in step below - scenes.sort((a, b) => a.acquisitionDate - b.acquisitionDate); + // convert list of Sentinel-1 scenes to list of imagery scenes + let imageryScenes: ImageryScene[] = convert2ImageryScenes(scenes); - const sentinel1Scenes: Sentinel1Scene[] = []; - - for (const currScene of scenes) { - // Get the last Sentinel-1 scene in the 'Sentinel1Scene' array - const prevScene = sentinel1Scenes[sentinel1Scenes.length - 1]; - - // Check if there is a previous scene and its acquisition date matches the current scene. - // We aim to keep only one Sentinel-1 scene for each day. When there are two scenes acquired on the same date, - // we prioritize keeping the currently selected scene or the one acquired later. - if ( - prevScene && - prevScene.formattedAcquisitionDate === - currScene.formattedAcquisitionDate - ) { - // Check if the previous scene is the currently selected scene - // Skip the current iteration if the previous scene is the selected scene - if (prevScene.objectId === objectIdOfSelectedScene) { - continue; - } - - // Remove the previous scene from 'sentinel1Scenes' as it was acquired before the current scene - sentinel1Scenes.pop(); - } - - sentinel1Scenes.push(currScene); - } - - // convert list of Landsat scenes to list of imagery scenes - const imageryScenes: ImageryScene[] = - convert2ImageryScenes(sentinel1Scenes); + // deduplicates the list based on acquisition date, keeping only one scene per day + imageryScenes = deduplicateListOfImageryScenes( + imageryScenes, + objectIdOfSelectedScene + ); batch(() => { - dispatch(sentinel1ScenesUpdated(sentinel1Scenes)); + dispatch(sentinel1ScenesUpdated(scenes)); dispatch(availableImageryScenesUpdated(imageryScenes)); }); } catch (err) { From 600dd15c07108a627c3ac020cefdc8de18dce70e Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 27 Mar 2024 14:34:23 -0700 Subject: [PATCH 010/151] feat(Sentinel-1): add SceneInfo component --- .../SceneInfo/SceneInfoContainer.tsx | 126 +++++++----------- .../useDataFromSelectedSentinel1Scene.tsx | 64 +++++++++ .../SceneInfoTable/SceneInfoTable.tsx | 3 +- 3 files changed, 117 insertions(+), 76 deletions(-) create mode 100644 src/sentinel-1-explorer/components/SceneInfo/useDataFromSelectedSentinel1Scene.tsx diff --git a/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx b/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx index 9afcc348..125a5e59 100644 --- a/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx +++ b/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx @@ -18,7 +18,7 @@ import { SceneInfoTable, SceneInfoTableData, } from '@shared/components/SceneInfoTable'; -// import { useDataFromSelectedLandsatScene } from './useDataFromSelectedLandsatScene'; +import { useDataFromSelectedSentinel1Scene } from './useDataFromSelectedSentinel1Scene'; import { DATE_FORMAT } from '@shared/constants/UI'; import { useSelector } from 'react-redux'; import { selectAppMode } from '@shared/store/ImageryScene/selectors'; @@ -27,86 +27,62 @@ import { formatInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone export const SceneInfoContainer = () => { const mode = useSelector(selectAppMode); - // const data = useDataFromSelectedLandsatScene(); + const data = useDataFromSelectedSentinel1Scene(); - // const tableData: SceneInfoTableData[] = useMemo(() => { - // if (!data) { - // return []; - // } + const tableData: SceneInfoTableData[] = useMemo(() => { + if (!data) { + return []; + } - // const { - // satellite, - // row, - // path, - // acquisitionDate, - // sensor, - // formattedCloudCover, - // // collectionCategory, - // // collectionNumber, - // correctionLevel, - // // processingDate, - // name, - // sunAzimuth, - // sunElevation, - // } = data; + const { + name, + acquisitionDate, + sensor, + orbitDirection, + polarizationType, + } = data; - // return [ - // // the produt id is too long to be displayed in one row, - // // therefore we need to split it into two separate rows - // { - // name: 'Scene ID', - // value: name.slice(0, 17), - // }, - // { - // name: '', - // value: name.slice(17), - // }, - // { - // name: 'Satellite', - // value: satellite, - // }, - // { - // name: 'Sensor', - // value: sensor, - // }, - // { - // name: 'Correction', - // value: correctionLevel, - // }, - // { - // name: 'Path, Row', - // value: path.toString() + ', ' + row.toString(), - // }, - // // { - // // name: 'Row', - // // value: row.toString(), - // // }, - // { - // name: 'Acquired', - // value: formatInUTCTimeZone(acquisitionDate, DATE_FORMAT), - // }, - // { - // name: 'Sun Elevation', - // value: sunElevation.toFixed(3), - // }, - // { - // name: 'Sun Azimuth', - // value: sunAzimuth.toFixed(3), - // }, - // { - // name: 'Cloud Cover', - // value: `${formattedCloudCover}%`, - // }, - // ]; - // }, [data]); + return [ + // the produt id is too long to be displayed in one row, + // therefore we need to split it into two separate rows + { + name: 'Scene ID', + value: name.slice(0, 22), + }, + { + name: '', + value: name.slice(22, 44), + }, + { + name: '', + value: name.slice(44), + }, + { + name: 'Sensor', + value: sensor, + }, + { + name: 'Acquired', + value: formatInUTCTimeZone(acquisitionDate, DATE_FORMAT), + }, + { + name: 'Orbit Direction', + value: orbitDirection, + }, + { + name: 'Polarization', + value: polarizationType, + }, + // { + // name: 'Cloud Cover', + // value: `${formattedCloudCover}%`, + // }, + ]; + }, [data]); if (mode === 'dynamic' || mode === 'analysis') { return null; } - // if (!tableData || !tableData.length) { - // return null; - // } - - return ; + return ; }; diff --git a/src/sentinel-1-explorer/components/SceneInfo/useDataFromSelectedSentinel1Scene.tsx b/src/sentinel-1-explorer/components/SceneInfo/useDataFromSelectedSentinel1Scene.tsx new file mode 100644 index 00000000..497b0245 --- /dev/null +++ b/src/sentinel-1-explorer/components/SceneInfo/useDataFromSelectedSentinel1Scene.tsx @@ -0,0 +1,64 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { useEffect, useMemo, useState } from 'react'; +import { useSelector } from 'react-redux'; +import { + selectAppMode, + selectQueryParams4SceneInSelectedMode, +} from '@shared/store/ImageryScene/selectors'; +import { Sentinel1Scene } from '@typing/imagery-service'; +import { selectIsAnimationPlaying } from '@shared/store/UI/selectors'; +import { getSentinel1SceneByObjectId } from '@shared/services/sentinel-1/getSentinel1Scenes'; + +/** + * This custom hook returns the data for the selected Sentinel-1 Scene. + * @returns + */ +export const useDataFromSelectedSentinel1Scene = () => { + const { objectIdOfSelectedScene } = + useSelector(selectQueryParams4SceneInSelectedMode) || {}; + + const mode = useSelector(selectAppMode); + + const animationPlaying = useSelector(selectIsAnimationPlaying); + + const [sentinel1Scene, setSentinel1Scene] = useState(); + + useEffect(() => { + (async () => { + if ( + !objectIdOfSelectedScene || + animationPlaying || + mode === 'analysis' + ) { + // return null; + setSentinel1Scene(null); + return; + } + + try { + const data = await getSentinel1SceneByObjectId( + objectIdOfSelectedScene + ); + setSentinel1Scene(data); + } catch (err) { + console.error(err); + } + })(); + }, [objectIdOfSelectedScene, mode, animationPlaying]); + + return sentinel1Scene; +}; diff --git a/src/shared/components/SceneInfoTable/SceneInfoTable.tsx b/src/shared/components/SceneInfoTable/SceneInfoTable.tsx index 7a1b8ac5..5342967d 100644 --- a/src/shared/components/SceneInfoTable/SceneInfoTable.tsx +++ b/src/shared/components/SceneInfoTable/SceneInfoTable.tsx @@ -14,6 +14,7 @@ */ import classNames from 'classnames'; +import { generateUID } from 'helper-toolkit-ts'; import React, { FC } from 'react'; /** @@ -73,7 +74,7 @@ export const SceneInfoTable: FC = ({ data }: Props) => { {data.map((d: SceneInfoTableData) => { return ( From c6b156049395ee05f85088b0663bd33c3854429e Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 27 Mar 2024 15:02:20 -0700 Subject: [PATCH 011/151] feat(shared): add ImageryLayerByObjectId and SwipeWidget4ImageryLayer to shared components --- .../components/Map/Map.tsx | 4 +- .../Sentinel1Layer/Sentinel1Layer.tsx | 80 ++----------- .../ImageryLayer/ImageryLayerByObjectID.tsx | 107 ++++++++++++++++++ .../ImageryLayer}/useImageLayer.tsx | 0 .../SwipeWidget/SwipeWidget4ImageryLayers.tsx | 85 ++++++++++++++ 5 files changed, 202 insertions(+), 74 deletions(-) create mode 100644 src/shared/components/ImageryLayer/ImageryLayerByObjectID.tsx rename src/shared/{hooks => components/ImageryLayer}/useImageLayer.tsx (100%) create mode 100644 src/shared/components/SwipeWidget/SwipeWidget4ImageryLayers.tsx diff --git a/src/sentinel-1-explorer/components/Map/Map.tsx b/src/sentinel-1-explorer/components/Map/Map.tsx index 471e1366..87eafe59 100644 --- a/src/sentinel-1-explorer/components/Map/Map.tsx +++ b/src/sentinel-1-explorer/components/Map/Map.tsx @@ -31,6 +31,8 @@ import CustomMapArrtribution from '@shared/components/CustomMapArrtribution/Cust import { MapActionButtonsGroup } from '@shared/components/MapActionButton'; import { CopyLinkWidget } from '@shared/components/CopyLinkWidget'; import { Sentinel1Layer } from '../Sentinel1Layer'; +import { SwipeWidget4ImageryLayers } from '@shared/components/SwipeWidget/SwipeWidget4ImageryLayers'; +import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; export const Map = () => { return ( @@ -46,7 +48,7 @@ export const Map = () => { - {/* */} + diff --git a/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx b/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx index 4e3b9893..188ffe7f 100644 --- a/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx +++ b/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx @@ -15,17 +15,10 @@ import MapView from '@arcgis/core/views/MapView'; import React, { FC, useEffect } from 'react'; -import { useSelector } from 'react-redux'; -import { - selectQueryParams4SceneInSelectedMode, - selectAppMode, - // selectActiveAnalysisTool, -} from '@shared/store/ImageryScene/selectors'; -import { selectAnimationStatus } from '@shared/store/UI/selectors'; import GroupLayer from '@arcgis/core/layers/GroupLayer'; // import { selectChangeCompareLayerIsOn } from '@shared/store/ChangeCompareTool/selectors'; -import { useImageryLayerByObjectId } from '@shared/hooks/useImageLayer'; import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; +import ImageryLayerByObjectID from '@shared/components/ImageryLayer/ImageryLayerByObjectID'; type Props = { mapView?: MapView; @@ -33,69 +26,10 @@ type Props = { }; export const Sentinel1Layer: FC = ({ mapView, groupLayer }: Props) => { - const mode = useSelector(selectAppMode); - - const { rasterFunctionName, objectIdOfSelectedScene } = - useSelector(selectQueryParams4SceneInSelectedMode) || {}; - - const animationStatus = useSelector(selectAnimationStatus); - - // const analysisTool = useSelector(selectActiveAnalysisTool); - - // const changeCompareLayerIsOn = useSelector(selectChangeCompareLayerIsOn); - - const getVisibility = () => { - if (mode === 'dynamic') { - return true; - } - - if (mode === 'find a scene') { - return objectIdOfSelectedScene !== null; - } - - if (mode === 'analysis') { - // // no need to show landsat layer when user is viewing change layer in the change compare tool - // if (analysisTool === 'change' && changeCompareLayerIsOn) { - // return false; - // } - - return objectIdOfSelectedScene !== null; - } - - // when in animate mode, only need to show landsat layer if animation is not playing - if ( - mode === 'animate' && - objectIdOfSelectedScene && - animationStatus === null - ) { - return true; - } - - return false; - }; - - const getObjectId = () => { - // should ignore the object id of selected scene if in dynamic mode, - if (mode === 'dynamic') { - return null; - } - - return objectIdOfSelectedScene; - }; - - const layer = useImageryLayerByObjectId({ - url: SENTINEL_1_SERVICE_URL, - visible: getVisibility(), - rasterFunction: rasterFunctionName, - objectId: getObjectId(), - }); - - useEffect(() => { - if (groupLayer && layer) { - groupLayer.add(layer); - groupLayer.reorder(layer, 0); - } - }, [groupLayer, layer]); - - return null; + return ( + + ); }; diff --git a/src/shared/components/ImageryLayer/ImageryLayerByObjectID.tsx b/src/shared/components/ImageryLayer/ImageryLayerByObjectID.tsx new file mode 100644 index 00000000..a4849d1c --- /dev/null +++ b/src/shared/components/ImageryLayer/ImageryLayerByObjectID.tsx @@ -0,0 +1,107 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import MapView from '@arcgis/core/views/MapView'; +import React, { FC, useEffect } from 'react'; +import { useImageryLayerByObjectId } from './useImageLayer'; +import { useSelector } from 'react-redux'; +import { + selectQueryParams4SceneInSelectedMode, + selectAppMode, + selectActiveAnalysisTool, +} from '@shared/store/ImageryScene/selectors'; +import { selectAnimationStatus } from '@shared/store/UI/selectors'; +import GroupLayer from '@arcgis/core/layers/GroupLayer'; +import { selectChangeCompareLayerIsOn } from '@shared/store/ChangeCompareTool/selectors'; + +type Props = { + serviceUrl: string; + mapView?: MapView; + groupLayer?: GroupLayer; +}; + +const ImageryLayerByObjectID: FC = ({ + serviceUrl, + mapView, + groupLayer, +}: Props) => { + const mode = useSelector(selectAppMode); + + const { rasterFunctionName, objectIdOfSelectedScene } = + useSelector(selectQueryParams4SceneInSelectedMode) || {}; + + const animationStatus = useSelector(selectAnimationStatus); + + const analysisTool = useSelector(selectActiveAnalysisTool); + + const changeCompareLayerIsOn = useSelector(selectChangeCompareLayerIsOn); + + const getVisibility = () => { + if (mode === 'dynamic') { + return true; + } + + if (mode === 'find a scene' || mode === 'spectral sampling') { + return objectIdOfSelectedScene !== null; + } + + if (mode === 'analysis') { + // no need to show landsat layer when user is viewing change layer in the change compare tool + if (analysisTool === 'change' && changeCompareLayerIsOn) { + return false; + } + + return objectIdOfSelectedScene !== null; + } + + // when in animate mode, only need to show landsat layer if animation is not playing + if ( + mode === 'animate' && + objectIdOfSelectedScene && + animationStatus === null + ) { + return true; + } + + return false; + }; + + const getObjectId = () => { + // should ignore the object id of selected scene if in dynamic mode, + if (mode === 'dynamic') { + return null; + } + + return objectIdOfSelectedScene; + }; + + const layer = useImageryLayerByObjectId({ + url: serviceUrl, + visible: getVisibility(), + rasterFunction: rasterFunctionName, + objectId: getObjectId(), + }); + + useEffect(() => { + if (groupLayer && layer) { + groupLayer.add(layer); + groupLayer.reorder(layer, 0); + } + }, [groupLayer, layer]); + + return null; +}; + +export default ImageryLayerByObjectID; diff --git a/src/shared/hooks/useImageLayer.tsx b/src/shared/components/ImageryLayer/useImageLayer.tsx similarity index 100% rename from src/shared/hooks/useImageLayer.tsx rename to src/shared/components/ImageryLayer/useImageLayer.tsx diff --git a/src/shared/components/SwipeWidget/SwipeWidget4ImageryLayers.tsx b/src/shared/components/SwipeWidget/SwipeWidget4ImageryLayers.tsx new file mode 100644 index 00000000..6a0d5e44 --- /dev/null +++ b/src/shared/components/SwipeWidget/SwipeWidget4ImageryLayers.tsx @@ -0,0 +1,85 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import MapView from '@arcgis/core/views/MapView'; +import React, { FC } from 'react'; +import SwipeWidget from '@shared/components/SwipeWidget/SwipeWidget'; +import { useSelector } from 'react-redux'; +import { + selectAppMode, + selectIsSwipeModeOn, + selectQueryParams4MainScene, + selectQueryParams4SecondaryScene, +} from '@shared/store/ImageryScene/selectors'; +import { useDispatch } from 'react-redux'; +import { swipeWidgetHanlderPositionChanged } from '@shared/store/Map/reducer'; +import { useImageryLayerByObjectId } from '../ImageryLayer/useImageLayer'; + +type Props = { + /** + * URL of the imagery service layer to be used in the Swipe Widget + */ + serviceUrl: string; + mapView?: MapView; +}; + +export const SwipeWidget4ImageryLayers: FC = ({ + serviceUrl, + mapView, +}: Props) => { + const dispatch = useDispatch(); + + const isSwipeWidgetVisible = useSelector(selectIsSwipeModeOn); + + const queryParams4LeftSide = useSelector(selectQueryParams4MainScene); + + const queryParams4RightSide = useSelector(selectQueryParams4SecondaryScene); + + // const isSwipeWidgetVisible = appMode === 'swipe'; + + const leadingLayer = useImageryLayerByObjectId({ + url: serviceUrl, + visible: + isSwipeWidgetVisible && + queryParams4LeftSide?.objectIdOfSelectedScene !== null, + rasterFunction: queryParams4LeftSide?.rasterFunctionName || '', + objectId: queryParams4LeftSide?.objectIdOfSelectedScene, + }); + + const trailingLayer = useImageryLayerByObjectId({ + url: serviceUrl, + visible: + isSwipeWidgetVisible && + queryParams4RightSide?.objectIdOfSelectedScene !== null, + rasterFunction: queryParams4RightSide?.rasterFunctionName || '', + objectId: queryParams4RightSide?.objectIdOfSelectedScene, + }); + + return ( + { + // console.log(pos) + dispatch(swipeWidgetHanlderPositionChanged(Math.trunc(pos))); + }} + referenceInfoOnToggle={() => { + // + }} + /> + ); +}; From 520217d0923bd229631bcd851c001af36eb73743 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 28 Mar 2024 09:22:42 -0700 Subject: [PATCH 012/151] feat(sentinel1explorer): update Sentinel1Scen type and SceneInfoTable add absoluteOrbit and relativeOrbit field to it --- .../components/SceneInfo/SceneInfoContainer.tsx | 14 ++++++++++---- src/shared/services/sentinel-1/config.ts | 2 +- .../services/sentinel-1/getSentinel1Scenes.ts | 4 ++++ src/types/imagery-service.d.ts | 4 ++++ 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx b/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx index 125a5e59..9eb9283d 100644 --- a/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx +++ b/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx @@ -40,6 +40,8 @@ export const SceneInfoContainer = () => { sensor, orbitDirection, polarizationType, + absoluteOrbit, + relativeOrbit, } = data; return [ @@ -73,10 +75,14 @@ export const SceneInfoContainer = () => { name: 'Polarization', value: polarizationType, }, - // { - // name: 'Cloud Cover', - // value: `${formattedCloudCover}%`, - // }, + { + name: 'Absolute Orbit', + value: absoluteOrbit, + }, + { + name: 'Relative Orbit', + value: relativeOrbit, + }, ]; }, [data]); diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index 31c5683f..5d87b8fe 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -70,7 +70,7 @@ export const FIELD_NAMES = { SENSOR: 'sensor', ORBIT_DIRECTION: 'orbitdirection', ACQUISITION_DATE: 'acquisitiondate', - ABS_ORBIT: 'absoluteorbit', + ABSOLUTE_ORBIT: 'absoluteorbit', RELATIVE_ORBIT: 'relativeorbit', }; diff --git a/src/shared/services/sentinel-1/getSentinel1Scenes.ts b/src/shared/services/sentinel-1/getSentinel1Scenes.ts index ca41147d..13537515 100644 --- a/src/shared/services/sentinel-1/getSentinel1Scenes.ts +++ b/src/shared/services/sentinel-1/getSentinel1Scenes.ts @@ -64,6 +64,8 @@ const { SENSOR, ORBIT_DIRECTION, POLARIZATION_TYPE, + ABSOLUTE_ORBIT, + RELATIVE_ORBIT, } = FIELD_NAMES; /** @@ -103,6 +105,8 @@ export const getFormattedLandsatScenes = ( sensor: attributes[SENSOR], orbitDirection: attributes[ORBIT_DIRECTION], polarizationType: attributes[POLARIZATION_TYPE], + absoluteOrbit: attributes[ABSOLUTE_ORBIT], + relativeOrbit: attributes[RELATIVE_ORBIT], acquisitionDate, formattedAcquisitionDate, acquisitionYear, diff --git a/src/types/imagery-service.d.ts b/src/types/imagery-service.d.ts index f64e18cd..f655ce66 100644 --- a/src/types/imagery-service.d.ts +++ b/src/types/imagery-service.d.ts @@ -188,6 +188,10 @@ export type Sentinel1Scene = { * single polarisation (HH or VV) or dual polarisation (HH+HV or VV+VH) */ polarizationType: string; + + absoluteOrbit: string; + + relativeOrbit: string; /** * acquisitionDate as a string in ISO format (YYYY-MM-DD). */ From 3401ad5459412e6199610632cc336ba1c0f9df2a Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 28 Mar 2024 09:33:19 -0700 Subject: [PATCH 013/151] fix(sentinel1exlorer): add SENTINEL1_RASTER_FUNCTION_INFOS to getRasterFunctionLabelText --- src/shared/services/helpers/getRasterFunctionLabelText.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/shared/services/helpers/getRasterFunctionLabelText.ts b/src/shared/services/helpers/getRasterFunctionLabelText.ts index 5d8519d3..ed5fc5bd 100644 --- a/src/shared/services/helpers/getRasterFunctionLabelText.ts +++ b/src/shared/services/helpers/getRasterFunctionLabelText.ts @@ -14,13 +14,17 @@ */ import { LANDSAT_RASTER_FUNCTION_INFOS } from '../landsat-level-2/config'; +import { SENTINEL1_RASTER_FUNCTION_INFOS } from '../sentinel-1/config'; let rasterFunctionLabelMap: Map = null; const initRasterFunctionLabelMap = () => { rasterFunctionLabelMap = new Map(); - const infos = [...LANDSAT_RASTER_FUNCTION_INFOS]; + const infos = [ + ...LANDSAT_RASTER_FUNCTION_INFOS, + ...SENTINEL1_RASTER_FUNCTION_INFOS, + ]; for (const { name, label } of infos) { rasterFunctionLabelMap.set(name, label); From c32c2e5dd5bbb202b8f274d6b1926d472b74b7b6 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 28 Mar 2024 10:36:39 -0700 Subject: [PATCH 014/151] feat(sentinel1explorer): add orbitDirection to Sentinel1 slice in Redux Store also add the OrbitFilterComponent --- .../OrbitDirectionFilter.tsx | 55 +++++++++++++++++++ .../OrbitDirectionFilterContainer.tsx | 36 ++++++++++++ src/shared/store/Sentinel1/reducer.ts | 15 ++++- src/shared/store/Sentinel1/selectors.ts | 5 ++ src/types/imagery-service.d.ts | 4 +- 5 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx create mode 100644 src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilterContainer.tsx diff --git a/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx b/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx new file mode 100644 index 00000000..256461e0 --- /dev/null +++ b/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx @@ -0,0 +1,55 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Dropdown, DropdownData } from '@shared/components/Dropdown'; +import { Sentinel1OrbitDirection } from '@typing/imagery-service'; +import React, { FC, useMemo } from 'react'; + +type Props = { + selectedOrbitDirection: Sentinel1OrbitDirection; + orbitDirectionOnChange: (val: Sentinel1OrbitDirection) => void; +}; + +/** + * This is the filter to select the Orbit Direction of the Sentinel-1 imagery scenes + * @param param0 + * @returns + */ +export const OrbitDirectionFilter: FC = ({ + selectedOrbitDirection, + orbitDirectionOnChange, +}) => { + const data: DropdownData[] = useMemo(() => { + const values: Sentinel1OrbitDirection[] = ['Ascending', 'Descending']; + + return values.map((val) => { + return { + value: val, + selected: val === selectedOrbitDirection, + } as DropdownData; + }); + }, [selectedOrbitDirection]); + + return ( +
+ { + orbitDirectionOnChange(val as Sentinel1OrbitDirection); + }} + /> +
+ ); +}; diff --git a/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilterContainer.tsx b/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilterContainer.tsx new file mode 100644 index 00000000..5ccd6019 --- /dev/null +++ b/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilterContainer.tsx @@ -0,0 +1,36 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import { OrbitDirectionFilter } from './OrbitDirectionFilter'; +import { useSelector } from 'react-redux'; +import { selectSentinel1OrbitDirection } from '@shared/store/Sentinel1/selectors'; +import { useDispatch } from 'react-redux'; +import { orbitDirectionChanged } from '@shared/store/Sentinel1/reducer'; + +export const OrbitDirectionFilterContainer = () => { + const dispatch = useDispatch(); + + const selectedOrbitDirection = useSelector(selectSentinel1OrbitDirection); + + return ( + { + dispatch(orbitDirectionChanged(val)); + }} + /> + ); +}; diff --git a/src/shared/store/Sentinel1/reducer.ts b/src/shared/store/Sentinel1/reducer.ts index c72ef9ef..5907b640 100644 --- a/src/shared/store/Sentinel1/reducer.ts +++ b/src/shared/store/Sentinel1/reducer.ts @@ -19,7 +19,10 @@ import { PayloadAction, // createAsyncThunk } from '@reduxjs/toolkit'; -import { Sentinel1Scene } from '@typing/imagery-service'; +import { + Sentinel1OrbitDirection, + Sentinel1Scene, +} from '@typing/imagery-service'; export type Sentinel1State = { /** @@ -31,6 +34,7 @@ export type Sentinel1State = { }; objectIds?: number[]; }; + orbitDirection: Sentinel1OrbitDirection; }; export const initialSentinel1State: Sentinel1State = { @@ -38,6 +42,7 @@ export const initialSentinel1State: Sentinel1State = { byObjectId: {}, objectIds: [], }, + orbitDirection: 'Descending', }; const slice = createSlice({ @@ -66,11 +71,17 @@ const slice = createSlice({ byObjectId, }; }, + orbitDirectionChanged: ( + state, + action: PayloadAction + ) => { + state.orbitDirection = action.payload; + }, }, }); const { reducer } = slice; -export const { sentinel1ScenesUpdated } = slice.actions; +export const { sentinel1ScenesUpdated, orbitDirectionChanged } = slice.actions; export default reducer; diff --git a/src/shared/store/Sentinel1/selectors.ts b/src/shared/store/Sentinel1/selectors.ts index e0aa24d8..b977bc25 100644 --- a/src/shared/store/Sentinel1/selectors.ts +++ b/src/shared/store/Sentinel1/selectors.ts @@ -20,3 +20,8 @@ export const selectAvailableScenesByObjectId = createSelector( (state: RootState) => state.Sentinel1.sentinel1Scenes.byObjectId, (byObjectId) => byObjectId ); + +export const selectSentinel1OrbitDirection = createSelector( + (state: RootState) => state.Sentinel1.orbitDirection, + (orbitDirection) => orbitDirection +); diff --git a/src/types/imagery-service.d.ts b/src/types/imagery-service.d.ts index f655ce66..ff6c25ed 100644 --- a/src/types/imagery-service.d.ts +++ b/src/types/imagery-service.d.ts @@ -169,6 +169,8 @@ type ImageryServiceTimeExtentData = { end: number; }; +export type Sentinel1OrbitDirection = 'Ascending' | 'Descending'; + export type Sentinel1Scene = { objectId: number; /** @@ -183,7 +185,7 @@ export type Sentinel1Scene = { /** * orbit direction of the sentinel-1 imagery scene */ - orbitDirection: 'Ascending' | 'Descending'; + orbitDirection: Sentinel1OrbitDirection; /** * single polarisation (HH or VV) or dual polarisation (HH+HV or VV+VH) */ From 4acb246297018d4534e7ce954c2d5b4789fffd66 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 28 Mar 2024 10:51:18 -0700 Subject: [PATCH 015/151] feat(sentinel1explorer): add Orbit Orientation filter --- .../components/Layout/Layout.tsx | 5 ++++- .../components/OrbitDirectionFilter/index.ts | 1 + .../hooks/useQueryAvailableSentinel1Scenes.tsx | 7 +++++-- .../components/Calendar/CalendarContainer.tsx | 10 ++++++++-- .../services/sentinel-1/getSentinel1Scenes.ts | 16 ++++++++++++---- src/shared/store/Sentinel1/thunks.ts | 11 +++++++++-- 6 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 src/sentinel-1-explorer/components/OrbitDirectionFilter/index.ts diff --git a/src/sentinel-1-explorer/components/Layout/Layout.tsx b/src/sentinel-1-explorer/components/Layout/Layout.tsx index f48821dd..2fc1a885 100644 --- a/src/sentinel-1-explorer/components/Layout/Layout.tsx +++ b/src/sentinel-1-explorer/components/Layout/Layout.tsx @@ -36,6 +36,7 @@ import { appConfig } from '@shared/config'; import { useQueryAvailableSentinel1Scenes } from '../../hooks/useQueryAvailableSentinel1Scenes'; import { SceneInfo } from '../SceneInfo'; import { Sentinel1FunctionSelector } from '../RasterFunctionSelector'; +import { OrbitDirectionFilter } from '../OrbitDirectionFilter'; export const Layout = () => { const mode = useSelector(selectAppMode); @@ -101,7 +102,9 @@ export const Layout = () => { ) : ( <>
- + + +
{/* {mode === 'analysis' && ( diff --git a/src/sentinel-1-explorer/components/OrbitDirectionFilter/index.ts b/src/sentinel-1-explorer/components/OrbitDirectionFilter/index.ts new file mode 100644 index 00000000..1899d1d9 --- /dev/null +++ b/src/sentinel-1-explorer/components/OrbitDirectionFilter/index.ts @@ -0,0 +1 @@ +export { OrbitDirectionFilterContainer as OrbitDirectionFilter } from './OrbitDirectionFilterContainer'; diff --git a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx index 7f70a712..1da80e52 100644 --- a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx +++ b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx @@ -21,6 +21,7 @@ import { useDispatch } from 'react-redux'; import { selectIsAnimationPlaying } from '@shared/store/UI/selectors'; import { queryAvailableScenes } from '@shared/store/Sentinel1/thunks'; import { selectQueryParams4SceneInSelectedMode } from '@shared/store/ImageryScene/selectors'; +import { selectSentinel1OrbitDirection } from '@shared/store/Sentinel1/selectors'; // import { selectAcquisitionYear } from '@shared/store/ImageryScene/selectors'; /** @@ -42,6 +43,8 @@ export const useQueryAvailableSentinel1Scenes = (): void => { */ const center = useSelector(selectMapCenter); + const orbitDirection = useSelector(selectSentinel1OrbitDirection); + useEffect(() => { if (!center || !acquisitionDateRange) { return; @@ -51,8 +54,8 @@ export const useQueryAvailableSentinel1Scenes = (): void => { return; } - dispatch(queryAvailableScenes(acquisitionDateRange)); - }, [center, acquisitionDateRange, isAnimationPlaying]); + dispatch(queryAvailableScenes(acquisitionDateRange, orbitDirection)); + }, [center, acquisitionDateRange, isAnimationPlaying, orbitDirection]); return null; }; diff --git a/src/shared/components/Calendar/CalendarContainer.tsx b/src/shared/components/Calendar/CalendarContainer.tsx index b0977848..de616717 100644 --- a/src/shared/components/Calendar/CalendarContainer.tsx +++ b/src/shared/components/Calendar/CalendarContainer.tsx @@ -13,7 +13,7 @@ * limitations under the License. */ -import React, { useEffect, useMemo, useState } from 'react'; +import React, { FC, useEffect, useMemo, useState } from 'react'; import Calendar, { FormattedImageryScene } from './Calendar'; // import { selectMapCenter } from '@shared/store/Map/selectors'; import { useSelector } from 'react-redux'; @@ -54,7 +54,11 @@ import { useAcquisitionYear } from './useAcquisitionYear'; import { batch } from 'react-redux'; // import { useUpdateAcquisitionYear } from './useUpdateAcquisitionYear'; -const CalendarContainer = () => { +type Props = { + children?: React.ReactNode; +}; + +const CalendarContainer: FC = ({ children }: Props) => { const dispatch = useDispatch(); const queryParams = useSelector(selectQueryParams4SceneInSelectedMode); @@ -168,6 +172,8 @@ const CalendarContainer = () => { }} /> )} + + {children} + ( + acquisitionDateRange: DateRange, + orbitDirection: Sentinel1OrbitDirection + ) => async (dispatch: StoreDispatch, getState: StoreGetState) => { if (!acquisitionDateRange) { return; @@ -56,6 +62,7 @@ export const queryAvailableScenes = // get scenes that were acquired within the acquisition year const scenes = await getSentinel1Scenes({ acquisitionDateRange, + orbitDirection, mapPoint: center, abortController, }); From a51b563c1e858ae6bac15302933c1838db812a3e Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 28 Mar 2024 11:01:02 -0700 Subject: [PATCH 016/151] feat(sentinel1explorer): add useShouldShowSecondaryControls custom hook and enable AnimationControls --- .../components/Layout/Layout.tsx | 8 ++--- .../hooks/useShouldShowSecondaryControls.tsx | 31 +++++++++++++++++++ 2 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 src/shared/hooks/useShouldShowSecondaryControls.tsx diff --git a/src/sentinel-1-explorer/components/Layout/Layout.tsx b/src/sentinel-1-explorer/components/Layout/Layout.tsx index 2fc1a885..89e9116d 100644 --- a/src/sentinel-1-explorer/components/Layout/Layout.tsx +++ b/src/sentinel-1-explorer/components/Layout/Layout.tsx @@ -37,6 +37,7 @@ import { useQueryAvailableSentinel1Scenes } from '../../hooks/useQueryAvailableS import { SceneInfo } from '../SceneInfo'; import { Sentinel1FunctionSelector } from '../RasterFunctionSelector'; import { OrbitDirectionFilter } from '../OrbitDirectionFilter'; +import { useShouldShowSecondaryControls } from '@shared/hooks/useShouldShowSecondaryControls'; export const Layout = () => { const mode = useSelector(selectAppMode); @@ -45,8 +46,7 @@ export const Layout = () => { const dynamicModeOn = mode === 'dynamic'; - const shouldShowSecondaryControls = - mode === 'swipe' || mode === 'animate' || mode === 'analysis'; + const shouldShowSecondaryControls = useShouldShowSecondaryControls(); /** * This custom hook gets invoked whenever the acquisition year, map center, or other filters are @@ -81,8 +81,8 @@ export const Layout = () => { {shouldShowSecondaryControls && ( - {/* - */} + + {/* */} )} diff --git a/src/shared/hooks/useShouldShowSecondaryControls.tsx b/src/shared/hooks/useShouldShowSecondaryControls.tsx new file mode 100644 index 00000000..79d0f3ff --- /dev/null +++ b/src/shared/hooks/useShouldShowSecondaryControls.tsx @@ -0,0 +1,31 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { selectAppMode } from '@shared/store/ImageryScene/selectors'; +import React from 'react'; +import { useSelector } from 'react-redux'; + +/** + * This custom hook returns a boolean value indicates if the secondary controls should be shown + * @returns {boolean} If true, show secondary controls next to mode selectors + */ +export const useShouldShowSecondaryControls = () => { + const mode = useSelector(selectAppMode); + + const shouldShowSecondaryControls = + mode === 'swipe' || mode === 'animate' || mode === 'analysis'; + + return shouldShowSecondaryControls; +}; From 7f56fcf1e24fcd1f20ebb659932e715ea9f52569 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 28 Mar 2024 11:22:11 -0700 Subject: [PATCH 017/151] feat(sentinel1explorer): provide serviceUrl to Animation layer --- src/sentinel-1-explorer/components/Map/Map.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/components/Map/Map.tsx b/src/sentinel-1-explorer/components/Map/Map.tsx index 87eafe59..2fc2034d 100644 --- a/src/sentinel-1-explorer/components/Map/Map.tsx +++ b/src/sentinel-1-explorer/components/Map/Map.tsx @@ -49,7 +49,7 @@ export const Map = () => { - + From 88168bb2aeee8f5f6d491b80c5242b641c5fab5b Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 28 Mar 2024 14:58:59 -0700 Subject: [PATCH 018/151] fix(shared): stop using getServiceConfig as it causes unexpected error --- src/shared/config/index.ts | 16 ++++++++-------- src/shared/services/landsat-level-2/config.ts | 5 +++-- src/shared/services/sentinel-1/config.ts | 5 +++-- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/shared/config/index.ts b/src/shared/config/index.ts index 5a7fb557..892cc604 100644 --- a/src/shared/config/index.ts +++ b/src/shared/config/index.ts @@ -57,11 +57,11 @@ export const TIER = ? 'production' : 'development'; -/** - * Get imagery service config by name - * @param serviceName - * @returns - */ -export const getServiceConfig = (serviceName: ServiceName) => { - return config.services[serviceName]; -}; +// /** +// * Get imagery service config by name +// * @param serviceName +// * @returns +// */ +// export const getServiceConfig = (serviceName: ServiceName) => { +// return config.services[serviceName]; +// }; diff --git a/src/shared/services/landsat-level-2/config.ts b/src/shared/services/landsat-level-2/config.ts index ebfb883d..6d6bde2c 100644 --- a/src/shared/services/landsat-level-2/config.ts +++ b/src/shared/services/landsat-level-2/config.ts @@ -14,10 +14,11 @@ */ // import { TIER } from '@shared/constants'; -import { TIER, getServiceConfig } from '@shared/config'; +import { TIER } from '@shared/config'; import { celsius2fahrenheit } from '@shared/utils/temperature-conversion'; +import config from '../../../config.json'; -const serviceConfig = getServiceConfig('landsat-level-2'); +const serviceConfig = config.services['landsat-level-2']; //getServiceConfig('landsat-level-2'); /** * Landsat 8 and 9 multispectral and multitemporal atmospherically corrected imagery with on-the-fly renderings and indices for visualization and analysis. diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index 5d87b8fe..abf75aad 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -14,9 +14,10 @@ */ // import { TIER } from '@shared/constants'; -import { TIER, getServiceConfig } from '@shared/config'; +import { TIER } from '@shared/config'; +import config from '../../../config.json'; -const serviceConfig = getServiceConfig('sentinel-1'); +const serviceConfig = config.services['sentinel-1']; //getServiceConfig('sentinel-1'); /** * Sentinel-1 RTC 10-meter C-band synthetic aperture radar (SAR) imagery in single and dual V-polarization with on-the-fly functions for visualization and unit conversions for analysis. From 4347971d300e5a045bcd36bdac60f9b7e9d6464a Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 28 Mar 2024 16:26:14 -0700 Subject: [PATCH 019/151] fix(shared): get service config via getServiceConfig --- src/sentinel-1-explorer/index.tsx | 6 +++++- src/shared/config/index.ts | 16 ++++++++-------- src/shared/services/landsat-level-2/config.ts | 6 ++---- src/shared/services/sentinel-1/config.ts | 5 ++--- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/sentinel-1-explorer/index.tsx b/src/sentinel-1-explorer/index.tsx index 9b8996f3..0d91e010 100644 --- a/src/sentinel-1-explorer/index.tsx +++ b/src/sentinel-1-explorer/index.tsx @@ -26,6 +26,7 @@ import { AboutSentinel1Explorer } from './components/About'; import { ErrorPage } from '@shared/components/ErrorPage'; import { getTimeExtentOfSentinel1Service } from '@shared/services/sentinel-1/getTimeExtent'; import AppContextProvider from '@shared/contexts/AppContextProvider'; +import { SENTINEL1_RASTER_FUNCTION_INFOS } from '@shared/services/sentinel-1/config'; (async () => { const root = createRoot(document.getElementById('root')); @@ -38,7 +39,10 @@ import AppContextProvider from '@shared/contexts/AppContextProvider'; root.render( - + diff --git a/src/shared/config/index.ts b/src/shared/config/index.ts index 892cc604..5a7fb557 100644 --- a/src/shared/config/index.ts +++ b/src/shared/config/index.ts @@ -57,11 +57,11 @@ export const TIER = ? 'production' : 'development'; -// /** -// * Get imagery service config by name -// * @param serviceName -// * @returns -// */ -// export const getServiceConfig = (serviceName: ServiceName) => { -// return config.services[serviceName]; -// }; +/** + * Get imagery service config by name + * @param serviceName + * @returns + */ +export const getServiceConfig = (serviceName: ServiceName) => { + return config.services[serviceName]; +}; diff --git a/src/shared/services/landsat-level-2/config.ts b/src/shared/services/landsat-level-2/config.ts index 6d6bde2c..e1074a56 100644 --- a/src/shared/services/landsat-level-2/config.ts +++ b/src/shared/services/landsat-level-2/config.ts @@ -14,12 +14,10 @@ */ // import { TIER } from '@shared/constants'; -import { TIER } from '@shared/config'; +import { TIER, getServiceConfig } from '@shared/config'; import { celsius2fahrenheit } from '@shared/utils/temperature-conversion'; -import config from '../../../config.json'; - -const serviceConfig = config.services['landsat-level-2']; //getServiceConfig('landsat-level-2'); +const serviceConfig = getServiceConfig('landsat-level-2'); /** * Landsat 8 and 9 multispectral and multitemporal atmospherically corrected imagery with on-the-fly renderings and indices for visualization and analysis. * @see https://www.arcgis.com/home/item.html?id=bd6b545b95654d91a0b7faf7b5e010f5 diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index abf75aad..5d87b8fe 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -14,10 +14,9 @@ */ // import { TIER } from '@shared/constants'; -import { TIER } from '@shared/config'; -import config from '../../../config.json'; +import { TIER, getServiceConfig } from '@shared/config'; -const serviceConfig = config.services['sentinel-1']; //getServiceConfig('sentinel-1'); +const serviceConfig = getServiceConfig('sentinel-1'); /** * Sentinel-1 RTC 10-meter C-band synthetic aperture radar (SAR) imagery in single and dual V-polarization with on-the-fly functions for visualization and unit conversions for analysis. From a3e753745a05b7695fbecb3460b0b18bbacc413b Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 28 Mar 2024 16:32:48 -0700 Subject: [PATCH 020/151] chore: add console log message that show service config for debugging purpose --- src/shared/services/landsat-level-2/config.ts | 2 ++ src/shared/services/sentinel-1/config.ts | 1 + 2 files changed, 3 insertions(+) diff --git a/src/shared/services/landsat-level-2/config.ts b/src/shared/services/landsat-level-2/config.ts index e1074a56..dbe9869e 100644 --- a/src/shared/services/landsat-level-2/config.ts +++ b/src/shared/services/landsat-level-2/config.ts @@ -18,6 +18,8 @@ import { TIER, getServiceConfig } from '@shared/config'; import { celsius2fahrenheit } from '@shared/utils/temperature-conversion'; const serviceConfig = getServiceConfig('landsat-level-2'); +console.log('landsat-level-2 service config', serviceConfig); + /** * Landsat 8 and 9 multispectral and multitemporal atmospherically corrected imagery with on-the-fly renderings and indices for visualization and analysis. * @see https://www.arcgis.com/home/item.html?id=bd6b545b95654d91a0b7faf7b5e010f5 diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index 5d87b8fe..538a3cd7 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -17,6 +17,7 @@ import { TIER, getServiceConfig } from '@shared/config'; const serviceConfig = getServiceConfig('sentinel-1'); +console.log('sentinel-1 service config', serviceConfig); /** * Sentinel-1 RTC 10-meter C-band synthetic aperture radar (SAR) imagery in single and dual V-polarization with on-the-fly functions for visualization and unit conversions for analysis. From 370350c3938252d880a6c75507028ef386718ebd Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 29 Mar 2024 13:52:54 -0700 Subject: [PATCH 021/151] fix: stop calling getServiceConfig as it causes unknown issue that only impacts the bundled js file --- src/config.json | 4 ---- src/shared/config/index.ts | 16 +++++++-------- src/shared/services/landsat-level-2/config.ts | 20 ++++++++++++++----- src/shared/services/sentinel-1/config.ts | 20 ++++++++++++++----- 4 files changed, 38 insertions(+), 22 deletions(-) diff --git a/src/config.json b/src/config.json index ce8f125b..a3d2e248 100644 --- a/src/config.json +++ b/src/config.json @@ -43,10 +43,6 @@ "landsat-level-2": { "development": "https://utility.arcgis.com/usrsvcs/servers/f89d8adb0d5141a7a5820e8a6375480e/rest/services/LandsatC2L2/ImageServer", "production": "https://utility.arcgis.com/usrsvcs/servers/125204cf060644659af558f4f6719b0f/rest/services/LandsatC2L2/ImageServer" - }, - "sentinel-1": { - "development": "https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer", - "production": "https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer" } } } diff --git a/src/shared/config/index.ts b/src/shared/config/index.ts index 5a7fb557..892cc604 100644 --- a/src/shared/config/index.ts +++ b/src/shared/config/index.ts @@ -57,11 +57,11 @@ export const TIER = ? 'production' : 'development'; -/** - * Get imagery service config by name - * @param serviceName - * @returns - */ -export const getServiceConfig = (serviceName: ServiceName) => { - return config.services[serviceName]; -}; +// /** +// * Get imagery service config by name +// * @param serviceName +// * @returns +// */ +// export const getServiceConfig = (serviceName: ServiceName) => { +// return config.services[serviceName]; +// }; diff --git a/src/shared/services/landsat-level-2/config.ts b/src/shared/services/landsat-level-2/config.ts index dbe9869e..71f868a5 100644 --- a/src/shared/services/landsat-level-2/config.ts +++ b/src/shared/services/landsat-level-2/config.ts @@ -14,11 +14,21 @@ */ // import { TIER } from '@shared/constants'; -import { TIER, getServiceConfig } from '@shared/config'; +import { + TIER, + // getServiceConfig +} from '@shared/config'; import { celsius2fahrenheit } from '@shared/utils/temperature-conversion'; -const serviceConfig = getServiceConfig('landsat-level-2'); -console.log('landsat-level-2 service config', serviceConfig); +// const serviceConfig = getServiceConfig('landsat-level-2'); +// console.log('landsat-level-2 service config', serviceConfig); + +const serviceUrls = { + development: + 'https://utility.arcgis.com/usrsvcs/servers/f89d8adb0d5141a7a5820e8a6375480e/rest/services/LandsatC2L2/ImageServer', + production: + 'https://utility.arcgis.com/usrsvcs/servers/125204cf060644659af558f4f6719b0f/rest/services/LandsatC2L2/ImageServer', +}; /** * Landsat 8 and 9 multispectral and multitemporal atmospherically corrected imagery with on-the-fly renderings and indices for visualization and analysis. @@ -41,13 +51,13 @@ const LANDSAT_LEVEL_2_ORIGINAL_SERVICE_URL = * Service URL to be used in PROD enviroment */ export const LANDSAT_LEVEL_2_SERVICE_URL_PROD = - serviceConfig?.production || LANDSAT_LEVEL_2_ORIGINAL_SERVICE_URL; + serviceUrls.production || LANDSAT_LEVEL_2_ORIGINAL_SERVICE_URL; /** * Service URL to be used in DEV enviroment */ export const LANDSAT_LEVEL_2_SERVICE_URL_DEV = - serviceConfig?.development || LANDSAT_LEVEL_2_ORIGINAL_SERVICE_URL; + serviceUrls.development || LANDSAT_LEVEL_2_ORIGINAL_SERVICE_URL; /** * A proxy imagery service which has embedded credential that points to the actual Landsat Level-2 imagery service diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index 538a3cd7..31760ae6 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -14,10 +14,20 @@ */ // import { TIER } from '@shared/constants'; -import { TIER, getServiceConfig } from '@shared/config'; +import { + TIER, + // getServiceConfig +} from '@shared/config'; -const serviceConfig = getServiceConfig('sentinel-1'); -console.log('sentinel-1 service config', serviceConfig); +// const serviceConfig = getServiceConfig('sentinel-1'); +// console.log('sentinel-1 service config', serviceConfig); + +const serviceUrls = { + development: + 'https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer', + production: + 'https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer', +}; /** * Sentinel-1 RTC 10-meter C-band synthetic aperture radar (SAR) imagery in single and dual V-polarization with on-the-fly functions for visualization and unit conversions for analysis. @@ -41,13 +51,13 @@ const SENTINEL_1_ORIGINAL_SERVICE_URL = * Service URL to be used in PROD enviroment */ export const SENTINEL_1_SERVICE_URL_PROD = - serviceConfig?.production || SENTINEL_1_ORIGINAL_SERVICE_URL; + serviceUrls.production || SENTINEL_1_ORIGINAL_SERVICE_URL; /** * Service URL to be used in DEV enviroment */ export const SENTINEL_1_SERVICE_URL_DEV = - serviceConfig?.development || SENTINEL_1_ORIGINAL_SERVICE_URL; + serviceUrls.development || SENTINEL_1_ORIGINAL_SERVICE_URL; /** * A proxy imagery service which has embedded credential that points to the actual Landsat Level-2 imagery service From 620fb24cb09e886dbfe0f96c035591a475787ac5 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 1 Apr 2024 14:34:53 -0700 Subject: [PATCH 022/151] fix: use getServiceConfig as the 'Uncaught ReferenceError' error is no longer showing up --- src/config.json | 4 +++ src/shared/config/index.ts | 16 +++++------ src/shared/services/landsat-level-2/config.ts | 27 +++++++++---------- src/shared/services/sentinel-1/config.ts | 25 ++++++++--------- webpack.config.js | 9 ++++++- 5 files changed, 43 insertions(+), 38 deletions(-) diff --git a/src/config.json b/src/config.json index a3d2e248..ce8f125b 100644 --- a/src/config.json +++ b/src/config.json @@ -43,6 +43,10 @@ "landsat-level-2": { "development": "https://utility.arcgis.com/usrsvcs/servers/f89d8adb0d5141a7a5820e8a6375480e/rest/services/LandsatC2L2/ImageServer", "production": "https://utility.arcgis.com/usrsvcs/servers/125204cf060644659af558f4f6719b0f/rest/services/LandsatC2L2/ImageServer" + }, + "sentinel-1": { + "development": "https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer", + "production": "https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer" } } } diff --git a/src/shared/config/index.ts b/src/shared/config/index.ts index 892cc604..5a7fb557 100644 --- a/src/shared/config/index.ts +++ b/src/shared/config/index.ts @@ -57,11 +57,11 @@ export const TIER = ? 'production' : 'development'; -// /** -// * Get imagery service config by name -// * @param serviceName -// * @returns -// */ -// export const getServiceConfig = (serviceName: ServiceName) => { -// return config.services[serviceName]; -// }; +/** + * Get imagery service config by name + * @param serviceName + * @returns + */ +export const getServiceConfig = (serviceName: ServiceName) => { + return config.services[serviceName]; +}; diff --git a/src/shared/services/landsat-level-2/config.ts b/src/shared/services/landsat-level-2/config.ts index 71f868a5..7e4cc6f4 100644 --- a/src/shared/services/landsat-level-2/config.ts +++ b/src/shared/services/landsat-level-2/config.ts @@ -14,21 +14,18 @@ */ // import { TIER } from '@shared/constants'; -import { - TIER, - // getServiceConfig -} from '@shared/config'; +import { TIER, getServiceConfig } from '@shared/config'; import { celsius2fahrenheit } from '@shared/utils/temperature-conversion'; -// const serviceConfig = getServiceConfig('landsat-level-2'); -// console.log('landsat-level-2 service config', serviceConfig); - -const serviceUrls = { - development: - 'https://utility.arcgis.com/usrsvcs/servers/f89d8adb0d5141a7a5820e8a6375480e/rest/services/LandsatC2L2/ImageServer', - production: - 'https://utility.arcgis.com/usrsvcs/servers/125204cf060644659af558f4f6719b0f/rest/services/LandsatC2L2/ImageServer', -}; +const serviceConfig = getServiceConfig('landsat-level-2'); +console.log('landsat-level-2 service config', serviceConfig); +// +// const serviceUrls = { +// development: +// 'https://utility.arcgis.com/usrsvcs/servers/f89d8adb0d5141a7a5820e8a6375480e/rest/services/LandsatC2L2/ImageServer', +// production: +// 'https://utility.arcgis.com/usrsvcs/servers/125204cf060644659af558f4f6719b0f/rest/services/LandsatC2L2/ImageServer', +// }; /** * Landsat 8 and 9 multispectral and multitemporal atmospherically corrected imagery with on-the-fly renderings and indices for visualization and analysis. @@ -51,13 +48,13 @@ const LANDSAT_LEVEL_2_ORIGINAL_SERVICE_URL = * Service URL to be used in PROD enviroment */ export const LANDSAT_LEVEL_2_SERVICE_URL_PROD = - serviceUrls.production || LANDSAT_LEVEL_2_ORIGINAL_SERVICE_URL; + serviceConfig.production || LANDSAT_LEVEL_2_ORIGINAL_SERVICE_URL; /** * Service URL to be used in DEV enviroment */ export const LANDSAT_LEVEL_2_SERVICE_URL_DEV = - serviceUrls.development || LANDSAT_LEVEL_2_ORIGINAL_SERVICE_URL; + serviceConfig.development || LANDSAT_LEVEL_2_ORIGINAL_SERVICE_URL; /** * A proxy imagery service which has embedded credential that points to the actual Landsat Level-2 imagery service diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index 31760ae6..8d183fbc 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -14,20 +14,17 @@ */ // import { TIER } from '@shared/constants'; -import { - TIER, - // getServiceConfig -} from '@shared/config'; +import { TIER, getServiceConfig } from '@shared/config'; -// const serviceConfig = getServiceConfig('sentinel-1'); -// console.log('sentinel-1 service config', serviceConfig); +const serviceConfig = getServiceConfig('sentinel-1'); +console.log('sentinel-1 service config', serviceConfig); -const serviceUrls = { - development: - 'https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer', - production: - 'https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer', -}; +// const serviceUrls = { +// development: +// 'https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer', +// production: +// 'https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer', +// }; /** * Sentinel-1 RTC 10-meter C-band synthetic aperture radar (SAR) imagery in single and dual V-polarization with on-the-fly functions for visualization and unit conversions for analysis. @@ -51,13 +48,13 @@ const SENTINEL_1_ORIGINAL_SERVICE_URL = * Service URL to be used in PROD enviroment */ export const SENTINEL_1_SERVICE_URL_PROD = - serviceUrls.production || SENTINEL_1_ORIGINAL_SERVICE_URL; + serviceConfig.production || SENTINEL_1_ORIGINAL_SERVICE_URL; /** * Service URL to be used in DEV enviroment */ export const SENTINEL_1_SERVICE_URL_DEV = - serviceUrls.development || SENTINEL_1_ORIGINAL_SERVICE_URL; + serviceConfig.development || SENTINEL_1_ORIGINAL_SERVICE_URL; /** * A proxy imagery service which has embedded credential that points to the actual Landsat Level-2 imagery service diff --git a/webpack.config.js b/webpack.config.js index 9631ac8a..c94943ee 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -214,7 +214,14 @@ module.exports = (env, options)=> { } }), new CssMinimizerPlugin() - ] + ], + /** + * Encountered the `Uncaught ReferenceError: x is not defined` error during the production build. + * One suggestion that we found is disabling the `optimization.innerGraph` option is the best way to prevent this issue. + * + * @see https://img.ly/docs/pesdk/web/faq/webpack_reference_error/ + */ + innerGraph: false, }, } From 1cf261e30b18b4fa26a83fc7ce95d32740c7f5b5 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 1 Apr 2024 14:38:50 -0700 Subject: [PATCH 023/151] fix(sentinel1explorer): remove 'Sentinel-1 RGB dB' raster function --- .../useSentinel1RasterFunctions.tsx | 2 -- src/sentinel-1-explorer/store/getPreloadedState.ts | 3 ++- src/shared/services/sentinel-1/config.ts | 8 +------- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx index 9e8e6215..fbcb05dd 100644 --- a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx @@ -25,7 +25,6 @@ import PlaceholderThumbnail from './thumbnails/placeholder.jpg'; const Sentinel1RendererThumbnailByName: Record = { - 'Sentinel-1 RGB dB': PlaceholderThumbnail, 'Sentinel-1 RGB dB DRA': PlaceholderThumbnail, 'Sentinel-1 RTC VH dB with DRA': PlaceholderThumbnail, 'Sentinel-1 RTC VV dB with DRA': PlaceholderThumbnail, @@ -33,7 +32,6 @@ const Sentinel1RendererThumbnailByName: Record = }; const Sentinel1RendererLegendByName: Record = { - 'Sentinel-1 RGB dB': null, 'Sentinel-1 RGB dB DRA': null, 'Sentinel-1 RTC VH dB with DRA': null, 'Sentinel-1 RTC VV dB with DRA': null, diff --git a/src/sentinel-1-explorer/store/getPreloadedState.ts b/src/sentinel-1-explorer/store/getPreloadedState.ts index b9ac0831..0184d0af 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState.ts @@ -109,7 +109,8 @@ const getPreloadedImageryScenesState = (): ImageryScenesState => { mode = 'dynamic'; } - const defaultRasterFunction: Sentinel1FunctionName = 'Sentinel-1 RGB dB'; + const defaultRasterFunction: Sentinel1FunctionName = + 'Sentinel-1 RGB dB DRA'; // Attempt to extract query parameters from the URL hash. // If not found, fallback to using the default values along with the raster function from a randomly selected interesting location, diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index 8d183fbc..dc75585e 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -87,7 +87,7 @@ export const FIELD_NAMES = { */ const SENTINEL1_RASTER_FUNCTIONS = [ 'Sentinel-1 RGB dB DRA', - 'Sentinel-1 RGB dB', + // 'Sentinel-1 RGB dB', 'Sentinel-1 RTC VV dB with DRA', 'Sentinel-1 RTC VH dB with DRA', ] as const; @@ -109,12 +109,6 @@ export const SENTINEL1_RASTER_FUNCTION_INFOS: { 'RGB color composite of VV,VH,VV/VH in dB scale with a dynamic stretch applied for visualization only', label: 'RGB dB DRA', }, - { - name: 'Sentinel-1 RGB dB', - description: - 'RGB color composite of VV,VH,VV/VH in dB scale for visualization and some computational analysis', - label: 'RGB dB', - }, { name: 'Sentinel-1 RTC VV dB with DRA', description: From 2b973191c3ab07e452f8d41dbfc42fcb25a9ce03 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 1 Apr 2024 14:51:44 -0700 Subject: [PATCH 024/151] feat(sentinel1explorer): add placeholder headerTooltip to RasterFunctionSelector --- .../RasterFunctionSelectorContainer.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx b/src/sentinel-1-explorer/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx index 3d193d2b..d3fb96f4 100644 --- a/src/sentinel-1-explorer/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx @@ -20,5 +20,12 @@ import { useSentinel1RasterFunctions } from './useSentinel1RasterFunctions'; export const RasterFunctionSelectorContainer = () => { const data = useSentinel1RasterFunctions(); - return ; + return ( + + ); }; From 6b1ed70f4cf156688c032b13d5e7c1ad38379e71 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 2 Apr 2024 09:20:32 -0700 Subject: [PATCH 025/151] chore(sentinel1explorer): update service URLs for sentinel-1 --- src/config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config.json b/src/config.json index ce8f125b..b10bbfde 100644 --- a/src/config.json +++ b/src/config.json @@ -45,8 +45,8 @@ "production": "https://utility.arcgis.com/usrsvcs/servers/125204cf060644659af558f4f6719b0f/rest/services/LandsatC2L2/ImageServer" }, "sentinel-1": { - "development": "https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer", - "production": "https://utility.arcgis.com/usrsvcs/servers/c5f3f9cddbcb45e6b2434dd8eeef8083/rest/services/Sentinel1RTC/ImageServer" + "development": "https://utility.arcgis.com/usrsvcs/servers/ae20c269388b4ea3acac60b9bf2a319f/rest/services/Sentinel1RTC/ImageServer", + "production": "https://utility.arcgis.com/usrsvcs/servers/6cd9e108e0b84784afb476269296fdd7/rest/services/Sentinel1RTC/ImageServer" } } } From 632df7a76c77c5ceeb7c09982f1cffd26247414b Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 9 Apr 2024 11:00:03 -0700 Subject: [PATCH 026/151] feat(sentinel1explorer): add Legend to Renderers Component --- .../legends/SARCompositeLegend.png | Bin 0 -> 1671 bytes .../useSentinel1RasterFunctions.tsx | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SARCompositeLegend.png diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SARCompositeLegend.png b/src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SARCompositeLegend.png new file mode 100644 index 0000000000000000000000000000000000000000..c9abf19440276bd919773f350b3f3d67f94a4716 GIT binary patch literal 1671 zcmV;226*|2P)9V7GB3UfH^_v10+RG5atBo1|cUHa)OW(3{yFP%?Soh zFl6lwIRNch=&4)XbT?)SV$$<}RW7xjq$jCu{g!0Qw&ik(5JHTBuUCN`D=foO$GoPJx_0->JXlzfzCmnsa(jQAK#1Omju!OM0s`wH@36wERWwLnX zuN|-a#kh6&iuPD%UFIgnN%m&jQruGhkfnPame*0$*=k!Tv$(e}>qqb>DER%iknXQv z`~8mjjNmsqnE7*SSg2no7UHWl`gB`*9)rK4gZrTNS>-c-`m#0zVp?}z^Y+EpK?q(q zVD=2NO^g==+XUMru!-4bjI&9w7Z{tEy@+;VK4XIxmPc+08o<}DU$fk4U~jl2q(PqB z+i4wkTeVEQ?z0b-snc@%K$^AdyWO|Y^55S^AL!Yj?h>Co>`ku(V|Aam($jU@=TMox z^i|rtqEEt2Ei&mk-1uOQajW7(X|QT&kzTSBj@P^LWZP)XuIpn>{Dk7QucY*cN76 z%{W^utLqyAOO_Tep2KZHYoH~k5Mne)(1Z}9L4qcP7!49M@&7@m{Dv99{gI#vA%Icn z+0Q0uW4Pr)h{xh56Eq=&=tqJkgcuDHG$F(j=6>5uohJoezkXd^Kdqxr)~aVbN1qzU ziFEXdM>+b`kyl5bsE$6Fk>z_TN1y!o6VF*?{$={bS|P+(u)DL20|~bf{nWGlpBwF= z2_Z&<1WgDr8YE~!h|wTH6GDuJ&aZ7GW{YwP8~{7OMKK9yKcZ1X%ogPwcm)*2B+S>_ z8X?BdY*8M!Ojp2JF$vd?T<<^db3Lu z&csfpIp@G(F$q^)Z5*1Ree&=F@Xu^f&S#5qua)P3xSrky{v^(#zIo#+u>s!u^`$rV z%=hQ+N}qcN@bI*!?mserLWoDeHQ<6cUN3=DA9rWOaeL`m-xJ66UH+y--FWF`_sE1Y zW0$y(|D7mmy}o+|t(b%(qDp=uiqtD=kxCrWTng^_18*eMVzpOH!X9x}w@p1=?M?T0 zgt@2Bi%B@m>-PNVCQkeMB7}GlUJ=FR9N72$vqR!|{o>;>jsN$Z9-16__@$VHyAq9`X`jPhLGz{H)P=1rQimRsDc-;zx5Rc2R)U%}aYV9s|TH!5R zbGlf0tPd?Y=fG#5VqUoIygz#{Y3X|5zTQ!J7Vtf&88L3@>#qpRQi5l1}XO zIdNKh-**Ke!~^2nKIcSDIPr11Prd&Qal`+}^IriU-99Di2wB=&;xcoWD1K=R=|3@! zBlatxU)vC(pLPA(#%xjUx4!XkMV!3+R!qXhK+#SlXhMj!2%3Lu;&0-T^@6wp+vXl8 z1KQ{;rx0RYToJdMu8AKsK=Zq;_eL``A%uS5Q3xTP8WJ=i#Awi;qzEBK!@s!GEl{E! Rf=2)V002ovPDHLkV1o58Dp>#k literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx index fbcb05dd..449038a2 100644 --- a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx @@ -22,6 +22,7 @@ import { import { RasterFunctionInfo } from '@typing/imagery-service'; import PlaceholderThumbnail from './thumbnails/placeholder.jpg'; +import CompositeLegend from './legends/SARCompositeLegend.png'; const Sentinel1RendererThumbnailByName: Record = { @@ -32,7 +33,7 @@ const Sentinel1RendererThumbnailByName: Record = }; const Sentinel1RendererLegendByName: Record = { - 'Sentinel-1 RGB dB DRA': null, + 'Sentinel-1 RGB dB DRA': CompositeLegend, 'Sentinel-1 RTC VH dB with DRA': null, 'Sentinel-1 RTC VV dB with DRA': null, }; From 3204b6289c81b21269355a7d8a8418235296c27d Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 11 Apr 2024 12:17:24 -0700 Subject: [PATCH 027/151] fix(sentinel1explorer): add authoringAppName prop to AnimationLayer --- src/sentinel-1-explorer/components/Map/Map.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/components/Map/Map.tsx b/src/sentinel-1-explorer/components/Map/Map.tsx index 2fc2034d..81dac1b3 100644 --- a/src/sentinel-1-explorer/components/Map/Map.tsx +++ b/src/sentinel-1-explorer/components/Map/Map.tsx @@ -49,7 +49,10 @@ export const Map = () => { - + From 07b130f0717967e54c79c577d3196f8da8823f12 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 11 Apr 2024 16:09:00 -0700 Subject: [PATCH 028/151] feat: add Map Popup --- .../components/Map/Map.tsx | 2 +- .../components/Map/Map.tsx | 3 +- .../components/Popup/PopupContainer.tsx | 116 ++++++++++++++++++ .../components/Popup/index.ts | 1 + 4 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 src/sentinel-1-explorer/components/Popup/PopupContainer.tsx create mode 100644 src/sentinel-1-explorer/components/Popup/index.ts diff --git a/src/landsat-surface-temp/components/Map/Map.tsx b/src/landsat-surface-temp/components/Map/Map.tsx index 3aec440c..517edd67 100644 --- a/src/landsat-surface-temp/components/Map/Map.tsx +++ b/src/landsat-surface-temp/components/Map/Map.tsx @@ -23,7 +23,7 @@ import { HillshadeLayer } from '@shared/components/HillshadeLayer/HillshadeLayer import { ScreenshotWidget } from '@shared/components/ScreenshotWidget/ScreenshotWidget'; import { ZoomToExtent } from '@landsat-explorer/components/ZoomToExtent'; -import { Popup } from '@landsat-explorer/components/PopUp/PopUp'; +import { Popup } from '@landsat-explorer/components/PopUp/'; import { MaskLayer } from '@landsat-explorer/components/MaskLayer'; import { LandsatLayer } from '../LandsatLayer'; import { SwipeWidget } from '../SwipeWidget'; diff --git a/src/sentinel-1-explorer/components/Map/Map.tsx b/src/sentinel-1-explorer/components/Map/Map.tsx index 81dac1b3..26d90d0b 100644 --- a/src/sentinel-1-explorer/components/Map/Map.tsx +++ b/src/sentinel-1-explorer/components/Map/Map.tsx @@ -33,6 +33,7 @@ import { CopyLinkWidget } from '@shared/components/CopyLinkWidget'; import { Sentinel1Layer } from '../Sentinel1Layer'; import { SwipeWidget4ImageryLayers } from '@shared/components/SwipeWidget/SwipeWidget4ImageryLayers'; import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; +import { Popup } from '../Popup'; export const Map = () => { return ( @@ -65,7 +66,7 @@ export const Map = () => { - {/* */} + diff --git a/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx b/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx new file mode 100644 index 00000000..56187697 --- /dev/null +++ b/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx @@ -0,0 +1,116 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// import './PopUp.css'; +import React, { FC, useCallback, useEffect, useRef, useState } from 'react'; +import MapView from '@arcgis/core/views/MapView'; +import Point from '@arcgis/core/geometry/Point'; +import { useSelector } from 'react-redux'; +import { + // selectActiveAnalysisTool, + selectAppMode, + selectQueryParams4MainScene, + selectQueryParams4SecondaryScene, +} from '@shared/store/ImageryScene/selectors'; +import { formatInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone'; +import { MapPopup, MapPopupData } from '@shared/components/MapPopup/MapPopup'; + +type Props = { + mapView?: MapView; +}; + +let controller: AbortController = null; + +export const PopupContainer: FC = ({ mapView }) => { + const mode = useSelector(selectAppMode); + + const queryParams4MainScene = useSelector(selectQueryParams4MainScene); + + const queryParams4SecondaryScene = useSelector( + selectQueryParams4SecondaryScene + ); + + const [data, setData] = useState(); + + const fetchPopupData = async ( + mapPoint: Point, + clickedOnLeftSideOfSwipeWidget: boolean + ) => { + try { + let queryParams = queryParams4MainScene; + + // in swipe mode, we need to use the query Params based on position of mouse click event + if (mode === 'swipe') { + queryParams = clickedOnLeftSideOfSwipeWidget + ? queryParams4MainScene + : queryParams4SecondaryScene; + } + + if (controller) { + controller.abort(); + } + + controller = new AbortController(); + + // const res = await identify({ + // point: mapPoint, + // objectId: + // mode !== 'dynamic' + // ? queryParams?.objectIdOfSelectedScene + // : null, + // abortController: controller, + // }); + + // console.log(res) + + // const features = res?.catalogItems?.features; + + // if (!features.length) { + // throw new Error('cannot find landsat scene'); + // } + + // const sceneData = getFormattedLandsatScenes(features)[0]; + + // const bandValues: number[] = + // getPixelValuesFromIdentifyTaskResponse(res); + + // if (!bandValues) { + // throw new Error('identify task does not return band values'); + // } + // // console.log(bandValues) + + // const title = `${sceneData.satellite} | ${formatInUTCTimeZone( + // sceneData.acquisitionDate, + // 'MMM dd, yyyy' + // )}`; + + setData({ + // Set the popup's title to the coordinates of the location + title: 'Sentinel-1', + location: mapPoint, // Set the location of the popup to the clicked location + content: 'Popup content will be put here', + }); + } catch (error: any) { + setData({ + title: undefined, + location: undefined, + content: undefined, + error, + }); + } + }; + + return ; +}; diff --git a/src/sentinel-1-explorer/components/Popup/index.ts b/src/sentinel-1-explorer/components/Popup/index.ts new file mode 100644 index 00000000..7049eb82 --- /dev/null +++ b/src/sentinel-1-explorer/components/Popup/index.ts @@ -0,0 +1 @@ +export { PopupContainer as Popup } from './PopupContainer'; From cbab647da0666ebbef945e255222c3792fa8cb23 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 15 Apr 2024 14:07:05 -0700 Subject: [PATCH 029/151] feat(sentinel1explorer): fetchPopupData use call identify to get data from selected scene --- .../components/Popup/PopupContainer.tsx | 40 ++++--- src/shared/components/MapPopup/MapPopup.tsx | 2 +- src/shared/services/helpers/identify.ts | 109 ++++++++++++++++++ .../services/sentinel-1/getSentinel1Scenes.ts | 24 +--- 4 files changed, 137 insertions(+), 38 deletions(-) create mode 100644 src/shared/services/helpers/identify.ts diff --git a/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx b/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx index 56187697..3cf21dd7 100644 --- a/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx +++ b/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx @@ -26,6 +26,9 @@ import { } from '@shared/store/ImageryScene/selectors'; import { formatInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone'; import { MapPopup, MapPopupData } from '@shared/components/MapPopup/MapPopup'; +import { identify } from '@shared/services/helpers/identify'; +import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; +import { getFormattedSentinel1Scenes } from '@shared/services/sentinel-1/getSentinel1Scenes'; type Props = { mapView?: MapView; @@ -64,24 +67,25 @@ export const PopupContainer: FC = ({ mapView }) => { controller = new AbortController(); - // const res = await identify({ - // point: mapPoint, - // objectId: - // mode !== 'dynamic' - // ? queryParams?.objectIdOfSelectedScene - // : null, - // abortController: controller, - // }); + const res = await identify({ + serviceURL: SENTINEL_1_SERVICE_URL, + point: mapPoint, + objectId: + mode !== 'dynamic' + ? queryParams?.objectIdOfSelectedScene + : null, + abortController: controller, + }); // console.log(res) - // const features = res?.catalogItems?.features; + const features = res?.catalogItems?.features; - // if (!features.length) { - // throw new Error('cannot find landsat scene'); - // } + if (!features.length) { + throw new Error('cannot find sentinel-1 scene'); + } - // const sceneData = getFormattedLandsatScenes(features)[0]; + const sceneData = getFormattedSentinel1Scenes(features)[0]; // const bandValues: number[] = // getPixelValuesFromIdentifyTaskResponse(res); @@ -91,14 +95,14 @@ export const PopupContainer: FC = ({ mapView }) => { // } // // console.log(bandValues) - // const title = `${sceneData.satellite} | ${formatInUTCTimeZone( - // sceneData.acquisitionDate, - // 'MMM dd, yyyy' - // )}`; + const title = `Sentinel-1 | ${formatInUTCTimeZone( + sceneData.acquisitionDate, + 'MMM dd, yyyy' + )}`; setData({ // Set the popup's title to the coordinates of the location - title: 'Sentinel-1', + title, location: mapPoint, // Set the location of the popup to the clicked location content: 'Popup content will be put here', }); diff --git a/src/shared/components/MapPopup/MapPopup.tsx b/src/shared/components/MapPopup/MapPopup.tsx index 10a17ffb..acd51771 100644 --- a/src/shared/components/MapPopup/MapPopup.tsx +++ b/src/shared/components/MapPopup/MapPopup.tsx @@ -183,7 +183,7 @@ export const MapPopup: FC = ({ data, mapView, onOpen }: Props) => { if (error) { console.error( - 'failed to open popup for landsat scene', + 'failed to open popup for imagery scene', error.message ); diff --git a/src/shared/services/helpers/identify.ts b/src/shared/services/helpers/identify.ts new file mode 100644 index 00000000..804534b0 --- /dev/null +++ b/src/shared/services/helpers/identify.ts @@ -0,0 +1,109 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Geometry, Point } from '@arcgis/core/geometry'; +import { IFeature } from '@esri/arcgis-rest-feature-service'; +import { getMosaicRuleByObjectId } from './getMosaicRuleByObjectId'; + +/** + * Parameters for the Identify Task + */ +type IdentifyTaskParams = { + /** + * URL of the imagery service + */ + serviceURL: string; + /** + * Point geometry to be used in the identify task + */ + point: Point; + /** + * Object ID of the imagery scene + */ + objectId?: number; + /** + * Abort controller to be used to cancel the identify task + */ + abortController: AbortController; +}; + +/** + * Run identify task on an imagery service to fetch pixel values for the input point location + * @param param0 - IdentifyTaskParams object containing parameters for the identify task + * @returns Promise of IdentifyTaskResponse containing the result of the identify task + */ +type IdentifyTaskResponse = { + catalogItems: { + features: IFeature[]; + geometryType: string; + objectIdFieldName: string; + }; + location: Geometry; + value: string; + name: string; + properties: { + Values: string[]; + }; +}; + +/** + * Run identify task on an imagery service to fetch pixel values for the input point location + * @param param0 + * @returns + */ +export const identify = async ({ + serviceURL, + point, + objectId, + abortController, +}: IdentifyTaskParams): Promise => { + const mosaicRule = objectId + ? getMosaicRuleByObjectId(objectId) + : { + ascending: true, + mosaicMethod: 'esriMosaicAttribute', + mosaicOperation: 'MT_FIRST', + sortField: 'best', + sortValue: '0', + }; + + const params = new URLSearchParams({ + f: 'json', + maxItemCount: '1', + returnGeometry: 'false', + returnCatalogItems: 'true', + geometryType: 'esriGeometryPoint', + geometry: JSON.stringify({ + spatialReference: { + wkid: 4326, + }, + x: point.longitude, + y: point.latitude, + }), + mosaicRule: JSON.stringify(mosaicRule), + }); + + const requestURL = `${serviceURL}/identify?${params.toString()}`; + + const res = await fetch(requestURL, { signal: abortController.signal }); + + const data = await res.json(); + + if (data.error) { + throw data.error; + } + + return data as IdentifyTaskResponse; +}; diff --git a/src/shared/services/sentinel-1/getSentinel1Scenes.ts b/src/shared/services/sentinel-1/getSentinel1Scenes.ts index 0d91a365..c12211bc 100644 --- a/src/shared/services/sentinel-1/getSentinel1Scenes.ts +++ b/src/shared/services/sentinel-1/getSentinel1Scenes.ts @@ -85,7 +85,7 @@ const sentinel1SceneByObjectId: Map = new Map(); * @param features - An array of IFeature objects from Sentinel-1 service. * @returns An array of Sentinel1Scene objects containing the acquisition date, formatted acquisition date, and other attributes. */ -export const getFormattedLandsatScenes = ( +export const getFormattedSentinel1Scenes = ( features: IFeature[] ): Sentinel1Scene[] => { return features.map((feature) => { @@ -176,20 +176,6 @@ export const getSentinel1Scenes = async ({ spatialRel: 'esriSpatialRelIntersects', // geometryType: 'esriGeometryEnvelope', geometryType: 'esriGeometryPoint', - // inSR: '102100', - // outFields: [ - // ACQUISITION_DATE, - // CLOUD_COVER, - // NAME, - // BEST, - // SENSORNAME, - // WRS_PATH, - // WRS_ROW, - // CATEGORY, - // LANDSAT_PRODUCT_ID, - // SUNAZIMUTH, - // SUNELEVATION, - // ].join(','), outFields: '*', orderByFields: ACQUISITION_DATE, resultOffset: '0', @@ -216,11 +202,11 @@ export const getSentinel1Scenes = async ({ throw data.error; } - const sentinel1Scenes: Sentinel1Scene[] = getFormattedLandsatScenes( + const sentinel1Scenes: Sentinel1Scene[] = getFormattedSentinel1Scenes( data?.features || [] ); - // save the sentinel-1 scenes to `landsatSceneByObjectId` map + // save the sentinel-1 scenes to `sentinel1SceneByObjectId` map for (const sentinel1Scene of sentinel1Scenes) { sentinel1SceneByObjectId.set(sentinel1Scene.objectId, sentinel1Scene); } @@ -237,7 +223,7 @@ export const getSentinel1Scenes = async ({ export const getSentinel1SceneByObjectId = async ( objectId: number ): Promise => { - // Check if the landsat scene already exists in the cache + // Check if the Sentinel-1 scene already exists in the cache if (sentinel1SceneByObjectId.has(objectId)) { return sentinel1SceneByObjectId.get(objectId); } @@ -251,7 +237,7 @@ export const getSentinel1SceneByObjectId = async ( return null; } - const sentinel1Scene: Sentinel1Scene = getFormattedLandsatScenes([ + const sentinel1Scene: Sentinel1Scene = getFormattedSentinel1Scenes([ feature, ])[0]; From b2baa7ed8bc0954e8719367c645520a80817e597 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 19 Apr 2024 15:40:05 -0700 Subject: [PATCH 030/151] feat(sentinel1): update Raster Functions for Sentinel-1 --- .../useSentinel1RasterFunctions.tsx | 6 ++++++ src/shared/services/sentinel-1/config.ts | 21 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx index 449038a2..38e8dc21 100644 --- a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx @@ -29,6 +29,9 @@ const Sentinel1RendererThumbnailByName: Record = 'Sentinel-1 RGB dB DRA': PlaceholderThumbnail, 'Sentinel-1 RTC VH dB with DRA': PlaceholderThumbnail, 'Sentinel-1 RTC VV dB with DRA': PlaceholderThumbnail, + 'Sentinel-1 DpRVIc Raw with Control': PlaceholderThumbnail, + 'Sentinel-1 SWI Raw': PlaceholderThumbnail, + 'Sentinel-1 Water Anomaly Index Raw': PlaceholderThumbnail, // 'NDMI Colorized': LandsatNDMIThumbnail, }; @@ -36,6 +39,9 @@ const Sentinel1RendererLegendByName: Record = { 'Sentinel-1 RGB dB DRA': CompositeLegend, 'Sentinel-1 RTC VH dB with DRA': null, 'Sentinel-1 RTC VV dB with DRA': null, + 'Sentinel-1 DpRVIc Raw with Control': null, + 'Sentinel-1 SWI Raw': null, + 'Sentinel-1 Water Anomaly Index Raw': null, }; export const getSentinel1RasterFunctionInfo = (): RasterFunctionInfo[] => { diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index dc75585e..26ae9523 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -90,6 +90,9 @@ const SENTINEL1_RASTER_FUNCTIONS = [ // 'Sentinel-1 RGB dB', 'Sentinel-1 RTC VV dB with DRA', 'Sentinel-1 RTC VH dB with DRA', + 'Sentinel-1 SWI Raw', + 'Sentinel-1 DpRVIc Raw with Control', + 'Sentinel-1 Water Anomaly Index Raw', ] as const; export type Sentinel1FunctionName = (typeof SENTINEL1_RASTER_FUNCTIONS)[number]; @@ -121,4 +124,22 @@ export const SENTINEL1_RASTER_FUNCTION_INFOS: { 'VH data in dB scale with a dynamic stretch applied for visualization only', label: 'VH dB', }, + { + name: 'Sentinel-1 SWI Raw', + description: + 'Sentinel-1 Water Index for extracting water bodies and monitoring droughts computed as (0.1747 * dB_vv) + (0.0082 * dB_vh * dB_vv) + (0.0023 * dB_vv ^ 2) - (0.0015 * dB_vh ^ 2) + 0.1904.', + label: 'SWI ', + }, + { + name: 'Sentinel-1 DpRVIc Raw with Control', + description: + 'Dual-pol Radar Vegetation Index for GRD SAR data computed as ((VH/VV) * ((VH/VV) + 3)) / ((VH/VV) + 1) ^ 2.', + label: 'DpRVIc ', + }, + { + name: 'Sentinel-1 Water Anomaly Index Raw', + description: + 'Water Anomaly Index that is used for oil detection but can also be used to detect other pullutants and natural phenomena such as industrial pollutants, sewage, red ocean tides, seaweed blobs, and more computed as Ln (0.01 / (0.01 + VV * 2)).', + label: 'Water Anomaly', + }, ]; From 35d08c8338ccb7b2c823ed94c136cb1c165ad285 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 25 Apr 2024 15:26:28 -0700 Subject: [PATCH 031/151] chore: use latest version of calcite-components --- public/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/index.html b/public/index.html index edc05b18..f279dbac 100644 --- a/public/index.html +++ b/public/index.html @@ -11,8 +11,8 @@ rel="stylesheet" href="https://js.arcgis.com/4.28/esri/themes/dark/main.css" /> --> - - + + From f6a7e2909695577e54bdaa1c09679f827a4b73f4 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 30 Apr 2024 13:04:52 -0700 Subject: [PATCH 032/151] feat: add 'Temporal Composite' to AnalyzeTool ref #8 - feat: add TemporalCompositeTool to redux store - feat: add indicator image to TemporalCompositeLayerSelector - add Temporal Composite Layer - no need to show ImageryLayerByOID when using 'Temporal Composite' tool - add TemporalCompositeSingleBandLayer to preview scene for selected color band - update getRasterFunction4TemporalCompositeLayer to return correct compositeBands raster function - refactor the input params of TemporalCompositeLayer - remove TemporalCompositeSingleBandLayerContainer as it is merged with TemporalCompositeLayer - calendar should be disabled when user is viewing the combined result of temporal composite layer - raster function selector should be disabled when Temporal Composite tool is on - add Temporal Composite Tool component - add swapImageryScenesInTemporalCompositeTool thunk function - fix: hide Renderer Component when Composite Tool is on - refactor: when query Sentinel-1 scenes, we should allow user to only query scenes that have dual polarization - feat: add Legend component for Temporal Composite Tool - feat: add Controls to Temporal Composite Tool - update TemproalCompositeToolLegend to add LegendLabel sub component - feat: add getColorGroup helper function for Temporal Composite Tool Legend - fix: Temporal Composite Layer Selector should show formatted acquisition date - feat: show Tooltip for Temporal Composite Legend - fix: minor style tweaks for the Legend of Temporal Composite Tool - fix: minor string change to Temproal Composite Tool controls - refactor: add saveListOfQueryParamsToHashParams and getListOfQueryParamsFromHashParams - refactor: initiateImageryScenes4TemporalCompositeTool should allow user to inherit query parameters from the existing list --- .../AnalyzeToolSelector.tsx | 30 ++ .../components/Layout/Layout.tsx | 5 +- .../store/getPreloadedState.ts | 4 +- .../AnalyzeToolSelector.tsx | 15 + .../components/Layout/Layout.tsx | 38 ++- .../components/Map/Map.tsx | 3 +- .../TemporalCompositeLayer.tsx | 248 ++++++++++++++++ .../TemporalCompositeLayerContainer.tsx | 146 ++++++++++ .../TemporalCompositeLayer/index.ts | 1 + .../TemporalCompositeLayerSelector.tsx | 260 +++++++++++++++++ ...emporalCompositeLayerSelectorContainer.tsx | 76 +++++ .../images/Composite_Blue.png | Bin 0 -> 505 bytes .../images/Composite_Green.png | Bin 0 -> 547 bytes .../images/Composite_RGB.png | Bin 0 -> 360 bytes .../images/Composite_Red.png | Bin 0 -> 496 bytes .../TemporalCompositeLayerSelector/index.ts | 1 + .../TemporalCompositeTool/Controls.tsx | 61 ++++ .../TemporalCompositeTool/Legend.tsx | 266 ++++++++++++++++++ .../TemporalCompositeTool.tsx | 111 ++++++++ .../TemporalCompositeTool/helpers.ts | 44 +++ .../img/RGBComposite.png | Bin 0 -> 15307 bytes .../useQueryAvailableSentinel1Scenes.tsx | 40 ++- .../store/getPreloadedState.ts | 31 +- .../AnalysisToolSelector.tsx | 32 +-- .../AnalysisToolSelectorContainer.tsx | 25 +- .../Calendar/useShouldDisableCalendar.tsx | 11 + .../ImageryLayer/ImageryLayerByObjectID.tsx | 12 +- .../components/ImageryLayer/useImageLayer.tsx | 6 +- .../RasterFunctionSelectorContainer.tsx | 13 +- .../hooks/useSaveAppState2HashParams.tsx | 17 +- .../services/sentinel-1/getSentinel1Scenes.ts | 9 + src/shared/store/ImageryScene/reducer.ts | 7 +- src/shared/store/ImageryScene/selectors.ts | 19 +- src/shared/store/ImageryScene/thunks.ts | 27 +- src/shared/store/Sentinel1/thunks.ts | 4 +- .../store/TemporalCompositeTool/reducer.ts | 65 +++++ .../store/TemporalCompositeTool/selectors.ts | 28 ++ .../store/TemporalCompositeTool/thunks.ts | 115 ++++++++ src/shared/store/rootReducer.ts | 6 +- src/shared/styles/index.css | 4 + src/shared/utils/url-hash-params/index.ts | 3 +- .../queryParams4ImageryScene.ts | 16 +- 42 files changed, 1710 insertions(+), 89 deletions(-) create mode 100644 src/landsat-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx create mode 100644 src/sentinel-1-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeLayer/TemporalCompositeLayer.tsx create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeLayer/TemporalCompositeLayerContainer.tsx create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeLayer/index.ts create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/TemporalCompositeLayerSelector.tsx create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/TemporalCompositeLayerSelectorContainer.tsx create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/images/Composite_Blue.png create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/images/Composite_Green.png create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/images/Composite_RGB.png create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/images/Composite_Red.png create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/index.ts create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeTool/Controls.tsx create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeTool/Legend.tsx create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeTool/helpers.ts create mode 100644 src/sentinel-1-explorer/components/TemporalCompositeTool/img/RGBComposite.png create mode 100644 src/shared/store/TemporalCompositeTool/reducer.ts create mode 100644 src/shared/store/TemporalCompositeTool/selectors.ts create mode 100644 src/shared/store/TemporalCompositeTool/thunks.ts diff --git a/src/landsat-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx b/src/landsat-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx new file mode 100644 index 00000000..e6339e0e --- /dev/null +++ b/src/landsat-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx @@ -0,0 +1,30 @@ +import React from 'react'; +import { AnalysisToolSelector } from '@shared/components/AnalysisToolSelector'; +import { AnalyzeToolSelectorData } from '@shared/components/AnalysisToolSelector/AnalysisToolSelectorContainer'; + +const data: AnalyzeToolSelectorData[] = [ + { + tool: 'mask', + title: 'Index', + subtitle: 'mask', + }, + { + tool: 'trend', + title: 'Temporal', + subtitle: 'profile', + }, + { + tool: 'spectral', + title: 'Spectral', + subtitle: 'profile', + }, + { + tool: 'change', + title: 'Change', + subtitle: 'detection', + }, +]; + +export const AnalyzeToolSelector4Landsat = () => { + return ; +}; diff --git a/src/landsat-explorer/components/Layout/Layout.tsx b/src/landsat-explorer/components/Layout/Layout.tsx index 5a8432ac..0d3dd434 100644 --- a/src/landsat-explorer/components/Layout/Layout.tsx +++ b/src/landsat-explorer/components/Layout/Layout.tsx @@ -28,7 +28,7 @@ import { selectAppMode, } from '@shared/store/ImageryScene/selectors'; import { AnimationControl } from '@shared/components/AnimationControl'; -import { AnalysisToolSelector } from '@shared/components/AnalysisToolSelector'; + import { TrendTool } from '../TrendTool'; import { MaskTool } from '../MaskTool'; import { SwipeLayerSelector } from '@shared/components/SwipeLayerSelector'; @@ -43,6 +43,7 @@ import { useQueryAvailableLandsatScenes } from '@landsat-explorer/hooks/useQuery import { LandsatRasterFunctionSelector } from '../RasterFunctionSelector'; import { LandsatInterestingPlaces } from '../InterestingPlaces'; import { LandsatMissionFilter } from '../LandsatMissionFilter'; +import { AnalyzeToolSelector4Landsat } from '../AnalyzeToolSelector/AnalyzeToolSelector'; const Layout = () => { const mode = useSelector(selectAppMode); @@ -88,7 +89,7 @@ const Layout = () => { - + )} diff --git a/src/landsat-explorer/store/getPreloadedState.ts b/src/landsat-explorer/store/getPreloadedState.ts index 6baf6824..feda9777 100644 --- a/src/landsat-explorer/store/getPreloadedState.ts +++ b/src/landsat-explorer/store/getPreloadedState.ts @@ -23,7 +23,7 @@ import { getMapCenterFromHashParams, getMaskToolDataFromHashParams, getQueryParams4MainSceneFromHashParams, - getQueryParams4ScenesInAnimationFromHashParams, + getListOfQueryParamsFromHashParams, getQueryParams4SecondarySceneFromHashParams, getSpectralProfileToolDataFromHashParams, getTemporalProfileToolDataFromHashParams, @@ -128,7 +128,7 @@ const getPreloadedImageryScenesState = (): ImageryScenesState => { }; const queryParams4ScenesInAnimation = - getQueryParams4ScenesInAnimationFromHashParams() || []; + getListOfQueryParamsFromHashParams() || []; const queryParamsById: { [key: string]: QueryParams4ImageryScene; diff --git a/src/sentinel-1-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx b/src/sentinel-1-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx new file mode 100644 index 00000000..ad4f0d6f --- /dev/null +++ b/src/sentinel-1-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx @@ -0,0 +1,15 @@ +import React from 'react'; +import { AnalysisToolSelector } from '@shared/components/AnalysisToolSelector'; +import { AnalyzeToolSelectorData } from '@shared/components/AnalysisToolSelector/AnalysisToolSelectorContainer'; + +const data: AnalyzeToolSelectorData[] = [ + { + tool: 'temporal composite', + title: 'Temporal', + subtitle: 'composite', + }, +]; + +export const AnalyzeToolSelector4Sentinel1 = () => { + return ; +}; diff --git a/src/sentinel-1-explorer/components/Layout/Layout.tsx b/src/sentinel-1-explorer/components/Layout/Layout.tsx index 89e9116d..a6d9bdf6 100644 --- a/src/sentinel-1-explorer/components/Layout/Layout.tsx +++ b/src/sentinel-1-explorer/components/Layout/Layout.tsx @@ -38,6 +38,10 @@ import { SceneInfo } from '../SceneInfo'; import { Sentinel1FunctionSelector } from '../RasterFunctionSelector'; import { OrbitDirectionFilter } from '../OrbitDirectionFilter'; import { useShouldShowSecondaryControls } from '@shared/hooks/useShouldShowSecondaryControls'; +import { AnalyzeToolSelector4Sentinel1 } from '../AnalyzeToolSelector/AnalyzeToolSelector'; +import { TemporalCompositeLayerSelector } from '../TemporalCompositeLayerSelector'; +import { TemporalCompositeTool } from '../TemporalCompositeTool/TemporalCompositeTool'; +import classNames from 'classnames'; export const Layout = () => { const mode = useSelector(selectAppMode); @@ -82,15 +86,16 @@ export const Layout = () => { - {/* */} + )} - {/* {mode === 'analysis' && analysisTool === 'change' && ( - - - - )} */} + {mode === 'analysis' && + analysisTool === 'temporal composite' && ( + + + + )}
@@ -107,14 +112,23 @@ export const Layout = () => {
- {/* {mode === 'analysis' && ( -
- + {mode === 'analysis' && ( +
+ {/* - - + */} +
- )} */} + )} diff --git a/src/sentinel-1-explorer/components/Map/Map.tsx b/src/sentinel-1-explorer/components/Map/Map.tsx index 26d90d0b..ccd91cf3 100644 --- a/src/sentinel-1-explorer/components/Map/Map.tsx +++ b/src/sentinel-1-explorer/components/Map/Map.tsx @@ -34,6 +34,7 @@ import { Sentinel1Layer } from '../Sentinel1Layer'; import { SwipeWidget4ImageryLayers } from '@shared/components/SwipeWidget/SwipeWidget4ImageryLayers'; import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; import { Popup } from '../Popup'; +import { TemporalCompositeLayer } from '../TemporalCompositeLayer'; export const Map = () => { return ( @@ -45,7 +46,7 @@ export const Map = () => { > {/* */} - {/* */} + diff --git a/src/sentinel-1-explorer/components/TemporalCompositeLayer/TemporalCompositeLayer.tsx b/src/sentinel-1-explorer/components/TemporalCompositeLayer/TemporalCompositeLayer.tsx new file mode 100644 index 00000000..6dfd183e --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalCompositeLayer/TemporalCompositeLayer.tsx @@ -0,0 +1,248 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { FC, useEffect, useRef, useState } from 'react'; +import ImageryLayer from '@arcgis/core/layers/ImageryLayer'; +import MapView from '@arcgis/core/views/MapView'; +import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; +import GroupLayer from '@arcgis/core/layers/GroupLayer'; +import { QueryParams4ImageryScene } from '@shared/store/ImageryScene/reducer'; +import { + SENTINEL_1_SERVICE_URL, + Sentinel1FunctionName, +} from '@shared/services/sentinel-1/config'; +import { + colormap, + compositeBands, +} from '@arcgis/core/layers/support/rasterFunctionUtils.js'; +import Color from '@arcgis/core/Color'; +import AlgorithmicColorRamp from '@arcgis/core/rest/support/AlgorithmicColorRamp'; + +export type ColorBand = 'red' | 'green' | 'blue'; + +type Props = { + mapView?: MapView; + groupLayer?: GroupLayer; + /** + * name of the selected raster function + */ + rasterFunctionName: Sentinel1FunctionName; + /** + * object id of the imagery scene to be used as the red band + */ + objectIdOfRedBand: number; + /** + * object id of the imagery scene to be used as the green band + */ + objectIdOfGreenBand: number; + /** + * object id of the imagery scene to be used as the blue band + */ + objectIdOfBlueBand: number; + /** + * Represents the color band selected by the user. If a color band is selected (not null), + * this indicates that the imagery scene associated with this color band should be displayed, + * utilizing the colormap raster function associated with this band to render the layer. + */ + selectedColorband: ColorBand; + /** + * visibility of the Temporal Composite layer + */ + visible?: boolean; +}; + +const getColormapRasterFunction = ( + colorBand: ColorBand, + /** + * object id of the imagery scene to be used as the red band + */ + objectIdOfRedBand: number, + /** + * object id of the imagery scene to be used as the green band + */ + objectIdOfGreenBand: number, + /** + * object id of the imagery scene to be used as the blue band + */ + objectIdOfBlueBand: number, + /** + * name of the raster function to use to get the pixels before applying the colormap + */ + functionName: Sentinel1FunctionName +): RasterFunction => { + let objectId = null; + + if (colorBand === 'red') { + objectId = objectIdOfRedBand; + } else if (colorBand === 'green') { + objectId = objectIdOfGreenBand; + } else if (colorBand === 'blue') { + objectId = objectIdOfBlueBand; + } + + if (!objectId || !colorBand) { + return null; + } + + const inputRasterFunction = new RasterFunction({ + functionName, + functionArguments: { + raster: '$' + objectId, + }, + }); + + const maxRed = colorBand === 'red' ? 255 : 0; + const maxGreen = colorBand === 'green' ? 255 : 0; + const maxBlue = colorBand === 'blue' ? 255 : 0; + + return colormap({ + // colorRampName: "red", + colorRamp: new AlgorithmicColorRamp({ + algorithm: 'hsv', + fromColor: new Color([0, 0, 0]), + toColor: new Color([maxRed, maxGreen, maxBlue]), + }), + raster: inputRasterFunction, + }); +}; + +/** + * Create a composite bands raster function that combines three sentinel-1 scenes + * into a single raster image. + * @see https://developers.arcgis.com/documentation/common-data-types/raster-function-objects.htm#ESRI_SECTION1_190E1B4F19CA447B9B319BB56C193283 + * @see https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-rasterFunctionUtils.html#compositeBands + */ +export const getCompositeBandsRasterFunction = ( + /** + * object id of the imagery scene to be used as the red band + */ + objectIdOfRedBand: number, + /** + * object id of the imagery scene to be used as the green band + */ + objectIdOfGreenBand: number, + /** + * object id of the imagery scene to be used as the blue band + */ + objectIdOfBlueBand: number, + /** + * name of the raster function to use to get the pixels before composition + */ + functionName: Sentinel1FunctionName +): RasterFunction => { + if (!objectIdOfRedBand || !objectIdOfGreenBand || !objectIdOfBlueBand) { + return null; + } + + return compositeBands({ + outputPixelType: 'u8', + rasters: [ + objectIdOfRedBand, + objectIdOfGreenBand, + objectIdOfBlueBand, + ].map((oid) => { + return new RasterFunction({ + functionName, + functionArguments: { + raster: '$' + oid, + }, + }); + }), + }); +}; + +export const TemporalCompositeLayer: FC = ({ + mapView, + groupLayer, + rasterFunctionName, + objectIdOfRedBand, + objectIdOfBlueBand, + objectIdOfGreenBand, + selectedColorband, + visible, +}) => { + const layerRef = useRef(); + + const init = () => { + const rasterFunction = selectedColorband + ? getColormapRasterFunction( + selectedColorband, + objectIdOfRedBand, + objectIdOfGreenBand, + objectIdOfBlueBand, + rasterFunctionName + ) + : getCompositeBandsRasterFunction( + objectIdOfRedBand, + objectIdOfGreenBand, + objectIdOfBlueBand, + rasterFunctionName + ); + + layerRef.current = new ImageryLayer({ + // URL to the imagery service + url: SENTINEL_1_SERVICE_URL, + mosaicRule: null, + // format: 'lerc', + rasterFunction, + visible, + }); + + groupLayer.add(layerRef.current); + }; + + useEffect(() => { + if (groupLayer && !layerRef.current) { + init(); + } + }, [groupLayer]); + + useEffect(() => { + if (!layerRef.current) { + return; + } + + layerRef.current.rasterFunction = selectedColorband + ? getColormapRasterFunction( + selectedColorband, + objectIdOfRedBand, + objectIdOfGreenBand, + objectIdOfBlueBand, + rasterFunctionName + ) + : getCompositeBandsRasterFunction( + objectIdOfRedBand, + objectIdOfGreenBand, + objectIdOfBlueBand, + rasterFunctionName + ); + }, [ + objectIdOfRedBand, + objectIdOfGreenBand, + objectIdOfBlueBand, + selectedColorband, + rasterFunctionName, + ]); + + useEffect(() => { + if (!layerRef.current) { + return; + } + + layerRef.current.visible = visible; + }, [visible]); + + return null; +}; diff --git a/src/sentinel-1-explorer/components/TemporalCompositeLayer/TemporalCompositeLayerContainer.tsx b/src/sentinel-1-explorer/components/TemporalCompositeLayer/TemporalCompositeLayerContainer.tsx new file mode 100644 index 00000000..db6110f1 --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalCompositeLayer/TemporalCompositeLayerContainer.tsx @@ -0,0 +1,146 @@ +import MapView from '@arcgis/core/views/MapView'; +import React, { FC, useMemo } from 'react'; +import { useSelector } from 'react-redux'; +import { + selectActiveAnalysisTool, + selectAppMode, + selectListOfQueryParams, + // selectQueryParams4MainScene, + // selectQueryParams4SecondaryScene, + selectSelectedItemFromListOfQueryParams, +} from '@shared/store/ImageryScene/selectors'; +import GroupLayer from '@arcgis/core/layers/GroupLayer'; +import { ColorBand, TemporalCompositeLayer } from './TemporalCompositeLayer'; +import { + selectIsTemporalCompositeLayerOn, + selectRasterFunction4TemporalCompositeTool, +} from '@shared/store/TemporalCompositeTool/selectors'; +import { Sentinel1FunctionName } from '@shared/services/sentinel-1/config'; + +type Props = { + mapView?: MapView; + groupLayer?: GroupLayer; +}; + +export const TemporalCompositeLayerContainer: FC = ({ + mapView, + groupLayer, +}) => { + const mode = useSelector(selectAppMode); + + const isTemporalCompositeLayerOn = useSelector( + selectIsTemporalCompositeLayerOn + ); + + const listOfQueryParams = useSelector(selectListOfQueryParams); + + const selectedItemFromListOfQueryParams = useSelector( + selectSelectedItemFromListOfQueryParams + ); + + const anailysisTool = useSelector(selectActiveAnalysisTool); + + const rasterFunctionName: Sentinel1FunctionName = useSelector( + selectRasterFunction4TemporalCompositeTool + ) as Sentinel1FunctionName; + + /** + * Determines the visibility of the temporal composite layer + * @returns {boolean} True if the layer should be visible, otherwise false. + */ + const isVisible = useMemo(() => { + if (mode !== 'analysis') { + return false; + } + + if (anailysisTool !== 'temporal composite') { + return false; + } + + // When displaying the final composite result that combines all three scenes, + // we need to ensure that each scene for the color bands has an assigned object ID. + if ( + isTemporalCompositeLayerOn && + listOfQueryParams[0]?.objectIdOfSelectedScene && + listOfQueryParams[1]?.objectIdOfSelectedScene && + listOfQueryParams[2]?.objectIdOfSelectedScene + ) { + return true; + } + + // When displaying an individual band on the map, + // ensure that the selected imagery scene has an object ID assigned. + if ( + isTemporalCompositeLayerOn === false && + selectedItemFromListOfQueryParams?.objectIdOfSelectedScene + ) { + return true; + } + + // return false to hide the layer + return false; + }, [ + mode, + anailysisTool, + isTemporalCompositeLayerOn, + listOfQueryParams, + selectedItemFromListOfQueryParams, + ]); + + /** + * Determines the selected color band to use for rendering the imagery scene + * when displaying an individual color band on the map. + */ + const selectedColorband: ColorBand = useMemo(() => { + // Set the selected color band to null when displaying the final composite result. + if (isTemporalCompositeLayerOn) { + return null; + } + + // If query parameters are not available or no item is selected, return null. + if (!listOfQueryParams?.length || !selectedItemFromListOfQueryParams) { + return null; + } + + // Determine the color band based on the selected item's unique ID. + if ( + listOfQueryParams[0]?.uniqueId === + selectedItemFromListOfQueryParams.uniqueId + ) { + return 'red'; + } + + if ( + listOfQueryParams[1]?.uniqueId === + selectedItemFromListOfQueryParams.uniqueId + ) { + return 'green'; + } + + if ( + listOfQueryParams[2]?.uniqueId === + selectedItemFromListOfQueryParams.uniqueId + ) { + return 'blue'; + } + + return null; + }, [ + selectedItemFromListOfQueryParams, + listOfQueryParams, + isTemporalCompositeLayerOn, + ]); + + return ( + + ); +}; diff --git a/src/sentinel-1-explorer/components/TemporalCompositeLayer/index.ts b/src/sentinel-1-explorer/components/TemporalCompositeLayer/index.ts new file mode 100644 index 00000000..3cb3bbc4 --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalCompositeLayer/index.ts @@ -0,0 +1 @@ +export { TemporalCompositeLayerContainer as TemporalCompositeLayer } from './TemporalCompositeLayerContainer'; diff --git a/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/TemporalCompositeLayerSelector.tsx b/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/TemporalCompositeLayerSelector.tsx new file mode 100644 index 00000000..21ee442a --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/TemporalCompositeLayerSelector.tsx @@ -0,0 +1,260 @@ +import React, { FC } from 'react'; + +import classNames from 'classnames'; + +// import { SpectralIndex } from '@typing/imagery-service'; +import { QueryParams4ImageryScene } from '@shared/store/ImageryScene/reducer'; +import { Button } from '@shared/components/Button'; + +import CompositeIndicatorRed from './images/Composite_Red.png'; +import CompositeIndicatorGreen from './images/Composite_Green.png'; +import CompositeIndicatorBlue from './images/Composite_Blue.png'; +import CompositeIndicatorRGB from './images/Composite_RGB.png'; +import { formatFormattedDateStrInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone'; + +type Props = { + /** + * Id of the query params for the selected imagery scene + */ + idOfSelectedQueryParams: string; + /** + * query params of the imagery scene to be used as the red band + */ + queryParams4ImagerySceneOfRedBand: QueryParams4ImageryScene; + /** + * query params of the imagery scene to be used as the green band + */ + queryParams4ImagerySceneOfGreenBand: QueryParams4ImageryScene; + /** + * query params of the imagery scene to be used as the blue band + */ + queryParams4ImagerySceneOfBlueBand: QueryParams4ImageryScene; + /** + * if true, show the temporal composite layer + */ + isCompositeLayerOn: boolean; + /** + * if true, the "View Composite" button should be disabled. + * This happens if one of the RGB band layer does not have a acquisition date selected + */ + viewCompositeLayerDisabled: boolean; + /** + * Emits when user selects an imagery scene for a particular band + * @param uniqueId Id of the query params for the imagery scene that user selects + * @returns void + */ + activeSceneOnChange: (uniqueId: string) => void; + /** + * Emits when use clicks on the "View Composite" button + * @returns void + */ + viewCompositeLayerButtonOnClick: () => void; + /** + * Emits when use clicks on the swap button + * @returns void + */ + swapButtonOnClick: (indexOfSceneA: number, indexOfSceneB: number) => void; +}; + +type ButtonTextLabelProps = { + nameOfScene: string; + queryParams: QueryParams4ImageryScene; +}; + +const ButtonTextLabel: FC = ({ + nameOfScene, + queryParams, +}) => { + if (!queryParams || !queryParams.acquisitionDate) { + return ( +
+ Choose {nameOfScene} + {/*
+ {nameOfScene} */} +
+ ); + } + + return ( +
+ + {formatFormattedDateStrInUTCTimeZone( + queryParams.acquisitionDate + )} + +
+ ); +}; + +export const TemporalCompositeLayerSelector: FC = ({ + idOfSelectedQueryParams, + queryParams4ImagerySceneOfRedBand, + queryParams4ImagerySceneOfGreenBand, + queryParams4ImagerySceneOfBlueBand, + isCompositeLayerOn, + viewCompositeLayerDisabled, + activeSceneOnChange, + viewCompositeLayerButtonOnClick, + swapButtonOnClick, +}) => { + if ( + !queryParams4ImagerySceneOfRedBand || + !queryParams4ImagerySceneOfGreenBand || + !queryParams4ImagerySceneOfBlueBand + ) { + return null; + } + + const shouldHighlightScene4Red = + queryParams4ImagerySceneOfRedBand?.uniqueId === + idOfSelectedQueryParams && isCompositeLayerOn === false; + + const shouldHighlightScene4Green = + queryParams4ImagerySceneOfGreenBand?.uniqueId === + idOfSelectedQueryParams && isCompositeLayerOn === false; + + const shouldHighlightScene4Blue = + queryParams4ImagerySceneOfBlueBand?.uniqueId === + idOfSelectedQueryParams && isCompositeLayerOn === false; + + return ( +
+
+ + + +
+ +
+ +
+ +
+ + + +
+ +
+ +
+ +
+ + + +
+ +
+ + + +
+
+ ); +}; diff --git a/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/TemporalCompositeLayerSelectorContainer.tsx b/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/TemporalCompositeLayerSelectorContainer.tsx new file mode 100644 index 00000000..1ca9a21d --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/TemporalCompositeLayerSelectorContainer.tsx @@ -0,0 +1,76 @@ +import React, { useEffect, useMemo } from 'react'; +import { TemporalCompositeLayerSelector } from './TemporalCompositeLayerSelector'; +import { useDispatch } from 'react-redux'; +import { + initiateImageryScenes4TemporalCompositeTool, + swapImageryScenesInTemporalCompositeTool, +} from '@shared/store/TemporalCompositeTool/thunks'; +import { useSelector } from 'react-redux'; +import { + selectIdOfSelectedItemInListOfQueryParams, + selectListOfQueryParams, +} from '@shared/store/ImageryScene/selectors'; +import { selectedItemIdOfQueryParamsListChanged } from '@shared/store/ImageryScene/reducer'; +import { isTemporalCompositeLayerOnUpdated } from '@shared/store/TemporalCompositeTool/reducer'; +import { selectIsTemporalCompositeLayerOn } from '@shared/store/TemporalCompositeTool/selectors'; + +export const TemporalCompositeLayerSelectorContainer = () => { + const dispatch = useDispatch(); + + const listOfQueryParams = useSelector(selectListOfQueryParams); + + const idOfSelectedQueryParams = useSelector( + selectIdOfSelectedItemInListOfQueryParams + ); + + const isCompositeLayerOn = useSelector(selectIsTemporalCompositeLayerOn); + + const isViewCompositeLayerDisabled = useMemo(() => { + if (!listOfQueryParams || !listOfQueryParams.length) { + return true; + } + + const queryParamsWithoutAcquisitionDate = listOfQueryParams.filter( + (d) => !d.acquisitionDate + ); + + if (queryParamsWithoutAcquisitionDate?.length) { + return true; + } + + return false; + }, [listOfQueryParams]); + + useEffect(() => { + dispatch(initiateImageryScenes4TemporalCompositeTool(true)); + }, []); + + return ( + { + dispatch(selectedItemIdOfQueryParamsListChanged(uniqueId)); + dispatch(isTemporalCompositeLayerOnUpdated(false)); + }} + viewCompositeLayerButtonOnClick={() => { + dispatch(isTemporalCompositeLayerOnUpdated(true)); + }} + swapButtonOnClick={( + indexOfSceneA: number, + indexOfSceneB: number + ) => { + dispatch( + swapImageryScenesInTemporalCompositeTool( + indexOfSceneA, + indexOfSceneB + ) + ); + }} + /> + ); +}; diff --git a/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/images/Composite_Blue.png b/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/images/Composite_Blue.png new file mode 100644 index 0000000000000000000000000000000000000000..e0c6368f78c026ad84173228a2a4643178d69645 GIT binary patch literal 505 zcmV-)tss)hN(3#eEo`jx zABd^FMzA$OvgBmB+p(C_L|N~W+zV5@3_QGFg_}(>9n&7tHWY!dMsJ;BHRp@tbu=BT zR`+df)})^ZMqm5t<~;En#o9t7eY735hqg8k>^!^r=chhs+}<9kCncdoF&BZLZD_~f z{@s_JJbtShthjuk$*rce5P>L7NDbI|aR+?<^v&qY9_ts;3H^oSia-xMfBMd&2X9=v ze#LNji8MvK5Xn#xDdH?!QG^l}U(p`w?ME_5E=i4cwrU>Rf{bSmV3 v(5aCw=uF7J(3z3r&{9Z_Tj^Cw$+GVktJAMc!Fs~C00000NkvXXu0mjf6Zq6# literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/images/Composite_Green.png b/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/images/Composite_Green.png new file mode 100644 index 0000000000000000000000000000000000000000..73b0c9ca4f0c36b8c925ed2600bc24069ac8aa13 GIT binary patch literal 547 zcmV+;0^I$HP)qHg+*eJl*v$oM1+uZvWR~#pp7>m-E1Q90!WyPS%PjR zl{DsS5eXV3l8S`J-)hS-JU6YBdrO_BtWRVee#vnZY@-_ZQfi1BQDi<%Ft@ z2-Eg}Q_0k6miK$Csq3~pGx;s_C&Uf>uC?aB`xE&}!u+Jwzz_fc002ovPDHLkV1nbp6c)I$ztaD0e0sv04f4%?! literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/images/Composite_Red.png b/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/images/Composite_Red.png new file mode 100644 index 0000000000000000000000000000000000000000..d4ac31da7fd521c5767ba6d24f3585cb6a97abc8 GIT binary patch literal 496 zcmVKpV0v|t}V z9JE_?=%%C!{io$Poo`xzT6LlB11xr*D)b5`tKi^$+*x&ND?$LG7Opu8HA=r m0H}e~;8H~ROYt9wi0} literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/index.ts b/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/index.ts new file mode 100644 index 00000000..6e01be77 --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/index.ts @@ -0,0 +1 @@ +export { TemporalCompositeLayerSelectorContainer as TemporalCompositeLayerSelector } from './TemporalCompositeLayerSelectorContainer'; diff --git a/src/sentinel-1-explorer/components/TemporalCompositeTool/Controls.tsx b/src/sentinel-1-explorer/components/TemporalCompositeTool/Controls.tsx new file mode 100644 index 00000000..e2bb2761 --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalCompositeTool/Controls.tsx @@ -0,0 +1,61 @@ +import { Button } from '@shared/components/Button'; +import { Dropdown, DropdownData } from '@shared/components/Dropdown'; +import React, { FC } from 'react'; + +type Props = { + isTemporalCompositeLayerOn: boolean; + /** + * data to populate the Dropdown Menu for list of raster functions + */ + rasterFunctionsDropdownData: DropdownData[]; + /** + * Emits when user selects a new raster function in dropdown list + * @param val + * @returns + */ + rasterFunctionOnChange: (val: string) => void; + /** + * Emits when user clicks on the "Clear Selected Scenes" button + * @returns void + */ + clearSelectedScenesButtonOnClick: () => void; +}; + +export const TemproalCompositeToolControls: FC = ({ + isTemporalCompositeLayerOn, + rasterFunctionsDropdownData, + rasterFunctionOnChange, + clearSelectedScenesButtonOnClick, +}) => { + return ( +
+
+

+ {isTemporalCompositeLayerOn === false + ? 'Select scenes to apply to the Red, Green, and Blue color bands to create a composite RGB image, a hue-based change detection.' + : 'The composite image blends the three Red, Green, and Blue input scenes into a composite RGB image. The resulting colors communicate the varied reflectance across dates.'} +

+
+ +
+
+ Render composite as: +
+ + +
+ +
+
+ Clear all scene selections +
+
+
+ ); +}; diff --git a/src/sentinel-1-explorer/components/TemporalCompositeTool/Legend.tsx b/src/sentinel-1-explorer/components/TemporalCompositeTool/Legend.tsx new file mode 100644 index 00000000..bb83b0b1 --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalCompositeTool/Legend.tsx @@ -0,0 +1,266 @@ +import React, { FC, useEffect, useMemo, useRef, useState } from 'react'; +import RGBComposite from './img/RGBComposite.png'; +import { formatFormattedDateStrInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone'; +import { ColorGroup, getColorGroup } from './helpers'; +import classNames from 'classnames'; + +type Props = { + isTemporalCompositeLayerOn: boolean; + acquisitionDateOfImageryScene4RedBand: string; + acquisitionDateOfImageryScene4GreenBand: string; + acquisitionDateOfImageryScene4BlueBand: string; +}; + +type LegendLabelProps = { + /** + * name of color band: 'red' | 'green' | 'blue' + */ + colorbandName: 'red' | 'green' | 'blue'; + /** + * acqusition date of the selected imagery scene in format of 'YYYY-MM-DD' + */ + formattedAcquisitionDate: string; +}; + +const SIZE_IMAGE = 120; + +export const LegendLabel: FC = ({ + colorbandName, + formattedAcquisitionDate, +}) => { + return ( + <> + {colorbandName} +
+ + {formattedAcquisitionDate + ? formatFormattedDateStrInUTCTimeZone( + formattedAcquisitionDate + ) + : 'unselected'} + + + ); +}; + +type TooltipData = { + posX: number; + posY: number; + colorGroup: ColorGroup; +}; + +export const TemproalCompositeToolLegend: FC = ({ + isTemporalCompositeLayerOn, + acquisitionDateOfImageryScene4RedBand, + acquisitionDateOfImageryScene4GreenBand, + acquisitionDateOfImageryScene4BlueBand, +}) => { + const canvasRef = useRef(); + const contextRef = useRef(); + + const isDisabled = useMemo(() => { + // legend should only be enabled when composite layer is on + if (isTemporalCompositeLayerOn === false) { + return true; + } + + // legend should be disabled if imagery scene for one of color band does not have acquisition date selected + if ( + !acquisitionDateOfImageryScene4RedBand || + !acquisitionDateOfImageryScene4GreenBand || + !acquisitionDateOfImageryScene4BlueBand + ) { + return true; + } + + return false; + }, [ + isTemporalCompositeLayerOn, + acquisitionDateOfImageryScene4RedBand, + acquisitionDateOfImageryScene4GreenBand, + acquisitionDateOfImageryScene4BlueBand, + ]); + + const [tooltipData, setTooltipData] = useState(); + + const tooltipContent: string[] = useMemo(() => { + if (!tooltipData) { + return null; + } + + if ( + !acquisitionDateOfImageryScene4RedBand || + !acquisitionDateOfImageryScene4GreenBand || + !acquisitionDateOfImageryScene4BlueBand + ) { + return null; + } + + const formattedDateRedBand = formatFormattedDateStrInUTCTimeZone( + acquisitionDateOfImageryScene4RedBand + ); + const formattedDateGreenBand = formatFormattedDateStrInUTCTimeZone( + acquisitionDateOfImageryScene4GreenBand + ); + const formattedDateBlueBand = formatFormattedDateStrInUTCTimeZone( + acquisitionDateOfImageryScene4BlueBand + ); + + if (tooltipData.colorGroup === 'Red') { + return [ + `Rough in ${formattedDateRedBand};`, + `Smooth in ${formattedDateGreenBand} and ${formattedDateBlueBand}`, + ]; + } + + if (tooltipData.colorGroup === 'Green') { + return [ + `Rough in ${formattedDateGreenBand};`, + `Smooth in ${formattedDateRedBand} and ${formattedDateBlueBand}`, + ]; + } + + if (tooltipData.colorGroup === 'Blue') { + return [ + `Rough in ${formattedDateBlueBand};`, + `Smooth in ${formattedDateRedBand} and ${formattedDateGreenBand}`, + ]; + } + + if (tooltipData.colorGroup === 'Yellow') { + return [ + `Rough in ${formattedDateRedBand} and ${formattedDateGreenBand};`, + `Smooth in ${formattedDateBlueBand}`, + ]; + } + + if (tooltipData.colorGroup === 'Magenta') { + return [ + `Rough in ${formattedDateRedBand} and ${formattedDateBlueBand};`, + `Smooth in ${formattedDateGreenBand}`, + ]; + } + + if (tooltipData.colorGroup === 'Cyan') { + return [ + `Rough in ${formattedDateGreenBand} and ${formattedDateBlueBand};`, + `Smooth in ${formattedDateRedBand}`, + ]; + } + + return null; + }, [ + tooltipData, + acquisitionDateOfImageryScene4RedBand, + acquisitionDateOfImageryScene4GreenBand, + acquisitionDateOfImageryScene4BlueBand, + ]); + + const pickColor = (event: React.MouseEvent) => { + if ( + !acquisitionDateOfImageryScene4RedBand || + !acquisitionDateOfImageryScene4GreenBand || + !acquisitionDateOfImageryScene4BlueBand + ) { + return; + } + + const bounding = canvasRef.current.getBoundingClientRect(); + const x = event.clientX - bounding.left; + const y = event.clientY - bounding.top; + + const pixel = contextRef.current.getImageData(x, y, 1, 1); + const data = pixel.data; + + // const rgbColor = `rgb(${data[0]} ${data[1]} ${data[2]}})`; + + const colorGroup = getColorGroup(data[0], data[1], data[2]); + + const tooltipData: TooltipData = colorGroup + ? { + posX: event.clientX, + posY: event.clientY, + colorGroup, + } + : null; + + setTooltipData(tooltipData); + }; + + useEffect(() => { + const img = new Image(); + img.src = RGBComposite; + + const canvas = canvasRef.current; + contextRef.current = canvas.getContext('2d'); + + img.addEventListener('load', () => { + contextRef.current.drawImage(img, 0, 0, SIZE_IMAGE, SIZE_IMAGE); + }); + }, []); + + return ( +
+
+ + +
+ +
+ +
+ +
+ +
+ +
+
+ +

+ Generally, lighter colors are rougher surfaces and darker colors + are smoother +

+ + {tooltipData && tooltipContent && ( +
+ {tooltipContent[0]} +
+ {tooltipContent[1]} +
+ )} +
+ ); +}; diff --git a/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx b/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx new file mode 100644 index 00000000..0bff68a1 --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx @@ -0,0 +1,111 @@ +import React, { useEffect, useMemo } from 'react'; +import { AnalysisToolHeader } from '@shared/components/AnalysisToolHeader'; +import { useDispatch } from 'react-redux'; +import { useSelector } from 'react-redux'; +import { + selectActiveAnalysisTool, + selectListOfQueryParams, + selectQueryParams4MainScene, + selectQueryParams4SceneInSelectedMode, +} from '@shared/store/ImageryScene/selectors'; +import classNames from 'classnames'; +import { + selectIsTemporalCompositeLayerOn, + selectRasterFunction4TemporalCompositeTool, +} from '@shared/store/TemporalCompositeTool/selectors'; +import { Sentinel1FunctionName } from '@shared/services/sentinel-1/config'; +import { rasterFunction4TemporalCompositeToolChanged } from '@shared/store/TemporalCompositeTool/reducer'; +import { TemproalCompositeToolLegend } from './Legend'; +import { TemproalCompositeToolControls } from './Controls'; +import { DropdownData } from '@shared/components/Dropdown'; +import { initialChangeCompareToolState } from '@shared/store/ChangeCompareTool/reducer'; +import { initiateImageryScenes4TemporalCompositeTool } from '@shared/store/TemporalCompositeTool/thunks'; + +export const TemporalCompositeTool = () => { + const dispatch = useDispatch(); + + const tool = useSelector(selectActiveAnalysisTool); + + const isTemporalCompositeLayerOn = useSelector( + selectIsTemporalCompositeLayerOn + ); + + const rasterFunction = useSelector( + selectRasterFunction4TemporalCompositeTool + ); + + const listOfQueryParams = useSelector(selectListOfQueryParams); + + const rasterFunctionDropdownOptions: DropdownData[] = useMemo(() => { + const data = [ + { + value: 'Sentinel-1 RTC VV dB with DRA' as Sentinel1FunctionName, + label: 'V V dB', + }, + { + value: 'Sentinel-1 RTC VH dB with DRA' as Sentinel1FunctionName, + label: 'V H dB', + }, + ]; + + return data.map((d) => { + return { + ...d, + selected: d.value === rasterFunction, + }; + }); + }, [rasterFunction]); + + if (tool !== 'temporal composite') { + return null; + } + + return ( +
+
+

Composite

+
+ +
+
+ { + dispatch( + rasterFunction4TemporalCompositeToolChanged(val) + ); + }} + clearSelectedScenesButtonOnClick={() => { + // call this thunk function to reset the list of imagery scenes to be used for temporal composite tool + dispatch( + initiateImageryScenes4TemporalCompositeTool( + false + ) + ); + }} + /> +
+ +
+ +
+
+
+ ); +}; diff --git a/src/sentinel-1-explorer/components/TemporalCompositeTool/helpers.ts b/src/sentinel-1-explorer/components/TemporalCompositeTool/helpers.ts new file mode 100644 index 00000000..4e63c0ab --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalCompositeTool/helpers.ts @@ -0,0 +1,44 @@ +const THRESHOLD = (255 / 3) * 2; + +export type ColorGroup = + | 'Red' + | 'Green' + | 'Blue' + | 'Yellow' + | 'Magenta' + | 'Cyan'; + +export const getColorGroup = (r: number, g: number, b: number): ColorGroup => { + // Check if the color is Red + if (r > THRESHOLD && r > g && r > b && g < THRESHOLD && b < THRESHOLD) { + return 'Red'; + } + + // Check if the color is Green + if (g > THRESHOLD && g > r && g > b && r < THRESHOLD && b < THRESHOLD) { + return 'Green'; + } + + // Check if the color is Blue + if (b > THRESHOLD && b > r && b > g && r < THRESHOLD && g < THRESHOLD) { + return 'Blue'; + } + + // Check if the color is Yellow + if (r > THRESHOLD && g > THRESHOLD && r > b && g > b && b < THRESHOLD) { + return 'Yellow'; + } + + // Check if the color is Magenta + if (r > THRESHOLD && b > THRESHOLD && r > g && b > g && g < THRESHOLD) { + return 'Magenta'; + } + + // Check if the color is Cyan + if (g > THRESHOLD && g > THRESHOLD && g > r && b > r && r < THRESHOLD) { + return 'Cyan'; + } + + // If none of the above conditions are met, return 'null' + return null; +}; diff --git a/src/sentinel-1-explorer/components/TemporalCompositeTool/img/RGBComposite.png b/src/sentinel-1-explorer/components/TemporalCompositeTool/img/RGBComposite.png new file mode 100644 index 0000000000000000000000000000000000000000..85c0ab2f910eef420261137924ef3e6a3bebd251 GIT binary patch literal 15307 zcmX9l18^oy)3MDbwr$(CZQITz7u&XN+sVbYZC$MY-tXV4*{R*?YHVY=XL}+PyefE@jnRM{~%Nx%w0W4}M2!W(Tg;YJWuX?=dO~>4J-gq)RDvs@X3UIdJ zkz()&DZ`PVZi+<{k|~v=TGkRPMo?N_;~Hp3f3vY5&!RH9M_bUYuV@x%UCl>J6wEUx z)5eIxlO_0qK(P}gB4HwdNg~M<;l%8G)U<4Ma;2@F30S$dOpB?ra7z_1-EYlSMVf`XWyPm{djh(S?;83dw%scGe7L)QfELX(eG2reuh z?=DabxSfM{J65Re>(WY;7;^rZMFLM*5u5x6FKCjbZruS$Hxz4DOrhP@QH4py9p_%n z{UUOIpM1Z)*SKWce;A!}v6!al2<|IXElCVLsx$z8^}^mHmB7?KSBITenuuOz_GGG5 z2I_d9yT!-VGqI>#o$2ZL#`mc?$!WWssYl%cSt5oKe(GAc;5Ah>za04s(?9F3JAB>x zf~kF>qGbhfWZb+&h>?Oj9-LO#=HXe+&D8r;Y4GszxIN9|vs;VjF7k$59{jrjrUgA4 zbv*yQui!0!`-O!iW_|GmAsQSee{OUZEhpOCF)=cY%t==<6t&;DF(EYSvDj5B%ZFZ9tN16ITx39fF7+jxPcB1Yk8V*qjn< z7=W6nP9_P&?D_z;;QKqU%7U`V?Q<#6z-S&b)~<6K)@6ZWSS8D9KSz@g(pin_S9Ptd z)86QO%4qe^)uunuEQN{3V?mo1bs9@RiV-JD4fe2hK?RsYe{-reSi}{lvk9soI7uO~ zdkSB_7M#Nld}v~LPBE;l4pF{g}CUe_L)in zX2_)g`K&oFYzy>eqUo7C)`zn8AMgV{S`McV%E{n)OcJSPZUjkP4_nV6K?G4S8i*(rx~zo`rO#1p`nnNq#w^W3H* zlSsYIZ=*4_0WB(0L!Jj12r(KX5m!3N2ukUkH`o>oSqrk;KvWXSSHyXW2kgs}2q`W8 zNv7*RJ2zoa!2EI>pATvHTcMIp%3dz5w3-MyGC1{i>ov4loW7~n^U>q**|Prh?V#uV zh!gAleMJkKwgOql`V*h&!kg(A6tj$iPErYCOyVjHG8GtDnSX5*QFy&?wZ#r#{>=@h z%GzmLG>0C|t+9K3D?AOb^yJdHYf_A*2V?8oQ!kh9WfW*1^C%d7wJaAg%>i>L>CN35?AC?G}E>?jo7nq*{SI0GX>rehk1N5wla@N^{Vw^%Qz`{ zi_I8tqd6V!z4QsaZGZoBcd^<_uN&~hRyy%OE8t4G_*f;pj*1m6jjty#rTa}Di}0<0 zyjbFHQ8C2r2AFU7$oP#-8hRlaRMZj)Vq8>(E(2>LFGV;-!G6s$12xs&{JdvkYv`z+*Z! z0Gb-(B)&e;7*k;6w;dk-&r(M&f2T}bU!8yZxu@(-W?aZePob!0OgaG3K~YQbljBEX zg9V2hj@N?#6O|E$E25550vD{DwfC(2wrsnnp)QBGXrg`!wukZx-kYNsGk7J3eC>%{DNw|U4`wR8}tQ+b04k+A#I#lJIoSrqY6zavG9q8f;7ot zLWW@r28>CI=CLKH(LriKf193j6X5sSM%{rY5I4wF}h<8UPiX;VXd=T zO*7!}PGg>gN>jZr-E7(rRx&38_Caqlb6jp#Zas5mZg)av7zoX3N9rR9xSX&qgW-tt zi4#dS^d-D_;TrPstlI{M^NfiC`0$#BC0DgPB*u%!eEmr%C|(H7fvfKC&}I6K8%&`P zWXQRs^OZ#Cx$>ifAz@SpR1T?(|DuzDDXOH`Loo05Da_90FO*6ug!kRSL%d?0btzoB zyHw?j%0vn7XD35Gv%8$e!aICZ2nhJ!et#LQ^6aA1H(~f3R&fY0f;DFn9!3D_U*kzo z=+Ke`9AJ+(E(REyCpv6CriEebVz7dsScGeGtfdKqA3G~N8zT(y3$xHMv)nZ$zP{iJR~ z2V&#H2TO~Jpx_Xe&GKX5`CxXl$tb?3LyXx-q*NYs5*7?$%1QV!&7}Ua zz?!Ou5;Wx6)#m5-rHe?;(Et##(7;N=5)muiYOh_BrcW6 zkcuo9oc$CzuC~$YeL1PSS-_2#AS%qEI z*adsoU~JnxNEQyLLcSuDVuG=xZW@VY4XzX`1EU0vk$VA`1ko_&L9<47{tbr=Yn}1x zrcVB1Y>ENQJW;XiRQXMvj?dSXW&|)iFGOLptl|QOHMX>bBGRrSy&n%=a>)qR<&fuH6w*UxM6v@aR3g zUSAHw*m~(X{TPhAdQJG^*wUXc*cu$mT>W*w#^vfCny8VteyJ?`(q6P7?c*<6Dl$r8rL>rj#a4fqx6fBC7_blwczoL7^ z(mY>9#bPGZC{BO1tauDw_VC{edq&gJ`HOGvPo*!@NZ$4l;o$M4(dR%C zFsx@s#9-2DmK8=jP-D%lMxxUYfi(}`sNqPc4$s#Xodbgcw@i4pT|9cWIj%?=EzBgV zZ#w^}rb?&j#WOhpyl3VEr(pP!fgL~W(4m=AAjaJmAP1|-AO&0I!^Db*2&Q@)n6V%n z8dD10Q3`=0>HS4pZMBGj=7i&Il5+V_){ zkVr?_1R2YNu!V#X$VW6=z^0YtilyZu>#j8>7Hz=gZn(ee1nZ$vk$4|R;Fqv78V5vE z=@LY1+MBYod56(^bO2#Y5|tA5rNd!su}1Y!p@BnXMev-ulZ~hmi${KqIZY^)MOCsV zKLE=)3adEJY!zcX=jqNSk@afj9-D7u;cU$om^6N^T|!S)i)) z*C$^e;7#>4k%nQ_anTp-MgT0ELZz~e(7c>Po1F?mcCnatLlN0C@~eF>qRk0FJq|^c zaUt#_Jm30!Lkl0v4@+Uxt%pM~$;s9kEiPuG5GDp21gjkBu3Wr77$WFQwe&B{kcmw- z0e`2U-c!jgU)I5`O6Mt6KPFm#U+$(~<$;H-l29a`>~l3M+N~bobIMM`eW*6*w&z)m zT$h={!oIV2?EF`mK$4jrBo0oHxiA~TLdOyH`|2mD|6fjjXIv^+(oM0Zd$u3~B6o(3 z>cH93R2(7llWOaEB!%$s5W_;eD4`Otq+WUBG3rR`1W7gDJV9gz2(ppQ8Wyoe*8xpc zzMd-}ye`l(U>cVMB&$?iDOw`e#vESWZ)$4ry7OIea=%#iv5eRIQrHy;F-I6V*OA|V zk}`h{=PLF|F<1YDLKktIn#3ph#UfZ}48hd?ZR;8ZVo@Dnwn}hftu?ULv&t--sx^n% zP>$Ohmp8ZFkK3{Ri>{iRLJ&qLh6{i@FpB5fZKO!YVXIiexGpP8E+- z$^!e$Khl#3Drq_M>gFc0X#bW1S%37Q6WppNCuWv7>ngUaaiB$;_tqhjWf8#vwr!jV zxjfWqtX^Hd-zg}fju%PXCss>MZpwy0zD14C9&yg!4E%W!*Wgc`EkUmHuRJY#u>CnJ zB5hlk>LO!N6G7vD-*g5qx=x)>cI!#HZz8oi?s=Y1-hSzs#p_PRh6r=;<`<3vw6r*c z?goG&LRfp^tfD#bCd<9M`Aty|UO86QS zk<>;gy&^Sf=hEmAqX|r>HLe(5Tza-6C=PS)Nm$8A2$zUT#rT<^>h{DARBk12w2)Gr^6DFTu=c3Bg_1HFi?I?H4YEF(F?WLd%Ift>I1ijnySGYz5)q z0Z%JxELIbU$YMSPErOGUGZ$zmg1x$kuysYy~O7AZx!py;jNNi z&#`M;@!Yf5clp4|^OaTAiNfYxjM{Cr0+8e3%J!6`&mZrOI8VRQxp-sHGNZeA~9FPbehEku??gRKN1`x*_O$=Kc=8a zstRbht;<_J>AB5JntZux(q&PZyEWS|g*Z2j4mPqgh3XLUBM&0-4AzVag?ma2Y+-7H zJ9pZ|u?7>4_Ap{4Zzn44M$_{HBt0SXgyG~8vw|{4Qn?oxg>T5C5er8)NzwLGH&myU z_%a7k4v1csNTL%JvPi4p4u}sn9cQkp7A;bF{t-Tv?p)`eiR%kZ!51oYB$9NVcE2b@ z7m>srFF-4uZNzcjK-9cPO^&vSoNTZ0z{AmYT7ma$);jSm$C|H4A)mrz`Q321^~ZpK zC-vCI*4>fU%)1$V&-Ja$u&LK~Xx92Es>Ns)(fx0ueVk374>`%Lsc8sVvQ{~h`2yfx zv$<8$2#OyxX@t`P?v)mVvZh44J~20nTE2OQHsT}5luwv#G)|rBr5mBm`8T@=i#Z16 zgay3>b5vF~>2IS?S++%7DYf``+GW6y;zVO@CD}X{ojGk*X^`pIV zZLFqsHt4z@+nO;nF7F+eW%8R=!FJY58=?o@aAWd0Z@vD|!1L$O1eS*xwj`z^ghTs7 zwz)x^2`o#@F*|}{-86x*gEk23iaectM3MkHj(nlen#5>9GF22F1+4F#bA4tK+D)*S zr^R0vh(*F;R|k;Si-#uw!A~V@2gi<5F51$CnMk!NfI}LYL@}dLa7V>PJ`K-Sd5ifxkm}fJzn| z(>!s{Bv_KzC97AnqK$F&qnC3VmM1Lz2z}CspNQ;P%d%_883tKYH70B#i7}MtVDTtM z7o)p{asN4^SjB8WjPt3@`Rxxsd+axK!MY^ar08CJIeCe7q4vUv2}cT247K_uNy$V> ztKldwJARrW61uLVCXdLmM70Km%tgy_OWFxXie5Cn{sPXE!x|Fv;HX!LK#D zbLfG^HkasS73prlP@!MZ%Ti`De4m;KONklz^t@(XcZ2iPsydi=cej@}ywWv+#IZEC>J3q)Q_Zk zXMHERkR}Jh=1s4Fp~p_n>^)Id7^b`zE*w2!F?95o8i%0cCGMBFi02=KKV^-36oFa# zx_y1wT_#)6KX0=YpE7o|*0k2nOD&sPv=v@a-oYnik_pvJQRmR?iKwU%(S%By%dLj^ zKdaI~;bPHyt20V@?Rku~@$wvam2!2+!_NTT2PX46e}X2BPpBak59BSRCpF)`_z?$F z6eVV=Hh8TA(0OO#h(yssZD%p#p@!f;l40vNLgw6%oIIXDx9GA7mYUr7a1c^*?wRuD zG|EsyDdHI@wK2&E@P5)B_g|TJ^Nt?_!G!=J-uqt(kPN6=(LIrj9`YgX*DuC=g zo<#`^K$mAvw|U6HH z$am~^4b9WG0LLnuaxVNDmh`n)qU+|^^o8&zxY$p4marYMpMDROoDY;<{gRCAAv7h2 z+)Bj_WRy$GUp!Mf9NE*x1!!`=|JWes5b+ zkqf9x4g(if12N|FdApSY2A&KAOwP_}reg*aIc-#0&BjTtx)E_@vg(Zh4>r)O;OjuT zBJfi@Qkl(GFdgDnS+E*G+h6IpLGia+aa0!2%U}~e;SoQmNy+o3e#XuhDJ1FL3j7{O zo9n^vf_Dvh(8g~FDuGAkrt@9REjxelwD;wi0Eb_hNd)| zC_Gx5z2v%#7I4IEw-YN}PT`c_OkmpWhXg7($?|0)fi950@?d$YXKPkN|pL z@x^P&oWT+~qzST#Vjc;-h@5JKWuYVTa6c*YYB{cX`1HU@1rKptDnk$xhOI9ma+GTq z+J}SaHkd%AB8m_EM5pZ9R8hntXJwK>$(j>ZX&-9VZ9j(`u}cE0)t!?biVmq!+w@42 zs%R`&6|K8sGA!B~E=)A}Y57+8M$Gt>>?bc1KvsAEcdHg*egqv)A%?l!%;b#9S;IC|8O+{r9~1h3w(B74OA2|A6js#D zD_jGHD)RIMLr3<>(*1bv;z#_$Mrwt)flVO=hULnv2wS*5`=#PkPo(iPiZIJ4n}~2a zk}z#`lvIHTbN34CbUN?t;w7HoGK&=i+-OM6h3{6*K*^eec=1{=JViI=?nI@zL@+N+oDqn4COb>cpR_db$qzp4nRy_(j z_`ceKZLkjlE@i3l(FXBfQ469(qOzgvT8(Sv{vq1RxU5;Jn+@?N6ZWk&*h?br6J%?6 zX^I3sxE}WCi+R7up)n<;Wv<8{$%3kCFfCsO$eC%=t5GcuLx5I>zqMHJL*Wu=my>lI zg#V&lvR3^1Uw*7ahsn-J2I$=6OBKP9D&kYDrm8aP!IKtS}|v_ zuzyLKeg;&aclrF9iCI-55SV@4k*Mc6LFuQ8gGagS-be)ppGYjGB-i6Kx88Ol2l=ijrf?U6dNH+gMrO*OsLXN>Pb!y=DUdNVi`6Pu0X~YI1fShX(xuDGde> z9d|iX`D{MB)U6y4DYzuMX{(IaHhTWxQE!o?1%%tVX;r?^f^Pws?d6UetmCz;7cyyy zs`bL9XlY1rg*;rj6ds{4Z)>r_q&f;4nO55G>k!b+?9AOR#TXC-u z|0`Ld)nY8OR`FS4an0WGVtAI`jrqucpK_s!bH3f7%?pJpDDAG%HY%AbY z(R$+xRxCIyJb?qsqyYg~=cj1k9rp1e1%?Q;Pc#mC@7uF1E$r}$1agfvnmH%K8;e~i z{Lp|eAXN-1T2-sQ24jYd0exnf(^0>*5d5UD**$gg-)<6aKUS=$OO(ndlJJHUgDZ|pK5bA`UpiZDzEf$`E^M;Z)JP^)Nst}(5S=jyMM-+G_D}I5> zdb?$b?VAM{u9bG-?{qY8z`YGzRgUmwHq34QN(zicZ|VwLpEo%va~QqJu{d76A&mwl zN0Y2q#2yT#=<|lmap*$p^1#4bg1hxgX0)112xAV`Hmh#_4l4ZK-On&|wnV4cNdwnRjXSUd^oo`H$ zJ*){kAx2S^s`*fhI$%xLuGTpkM^Myx`%N@w7)|oq0zF_~OP+rdVf@GBtE1$X!z=U^ z@eK1A?|vhFPFru}13YB@l-AcR!eJUkdJbQ6Yy(p@cVw13(_`-?ba3YTw;4HNb`-U; zQM^6=>`ZF21$Ak2oXRe`(qee=47Rw%sug*xZ>fZbJ$?h$Pz$`R54NoH2vS70+%89l zh3J{-ym8vtVY@tJjTYI7Y_?%R1lCyV>Z^c6vwEV9`|zk=-Zv)D`LuT%zor$x)2#zA zJdv$l?tX~dyv~@r;5Xe*30dgfqKivZ&ZYjyO`Z?l0L=8)Wc2p~lu^&<)KdaC^Hu%L zxIs@;N8gWi<`_gYVjf{M_7coO#FqiLl$GMjNt^A(`u)IP3?7r|WX6aV)=N}hRH&K7 zZ6;W#;1*zZIS--{!;rOGGcxuSlJ>pxBk;q~U`=7|>}oOt{sxQUm;ogOcw)|&1q&eZ z3GI~j{5F<`>@!7cjm`T6NDt5$SLwQCQ=P9_1-4wa{(8CiV;LD2pSr!YzMt)=;IJ8G zU;p8=g2%IdqZ6Ns^XB%1QTFZYIeu)oc| zZO2ZVoU8l}UJ@WRWUqe;*)h>N-$C-wIb zK@K?Azmv&F*kV;l6KNyvISlW}`PlbHDskY7->No$5XxJeF!gfpG7SG_1KA7QUHA_K-3@V*6a6Z(sWZMss?+|xXphol>r3&g-c?fCCPz1hjOJ;W!LM2 z=pN>*Qp%2ZmlAAkw*s2NFwBrn%`DAmO&42+hg5=7t+4tH6O36r z)D|(o5|7DYy@h>utb0@zn%}lOdx*gp#jI%}BOIcKQY$==1eX~%sT@%O-~q}T7B*Nn^}eG4A8c&;EM0|L zBKCszVj`>(k+T85xdFNBZ%IqjBiLJc_ntdIq1V4Y1v+@rRN(~*9JG`DCvvOm2J~0T zdi^pS2gf!X8q7w8B;_9M;$a)OzM<*gK=`=Suu5w?+)A$5=5CnWR{2i`ayo(tLn|v) zQfLqo$^{PD+?~q{iL7So*Vl4|L(*RTV@8cdXgpcdRind6s}i7Uv4fkil9DLO1-{mc zmZsCAru02a?=kfQ)!hGStnbBxc4F-g5u(mu>wW`gTmhV%KrhDIg+T~7x#${u%9jQufIPMM`I`c6zxgz}( zf~ck@K^w0GoTo$><)d&DM!6^v;KCCEp$fMH@U4qO7}Y5&v$gr2UyM1$`xl_e9yw&1 z>UxrCn)PwNZjd|GFjtq;nM+tDOVw%S`5>FPFg4+?-zUUn@H(Xkm@jp}#!GQs-kPm&I3%7J^MWFdWc?#0G6tpoL6wsuD5 z)FQ1n?y#6qZrYf;LpFxZ`Ye5AVbiqy!?41ob*LAki!{uc>R?3Ef|4nuWqS*SHbTV8 zLPeSj>Fu(P@zYokLMcc=^7vk=TVdanNZkwP)NWtdSghSpGFbMLdYf^ySZVj)^E{X_ z4C$9Qqgotfs-{8d>7YgPBhra)NbycK4Wz<3&o%;tbX91Ggt%wYshZfwE<7r2MpbkQ3>{tM*(F4y`(!2-xu3ag<8#~hlvbHrV|rsCFQJSs>DbE z>E!;oC@Mw6<(s?G;Z-ZeUnOgjAG;u_sBC^#MB?G*<%Z)s81nm*u$QJk0pwg>PeC>{K#E|N_F>?*7+-f*Cyt;jI88; z@~+N?CX(_>ulQ#ySx+MVEH}mW-4QcTbkoJZ9g^LL=2h=BSqjhic0f90nNC1VpydA= zFXZWm5-cDn3z6IY7q`nqy;<}fo_y#gBDLAtwW;1Q3?PSLdSgyeEEs4VIIRme5wW#g zl8kMZOwkAm*?drMaTt`AndebivG1(=Dfg=+p!2>yu~{uY^)WHWYq(^4~Tr+yAWJy zG0hnHXa;0hlD@#4uGnNp=waa#&kd*JpkddsqD;?N=eHF6O?TQhg6{KpC##kN27TJ3w2!W=tT`q0sU? z^0BtY-f#soorKJhP&CfmzFT3QbJ)I5S z!-E1^p`D+*WEKG5^G9KrHM468x23IY2drAkv_GN>SM&74S}(=)u%-R>b`elwI;7z= z{cYZjEPu8J61gc0BAGZXeHk_u3?LGQsV>_cl0DUZPprnCng@Vph5*Xgv)q#SWXa~FGB23 zi4W;XaCmN;vG{(F>D}-$2{&;~XV&JvtDe%c+%rY`sVwxqY}jh&(`Y%XW=6gfg=YOhThn3xCWI7=*{Oyb2({?zy5IZp{?4T0f|VmyLBVp3y<3x> zHV|l^>8i^ZG9TQwpy}ndE$>FL&2B{rxV20|r7YCuvEuJ=jorV{s)qOcX`Xx($hwyU zWwb>+5;*rWmO}p|rF}CU=UH!->OECvaCU$N2G)d`*zv#W1M zPwNZGq;tiazz${jgtm*9vFV}t=5n*K26eB4W2RKbGVyjQH|atm(4!@nIMyfKzr|#B z#G0Xi(C9Y|Fk+DXm8rSy6v^y+5AHgj(dGO(JBIzAyqCKjXh8>6^=D(hE}y(tTum-Y z+e)Q~Z22*H+v$NaR;HZw0Qx+mOr_DXRuls1t0y5jDxpd8Hp8TXmWkd!= z$+_XQ6FO1@9Cf)$J480$I=O+eMfeyrkB?`+-*#r11?$H$Kqv!CJq&&QZ0k;8HqSRX zYD&PH|A4_46%=k0^o^t`PgfaOz-WH?&(pK^$`nL_lwq@qa{R?0fuHYhI@xMov-&23 zd~wdM#(S*vTHUtm<;&cO*HVc89NS>V*O@B(fZS+a4rDdUMyn+_y{k0DfsI`l8Jh?| zrrJQ6uU8*JMgv!NTc^phV`wfX8?y0U1njT?4!RVhJfrm>nr+@0%FCe&p|0285y<4| zy_Vl$v;xQu6SAG&-)|Au==45TXpwyr-` zxlTCT3%nHQAzQP7GZKS#3YN+@b_;NNuR?ckBjUVES~37yl4oKWEQU7q8>-FWTGihz z+5FcWmJ?g>toWg67dhg8j5;>9)ujA5(t@3ZgB`Qs&MrXFah`2%zP~6KEFZvk>@^v% zd7lXMpVVXTVQGUzM-EyUiIK=+i)~rZeY60=3U=|%ht3jR~oIf1sl<6H{~y*gpUb+QZift^d2T6 z80cDY&U2;`@CrX^{CK7AiT&xdR_P)9mwXHVSC{Bt;ORe*jIedCss3^Mr)X0_Mq@!=(zV#RNQTMx)e~h4<)5~_yBuHEPh`e9eRRei0ZrR&XcJS3mQ2b-e-*DzX$_V2dL}>d^wrC=oX4jr zXzL!oMfcsI{LkZd-GAJz{DP#I0vPRu#MPg!hdt&&)W`rBRmWLm#nL$bnk66>0TUb8CNddUZ^p zg2$fneGkgu{;R9p{r=9T&G0pj%AFc?y^iWRoMgUTYQp0*tk5v>p0+=HHMt^~``!pt zH~Rh=$tz8dDW8&u*Gl5k=+E#83cP>SA+DC6e;&tjx407ec4%(7f|76R8S%HP1@0R_qVD|NR zYm@OWWEH`{Ne*^~@7g_EbI}P)@=(j}s4J*YiISUEt;)q9b6phsV4bBhog)PjS!l~@ zeYPb*h9#o5S{~)X3OIIo6r^iaeM-Wl{jnRHg!muV3<6(HIe`QXoEh-lA1gY@HC#^Z z#)nRET9VQ$OU{Rpt_9#6HIw@)*Ie2bk!{#zVe((Kka=PiXgZ;c`p?Ul{x1Pz3*~j2 z&)Jx?--DBI{~()i->U1-?4NVMn)U=d-}3t}e^0)S z=S|c9+13Bk0^8Pjpw1yzY1m1tEUA9J(doSAy84?lYpz60F-Pz)qIMmIUrr&RyV(1v z7NYNgGF&F*$fBqHkNempis5S~Ax(c6!PjD(-}yX4J6|y9&q$X@&&T^4N7IG+!Y8rg zoB7z7>leJ$FNI0)qI(a{Mdt8W(N^Egk$C_8{Pl9jq8OfE5PyZAF0dHlnz!#8|7C}# zwQ&z;*Qdv}+tnY4+$27=IbI}_jgeJmf1-QrgRWGaD%!6^8c%qovty)v5n}q^+Xrhf zLewd465iMLH`jIXU%BZ1hYJFb3-+K+lVOkeKBU0M+o{0c_#W^nU3Asq{47@;vOJzD zVta0-(P)FRM%PX>Pm-7F=$NVA(G;XT06CB)ER470dUDCg>$ZOtf;sHGdEW^6523S5 zgC0ari~>J*XIxzE*K?gO#T6Ipqq(|P%z1pN82}}pet4<;`ssnFmIrGysE`ekK!r37 zddH5D>%PRr{3=Wh;PoBc`oYQDc}28{ zv&AKMa4(qIqX^1^k^?Qk_yo&@UP?KjCjM|2wmj&48uhA_5a~p$kqA>j=$qOO{&@=Kpz)zU@5@QhioMrFPx}QMiiC3iN0wGV+YzFBI^hOi zSo4R`n0k3)g$%~v?iF^o5MwJgO4E57JXQB;EKFhZ!~YOA_~-b_B$#I+Q!jyN6+#22 z8&#KtwIxHlu4;fo_)ggE;E>gV-#a-9wHk9PsITO|bdL8t4l!@~<|Bpy@#nOOA~dg` zmB(p9EQ}iD>T=Ecl03);ZUYc>)2~q_BJDxJp!}~Z=$`Jfur2nw{Zgur+t=Qc!2hof z0dKMStng`9`5<$Q%x~(rqd#7E8GE#{7fGx%29%Z%e6~NrlYRp=nEJq;|9OS zT-~X=FE|pFyPQ7$zC5k#5mhF#2&kwgE++R$;+apghciD$+FSCxvyUJ&n^<+4ci<*G zsaNk$`|v$^he-h+1KUE+$!{J9O;1OKWPg(0qC>q|4M)E$>g~YK#bWyIVEQrfHbJ~f zxp)Cv3M_9eh&M2e6o?LGOu_B-ZHP1VYzl8b#|FWBZC-TPF1y>j!f7(3QY2b$y z0et72b|JtXoi3L$Xa)lwPUnq;@A7&TQMI}&F?tb&H zpr9^q_WXl#_HIco6w7}PTs4+@Rry?%sa5!eWp+VSlHV2|B?OS=R$$Ztb%=X<%pEJ+ z^T%b`eMiSgk!Vy9@qF-s44G8in%<#+y%xaoGg%s)O7e+@1qq5qjqHS2iZ!6qB~@E}f}jdc2v3nz zFfKQfG5Ade2`mGjV-8O95^f@NT)CA{S| { const dispatch = useDispatch(); + const mode = useSelector(selectAppMode); + + const analysisTool = useSelector(selectActiveAnalysisTool); + const queryParams = useSelector(selectQueryParams4SceneInSelectedMode); const acquisitionDateRange = queryParams?.acquisitionDateRange; @@ -45,6 +53,18 @@ export const useQueryAvailableSentinel1Scenes = (): void => { const orbitDirection = useSelector(selectSentinel1OrbitDirection); + /** + * Indicates if we should only query the sentinel-1 imagery scenes that + * support dual polarization: VV and VH + */ + const dualPolarizationOnly = useMemo(() => { + if (mode === 'analysis' && analysisTool === 'temporal composite') { + return true; + } + + return false; + }, [mode, analysisTool]); + useEffect(() => { if (!center || !acquisitionDateRange) { return; @@ -54,8 +74,20 @@ export const useQueryAvailableSentinel1Scenes = (): void => { return; } - dispatch(queryAvailableScenes(acquisitionDateRange, orbitDirection)); - }, [center, acquisitionDateRange, isAnimationPlaying, orbitDirection]); + dispatch( + queryAvailableScenes( + acquisitionDateRange, + orbitDirection, + dualPolarizationOnly + ) + ); + }, [ + center, + acquisitionDateRange, + isAnimationPlaying, + orbitDirection, + dualPolarizationOnly, + ]); return null; }; diff --git a/src/sentinel-1-explorer/store/getPreloadedState.ts b/src/sentinel-1-explorer/store/getPreloadedState.ts index 0184d0af..b15d24b4 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState.ts @@ -23,7 +23,7 @@ import { getMapCenterFromHashParams, getMaskToolDataFromHashParams, getQueryParams4MainSceneFromHashParams, - getQueryParams4ScenesInAnimationFromHashParams, + getListOfQueryParamsFromHashParams, getQueryParams4SecondarySceneFromHashParams, getSpectralProfileToolDataFromHashParams, getTemporalProfileToolDataFromHashParams, @@ -60,6 +60,10 @@ import { initialUIState, UIState } from '@shared/store/UI/reducer'; import { initialLandsatState } from '@shared/store/Landsat/reducer'; import { PartialRootState } from '@shared/store/configureStore'; import { Sentinel1FunctionName } from '@shared/services/sentinel-1/config'; +import { + TemporalCompositeToolState, + initialState4TemporalCompositeTool, +} from '@shared/store/TemporalCompositeTool/reducer'; // import { getRandomElement } from '@shared/utils/snippets/getRandomElement'; /** @@ -127,8 +131,7 @@ const getPreloadedImageryScenesState = (): ImageryScenesState => { rasterFunctionName: defaultRasterFunction, }; - const queryParams4ScenesInAnimation = - getQueryParams4ScenesInAnimationFromHashParams() || []; + const listOfQueryParams = getListOfQueryParamsFromHashParams() || []; const queryParamsById: { [key: string]: QueryParams4ImageryScene; @@ -136,7 +139,7 @@ const getPreloadedImageryScenesState = (): ImageryScenesState => { const tool = getHashParamValueByKey('tool') as AnalysisTool; - for (const queryParams of queryParams4ScenesInAnimation) { + for (const queryParams of listOfQueryParams) { queryParamsById[queryParams.uniqueId] = queryParams; } @@ -148,9 +151,9 @@ const getPreloadedImageryScenesState = (): ImageryScenesState => { queryParams4SecondaryScene, queryParamsList: { byId: queryParamsById, - ids: queryParams4ScenesInAnimation.map((d) => d.uniqueId), - selectedItemID: queryParams4ScenesInAnimation[0] - ? queryParams4ScenesInAnimation[0].uniqueId + ids: listOfQueryParams.map((d) => d.uniqueId), + selectedItemID: listOfQueryParams[0] + ? listOfQueryParams[0].uniqueId : null, }, // idOfSelectedItemInListOfQueryParams: queryParams4ScenesInAnimation[0] @@ -175,6 +178,17 @@ const getPreloadedUIState = (): UIState => { return proloadedUIState; }; +const getPreloadedTemporalCompositeToolState = + (): TemporalCompositeToolState => { + const proloadedState: TemporalCompositeToolState = { + ...initialState4TemporalCompositeTool, + rasterFunction: + 'Sentinel-1 RTC VV dB with DRA' as Sentinel1FunctionName, + }; + + return proloadedState; + }; + export const getPreloadedState = async (): Promise => { // get default raster function and location and pass to the getPreloadedMapState, getPreloadedUIState and getPreloadedImageryScenesState @@ -185,5 +199,6 @@ export const getPreloadedState = async (): Promise => { ...initialLandsatState, }, ImageryScenes: getPreloadedImageryScenesState(), - }; + TemporalCompositeTool: getPreloadedTemporalCompositeToolState(), + } as PartialRootState; }; diff --git a/src/shared/components/AnalysisToolSelector/AnalysisToolSelector.tsx b/src/shared/components/AnalysisToolSelector/AnalysisToolSelector.tsx index 85f6b799..3320fe59 100644 --- a/src/shared/components/AnalysisToolSelector/AnalysisToolSelector.tsx +++ b/src/shared/components/AnalysisToolSelector/AnalysisToolSelector.tsx @@ -17,46 +17,22 @@ import React, { FC } from 'react'; import { Button } from '../Button'; import classNames from 'classnames'; import { AnalysisTool } from '@shared/store/ImageryScene/reducer'; - -const AnalysisTools: { - tool: AnalysisTool; - title: string; - subtitle: string; -}[] = [ - { - tool: 'mask', - title: 'Index', - subtitle: 'mask', - }, - { - tool: 'trend', - title: 'Temporal', - subtitle: 'profile', - }, - { - tool: 'spectral', - title: 'Spectral', - subtitle: 'profile', - }, - { - tool: 'change', - title: 'Change', - subtitle: 'detection', - }, -]; +import { AnalyzeToolSelectorData } from './AnalysisToolSelectorContainer'; type Props = { + data: AnalyzeToolSelectorData[]; selectedTool: AnalysisTool; onChange: (tool: AnalysisTool) => void; }; export const AnalysisToolSelector: FC = ({ + data, selectedTool, onChange, }: Props) => { return ( <> - {AnalysisTools.map(({ tool, title, subtitle }) => ( + {data.map(({ tool, title, subtitle }) => (
@@ -126,6 +134,7 @@ export const Layout = () => { {/* */} +
)} diff --git a/src/sentinel-1-explorer/components/Map/Map.tsx b/src/sentinel-1-explorer/components/Map/Map.tsx index ccd91cf3..75e39598 100644 --- a/src/sentinel-1-explorer/components/Map/Map.tsx +++ b/src/sentinel-1-explorer/components/Map/Map.tsx @@ -35,6 +35,7 @@ import { SwipeWidget4ImageryLayers } from '@shared/components/SwipeWidget/SwipeW import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; import { Popup } from '../Popup'; import { TemporalCompositeLayer } from '../TemporalCompositeLayer'; +import { ChangeCompareLayer4Sentinel1 } from '../ChangeCompareLayer'; export const Map = () => { return ( @@ -45,7 +46,7 @@ export const Map = () => { index={1} > - {/* */} + diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx index 38e8dc21..32b1031f 100644 --- a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx @@ -29,9 +29,11 @@ const Sentinel1RendererThumbnailByName: Record = 'Sentinel-1 RGB dB DRA': PlaceholderThumbnail, 'Sentinel-1 RTC VH dB with DRA': PlaceholderThumbnail, 'Sentinel-1 RTC VV dB with DRA': PlaceholderThumbnail, - 'Sentinel-1 DpRVIc Raw with Control': PlaceholderThumbnail, + 'Sentinel-1 DpRVIc Raw': PlaceholderThumbnail, 'Sentinel-1 SWI Raw': PlaceholderThumbnail, 'Sentinel-1 Water Anomaly Index Raw': PlaceholderThumbnail, + 'Sentinel-1 RTC Despeckle VH Amplitude': PlaceholderThumbnail, + 'Sentinel-1 RTC Despeckle VV Amplitude': PlaceholderThumbnail, // 'NDMI Colorized': LandsatNDMIThumbnail, }; @@ -39,9 +41,11 @@ const Sentinel1RendererLegendByName: Record = { 'Sentinel-1 RGB dB DRA': CompositeLegend, 'Sentinel-1 RTC VH dB with DRA': null, 'Sentinel-1 RTC VV dB with DRA': null, - 'Sentinel-1 DpRVIc Raw with Control': null, + 'Sentinel-1 DpRVIc Raw': null, 'Sentinel-1 SWI Raw': null, 'Sentinel-1 Water Anomaly Index Raw': null, + 'Sentinel-1 RTC Despeckle VH Amplitude': null, + 'Sentinel-1 RTC Despeckle VV Amplitude': null, }; export const getSentinel1RasterFunctionInfo = (): RasterFunctionInfo[] => { diff --git a/src/sentinel-1-explorer/store/getPreloadedState.ts b/src/sentinel-1-explorer/store/getPreloadedState.ts index b15d24b4..f4483e65 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState.ts @@ -64,6 +64,14 @@ import { TemporalCompositeToolState, initialState4TemporalCompositeTool, } from '@shared/store/TemporalCompositeTool/reducer'; +import { + ChangeCompareToolState, + initialChangeCompareToolState, +} from '@shared/store/ChangeCompareTool/reducer'; +import { + ChangeCompareToolOption4Sentinel1, + ChangeCompareToolPixelValueRange4Sentinel1, +} from '../components/ChangeCompareTool/ChangeCompareToolContainer'; // import { getRandomElement } from '@shared/utils/snippets/getRandomElement'; /** @@ -189,6 +197,30 @@ const getPreloadedTemporalCompositeToolState = return proloadedState; }; +const getPreloadedChangeCompareToolState = (): ChangeCompareToolState => { + const changeCompareToolData = getChangeCompareToolDataFromHashParams(); + + const selectedOption: ChangeCompareToolOption4Sentinel1 = + changeCompareToolData?.selectedOption + ? (changeCompareToolData?.selectedOption as ChangeCompareToolOption4Sentinel1) + : 'log difference'; + + const fullPixelValuesRange = + ChangeCompareToolPixelValueRange4Sentinel1[selectedOption]; + + const initalState: ChangeCompareToolState = { + ...initialChangeCompareToolState, + }; + + return { + ...initalState, + ...changeCompareToolData, + selectedOption, + fullPixelValuesRange, + selectedRange: fullPixelValuesRange, + }; +}; + export const getPreloadedState = async (): Promise => { // get default raster function and location and pass to the getPreloadedMapState, getPreloadedUIState and getPreloadedImageryScenesState @@ -200,5 +232,6 @@ export const getPreloadedState = async (): Promise => { }, ImageryScenes: getPreloadedImageryScenesState(), TemporalCompositeTool: getPreloadedTemporalCompositeToolState(), + ChangeCompareTool: getPreloadedChangeCompareToolState(), } as PartialRootState; }; diff --git a/src/shared/components/ChangeCompareLayer/index.ts b/src/shared/components/ChangeCompareLayer/index.ts new file mode 100644 index 00000000..a5335b38 --- /dev/null +++ b/src/shared/components/ChangeCompareLayer/index.ts @@ -0,0 +1 @@ +export { useChangeCompareLayerVisibility } from './useChangeCompareLayerVisibility'; diff --git a/src/shared/components/ChangeCompareLayer/useChangeCompareLayerVisibility.tsx b/src/shared/components/ChangeCompareLayer/useChangeCompareLayerVisibility.tsx new file mode 100644 index 00000000..8ee7df33 --- /dev/null +++ b/src/shared/components/ChangeCompareLayer/useChangeCompareLayerVisibility.tsx @@ -0,0 +1,53 @@ +import React, { FC, useMemo } from 'react'; +import { useSelector } from 'react-redux'; +import { + selectActiveAnalysisTool, + selectAppMode, + selectQueryParams4MainScene, + selectQueryParams4SecondaryScene, +} from '@shared/store/ImageryScene/selectors'; +import GroupLayer from '@arcgis/core/layers/GroupLayer'; +import { + selectChangeCompareLayerIsOn, + selectSelectedOption4ChangeCompareTool, + selectUserSelectedRangeInChangeCompareTool, +} from '@shared/store/ChangeCompareTool/selectors'; + +export const useChangeCompareLayerVisibility = () => { + const mode = useSelector(selectAppMode); + + const changeCompareLayerIsOn = useSelector(selectChangeCompareLayerIsOn); + + const queryParams4SceneA = useSelector(selectQueryParams4MainScene); + + const queryParams4SceneB = useSelector(selectQueryParams4SecondaryScene); + + const anailysisTool = useSelector(selectActiveAnalysisTool); + + const isVisible = useMemo(() => { + if (mode !== 'analysis') { + return false; + } + + if (anailysisTool !== 'change') { + return false; + } + + if ( + !queryParams4SceneA?.objectIdOfSelectedScene || + !queryParams4SceneB?.objectIdOfSelectedScene + ) { + return false; + } + + return changeCompareLayerIsOn; + }, [ + mode, + anailysisTool, + changeCompareLayerIsOn, + queryParams4SceneA, + queryParams4SceneB, + ]); + + return isVisible; +}; diff --git a/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx new file mode 100644 index 00000000..6064fa45 --- /dev/null +++ b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx @@ -0,0 +1,139 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AnalysisToolHeader } from '@shared/components/AnalysisToolHeader'; +import { PixelRangeSlider } from '@shared/components/PixelRangeSlider'; +import { + selectedRangeUpdated, + selectedOption4ChangeCompareToolChanged, +} from '@shared/store/ChangeCompareTool/reducer'; +import { + selectChangeCompareLayerIsOn, + selectFullPixelValuesRangeInChangeCompareTool, + selectSelectedOption4ChangeCompareTool, + selectUserSelectedRangeInChangeCompareTool, +} from '@shared/store/ChangeCompareTool/selectors'; +import { selectActiveAnalysisTool } from '@shared/store/ImageryScene/selectors'; +import { SpectralIndex } from '@typing/imagery-service'; +import classNames from 'classnames'; +import React, { FC } from 'react'; +import { useDispatch } from 'react-redux'; +import { useSelector } from 'react-redux'; +import { getChangeCompareLayerColorrampAsCSSGradient } from './helpers'; + +type Props = { + /** + * the label text to be placed at the bottom of the pixel range selector. e.g. `['decrease', 'no change', 'increase']` + */ + legendLabelText?: string[]; +}; + +export const ChangeCompareToolControls: FC = ({ + legendLabelText = [], +}: Props) => { + const dispatch = useDispatch(); + + const tool = useSelector(selectActiveAnalysisTool); + + const selectedRange = useSelector( + selectUserSelectedRangeInChangeCompareTool + ); + + const fullPixelValueRange = useSelector( + selectFullPixelValuesRangeInChangeCompareTool + ); + + const isChangeLayerOn = useSelector(selectChangeCompareLayerIsOn); + + const getPixelRangeSlider = () => { + const [min, max] = fullPixelValueRange; + + const fullRange = Math.abs(max - min); + + const countOfTicks = fullRange / 0.25 + 1; + + const oneFourthOfFullRange = fullRange / 4; + + const tickLabels: number[] = [ + min, + min + oneFourthOfFullRange, + min + oneFourthOfFullRange * 2, + min + oneFourthOfFullRange * 3, + max, + ]; + + // console.log(min, max, fullRange, countOfTicks, tickLabels); + + return ( + { + dispatch(selectedRangeUpdated(vals)); + }} + min={min} + max={max} + steps={0.05} + tickLabels={tickLabels} + countOfTicks={countOfTicks} + showSliderTooltip={true} + /> + ); + }; + + if (tool !== 'change') { + return null; + } + + if (!isChangeLayerOn) { + return ( +
+

+ Select two scenes, SCENE A and SCENE B, and then click VIEW + CHANGE. +

+
+ ); + } + + return ( +
+
+
+
+ + {getPixelRangeSlider()} + +
+
+
+ {legendLabelText[0] || 'decrease'} +
+
+ {legendLabelText[1] || 'no change'} +
+
+ {legendLabelText[2] || 'increase'} +
+
+
+
+ ); +}; diff --git a/src/shared/components/ChangeCompareTool/ChangeCompareToolHeader.tsx b/src/shared/components/ChangeCompareTool/ChangeCompareToolHeader.tsx new file mode 100644 index 00000000..da3d867c --- /dev/null +++ b/src/shared/components/ChangeCompareTool/ChangeCompareToolHeader.tsx @@ -0,0 +1,72 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AnalysisToolHeader } from '@shared/components/AnalysisToolHeader'; +import { PixelRangeSlider } from '@shared/components/PixelRangeSlider'; +import { + selectedRangeUpdated, + selectedOption4ChangeCompareToolChanged, +} from '@shared/store/ChangeCompareTool/reducer'; +import { + selectChangeCompareLayerIsOn, + selectSelectedOption4ChangeCompareTool, + selectUserSelectedRangeInChangeCompareTool, +} from '@shared/store/ChangeCompareTool/selectors'; +import { selectActiveAnalysisTool } from '@shared/store/ImageryScene/selectors'; +import { SpectralIndex } from '@typing/imagery-service'; +import classNames from 'classnames'; +import React, { FC } from 'react'; +import { useDispatch } from 'react-redux'; +import { useSelector } from 'react-redux'; + +type Props = { + /** + * list of options that will be available in the dropdown menu + */ + options: { + value: SpectralIndex | string; + label: string; + }[]; +}; + +export const ChangeCompareToolHeader: FC = ({ options }: Props) => { + const dispatch = useDispatch(); + + const tool = useSelector(selectActiveAnalysisTool); + + const selectedOption = useSelector(selectSelectedOption4ChangeCompareTool); + + if (tool !== 'change') { + return null; + } + + return ( + { + dispatch( + selectedOption4ChangeCompareToolChanged( + val as SpectralIndex + ) + ); + }} + /> + ); +}; diff --git a/src/shared/components/ChangeCompareTool/helpers.ts b/src/shared/components/ChangeCompareTool/helpers.ts new file mode 100644 index 00000000..93623b6f --- /dev/null +++ b/src/shared/components/ChangeCompareTool/helpers.ts @@ -0,0 +1,118 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { QueryParams4ImageryScene } from '@shared/store/ImageryScene/reducer'; +import { formattedDateString2Unixtimestamp } from '@shared/utils/date-time/formatDateString'; +import { hexToRgb } from '@shared/utils/snippets/hex2rgb'; + +// const ColorRamps = ['#511C02', '#A93A03', '#FFE599', '#0084A8', '#004053']; +const ColorRamps = [ + '#511C02', + '#662302', + '#7E2B03', + '#953303', + '#AD430B', + '#C47033', + '#DB9D5A', + '#F3CC83', + '#DED89B', + '#9BBF9F', + '#57A5A3', + '#118AA7', + '#007797', + '#006480', + '#005168', + '#004053', +]; + +const ColorRampsInRGB = ColorRamps.map((hex) => { + return hexToRgb(hex); +}); + +/** + * return the color ramp as css gradient + * @returns css gradient string (e.g. `linear-gradient(90deg, rgba(0,132,255,1) 0%, rgba(118,177,196,1) 25%, rgba(173,65,9,1) 100%)`) + */ +export const getChangeCompareLayerColorrampAsCSSGradient = () => { + const stops = ColorRamps.map((color, index) => { + const pos = (index / (ColorRamps.length - 1)) * 100; + return `${color} ${pos}%`; + }); + + const output = `linear-gradient(90deg, ${stops.join(', ')})`; + + return output; +}; + +/** + * Get the RGB color corresponding to a given value within a predefined pixel value range. + * + * @param value - The numeric value to map to a color within the range. + * @param pixelValueRange - the full pixel value range. + * @returns An array representing the RGB color value as three integers in the range [0, 255]. + */ +export const getPixelColor4ChangeCompareLayer = ( + value: number, + pixelValueRange: number[] +): number[] => { + // the minimum and maximum values for the full pixel value range. + const [MIN, MAX] = pixelValueRange; + + if (value <= MIN) { + return ColorRampsInRGB[0]; + } + + if (value >= MAX) { + return ColorRampsInRGB[ColorRampsInRGB.length - 1]; + } + + const RANGE = MAX - MIN; + + // Normalize the input value to be within the [0, RANGE] range. + value = value - MIN; + + const index = Math.floor((value / RANGE) * (ColorRampsInRGB.length - 1)); + + // console.log(value, pixelValueRange) + + return ColorRampsInRGB[index]; +}; + +/** + * Sort query parameters by acquisition date in ascending order. + * @param sceneA + * @param sceneB + * @returns + */ +export const sortQueryParams4ImagerySceneByAcquisitionDate = ( + sceneA: QueryParams4ImageryScene, + sceneB: QueryParams4ImageryScene +): QueryParams4ImageryScene[] => { + // Sort query parameters by acquisition date in ascending order. + const [ + queryParams4SceneAcquiredInEarlierDate, + queryParams4SceneAcquiredInLaterDate, + ] = [sceneA, sceneB].sort((a, b) => { + return ( + formattedDateString2Unixtimestamp(a.acquisitionDate) - + formattedDateString2Unixtimestamp(b.acquisitionDate) + ); + }); + + return [ + queryParams4SceneAcquiredInEarlierDate, + queryParams4SceneAcquiredInLaterDate, + ]; +}; diff --git a/src/shared/components/ChangeCompareTool/index.ts b/src/shared/components/ChangeCompareTool/index.ts new file mode 100644 index 00000000..e2de5c79 --- /dev/null +++ b/src/shared/components/ChangeCompareTool/index.ts @@ -0,0 +1,2 @@ +export { ChangeCompareToolControls } from './ChangeCompareToolControls'; +export { ChangeCompareToolHeader } from './ChangeCompareToolHeader'; diff --git a/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx b/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx new file mode 100644 index 00000000..f90dc65a --- /dev/null +++ b/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx @@ -0,0 +1,193 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { FC, useEffect, useRef, useState } from 'react'; +import ImageryLayer from '@arcgis/core/layers/ImageryLayer'; +import MapView from '@arcgis/core/views/MapView'; +import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; +import PixelBlock from '@arcgis/core/layers/support/PixelBlock'; +import GroupLayer from '@arcgis/core/layers/GroupLayer'; + +type Props = { + mapView?: MapView; + groupLayer?: GroupLayer; + /** + * url of the imagery service + */ + serviceURL: string; + /** + * raster function for the change compare layer + */ + rasterFunction: RasterFunction; + /** + * visibility of the imagery layer + */ + visible: boolean; + /** + * user selected pixel value range + */ + pixelValueRange: number[]; + /** + * full pixel value range + */ + fullPixelValueRange: number[]; + /** + * Get the RGB color corresponding to a given value within a predefined pixel value range + * @param val + * @returns + */ + getPixelColor: (val: number, pixelValueRange: number[]) => number[]; +}; + +type PixelData = { + pixelBlock: PixelBlock; +}; + +export const ImageryLayerWithPixelFilter: FC = ({ + mapView, + groupLayer, + serviceURL, + rasterFunction, + visible, + pixelValueRange, + fullPixelValueRange, + getPixelColor, +}) => { + const layerRef = useRef(); + + /** + * user selected pixel value range + */ + const selectedRangeRef = useRef(); + + /** + * full pixel value range + */ + const fullPixelValueRangeRef = useRef(); + + /** + * initialize landsat layer using mosaic created using the input year + */ + const init = async () => { + layerRef.current = new ImageryLayer({ + // URL to the imagery service + url: serviceURL, + mosaicRule: null, + format: 'lerc', + rasterFunction, + visible, + pixelFilter: pixelFilterFunction, + effect: 'drop-shadow(2px, 2px, 3px, #000)', + }); + + groupLayer.add(layerRef.current); + }; + + const pixelFilterFunction = (pixelData: PixelData) => { + // const color = colorRef.current || [255, 255, 255]; + + const { pixelBlock } = pixelData || {}; + + if (!pixelBlock) { + return; + } + + const { pixels, width, height } = pixelBlock; + // console.log(pixelBlock) + + if (!pixels) { + return; + } + + const p1 = pixels[0]; + + const n = pixels[0].length; + + if (!pixelBlock.mask) { + pixelBlock.mask = new Uint8Array(n); + } + + const pr = new Uint8Array(n); + const pg = new Uint8Array(n); + const pb = new Uint8Array(n); + + const numPixels = width * height; + + const [min, max] = selectedRangeRef.current || [0, 0]; + // console.log(min, max) + + for (let i = 0; i < numPixels; i++) { + if (p1[i] < min || p1[i] > max || p1[i] === 0) { + pixelBlock.mask[i] = 0; + continue; + } + + const color = getPixelColor(p1[i], fullPixelValueRangeRef.current); + + if (!color) { + pixelBlock.mask[i] = 0; + continue; + } + + pixelBlock.mask[i] = 1; + + pr[i] = color[0]; + pg[i] = color[1]; + pb[i] = color[2]; + } + + pixelBlock.pixels = [pr, pg, pb]; + + pixelBlock.pixelType = 'u8'; + }; + + useEffect(() => { + if (groupLayer && !layerRef.current) { + init(); + } + }, [groupLayer]); + + useEffect(() => { + if (!layerRef.current) { + return; + } + + layerRef.current.rasterFunction = rasterFunction; + }, [rasterFunction]); + + useEffect(() => { + if (!layerRef.current) { + return; + } + + layerRef.current.visible = visible; + + if (visible) { + // reorder it to make sure it is the top most layer on the map + groupLayer.reorder(layerRef.current, mapView.map.layers.length - 1); + } + }, [visible]); + + useEffect(() => { + selectedRangeRef.current = pixelValueRange; + fullPixelValueRangeRef.current = fullPixelValueRange; + + if (layerRef.current) { + layerRef.current.redraw(); + } + }, [pixelValueRange, fullPixelValueRange]); + + return null; +}; diff --git a/src/shared/components/ImageryLayerWithPixelFilter/index.ts b/src/shared/components/ImageryLayerWithPixelFilter/index.ts new file mode 100644 index 00000000..ee0c6335 --- /dev/null +++ b/src/shared/components/ImageryLayerWithPixelFilter/index.ts @@ -0,0 +1 @@ +export { ImageryLayerWithPixelFilter } from './ImageryLayerWithPixelFilter'; diff --git a/src/shared/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx b/src/shared/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx index bf1f67b9..129e9104 100644 --- a/src/shared/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx +++ b/src/shared/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx @@ -87,6 +87,8 @@ export const RasterFunctionSelectorContainer: FC = ({ ) { return true; } + + return false; }; if (!data || !data.length || shouldHide) { diff --git a/src/shared/components/Slider/PixelRangeSlider.tsx b/src/shared/components/Slider/PixelRangeSlider.tsx index 7e820aba..df96d384 100644 --- a/src/shared/components/Slider/PixelRangeSlider.tsx +++ b/src/shared/components/Slider/PixelRangeSlider.tsx @@ -19,6 +19,7 @@ import SliderWidget from '@arcgis/core/widgets/Slider'; // import './PixelRangeSlider.css'; import './Slider.css'; import classNames from 'classnames'; +import { nanoid } from 'nanoid'; type Props = { /** @@ -76,8 +77,22 @@ export const PixelRangeSlider: FC = ({ const sliderRef = useRef(); + const getTickConfigs = () => { + return [ + { + mode: 'count', + values: countOfTicks, + }, + { + mode: 'position', + values: tickLabels, //[-1, -0.5, 0, 0.5, 1], + labelsVisible: true, + }, + ] as __esri.TickConfig[]; + }; + const init = async () => { - sliderRef.current = new SliderWidget({ + const widget = new SliderWidget({ container: containerRef.current, min, max, @@ -88,20 +103,12 @@ export const PixelRangeSlider: FC = ({ labels: false, rangeLabels: false, }, - tickConfigs: [ - { - mode: 'count', - values: countOfTicks, - }, - { - mode: 'position', - values: tickLabels, //[-1, -0.5, 0, 0.5, 1], - labelsVisible: true, - }, - ], + tickConfigs: getTickConfigs(), // layout: 'vertical', }); + sliderRef.current = widget; + sliderRef.current.on('thumb-drag', (evt) => { // const { value, index } = evt; // valOnChange(index, value); @@ -182,6 +189,18 @@ export const PixelRangeSlider: FC = ({ addTooltipTextAttribute(); }, [values]); + useEffect(() => { + if (!sliderRef.current) { + return; + } + + sliderRef.current.min = min; + sliderRef.current.max = max; + sliderRef.current.values = values; + sliderRef.current.steps = steps; + sliderRef.current.tickConfigs = getTickConfigs(); + }, [min, max, values, steps, countOfTicks, tickLabels]); + return (
+ action: PayloadAction ) => { - state.spectralIndex = action.payload; + state.selectedOption = action.payload; }, changeCompareLayerIsOnUpdated: ( state, @@ -61,15 +66,22 @@ const slice = createSlice({ selectedRangeUpdated: (state, action: PayloadAction) => { state.selectedRange = action.payload; }, + fullPixelValuesRangeUpdated: ( + state, + action: PayloadAction + ) => { + state.fullPixelValuesRange = action.payload; + }, }, }); const { reducer } = slice; export const { - spectralIndex4ChangeCompareToolChanged, + selectedOption4ChangeCompareToolChanged, changeCompareLayerIsOnUpdated, selectedRangeUpdated, + fullPixelValuesRangeUpdated, } = slice.actions; export default reducer; diff --git a/src/shared/store/ChangeCompareTool/selectors.ts b/src/shared/store/ChangeCompareTool/selectors.ts index 5155ad2d..b4da98e3 100644 --- a/src/shared/store/ChangeCompareTool/selectors.ts +++ b/src/shared/store/ChangeCompareTool/selectors.ts @@ -16,9 +16,9 @@ import { createSelector } from '@reduxjs/toolkit'; import { RootState } from '../configureStore'; -export const selectSpectralIndex4ChangeCompareTool = createSelector( - (state: RootState) => state.ChangeCompareTool.spectralIndex, - (spectralIndex) => spectralIndex +export const selectSelectedOption4ChangeCompareTool = createSelector( + (state: RootState) => state.ChangeCompareTool.selectedOption, + (selectedOption) => selectedOption ); export const selectChangeCompareLayerIsOn = createSelector( @@ -31,6 +31,11 @@ export const selectUserSelectedRangeInChangeCompareTool = createSelector( (selectedRange) => selectedRange ); +export const selectFullPixelValuesRangeInChangeCompareTool = createSelector( + (state: RootState) => state.ChangeCompareTool.fullPixelValuesRange, + (fullPixelValuesRange) => fullPixelValuesRange +); + export const selectChangeCompareToolState = createSelector( (state: RootState) => state.ChangeCompareTool, (ChangeCompareTool) => ChangeCompareTool diff --git a/src/shared/store/Sentinel1/reducer.ts b/src/shared/store/Sentinel1/reducer.ts index 5907b640..78044f87 100644 --- a/src/shared/store/Sentinel1/reducer.ts +++ b/src/shared/store/Sentinel1/reducer.ts @@ -24,6 +24,8 @@ import { Sentinel1Scene, } from '@typing/imagery-service'; +export type Sentinel1PolarizationFilter = 'VV' | 'VH'; + export type Sentinel1State = { /** * Sentinel-1 scenes that intersect with center point of map view and were acquired during the input year. @@ -35,6 +37,10 @@ export type Sentinel1State = { objectIds?: number[]; }; orbitDirection: Sentinel1OrbitDirection; + /** + * The polarization filter that allows user to switch between VV and VH + */ + polarizationFilter: Sentinel1PolarizationFilter; }; export const initialSentinel1State: Sentinel1State = { @@ -43,6 +49,7 @@ export const initialSentinel1State: Sentinel1State = { objectIds: [], }, orbitDirection: 'Descending', + polarizationFilter: 'VV', }; const slice = createSlice({ @@ -77,11 +84,21 @@ const slice = createSlice({ ) => { state.orbitDirection = action.payload; }, + polarizationFilterChanged: ( + state, + action: PayloadAction + ) => { + state.polarizationFilter = action.payload; + }, }, }); const { reducer } = slice; -export const { sentinel1ScenesUpdated, orbitDirectionChanged } = slice.actions; +export const { + sentinel1ScenesUpdated, + orbitDirectionChanged, + polarizationFilterChanged, +} = slice.actions; export default reducer; diff --git a/src/shared/store/Sentinel1/selectors.ts b/src/shared/store/Sentinel1/selectors.ts index b977bc25..f0f1357e 100644 --- a/src/shared/store/Sentinel1/selectors.ts +++ b/src/shared/store/Sentinel1/selectors.ts @@ -25,3 +25,8 @@ export const selectSentinel1OrbitDirection = createSelector( (state: RootState) => state.Sentinel1.orbitDirection, (orbitDirection) => orbitDirection ); + +export const selectPolarizationFilter = createSelector( + (state: RootState) => state.Sentinel1.polarizationFilter, + (polarizationFilter) => polarizationFilter +); diff --git a/src/shared/utils/url-hash-params/changeCompareTool.ts b/src/shared/utils/url-hash-params/changeCompareTool.ts index 12ba55e2..ef5b07cb 100644 --- a/src/shared/utils/url-hash-params/changeCompareTool.ts +++ b/src/shared/utils/url-hash-params/changeCompareTool.ts @@ -25,9 +25,9 @@ export const encodeChangeCompareToolData = ( return null; } - const { spectralIndex, changeCompareLayerIsOn, selectedRange } = data; + const { selectedOption, changeCompareLayerIsOn, selectedRange } = data; - return [spectralIndex, changeCompareLayerIsOn, selectedRange].join('|'); + return [selectedOption, changeCompareLayerIsOn, selectedRange].join('|'); }; export const decodeChangeCompareToolData = ( @@ -37,12 +37,12 @@ export const decodeChangeCompareToolData = ( return null; } - const [spectralIndex, changeCompareLayerIsOn, selectedRange] = + const [selectedOption, changeCompareLayerIsOn, selectedRange] = val.split('|'); return { ...initialChangeCompareToolState, - spectralIndex, + selectedOption, changeCompareLayerIsOn: changeCompareLayerIsOn === 'true', selectedRange: selectedRange.split(',').map((d) => +d), } as ChangeCompareToolState; From ff079e466aa2590f7036bcadf5bc557977e28585 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 16 May 2024 10:47:43 -0700 Subject: [PATCH 034/151] feat(sentinel1explorer): add Temporal Profile Tool - refactor: update Trend Tool slice of Redux Store and raname spectralIndx to selectedIndex - refactor: add 'RadarIndex' type - refactor: rename @shared/components/TrendTool to @shared/components/TemporalProfileTool - refactor: add TemporalProfileToolHeader - add useUpdateTemporalProfileToolData hook - refactor: add useSyncSelectedYearAndMonth custom hook - refactor: update updateTemporalProfileToolData thunk function; add fetchTemporalProfileDataFunc and intersectWithImagerySceneFunc as input params - add TemporalProfileTool Container and placeholder function for getSentinel1TemporalProfileData - update getSentinel1TemporalProfileData to call getSentinel1Scenes - refactor: landsat-level-2 services should use identify from services/helpers - fix: update getSentinel1ScenesToSample to allow filtering scenes by acquisition month - add getPixelValues to retrieve pixel values from specified imagery service - refactor: lnadsat-level-2/getTemporalProfileData should call getPixelValues from @shared/services/helpers/getPixelValues instead getSamples - refactor: update @hared/service/landsat-level-2/identify to getLandsatPixelValues - refactor: update TrendChartContainer to show error messafe - refactor: add Temporal Profile Chart to @shared/components - add Temporal Profile Chart for Sentinel-1 - fix: getSentinel1Scenes should only include scenes that has dual polarization - fix: update Sentinel-1 Raster Function names --- .../components/Layout/Layout.tsx | 2 +- .../components/PopUp/PopupContainer.tsx | 12 +- .../LandsatTemporalProfileChart.tsx | 17 ++ .../LandsatTemporalProfileTool.tsx | 207 +++++++++++++++ .../TemporalProfileTool/TrendChart.tsx | 233 +++++++++++++++++ .../TrendChartContainer.tsx | 131 ++++++++++ .../components/TemporalProfileTool}/index.ts | 3 +- .../useCustomDomain4YScale.tsx | 51 ++++ .../useTemporalProfileDataAsChartData.tsx | 116 ++++++++ .../TrendTool/TrendToolContainer.tsx | 247 ------------------ .../TrendTool/TrendToolContainer.tsx | 157 +++++++---- .../AnalyzeToolSelector.tsx | 7 +- .../ChangeCompareLayerContainer.tsx | 4 +- .../ChangeCompareToolContainer.tsx | 11 +- .../components/Layout/Layout.tsx | 7 +- .../components/Map/Map.tsx | 10 +- .../components/Popup/PopupContainer.tsx | 4 +- .../useSentinel1RasterFunctions.tsx | 12 +- .../Sentinel1TemporalProfileChart.tsx | 17 ++ .../Sentinel1TemporalProfileTool.tsx | 171 ++++++++++++ .../components/TemporalProfileTool/index.ts | 1 + .../useCustomDomain4YScale.tsx | 38 +++ .../useTemporalProfileDataAsChartData.tsx | 97 +++++++ .../useQueryAvailableSentinel1Scenes.tsx | 26 +- .../store/getPreloadedState.ts | 17 ++ .../MapView/CustomMapPopupStyle.css | 5 + .../TemporalProfileChart.tsx} | 127 ++------- .../TemporalProfileChartContainer.tsx} | 39 ++- .../TemporalProfileChart}/helpers.ts | 0 .../components/TemporalProfileChart/index.ts | 1 + .../TemporalProfileToolControls.tsx} | 2 +- .../TemporalProfileToolControlsContainer.tsx | 57 ++++ .../TemporalProfileToolHeader.tsx | 36 +++ .../components/TemproalProfileTool}/index.ts | 4 +- .../useMonthOptions.tsx | 0 .../useSyncSelectedYearAndMonth.tsx | 48 ++++ .../useTrendOptions.tsx | 0 .../useUpdateTemporalProfileToolData.tsx | 115 ++++++++ src/shared/services/helpers/exportImage.ts | 4 +- .../helpers/getMosaicRuleByObjectId.ts | 15 +- src/shared/services/helpers/getPixelValues.ts | 113 ++++++++ .../getPixelValuesFromIdentifyTaskResponse.ts | 28 ++ src/shared/services/helpers/identify.ts | 33 +-- .../helpers/splitObjectIdsToSeparateGroups.ts | 30 +++ .../services/landsat-level-2/exportImage.ts | 5 +- .../landsat-level-2/getLandsatPixelValues.ts | 79 ++++++ .../services/landsat-level-2/getSamples.ts | 154 +++++------ .../landsat-level-2/getTemporalProfileData.ts | 97 +++---- .../services/landsat-level-2/helpers.ts | 16 +- .../services/landsat-level-2/identify.ts | 153 ----------- src/shared/services/sentinel-1/config.ts | 24 +- .../services/sentinel-1/getSentinel1Scenes.ts | 23 +- .../sentinel-1/getTemporalProfileData.ts | 191 ++++++++++++++ src/shared/services/sentinel-1/helper.ts | 38 +++ src/shared/store/ChangeCompareTool/reducer.ts | 6 +- src/shared/store/Sentinel1/thunks.ts | 6 +- .../store/SpectralProfileTool/thunks.ts | 6 +- .../store/SpectralSamplingTool/thunks.ts | 7 +- src/shared/store/TrendTool/reducer.ts | 29 +- src/shared/store/TrendTool/selectors.ts | 11 +- src/shared/store/TrendTool/thunks.ts | 130 +++++---- src/shared/utils/url-hash-params/trendTool.ts | 8 +- src/types/imagery-service.d.ts | 6 + 63 files changed, 2363 insertions(+), 881 deletions(-) create mode 100644 src/landsat-explorer/components/TemporalProfileTool/LandsatTemporalProfileChart.tsx create mode 100644 src/landsat-explorer/components/TemporalProfileTool/LandsatTemporalProfileTool.tsx create mode 100644 src/landsat-explorer/components/TemporalProfileTool/TrendChart.tsx create mode 100644 src/landsat-explorer/components/TemporalProfileTool/TrendChartContainer.tsx rename src/{shared/components/TrendToolControls => landsat-explorer/components/TemporalProfileTool}/index.ts (76%) create mode 100644 src/landsat-explorer/components/TemporalProfileTool/useCustomDomain4YScale.tsx create mode 100644 src/landsat-explorer/components/TemporalProfileTool/useTemporalProfileDataAsChartData.tsx delete mode 100644 src/landsat-explorer/components/TrendTool/TrendToolContainer.tsx create mode 100644 src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileChart.tsx create mode 100644 src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx create mode 100644 src/sentinel-1-explorer/components/TemporalProfileTool/index.ts create mode 100644 src/sentinel-1-explorer/components/TemporalProfileTool/useCustomDomain4YScale.tsx create mode 100644 src/sentinel-1-explorer/components/TemporalProfileTool/useTemporalProfileDataAsChartData.tsx rename src/{landsat-explorer/components/TrendTool/TrendChart.tsx => shared/components/TemporalProfileChart/TemporalProfileChart.tsx} (66%) rename src/{landsat-explorer/components/TrendTool/TrendChartContainer.tsx => shared/components/TemporalProfileChart/TemporalProfileChartContainer.tsx} (78%) rename src/{landsat-explorer/components/TrendTool => shared/components/TemporalProfileChart}/helpers.ts (100%) create mode 100644 src/shared/components/TemporalProfileChart/index.ts rename src/shared/components/{TrendToolControls/TrendToolControls.tsx => TemproalProfileTool/TemporalProfileToolControls.tsx} (98%) create mode 100644 src/shared/components/TemproalProfileTool/TemporalProfileToolControlsContainer.tsx create mode 100644 src/shared/components/TemproalProfileTool/TemporalProfileToolHeader.tsx rename src/{landsat-explorer/components/TrendTool => shared/components/TemproalProfileTool}/index.ts (74%) rename src/shared/components/{TrendToolControls => TemproalProfileTool}/useMonthOptions.tsx (100%) create mode 100644 src/shared/components/TemproalProfileTool/useSyncSelectedYearAndMonth.tsx rename src/shared/components/{TrendToolControls => TemproalProfileTool}/useTrendOptions.tsx (100%) create mode 100644 src/shared/components/TemproalProfileTool/useUpdateTemporalProfileToolData.tsx create mode 100644 src/shared/services/helpers/getPixelValues.ts create mode 100644 src/shared/services/helpers/getPixelValuesFromIdentifyTaskResponse.ts create mode 100644 src/shared/services/helpers/splitObjectIdsToSeparateGroups.ts create mode 100644 src/shared/services/landsat-level-2/getLandsatPixelValues.ts delete mode 100644 src/shared/services/landsat-level-2/identify.ts create mode 100644 src/shared/services/sentinel-1/getTemporalProfileData.ts create mode 100644 src/shared/services/sentinel-1/helper.ts diff --git a/src/landsat-explorer/components/Layout/Layout.tsx b/src/landsat-explorer/components/Layout/Layout.tsx index 0d3dd434..85286096 100644 --- a/src/landsat-explorer/components/Layout/Layout.tsx +++ b/src/landsat-explorer/components/Layout/Layout.tsx @@ -29,7 +29,7 @@ import { } from '@shared/store/ImageryScene/selectors'; import { AnimationControl } from '@shared/components/AnimationControl'; -import { TrendTool } from '../TrendTool'; +import { TrendTool } from '../TemporalProfileTool'; import { MaskTool } from '../MaskTool'; import { SwipeLayerSelector } from '@shared/components/SwipeLayerSelector'; import { useSaveAppState2HashParams } from '@shared/hooks/useSaveAppState2HashParams'; diff --git a/src/landsat-explorer/components/PopUp/PopupContainer.tsx b/src/landsat-explorer/components/PopUp/PopupContainer.tsx index 8f5c0ea6..433becc0 100644 --- a/src/landsat-explorer/components/PopUp/PopupContainer.tsx +++ b/src/landsat-explorer/components/PopUp/PopupContainer.tsx @@ -29,13 +29,12 @@ import { // import { popupAnchorLocationChanged } from '@shared/store/Map/reducer'; import { getMainContent } from './helper'; // import { watch } from '@arcgis/core/core/reactiveUtils'; -import { - getPixelValuesFromIdentifyTaskResponse, - identify, -} from '@shared/services/landsat-level-2/identify'; import { getFormattedLandsatScenes } from '@shared/services/landsat-level-2/getLandsatScenes'; import { formatInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone'; import { MapPopup, MapPopupData } from '@shared/components/MapPopup/MapPopup'; +import { identify } from '@shared/services/helpers/identify'; +import { LANDSAT_LEVEL_2_SERVICE_URL } from '@shared/services/landsat-level-2/config'; +import { getPixelValuesFromIdentifyTaskResponse } from '@shared/services/helpers/getPixelValuesFromIdentifyTaskResponse'; // import { canBeConvertedToNumber } from '@shared/utils/snippets/canBeConvertedToNumber'; type Props = { @@ -76,10 +75,11 @@ export const PopupContainer: FC = ({ mapView }) => { controller = new AbortController(); const res = await identify({ + serviceURL: LANDSAT_LEVEL_2_SERVICE_URL, point: mapPoint, - objectId: + objectIds: mode !== 'dynamic' - ? queryParams?.objectIdOfSelectedScene + ? [queryParams?.objectIdOfSelectedScene] : null, abortController: controller, }); diff --git a/src/landsat-explorer/components/TemporalProfileTool/LandsatTemporalProfileChart.tsx b/src/landsat-explorer/components/TemporalProfileTool/LandsatTemporalProfileChart.tsx new file mode 100644 index 00000000..520b9d15 --- /dev/null +++ b/src/landsat-explorer/components/TemporalProfileTool/LandsatTemporalProfileChart.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import { useTemporalProfileDataAsChartData } from './useTemporalProfileDataAsChartData'; +import { useCustomDomain4YScale } from './useCustomDomain4YScale'; +import { TemporalProfileChart } from '@shared/components/TemporalProfileChart'; + +export const LandsatTemporalProfileChart = () => { + const chartData = useTemporalProfileDataAsChartData(); + + const customDomain4YScale = useCustomDomain4YScale(chartData); + + return ( + + ); +}; diff --git a/src/landsat-explorer/components/TemporalProfileTool/LandsatTemporalProfileTool.tsx b/src/landsat-explorer/components/TemporalProfileTool/LandsatTemporalProfileTool.tsx new file mode 100644 index 00000000..948ce7c6 --- /dev/null +++ b/src/landsat-explorer/components/TemporalProfileTool/LandsatTemporalProfileTool.tsx @@ -0,0 +1,207 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AnalysisToolHeader } from '@shared/components/AnalysisToolHeader'; +import { + TemporalProfileToolControls, + TemporalProfileToolHeader, +} from '@shared/components/TemproalProfileTool'; +// import { getProfileData } from '@shared/services/landsat-2/getProfileData'; +import { + // acquisitionMonth4TrendToolChanged, + // // samplingTemporalResolutionChanged, + // trendToolDataUpdated, + selectedIndex4TrendToolChanged, + // queryLocation4TrendToolChanged, + // trendToolOptionChanged, + // acquisitionYear4TrendToolChanged, +} from '@shared/store/TrendTool/reducer'; +// import { +// selectAcquisitionMonth4TrendTool, +// // selectActiveAnalysisTool, +// // selectSamplingTemporalResolution, +// selectTrendToolData, +// selectQueryLocation4TrendTool, +// selectSelectedIndex4TrendTool, +// selectAcquisitionYear4TrendTool, +// selectTrendToolOption, +// } from '@shared/store/TrendTool/selectors'; +// import { +// resetTrendToolData, +// updateQueryLocation4TrendTool, +// updateTrendToolData, +// } from '@shared/store/TrendTool/thunks'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import { useDispatch } from 'react-redux'; +import { useSelector } from 'react-redux'; +// import { +// // getFormatedDateString, +// getMonthFromFormattedDateString, +// getYearFromFormattedDateString, +// } from '@shared/utils/date-time/formatDateString'; +import { + selectActiveAnalysisTool, + // selectQueryParams4MainScene, + selectQueryParams4SceneInSelectedMode, +} from '@shared/store/ImageryScene/selectors'; +import { SpectralIndex, TemporalProfileData } from '@typing/imagery-service'; +// import { selectLandsatMissionsToBeExcluded } from '@shared/store/Landsat/selectors'; +import { TrendChart } from '.'; +// import { batch } from 'react-redux'; +// import { debounce } from '@shared/utils/snippets/debounce'; +import { useUpdateTemporalProfileToolData } from '@shared/components/TemproalProfileTool/useUpdateTemporalProfileToolData'; +import { useSyncSelectedYearAndMonth4TemporalProfileTool } from '@shared/components/TemproalProfileTool/useSyncSelectedYearAndMonth'; +import { + FetchTemporalProfileDataFunc, + IntersectWithImagerySceneFunc, +} from '@shared/store/TrendTool/thunks'; +import { Point } from '@arcgis/core/geometry'; +import { intersectWithLandsatScene } from '@shared/services/landsat-level-2/getLandsatScenes'; +import { getDataForTrendTool } from '@shared/services/landsat-level-2/getTemporalProfileData'; +import { selectLandsatMissionsToBeExcluded } from '@shared/store/Landsat/selectors'; +import { selectError4TemporalProfileTool } from '@shared/store/TrendTool/selectors'; + +export const LandsatTemporalProfileTool = () => { + const dispatch = useDispatch(); + + const tool = useSelector(selectActiveAnalysisTool); + + const missionsToBeExcluded = useSelector(selectLandsatMissionsToBeExcluded); + + const { rasterFunctionName, acquisitionDate, objectIdOfSelectedScene } = + useSelector(selectQueryParams4SceneInSelectedMode) || {}; + + /** + * this function will be invoked by the updateTemporalProfileToolData thunk function + * to check if the query location intersects with the selected landsat scene using the input object ID. + */ + const intersectWithImageryScene = useCallback( + async ( + queryLocation: Point, + objectId: number, + abortController: AbortController + ) => { + const res = await intersectWithLandsatScene( + queryLocation, + objectId, + abortController + ); + + return res; + }, + [] + ); + + /** + * this function will be invoked by the updateTemporalProfileToolData thunk function + * to retrieve the temporal profile data from landsat service + */ + const fetchTemporalProfileData: FetchTemporalProfileDataFunc = useCallback( + async ( + queryLocation: Point, + acquisitionMonth: number, + acquisitionYear: number, + abortController: AbortController + ) => { + // console.log('calling fetchTemporalProfileData for landsat') + + const data: TemporalProfileData[] = await getDataForTrendTool({ + queryLocation, + acquisitionMonth, + acquisitionYear, + abortController, + missionsToBeExcluded, + }); + + return data; + }, + [missionsToBeExcluded] + ); + + /** + * This custom hook triggers updateTemporalProfileToolData thunk function to get temporal profile data when query location, acquisition date or other options are changed. + */ + useUpdateTemporalProfileToolData( + fetchTemporalProfileData, + intersectWithImageryScene + ); + + /** + * This custom hook update the `acquisitionMonth` and `acquisitionMonth` property of the Trend Tool State + * to keep it in sync with the acquisition date of selected imagery scene + */ + useSyncSelectedYearAndMonth4TemporalProfileTool(); + + useEffect(() => { + if (rasterFunctionName) { + return; + } + + // when user selects a different renderer for the selected landsat scene, + // we want to try to sync the selected spectral index for the profile tool because + // that is probably what the user is interested in seeing + let spectralIndex: SpectralIndex = null; + + if (/Temperature/i.test(rasterFunctionName)) { + spectralIndex = 'temperature farhenheit'; + } else if (/NDVI/.test(rasterFunctionName)) { + spectralIndex = 'vegetation'; + } + + if (spectralIndex) { + dispatch(selectedIndex4TrendToolChanged(spectralIndex)); + } + }, [rasterFunctionName]); + + if (tool !== 'trend') { + return null; + } + + return ( +
+ + +
+ +
+ + +
+ ); +}; diff --git a/src/landsat-explorer/components/TemporalProfileTool/TrendChart.tsx b/src/landsat-explorer/components/TemporalProfileTool/TrendChart.tsx new file mode 100644 index 00000000..f22f05ed --- /dev/null +++ b/src/landsat-explorer/components/TemporalProfileTool/TrendChart.tsx @@ -0,0 +1,233 @@ +// /* Copyright 2024 Esri +// * +// * Licensed under the Apache License Version 2.0 (the "License"); +// * you may not use this file except in compliance with the License. +// * You may obtain a copy of the License at +// * +// * http://www.apache.org/licenses/LICENSE-2.0 +// * +// * Unless required by applicable law or agreed to in writing, software +// * distributed under the License is distributed on an "AS IS" BASIS, +// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// * See the License for the specific language governing permissions and +// * limitations under the License. +// */ + +// import React, { FC, useMemo } from 'react'; +// // import { useSelector } from 'react-redux'; +// import { LineChartBasic } from '@vannizhang/react-d3-charts'; +// // import { selectQueryParams4SceneInSelectedMode } from '@shared/store/ImageryScene/selectors'; +// import { +// formattedDateString2Unixtimestamp, +// getMonthFromFormattedDateString, +// getYearFromFormattedDateString, +// } from '@shared/utils/date-time/formatDateString'; +// import { VerticalReferenceLineData } from '@vannizhang/react-d3-charts/dist/LineChart/types'; +// import { DATE_FORMAT } from '@shared/constants/UI'; +// import { TemporalProfileData } from '@typing/imagery-service'; +// import { SpectralIndex } from '@typing/imagery-service'; +// import { LineChartDataItem } from '@vannizhang/react-d3-charts/dist/LineChart/types'; +// // import { +// // LANDSAT_SURFACE_TEMPERATURE_MIN_CELSIUS, +// // LANDSAT_SURFACE_TEMPERATURE_MIN_FAHRENHEIT, +// // LANDSAT_SURFACE_TEMPERATURE_MAX_CELSIUS, +// // LANDSAT_SURFACE_TEMPERATURE_MAX_FAHRENHEIT, +// // } from '@shared/services/landsat-level-2/config'; +// // import { calcSpectralIndex } from '@shared/services/landsat-level-2/helpers'; +// // import { selectTrendToolOption } from '@shared/store/TrendTool/selectors'; +// // import { getMonthAbbreviation } from '@shared/utils/date-time/getMonthName'; +// import { TrendToolOption } from '@shared/store/TrendTool/reducer'; +// import { calcTrendLine } from '../../../shared/components/TemporalProfileChart/helpers'; +// import { getMonthAbbreviation } from '@shared/utils/date-time/monthHelpers'; +// import { formatInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone'; + +// type Props = { +// /** +// * data that will be used to plot the Line chart for the Temporal Profile Tool +// */ +// chartData: LineChartDataItem[]; +// /** +// * custom domain for the Y-Scale of the Line chart +// */ +// customDomain4YScale: number[]; +// /** +// * user selected trend tool option +// */ +// trendToolOption: TrendToolOption; +// /** +// * user selected acquisition year for the 'month-to-month' option +// */ +// acquisitionYear: number; +// /** +// * user selected acquisition date in format of (YYYY-MM-DD) +// * this date will be rendered as a vertical reference line in the trend chart +// */ +// selectedAcquisitionDate: string; +// onClickHandler: (index: number) => void; +// }; + +// export const TemporalProfileChart: FC = ({ +// chartData, +// customDomain4YScale, +// trendToolOption, +// acquisitionYear, +// selectedAcquisitionDate, +// onClickHandler, +// }: Props) => { +// // const trendToolOption = useSelector(selectTrendToolOption); + +// // const queryParams4SelectedScene = +// // useSelector(selectQueryParams4SceneInSelectedMode) || {}; + +// const customDomain4XScale = useMemo(() => { +// if (!chartData.length) { +// return null; +// } + +// if (trendToolOption === 'month-to-month') { +// // use 1 (for Janurary) and 12 (for December) as the x domain +// return [1, 12]; +// } + +// let xMax = chartData[chartData.length - 1].x; + +// // In the "year-to-year" option, we aim to display the indicator line for the selected acquisition date on the chart. +// // To achieve this, we adjust the xMax value to ensure it fits within the chart's boundaries. +// // In the "month-to-month" option, we only display the indicator line for the selected acquisition date if it falls within the user-selected acquisition year. +// if (trendToolOption === 'year-to-year' && selectedAcquisitionDate) { +// xMax = Math.max( +// // user selected acquisition date in Calendar component +// formattedDateString2Unixtimestamp(selectedAcquisitionDate), +// // acquisition date of the last item in the chart data +// chartData[chartData.length - 1].x +// ); +// } + +// const xMin = chartData[0].x; + +// return [xMin, xMax]; +// }, [chartData, selectedAcquisitionDate, trendToolOption]); + +// const trendLineData = useMemo(() => { +// if (!chartData || !chartData.length) { +// return []; +// } + +// const yVals = chartData.map((d) => d.y); + +// const [y1, y2] = calcTrendLine(yVals); + +// return [ +// { +// y1, +// y2, +// }, +// ]; +// }, [chartData]); + +// const getData4VerticalReferenceLine = (): VerticalReferenceLineData[] => { +// if (!selectedAcquisitionDate || !chartData.length) { +// return null; +// } + +// const timestampOfAcquisitionDate = formattedDateString2Unixtimestamp( +// selectedAcquisitionDate +// ); + +// if (trendToolOption === 'month-to-month') { +// // only show vertical reference line if the year of user selected acquisition date +// // is the same as user selected acquisition year of the trend tool +// return getYearFromFormattedDateString(selectedAcquisitionDate) === +// acquisitionYear +// ? [ +// { +// x: getMonthFromFormattedDateString( +// selectedAcquisitionDate +// ), +// tooltip: `Selected Image:
${formatInUTCTimeZone( +// timestampOfAcquisitionDate, +// DATE_FORMAT +// )}`, +// }, +// ] +// : []; +// } + +// return [ +// { +// x: timestampOfAcquisitionDate, +// tooltip: `Selected Image:
${formatInUTCTimeZone( +// timestampOfAcquisitionDate, +// DATE_FORMAT +// )}`, +// }, +// ]; +// }; + +// if (!chartData || !chartData.length) { +// return null; +// } + +// return ( +//
+// { +// if (!val) { +// return ''; +// } + +// if (trendToolOption === 'year-to-year') { +// return formatInUTCTimeZone(val, 'yyyy'); +// } + +// return getMonthAbbreviation(val).slice(0, 1); +// }, +// }} +// verticalReferenceLines={getData4VerticalReferenceLine()} +// horizontalReferenceLines={trendLineData} +// onClick={onClickHandler} +// /> +//
+// ); +// }; diff --git a/src/landsat-explorer/components/TemporalProfileTool/TrendChartContainer.tsx b/src/landsat-explorer/components/TemporalProfileTool/TrendChartContainer.tsx new file mode 100644 index 00000000..203cfe67 --- /dev/null +++ b/src/landsat-explorer/components/TemporalProfileTool/TrendChartContainer.tsx @@ -0,0 +1,131 @@ +// /* Copyright 2024 Esri +// * +// * Licensed under the Apache License Version 2.0 (the "License"); +// * you may not use this file except in compliance with the License. +// * You may obtain a copy of the License at +// * +// * http://www.apache.org/licenses/LICENSE-2.0 +// * +// * Unless required by applicable law or agreed to in writing, software +// * distributed under the License is distributed on an "AS IS" BASIS, +// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// * See the License for the specific language governing permissions and +// * limitations under the License. +// */ + +// import { +// selectTrendToolData, +// selectQueryLocation4TrendTool, +// selectAcquisitionYear4TrendTool, +// selectTrendToolOption, +// selectIsLoadingData4TrendingTool, +// selectError4TemporalProfileTool, +// } from '@shared/store/TrendTool/selectors'; +// import React, { FC, useEffect, useMemo, useState } from 'react'; +// import { useDispatch } from 'react-redux'; +// import { useSelector } from 'react-redux'; +// import { TemporalProfileChart } from './TrendChart'; +// import { +// updateAcquisitionDate, +// updateObjectIdOfSelectedScene, +// } from '@shared/store/ImageryScene/thunks'; + +// import { centerChanged } from '@shared/store/Map/reducer'; +// import { batch } from 'react-redux'; +// import { selectQueryParams4MainScene } from '@shared/store/ImageryScene/selectors'; +// import { LineChartDataItem } from '@vannizhang/react-d3-charts/dist/LineChart/types'; + +// type Props = { +// /** +// * data that will be used to plot the Line chart for the Temporal Profile Tool +// */ +// chartData: LineChartDataItem[]; +// /** +// * custom domain for the Y-Scale of the Line chart +// */ +// customDomain4YScale: number[]; +// }; + +// export const TrendChartContainer:FC = ({ +// chartData, +// customDomain4YScale +// }) => { +// const dispatch = useDispatch(); + +// const queryLocation = useSelector(selectQueryLocation4TrendTool); + +// const acquisitionYear = useSelector(selectAcquisitionYear4TrendTool); + +// const temporalProfileData = useSelector(selectTrendToolData); + +// const queryParams4MainScene = useSelector(selectQueryParams4MainScene); + +// const trendToolOption = useSelector(selectTrendToolOption); + +// const isLoading = useSelector(selectIsLoadingData4TrendingTool); + +// const error = useSelector(selectError4TemporalProfileTool); + +// const message = useMemo(() => { +// if (isLoading) { +// return 'fetching temporal profile data'; +// } + +// if (!temporalProfileData.length) { +// return 'Select a scene and click a location within that scene to generate a temporal profile for the selected category.'; +// } + +// return ''; +// }, [temporalProfileData, isLoading]); + +// if (message) { +// return ( +//
+// {isLoading && } +//

{message}

+//
+// ); +// } + +// if (error) { +// return ( +//
+// {error} +//
+// ); +// } + +// return ( +// { +// // select user clicked temporal profile chart data element +// const clickedDataItem = temporalProfileData[index]; + +// if (!clickedDataItem) { +// return; +// } + +// batch(() => { +// // update the center of the map using user selected query location to +// // invoke query that fetches the landsat scenes that intersects with the query location +// dispatch(centerChanged([queryLocation.x, queryLocation.y])); + +// // unselect the selected imagery scene so that a new scene can be selected +// dispatch(updateObjectIdOfSelectedScene(null)); + +// dispatch( +// updateAcquisitionDate( +// clickedDataItem.formattedAcquisitionDate, +// true +// ) +// ); +// }); +// }} +// /> +// ); +// }; diff --git a/src/shared/components/TrendToolControls/index.ts b/src/landsat-explorer/components/TemporalProfileTool/index.ts similarity index 76% rename from src/shared/components/TrendToolControls/index.ts rename to src/landsat-explorer/components/TemporalProfileTool/index.ts index ba5316cd..068b5ae7 100644 --- a/src/shared/components/TrendToolControls/index.ts +++ b/src/landsat-explorer/components/TemporalProfileTool/index.ts @@ -13,4 +13,5 @@ * limitations under the License. */ -export { TrendToolControls } from './TrendToolControls'; +export { LandsatTemporalProfileTool as TrendTool } from './LandsatTemporalProfileTool'; +export { LandsatTemporalProfileChart as TrendChart } from './LandsatTemporalProfileChart'; diff --git a/src/landsat-explorer/components/TemporalProfileTool/useCustomDomain4YScale.tsx b/src/landsat-explorer/components/TemporalProfileTool/useCustomDomain4YScale.tsx new file mode 100644 index 00000000..8a75b237 --- /dev/null +++ b/src/landsat-explorer/components/TemporalProfileTool/useCustomDomain4YScale.tsx @@ -0,0 +1,51 @@ +import { selectSelectedIndex4TrendTool } from '@shared/store/TrendTool/selectors'; +import { SpectralIndex } from '@typing/imagery-service'; +import { LineChartDataItem } from '@vannizhang/react-d3-charts/dist/LineChart/types'; +import React, { useMemo } from 'react'; +import { useSelector } from 'react-redux'; +import { + LANDSAT_SURFACE_TEMPERATURE_MIN_CELSIUS, + LANDSAT_SURFACE_TEMPERATURE_MIN_FAHRENHEIT, + LANDSAT_SURFACE_TEMPERATURE_MAX_CELSIUS, + LANDSAT_SURFACE_TEMPERATURE_MAX_FAHRENHEIT, +} from '@shared/services/landsat-level-2/config'; + +export const useCustomDomain4YScale = (chartData: LineChartDataItem[]) => { + const spectralIndex: SpectralIndex = useSelector( + selectSelectedIndex4TrendTool + ) as SpectralIndex; + + const customDomain4YScale = useMemo(() => { + const yValues = chartData.map((d) => d.y); + + // boundary of y axis, for spectral index, the boundary should be -1 and 1 + let yUpperLimit = 1; + let yLowerLimit = -1; + + // temperature is handled differently as we display the actual values in the chart + if (spectralIndex === 'temperature farhenheit') { + yLowerLimit = LANDSAT_SURFACE_TEMPERATURE_MIN_FAHRENHEIT; + yUpperLimit = LANDSAT_SURFACE_TEMPERATURE_MAX_FAHRENHEIT; + } + + if (spectralIndex === 'temperature celcius') { + yLowerLimit = LANDSAT_SURFACE_TEMPERATURE_MIN_CELSIUS; + yUpperLimit = LANDSAT_SURFACE_TEMPERATURE_MAX_CELSIUS; + } + + // get min and max from the data + let ymin = Math.min(...yValues); + let ymax = Math.max(...yValues); + + // get range between min and max from the data + const yRange = ymax - ymin; + + // adjust ymin and ymax to add 10% buffer to it, but also need to make sure it fits in the upper and lower limit + ymin = Math.max(yLowerLimit, ymin - yRange * 0.1); + ymax = Math.min(yUpperLimit, ymax + yRange * 0.1); + + return [ymin, ymax]; + }, [chartData]); + + return customDomain4YScale; +}; diff --git a/src/landsat-explorer/components/TemporalProfileTool/useTemporalProfileDataAsChartData.tsx b/src/landsat-explorer/components/TemporalProfileTool/useTemporalProfileDataAsChartData.tsx new file mode 100644 index 00000000..37f176a2 --- /dev/null +++ b/src/landsat-explorer/components/TemporalProfileTool/useTemporalProfileDataAsChartData.tsx @@ -0,0 +1,116 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { FC, useMemo } from 'react'; +import { useSelector } from 'react-redux'; +import { + selectTrendToolData, + selectSelectedIndex4TrendTool, + selectTrendToolOption, +} from '@shared/store/TrendTool/selectors'; +import { TemporalProfileData } from '@typing/imagery-service'; +import { SpectralIndex } from '@typing/imagery-service'; +import { LineChartDataItem } from '@vannizhang/react-d3-charts/dist/LineChart/types'; +import { + LANDSAT_SURFACE_TEMPERATURE_MIN_CELSIUS, + LANDSAT_SURFACE_TEMPERATURE_MIN_FAHRENHEIT, + LANDSAT_SURFACE_TEMPERATURE_MAX_CELSIUS, + LANDSAT_SURFACE_TEMPERATURE_MAX_FAHRENHEIT, +} from '@shared/services/landsat-level-2/config'; +import { calcSpectralIndex } from '@shared/services/landsat-level-2/helpers'; +import { formatInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone'; + +/** + * Converts Landsat temporal profile data to chart data. + * @param temporalProfileData - Array of temporal profile data. + * @param spectralIndex - Spectral index to calculate the value for each data point. + * @param month2month - if true, user is trying to plot month to month trend line for a selected year. + * @returns An array of QuickD3ChartDataItem objects representing the chart data. + * + */ +const convertLandsatTemporalProfileData2ChartData = ( + temporalProfileData: TemporalProfileData[], + spectralIndex: SpectralIndex, + month2month?: boolean +): LineChartDataItem[] => { + if (!temporalProfileData || !temporalProfileData.length) { + return []; + } + + const data = temporalProfileData.map((d) => { + const { acquisitionDate, values } = d; + + // calculate the spectral index that will be used as the y value for each chart vertex + let y = calcSpectralIndex(spectralIndex, values); + + let yMin = -1; + let yMax = 1; + + // justify the y value for surface temperature index to make it not go below the hardcoded y min + if ( + spectralIndex === 'temperature farhenheit' || + spectralIndex === 'temperature celcius' + ) { + yMin = + spectralIndex === 'temperature farhenheit' + ? LANDSAT_SURFACE_TEMPERATURE_MIN_FAHRENHEIT + : LANDSAT_SURFACE_TEMPERATURE_MIN_CELSIUS; + + yMax = + spectralIndex === 'temperature farhenheit' + ? LANDSAT_SURFACE_TEMPERATURE_MAX_FAHRENHEIT + : LANDSAT_SURFACE_TEMPERATURE_MAX_CELSIUS; + } + + // y should not go below y min + y = Math.max(y, yMin); + + // y should not go beyond y max + y = Math.min(y, yMax); + + const tooltip = `${formatInUTCTimeZone( + acquisitionDate, + 'LLL yyyy' + )}: ${y.toFixed(2)}`; + + return { + x: month2month ? d.acquisitionMonth : d.acquisitionDate, + y, + tooltip, + }; + }); + + return data; +}; + +export const useTemporalProfileDataAsChartData = () => { + const temporalProfileData = useSelector(selectTrendToolData); + + const spectralIndex: SpectralIndex = useSelector( + selectSelectedIndex4TrendTool + ) as SpectralIndex; + + const trendToolOption = useSelector(selectTrendToolOption); + + const chartData = useMemo(() => { + return convertLandsatTemporalProfileData2ChartData( + temporalProfileData, + spectralIndex, + trendToolOption === 'month-to-month' + ); + }, [temporalProfileData, spectralIndex, trendToolOption]); + + return chartData; +}; diff --git a/src/landsat-explorer/components/TrendTool/TrendToolContainer.tsx b/src/landsat-explorer/components/TrendTool/TrendToolContainer.tsx deleted file mode 100644 index edda4fb3..00000000 --- a/src/landsat-explorer/components/TrendTool/TrendToolContainer.tsx +++ /dev/null @@ -1,247 +0,0 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { AnalysisToolHeader } from '@shared/components/AnalysisToolHeader'; -import { TrendToolControls } from '@shared/components/TrendToolControls'; -// import { getProfileData } from '@shared/services/landsat-2/getProfileData'; -import { - acquisitionMonth4TrendToolChanged, - // samplingTemporalResolutionChanged, - trendToolDataUpdated, - spectralIndex4TrendToolChanged, - queryLocation4TrendToolChanged, - trendToolOptionChanged, - acquisitionYear4TrendToolChanged, -} from '@shared/store/TrendTool/reducer'; -import { - selectAcquisitionMonth4TrendTool, - // selectActiveAnalysisTool, - // selectSamplingTemporalResolution, - selectTrendToolData, - selectQueryLocation4TrendTool, - selectSpectralIndex4TrendTool, - selectAcquisitionYear4TrendTool, - selectTrendToolOption, -} from '@shared/store/TrendTool/selectors'; -import { - resetTrendToolData, - updateQueryLocation4TrendTool, - updateTrendToolData, -} from '@shared/store/TrendTool/thunks'; -import React, { useCallback, useEffect, useMemo, useState } from 'react'; -import { useDispatch } from 'react-redux'; -import { useSelector } from 'react-redux'; -import { - // getFormatedDateString, - getMonthFromFormattedDateString, - getYearFromFormattedDateString, -} from '@shared/utils/date-time/formatDateString'; -import { - selectActiveAnalysisTool, - selectQueryParams4MainScene, - selectQueryParams4SceneInSelectedMode, -} from '@shared/store/ImageryScene/selectors'; -import { SpectralIndex } from '@typing/imagery-service'; -import { selectLandsatMissionsToBeExcluded } from '@shared/store/Landsat/selectors'; -import { TrendChart } from '.'; -import { batch } from 'react-redux'; -import { debounce } from '@shared/utils/snippets/debounce'; - -export const TrendToolContainer = () => { - const dispatch = useDispatch(); - - const tool = useSelector(selectActiveAnalysisTool); - - const queryLocation = useSelector(selectQueryLocation4TrendTool); - - const acquisitionMonth = useSelector(selectAcquisitionMonth4TrendTool); - - const acquisitionYear = useSelector(selectAcquisitionYear4TrendTool); - - const selectedTrendToolOption = useSelector(selectTrendToolOption); - - const spectralIndex = useSelector(selectSpectralIndex4TrendTool); - - const { rasterFunctionName, acquisitionDate, objectIdOfSelectedScene } = - useSelector(selectQueryParams4SceneInSelectedMode) || {}; - - const missionsToBeExcluded = useSelector(selectLandsatMissionsToBeExcluded); - - const [error, setError] = useState(); - - const updateTrendToolDataDebounced = useCallback( - debounce(async () => { - try { - setError(null); - await dispatch(updateTrendToolData()); - } catch (err) { - setError(err); - } - }, 50), - [] - ); - - useEffect(() => { - if (rasterFunctionName) { - return; - } - - // when user selects a different renderer for the selected landsat scene, - // we want to try to sync the selected spectral index for the profile tool because - // that is probably what the user is interested in seeing - let spectralIndex: SpectralIndex = null; - - if (/Temperature/i.test(rasterFunctionName)) { - spectralIndex = 'temperature farhenheit'; - } else if (/NDVI/.test(rasterFunctionName)) { - spectralIndex = 'vegetation'; - } - - if (spectralIndex) { - dispatch(spectralIndex4TrendToolChanged(spectralIndex)); - } - }, [rasterFunctionName]); - - useEffect(() => { - // remove query location when selected acquisition date is removed - if (!acquisitionDate) { - dispatch(updateQueryLocation4TrendTool(null)); - return; - } - - const month = getMonthFromFormattedDateString(acquisitionDate); - - const year = getYearFromFormattedDateString(acquisitionDate); - - batch(() => { - dispatch(acquisitionMonth4TrendToolChanged(month)); - dispatch(acquisitionYear4TrendToolChanged(year)); - }); - }, [acquisitionDate]); - - // triggered when user selects a new acquisition month that will be used to draw the "year-to-year" trend data - useEffect(() => { - (async () => { - if (tool !== 'trend') { - return; - } - - if (selectedTrendToolOption !== 'year-to-year') { - return; - } - - updateTrendToolDataDebounced(); - })(); - }, [ - acquisitionMonth, - queryLocation, - tool, - selectedTrendToolOption, - missionsToBeExcluded, - ]); - - // triggered when user selects a new acquisition year that will be used to draw the "month-to-month" trend data - useEffect(() => { - (async () => { - if (tool !== 'trend') { - return; - } - - if (selectedTrendToolOption !== 'month-to-month') { - return; - } - - updateTrendToolDataDebounced(); - })(); - }, [ - acquisitionYear, - queryLocation, - tool, - selectedTrendToolOption, - missionsToBeExcluded, - ]); - - if (tool !== 'trend') { - return null; - } - - return ( -
- { - dispatch( - spectralIndex4TrendToolChanged(val as SpectralIndex) - ); - }} - tooltipText={`The least cloudy scenes from the selected time interval will be sampled to show a temporal trend for the selected point and category.`} - /> - -
- {error ? ( -
- - {error?.message || - 'failed to fetch data for trend tool'} - -
- ) : ( - - )} -
- - 0 ? true : false - } - trendOptionOnChange={(data) => { - dispatch(trendToolOptionChanged(data)); - }} - closeButtonOnClick={() => { - // dispatch(trendToolDataUpdated([])); - // dispatch(queryLocation4TrendToolChanged(null)); - dispatch(resetTrendToolData()); - }} - /> -
- ); -}; diff --git a/src/landsat-surface-temp/components/TrendTool/TrendToolContainer.tsx b/src/landsat-surface-temp/components/TrendTool/TrendToolContainer.tsx index eb0f5d7a..a42f8629 100644 --- a/src/landsat-surface-temp/components/TrendTool/TrendToolContainer.tsx +++ b/src/landsat-surface-temp/components/TrendTool/TrendToolContainer.tsx @@ -20,7 +20,7 @@ import { acquisitionMonth4TrendToolChanged, // samplingTemporalResolutionChanged, // trendToolDataUpdated, - spectralIndex4TrendToolChanged, + selectedIndex4TrendToolChanged, // queryLocation4TrendToolChanged, // trendToolOptionChanged, acquisitionYear4TrendToolChanged, @@ -31,13 +31,13 @@ import { // selectSamplingTemporalResolution, // selectTrendToolData, selectQueryLocation4TrendTool, - selectSpectralIndex4TrendTool, + selectSelectedIndex4TrendTool, // selectAcquisitionYear4TrendTool, selectTrendToolOption, // selectIsLoadingData4TrendingTool, } from '@shared/store/TrendTool/selectors'; -import { updateTrendToolData } from '@shared/store/TrendTool/thunks'; -import React, { useEffect, useState } from 'react'; +import { updateTemporalProfileToolData } from '@shared/store/TrendTool/thunks'; +import React, { useCallback, useEffect, useState } from 'react'; import { useDispatch } from 'react-redux'; import { useSelector } from 'react-redux'; // import { TemporalProfileChart } from './TrendChart'; @@ -53,26 +53,31 @@ import { selectActiveAnalysisTool, selectQueryParams4MainScene, } from '@shared/store/ImageryScene/selectors'; -import { SpectralIndex } from '@typing/imagery-service'; +import { SpectralIndex, TemporalProfileData } from '@typing/imagery-service'; import { selectLandsatMissionsToBeExcluded } from '@shared/store/Landsat/selectors'; -import { TrendChart } from '@landsat-explorer/components/TrendTool'; +import { TrendChart } from '@landsat-explorer/components/TemporalProfileTool'; +import { useUpdateTemporalProfileToolData } from '@shared/components/TemproalProfileTool/useUpdateTemporalProfileToolData'; +import { Point } from '@arcgis/core/geometry'; +import { getDataForTrendTool } from '@shared/services/landsat-level-2/getTemporalProfileData'; +import { intersectWithLandsatScene } from '@shared/services/landsat-level-2/getLandsatScenes'; +import { useSyncSelectedYearAndMonth4TemporalProfileTool } from '@shared/components/TemproalProfileTool/useSyncSelectedYearAndMonth'; export const TrendToolContainer = () => { const dispatch = useDispatch(); const tool = useSelector(selectActiveAnalysisTool); - const queryLocation = useSelector(selectQueryLocation4TrendTool); + // const queryLocation = useSelector(selectQueryLocation4TrendTool); - const acquisitionMonth = useSelector(selectAcquisitionMonth4TrendTool); + // const acquisitionMonth = useSelector(selectAcquisitionMonth4TrendTool); // const acquisitionYear = useSelector(selectAcquisitionYear4TrendTool); - const selectedTrendToolOption = useSelector(selectTrendToolOption); + // const selectedTrendToolOption = useSelector(selectTrendToolOption); // const temporalProfileData = useSelector(selectTrendToolData); - const spectralIndex = useSelector(selectSpectralIndex4TrendTool); + const spectralIndex = useSelector(selectSelectedIndex4TrendTool); const queryParams4MainScene = useSelector(selectQueryParams4MainScene); @@ -82,48 +87,94 @@ export const TrendToolContainer = () => { // const trendToolOption = useSelector(selectTrendToolOption); - useEffect(() => { - if (!queryParams4MainScene?.acquisitionDate) { - return; - } - - const month = getMonthFromFormattedDateString( - queryParams4MainScene?.acquisitionDate - ); - - const year = getYearFromFormattedDateString( - queryParams4MainScene?.acquisitionDate - ); - - dispatch(acquisitionMonth4TrendToolChanged(month)); - - dispatch(acquisitionYear4TrendToolChanged(year)); - }, [queryParams4MainScene?.acquisitionDate]); - - // triggered when user selects a new acquisition month that will be used to draw the "year-to-year" trend data - useEffect(() => { - (async () => { - if (tool !== 'trend') { - return; - } - - if (selectedTrendToolOption !== 'year-to-year') { - return; - } - - try { - await dispatch(updateTrendToolData()); - } catch (err) { - console.log(err); - } - })(); - }, [ - queryLocation, - tool, - acquisitionMonth, - selectedTrendToolOption, - missionsToBeExcluded, - ]); + const intersectWithImageryScene = useCallback( + async ( + queryLocation: Point, + objectId: number, + abortController: AbortController + ) => { + const res = await intersectWithLandsatScene( + queryLocation, + objectId, + abortController + ); + + return res; + }, + [] + ); + + const fetchTemporalProfileData = useCallback( + async ( + queryLocation: Point, + acquisitionMonth: number, + acquisitionYear: number, + abortController: AbortController + ) => { + // console.log('calling fetchTemporalProfileData for landsat') + + const data: TemporalProfileData[] = await getDataForTrendTool({ + queryLocation, + acquisitionMonth, + acquisitionYear, + abortController, + missionsToBeExcluded, + }); + + return data; + }, + [missionsToBeExcluded] + ); + + // useEffect(() => { + // if (!queryParams4MainScene?.acquisitionDate) { + // return; + // } + + // const month = getMonthFromFormattedDateString( + // queryParams4MainScene?.acquisitionDate + // ); + + // const year = getYearFromFormattedDateString( + // queryParams4MainScene?.acquisitionDate + // ); + + // dispatch(acquisitionMonth4TrendToolChanged(month)); + + // dispatch(acquisitionYear4TrendToolChanged(year)); + // }, [queryParams4MainScene?.acquisitionDate]); + + // // triggered when user selects a new acquisition month that will be used to draw the "year-to-year" trend data + // useEffect(() => { + // (async () => { + // if (tool !== 'trend') { + // return; + // } + + // if (selectedTrendToolOption !== 'year-to-year') { + // return; + // } + + // // try { + // // await dispatch(updateTemporalProfileToolData()); + // // } catch (err) { + // // console.log(err); + // // } + // })(); + // }, [ + // queryLocation, + // tool, + // acquisitionMonth, + // selectedTrendToolOption, + // missionsToBeExcluded, + // ]); + + useSyncSelectedYearAndMonth4TemporalProfileTool(); + + useUpdateTemporalProfileToolData( + fetchTemporalProfileData, + intersectWithImageryScene + ); if (tool !== 'trend') { return null; @@ -146,7 +197,7 @@ export const TrendToolContainer = () => { selectedValue={spectralIndex} dropdownMenuSelectedItemOnChange={(val) => { dispatch( - spectralIndex4TrendToolChanged(val as SpectralIndex) + selectedIndex4TrendToolChanged(val as SpectralIndex) ); }} tooltipText={`The least-cloudy scene from the selected month will be sampled across all years of the imagery archive.`} diff --git a/src/sentinel-1-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx b/src/sentinel-1-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx index 41d39819..15059d8b 100644 --- a/src/sentinel-1-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx +++ b/src/sentinel-1-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx @@ -3,6 +3,11 @@ import { AnalysisToolSelector } from '@shared/components/AnalysisToolSelector'; import { AnalyzeToolSelectorData } from '@shared/components/AnalysisToolSelector/AnalysisToolSelectorContainer'; const data: AnalyzeToolSelectorData[] = [ + { + tool: 'trend', + title: 'Temporal', + subtitle: 'profile', + }, { tool: 'change', title: 'Change', @@ -15,6 +20,6 @@ const data: AnalyzeToolSelectorData[] = [ }, ]; -export const AnalyzeToolSelector4Sentinel1 = () => { +export const Sentinel1AnalyzeToolSelector = () => { return ; }; diff --git a/src/sentinel-1-explorer/components/ChangeCompareLayer/ChangeCompareLayerContainer.tsx b/src/sentinel-1-explorer/components/ChangeCompareLayer/ChangeCompareLayerContainer.tsx index c9de1b04..7e2df1ce 100644 --- a/src/sentinel-1-explorer/components/ChangeCompareLayer/ChangeCompareLayerContainer.tsx +++ b/src/sentinel-1-explorer/components/ChangeCompareLayer/ChangeCompareLayerContainer.tsx @@ -56,9 +56,9 @@ const InputRasterFunctionName: Record< Sentinel1FunctionName > = { 'log difference': null, - 'water anomaly index': 'Sentinel-1 Water Anomaly Index Raw', + 'water anomaly': 'Water Anomaly Index Raw', // vegetation: 'Sentinel-1 DpRVIc Raw', - water: 'Sentinel-1 Water Anomaly Index Raw', + water: 'SWI Raw', }; export const ChangeCompareLayerContainer: FC = ({ diff --git a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx index 1b97d587..5dcf4963 100644 --- a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx +++ b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx @@ -41,15 +41,12 @@ import { useDispatch } from 'react-redux'; // import { useDispatch } from 'react-redux'; import { useSelector } from 'react-redux'; import { PolarizationFilter } from './PolarizationFilter'; +import { RadarIndex } from '@typing/imagery-service'; /** * the index that user can select for the Change Compare Tool */ -export type ChangeCompareToolOption4Sentinel1 = - | 'log difference' - // | 'vegetation' - | 'water anomaly index' - | 'water'; +export type ChangeCompareToolOption4Sentinel1 = RadarIndex | 'log difference'; const ChangeCompareToolOptions: { value: ChangeCompareToolOption4Sentinel1; @@ -61,7 +58,7 @@ const ChangeCompareToolOptions: { }, // { value: 'vegetation', label: ' Dual-pol Radar Vegetation Index' }, { - value: 'water anomaly index', + value: 'water anomaly', label: 'Water Anomaly Index', }, { @@ -85,7 +82,7 @@ export const ChangeCompareToolPixelValueRange4Sentinel1: Record< * For Water Anomaly Index, we can use a input range of -2 to 0. Typically, oil appears within the range of -1 to 0. * The full pixel range of the change compare results is -2 to 2 */ - 'water anomaly index': [-2, 2], + 'water anomaly': [-2, 2], }; export const ChangeCompareToolContainer = () => { diff --git a/src/sentinel-1-explorer/components/Layout/Layout.tsx b/src/sentinel-1-explorer/components/Layout/Layout.tsx index 5b0b565a..f319c806 100644 --- a/src/sentinel-1-explorer/components/Layout/Layout.tsx +++ b/src/sentinel-1-explorer/components/Layout/Layout.tsx @@ -38,12 +38,13 @@ import { SceneInfo } from '../SceneInfo'; import { Sentinel1FunctionSelector } from '../RasterFunctionSelector'; import { OrbitDirectionFilter } from '../OrbitDirectionFilter'; import { useShouldShowSecondaryControls } from '@shared/hooks/useShouldShowSecondaryControls'; -import { AnalyzeToolSelector4Sentinel1 } from '../AnalyzeToolSelector/AnalyzeToolSelector'; +import { Sentinel1AnalyzeToolSelector } from '../AnalyzeToolSelector/AnalyzeToolSelector'; import { TemporalCompositeLayerSelector } from '../TemporalCompositeLayerSelector'; import { TemporalCompositeTool } from '../TemporalCompositeTool/TemporalCompositeTool'; import { ChangeCompareLayerSelector } from '@shared/components/ChangeCompareLayerSelector'; import classNames from 'classnames'; import { ChangeCompareTool4Sentinel1 } from '../ChangeCompareTool'; +import { Sentinel1TemporalProfileTool } from '../TemporalProfileTool'; export const Layout = () => { const mode = useSelector(selectAppMode); @@ -88,7 +89,7 @@ export const Layout = () => { - + )} @@ -132,10 +133,10 @@ export const Layout = () => { })} > {/* - */} +
)} diff --git a/src/sentinel-1-explorer/components/Map/Map.tsx b/src/sentinel-1-explorer/components/Map/Map.tsx index 75e39598..43c21401 100644 --- a/src/sentinel-1-explorer/components/Map/Map.tsx +++ b/src/sentinel-1-explorer/components/Map/Map.tsx @@ -36,10 +36,18 @@ import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; import { Popup } from '../Popup'; import { TemporalCompositeLayer } from '../TemporalCompositeLayer'; import { ChangeCompareLayer4Sentinel1 } from '../ChangeCompareLayer'; +import { updateQueryLocation4TrendTool } from '@shared/store/TrendTool/thunks'; +import { useDispatch } from 'react-redux'; export const Map = () => { + const dispatch = useDispatch(); + return ( - + { + dispatch(updateQueryLocation4TrendTool(point)); + }} + > = ({ mapView }) => { const res = await identify({ serviceURL: SENTINEL_1_SERVICE_URL, point: mapPoint, - objectId: + objectIds: mode !== 'dynamic' - ? queryParams?.objectIdOfSelectedScene + ? [queryParams?.objectIdOfSelectedScene] : null, abortController: controller, }); diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx index 32b1031f..7df68ae3 100644 --- a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx @@ -29,9 +29,9 @@ const Sentinel1RendererThumbnailByName: Record = 'Sentinel-1 RGB dB DRA': PlaceholderThumbnail, 'Sentinel-1 RTC VH dB with DRA': PlaceholderThumbnail, 'Sentinel-1 RTC VV dB with DRA': PlaceholderThumbnail, - 'Sentinel-1 DpRVIc Raw': PlaceholderThumbnail, - 'Sentinel-1 SWI Raw': PlaceholderThumbnail, - 'Sentinel-1 Water Anomaly Index Raw': PlaceholderThumbnail, + // 'Sentinel-1 DpRVIc Raw': PlaceholderThumbnail, + 'SWI Raw': PlaceholderThumbnail, + 'Water Anomaly Index Raw': PlaceholderThumbnail, 'Sentinel-1 RTC Despeckle VH Amplitude': PlaceholderThumbnail, 'Sentinel-1 RTC Despeckle VV Amplitude': PlaceholderThumbnail, // 'NDMI Colorized': LandsatNDMIThumbnail, @@ -41,9 +41,9 @@ const Sentinel1RendererLegendByName: Record = { 'Sentinel-1 RGB dB DRA': CompositeLegend, 'Sentinel-1 RTC VH dB with DRA': null, 'Sentinel-1 RTC VV dB with DRA': null, - 'Sentinel-1 DpRVIc Raw': null, - 'Sentinel-1 SWI Raw': null, - 'Sentinel-1 Water Anomaly Index Raw': null, + // 'Sentinel-1 DpRVIc Raw': null, + 'SWI Raw': null, + 'Water Anomaly Index Raw': null, 'Sentinel-1 RTC Despeckle VH Amplitude': null, 'Sentinel-1 RTC Despeckle VV Amplitude': null, }; diff --git a/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileChart.tsx b/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileChart.tsx new file mode 100644 index 00000000..7fe2059f --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileChart.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import { useSentinel1TemporalProfileDataAsChartData } from './useTemporalProfileDataAsChartData'; +import { useCustomDomain4YScale } from './useCustomDomain4YScale'; +import { TemporalProfileChart } from '@shared/components/TemporalProfileChart'; + +export const Sentinel1TemporalProfileChart = () => { + const chartData = useSentinel1TemporalProfileDataAsChartData(); + + const customDomain4YScale = useCustomDomain4YScale(chartData); + + return ( + + ); +}; diff --git a/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx b/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx new file mode 100644 index 00000000..4b518544 --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx @@ -0,0 +1,171 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AnalysisToolHeader } from '@shared/components/AnalysisToolHeader'; +import { + TemporalProfileToolControls, + TemporalProfileToolHeader, +} from '@shared/components/TemproalProfileTool'; +// import { getProfileData } from '@shared/services/landsat-2/getProfileData'; +import { + // acquisitionMonth4TrendToolChanged, + // // samplingTemporalResolutionChanged, + // trendToolDataUpdated, + selectedIndex4TrendToolChanged, + // queryLocation4TrendToolChanged, + // trendToolOptionChanged, + // acquisitionYear4TrendToolChanged, +} from '@shared/store/TrendTool/reducer'; +// import { +// selectAcquisitionMonth4TrendTool, +// // selectActiveAnalysisTool, +// // selectSamplingTemporalResolution, +// selectTrendToolData, +// selectQueryLocation4TrendTool, +// selectSelectedIndex4TrendTool, +// selectAcquisitionYear4TrendTool, +// selectTrendToolOption, +// } from '@shared/store/TrendTool/selectors'; +// import { +// resetTrendToolData, +// updateQueryLocation4TrendTool, +// updateTrendToolData, +// } from '@shared/store/TrendTool/thunks'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import { useDispatch } from 'react-redux'; +import { useSelector } from 'react-redux'; +import { + selectActiveAnalysisTool, + selectQueryParams4SceneInSelectedMode, +} from '@shared/store/ImageryScene/selectors'; +import { + RadarIndex, + SpectralIndex, + TemporalProfileData, +} from '@typing/imagery-service'; +import { useUpdateTemporalProfileToolData } from '@shared/components/TemproalProfileTool/useUpdateTemporalProfileToolData'; +import { useSyncSelectedYearAndMonth4TemporalProfileTool } from '@shared/components/TemproalProfileTool/useSyncSelectedYearAndMonth'; +import { + FetchTemporalProfileDataFunc, + IntersectWithImagerySceneFunc, +} from '@shared/store/TrendTool/thunks'; +import { Point } from '@arcgis/core/geometry'; +import { selectError4TemporalProfileTool } from '@shared/store/TrendTool/selectors'; +import { intersectWithSentinel1Scene } from '@shared/services/sentinel-1/getSentinel1Scenes'; +import { getSentinel1TemporalProfileData } from '@shared/services/sentinel-1/getTemporalProfileData'; +import { selectSentinel1OrbitDirection } from '@shared/store/Sentinel1/selectors'; +import { Sentinel1TemporalProfileChart } from './Sentinel1TemporalProfileChart'; + +export const Sentinel1TemporalProfileTool = () => { + // const dispatch = useDispatch(); + + const tool = useSelector(selectActiveAnalysisTool); + + const orbitDirection = useSelector(selectSentinel1OrbitDirection); + + // const { rasterFunctionName, acquisitionDate, objectIdOfSelectedScene } = + // useSelector(selectQueryParams4SceneInSelectedMode) || {}; + + const error = useSelector(selectError4TemporalProfileTool); + + /** + * this function will be invoked by the updateTemporalProfileToolData thunk function + * to check if the query location intersects with the selected sentinel-1 scene using the input object ID. + */ + const intersectWithImageryScene: IntersectWithImagerySceneFunc = + useCallback( + async ( + queryLocation: Point, + objectId: number, + abortController: AbortController + ) => { + const res = await intersectWithSentinel1Scene( + queryLocation, + objectId, + abortController + ); + + return res; + }, + [] + ); + + /** + * this function will be invoked by the updateTemporalProfileToolData thunk function + * to retrieve the temporal profile data from sentinel-1 service + */ + const fetchTemporalProfileData: FetchTemporalProfileDataFunc = useCallback( + async ( + queryLocation: Point, + acquisitionMonth: number, + acquisitionYear: number, + abortController: AbortController + ) => { + const data: TemporalProfileData[] = + await getSentinel1TemporalProfileData({ + queryLocation, + orbitDirection, + acquisitionMonth, + acquisitionYear, + abortController, + }); + + return data; + }, + [orbitDirection] + ); + + /** + * This custom hook triggers updateTemporalProfileToolData thunk function to get temporal profile data when query location, acquisition date or other options are changed. + */ + useUpdateTemporalProfileToolData( + fetchTemporalProfileData, + intersectWithImageryScene + ); + + /** + * This custom hook update the `acquisitionMonth` and `acquisitionMonth` property of the Trend Tool State + * to keep it in sync with the acquisition date of selected imagery scene + */ + useSyncSelectedYearAndMonth4TemporalProfileTool(); + + if (tool !== 'trend') { + return null; + } + + return ( +
+ + +
+ +
+ + +
+ ); +}; diff --git a/src/sentinel-1-explorer/components/TemporalProfileTool/index.ts b/src/sentinel-1-explorer/components/TemporalProfileTool/index.ts new file mode 100644 index 00000000..90de2a79 --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalProfileTool/index.ts @@ -0,0 +1 @@ +export { Sentinel1TemporalProfileTool } from './Sentinel1TemporalProfileTool'; diff --git a/src/sentinel-1-explorer/components/TemporalProfileTool/useCustomDomain4YScale.tsx b/src/sentinel-1-explorer/components/TemporalProfileTool/useCustomDomain4YScale.tsx new file mode 100644 index 00000000..a4e4742e --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalProfileTool/useCustomDomain4YScale.tsx @@ -0,0 +1,38 @@ +// import { getSentinel1PixelValueRangeByRadarIndex } from '@shared/services/sentinel-1/helper'; +// import { selectSelectedIndex4TrendTool } from '@shared/store/TrendTool/selectors'; +// import { RadarIndex, SpectralIndex } from '@typing/imagery-service'; +import { LineChartDataItem } from '@vannizhang/react-d3-charts/dist/LineChart/types'; +import React, { useMemo } from 'react'; +import { useSelector } from 'react-redux'; + +/** + * This custom hook returns the custom domain for Y Scale that will be used to render the Sentinel-1 Temporal Profile Chart + * @param chartData + * @returns + */ +export const useCustomDomain4YScale = (chartData: LineChartDataItem[]) => { + // const selectedIndex: RadarIndex = useSelector( + // selectSelectedIndex4TrendTool + // ) as RadarIndex; + + const customDomain4YScale = useMemo(() => { + const yValues = chartData.map((d) => d.y); + + // boundary of y axis, for spectral index, the boundary should be -1 and 1 + // const [yLowerLimit, yUpperLimit] = getSentinel1PixelValueRangeByRadarIndex(selectedIndex); + + // get min and max from the data + let ymin = Math.min(...yValues); + let ymax = Math.max(...yValues); + + // get range between min and max from the data + const yRange = ymax - ymin; + + ymin = ymin - yRange * 0.1; //Math.max(yLowerLimit, ymin - (yRange * 0.1)); + ymax = ymax + yRange * 0.1; //Math.min(yUpperLimit, ymax + (yRange * 0.1)); + + return [ymin, ymax]; + }, [chartData]); + + return customDomain4YScale; +}; diff --git a/src/sentinel-1-explorer/components/TemporalProfileTool/useTemporalProfileDataAsChartData.tsx b/src/sentinel-1-explorer/components/TemporalProfileTool/useTemporalProfileDataAsChartData.tsx new file mode 100644 index 00000000..2dfa1de7 --- /dev/null +++ b/src/sentinel-1-explorer/components/TemporalProfileTool/useTemporalProfileDataAsChartData.tsx @@ -0,0 +1,97 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { FC, useMemo } from 'react'; +import { useSelector } from 'react-redux'; +import { + selectTrendToolData, + selectSelectedIndex4TrendTool, + selectTrendToolOption, +} from '@shared/store/TrendTool/selectors'; +import { RadarIndex, TemporalProfileData } from '@typing/imagery-service'; +import { SpectralIndex } from '@typing/imagery-service'; +import { LineChartDataItem } from '@vannizhang/react-d3-charts/dist/LineChart/types'; +import { formatInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone'; +import { + calcRadarIndex, + getSentinel1PixelValueRangeByRadarIndex, +} from '@shared/services/sentinel-1/helper'; + +/** + * Converts Sentinel-1 temporal profile data to chart data. + * @param temporalProfileData - Array of temporal profile data. + * @param spectralIndex - Spectral index to calculate the value for each data point. + * @param month2month - if true, user is trying to plot month to month trend line for a selected year. + * @returns An array of QuickD3ChartDataItem objects representing the chart data. + * + */ +const convertSentinel1TemporalProfileData2ChartData = ( + temporalProfileData: TemporalProfileData[], + selectedIndx: RadarIndex, + month2month?: boolean +): LineChartDataItem[] => { + if (!temporalProfileData || !temporalProfileData.length) { + return []; + } + + const data = temporalProfileData.map((d) => { + const { acquisitionDate, values } = d; + + // calculate the radar index that will be used as the y value for each chart vertex + const y = calcRadarIndex(selectedIndx, values); + // console.log(y) + + // const [yMin, yMax] = getSentinel1PixelValueRangeByRadarIndex(selectedIndx) + + // // y should not go below y min + // y = Math.max(y, yMin); + + // // y should not go beyond y max + // y = Math.min(y, yMax); + + const tooltip = `${formatInUTCTimeZone( + acquisitionDate, + 'LLL yyyy' + )}: ${y.toFixed(4)}`; + + return { + x: month2month ? d.acquisitionMonth : d.acquisitionDate, + y, + tooltip, + }; + }); + + return data; +}; + +export const useSentinel1TemporalProfileDataAsChartData = () => { + const temporalProfileData = useSelector(selectTrendToolData); + + const selectedIndx: RadarIndex = useSelector( + selectSelectedIndex4TrendTool + ) as RadarIndex; + + const trendToolOption = useSelector(selectTrendToolOption); + + const chartData = useMemo(() => { + return convertSentinel1TemporalProfileData2ChartData( + temporalProfileData, + selectedIndx, + trendToolOption === 'month-to-month' + ); + }, [temporalProfileData, selectedIndx, trendToolOption]); + + return chartData; +}; diff --git a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx index 7dea6a8e..3869cfbc 100644 --- a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx +++ b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx @@ -53,17 +53,17 @@ export const useQueryAvailableSentinel1Scenes = (): void => { const orbitDirection = useSelector(selectSentinel1OrbitDirection); - /** - * Indicates if we should only query the sentinel-1 imagery scenes that - * support dual polarization: VV and VH - */ - const dualPolarizationOnly = useMemo(() => { - if (mode === 'analysis' && analysisTool === 'temporal composite') { - return true; - } + // /** + // * Indicates if we should only query the sentinel-1 imagery scenes that + // * support dual polarization: VV and VH + // */ + // const dualPolarizationOnly = useMemo(() => { + // if (mode === 'analysis' && analysisTool === 'temporal composite') { + // return true; + // } - return false; - }, [mode, analysisTool]); + // return false; + // }, [mode, analysisTool]); useEffect(() => { if (!center || !acquisitionDateRange) { @@ -77,8 +77,8 @@ export const useQueryAvailableSentinel1Scenes = (): void => { dispatch( queryAvailableScenes( acquisitionDateRange, - orbitDirection, - dualPolarizationOnly + orbitDirection + // dualPolarizationOnly ) ); }, [ @@ -86,7 +86,7 @@ export const useQueryAvailableSentinel1Scenes = (): void => { acquisitionDateRange, isAnimationPlaying, orbitDirection, - dualPolarizationOnly, + // dualPolarizationOnly, ]); return null; diff --git a/src/sentinel-1-explorer/store/getPreloadedState.ts b/src/sentinel-1-explorer/store/getPreloadedState.ts index f4483e65..fcbe986c 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState.ts @@ -72,6 +72,11 @@ import { ChangeCompareToolOption4Sentinel1, ChangeCompareToolPixelValueRange4Sentinel1, } from '../components/ChangeCompareTool/ChangeCompareToolContainer'; +import { + TrendToolState, + initialTrendToolState, +} from '@shared/store/TrendTool/reducer'; +import { RadarIndex } from '@typing/imagery-service'; // import { getRandomElement } from '@shared/utils/snippets/getRandomElement'; /** @@ -221,6 +226,17 @@ const getPreloadedChangeCompareToolState = (): ChangeCompareToolState => { }; }; +const getPreloadedTrendToolState = (): TrendToolState => { + // const maskToolData = getMaskToolDataFromHashParams(); + const trendToolData = getTemporalProfileToolDataFromHashParams(); + + return { + ...initialTrendToolState, + ...trendToolData, + selectedIndex: trendToolData?.selectedIndex || ('water' as RadarIndex), + }; +}; + export const getPreloadedState = async (): Promise => { // get default raster function and location and pass to the getPreloadedMapState, getPreloadedUIState and getPreloadedImageryScenesState @@ -233,5 +249,6 @@ export const getPreloadedState = async (): Promise => { ImageryScenes: getPreloadedImageryScenesState(), TemporalCompositeTool: getPreloadedTemporalCompositeToolState(), ChangeCompareTool: getPreloadedChangeCompareToolState(), + TrendTool: getPreloadedTrendToolState(), } as PartialRootState; }; diff --git a/src/shared/components/MapView/CustomMapPopupStyle.css b/src/shared/components/MapView/CustomMapPopupStyle.css index 88fbd8ec..9ace27c3 100644 --- a/src/shared/components/MapView/CustomMapPopupStyle.css +++ b/src/shared/components/MapView/CustomMapPopupStyle.css @@ -34,6 +34,11 @@ border-block-end: none; } +.esri-popup__main-container .header-content { + background: red; +} + + /* .esri-popup__header-container--button:hover, .esri-popup__button:hover { @apply bg-custom-background-95; diff --git a/src/landsat-explorer/components/TrendTool/TrendChart.tsx b/src/shared/components/TemporalProfileChart/TemporalProfileChart.tsx similarity index 66% rename from src/landsat-explorer/components/TrendTool/TrendChart.tsx rename to src/shared/components/TemporalProfileChart/TemporalProfileChart.tsx index 098c999f..802a9740 100644 --- a/src/landsat-explorer/components/TrendTool/TrendChart.tsx +++ b/src/shared/components/TemporalProfileChart/TemporalProfileChart.tsx @@ -14,9 +14,9 @@ */ import React, { FC, useMemo } from 'react'; -import { useSelector } from 'react-redux'; +// import { useSelector } from 'react-redux'; import { LineChartBasic } from '@vannizhang/react-d3-charts'; -import { selectQueryParams4SceneInSelectedMode } from '@shared/store/ImageryScene/selectors'; +// import { selectQueryParams4SceneInSelectedMode } from '@shared/store/ImageryScene/selectors'; import { formattedDateString2Unixtimestamp, getMonthFromFormattedDateString, @@ -27,13 +27,13 @@ import { DATE_FORMAT } from '@shared/constants/UI'; import { TemporalProfileData } from '@typing/imagery-service'; import { SpectralIndex } from '@typing/imagery-service'; import { LineChartDataItem } from '@vannizhang/react-d3-charts/dist/LineChart/types'; -import { - LANDSAT_SURFACE_TEMPERATURE_MIN_CELSIUS, - LANDSAT_SURFACE_TEMPERATURE_MIN_FAHRENHEIT, - LANDSAT_SURFACE_TEMPERATURE_MAX_CELSIUS, - LANDSAT_SURFACE_TEMPERATURE_MAX_FAHRENHEIT, -} from '@shared/services/landsat-level-2/config'; -import { calcSpectralIndex } from '@shared/services/landsat-level-2/helpers'; +// import { +// LANDSAT_SURFACE_TEMPERATURE_MIN_CELSIUS, +// LANDSAT_SURFACE_TEMPERATURE_MIN_FAHRENHEIT, +// LANDSAT_SURFACE_TEMPERATURE_MAX_CELSIUS, +// LANDSAT_SURFACE_TEMPERATURE_MAX_FAHRENHEIT, +// } from '@shared/services/landsat-level-2/config'; +// import { calcSpectralIndex } from '@shared/services/landsat-level-2/helpers'; // import { selectTrendToolOption } from '@shared/store/TrendTool/selectors'; // import { getMonthAbbreviation } from '@shared/utils/date-time/getMonthName'; import { TrendToolOption } from '@shared/store/TrendTool/reducer'; @@ -43,13 +43,13 @@ import { formatInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone type Props = { /** - * data that will be used to plot the trend chart + * data that will be used to plot the Line chart for the Temporal Profile Tool */ - data: TemporalProfileData[]; + chartData: LineChartDataItem[]; /** - * user selected spectral index + * custom domain for the Y-Scale of the Line chart */ - spectralIndex: SpectralIndex; + customDomain4YScale: number[]; /** * user selected trend tool option */ @@ -66,68 +66,9 @@ type Props = { onClickHandler: (index: number) => void; }; -/** - * Converts Landsat temporal profile data to chart data. - * @param temporalProfileData - Array of temporal profile data. - * @param spectralIndex - Spectral index to calculate the value for each data point. - * @param month2month - if true, user is trying to plot month to month trend line for a selected year. - * @returns An array of QuickD3ChartDataItem objects representing the chart data. - * - */ -export const convertLandsatTemporalProfileData2ChartData = ( - temporalProfileData: TemporalProfileData[], - spectralIndex: SpectralIndex, - month2month?: boolean -): LineChartDataItem[] => { - const data = temporalProfileData.map((d) => { - const { acquisitionDate, values } = d; - - // calculate the spectral index that will be used as the y value for each chart vertex - let y = calcSpectralIndex(spectralIndex, values); - - let yMin = -1; - let yMax = 1; - - // justify the y value for surface temperature index to make it not go below the hardcoded y min - if ( - spectralIndex === 'temperature farhenheit' || - spectralIndex === 'temperature celcius' - ) { - yMin = - spectralIndex === 'temperature farhenheit' - ? LANDSAT_SURFACE_TEMPERATURE_MIN_FAHRENHEIT - : LANDSAT_SURFACE_TEMPERATURE_MIN_CELSIUS; - - yMax = - spectralIndex === 'temperature farhenheit' - ? LANDSAT_SURFACE_TEMPERATURE_MAX_FAHRENHEIT - : LANDSAT_SURFACE_TEMPERATURE_MAX_CELSIUS; - } - - // y should not go below y min - y = Math.max(y, yMin); - - // y should not go beyond y max - y = Math.min(y, yMax); - - const tooltip = `${formatInUTCTimeZone( - acquisitionDate, - 'LLL yyyy' - )}: ${y.toFixed(2)}`; - - return { - x: month2month ? d.acquisitionMonth : d.acquisitionDate, - y, - tooltip, - }; - }); - - return data; -}; - export const TemporalProfileChart: FC = ({ - data, - spectralIndex, + chartData, + customDomain4YScale, trendToolOption, acquisitionYear, selectedAcquisitionDate, @@ -138,12 +79,6 @@ export const TemporalProfileChart: FC = ({ // const queryParams4SelectedScene = // useSelector(selectQueryParams4SceneInSelectedMode) || {}; - const chartData = convertLandsatTemporalProfileData2ChartData( - data, - spectralIndex, - trendToolOption === 'month-to-month' - ); - const customDomain4XScale = useMemo(() => { if (!chartData.length) { return null; @@ -173,38 +108,6 @@ export const TemporalProfileChart: FC = ({ return [xMin, xMax]; }, [chartData, selectedAcquisitionDate, trendToolOption]); - const customDomain4YScale = useMemo(() => { - const yValues = chartData.map((d) => d.y); - - // boundary of y axis, for spectral index, the boundary should be -1 and 1 - let yUpperLimit = 1; - let yLowerLimit = -1; - - // temperature is handled differently as we display the actual values in the chart - if (spectralIndex === 'temperature farhenheit') { - yLowerLimit = LANDSAT_SURFACE_TEMPERATURE_MIN_FAHRENHEIT; - yUpperLimit = LANDSAT_SURFACE_TEMPERATURE_MAX_FAHRENHEIT; - } - - if (spectralIndex === 'temperature celcius') { - yLowerLimit = LANDSAT_SURFACE_TEMPERATURE_MIN_CELSIUS; - yUpperLimit = LANDSAT_SURFACE_TEMPERATURE_MAX_CELSIUS; - } - - // get min and max from the data - let ymin = Math.min(...yValues); - let ymax = Math.max(...yValues); - - // get range between min and max from the data - const yRange = ymax - ymin; - - // adjust ymin and ymax to add 10% buffer to it, but also need to make sure it fits in the upper and lower limit - ymin = Math.max(yLowerLimit, ymin - yRange * 0.1); - ymax = Math.min(yUpperLimit, ymax + yRange * 0.1); - - return [ymin, ymax]; - }, [chartData]); - const trendLineData = useMemo(() => { if (!chartData || !chartData.length) { return []; diff --git a/src/landsat-explorer/components/TrendTool/TrendChartContainer.tsx b/src/shared/components/TemporalProfileChart/TemporalProfileChartContainer.tsx similarity index 78% rename from src/landsat-explorer/components/TrendTool/TrendChartContainer.tsx rename to src/shared/components/TemporalProfileChart/TemporalProfileChartContainer.tsx index af97e549..96b5654a 100644 --- a/src/landsat-explorer/components/TrendTool/TrendChartContainer.tsx +++ b/src/shared/components/TemporalProfileChart/TemporalProfileChartContainer.tsx @@ -16,15 +16,15 @@ import { selectTrendToolData, selectQueryLocation4TrendTool, - selectSpectralIndex4TrendTool, selectAcquisitionYear4TrendTool, selectTrendToolOption, selectIsLoadingData4TrendingTool, + selectError4TemporalProfileTool, } from '@shared/store/TrendTool/selectors'; -import React, { useEffect, useMemo, useState } from 'react'; +import React, { FC, useEffect, useMemo, useState } from 'react'; import { useDispatch } from 'react-redux'; import { useSelector } from 'react-redux'; -import { TemporalProfileChart } from './TrendChart'; +import { TemporalProfileChart } from './TemporalProfileChart'; import { updateAcquisitionDate, updateObjectIdOfSelectedScene, @@ -33,8 +33,23 @@ import { import { centerChanged } from '@shared/store/Map/reducer'; import { batch } from 'react-redux'; import { selectQueryParams4MainScene } from '@shared/store/ImageryScene/selectors'; +import { LineChartDataItem } from '@vannizhang/react-d3-charts/dist/LineChart/types'; + +type Props = { + /** + * data that will be used to plot the Line chart for the Temporal Profile Tool + */ + chartData: LineChartDataItem[]; + /** + * custom domain for the Y-Scale of the Line chart + */ + customDomain4YScale: number[]; +}; -export const TrendChartContainer = () => { +export const TemporalProfileChartContainer: FC = ({ + chartData, + customDomain4YScale, +}) => { const dispatch = useDispatch(); const queryLocation = useSelector(selectQueryLocation4TrendTool); @@ -43,14 +58,14 @@ export const TrendChartContainer = () => { const temporalProfileData = useSelector(selectTrendToolData); - const spectralIndex = useSelector(selectSpectralIndex4TrendTool); - const queryParams4MainScene = useSelector(selectQueryParams4MainScene); const trendToolOption = useSelector(selectTrendToolOption); const isLoading = useSelector(selectIsLoadingData4TrendingTool); + const error = useSelector(selectError4TemporalProfileTool); + const message = useMemo(() => { if (isLoading) { return 'fetching temporal profile data'; @@ -72,10 +87,18 @@ export const TrendChartContainer = () => { ); } + if (error) { + return ( +
+ {error} +
+ ); + } + return ( void; }; -export const TrendToolControls = ({ +export const TemporalProfileToolControls = ({ acquisitionMonth, acquisitionYear, selectedTrendOption, diff --git a/src/shared/components/TemproalProfileTool/TemporalProfileToolControlsContainer.tsx b/src/shared/components/TemproalProfileTool/TemporalProfileToolControlsContainer.tsx new file mode 100644 index 00000000..0bf01271 --- /dev/null +++ b/src/shared/components/TemproalProfileTool/TemporalProfileToolControlsContainer.tsx @@ -0,0 +1,57 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AnalysisToolHeader } from '@shared/components/AnalysisToolHeader'; +// import { getProfileData } from '@shared/services/landsat-2/getProfileData'; +import { trendToolOptionChanged } from '@shared/store/TrendTool/reducer'; +import { + selectAcquisitionMonth4TrendTool, + selectQueryLocation4TrendTool, + selectAcquisitionYear4TrendTool, + selectTrendToolOption, +} from '@shared/store/TrendTool/selectors'; +import { resetTrendToolData } from '@shared/store/TrendTool/thunks'; +import React from 'react'; +import { useDispatch } from 'react-redux'; +import { useSelector } from 'react-redux'; + +import { TemporalProfileToolControls } from './TemporalProfileToolControls'; + +export const TemporalProfileToolControlsContainer = () => { + const dispatch = useDispatch(); + + const queryLocation = useSelector(selectQueryLocation4TrendTool); + + const acquisitionMonth = useSelector(selectAcquisitionMonth4TrendTool); + + const acquisitionYear = useSelector(selectAcquisitionYear4TrendTool); + + const selectedTrendToolOption = useSelector(selectTrendToolOption); + + return ( + { + dispatch(trendToolOptionChanged(data)); + }} + closeButtonOnClick={() => { + dispatch(resetTrendToolData()); + }} + /> + ); +}; diff --git a/src/shared/components/TemproalProfileTool/TemporalProfileToolHeader.tsx b/src/shared/components/TemproalProfileTool/TemporalProfileToolHeader.tsx new file mode 100644 index 00000000..cd01fb28 --- /dev/null +++ b/src/shared/components/TemproalProfileTool/TemporalProfileToolHeader.tsx @@ -0,0 +1,36 @@ +import { selectSelectedIndex4TrendTool } from '@shared/store/TrendTool/selectors'; +import React, { FC } from 'react'; +import { useSelector } from 'react-redux'; +import { AnalysisToolHeader } from '../AnalysisToolHeader'; +import { RadarIndex, SpectralIndex } from '@typing/imagery-service'; +import { useDispatch } from 'react-redux'; +import { selectedIndex4TrendToolChanged } from '@shared/store/TrendTool/reducer'; + +type Props = { + options: { + value: SpectralIndex | RadarIndex; + label: string; + }[]; + tooltipText: string; +}; + +export const TemporalProfileToolHeader: FC = ({ + options, + tooltipText, +}) => { + const dispatch = useDispatch(); + + const spectralIndex = useSelector(selectSelectedIndex4TrendTool); + + return ( + { + dispatch(selectedIndex4TrendToolChanged(val as SpectralIndex)); + }} + tooltipText={tooltipText} + /> + ); +}; diff --git a/src/landsat-explorer/components/TrendTool/index.ts b/src/shared/components/TemproalProfileTool/index.ts similarity index 74% rename from src/landsat-explorer/components/TrendTool/index.ts rename to src/shared/components/TemproalProfileTool/index.ts index 4758bbbd..f5846d1f 100644 --- a/src/landsat-explorer/components/TrendTool/index.ts +++ b/src/shared/components/TemproalProfileTool/index.ts @@ -13,5 +13,5 @@ * limitations under the License. */ -export { TrendToolContainer as TrendTool } from './TrendToolContainer'; -export { TrendChartContainer as TrendChart } from './TrendChartContainer'; +export { TemporalProfileToolControlsContainer as TemporalProfileToolControls } from './TemporalProfileToolControlsContainer'; +export { TemporalProfileToolHeader } from './TemporalProfileToolHeader'; diff --git a/src/shared/components/TrendToolControls/useMonthOptions.tsx b/src/shared/components/TemproalProfileTool/useMonthOptions.tsx similarity index 100% rename from src/shared/components/TrendToolControls/useMonthOptions.tsx rename to src/shared/components/TemproalProfileTool/useMonthOptions.tsx diff --git a/src/shared/components/TemproalProfileTool/useSyncSelectedYearAndMonth.tsx b/src/shared/components/TemproalProfileTool/useSyncSelectedYearAndMonth.tsx new file mode 100644 index 00000000..4c7b3904 --- /dev/null +++ b/src/shared/components/TemproalProfileTool/useSyncSelectedYearAndMonth.tsx @@ -0,0 +1,48 @@ +import React, { useEffect } from 'react'; +import { useDispatch } from 'react-redux'; +import { batch } from 'react-redux'; +import { useSelector } from 'react-redux'; +import { + // getFormatedDateString, + getMonthFromFormattedDateString, + getYearFromFormattedDateString, +} from '@shared/utils/date-time/formatDateString'; +import { selectQueryParams4SceneInSelectedMode } from '@shared/store/ImageryScene/selectors'; +import { + acquisitionMonth4TrendToolChanged, + // samplingTemporalResolutionChanged, + // trendToolDataUpdated, + // selectedIndex4TrendToolChanged, + // queryLocation4TrendToolChanged, + // trendToolOptionChanged, + acquisitionYear4TrendToolChanged, +} from '@shared/store/TrendTool/reducer'; +import { updateQueryLocation4TrendTool } from '@shared/store/TrendTool/thunks'; + +/** + * This custom hook update the `acquisitionMonth` and `acquisitionMonth` property of the Trend Tool State + * to keep it in sync with the acquisition date of selected imagery scene + */ +export const useSyncSelectedYearAndMonth4TemporalProfileTool = () => { + const dispatch = useDispatch(); + + const { rasterFunctionName, acquisitionDate, objectIdOfSelectedScene } = + useSelector(selectQueryParams4SceneInSelectedMode) || {}; + + useEffect(() => { + // remove query location when selected acquisition date is removed + if (!acquisitionDate) { + dispatch(updateQueryLocation4TrendTool(null)); + return; + } + + const month = getMonthFromFormattedDateString(acquisitionDate); + + const year = getYearFromFormattedDateString(acquisitionDate); + + batch(() => { + dispatch(acquisitionMonth4TrendToolChanged(month)); + dispatch(acquisitionYear4TrendToolChanged(year)); + }); + }, [acquisitionDate]); +}; diff --git a/src/shared/components/TrendToolControls/useTrendOptions.tsx b/src/shared/components/TemproalProfileTool/useTrendOptions.tsx similarity index 100% rename from src/shared/components/TrendToolControls/useTrendOptions.tsx rename to src/shared/components/TemproalProfileTool/useTrendOptions.tsx diff --git a/src/shared/components/TemproalProfileTool/useUpdateTemporalProfileToolData.tsx b/src/shared/components/TemproalProfileTool/useUpdateTemporalProfileToolData.tsx new file mode 100644 index 00000000..2b992025 --- /dev/null +++ b/src/shared/components/TemproalProfileTool/useUpdateTemporalProfileToolData.tsx @@ -0,0 +1,115 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + selectAcquisitionMonth4TrendTool, + selectQueryLocation4TrendTool, + // selectSelectedIndex4TrendTool, + selectAcquisitionYear4TrendTool, + selectTrendToolOption, +} from '@shared/store/TrendTool/selectors'; +import { + IntersectWithImagerySceneFunc, + FetchTemporalProfileDataFunc, + updateTemporalProfileToolData, +} from '@shared/store/TrendTool/thunks'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import { useSelector } from 'react-redux'; +import { + selectActiveAnalysisTool, + // selectQueryParams4SceneInSelectedMode, +} from '@shared/store/ImageryScene/selectors'; +// import { SpectralIndex } from '@typing/imagery-service'; +import { selectLandsatMissionsToBeExcluded } from '@shared/store/Landsat/selectors'; +import { debounce } from '@shared/utils/snippets/debounce'; +import { useDispatch } from 'react-redux'; + +/** + * This custom hook triggers `updateTemporalProfileToolData` thunk function to get temporal profile data + * when query location, acquisition date or other options are changed. + * @param fetchTemporalProfileDataFunc - async function that retrieves the Temporal Profile data. This function will be invoked by the `updateTemporalProfileToolData` thunk function. + * @param intersectWithImagerySceneFunc - async function that determines if the query location intersects with the imagery scene specified by the input object ID. This function will be invoked by the `updateTemporalProfileToolData` thunk function. + */ +export const useUpdateTemporalProfileToolData = ( + fetchTemporalProfileDataFunc: FetchTemporalProfileDataFunc, + intersectWithImagerySceneFunc: IntersectWithImagerySceneFunc +) => { + const dispatch = useDispatch(); + + const tool = useSelector(selectActiveAnalysisTool); + + const queryLocation = useSelector(selectQueryLocation4TrendTool); + + const acquisitionMonth = useSelector(selectAcquisitionMonth4TrendTool); + + const acquisitionYear = useSelector(selectAcquisitionYear4TrendTool); + + const selectedTrendToolOption = useSelector(selectTrendToolOption); + + const missionsToBeExcluded = useSelector(selectLandsatMissionsToBeExcluded); + + const updateTrendToolDataDebounced = useCallback( + debounce(() => { + dispatch( + updateTemporalProfileToolData( + fetchTemporalProfileDataFunc, + intersectWithImagerySceneFunc + ) + ); + }, 50), + [fetchTemporalProfileDataFunc, intersectWithImagerySceneFunc] + ); + + // triggered when user selects a new acquisition month that will be used to draw the "year-to-year" trend data + useEffect(() => { + (async () => { + if (tool !== 'trend') { + return; + } + + if (selectedTrendToolOption !== 'year-to-year') { + return; + } + + updateTrendToolDataDebounced(); + })(); + }, [ + acquisitionMonth, + queryLocation, + tool, + selectedTrendToolOption, + missionsToBeExcluded, + ]); + + // triggered when user selects a new acquisition year that will be used to draw the "month-to-month" trend data + useEffect(() => { + (async () => { + if (tool !== 'trend') { + return; + } + + if (selectedTrendToolOption !== 'month-to-month') { + return; + } + + updateTrendToolDataDebounced(); + })(); + }, [ + acquisitionYear, + queryLocation, + tool, + selectedTrendToolOption, + missionsToBeExcluded, + ]); +}; diff --git a/src/shared/services/helpers/exportImage.ts b/src/shared/services/helpers/exportImage.ts index d91b80b8..03d2584b 100644 --- a/src/shared/services/helpers/exportImage.ts +++ b/src/shared/services/helpers/exportImage.ts @@ -14,7 +14,7 @@ */ import IExtent from '@arcgis/core/geometry/Extent'; -import { getMosaicRuleByObjectId } from './getMosaicRuleByObjectId'; +import { getMosaicRuleByObjectIds } from './getMosaicRuleByObjectId'; type ExportImageParams = { /** @@ -62,7 +62,7 @@ export const exportImage = async ({ imageSR: '102100', format: 'jpgpng', size: `${width},${height}`, - mosaicRule: JSON.stringify(getMosaicRuleByObjectId(objectId)), + mosaicRule: JSON.stringify(getMosaicRuleByObjectIds([objectId])), renderingRule: JSON.stringify({ rasterFunction: rasterFunctionName }), }); diff --git a/src/shared/services/helpers/getMosaicRuleByObjectId.ts b/src/shared/services/helpers/getMosaicRuleByObjectId.ts index 710c1f84..805616b7 100644 --- a/src/shared/services/helpers/getMosaicRuleByObjectId.ts +++ b/src/shared/services/helpers/getMosaicRuleByObjectId.ts @@ -13,11 +13,20 @@ * limitations under the License. */ -export const getMosaicRuleByObjectId = (objectId: number) => { +// export const getMosaicRuleByObjectId = (objectId: number) => { +// return { +// ascending: false, +// lockRasterIds: [objectId], +// mosaicMethod: 'esriMosaicLockRaster', +// where: `objectid in (${objectId})`, +// }; +// }; + +export const getMosaicRuleByObjectIds = (objectIds: number[]) => { return { ascending: false, - lockRasterIds: [objectId], + lockRasterIds: objectIds, mosaicMethod: 'esriMosaicLockRaster', - where: `objectid in (${objectId})`, + where: `objectid in (${objectIds.join(',')})`, }; }; diff --git a/src/shared/services/helpers/getPixelValues.ts b/src/shared/services/helpers/getPixelValues.ts new file mode 100644 index 00000000..023f8e0d --- /dev/null +++ b/src/shared/services/helpers/getPixelValues.ts @@ -0,0 +1,113 @@ +import { Point } from '@arcgis/core/geometry'; +import { splitObjectIdsToSeparateGroups } from './splitObjectIdsToSeparateGroups'; +import { IdentifyTaskResponse, identify } from './identify'; +import { canBeConvertedToNumber } from '@shared/utils/snippets/canBeConvertedToNumber'; + +/** + * Parameters for the Get Pixel Values + */ +type GetPixelValuesParams = { + /** + * URL of the imagery service + */ + serviceURL: string; + /** + * Point geometry to be used to query the pixel + */ + point: Point; + /** + * Array of Object IDs to be used to find imagery scenes to get the pixel values from + */ + objectIds?: number[]; + /** + * Abort controller to be used to cancel the identify task + */ + abortController: AbortController; +}; + +/** + * Values of pixel at a given location from a imagery scene by object id + */ +export type PixelValuesData = { + /** + * object Id of the assoicate imagery scene + */ + objectId: number; + /** + * array of pixel values + */ + values: number[]; +}; + +/** + * Retrieves pixel values that intersect with the specified point from imagery scenes by the input object ID. + * The function sends parallel identify requests for groups of object IDs to the specified service URL. + * + * @param param0 - An object containing the following properties: + * @param serviceURL - The URL of the imagery service. + * @param point - The geographic point used to intersect with the imagery scenes. + * @param objectIds - An array of object IDs to fetch pixel values for. + * @param abortController - An AbortController to handle request cancellation. + * @returns A promise that resolves to an array of objects, each containing an object ID and its corresponding pixel values. + */ +export const getPixelValues = async ({ + serviceURL, + point, + objectIds, + abortController, +}: GetPixelValuesParams): Promise => { + // divide object IDs into separate groups for parallel fetching. + const objectsIdsInSeparateGroups = + splitObjectIdsToSeparateGroups(objectIds); + // console.log(objectsIdsInSeparateGroups) + + // send identify requests in parallel for each group of object IDs. + const identifyResponseInSeparateGroups: IdentifyTaskResponse[] = + await Promise.all( + objectsIdsInSeparateGroups.map((oids) => + identify({ + serviceURL, + point, + objectIds: oids, + abortController, + }) + ) + ); + // console.log(identifyResponseInSeparateGroups) + + const pixelValuesByObjectId: { + [key: number]: number[]; + } = {}; + + for (const res of identifyResponseInSeparateGroups) { + const { catalogItems, properties } = res; + + const { features } = catalogItems; + const { Values } = properties; + + for (let i = 0; i < features.length; i++) { + const feature = features[i]; + const value = Values[i]; + + const objectId = feature.attributes.objectid; + const values = value.split(' ').map((d) => { + if (canBeConvertedToNumber(d) === false) { + return null; + } + + return +d; + }); + + pixelValuesByObjectId[objectId] = values; + } + } + + return objectIds + .filter((objectId) => pixelValuesByObjectId[objectId] !== undefined) + .map((objectId) => { + return { + objectId, + values: pixelValuesByObjectId[objectId], + }; + }); +}; diff --git a/src/shared/services/helpers/getPixelValuesFromIdentifyTaskResponse.ts b/src/shared/services/helpers/getPixelValuesFromIdentifyTaskResponse.ts new file mode 100644 index 00000000..59f5bc59 --- /dev/null +++ b/src/shared/services/helpers/getPixelValuesFromIdentifyTaskResponse.ts @@ -0,0 +1,28 @@ +import { canBeConvertedToNumber } from '@shared/utils/snippets/canBeConvertedToNumber'; +import { IdentifyTaskResponse } from './identify'; + +/** + * Get pixel values from Identify Task Response + * @param res + * @returns + */ +export const getPixelValuesFromIdentifyTaskResponse = ( + res: IdentifyTaskResponse +): number[] => { + let bandValues: number[] = null; + + if (res?.value && res?.value !== 'NoData') { + // get pixel values from the value property first + bandValues = res?.value.split(', ').map((d) => +d); + } else if (res?.properties?.Values[0]) { + bandValues = res?.properties?.Values[0].split(' ').map((d) => { + if (canBeConvertedToNumber(d) === false) { + return null; + } + + return +d; + }); + } + + return bandValues; +}; diff --git a/src/shared/services/helpers/identify.ts b/src/shared/services/helpers/identify.ts index 804534b0..6a55fdca 100644 --- a/src/shared/services/helpers/identify.ts +++ b/src/shared/services/helpers/identify.ts @@ -15,12 +15,12 @@ import { Geometry, Point } from '@arcgis/core/geometry'; import { IFeature } from '@esri/arcgis-rest-feature-service'; -import { getMosaicRuleByObjectId } from './getMosaicRuleByObjectId'; +import { getMosaicRuleByObjectIds } from './getMosaicRuleByObjectId'; /** * Parameters for the Identify Task */ -type IdentifyTaskParams = { +export type IdentifyTaskParams = { /** * URL of the imagery service */ @@ -30,9 +30,9 @@ type IdentifyTaskParams = { */ point: Point; /** - * Object ID of the imagery scene + * Object IDs of the imagery scenes */ - objectId?: number; + objectIds?: number[]; /** * Abort controller to be used to cancel the identify task */ @@ -44,7 +44,7 @@ type IdentifyTaskParams = { * @param param0 - IdentifyTaskParams object containing parameters for the identify task * @returns Promise of IdentifyTaskResponse containing the result of the identify task */ -type IdentifyTaskResponse = { +export type IdentifyTaskResponse = { catalogItems: { features: IFeature[]; geometryType: string; @@ -66,22 +66,23 @@ type IdentifyTaskResponse = { export const identify = async ({ serviceURL, point, - objectId, + objectIds, abortController, }: IdentifyTaskParams): Promise => { - const mosaicRule = objectId - ? getMosaicRuleByObjectId(objectId) - : { - ascending: true, - mosaicMethod: 'esriMosaicAttribute', - mosaicOperation: 'MT_FIRST', - sortField: 'best', - sortValue: '0', - }; + const mosaicRule = + objectIds && objectIds.length + ? getMosaicRuleByObjectIds(objectIds) + : { + ascending: true, + mosaicMethod: 'esriMosaicAttribute', + mosaicOperation: 'MT_FIRST', + sortField: 'best', + sortValue: '0', + }; const params = new URLSearchParams({ f: 'json', - maxItemCount: '1', + // maxItemCount: '1', returnGeometry: 'false', returnCatalogItems: 'true', geometryType: 'esriGeometryPoint', diff --git a/src/shared/services/helpers/splitObjectIdsToSeparateGroups.ts b/src/shared/services/helpers/splitObjectIdsToSeparateGroups.ts new file mode 100644 index 00000000..c52b170b --- /dev/null +++ b/src/shared/services/helpers/splitObjectIdsToSeparateGroups.ts @@ -0,0 +1,30 @@ +/** + * Splits an array of object IDs into separate groups, each containing a maximum of 20 object IDs. + * This is useful when making requests with an upper limit on the number of object IDs. + * + * @param {number[]} objectIds - An array of object IDs to be split into groups. + * @returns {number[][]} An array of arrays, each representing a separate group of object IDs. + */ +export const splitObjectIdsToSeparateGroups = ( + objectIds: number[] +): number[][] => { + // Define the maximum number of items per group + const ItemsPerGroup = 20; + + // number of groups needed based on the total number of object IDs + const numOfGroups = Math.ceil(objectIds.length / ItemsPerGroup); + + // Initialize an array of empty arrays to hold the separate groups of object IDs + const objectsIdsInSeparateGroups: number[][] = [ + ...new Array(numOfGroups), + ].map(() => []); + + for (let i = 0; i < numOfGroups; i++) { + // Calculate the start and end indices for the current group + const startIdx = i * ItemsPerGroup; + const endIdx = Math.min(startIdx + ItemsPerGroup, objectIds.length); + objectsIdsInSeparateGroups[i] = objectIds.slice(startIdx, endIdx); + } + + return objectsIdsInSeparateGroups; +}; diff --git a/src/shared/services/landsat-level-2/exportImage.ts b/src/shared/services/landsat-level-2/exportImage.ts index 6ff14ef1..efd20427 100644 --- a/src/shared/services/landsat-level-2/exportImage.ts +++ b/src/shared/services/landsat-level-2/exportImage.ts @@ -15,7 +15,8 @@ import IExtent from '@arcgis/core/geometry/Extent'; import { LANDSAT_LEVEL_2_SERVICE_URL } from './config'; -import { getMosaicRuleByObjectId } from './helpers'; +import { getMosaicRuleByObjectIds } from '../helpers/getMosaicRuleByObjectId'; +// import { getMosaicRuleByObjectId } from './helpers'; type ExportImageParams = { /** @@ -58,7 +59,7 @@ export const exportImage = async ({ imageSR: '102100', format: 'jpgpng', size: `${width},${height}`, - mosaicRule: JSON.stringify(getMosaicRuleByObjectId(objectId)), + mosaicRule: JSON.stringify(getMosaicRuleByObjectIds([objectId])), renderingRule: JSON.stringify({ rasterFunction: rasterFunctionName }), }); diff --git a/src/shared/services/landsat-level-2/getLandsatPixelValues.ts b/src/shared/services/landsat-level-2/getLandsatPixelValues.ts new file mode 100644 index 00000000..9946ab2a --- /dev/null +++ b/src/shared/services/landsat-level-2/getLandsatPixelValues.ts @@ -0,0 +1,79 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Point } from '@arcgis/core/geometry'; +import { LANDSAT_LEVEL_2_SERVICE_URL } from './config'; +import { getPixelValues } from '../helpers/getPixelValues'; + +type GetPixelValuesParams = { + point: Point; + objectIds: number[]; + abortController: AbortController; +}; + +/** + * Run identify task to get values of the pixel that intersects with the input point from the scene with input object id. + * @param param0 + * @returns + */ +export const getLandsatPixelValues = async ({ + point, + objectIds, + abortController, +}: GetPixelValuesParams): Promise => { + // const res = await identify({ + // serviceURL: LANDSAT_LEVEL_2_SERVICE_URL, + // point, + // objectIds, + // abortController, + // }); + + // if ( + // res?.catalogItems?.features && + // res?.catalogItems?.features.length === 0 + // ) { + // throw new Error( + // 'Failed to fetch pixel values. Please select a location inside of the selected landsat scene.' + // ); + // } + + // const bandValues = getPixelValuesFromIdentifyTaskResponse(res); + + // if (!bandValues) { + // throw new Error('Identify task does not return band values'); + // } + + // return bandValues; + + const res = await getPixelValues({ + serviceURL: LANDSAT_LEVEL_2_SERVICE_URL, + point, + objectIds, + abortController, + }); + // console.log(res) + + if (!res.length) { + throw new Error( + 'Failed to fetch pixel values. Please select a location inside of the selected landsat scene.' + ); + } + + if (!res[0]?.values) { + throw new Error('Identify task does not return band values'); + } + + return res[0].values; +}; diff --git a/src/shared/services/landsat-level-2/getSamples.ts b/src/shared/services/landsat-level-2/getSamples.ts index c0e9ebab..8049549b 100644 --- a/src/shared/services/landsat-level-2/getSamples.ts +++ b/src/shared/services/landsat-level-2/getSamples.ts @@ -1,87 +1,87 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// /* Copyright 2024 Esri +// * +// * Licensed under the Apache License Version 2.0 (the "License"); +// * you may not use this file except in compliance with the License. +// * You may obtain a copy of the License at +// * +// * http://www.apache.org/licenses/LICENSE-2.0 +// * +// * Unless required by applicable law or agreed to in writing, software +// * distributed under the License is distributed on an "AS IS" BASIS, +// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// * See the License for the specific language governing permissions and +// * limitations under the License. +// */ -import { Point } from '@arcgis/core/geometry'; -import { LANDSAT_LEVEL_2_SERVICE_URL } from './config'; +// import { Point } from '@arcgis/core/geometry'; +// import { LANDSAT_LEVEL_2_SERVICE_URL } from './config'; -export type LandsatSampleData = { - locationId: number; - /** - * object id of the landsat imagery scene - */ - rasterId: number; - resolution: number; - /** - * space separated band values returned by the server - */ - value: string; - /** - * array of band values as numerical values - */ - values: number[]; -}; +// export type LandsatSampleData = { +// locationId: number; +// /** +// * object id of the landsat imagery scene +// */ +// rasterId: number; +// resolution: number; +// /** +// * space separated band values returned by the server +// */ +// value: string; +// /** +// * array of band values as numerical values +// */ +// values: number[]; +// }; -export const getSamples = async ( - queryLocation: Point, - objectIds: number[], - controller: AbortController -): Promise => { - // const { x, y, spatialReference } = queryLocation; +// export const getSamples = async ( +// queryLocation: Point, +// objectIds: number[], +// controller: AbortController +// ): Promise => { +// // const { x, y, spatialReference } = queryLocation; - const params = new URLSearchParams({ - f: 'json', - geometry: JSON.stringify(queryLocation), - geometryType: 'esriGeometryPoint', - mosaicRule: JSON.stringify({ - mosaicMethod: 'esriMosaicLockRaster', - ascending: true, - mosaicOperation: 'MT_FIRST', - lockRasterIds: objectIds, - method: 'esriMosaicLockRaster', - operation: 'MT_FIRST', - multidimensionalDefinition: [], - }), - returnFirstValueOnly: 'false', - returnGeometry: 'false', - }); +// const params = new URLSearchParams({ +// f: 'json', +// geometry: JSON.stringify(queryLocation), +// geometryType: 'esriGeometryPoint', +// mosaicRule: JSON.stringify({ +// mosaicMethod: 'esriMosaicLockRaster', +// ascending: true, +// mosaicOperation: 'MT_FIRST', +// lockRasterIds: objectIds, +// method: 'esriMosaicLockRaster', +// operation: 'MT_FIRST', +// multidimensionalDefinition: [], +// }), +// returnFirstValueOnly: 'false', +// returnGeometry: 'false', +// }); - const res = await fetch( - `${LANDSAT_LEVEL_2_SERVICE_URL}/getSamples?${params.toString()}`, - { - signal: controller.signal, - } - ); +// const res = await fetch( +// `${LANDSAT_LEVEL_2_SERVICE_URL}/getSamples?${params.toString()}`, +// { +// signal: controller.signal, +// } +// ); - if (!res.ok) { - throw new Error('failed to get samples'); - } +// if (!res.ok) { +// throw new Error('failed to get samples'); +// } - const data = await res.json(); +// const data = await res.json(); - if (data.error) { - throw data.error; - } +// if (data.error) { +// throw data.error; +// } - const samples: LandsatSampleData[] = data?.samples - ? data.samples.map((d: LandsatSampleData) => { - return { - ...d, - values: d.value.split(' ').map((d) => +d), - }; - }) - : []; +// const samples: LandsatSampleData[] = data?.samples +// ? data.samples.map((d: LandsatSampleData) => { +// return { +// ...d, +// values: d.value.split(' ').map((d) => +d), +// }; +// }) +// : []; - return samples; -}; +// return samples; +// }; diff --git a/src/shared/services/landsat-level-2/getTemporalProfileData.ts b/src/shared/services/landsat-level-2/getTemporalProfileData.ts index 8cf0dc53..e050eb42 100644 --- a/src/shared/services/landsat-level-2/getTemporalProfileData.ts +++ b/src/shared/services/landsat-level-2/getTemporalProfileData.ts @@ -17,9 +17,11 @@ import { Point } from '@arcgis/core/geometry'; import { getLandsatScenes } from './getLandsatScenes'; import { TemporalProfileData, LandsatScene } from '@typing/imagery-service'; import { LANDSAT_LEVEL_2_SERVICE_URL } from './config'; -import { getSamples, LandsatSampleData } from './getSamples'; +// import { getSamples, LandsatSampleData } from './getSamples'; import { checkClearFlagInQABand } from './helpers'; import { getDateRangeForYear } from '@shared/utils/date-time/getTimeRange'; +// import { splitObjectIdsToSeparateGroups } from '../helpers/splitObjectIdsToSeparateGroups'; +import { PixelValuesData, getPixelValues } from '../helpers/getPixelValues'; type GetProfileDataOptions = { queryLocation: Point; @@ -43,35 +45,6 @@ type GetProfileDataOptions = { // let controller: AbortController = null; -/** - * Splits an array of object IDs into separate groups, each containing a maximum of 20 object IDs. - * This is useful when making requests with an upper limit on the number of object IDs. - * - * @param {number[]} objectIds - An array of object IDs to be split into groups. - * @returns {number[][]} An array of arrays, each representing a separate group of object IDs. - */ -const splitObjectIdsToSeparateGroups = (objectIds: number[]): number[][] => { - // Define the maximum number of items per group - const ItemsPerGroup = 20; - - // number of groups needed based on the total number of object IDs - const numOfGroups = Math.ceil(objectIds.length / ItemsPerGroup); - - // Initialize an array of empty arrays to hold the separate groups of object IDs - const objectsIdsInSeparateGroups: number[][] = [ - ...new Array(numOfGroups), - ].map(() => []); - - for (let i = 0; i < numOfGroups; i++) { - // Calculate the start and end indices for the current group - const startIdx = i * ItemsPerGroup; - const endIdx = Math.min(startIdx + ItemsPerGroup, objectIds.length); - objectsIdsInSeparateGroups[i] = objectIds.slice(startIdx, endIdx); - } - - return objectsIdsInSeparateGroups; -}; - /** * Retrieves data for the Trend (Temporal Profile) Tool based on specific criteria. * @@ -122,30 +95,37 @@ export const getDataForTrendTool = async ({ // extract object IDs from refined Landsat scenes. const objectIds = landsatScenesToSample.map((d) => d.objectId); - // divide object IDs into separate groups for parallel fetching. - const objectsIdsInSeparateGroups = - splitObjectIdsToSeparateGroups(objectIds); - // console.log(objectsIdsInSeparateGroups) - - // fetch samples data in parallel for each group of object IDs. - const samplesDataInSeparateGroups: LandsatSampleData[][] = - await Promise.all( - objectsIdsInSeparateGroups.map((oids) => - getSamples(queryLocation, oids, abortController) - ) - ); - - // combine samples data from different groups into a single array. - const samplesData: LandsatSampleData[] = samplesDataInSeparateGroups.reduce( - (combined, subsetOfSamplesData) => { - return [...combined, ...subsetOfSamplesData]; - }, - [] - ); - // console.log(samplesData); + // // divide object IDs into separate groups for parallel fetching. + // const objectsIdsInSeparateGroups = + // splitObjectIdsToSeparateGroups(objectIds); + // // console.log(objectsIdsInSeparateGroups) + + // // fetch samples data in parallel for each group of object IDs. + // const samplesDataInSeparateGroups: LandsatSampleData[][] = + // await Promise.all( + // objectsIdsInSeparateGroups.map((oids) => + // getSamples(queryLocation, oids, abortController) + // ) + // ); + + // // combine samples data from different groups into a single array. + // const samplesData: LandsatSampleData[] = samplesDataInSeparateGroups.reduce( + // (combined, subsetOfSamplesData) => { + // return [...combined, ...subsetOfSamplesData]; + // }, + // [] + // ); + // // console.log(samplesData); + + const pixelValues = await getPixelValues({ + serviceURL: LANDSAT_LEVEL_2_SERVICE_URL, + point: queryLocation, + objectIds, + abortController, + }); const temporalProfileData = formatAsTemporalProfileData( - samplesData, + pixelValues, landsatScenesToSample ); @@ -167,7 +147,7 @@ export const getDataForTrendTool = async ({ * @returns */ const formatAsTemporalProfileData = ( - samples: LandsatSampleData[], + pixelValues: PixelValuesData[], scenes: LandsatScene[] ): TemporalProfileData[] => { const output: TemporalProfileData[] = []; @@ -178,22 +158,21 @@ const formatAsTemporalProfileData = ( sceneByObjectId.set(scene.objectId, scene); } - for (let i = 0; i < samples.length; i++) { - const sampleData = samples[i]; - const { rasterId, values } = sampleData; + for (let i = 0; i < pixelValues.length; i++) { + const sampleData = pixelValues[i]; + const { objectId, values } = sampleData; - if (sceneByObjectId.has(rasterId) === false) { + if (sceneByObjectId.has(objectId) === false) { continue; } // const scene = scenes[i]; const { - objectId, acquisitionDate, acquisitionMonth, acquisitionYear, formattedAcquisitionDate, - } = sceneByObjectId.get(rasterId); + } = sceneByObjectId.get(objectId); output.push({ objectId, diff --git a/src/shared/services/landsat-level-2/helpers.ts b/src/shared/services/landsat-level-2/helpers.ts index 839bbbe9..b5698fd2 100644 --- a/src/shared/services/landsat-level-2/helpers.ts +++ b/src/shared/services/landsat-level-2/helpers.ts @@ -243,14 +243,14 @@ export const parseLandsatInfo = (productId: string): LandsatProductInfo => { }; }; -export const getMosaicRuleByObjectId = (objectId: number) => { - return { - ascending: false, - lockRasterIds: [objectId], - mosaicMethod: 'esriMosaicLockRaster', - where: `objectid in (${objectId})`, - }; -}; +// export const getMosaicRuleByObjectId = (objectId: number) => { +// return { +// ascending: false, +// lockRasterIds: [objectId], +// mosaicMethod: 'esriMosaicLockRaster', +// where: `objectid in (${objectId})`, +// }; +// }; export const getBandIndexesBySpectralIndex = ( spectralIndex: SpectralIndex diff --git a/src/shared/services/landsat-level-2/identify.ts b/src/shared/services/landsat-level-2/identify.ts deleted file mode 100644 index 0146cf58..00000000 --- a/src/shared/services/landsat-level-2/identify.ts +++ /dev/null @@ -1,153 +0,0 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Geometry, Point } from '@arcgis/core/geometry'; -import { LANDSAT_LEVEL_2_SERVICE_URL } from './config'; -import { IFeature } from '@esri/arcgis-rest-feature-service'; -import { getMosaicRuleByObjectId } from './helpers'; -import { canBeConvertedToNumber } from '@shared/utils/snippets/canBeConvertedToNumber'; - -type IdentifyTaskParams = { - point: Point; - abortController: AbortController; - objectId?: number; -}; - -type IdentifyTaskResponse = { - catalogItems: { - features: IFeature[]; - geometryType: string; - objectIdFieldName: string; - }; - location: Geometry; - value: string; - name: string; - properties: { - Values: string[]; - }; -}; - -/** - * The identify operation is performed on Landsat-2 image service resource. - * It identifies the content of an image service for a given location, mosaic rule, and rendering rule or rules. - * - * @param param0 - * @returns - * - * @see https://developers.arcgis.com/rest/services-reference/enterprise/identify-image-service-.htm - */ -export const identify = async ({ - point, - objectId, - abortController, -}: IdentifyTaskParams): Promise => { - const mosaicRule = objectId - ? getMosaicRuleByObjectId(objectId) - : { - ascending: true, - mosaicMethod: 'esriMosaicAttribute', - mosaicOperation: 'MT_FIRST', - sortField: 'best', - sortValue: '0', - }; - - const params = new URLSearchParams({ - f: 'json', - maxItemCount: '1', - returnGeometry: 'false', - returnCatalogItems: 'true', - geometryType: 'esriGeometryPoint', - geometry: JSON.stringify({ - spatialReference: { - wkid: 4326, - }, - x: point.longitude, - y: point.latitude, - }), - mosaicRule: JSON.stringify(mosaicRule), - }); - - const requestURL = `${LANDSAT_LEVEL_2_SERVICE_URL}/identify?${params.toString()}`; - - const res = await fetch(requestURL, { signal: abortController.signal }); - - const data = await res.json(); - - if (data.error) { - throw data.error; - } - - return data as IdentifyTaskResponse; -}; - -/** - * Get pixel values from Identify Task Response - * @param res - * @returns - */ -export const getPixelValuesFromIdentifyTaskResponse = ( - res: IdentifyTaskResponse -): number[] => { - let bandValues: number[] = null; - - if (res?.value && res?.value !== 'NoData') { - // get pixel values from the value property first - bandValues = res?.value.split(', ').map((d) => +d); - } else if (res?.properties?.Values[0]) { - bandValues = res?.properties?.Values[0].split(' ').map((d) => { - if (canBeConvertedToNumber(d) === false) { - return null; - } - - return +d; - }); - } - - return bandValues; -}; - -/** - * Run identify task to get values of the pixel that intersects with the input point from the scene with input object id. - * @param param0 - * @returns - */ -export const getPixelValues = async ({ - point, - objectId, - abortController, -}: IdentifyTaskParams): Promise => { - const res = await identify({ - point, - objectId, - abortController, - }); - - if ( - res?.catalogItems?.features && - res?.catalogItems?.features.length === 0 - ) { - throw new Error( - 'Failed to fetch pixel values. Please select a location inside of the selected landsat scene.' - ); - } - - const bandValues = getPixelValuesFromIdentifyTaskResponse(res); - - if (!bandValues) { - throw new Error('Identify task does not return band values'); - } - - return bandValues; -}; diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index c69b81b3..98e7e36e 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -52,6 +52,8 @@ export const SENTINEL_1_SERVICE_URL_PROD = /** * Service URL to be used in DEV enviroment + * + * @see https://sentinel1dev.imagery1.arcgis.com/arcgis/rest/services/Sentinel1RTC/ImageServer/ */ export const SENTINEL_1_SERVICE_URL_DEV = serviceConfig.development || SENTINEL_1_ORIGINAL_SERVICE_URL; @@ -90,9 +92,9 @@ const SENTINEL1_RASTER_FUNCTIONS = [ // 'Sentinel-1 RGB dB', 'Sentinel-1 RTC VV dB with DRA', 'Sentinel-1 RTC VH dB with DRA', - 'Sentinel-1 SWI Raw', - 'Sentinel-1 DpRVIc Raw', - 'Sentinel-1 Water Anomaly Index Raw', + 'SWI Raw', + // 'Sentinel-1 DpRVIc Raw', + 'Water Anomaly Index Raw', 'Sentinel-1 RTC Despeckle VV Amplitude', 'Sentinel-1 RTC Despeckle VH Amplitude', ] as const; @@ -127,19 +129,19 @@ export const SENTINEL1_RASTER_FUNCTION_INFOS: { label: 'VH dB', }, { - name: 'Sentinel-1 SWI Raw', + name: 'SWI Raw', description: 'Sentinel-1 Water Index for extracting water bodies and monitoring droughts computed as (0.1747 * dB_vv) + (0.0082 * dB_vh * dB_vv) + (0.0023 * dB_vv ^ 2) - (0.0015 * dB_vh ^ 2) + 0.1904.', label: 'SWI ', }, + // { + // name: 'Sentinel-1 DpRVIc Raw', + // description: + // 'Dual-pol Radar Vegetation Index for GRD SAR data computed as ((VH/VV) * ((VH/VV) + 3)) / ((VH/VV) + 1) ^ 2.', + // label: 'DpRVIc ', + // }, { - name: 'Sentinel-1 DpRVIc Raw', - description: - 'Dual-pol Radar Vegetation Index for GRD SAR data computed as ((VH/VV) * ((VH/VV) + 3)) / ((VH/VV) + 1) ^ 2.', - label: 'DpRVIc ', - }, - { - name: 'Sentinel-1 Water Anomaly Index Raw', + name: 'Water Anomaly Index Raw', description: 'Water Anomaly Index that is used for oil detection but can also be used to detect other pullutants and natural phenomena such as industrial pollutants, sewage, red ocean tides, seaweed blobs, and more computed as Ln (0.01 / (0.01 + VV * 2)).', label: 'Water Anomaly', diff --git a/src/shared/services/sentinel-1/getSentinel1Scenes.ts b/src/shared/services/sentinel-1/getSentinel1Scenes.ts index 191fe199..12a9c5cd 100644 --- a/src/shared/services/sentinel-1/getSentinel1Scenes.ts +++ b/src/shared/services/sentinel-1/getSentinel1Scenes.ts @@ -36,10 +36,10 @@ type GetSentinel1ScenesParams = { * orbit direction */ orbitDirection: Sentinel1OrbitDirection; - /** - * If ture, we should only get scenes that has dual polarization (VV+VH) - */ - dualPolarizationOnly?: boolean; + // /** + // * If ture, we should only get scenes that has dual polarization (VV+VH) + // */ + // dualPolarizationOnly?: boolean; /** * acquisition date range. * @@ -141,7 +141,7 @@ export const getSentinel1Scenes = async ({ // acquisitionYear, acquisitionDateRange, orbitDirection, - dualPolarizationOnly, + // dualPolarizationOnly, acquisitionMonth, acquisitionDate, abortController, @@ -162,13 +162,20 @@ export const getSentinel1Scenes = async ({ ); } + // if (acquisitionMonth) { + // whereClauses.push(`(${MONTH} = ${acquisitionMonth})`); + // } + if (ORBIT_DIRECTION) { whereClauses.push(`(${ORBIT_DIRECTION} = '${orbitDirection}')`); } - if (dualPolarizationOnly) { - whereClauses.push(`(${POLARIZATION_TYPE} = 'Dual')`); - } + // if (dualPolarizationOnly) { + // whereClauses.push(`(${POLARIZATION_TYPE} = 'Dual')`); + // } + + // we should only include scenes with dual polarization + whereClauses.push(`(${POLARIZATION_TYPE} = 'Dual')`); const [longitude, latitude] = mapPoint; diff --git a/src/shared/services/sentinel-1/getTemporalProfileData.ts b/src/shared/services/sentinel-1/getTemporalProfileData.ts new file mode 100644 index 00000000..05a9a984 --- /dev/null +++ b/src/shared/services/sentinel-1/getTemporalProfileData.ts @@ -0,0 +1,191 @@ +import { Point } from '@arcgis/core/geometry'; +import { + Sentinel1OrbitDirection, + Sentinel1Scene, + TemporalProfileData, +} from '@typing/imagery-service'; +import { getSentinel1Scenes } from './getSentinel1Scenes'; +import { getDateRangeForYear } from '@shared/utils/date-time/getTimeRange'; +// import { splitObjectIdsToSeparateGroups } from '../helpers/splitObjectIdsToSeparateGroups'; +// import { identify } from '../helpers/identify'; +import { SENTINEL_1_SERVICE_URL } from './config'; +import { PixelValuesData, getPixelValues } from '../helpers/getPixelValues'; + +type GetSentinel1TemporalProfileDataOptions = { + queryLocation: Point; + /** + * acquisition month to be used to fetch temporal trend data for a given month (Year to Year) + */ + acquisitionMonth: number; + /** + * acquisition year to be used to fetch temporal trend data for a given year (Month to Month) + */ + acquisitionYear: number; + /** + * orbit direction + */ + orbitDirection: Sentinel1OrbitDirection; + /** + * abortController that will be used to cancel the pending requests + */ + abortController: AbortController; +}; + +export const getSentinel1TemporalProfileData = async ({ + queryLocation, + orbitDirection, + acquisitionMonth, + acquisitionYear, + abortController, +}: GetSentinel1TemporalProfileDataOptions): Promise => { + const { x, y } = queryLocation; + + let sentinel1Scenes: Sentinel1Scene[] = []; + + if (acquisitionMonth) { + // query Sentinel-1 scenes based on input location and acquisition month to show "year-to-year" trend + sentinel1Scenes = await getSentinel1Scenes({ + mapPoint: [x, y], + // dualPolarizationOnly: true, + orbitDirection, + acquisitionMonth, + abortController, + }); + } else if (acquisitionYear) { + // query Sentinel-1 scenes based on input location and acquisition year to show "month-to-month" trend + sentinel1Scenes = await getSentinel1Scenes({ + mapPoint: [x, y], + // dualPolarizationOnly: true, + orbitDirection, + acquisitionDateRange: getDateRangeForYear(acquisitionYear), + abortController, + }); + } + + if (!sentinel1Scenes.length) { + return []; + } + + // refine Sentinel1 scenes and only keep one scene for each month + const sentinel1ScenesToSample = getSentinel1ScenesToSample( + sentinel1Scenes, + acquisitionMonth + ); + // console.log(sentinel1ScenesToSample) + + // extract object IDs from refined Sentinel-1 scenes. + const objectIds = sentinel1ScenesToSample.map((d) => d.objectId); + // console.log(objectIds) + + const pixelValues = await getPixelValues({ + serviceURL: SENTINEL_1_SERVICE_URL, + point: queryLocation, + objectIds, + abortController, + }); + // console.log(pixelValues); + + const temporalProfileData = formatAsTemporalProfileData( + pixelValues, + sentinel1ScenesToSample + ); + // console.log(temporalProfileData); + + return temporalProfileData; +}; + +/** + * Filters the input Sentinel1 scenes to retain only one scene per month. + * If a specific acquisition month is provided, only scenes from that month are considered. + * The selected scene for each month is the first scene of that month in the sorted list. + * + * @param scenes - An array of Sentinel1 scenes. + * @param acquisitionMonth - An optional user-selected month to filter scenes by. + * If provided, only scenes from this month will be kept. + * @returns An array of Sentinel1 scenes, with only one scene per month. + */ +const getSentinel1ScenesToSample = ( + scenes: Sentinel1Scene[], + acquisitionMonth?: number +): Sentinel1Scene[] => { + if (!scenes.length) { + return []; + } + + scenes.sort((a, b) => a.acquisitionDate - b.acquisitionDate); + // console.log(scenes); + + const candidates: Sentinel1Scene[] = [scenes[0]]; + + for (let i = 1; i < scenes.length; i++) { + const prevScene = candidates[candidates.length - 1]; + + const currentScene = scenes[i]; + + // If an acquisition month is provided, only keep scenes from that month. + if ( + acquisitionMonth && + currentScene.acquisitionMonth !== acquisitionMonth + ) { + continue; + } + + // add current scene to candidates if it was acquired from a different year or month + if ( + prevScene?.acquisitionYear !== currentScene.acquisitionYear || + prevScene?.acquisitionMonth !== currentScene.acquisitionMonth + ) { + candidates.push(currentScene); + continue; + } + } + + return candidates; +}; + +/** + * Create Temporal Profiles Data by combining pixel values data and imagery scene data + * @param samples + * @param scenes Sentinel-1 Imagery Scenes + * @returns + */ +const formatAsTemporalProfileData = ( + pixelValues: PixelValuesData[], + scenes: Sentinel1Scene[] +): TemporalProfileData[] => { + const output: TemporalProfileData[] = []; + + const sceneByObjectId = new Map(); + + for (const scene of scenes) { + sceneByObjectId.set(scene.objectId, scene); + } + + for (let i = 0; i < pixelValues.length; i++) { + const d = pixelValues[i]; + const { objectId, values } = d; + + if (sceneByObjectId.has(objectId) === false) { + continue; + } + + // const scene = scenes[i]; + const { + acquisitionDate, + acquisitionMonth, + acquisitionYear, + formattedAcquisitionDate, + } = sceneByObjectId.get(objectId); + + output.push({ + objectId, + acquisitionDate, + acquisitionMonth, + acquisitionYear, + formattedAcquisitionDate, + values, + }); + } + + return output; +}; diff --git a/src/shared/services/sentinel-1/helper.ts b/src/shared/services/sentinel-1/helper.ts new file mode 100644 index 00000000..f179022d --- /dev/null +++ b/src/shared/services/sentinel-1/helper.ts @@ -0,0 +1,38 @@ +import { RadarIndex } from '@typing/imagery-service'; + +export const calcRadarIndex = ( + indexName: RadarIndex, + bandValues: number[] +): number => { + const [VV, VH] = bandValues; + + let value = 0; + + // Calculate the value based on the input radar index + if (indexName === 'water') { + value = + 0.1747 * VV + + 0.0082 * VH * VV + + ((0.0023 * VV) ^ 2) - + ((0.0015 * VH) ^ 2) + + 0.1904; + } else if (indexName === 'water anomaly') { + value = 0.01 / (0.01 + VV * 2); + } + + return value; +}; + +export const getSentinel1PixelValueRangeByRadarIndex = ( + indexName: RadarIndex +) => { + if (indexName === 'water anomaly') { + return [-2, 0]; + } + + if (indexName === 'water') { + return [-0.5, 1]; + } + + return [0, 0]; +}; diff --git a/src/shared/store/ChangeCompareTool/reducer.ts b/src/shared/store/ChangeCompareTool/reducer.ts index 2d27890d..7a2b1ce0 100644 --- a/src/shared/store/ChangeCompareTool/reducer.ts +++ b/src/shared/store/ChangeCompareTool/reducer.ts @@ -19,13 +19,13 @@ import { PayloadAction, // createAsyncThunk } from '@reduxjs/toolkit'; -import { SpectralIndex } from '@typing/imagery-service'; +import { RadarIndex, SpectralIndex } from '@typing/imagery-service'; export type ChangeCompareToolState = { /** * user selected option that will be used to create raster function to compare change between two imagery scenes */ - selectedOption: SpectralIndex | string; + selectedOption: SpectralIndex | RadarIndex | string; /** * if true, the change compare layer is visible in the map */ @@ -53,7 +53,7 @@ const slice = createSlice({ reducers: { selectedOption4ChangeCompareToolChanged: ( state, - action: PayloadAction + action: PayloadAction ) => { state.selectedOption = action.payload; }, diff --git a/src/shared/store/Sentinel1/thunks.ts b/src/shared/store/Sentinel1/thunks.ts index 1afae45b..e1295d60 100644 --- a/src/shared/store/Sentinel1/thunks.ts +++ b/src/shared/store/Sentinel1/thunks.ts @@ -40,8 +40,8 @@ let abortController: AbortController = null; export const queryAvailableScenes = ( acquisitionDateRange: DateRange, - orbitDirection: Sentinel1OrbitDirection, - dualPolarizationOnly: boolean + orbitDirection: Sentinel1OrbitDirection + // dualPolarizationOnly: boolean ) => async (dispatch: StoreDispatch, getState: StoreGetState) => { if (!acquisitionDateRange) { @@ -64,7 +64,7 @@ export const queryAvailableScenes = const scenes = await getSentinel1Scenes({ acquisitionDateRange, orbitDirection, - dualPolarizationOnly, + // dualPolarizationOnly, mapPoint: center, abortController, }); diff --git a/src/shared/store/SpectralProfileTool/thunks.ts b/src/shared/store/SpectralProfileTool/thunks.ts index 16455f49..375ca725 100644 --- a/src/shared/store/SpectralProfileTool/thunks.ts +++ b/src/shared/store/SpectralProfileTool/thunks.ts @@ -26,7 +26,7 @@ import { selectActiveAnalysisTool, selectQueryParams4MainScene, } from '../ImageryScene/selectors'; -import { getPixelValues } from '@shared/services/landsat-level-2/identify'; +import { getLandsatPixelValues } from '@shared/services/landsat-level-2/getLandsatPixelValues'; let abortController: AbortController = null; @@ -69,9 +69,9 @@ export const updateSpectralProfileData = dispatch(errorChanged(null)); try { - const bandValues = await getPixelValues({ + const bandValues = await getLandsatPixelValues({ point: queryLocation, - objectId: objectIdOfSelectedScene, + objectIds: [objectIdOfSelectedScene], abortController, }); diff --git a/src/shared/store/SpectralSamplingTool/thunks.ts b/src/shared/store/SpectralSamplingTool/thunks.ts index 31efe6be..5eb54699 100644 --- a/src/shared/store/SpectralSamplingTool/thunks.ts +++ b/src/shared/store/SpectralSamplingTool/thunks.ts @@ -29,7 +29,7 @@ import { selectSelectedSpectralSamplingPointData, selectSpectralSamplingPointsData, } from './selectors'; -import { getPixelValues } from '@shared/services/landsat-level-2/identify'; +import { getLandsatPixelValues } from '@shared/services/landsat-level-2/getLandsatPixelValues'; import { queryParamsListChanged } from '../ImageryScene/reducer'; let abortController: AbortController = null; @@ -139,10 +139,11 @@ export const updateLocationOfSpectralSamplingPoint = abortController = new AbortController(); try { - const bandValues = await getPixelValues({ + const bandValues = await getLandsatPixelValues({ point, - objectId: + objectIds: [ queryParamsOfSelectedSpectralSamplingPoint.objectIdOfSelectedScene, + ], abortController, }); diff --git a/src/shared/store/TrendTool/reducer.ts b/src/shared/store/TrendTool/reducer.ts index 19e698a2..b566b4bc 100644 --- a/src/shared/store/TrendTool/reducer.ts +++ b/src/shared/store/TrendTool/reducer.ts @@ -23,7 +23,11 @@ import { getCurrentMonth, getCurrentYear, } from '@shared/utils/date-time/getCurrentDateTime'; -import { TemporalProfileData, SpectralIndex } from '@typing/imagery-service'; +import { + TemporalProfileData, + SpectralIndex, + RadarIndex, +} from '@typing/imagery-service'; import { Point } from '@arcgis/core/geometry'; /** @@ -52,9 +56,9 @@ export type TrendToolState = { */ acquisitionYear: number; /** - * user selected spectral index to be used in the Temporal trend tool + * user selected spectral index or radar index that will be used to fetch/create Trend Profile data that will be used in the Temporal trend tool */ - spectralIndex: SpectralIndex; + selectedIndex: SpectralIndex | RadarIndex; /** * imagery temporal trend data */ @@ -68,6 +72,10 @@ export type TrendToolState = { * if ture, it is in process of loading data to render trend tool */ loading: boolean; + /** + * message from the error that was caught while fetch the temporal profile data + */ + error: string; }; export const initialTrendToolState: TrendToolState = { @@ -75,12 +83,13 @@ export const initialTrendToolState: TrendToolState = { queryLocation: null, acquisitionMonth: getCurrentMonth(), acquisitionYear: getCurrentYear(), - spectralIndex: 'moisture', + selectedIndex: 'moisture', temporalProfileData: { byObjectId: {}, objectIds: [], }, loading: false, + error: null, }; const slice = createSlice({ @@ -125,11 +134,11 @@ const slice = createSlice({ byObjectId, }; }, - spectralIndex4TrendToolChanged: ( + selectedIndex4TrendToolChanged: ( state, - action: PayloadAction + action: PayloadAction ) => { - state.spectralIndex = action.payload; + state.selectedIndex = action.payload; }, trendToolOptionChanged: ( state, @@ -140,6 +149,9 @@ const slice = createSlice({ trendToolIsLoadingChanged: (state, action: PayloadAction) => { state.loading = action.payload; }, + errorChanged: (state, action: PayloadAction) => { + state.error = action.payload; + }, }, }); @@ -150,9 +162,10 @@ export const { acquisitionMonth4TrendToolChanged, acquisitionYear4TrendToolChanged, trendToolDataUpdated, - spectralIndex4TrendToolChanged, + selectedIndex4TrendToolChanged, trendToolOptionChanged, trendToolIsLoadingChanged, + errorChanged, } = slice.actions; export default reducer; diff --git a/src/shared/store/TrendTool/selectors.ts b/src/shared/store/TrendTool/selectors.ts index a3178add..2841d49b 100644 --- a/src/shared/store/TrendTool/selectors.ts +++ b/src/shared/store/TrendTool/selectors.ts @@ -39,9 +39,9 @@ export const selectTrendToolData = createSelector( } ); -export const selectSpectralIndex4TrendTool = createSelector( - (state: RootState) => state.TrendTool.spectralIndex, - (spectralIndex) => spectralIndex +export const selectSelectedIndex4TrendTool = createSelector( + (state: RootState) => state.TrendTool.selectedIndex, + (selectedOption) => selectedOption ); export const selectTrendToolOption = createSelector( @@ -58,3 +58,8 @@ export const selectIsLoadingData4TrendingTool = createSelector( (state: RootState) => state.TrendTool.loading, (loading) => loading ); + +export const selectError4TemporalProfileTool = createSelector( + (state: RootState) => state.TrendTool.error, + (error) => error +); diff --git a/src/shared/store/TrendTool/thunks.ts b/src/shared/store/TrendTool/thunks.ts index 97968e86..c1ea724a 100644 --- a/src/shared/store/TrendTool/thunks.ts +++ b/src/shared/store/TrendTool/thunks.ts @@ -19,6 +19,7 @@ import { trendToolDataUpdated, queryLocation4TrendToolChanged, trendToolIsLoadingChanged, + errorChanged, } from './reducer'; import { selectAcquisitionMonth4TrendTool, @@ -26,47 +27,50 @@ import { selectQueryLocation4TrendTool, selectTrendToolOption, } from './selectors'; -import { getDataForTrendTool } from '@shared/services/landsat-level-2/getTemporalProfileData'; import { selectActiveAnalysisTool, selectAppMode, selectQueryParams4SceneInSelectedMode, } from '../ImageryScene/selectors'; import { TemporalProfileData } from '@typing/imagery-service'; -import { selectLandsatMissionsToBeExcluded } from '../Landsat/selectors'; -import { intersectWithLandsatScene } from '@shared/services/landsat-level-2/getLandsatScenes'; -// import { delay } from '@shared/utils/snippets/delay'; -export const updateQueryLocation4TrendTool = - (point: Point) => +/** + * Type definition for a function that determines if the query location intersects with the imagery scene specified by the input object ID. + */ +export type IntersectWithImagerySceneFunc = ( + queryLocation: Point, + objectId: number, + abortController: AbortController +) => Promise; + +/** + * Type definition for a function that retrieves the Temporal Profile data. + */ +export type FetchTemporalProfileDataFunc = ( + queryLocation: Point, + acquisitionMonth: number, + acquisitionYear: number, + abortController: AbortController +) => Promise; + +/** + * This thunk function updates the temporal profile tool data by invoking the provided `fetchTemporalProfileDataFunc` + * to retrieve the temporal profile data for the selected imagery service. It also calls `intersectWithImagerySceneFunc` + * to verify if the query location is within the extent of the selected imagery scene. + * + * Why pass `fetchTemporalProfileDataFunc` and `intersectWithImagerySceneFunc` as parameters? This approach decouples this + * thunk function from any specific imagery service, allowing wrapper components to determine how and where to fetch the temporal profile data. + * + * @param fetchTemporalProfileDataFunc - An async function that retrieves the temporal profile data. + * @param intersectWithImagerySceneFunc - An async function that checks if the query location intersects with the specified imagery scene using the input object ID. + * @returns void + */ +export const updateTemporalProfileToolData = + ( + fetchTemporalProfileDataFunc: FetchTemporalProfileDataFunc, + intersectWithImagerySceneFunc: IntersectWithImagerySceneFunc + ) => async (dispatch: StoreDispatch, getState: StoreGetState) => { - const mode = selectAppMode(getState()); - - const tool = selectActiveAnalysisTool(getState()); - - if (mode !== 'analysis' || tool !== 'trend') { - return; - } - - dispatch(queryLocation4TrendToolChanged(point)); - }; - -let abortController: AbortController = null; - -export const resetTrendToolData = - () => (dispatch: StoreDispatch, getState: StoreGetState) => { - // cancel pending requests triggered by `updateTrendToolData` thunk function - if (abortController) { - abortController.abort(); - } - - dispatch(trendToolDataUpdated([])); - dispatch(queryLocation4TrendToolChanged(null)); - dispatch(trendToolIsLoadingChanged(false)); - }; - -export const updateTrendToolData = - () => async (dispatch: StoreDispatch, getState: StoreGetState) => { const rootState = getState(); const queryLocation = selectQueryLocation4TrendTool(rootState); @@ -80,12 +84,10 @@ export const updateTrendToolData = const trendToolOption = selectTrendToolOption(rootState); - const missionsToBeExcluded = - selectLandsatMissionsToBeExcluded(rootState); + // remove any existing error from previous request + dispatch(errorChanged(null)); if (!queryLocation || !objectIdOfSelectedScene) { - // dispatch(trendToolDataUpdated([])); - // dispatch(queryLocation4TrendToolChanged(null)); return dispatch(resetTrendToolData()); } @@ -98,7 +100,7 @@ export const updateTrendToolData = dispatch(trendToolIsLoadingChanged(true)); try { - const isIntersected = await intersectWithLandsatScene( + const isIntersected = await intersectWithImagerySceneFunc( queryLocation, objectIdOfSelectedScene, abortController @@ -110,24 +112,19 @@ export const updateTrendToolData = ); } - const data: TemporalProfileData[] = await getDataForTrendTool({ - queryLocation, - acquisitionMonth: + const data: TemporalProfileData[] = + await fetchTemporalProfileDataFunc( + queryLocation, trendToolOption === 'year-to-year' ? acquisitionMonth : null, - acquisitionYear: trendToolOption === 'month-to-month' ? acquisitionYear : null, - // samplingTemporalResolution, - missionsToBeExcluded, - abortController, - }); + abortController + ); dispatch(trendToolDataUpdated(data)); - - dispatch(trendToolIsLoadingChanged(false)); } catch (err) { // no need to throw the error // is caused by the user aborting the pending query @@ -136,7 +133,42 @@ export const updateTrendToolData = } // console.log('failed to fetch temporal profile data'); + dispatch( + errorChanged( + err?.message || + 'failed to fetch data for temporal profile tool' + ) + ); + // throw err; + } finally { dispatch(trendToolIsLoadingChanged(false)); - throw err; } }; + +export const updateQueryLocation4TrendTool = + (point: Point) => + async (dispatch: StoreDispatch, getState: StoreGetState) => { + const mode = selectAppMode(getState()); + + const tool = selectActiveAnalysisTool(getState()); + + if (mode !== 'analysis' || tool !== 'trend') { + return; + } + + dispatch(queryLocation4TrendToolChanged(point)); + }; + +let abortController: AbortController = null; + +export const resetTrendToolData = + () => (dispatch: StoreDispatch, getState: StoreGetState) => { + // cancel pending requests triggered by `updateTrendToolData` thunk function + if (abortController) { + abortController.abort(); + } + + dispatch(trendToolDataUpdated([])); + dispatch(queryLocation4TrendToolChanged(null)); + dispatch(trendToolIsLoadingChanged(false)); + }; diff --git a/src/shared/utils/url-hash-params/trendTool.ts b/src/shared/utils/url-hash-params/trendTool.ts index dea723f9..afa9c4af 100644 --- a/src/shared/utils/url-hash-params/trendTool.ts +++ b/src/shared/utils/url-hash-params/trendTool.ts @@ -30,7 +30,7 @@ const encodeTemporalProfileToolData = (data: TrendToolState): string => { } const { - spectralIndex, + selectedIndex, acquisitionMonth, queryLocation, acquisitionYear, @@ -42,7 +42,7 @@ const encodeTemporalProfileToolData = (data: TrendToolState): string => { } return [ - spectralIndex, + selectedIndex, acquisitionMonth, // samplingTemporalResolution, encodeQueryLocation(queryLocation), @@ -57,7 +57,7 @@ const decodeTemporalProfileToolData = (val: string): TrendToolState => { } const [ - spectralIndex, + selectedOption, acquisitionMonth, // samplingTemporalResolution, queryLocation, @@ -67,7 +67,7 @@ const decodeTemporalProfileToolData = (val: string): TrendToolState => { return { ...initialTrendToolState, - spectralIndex: spectralIndex as SpectralIndex, + selectedIndex: selectedOption as SpectralIndex, acquisitionMonth: +acquisitionMonth, acquisitionYear: acquisitionYear ? +acquisitionYear : getCurrentYear(), option: option ? (option as TrendToolOption) : 'year-to-year', diff --git a/src/types/imagery-service.d.ts b/src/types/imagery-service.d.ts index ff6c25ed..f80ec1d2 100644 --- a/src/types/imagery-service.d.ts +++ b/src/types/imagery-service.d.ts @@ -51,6 +51,12 @@ export type SpectralIndex = | 'temperature farhenheit' | 'temperature celcius'; +/** + * Name of Radar Index for SAR image (e.g. Sentinel-1) + */ +export type RadarIndex = 'water' | 'water anomaly'; +// | 'vegetation' + export type LandsatScene = { objectId: number; /** From 957bbb426a50db98e1074e6f1c09f95e9c6fcac5 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 22 May 2024 13:31:49 -0700 Subject: [PATCH 035/151] feat(sentinel1explorer): add Index Mask Tool - refactor: update MaskTool slice of Redux store - refactor: add MaskToolWarningMessage component - add Sentinel1MaskTool to the Bottom Panel - fix: raster function names of Sentinel1 - add SENTINEL1_WATER_INDEX_PIXEL_RANGE and SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE to sentinel-1 config file - refactor: update PixelRangeSlider; add getCountOfTicks and getTickLabels helper functions - refactor: update ImageryLayerWithPixelFilter - add Sentinel1MaskLayer - fix: mask color for water anomaly - add VV and VH Power with Despeckle to SENTINEL1_RASTER_FUNCTIONS - add ship and urban index to Mask Tool options - update ImageryLayerWithPixelFilter to support filter pixels using value range 4 band 2 - add getPreloadedMaskToolState to getPreloadedState for Sentinel1 explorer - update ImageryLayerWithPixelFilter to adjust pixel values to make it fit into the full pixel value range - doc: minor update to the comment - fix: ImageryLayerWithPixelFilter should not reset order of the layer - refactor: ImageryLayerWithPixelFilter should use blendMode property instead of shouldClip - add WaterLandMaskLayer to Setinel1 Mask layer - fix: style of Map Popup --- .../MaskLayer/MaskLayerContainer.tsx | 7 +- .../components/MaskTool/MaskToolContainer.tsx | 26 +-- .../MaskTool/SurfaceTempPixelRangeSlider.tsx | 6 +- .../components/MaskTool/MaskToolContainer.tsx | 8 +- .../AnalyzeToolSelector.tsx | 5 + .../ChangeCompareLayerContainer.tsx | 6 +- .../ChangeCompareToolContainer.tsx | 37 +++- .../components/Layout/Layout.tsx | 4 +- .../components/Map/Map.tsx | 2 + .../MaskLayer/Sentinel1MaskLayer.tsx | 168 +++++++++++++++++ .../MaskLayer/WaterLandMaskLayer.tsx | 91 +++++++++ .../components/MaskLayer/index.ts | 1 + .../components/MaskTool/Sentinel1MaskTool.tsx | 156 ++++++++++++++++ .../components/MaskTool/index.ts | 1 + .../useSentinel1RasterFunctions.tsx | 51 +++--- src/sentinel-1-explorer/contans/index.ts | 2 + .../store/getPreloadedState.ts | 20 +- .../ChangeCompareToolControls.tsx | 22 +-- .../components/ImageryLayer/useImageLayer.tsx | 6 +- .../ImageryLayerWithPixelFilter.tsx | 173 ++++++++++++++++-- .../MapView/CustomMapPopupStyle.css | 10 +- .../components/MaskTool/WarningMessage.tsx | 13 ++ src/shared/components/MaskTool/index.ts | 1 + .../components/Slider/PixelRangeSlider.tsx | 40 +++- src/shared/services/sentinel-1/config.ts | 89 +++++---- src/shared/store/MaskTool/reducer.ts | 43 +++-- src/shared/store/MaskTool/selectors.ts | 14 +- src/shared/utils/url-hash-params/maskTool.ts | 22 +-- src/types/argis-sdk-for-javascript.d.ts | 32 ++++ src/types/imagery-service.d.ts | 2 +- 30 files changed, 882 insertions(+), 176 deletions(-) create mode 100644 src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx create mode 100644 src/sentinel-1-explorer/components/MaskLayer/WaterLandMaskLayer.tsx create mode 100644 src/sentinel-1-explorer/components/MaskLayer/index.ts create mode 100644 src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx create mode 100644 src/sentinel-1-explorer/components/MaskTool/index.ts create mode 100644 src/sentinel-1-explorer/contans/index.ts create mode 100644 src/shared/components/MaskTool/WarningMessage.tsx create mode 100644 src/types/argis-sdk-for-javascript.d.ts diff --git a/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx b/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx index 7a5f3e31..46fbd4a5 100644 --- a/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx +++ b/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx @@ -21,7 +21,7 @@ import { selectMaskOptions, selectShouldClipMaskLayer, selectMaskLayerOpcity, - selectSpectralIndex4MaskTool, + selectSelectedIndex4MaskTool, } from '@shared/store/MaskTool/selectors'; import { selectActiveAnalysisTool, @@ -29,6 +29,7 @@ import { selectQueryParams4SceneInSelectedMode, } from '@shared/store/ImageryScene/selectors'; import GroupLayer from '@arcgis/core/layers/GroupLayer'; +import { SpectralIndex } from '@typing/imagery-service'; type Props = { mapView?: MapView; @@ -38,7 +39,9 @@ type Props = { export const MaskLayerContainer: FC = ({ mapView, groupLayer }) => { const mode = useSelector(selectAppMode); - const spectralIndex = useSelector(selectSpectralIndex4MaskTool); + const spectralIndex = useSelector( + selectSelectedIndex4MaskTool + ) as SpectralIndex; const { selectedRange, color } = useSelector(selectMaskOptions); diff --git a/src/landsat-explorer/components/MaskTool/MaskToolContainer.tsx b/src/landsat-explorer/components/MaskTool/MaskToolContainer.tsx index c5348949..ee4867be 100644 --- a/src/landsat-explorer/components/MaskTool/MaskToolContainer.tsx +++ b/src/landsat-explorer/components/MaskTool/MaskToolContainer.tsx @@ -16,10 +16,13 @@ import { AnalysisToolHeader } from '@shared/components/AnalysisToolHeader'; // import { PixelRangeSlider as MaskLayerPixelRangeSlider4SpectralIndex } from '@shared/components/MaskTool/PixelRangeSlider'; // import { PixelRangeSlider as MaskLayerPixelRangeSlider4SurfaceTemp } from './PixelRangeSlider4SurfaceTemp'; -import { MaskLayerRenderingControls } from '@shared/components/MaskTool'; -import { spectralIndex4MaskToolChanged } from '@shared/store/MaskTool/reducer'; import { - selectSpectralIndex4MaskTool, + MaskLayerRenderingControls, + MaskToolWarnigMessage, +} from '@shared/components/MaskTool'; +import { selectedIndex4MaskToolChanged } from '@shared/store/MaskTool/reducer'; +import { + selectSelectedIndex4MaskTool, selectMaskOptions, // selectActiveAnalysisTool, } from '@shared/store/MaskTool/selectors'; @@ -46,7 +49,7 @@ export const MaskToolContainer = () => { const tool = useSelector(selectActiveAnalysisTool); - const selectedSpectralIndex = useSelector(selectSpectralIndex4MaskTool); + const selectedSpectralIndex = useSelector(selectSelectedIndex4MaskTool); const maskOptions = useSelector(selectMaskOptions); @@ -76,7 +79,7 @@ export const MaskToolContainer = () => { // } // if (spectralIndex) { - // dispatch(spectralIndex4MaskToolChanged(spectralIndex)); + // dispatch(selectedIndex4MaskToolChanged(spectralIndex)); // } // }, [queryParams4MainScene?.rasterFunctionName]); @@ -114,22 +117,13 @@ export const MaskToolContainer = () => { tooltipText={MASK_TOOL_HEADER_TOOLTIP} dropdownMenuSelectedItemOnChange={(val) => { dispatch( - spectralIndex4MaskToolChanged(val as SpectralIndex) + selectedIndex4MaskToolChanged(val as SpectralIndex) ); }} /> {shouldBeDisabled ? ( -
-

- Select a scene to calculate a mask for the selected - index. -

-
+ ) : ( <>
diff --git a/src/landsat-explorer/components/MaskTool/SurfaceTempPixelRangeSlider.tsx b/src/landsat-explorer/components/MaskTool/SurfaceTempPixelRangeSlider.tsx index 2ec7eb98..f2e6e9ac 100644 --- a/src/landsat-explorer/components/MaskTool/SurfaceTempPixelRangeSlider.tsx +++ b/src/landsat-explorer/components/MaskTool/SurfaceTempPixelRangeSlider.tsx @@ -14,7 +14,7 @@ */ import { - selectSpectralIndex4MaskTool, + selectSelectedIndex4MaskTool, selectMaskOptions, // selectActiveAnalysisTool, } from '@shared/store/MaskTool/selectors'; @@ -34,7 +34,7 @@ import { export const SurfaceTempCelsiusPixelRangeSlider = () => { const dispatch = useDispatch(); - const selectedSpectralIndex = useSelector(selectSpectralIndex4MaskTool); + const selectedSpectralIndex = useSelector(selectSelectedIndex4MaskTool); const maskOptions = useSelector(selectMaskOptions); @@ -61,7 +61,7 @@ export const SurfaceTempCelsiusPixelRangeSlider = () => { export const SurfaceTempFarhenheitPixelRangeSlider = () => { const dispatch = useDispatch(); - const selectedSpectralIndex = useSelector(selectSpectralIndex4MaskTool); + const selectedSpectralIndex = useSelector(selectSelectedIndex4MaskTool); const maskOptions = useSelector(selectMaskOptions); diff --git a/src/landsat-surface-temp/components/MaskTool/MaskToolContainer.tsx b/src/landsat-surface-temp/components/MaskTool/MaskToolContainer.tsx index 19d5d151..8a73d8ba 100644 --- a/src/landsat-surface-temp/components/MaskTool/MaskToolContainer.tsx +++ b/src/landsat-surface-temp/components/MaskTool/MaskToolContainer.tsx @@ -17,9 +17,9 @@ import { AnalysisToolHeader } from '@shared/components/AnalysisToolHeader'; // import { PixelRangeSlider as MaskLayerPixelRangeSlider4SpectralIndex } from '@shared/components/MaskTool/PixelRangeSlider'; // import { PixelRangeSlider as MaskLayerPixelRangeSlider4SurfaceTemp } from './PixelRangeSlider4SurfaceTemp'; import { MaskLayerRenderingControls } from '@shared/components/MaskTool'; -import { spectralIndex4MaskToolChanged } from '@shared/store/MaskTool/reducer'; +import { selectedIndex4MaskToolChanged } from '@shared/store/MaskTool/reducer'; import { - selectSpectralIndex4MaskTool, + selectSelectedIndex4MaskTool, selectMaskOptions, // selectActiveAnalysisTool, } from '@shared/store/MaskTool/selectors'; @@ -54,7 +54,7 @@ export const MaskToolContainer = () => { const tool = useSelector(selectActiveAnalysisTool); - const selectedSpectralIndex = useSelector(selectSpectralIndex4MaskTool); + const selectedSpectralIndex = useSelector(selectSelectedIndex4MaskTool); const { objectIdOfSelectedScene } = useSelector(selectQueryParams4SceneInSelectedMode) || {}; @@ -85,7 +85,7 @@ export const MaskToolContainer = () => { tooltipText={MASK_TOOL_HEADER_TOOLTIP} dropdownMenuSelectedItemOnChange={(val) => { dispatch( - spectralIndex4MaskToolChanged(val as SpectralIndex) + selectedIndex4MaskToolChanged(val as SpectralIndex) ); }} /> diff --git a/src/sentinel-1-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx b/src/sentinel-1-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx index 15059d8b..9ed0465f 100644 --- a/src/sentinel-1-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx +++ b/src/sentinel-1-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx @@ -3,6 +3,11 @@ import { AnalysisToolSelector } from '@shared/components/AnalysisToolSelector'; import { AnalyzeToolSelectorData } from '@shared/components/AnalysisToolSelector/AnalysisToolSelectorContainer'; const data: AnalyzeToolSelectorData[] = [ + { + tool: 'mask', + title: 'Index', + subtitle: 'mask', + }, { tool: 'trend', title: 'Temporal', diff --git a/src/sentinel-1-explorer/components/ChangeCompareLayer/ChangeCompareLayerContainer.tsx b/src/sentinel-1-explorer/components/ChangeCompareLayer/ChangeCompareLayerContainer.tsx index 7e2df1ce..51e8f7e8 100644 --- a/src/sentinel-1-explorer/components/ChangeCompareLayer/ChangeCompareLayerContainer.tsx +++ b/src/sentinel-1-explorer/components/ChangeCompareLayer/ChangeCompareLayerContainer.tsx @@ -111,8 +111,8 @@ export const ChangeCompareLayerContainer: FC = ({ if (selectedOption === 'log difference') { const rasterFunction: Sentinel1FunctionName = polarizationFilter === 'VV' - ? 'Sentinel-1 RTC Despeckle VV Amplitude' - : 'Sentinel-1 RTC Despeckle VH Amplitude'; + ? 'VV Amplitude with Despeckle' + : 'VH Amplitude with Despeckle'; return log10({ raster: divide({ @@ -177,7 +177,7 @@ export const ChangeCompareLayerContainer: FC = ({ serviceURL={SENTINEL_1_SERVICE_URL} rasterFunction={rasterFunction} visible={isVisible} - pixelValueRange={selectedRange} + selectedPixelValueRange={selectedRange} fullPixelValueRange={fullPixelValueRange} getPixelColor={getPixelColor4ChangeCompareLayer} /> diff --git a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx index 5dcf4963..b24de872 100644 --- a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx +++ b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx @@ -42,11 +42,18 @@ import { useDispatch } from 'react-redux'; import { useSelector } from 'react-redux'; import { PolarizationFilter } from './PolarizationFilter'; import { RadarIndex } from '@typing/imagery-service'; +import { + SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE, + SENTINEL1_WATER_INDEX_PIXEL_RANGE, +} from '@shared/services/sentinel-1/config'; /** * the index that user can select for the Change Compare Tool */ -export type ChangeCompareToolOption4Sentinel1 = RadarIndex | 'log difference'; +export type ChangeCompareToolOption4Sentinel1 = + | 'water anomaly' + | 'water' + | 'log difference'; const ChangeCompareToolOptions: { value: ChangeCompareToolOption4Sentinel1; @@ -59,14 +66,24 @@ const ChangeCompareToolOptions: { // { value: 'vegetation', label: ' Dual-pol Radar Vegetation Index' }, { value: 'water anomaly', - label: 'Water Anomaly Index', + label: 'Water Anomaly', }, { value: 'water', - label: 'Sentinel-1 Water Index (SWI)', + label: 'SWI', }, ]; +const [ + SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE_MIN, + SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE_MAX, +] = SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE; + +const [ + SENTINEL1_WATER_INDEX_PIXEL_RANGE_MIN, + SENTINEL1_WATER_INDEX_PIXEL_RANGE_MAX, +] = SENTINEL1_WATER_INDEX_PIXEL_RANGE; + export const ChangeCompareToolPixelValueRange4Sentinel1: Record< ChangeCompareToolOption4Sentinel1, number[] @@ -77,12 +94,22 @@ export const ChangeCompareToolPixelValueRange4Sentinel1: Record< * For the Water Index (SWI), we have selected a input range of -0.3 to 1, though it may need adjustment. * The SWI index is not well-documented with a specific range of values. */ - water: [-1.5, 1.5], + water: [ + SENTINEL1_WATER_INDEX_PIXEL_RANGE_MIN - + SENTINEL1_WATER_INDEX_PIXEL_RANGE_MAX, + SENTINEL1_WATER_INDEX_PIXEL_RANGE_MAX - + SENTINEL1_WATER_INDEX_PIXEL_RANGE_MIN, + ], /** * For Water Anomaly Index, we can use a input range of -2 to 0. Typically, oil appears within the range of -1 to 0. * The full pixel range of the change compare results is -2 to 2 */ - 'water anomaly': [-2, 2], + 'water anomaly': [ + SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE_MIN - + SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE_MAX, + SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE_MAX - + SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE_MIN, + ], }; export const ChangeCompareToolContainer = () => { diff --git a/src/sentinel-1-explorer/components/Layout/Layout.tsx b/src/sentinel-1-explorer/components/Layout/Layout.tsx index f319c806..2989138e 100644 --- a/src/sentinel-1-explorer/components/Layout/Layout.tsx +++ b/src/sentinel-1-explorer/components/Layout/Layout.tsx @@ -45,6 +45,7 @@ import { ChangeCompareLayerSelector } from '@shared/components/ChangeCompareLaye import classNames from 'classnames'; import { ChangeCompareTool4Sentinel1 } from '../ChangeCompareTool'; import { Sentinel1TemporalProfileTool } from '../TemporalProfileTool'; +import { Sentinel1MaskTool } from '../MaskTool'; export const Layout = () => { const mode = useSelector(selectAppMode); @@ -132,8 +133,7 @@ export const Layout = () => { 'temporal composite', })} > - {/* - */} + diff --git a/src/sentinel-1-explorer/components/Map/Map.tsx b/src/sentinel-1-explorer/components/Map/Map.tsx index 43c21401..92683a93 100644 --- a/src/sentinel-1-explorer/components/Map/Map.tsx +++ b/src/sentinel-1-explorer/components/Map/Map.tsx @@ -38,6 +38,7 @@ import { TemporalCompositeLayer } from '../TemporalCompositeLayer'; import { ChangeCompareLayer4Sentinel1 } from '../ChangeCompareLayer'; import { updateQueryLocation4TrendTool } from '@shared/store/TrendTool/thunks'; import { useDispatch } from 'react-redux'; +import { Sentinel1MaskLayer } from '../MaskLayer'; export const Map = () => { const dispatch = useDispatch(); @@ -54,6 +55,7 @@ export const Map = () => { index={1} > + diff --git a/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx b/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx new file mode 100644 index 00000000..8a8e9bab --- /dev/null +++ b/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx @@ -0,0 +1,168 @@ +import GroupLayer from '@arcgis/core/layers/GroupLayer'; +import MapView from '@arcgis/core/views/MapView'; +import { ImageryLayerWithPixelFilter } from '@shared/components/ImageryLayerWithPixelFilter'; +import React, { + FC, + useCallback, + useEffect, + useMemo, + useRef, + useState, +} from 'react'; +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + selectSelectedIndex4MaskTool, + selectMaskOptions, + selectShouldClipMaskLayer, + selectMaskLayerOpcity, + // selectActiveAnalysisTool, +} from '@shared/store/MaskTool/selectors'; +import { useSelector } from 'react-redux'; +import { + selectActiveAnalysisTool, + selectAppMode, + selectQueryParams4MainScene, + selectQueryParams4SceneInSelectedMode, +} from '@shared/store/ImageryScene/selectors'; +import { RadarIndex } from '@typing/imagery-service'; +import { + SENTINEL_1_SERVICE_URL, + Sentinel1FunctionName, +} from '@shared/services/sentinel-1/config'; +import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; +import { Sentinel1PixelValueRangeByIndex } from '../MaskTool/Sentinel1MaskTool'; +import { WaterLandMaskLayer } from './WaterLandMaskLayer'; + +type Props = { + mapView?: MapView; + groupLayer?: GroupLayer; +}; + +/** + * Lookup table that maps RadarIndex values to corresponding Sentinel1FunctionName values. + * + * This table is used by the Mask Layer to select the appropriate raster function based on the specified index. + */ +const RasterFunctionNameByIndx: Record = { + ship: 'VV and VH Power with Despeckle', + urban: 'VV and VH Power with Despeckle', + water: 'SWI Raw', + 'water anomaly': 'Water Anomaly Index Raw', +}; + +export const Sentinel1MaskLayer: FC = ({ mapView, groupLayer }) => { + const mode = useSelector(selectAppMode); + + const groupLayer4MaskAndWaterLandLayersRef = useRef(); + + const selectedIndex = useSelector( + selectSelectedIndex4MaskTool + ) as RadarIndex; + + const { selectedRange, color } = useSelector(selectMaskOptions); + + const opacity = useSelector(selectMaskLayerOpcity); + + const shouldClip = useSelector(selectShouldClipMaskLayer); + + const { objectIdOfSelectedScene } = + useSelector(selectQueryParams4SceneInSelectedMode) || {}; + + const anailysisTool = useSelector(selectActiveAnalysisTool); + + const isVisible = useMemo(() => { + if (mode !== 'analysis' || anailysisTool !== 'mask') { + return false; + } + + if (!objectIdOfSelectedScene) { + return false; + } + + return true; + }, [mode, anailysisTool, objectIdOfSelectedScene]); + + const fullPixelValueRange = useMemo(() => { + return ( + Sentinel1PixelValueRangeByIndex[selectedIndex as RadarIndex] || [ + 0, 0, + ] + ); + }, [selectedIndex]); + + const selectedPixelValueRange4Band2 = useMemo(() => { + if (selectedIndex === 'ship' || selectedIndex === 'urban') { + return selectedRange; + } + + return null; + }, [selectedIndex, selectedRange]); + + const rasterFunction = useMemo(() => { + return new RasterFunction({ + functionName: RasterFunctionNameByIndx[selectedIndex], + }); + }, [selectedIndex]); + + const initGroupLayer4MaskAndWaterLandLayers = () => { + groupLayer4MaskAndWaterLandLayersRef.current = new GroupLayer({ + blendMode: shouldClip ? 'destination-atop' : null, + }); + groupLayer.add(groupLayer4MaskAndWaterLandLayersRef.current); + }; + + useEffect(() => { + initGroupLayer4MaskAndWaterLandLayers(); + }, []); + + useEffect(() => { + if (!groupLayer4MaskAndWaterLandLayersRef.current) { + return; + } + + groupLayer4MaskAndWaterLandLayersRef.current.blendMode = shouldClip + ? 'destination-atop' + : 'normal'; + }, [shouldClip]); + + if (!groupLayer4MaskAndWaterLandLayersRef.current) { + return null; + } + + return ( + <> + + + + + ); +}; diff --git a/src/sentinel-1-explorer/components/MaskLayer/WaterLandMaskLayer.tsx b/src/sentinel-1-explorer/components/MaskLayer/WaterLandMaskLayer.tsx new file mode 100644 index 00000000..ba54722e --- /dev/null +++ b/src/sentinel-1-explorer/components/MaskLayer/WaterLandMaskLayer.tsx @@ -0,0 +1,91 @@ +import GroupLayer from '@arcgis/core/layers/GroupLayer'; +import ImageryTileLayer from '@arcgis/core/layers/ImageryTileLayer'; +import { mask } from '@arcgis/core/layers/support/rasterFunctionUtils'; +import React, { FC, useEffect, useRef } from 'react'; +import { GLOBAL_WATER_LAND_MASK_LAYER_ITEM_ID } from '../../contans'; + +type WaterLandMaskLayerCategory = 'land' | 'water'; + +type Props = { + /** + * the visibility of this imagery tile layer + */ + visible: boolean; + /** + * the visible category + */ + visibleCategory: WaterLandMaskLayerCategory; + /** + * group layer that contains this water/land mask layer + */ + groupLayer: GroupLayer; +}; + +/** + * Get the mask raster function to filter the pixel values based on the visible category. + * @param visibleCategory - The category of pixels to make visible ('land' or 'water'). + * @returns The raster function to be applied on the imagery tile layer. + */ +const getRasterFunction = (visibleCategory: WaterLandMaskLayerCategory) => { + return mask({ + includedRanges: + visibleCategory === 'land' + ? [[0, 1]] // Pixels in the range [0, 1] are included for 'land'. + : [[2, 3]], // Pixels in the range [2, 3] are included for 'water'. + noDataValues: [], + }); +}; + +/** + * The Water and Land Mask layer component. This component is used to mask the Sentinel-1 Index Mask layer + * when the selected index is either 'ship' or 'urban'. This masking is necessary because the 'ship' and 'urban' + * indices are calculated using the same method. Distinguishing them requires masking pixels on 'water' versus + * pixels on 'land'. + * @param Props - The props for the component, including visibility, visible category, and group layer. + * @returns A React component that manages the water/land mask layer. + */ +export const WaterLandMaskLayer: FC = ({ + visible, + visibleCategory, + groupLayer, +}) => { + const layerRef = useRef(); + + const init = () => { + layerRef.current = new ImageryTileLayer({ + portalItem: { + id: GLOBAL_WATER_LAND_MASK_LAYER_ITEM_ID, + }, + rasterFunction: getRasterFunction(visibleCategory), + blendMode: visible ? 'destination-in' : 'normal', + visible, + }); + + groupLayer.add(layerRef.current); + }; + + useEffect(() => { + if (groupLayer && !layerRef.current) { + init(); + } + }, [groupLayer]); + + useEffect(() => { + if (!layerRef.current) { + return; + } + + layerRef.current.visible = visible; + layerRef.current.blendMode = visible ? 'destination-in' : 'normal'; + }, [visible]); + + useEffect(() => { + if (!layerRef.current) { + return; + } + + layerRef.current.rasterFunction = getRasterFunction(visibleCategory); + }, [visibleCategory]); + + return null; +}; diff --git a/src/sentinel-1-explorer/components/MaskLayer/index.ts b/src/sentinel-1-explorer/components/MaskLayer/index.ts new file mode 100644 index 00000000..ae0193ec --- /dev/null +++ b/src/sentinel-1-explorer/components/MaskLayer/index.ts @@ -0,0 +1 @@ +export { Sentinel1MaskLayer } from './Sentinel1MaskLayer'; diff --git a/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx b/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx new file mode 100644 index 00000000..a76e2213 --- /dev/null +++ b/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx @@ -0,0 +1,156 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AnalysisToolHeader } from '@shared/components/AnalysisToolHeader'; +// import { PixelRangeSlider as MaskLayerPixelRangeSlider4SpectralIndex } from '@shared/components/MaskTool/PixelRangeSlider'; +// import { PixelRangeSlider as MaskLayerPixelRangeSlider4SurfaceTemp } from './PixelRangeSlider4SurfaceTemp'; +import { + MaskLayerRenderingControls, + MaskToolWarnigMessage, +} from '@shared/components/MaskTool'; +import { selectedIndex4MaskToolChanged } from '@shared/store/MaskTool/reducer'; +import { + selectSelectedIndex4MaskTool, + selectMaskOptions, + // selectActiveAnalysisTool, +} from '@shared/store/MaskTool/selectors'; +import { updateSelectedRange } from '@shared/store/MaskTool/thunks'; +import React, { useEffect, useMemo } from 'react'; +import { useDispatch } from 'react-redux'; +import { useSelector } from 'react-redux'; +import { + selectActiveAnalysisTool, + selectQueryParams4MainScene, + selectQueryParams4SceneInSelectedMode, +} from '@shared/store/ImageryScene/selectors'; +import classNames from 'classnames'; +import { PixelRangeSlider } from '@shared/components/PixelRangeSlider'; +import { RadarIndex } from '@typing/imagery-service'; +import { + SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE, + SENTINEL1_WATER_INDEX_PIXEL_RANGE, + SENTINEL1_SHIP_AND_URBAN_INDEX_PIXEL_RANGE, +} from '@shared/services/sentinel-1/config'; + +export const Sentinel1PixelValueRangeByIndex: Record = { + water: SENTINEL1_WATER_INDEX_PIXEL_RANGE, + 'water anomaly': SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE, + ship: SENTINEL1_SHIP_AND_URBAN_INDEX_PIXEL_RANGE, + urban: SENTINEL1_SHIP_AND_URBAN_INDEX_PIXEL_RANGE, +}; + +export const Sentinel1MaskTool = () => { + const dispatch = useDispatch(); + + const tool = useSelector(selectActiveAnalysisTool); + + const selectedIndex = useSelector(selectSelectedIndex4MaskTool); + + const maskOptions = useSelector(selectMaskOptions); + + const { objectIdOfSelectedScene } = + useSelector(selectQueryParams4SceneInSelectedMode) || {}; + + // const queryParams4MainScene = useSelector(selectQueryParams4MainScene); + + const shouldBeDisabled = useMemo(() => { + return !objectIdOfSelectedScene; + }, [objectIdOfSelectedScene]); + + const fullPixelValueRange = useMemo(() => { + return ( + Sentinel1PixelValueRangeByIndex[selectedIndex as RadarIndex] || [ + 0, 0, + ] + ); + }, [selectedIndex]); + + const countOfTicks = useMemo(() => { + // use 5 ticks if water index is selected + if (selectedIndex === 'water') { + return 5; + } + + // return undefined to have the pixel range slider to calculate it dynamically + return undefined; + }, [selectedIndex]); + + const steps = useMemo(() => { + return selectedIndex === 'ship' || selectedIndex === 'urban' + ? 0.01 + : 0.05; + }, [selectedIndex]); + + useEffect(() => { + dispatch(updateSelectedRange(fullPixelValueRange)); + }, [fullPixelValueRange]); + + if (tool !== 'mask') { + return null; + } + + return ( +
+ { + dispatch(selectedIndex4MaskToolChanged(val as RadarIndex)); + }} + /> + + {shouldBeDisabled ? ( + + ) : ( + <> +
+ { + dispatch(updateSelectedRange(values)); + }} + showSliderTooltip={true} + /> +
+ + + + )} +
+ ); +}; diff --git a/src/sentinel-1-explorer/components/MaskTool/index.ts b/src/sentinel-1-explorer/components/MaskTool/index.ts new file mode 100644 index 00000000..3a71f7d3 --- /dev/null +++ b/src/sentinel-1-explorer/components/MaskTool/index.ts @@ -0,0 +1 @@ +export { Sentinel1MaskTool } from './Sentinel1MaskTool'; diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx index 7df68ae3..a7ae49ba 100644 --- a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx @@ -24,36 +24,39 @@ import { RasterFunctionInfo } from '@typing/imagery-service'; import PlaceholderThumbnail from './thumbnails/placeholder.jpg'; import CompositeLegend from './legends/SARCompositeLegend.png'; -const Sentinel1RendererThumbnailByName: Record = - { - 'Sentinel-1 RGB dB DRA': PlaceholderThumbnail, - 'Sentinel-1 RTC VH dB with DRA': PlaceholderThumbnail, - 'Sentinel-1 RTC VV dB with DRA': PlaceholderThumbnail, - // 'Sentinel-1 DpRVIc Raw': PlaceholderThumbnail, - 'SWI Raw': PlaceholderThumbnail, - 'Water Anomaly Index Raw': PlaceholderThumbnail, - 'Sentinel-1 RTC Despeckle VH Amplitude': PlaceholderThumbnail, - 'Sentinel-1 RTC Despeckle VV Amplitude': PlaceholderThumbnail, - // 'NDMI Colorized': LandsatNDMIThumbnail, - }; +const Sentinel1RendererThumbnailByName: Partial< + Record +> = { + 'False Color dB with DRA': PlaceholderThumbnail, + 'VV dB with Despeckle and DRA': PlaceholderThumbnail, + 'VH dB with Despeckle and DRA': PlaceholderThumbnail, + // 'Sentinel-1 DpRVIc Raw': PlaceholderThumbnail, + 'Water Anomaly Index Colorized': PlaceholderThumbnail, + 'SWI Colorized': PlaceholderThumbnail, + // 'Sentinel-1 RTC Despeckle VH Amplitude': PlaceholderThumbnail, + // 'Sentinel-1 RTC Despeckle VV Amplitude': PlaceholderThumbnail, + // 'NDMI Colorized': LandsatNDMIThumbnail, +}; -const Sentinel1RendererLegendByName: Record = { - 'Sentinel-1 RGB dB DRA': CompositeLegend, - 'Sentinel-1 RTC VH dB with DRA': null, - 'Sentinel-1 RTC VV dB with DRA': null, - // 'Sentinel-1 DpRVIc Raw': null, - 'SWI Raw': null, - 'Water Anomaly Index Raw': null, - 'Sentinel-1 RTC Despeckle VH Amplitude': null, - 'Sentinel-1 RTC Despeckle VV Amplitude': null, +const Sentinel1RendererLegendByName: Partial< + Record +> = { + 'False Color dB with DRA': CompositeLegend, + // 'Sentinel-1 RTC VH dB with DRA': null, + // 'Sentinel-1 RTC VV dB with DRA': null, + // // 'Sentinel-1 DpRVIc Raw': null, + // 'SWI Raw': null, + // 'Water Anomaly Index Raw': null, + // 'Sentinel-1 RTC Despeckle VH Amplitude': null, + // 'Sentinel-1 RTC Despeckle VV Amplitude': null, }; export const getSentinel1RasterFunctionInfo = (): RasterFunctionInfo[] => { - return SENTINEL1_RASTER_FUNCTION_INFOS.map((d) => { + return SENTINEL1_RASTER_FUNCTION_INFOS.slice(0, 5).map((d) => { const name: Sentinel1FunctionName = d.name as Sentinel1FunctionName; - const thumbnail = Sentinel1RendererThumbnailByName[name]; - const legend = Sentinel1RendererLegendByName[name]; + const thumbnail = Sentinel1RendererThumbnailByName[name] || null; + const legend = Sentinel1RendererLegendByName[name] || null; return { ...d, diff --git a/src/sentinel-1-explorer/contans/index.ts b/src/sentinel-1-explorer/contans/index.ts new file mode 100644 index 00000000..6d6f3bec --- /dev/null +++ b/src/sentinel-1-explorer/contans/index.ts @@ -0,0 +1,2 @@ +export const GLOBAL_WATER_LAND_MASK_LAYER_ITEM_ID = + '01d59c0c0fec4db0af524e041838886d'; diff --git a/src/sentinel-1-explorer/store/getPreloadedState.ts b/src/sentinel-1-explorer/store/getPreloadedState.ts index fcbe986c..078fef45 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState.ts @@ -57,7 +57,6 @@ import { initialUIState, UIState } from '@shared/store/UI/reducer'; // ChangeCompareToolState, // initialChangeCompareToolState, // } from '@shared/store/ChangeCompareTool/reducer'; -import { initialLandsatState } from '@shared/store/Landsat/reducer'; import { PartialRootState } from '@shared/store/configureStore'; import { Sentinel1FunctionName } from '@shared/services/sentinel-1/config'; import { @@ -77,6 +76,10 @@ import { initialTrendToolState, } from '@shared/store/TrendTool/reducer'; import { RadarIndex } from '@typing/imagery-service'; +import { + MaskToolState, + initialMaskToolState, +} from '@shared/store/MaskTool/reducer'; // import { getRandomElement } from '@shared/utils/snippets/getRandomElement'; /** @@ -127,7 +130,7 @@ const getPreloadedImageryScenesState = (): ImageryScenesState => { } const defaultRasterFunction: Sentinel1FunctionName = - 'Sentinel-1 RGB dB DRA'; + 'False Color dB with DRA'; // Attempt to extract query parameters from the URL hash. // If not found, fallback to using the default values along with the raster function from a randomly selected interesting location, @@ -237,18 +240,25 @@ const getPreloadedTrendToolState = (): TrendToolState => { }; }; +const getPreloadedMaskToolState = (): MaskToolState => { + const maskToolData = getMaskToolDataFromHashParams(); + + return { + ...initialMaskToolState, + ...maskToolData, + }; +}; + export const getPreloadedState = async (): Promise => { // get default raster function and location and pass to the getPreloadedMapState, getPreloadedUIState and getPreloadedImageryScenesState return { Map: getPreloadedMapState(), UI: getPreloadedUIState(), - Landsat: { - ...initialLandsatState, - }, ImageryScenes: getPreloadedImageryScenesState(), TemporalCompositeTool: getPreloadedTemporalCompositeToolState(), ChangeCompareTool: getPreloadedChangeCompareToolState(), TrendTool: getPreloadedTrendToolState(), + MaskTool: getPreloadedMaskToolState(), } as PartialRootState; }; diff --git a/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx index 6064fa45..7ba1ac99 100644 --- a/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx +++ b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx @@ -60,19 +60,19 @@ export const ChangeCompareToolControls: FC = ({ const getPixelRangeSlider = () => { const [min, max] = fullPixelValueRange; - const fullRange = Math.abs(max - min); + // const fullRange = Math.abs(max - min); - const countOfTicks = fullRange / 0.25 + 1; + // const countOfTicks = fullRange / 0.25 + 1; - const oneFourthOfFullRange = fullRange / 4; + // const oneFourthOfFullRange = fullRange / 4; - const tickLabels: number[] = [ - min, - min + oneFourthOfFullRange, - min + oneFourthOfFullRange * 2, - min + oneFourthOfFullRange * 3, - max, - ]; + // const tickLabels: number[] = [ + // min, + // min + oneFourthOfFullRange, + // min + oneFourthOfFullRange * 2, + // min + oneFourthOfFullRange * 3, + // max, + // ]; // console.log(min, max, fullRange, countOfTicks, tickLabels); @@ -85,8 +85,6 @@ export const ChangeCompareToolControls: FC = ({ min={min} max={max} steps={0.05} - tickLabels={tickLabels} - countOfTicks={countOfTicks} showSliderTooltip={true} /> ); diff --git a/src/shared/components/ImageryLayer/useImageLayer.tsx b/src/shared/components/ImageryLayer/useImageLayer.tsx index 86cb55f9..7fd6cdc0 100644 --- a/src/shared/components/ImageryLayer/useImageLayer.tsx +++ b/src/shared/components/ImageryLayer/useImageLayer.tsx @@ -43,7 +43,7 @@ type Props = { * * @see https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-MosaicRule.html */ -export const getMosaicRule = (objectId: number): MosaicRule => { +export const getLockRasterMosaicRule = (objectId: number): MosaicRule => { if (!objectId) { return null; } @@ -77,7 +77,7 @@ export const useImageryLayerByObjectId = ({ * initialize imagery layer using mosaic created using the input year */ const init = async () => { - const mosaicRule = objectId ? getMosaicRule(objectId) : null; + const mosaicRule = objectId ? getLockRasterMosaicRule(objectId) : null; layerRef.current = new ImageryLayer({ // URL to the imagery service @@ -120,7 +120,7 @@ export const useImageryLayerByObjectId = ({ return; } - layerRef.current.mosaicRule = getMosaicRule(objectId); + layerRef.current.mosaicRule = getLockRasterMosaicRule(objectId); })(); }, [objectId]); diff --git a/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx b/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx index f90dc65a..247c8822 100644 --- a/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx +++ b/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx @@ -19,6 +19,8 @@ import MapView from '@arcgis/core/views/MapView'; import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; import PixelBlock from '@arcgis/core/layers/support/PixelBlock'; import GroupLayer from '@arcgis/core/layers/GroupLayer'; +import { getLockRasterMosaicRule } from '../ImageryLayer/useImageLayer'; +import { BlendMode } from '@typing/argis-sdk-for-javascript'; type Props = { mapView?: MapView; @@ -28,7 +30,11 @@ type Props = { */ serviceURL: string; /** - * raster function for the change compare layer + * object id of selected imagery scene + */ + objectId?: number; + /** + * raster function for the imagery layer */ rasterFunction: RasterFunction; /** @@ -38,17 +44,34 @@ type Props = { /** * user selected pixel value range */ - pixelValueRange: number[]; + selectedPixelValueRange: number[]; + /** + * user selected pixel value range for band 2. + */ + selectedPixelValueRange4Band2?: number[]; /** * full pixel value range */ fullPixelValueRange: number[]; + /** + * blend mode to be used by this layer + */ + blendMode?: BlendMode; + /** + * opacity of the layer + */ + opacity?: number; + /** + * the color to render the pixels + */ + pixelColor?: number[]; /** * Get the RGB color corresponding to a given value within a predefined pixel value range - * @param val - * @returns + * @param val - The pixel value + * @param pixelValueRange - The range of pixel values + * @returns The RGB color as an array of numbers */ - getPixelColor: (val: number, pixelValueRange: number[]) => number[]; + getPixelColor?: (val: number, pixelValueRange: number[]) => number[]; }; type PixelData = { @@ -59,42 +82,60 @@ export const ImageryLayerWithPixelFilter: FC = ({ mapView, groupLayer, serviceURL, + objectId, rasterFunction, visible, - pixelValueRange, + selectedPixelValueRange, + selectedPixelValueRange4Band2, fullPixelValueRange, + blendMode, + opacity, + pixelColor, getPixelColor, }) => { const layerRef = useRef(); /** - * user selected pixel value range + * user selected pixel value range for band 1 */ const selectedRangeRef = useRef(); + /** + * user selected pixel value range for band 2 + */ + const selectedRange4Band2Ref = useRef(); + /** * full pixel value range */ const fullPixelValueRangeRef = useRef(); + const pixelColorRef = useRef(); + /** * initialize landsat layer using mosaic created using the input year */ - const init = async () => { + const init = () => { layerRef.current = new ImageryLayer({ // URL to the imagery service url: serviceURL, - mosaicRule: null, + mosaicRule: objectId ? getLockRasterMosaicRule(objectId) : null, format: 'lerc', rasterFunction, visible, pixelFilter: pixelFilterFunction, + blendMode: blendMode || null, + opacity: opacity || 1, effect: 'drop-shadow(2px, 2px, 3px, #000)', }); groupLayer.add(layerRef.current); }; + /** + * Pixel filter function to process and filter pixel data based on the provided ranges and colors + * @param pixelData - The pixel data to filter + */ const pixelFilterFunction = (pixelData: PixelData) => { // const color = colorRef.current || [255, 255, 255]; @@ -111,7 +152,9 @@ export const ImageryLayerWithPixelFilter: FC = ({ return; } - const p1 = pixels[0]; + const band1 = pixels[0]; + const band2 = pixels[1]; + // console.log(band2) const n = pixels[0].length; @@ -125,17 +168,76 @@ export const ImageryLayerWithPixelFilter: FC = ({ const numPixels = width * height; - const [min, max] = selectedRangeRef.current || [0, 0]; + const [minValSelectedPixelRange4Band1, maxValSelectedPixelRange4Band1] = + selectedRangeRef.current || [0, 0]; // console.log(min, max) + const [minValSelectedPixelRange4Band2, maxValSelectedPixelRange4Band2] = + selectedRange4Band2Ref.current || [undefined, undefined]; + + const [minValOfFullRange, maxValOfFulRange] = + fullPixelValueRangeRef.current || [0, 0]; + for (let i = 0; i < numPixels; i++) { - if (p1[i] < min || p1[i] > max || p1[i] === 0) { + // Adjust the pixel value to ensure it fits within the full pixel value range. + // If the pixel value is less than the minimum value of the full range, set it to the minimum value. + // If the pixel value is greater than the maximum value of the full range, set it to the maximum value. + let adjustedPixelValueFromBand1 = band1[i]; + adjustedPixelValueFromBand1 = Math.max( + adjustedPixelValueFromBand1, + minValOfFullRange + ); + adjustedPixelValueFromBand1 = Math.min( + adjustedPixelValueFromBand1, + maxValOfFulRange + ); + + // If the adjusted pixel value is outside the selected range, or if the original pixel value is 0, hide this pixel. + // A pixel value of 0 typically indicates it is outside the extent of the selected imagery scene. + if ( + adjustedPixelValueFromBand1 < minValSelectedPixelRange4Band1 || + adjustedPixelValueFromBand1 > maxValSelectedPixelRange4Band1 || + band1[i] === 0 + ) { + pixelBlock.mask[i] = 0; + continue; + } + + // If band 2 exists, adjust its pixel value to ensure it fits within the full pixel value range. + let adjustedPixelValueFromBand2 = band2 ? band2[i] : undefined; + + if (adjustedPixelValueFromBand2 !== undefined) { + adjustedPixelValueFromBand2 = Math.max( + adjustedPixelValueFromBand2, + minValOfFullRange + ); + adjustedPixelValueFromBand2 = Math.min( + adjustedPixelValueFromBand2, + maxValOfFulRange + ); + } + + // If band 2 exists and a pixel range for band 2 is provided, + // filter the pixels to retain only those within the selected range for band 2. + if ( + adjustedPixelValueFromBand2 !== undefined && + minValSelectedPixelRange4Band2 !== undefined && + maxValSelectedPixelRange4Band2 !== undefined && + (adjustedPixelValueFromBand2 < minValSelectedPixelRange4Band2 || + adjustedPixelValueFromBand2 > + maxValSelectedPixelRange4Band2) + ) { pixelBlock.mask[i] = 0; continue; } - const color = getPixelColor(p1[i], fullPixelValueRangeRef.current); + // use the color provided by the user, + // or call the getPixelColor function to determine the color that will be used to render this pixel + const color = + pixelColorRef.current || + getPixelColor(band1[i], fullPixelValueRangeRef.current); + // should not render this pixel if the color is undefined. if (!color) { pixelBlock.mask[i] = 0; continue; @@ -172,22 +274,55 @@ export const ImageryLayerWithPixelFilter: FC = ({ return; } - layerRef.current.visible = visible; + layerRef.current.mosaicRule = objectId + ? getLockRasterMosaicRule(objectId) + : null; + }, [objectId]); - if (visible) { - // reorder it to make sure it is the top most layer on the map - groupLayer.reorder(layerRef.current, mapView.map.layers.length - 1); + useEffect(() => { + if (!layerRef.current) { + return; + } + + layerRef.current.opacity = opacity; + }, [opacity]); + + useEffect(() => { + if (!layerRef.current) { + return; } + + layerRef.current.visible = visible; + + // if (visible) { + // // reorder it to make sure it is the top most layer on the map + // groupLayer.reorder(layerRef.current, mapView.map.layers.length - 1); + // } }, [visible]); useEffect(() => { - selectedRangeRef.current = pixelValueRange; + selectedRangeRef.current = selectedPixelValueRange; + selectedRange4Band2Ref.current = selectedPixelValueRange4Band2; fullPixelValueRangeRef.current = fullPixelValueRange; + pixelColorRef.current = pixelColor; if (layerRef.current) { layerRef.current.redraw(); } - }, [pixelValueRange, fullPixelValueRange]); + }, [ + selectedPixelValueRange, + selectedPixelValueRange4Band2, + fullPixelValueRange, + pixelColor, + ]); + + useEffect(() => { + if (!layerRef.current) { + return; + } + + layerRef.current.blendMode = blendMode || 'normal'; + }, [blendMode]); return null; }; diff --git a/src/shared/components/MapView/CustomMapPopupStyle.css b/src/shared/components/MapView/CustomMapPopupStyle.css index 9ace27c3..ace67727 100644 --- a/src/shared/components/MapView/CustomMapPopupStyle.css +++ b/src/shared/components/MapView/CustomMapPopupStyle.css @@ -1,5 +1,8 @@ .esri-popup__main-container { --calcite-ui-foreground-1: var(--custom-background); + --calcite-color-foreground-1: var(--custom-background); + --calcite-color-border-3: var(--custom-light-blue-50); + --calcite-color-text-2: var(--custom-light-blue); } .esri-popup__main-container .esri-features__content-feature{ @@ -19,7 +22,7 @@ .esri-widget__heading { font-size: 12px !important; - color: var(--custom-light-blue);; + color: var(--custom-light-blue); } .esri-popup__main-container calcite-action[title="Dock"] { @@ -34,11 +37,6 @@ border-block-end: none; } -.esri-popup__main-container .header-content { - background: red; -} - - /* .esri-popup__header-container--button:hover, .esri-popup__button:hover { @apply bg-custom-background-95; diff --git a/src/shared/components/MaskTool/WarningMessage.tsx b/src/shared/components/MaskTool/WarningMessage.tsx new file mode 100644 index 00000000..6541a561 --- /dev/null +++ b/src/shared/components/MaskTool/WarningMessage.tsx @@ -0,0 +1,13 @@ +import React from 'react'; + +export const WarningMessage = () => { + return ( +
+

Select a scene to calculate a mask for the selected index.

+
+ ); +}; diff --git a/src/shared/components/MaskTool/index.ts b/src/shared/components/MaskTool/index.ts index 35f8c995..18be6900 100644 --- a/src/shared/components/MaskTool/index.ts +++ b/src/shared/components/MaskTool/index.ts @@ -14,3 +14,4 @@ */ export { RenderingControlsContainer as MaskLayerRenderingControls } from './RenderingControlsContainer'; +export { WarningMessage as MaskToolWarnigMessage } from './WarningMessage'; diff --git a/src/shared/components/Slider/PixelRangeSlider.tsx b/src/shared/components/Slider/PixelRangeSlider.tsx index df96d384..a4339314 100644 --- a/src/shared/components/Slider/PixelRangeSlider.tsx +++ b/src/shared/components/Slider/PixelRangeSlider.tsx @@ -58,6 +58,32 @@ type Props = { valuesOnChange: (vals: number[]) => void; }; +const getTickLabels = (min: number, max: number) => { + const fullRange = Math.abs(max - min); + + const oneFourthOfFullRange = fullRange / 4; + + const tickLabels: number[] = [ + min, + min + oneFourthOfFullRange, + min + oneFourthOfFullRange * 2, + min + oneFourthOfFullRange * 3, + max, + ]; + + return tickLabels; +}; + +const getCountOfTicks = (min: number, max: number) => { + const fullRange = Math.abs(max - min); + + const countOfTicks = fullRange / 0.25 + 1; + + // console.log(fullRange, countOfTicks); + + return countOfTicks; +}; + /** * A slider component to select fixel range of the mask layer for selected Imagery scene * @param param0 @@ -68,8 +94,8 @@ export const PixelRangeSlider: FC = ({ min = -1, max = 1, steps = 0.05, - countOfTicks = 0, - tickLabels = [], + countOfTicks, + tickLabels, showSliderTooltip, valuesOnChange, }) => { @@ -77,15 +103,15 @@ export const PixelRangeSlider: FC = ({ const sliderRef = useRef(); - const getTickConfigs = () => { + const getTickConfigs = (min: number, max: number) => { return [ { mode: 'count', - values: countOfTicks, + values: countOfTicks || getCountOfTicks(min, max), }, { mode: 'position', - values: tickLabels, //[-1, -0.5, 0, 0.5, 1], + values: tickLabels || getTickLabels(min, max), //[-1, -0.5, 0, 0.5, 1], labelsVisible: true, }, ] as __esri.TickConfig[]; @@ -103,7 +129,7 @@ export const PixelRangeSlider: FC = ({ labels: false, rangeLabels: false, }, - tickConfigs: getTickConfigs(), + tickConfigs: getTickConfigs(min, max), // layout: 'vertical', }); @@ -198,7 +224,7 @@ export const PixelRangeSlider: FC = ({ sliderRef.current.max = max; sliderRef.current.values = values; sliderRef.current.steps = steps; - sliderRef.current.tickConfigs = getTickConfigs(); + sliderRef.current.tickConfigs = getTickConfigs(min, max); }, [min, max, values, steps, countOfTicks, tickLabels]); return ( diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index 98e7e36e..7fadc35a 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -88,15 +88,19 @@ export const FIELD_NAMES = { * List of Raster Functions for the Sentinel-1 service */ const SENTINEL1_RASTER_FUNCTIONS = [ - 'Sentinel-1 RGB dB DRA', + 'False Color dB with DRA', // 'Sentinel-1 RGB dB', - 'Sentinel-1 RTC VV dB with DRA', - 'Sentinel-1 RTC VH dB with DRA', - 'SWI Raw', + 'VV dB with Despeckle and DRA', + 'VH dB with Despeckle and DRA', + 'SWI Colorized', // 'Sentinel-1 DpRVIc Raw', + 'Water Anomaly Index Colorized', + 'SWI Raw', 'Water Anomaly Index Raw', - 'Sentinel-1 RTC Despeckle VV Amplitude', - 'Sentinel-1 RTC Despeckle VH Amplitude', + 'VV Amplitude with Despeckle', + 'VH Amplitude with Despeckle', + // This RFT creates a two-band raster including VV and VH polarization in power scale, with a despeckling filter applied + 'VV and VH Power with Despeckle', ] as const; export type Sentinel1FunctionName = (typeof SENTINEL1_RASTER_FUNCTIONS)[number]; @@ -111,49 +115,70 @@ export const SENTINEL1_RASTER_FUNCTION_INFOS: { label: string; }[] = [ { - name: 'Sentinel-1 RGB dB DRA', + name: 'False Color dB with DRA', description: - 'RGB color composite of VV,VH,VV/VH in dB scale with a dynamic stretch applied for visualization only', + 'RGB false color composite of VV, VH, VV/VH in dB scale with a dynamic stretch applied for visualization only.', label: 'RGB dB DRA', }, { - name: 'Sentinel-1 RTC VV dB with DRA', + name: 'VV dB with Despeckle and DRA', description: - 'VV data in dB scale with a dynamic stretch applied for visualization only', + 'VV data in dB scale with a 7x7 Refined Lee despeckling filter and a dynamic stretch applied for visualization only.', label: 'VV dB', }, { - name: 'Sentinel-1 RTC VH dB with DRA', + name: 'VH dB with Despeckle and DRA', description: - 'VH data in dB scale with a dynamic stretch applied for visualization only', + 'VH data in dB scale with a 7x7 Refined Lee despeckling filter and a dynamic stretch applied for visualization only.', label: 'VH dB', }, { - name: 'SWI Raw', + name: 'SWI Colorized', description: - 'Sentinel-1 Water Index for extracting water bodies and monitoring droughts computed as (0.1747 * dB_vv) + (0.0082 * dB_vh * dB_vv) + (0.0023 * dB_vv ^ 2) - (0.0015 * dB_vh ^ 2) + 0.1904.', + 'Sentinel-1 Water Index with a color map. Wetlands and moist areas range from light green to dark blue. Computed as (0.1747 * dB_vv) + (0.0082 * dB_vh * dB_vv) + (0.0023 * dB_vv ^ 2) - (0.0015 * dB_vh ^ 2) + 0.1904.', label: 'SWI ', }, - // { - // name: 'Sentinel-1 DpRVIc Raw', - // description: - // 'Dual-pol Radar Vegetation Index for GRD SAR data computed as ((VH/VV) * ((VH/VV) + 3)) / ((VH/VV) + 1) ^ 2.', - // label: 'DpRVIc ', - // }, { - name: 'Water Anomaly Index Raw', + name: 'Water Anomaly Index Colorized', description: - 'Water Anomaly Index that is used for oil detection but can also be used to detect other pullutants and natural phenomena such as industrial pollutants, sewage, red ocean tides, seaweed blobs, and more computed as Ln (0.01 / (0.01 + VV * 2)).', + 'Water Anomaly Index with a color map. Increased water anomalies are indicated by bright yellow, orange and red colors. Computed as Ln (0.01 / (0.01 + VV * 2)).', label: 'Water Anomaly', }, - { - name: 'Sentinel-1 RTC Despeckle VV Amplitude', - description: 'VV data in Amplitude scale for computational analysis', - label: 'VV Amplitude', - }, - { - name: 'Sentinel-1 RTC Despeckle VH Amplitude', - description: 'VH data in Amplitude scale for computational analysis', - label: 'VH Amplitude', - }, + // { + // name: 'SWI Raw', + // description: + // 'Sentinel-1 Water Index with a 7x7 Refined Lee despeckling filter for extracting water bodies and monitoring droughts. Computed as (0.1747 * dB_vv) + (0.0082 * dB_vh * dB_vv) + (0.0023 * dB_vv ^ 2) - (0.0015 * dB_vh ^ 2) + 0.1904.', + // label: 'SWI', + // }, + // { + // name: 'Water Anomaly Index Raw', + // description: + // 'Water Anomaly Index with a 7x7 Refined Lee despeckling filter for detecting water pollutants and natural phenomena. For example oil, industrial pollutants, sewage, red ocean tides, seaweed blobs, turbidity, and more. Computed as Ln (0.01 / (0.01 + VV * 2)).', + // label: 'Water Anomaly', + // }, + // { + // name: 'VV Amplitude with Despeckle', + // description: 'VV data in Amplitude scale for computational analysis', + // label: 'VV Amplitude', + // }, + // { + // name: 'VH Amplitude with Despeckle', + // description: 'VH data in Amplitude scale for computational analysis', + // label: 'VH Amplitude', + // }, ]; + +/** + * For the Water Index (SWI), we have selected a input range of -0.3 to 1, though it may need adjustment. + */ +export const SENTINEL1_WATER_INDEX_PIXEL_RANGE: number[] = [-0.5, 1]; + +/** + * For Water Anomaly Index, we can use a input range of -2 to 0. Typically, oil appears within the range of -1 to 0. + */ +export const SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE: number[] = [-2, 0]; + +/** + * For both ship and urban detection, we can use range of 0 to 1 for the threshold slider + */ +export const SENTINEL1_SHIP_AND_URBAN_INDEX_PIXEL_RANGE: number[] = [0, 1]; diff --git a/src/shared/store/MaskTool/reducer.ts b/src/shared/store/MaskTool/reducer.ts index 0474b0ee..a740acd8 100644 --- a/src/shared/store/MaskTool/reducer.ts +++ b/src/shared/store/MaskTool/reducer.ts @@ -19,7 +19,7 @@ import { PayloadAction, // createAsyncThunk } from '@reduxjs/toolkit'; -import { SpectralIndex } from '@typing/imagery-service'; +import { RadarIndex, SpectralIndex } from '@typing/imagery-service'; export type MaskOptions = { selectedRange: number[]; @@ -29,17 +29,20 @@ export type MaskOptions = { color: number[]; }; -type MaskOptionsBySpectralIndex = Record; +type MaskOptionsBySpectralIndex = Record< + SpectralIndex | RadarIndex, + MaskOptions +>; export type MaskToolState = { /** - * user selected spectral index to be used in the mask tool + * user selected spectral/radar index to be used in the mask tool */ - spectralIndex: SpectralIndex; + selectedIndex: SpectralIndex | RadarIndex; /** - * maks tool options by spectral index name + * maks tool options by use selected index name */ - maskOptionsBySpectralIndex: MaskOptionsBySpectralIndex; + maskOptionsBySelectedIndex: MaskOptionsBySpectralIndex; /** * opacity of the mask layer */ @@ -51,10 +54,10 @@ export type MaskToolState = { }; export const initialMaskToolState: MaskToolState = { - spectralIndex: 'water', + selectedIndex: 'water', maskLayerOpacity: 1, shouldClipMaskLayer: false, - maskOptionsBySpectralIndex: { + maskOptionsBySelectedIndex: { moisture: { selectedRange: [0, 1], color: [89, 255, 252], @@ -78,6 +81,18 @@ export const initialMaskToolState: MaskToolState = { selectedRange: [0, 60], // default range should be between 0-60 celcius degrees color: [251, 182, 100], }, + 'water anomaly': { + selectedRange: [0, 1], + color: [255, 214, 102], + }, + ship: { + selectedRange: [0.3, 1], + color: [255, 0, 21], + }, + urban: { + selectedRange: [0.2, 1], + color: [255, 0, 21], + }, }, }; @@ -85,15 +100,15 @@ const slice = createSlice({ name: 'MaskTool', initialState: initialMaskToolState, reducers: { - spectralIndex4MaskToolChanged: ( + selectedIndex4MaskToolChanged: ( state, - action: PayloadAction + action: PayloadAction ) => { - state.spectralIndex = action.payload; + state.selectedIndex = action.payload; }, maskOptionsChanged: (state, action: PayloadAction) => { - const spectralIndex = state.spectralIndex; - state.maskOptionsBySpectralIndex[spectralIndex] = action.payload; + const selectedIndex = state.selectedIndex; + state.maskOptionsBySelectedIndex[selectedIndex] = action.payload; }, maskLayerOpacityChanged: (state, action: PayloadAction) => { state.maskLayerOpacity = action.payload; @@ -108,7 +123,7 @@ const { reducer } = slice; export const { // activeAnalysisToolChanged, - spectralIndex4MaskToolChanged, + selectedIndex4MaskToolChanged, maskOptionsChanged, maskLayerOpacityChanged, shouldClipMaskLayerToggled, diff --git a/src/shared/store/MaskTool/selectors.ts b/src/shared/store/MaskTool/selectors.ts index 26345b05..dd006ca1 100644 --- a/src/shared/store/MaskTool/selectors.ts +++ b/src/shared/store/MaskTool/selectors.ts @@ -16,16 +16,16 @@ import { createSelector } from '@reduxjs/toolkit'; import { RootState } from '../configureStore'; -export const selectSpectralIndex4MaskTool = createSelector( - (state: RootState) => state.MaskTool.spectralIndex, - (spectralIndex) => spectralIndex +export const selectSelectedIndex4MaskTool = createSelector( + (state: RootState) => state.MaskTool.selectedIndex, + (selectedIndex) => selectedIndex ); export const selectMaskOptions = createSelector( - (state: RootState) => state.MaskTool.spectralIndex, - (state: RootState) => state.MaskTool.maskOptionsBySpectralIndex, - (spectralIndex, maskOptionsBySpectralIndex) => - maskOptionsBySpectralIndex[spectralIndex] + (state: RootState) => state.MaskTool.selectedIndex, + (state: RootState) => state.MaskTool.maskOptionsBySelectedIndex, + (selectedIndex, maskOptionsBySpectralIndex) => + maskOptionsBySpectralIndex[selectedIndex] ); export const selectMaskLayerOpcity = createSelector( diff --git a/src/shared/utils/url-hash-params/maskTool.ts b/src/shared/utils/url-hash-params/maskTool.ts index 14cca682..9a9f91c6 100644 --- a/src/shared/utils/url-hash-params/maskTool.ts +++ b/src/shared/utils/url-hash-params/maskTool.ts @@ -27,16 +27,16 @@ export const encodeMaskToolData = (data: MaskToolState): string => { } const { - spectralIndex, + selectedIndex, shouldClipMaskLayer, maskLayerOpacity, - maskOptionsBySpectralIndex, + maskOptionsBySelectedIndex, } = data; - const maskOptions = maskOptionsBySpectralIndex[spectralIndex]; + const maskOptions = maskOptionsBySelectedIndex[selectedIndex]; return [ - spectralIndex, + selectedIndex, shouldClipMaskLayer, maskLayerOpacity, maskOptions?.color, @@ -50,7 +50,7 @@ export const decodeMaskToolData = (val: string): MaskToolState => { } const [ - spectralIndex, + selectedIndex, shouldClipMaskLayer, maskLayerOpacity, color, @@ -63,17 +63,17 @@ export const decodeMaskToolData = (val: string): MaskToolState => { color: color.split(',').map((d) => +d), selectedRange: selectedRange.split(',').map((d) => +d), } - : initialMaskToolState.maskOptionsBySpectralIndex[ - spectralIndex as SpectralIndex + : initialMaskToolState.maskOptionsBySelectedIndex[ + selectedIndex as SpectralIndex ]; return { - spectralIndex: spectralIndex as SpectralIndex, + selectedIndex: selectedIndex as SpectralIndex, shouldClipMaskLayer: shouldClipMaskLayer === 'true', maskLayerOpacity: +maskLayerOpacity, - maskOptionsBySpectralIndex: { - ...initialMaskToolState.maskOptionsBySpectralIndex, - [spectralIndex]: maskOptionForSelectedSpectralIndex, + maskOptionsBySelectedIndex: { + ...initialMaskToolState.maskOptionsBySelectedIndex, + [selectedIndex]: maskOptionForSelectedSpectralIndex, }, }; }; diff --git a/src/types/argis-sdk-for-javascript.d.ts b/src/types/argis-sdk-for-javascript.d.ts new file mode 100644 index 00000000..fecfc6f2 --- /dev/null +++ b/src/types/argis-sdk-for-javascript.d.ts @@ -0,0 +1,32 @@ +export type BlendMode = + | 'average' + | 'color-burn' + | 'color-dodge' + | 'color' + | 'darken' + | 'destination-atop' + | 'destination-in' + | 'destination-out' + | 'destination-over' + | 'difference' + | 'exclusion' + | 'hard-light' + | 'hue' + | 'invert' + | 'lighten' + | 'lighter' + | 'luminosity' + | 'minus' + | 'multiply' + | 'normal' + | 'overlay' + | 'plus' + | 'reflect' + | 'saturation' + | 'screen' + | 'soft-light' + | 'source-atop' + | 'source-in' + | 'source-out' + | 'vivid-light' + | 'xor'; diff --git a/src/types/imagery-service.d.ts b/src/types/imagery-service.d.ts index f80ec1d2..e69db7d7 100644 --- a/src/types/imagery-service.d.ts +++ b/src/types/imagery-service.d.ts @@ -54,7 +54,7 @@ export type SpectralIndex = /** * Name of Radar Index for SAR image (e.g. Sentinel-1) */ -export type RadarIndex = 'water' | 'water anomaly'; +export type RadarIndex = 'water' | 'water anomaly' | 'ship' | 'urban'; // | 'vegetation' export type LandsatScene = { From db0e5b1f702996d19bcb79ef10082f8d3d52559b Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 28 May 2024 11:02:38 -0700 Subject: [PATCH 036/151] fix(sentinel1explorer): WaterLandMaskLayer should only include 'Permanent water' --- .../components/MaskLayer/WaterLandMaskLayer.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sentinel-1-explorer/components/MaskLayer/WaterLandMaskLayer.tsx b/src/sentinel-1-explorer/components/MaskLayer/WaterLandMaskLayer.tsx index ba54722e..cc6af9ea 100644 --- a/src/sentinel-1-explorer/components/MaskLayer/WaterLandMaskLayer.tsx +++ b/src/sentinel-1-explorer/components/MaskLayer/WaterLandMaskLayer.tsx @@ -30,8 +30,8 @@ const getRasterFunction = (visibleCategory: WaterLandMaskLayerCategory) => { return mask({ includedRanges: visibleCategory === 'land' - ? [[0, 1]] // Pixels in the range [0, 1] are included for 'land'. - : [[2, 3]], // Pixels in the range [2, 3] are included for 'water'. + ? [[0, 1]] // Pixels in the range [0, 1] are included for 'Not water' and 'No observations'. + : [[3]], // Pixels in the range [3] are included for 'Permanent water'. noDataValues: [], }); }; From 9a3839dc7c450bde4d74d8e0eab68069902ce1d6 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 28 May 2024 11:39:37 -0700 Subject: [PATCH 037/151] fix(sentinel1explorer): OrbitDirectionFilter should not use Dropdown menu --- .../OrbitDirectionFilter.tsx | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx b/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx index 256461e0..ad50d392 100644 --- a/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx +++ b/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx @@ -13,8 +13,11 @@ * limitations under the License. */ +import { Button } from '@shared/components/Button'; import { Dropdown, DropdownData } from '@shared/components/Dropdown'; +import { Tooltip } from '@shared/components/Tooltip'; import { Sentinel1OrbitDirection } from '@typing/imagery-service'; +import classNames from 'classnames'; import React, { FC, useMemo } from 'react'; type Props = { @@ -43,13 +46,36 @@ export const OrbitDirectionFilter: FC = ({ }, [selectedOrbitDirection]); return ( -
- + {/* { orbitDirectionOnChange(val as Sentinel1OrbitDirection); }} - /> + /> */} +
+ +
+ + {data.map((d) => { + return ( +
{ + orbitDirectionOnChange( + d.value as Sentinel1OrbitDirection + ); + }} + className={classNames('px-2 mx-1 cursor-pointer', { + 'bg-custom-light-blue-90': d.selected === true, + 'text-custom-background': d.selected === true, + 'bg-custom-light-blue-5': d.selected === false, + })} + > + {d.value} +
+ ); + })}
); }; From ed3a64d50f489e93976ce3fad26c2ed8c874ef3d Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 28 May 2024 11:47:33 -0700 Subject: [PATCH 038/151] fix(sentinel1explorer): OrbitDirectionFilter should use uppercase text --- .../components/OrbitDirectionFilter/OrbitDirectionFilter.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx b/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx index ad50d392..c6d61905 100644 --- a/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx +++ b/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx @@ -72,7 +72,7 @@ export const OrbitDirectionFilter: FC = ({ 'bg-custom-light-blue-5': d.selected === false, })} > - {d.value} + {d.value}
); })} From 56b610115f1d5f5a28237a2bf2898fc27e5271f9 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 28 May 2024 15:13:05 -0700 Subject: [PATCH 039/151] fix(sentinel1explorer): The temporal composite tool should enforce user to select scenes with same relative orbit --- .../TemporalCompositeTool.tsx | 9 +- ...kedRelativeOrbit4TemporalCompositeTool.tsx | 94 +++++++++++++++++++ .../useQueryAvailableSentinel1Scenes.tsx | 26 ++--- .../store/getPreloadedState.ts | 6 +- .../services/sentinel-1/getSentinel1Scenes.ts | 16 ++-- src/shared/store/Sentinel1/thunks.ts | 10 +- .../store/TemporalCompositeTool/thunks.ts | 6 +- 7 files changed, 136 insertions(+), 31 deletions(-) create mode 100644 src/sentinel-1-explorer/hooks/useLockedRelativeOrbit4TemporalCompositeTool.tsx diff --git a/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx b/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx index 0bff68a1..5dcb430c 100644 --- a/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx +++ b/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx @@ -37,13 +37,18 @@ export const TemporalCompositeTool = () => { const listOfQueryParams = useSelector(selectListOfQueryParams); const rasterFunctionDropdownOptions: DropdownData[] = useMemo(() => { + const VVdBRasterFunction: Sentinel1FunctionName = + 'VV dB with Despeckle and DRA'; + const VHdBRasterFunction: Sentinel1FunctionName = + 'VV dB with Despeckle and DRA'; + const data = [ { - value: 'Sentinel-1 RTC VV dB with DRA' as Sentinel1FunctionName, + value: VVdBRasterFunction, label: 'V V dB', }, { - value: 'Sentinel-1 RTC VH dB with DRA' as Sentinel1FunctionName, + value: VHdBRasterFunction, label: 'V H dB', }, ]; diff --git a/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit4TemporalCompositeTool.tsx b/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit4TemporalCompositeTool.tsx new file mode 100644 index 00000000..5ac0ded3 --- /dev/null +++ b/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit4TemporalCompositeTool.tsx @@ -0,0 +1,94 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { useEffect, useMemo, useState } from 'react'; +import { useSelector } from 'react-redux'; +import { + selectActiveAnalysisTool, + selectAppMode, + selectListOfQueryParams, +} from '@shared/store/ImageryScene/selectors'; +import { Sentinel1Scene } from '@typing/imagery-service'; +import { getSentinel1SceneByObjectId } from '@shared/services/sentinel-1/getSentinel1Scenes'; + +/** + * Custom hook that returns the relative orbit to be used by the temporal composite tool. + * The temporal composite tool requires all three scenes selected by the user to have the same relative orbit. + * This hook tries to find the first scene that the user has selected and uses the relative orbit of that scene to + * query the rest of the scenes. + * + * @returns {string | undefined} Relative orbit of the selected Sentinel-1 scene, or undefined if not applicable. + */ +export const useLockedRelativeOrbit4TemporalCompositeTool = () => { + const mode = useSelector(selectAppMode); + + const analysisTool = useSelector(selectActiveAnalysisTool); + + const listOfQueryParams = useSelector(selectListOfQueryParams); + + const [sentinel1Scene, setSentinel1Scene] = useState(); + + /** + * useMemo hook to compute the relative orbit based on the mode, active analysis tool, and selected Sentinel-1 scene. + * The relative orbit is only relevant when the mode is 'analysis' and the analysis tool is 'temporal composite'. + */ + const relativeOrbit: string = useMemo(() => { + if ( + mode !== 'analysis' || + analysisTool !== 'temporal composite' || + !sentinel1Scene + ) { + return undefined; + } + + return sentinel1Scene?.relativeOrbit; + }, [mode, analysisTool, sentinel1Scene]); + + /** + * useEffect hook to update the selected Sentinel-1 scene when the mode, analysis tool, or query parameters change. + * It asynchronously fetches the scene data using the first valid object ID from the list of query parameters. + */ + useEffect(() => { + (async () => { + if (mode !== 'analysis' || analysisTool !== 'temporal composite') { + return setSentinel1Scene(undefined); + } + + let objectIdOfSelectedScene: number = null; + + // Find the first item in the list that has an associated object ID + for (const item of listOfQueryParams) { + if (item.objectIdOfSelectedScene) { + objectIdOfSelectedScene = item.objectIdOfSelectedScene; + break; + } + } + + // if no items in the list has object id selected, then set the sentinel1 scene to undefined + if (!objectIdOfSelectedScene) { + return setSentinel1Scene(undefined); + } + + // Fetch the selected Sentinel-1 scene data + const data = await getSentinel1SceneByObjectId( + objectIdOfSelectedScene + ); + + setSentinel1Scene(data); + })(); + }, [listOfQueryParams, mode, analysisTool]); + + return relativeOrbit; +}; diff --git a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx index 3869cfbc..d37abfa2 100644 --- a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx +++ b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx @@ -13,7 +13,7 @@ * limitations under the License. */ -import React, { useEffect, useMemo } from 'react'; +import React, { useEffect, useMemo, useState } from 'react'; import { useSelector } from 'react-redux'; import { selectMapCenter } from '@shared/store/Map/selectors'; import { useDispatch } from 'react-redux'; @@ -23,9 +23,13 @@ import { queryAvailableScenes } from '@shared/store/Sentinel1/thunks'; import { selectActiveAnalysisTool, selectAppMode, + selectListOfQueryParams, selectQueryParams4SceneInSelectedMode, } from '@shared/store/ImageryScene/selectors'; import { selectSentinel1OrbitDirection } from '@shared/store/Sentinel1/selectors'; +import { Sentinel1Scene } from '@typing/imagery-service'; +import { getSentinel1SceneByObjectId } from '@shared/services/sentinel-1/getSentinel1Scenes'; +import { useLockedRelativeOrbit4TemporalCompositeTool } from './useLockedRelativeOrbit4TemporalCompositeTool'; // import { selectAcquisitionYear } from '@shared/store/ImageryScene/selectors'; /** @@ -53,17 +57,11 @@ export const useQueryAvailableSentinel1Scenes = (): void => { const orbitDirection = useSelector(selectSentinel1OrbitDirection); - // /** - // * Indicates if we should only query the sentinel-1 imagery scenes that - // * support dual polarization: VV and VH - // */ - // const dualPolarizationOnly = useMemo(() => { - // if (mode === 'analysis' && analysisTool === 'temporal composite') { - // return true; - // } - - // return false; - // }, [mode, analysisTool]); + /** + * relative orbit to be used by the temporal composite tool + */ + const relativeOrbitOfSentinelScene4TemporalCompositeTool = + useLockedRelativeOrbit4TemporalCompositeTool(); useEffect(() => { if (!center || !acquisitionDateRange) { @@ -77,7 +75,8 @@ export const useQueryAvailableSentinel1Scenes = (): void => { dispatch( queryAvailableScenes( acquisitionDateRange, - orbitDirection + orbitDirection, + relativeOrbitOfSentinelScene4TemporalCompositeTool // dualPolarizationOnly ) ); @@ -86,6 +85,7 @@ export const useQueryAvailableSentinel1Scenes = (): void => { acquisitionDateRange, isAnimationPlaying, orbitDirection, + relativeOrbitOfSentinelScene4TemporalCompositeTool, // dualPolarizationOnly, ]); diff --git a/src/sentinel-1-explorer/store/getPreloadedState.ts b/src/sentinel-1-explorer/store/getPreloadedState.ts index 078fef45..c1feff68 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState.ts @@ -196,10 +196,12 @@ const getPreloadedUIState = (): UIState => { const getPreloadedTemporalCompositeToolState = (): TemporalCompositeToolState => { + const rasterFunction: Sentinel1FunctionName = + 'VV dB with Despeckle and DRA'; + const proloadedState: TemporalCompositeToolState = { ...initialState4TemporalCompositeTool, - rasterFunction: - 'Sentinel-1 RTC VV dB with DRA' as Sentinel1FunctionName, + rasterFunction: rasterFunction, }; return proloadedState; diff --git a/src/shared/services/sentinel-1/getSentinel1Scenes.ts b/src/shared/services/sentinel-1/getSentinel1Scenes.ts index 12a9c5cd..7a0c5188 100644 --- a/src/shared/services/sentinel-1/getSentinel1Scenes.ts +++ b/src/shared/services/sentinel-1/getSentinel1Scenes.ts @@ -36,10 +36,10 @@ type GetSentinel1ScenesParams = { * orbit direction */ orbitDirection: Sentinel1OrbitDirection; - // /** - // * If ture, we should only get scenes that has dual polarization (VV+VH) - // */ - // dualPolarizationOnly?: boolean; + /** + * the relative orbits of sentinel-1 scenes + */ + relativeOrbit?: string; /** * acquisition date range. * @@ -141,7 +141,7 @@ export const getSentinel1Scenes = async ({ // acquisitionYear, acquisitionDateRange, orbitDirection, - // dualPolarizationOnly, + relativeOrbit, acquisitionMonth, acquisitionDate, abortController, @@ -170,9 +170,9 @@ export const getSentinel1Scenes = async ({ whereClauses.push(`(${ORBIT_DIRECTION} = '${orbitDirection}')`); } - // if (dualPolarizationOnly) { - // whereClauses.push(`(${POLARIZATION_TYPE} = 'Dual')`); - // } + if (relativeOrbit) { + whereClauses.push(`(${RELATIVE_ORBIT} = ${relativeOrbit})`); + } // we should only include scenes with dual polarization whereClauses.push(`(${POLARIZATION_TYPE} = 'Dual')`); diff --git a/src/shared/store/Sentinel1/thunks.ts b/src/shared/store/Sentinel1/thunks.ts index e1295d60..bbd4ef2a 100644 --- a/src/shared/store/Sentinel1/thunks.ts +++ b/src/shared/store/Sentinel1/thunks.ts @@ -32,15 +32,19 @@ import { convert2ImageryScenes } from '@shared/services/sentinel-1/covert2Imager import { deduplicateListOfImageryScenes } from '@shared/services/helpers/deduplicateListOfScenes'; let abortController: AbortController = null; + /** * Query Sentinel-1 Scenes that intersect with center point of map view that were acquired within the user selected acquisition year. - * @param year use selected acquisition year + * @param acquisitionDateRange user selected acquisition date range + * @param orbitDirection user selected orbit direction + * @param relativeOrbit relative orbit of sentinel-1 scenes * @returns */ export const queryAvailableScenes = ( acquisitionDateRange: DateRange, - orbitDirection: Sentinel1OrbitDirection + orbitDirection: Sentinel1OrbitDirection, + relativeOrbit?: string // dualPolarizationOnly: boolean ) => async (dispatch: StoreDispatch, getState: StoreGetState) => { @@ -64,7 +68,7 @@ export const queryAvailableScenes = const scenes = await getSentinel1Scenes({ acquisitionDateRange, orbitDirection, - // dualPolarizationOnly, + relativeOrbit, mapPoint: center, abortController, }); diff --git a/src/shared/store/TemporalCompositeTool/thunks.ts b/src/shared/store/TemporalCompositeTool/thunks.ts index 7d8cf6f4..8d42f1e7 100644 --- a/src/shared/store/TemporalCompositeTool/thunks.ts +++ b/src/shared/store/TemporalCompositeTool/thunks.ts @@ -51,7 +51,7 @@ export const initiateImageryScenes4TemporalCompositeTool = ? listOfQueryParams[0] : { ...DefaultQueryParams4ImageryScene, - rasterFunctionName: '' as Sentinel1FunctionName, + rasterFunctionName: '', uniqueId: nanoid(5), }; @@ -60,7 +60,7 @@ export const initiateImageryScenes4TemporalCompositeTool = ? listOfQueryParams[1] : { ...DefaultQueryParams4ImageryScene, - rasterFunctionName: '' as Sentinel1FunctionName, + rasterFunctionName: '', uniqueId: nanoid(5), }; @@ -69,7 +69,7 @@ export const initiateImageryScenes4TemporalCompositeTool = ? listOfQueryParams[2] : { ...DefaultQueryParams4ImageryScene, - rasterFunctionName: '' as Sentinel1FunctionName, + rasterFunctionName: '', uniqueId: nanoid(5), }; From 939abdc5786454067149d54b56bc7ba9689dbada Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 28 May 2024 16:09:10 -0700 Subject: [PATCH 040/151] fix(sentinel1explorer): useLockedRelativeOrbit4TemporalCompositeTool hook should reset locked relativeOrbit when user deselect the acquisition date --- ...useLockedRelativeOrbit4TemporalCompositeTool.tsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit4TemporalCompositeTool.tsx b/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit4TemporalCompositeTool.tsx index 5ac0ded3..a7f9a46f 100644 --- a/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit4TemporalCompositeTool.tsx +++ b/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit4TemporalCompositeTool.tsx @@ -19,6 +19,7 @@ import { selectActiveAnalysisTool, selectAppMode, selectListOfQueryParams, + selectQueryParams4SceneInSelectedMode, } from '@shared/store/ImageryScene/selectors'; import { Sentinel1Scene } from '@typing/imagery-service'; import { getSentinel1SceneByObjectId } from '@shared/services/sentinel-1/getSentinel1Scenes'; @@ -36,6 +37,8 @@ export const useLockedRelativeOrbit4TemporalCompositeTool = () => { const analysisTool = useSelector(selectActiveAnalysisTool); + const queryParams = useSelector(selectQueryParams4SceneInSelectedMode); + const listOfQueryParams = useSelector(selectListOfQueryParams); const [sentinel1Scene, setSentinel1Scene] = useState(); @@ -50,7 +53,7 @@ export const useLockedRelativeOrbit4TemporalCompositeTool = () => { analysisTool !== 'temporal composite' || !sentinel1Scene ) { - return undefined; + return null; } return sentinel1Scene?.relativeOrbit; @@ -63,7 +66,7 @@ export const useLockedRelativeOrbit4TemporalCompositeTool = () => { useEffect(() => { (async () => { if (mode !== 'analysis' || analysisTool !== 'temporal composite') { - return setSentinel1Scene(undefined); + return setSentinel1Scene(null); } let objectIdOfSelectedScene: number = null; @@ -76,9 +79,9 @@ export const useLockedRelativeOrbit4TemporalCompositeTool = () => { } } - // if no items in the list has object id selected, then set the sentinel1 scene to undefined + // if no items in the list has object id selected, then set the sentinel1 scene to null if (!objectIdOfSelectedScene) { - return setSentinel1Scene(undefined); + return setSentinel1Scene(null); } // Fetch the selected Sentinel-1 scene data @@ -88,7 +91,7 @@ export const useLockedRelativeOrbit4TemporalCompositeTool = () => { setSentinel1Scene(data); })(); - }, [listOfQueryParams, mode, analysisTool]); + }, [queryParams?.objectIdOfSelectedScene, mode, analysisTool]); return relativeOrbit; }; From a5e359e8493ecf0753d08e40737c2b195b9f0c4c Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 28 May 2024 16:15:26 -0700 Subject: [PATCH 041/151] refactor(sentinel1explorer): update useQueryAvailableSentinel1Scenes to avoid sending unnecessary requests --- .../hooks/useQueryAvailableSentinel1Scenes.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx index d37abfa2..67363ab1 100644 --- a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx +++ b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx @@ -82,7 +82,8 @@ export const useQueryAvailableSentinel1Scenes = (): void => { ); }, [ center, - acquisitionDateRange, + acquisitionDateRange?.startDate, + acquisitionDateRange?.endDate, isAnimationPlaying, orbitDirection, relativeOrbitOfSentinelScene4TemporalCompositeTool, From 7eabd681fff4a43b98cde855b0819fa51b913a71 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 29 May 2024 09:26:25 -0700 Subject: [PATCH 042/151] chore(sentinel1explorer): update Thumbnail and Legend images in Raster Functions List --- .../legends/SARCompositeLegend.png | Bin 1671 -> 0 bytes .../SAR_FalseColorComposite_Legend.png | Bin 0 -> 1604 bytes .../legends/SAR_SingleBandV2_Legend.png | Bin 0 -> 1566 bytes .../legends/SAR_WaterAnomaly_Legend.png | Bin 0 -> 1882 bytes .../thumbnails/Render_VV_VH.jpg | Bin 0 -> 5256 bytes .../thumbnails/Render_WaterAnomaly.jpg | Bin 0 -> 4229 bytes .../thumbnails/Render_WaterIndex.jpg | Bin 0 -> 5706 bytes .../useSentinel1RasterFunctions.tsx | 28 ++++++++++-------- 8 files changed, 15 insertions(+), 13 deletions(-) delete mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SARCompositeLegend.png create mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SAR_FalseColorComposite_Legend.png create mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SAR_SingleBandV2_Legend.png create mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SAR_WaterAnomaly_Legend.png create mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/thumbnails/Render_VV_VH.jpg create mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/thumbnails/Render_WaterAnomaly.jpg create mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/thumbnails/Render_WaterIndex.jpg diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SARCompositeLegend.png b/src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SARCompositeLegend.png deleted file mode 100644 index c9abf19440276bd919773f350b3f3d67f94a4716..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1671 zcmV;226*|2P)9V7GB3UfH^_v10+RG5atBo1|cUHa)OW(3{yFP%?Soh zFl6lwIRNch=&4)XbT?)SV$$<}RW7xjq$jCu{g!0Qw&ik(5JHTBuUCN`D=foO$GoPJx_0->JXlzfzCmnsa(jQAK#1Omju!OM0s`wH@36wERWwLnX zuN|-a#kh6&iuPD%UFIgnN%m&jQruGhkfnPame*0$*=k!Tv$(e}>qqb>DER%iknXQv z`~8mjjNmsqnE7*SSg2no7UHWl`gB`*9)rK4gZrTNS>-c-`m#0zVp?}z^Y+EpK?q(q zVD=2NO^g==+XUMru!-4bjI&9w7Z{tEy@+;VK4XIxmPc+08o<}DU$fk4U~jl2q(PqB z+i4wkTeVEQ?z0b-snc@%K$^AdyWO|Y^55S^AL!Yj?h>Co>`ku(V|Aam($jU@=TMox z^i|rtqEEt2Ei&mk-1uOQajW7(X|QT&kzTSBj@P^LWZP)XuIpn>{Dk7QucY*cN76 z%{W^utLqyAOO_Tep2KZHYoH~k5Mne)(1Z}9L4qcP7!49M@&7@m{Dv99{gI#vA%Icn z+0Q0uW4Pr)h{xh56Eq=&=tqJkgcuDHG$F(j=6>5uohJoezkXd^Kdqxr)~aVbN1qzU ziFEXdM>+b`kyl5bsE$6Fk>z_TN1y!o6VF*?{$={bS|P+(u)DL20|~bf{nWGlpBwF= z2_Z&<1WgDr8YE~!h|wTH6GDuJ&aZ7GW{YwP8~{7OMKK9yKcZ1X%ogPwcm)*2B+S>_ z8X?BdY*8M!Ojp2JF$vd?T<<^db3Lu z&csfpIp@G(F$q^)Z5*1Ree&=F@Xu^f&S#5qua)P3xSrky{v^(#zIo#+u>s!u^`$rV z%=hQ+N}qcN@bI*!?mserLWoDeHQ<6cUN3=DA9rWOaeL`m-xJ66UH+y--FWF`_sE1Y zW0$y(|D7mmy}o+|t(b%(qDp=uiqtD=kxCrWTng^_18*eMVzpOH!X9x}w@p1=?M?T0 zgt@2Bi%B@m>-PNVCQkeMB7}GlUJ=FR9N72$vqR!|{o>;>jsN$Z9-16__@$VHyAq9`X`jPhLGz{H)P=1rQimRsDc-;zx5Rc2R)U%}aYV9s|TH!5R zbGlf0tPd?Y=fG#5VqUoIygz#{Y3X|5zTQ!J7Vtf&88L3@>#qpRQi5l1}XO zIdNKh-**Ke!~^2nKIcSDIPr11Prd&Qal`+}^IriU-99Di2wB=&;xcoWD1K=R=|3@! zBlatxU)vC(pLPA(#%xjUx4!XkMV!3+R!qXhK+#SlXhMj!2%3Lu;&0-T^@6wp+vXl8 z1KQ{;rx0RYToJdMu8AKsK=Zq;_eL``A%uS5Q3xTP8WJ=i#Awi;qzEBK!@s!GEl{E! Rf=2)V002ovPDHLkV1o58Dp>#k diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SAR_FalseColorComposite_Legend.png b/src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SAR_FalseColorComposite_Legend.png new file mode 100644 index 0000000000000000000000000000000000000000..a352547aae67d1d220666d662ef59c35cf50f5c3 GIT binary patch literal 1604 zcmV-K2D|x*P)$ zL_t(|ob8>>b=x=;MlUdvO|q~yTt}%uP6ZJwh*Lo{6~t44BZLqsU>{onA%yt9kU59FD4 zd%M?WTk`vL1dPEL)0{`4F(&lyP1u_s((WL0CqJCGWe(Np%il-mJ!N9Az}8@DOgOh! zVCtJZa}yuRYvj1|E6i5B2Ghtl9kMVXeJF2N){ySlD@-dMu4U)CqPlI}tuYvDu*Phi z8)LB6U<@wL`m`u-yIi||N4?NahpZ3}ZN~9XZb;9Yb3>H(0&8Ak%`2>Vi7_v?L67i)zOsbFp|BAx?! zFzrwHV|kGtT5<{@l0gPd2$2jjXhMi&kUNhtd(2> z=Xqu~_mnvW3gAbc+3CHN6QYBzxlvU03>X88JhNp{)k|OIa1VJ?_8704E4R~Y(0~&k z&L3EZanx4KF>vc(cx>8(`&T^(#G}$RH)g;)-~wl49)dBND}y|xCFcsrfe*kMnE0p1 zQ|E;3LDr6o-;g}Bhx>SE_e680hanHG6W?)Xzy!Di7Qj5u?8dv<6X1<^yEniA@K>JM zMN!oY;3M!M&+Pd?Gb1m%^lcvFoa-({uQ$RyP0xW7zuyvH_ZV1q^oe-d6wxv1E#$`5H{94+;g*M8K*;t zJ(?>$+;z!0!*$?S?@kAo`jZcXp_2yFy? z#w}xc2z>VPrhelzbo?0CdGkGFb+#X`{qxMu+i_e!9N?aU@$zF9ov(qzJhR7$=f-Jt ztOv@?eE8KbMaMnmSAOh;^5Y(PnkzlrdC571UuLdoto$11mi|L?p?wCej5Z5LI3qdr z=ig|a8pRz{DseaC0OuVpyjwiRb>K(fV^P&_`ULo;!hPEhgyl$y8-!)7<9**yiN~e& zmUD{pNN&ZC=`J>{un*0Z9&Yu}imJW{2hP>I#9i2u#`XIWRay9Of-_#{QM_-t32+#- z6Fj~P8f#s$`z9x}74#`v`x+Y>3x8Hr_1L?x$6j`LN{$9(4Yd!hKPakt>AldKI8A>| zaD!y(kD>iTksb>l#`9(`$}w0a?B6dyZ*t#HbbD z_&Pym=)-Y`9FZu|*jnSpK}oX*eIGPedeCPF5#b=x=)hCeX7d$le+N2x&G3L;hzr-EoJh_?dE6~w7vl?viiK&OJ0I-t(H z$PLhYz#xPuQj+aW>>&U59v=i4oEd_^aE9cg-QC?CLI{xp*;5-Jgb@E1a%e(`WROD> zLL`G6nh+uxeLDO0wcS_VAsxr;=YSUuG6yfP z(&`!8?V+vP|CrzVWDfQ>U9P8nsDI|bWe(>YF7pQ(*PZhno~ruiXLL`G6nh;5# zCmtY&CWJ@`r!UqDAyUB|?jn8$bYVIk=QQn8MJcBcA{pe+gb>LfhbDwb201h#L^AAr zu{KcF%^aY}v-$TlpsbrQFzYl|z;%&ln+M9A0wwUZ$g}B#jT54WzO_--%?ua=iz3ge zvTl~v=ky49Q;wLgS}TVcbZEeZmGkdx!#L6va}FGw3{OpWa{s6cfp}8-*2WBY4cy?J z%=ci7*2-R>lFkV+hp3S3Be`S40 zA>{v+=s1y4r+q7pE9>SAKet{2U+~e^1V2Z<$tdgQ1|R8t1!hH_RR_$_T8X$a z+5^1>K15f*g_S{Hm<&NjuxH$HmZ!i6lQ*>+r(xj7_`#bWA*)w^ockAfHt*K)<8Xq% z3dZTjEc(3$PK!J{NBnGDM%#K%znPVvEEOFO^k3QB3;o9f^0Zb4xOd9A4@)ywv|fIV z4@>`{J~KXKFJBXf<0B|zQ%^u!(WwkGqw=+++>HV7>;}7h(w9z)*3$#D%yL{4?$~X0DX2K5%jf<<9Uj& zZIpF0HK!BO#0u{?{tQnc#p97fO9VNzN_AE-IaJAIR> QaR2}S07*qoM6N<$f|v#7egFUf literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SAR_WaterAnomaly_Legend.png b/src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SAR_WaterAnomaly_Legend.png new file mode 100644 index 0000000000000000000000000000000000000000..a5e02c52d6998ff28cbd39aa0a5991da18a2c3be GIT binary patch literal 1882 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 literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/thumbnails/Render_WaterIndex.jpg b/src/sentinel-1-explorer/components/RasterFunctionSelector/thumbnails/Render_WaterIndex.jpg new file mode 100644 index 0000000000000000000000000000000000000000..be39d1a0beb10e2396d18ba87b04bee293aa6cd3 GIT binary patch literal 5706 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 HyXF4?a)N2U literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx index a7ae49ba..bd7943a0 100644 --- a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx @@ -22,17 +22,23 @@ import { import { RasterFunctionInfo } from '@typing/imagery-service'; import PlaceholderThumbnail from './thumbnails/placeholder.jpg'; -import CompositeLegend from './legends/SARCompositeLegend.png'; +import Render_VV_VH from './thumbnails/Render_VV_VH.jpg'; +import Render_WaterAnomaly from './thumbnails/Render_WaterAnomaly.jpg'; +import Render_WaterIndex from './thumbnails/Render_WaterIndex.jpg'; + +import SAR_FalseColorComposite_Legend from './legends/SAR_FalseColorComposite_Legend.png'; +import SAR_SingleBandV2_Legend from './legends/SAR_SingleBandV2_Legend.png'; +import SAR_WaterAnomaly_Legend from './legends/SAR_WaterAnomaly_Legend.png'; const Sentinel1RendererThumbnailByName: Partial< Record > = { 'False Color dB with DRA': PlaceholderThumbnail, - 'VV dB with Despeckle and DRA': PlaceholderThumbnail, - 'VH dB with Despeckle and DRA': PlaceholderThumbnail, + 'VV dB with Despeckle and DRA': Render_VV_VH, + 'VH dB with Despeckle and DRA': Render_VV_VH, // 'Sentinel-1 DpRVIc Raw': PlaceholderThumbnail, - 'Water Anomaly Index Colorized': PlaceholderThumbnail, - 'SWI Colorized': PlaceholderThumbnail, + 'Water Anomaly Index Colorized': Render_WaterAnomaly, + 'SWI Colorized': Render_WaterIndex, // 'Sentinel-1 RTC Despeckle VH Amplitude': PlaceholderThumbnail, // 'Sentinel-1 RTC Despeckle VV Amplitude': PlaceholderThumbnail, // 'NDMI Colorized': LandsatNDMIThumbnail, @@ -41,14 +47,10 @@ const Sentinel1RendererThumbnailByName: Partial< const Sentinel1RendererLegendByName: Partial< Record > = { - 'False Color dB with DRA': CompositeLegend, - // 'Sentinel-1 RTC VH dB with DRA': null, - // 'Sentinel-1 RTC VV dB with DRA': null, - // // 'Sentinel-1 DpRVIc Raw': null, - // 'SWI Raw': null, - // 'Water Anomaly Index Raw': null, - // 'Sentinel-1 RTC Despeckle VH Amplitude': null, - // 'Sentinel-1 RTC Despeckle VV Amplitude': null, + 'False Color dB with DRA': SAR_FalseColorComposite_Legend, + 'VH dB with Despeckle and DRA': SAR_SingleBandV2_Legend, + 'VV dB with Despeckle and DRA': SAR_SingleBandV2_Legend, + 'Water Anomaly Index Colorized': SAR_WaterAnomaly_Legend, }; export const getSentinel1RasterFunctionInfo = (): RasterFunctionInfo[] => { From 79b5151559376812c11c747f0c8f771a5acbc510 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 29 May 2024 10:18:05 -0700 Subject: [PATCH 043/151] feat(sentinel1explorer): sync acquisition date range for Temporal Composite Tool ref #10 - add useSyncCalendarDateRange custom hook - add syncImageryScenesDateRangeForTemporalCompositeTool thunk function --- .../thumbnails/Render_FalseColor.jpg | Bin 0 -> 5527 bytes .../useSentinel1RasterFunctions.tsx | 3 +- ...emporalCompositeLayerSelectorContainer.tsx | 3 + .../hooks/useSyncCalendarDateRange.tsx | 58 +++++++++++++++++ .../store/TemporalCompositeTool/thunks.ts | 60 +++++++++++++++++- 5 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/thumbnails/Render_FalseColor.jpg create mode 100644 src/sentinel-1-explorer/hooks/useSyncCalendarDateRange.tsx diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/thumbnails/Render_FalseColor.jpg b/src/sentinel-1-explorer/components/RasterFunctionSelector/thumbnails/Render_FalseColor.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7244aedfea325a33ccc761463d905827f625a519 GIT binary patch literal 5527 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 literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx index bd7943a0..6b022174 100644 --- a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx @@ -25,6 +25,7 @@ import PlaceholderThumbnail from './thumbnails/placeholder.jpg'; import Render_VV_VH from './thumbnails/Render_VV_VH.jpg'; import Render_WaterAnomaly from './thumbnails/Render_WaterAnomaly.jpg'; import Render_WaterIndex from './thumbnails/Render_WaterIndex.jpg'; +import Render_FalseColor from './thumbnails/Render_FalseColor.jpg'; import SAR_FalseColorComposite_Legend from './legends/SAR_FalseColorComposite_Legend.png'; import SAR_SingleBandV2_Legend from './legends/SAR_SingleBandV2_Legend.png'; @@ -33,7 +34,7 @@ import SAR_WaterAnomaly_Legend from './legends/SAR_WaterAnomaly_Legend.png'; const Sentinel1RendererThumbnailByName: Partial< Record > = { - 'False Color dB with DRA': PlaceholderThumbnail, + 'False Color dB with DRA': Render_FalseColor, 'VV dB with Despeckle and DRA': Render_VV_VH, 'VH dB with Despeckle and DRA': Render_VV_VH, // 'Sentinel-1 DpRVIc Raw': PlaceholderThumbnail, diff --git a/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/TemporalCompositeLayerSelectorContainer.tsx b/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/TemporalCompositeLayerSelectorContainer.tsx index 1ca9a21d..8768f9d8 100644 --- a/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/TemporalCompositeLayerSelectorContainer.tsx +++ b/src/sentinel-1-explorer/components/TemporalCompositeLayerSelector/TemporalCompositeLayerSelectorContainer.tsx @@ -13,6 +13,7 @@ import { import { selectedItemIdOfQueryParamsListChanged } from '@shared/store/ImageryScene/reducer'; import { isTemporalCompositeLayerOnUpdated } from '@shared/store/TemporalCompositeTool/reducer'; import { selectIsTemporalCompositeLayerOn } from '@shared/store/TemporalCompositeTool/selectors'; +import { useSyncCalendarDateRange } from '../../hooks/useSyncCalendarDateRange'; export const TemporalCompositeLayerSelectorContainer = () => { const dispatch = useDispatch(); @@ -41,6 +42,8 @@ export const TemporalCompositeLayerSelectorContainer = () => { return false; }, [listOfQueryParams]); + useSyncCalendarDateRange(); + useEffect(() => { dispatch(initiateImageryScenes4TemporalCompositeTool(true)); }, []); diff --git a/src/sentinel-1-explorer/hooks/useSyncCalendarDateRange.tsx b/src/sentinel-1-explorer/hooks/useSyncCalendarDateRange.tsx new file mode 100644 index 00000000..9f04b2c6 --- /dev/null +++ b/src/sentinel-1-explorer/hooks/useSyncCalendarDateRange.tsx @@ -0,0 +1,58 @@ +import { + selectActiveAnalysisTool, + selectAppMode, + selectQueryParams4SceneInSelectedMode, +} from '@shared/store/ImageryScene/selectors'; +import { syncImageryScenesDateRangeForTemporalCompositeTool } from '@shared/store/TemporalCompositeTool/thunks'; +import { getDateRangeForPast12Month } from '@shared/utils/date-time/getTimeRange'; +import React, { useEffect, useMemo } from 'react'; +import { useDispatch } from 'react-redux'; +import { useSelector } from 'react-redux'; + +const DATE_RANGE_OF_PAST_12_MONTH = getDateRangeForPast12Month(); + +/** + * Custom hook that triggers a thunk function to update the query parameters of Imagery Scenes + * for the Temporal Composite Tool, syncing them with the default acquisition date range + * (past 12 months) using the updated date range selected by the user. + */ +export const useSyncCalendarDateRange = () => { + const dispatch = useDispatch(); + + const mode = useSelector(selectAppMode); + + const analyzeTool = useSelector(selectActiveAnalysisTool); + + const queryParams = useSelector(selectQueryParams4SceneInSelectedMode); + + useEffect(() => { + if (!queryParams?.acquisitionDateRange) { + return; + } + + // Only sync the calendar date range if in 'analysis' mode + // and using the 'temporal composite' or 'change' tool + if ( + mode !== 'analysis' || + (analyzeTool !== 'temporal composite' && analyzeTool !== 'change') + ) { + return; + } + + const { startDate, endDate } = queryParams?.acquisitionDateRange || {}; + + // Skip syncing if the currently selected date range equals the date range of the past 12 months + if ( + startDate === DATE_RANGE_OF_PAST_12_MONTH.startDate && + endDate === DATE_RANGE_OF_PAST_12_MONTH.endDate + ) { + return; + } + + dispatch( + syncImageryScenesDateRangeForTemporalCompositeTool( + queryParams?.acquisitionDateRange + ) + ); + }, [queryParams.acquisitionDateRange]); +}; diff --git a/src/shared/store/TemporalCompositeTool/thunks.ts b/src/shared/store/TemporalCompositeTool/thunks.ts index 8d42f1e7..704ab346 100644 --- a/src/shared/store/TemporalCompositeTool/thunks.ts +++ b/src/shared/store/TemporalCompositeTool/thunks.ts @@ -21,13 +21,18 @@ import { queryParamsListChanged, } from '../ImageryScene/reducer'; import { + selectIdOfSelectedItemInListOfQueryParams, selectListOfQueryParams, selectQueryParams4MainScene, selectQueryParams4SecondaryScene, selectSelectedItemFromListOfQueryParams, } from '../ImageryScene/selectors'; import { RootState, StoreDispatch, StoreGetState } from '../configureStore'; -import { Sentinel1FunctionName } from '@shared/services/sentinel-1/config'; +// import { Sentinel1FunctionName } from '@shared/services/sentinel-1/config'; +import { DateRange } from '@typing/shared'; +import { getDateRangeForPast12Month } from '@shared/utils/date-time/getTimeRange'; + +const DATE_RANGE_OF_PAST_12_MONTH = getDateRangeForPast12Month(); // let abortController: AbortController = null; @@ -113,3 +118,56 @@ export const swapImageryScenesInTemporalCompositeTool = }) ); }; + +/** + * This thunk function updates the query parameters of Imagery Scenes for the Temporal Composite Tool + * to sync with the default acquisition date range (past 12 months) using the updated date range + * provided by the user. + * + * This is done to prevent the calendar from jumping between the "past 12 months" and a selected year, + * which might cause confusion for users. In other words, we want imagery scenes used by Temporal Composite Tool that don't have a + * user-selected acquisition date range to inherit the date range that the user selected for other imagery scenes. + * + * @param updatedDateRange - The new date range to apply to imagery scenes with the default date range. + */ +export const syncImageryScenesDateRangeForTemporalCompositeTool = + (updatedDateRange: DateRange) => + async (dispatch: StoreDispatch, getState: StoreGetState) => { + const storeState = getState(); + + // Get the current list of query parameters from the store + const listOfQueryParams = selectListOfQueryParams(storeState); + + const selectedItemID = + selectIdOfSelectedItemInListOfQueryParams(storeState); + + // Initialize an array to hold the updated list of query parameters + const updatedListOfQueryParams: QueryParams4ImageryScene[] = []; + + for (const queryParams of listOfQueryParams) { + // Create a copy of the current query parameters + const updatedQueryParams = { ...queryParams }; + + const { acquisitionDateRange } = updatedQueryParams; + + // If the acquisition date range matches the default "past 12 months" date range, + // update it to the new date range provided by the user + if ( + acquisitionDateRange.startDate === + DATE_RANGE_OF_PAST_12_MONTH.startDate && + acquisitionDateRange.endDate === + DATE_RANGE_OF_PAST_12_MONTH.endDate + ) { + updatedQueryParams.acquisitionDateRange = updatedDateRange; + } + + updatedListOfQueryParams.push(updatedQueryParams); + } + + dispatch( + queryParamsListChanged({ + queryParams: updatedListOfQueryParams, + selectedItemID, + }) + ); + }; From c85b4029c8772ab7e1cba27d1487882ccfaf5235 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 29 May 2024 11:35:01 -0700 Subject: [PATCH 044/151] chore(sentinel1explorer): update Thumbnail and Legend images in Raster Functions List --- .../legends/SAR_WaterIndex_Legend.png | Bin 0 -> 2224 bytes .../useSentinel1RasterFunctions.tsx | 2 ++ src/shared/services/sentinel-1/config.ts | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SAR_WaterIndex_Legend.png diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SAR_WaterIndex_Legend.png b/src/sentinel-1-explorer/components/RasterFunctionSelector/legends/SAR_WaterIndex_Legend.png new file mode 100644 index 0000000000000000000000000000000000000000..f7e72563954a3b17b0d917535ce3f99b058b04a5 GIT binary patch literal 2224 zcmV;h2v7HkP)z+$nGqoX70Uq3VZBCCDDsnY@? z=;Z#qRLN9&eJn(qF+8Tx#w3Kg%9XG$BwuV@uvG;pzg+OODn;d=KvI6uen>qh5x0t0 z6;0PqWl!pr(9BoWi9{QLii6~@-KeJe|g4{a}-O#ErF#V3xNf&1X=oh zan(LckcA*FoLj~)w>pOdw{+m}X%-><65PUXaRPIyxJf(~;`as0^b5PLM|J(vZQ;`U zF^%Wzs;Jq?q-lKNZ(jGR-YXkLrVZr%Nsd*S3WQeQTgtsTuD0h|;%?(_F1%{PX}#6j ze1v{q6ExjW5+PC#gthiW z&<(nf#7-^moQ-DutZ$9_NE>;YM-ry)>4u=S*~*2hwpTAh-cM=GD@|J+>-)VT@1rC> z3XY$d^Vh*&NUYp?BW|E%Q~w_!VH+ z#rQ>u(>9tnUSp+z)Mnfl6qHb8W*8S$f3J{2rPnio1wSWxsghTA>a*|TADuqL6RFad z^%V=ml>*vyZHBQbkFw)xvy|2BXjyrtDuvn%f9*fumka5-smL15miTezrGx7 zReoKr=z^=BP|tDvzIe``_?kcPj4zy{TncW%YUxw8oJqnGDAbZ9zps}Q>Ip z#Mj%^toB^|H19MlSr(Yhqb>io^KHKBxa*c9wWZ(2FVz;eN}E5HE#p<~tX`-0Ecw~p zlTz4!tThbdP-yhfj9)iJrkiaThG)Otp&5o@tic4$FpPu21kEsvgTVyNFpPu2J_;BO zMl*K-(C?HNpVyQ1xoaTJl zSfCv;nz;cG%Y51Il-Ivx{+|mIG$Y4(*j{|4XE%2t_DKCRPQMLu>hr?_h z8~loVlZ4lXkfAsAo~qFwhrIgQ#%Sio_@3TJ;4~RBUIO3I6toG@4Z_k>aT(3r8E_Wz zy#WUOPI=u@2e+Zzu@2t%JLQEc&m_bl85$4pbv{XYW0y&tv|Yp0{;K@Izn|deT08wt zIc78#$$(aas=8%7s@qXK+O_2eIh?H~+$Uc_Uyy^CTNc$e8et;+h9B{w zGQkfWbMd=)VZ6gP##;VC+-`tZ!DbiVU}M>ORDw2EVPoJ!$bT5Zb9FEd`M(J^&%^sT z?cXtwz85|t#}X4XV<&_ga{|1^-|RQ| zp$$}xIoosCLEabf#{-`DVQ84+HreJFhwa<2jb9RPRMV?QAw9>9*uM|jGwi=@JdM%J^`g*(Vb~Pkqxti1 zW%B7EV}iD4n4mqLFueH*-#fU*5C2}UVP$}^KiH7d_$@KTzb}e&qX51qKMXYX5bL4s y8P-EHjCQPtW*El7V1i~C#=&4iPQx$`hW`UwdBCzHL@$y60000 @@ -52,6 +53,7 @@ const Sentinel1RendererLegendByName: Partial< 'VH dB with Despeckle and DRA': SAR_SingleBandV2_Legend, 'VV dB with Despeckle and DRA': SAR_SingleBandV2_Legend, 'Water Anomaly Index Colorized': SAR_WaterAnomaly_Legend, + 'SWI Colorized': SAR_WaterIndex_Legend, }; export const getSentinel1RasterFunctionInfo = (): RasterFunctionInfo[] => { diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index 7fadc35a..9383336f 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -136,7 +136,7 @@ export const SENTINEL1_RASTER_FUNCTION_INFOS: { name: 'SWI Colorized', description: 'Sentinel-1 Water Index with a color map. Wetlands and moist areas range from light green to dark blue. Computed as (0.1747 * dB_vv) + (0.0082 * dB_vh * dB_vv) + (0.0023 * dB_vv ^ 2) - (0.0015 * dB_vh ^ 2) + 0.1904.', - label: 'SWI ', + label: 'SAR Water Index ', }, { name: 'Water Anomaly Index Colorized', From 3f573ee5e3c05ac10bad01f1c4c3d4f462280b2b Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 29 May 2024 12:39:50 -0700 Subject: [PATCH 045/151] chore(sentinel1explorer): update SENTINEL1_RASTER_FUNCTION_INFOS --- src/shared/services/sentinel-1/config.ts | 26 ++++++++++++------------ 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index 9383336f..cab6bd34 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -118,31 +118,31 @@ export const SENTINEL1_RASTER_FUNCTION_INFOS: { name: 'False Color dB with DRA', description: 'RGB false color composite of VV, VH, VV/VH in dB scale with a dynamic stretch applied for visualization only.', - label: 'RGB dB DRA', + label: 'False Color', }, { - name: 'VV dB with Despeckle and DRA', + name: 'SWI Colorized', description: - 'VV data in dB scale with a 7x7 Refined Lee despeckling filter and a dynamic stretch applied for visualization only.', - label: 'VV dB', + 'Sentinel-1 Water Index with a color map. Wetlands and moist areas range from light green to dark blue. Computed as (0.1747 * dB_vv) + (0.0082 * dB_vh * dB_vv) + (0.0023 * dB_vv ^ 2) - (0.0015 * dB_vh ^ 2) + 0.1904.', + label: 'Water Index ', }, { - name: 'VH dB with Despeckle and DRA', + name: 'Water Anomaly Index Colorized', description: - 'VH data in dB scale with a 7x7 Refined Lee despeckling filter and a dynamic stretch applied for visualization only.', - label: 'VH dB', + 'Water Anomaly Index with a color map. Increased water anomalies are indicated by bright yellow, orange and red colors. Computed as Ln (0.01 / (0.01 + VV * 2)).', + label: 'Water Anomaly', }, { - name: 'SWI Colorized', + name: 'VV dB with Despeckle and DRA', description: - 'Sentinel-1 Water Index with a color map. Wetlands and moist areas range from light green to dark blue. Computed as (0.1747 * dB_vv) + (0.0082 * dB_vh * dB_vv) + (0.0023 * dB_vv ^ 2) - (0.0015 * dB_vh ^ 2) + 0.1904.', - label: 'SAR Water Index ', + 'VV data in dB scale with a 7x7 Refined Lee despeckling filter and a dynamic stretch applied for visualization only.', + label: 'VV dB', }, { - name: 'Water Anomaly Index Colorized', + name: 'VH dB with Despeckle and DRA', description: - 'Water Anomaly Index with a color map. Increased water anomalies are indicated by bright yellow, orange and red colors. Computed as Ln (0.01 / (0.01 + VV * 2)).', - label: 'Water Anomaly', + 'VH data in dB scale with a 7x7 Refined Lee despeckling filter and a dynamic stretch applied for visualization only.', + label: 'VH dB', }, // { // name: 'SWI Raw', From f68914130930fb2de228b739e6de331a9c1d17d3 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 29 May 2024 13:21:13 -0700 Subject: [PATCH 046/151] fix(sentinel1explorer): useSyncCalendarDateRange hook handle exception when queryParams is null --- src/sentinel-1-explorer/hooks/useSyncCalendarDateRange.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/hooks/useSyncCalendarDateRange.tsx b/src/sentinel-1-explorer/hooks/useSyncCalendarDateRange.tsx index 9f04b2c6..c06b4aea 100644 --- a/src/sentinel-1-explorer/hooks/useSyncCalendarDateRange.tsx +++ b/src/sentinel-1-explorer/hooks/useSyncCalendarDateRange.tsx @@ -54,5 +54,5 @@ export const useSyncCalendarDateRange = () => { queryParams?.acquisitionDateRange ) ); - }, [queryParams.acquisitionDateRange]); + }, [queryParams?.acquisitionDateRange]); }; From 407a0aa169a73f48bb0aca0880b22baeb2ba6f9a Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 29 May 2024 15:41:12 -0700 Subject: [PATCH 047/151] feat(sentinel1explorer): update Change Compare Tool updates the query parameters of Imagery Scenes for the Change Compare Tool to sync with the default acquisition date range (past 12 months) using the updated date range provided by the user. --- .../ChangeCompareToolContainer.tsx | 3 + .../hooks/useSyncCalendarDateRange.tsx | 7 ++ src/shared/store/ChangeCompareTool/thunks.ts | 78 ++++++++++++++++++- 3 files changed, 84 insertions(+), 4 deletions(-) diff --git a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx index b24de872..5690df5b 100644 --- a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx +++ b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx @@ -46,6 +46,7 @@ import { SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE, SENTINEL1_WATER_INDEX_PIXEL_RANGE, } from '@shared/services/sentinel-1/config'; +import { useSyncCalendarDateRange } from '../../hooks/useSyncCalendarDateRange'; /** * the index that user can select for the Change Compare Tool @@ -121,6 +122,8 @@ export const ChangeCompareToolContainer = () => { selectSelectedOption4ChangeCompareTool ) as ChangeCompareToolOption4Sentinel1; + useSyncCalendarDateRange(); + useEffect(() => { const pixelValuesRange = ChangeCompareToolPixelValueRange4Sentinel1[ diff --git a/src/sentinel-1-explorer/hooks/useSyncCalendarDateRange.tsx b/src/sentinel-1-explorer/hooks/useSyncCalendarDateRange.tsx index c06b4aea..79c32f4e 100644 --- a/src/sentinel-1-explorer/hooks/useSyncCalendarDateRange.tsx +++ b/src/sentinel-1-explorer/hooks/useSyncCalendarDateRange.tsx @@ -1,3 +1,4 @@ +import { syncImageryScenesDateRangeForChangeCompareTool } from '@shared/store/ChangeCompareTool/thunks'; import { selectActiveAnalysisTool, selectAppMode, @@ -54,5 +55,11 @@ export const useSyncCalendarDateRange = () => { queryParams?.acquisitionDateRange ) ); + + dispatch( + syncImageryScenesDateRangeForChangeCompareTool( + queryParams?.acquisitionDateRange + ) + ); }, [queryParams?.acquisitionDateRange]); }; diff --git a/src/shared/store/ChangeCompareTool/thunks.ts b/src/shared/store/ChangeCompareTool/thunks.ts index 30b8f2ae..46e4ab4e 100644 --- a/src/shared/store/ChangeCompareTool/thunks.ts +++ b/src/shared/store/ChangeCompareTool/thunks.ts @@ -13,13 +13,83 @@ * limitations under the License. */ +import { DateRange } from '@typing/shared'; +import { StoreDispatch, StoreGetState } from '../configureStore'; +import { useSelector } from 'react-redux'; +import { + selectQueryParams4MainScene, + selectQueryParams4SecondaryScene, +} from '../ImageryScene/selectors'; +import { getDateRangeForPast12Month } from '@shared/utils/date-time/getTimeRange'; +import { + queryParams4MainSceneChanged, + queryParams4SecondarySceneChanged, +} from '../ImageryScene/reducer'; +import { batch } from 'react-redux'; + // import Point from '@arcgis/core/geometry/Point'; // import { RootState, StoreDispatch, StoreGetState } from '../configureStore'; // let abortController: AbortController = null; -// export const thunkFunction = -// (point: Point) => -// async (dispatch: StoreDispatch, getState: StoreGetState) => { +const DATE_RANGE_OF_PAST_12_MONTH = getDateRangeForPast12Month(); + +/** + * This thunk function updates the query parameters of Imagery Scenes for the Change Compare Tool + * to sync with the default acquisition date range (past 12 months) using the updated date range + * provided by the user. + * + * This is done to prevent the calendar from jumping between the "past 12 months" and a selected year, + * which might cause confusion for users. In other words, we want imagery scenes used by Change Compare Tool that don't have a + * user-selected acquisition date range to inherit the date range that the user selected for other imagery scenes. + * + * @param updatedDateRange - The new date range to apply to imagery scenes with the default date range. + */ +export const syncImageryScenesDateRangeForChangeCompareTool = + (updatedDateRange: DateRange) => + async (dispatch: StoreDispatch, getState: StoreGetState) => { + const storeState = getState(); + + const queryParams4MainScene = selectQueryParams4MainScene(storeState); + const queryParams4SecondaryScene = + selectQueryParams4SecondaryScene(storeState); + + const updatedQueryParams4MainScene = { ...queryParams4MainScene }; + const updatedQueryParams4SecondaryScene = { + ...queryParams4SecondaryScene, + }; + + // If the acquisition date range matches the default "past 12 months" date range, + // update it to the new date range provided by the user + if ( + updatedQueryParams4MainScene.acquisitionDateRange.startDate === + DATE_RANGE_OF_PAST_12_MONTH.startDate && + updatedQueryParams4MainScene.acquisitionDateRange.endDate === + DATE_RANGE_OF_PAST_12_MONTH.endDate + ) { + updatedQueryParams4MainScene.acquisitionDateRange = + updatedDateRange; + } + + if ( + updatedQueryParams4SecondaryScene.acquisitionDateRange.startDate === + DATE_RANGE_OF_PAST_12_MONTH.startDate && + updatedQueryParams4SecondaryScene.acquisitionDateRange.endDate === + DATE_RANGE_OF_PAST_12_MONTH.endDate + ) { + updatedQueryParams4SecondaryScene.acquisitionDateRange = + updatedDateRange; + } + + batch(() => { + dispatch( + queryParams4MainSceneChanged(updatedQueryParams4MainScene) + ); -// }; + dispatch( + queryParams4SecondarySceneChanged( + updatedQueryParams4SecondaryScene + ) + ); + }); + }; From f1353425f1fb2cce9f38153e2de28bb19f536431 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 30 May 2024 05:58:21 -0700 Subject: [PATCH 048/151] refactor(landsatexplorer): use shared components and modules - refactor(landsatexplorer): use getFeatureByObjectId and getExtentByObjectId from @shared/services/helpers - refactor(landsatexplorer): use intersectWithImageryScene from @shared/services/helpers - refactor(landsatexplorer): update /@shared/store/Landsat/thunks to use deduplicateListOfImageryScenes - refactor(landsatexplorer): use ImageryLayerByObjectID instead of 'LandsatLayer' - refactor(landsatexplorer): use @shared/components/SwipeWidget/SwipeWidget4ImageryLayers - refactor(landsatexplorer): use useShouldShowSecondaryControls hook - refactor(landsatexplorer): use Change Compare Tool from @shared/components/ChandCompareTool - refactor(landsatexplorer): Mask Layer should use ImageryLayerWithPixelFilter - refactor(landsatexplorer): Change Compare Layer should use ImageryLayerWithPixelFilter --- .../ChangeCompareToolContainer.tsx | 73 ++- .../components/ChangeLayer/ChangeLayer.tsx | 588 +++++++++--------- .../ChangeLayer/ChangeLayerContainer.tsx | 166 ++++- .../components/ChangeLayer/helpers.ts | 130 ++-- .../components/LandsatLayer/LandsatLayer.tsx | 147 ++--- .../components/Layout/Layout.tsx | 7 +- src/landsat-explorer/components/Map/Map.tsx | 8 +- .../components/MaskLayer/MaskLayer.tsx | 498 +++++++-------- .../MaskLayer/MaskLayerContainer.tsx | 61 +- .../SwipeWidget/SwipeWidgetContainer.tsx | 76 --- .../components/SwipeWidget/index.ts | 16 - .../ZoomToExtent/ZoomToExtentContainer.tsx | 2 +- .../landsat-level-2/getLandsatScenes.ts | 162 +++-- src/shared/store/Landsat/thunks.ts | 74 +-- 14 files changed, 1084 insertions(+), 924 deletions(-) delete mode 100644 src/landsat-explorer/components/SwipeWidget/SwipeWidgetContainer.tsx delete mode 100644 src/landsat-explorer/components/SwipeWidget/index.ts diff --git a/src/landsat-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx b/src/landsat-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx index f7492477..255321bf 100644 --- a/src/landsat-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx +++ b/src/landsat-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx @@ -13,39 +13,43 @@ * limitations under the License. */ -import { AnalysisToolHeader } from '@shared/components/AnalysisToolHeader'; -import { PixelRangeSlider } from '@shared/components/PixelRangeSlider'; -import { - selectedRangeUpdated, - selectedOption4ChangeCompareToolChanged, -} from '@shared/store/ChangeCompareTool/reducer'; -import { - selectChangeCompareLayerIsOn, - selectSelectedOption4ChangeCompareTool, - selectUserSelectedRangeInChangeCompareTool, -} from '@shared/store/ChangeCompareTool/selectors'; +// import { AnalysisToolHeader } from '@shared/components/AnalysisToolHeader'; +// // import { PixelRangeSlider } from '@shared/components/PixelRangeSlider'; +// import { +// // selectedRangeUpdated, +// selectedOption4ChangeCompareToolChanged, +// } from '@shared/store/ChangeCompareTool/reducer'; +// import { +// selectChangeCompareLayerIsOn, +// selectSelectedOption4ChangeCompareTool, +// selectUserSelectedRangeInChangeCompareTool, +// } from '@shared/store/ChangeCompareTool/selectors'; import { selectActiveAnalysisTool } from '@shared/store/ImageryScene/selectors'; import { SpectralIndex } from '@typing/imagery-service'; import classNames from 'classnames'; import React from 'react'; -import { useDispatch } from 'react-redux'; +// import { useDispatch } from 'react-redux'; import { useSelector } from 'react-redux'; -import { getChangeCompareLayerColorrampAsCSSGradient } from '../ChangeLayer/helpers'; +// import { getChangeCompareLayerColorrampAsCSSGradient } from '../ChangeLayer/helpers'; +import { + ChangeCompareToolHeader, + ChangeCompareToolControls, +} from '@shared/components/ChangeCompareTool'; export const ChangeCompareToolContainer = () => { - const dispatch = useDispatch(); + // const dispatch = useDispatch(); const tool = useSelector(selectActiveAnalysisTool); - const selectedRange = useSelector( - selectUserSelectedRangeInChangeCompareTool - ); + // const selectedRange = useSelector( + // selectUserSelectedRangeInChangeCompareTool + // ); - const selectedSpectralIndex = useSelector( - selectSelectedOption4ChangeCompareTool - ); + // const selectedSpectralIndex = useSelector( + // selectSelectedOption4ChangeCompareTool + // ); - const isChangeLayerOn = useSelector(selectChangeCompareLayerIsOn); + // const isChangeLayerOn = useSelector(selectChangeCompareLayerIsOn); if (tool !== 'change') { return null; @@ -53,7 +57,25 @@ export const ChangeCompareToolContainer = () => { return (
- + + + {/* { ) ); }} - /> - - {isChangeLayerOn ? ( + /> */} + {/* {isChangeLayerOn ? (
{ VIEW CHANGE.

- )} + )} */}
); }; diff --git a/src/landsat-explorer/components/ChangeLayer/ChangeLayer.tsx b/src/landsat-explorer/components/ChangeLayer/ChangeLayer.tsx index 0ce89d67..cb6cd5b7 100644 --- a/src/landsat-explorer/components/ChangeLayer/ChangeLayer.tsx +++ b/src/landsat-explorer/components/ChangeLayer/ChangeLayer.tsx @@ -1,297 +1,297 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import React, { FC, useEffect, useRef, useState } from 'react'; -import ImageryLayer from '@arcgis/core/layers/ImageryLayer'; -import { LANDSAT_LEVEL_2_SERVICE_URL } from '@shared/services/landsat-level-2/config'; -import MapView from '@arcgis/core/views/MapView'; -import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; -import PixelBlock from '@arcgis/core/layers/support/PixelBlock'; -import GroupLayer from '@arcgis/core/layers/GroupLayer'; -import { getBandIndexesBySpectralIndex } from '@shared/services/landsat-level-2/helpers'; -import { SpectralIndex } from '@typing/imagery-service'; -import { QueryParams4ImageryScene } from '@shared/store/ImageryScene/reducer'; -import { getLandsatFeatureByObjectId } from '@shared/services/landsat-level-2/getLandsatScenes'; -import { formattedDateString2Unixtimestamp } from '@shared/utils/date-time/formatDateString'; -import { getPixelColor } from './helpers'; - -type Props = { - mapView?: MapView; - groupLayer?: GroupLayer; - /** - * name of selected spectral index - */ - spectralIndex: SpectralIndex; - /** - * query params of the first selected Landsat scene - */ - queryParams4SceneA: QueryParams4ImageryScene; - /** - * query params of the second selected Landsat scene - */ - queryParams4SceneB: QueryParams4ImageryScene; - /** - * visibility of the landsat layer - */ - visible?: boolean; - /** - * user selected mask index range - */ - selectedRange: number[]; -}; - -type PixelData = { - pixelBlock: PixelBlock; -}; - -/** - * This function retrieves a raster function that can be used to visualize changes between two input Landsat scenes. - * The output raster function applies an `Arithmetic` operation to calculate the difference of a selected spectral index - * between two input rasters. - * - * @param spectralIndex - The user-selected spectral index to analyze changes. - * @param queryParams4SceneA - Query parameters for the first selected Landsat scene. - * @param queryParams4SceneB - Query parameters for the second selected Landsat scene. - * @returns A Raster Function that contains the `Arithmetic` function to visualize spectral index changes. - * - * @see https://developers.arcgis.com/documentation/common-data-types/raster-function-objects.htm - */ -export const getRasterFunction4ChangeLayer = async ( - /** - * name of selected spectral index - */ - spectralIndex: SpectralIndex, - /** - * query params of the first selected Landsat scene - */ - queryParams4SceneA: QueryParams4ImageryScene, - /** - * query params of the second selected Landsat scene - */ - queryParams4SceneB: QueryParams4ImageryScene -): Promise => { - if (!spectralIndex) { - return null; - } - - if ( - !queryParams4SceneA?.objectIdOfSelectedScene || - !queryParams4SceneB?.objectIdOfSelectedScene - ) { - return null; - } - - // Sort query parameters by acquisition date in ascending order. - const [ - queryParams4SceneAcquiredInEarlierDate, - queryParams4SceneAcquiredInLaterDate, - ] = [queryParams4SceneA, queryParams4SceneB].sort((a, b) => { - return ( - formattedDateString2Unixtimestamp(a.acquisitionDate) - - formattedDateString2Unixtimestamp(b.acquisitionDate) - ); - }); - - try { - // Get the band index for the selected spectral index. - const bandIndex = getBandIndexesBySpectralIndex(spectralIndex); - - // Retrieve the feature associated with the later acquired Landsat scene. - const feature = await getLandsatFeatureByObjectId( - queryParams4SceneAcquiredInLaterDate?.objectIdOfSelectedScene - ); - - return new RasterFunction({ - // the Clip function clips a raster using a rectangular shape according to the extents defined, - // or clips a raster to the shape of an input polygon feature class. - functionName: 'Clip', - functionArguments: { - // a polygon or envelope - ClippingGeometry: feature.geometry, - // use 1 to keep image inside of the geometry - ClippingType: 1, - Raster: { - // The `Arithmetic` function performs an arithmetic operation between two rasters. - rasterFunction: 'Arithmetic', - rasterFunctionArguments: { - Raster: { - rasterFunction: 'BandArithmetic', - rasterFunctionArguments: { - Raster: `$${queryParams4SceneAcquiredInLaterDate.objectIdOfSelectedScene}`, - Method: 0, - BandIndexes: bandIndex, - }, - outputPixelType: 'F32', - }, - Raster2: { - rasterFunction: 'BandArithmetic', - rasterFunctionArguments: { - Raster: `$${queryParams4SceneAcquiredInEarlierDate.objectIdOfSelectedScene}`, - Method: 0, - BandIndexes: bandIndex, - }, - outputPixelType: 'F32', - }, - // 1=esriRasterPlus, 2=esriRasterMinus, 3=esriRasterMultiply, 4=esriRasterDivide, 5=esriRasterPower, 6=esriRasterMode - Operation: 2, - // default 0; 0=esriExtentFirstOf, 1=esriExtentIntersectionOf, 2=esriExtentUnionOf, 3=esriExtentLastOf - ExtentType: 1, - // 0=esriCellsizeFirstOf, 1=esriCellsizeMinOf, 2=esriCellsizeMaxOf, 3=esriCellsizeMeanOf, 4=esriCellsizeLastOf - CellsizeType: 0, - }, - outputPixelType: 'F32', - }, - }, - }); - } catch (err) { - console.error(err); - - // handle any potential errors and return null in case of failure. - return null; - } -}; - -export const ChangeLayer: FC = ({ - mapView, - groupLayer, - spectralIndex, - queryParams4SceneA, - queryParams4SceneB, - visible, - selectedRange, -}) => { - const layerRef = useRef(); - - const selectedRangeRef = useRef(); - - /** - * initialize landsat layer using mosaic created using the input year - */ - const init = async () => { - const rasterFunction = await getRasterFunction4ChangeLayer( - spectralIndex, - queryParams4SceneA, - queryParams4SceneB - ); - - layerRef.current = new ImageryLayer({ - // URL to the imagery service - url: LANDSAT_LEVEL_2_SERVICE_URL, - mosaicRule: null, - format: 'lerc', - rasterFunction, - visible, - pixelFilter: maskPixels, - effect: 'drop-shadow(2px, 2px, 3px, #000)', - }); - - groupLayer.add(layerRef.current); - }; - - const maskPixels = (pixelData: PixelData) => { - // const color = colorRef.current || [255, 255, 255]; - - const { pixelBlock } = pixelData || {}; - - if (!pixelBlock) { - return; - } - - const { pixels, width, height } = pixelBlock; - - if (!pixels) { - return; - } - - const p1 = pixels[0]; - - const n = pixels[0].length; - - if (!pixelBlock.mask) { - pixelBlock.mask = new Uint8Array(n); - } - - const pr = new Uint8Array(n); - const pg = new Uint8Array(n); - const pb = new Uint8Array(n); - - const numPixels = width * height; - - const [min, max] = selectedRangeRef.current || [0, 0]; - - for (let i = 0; i < numPixels; i++) { - if (p1[i] < min || p1[i] > max || p1[i] === 0) { - pixelBlock.mask[i] = 0; - continue; - } - - const color = getPixelColor(p1[i]); - - pixelBlock.mask[i] = 1; - - pr[i] = color[0]; - pg[i] = color[1]; - pb[i] = color[2]; - } - - pixelBlock.pixels = [pr, pg, pb]; - - pixelBlock.pixelType = 'u8'; - }; - - useEffect(() => { - if (groupLayer && !layerRef.current) { - init(); - } - }, [groupLayer]); - - useEffect(() => { - (async () => { - if (!layerRef.current) { - return; - } - - layerRef.current.rasterFunction = - (await getRasterFunction4ChangeLayer( - spectralIndex, - queryParams4SceneA, - queryParams4SceneB - )) as any; - })(); - }, [spectralIndex, queryParams4SceneA, queryParams4SceneB]); - - useEffect(() => { - if (!layerRef.current) { - return; - } - - layerRef.current.visible = visible; - - if (visible) { - // reorder it to make sure it is the top most layer on the map - groupLayer.reorder(layerRef.current, mapView.map.layers.length - 1); - } - }, [visible]); +// /* Copyright 2024 Esri +// * +// * Licensed under the Apache License Version 2.0 (the "License"); +// * you may not use this file except in compliance with the License. +// * You may obtain a copy of the License at +// * +// * http://www.apache.org/licenses/LICENSE-2.0 +// * +// * Unless required by applicable law or agreed to in writing, software +// * distributed under the License is distributed on an "AS IS" BASIS, +// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// * See the License for the specific language governing permissions and +// * limitations under the License. +// */ + +// import React, { FC, useEffect, useRef, useState } from 'react'; +// import ImageryLayer from '@arcgis/core/layers/ImageryLayer'; +// import { LANDSAT_LEVEL_2_SERVICE_URL } from '@shared/services/landsat-level-2/config'; +// import MapView from '@arcgis/core/views/MapView'; +// import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; +// import PixelBlock from '@arcgis/core/layers/support/PixelBlock'; +// import GroupLayer from '@arcgis/core/layers/GroupLayer'; +// import { getBandIndexesBySpectralIndex } from '@shared/services/landsat-level-2/helpers'; +// import { SpectralIndex } from '@typing/imagery-service'; +// import { QueryParams4ImageryScene } from '@shared/store/ImageryScene/reducer'; +// import { getLandsatFeatureByObjectId } from '@shared/services/landsat-level-2/getLandsatScenes'; +// import { formattedDateString2Unixtimestamp } from '@shared/utils/date-time/formatDateString'; +// import { getPixelColor } from './helpers'; + +// type Props = { +// mapView?: MapView; +// groupLayer?: GroupLayer; +// /** +// * name of selected spectral index +// */ +// spectralIndex: SpectralIndex; +// /** +// * query params of the first selected Landsat scene +// */ +// queryParams4SceneA: QueryParams4ImageryScene; +// /** +// * query params of the second selected Landsat scene +// */ +// queryParams4SceneB: QueryParams4ImageryScene; +// /** +// * visibility of the landsat layer +// */ +// visible?: boolean; +// /** +// * user selected mask index range +// */ +// selectedRange: number[]; +// }; + +// type PixelData = { +// pixelBlock: PixelBlock; +// }; + +// /** +// * This function retrieves a raster function that can be used to visualize changes between two input Landsat scenes. +// * The output raster function applies an `Arithmetic` operation to calculate the difference of a selected spectral index +// * between two input rasters. +// * +// * @param spectralIndex - The user-selected spectral index to analyze changes. +// * @param queryParams4SceneA - Query parameters for the first selected Landsat scene. +// * @param queryParams4SceneB - Query parameters for the second selected Landsat scene. +// * @returns A Raster Function that contains the `Arithmetic` function to visualize spectral index changes. +// * +// * @see https://developers.arcgis.com/documentation/common-data-types/raster-function-objects.htm +// */ +// export const getRasterFunction4ChangeLayer = async ( +// /** +// * name of selected spectral index +// */ +// spectralIndex: SpectralIndex, +// /** +// * query params of the first selected Landsat scene +// */ +// queryParams4SceneA: QueryParams4ImageryScene, +// /** +// * query params of the second selected Landsat scene +// */ +// queryParams4SceneB: QueryParams4ImageryScene +// ): Promise => { +// if (!spectralIndex) { +// return null; +// } + +// if ( +// !queryParams4SceneA?.objectIdOfSelectedScene || +// !queryParams4SceneB?.objectIdOfSelectedScene +// ) { +// return null; +// } + +// // Sort query parameters by acquisition date in ascending order. +// const [ +// queryParams4SceneAcquiredInEarlierDate, +// queryParams4SceneAcquiredInLaterDate, +// ] = [queryParams4SceneA, queryParams4SceneB].sort((a, b) => { +// return ( +// formattedDateString2Unixtimestamp(a.acquisitionDate) - +// formattedDateString2Unixtimestamp(b.acquisitionDate) +// ); +// }); + +// try { +// // Get the band index for the selected spectral index. +// const bandIndex = getBandIndexesBySpectralIndex(spectralIndex); + +// // Retrieve the feature associated with the later acquired Landsat scene. +// const feature = await getLandsatFeatureByObjectId( +// queryParams4SceneAcquiredInLaterDate?.objectIdOfSelectedScene +// ); + +// return new RasterFunction({ +// // the Clip function clips a raster using a rectangular shape according to the extents defined, +// // or clips a raster to the shape of an input polygon feature class. +// functionName: 'Clip', +// functionArguments: { +// // a polygon or envelope +// ClippingGeometry: feature.geometry, +// // use 1 to keep image inside of the geometry +// ClippingType: 1, +// Raster: { +// // The `Arithmetic` function performs an arithmetic operation between two rasters. +// rasterFunction: 'Arithmetic', +// rasterFunctionArguments: { +// Raster: { +// rasterFunction: 'BandArithmetic', +// rasterFunctionArguments: { +// Raster: `$${queryParams4SceneAcquiredInLaterDate.objectIdOfSelectedScene}`, +// Method: 0, +// BandIndexes: bandIndex, +// }, +// outputPixelType: 'F32', +// }, +// Raster2: { +// rasterFunction: 'BandArithmetic', +// rasterFunctionArguments: { +// Raster: `$${queryParams4SceneAcquiredInEarlierDate.objectIdOfSelectedScene}`, +// Method: 0, +// BandIndexes: bandIndex, +// }, +// outputPixelType: 'F32', +// }, +// // 1=esriRasterPlus, 2=esriRasterMinus, 3=esriRasterMultiply, 4=esriRasterDivide, 5=esriRasterPower, 6=esriRasterMode +// Operation: 2, +// // default 0; 0=esriExtentFirstOf, 1=esriExtentIntersectionOf, 2=esriExtentUnionOf, 3=esriExtentLastOf +// ExtentType: 1, +// // 0=esriCellsizeFirstOf, 1=esriCellsizeMinOf, 2=esriCellsizeMaxOf, 3=esriCellsizeMeanOf, 4=esriCellsizeLastOf +// CellsizeType: 0, +// }, +// outputPixelType: 'F32', +// }, +// }, +// }); +// } catch (err) { +// console.error(err); + +// // handle any potential errors and return null in case of failure. +// return null; +// } +// }; + +// export const ChangeLayer: FC = ({ +// mapView, +// groupLayer, +// spectralIndex, +// queryParams4SceneA, +// queryParams4SceneB, +// visible, +// selectedRange, +// }) => { +// const layerRef = useRef(); + +// const selectedRangeRef = useRef(); + +// /** +// * initialize landsat layer using mosaic created using the input year +// */ +// const init = async () => { +// const rasterFunction = await getRasterFunction4ChangeLayer( +// spectralIndex, +// queryParams4SceneA, +// queryParams4SceneB +// ); + +// layerRef.current = new ImageryLayer({ +// // URL to the imagery service +// url: LANDSAT_LEVEL_2_SERVICE_URL, +// mosaicRule: null, +// format: 'lerc', +// rasterFunction, +// visible, +// pixelFilter: maskPixels, +// effect: 'drop-shadow(2px, 2px, 3px, #000)', +// }); + +// groupLayer.add(layerRef.current); +// }; + +// const maskPixels = (pixelData: PixelData) => { +// // const color = colorRef.current || [255, 255, 255]; + +// const { pixelBlock } = pixelData || {}; + +// if (!pixelBlock) { +// return; +// } + +// const { pixels, width, height } = pixelBlock; + +// if (!pixels) { +// return; +// } + +// const p1 = pixels[0]; + +// const n = pixels[0].length; + +// if (!pixelBlock.mask) { +// pixelBlock.mask = new Uint8Array(n); +// } + +// const pr = new Uint8Array(n); +// const pg = new Uint8Array(n); +// const pb = new Uint8Array(n); + +// const numPixels = width * height; + +// const [min, max] = selectedRangeRef.current || [0, 0]; + +// for (let i = 0; i < numPixels; i++) { +// if (p1[i] < min || p1[i] > max || p1[i] === 0) { +// pixelBlock.mask[i] = 0; +// continue; +// } + +// const color = getPixelColor(p1[i]); + +// pixelBlock.mask[i] = 1; + +// pr[i] = color[0]; +// pg[i] = color[1]; +// pb[i] = color[2]; +// } + +// pixelBlock.pixels = [pr, pg, pb]; + +// pixelBlock.pixelType = 'u8'; +// }; + +// useEffect(() => { +// if (groupLayer && !layerRef.current) { +// init(); +// } +// }, [groupLayer]); + +// useEffect(() => { +// (async () => { +// if (!layerRef.current) { +// return; +// } + +// layerRef.current.rasterFunction = +// (await getRasterFunction4ChangeLayer( +// spectralIndex, +// queryParams4SceneA, +// queryParams4SceneB +// )) as any; +// })(); +// }, [spectralIndex, queryParams4SceneA, queryParams4SceneB]); + +// useEffect(() => { +// if (!layerRef.current) { +// return; +// } + +// layerRef.current.visible = visible; + +// if (visible) { +// // reorder it to make sure it is the top most layer on the map +// groupLayer.reorder(layerRef.current, mapView.map.layers.length - 1); +// } +// }, [visible]); - useEffect(() => { - selectedRangeRef.current = selectedRange; +// useEffect(() => { +// selectedRangeRef.current = selectedRange; - if (layerRef.current) { - layerRef.current.redraw(); - } - }, [selectedRange]); +// if (layerRef.current) { +// layerRef.current.redraw(); +// } +// }, [selectedRange]); - return null; -}; +// return null; +// }; diff --git a/src/landsat-explorer/components/ChangeLayer/ChangeLayerContainer.tsx b/src/landsat-explorer/components/ChangeLayer/ChangeLayerContainer.tsx index cc578708..b0ffc5b7 100644 --- a/src/landsat-explorer/components/ChangeLayer/ChangeLayerContainer.tsx +++ b/src/landsat-explorer/components/ChangeLayer/ChangeLayerContainer.tsx @@ -14,7 +14,7 @@ */ import MapView from '@arcgis/core/views/MapView'; -import React, { FC, useMemo } from 'react'; +import React, { FC, useEffect, useMemo, useState } from 'react'; import { useSelector } from 'react-redux'; import { selectActiveAnalysisTool, @@ -23,19 +23,135 @@ import { selectQueryParams4SecondaryScene, } from '@shared/store/ImageryScene/selectors'; import GroupLayer from '@arcgis/core/layers/GroupLayer'; -import { ChangeLayer } from './ChangeLayer'; +// import { ChangeLayer } from './ChangeLayer'; import { selectChangeCompareLayerIsOn, + selectFullPixelValuesRangeInChangeCompareTool, selectSelectedOption4ChangeCompareTool, selectUserSelectedRangeInChangeCompareTool, } from '@shared/store/ChangeCompareTool/selectors'; +import { getBandIndexesBySpectralIndex } from '@shared/services/landsat-level-2/helpers'; import { SpectralIndex } from '@typing/imagery-service'; +import { QueryParams4ImageryScene } from '@shared/store/ImageryScene/reducer'; +import { getLandsatFeatureByObjectId } from '@shared/services/landsat-level-2/getLandsatScenes'; +import { formattedDateString2Unixtimestamp } from '@shared/utils/date-time/formatDateString'; +import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; +import { LANDSAT_LEVEL_2_SERVICE_URL } from '@shared/services/landsat-level-2/config'; +import { getPixelColor4ChangeCompareLayer } from '@shared/components/ChangeCompareTool/helpers'; +import { ImageryLayerWithPixelFilter } from '@shared/components/ImageryLayerWithPixelFilter'; type Props = { mapView?: MapView; groupLayer?: GroupLayer; }; +/** + * This function retrieves a raster function that can be used to visualize changes between two input Landsat scenes. + * The output raster function applies an `Arithmetic` operation to calculate the difference of a selected spectral index + * between two input rasters. + * + * @param spectralIndex - The user-selected spectral index to analyze changes. + * @param queryParams4SceneA - Query parameters for the first selected Landsat scene. + * @param queryParams4SceneB - Query parameters for the second selected Landsat scene. + * @returns A Raster Function that contains the `Arithmetic` function to visualize spectral index changes. + * + * @see https://developers.arcgis.com/documentation/common-data-types/raster-function-objects.htm + */ +export const getRasterFunction4ChangeLayer = async ( + /** + * name of selected spectral index + */ + spectralIndex: SpectralIndex, + /** + * query params of the first selected Landsat scene + */ + queryParams4SceneA: QueryParams4ImageryScene, + /** + * query params of the second selected Landsat scene + */ + queryParams4SceneB: QueryParams4ImageryScene +): Promise => { + if (!spectralIndex) { + return null; + } + + if ( + !queryParams4SceneA?.objectIdOfSelectedScene || + !queryParams4SceneB?.objectIdOfSelectedScene + ) { + return null; + } + + // Sort query parameters by acquisition date in ascending order. + const [ + queryParams4SceneAcquiredInEarlierDate, + queryParams4SceneAcquiredInLaterDate, + ] = [queryParams4SceneA, queryParams4SceneB].sort((a, b) => { + return ( + formattedDateString2Unixtimestamp(a.acquisitionDate) - + formattedDateString2Unixtimestamp(b.acquisitionDate) + ); + }); + + try { + // Get the band index for the selected spectral index. + const bandIndex = getBandIndexesBySpectralIndex(spectralIndex); + + // Retrieve the feature associated with the later acquired Landsat scene. + const feature = await getLandsatFeatureByObjectId( + queryParams4SceneAcquiredInLaterDate?.objectIdOfSelectedScene + ); + + return new RasterFunction({ + // the Clip function clips a raster using a rectangular shape according to the extents defined, + // or clips a raster to the shape of an input polygon feature class. + functionName: 'Clip', + functionArguments: { + // a polygon or envelope + ClippingGeometry: feature.geometry, + // use 1 to keep image inside of the geometry + ClippingType: 1, + Raster: { + // The `Arithmetic` function performs an arithmetic operation between two rasters. + rasterFunction: 'Arithmetic', + rasterFunctionArguments: { + Raster: { + rasterFunction: 'BandArithmetic', + rasterFunctionArguments: { + Raster: `$${queryParams4SceneAcquiredInLaterDate.objectIdOfSelectedScene}`, + Method: 0, + BandIndexes: bandIndex, + }, + outputPixelType: 'F32', + }, + Raster2: { + rasterFunction: 'BandArithmetic', + rasterFunctionArguments: { + Raster: `$${queryParams4SceneAcquiredInEarlierDate.objectIdOfSelectedScene}`, + Method: 0, + BandIndexes: bandIndex, + }, + outputPixelType: 'F32', + }, + // 1=esriRasterPlus, 2=esriRasterMinus, 3=esriRasterMultiply, 4=esriRasterDivide, 5=esriRasterPower, 6=esriRasterMode + Operation: 2, + // default 0; 0=esriExtentFirstOf, 1=esriExtentIntersectionOf, 2=esriExtentUnionOf, 3=esriExtentLastOf + ExtentType: 1, + // 0=esriCellsizeFirstOf, 1=esriCellsizeMinOf, 2=esriCellsizeMaxOf, 3=esriCellsizeMeanOf, 4=esriCellsizeLastOf + CellsizeType: 0, + }, + outputPixelType: 'F32', + }, + }, + }); + } catch (err) { + console.error(err); + + // handle any potential errors and return null in case of failure. + return null; + } +}; + export const ChangeLayerContainer: FC = ({ mapView, groupLayer }) => { const mode = useSelector(selectAppMode); @@ -55,6 +171,12 @@ export const ChangeLayerContainer: FC = ({ mapView, groupLayer }) => { selectUserSelectedRangeInChangeCompareTool ); + const fullPixelValueRange = useSelector( + selectFullPixelValuesRangeInChangeCompareTool + ); + + const [rasterFunction, setRasterFunction] = useState(); + const isVisible = useMemo(() => { if (mode !== 'analysis') { return false; @@ -71,6 +193,10 @@ export const ChangeLayerContainer: FC = ({ mapView, groupLayer }) => { return false; } + if (!rasterFunction) { + return false; + } + return changeCompareLayerIsOn; }, [ mode, @@ -78,17 +204,43 @@ export const ChangeLayerContainer: FC = ({ mapView, groupLayer }) => { changeCompareLayerIsOn, queryParams4SceneA, queryParams4SceneB, + rasterFunction, ]); + useEffect(() => { + (async () => { + const rasterFunction = await getRasterFunction4ChangeLayer( + spectralIndex, + queryParams4SceneA, + queryParams4SceneB + ); + + setRasterFunction(rasterFunction); + })(); + }, [spectralIndex, queryParams4SceneA, queryParams4SceneB]); + + // return ( + // + // ); + return ( - ); }; diff --git a/src/landsat-explorer/components/ChangeLayer/helpers.ts b/src/landsat-explorer/components/ChangeLayer/helpers.ts index 162e9d2a..c5617ebf 100644 --- a/src/landsat-explorer/components/ChangeLayer/helpers.ts +++ b/src/landsat-explorer/components/ChangeLayer/helpers.ts @@ -1,76 +1,76 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// /* Copyright 2024 Esri +// * +// * Licensed under the Apache License Version 2.0 (the "License"); +// * you may not use this file except in compliance with the License. +// * You may obtain a copy of the License at +// * +// * http://www.apache.org/licenses/LICENSE-2.0 +// * +// * Unless required by applicable law or agreed to in writing, software +// * distributed under the License is distributed on an "AS IS" BASIS, +// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// * See the License for the specific language governing permissions and +// * limitations under the License. +// */ -import { hexToRgb } from '@shared/utils/snippets/hex2rgb'; +// import { hexToRgb } from '@shared/utils/snippets/hex2rgb'; -// const ColorRamps = ['#511C02', '#A93A03', '#FFE599', '#0084A8', '#004053']; -const ColorRamps = [ - '#511C02', - '#662302', - '#7E2B03', - '#953303', - '#AD430B', - '#C47033', - '#DB9D5A', - '#F3CC83', - '#DED89B', - '#9BBF9F', - '#57A5A3', - '#118AA7', - '#007797', - '#006480', - '#005168', - '#004053', -]; +// // const ColorRamps = ['#511C02', '#A93A03', '#FFE599', '#0084A8', '#004053']; +// const ColorRamps = [ +// '#511C02', +// '#662302', +// '#7E2B03', +// '#953303', +// '#AD430B', +// '#C47033', +// '#DB9D5A', +// '#F3CC83', +// '#DED89B', +// '#9BBF9F', +// '#57A5A3', +// '#118AA7', +// '#007797', +// '#006480', +// '#005168', +// '#004053', +// ]; -const ColorRampsInRGB = ColorRamps.map((hex) => { - return hexToRgb(hex); -}); +// const ColorRampsInRGB = ColorRamps.map((hex) => { +// return hexToRgb(hex); +// }); -/** - * return the color ramp as css gradient - * @returns css gradient string (e.g. `linear-gradient(90deg, rgba(0,132,255,1) 0%, rgba(118,177,196,1) 25%, rgba(173,65,9,1) 100%)`) - */ -export const getChangeCompareLayerColorrampAsCSSGradient = () => { - const stops = ColorRamps.map((color, index) => { - const pos = (index / (ColorRamps.length - 1)) * 100; - return `${color} ${pos}%`; - }); +// /** +// * return the color ramp as css gradient +// * @returns css gradient string (e.g. `linear-gradient(90deg, rgba(0,132,255,1) 0%, rgba(118,177,196,1) 25%, rgba(173,65,9,1) 100%)`) +// */ +// export const getChangeCompareLayerColorrampAsCSSGradient = () => { +// const stops = ColorRamps.map((color, index) => { +// const pos = (index / (ColorRamps.length - 1)) * 100; +// return `${color} ${pos}%`; +// }); - const output = `linear-gradient(90deg, ${stops.join(', ')})`; +// const output = `linear-gradient(90deg, ${stops.join(', ')})`; - return output; -}; +// return output; +// }; -/** - * Get the RGB color corresponding to a given value within a predefined pixel value range. - * - * @param value - The numeric value to map to a color within the range. - * @returns An array representing the RGB color value as three integers in the range [0, 255]. - */ -export const getPixelColor = (value: number): number[] => { - // the minimum and maximum values for the pixel value range. - const MIN = -2; - const MAX = 2; +// /** +// * Get the RGB color corresponding to a given value within a predefined pixel value range. +// * +// * @param value - The numeric value to map to a color within the range. +// * @returns An array representing the RGB color value as three integers in the range [0, 255]. +// */ +// export const getPixelColor = (value: number): number[] => { +// // the minimum and maximum values for the pixel value range. +// const MIN = -2; +// const MAX = 2; - const RANGE = MAX - MIN; +// const RANGE = MAX - MIN; - // Normalize the input value to be within the [0, RANGE] range. - value = value - MIN; +// // Normalize the input value to be within the [0, RANGE] range. +// value = value - MIN; - const index = Math.floor((value / RANGE) * (ColorRampsInRGB.length - 1)); +// const index = Math.floor((value / RANGE) * (ColorRampsInRGB.length - 1)); - return ColorRampsInRGB[index]; -}; +// return ColorRampsInRGB[index]; +// }; diff --git a/src/landsat-explorer/components/LandsatLayer/LandsatLayer.tsx b/src/landsat-explorer/components/LandsatLayer/LandsatLayer.tsx index 098b652a..d750e949 100644 --- a/src/landsat-explorer/components/LandsatLayer/LandsatLayer.tsx +++ b/src/landsat-explorer/components/LandsatLayer/LandsatLayer.tsx @@ -15,16 +15,10 @@ import MapView from '@arcgis/core/views/MapView'; import React, { FC, useEffect } from 'react'; -import useLandsatLayer from './useLandsatLayer'; -import { useSelector } from 'react-redux'; -import { - selectQueryParams4SceneInSelectedMode, - selectAppMode, - selectActiveAnalysisTool, -} from '@shared/store/ImageryScene/selectors'; -import { selectAnimationStatus } from '@shared/store/UI/selectors'; import GroupLayer from '@arcgis/core/layers/GroupLayer'; -import { selectChangeCompareLayerIsOn } from '@shared/store/ChangeCompareTool/selectors'; +// import { selectChangeCompareLayerIsOn } from '@shared/store/ChangeCompareTool/selectors'; +import ImageryLayerByObjectID from '@shared/components/ImageryLayer/ImageryLayerByObjectID'; +import { LANDSAT_LEVEL_2_SERVICE_URL } from '@shared/services/landsat-level-2/config'; type Props = { mapView?: MapView; @@ -32,70 +26,77 @@ type Props = { }; const LandsatLayer: FC = ({ mapView, groupLayer }: Props) => { - const mode = useSelector(selectAppMode); - - const { rasterFunctionName, objectIdOfSelectedScene } = - useSelector(selectQueryParams4SceneInSelectedMode) || {}; - - const animationStatus = useSelector(selectAnimationStatus); - - const analysisTool = useSelector(selectActiveAnalysisTool); - - const changeCompareLayerIsOn = useSelector(selectChangeCompareLayerIsOn); - - const getVisibility = () => { - if (mode === 'dynamic') { - return true; - } - - if (mode === 'find a scene' || mode === 'spectral sampling') { - return objectIdOfSelectedScene !== null; - } - - if (mode === 'analysis') { - // no need to show landsat layer when user is viewing change layer in the change compare tool - if (analysisTool === 'change' && changeCompareLayerIsOn) { - return false; - } - - return objectIdOfSelectedScene !== null; - } - - // when in animate mode, only need to show landsat layer if animation is not playing - if ( - mode === 'animate' && - objectIdOfSelectedScene && - animationStatus === null - ) { - return true; - } - - return false; - }; - - const getObjectId = () => { - // should ignore the object id of selected scene if in dynamic mode, - if (mode === 'dynamic') { - return null; - } - - return objectIdOfSelectedScene; - }; - - const layer = useLandsatLayer({ - visible: getVisibility(), - rasterFunction: rasterFunctionName, - objectId: getObjectId(), - }); - - useEffect(() => { - if (groupLayer && layer) { - groupLayer.add(layer); - groupLayer.reorder(layer, 0); - } - }, [groupLayer, layer]); - - return null; + // const mode = useSelector(selectAppMode); + + // const { rasterFunctionName, objectIdOfSelectedScene } = + // useSelector(selectQueryParams4SceneInSelectedMode) || {}; + + // const animationStatus = useSelector(selectAnimationStatus); + + // const analysisTool = useSelector(selectActiveAnalysisTool); + + // const changeCompareLayerIsOn = useSelector(selectChangeCompareLayerIsOn); + + // const getVisibility = () => { + // if (mode === 'dynamic') { + // return true; + // } + + // if (mode === 'find a scene' || mode === 'spectral sampling') { + // return objectIdOfSelectedScene !== null; + // } + + // if (mode === 'analysis') { + // // no need to show landsat layer when user is viewing change layer in the change compare tool + // if (analysisTool === 'change' && changeCompareLayerIsOn) { + // return false; + // } + + // return objectIdOfSelectedScene !== null; + // } + + // // when in animate mode, only need to show landsat layer if animation is not playing + // if ( + // mode === 'animate' && + // objectIdOfSelectedScene && + // animationStatus === null + // ) { + // return true; + // } + + // return false; + // }; + + // const getObjectId = () => { + // // should ignore the object id of selected scene if in dynamic mode, + // if (mode === 'dynamic') { + // return null; + // } + + // return objectIdOfSelectedScene; + // }; + + // const layer = useLandsatLayer({ + // visible: getVisibility(), + // rasterFunction: rasterFunctionName, + // objectId: getObjectId(), + // }); + + // useEffect(() => { + // if (groupLayer && layer) { + // groupLayer.add(layer); + // groupLayer.reorder(layer, 0); + // } + // }, [groupLayer, layer]); + + // return null; + + return ( + + ); }; export default LandsatLayer; diff --git a/src/landsat-explorer/components/Layout/Layout.tsx b/src/landsat-explorer/components/Layout/Layout.tsx index 85286096..e7b2fd92 100644 --- a/src/landsat-explorer/components/Layout/Layout.tsx +++ b/src/landsat-explorer/components/Layout/Layout.tsx @@ -44,6 +44,7 @@ import { LandsatRasterFunctionSelector } from '../RasterFunctionSelector'; import { LandsatInterestingPlaces } from '../InterestingPlaces'; import { LandsatMissionFilter } from '../LandsatMissionFilter'; import { AnalyzeToolSelector4Landsat } from '../AnalyzeToolSelector/AnalyzeToolSelector'; +import { useShouldShowSecondaryControls } from '@shared/hooks/useShouldShowSecondaryControls'; const Layout = () => { const mode = useSelector(selectAppMode); @@ -52,8 +53,10 @@ const Layout = () => { const dynamicModeOn = mode === 'dynamic'; - const shouldShowSecondaryControls = - mode === 'swipe' || mode === 'animate' || mode === 'analysis'; + // const shouldShowSecondaryControls = + // mode === 'swipe' || mode === 'animate' || mode === 'analysis'; + + const shouldShowSecondaryControls = useShouldShowSecondaryControls(); /** * This custom hook gets invoked whenever the acquisition year, map center, or selected landsat missions diff --git a/src/landsat-explorer/components/Map/Map.tsx b/src/landsat-explorer/components/Map/Map.tsx index 568c2b71..7e7272d1 100644 --- a/src/landsat-explorer/components/Map/Map.tsx +++ b/src/landsat-explorer/components/Map/Map.tsx @@ -16,7 +16,7 @@ import React, { FC } from 'react'; import MapViewContainer from '@shared/components/MapView/MapViewContainer'; import { LandsatLayer } from '../LandsatLayer'; -import { SwipeWidget } from '../SwipeWidget'; +// import { SwipeWidget } from '../SwipeWidget'; import { AnimationLayer } from '@shared/components/AnimationLayer'; import { MaskLayer } from '../MaskLayer'; import { GroupLayer } from '@shared/components/GroupLayer'; @@ -36,6 +36,7 @@ import { LANDSAT_LEVEL_2_SERVICE_URL } from '@shared/services/landsat-level-2/co import { useDispatch } from 'react-redux'; import { updateQueryLocation4TrendTool } from '@shared/store/TrendTool/thunks'; import { updateQueryLocation4SpectralProfileTool } from '@shared/store/SpectralProfileTool/thunks'; +import { SwipeWidget4ImageryLayers } from '@shared/components/SwipeWidget/SwipeWidget4ImageryLayers'; const Map = () => { const dispatch = useDispatch(); @@ -59,7 +60,10 @@ const Map = () => { - + {/* */} + => { - if (!spectralIndex) { - return null; - } - - return new RasterFunction({ - functionName: 'BandArithmetic', - outputPixelType: 'f32', - functionArguments: { - Method: 0, - BandIndexes: getBandIndexesBySpectralIndex(spectralIndex), - }, - }); -}; - -export const MaskLayer: FC = ({ - mapView, - groupLayer, - spectralIndex, - objectId, - visible, - selectedRange, - color, - opacity, - shouldClip, -}) => { - const layerRef = useRef(); - - const selectedRangeRef = useRef(); - - const colorRef = useRef(); - - /** - * initialize landsat layer using mosaic created using the input year - */ - const init = async () => { - const mosaicRule = objectId ? await getMosaicRule(objectId) : null; - - const rasterFunction = await getRasterFunctionBySpectralIndex( - spectralIndex - ); - - layerRef.current = new ImageryLayer({ - // URL to the imagery service - url: LANDSAT_LEVEL_2_SERVICE_URL, - mosaicRule, - format: 'lerc', - rasterFunction, - visible, - pixelFilter: maskPixels, - blendMode: shouldClip ? 'destination-atop' : null, - effect: 'drop-shadow(2px, 2px, 3px, #000)', - }); - - groupLayer.add(layerRef.current); - }; - - const maskPixels = (pixelData: PixelData) => { - const color = colorRef.current || [255, 255, 255]; - - const { pixelBlock } = pixelData || {}; - - if (!pixelBlock) { - return; - } - - const { pixels, width, height } = pixelBlock; - - if (!pixels) { - return; - } - - const p1 = pixels[0]; - - const n = pixels[0].length; - - if (!pixelBlock.mask) { - pixelBlock.mask = new Uint8Array(n); - } - - const pr = new Uint8Array(n); - const pg = new Uint8Array(n); - const pb = new Uint8Array(n); - - const numPixels = width * height; - - const [min, max] = selectedRangeRef.current || [0, 0]; - - for (let i = 0; i < numPixels; i++) { - if (p1[i] < min || p1[i] > max || p1[i] === 0) { - // should exclude pixels that are outside of the user selected range and - // pixels with value of 0 since those are pixels - // outside of the mask layer's actual boundary - pixelBlock.mask[i] = 0; - continue; - } - - pixelBlock.mask[i] = 1; - - pr[i] = color[0]; - pg[i] = color[1]; - pb[i] = color[2]; - } - - pixelBlock.pixels = [pr, pg, pb]; - - pixelBlock.pixelType = 'u8'; - }; - - useEffect(() => { - if (groupLayer && !layerRef.current) { - init(); - } - }, [groupLayer]); - - useEffect(() => { - (async () => { - if (!layerRef.current) { - return; - } - - layerRef.current.rasterFunction = - (await getRasterFunctionBySpectralIndex(spectralIndex)) as any; - })(); - }, [spectralIndex]); - - useEffect(() => { - (async () => { - if (!layerRef.current) { - return; - } - - layerRef.current.mosaicRule = await getMosaicRule(objectId); - })(); - }, [objectId]); - - useEffect(() => { - if (!layerRef.current) { - return; - } - - layerRef.current.visible = visible; - - if (visible) { - // reorder it to make sure it is the top most layer on the map - groupLayer.reorder(layerRef.current, mapView.map.layers.length - 1); - } - }, [visible]); - - useEffect(() => { - selectedRangeRef.current = selectedRange; - colorRef.current = color; - - if (layerRef.current) { - layerRef.current.redraw(); - } - }, [selectedRange, color]); - - useEffect(() => { - if (layerRef.current) { - layerRef.current.opacity = opacity; - } - }, [opacity]); - - useEffect(() => { - if (layerRef.current) { - // layerRef.current.blendMode = shouldClip - // ? 'destination-atop' - // : null; - - if (shouldClip) { - layerRef.current.blendMode = 'destination-atop'; - } else { - // in order to reset the blend mode to null, - // we need to remove the exiting mask layer and create a new instance of the mask layer - groupLayer.remove(layerRef.current); - init(); - } - } - }, [shouldClip]); - - return null; -}; +// /* Copyright 2024 Esri +// * +// * Licensed under the Apache License Version 2.0 (the "License"); +// * you may not use this file except in compliance with the License. +// * You may obtain a copy of the License at +// * +// * http://www.apache.org/licenses/LICENSE-2.0 +// * +// * Unless required by applicable law or agreed to in writing, software +// * distributed under the License is distributed on an "AS IS" BASIS, +// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// * See the License for the specific language governing permissions and +// * limitations under the License. +// */ + +// import React, { FC, useEffect, useRef, useState } from 'react'; +// import ImageryLayer from '@arcgis/core/layers/ImageryLayer'; +// import MosaicRule from '@arcgis/core/layers/support/MosaicRule'; +// import { LANDSAT_LEVEL_2_SERVICE_URL } from '@shared/services/landsat-level-2/config'; +// import MapView from '@arcgis/core/views/MapView'; +// import { getMosaicRule } from '../LandsatLayer/useLandsatLayer'; +// import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; +// import PixelBlock from '@arcgis/core/layers/support/PixelBlock'; +// import GroupLayer from '@arcgis/core/layers/GroupLayer'; +// import { getBandIndexesBySpectralIndex } from '@shared/services/landsat-level-2/helpers'; +// import { SpectralIndex } from '@typing/imagery-service'; + +// type Props = { +// mapView?: MapView; +// groupLayer?: GroupLayer; +// /** +// * name of selected spectral index that will be used to create raster function render the mask layer +// */ +// spectralIndex: SpectralIndex; +// /** +// * object id of the selected Landsat scene +// */ +// objectId?: number; +// /** +// * visibility of the landsat layer +// */ +// visible?: boolean; +// /** +// * user selected mask index range +// */ +// selectedRange: number[]; +// /** +// * color in format of [red, green, blue] +// */ +// color: number[]; +// /** +// * opacity of the mask layer +// */ +// opacity: number; +// /** +// * if true, use the mask layer to clip the landsat scene via blend mode +// */ +// shouldClip: boolean; +// }; + +// type PixelData = { +// pixelBlock: PixelBlock; +// }; + +// export const getRasterFunctionBySpectralIndex = async ( +// spectralIndex: SpectralIndex +// ): Promise => { +// if (!spectralIndex) { +// return null; +// } + +// return new RasterFunction({ +// functionName: 'BandArithmetic', +// outputPixelType: 'f32', +// functionArguments: { +// Method: 0, +// BandIndexes: getBandIndexesBySpectralIndex(spectralIndex), +// }, +// }); +// }; + +// export const MaskLayer: FC = ({ +// mapView, +// groupLayer, +// spectralIndex, +// objectId, +// visible, +// selectedRange, +// color, +// opacity, +// shouldClip, +// }) => { +// const layerRef = useRef(); + +// const selectedRangeRef = useRef(); + +// const colorRef = useRef(); + +// /** +// * initialize landsat layer using mosaic created using the input year +// */ +// const init = async () => { +// const mosaicRule = objectId ? await getMosaicRule(objectId) : null; + +// const rasterFunction = await getRasterFunctionBySpectralIndex( +// spectralIndex +// ); + +// layerRef.current = new ImageryLayer({ +// // URL to the imagery service +// url: LANDSAT_LEVEL_2_SERVICE_URL, +// mosaicRule, +// format: 'lerc', +// rasterFunction, +// visible, +// pixelFilter: maskPixels, +// blendMode: shouldClip ? 'destination-atop' : null, +// effect: 'drop-shadow(2px, 2px, 3px, #000)', +// }); + +// groupLayer.add(layerRef.current); +// }; + +// const maskPixels = (pixelData: PixelData) => { +// const color = colorRef.current || [255, 255, 255]; + +// const { pixelBlock } = pixelData || {}; + +// if (!pixelBlock) { +// return; +// } + +// const { pixels, width, height } = pixelBlock; + +// if (!pixels) { +// return; +// } + +// const p1 = pixels[0]; + +// const n = pixels[0].length; + +// if (!pixelBlock.mask) { +// pixelBlock.mask = new Uint8Array(n); +// } + +// const pr = new Uint8Array(n); +// const pg = new Uint8Array(n); +// const pb = new Uint8Array(n); + +// const numPixels = width * height; + +// const [min, max] = selectedRangeRef.current || [0, 0]; + +// for (let i = 0; i < numPixels; i++) { +// if (p1[i] < min || p1[i] > max || p1[i] === 0) { +// // should exclude pixels that are outside of the user selected range and +// // pixels with value of 0 since those are pixels +// // outside of the mask layer's actual boundary +// pixelBlock.mask[i] = 0; +// continue; +// } + +// pixelBlock.mask[i] = 1; + +// pr[i] = color[0]; +// pg[i] = color[1]; +// pb[i] = color[2]; +// } + +// pixelBlock.pixels = [pr, pg, pb]; + +// pixelBlock.pixelType = 'u8'; +// }; + +// useEffect(() => { +// if (groupLayer && !layerRef.current) { +// init(); +// } +// }, [groupLayer]); + +// useEffect(() => { +// (async () => { +// if (!layerRef.current) { +// return; +// } + +// layerRef.current.rasterFunction = +// (await getRasterFunctionBySpectralIndex(spectralIndex)) as any; +// })(); +// }, [spectralIndex]); + +// useEffect(() => { +// (async () => { +// if (!layerRef.current) { +// return; +// } + +// layerRef.current.mosaicRule = await getMosaicRule(objectId); +// })(); +// }, [objectId]); + +// useEffect(() => { +// if (!layerRef.current) { +// return; +// } + +// layerRef.current.visible = visible; + +// if (visible) { +// // reorder it to make sure it is the top most layer on the map +// groupLayer.reorder(layerRef.current, mapView.map.layers.length - 1); +// } +// }, [visible]); + +// useEffect(() => { +// selectedRangeRef.current = selectedRange; +// colorRef.current = color; + +// if (layerRef.current) { +// layerRef.current.redraw(); +// } +// }, [selectedRange, color]); + +// useEffect(() => { +// if (layerRef.current) { +// layerRef.current.opacity = opacity; +// } +// }, [opacity]); + +// useEffect(() => { +// if (layerRef.current) { +// // layerRef.current.blendMode = shouldClip +// // ? 'destination-atop' +// // : null; + +// if (shouldClip) { +// layerRef.current.blendMode = 'destination-atop'; +// } else { +// // in order to reset the blend mode to null, +// // we need to remove the exiting mask layer and create a new instance of the mask layer +// groupLayer.remove(layerRef.current); +// init(); +// } +// } +// }, [shouldClip]); + +// return null; +// }; diff --git a/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx b/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx index 46fbd4a5..a90a3b53 100644 --- a/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx +++ b/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx @@ -14,8 +14,8 @@ */ import MapView from '@arcgis/core/views/MapView'; -import React, { FC, useMemo } from 'react'; -import { MaskLayer } from './MaskLayer'; +import React, { FC, useEffect, useMemo } from 'react'; +// import { MaskLayer } from './MaskLayer'; import { useSelector } from 'react-redux'; import { selectMaskOptions, @@ -30,12 +30,33 @@ import { } from '@shared/store/ImageryScene/selectors'; import GroupLayer from '@arcgis/core/layers/GroupLayer'; import { SpectralIndex } from '@typing/imagery-service'; +import { ImageryLayerWithPixelFilter } from '@shared/components/ImageryLayerWithPixelFilter'; +import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; +import { getBandIndexesBySpectralIndex } from '@shared/services/landsat-level-2/helpers'; +import { LANDSAT_LEVEL_2_SERVICE_URL } from '@shared/services/landsat-level-2/config'; type Props = { mapView?: MapView; groupLayer?: GroupLayer; }; +export const getRasterFunctionBySpectralIndex = ( + spectralIndex: SpectralIndex +): RasterFunction => { + if (!spectralIndex) { + return null; + } + + return new RasterFunction({ + functionName: 'BandArithmetic', + outputPixelType: 'f32', + functionArguments: { + Method: 0, + BandIndexes: getBandIndexesBySpectralIndex(spectralIndex), + }, + }); +}; + export const MaskLayerContainer: FC = ({ mapView, groupLayer }) => { const mode = useSelector(selectAppMode); @@ -66,17 +87,41 @@ export const MaskLayerContainer: FC = ({ mapView, groupLayer }) => { return true; }, [mode, anailysisTool, objectIdOfSelectedScene]); + const rasterFunction = useMemo(() => { + return getRasterFunctionBySpectralIndex(spectralIndex); + }, [spectralIndex]); + + const fullPixelValueRange = useMemo(() => { + return [-1, 1]; + }, []); + + // return ( + // + // ); + return ( - ); }; diff --git a/src/landsat-explorer/components/SwipeWidget/SwipeWidgetContainer.tsx b/src/landsat-explorer/components/SwipeWidget/SwipeWidgetContainer.tsx deleted file mode 100644 index 19701b4b..00000000 --- a/src/landsat-explorer/components/SwipeWidget/SwipeWidgetContainer.tsx +++ /dev/null @@ -1,76 +0,0 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import MapView from '@arcgis/core/views/MapView'; -import React, { FC } from 'react'; -import SwipeWidget from '@shared/components/SwipeWidget/SwipeWidget'; -import { useSelector } from 'react-redux'; -import { - selectAppMode, - selectIsSwipeModeOn, - selectQueryParams4MainScene, - selectQueryParams4SecondaryScene, -} from '@shared/store/ImageryScene/selectors'; -import { useLandsatLayer } from '../LandsatLayer'; -import { useDispatch } from 'react-redux'; -import { swipeWidgetHanlderPositionChanged } from '@shared/store/Map/reducer'; - -type Props = { - mapView?: MapView; -}; - -export const SwipeWidgetContainer: FC = ({ mapView }: Props) => { - const dispatch = useDispatch(); - - const isSwipeWidgetVisible = useSelector(selectIsSwipeModeOn); - - const queryParams4LeftSide = useSelector(selectQueryParams4MainScene); - - const queryParams4RightSide = useSelector(selectQueryParams4SecondaryScene); - - // const isSwipeWidgetVisible = appMode === 'swipe'; - - const leadingLayer = useLandsatLayer({ - visible: - isSwipeWidgetVisible && - queryParams4LeftSide?.objectIdOfSelectedScene !== null, - rasterFunction: queryParams4LeftSide?.rasterFunctionName || '', - objectId: queryParams4LeftSide?.objectIdOfSelectedScene, - }); - - const trailingLayer = useLandsatLayer({ - visible: - isSwipeWidgetVisible && - queryParams4RightSide?.objectIdOfSelectedScene !== null, - rasterFunction: queryParams4RightSide?.rasterFunctionName || '', - objectId: queryParams4RightSide?.objectIdOfSelectedScene, - }); - - return ( - { - // console.log(pos) - dispatch(swipeWidgetHanlderPositionChanged(Math.trunc(pos))); - }} - referenceInfoOnToggle={() => { - // - }} - /> - ); -}; diff --git a/src/landsat-explorer/components/SwipeWidget/index.ts b/src/landsat-explorer/components/SwipeWidget/index.ts deleted file mode 100644 index a7869418..00000000 --- a/src/landsat-explorer/components/SwipeWidget/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export { SwipeWidgetContainer as SwipeWidget } from './SwipeWidgetContainer'; diff --git a/src/landsat-explorer/components/ZoomToExtent/ZoomToExtentContainer.tsx b/src/landsat-explorer/components/ZoomToExtent/ZoomToExtentContainer.tsx index bde27c55..74596124 100644 --- a/src/landsat-explorer/components/ZoomToExtent/ZoomToExtentContainer.tsx +++ b/src/landsat-explorer/components/ZoomToExtent/ZoomToExtentContainer.tsx @@ -27,7 +27,7 @@ import { } from '@shared/store/ImageryScene/selectors'; import { getExtentOfLandsatSceneByObjectId, - getLandsatFeatureByObjectId, + // getLandsatFeatureByObjectId, } from '@shared/services/landsat-level-2/getLandsatScenes'; type Props = { diff --git a/src/shared/services/landsat-level-2/getLandsatScenes.ts b/src/shared/services/landsat-level-2/getLandsatScenes.ts index cea91159..e333d775 100644 --- a/src/shared/services/landsat-level-2/getLandsatScenes.ts +++ b/src/shared/services/landsat-level-2/getLandsatScenes.ts @@ -21,6 +21,9 @@ import { getFormatedDateString } from '@shared/utils/date-time/formatDateString' import { LandsatScene } from '@typing/imagery-service'; import { DateRange } from '@typing/shared'; import { Point } from '@arcgis/core/geometry'; +import { getFeatureByObjectId } from '../helpers/getFeatureById'; +import { getExtentByObjectId } from '../helpers/getExtentById'; +import { intersectWithImageryScene } from '../helpers/intersectWithImageryScene'; type GetLandsatScenesParams = { /** @@ -300,32 +303,38 @@ export const getLandsatSceneByObjectId = async ( export const getLandsatFeatureByObjectId = async ( objectId: number ): Promise => { - const queryParams = new URLSearchParams({ - f: 'json', - returnGeometry: 'true', - objectIds: objectId.toString(), - outFields: '*', - }); + // const queryParams = new URLSearchParams({ + // f: 'json', + // returnGeometry: 'true', + // objectIds: objectId.toString(), + // outFields: '*', + // }); + + // const res = await fetch( + // `${LANDSAT_LEVEL_2_SERVICE_URL}/query?${queryParams.toString()}` + // ); + + // if (!res.ok) { + // throw new Error('failed to query Landsat-2 service'); + // } - const res = await fetch( - `${LANDSAT_LEVEL_2_SERVICE_URL}/query?${queryParams.toString()}` - ); + // const data = await res.json(); - if (!res.ok) { - throw new Error('failed to query Landsat-2 service'); - } - - const data = await res.json(); + // if (data.error) { + // throw data.error; + // } - if (data.error) { - throw data.error; - } + // if (!data?.features || !data.features.length) { + // return null; + // } - if (!data?.features || !data.features.length) { - return null; - } + // return data?.features[0] as IFeature; - return data?.features[0] as IFeature; + const feature = await getFeatureByObjectId( + LANDSAT_LEVEL_2_SERVICE_URL, + objectId + ); + return feature; }; /** @@ -336,31 +345,37 @@ export const getLandsatFeatureByObjectId = async ( export const getExtentOfLandsatSceneByObjectId = async ( objectId: number ): Promise => { - const queryParams = new URLSearchParams({ - f: 'json', - returnExtentOnly: 'true', - objectIds: objectId.toString(), - }); - - const res = await fetch( - `${LANDSAT_LEVEL_2_SERVICE_URL}/query?${queryParams.toString()}` - ); + // const queryParams = new URLSearchParams({ + // f: 'json', + // returnExtentOnly: 'true', + // objectIds: objectId.toString(), + // }); + + // const res = await fetch( + // `${LANDSAT_LEVEL_2_SERVICE_URL}/query?${queryParams.toString()}` + // ); + + // if (!res.ok) { + // throw new Error('failed to query Landsat-2 service'); + // } - if (!res.ok) { - throw new Error('failed to query Landsat-2 service'); - } + // const data = await res.json(); - const data = await res.json(); + // if (data.error) { + // throw data.error; + // } - if (data.error) { - throw data.error; - } + // if (!data?.extent) { + // return null; + // } - if (!data?.extent) { - return null; - } + // return data?.extent as IExtent; - return data?.extent as IExtent; + const extent = await getExtentByObjectId( + LANDSAT_LEVEL_2_SERVICE_URL, + objectId + ); + return extent; }; /** @@ -374,36 +389,45 @@ export const intersectWithLandsatScene = async ( objectId: number, abortController?: AbortController ) => { - const geometry = JSON.stringify({ - spatialReference: { - wkid: 4326, - }, - x: point.longitude, - y: point.latitude, - }); - - const queryParams = new URLSearchParams({ - f: 'json', - returnCountOnly: 'true', - returnGeometry: 'false', - objectIds: objectId.toString(), - geometry, - spatialRel: 'esriSpatialRelIntersects', - geometryType: 'esriGeometryPoint', - }); + // const geometry = JSON.stringify({ + // spatialReference: { + // wkid: 4326, + // }, + // x: point.longitude, + // y: point.latitude, + // }); + + // const queryParams = new URLSearchParams({ + // f: 'json', + // returnCountOnly: 'true', + // returnGeometry: 'false', + // objectIds: objectId.toString(), + // geometry, + // spatialRel: 'esriSpatialRelIntersects', + // geometryType: 'esriGeometryPoint', + // }); + + // const res = await fetch( + // `${LANDSAT_LEVEL_2_SERVICE_URL}/query?${queryParams.toString()}`, + // { + // signal: abortController.signal, + // } + // ); + + // if (!res.ok) { + // throw new Error('failed to query Landsat-2 service'); + // } - const res = await fetch( - `${LANDSAT_LEVEL_2_SERVICE_URL}/query?${queryParams.toString()}`, - { - signal: abortController.signal, - } - ); + // const data = await res.json(); - if (!res.ok) { - throw new Error('failed to query Landsat-2 service'); - } + // return data?.count && data?.count > 0; - const data = await res.json(); + const res = await intersectWithImageryScene({ + serviceUrl: LANDSAT_LEVEL_2_SERVICE_URL, + objectId, + point, + abortController, + }); - return data?.count && data?.count > 0; + return res; }; diff --git a/src/shared/store/Landsat/thunks.ts b/src/shared/store/Landsat/thunks.ts index 81f2bd15..3db73760 100644 --- a/src/shared/store/Landsat/thunks.ts +++ b/src/shared/store/Landsat/thunks.ts @@ -14,11 +14,7 @@ */ import { batch } from 'react-redux'; -import { - // getLandsatFeatureByObjectId, - // getLandsatSceneByObjectId, - getLandsatScenes, -} from '@shared/services/landsat-level-2/getLandsatScenes'; +import { getLandsatScenes } from '@shared/services/landsat-level-2/getLandsatScenes'; import { selectMapCenter } from '../Map/selectors'; import { RootState, StoreDispatch, StoreGetState } from '../configureStore'; import { landsatScenesUpdated } from './reducer'; @@ -35,6 +31,7 @@ import { } from '../ImageryScene/reducer'; import { DateRange } from '@typing/shared'; import { selectQueryParams4SceneInSelectedMode } from '../ImageryScene/selectors'; +import { deduplicateListOfImageryScenes } from '@shared/services/helpers/deduplicateListOfScenes'; let abortController: AbortController = null; /** @@ -66,7 +63,7 @@ export const queryAvailableScenes = ); // get scenes that were acquired within the acquisition year - const scenes = await getLandsatScenes({ + const landsatScenes = await getLandsatScenes({ acquisitionDateRange, mapPoint: center, abortController, @@ -122,39 +119,39 @@ export const queryAvailableScenes = // } // } - // sort scenes uing acquisition date in an ascending order - // which is necessary for us to select between two overlapping scenes in step below - scenes.sort((a, b) => a.acquisitionDate - b.acquisitionDate); - - const landsatScenes: LandsatScene[] = []; - - for (const currScene of scenes) { - // Get the last Landsat scene in the 'landsatScenes' array - const prevScene = landsatScenes[landsatScenes.length - 1]; - - // Check if there is a previous scene and its acquisition date matches the current scene. - // We aim to keep only one Landsat scene for each day. When there are two scenes acquired on the same date, - // we prioritize keeping the currently selected scene or the one acquired later. - if ( - prevScene && - prevScene.formattedAcquisitionDate === - currScene.formattedAcquisitionDate - ) { - // Check if the previous scene is the currently selected scene - // Skip the current iteration if the previous scene is the selected scene - if (prevScene.objectId === objectIdOfSelectedScene) { - continue; - } - - // Remove the previous scene from 'landsatScenes' as it was acquired before the current scene - landsatScenes.pop(); - } + // // sort scenes uing acquisition date in an ascending order + // // which is necessary for us to select between two overlapping scenes in step below + // scenes.sort((a, b) => a.acquisitionDate - b.acquisitionDate); + + // const landsatScenes: LandsatScene[] = []; + + // for (const currScene of scenes) { + // // Get the last Landsat scene in the 'landsatScenes' array + // const prevScene = landsatScenes[landsatScenes.length - 1]; + + // // Check if there is a previous scene and its acquisition date matches the current scene. + // // We aim to keep only one Landsat scene for each day. When there are two scenes acquired on the same date, + // // we prioritize keeping the currently selected scene or the one acquired later. + // if ( + // prevScene && + // prevScene.formattedAcquisitionDate === + // currScene.formattedAcquisitionDate + // ) { + // // Check if the previous scene is the currently selected scene + // // Skip the current iteration if the previous scene is the selected scene + // if (prevScene.objectId === objectIdOfSelectedScene) { + // continue; + // } + + // // Remove the previous scene from 'landsatScenes' as it was acquired before the current scene + // landsatScenes.pop(); + // } - landsatScenes.push(currScene); - } + // landsatScenes.push(currScene); + // } // convert list of Landsat scenes to list of imagery scenes - const imageryScenes: ImageryScene[] = landsatScenes.map( + let imageryScenes: ImageryScene[] = landsatScenes.map( (landsatScene: LandsatScene) => { const { objectId, @@ -182,6 +179,11 @@ export const queryAvailableScenes = } ); + imageryScenes = deduplicateListOfImageryScenes( + imageryScenes, + objectIdOfSelectedScene + ); + batch(() => { dispatch(landsatScenesUpdated(landsatScenes)); dispatch(availableImageryScenesUpdated(imageryScenes)); From 52c776bb5e200b8efc18efef8bbb121a9f6a274c Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 31 May 2024 06:19:33 -0700 Subject: [PATCH 049/151] fix(sentinel1explorer): use new RFT names for VV and VH db --- .../useSentinel1RasterFunctions.tsx | 8 ++++---- .../TemporalCompositeTool/TemporalCompositeTool.tsx | 6 ++---- src/sentinel-1-explorer/store/getPreloadedState.ts | 3 +-- src/shared/services/sentinel-1/config.ts | 8 ++++---- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx index cdf3f313..e8b569fa 100644 --- a/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/useSentinel1RasterFunctions.tsx @@ -36,8 +36,8 @@ const Sentinel1RendererThumbnailByName: Partial< Record > = { 'False Color dB with DRA': Render_FalseColor, - 'VV dB with Despeckle and DRA': Render_VV_VH, - 'VH dB with Despeckle and DRA': Render_VV_VH, + 'VV dB Colorized': Render_VV_VH, + 'VH dB Colorized': Render_VV_VH, // 'Sentinel-1 DpRVIc Raw': PlaceholderThumbnail, 'Water Anomaly Index Colorized': Render_WaterAnomaly, 'SWI Colorized': Render_WaterIndex, @@ -50,8 +50,8 @@ const Sentinel1RendererLegendByName: Partial< Record > = { 'False Color dB with DRA': SAR_FalseColorComposite_Legend, - 'VH dB with Despeckle and DRA': SAR_SingleBandV2_Legend, - 'VV dB with Despeckle and DRA': SAR_SingleBandV2_Legend, + 'VH dB Colorized': SAR_SingleBandV2_Legend, + 'VV dB Colorized': SAR_SingleBandV2_Legend, 'Water Anomaly Index Colorized': SAR_WaterAnomaly_Legend, 'SWI Colorized': SAR_WaterIndex_Legend, }; diff --git a/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx b/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx index 5dcb430c..8be3eb1e 100644 --- a/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx +++ b/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx @@ -37,10 +37,8 @@ export const TemporalCompositeTool = () => { const listOfQueryParams = useSelector(selectListOfQueryParams); const rasterFunctionDropdownOptions: DropdownData[] = useMemo(() => { - const VVdBRasterFunction: Sentinel1FunctionName = - 'VV dB with Despeckle and DRA'; - const VHdBRasterFunction: Sentinel1FunctionName = - 'VV dB with Despeckle and DRA'; + const VVdBRasterFunction: Sentinel1FunctionName = 'VV dB Colorized'; + const VHdBRasterFunction: Sentinel1FunctionName = 'VV dB Colorized'; const data = [ { diff --git a/src/sentinel-1-explorer/store/getPreloadedState.ts b/src/sentinel-1-explorer/store/getPreloadedState.ts index c1feff68..2e65aa44 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState.ts @@ -196,8 +196,7 @@ const getPreloadedUIState = (): UIState => { const getPreloadedTemporalCompositeToolState = (): TemporalCompositeToolState => { - const rasterFunction: Sentinel1FunctionName = - 'VV dB with Despeckle and DRA'; + const rasterFunction: Sentinel1FunctionName = 'VV dB Colorized'; const proloadedState: TemporalCompositeToolState = { ...initialState4TemporalCompositeTool, diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index cab6bd34..bde7be50 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -90,8 +90,8 @@ export const FIELD_NAMES = { const SENTINEL1_RASTER_FUNCTIONS = [ 'False Color dB with DRA', // 'Sentinel-1 RGB dB', - 'VV dB with Despeckle and DRA', - 'VH dB with Despeckle and DRA', + 'VV dB Colorized', + 'VH dB Colorized', 'SWI Colorized', // 'Sentinel-1 DpRVIc Raw', 'Water Anomaly Index Colorized', @@ -133,13 +133,13 @@ export const SENTINEL1_RASTER_FUNCTION_INFOS: { label: 'Water Anomaly', }, { - name: 'VV dB with Despeckle and DRA', + name: 'VV dB Colorized', description: 'VV data in dB scale with a 7x7 Refined Lee despeckling filter and a dynamic stretch applied for visualization only.', label: 'VV dB', }, { - name: 'VH dB with Despeckle and DRA', + name: 'VH dB Colorized', description: 'VH data in dB scale with a 7x7 Refined Lee despeckling filter and a dynamic stretch applied for visualization only.', label: 'VH dB', From 2ee1c648f9dccdb164e98e65b8833b7cbe488284 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 5 Jun 2024 09:01:55 -0700 Subject: [PATCH 050/151] fix(sentinel1explorer): Rename 'SWI' to 'Water Index' in the Change analysis list ref #29 --- .../components/ChangeCompareTool/ChangeCompareToolContainer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx index 5690df5b..253a09c9 100644 --- a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx +++ b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx @@ -71,7 +71,7 @@ const ChangeCompareToolOptions: { }, { value: 'water', - label: 'SWI', + label: 'Water Index', }, ]; From 2e8239475bded3880dad9d86fd7eb1c35da41e7c Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 5 Jun 2024 09:14:48 -0700 Subject: [PATCH 051/151] fix(sentinel1explorer): minor UI/UX fixes fix: Update labels on Change slider for Log Difference ref #22 fix: Need to revmove/replace the labels on the change slider for SWI and Water Anomaly ref #21 fix: Set 1:1 zoom button to a scale of 1:37,795 ref #12 fix: Rename 'Urban' index to 'Built-up' refactor(shared): CloudFilter should be decoupled with Calendar fix: Remove '% Cloudy' from the calendar scene tool tip ref #17 fix: Add more significant figures to URL geographic coordinates ref #16 fix: add getMainContent helper function to Popup fix: Update labels on Change slider for Log Difference ref #22 --- .../components/Layout/Layout.tsx | 2 + .../ChangeCompareToolContainer.tsx | 14 +++-- .../components/Map/Map.tsx | 2 +- .../components/MaskTool/Sentinel1MaskTool.tsx | 2 +- .../components/Popup/PopupContainer.tsx | 16 ++--- .../components/Popup/helper.ts | 48 +++++++++++++++ .../store/getPreloadedState.ts | 1 + .../components/Calendar/Calendar.test.tsx | 1 + src/shared/components/Calendar/Calendar.tsx | 19 +++++- .../components/Calendar/CalendarContainer.tsx | 33 +++++------ .../ChangeCompareToolControls.tsx | 59 ++++++++++++++----- .../CloudFilter/CloudFilterContainer.tsx | 47 +++++++++++++++ src/shared/components/CloudFilter/index.ts | 2 +- src/shared/store/UI/reducer.ts | 5 ++ src/shared/store/UI/selectors.ts | 5 ++ src/shared/utils/url-hash-params/map.ts | 4 +- 16 files changed, 210 insertions(+), 50 deletions(-) create mode 100644 src/sentinel-1-explorer/components/Popup/helper.ts create mode 100644 src/shared/components/CloudFilter/CloudFilterContainer.tsx diff --git a/src/landsat-explorer/components/Layout/Layout.tsx b/src/landsat-explorer/components/Layout/Layout.tsx index e7b2fd92..aa1db0fc 100644 --- a/src/landsat-explorer/components/Layout/Layout.tsx +++ b/src/landsat-explorer/components/Layout/Layout.tsx @@ -45,6 +45,7 @@ import { LandsatInterestingPlaces } from '../InterestingPlaces'; import { LandsatMissionFilter } from '../LandsatMissionFilter'; import { AnalyzeToolSelector4Landsat } from '../AnalyzeToolSelector/AnalyzeToolSelector'; import { useShouldShowSecondaryControls } from '@shared/hooks/useShouldShowSecondaryControls'; +import { CloudFilter } from '@shared/components/CloudFilter'; const Layout = () => { const mode = useSelector(selectAppMode); @@ -114,6 +115,7 @@ const Layout = () => {
+
diff --git a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx index 253a09c9..230130b2 100644 --- a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx +++ b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx @@ -36,7 +36,7 @@ import { selectSelectedOption4ChangeCompareTool } from '@shared/store/ChangeComp import { selectActiveAnalysisTool } from '@shared/store/ImageryScene/selectors'; // import { SpectralIndex } from '@typing/imagery-service'; import classNames from 'classnames'; -import React, { useEffect } from 'react'; +import React, { useEffect, useMemo } from 'react'; import { useDispatch } from 'react-redux'; // import { useDispatch } from 'react-redux'; import { useSelector } from 'react-redux'; @@ -122,6 +122,14 @@ export const ChangeCompareToolContainer = () => { selectSelectedOption4ChangeCompareTool ) as ChangeCompareToolOption4Sentinel1; + const legendLabelText = useMemo(() => { + if (selectedOption === 'log difference') { + return ['lower backscatter', 'higher backscatter']; + } + + return ['decrease', '', 'increase']; + }, [selectedOption]); + useSyncCalendarDateRange(); useEffect(() => { @@ -144,9 +152,7 @@ export const ChangeCompareToolContainer = () => { return (
- + {selectedOption === 'log difference' && (
diff --git a/src/sentinel-1-explorer/components/Map/Map.tsx b/src/sentinel-1-explorer/components/Map/Map.tsx index 92683a93..32696db2 100644 --- a/src/sentinel-1-explorer/components/Map/Map.tsx +++ b/src/sentinel-1-explorer/components/Map/Map.tsx @@ -70,7 +70,7 @@ export const Map = () => { {/* */} diff --git a/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx b/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx index a76e2213..0d51a7c7 100644 --- a/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx +++ b/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx @@ -120,7 +120,7 @@ export const Sentinel1MaskTool = () => { }, { value: 'urban' as RadarIndex, - label: 'Urban', + label: 'Built-up', }, ]} selectedValue={selectedIndex} diff --git a/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx b/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx index 7beecf29..df929fff 100644 --- a/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx +++ b/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx @@ -29,6 +29,8 @@ import { MapPopup, MapPopupData } from '@shared/components/MapPopup/MapPopup'; import { identify } from '@shared/services/helpers/identify'; import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; import { getFormattedSentinel1Scenes } from '@shared/services/sentinel-1/getSentinel1Scenes'; +import { getPixelValuesFromIdentifyTaskResponse } from '@shared/services/helpers/getPixelValuesFromIdentifyTaskResponse'; +import { getMainContent } from './helper'; type Props = { mapView?: MapView; @@ -87,13 +89,13 @@ export const PopupContainer: FC = ({ mapView }) => { const sceneData = getFormattedSentinel1Scenes(features)[0]; - // const bandValues: number[] = - // getPixelValuesFromIdentifyTaskResponse(res); + const bandValues: number[] = + getPixelValuesFromIdentifyTaskResponse(res); - // if (!bandValues) { - // throw new Error('identify task does not return band values'); - // } - // // console.log(bandValues) + if (!bandValues) { + throw new Error('identify task does not return band values'); + } + // console.log(bandValues) const title = `Sentinel-1 | ${formatInUTCTimeZone( sceneData.acquisitionDate, @@ -104,7 +106,7 @@ export const PopupContainer: FC = ({ mapView }) => { // Set the popup's title to the coordinates of the location title, location: mapPoint, // Set the location of the popup to the clicked location - content: 'Popup content will be put here', + content: getMainContent(bandValues, mapPoint), }); } catch (error: any) { setData({ diff --git a/src/sentinel-1-explorer/components/Popup/helper.ts b/src/sentinel-1-explorer/components/Popup/helper.ts new file mode 100644 index 00000000..bbcb6aea --- /dev/null +++ b/src/sentinel-1-explorer/components/Popup/helper.ts @@ -0,0 +1,48 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Point from '@arcgis/core/geometry/Point'; +import { calcRadarIndex } from '@shared/services/sentinel-1/helper'; + +// export const getLoadingIndicator = () => { +// const popupDiv = document.createElement('div'); +// popupDiv.innerHTML = ``; +// return popupDiv; +// }; + +export const getMainContent = (values: number[], mapPoint: Point) => { + const lat = Math.round(mapPoint.latitude * 1000) / 1000; + const lon = Math.round(mapPoint.longitude * 1000) / 1000; + + const waterIndex = calcRadarIndex('water', values).toFixed(3); + + const waterAnomalyIndex = calcRadarIndex('water anomaly', values).toFixed( + 3 + ); + + return ` +
+
+ ${values[0]}, ${values[1]}
+ Water Index: ${waterIndex}
+ Water Anomaly: ${waterAnomalyIndex} +
+
+

x ${lon}

+

y ${lat}

+
+
+ `; +}; diff --git a/src/sentinel-1-explorer/store/getPreloadedState.ts b/src/sentinel-1-explorer/store/getPreloadedState.ts index 2e65aa44..bb9daddc 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState.ts @@ -183,6 +183,7 @@ const getPreloadedUIState = (): UIState => { const proloadedUIState: UIState = { ...initialUIState, + hideCloudCoverInfo: true, // nameOfSelectedInterestingPlace: randomInterestingPlace?.name || '', }; diff --git a/src/shared/components/Calendar/Calendar.test.tsx b/src/shared/components/Calendar/Calendar.test.tsx index f8b109be..73db58b7 100644 --- a/src/shared/components/Calendar/Calendar.test.tsx +++ b/src/shared/components/Calendar/Calendar.test.tsx @@ -28,6 +28,7 @@ describe('test Calendar component', () => { }} selectedAcquisitionDate="2024-01-13" availableScenes={[]} + shouldHideCloudCoverInfo={false} onSelect={(val) => { console.log(val); }} diff --git a/src/shared/components/Calendar/Calendar.tsx b/src/shared/components/Calendar/Calendar.tsx index aef29f8e..84959094 100644 --- a/src/shared/components/Calendar/Calendar.tsx +++ b/src/shared/components/Calendar/Calendar.tsx @@ -70,6 +70,10 @@ type CalendarProps = { * so that the user can know there are available data on these days */ availableScenes?: FormattedImageryScene[]; + /** + * if true, hide cloud cover info in Calendar tooltip + */ + shouldHideCloudCoverInfo: boolean; /** * Fires when user select a new acquisition date * @param date date string in format of (YYYY-MM-DD) @@ -95,6 +99,10 @@ type MonthGridProps = Omit & { * number of days in this month */ days: number; + /** + * if true, hide cloud cover info in Calendar tooltip + */ + shouldHideCloudCoverInfo: boolean; }; const MonthGrid: FC = ({ @@ -104,6 +112,7 @@ const MonthGrid: FC = ({ days, selectedAcquisitionDate, availableScenes, + shouldHideCloudCoverInfo, onSelect, }: MonthGridProps) => { const dataOfImagerySceneByAcquisitionDate = useMemo(() => { @@ -216,7 +225,11 @@ const MonthGrid: FC = ({ )}
- {dataOfImageryScene.cloudCover}% Cloudy + {shouldHideCloudCoverInfo === false && ( + + {dataOfImageryScene.cloudCover}% Cloudy + + )}
)}
@@ -245,6 +258,7 @@ const Calendar: FC = ({ dateRange, selectedAcquisitionDate, availableScenes, + shouldHideCloudCoverInfo, onSelect, }: CalendarProps) => { const { startDate, endDate } = dateRange; @@ -272,6 +286,7 @@ const Calendar: FC = ({ days={getNumberOfDays(year, month)} selectedAcquisitionDate={selectedAcquisitionDate} availableScenes={availableScenes} + shouldHideCloudCoverInfo={shouldHideCloudCoverInfo} onSelect={onSelect} /> ); @@ -290,6 +305,7 @@ const Calendar: FC = ({ days={getNumberOfDays(startYear, month)} selectedAcquisitionDate={selectedAcquisitionDate} availableScenes={availableScenes} + shouldHideCloudCoverInfo={shouldHideCloudCoverInfo} onSelect={onSelect} /> ); @@ -305,6 +321,7 @@ const Calendar: FC = ({ days={getNumberOfDays(endYear, month)} selectedAcquisitionDate={selectedAcquisitionDate} availableScenes={availableScenes} + shouldHideCloudCoverInfo={shouldHideCloudCoverInfo} onSelect={onSelect} /> ); diff --git a/src/shared/components/Calendar/CalendarContainer.tsx b/src/shared/components/Calendar/CalendarContainer.tsx index 9931a0ec..560b8269 100644 --- a/src/shared/components/Calendar/CalendarContainer.tsx +++ b/src/shared/components/Calendar/CalendarContainer.tsx @@ -34,7 +34,10 @@ import { // updateCloudCover, } from '@shared/store/ImageryScene/thunks'; import classNames from 'classnames'; -import { selectIsAnimationPlaying } from '@shared/store/UI/selectors'; +import { + selectIsAnimationPlaying, + selectShouldHideCloudCoverInfo, +} from '@shared/store/UI/selectors'; import { CloudFilter } from '@shared/components/CloudFilter'; import { // acquisitionYearChanged, @@ -63,13 +66,13 @@ const CalendarContainer: FC = ({ children }: Props) => { const queryParams = useSelector(selectQueryParams4SceneInSelectedMode); - const isAnimationPlaying = useSelector(selectIsAnimationPlaying); + // const isAnimationPlaying = useSelector(selectIsAnimationPlaying); const acquisitionDate = queryParams?.acquisitionDate; const acquisitionDateRange = queryParams?.acquisitionDateRange; - const cloudCoverThreshold = useSelector(selectCloudCover); + // const cloudCoverThreshold = useSelector(selectCloudCover); const acquisitionYear = useAcquisitionYear(); @@ -110,15 +113,19 @@ const CalendarContainer: FC = ({ children }: Props) => { */ const shouldBeDisabled = useShouldDisableCalendar(); + const shouldHideCloudCoverInfo = useSelector( + selectShouldHideCloudCoverInfo + ); + // /** // * This custom hook is triggered whenever the user-selected acquisition date changes. // * It updates the user-selected year based on the year from the selected acquisition date. // */ // useUpdateAcquisitionYear(); - const shouldShowCloudFilter = useMemo(() => { - return APP_NAME === 'landsat' || APP_NAME === 'landsat-surface-temp'; - }, []); + // const shouldShowCloudFilter = useMemo(() => { + // return APP_NAME === 'landsat' || APP_NAME === 'landsat-surface-temp'; + // }, []); return (
= ({ children }: Props) => { {/* {APP_NAME === 'landsat' && } */} {children} - - {shouldShowCloudFilter && ( - { - dispatch(cloudCoverChanged(newValue)); - }} - /> - )}
= ({ children }: Props) => { dateRange={acquisitionDateRange || getDateRangeForPast12Month()} selectedAcquisitionDate={selectedAcquisitionDate} availableScenes={formattedScenes} + shouldHideCloudCoverInfo={shouldHideCloudCoverInfo} onSelect={(formattedAcquisitionDate) => { // console.log(formattedAcquisitionDate) diff --git a/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx index 7ba1ac99..2e768d9b 100644 --- a/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx +++ b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx @@ -90,6 +90,50 @@ export const ChangeCompareToolControls: FC = ({ ); }; + const getLegendLabelText = () => { + if (!legendLabelText?.length) { + return null; + } + + let content: JSX.Element = null; + + if (legendLabelText.length === 2) { + content = ( +
+
+ {legendLabelText[0] || 'decrease'} +
+ +
+ {legendLabelText[1] || 'increase'} +
+
+ ); + } + + if (legendLabelText.length === 3) { + content = ( +
+
+ {legendLabelText[0] || 'decrease'} +
+
+ {legendLabelText[1] || 'no change'} +
+
+ {legendLabelText[2] || 'increase'} +
+
+ ); + } + + if (!content) { + return null; + } + + return
{content}
; + }; + if (tool !== 'change') { return null; } @@ -118,20 +162,7 @@ export const ChangeCompareToolControls: FC = ({
{getPixelRangeSlider()} - -
-
-
- {legendLabelText[0] || 'decrease'} -
-
- {legendLabelText[1] || 'no change'} -
-
- {legendLabelText[2] || 'increase'} -
-
-
+ {getLegendLabelText()}
); }; diff --git a/src/shared/components/CloudFilter/CloudFilterContainer.tsx b/src/shared/components/CloudFilter/CloudFilterContainer.tsx new file mode 100644 index 00000000..17630d6a --- /dev/null +++ b/src/shared/components/CloudFilter/CloudFilterContainer.tsx @@ -0,0 +1,47 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +// import { selectMapCenter } from '@shared/store/Map/selectors'; +import { useSelector } from 'react-redux'; +import { useDispatch } from 'react-redux'; +import { + // selectAcquisitionYear, + selectCloudCover, +} from '@shared/store/ImageryScene/selectors'; +import { selectIsAnimationPlaying } from '@shared/store/UI/selectors'; +import { CloudFilter } from './CloudFilter'; +import { + // acquisitionYearChanged, + cloudCoverChanged, +} from '@shared/store/ImageryScene/reducer'; + +export const CloudFilterContainer = () => { + const dispatch = useDispatch(); + + const cloudCoverThreshold = useSelector(selectCloudCover); + + const isAnimationPlaying = useSelector(selectIsAnimationPlaying); + + return ( + { + dispatch(cloudCoverChanged(newValue)); + }} + /> + ); +}; diff --git a/src/shared/components/CloudFilter/index.ts b/src/shared/components/CloudFilter/index.ts index 06a4ba10..ea4aef2d 100644 --- a/src/shared/components/CloudFilter/index.ts +++ b/src/shared/components/CloudFilter/index.ts @@ -13,4 +13,4 @@ * limitations under the License. */ -export { CloudFilter } from './CloudFilter'; +export { CloudFilterContainer as CloudFilter } from './CloudFilterContainer'; diff --git a/src/shared/store/UI/reducer.ts b/src/shared/store/UI/reducer.ts index 451483db..3ff76f90 100644 --- a/src/shared/store/UI/reducer.ts +++ b/src/shared/store/UI/reducer.ts @@ -84,6 +84,10 @@ export type UIState = { * if true, show Save Webmap Panel */ showSaveWebMapPanel?: boolean; + /** + * if true, hide information from UI components (e.g. calendar tooltip) that is related to cloud cover of an imagery scene. + */ + hideCloudCoverInfo?: boolean; }; export const initialUIState: UIState = { @@ -98,6 +102,7 @@ export const initialUIState: UIState = { nameOfSelectedInterestingPlace: '', showDownloadPanel: false, showSaveWebMapPanel: false, + hideCloudCoverInfo: false, }; const slice = createSlice({ diff --git a/src/shared/store/UI/selectors.ts b/src/shared/store/UI/selectors.ts index 00f6ece4..12878816 100644 --- a/src/shared/store/UI/selectors.ts +++ b/src/shared/store/UI/selectors.ts @@ -75,3 +75,8 @@ export const selectAnimationLinkIsCopied = createSelector( (state: RootState) => state.UI.animationLinkIsCopied, (animationLinkIsCopied) => animationLinkIsCopied ); + +export const selectShouldHideCloudCoverInfo = createSelector( + (state: RootState) => state.UI.hideCloudCoverInfo, + (hideCloudCoverInfo) => hideCloudCoverInfo +); diff --git a/src/shared/utils/url-hash-params/map.ts b/src/shared/utils/url-hash-params/map.ts index 09ebf29d..b5d4643c 100644 --- a/src/shared/utils/url-hash-params/map.ts +++ b/src/shared/utils/url-hash-params/map.ts @@ -35,8 +35,8 @@ const decodeMapCenter = (value: string) => { export const encodeMapCenter = (center: number[], zoom: number) => { const [longitude, latitude] = center; - const value = `${longitude.toFixed(3)},${latitude.toFixed( - 3 + const value = `${longitude.toFixed(5)},${latitude.toFixed( + 5 )},${zoom.toFixed(3)}`; return value; From 0698519b4b24349e6d8a762c5e34a0348490ff2c Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 5 Jun 2024 14:06:05 -0700 Subject: [PATCH 052/151] fix(sentinel1explorer): minor bug fixes - Sentinel1MaskLayer should be hidden if Mask Tool is off - Temporal Profile tool provides wrong values for SWI ref #28 --- .../MaskLayer/Sentinel1MaskLayer.tsx | 21 ++++++++++++++----- .../components/ImageryLayer/useImageLayer.tsx | 2 ++ src/shared/services/sentinel-1/helper.ts | 10 ++++++++- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx b/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx index 8a8e9bab..4ede9509 100644 --- a/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx +++ b/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx @@ -119,8 +119,10 @@ export const Sentinel1MaskLayer: FC = ({ mapView, groupLayer }) => { const initGroupLayer4MaskAndWaterLandLayers = () => { groupLayer4MaskAndWaterLandLayersRef.current = new GroupLayer({ - blendMode: shouldClip ? 'destination-atop' : null, + blendMode: shouldClip && isVisible ? 'destination-atop' : 'normal', + visible: isVisible, }); + groupLayer.add(groupLayer4MaskAndWaterLandLayersRef.current); }; @@ -133,10 +135,19 @@ export const Sentinel1MaskLayer: FC = ({ mapView, groupLayer }) => { return; } - groupLayer4MaskAndWaterLandLayersRef.current.blendMode = shouldClip - ? 'destination-atop' - : 'normal'; - }, [shouldClip]); + // Set blend mode to 'destination-atop' only when shouldClip is true and the mask layer is on. + // If the mask layer is off and the blend mode remains 'destination-atop', the underlying Sentinel-1 Layer becomes invisible. + groupLayer4MaskAndWaterLandLayersRef.current.blendMode = + shouldClip && isVisible ? 'destination-atop' : 'normal'; + }, [shouldClip, isVisible]); + + useEffect(() => { + if (!groupLayer4MaskAndWaterLandLayersRef.current) { + return; + } + + groupLayer4MaskAndWaterLandLayersRef.current.visible = isVisible; + }, [isVisible]); if (!groupLayer4MaskAndWaterLandLayersRef.current) { return null; diff --git a/src/shared/components/ImageryLayer/useImageLayer.tsx b/src/shared/components/ImageryLayer/useImageLayer.tsx index 7fd6cdc0..eb950abe 100644 --- a/src/shared/components/ImageryLayer/useImageLayer.tsx +++ b/src/shared/components/ImageryLayer/useImageLayer.tsx @@ -129,6 +129,8 @@ export const useImageryLayerByObjectId = ({ return; } + console.log(visible); + layerRef.current.visible = visible; }, [visible]); diff --git a/src/shared/services/sentinel-1/helper.ts b/src/shared/services/sentinel-1/helper.ts index f179022d..b083070c 100644 --- a/src/shared/services/sentinel-1/helper.ts +++ b/src/shared/services/sentinel-1/helper.ts @@ -4,10 +4,18 @@ export const calcRadarIndex = ( indexName: RadarIndex, bandValues: number[] ): number => { - const [VV, VH] = bandValues; + let [VV, VH] = bandValues; let value = 0; + // The raw pixel values are in Power Scale already + // For SWI, we will need to convert the Power Scale to dB and then calculate the index + // @see https://github.com/vannizhang/imagery-explorer-apps-private/issues/28 + if (indexName === 'water') { + VV = 10 * Math.log10(VV); + VH = 10 * Math.log10(VH); + } + // Calculate the value based on the input radar index if (indexName === 'water') { value = From fecb9202f72aece1358057c3a71327eaa6eb410a Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 5 Jun 2024 14:55:05 -0700 Subject: [PATCH 053/151] fix(sentinel1explorer): popup window content --- .../components/Popup/PopupContainer.tsx | 14 +++++++------- .../components/Popup/helper.ts | 17 ++++++----------- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx b/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx index df929fff..76c9bbe7 100644 --- a/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx +++ b/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx @@ -89,13 +89,13 @@ export const PopupContainer: FC = ({ mapView }) => { const sceneData = getFormattedSentinel1Scenes(features)[0]; - const bandValues: number[] = - getPixelValuesFromIdentifyTaskResponse(res); + // const bandValues: number[] = + // getPixelValuesFromIdentifyTaskResponse(res); - if (!bandValues) { - throw new Error('identify task does not return band values'); - } - // console.log(bandValues) + // if (!bandValues) { + // throw new Error('identify task does not return band values'); + // } + // // console.log(bandValues) const title = `Sentinel-1 | ${formatInUTCTimeZone( sceneData.acquisitionDate, @@ -106,7 +106,7 @@ export const PopupContainer: FC = ({ mapView }) => { // Set the popup's title to the coordinates of the location title, location: mapPoint, // Set the location of the popup to the clicked location - content: getMainContent(bandValues, mapPoint), + content: getMainContent(mapPoint), }); } catch (error: any) { setData({ diff --git a/src/sentinel-1-explorer/components/Popup/helper.ts b/src/sentinel-1-explorer/components/Popup/helper.ts index bbcb6aea..4eba3680 100644 --- a/src/sentinel-1-explorer/components/Popup/helper.ts +++ b/src/sentinel-1-explorer/components/Popup/helper.ts @@ -14,7 +14,7 @@ */ import Point from '@arcgis/core/geometry/Point'; -import { calcRadarIndex } from '@shared/services/sentinel-1/helper'; +// import { calcRadarIndex } from '@shared/services/sentinel-1/helper'; // export const getLoadingIndicator = () => { // const popupDiv = document.createElement('div'); @@ -22,23 +22,18 @@ import { calcRadarIndex } from '@shared/services/sentinel-1/helper'; // return popupDiv; // }; -export const getMainContent = (values: number[], mapPoint: Point) => { +export const getMainContent = (mapPoint: Point) => { const lat = Math.round(mapPoint.latitude * 1000) / 1000; const lon = Math.round(mapPoint.longitude * 1000) / 1000; - const waterIndex = calcRadarIndex('water', values).toFixed(3); + // const waterIndex = calcRadarIndex('water', values).toFixed(3); - const waterAnomalyIndex = calcRadarIndex('water anomaly', values).toFixed( - 3 - ); + // const waterAnomalyIndex = calcRadarIndex('water anomaly', values).toFixed( + // 3 + // ); return `
-
- ${values[0]}, ${values[1]}
- Water Index: ${waterIndex}
- Water Anomaly: ${waterAnomalyIndex} -

x ${lon}

y ${lat}

From 66e30e92e17b9d2c089cc8dd8cfc1dbdc1ee6ad9 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 5 Jun 2024 15:36:12 -0700 Subject: [PATCH 054/151] fix: SceneInfoRow should display value with ellipsis --- .../SceneInfo/SceneInfoContainer.tsx | 18 +++++++++--------- .../SceneInfoTable/SceneInfoTable.tsx | 6 ++++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx b/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx index 9eb9283d..bece9f4f 100644 --- a/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx +++ b/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx @@ -49,16 +49,16 @@ export const SceneInfoContainer = () => { // therefore we need to split it into two separate rows { name: 'Scene ID', - value: name.slice(0, 22), - }, - { - name: '', - value: name.slice(22, 44), - }, - { - name: '', - value: name.slice(44), + value: name, //name.slice(0, 22), }, + // { + // name: '', + // value: name.slice(22, 44), + // }, + // { + // name: '', + // value: name.slice(44), + // }, { name: 'Sensor', value: sensor, diff --git a/src/shared/components/SceneInfoTable/SceneInfoTable.tsx b/src/shared/components/SceneInfoTable/SceneInfoTable.tsx index 5342967d..8b110d32 100644 --- a/src/shared/components/SceneInfoTable/SceneInfoTable.tsx +++ b/src/shared/components/SceneInfoTable/SceneInfoTable.tsx @@ -42,8 +42,10 @@ const SceneInfoRow: FC = ({ name, value }) => { {name}
-
- {value} +
+ + {value} +
); From fe8b3f64e8560f19b13b7286c0d679e93e375477 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 5 Jun 2024 16:34:31 -0700 Subject: [PATCH 055/151] fix(landsatexplorer): scene info should display ID in one line --- .../SceneInfo/SceneInfoContainer.tsx | 11 ++++++----- .../SceneInfoTable/SceneInfoTable.tsx | 18 ++++++++---------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/landsat-explorer/components/SceneInfo/SceneInfoContainer.tsx b/src/landsat-explorer/components/SceneInfo/SceneInfoContainer.tsx index ddc564ec..46d226b8 100644 --- a/src/landsat-explorer/components/SceneInfo/SceneInfoContainer.tsx +++ b/src/landsat-explorer/components/SceneInfo/SceneInfoContainer.tsx @@ -55,12 +55,13 @@ export const SceneInfoContainer = () => { // therefore we need to split it into two separate rows { name: 'Scene ID', - value: name.slice(0, 17), - }, - { - name: '', - value: name.slice(17), + value: name, //name.slice(0, 17), + clickToCopy: true, }, + // { + // name: '', + // value: name.slice(17), + // }, { name: 'Satellite', value: satellite, diff --git a/src/shared/components/SceneInfoTable/SceneInfoTable.tsx b/src/shared/components/SceneInfoTable/SceneInfoTable.tsx index 8b110d32..c58bdc32 100644 --- a/src/shared/components/SceneInfoTable/SceneInfoTable.tsx +++ b/src/shared/components/SceneInfoTable/SceneInfoTable.tsx @@ -29,20 +29,24 @@ export type SceneInfoTableData = { * value of the field */ value: string; + /** + * if true, user can click to copy this value + */ + clickToCopy?: boolean; }; type Props = { data: SceneInfoTableData[]; }; -const SceneInfoRow: FC = ({ name, value }) => { +const SceneInfoRow: FC = ({ name, value, clickToCopy }) => { return ( <> -
+
{name}
-
+
{value} @@ -74,13 +78,7 @@ export const SceneInfoTable: FC = ({ data }: Props) => { data-element="scene-info-table" // this [data-element] attribute will be used to monitor the health of the app > {data.map((d: SceneInfoTableData) => { - return ( - - ); + return ; })}
); From 2af9acf577e09f6417209b159f2b704796f472c8 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 5 Jun 2024 16:37:00 -0700 Subject: [PATCH 056/151] fix(shared): SceneInfoRow should not include title attr --- src/shared/components/SceneInfoTable/SceneInfoTable.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/components/SceneInfoTable/SceneInfoTable.tsx b/src/shared/components/SceneInfoTable/SceneInfoTable.tsx index c58bdc32..34df5b42 100644 --- a/src/shared/components/SceneInfoTable/SceneInfoTable.tsx +++ b/src/shared/components/SceneInfoTable/SceneInfoTable.tsx @@ -46,7 +46,7 @@ const SceneInfoRow: FC = ({ name, value, clickToCopy }) => { {name}
-
+
{value} From 659341e9eef95f6bed767a631fd90d2a91aa99a4 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 5 Jun 2024 16:40:33 -0700 Subject: [PATCH 057/151] chore: update GLOBAL_WATER_LAND_MASK_LAYER_ITEM_ID --- src/sentinel-1-explorer/contans/index.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/contans/index.ts b/src/sentinel-1-explorer/contans/index.ts index 6d6f3bec..59b93a71 100644 --- a/src/sentinel-1-explorer/contans/index.ts +++ b/src/sentinel-1-explorer/contans/index.ts @@ -1,2 +1,6 @@ +/** + * JRC yearly classification data, with the oceans filled + * @see https://www.arcgis.com/home/item.html?id=f61d078c63bf49c497a1fb0bb9ad7d71 + */ export const GLOBAL_WATER_LAND_MASK_LAYER_ITEM_ID = - '01d59c0c0fec4db0af524e041838886d'; + 'f61d078c63bf49c497a1fb0bb9ad7d71'; From dbe5b89af45765785f1bf7bbd00a69cdc575f1e5 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 6 Jun 2024 05:51:32 -0700 Subject: [PATCH 058/151] fix(shared): Scene Info component; Mask tool and Mask Layer - feat: add tooltip and click to copy feature to Scene Info component - fix: minor update to SceneInfoTable - fix: raster function list should have max height instead of height - fix: URLs should retain thresholds of sliders in all tools - refactor: update MaskToolState pixel Color and pixel Value range should be saved in separate object - fix: update decodeMaskToolData and getPreloadedMaskToolState should allow user to override the default Pixel Value Data - fix: decodeMaskToolData should create a clone of DefaultPixelValueRangeBySelectedIndex - fix: getTickConfigs function of PixelRangeSlider should not call getCountOfTicks when countOfTicks is 0 - fix: Landsat Explorer Mask Layer the full pixel value range should be switched based on selected index --- .../MaskLayer/MaskLayerContainer.tsx | 33 ++++++-- .../components/MaskTool/MaskToolContainer.tsx | 10 ++- .../MaskTool/SurfaceTempPixelRangeSlider.tsx | 12 +-- ...s => getPreloadedState4LandsatExplorer.ts} | 0 src/landsat-explorer/store/index.ts | 2 +- .../components/MaskTool/MaskToolContainer.tsx | 4 +- .../MaskLayer/Sentinel1MaskLayer.tsx | 9 ++- .../components/MaskTool/Sentinel1MaskTool.tsx | 14 ++-- .../SceneInfo/SceneInfoContainer.tsx | 3 +- ...=> getPreloadedState4Sentinel1Explorer.ts} | 47 +++++++---- src/sentinel-1-explorer/store/index.ts | 2 +- .../MaskTool/RenderingControlsContainer.tsx | 10 +-- .../RasterFunctionSelector.tsx | 2 +- .../SceneInfoTable/SceneInfoTable.tsx | 64 ++++++++++++++- .../components/Slider/PixelRangeSlider.tsx | 14 +++- src/shared/store/MaskTool/reducer.ts | 80 ++++++++++++------- src/shared/store/MaskTool/selectors.ts | 15 +++- src/shared/store/MaskTool/thunks.ts | 23 ++---- src/shared/utils/url-hash-params/maskTool.ts | 69 +++++++++++----- 19 files changed, 285 insertions(+), 128 deletions(-) rename src/landsat-explorer/store/{getPreloadedState.ts => getPreloadedState4LandsatExplorer.ts} (100%) rename src/sentinel-1-explorer/store/{getPreloadedState.ts => getPreloadedState4Sentinel1Explorer.ts} (90%) diff --git a/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx b/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx index a90a3b53..b7960798 100644 --- a/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx +++ b/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx @@ -18,10 +18,11 @@ import React, { FC, useEffect, useMemo } from 'react'; // import { MaskLayer } from './MaskLayer'; import { useSelector } from 'react-redux'; import { - selectMaskOptions, + selectMaskLayerPixelValueRange, selectShouldClipMaskLayer, selectMaskLayerOpcity, selectSelectedIndex4MaskTool, + selectMaskLayerPixelColor, } from '@shared/store/MaskTool/selectors'; import { selectActiveAnalysisTool, @@ -33,7 +34,13 @@ import { SpectralIndex } from '@typing/imagery-service'; import { ImageryLayerWithPixelFilter } from '@shared/components/ImageryLayerWithPixelFilter'; import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; import { getBandIndexesBySpectralIndex } from '@shared/services/landsat-level-2/helpers'; -import { LANDSAT_LEVEL_2_SERVICE_URL } from '@shared/services/landsat-level-2/config'; +import { + LANDSAT_LEVEL_2_SERVICE_URL, + LANDSAT_SURFACE_TEMPERATURE_MAX_CELSIUS, + LANDSAT_SURFACE_TEMPERATURE_MAX_FAHRENHEIT, + LANDSAT_SURFACE_TEMPERATURE_MIN_CELSIUS, + LANDSAT_SURFACE_TEMPERATURE_MIN_FAHRENHEIT, +} from '@shared/services/landsat-level-2/config'; type Props = { mapView?: MapView; @@ -64,7 +71,9 @@ export const MaskLayerContainer: FC = ({ mapView, groupLayer }) => { selectSelectedIndex4MaskTool ) as SpectralIndex; - const { selectedRange, color } = useSelector(selectMaskOptions); + const { selectedRange } = useSelector(selectMaskLayerPixelValueRange); + + const pixelColor = useSelector(selectMaskLayerPixelColor); const opacity = useSelector(selectMaskLayerOpcity); @@ -92,8 +101,22 @@ export const MaskLayerContainer: FC = ({ mapView, groupLayer }) => { }, [spectralIndex]); const fullPixelValueRange = useMemo(() => { + if (spectralIndex === 'temperature celcius') { + return [ + LANDSAT_SURFACE_TEMPERATURE_MIN_CELSIUS, + LANDSAT_SURFACE_TEMPERATURE_MAX_CELSIUS, + ]; + } + + if (spectralIndex === 'temperature farhenheit') { + return [ + LANDSAT_SURFACE_TEMPERATURE_MIN_FAHRENHEIT, + LANDSAT_SURFACE_TEMPERATURE_MAX_FAHRENHEIT, + ]; + } + return [-1, 1]; - }, []); + }, [spectralIndex]); // return ( // = ({ mapView, groupLayer }) => { visible={isVisible} selectedPixelValueRange={selectedRange} fullPixelValueRange={fullPixelValueRange} - pixelColor={color} + pixelColor={pixelColor} opacity={opacity} blendMode={shouldClip ? 'destination-atop' : 'normal'} /> diff --git a/src/landsat-explorer/components/MaskTool/MaskToolContainer.tsx b/src/landsat-explorer/components/MaskTool/MaskToolContainer.tsx index ee4867be..188daf5c 100644 --- a/src/landsat-explorer/components/MaskTool/MaskToolContainer.tsx +++ b/src/landsat-explorer/components/MaskTool/MaskToolContainer.tsx @@ -23,10 +23,10 @@ import { import { selectedIndex4MaskToolChanged } from '@shared/store/MaskTool/reducer'; import { selectSelectedIndex4MaskTool, - selectMaskOptions, + selectMaskLayerPixelValueRange, // selectActiveAnalysisTool, } from '@shared/store/MaskTool/selectors'; -import { updateSelectedRange } from '@shared/store/MaskTool/thunks'; +import { updateMaskLayerSelectedRange } from '@shared/store/MaskTool/thunks'; import React, { useEffect, useMemo } from 'react'; import { useDispatch } from 'react-redux'; import { useSelector } from 'react-redux'; @@ -51,7 +51,7 @@ export const MaskToolContainer = () => { const selectedSpectralIndex = useSelector(selectSelectedIndex4MaskTool); - const maskOptions = useSelector(selectMaskOptions); + const maskOptions = useSelector(selectMaskLayerPixelValueRange); const { objectIdOfSelectedScene } = useSelector(selectQueryParams4SceneInSelectedMode) || {}; @@ -142,7 +142,9 @@ export const MaskToolContainer = () => { min={-1} max={1} valuesOnChange={(values) => { - dispatch(updateSelectedRange(values)); + dispatch( + updateMaskLayerSelectedRange(values) + ); }} countOfTicks={17} tickLabels={[-1, -0.5, 0, 0.5, 1]} diff --git a/src/landsat-explorer/components/MaskTool/SurfaceTempPixelRangeSlider.tsx b/src/landsat-explorer/components/MaskTool/SurfaceTempPixelRangeSlider.tsx index f2e6e9ac..4d95f15c 100644 --- a/src/landsat-explorer/components/MaskTool/SurfaceTempPixelRangeSlider.tsx +++ b/src/landsat-explorer/components/MaskTool/SurfaceTempPixelRangeSlider.tsx @@ -15,10 +15,10 @@ import { selectSelectedIndex4MaskTool, - selectMaskOptions, + selectMaskLayerPixelValueRange, // selectActiveAnalysisTool, } from '@shared/store/MaskTool/selectors'; -import { updateSelectedRange } from '@shared/store/MaskTool/thunks'; +import { updateMaskLayerSelectedRange } from '@shared/store/MaskTool/thunks'; import React, { useEffect, useMemo } from 'react'; import { useDispatch } from 'react-redux'; import { useSelector } from 'react-redux'; @@ -36,7 +36,7 @@ export const SurfaceTempCelsiusPixelRangeSlider = () => { const selectedSpectralIndex = useSelector(selectSelectedIndex4MaskTool); - const maskOptions = useSelector(selectMaskOptions); + const maskOptions = useSelector(selectMaskLayerPixelValueRange); if (selectedSpectralIndex !== 'temperature celcius') { return null; @@ -49,7 +49,7 @@ export const SurfaceTempCelsiusPixelRangeSlider = () => { max={LANDSAT_SURFACE_TEMPERATURE_MAX_CELSIUS} steps={1} valuesOnChange={(values) => { - dispatch(updateSelectedRange(values)); + dispatch(updateMaskLayerSelectedRange(values)); }} countOfTicks={0} tickLabels={[-30, -15, 0, 15, 30, 45, 60, 75, 90]} @@ -63,7 +63,7 @@ export const SurfaceTempFarhenheitPixelRangeSlider = () => { const selectedSpectralIndex = useSelector(selectSelectedIndex4MaskTool); - const maskOptions = useSelector(selectMaskOptions); + const maskOptions = useSelector(selectMaskLayerPixelValueRange); const rangeValues = useMemo(() => { return [ @@ -87,7 +87,7 @@ export const SurfaceTempFarhenheitPixelRangeSlider = () => { Math.trunc(((value - 32) * 5) / 9) ); - dispatch(updateSelectedRange(values)); + dispatch(updateMaskLayerSelectedRange(values)); }} countOfTicks={0} tickLabels={[-20, 0, 30, 60, 90, 120, 150, 180]} diff --git a/src/landsat-explorer/store/getPreloadedState.ts b/src/landsat-explorer/store/getPreloadedState4LandsatExplorer.ts similarity index 100% rename from src/landsat-explorer/store/getPreloadedState.ts rename to src/landsat-explorer/store/getPreloadedState4LandsatExplorer.ts diff --git a/src/landsat-explorer/store/index.ts b/src/landsat-explorer/store/index.ts index 98e178da..847aee52 100644 --- a/src/landsat-explorer/store/index.ts +++ b/src/landsat-explorer/store/index.ts @@ -14,7 +14,7 @@ */ import configureAppStore from '@shared/store/configureStore'; -import { getPreloadedState } from './getPreloadedState'; +import { getPreloadedState } from './getPreloadedState4LandsatExplorer'; export const getLandsatExplorerStore = async () => { const preloadedState = await getPreloadedState(); diff --git a/src/landsat-surface-temp/components/MaskTool/MaskToolContainer.tsx b/src/landsat-surface-temp/components/MaskTool/MaskToolContainer.tsx index 8a73d8ba..21db7dfc 100644 --- a/src/landsat-surface-temp/components/MaskTool/MaskToolContainer.tsx +++ b/src/landsat-surface-temp/components/MaskTool/MaskToolContainer.tsx @@ -20,10 +20,10 @@ import { MaskLayerRenderingControls } from '@shared/components/MaskTool'; import { selectedIndex4MaskToolChanged } from '@shared/store/MaskTool/reducer'; import { selectSelectedIndex4MaskTool, - selectMaskOptions, + selectMaskLayerPixelValueRange, // selectActiveAnalysisTool, } from '@shared/store/MaskTool/selectors'; -import { updateSelectedRange } from '@shared/store/MaskTool/thunks'; +import { updateMaskLayerSelectedRange } from '@shared/store/MaskTool/thunks'; import React, { useEffect } from 'react'; import { useDispatch } from 'react-redux'; import { useSelector } from 'react-redux'; diff --git a/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx b/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx index 4ede9509..6c9f45d9 100644 --- a/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx +++ b/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx @@ -25,9 +25,10 @@ import React, { */ import { selectSelectedIndex4MaskTool, - selectMaskOptions, + selectMaskLayerPixelValueRange, selectShouldClipMaskLayer, selectMaskLayerOpcity, + selectMaskLayerPixelColor, // selectActiveAnalysisTool, } from '@shared/store/MaskTool/selectors'; import { useSelector } from 'react-redux'; @@ -72,7 +73,9 @@ export const Sentinel1MaskLayer: FC = ({ mapView, groupLayer }) => { selectSelectedIndex4MaskTool ) as RadarIndex; - const { selectedRange, color } = useSelector(selectMaskOptions); + const { selectedRange } = useSelector(selectMaskLayerPixelValueRange); + + const pixelColor = useSelector(selectMaskLayerPixelColor); const opacity = useSelector(selectMaskLayerOpcity); @@ -166,7 +169,7 @@ export const Sentinel1MaskLayer: FC = ({ mapView, groupLayer }) => { selectedPixelValueRange4Band2={selectedPixelValueRange4Band2} fullPixelValueRange={fullPixelValueRange} opacity={opacity} - pixelColor={color} + pixelColor={pixelColor} /> { const selectedIndex = useSelector(selectSelectedIndex4MaskTool); - const maskOptions = useSelector(selectMaskOptions); + const maskOptions = useSelector(selectMaskLayerPixelValueRange); const { objectIdOfSelectedScene } = useSelector(selectQueryParams4SceneInSelectedMode) || {}; @@ -93,9 +93,9 @@ export const Sentinel1MaskTool = () => { : 0.05; }, [selectedIndex]); - useEffect(() => { - dispatch(updateSelectedRange(fullPixelValueRange)); - }, [fullPixelValueRange]); + // useEffect(() => { + // dispatch(updateMaskLayerSelectedRange (fullPixelValueRange)); + // }, [fullPixelValueRange]); if (tool !== 'mask') { return null; @@ -142,7 +142,7 @@ export const Sentinel1MaskTool = () => { steps={steps} countOfTicks={countOfTicks} valuesOnChange={(values) => { - dispatch(updateSelectedRange(values)); + dispatch(updateMaskLayerSelectedRange(values)); }} showSliderTooltip={true} /> diff --git a/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx b/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx index bece9f4f..169bd063 100644 --- a/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx +++ b/src/sentinel-1-explorer/components/SceneInfo/SceneInfoContainer.tsx @@ -50,6 +50,7 @@ export const SceneInfoContainer = () => { { name: 'Scene ID', value: name, //name.slice(0, 22), + clickToCopy: true, }, // { // name: '', @@ -83,7 +84,7 @@ export const SceneInfoContainer = () => { name: 'Relative Orbit', value: relativeOrbit, }, - ]; + ] as SceneInfoTableData[]; }, [data]); if (mode === 'dynamic' || mode === 'analysis') { diff --git a/src/sentinel-1-explorer/store/getPreloadedState.ts b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts similarity index 90% rename from src/sentinel-1-explorer/store/getPreloadedState.ts rename to src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts index bb9daddc..22f61acc 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts @@ -41,22 +41,6 @@ import { } from '@shared/store/ImageryScene/reducer'; import { IS_MOBILE_DEVICE } from '@shared/constants/UI'; import { initialUIState, UIState } from '@shared/store/UI/reducer'; -// import { -// MaskToolState, -// initialMaskToolState, -// } from '@shared/store/MaskTool/reducer'; -// import { -// TrendToolState, -// initialTrendToolState, -// } from '@shared/store/TrendTool/reducer'; -// import { -// initialSpectralProfileToolState, -// SpectralProfileToolState, -// } from '@shared/store/SpectralProfileTool/reducer'; -// import { -// ChangeCompareToolState, -// initialChangeCompareToolState, -// } from '@shared/store/ChangeCompareTool/reducer'; import { PartialRootState } from '@shared/store/configureStore'; import { Sentinel1FunctionName } from '@shared/services/sentinel-1/config'; import { @@ -79,6 +63,8 @@ import { RadarIndex } from '@typing/imagery-service'; import { MaskToolState, initialMaskToolState, + MaskToolPixelValueRangeBySpectralIndex, + DefaultPixelValueRangeBySelectedIndex, } from '@shared/store/MaskTool/reducer'; // import { getRandomElement } from '@shared/utils/snippets/getRandomElement'; @@ -243,7 +229,34 @@ const getPreloadedTrendToolState = (): TrendToolState => { }; const getPreloadedMaskToolState = (): MaskToolState => { - const maskToolData = getMaskToolDataFromHashParams(); + const pixelValueRangeDataForSentinel1Explorer: MaskToolPixelValueRangeBySpectralIndex = + { + ...DefaultPixelValueRangeBySelectedIndex, + water: { + selectedRange: [0.25, 1], + }, + 'water anomaly': { + selectedRange: [-1, 0], + }, + ship: { + selectedRange: [0.3, 1], + }, + urban: { + selectedRange: [0.15, 1], + }, + }; + + const maskToolData = getMaskToolDataFromHashParams( + pixelValueRangeDataForSentinel1Explorer + ); + + if (!maskToolData) { + return { + ...initialMaskToolState, + pixelValueRangeBySelectedIndex: + pixelValueRangeDataForSentinel1Explorer, + }; + } return { ...initialMaskToolState, diff --git a/src/sentinel-1-explorer/store/index.ts b/src/sentinel-1-explorer/store/index.ts index 8047b7a2..724a3ebe 100644 --- a/src/sentinel-1-explorer/store/index.ts +++ b/src/sentinel-1-explorer/store/index.ts @@ -14,7 +14,7 @@ */ import configureAppStore from '@shared/store/configureStore'; -import { getPreloadedState } from './getPreloadedState'; +import { getPreloadedState } from './getPreloadedState4Sentinel1Explorer'; export const getSentinel1ExplorerStore = async () => { const preloadedState = await getPreloadedState(); diff --git a/src/shared/components/MaskTool/RenderingControlsContainer.tsx b/src/shared/components/MaskTool/RenderingControlsContainer.tsx index f8a844f5..f7b5049c 100644 --- a/src/shared/components/MaskTool/RenderingControlsContainer.tsx +++ b/src/shared/components/MaskTool/RenderingControlsContainer.tsx @@ -21,7 +21,8 @@ import { } from '@shared/store/MaskTool/reducer'; import { selectMaskLayerOpcity, - selectMaskOptions, + selectMaskLayerPixelColor, + selectMaskLayerPixelValueRange, selectShouldClipMaskLayer, } from '@shared/store/MaskTool/selectors'; import { updateMaskColor } from '@shared/store/MaskTool/thunks'; @@ -31,10 +32,7 @@ import { useDispatch } from 'react-redux'; export const RenderingControlsContainer = () => { const dispatch = useDispatch(); - /** - * options for selected spectral index - */ - const maskOptions = useSelector(selectMaskOptions); + const pixelColor = useSelector(selectMaskLayerPixelColor); /** * opacity of the mask layer @@ -50,7 +48,7 @@ export const RenderingControlsContainer = () => { { dispatch(updateMaskColor(color)); }} diff --git a/src/shared/components/RasterFunctionSelector/RasterFunctionSelector.tsx b/src/shared/components/RasterFunctionSelector/RasterFunctionSelector.tsx index ba0c6581..5e170ea2 100644 --- a/src/shared/components/RasterFunctionSelector/RasterFunctionSelector.tsx +++ b/src/shared/components/RasterFunctionSelector/RasterFunctionSelector.tsx @@ -77,7 +77,7 @@ export const RasterFunctionSelector: FC = ({ Renderer
-
+
{rasterFunctionInfo.map((d) => { const { name, thumbnail, label } = d; diff --git a/src/shared/components/SceneInfoTable/SceneInfoTable.tsx b/src/shared/components/SceneInfoTable/SceneInfoTable.tsx index 34df5b42..ebdd535f 100644 --- a/src/shared/components/SceneInfoTable/SceneInfoTable.tsx +++ b/src/shared/components/SceneInfoTable/SceneInfoTable.tsx @@ -13,9 +13,10 @@ * limitations under the License. */ +import { delay } from '@shared/utils/snippets/delay'; import classNames from 'classnames'; import { generateUID } from 'helper-toolkit-ts'; -import React, { FC } from 'react'; +import React, { FC, useState } from 'react'; /** * data for a single row in Scene Info Table @@ -40,16 +41,71 @@ type Props = { }; const SceneInfoRow: FC = ({ name, value, clickToCopy }) => { + const [hasCopied2Clipboard, setHasCopied2Clipboard] = + useState(false); + + const valueOnClickHandler = async () => { + if (!clickToCopy) { + return; + } + + await navigator.clipboard.writeText(value); + + setHasCopied2Clipboard(true); + + await delay(2000); + + setHasCopied2Clipboard(false); + }; + return ( <> -
+
{name}
-
- +
+ {value} + + {clickToCopy && ( + + )}
); diff --git a/src/shared/components/Slider/PixelRangeSlider.tsx b/src/shared/components/Slider/PixelRangeSlider.tsx index a4339314..43e4df98 100644 --- a/src/shared/components/Slider/PixelRangeSlider.tsx +++ b/src/shared/components/Slider/PixelRangeSlider.tsx @@ -107,11 +107,17 @@ export const PixelRangeSlider: FC = ({ return [ { mode: 'count', - values: countOfTicks || getCountOfTicks(min, max), + values: + countOfTicks !== undefined + ? countOfTicks + : getCountOfTicks(min, max), }, { mode: 'position', - values: tickLabels || getTickLabels(min, max), //[-1, -0.5, 0, 0.5, 1], + values: + tickLabels && tickLabels.length + ? tickLabels + : getTickLabels(min, max), //[-1, -0.5, 0, 0.5, 1], labelsVisible: true, }, ] as __esri.TickConfig[]; @@ -220,11 +226,13 @@ export const PixelRangeSlider: FC = ({ return; } + const tickConfigs = getTickConfigs(min, max); + sliderRef.current.min = min; sliderRef.current.max = max; sliderRef.current.values = values; sliderRef.current.steps = steps; - sliderRef.current.tickConfigs = getTickConfigs(min, max); + sliderRef.current.tickConfigs = tickConfigs; }, [min, max, values, steps, countOfTicks, tickLabels]); return ( diff --git a/src/shared/store/MaskTool/reducer.ts b/src/shared/store/MaskTool/reducer.ts index a740acd8..b01b4353 100644 --- a/src/shared/store/MaskTool/reducer.ts +++ b/src/shared/store/MaskTool/reducer.ts @@ -21,28 +21,30 @@ import { } from '@reduxjs/toolkit'; import { RadarIndex, SpectralIndex } from '@typing/imagery-service'; -export type MaskOptions = { +export type MaskLayerPixelValueRangeData = { selectedRange: number[]; - /** - * color array in RGB format - */ - color: number[]; }; -type MaskOptionsBySpectralIndex = Record< +export type MaskToolPixelValueRangeBySpectralIndex = Record< SpectralIndex | RadarIndex, - MaskOptions + MaskLayerPixelValueRangeData >; +type PixelColorBySpectralIndex = Record; + export type MaskToolState = { /** * user selected spectral/radar index to be used in the mask tool */ selectedIndex: SpectralIndex | RadarIndex; /** - * maks tool options by use selected index name + * Mask Layer Pixel Value range by index name */ - maskOptionsBySelectedIndex: MaskOptionsBySpectralIndex; + pixelValueRangeBySelectedIndex: MaskToolPixelValueRangeBySpectralIndex; + /** + * Maksk Layer pixel color by index name + */ + pixelColorBySelectedIndex: PixelColorBySpectralIndex; /** * opacity of the mask layer */ @@ -53,46 +55,56 @@ export type MaskToolState = { shouldClipMaskLayer: boolean; }; -export const initialMaskToolState: MaskToolState = { - selectedIndex: 'water', - maskLayerOpacity: 1, - shouldClipMaskLayer: false, - maskOptionsBySelectedIndex: { +export const DefaultPixelValueRangeBySelectedIndex: MaskToolPixelValueRangeBySpectralIndex = + { moisture: { selectedRange: [0, 1], - color: [89, 255, 252], + // color: [89, 255, 252], }, vegetation: { selectedRange: [0, 1], - color: [115, 255, 132], + // color: [115, 255, 132], }, water: { selectedRange: [0, 1], - color: [89, 214, 255], + // color: [89, 214, 255], }, 'temperature farhenheit': { // selectedRange: [30, 140], // the mask layer throws error when using farhenheit as input unit, // therefore we will just use celsius degrees in the selectedRange selectedRange: [0, 60], - color: [251, 182, 100], + // color: [251, 182, 100], }, 'temperature celcius': { selectedRange: [0, 60], // default range should be between 0-60 celcius degrees - color: [251, 182, 100], + // color: [251, 182, 100], }, 'water anomaly': { - selectedRange: [0, 1], - color: [255, 214, 102], + selectedRange: [-1, 0], }, ship: { - selectedRange: [0.3, 1], - color: [255, 0, 21], + selectedRange: [0, 1], }, urban: { - selectedRange: [0.2, 1], - color: [255, 0, 21], + selectedRange: [0, 1], }, + }; + +export const initialMaskToolState: MaskToolState = { + selectedIndex: 'water', + maskLayerOpacity: 1, + shouldClipMaskLayer: false, + pixelValueRangeBySelectedIndex: DefaultPixelValueRangeBySelectedIndex, + pixelColorBySelectedIndex: { + moisture: [89, 255, 252], + vegetation: [115, 255, 132], + water: [89, 214, 255], + 'temperature farhenheit': [251, 182, 100], + 'temperature celcius': [251, 182, 100], + 'water anomaly': [255, 214, 102], + ship: [255, 0, 21], + urban: [255, 0, 21], }, }; @@ -106,9 +118,20 @@ const slice = createSlice({ ) => { state.selectedIndex = action.payload; }, - maskOptionsChanged: (state, action: PayloadAction) => { + pixelValueRangeChanged: ( + state, + action: PayloadAction + ) => { + const selectedIndex = state.selectedIndex; + state.pixelValueRangeBySelectedIndex[selectedIndex] = + action.payload; + }, + maskLayerPixelColorChanged: ( + state, + action: PayloadAction + ) => { const selectedIndex = state.selectedIndex; - state.maskOptionsBySelectedIndex[selectedIndex] = action.payload; + state.pixelColorBySelectedIndex[selectedIndex] = action.payload; }, maskLayerOpacityChanged: (state, action: PayloadAction) => { state.maskLayerOpacity = action.payload; @@ -124,9 +147,10 @@ const { reducer } = slice; export const { // activeAnalysisToolChanged, selectedIndex4MaskToolChanged, - maskOptionsChanged, + pixelValueRangeChanged, maskLayerOpacityChanged, shouldClipMaskLayerToggled, + maskLayerPixelColorChanged, } = slice.actions; export default reducer; diff --git a/src/shared/store/MaskTool/selectors.ts b/src/shared/store/MaskTool/selectors.ts index dd006ca1..6740c5c5 100644 --- a/src/shared/store/MaskTool/selectors.ts +++ b/src/shared/store/MaskTool/selectors.ts @@ -21,11 +21,18 @@ export const selectSelectedIndex4MaskTool = createSelector( (selectedIndex) => selectedIndex ); -export const selectMaskOptions = createSelector( +export const selectMaskLayerPixelValueRange = createSelector( (state: RootState) => state.MaskTool.selectedIndex, - (state: RootState) => state.MaskTool.maskOptionsBySelectedIndex, - (selectedIndex, maskOptionsBySpectralIndex) => - maskOptionsBySpectralIndex[selectedIndex] + (state: RootState) => state.MaskTool.pixelValueRangeBySelectedIndex, + (selectedIndex, pixelValueRangeBySelectedIndex) => + pixelValueRangeBySelectedIndex[selectedIndex] +); + +export const selectMaskLayerPixelColor = createSelector( + (state: RootState) => state.MaskTool.selectedIndex, + (state: RootState) => state.MaskTool.pixelColorBySelectedIndex, + (selectedIndex, pixelColorBySelectedIndex) => + pixelColorBySelectedIndex[selectedIndex] || [255, 255, 255] ); export const selectMaskLayerOpcity = createSelector( diff --git a/src/shared/store/MaskTool/thunks.ts b/src/shared/store/MaskTool/thunks.ts index 99839177..45f6a55a 100644 --- a/src/shared/store/MaskTool/thunks.ts +++ b/src/shared/store/MaskTool/thunks.ts @@ -15,10 +15,10 @@ import { Point } from '@arcgis/core/geometry'; import { RootState, StoreDispatch, StoreGetState } from '../configureStore'; -import { MaskOptions, maskOptionsChanged } from './reducer'; +import { maskLayerPixelColorChanged, pixelValueRangeChanged } from './reducer'; import { // selectActiveAnalysisTool, - selectMaskOptions, + selectMaskLayerPixelValueRange, // selectSamplingTemporalResolution, } from './selectors'; @@ -27,30 +27,23 @@ import { * @param values updated range of the mask layer * @returns void */ -export const updateSelectedRange = +export const updateMaskLayerSelectedRange = (values: number[]) => async (dispatch: StoreDispatch, getState: StoreGetState) => { - const maskOptions = selectMaskOptions(getState()); + const pixelValueRangeData = selectMaskLayerPixelValueRange(getState()); const selectedRange = [...values]; - const updatedMaskOptions = { - ...maskOptions, + const updatedPixelValueRange = { + ...pixelValueRangeData, selectedRange, }; - dispatch(maskOptionsChanged(updatedMaskOptions)); + dispatch(pixelValueRangeChanged(updatedPixelValueRange)); }; export const updateMaskColor = (color: number[]) => async (dispatch: StoreDispatch, getState: StoreGetState) => { - const maskOptions = selectMaskOptions(getState()); - - const updatedMaskOptions = { - ...maskOptions, - color, - }; - - dispatch(maskOptionsChanged(updatedMaskOptions)); + dispatch(maskLayerPixelColorChanged(color)); }; diff --git a/src/shared/utils/url-hash-params/maskTool.ts b/src/shared/utils/url-hash-params/maskTool.ts index 9a9f91c6..d6ba26be 100644 --- a/src/shared/utils/url-hash-params/maskTool.ts +++ b/src/shared/utils/url-hash-params/maskTool.ts @@ -16,6 +16,8 @@ import { MaskToolState, initialMaskToolState, + MaskToolPixelValueRangeBySpectralIndex, + DefaultPixelValueRangeBySelectedIndex, } from '@shared/store/MaskTool/reducer'; import { SpectralIndex } from '@typing/imagery-service'; import { debounce } from '../snippets/debounce'; @@ -30,21 +32,33 @@ export const encodeMaskToolData = (data: MaskToolState): string => { selectedIndex, shouldClipMaskLayer, maskLayerOpacity, - maskOptionsBySelectedIndex, + pixelValueRangeBySelectedIndex, + pixelColorBySelectedIndex, } = data; - const maskOptions = maskOptionsBySelectedIndex[selectedIndex]; + const pixelValueRange = pixelValueRangeBySelectedIndex[selectedIndex]; + + const pixelColor = pixelColorBySelectedIndex[selectedIndex]; return [ selectedIndex, shouldClipMaskLayer, maskLayerOpacity, - maskOptions?.color, - maskOptions?.selectedRange, + pixelColor, + pixelValueRange?.selectedRange, ].join('|'); }; -export const decodeMaskToolData = (val: string): MaskToolState => { +/** + * Decode mask tool data from URL hash parameters + * @param val - A string from URL hash parameters + * @param pixelValueRangeData - Optional custom pixel value range data to override the default values + * @returns MaskToolState to be used by the Redux store, or null if the input value is empty + */ +export const decodeMaskToolData = ( + val: string, + pixelValueRangeData?: MaskToolPixelValueRangeBySpectralIndex +): MaskToolState => { if (!val) { return null; } @@ -57,24 +71,32 @@ export const decodeMaskToolData = (val: string): MaskToolState => { selectedRange, ] = val.split('|'); - const maskOptionForSelectedSpectralIndex = - color && selectedRange - ? { - color: color.split(',').map((d) => +d), - selectedRange: selectedRange.split(',').map((d) => +d), - } - : initialMaskToolState.maskOptionsBySelectedIndex[ - selectedIndex as SpectralIndex - ]; + const pixelValueRangeBySelectedIndex = pixelValueRangeData + ? { ...pixelValueRangeData } + : { ...DefaultPixelValueRangeBySelectedIndex }; + + if (selectedRange) { + pixelValueRangeBySelectedIndex[selectedIndex as SpectralIndex] = { + selectedRange: selectedRange.split(',').map((d) => +d), + }; + } + + const pixelColorBySelectedIndex = { + ...initialMaskToolState.pixelColorBySelectedIndex, + }; + + if (color) { + pixelColorBySelectedIndex[selectedIndex as SpectralIndex] = color + .split(',') + .map((d) => +d); + } return { selectedIndex: selectedIndex as SpectralIndex, shouldClipMaskLayer: shouldClipMaskLayer === 'true', maskLayerOpacity: +maskLayerOpacity, - maskOptionsBySelectedIndex: { - ...initialMaskToolState.maskOptionsBySelectedIndex, - [selectedIndex]: maskOptionForSelectedSpectralIndex, - }, + pixelValueRangeBySelectedIndex, + pixelColorBySelectedIndex, }; }; @@ -82,7 +104,14 @@ export const saveMaskToolToHashParams = debounce((data: MaskToolState) => { updateHashParams('mask', encodeMaskToolData(data)); }, 500); -export const getMaskToolDataFromHashParams = (): MaskToolState => { +/** + * + * @param pixelValueRangeData custom pixel value range data to override the default values + * @returns + */ +export const getMaskToolDataFromHashParams = ( + pixelValueRangeData?: MaskToolPixelValueRangeBySpectralIndex +): MaskToolState => { const value = getHashParamValueByKey('mask'); - return decodeMaskToolData(value); + return decodeMaskToolData(value, pixelValueRangeData); }; From 5a03b350db81c073b89ae7b310f68468374baf8c Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 6 Jun 2024 14:01:27 -0700 Subject: [PATCH 059/151] feat(shared): add useCalcMaskLayerTotalArea custom hook --- .../MaskLayer/Sentinel1MaskLayer.tsx | 3 + .../hooks/useCalcMaskLayerTotalArea.tsx | 85 +++++++++++++++++++ src/shared/services/helpers/getFeatureById.ts | 7 +- 3 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 src/shared/hooks/useCalcMaskLayerTotalArea.tsx diff --git a/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx b/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx index 6c9f45d9..22c7c15d 100644 --- a/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx +++ b/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx @@ -46,6 +46,7 @@ import { import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; import { Sentinel1PixelValueRangeByIndex } from '../MaskTool/Sentinel1MaskTool'; import { WaterLandMaskLayer } from './WaterLandMaskLayer'; +import { useCalcMaskLayerTotalArea } from '@shared/hooks/useCalcMaskLayerTotalArea'; type Props = { mapView?: MapView; @@ -129,6 +130,8 @@ export const Sentinel1MaskLayer: FC = ({ mapView, groupLayer }) => { groupLayer.add(groupLayer4MaskAndWaterLandLayersRef.current); }; + useCalcMaskLayerTotalArea(SENTINEL_1_SERVICE_URL, mapView); + useEffect(() => { initGroupLayer4MaskAndWaterLandLayers(); }, []); diff --git a/src/shared/hooks/useCalcMaskLayerTotalArea.tsx b/src/shared/hooks/useCalcMaskLayerTotalArea.tsx new file mode 100644 index 00000000..41038652 --- /dev/null +++ b/src/shared/hooks/useCalcMaskLayerTotalArea.tsx @@ -0,0 +1,85 @@ +import MapView from '@arcgis/core/views/MapView'; +import { getFeatureByObjectId } from '@shared/services/helpers/getFeatureById'; +import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; +import { + selectActiveAnalysisTool, + selectAppMode, + selectQueryParams4SceneInSelectedMode, +} from '@shared/store/ImageryScene/selectors'; +import { selectMapCenter, selectMapExtent } from '@shared/store/Map/selectors'; +import React, { useEffect, useRef, useState } from 'react'; +import { useSelector } from 'react-redux'; +import { clip, planarArea } from '@arcgis/core/geometry/geometryEngineAsync.js'; +import { Polygon } from '@arcgis/core/geometry'; +import { IFeature } from '@esri/arcgis-rest-feature-service'; + +const featureByObjectId: Map = new Map(); + +/** + * Custom React hook to calculate the total area of a mask layer on the map. + * + * @param {string} imageryServiceURL - The URL of the imagery service. + * @param {MapView} mapView - The ArcGIS MapView instance. + */ +export const useCalcMaskLayerTotalArea = ( + imageryServiceURL: string, + mapView: MapView +) => { + const mode = useSelector(selectAppMode); + + const analyzeTool = useSelector(selectActiveAnalysisTool); + + const { objectIdOfSelectedScene } = + useSelector(selectQueryParams4SceneInSelectedMode) || {}; + + const center = useSelector(selectMapCenter); + + const abortControllerRef = useRef(); + + const getTotalArea = async () => { + if (!objectIdOfSelectedScene) { + return; + } + + if (mode !== 'analysis' || analyzeTool !== 'mask') { + return; + } + + try { + if (abortControllerRef.current) { + abortControllerRef.current.abort(); + } + + abortControllerRef.current = new AbortController(); + + // Retrieve the feature for the selected imagery scene + const feature = featureByObjectId.has(objectIdOfSelectedScene) + ? featureByObjectId.get(objectIdOfSelectedScene) + : await getFeatureByObjectId( + imageryServiceURL, + objectIdOfSelectedScene, + abortControllerRef.current + ); + + featureByObjectId.set(objectIdOfSelectedScene, feature); + + const geometry = feature.geometry as any; + + const { extent } = mapView; + + // clip with map extent + const clipped = (await clip(geometry, extent)) as Polygon; + + // calculate area of clipped geometry in sq kilometeres + const area = await planarArea(clipped, 'square-kilometers'); + + console.log(area); + } catch (err) { + console.log('failed to calculate area of mask layer', err); + } + }; + + useEffect(() => { + getTotalArea(); + }, [objectIdOfSelectedScene, center, mode, analyzeTool]); +}; diff --git a/src/shared/services/helpers/getFeatureById.ts b/src/shared/services/helpers/getFeatureById.ts index 7ae39c6b..a8c5400d 100644 --- a/src/shared/services/helpers/getFeatureById.ts +++ b/src/shared/services/helpers/getFeatureById.ts @@ -8,7 +8,8 @@ import { IFeature } from '@esri/arcgis-rest-feature-service'; */ export const getFeatureByObjectId = async ( serviceUrl: string, - objectId: number + objectId: number, + abortController?: AbortController ): Promise => { const queryParams = new URLSearchParams({ f: 'json', @@ -17,7 +18,9 @@ export const getFeatureByObjectId = async ( outFields: '*', }); - const res = await fetch(`${serviceUrl}/query?${queryParams.toString()}`); + const res = await fetch(`${serviceUrl}/query?${queryParams.toString()}`, { + signal: abortController?.signal, + }); if (!res.ok) { throw new Error('failed to query ' + serviceUrl); From 06ed5d37425c1b1af93db1adcb350d12cfa427b4 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 6 Jun 2024 14:27:29 -0700 Subject: [PATCH 060/151] feat(shared): update Mask Tool slice of Redux store add totalAreaInSqKm and percentOfPixelsInSelectedRange --- .../hooks/useCalcMaskLayerTotalArea.tsx | 7 ++++++- src/shared/store/MaskTool/reducer.ts | 21 +++++++++++++++++++ src/shared/store/MaskTool/selectors.ts | 10 +++++++++ src/shared/utils/url-hash-params/maskTool.ts | 2 ++ 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/shared/hooks/useCalcMaskLayerTotalArea.tsx b/src/shared/hooks/useCalcMaskLayerTotalArea.tsx index 41038652..6d311590 100644 --- a/src/shared/hooks/useCalcMaskLayerTotalArea.tsx +++ b/src/shared/hooks/useCalcMaskLayerTotalArea.tsx @@ -12,6 +12,8 @@ import { useSelector } from 'react-redux'; import { clip, planarArea } from '@arcgis/core/geometry/geometryEngineAsync.js'; import { Polygon } from '@arcgis/core/geometry'; import { IFeature } from '@esri/arcgis-rest-feature-service'; +import { useDispatch } from 'react-redux'; +import { totalAreaInSqKmChanged } from '@shared/store/MaskTool/reducer'; const featureByObjectId: Map = new Map(); @@ -25,6 +27,8 @@ export const useCalcMaskLayerTotalArea = ( imageryServiceURL: string, mapView: MapView ) => { + const dispatch = useDispatch(); + const mode = useSelector(selectAppMode); const analyzeTool = useSelector(selectActiveAnalysisTool); @@ -72,8 +76,9 @@ export const useCalcMaskLayerTotalArea = ( // calculate area of clipped geometry in sq kilometeres const area = await planarArea(clipped, 'square-kilometers'); + // console.log(area); - console.log(area); + dispatch(totalAreaInSqKmChanged(area)); } catch (err) { console.log('failed to calculate area of mask layer', err); } diff --git a/src/shared/store/MaskTool/reducer.ts b/src/shared/store/MaskTool/reducer.ts index b01b4353..6771fca3 100644 --- a/src/shared/store/MaskTool/reducer.ts +++ b/src/shared/store/MaskTool/reducer.ts @@ -53,6 +53,14 @@ export type MaskToolState = { * if true, mask layer should be used to clip the imagery scene */ shouldClipMaskLayer: boolean; + /** + * total area of the Mask layer in square kilometers + */ + totalAreaInSqKm: number; + /** + * percent of pixels of the Mask layer that are with in the selected pixel value range + */ + percentOfPixelsInSelectedRange: number; }; export const DefaultPixelValueRangeBySelectedIndex: MaskToolPixelValueRangeBySpectralIndex = @@ -106,6 +114,8 @@ export const initialMaskToolState: MaskToolState = { ship: [255, 0, 21], urban: [255, 0, 21], }, + totalAreaInSqKm: 0, + percentOfPixelsInSelectedRange: 0, }; const slice = createSlice({ @@ -139,6 +149,15 @@ const slice = createSlice({ shouldClipMaskLayerToggled: (state, action: PayloadAction) => { state.shouldClipMaskLayer = !state.shouldClipMaskLayer; }, + totalAreaInSqKmChanged: (state, action: PayloadAction) => { + state.totalAreaInSqKm = action.payload; + }, + percentOfPixelsInSelectedRangeChanged: ( + state, + action: PayloadAction + ) => { + state.percentOfPixelsInSelectedRange = action.payload; + }, }, }); @@ -151,6 +170,8 @@ export const { maskLayerOpacityChanged, shouldClipMaskLayerToggled, maskLayerPixelColorChanged, + totalAreaInSqKmChanged, + percentOfPixelsInSelectedRangeChanged, } = slice.actions; export default reducer; diff --git a/src/shared/store/MaskTool/selectors.ts b/src/shared/store/MaskTool/selectors.ts index 6740c5c5..2545246d 100644 --- a/src/shared/store/MaskTool/selectors.ts +++ b/src/shared/store/MaskTool/selectors.ts @@ -49,3 +49,13 @@ export const selectMaskToolState = createSelector( (state: RootState) => state.MaskTool, (maskTool) => maskTool ); + +export const selectTotalAreaOfMaskLayer = createSelector( + (state: RootState) => state.MaskTool.totalAreaInSqKm, + (totalAreaInSqKm) => totalAreaInSqKm +); + +export const selectPercentOfPixelsInSelectedRange = createSelector( + (state: RootState) => state.MaskTool.percentOfPixelsInSelectedRange, + (percentOfPixelsInSelectedRange) => percentOfPixelsInSelectedRange +); diff --git a/src/shared/utils/url-hash-params/maskTool.ts b/src/shared/utils/url-hash-params/maskTool.ts index d6ba26be..861190eb 100644 --- a/src/shared/utils/url-hash-params/maskTool.ts +++ b/src/shared/utils/url-hash-params/maskTool.ts @@ -97,6 +97,8 @@ export const decodeMaskToolData = ( maskLayerOpacity: +maskLayerOpacity, pixelValueRangeBySelectedIndex, pixelColorBySelectedIndex, + totalAreaInSqKm: 0, + percentOfPixelsInSelectedRange: 0, }; }; From ea1c4d52a920543855fb1dd935bd010c4e1857ec Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 6 Jun 2024 15:46:31 -0700 Subject: [PATCH 061/151] feat(shared): update Map Popup to enable click to copy popup location ref #27 - add getPopUpContentWithLocationInfo helper function - update getMainContent to enable click to copy popup location --- .../components/PopUp/helper.ts | 13 ++- .../components/Popup/PopupContainer.tsx | 5 +- .../components/Popup/helper.ts | 79 ++++++++++--------- src/shared/components/MapPopup/MapPopup.tsx | 4 +- src/shared/components/MapPopup/helper.ts | 50 ++++++++++++ 5 files changed, 103 insertions(+), 48 deletions(-) diff --git a/src/landsat-explorer/components/PopUp/helper.ts b/src/landsat-explorer/components/PopUp/helper.ts index fbcca4c9..396014bd 100644 --- a/src/landsat-explorer/components/PopUp/helper.ts +++ b/src/landsat-explorer/components/PopUp/helper.ts @@ -18,6 +18,7 @@ import { getValFromThermalBand, } from '@shared/services/landsat-level-2/helpers'; import Point from '@arcgis/core/geometry/Point'; +import { getPopUpContentWithLocationInfo } from '@shared/components/MapPopup/helper'; // export const getLoadingIndicator = () => { // const popupDiv = document.createElement('div'); @@ -26,8 +27,8 @@ import Point from '@arcgis/core/geometry/Point'; // }; export const getMainContent = (values: number[], mapPoint: Point) => { - const lat = Math.round(mapPoint.latitude * 1000) / 1000; - const lon = Math.round(mapPoint.longitude * 1000) / 1000; + // const lat = Math.round(mapPoint.latitude * 1000) / 1000; + // const lon = Math.round(mapPoint.longitude * 1000) / 1000; // const popupDiv = document.createElement('div'); @@ -60,17 +61,15 @@ export const getMainContent = (values: number[], mapPoint: Point) => { const waterIndex = calcSpectralIndex('water', values).toFixed(3); - return ` + const content = `
Surface Temp: ${surfaceTempInfo}
NDVI: ${vegetationIndex} MNDWI: ${waterIndex}
-
-

x ${lon}

-

y ${lat}

-
`; + + return getPopUpContentWithLocationInfo(mapPoint, content); }; diff --git a/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx b/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx index 76c9bbe7..5a0b1f2d 100644 --- a/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx +++ b/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx @@ -29,8 +29,7 @@ import { MapPopup, MapPopupData } from '@shared/components/MapPopup/MapPopup'; import { identify } from '@shared/services/helpers/identify'; import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; import { getFormattedSentinel1Scenes } from '@shared/services/sentinel-1/getSentinel1Scenes'; -import { getPixelValuesFromIdentifyTaskResponse } from '@shared/services/helpers/getPixelValuesFromIdentifyTaskResponse'; -import { getMainContent } from './helper'; +import { getPopUpContentWithLocationInfo } from '@shared/components/MapPopup/helper'; type Props = { mapView?: MapView; @@ -106,7 +105,7 @@ export const PopupContainer: FC = ({ mapView }) => { // Set the popup's title to the coordinates of the location title, location: mapPoint, // Set the location of the popup to the clicked location - content: getMainContent(mapPoint), + content: getPopUpContentWithLocationInfo(mapPoint, ''), }); } catch (error: any) { setData({ diff --git a/src/sentinel-1-explorer/components/Popup/helper.ts b/src/sentinel-1-explorer/components/Popup/helper.ts index 4eba3680..b23ce066 100644 --- a/src/sentinel-1-explorer/components/Popup/helper.ts +++ b/src/sentinel-1-explorer/components/Popup/helper.ts @@ -1,43 +1,50 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// /* Copyright 2024 Esri +// * +// * Licensed under the Apache License Version 2.0 (the "License"); +// * you may not use this file except in compliance with the License. +// * You may obtain a copy of the License at +// * +// * http://www.apache.org/licenses/LICENSE-2.0 +// * +// * Unless required by applicable law or agreed to in writing, software +// * distributed under the License is distributed on an "AS IS" BASIS, +// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// * See the License for the specific language governing permissions and +// * limitations under the License. +// */ -import Point from '@arcgis/core/geometry/Point'; -// import { calcRadarIndex } from '@shared/services/sentinel-1/helper'; +// import Point from '@arcgis/core/geometry/Point'; + +// export const getPopUpContent = (mapPoint: Point) => { +// const lat = Math.round(mapPoint.latitude * 1000) / 1000; +// const lon = Math.round(mapPoint.longitude * 1000) / 1000; -// export const getLoadingIndicator = () => { // const popupDiv = document.createElement('div'); -// popupDiv.innerHTML = ``; -// return popupDiv; -// }; -export const getMainContent = (mapPoint: Point) => { - const lat = Math.round(mapPoint.latitude * 1000) / 1000; - const lon = Math.round(mapPoint.longitude * 1000) / 1000; +// popupDiv.innerHTML = ` +// +// `; - // const waterIndex = calcRadarIndex('water', values).toFixed(3); +// const locationInfo = popupDiv.querySelector('.popup-location-info'); - // const waterAnomalyIndex = calcRadarIndex('water anomaly', values).toFixed( - // 3 - // ); +// if (locationInfo) { +// locationInfo.addEventListener('click', async () => { +// // console.log('clicked on popup location info') +// await navigator.clipboard.writeText( +// `x: ${mapPoint.longitude.toFixed( +// 5 +// )} y: ${mapPoint.latitude.toFixed(5)}` +// ); +// }); +// } - return ` -
-
-

x ${lon}

-

y ${lat}

-
-
- `; -}; +// return popupDiv; +// }; diff --git a/src/shared/components/MapPopup/MapPopup.tsx b/src/shared/components/MapPopup/MapPopup.tsx index acd51771..e0928df9 100644 --- a/src/shared/components/MapPopup/MapPopup.tsx +++ b/src/shared/components/MapPopup/MapPopup.tsx @@ -39,9 +39,9 @@ export type MapPopupData = { */ title: string; /** - * html string of the popup content + * popup content */ - content: string; + content: string | HTMLDivElement; /** * point of the popup anchor location */ diff --git a/src/shared/components/MapPopup/helper.ts b/src/shared/components/MapPopup/helper.ts index ebf2e9bf..1574a4d8 100644 --- a/src/shared/components/MapPopup/helper.ts +++ b/src/shared/components/MapPopup/helper.ts @@ -1,3 +1,5 @@ +import { Point } from '@arcgis/core/geometry'; + /** * Check and see if user clicked on the left side of the swipe widget * @param swipePosition position of the swipe handler, value should be bewteen 0 - 100 @@ -19,3 +21,51 @@ export const getLoadingIndicator = () => { popupDiv.innerHTML = ``; return popupDiv; }; + +/** + * Get HTML Div Element that will be used as content of Map Popup. + * The popup location information will be added to the bottom of the this Div Element. + * @param mapPoint + * @param popupContent + * @returns + */ +export const getPopUpContentWithLocationInfo = ( + mapPoint: Point, + popupContent?: string +): HTMLDivElement => { + const lat = Math.round(mapPoint.latitude * 1000) / 1000; + const lon = Math.round(mapPoint.longitude * 1000) / 1000; + + const popupDiv = document.createElement('div'); + + popupContent = popupContent || ''; + + popupDiv.innerHTML = + popupContent + + ` + + `; + + const locationInfo = popupDiv.querySelector('.popup-location-info'); + + if (locationInfo) { + locationInfo.addEventListener('click', async () => { + // console.log('clicked on popup location info') + await navigator.clipboard.writeText( + `x: ${mapPoint.longitude.toFixed( + 5 + )} y: ${mapPoint.latitude.toFixed(5)}` + ); + }); + } + + return popupDiv; +}; From ca718fd28c76e1db3aed71b7da9da65d9f2acb5b Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 7 Jun 2024 10:38:43 -0700 Subject: [PATCH 062/151] fix(shared): update identify helper function ti accept more input params --- .../components/Popup/PopupContainer.tsx | 8 +++- src/shared/services/helpers/identify.ts | 40 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx b/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx index 5a0b1f2d..2740973f 100644 --- a/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx +++ b/src/sentinel-1-explorer/components/Popup/PopupContainer.tsx @@ -27,9 +27,13 @@ import { import { formatInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone'; import { MapPopup, MapPopupData } from '@shared/components/MapPopup/MapPopup'; import { identify } from '@shared/services/helpers/identify'; -import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; +import { + SENTINEL_1_SERVICE_URL, + Sentinel1FunctionName, +} from '@shared/services/sentinel-1/config'; import { getFormattedSentinel1Scenes } from '@shared/services/sentinel-1/getSentinel1Scenes'; import { getPopUpContentWithLocationInfo } from '@shared/components/MapPopup/helper'; +import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; type Props = { mapView?: MapView; @@ -75,6 +79,8 @@ export const PopupContainer: FC = ({ mapView }) => { mode !== 'dynamic' ? [queryParams?.objectIdOfSelectedScene] : null, + maxItemCount: 1, + resolution: mapView.resolution, abortController: controller, }); diff --git a/src/shared/services/helpers/identify.ts b/src/shared/services/helpers/identify.ts index 6a55fdca..03a64b3e 100644 --- a/src/shared/services/helpers/identify.ts +++ b/src/shared/services/helpers/identify.ts @@ -16,6 +16,7 @@ import { Geometry, Point } from '@arcgis/core/geometry'; import { IFeature } from '@esri/arcgis-rest-feature-service'; import { getMosaicRuleByObjectIds } from './getMosaicRuleByObjectId'; +import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; /** * Parameters for the Identify Task @@ -33,6 +34,19 @@ export type IdentifyTaskParams = { * Object IDs of the imagery scenes */ objectIds?: number[]; + /** + * Raster Function that will be used as rendering rule + */ + rasterFunction?: RasterFunction; + /** + * the resoultion of the map view, it is the size of one pixel in map units. + * The value of resolution can be found by dividing the extent width by the view's width. + */ + resolution?: number; + /** + * specify the number of catalog items that will be returned + */ + maxItemCount?: number; /** * Abort controller to be used to cancel the identify task */ @@ -67,6 +81,9 @@ export const identify = async ({ serviceURL, point, objectIds, + rasterFunction, + resolution, + maxItemCount, abortController, }: IdentifyTaskParams): Promise => { const mosaicRule = @@ -96,6 +113,29 @@ export const identify = async ({ mosaicRule: JSON.stringify(mosaicRule), }); + if (rasterFunction) { + const renderingRule = rasterFunction.toJSON(); + + params.append('renderingRules', JSON.stringify(renderingRule)); + } + + if (resolution) { + const pixelSize = JSON.stringify({ + x: resolution, + y: resolution, + spatialReference: { + wkid: 102100, + latestWkid: 3857, + }, + }); + + params.append('pixelSize', JSON.stringify(pixelSize)); + } + + if (maxItemCount) { + params.append('maxItemCount', maxItemCount.toString()); + } + const requestURL = `${serviceURL}/identify?${params.toString()}`; const res = await fetch(requestURL, { signal: abortController.signal }); From e96d6974e17d4a9aac074b604d11aeb706994d5e Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 7 Jun 2024 10:43:55 -0700 Subject: [PATCH 063/151] fix(landsatexplorer): Identity task for Popup should specify maxItemCount to 1 --- src/landsat-explorer/components/PopUp/PopupContainer.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/landsat-explorer/components/PopUp/PopupContainer.tsx b/src/landsat-explorer/components/PopUp/PopupContainer.tsx index 433becc0..e4937f79 100644 --- a/src/landsat-explorer/components/PopUp/PopupContainer.tsx +++ b/src/landsat-explorer/components/PopUp/PopupContainer.tsx @@ -82,6 +82,7 @@ export const PopupContainer: FC = ({ mapView }) => { ? [queryParams?.objectIdOfSelectedScene] : null, abortController: controller, + maxItemCount: 1, }); // console.log(res) From e19c92b0df14479f6a37cd526fe40c26598fefef Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 7 Jun 2024 12:49:58 -0700 Subject: [PATCH 064/151] fix(sentinel1explorer): TemporalCompositeTool should use correct Ranster Function --- .../components/TemporalCompositeTool/TemporalCompositeTool.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx b/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx index 8be3eb1e..84c4c87c 100644 --- a/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx +++ b/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx @@ -38,7 +38,7 @@ export const TemporalCompositeTool = () => { const rasterFunctionDropdownOptions: DropdownData[] = useMemo(() => { const VVdBRasterFunction: Sentinel1FunctionName = 'VV dB Colorized'; - const VHdBRasterFunction: Sentinel1FunctionName = 'VV dB Colorized'; + const VHdBRasterFunction: Sentinel1FunctionName = 'VH dB Colorized'; const data = [ { From 1dfee99a79df5feefa236a1393c4cca72eaf4b1d Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 7 Jun 2024 13:30:42 -0700 Subject: [PATCH 065/151] feat(shared): add encodeTemporalCompositeTool and decodeTemporalCompositeTool to URL hash params helper functions --- .../getPreloadedState4Sentinel1Explorer.ts | 8 +++- .../components/ImageryLayer/useImageLayer.tsx | 2 - .../hooks/useSaveAppState2HashParams.tsx | 14 ++++++ .../store/TemporalCompositeTool/selectors.ts | 5 +++ src/shared/utils/url-hash-params/index.ts | 6 +++ .../url-hash-params/temporalCompositeTool.ts | 44 +++++++++++++++++++ 6 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 src/shared/utils/url-hash-params/temporalCompositeTool.ts diff --git a/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts index 22f61acc..675cb193 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts @@ -27,6 +27,7 @@ import { getQueryParams4SecondarySceneFromHashParams, getSpectralProfileToolDataFromHashParams, getTemporalProfileToolDataFromHashParams, + getTemporalCompositeToolDataFromHashParams, } from '@shared/utils/url-hash-params'; import { MAP_CENTER, MAP_ZOOM } from '@shared/constants/map'; // import { initialUIState, UIState } from './UI/reducer'; @@ -183,11 +184,14 @@ const getPreloadedUIState = (): UIState => { const getPreloadedTemporalCompositeToolState = (): TemporalCompositeToolState => { - const rasterFunction: Sentinel1FunctionName = 'VV dB Colorized'; + const data = getTemporalCompositeToolDataFromHashParams(); + + const defaultRasterFunction: Sentinel1FunctionName = 'VV dB Colorized'; const proloadedState: TemporalCompositeToolState = { ...initialState4TemporalCompositeTool, - rasterFunction: rasterFunction, + ...data, + rasterFunction: data.rasterFunction || defaultRasterFunction, }; return proloadedState; diff --git a/src/shared/components/ImageryLayer/useImageLayer.tsx b/src/shared/components/ImageryLayer/useImageLayer.tsx index eb950abe..7fd6cdc0 100644 --- a/src/shared/components/ImageryLayer/useImageLayer.tsx +++ b/src/shared/components/ImageryLayer/useImageLayer.tsx @@ -129,8 +129,6 @@ export const useImageryLayerByObjectId = ({ return; } - console.log(visible); - layerRef.current.visible = visible; }, [visible]); diff --git a/src/shared/hooks/useSaveAppState2HashParams.tsx b/src/shared/hooks/useSaveAppState2HashParams.tsx index f4381d93..e25aa8a0 100644 --- a/src/shared/hooks/useSaveAppState2HashParams.tsx +++ b/src/shared/hooks/useSaveAppState2HashParams.tsx @@ -42,6 +42,7 @@ import { saveAnimationSpeedToHashParams, saveSpectralProfileToolStateToHashParams, saveChangeCompareToolStateToHashParams, + saveTemporalCompositeToolStateToHashParams, } from '@shared/utils/url-hash-params'; import React, { FC, useEffect } from 'react'; import { useSelector } from 'react-redux'; @@ -49,6 +50,7 @@ import { selectSpectralProfileToolState } from '@shared/store/SpectralProfileToo import { QueryParams4ImageryScene } from '@shared/store/ImageryScene/reducer'; import { selectChangeCompareToolState } from '@shared/store/ChangeCompareTool/selectors'; import { saveListOfQueryParamsToHashParams } from '@shared/utils/url-hash-params/queryParams4ImageryScene'; +import { selectTemporalCompositeToolState } from '@shared/store/TemporalCompositeTool/selectors'; export const useSaveAppState2HashParams = () => { const mode = useSelector(selectAppMode); @@ -81,6 +83,10 @@ export const useSaveAppState2HashParams = () => { const changeCompareToolState = useSelector(selectChangeCompareToolState); + const temporalCompositeToolState = useSelector( + selectTemporalCompositeToolState + ); + useEffect(() => { updateHashParams('mode', mode); @@ -151,6 +157,14 @@ export const useSaveAppState2HashParams = () => { ); }, [mode, analysisTool, listOfQueryParams]); + useEffect(() => { + saveTemporalCompositeToolStateToHashParams( + mode === 'analysis' && analysisTool === 'temporal composite' + ? temporalCompositeToolState + : null + ); + }, [mode, analysisTool, temporalCompositeToolState]); + useEffect(() => { saveAnimationSpeedToHashParams( mode === 'animate' && animationStatus === 'playing' diff --git a/src/shared/store/TemporalCompositeTool/selectors.ts b/src/shared/store/TemporalCompositeTool/selectors.ts index 1b1128c5..e2ccf53d 100644 --- a/src/shared/store/TemporalCompositeTool/selectors.ts +++ b/src/shared/store/TemporalCompositeTool/selectors.ts @@ -26,3 +26,8 @@ export const selectRasterFunction4TemporalCompositeTool = createSelector( (state: RootState) => state.TemporalCompositeTool.rasterFunction, (rasterFunction) => rasterFunction ); + +export const selectTemporalCompositeToolState = createSelector( + (state: RootState) => state.TemporalCompositeTool, + (TemporalCompositeTool) => TemporalCompositeTool +); diff --git a/src/shared/utils/url-hash-params/index.ts b/src/shared/utils/url-hash-params/index.ts index 9e29a88f..b9b59a09 100644 --- a/src/shared/utils/url-hash-params/index.ts +++ b/src/shared/utils/url-hash-params/index.ts @@ -51,6 +51,11 @@ export { getSpectralProfileToolDataFromHashParams, } from './spectralTool'; +export { + saveTemporalCompositeToolStateToHashParams, + getTemporalCompositeToolDataFromHashParams, +} from './temporalCompositeTool'; + export type UrlHashParamKey = | 'mapCenter' // hash params for map center | 'mode' // hash params for app mode @@ -65,6 +70,7 @@ export type UrlHashParamKey = | 'trend' // hash params for trend tool | 'spectral' // hash params for spectral profile tool | 'change' // hash params for spectral profile tool + | 'composite' // hash params for temporal composite tool | 'hideTerrain' // hash params for terrain layer | 'hideMapLabels' // hash params for map labels layer | 'hideBasemap' // hash params for map labels layer diff --git a/src/shared/utils/url-hash-params/temporalCompositeTool.ts b/src/shared/utils/url-hash-params/temporalCompositeTool.ts new file mode 100644 index 00000000..82557aaf --- /dev/null +++ b/src/shared/utils/url-hash-params/temporalCompositeTool.ts @@ -0,0 +1,44 @@ +import { + TemporalCompositeToolState, + initialState4TemporalCompositeTool, +} from '@shared/store/TemporalCompositeTool/reducer'; +import { getHashParamValueByKey, updateHashParams } from '.'; + +const encodeTemporalCompositeTool = ( + data: TemporalCompositeToolState +): string => { + if (!data) { + return null; + } + + const { isTemporalCompositeLayerOn, rasterFunction } = data; + + return [isTemporalCompositeLayerOn, rasterFunction].join('|'); +}; + +const decodeTemporalCompositeTool = ( + val: string +): TemporalCompositeToolState => { + if (!val) { + return null; + } + + const [isTemporalCompositeLayerOn, rasterFunction] = val.split('|'); + + return { + isTemporalCompositeLayerOn: isTemporalCompositeLayerOn === 'true', + rasterFunction: rasterFunction || '', + } as TemporalCompositeToolState; +}; + +export const saveTemporalCompositeToolStateToHashParams = ( + data: TemporalCompositeToolState +) => { + updateHashParams('composite', encodeTemporalCompositeTool(data)); +}; + +export const getTemporalCompositeToolDataFromHashParams = + (): TemporalCompositeToolState => { + const value = getHashParamValueByKey('composite'); + return decodeTemporalCompositeTool(value); + }; From 6ac779456aaf133287d610c34f43c351d16ad482 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 7 Jun 2024 13:42:46 -0700 Subject: [PATCH 066/151] fix(shared): deprecated Map View Popup properties --- .../components/DownloadPanel/LulcFootprintsLayer.tsx | 2 +- src/landcover-explorer/components/Popup/Popup.tsx | 4 +++- src/shared/components/MapPopup/MapPopup.tsx | 5 ++++- src/shared/components/MapView/MapView.tsx | 4 +--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/landcover-explorer/components/DownloadPanel/LulcFootprintsLayer.tsx b/src/landcover-explorer/components/DownloadPanel/LulcFootprintsLayer.tsx index 42efb631..6f46e6d0 100644 --- a/src/landcover-explorer/components/DownloadPanel/LulcFootprintsLayer.tsx +++ b/src/landcover-explorer/components/DownloadPanel/LulcFootprintsLayer.tsx @@ -54,7 +54,7 @@ const LulcFootprintsLayer: FC = ({ availableYears, mapView }: Props) => { // behavior in order to display your own popup mapView.popupEnabled = false; mapView.popup.dockEnabled = false; - mapView.popup.collapseEnabled = false; + // mapView.popup.collapseEnabled = false; addEventHandlers(); }; diff --git a/src/landcover-explorer/components/Popup/Popup.tsx b/src/landcover-explorer/components/Popup/Popup.tsx index af942116..eaded9ca 100644 --- a/src/landcover-explorer/components/Popup/Popup.tsx +++ b/src/landcover-explorer/components/Popup/Popup.tsx @@ -229,7 +229,9 @@ const Popup: FC = ({ mapView }: Props) => { // behavior in order to display your own popup mapView.popupEnabled = false; mapView.popup.dockEnabled = false; - mapView.popup.collapseEnabled = false; + mapView.popup.visibleElements = { + collapseButton: false, + }; mapView.on('click', async (evt) => { mapViewOnClickHandlerRef.current(evt.mapPoint, evt.x); diff --git a/src/shared/components/MapPopup/MapPopup.tsx b/src/shared/components/MapPopup/MapPopup.tsx index e0928df9..f9b293d9 100644 --- a/src/shared/components/MapPopup/MapPopup.tsx +++ b/src/shared/components/MapPopup/MapPopup.tsx @@ -124,8 +124,11 @@ export const MapPopup: FC = ({ data, mapView, onOpen }: Props) => { // behavior in order to display your own popup mapView.popupEnabled = false; mapView.popup.dockEnabled = false; - mapView.popup.collapseEnabled = false; + // mapView.popup.collapseEnabled = false; mapView.popup.alignment = 'bottom-right'; + mapView.popup.visibleElements = { + collapseButton: false, + }; mapView.on('click', (evt) => { openPopupRef.current(evt.mapPoint, evt.x); diff --git a/src/shared/components/MapView/MapView.tsx b/src/shared/components/MapView/MapView.tsx index 51069fa1..bfc7bd56 100644 --- a/src/shared/components/MapView/MapView.tsx +++ b/src/shared/components/MapView/MapView.tsx @@ -66,9 +66,7 @@ const MapView: React.FC = ({ lods: TileInfo.create().lods, snapToZoom: false, }, - popup: { - autoOpenEnabled: false, - }, + popupEnabled: false, }); mapViewRef.current.when(() => { From 9bfb6a3de51b3b5319c60e4a5f4cfe0ec1edc360 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 11 Jun 2024 09:05:08 -0700 Subject: [PATCH 067/151] fix(sentinel1explorer): getPreloadedTemporalCompositeToolState should use optional chaining to access 'data?.rasterFunction' --- src/sentinel-1-explorer/index.tsx | 1 + .../store/getPreloadedState4Sentinel1Explorer.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/index.tsx b/src/sentinel-1-explorer/index.tsx index 0d91e010..4d166f6b 100644 --- a/src/sentinel-1-explorer/index.tsx +++ b/src/sentinel-1-explorer/index.tsx @@ -52,6 +52,7 @@ import { SENTINEL1_RASTER_FUNCTION_INFOS } from '@shared/services/sentinel-1/con ); } catch (err) { + console.log(err); root.render(); } })(); diff --git a/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts index 675cb193..9e495900 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts @@ -191,7 +191,7 @@ const getPreloadedTemporalCompositeToolState = const proloadedState: TemporalCompositeToolState = { ...initialState4TemporalCompositeTool, ...data, - rasterFunction: data.rasterFunction || defaultRasterFunction, + rasterFunction: data?.rasterFunction || defaultRasterFunction, }; return proloadedState; From cd57d7095d3608021488f825d5270a7270382ee4 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 11 Jun 2024 09:20:11 -0700 Subject: [PATCH 068/151] feat(shared): add Legend title to ChangeCompareToolControls --- .../ChangeCompareToolContainer.tsx | 21 ++++++++++++++++--- .../ChangeCompareToolControls.tsx | 13 +++++++++++- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx index 230130b2..4cb71026 100644 --- a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx +++ b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx @@ -123,11 +123,23 @@ export const ChangeCompareToolContainer = () => { ) as ChangeCompareToolOption4Sentinel1; const legendLabelText = useMemo(() => { + // if (selectedOption === 'log difference') { + // return ['lower backscatter', 'higher backscatter']; + // } + + return ['decrease', '', 'increase']; + }, [selectedOption]); + + const legendTitle = useMemo(() => { if (selectedOption === 'log difference') { - return ['lower backscatter', 'higher backscatter']; + return 'Backscatter'; } - return ['decrease', '', 'increase']; + const data = ChangeCompareToolOptions.find( + (d) => d.value === selectedOption + ); + + return data?.label || selectedOption; }, [selectedOption]); useSyncCalendarDateRange(); @@ -152,7 +164,10 @@ export const ChangeCompareToolContainer = () => { return (
- + {selectedOption === 'log difference' && (
diff --git a/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx index 2e768d9b..d4a98c32 100644 --- a/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx +++ b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx @@ -34,6 +34,10 @@ import { useSelector } from 'react-redux'; import { getChangeCompareLayerColorrampAsCSSGradient } from './helpers'; type Props = { + /** + * Title of the object that users compares for (e.g., 'water', 'backscatter' and etc) that will be placed on top of the pixel range selector. + */ + legendTitle?: string; /** * the label text to be placed at the bottom of the pixel range selector. e.g. `['decrease', 'no change', 'increase']` */ @@ -41,6 +45,7 @@ type Props = { }; export const ChangeCompareToolControls: FC = ({ + legendTitle, legendLabelText = [], }: Props) => { const dispatch = useDispatch(); @@ -151,7 +156,13 @@ export const ChangeCompareToolControls: FC = ({ return (
-
+
+ {legendTitle && ( +
+ {legendTitle} +
+ )} +
Date: Tue, 11 Jun 2024 15:23:37 -0700 Subject: [PATCH 069/151] feat(shared): add Play/Pause button to AnimationDownloadPanel --- .../CopiedLinkMessage.tsx | 2 +- .../AnimationDownloadPanel/CopyLinkButton.tsx | 2 +- .../AnimationDownloadPanel/DownloadPanel.tsx | 9 ++- .../OpenDownloadPanelButton.tsx | 2 +- .../PlayPauseButton.tsx | 66 +++++++++++++++++++ 5 files changed, 76 insertions(+), 5 deletions(-) create mode 100644 src/shared/components/AnimationDownloadPanel/PlayPauseButton.tsx diff --git a/src/shared/components/AnimationDownloadPanel/CopiedLinkMessage.tsx b/src/shared/components/AnimationDownloadPanel/CopiedLinkMessage.tsx index 206898fb..980e3f7c 100644 --- a/src/shared/components/AnimationDownloadPanel/CopiedLinkMessage.tsx +++ b/src/shared/components/AnimationDownloadPanel/CopiedLinkMessage.tsx @@ -29,7 +29,7 @@ export const CopiedLinkMessage = () => { return (
{ return (
{ dispatch(copyAnimationLink()); }} diff --git a/src/shared/components/AnimationDownloadPanel/DownloadPanel.tsx b/src/shared/components/AnimationDownloadPanel/DownloadPanel.tsx index 73645622..cace50f1 100644 --- a/src/shared/components/AnimationDownloadPanel/DownloadPanel.tsx +++ b/src/shared/components/AnimationDownloadPanel/DownloadPanel.tsx @@ -35,6 +35,7 @@ import { } from '@vannizhang/images-to-video-converter-client'; import { CopyLinkButton } from './CopyLinkButton'; import { CopiedLinkMessage } from './CopiedLinkMessage'; +import { PlayPauseButton } from './PlayPauseButton'; // /** // * This object contains the data for each animation frame. @@ -171,8 +172,12 @@ export const AnimationDownloadPanel: FC = ({ {/* Download Button that opens the Download Animation Panel */} {shouldShowDownloadPanel === false && ( <> - - +
+ + + +
+ )} diff --git a/src/shared/components/AnimationDownloadPanel/OpenDownloadPanelButton.tsx b/src/shared/components/AnimationDownloadPanel/OpenDownloadPanelButton.tsx index df0ec2ef..73a7ff86 100644 --- a/src/shared/components/AnimationDownloadPanel/OpenDownloadPanelButton.tsx +++ b/src/shared/components/AnimationDownloadPanel/OpenDownloadPanelButton.tsx @@ -23,7 +23,7 @@ export const OpenDownloadPanelButton = () => { return (
{ dispatch(showDownloadAnimationPanelChanged(true)); }} diff --git a/src/shared/components/AnimationDownloadPanel/PlayPauseButton.tsx b/src/shared/components/AnimationDownloadPanel/PlayPauseButton.tsx new file mode 100644 index 00000000..b2f03b91 --- /dev/null +++ b/src/shared/components/AnimationDownloadPanel/PlayPauseButton.tsx @@ -0,0 +1,66 @@ +import { animationStatusChanged } from '@shared/store/UI/reducer'; +import { selectAnimationStatus } from '@shared/store/UI/selectors'; +import React from 'react'; +import { useDispatch } from 'react-redux'; +import { useSelector } from 'react-redux'; + +const ICON_SIZE = 64; + +const ContinuePlayButton = ( + + + + +); + +const PauseButton = ( + + + + +); + +export const PlayPauseButton = () => { + const dispatch = useDispatch(); + + const status = useSelector(selectAnimationStatus); + + return ( +
+ {status === 'playing' && ( +
{ + dispatch(animationStatusChanged('pausing')); + }} + > + {PauseButton} +
+ )} + {status === 'pausing' && ( +
{ + dispatch(animationStatusChanged('playing')); + }} + > + {ContinuePlayButton} +
+ )} +
+ ); +}; From 77952af8484dae00326e19f1962746605d6b9756 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 12 Jun 2024 06:21:24 -0700 Subject: [PATCH 070/151] feat(sentinel1explorer): add WaterLandMaskLayer4WaterAnomaly --- .../WaterLandMaskLayer4WaterAnomaly.tsx | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/sentinel-1-explorer/components/WaterLandMaskLayer4WaterAnomaly/WaterLandMaskLayer4WaterAnomaly.tsx diff --git a/src/sentinel-1-explorer/components/WaterLandMaskLayer4WaterAnomaly/WaterLandMaskLayer4WaterAnomaly.tsx b/src/sentinel-1-explorer/components/WaterLandMaskLayer4WaterAnomaly/WaterLandMaskLayer4WaterAnomaly.tsx new file mode 100644 index 00000000..d9873065 --- /dev/null +++ b/src/sentinel-1-explorer/components/WaterLandMaskLayer4WaterAnomaly/WaterLandMaskLayer4WaterAnomaly.tsx @@ -0,0 +1,55 @@ +import GroupLayer from '@arcgis/core/layers/GroupLayer'; +import MapView from '@arcgis/core/views/MapView'; +import { Sentinel1FunctionName } from '@shared/services/sentinel-1/config'; +import { + selectActiveAnalysisTool, + selectAppMode, + selectQueryParams4SceneInSelectedMode, +} from '@shared/store/ImageryScene/selectors'; +import React, { FC, useMemo } from 'react'; +import { useSelector } from 'react-redux'; +import { WaterLandMaskLayer } from '../MaskLayer/WaterLandMaskLayer'; + +type Props = { + mapView?: MapView; + groupLayer?: GroupLayer; +}; + +export const WaterLandMaskLayer4WaterAnomaly: FC = ({ + mapView, + groupLayer, +}) => { + const { rasterFunctionName } = + useSelector(selectQueryParams4SceneInSelectedMode) || {}; + + const mode = useSelector(selectAppMode); + + const analyzeTool = useSelector(selectActiveAnalysisTool); + + const isVisible = useMemo(() => { + if (mode === 'analysis') { + return false; + } + + if (mode === 'animate') { + return false; + } + + const rft4Sentinel1: Sentinel1FunctionName = + rasterFunctionName as Sentinel1FunctionName; + + if (rft4Sentinel1 === 'Water Anomaly Index Colorized') { + return true; + } + + return false; + }, [rasterFunctionName, mode, analyzeTool]); + + return ( + + ); +}; From 3bfdbdd32e5d5277c85f3bf68c4e09736d12e6ec Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 12 Jun 2024 07:04:32 -0700 Subject: [PATCH 071/151] fix(shared): input param name of useMediaLayerImageElement hook --- .../AnimationLayer/AnimationLayer.tsx | 2 +- .../useMediaLayerImageElement.tsx | 35 +++++++++++-------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/shared/components/AnimationLayer/AnimationLayer.tsx b/src/shared/components/AnimationLayer/AnimationLayer.tsx index 29cd5f01..d1cd06a8 100644 --- a/src/shared/components/AnimationLayer/AnimationLayer.tsx +++ b/src/shared/components/AnimationLayer/AnimationLayer.tsx @@ -85,7 +85,7 @@ export const AnimationLayer: FC = ({ imageryServiceUrl, mapView, animationStatus, - QueryParams4ImageryScenes: sortedQueryParams4ScenesInAnimationMode, + queryParams4ImageryScenes: sortedQueryParams4ScenesInAnimationMode, }); /** diff --git a/src/shared/components/AnimationLayer/useMediaLayerImageElement.tsx b/src/shared/components/AnimationLayer/useMediaLayerImageElement.tsx index bf8e686a..1fb30ba5 100644 --- a/src/shared/components/AnimationLayer/useMediaLayerImageElement.tsx +++ b/src/shared/components/AnimationLayer/useMediaLayerImageElement.tsx @@ -31,14 +31,14 @@ type Props = { imageryServiceUrl: string; mapView?: MapView; animationStatus: AnimationStatus; - QueryParams4ImageryScenes: QueryParams4ImageryScene[]; + queryParams4ImageryScenes: QueryParams4ImageryScene[]; }; const useMediaLayerImageElement = ({ imageryServiceUrl, mapView, animationStatus, - QueryParams4ImageryScenes, + queryParams4ImageryScenes, }: Props) => { const [imageElements, setImageElements] = useState(null); @@ -51,6 +51,11 @@ const useMediaLayerImageElement = ({ return; } + // call abort so all pending requests can be cancelled + if (abortControllerRef.current) { + abortControllerRef.current.abort(); + } + // use a new abort controller so the pending requests can be cancelled // if user quits animation mode before the responses are returned abortControllerRef.current = new AbortController(); @@ -76,19 +81,21 @@ const useMediaLayerImageElement = ({ const { xmin, ymin, xmax, ymax } = extent; // get images via export image request - const requests = QueryParams4ImageryScenes.filter( - (queryParam) => queryParam.objectIdOfSelectedScene !== null - ).map((queryParam) => { - return exportImage({ - serviceUrl: imageryServiceUrl, - extent, - width, - height, - objectId: queryParam.objectIdOfSelectedScene, - rasterFunctionName: queryParam.rasterFunctionName, - abortController: abortControllerRef.current, + const requests = queryParams4ImageryScenes + .filter( + (queryParam) => queryParam.objectIdOfSelectedScene !== null + ) + .map((queryParam) => { + return exportImage({ + serviceUrl: imageryServiceUrl, + extent, + width, + height, + objectId: queryParam.objectIdOfSelectedScene, + rasterFunctionName: queryParam.rasterFunctionName, + abortController: abortControllerRef.current, + }); }); - }); const responses = await Promise.all(requests); From f97e2dc241b0a41d8151676906b7d24f2b4c7dab Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 13 Jun 2024 07:00:04 -0700 Subject: [PATCH 072/151] fix(shared): Re-fetch animation images when user minimizes bottom panel ref #30 --- .../AnimationLayer/AnimationLayer.tsx | 20 ++++++--- .../useMediaLayerImageElement.tsx | 42 +++++++++++++------ 2 files changed, 45 insertions(+), 17 deletions(-) diff --git a/src/shared/components/AnimationLayer/AnimationLayer.tsx b/src/shared/components/AnimationLayer/AnimationLayer.tsx index d1cd06a8..374a4cdb 100644 --- a/src/shared/components/AnimationLayer/AnimationLayer.tsx +++ b/src/shared/components/AnimationLayer/AnimationLayer.tsx @@ -151,17 +151,27 @@ export const AnimationLayer: FC = ({ // it is still there, therefore we just use this temporary solution so TypeScript won't throw error const source = mediaLayerRef.current.source as any; - if (!mediaLayerElements) { - // animation is not started or just stopped - // just clear all elements in media layer - source.elements.removeAll(); - } else { + // clear existing elements bofore adding new list of elements to media layer + source.elements.removeAll(); + + if (mediaLayerElements) { source.elements.addMany(mediaLayerElements); // media layer elements are ready, change animation mode to playing to start the animation dispatch(animationStatusChanged('playing')); } }, [mediaLayerElements, mapView]); + // If the map view's height changes during an animation, + // set the animation status to 'loading' so the useMediaLayerImageElement hook + // can re-fetch the animation frame images to cover the entire map. + useEffect(() => { + if (!animationStatus || animationStatus === 'loading') { + return; + } + + dispatch(animationStatusChanged('loading')); + }, [mapView?.height]); + useEffect(() => { // We only need to save animation window information when the animation is in progress. // Additionally, we should always reset the animation window information in the hash parameters diff --git a/src/shared/components/AnimationLayer/useMediaLayerImageElement.tsx b/src/shared/components/AnimationLayer/useMediaLayerImageElement.tsx index 1fb30ba5..6f31bc01 100644 --- a/src/shared/components/AnimationLayer/useMediaLayerImageElement.tsx +++ b/src/shared/components/AnimationLayer/useMediaLayerImageElement.tsx @@ -61,22 +61,27 @@ const useMediaLayerImageElement = ({ abortControllerRef.current = new AbortController(); try { - // Attempt to retrieve animation window information from the URL hash parameters. This occurs when - // a user opens the application via a link shared by others. This is necessary to ensure - // that all users who access the application through the same link consistently send identical - // `exportImage` requests, thereby enhancing the likelihood of utilizing cached responses - // from the CDN servers rather than the ArcGIS Image Server. - const animationWindowInfoFromHashParams = - getAnimationWindowInfoFromHashParams(); + // // Attempt to retrieve animation window information from the URL hash parameters. This occurs when + // // a user opens the application via a link shared by others. This is necessary to ensure + // // that all users who access the application through the same link consistently send identical + // // `exportImage` requests, thereby enhancing the likelihood of utilizing cached responses + // // from the CDN servers rather than the ArcGIS Image Server. + // const animationWindowInfoFromHashParams = + // getAnimationWindowInfoFromHashParams(); // console.log(animationWindowInfoFromHashParams); - let { extent, width, height } = - animationWindowInfoFromHashParams || {}; + // let { extent, width, height } = + // animationWindowInfoFromHashParams || {}; - extent = extent || getNormalizedExtent(mapView.extent); - width = width || mapView.width; - height = height || mapView.height; + // extent = extent || getNormalizedExtent(mapView.extent); + // width = width || mapView.width; + // height = height || mapView.height; + + const extent = getNormalizedExtent(mapView.extent); + const width = mapView.width; + const height = mapView.height; + // console.log('calling loading animation frame data', width, height) const { xmin, ymin, xmax, ymax } = extent; @@ -144,6 +149,19 @@ const useMediaLayerImageElement = ({ } }, [animationStatus]); + // If the map view's height changes while loading animation frames, + // call loadFrameData again to re-fetch the animation frame images to cover the entire map. + useEffect(() => { + // No need to call loadFrameData if it is not currently loading data. + // If the map view's height changes during animation, + // the animation layer will reset the status to 'loading', triggering this hook to re-fetch images. + if (animationStatus !== 'loading') { + return; + } + + loadFrameData(); + }, [mapView?.height]); + return imageElements; }; From 83f981f34916171c3abc0f4df9a664c6d68fe413 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 13 Jun 2024 11:05:02 -0700 Subject: [PATCH 073/151] fix(sentinel1explorer): lock relative orbit orbit direction for Change Detection tool ref #32 --- ...iteTool.tsx => useLockedRelativeOrbit.tsx} | 54 ++++++++++++++----- .../useQueryAvailableSentinel1Scenes.tsx | 12 ++--- 2 files changed, 47 insertions(+), 19 deletions(-) rename src/sentinel-1-explorer/hooks/{useLockedRelativeOrbit4TemporalCompositeTool.tsx => useLockedRelativeOrbit.tsx} (61%) diff --git a/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit4TemporalCompositeTool.tsx b/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit.tsx similarity index 61% rename from src/sentinel-1-explorer/hooks/useLockedRelativeOrbit4TemporalCompositeTool.tsx rename to src/sentinel-1-explorer/hooks/useLockedRelativeOrbit.tsx index a7f9a46f..044ddd00 100644 --- a/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit4TemporalCompositeTool.tsx +++ b/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit.tsx @@ -19,39 +19,50 @@ import { selectActiveAnalysisTool, selectAppMode, selectListOfQueryParams, + selectQueryParams4MainScene, selectQueryParams4SceneInSelectedMode, + selectQueryParams4SecondaryScene, } from '@shared/store/ImageryScene/selectors'; import { Sentinel1Scene } from '@typing/imagery-service'; import { getSentinel1SceneByObjectId } from '@shared/services/sentinel-1/getSentinel1Scenes'; /** - * Custom hook that returns the relative orbit to be used by the temporal composite tool. - * The temporal composite tool requires all three scenes selected by the user to have the same relative orbit. + * Custom hook that returns the relative orbit to be used by the different Analyze tools (e.g. temporal composite and change compare). + * These tools require all scenes selected by the user to have the same relative orbit. * This hook tries to find the first scene that the user has selected and uses the relative orbit of that scene to * query the rest of the scenes. * * @returns {string | undefined} Relative orbit of the selected Sentinel-1 scene, or undefined if not applicable. */ -export const useLockedRelativeOrbit4TemporalCompositeTool = () => { +export const useLockedRelativeOrbit = () => { const mode = useSelector(selectAppMode); const analysisTool = useSelector(selectActiveAnalysisTool); const queryParams = useSelector(selectQueryParams4SceneInSelectedMode); + const queryParamsOfMainScene = useSelector(selectQueryParams4MainScene); + + const queryParamsOfSecondaryScene = useSelector( + selectQueryParams4SecondaryScene + ); + const listOfQueryParams = useSelector(selectListOfQueryParams); const [sentinel1Scene, setSentinel1Scene] = useState(); /** * useMemo hook to compute the relative orbit based on the mode, active analysis tool, and selected Sentinel-1 scene. - * The relative orbit is only relevant when the mode is 'analysis' and the analysis tool is 'temporal composite'. + * The relative orbit is only relevant when the mode is 'analysis' and the analysis tool is 'temporal composite' or 'change compare'. */ const relativeOrbit: string = useMemo(() => { + if (mode !== 'analysis' || !sentinel1Scene) { + return null; + } + if ( - mode !== 'analysis' || - analysisTool !== 'temporal composite' || - !sentinel1Scene + analysisTool !== 'temporal composite' && + analysisTool !== 'change' ) { return null; } @@ -65,18 +76,35 @@ export const useLockedRelativeOrbit4TemporalCompositeTool = () => { */ useEffect(() => { (async () => { - if (mode !== 'analysis' || analysisTool !== 'temporal composite') { + if (mode !== 'analysis') { + return setSentinel1Scene(null); + } + + if ( + analysisTool !== 'temporal composite' && + analysisTool !== 'change' + ) { return setSentinel1Scene(null); } + // object id of the first scene that the user has selected + // the relative orbit of this scene will be used to query subsequent scenes + // so that we can gurantee that all scenes used in the 'temporal composite' and 'change compare' tool are + // acquired from the same relative orbit let objectIdOfSelectedScene: number = null; - // Find the first item in the list that has an associated object ID - for (const item of listOfQueryParams) { - if (item.objectIdOfSelectedScene) { - objectIdOfSelectedScene = item.objectIdOfSelectedScene; - break; + if (analysisTool === 'temporal composite') { + // Find the first item in the list that has an associated object ID + for (const item of listOfQueryParams) { + if (item.objectIdOfSelectedScene) { + objectIdOfSelectedScene = item.objectIdOfSelectedScene; + break; + } } + } else if (analysisTool === 'change') { + objectIdOfSelectedScene = + queryParamsOfMainScene?.objectIdOfSelectedScene || + queryParamsOfSecondaryScene?.objectIdOfSelectedScene; } // if no items in the list has object id selected, then set the sentinel1 scene to null diff --git a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx index 67363ab1..b2e10253 100644 --- a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx +++ b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx @@ -29,7 +29,7 @@ import { import { selectSentinel1OrbitDirection } from '@shared/store/Sentinel1/selectors'; import { Sentinel1Scene } from '@typing/imagery-service'; import { getSentinel1SceneByObjectId } from '@shared/services/sentinel-1/getSentinel1Scenes'; -import { useLockedRelativeOrbit4TemporalCompositeTool } from './useLockedRelativeOrbit4TemporalCompositeTool'; +import { useLockedRelativeOrbit } from './useLockedRelativeOrbit'; // import { selectAcquisitionYear } from '@shared/store/ImageryScene/selectors'; /** @@ -58,10 +58,10 @@ export const useQueryAvailableSentinel1Scenes = (): void => { const orbitDirection = useSelector(selectSentinel1OrbitDirection); /** - * relative orbit to be used by the temporal composite tool + * Locked relative orbit to be used by the Analyze tools to ensure all Sentinel-1 + * scenes selected by the user to have the same relative orbit. */ - const relativeOrbitOfSentinelScene4TemporalCompositeTool = - useLockedRelativeOrbit4TemporalCompositeTool(); + const lockedRelativeOrbitOfSentinelScene = useLockedRelativeOrbit(); useEffect(() => { if (!center || !acquisitionDateRange) { @@ -76,7 +76,7 @@ export const useQueryAvailableSentinel1Scenes = (): void => { queryAvailableScenes( acquisitionDateRange, orbitDirection, - relativeOrbitOfSentinelScene4TemporalCompositeTool + lockedRelativeOrbitOfSentinelScene // dualPolarizationOnly ) ); @@ -86,7 +86,7 @@ export const useQueryAvailableSentinel1Scenes = (): void => { acquisitionDateRange?.endDate, isAnimationPlaying, orbitDirection, - relativeOrbitOfSentinelScene4TemporalCompositeTool, + lockedRelativeOrbitOfSentinelScene, // dualPolarizationOnly, ]); From 64784d08cd01271270c59844ba1d1cf09e7d869c Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 13 Jun 2024 11:54:14 -0700 Subject: [PATCH 074/151] fix(sentinel1explorer): lock relative orbit and orbit direction for Temporal Profile tool ref #32 --- .../services/sentinel-1/getTemporalProfileData.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/shared/services/sentinel-1/getTemporalProfileData.ts b/src/shared/services/sentinel-1/getTemporalProfileData.ts index 05a9a984..3c40b41c 100644 --- a/src/shared/services/sentinel-1/getTemporalProfileData.ts +++ b/src/shared/services/sentinel-1/getTemporalProfileData.ts @@ -117,11 +117,22 @@ const getSentinel1ScenesToSample = ( const candidates: Sentinel1Scene[] = [scenes[0]]; + const { relativeOrbit, orbitDirection } = scenes[0]; + for (let i = 1; i < scenes.length; i++) { const prevScene = candidates[candidates.length - 1]; const currentScene = scenes[i]; + // skip if the relative orbit and orbit direction of the current scene + // is not the same as the first scene + if ( + currentScene.relativeOrbit !== relativeOrbit || + currentScene.orbitDirection !== orbitDirection + ) { + continue; + } + // If an acquisition month is provided, only keep scenes from that month. if ( acquisitionMonth && From 11e577bb595a9e1d31915c97c324cc7a335ce6e3 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 17 Jun 2024 13:54:23 -0700 Subject: [PATCH 075/151] feat(sentinel1explorer): Sentinel-1 Orbit Direction Filter (Ascending/Descending) Disambiguation ref #33 - fix(sentinel1explorer): queryAvailableSentinel1Scenes should query all scenes regardless the user selected orbit direction - refactor(shared): add doesNotMeetCriteria property to ImageryScene which will be used to indicate if the imagery scene does not meet all user-selected criteria - feat(shared): update deduplicateListOfImageryScenes If the previous scene meets all filter criteria and the current scene does not, then keep the previous scene - fix: deduplicateListOfImageryScenes should prioritize keeping the scene that meets all filter criteria - refactor: params of queryAvailableSentinel1Scenes should be passed in an object - feat(shared): add shouldForceSceneReselection to ImagerySceneState in redux store which will be used to override the default logic of keeping currently selected scene - feat: save sentinel1 state to URL hash params - refactor(shared): useFindSelectedSceneByDate hook should be invoked by CalendarContainer component --- package.json | 4 +- .../components/Layout/Layout.tsx | 9 ++ .../hooks/saveSentinel1State2HashParams.tsx | 17 +++ .../useQueryAvailableSentinel1Scenes.tsx | 21 +++- .../getPreloadedState4Sentinel1Explorer.ts | 16 +++ src/shared/components/Calendar/Calendar.tsx | 18 +-- .../components/Calendar/CalendarContainer.tsx | 17 +-- .../Calendar/useAvailableScenes.tsx | 58 ---------- .../Calendar/useFormattedScenes.tsx | 7 +- .../Calendar/useUpdateAcquisitionYear.tsx | 64 ---------- .../ImageryLayerWithPixelFilter.tsx | 23 ++++ .../useFindSelectedSceneByDate.tsx | 24 ++-- .../helpers/deduplicateListOfScenes.test.ts | 109 ++++++++++++++++++ .../helpers/deduplicateListOfScenes.ts | 20 +++- .../sentinel-1/covert2ImageryScenes.ts | 13 ++- .../services/sentinel-1/getSentinel1Scenes.ts | 6 +- src/shared/store/ImageryScene/reducer.ts | 32 ++--- src/shared/store/ImageryScene/selectors.ts | 5 + src/shared/store/Sentinel1/reducer.ts | 2 +- src/shared/store/Sentinel1/selectors.ts | 5 + src/shared/store/Sentinel1/thunks.ts | 38 ++++-- src/shared/utils/url-hash-params/index.ts | 3 +- src/shared/utils/url-hash-params/sentinel1.ts | 38 ++++++ 23 files changed, 363 insertions(+), 186 deletions(-) create mode 100644 src/sentinel-1-explorer/hooks/saveSentinel1State2HashParams.tsx delete mode 100644 src/shared/components/Calendar/useAvailableScenes.tsx delete mode 100644 src/shared/components/Calendar/useUpdateAcquisitionYear.tsx rename src/shared/{components/Calendar => hooks}/useFindSelectedSceneByDate.tsx (79%) create mode 100644 src/shared/services/helpers/deduplicateListOfScenes.test.ts create mode 100644 src/shared/utils/url-hash-params/sentinel1.ts diff --git a/package.json b/package.json index f02826e1..d3e1c7ec 100644 --- a/package.json +++ b/package.json @@ -9,12 +9,12 @@ "start-landcover": "webpack serve --mode development --open --env app=landcover-explorer", "start-sentinel1": "webpack serve --mode development --open --env app=sentinel1-explorer", "start-spectral-sampling-tool": "webpack serve --mode development --open --env app=spectral-sampling-tool", - "start-landsat-surface-temp": "webpack serve --mode development --open --env app=landsat-surface-temp", + "start-surface-temp": "webpack serve --mode development --open --env app=landsat-surface-temp", "build-landsat": "webpack --mode production --env app=landsat", "build-landcover": "webpack --mode production --env app=landcover-explorer", "build-sentinel1": "webpack --mode production --env app=sentinel1-explorer", "build-spectral-sampling-tool": "webpack --mode production --env app=spectral-sampling-tool", - "build-landsat-surface-temp": "webpack --mode production --env app=landsat-surface-temp", + "build-surface-temp": "webpack --mode production --env app=landsat-surface-temp", "prepare": "husky install", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build" diff --git a/src/sentinel-1-explorer/components/Layout/Layout.tsx b/src/sentinel-1-explorer/components/Layout/Layout.tsx index 2989138e..0a81b71a 100644 --- a/src/sentinel-1-explorer/components/Layout/Layout.tsx +++ b/src/sentinel-1-explorer/components/Layout/Layout.tsx @@ -46,6 +46,7 @@ import classNames from 'classnames'; import { ChangeCompareTool4Sentinel1 } from '../ChangeCompareTool'; import { Sentinel1TemporalProfileTool } from '../TemporalProfileTool'; import { Sentinel1MaskTool } from '../MaskTool'; +import { useSaveSentinel1State2HashParams } from '../../hooks/saveSentinel1State2HashParams'; export const Layout = () => { const mode = useSelector(selectAppMode); @@ -62,8 +63,16 @@ export const Layout = () => { */ useQueryAvailableSentinel1Scenes(); + /** + * save common, app-wide state to URL hash params + */ useSaveAppState2HashParams(); + /** + * save sentinel1-explorer related state to URL hash params + */ + useSaveSentinel1State2HashParams(); + if (IS_MOBILE_DEVICE) { return ( <> diff --git a/src/sentinel-1-explorer/hooks/saveSentinel1State2HashParams.tsx b/src/sentinel-1-explorer/hooks/saveSentinel1State2HashParams.tsx new file mode 100644 index 00000000..60e80112 --- /dev/null +++ b/src/sentinel-1-explorer/hooks/saveSentinel1State2HashParams.tsx @@ -0,0 +1,17 @@ +import { + selectSentinel1OrbitDirection, + selectSentinel1State, +} from '@shared/store/Sentinel1/selectors'; +import { saveSentinel1StateToHashParams } from '@shared/utils/url-hash-params/sentinel1'; +import React, { useEffect } from 'react'; +import { useSelector } from 'react-redux'; + +export const useSaveSentinel1State2HashParams = () => { + const orbitDirection = useSelector(selectSentinel1OrbitDirection); + + const sentinel1State = useSelector(selectSentinel1State); + + useEffect(() => { + saveSentinel1StateToHashParams(sentinel1State); + }, [orbitDirection]); +}; diff --git a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx index b2e10253..ad6c236b 100644 --- a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx +++ b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx @@ -19,7 +19,7 @@ import { selectMapCenter } from '@shared/store/Map/selectors'; import { useDispatch } from 'react-redux'; // import { updateObjectIdOfSelectedScene } from '@shared/store/ImageryScene/thunks'; import { selectIsAnimationPlaying } from '@shared/store/UI/selectors'; -import { queryAvailableScenes } from '@shared/store/Sentinel1/thunks'; +import { queryAvailableSentinel1Scenes } from '@shared/store/Sentinel1/thunks'; import { selectActiveAnalysisTool, selectAppMode, @@ -30,6 +30,8 @@ import { selectSentinel1OrbitDirection } from '@shared/store/Sentinel1/selectors import { Sentinel1Scene } from '@typing/imagery-service'; import { getSentinel1SceneByObjectId } from '@shared/services/sentinel-1/getSentinel1Scenes'; import { useLockedRelativeOrbit } from './useLockedRelativeOrbit'; +import { shouldForceSceneReselectionUpdated } from '@shared/store/ImageryScene/reducer'; +import { usePrevious } from '@shared/hooks/usePrevious'; // import { selectAcquisitionYear } from '@shared/store/ImageryScene/selectors'; /** @@ -57,6 +59,8 @@ export const useQueryAvailableSentinel1Scenes = (): void => { const orbitDirection = useSelector(selectSentinel1OrbitDirection); + const previousOrbitDirection = usePrevious(orbitDirection); + /** * Locked relative orbit to be used by the Analyze tools to ensure all Sentinel-1 * scenes selected by the user to have the same relative orbit. @@ -72,13 +76,18 @@ export const useQueryAvailableSentinel1Scenes = (): void => { return; } + // Set `shouldForceSceneReselection` to true when the user makes a new selection of the orbit direction filter. + // This will force the `useFindSelectedSceneByDate` custom hook to disregard the currently selected scene and + // select a new scene based on the current state of all filters. + if (orbitDirection !== previousOrbitDirection) { + dispatch(shouldForceSceneReselectionUpdated(true)); + } + dispatch( - queryAvailableScenes( + queryAvailableSentinel1Scenes({ acquisitionDateRange, - orbitDirection, - lockedRelativeOrbitOfSentinelScene - // dualPolarizationOnly - ) + relativeOrbit: lockedRelativeOrbitOfSentinelScene, + }) ); }, [ center, diff --git a/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts index 9e495900..3547161b 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts @@ -67,6 +67,11 @@ import { MaskToolPixelValueRangeBySpectralIndex, DefaultPixelValueRangeBySelectedIndex, } from '@shared/store/MaskTool/reducer'; +import { + initialSentinel1State, + Sentinel1State, +} from '@shared/store/Sentinel1/reducer'; +import { getSentinel1StateFromHashParams } from '@shared/utils/url-hash-params/sentinel1'; // import { getRandomElement } from '@shared/utils/snippets/getRandomElement'; /** @@ -268,6 +273,16 @@ const getPreloadedMaskToolState = (): MaskToolState => { }; }; +const getPreloadedSentinel1State = (): Sentinel1State => { + // const maskToolData = getMaskToolDataFromHashParams(); + const sentinel1State = getSentinel1StateFromHashParams(); + + return { + ...initialSentinel1State, + orbitDirection: sentinel1State?.orbitDirection || 'Ascending', + } as Sentinel1State; +}; + export const getPreloadedState = async (): Promise => { // get default raster function and location and pass to the getPreloadedMapState, getPreloadedUIState and getPreloadedImageryScenesState @@ -279,5 +294,6 @@ export const getPreloadedState = async (): Promise => { ChangeCompareTool: getPreloadedChangeCompareToolState(), TrendTool: getPreloadedTrendToolState(), MaskTool: getPreloadedMaskToolState(), + Sentinel1: getPreloadedSentinel1State(), } as PartialRootState; }; diff --git a/src/shared/components/Calendar/Calendar.tsx b/src/shared/components/Calendar/Calendar.tsx index 84959094..c732446f 100644 --- a/src/shared/components/Calendar/Calendar.tsx +++ b/src/shared/components/Calendar/Calendar.tsx @@ -41,10 +41,10 @@ export type FormattedImageryScene = { * date in format of (YYYY-MM-DD) */ formattedAcquisitionDate: string; - /** - * if true, this date should be rendered using the style of cloudy day - */ - isCloudy: boolean; + // /** + // * if true, this date should be rendered using the style of cloudy day + // */ + // isCloudy: boolean; /** * percent of cloud coverage of the selected Imagery Scene acquired on this day */ @@ -53,6 +53,10 @@ export type FormattedImageryScene = { * name of the satellite (e.g., `Landsat-7`) */ satellite: string; + /** + * Flag indicating if the imagery scene does not meet all user-selected criteria + */ + doesNotMeetCriteria: boolean; }; type CalendarProps = { @@ -174,15 +178,15 @@ const MonthGrid: FC = ({ 'border-custom-calendar-border-available': isSelected === false && hasAvailableData && - dataOfImageryScene?.isCloudy === true, + dataOfImageryScene?.doesNotMeetCriteria === true, 'bg-custom-calendar-background-available': isSelected === false && hasAvailableData && - dataOfImageryScene?.isCloudy === false, + dataOfImageryScene?.doesNotMeetCriteria === false, 'border-custom-calendar-background-available': isSelected === false && hasAvailableData && - dataOfImageryScene?.isCloudy === false, + dataOfImageryScene?.doesNotMeetCriteria === false, })} style={{ // why do not use drop-shadow? It seems the drop shadow get applied to child elements, diff --git a/src/shared/components/Calendar/CalendarContainer.tsx b/src/shared/components/Calendar/CalendarContainer.tsx index 560b8269..69806075 100644 --- a/src/shared/components/Calendar/CalendarContainer.tsx +++ b/src/shared/components/Calendar/CalendarContainer.tsx @@ -35,17 +35,17 @@ import { } from '@shared/store/ImageryScene/thunks'; import classNames from 'classnames'; import { - selectIsAnimationPlaying, + // selectIsAnimationPlaying, selectShouldHideCloudCoverInfo, } from '@shared/store/UI/selectors'; -import { CloudFilter } from '@shared/components/CloudFilter'; -import { - // acquisitionYearChanged, - cloudCoverChanged, -} from '@shared/store/ImageryScene/reducer'; +// import { CloudFilter } from '@shared/components/CloudFilter'; +// import { +// // acquisitionYearChanged, +// cloudCoverChanged, +// } from '@shared/store/ImageryScene/reducer'; // import { LandsatMissionFilter } from '../LandsatMissionFilter'; -import { APP_NAME } from '@shared/config'; -import { useFindSelectedSceneByDate } from './useFindSelectedSceneByDate'; +// import { APP_NAME } from '@shared/config'; +// import { useFindSelectedSceneByDate } from './useFindSelectedSceneByDate'; import { useAcquisitionDateFromSelectedScene } from './useAcquisitionDateFromSelectedScene'; import { useFormattedScenes } from './useFormattedScenes'; import { useShouldDisableCalendar } from './useShouldDisableCalendar'; @@ -55,6 +55,7 @@ import { } from '@shared/utils/date-time/getTimeRange'; import { useAcquisitionYear } from './useAcquisitionYear'; import { batch } from 'react-redux'; +import { useFindSelectedSceneByDate } from '@shared/hooks/useFindSelectedSceneByDate'; // import { useUpdateAcquisitionYear } from './useUpdateAcquisitionYear'; type Props = { diff --git a/src/shared/components/Calendar/useAvailableScenes.tsx b/src/shared/components/Calendar/useAvailableScenes.tsx deleted file mode 100644 index e1e929ba..00000000 --- a/src/shared/components/Calendar/useAvailableScenes.tsx +++ /dev/null @@ -1,58 +0,0 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// import React, { useEffect } from 'react'; -// import { useSelector } from 'react-redux'; -// import { selectMapCenter } from '@shared/store/Map/selectors'; -// import { useDispatch } from 'react-redux'; -// // import { updateObjectIdOfSelectedScene } from '@shared/store/ImageryScene/thunks'; -// import { selectIsAnimationPlaying } from '@shared/store/UI/selectors'; -// import { selectLandsatMissionsToBeExcluded } from '@shared/store/Landsat/selectors'; -// import { queryAvailableScenes } from '@shared/store/Landsat/thunks'; -// import { selectAcquisitionYear } from '@shared/store/ImageryScene/selectors'; - -// /** -// * This custom hook queries the landsat service and find landsat scenes -// * that were acquired within the selected year and intersect with the center of the map screen -// * @returns -// */ -// export const useQueryAvailableLandsatScenes = (): void => { -// const dispatch = useDispatch(); - -// const acquisitionYear = useSelector(selectAcquisitionYear); - -// const isAnimationPlaying = useSelector(selectIsAnimationPlaying); - -// const missionsToBeExcluded = useSelector(selectLandsatMissionsToBeExcluded); - -// /** -// * current map center -// */ -// const center = useSelector(selectMapCenter); - -// useEffect(() => { -// if (!center || !acquisitionYear) { -// return; -// } - -// if (isAnimationPlaying) { -// return; -// } - -// dispatch(queryAvailableScenes(acquisitionYear)); -// }, [center, acquisitionYear, isAnimationPlaying, missionsToBeExcluded]); - -// return null; -// }; diff --git a/src/shared/components/Calendar/useFormattedScenes.tsx b/src/shared/components/Calendar/useFormattedScenes.tsx index 7c7e7037..bf62041d 100644 --- a/src/shared/components/Calendar/useFormattedScenes.tsx +++ b/src/shared/components/Calendar/useFormattedScenes.tsx @@ -53,12 +53,17 @@ export const useFormattedScenes = (): FormattedImageryScene[] => { // isCloudy, cloudCover, satellite, + doesNotMeetCriteria, } = scene; + const doestNotMeetCloudTreshold = cloudCover > cloudCoverThreshold; + return { formattedAcquisitionDate, acquisitionDate, - isCloudy: cloudCover > cloudCoverThreshold, + // isCloudy: cloudCover > cloudCoverThreshold, + doesNotMeetCriteria: + doesNotMeetCriteria || doestNotMeetCloudTreshold, cloudCover: Math.ceil(cloudCover * 100), satellite, }; diff --git a/src/shared/components/Calendar/useUpdateAcquisitionYear.tsx b/src/shared/components/Calendar/useUpdateAcquisitionYear.tsx deleted file mode 100644 index e06762ba..00000000 --- a/src/shared/components/Calendar/useUpdateAcquisitionYear.tsx +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// import { acquisitionYearChanged } from '@shared/store/ImageryScene/reducer'; -// import { -// selectAppMode, -// selectQueryParams4SceneInSelectedMode, -// } from '@shared/store/ImageryScene/selectors'; -// import { getYearFromFormattedDateString } from '@shared/utils/date-time/formatDateString'; -// import { getCurrentYear } from '@shared/utils/date-time/getCurrentDateTime'; -// import React, { useEffect } from 'react'; -// import { useDispatch } from 'react-redux'; -// import { useSelector } from 'react-redux'; - -// /** -// * This custom hook is triggered whenever the user-selected acquisition date changes. -// * It updates the user-selected year based on the year from the selected acquisition date. -// * In animation mode, the newly added frame utilizes the year inherited from the previous animation frame, if available. -// * -// * Why is this necessary? For instance, in Swipe Mode, when the user has two scenes selected— -// * one acquired in 1990 and another in 2020, switching between these scenes should update the calendar -// * to display scenes available from the year of the selected scene. Without invoking this hook, -// * the acquisition year won't update when users switch scenes. The same logic applies to animation mode. -// * In other words, the calendar should always reflect available scenes from the acquisition year based on the user-selected scenes. -// */ -// export const useUpdateAcquisitionYear = (): void => { -// const dispatch = useDispatch(); - -// const mode = useSelector(selectAppMode); - -// const queryParams = useSelector(selectQueryParams4SceneInSelectedMode); - -// const acquisitionDate = queryParams?.acquisitionDate; - -// useEffect(() => { -// let year = getCurrentYear(); - -// // If acquisition date exists, use the year from the date -// if (acquisitionDate) { -// // try to use the year from acquisition date first -// year = getYearFromFormattedDateString(acquisitionDate); -// } else if ( -// mode === 'animate' && -// queryParams?.inheritedAcquisitionYear -// ) { -// // In animation mode, use the inherited acquisition year from the previous frame -// year = queryParams.inheritedAcquisitionYear; -// } - -// dispatch(acquisitionYearChanged(year)); -// }, [acquisitionDate]); -// }; diff --git a/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx b/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx index 247c8822..115a6fce 100644 --- a/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx +++ b/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx @@ -158,8 +158,17 @@ export const ImageryLayerWithPixelFilter: FC = ({ const n = pixels[0].length; + // total number of pixels with in the selected scenes + let totalPixels = n; + // total number of visible pixels that with in the selected pixel range + let visiblePixels = n; + + let containsPixelsOutsideOfSelectedScene = true; + + // Initialize the mask if it doesn't exist, indicating all pixels are within the selected scene. if (!pixelBlock.mask) { pixelBlock.mask = new Uint8Array(n); + containsPixelsOutsideOfSelectedScene = false; } const pr = new Uint8Array(n); @@ -192,6 +201,14 @@ export const ImageryLayerWithPixelFilter: FC = ({ maxValOfFulRange ); + // Decrease the total pixel count if the pixel is outside the selected scene. + if ( + containsPixelsOutsideOfSelectedScene && + pixelBlock.mask[i] === 0 + ) { + totalPixels--; + } + // If the adjusted pixel value is outside the selected range, or if the original pixel value is 0, hide this pixel. // A pixel value of 0 typically indicates it is outside the extent of the selected imagery scene. if ( @@ -200,6 +217,7 @@ export const ImageryLayerWithPixelFilter: FC = ({ band1[i] === 0 ) { pixelBlock.mask[i] = 0; + visiblePixels--; continue; } @@ -228,6 +246,7 @@ export const ImageryLayerWithPixelFilter: FC = ({ maxValSelectedPixelRange4Band2) ) { pixelBlock.mask[i] = 0; + visiblePixels--; continue; } @@ -252,6 +271,10 @@ export const ImageryLayerWithPixelFilter: FC = ({ pixelBlock.pixels = [pr, pg, pb]; + // percentage of visible pixels + const pctVisiblePixels = visiblePixels / totalPixels; + // console.log(pctVisiblePixels) + pixelBlock.pixelType = 'u8'; }; diff --git a/src/shared/components/Calendar/useFindSelectedSceneByDate.tsx b/src/shared/hooks/useFindSelectedSceneByDate.tsx similarity index 79% rename from src/shared/components/Calendar/useFindSelectedSceneByDate.tsx rename to src/shared/hooks/useFindSelectedSceneByDate.tsx index 8fd5a68f..6f2f35ad 100644 --- a/src/shared/components/Calendar/useFindSelectedSceneByDate.tsx +++ b/src/shared/hooks/useFindSelectedSceneByDate.tsx @@ -14,14 +14,16 @@ */ import React, { useEffect } from 'react'; -import { useSelector } from 'react-redux'; +import { useSelector, batch } from 'react-redux'; import { selectAvailableScenes, selectQueryParams4SceneInSelectedMode, + selectShouldForceSceneReselection, } from '@shared/store/ImageryScene/selectors'; import { useDispatch } from 'react-redux'; import { updateObjectIdOfSelectedScene } from '@shared/store/ImageryScene/thunks'; import { selectIsAnimationPlaying } from '@shared/store/UI/selectors'; +import { shouldForceSceneReselectionUpdated } from '@shared/store/ImageryScene/reducer'; /** * This custom hooks tries to find the selected scene that was acquired from the selected acquisition date @@ -40,6 +42,10 @@ export const useFindSelectedSceneByDate = (): void => { */ const availableScenes = useSelector(selectAvailableScenes); + const shouldForceSceneReselection = useSelector( + selectShouldForceSceneReselection + ); + useEffect(() => { // It is unnecessary to update the object ID of the selected scene while the animation is playing. // This is because the available scenes associated with each animation frame do not get updated during animation playback. @@ -55,10 +61,10 @@ export const useFindSelectedSceneByDate = (): void => { return; } - // We want to maintain the selected imagery scene as locked, in other words, - // once a scene is chosen, it will remain locked until the user explicitly removes the + // We want to maintain the selected imagery scene as locked as long as the `shouldForceSceneReselection` flag is set to false, + // in other words, once a scene is chosen, it will remain locked until the user explicitly removes the // selected date from the calendar or removes the object Id of the selected scene. - if (objectIdOfSelectedScene) { + if (objectIdOfSelectedScene && shouldForceSceneReselection === false) { return; } @@ -68,8 +74,12 @@ export const useFindSelectedSceneByDate = (): void => { (d) => d.formattedAcquisitionDate === acquisitionDate ); - dispatch( - updateObjectIdOfSelectedScene(selectedScene?.objectId || null) - ); + batch(() => { + dispatch( + updateObjectIdOfSelectedScene(selectedScene?.objectId || null) + ); + + dispatch(shouldForceSceneReselectionUpdated(false)); + }); }, [availableScenes, acquisitionDate, objectIdOfSelectedScene]); }; diff --git a/src/shared/services/helpers/deduplicateListOfScenes.test.ts b/src/shared/services/helpers/deduplicateListOfScenes.test.ts new file mode 100644 index 00000000..dbc434a6 --- /dev/null +++ b/src/shared/services/helpers/deduplicateListOfScenes.test.ts @@ -0,0 +1,109 @@ +import { deduplicateListOfImageryScenes } from './deduplicateListOfScenes'; + +describe('test deduplicateListOfImageryScenes', () => { + const data = [ + { + formattedAcquisitionDate: '01-01', + acquisitionDate: 20240101, + doesNotMeetCriteria: false, + objectId: 1, + }, + { + formattedAcquisitionDate: '01-01', + acquisitionDate: 20240101, + doesNotMeetCriteria: false, + objectId: 2, + }, + { + formattedAcquisitionDate: '01-02', + acquisitionDate: 20240102, + doesNotMeetCriteria: false, + objectId: 3, + }, + { + formattedAcquisitionDate: '01-02', + acquisitionDate: 20240102, + doesNotMeetCriteria: false, + objectId: 4, + }, + ] as any; + + it('should retain one scene per day', () => { + const output = deduplicateListOfImageryScenes(data, null); + + expect(output.length).toBe(2); + }); + + it('should retain the scene acquired later when there are two scenes acquired on the same day', () => { + const output = deduplicateListOfImageryScenes(data, null); + + expect(output.find((d) => d.objectId === 2)).toBeDefined(); + expect(output.find((d) => d.objectId === 4)).toBeDefined(); + }); + + it('should retain the currently selected scene (even if acquired earlier) when there are two scenes acquired on the same day', () => { + const output = deduplicateListOfImageryScenes( + [ + { + formattedAcquisitionDate: '01-01', + acquisitionDate: 20240101, + doesNotMeetCriteria: false, + objectId: 1, + }, + { + formattedAcquisitionDate: '01-01', + acquisitionDate: 20240101, + doesNotMeetCriteria: false, + objectId: 2, + }, + ] as any, + 1 + ); + + expect(output.find((d) => d.objectId === 1)).toBeDefined(); + }); + + it('should prioritize retaining scenes that meet all filter criteria', () => { + const output = deduplicateListOfImageryScenes( + [ + { + formattedAcquisitionDate: '01-01', + acquisitionDate: 20240101, + doesNotMeetCriteria: false, + objectId: 1, + }, + { + formattedAcquisitionDate: '01-01', + acquisitionDate: 20240101, + doesNotMeetCriteria: true, + objectId: 2, + }, + ] as any, + null + ); + + expect(output.find((d) => d.objectId === 1)).toBeDefined(); + }); + + it('should prioritize retaining scenes that meet all filter criteria even if there is a selected scene that was acquired on the same day', () => { + const output = deduplicateListOfImageryScenes( + [ + { + formattedAcquisitionDate: '01-01', + acquisitionDate: 20240101, + doesNotMeetCriteria: true, + objectId: 1, + }, + { + formattedAcquisitionDate: '01-01', + acquisitionDate: 20240101, + doesNotMeetCriteria: false, + objectId: 2, + }, + ] as any, + 1 + ); + + expect(output.find((d) => d.objectId === 2)).toBeDefined(); + }); +}); diff --git a/src/shared/services/helpers/deduplicateListOfScenes.ts b/src/shared/services/helpers/deduplicateListOfScenes.ts index 26ade881..8c43f06c 100644 --- a/src/shared/services/helpers/deduplicateListOfScenes.ts +++ b/src/shared/services/helpers/deduplicateListOfScenes.ts @@ -26,14 +26,30 @@ export const deduplicateListOfImageryScenes = ( // Get the last imagery scene in the array const prevScene = output[output.length - 1]; - // Check if there is a previous scene and its acquisition date matches the current scene. + // Check if there is a previous scene and if its acquisition date matches the current scene. // We aim to keep only one imagery scene for each day. When there are two scenes acquired on the same date, - // we prioritize keeping the currently selected scene or the one acquired later. + // we prioritize keeping the scene that meets all filter criteria, the currently selected scene, or the one acquired later. if ( prevScene && prevScene.formattedAcquisitionDate === currScene.formattedAcquisitionDate ) { + // Prioritize retaining scenes that meet all filter criteria + // even if there is a selected scene acquired on the same day + if ( + prevScene.doesNotMeetCriteria !== currScene.doesNotMeetCriteria + ) { + // Remove the previous scene and use the current scene if the previous one does not meet all filter criteria + // even if it is currently selected + if (prevScene.doesNotMeetCriteria) { + output.pop(); + output.push(currScene); + } + + // If the previous scene meets all filter criteria, keep it and skip the current scene + continue; + } + // Check if the previous scene is the currently selected scene // Skip the current iteration if the previous scene is the selected scene if (prevScene.objectId === objectIdOfSelectedScene) { diff --git a/src/shared/services/sentinel-1/covert2ImageryScenes.ts b/src/shared/services/sentinel-1/covert2ImageryScenes.ts index 62713a5b..0bc93d8f 100644 --- a/src/shared/services/sentinel-1/covert2ImageryScenes.ts +++ b/src/shared/services/sentinel-1/covert2ImageryScenes.ts @@ -1,8 +1,12 @@ import { ImageryScene } from '@shared/store/ImageryScene/reducer'; -import { Sentinel1Scene } from '@typing/imagery-service'; +import { + Sentinel1OrbitDirection, + Sentinel1Scene, +} from '@typing/imagery-service'; export const convert2ImageryScenes = ( - scenes: Sentinel1Scene[] + scenes: Sentinel1Scene[], + userSelectedOrbitDirection: Sentinel1OrbitDirection ): ImageryScene[] => { // convert list of Landsat scenes to list of imagery scenes const imageryScenes: ImageryScene[] = scenes.map( @@ -14,8 +18,12 @@ export const convert2ImageryScenes = ( acquisitionDate, acquisitionYear, acquisitionMonth, + orbitDirection, } = landsatScene; + const doesNotMeetCriteria = + userSelectedOrbitDirection !== orbitDirection; + const imageryScene: ImageryScene = { objectId, sceneId: name, @@ -24,6 +32,7 @@ export const convert2ImageryScenes = ( acquisitionYear, acquisitionMonth, cloudCover: 0, + doesNotMeetCriteria, satellite: 'Sentinel-1', }; diff --git a/src/shared/services/sentinel-1/getSentinel1Scenes.ts b/src/shared/services/sentinel-1/getSentinel1Scenes.ts index 7a0c5188..45a115ee 100644 --- a/src/shared/services/sentinel-1/getSentinel1Scenes.ts +++ b/src/shared/services/sentinel-1/getSentinel1Scenes.ts @@ -35,7 +35,7 @@ type GetSentinel1ScenesParams = { /** * orbit direction */ - orbitDirection: Sentinel1OrbitDirection; + orbitDirection?: Sentinel1OrbitDirection; /** * the relative orbits of sentinel-1 scenes */ @@ -166,8 +166,10 @@ export const getSentinel1Scenes = async ({ // whereClauses.push(`(${MONTH} = ${acquisitionMonth})`); // } - if (ORBIT_DIRECTION) { + if (orbitDirection) { whereClauses.push(`(${ORBIT_DIRECTION} = '${orbitDirection}')`); + } else { + whereClauses.push(`(${ORBIT_DIRECTION} is NOT NULL)`); } if (relativeOrbit) { diff --git a/src/shared/store/ImageryScene/reducer.ts b/src/shared/store/ImageryScene/reducer.ts index 19e7a3a5..da2ee505 100644 --- a/src/shared/store/ImageryScene/reducer.ts +++ b/src/shared/store/ImageryScene/reducer.ts @@ -72,14 +72,6 @@ export type QueryParams4ImageryScene = { * unique id of the query params that is associated with this Imagery Scene */ uniqueId?: string; - // /** - // * This property represents the acquisition year inherited from the previously selected item in the listOfQueryParams. - // * - // * Normally, the current year is used as the default acquisition year for new query parameters. - // * However, to enhance the user experience in animation mode, we retain the acquisition year from the previous frame. - // * This ensures a seamless workflow, allowing users to seamlessly continue their work on the same year as the prior animation frame. - // */ - // inheritedAcquisitionYear?: number; /** * User selected acquisition date range that will be used to query available imagery scenes. */ @@ -117,6 +109,10 @@ export type ImageryScene = { * percent of cloud cover, the value ranges from 0 - 1 */ cloudCover: number; + /** + * Flag indicating if the imagery scene does not meet all user-selected criteria + */ + doesNotMeetCriteria?: boolean; }; export type ImageryScenesState = { @@ -168,10 +164,12 @@ export type ImageryScenesState = { * user selected cloud coverage threshold, the value ranges from 0 to 1 */ cloudCover: number; - // /** - // * user selected acquisiton year that will be used to find list of available imagery scenes - // */ - // acquisitionYear: number; + /** + * Flag indicating whether the scene should be forcibly reselected. + * If true, the default logic (inside of `useFindSelectedSceneByDate` custom hook) of keeping with the currently selected scene + * will be overridden, and the scene will be reselected from the new list of scenes. + */ + shouldForceSceneReselection: boolean; }; export const DefaultQueryParams4ImageryScene: QueryParams4ImageryScene = { @@ -202,7 +200,7 @@ export const initialImagerySceneState: ImageryScenesState = { objectIds: [], }, cloudCover: 0.5, - // acquisitionYear: getCurrentYear(), + shouldForceSceneReselection: false, }; const slice = createSlice({ @@ -308,6 +306,12 @@ const slice = createSlice({ byObjectId, }; }, + shouldForceSceneReselectionUpdated: ( + state, + action: PayloadAction + ) => { + state.shouldForceSceneReselection = action.payload; + }, }, }); @@ -325,7 +329,7 @@ export const { cloudCoverChanged, activeAnalysisToolChanged, availableImageryScenesUpdated, - // acquisitionYearChanged, + shouldForceSceneReselectionUpdated, } = slice.actions; export default reducer; diff --git a/src/shared/store/ImageryScene/selectors.ts b/src/shared/store/ImageryScene/selectors.ts index 97304944..04220f33 100644 --- a/src/shared/store/ImageryScene/selectors.ts +++ b/src/shared/store/ImageryScene/selectors.ts @@ -138,3 +138,8 @@ export const selectAvailableScenes = createSelector( return objectIds.map((objectId) => byObjectId[objectId]); } ); + +export const selectShouldForceSceneReselection = createSelector( + (state: RootState) => state.ImageryScenes.shouldForceSceneReselection, + (shouldForceSceneReselection) => shouldForceSceneReselection +); diff --git a/src/shared/store/Sentinel1/reducer.ts b/src/shared/store/Sentinel1/reducer.ts index 78044f87..ac1f1f2b 100644 --- a/src/shared/store/Sentinel1/reducer.ts +++ b/src/shared/store/Sentinel1/reducer.ts @@ -48,7 +48,7 @@ export const initialSentinel1State: Sentinel1State = { byObjectId: {}, objectIds: [], }, - orbitDirection: 'Descending', + orbitDirection: 'Ascending', polarizationFilter: 'VV', }; diff --git a/src/shared/store/Sentinel1/selectors.ts b/src/shared/store/Sentinel1/selectors.ts index f0f1357e..ff5e95a5 100644 --- a/src/shared/store/Sentinel1/selectors.ts +++ b/src/shared/store/Sentinel1/selectors.ts @@ -30,3 +30,8 @@ export const selectPolarizationFilter = createSelector( (state: RootState) => state.Sentinel1.polarizationFilter, (polarizationFilter) => polarizationFilter ); + +export const selectSentinel1State = createSelector( + (state: RootState) => state.Sentinel1, + (Sentinel1) => Sentinel1 +); diff --git a/src/shared/store/Sentinel1/thunks.ts b/src/shared/store/Sentinel1/thunks.ts index bbd4ef2a..c3b3671a 100644 --- a/src/shared/store/Sentinel1/thunks.ts +++ b/src/shared/store/Sentinel1/thunks.ts @@ -30,23 +30,32 @@ import { selectQueryParams4SceneInSelectedMode } from '../ImageryScene/selectors import { getSentinel1Scenes } from '@shared/services/sentinel-1/getSentinel1Scenes'; import { convert2ImageryScenes } from '@shared/services/sentinel-1/covert2ImageryScenes'; import { deduplicateListOfImageryScenes } from '@shared/services/helpers/deduplicateListOfScenes'; +import { selectSentinel1OrbitDirection } from './selectors'; + +type QueryAvailableSentinel1ScenesParams = { + /** + * user selected date range to query sentinel-1 scenes + */ + acquisitionDateRange: DateRange; + /** + * relative orbit of the sentinel-1 scenes to query + */ + relativeOrbit?: string; +}; let abortController: AbortController = null; /** * Query Sentinel-1 Scenes that intersect with center point of map view that were acquired within the user selected acquisition year. * @param acquisitionDateRange user selected acquisition date range - * @param orbitDirection user selected orbit direction * @param relativeOrbit relative orbit of sentinel-1 scenes * @returns */ -export const queryAvailableScenes = - ( - acquisitionDateRange: DateRange, - orbitDirection: Sentinel1OrbitDirection, - relativeOrbit?: string - // dualPolarizationOnly: boolean - ) => +export const queryAvailableSentinel1Scenes = + ({ + acquisitionDateRange, + relativeOrbit, + }: QueryAvailableSentinel1ScenesParams) => async (dispatch: StoreDispatch, getState: StoreGetState) => { if (!acquisitionDateRange) { return; @@ -58,23 +67,30 @@ export const queryAvailableScenes = abortController = new AbortController(); + const storeState = getState(); + try { const { objectIdOfSelectedScene, acquisitionDate } = - selectQueryParams4SceneInSelectedMode(getState()) || {}; + selectQueryParams4SceneInSelectedMode(storeState) || {}; + + const orbitDirection = selectSentinel1OrbitDirection(storeState); const center = selectMapCenter(getState()); // get scenes that were acquired within the acquisition year const scenes = await getSentinel1Scenes({ acquisitionDateRange, - orbitDirection, + // orbitDirection, relativeOrbit, mapPoint: center, abortController, }); // convert list of Sentinel-1 scenes to list of imagery scenes - let imageryScenes: ImageryScene[] = convert2ImageryScenes(scenes); + let imageryScenes: ImageryScene[] = convert2ImageryScenes( + scenes, + orbitDirection + ); // deduplicates the list based on acquisition date, keeping only one scene per day imageryScenes = deduplicateListOfImageryScenes( diff --git a/src/shared/utils/url-hash-params/index.ts b/src/shared/utils/url-hash-params/index.ts index b9b59a09..0d4ddd33 100644 --- a/src/shared/utils/url-hash-params/index.ts +++ b/src/shared/utils/url-hash-params/index.ts @@ -74,7 +74,8 @@ export type UrlHashParamKey = | 'hideTerrain' // hash params for terrain layer | 'hideMapLabels' // hash params for map labels layer | 'hideBasemap' // hash params for map labels layer - | 'tool'; // hash params for active analysis tool + | 'tool' // hash params for active analysis tool + | 'sentinel1'; // hash params for Sentinel-1 scenes const getHashParams = () => { return new URLSearchParams(window.location.hash.slice(1)); diff --git a/src/shared/utils/url-hash-params/sentinel1.ts b/src/shared/utils/url-hash-params/sentinel1.ts new file mode 100644 index 00000000..aece76dc --- /dev/null +++ b/src/shared/utils/url-hash-params/sentinel1.ts @@ -0,0 +1,38 @@ +import { + Sentinel1State, + initialSentinel1State, +} from '@shared/store/Sentinel1/reducer'; +import { Sentinel1OrbitDirection } from '@typing/imagery-service'; +import { getHashParamValueByKey, updateHashParams } from '.'; + +const encodeSentinel1Data = (data: Sentinel1State): string => { + if (!data) { + return null; + } + + const { orbitDirection } = data; + + return [orbitDirection].join('|'); +}; + +const decodeSentinel1Data = (val: string): Sentinel1State => { + if (!val) { + return null; + } + + const [orbitDirection] = val.split('|'); + + return { + ...initialSentinel1State, + orbitDirection: orbitDirection as Sentinel1OrbitDirection, + }; +}; + +export const saveSentinel1StateToHashParams = (state: Sentinel1State) => { + updateHashParams('sentinel1', encodeSentinel1Data(state)); +}; + +export const getSentinel1StateFromHashParams = () => { + const value = getHashParamValueByKey('sentinel1'); + return decodeSentinel1Data(value); +}; From 22aa24179d61544f6612d0e396c5d555e063a472 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 20 Jun 2024 10:55:10 -0700 Subject: [PATCH 076/151] refactor(shared): add customTooltipText prop to FormattedScene used by Calendar component cloud cover related info should not be passed to Calendar --- .../getPreloadedState4Sentinel1Explorer.ts | 2 - .../components/Calendar/Calendar.test.tsx | 1 - src/shared/components/Calendar/Calendar.tsx | 47 +++++++++---------- .../components/Calendar/CalendarContainer.tsx | 14 ++---- .../Calendar/useFormattedScenes.tsx | 5 +- .../sentinel-1/covert2ImageryScenes.ts | 5 +- src/shared/store/ImageryScene/reducer.ts | 4 ++ src/shared/store/Landsat/thunks.ts | 3 ++ src/shared/store/UI/reducer.ts | 5 -- src/shared/store/UI/selectors.ts | 5 -- 10 files changed, 39 insertions(+), 52 deletions(-) diff --git a/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts index 3547161b..57a9b033 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts @@ -175,8 +175,6 @@ const getPreloadedUIState = (): UIState => { const proloadedUIState: UIState = { ...initialUIState, - hideCloudCoverInfo: true, - // nameOfSelectedInterestingPlace: randomInterestingPlace?.name || '', }; if (animationSpeed) { diff --git a/src/shared/components/Calendar/Calendar.test.tsx b/src/shared/components/Calendar/Calendar.test.tsx index 73db58b7..f8b109be 100644 --- a/src/shared/components/Calendar/Calendar.test.tsx +++ b/src/shared/components/Calendar/Calendar.test.tsx @@ -28,7 +28,6 @@ describe('test Calendar component', () => { }} selectedAcquisitionDate="2024-01-13" availableScenes={[]} - shouldHideCloudCoverInfo={false} onSelect={(val) => { console.log(val); }} diff --git a/src/shared/components/Calendar/Calendar.tsx b/src/shared/components/Calendar/Calendar.tsx index c732446f..6c7a99b0 100644 --- a/src/shared/components/Calendar/Calendar.tsx +++ b/src/shared/components/Calendar/Calendar.tsx @@ -41,14 +41,6 @@ export type FormattedImageryScene = { * date in format of (YYYY-MM-DD) */ formattedAcquisitionDate: string; - // /** - // * if true, this date should be rendered using the style of cloudy day - // */ - // isCloudy: boolean; - /** - * percent of cloud coverage of the selected Imagery Scene acquired on this day - */ - cloudCover: number; /** * name of the satellite (e.g., `Landsat-7`) */ @@ -57,6 +49,10 @@ export type FormattedImageryScene = { * Flag indicating if the imagery scene does not meet all user-selected criteria */ doesNotMeetCriteria: boolean; + /** + * custom text to be displayed in the calendar component + */ + customTooltipText?: string[]; }; type CalendarProps = { @@ -74,10 +70,6 @@ type CalendarProps = { * so that the user can know there are available data on these days */ availableScenes?: FormattedImageryScene[]; - /** - * if true, hide cloud cover info in Calendar tooltip - */ - shouldHideCloudCoverInfo: boolean; /** * Fires when user select a new acquisition date * @param date date string in format of (YYYY-MM-DD) @@ -103,10 +95,6 @@ type MonthGridProps = Omit & { * number of days in this month */ days: number; - /** - * if true, hide cloud cover info in Calendar tooltip - */ - shouldHideCloudCoverInfo: boolean; }; const MonthGrid: FC = ({ @@ -116,7 +104,7 @@ const MonthGrid: FC = ({ days, selectedAcquisitionDate, availableScenes, - shouldHideCloudCoverInfo, + // shouldHideCloudCoverInfo, onSelect, }: MonthGridProps) => { const dataOfImagerySceneByAcquisitionDate = useMemo(() => { @@ -229,11 +217,18 @@ const MonthGrid: FC = ({ )}
- {shouldHideCloudCoverInfo === false && ( - - {dataOfImageryScene.cloudCover}% Cloudy - - )} + {dataOfImageryScene?.customTooltipText + ? dataOfImageryScene?.customTooltipText.map( + (text) => { + return ( + <> + {text} +
+ + ); + } + ) + : null}
)}
@@ -262,7 +257,7 @@ const Calendar: FC = ({ dateRange, selectedAcquisitionDate, availableScenes, - shouldHideCloudCoverInfo, + // shouldHideCloudCoverInfo, onSelect, }: CalendarProps) => { const { startDate, endDate } = dateRange; @@ -290,7 +285,7 @@ const Calendar: FC = ({ days={getNumberOfDays(year, month)} selectedAcquisitionDate={selectedAcquisitionDate} availableScenes={availableScenes} - shouldHideCloudCoverInfo={shouldHideCloudCoverInfo} + // shouldHideCloudCoverInfo={shouldHideCloudCoverInfo} onSelect={onSelect} /> ); @@ -309,7 +304,7 @@ const Calendar: FC = ({ days={getNumberOfDays(startYear, month)} selectedAcquisitionDate={selectedAcquisitionDate} availableScenes={availableScenes} - shouldHideCloudCoverInfo={shouldHideCloudCoverInfo} + // shouldHideCloudCoverInfo={shouldHideCloudCoverInfo} onSelect={onSelect} /> ); @@ -325,7 +320,7 @@ const Calendar: FC = ({ days={getNumberOfDays(endYear, month)} selectedAcquisitionDate={selectedAcquisitionDate} availableScenes={availableScenes} - shouldHideCloudCoverInfo={shouldHideCloudCoverInfo} + // shouldHideCloudCoverInfo={shouldHideCloudCoverInfo} onSelect={onSelect} /> ); diff --git a/src/shared/components/Calendar/CalendarContainer.tsx b/src/shared/components/Calendar/CalendarContainer.tsx index 69806075..f7af52cb 100644 --- a/src/shared/components/Calendar/CalendarContainer.tsx +++ b/src/shared/components/Calendar/CalendarContainer.tsx @@ -34,10 +34,10 @@ import { // updateCloudCover, } from '@shared/store/ImageryScene/thunks'; import classNames from 'classnames'; -import { - // selectIsAnimationPlaying, - selectShouldHideCloudCoverInfo, -} from '@shared/store/UI/selectors'; +// import { +// // selectIsAnimationPlaying, +// selectShouldHideCloudCoverInfo, +// } from '@shared/store/UI/selectors'; // import { CloudFilter } from '@shared/components/CloudFilter'; // import { // // acquisitionYearChanged, @@ -114,10 +114,6 @@ const CalendarContainer: FC = ({ children }: Props) => { */ const shouldBeDisabled = useShouldDisableCalendar(); - const shouldHideCloudCoverInfo = useSelector( - selectShouldHideCloudCoverInfo - ); - // /** // * This custom hook is triggered whenever the user-selected acquisition date changes. // * It updates the user-selected year based on the year from the selected acquisition date. @@ -176,7 +172,7 @@ const CalendarContainer: FC = ({ children }: Props) => { dateRange={acquisitionDateRange || getDateRangeForPast12Month()} selectedAcquisitionDate={selectedAcquisitionDate} availableScenes={formattedScenes} - shouldHideCloudCoverInfo={shouldHideCloudCoverInfo} + // shouldHideCloudCoverInfo={shouldHideCloudCoverInfo} onSelect={(formattedAcquisitionDate) => { // console.log(formattedAcquisitionDate) diff --git a/src/shared/components/Calendar/useFormattedScenes.tsx b/src/shared/components/Calendar/useFormattedScenes.tsx index bf62041d..e643786b 100644 --- a/src/shared/components/Calendar/useFormattedScenes.tsx +++ b/src/shared/components/Calendar/useFormattedScenes.tsx @@ -54,6 +54,7 @@ export const useFormattedScenes = (): FormattedImageryScene[] => { cloudCover, satellite, doesNotMeetCriteria, + customTooltipText, } = scene; const doestNotMeetCloudTreshold = cloudCover > cloudCoverThreshold; @@ -64,9 +65,9 @@ export const useFormattedScenes = (): FormattedImageryScene[] => { // isCloudy: cloudCover > cloudCoverThreshold, doesNotMeetCriteria: doesNotMeetCriteria || doestNotMeetCloudTreshold, - cloudCover: Math.ceil(cloudCover * 100), satellite, - }; + customTooltipText, + } as FormattedImageryScene; }); }, [isAnimationPlaying, availableScenes, cloudCoverThreshold]); diff --git a/src/shared/services/sentinel-1/covert2ImageryScenes.ts b/src/shared/services/sentinel-1/covert2ImageryScenes.ts index 0bc93d8f..b9df636f 100644 --- a/src/shared/services/sentinel-1/covert2ImageryScenes.ts +++ b/src/shared/services/sentinel-1/covert2ImageryScenes.ts @@ -10,7 +10,7 @@ export const convert2ImageryScenes = ( ): ImageryScene[] => { // convert list of Landsat scenes to list of imagery scenes const imageryScenes: ImageryScene[] = scenes.map( - (landsatScene: Sentinel1Scene) => { + (scene: Sentinel1Scene) => { const { objectId, name, @@ -19,7 +19,7 @@ export const convert2ImageryScenes = ( acquisitionYear, acquisitionMonth, orbitDirection, - } = landsatScene; + } = scene; const doesNotMeetCriteria = userSelectedOrbitDirection !== orbitDirection; @@ -34,6 +34,7 @@ export const convert2ImageryScenes = ( cloudCover: 0, doesNotMeetCriteria, satellite: 'Sentinel-1', + customTooltipText: [orbitDirection], }; return imageryScene; diff --git a/src/shared/store/ImageryScene/reducer.ts b/src/shared/store/ImageryScene/reducer.ts index da2ee505..12dc25c5 100644 --- a/src/shared/store/ImageryScene/reducer.ts +++ b/src/shared/store/ImageryScene/reducer.ts @@ -113,6 +113,10 @@ export type ImageryScene = { * Flag indicating if the imagery scene does not meet all user-selected criteria */ doesNotMeetCriteria?: boolean; + /** + * custom text to be displayed in the calendar component + */ + customTooltipText?: string[]; }; export type ImageryScenesState = { diff --git a/src/shared/store/Landsat/thunks.ts b/src/shared/store/Landsat/thunks.ts index 3db73760..d3f2099b 100644 --- a/src/shared/store/Landsat/thunks.ts +++ b/src/shared/store/Landsat/thunks.ts @@ -173,6 +173,9 @@ export const queryAvailableScenes = acquisitionMonth, cloudCover, satellite, + customTooltipText: [ + `${Math.ceil(cloudCover * 100)}% Cloudy`, + ], }; return imageryScene; diff --git a/src/shared/store/UI/reducer.ts b/src/shared/store/UI/reducer.ts index 3ff76f90..451483db 100644 --- a/src/shared/store/UI/reducer.ts +++ b/src/shared/store/UI/reducer.ts @@ -84,10 +84,6 @@ export type UIState = { * if true, show Save Webmap Panel */ showSaveWebMapPanel?: boolean; - /** - * if true, hide information from UI components (e.g. calendar tooltip) that is related to cloud cover of an imagery scene. - */ - hideCloudCoverInfo?: boolean; }; export const initialUIState: UIState = { @@ -102,7 +98,6 @@ export const initialUIState: UIState = { nameOfSelectedInterestingPlace: '', showDownloadPanel: false, showSaveWebMapPanel: false, - hideCloudCoverInfo: false, }; const slice = createSlice({ diff --git a/src/shared/store/UI/selectors.ts b/src/shared/store/UI/selectors.ts index 12878816..00f6ece4 100644 --- a/src/shared/store/UI/selectors.ts +++ b/src/shared/store/UI/selectors.ts @@ -75,8 +75,3 @@ export const selectAnimationLinkIsCopied = createSelector( (state: RootState) => state.UI.animationLinkIsCopied, (animationLinkIsCopied) => animationLinkIsCopied ); - -export const selectShouldHideCloudCoverInfo = createSelector( - (state: RootState) => state.UI.hideCloudCoverInfo, - (hideCloudCoverInfo) => hideCloudCoverInfo -); From be86d9cc24896575ca1bca968242615458b1a699 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 20 Jun 2024 11:23:49 -0700 Subject: [PATCH 077/151] feat(shared): show esitimated mask area in Mask tool ref #20 - update MaskToolState and remove percentOfPixelsInSelectedRange prop - add countOfPixelsOnChange to ImageryLayerWithPixelFilter - add calculatePixelArea - add useCalculatePixelArea custom hook - add useCalculateMaskArea custom hook - show Mask Layer Area info - MaskLayerVisibleAreaInfo component should show loading indicator --- .../MaskLayer/Sentinel1MaskLayer.tsx | 15 +++- .../components/MaskTool/Sentinel1MaskTool.tsx | 5 +- src/shared/components/Calendar/Calendar.tsx | 5 +- .../ImageryLayerWithPixelFilter.tsx | 21 ++++- .../components/MapView/MapViewContainer.tsx | 10 ++- .../MaskTool/MaskLayerVisibleAreaInfo.tsx | 40 +++++++++ src/shared/components/MaskTool/index.ts | 1 + .../hooks/useCalcMaskLayerTotalArea.tsx | 90 ------------------- .../hooks/useCalculateMaskLayerArea.tsx | 51 +++++++++++ src/shared/hooks/useCalculatePixelArea.tsx | 52 +++++++++++ .../helpers/calculatePixelArea.test.ts | 26 ++++++ .../services/helpers/calculatePixelArea.ts | 23 +++++ .../services/helpers/getCentroidByObjectId.ts | 28 ++++++ src/shared/services/helpers/getExtentById.ts | 7 +- src/shared/store/Map/reducer.ts | 9 ++ src/shared/store/Map/selectors.ts | 5 ++ src/shared/store/MaskTool/reducer.ts | 26 +++--- src/shared/store/MaskTool/selectors.ts | 12 +-- src/shared/utils/url-hash-params/maskTool.ts | 4 +- 19 files changed, 307 insertions(+), 123 deletions(-) create mode 100644 src/shared/components/MaskTool/MaskLayerVisibleAreaInfo.tsx delete mode 100644 src/shared/hooks/useCalcMaskLayerTotalArea.tsx create mode 100644 src/shared/hooks/useCalculateMaskLayerArea.tsx create mode 100644 src/shared/hooks/useCalculatePixelArea.tsx create mode 100644 src/shared/services/helpers/calculatePixelArea.test.ts create mode 100644 src/shared/services/helpers/calculatePixelArea.ts create mode 100644 src/shared/services/helpers/getCentroidByObjectId.ts diff --git a/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx b/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx index 22c7c15d..21526bfd 100644 --- a/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx +++ b/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx @@ -46,7 +46,9 @@ import { import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; import { Sentinel1PixelValueRangeByIndex } from '../MaskTool/Sentinel1MaskTool'; import { WaterLandMaskLayer } from './WaterLandMaskLayer'; -import { useCalcMaskLayerTotalArea } from '@shared/hooks/useCalcMaskLayerTotalArea'; +import { useDispatch } from 'react-redux'; +import { countOfVisiblePixelsChanged } from '@shared/store/MaskTool/reducer'; +import { useCalculateMaskArea } from '@shared/hooks/useCalculateMaskLayerArea'; type Props = { mapView?: MapView; @@ -66,6 +68,8 @@ const RasterFunctionNameByIndx: Record = { }; export const Sentinel1MaskLayer: FC = ({ mapView, groupLayer }) => { + const dispatach = useDispatch(); + const mode = useSelector(selectAppMode); const groupLayer4MaskAndWaterLandLayersRef = useRef(); @@ -130,7 +134,11 @@ export const Sentinel1MaskLayer: FC = ({ mapView, groupLayer }) => { groupLayer.add(groupLayer4MaskAndWaterLandLayersRef.current); }; - useCalcMaskLayerTotalArea(SENTINEL_1_SERVICE_URL, mapView); + useCalculateMaskArea({ + objectId: objectIdOfSelectedScene, + serviceURL: SENTINEL_1_SERVICE_URL, + pixelSize: mapView.resolution, + }); useEffect(() => { initGroupLayer4MaskAndWaterLandLayers(); @@ -173,6 +181,9 @@ export const Sentinel1MaskLayer: FC = ({ mapView, groupLayer }) => { fullPixelValueRange={fullPixelValueRange} opacity={opacity} pixelColor={pixelColor} + countOfPixelsOnChange={(totalPixels, visiblePixels) => { + dispatach(countOfVisiblePixelsChanged(visiblePixels)); + }} /> { ) : ( <> -
+
+ + = ({ ? dataOfImageryScene?.customTooltipText.map( (text) => { return ( - <> +
{text} -
- +
); } ) diff --git a/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx b/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx index 115a6fce..02e5ea4d 100644 --- a/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx +++ b/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx @@ -72,6 +72,16 @@ type Props = { * @returns The RGB color as an array of numbers */ getPixelColor?: (val: number, pixelValueRange: number[]) => number[]; + /** + * Emits when percent of visible pixels changes + * @param totalPixels total number of pixels of the mask layer + * @param visiblePixels total number of visible pixels (within the user selected pixel value range) of the mask layer + * @returns + */ + countOfPixelsOnChange?: ( + totalPixels: number, + visiblePixels: number + ) => void; }; type PixelData = { @@ -92,6 +102,7 @@ export const ImageryLayerWithPixelFilter: FC = ({ opacity, pixelColor, getPixelColor, + countOfPixelsOnChange, }) => { const layerRef = useRef(); @@ -271,11 +282,13 @@ export const ImageryLayerWithPixelFilter: FC = ({ pixelBlock.pixels = [pr, pg, pb]; - // percentage of visible pixels - const pctVisiblePixels = visiblePixels / totalPixels; - // console.log(pctVisiblePixels) - pixelBlock.pixelType = 'u8'; + + if (countOfPixelsOnChange) { + // const pctOfVisiblePixels = visiblePixels / totalPixels; + // console.log(pctVisiblePixels) + countOfPixelsOnChange(totalPixels, visiblePixels); + } }; useEffect(() => { diff --git a/src/shared/components/MapView/MapViewContainer.tsx b/src/shared/components/MapView/MapViewContainer.tsx index 8dee9095..5b501afd 100644 --- a/src/shared/components/MapView/MapViewContainer.tsx +++ b/src/shared/components/MapView/MapViewContainer.tsx @@ -32,7 +32,11 @@ import { import EventHandlers from './EventHandlers'; import { useDispatch } from 'react-redux'; import { batch } from 'react-redux'; -import { centerChanged, zoomChanged } from '../../store/Map/reducer'; +import { + centerChanged, + isUpdatingChanged, + zoomChanged, +} from '../../store/Map/reducer'; import { saveMapCenterToHashParams } from '../../utils/url-hash-params'; import { MapLoadingIndicator } from './MapLoadingIndicator'; // import { queryLocation4TrendToolChanged } from '@shared/store/TrendTool/reducer'; @@ -112,6 +116,10 @@ const MapViewContainer: FC = ({ mapOnClick, children }) => { document.body.classList.toggle('hide-map-control', isAnimationPlaying); }, [isAnimationPlaying]); + useEffect(() => { + dispatch(isUpdatingChanged(isUpdating)); + }, [isUpdating]); + return (
{ + const maskArea = useSelector(selectMaskLayerVisibleArea); + + const isMapUpdating = useSelector(selectIsMapUpdating); + + if (maskArea === null) { + return null; + } + + const getFormattedArea = () => { + if (!maskArea) { + return 0; + } + + if (maskArea > 100) { + return numberWithCommas(Math.floor(maskArea)); + } + + return maskArea.toFixed(2); + }; + + return ( +
+ {isMapUpdating ? ( +
+ + Loading mask layer +
+ ) : ( +

Estimated Mask Area: {getFormattedArea()} Sq.Km

+ )} +
+ ); +}; diff --git a/src/shared/components/MaskTool/index.ts b/src/shared/components/MaskTool/index.ts index 18be6900..e8eb1067 100644 --- a/src/shared/components/MaskTool/index.ts +++ b/src/shared/components/MaskTool/index.ts @@ -15,3 +15,4 @@ export { RenderingControlsContainer as MaskLayerRenderingControls } from './RenderingControlsContainer'; export { WarningMessage as MaskToolWarnigMessage } from './WarningMessage'; +export { MaskLayerVisibleAreaInfo } from './MaskLayerVisibleAreaInfo'; diff --git a/src/shared/hooks/useCalcMaskLayerTotalArea.tsx b/src/shared/hooks/useCalcMaskLayerTotalArea.tsx deleted file mode 100644 index 6d311590..00000000 --- a/src/shared/hooks/useCalcMaskLayerTotalArea.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import MapView from '@arcgis/core/views/MapView'; -import { getFeatureByObjectId } from '@shared/services/helpers/getFeatureById'; -import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; -import { - selectActiveAnalysisTool, - selectAppMode, - selectQueryParams4SceneInSelectedMode, -} from '@shared/store/ImageryScene/selectors'; -import { selectMapCenter, selectMapExtent } from '@shared/store/Map/selectors'; -import React, { useEffect, useRef, useState } from 'react'; -import { useSelector } from 'react-redux'; -import { clip, planarArea } from '@arcgis/core/geometry/geometryEngineAsync.js'; -import { Polygon } from '@arcgis/core/geometry'; -import { IFeature } from '@esri/arcgis-rest-feature-service'; -import { useDispatch } from 'react-redux'; -import { totalAreaInSqKmChanged } from '@shared/store/MaskTool/reducer'; - -const featureByObjectId: Map = new Map(); - -/** - * Custom React hook to calculate the total area of a mask layer on the map. - * - * @param {string} imageryServiceURL - The URL of the imagery service. - * @param {MapView} mapView - The ArcGIS MapView instance. - */ -export const useCalcMaskLayerTotalArea = ( - imageryServiceURL: string, - mapView: MapView -) => { - const dispatch = useDispatch(); - - const mode = useSelector(selectAppMode); - - const analyzeTool = useSelector(selectActiveAnalysisTool); - - const { objectIdOfSelectedScene } = - useSelector(selectQueryParams4SceneInSelectedMode) || {}; - - const center = useSelector(selectMapCenter); - - const abortControllerRef = useRef(); - - const getTotalArea = async () => { - if (!objectIdOfSelectedScene) { - return; - } - - if (mode !== 'analysis' || analyzeTool !== 'mask') { - return; - } - - try { - if (abortControllerRef.current) { - abortControllerRef.current.abort(); - } - - abortControllerRef.current = new AbortController(); - - // Retrieve the feature for the selected imagery scene - const feature = featureByObjectId.has(objectIdOfSelectedScene) - ? featureByObjectId.get(objectIdOfSelectedScene) - : await getFeatureByObjectId( - imageryServiceURL, - objectIdOfSelectedScene, - abortControllerRef.current - ); - - featureByObjectId.set(objectIdOfSelectedScene, feature); - - const geometry = feature.geometry as any; - - const { extent } = mapView; - - // clip with map extent - const clipped = (await clip(geometry, extent)) as Polygon; - - // calculate area of clipped geometry in sq kilometeres - const area = await planarArea(clipped, 'square-kilometers'); - // console.log(area); - - dispatch(totalAreaInSqKmChanged(area)); - } catch (err) { - console.log('failed to calculate area of mask layer', err); - } - }; - - useEffect(() => { - getTotalArea(); - }, [objectIdOfSelectedScene, center, mode, analyzeTool]); -}; diff --git a/src/shared/hooks/useCalculateMaskLayerArea.tsx b/src/shared/hooks/useCalculateMaskLayerArea.tsx new file mode 100644 index 00000000..9628b4d7 --- /dev/null +++ b/src/shared/hooks/useCalculateMaskLayerArea.tsx @@ -0,0 +1,51 @@ +import MapView from '@arcgis/core/views/MapView'; +import { useCalculatePixelArea } from '@shared/hooks/useCalculatePixelArea'; +import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; +import { totalVisibleAreaInSqKmChanged } from '@shared/store/MaskTool/reducer'; +import { selectCountOfVisiblePixels } from '@shared/store/MaskTool/selectors'; +import { debounce } from '@shared/utils/snippets/debounce'; +import React, { useEffect, useRef } from 'react'; +import { useDispatch } from 'react-redux'; +import { useSelector } from 'react-redux'; + +/** + * Custom hook that calculates the total visible area of the mask layer based on + * the count of visible pixels of the mask layer. + * + * @param {Object} params - The parameters object. + * @param {number} params.objectId - The object ID of the imagery scene. + * @param {string} params.serviceURL - The service URL for the imagery layer. + * @param {pixelSize} params.pixelSize - Represents the size of one pixel in map units. + */ +export const useCalculateMaskArea = ({ + objectId, + serviceURL, + pixelSize, +}: { + objectId: number; + serviceURL: string; + pixelSize: number; +}) => { + const dispatach = useDispatch(); + + const countOfVisiblePixels = useSelector(selectCountOfVisiblePixels); + + // calculate the approximate area a pixel covers, adjusted by the latitude of the centroid point of the imagery scene to which this pixel belongs + const pixelAreaInSqMeter = useCalculatePixelArea({ + pixelHeigh: pixelSize, + pixelWidth: pixelSize, + serviceURL: serviceURL, + objectId: objectId, + }); + + const clacAreaByNumOfPixels = (visiblePixels: number) => { + const areaSqMeter = pixelAreaInSqMeter * visiblePixels; + const areaSqKM = areaSqMeter / 1000000; + + dispatach(totalVisibleAreaInSqKmChanged(areaSqKM)); + }; + + useEffect(() => { + clacAreaByNumOfPixels(countOfVisiblePixels); + }, [countOfVisiblePixels]); +}; diff --git a/src/shared/hooks/useCalculatePixelArea.tsx b/src/shared/hooks/useCalculatePixelArea.tsx new file mode 100644 index 00000000..8b49892d --- /dev/null +++ b/src/shared/hooks/useCalculatePixelArea.tsx @@ -0,0 +1,52 @@ +import { calculatePixelArea } from '@shared/services/helpers/calculatePixelArea'; +import { getCentroidByObjectId } from '@shared/services/helpers/getCentroidByObjectId'; +import React, { useEffect, useState } from 'react'; + +/** + * Custom hook to calculate the approximate area a pixel covers, adjusted by the latitude of the centroid point of + * the imagery scene to which this pixel belongs. + * + * For example, if the pixel size is 10 meters at the equator, it covers 100 square meters. However, at latitude 40, + * it only covers approximately 76.6 square meters. + * + * @param params - An object containing the pixel dimensions, service URL, and object ID. + * @param params.pixelWidth - The width of the pixel in meter. + * @param params.pixelHeigh - The height of the pixel in meter. + * @param params.serviceURL - The URL of the imagery service. + * @param params.objectId - The unique identifier of the feature. + * @returns The area of the pixel in square meters. + */ +export const useCalculatePixelArea = ({ + pixelWidth, + pixelHeigh, + serviceURL, + objectId, +}: { + pixelWidth: number; + pixelHeigh: number; + serviceURL: string; + objectId: number; +}) => { + const [pixelAreaInSqMeter, setPixelAreaInSqMeter] = useState( + pixelWidth * pixelHeigh + ); + + useEffect(() => { + (async () => { + if (!objectId) { + return; + } + + const [lon, lat] = await getCentroidByObjectId( + serviceURL, + objectId + ); + + const area = calculatePixelArea(pixelWidth, pixelHeigh, lat); + + setPixelAreaInSqMeter(area); + })(); + }, [objectId, pixelWidth, pixelHeigh]); + + return pixelAreaInSqMeter; +}; diff --git a/src/shared/services/helpers/calculatePixelArea.test.ts b/src/shared/services/helpers/calculatePixelArea.test.ts new file mode 100644 index 00000000..2bf80afb --- /dev/null +++ b/src/shared/services/helpers/calculatePixelArea.test.ts @@ -0,0 +1,26 @@ +import { calculatePixelArea } from './calculatePixelArea'; + +describe('test calculatePixelArea', () => { + // Constants for pixel width and height + const pixelWidth = 10; // in meters + const pixelHeight = 10; // in meters + + test.each([ + [0, 100.0], // Latitude 0 degrees + [10, 98.48], // Latitude 10 degrees + [20, 93.97], // Latitude 20 degrees + [30, 86.6], // Latitude 30 degrees + [40, 76.6], // Latitude 40 degrees + [50, 64.28], // Latitude 50 degrees + [60, 50.0], // Latitude 60 degrees + [70, 34.2], // Latitude 70 degrees + [80, 17.36], // Latitude 80 degrees + [90, 0.0], // Latitude 90 degrees (cosine of 90 degrees is zero) + ])( + 'at latitude %d degrees, the pixel area should be approximately %f square meters', + (latitude, expectedArea) => { + const area = calculatePixelArea(pixelWidth, pixelHeight, latitude); + expect(area).toBeCloseTo(expectedArea, 2); + } + ); +}); diff --git a/src/shared/services/helpers/calculatePixelArea.ts b/src/shared/services/helpers/calculatePixelArea.ts new file mode 100644 index 00000000..9334ede7 --- /dev/null +++ b/src/shared/services/helpers/calculatePixelArea.ts @@ -0,0 +1,23 @@ +/** + * Calculate the area of a pixel in Web Mercator projection + * @param {number} pixelWidth - The width of the pixel in map units (meters) + * @param {number} pixelHeight - The height of the pixel in map units (meters) + * @param {number} latitude - The latitude at the center of the pixel in degrees + * @returns {number} The area of the pixel in square meters + */ +export const calculatePixelArea = ( + pixelWidth: number, + pixelHeight: number, + latitude: number +) => { + // Convert latitude from degrees to radians + const latitudeInRadians = (latitude * Math.PI) / 180; + + // Correct the height using the cosine of the latitude + const correctedHeight = pixelHeight * Math.cos(latitudeInRadians); + + // Calculate the area + const area = pixelWidth * correctedHeight; + + return area; +}; diff --git a/src/shared/services/helpers/getCentroidByObjectId.ts b/src/shared/services/helpers/getCentroidByObjectId.ts new file mode 100644 index 00000000..fe964915 --- /dev/null +++ b/src/shared/services/helpers/getCentroidByObjectId.ts @@ -0,0 +1,28 @@ +import { getExtentByObjectId } from './getExtentById'; + +/** + * Retrieves the centroid point of a feature from an imagery service using the object ID as a key. + * @param serviceUrl The URL of the imagery service. + * @param objectId The unique identifier of the feature. + * @returns A promise that resolves to an array containing the [longitude, latitude] of the centroid of the feature's extent. + */ +export const getCentroidByObjectId = async ( + serviceUrl: string, + objectId: number +): Promise => { + const extent = await getExtentByObjectId(serviceUrl, objectId, 4326); + + const { ymax, ymin } = extent; + let { xmax, xmin } = extent; + + // Normalize the x values in case the extent crosses the International Date Line + if (xmin < 0 && xmax > 0) { + xmin = xmax; + xmax = 180; + } + + const centerX = (xmax - xmin) / 2 + xmin; + const centerY = (ymax - ymin) / 2 + ymin; + + return [centerX, centerY]; +}; diff --git a/src/shared/services/helpers/getExtentById.ts b/src/shared/services/helpers/getExtentById.ts index 41775b05..e0f4f420 100644 --- a/src/shared/services/helpers/getExtentById.ts +++ b/src/shared/services/helpers/getExtentById.ts @@ -7,7 +7,8 @@ import { IExtent } from '@esri/arcgis-rest-feature-service'; */ export const getExtentByObjectId = async ( serviceUrl: string, - objectId: number + objectId: number, + outputSpatialReference?: number ): Promise => { const queryParams = new URLSearchParams({ f: 'json', @@ -15,6 +16,10 @@ export const getExtentByObjectId = async ( objectIds: objectId.toString(), }); + if (outputSpatialReference) { + queryParams.append('outSR', outputSpatialReference.toString()); + } + const res = await fetch(`${serviceUrl}/query?${queryParams.toString()}`); if (!res.ok) { diff --git a/src/shared/store/Map/reducer.ts b/src/shared/store/Map/reducer.ts index dfd9b440..3e19a369 100644 --- a/src/shared/store/Map/reducer.ts +++ b/src/shared/store/Map/reducer.ts @@ -67,6 +67,10 @@ export type MapState = { * anchor location of the map popup windown */ popupAnchorLocation: Point; + /** + * Indicates whether the map is being updated by additional data requests to the network, or by processing received data. + */ + isUpadting: boolean; }; export const initialMapState: MapState = { @@ -80,6 +84,7 @@ export const initialMapState: MapState = { showBasemap: true, swipeWidgetHanlderPosition: 50, popupAnchorLocation: null, + isUpadting: false, }; const slice = createSlice({ @@ -119,6 +124,9 @@ const slice = createSlice({ popupAnchorLocationChanged: (state, action: PayloadAction) => { state.popupAnchorLocation = action.payload; }, + isUpdatingChanged: (state, action: PayloadAction) => { + state.isUpadting = action.payload; + }, }, }); @@ -135,6 +143,7 @@ export const { showBasemapToggled, swipeWidgetHanlderPositionChanged, popupAnchorLocationChanged, + isUpdatingChanged, } = slice.actions; export default reducer; diff --git a/src/shared/store/Map/selectors.ts b/src/shared/store/Map/selectors.ts index 8d8f0850..dce19390 100644 --- a/src/shared/store/Map/selectors.ts +++ b/src/shared/store/Map/selectors.ts @@ -65,3 +65,8 @@ export const selectMapPopupAnchorLocation = createSelector( (state: RootState) => state.Map.popupAnchorLocation, (popupAnchorLocation) => popupAnchorLocation ); + +export const selectIsMapUpdating = createSelector( + (state: RootState) => state.Map.isUpadting, + (isUpadting) => isUpadting +); diff --git a/src/shared/store/MaskTool/reducer.ts b/src/shared/store/MaskTool/reducer.ts index 6771fca3..e1eac06e 100644 --- a/src/shared/store/MaskTool/reducer.ts +++ b/src/shared/store/MaskTool/reducer.ts @@ -54,13 +54,13 @@ export type MaskToolState = { */ shouldClipMaskLayer: boolean; /** - * total area of the Mask layer in square kilometers + * total visible area of the Mask layer in square kilometers */ - totalAreaInSqKm: number; + totalVisibleAreaInSqKm: number; /** - * percent of pixels of the Mask layer that are with in the selected pixel value range + * total number of visible pixels */ - percentOfPixelsInSelectedRange: number; + countOfVisiblePixels: number; }; export const DefaultPixelValueRangeBySelectedIndex: MaskToolPixelValueRangeBySpectralIndex = @@ -114,8 +114,8 @@ export const initialMaskToolState: MaskToolState = { ship: [255, 0, 21], urban: [255, 0, 21], }, - totalAreaInSqKm: 0, - percentOfPixelsInSelectedRange: 0, + totalVisibleAreaInSqKm: null, + countOfVisiblePixels: 0, }; const slice = createSlice({ @@ -149,14 +149,14 @@ const slice = createSlice({ shouldClipMaskLayerToggled: (state, action: PayloadAction) => { state.shouldClipMaskLayer = !state.shouldClipMaskLayer; }, - totalAreaInSqKmChanged: (state, action: PayloadAction) => { - state.totalAreaInSqKm = action.payload; - }, - percentOfPixelsInSelectedRangeChanged: ( + totalVisibleAreaInSqKmChanged: ( state, action: PayloadAction ) => { - state.percentOfPixelsInSelectedRange = action.payload; + state.totalVisibleAreaInSqKm = action.payload; + }, + countOfVisiblePixelsChanged: (state, action: PayloadAction) => { + state.countOfVisiblePixels = action.payload; }, }, }); @@ -170,8 +170,8 @@ export const { maskLayerOpacityChanged, shouldClipMaskLayerToggled, maskLayerPixelColorChanged, - totalAreaInSqKmChanged, - percentOfPixelsInSelectedRangeChanged, + totalVisibleAreaInSqKmChanged, + countOfVisiblePixelsChanged, } = slice.actions; export default reducer; diff --git a/src/shared/store/MaskTool/selectors.ts b/src/shared/store/MaskTool/selectors.ts index 2545246d..4054c4e8 100644 --- a/src/shared/store/MaskTool/selectors.ts +++ b/src/shared/store/MaskTool/selectors.ts @@ -50,12 +50,12 @@ export const selectMaskToolState = createSelector( (maskTool) => maskTool ); -export const selectTotalAreaOfMaskLayer = createSelector( - (state: RootState) => state.MaskTool.totalAreaInSqKm, - (totalAreaInSqKm) => totalAreaInSqKm +export const selectMaskLayerVisibleArea = createSelector( + (state: RootState) => state.MaskTool.totalVisibleAreaInSqKm, + (totalVisibleAreaInSqKm) => totalVisibleAreaInSqKm ); -export const selectPercentOfPixelsInSelectedRange = createSelector( - (state: RootState) => state.MaskTool.percentOfPixelsInSelectedRange, - (percentOfPixelsInSelectedRange) => percentOfPixelsInSelectedRange +export const selectCountOfVisiblePixels = createSelector( + (state: RootState) => state.MaskTool.countOfVisiblePixels, + (countOfVisiblePixels) => countOfVisiblePixels ); diff --git a/src/shared/utils/url-hash-params/maskTool.ts b/src/shared/utils/url-hash-params/maskTool.ts index 861190eb..a49fb44a 100644 --- a/src/shared/utils/url-hash-params/maskTool.ts +++ b/src/shared/utils/url-hash-params/maskTool.ts @@ -97,8 +97,8 @@ export const decodeMaskToolData = ( maskLayerOpacity: +maskLayerOpacity, pixelValueRangeBySelectedIndex, pixelColorBySelectedIndex, - totalAreaInSqKm: 0, - percentOfPixelsInSelectedRange: 0, + totalVisibleAreaInSqKm: 0, + countOfVisiblePixels: 0, }; }; From c5f3584465530ef79e9d377583671e5c5f9a2144 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 25 Jun 2024 12:56:07 -0700 Subject: [PATCH 078/151] fix(shared): Popup Window of Dynamic Mode should display correct value - fix: identify task should use `sortValue:-99999999`` when input objectId is not provided - fix: useImageryLayerByObjectId hook should use a explicit mosaic rule when objectId is undefined --- .../components/ImageryLayer/useImageLayer.tsx | 18 ++++++++++++++++-- src/shared/services/helpers/identify.ts | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/shared/components/ImageryLayer/useImageLayer.tsx b/src/shared/components/ImageryLayer/useImageLayer.tsx index 7fd6cdc0..8b79d5e2 100644 --- a/src/shared/components/ImageryLayer/useImageLayer.tsx +++ b/src/shared/components/ImageryLayer/useImageLayer.tsx @@ -57,6 +57,16 @@ export const getLockRasterMosaicRule = (objectId: number): MosaicRule => { }); }; +export const getMosaicRuleForDynamicMode = (): MosaicRule => { + return new MosaicRule({ + ascending: true, + method: 'attribute', + operation: 'first', + sortField: 'best', + sortValue: '-99999999', + }); +}; + /** * A custom React hook that returns an Imagery Layer instance . * The hook also updates the Imagery Layer when the input parameters are changed. @@ -77,7 +87,9 @@ export const useImageryLayerByObjectId = ({ * initialize imagery layer using mosaic created using the input year */ const init = async () => { - const mosaicRule = objectId ? getLockRasterMosaicRule(objectId) : null; + const mosaicRule = objectId + ? getLockRasterMosaicRule(objectId) + : getMosaicRuleForDynamicMode(); layerRef.current = new ImageryLayer({ // URL to the imagery service @@ -120,7 +132,9 @@ export const useImageryLayerByObjectId = ({ return; } - layerRef.current.mosaicRule = getLockRasterMosaicRule(objectId); + layerRef.current.mosaicRule = objectId + ? getLockRasterMosaicRule(objectId) + : getMosaicRuleForDynamicMode(); })(); }, [objectId]); diff --git a/src/shared/services/helpers/identify.ts b/src/shared/services/helpers/identify.ts index 03a64b3e..d629282d 100644 --- a/src/shared/services/helpers/identify.ts +++ b/src/shared/services/helpers/identify.ts @@ -94,7 +94,7 @@ export const identify = async ({ mosaicMethod: 'esriMosaicAttribute', mosaicOperation: 'MT_FIRST', sortField: 'best', - sortValue: '0', + sortValue: '-99999999', }; const params = new URLSearchParams({ From 85320cfd4c1564ec90db2cf03553c893c9c5c1b3 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 25 Jun 2024 15:55:47 -0700 Subject: [PATCH 079/151] refactor: update ImageryLayerByObjectID component and add defaultMosaicRule prop to it add sortField and sortValue for Landsat Level-2 and Sentinel-1 services --- .../components/LandsatLayer/LandsatLayer.tsx | 20 +++++++++++++++++-- .../Sentinel1Layer/Sentinel1Layer.tsx | 20 +++++++++++++++++-- .../ImageryLayer/ImageryLayerByObjectID.tsx | 7 +++++++ .../components/ImageryLayer/useImageLayer.tsx | 19 +++++++----------- src/shared/services/landsat-level-2/config.ts | 4 ++++ src/shared/services/sentinel-1/config.ts | 4 ++++ 6 files changed, 58 insertions(+), 16 deletions(-) diff --git a/src/landsat-explorer/components/LandsatLayer/LandsatLayer.tsx b/src/landsat-explorer/components/LandsatLayer/LandsatLayer.tsx index d750e949..53713270 100644 --- a/src/landsat-explorer/components/LandsatLayer/LandsatLayer.tsx +++ b/src/landsat-explorer/components/LandsatLayer/LandsatLayer.tsx @@ -14,11 +14,16 @@ */ import MapView from '@arcgis/core/views/MapView'; -import React, { FC, useEffect } from 'react'; +import React, { FC, useEffect, useMemo } from 'react'; import GroupLayer from '@arcgis/core/layers/GroupLayer'; // import { selectChangeCompareLayerIsOn } from '@shared/store/ChangeCompareTool/selectors'; import ImageryLayerByObjectID from '@shared/components/ImageryLayer/ImageryLayerByObjectID'; -import { LANDSAT_LEVEL_2_SERVICE_URL } from '@shared/services/landsat-level-2/config'; +import { + LANDSAT_LEVEL_2_SERVICE_SORT_FIELD, + LANDSAT_LEVEL_2_SERVICE_SORT_VALUE, + LANDSAT_LEVEL_2_SERVICE_URL, +} from '@shared/services/landsat-level-2/config'; +import MosaicRule from '@arcgis/core/layers/support/MosaicRule'; type Props = { mapView?: MapView; @@ -91,10 +96,21 @@ const LandsatLayer: FC = ({ mapView, groupLayer }: Props) => { // return null; + const defaultMosaicRule = useMemo(() => { + return new MosaicRule({ + ascending: true, + method: 'attribute', + operation: 'first', + sortField: LANDSAT_LEVEL_2_SERVICE_SORT_FIELD, + sortValue: LANDSAT_LEVEL_2_SERVICE_SORT_VALUE, + }); + }, []); + return ( ); }; diff --git a/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx b/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx index 188ffe7f..6c09e58e 100644 --- a/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx +++ b/src/sentinel-1-explorer/components/Sentinel1Layer/Sentinel1Layer.tsx @@ -14,11 +14,16 @@ */ import MapView from '@arcgis/core/views/MapView'; -import React, { FC, useEffect } from 'react'; +import React, { FC, useEffect, useMemo } from 'react'; import GroupLayer from '@arcgis/core/layers/GroupLayer'; // import { selectChangeCompareLayerIsOn } from '@shared/store/ChangeCompareTool/selectors'; -import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; +import { + SENTINEL1_SERVICE_SORT_FIELD, + SENTINEL1_SERVICE_SORT_VALUE, + SENTINEL_1_SERVICE_URL, +} from '@shared/services/sentinel-1/config'; import ImageryLayerByObjectID from '@shared/components/ImageryLayer/ImageryLayerByObjectID'; +import MosaicRule from '@arcgis/core/layers/support/MosaicRule'; type Props = { mapView?: MapView; @@ -26,10 +31,21 @@ type Props = { }; export const Sentinel1Layer: FC = ({ mapView, groupLayer }: Props) => { + const defaultMosaicRule = useMemo(() => { + return new MosaicRule({ + ascending: true, + method: 'attribute', + operation: 'first', + sortField: SENTINEL1_SERVICE_SORT_FIELD, + sortValue: SENTINEL1_SERVICE_SORT_VALUE, + }); + }, []); + return ( ); }; diff --git a/src/shared/components/ImageryLayer/ImageryLayerByObjectID.tsx b/src/shared/components/ImageryLayer/ImageryLayerByObjectID.tsx index 1f101173..d7b0aa50 100644 --- a/src/shared/components/ImageryLayer/ImageryLayerByObjectID.tsx +++ b/src/shared/components/ImageryLayer/ImageryLayerByObjectID.tsx @@ -26,17 +26,23 @@ import { selectAnimationStatus } from '@shared/store/UI/selectors'; import GroupLayer from '@arcgis/core/layers/GroupLayer'; import { selectChangeCompareLayerIsOn } from '@shared/store/ChangeCompareTool/selectors'; import { selectIsTemporalCompositeLayerOn } from '@shared/store/TemporalCompositeTool/selectors'; +import MosaicRule from '@arcgis/core/layers/support/MosaicRule'; type Props = { serviceUrl: string; mapView?: MapView; groupLayer?: GroupLayer; + /** + * the mosaic rule that will be used for the imagery layer in Dynamic mode + */ + defaultMosaicRule: MosaicRule; }; const ImageryLayerByObjectID: FC = ({ serviceUrl, mapView, groupLayer, + defaultMosaicRule, }: Props) => { const mode = useSelector(selectAppMode); @@ -102,6 +108,7 @@ const ImageryLayerByObjectID: FC = ({ visible: getVisibility(), rasterFunction: rasterFunctionName, objectId: getObjectId(), + defaultMosaicRule, }); useEffect(() => { diff --git a/src/shared/components/ImageryLayer/useImageLayer.tsx b/src/shared/components/ImageryLayer/useImageLayer.tsx index 8b79d5e2..688c2825 100644 --- a/src/shared/components/ImageryLayer/useImageLayer.tsx +++ b/src/shared/components/ImageryLayer/useImageLayer.tsx @@ -34,6 +34,10 @@ type Props = { * visibility of the imagery layer */ visible?: boolean; + /** + * the mosaic rule that will be used to render the imagery layer in Dynamic mode + */ + defaultMosaicRule?: MosaicRule; }; /** @@ -57,16 +61,6 @@ export const getLockRasterMosaicRule = (objectId: number): MosaicRule => { }); }; -export const getMosaicRuleForDynamicMode = (): MosaicRule => { - return new MosaicRule({ - ascending: true, - method: 'attribute', - operation: 'first', - sortField: 'best', - sortValue: '-99999999', - }); -}; - /** * A custom React hook that returns an Imagery Layer instance . * The hook also updates the Imagery Layer when the input parameters are changed. @@ -78,6 +72,7 @@ export const useImageryLayerByObjectId = ({ visible, rasterFunction, objectId, + defaultMosaicRule, }: Props) => { const layerRef = useRef(); @@ -89,7 +84,7 @@ export const useImageryLayerByObjectId = ({ const init = async () => { const mosaicRule = objectId ? getLockRasterMosaicRule(objectId) - : getMosaicRuleForDynamicMode(); + : defaultMosaicRule; layerRef.current = new ImageryLayer({ // URL to the imagery service @@ -134,7 +129,7 @@ export const useImageryLayerByObjectId = ({ layerRef.current.mosaicRule = objectId ? getLockRasterMosaicRule(objectId) - : getMosaicRuleForDynamicMode(); + : defaultMosaicRule; })(); }, [objectId]); diff --git a/src/shared/services/landsat-level-2/config.ts b/src/shared/services/landsat-level-2/config.ts index 7e4cc6f4..ab8eea44 100644 --- a/src/shared/services/landsat-level-2/config.ts +++ b/src/shared/services/landsat-level-2/config.ts @@ -338,3 +338,7 @@ export const LANDSAT_BAND_NAMES = [ 'Surface Temperature (Kelvin)', 'Surface Temperature QA', ]; + +export const LANDSAT_LEVEL_2_SERVICE_SORT_FIELD = 'best'; + +export const LANDSAT_LEVEL_2_SERVICE_SORT_VALUE = '0'; diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index bde7be50..f2d029cc 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -182,3 +182,7 @@ export const SENTINEL1_WATER_ANOMALY_INDEX_PIXEL_RANGE: number[] = [-2, 0]; * For both ship and urban detection, we can use range of 0 to 1 for the threshold slider */ export const SENTINEL1_SHIP_AND_URBAN_INDEX_PIXEL_RANGE: number[] = [0, 1]; + +export const SENTINEL1_SERVICE_SORT_FIELD = 'best'; + +export const SENTINEL1_SERVICE_SORT_VALUE = '-99999999'; From 0402212d0b5d3c24b4c1376caeadee5e3cab7019 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 25 Jun 2024 16:09:57 -0700 Subject: [PATCH 080/151] refactor(shared): update getMosaicRuleByObjectId module and use getMosaicRules as new name --- src/shared/services/helpers/exportImage.ts | 4 +- ...aicRuleByObjectId.ts => getMosaicRules.ts} | 9 +- src/shared/services/helpers/identify.ts | 4 +- .../services/landsat-level-2/exportImage.ts | 130 +++++++++--------- 4 files changed, 77 insertions(+), 70 deletions(-) rename src/shared/services/helpers/{getMosaicRuleByObjectId.ts => getMosaicRules.ts} (79%) diff --git a/src/shared/services/helpers/exportImage.ts b/src/shared/services/helpers/exportImage.ts index 03d2584b..3addbca9 100644 --- a/src/shared/services/helpers/exportImage.ts +++ b/src/shared/services/helpers/exportImage.ts @@ -14,7 +14,7 @@ */ import IExtent from '@arcgis/core/geometry/Extent'; -import { getMosaicRuleByObjectIds } from './getMosaicRuleByObjectId'; +import { getLockRasterMosaicRule } from './getMosaicRules'; type ExportImageParams = { /** @@ -62,7 +62,7 @@ export const exportImage = async ({ imageSR: '102100', format: 'jpgpng', size: `${width},${height}`, - mosaicRule: JSON.stringify(getMosaicRuleByObjectIds([objectId])), + mosaicRule: JSON.stringify(getLockRasterMosaicRule([objectId])), renderingRule: JSON.stringify({ rasterFunction: rasterFunctionName }), }); diff --git a/src/shared/services/helpers/getMosaicRuleByObjectId.ts b/src/shared/services/helpers/getMosaicRules.ts similarity index 79% rename from src/shared/services/helpers/getMosaicRuleByObjectId.ts rename to src/shared/services/helpers/getMosaicRules.ts index 805616b7..f6a146a4 100644 --- a/src/shared/services/helpers/getMosaicRuleByObjectId.ts +++ b/src/shared/services/helpers/getMosaicRules.ts @@ -22,7 +22,14 @@ // }; // }; -export const getMosaicRuleByObjectIds = (objectIds: number[]) => { +/** + * Get mosaic rule that only displays the selected rasters. + * @param objectIds + * @returns + * + * @see https://developers.arcgis.com/rest/services-reference/enterprise/mosaic-rules/#lockraster + */ +export const getLockRasterMosaicRule = (objectIds: number[]) => { return { ascending: false, lockRasterIds: objectIds, diff --git a/src/shared/services/helpers/identify.ts b/src/shared/services/helpers/identify.ts index d629282d..d9271ebc 100644 --- a/src/shared/services/helpers/identify.ts +++ b/src/shared/services/helpers/identify.ts @@ -15,7 +15,7 @@ import { Geometry, Point } from '@arcgis/core/geometry'; import { IFeature } from '@esri/arcgis-rest-feature-service'; -import { getMosaicRuleByObjectIds } from './getMosaicRuleByObjectId'; +import { getLockRasterMosaicRule } from './getMosaicRules'; import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; /** @@ -88,7 +88,7 @@ export const identify = async ({ }: IdentifyTaskParams): Promise => { const mosaicRule = objectIds && objectIds.length - ? getMosaicRuleByObjectIds(objectIds) + ? getLockRasterMosaicRule(objectIds) : { ascending: true, mosaicMethod: 'esriMosaicAttribute', diff --git a/src/shared/services/landsat-level-2/exportImage.ts b/src/shared/services/landsat-level-2/exportImage.ts index efd20427..61864164 100644 --- a/src/shared/services/landsat-level-2/exportImage.ts +++ b/src/shared/services/landsat-level-2/exportImage.ts @@ -1,73 +1,73 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// /* Copyright 2024 Esri +// * +// * Licensed under the Apache License Version 2.0 (the "License"); +// * you may not use this file except in compliance with the License. +// * You may obtain a copy of the License at +// * +// * http://www.apache.org/licenses/LICENSE-2.0 +// * +// * Unless required by applicable law or agreed to in writing, software +// * distributed under the License is distributed on an "AS IS" BASIS, +// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// * See the License for the specific language governing permissions and +// * limitations under the License. +// */ -import IExtent from '@arcgis/core/geometry/Extent'; -import { LANDSAT_LEVEL_2_SERVICE_URL } from './config'; -import { getMosaicRuleByObjectIds } from '../helpers/getMosaicRuleByObjectId'; -// import { getMosaicRuleByObjectId } from './helpers'; +// import IExtent from '@arcgis/core/geometry/Extent'; +// import { LANDSAT_LEVEL_2_SERVICE_URL } from './config'; +// import { getLockRasterMosaicRule } from '../helpers/getMosaicRuleByObjectId'; +// // import { getMosaicRuleByObjectId } from './helpers'; -type ExportImageParams = { - /** - * Map Extent - */ - extent: Pick; - /** - * width of map container - */ - width: number; - /** - * height of map container - */ - height: number; - /** - * raster function name that will be used in the rendering rule - */ - rasterFunctionName: string; - /** - * object Id of the Landsat scene - */ - objectId: number; - abortController: AbortController; -}; +// type ExportImageParams = { +// /** +// * Map Extent +// */ +// extent: Pick; +// /** +// * width of map container +// */ +// width: number; +// /** +// * height of map container +// */ +// height: number; +// /** +// * raster function name that will be used in the rendering rule +// */ +// rasterFunctionName: string; +// /** +// * object Id of the Landsat scene +// */ +// objectId: number; +// abortController: AbortController; +// }; -export const exportImage = async ({ - extent, - width, - height, - rasterFunctionName, - objectId, - abortController, -}: ExportImageParams) => { - const { xmin, xmax, ymin, ymax } = extent; +// export const exportImage = async ({ +// extent, +// width, +// height, +// rasterFunctionName, +// objectId, +// abortController, +// }: ExportImageParams) => { +// const { xmin, xmax, ymin, ymax } = extent; - const params = new URLSearchParams({ - f: 'image', - bbox: `${xmin},${ymin},${xmax},${ymax}`, - bboxSR: '102100', - imageSR: '102100', - format: 'jpgpng', - size: `${width},${height}`, - mosaicRule: JSON.stringify(getMosaicRuleByObjectIds([objectId])), - renderingRule: JSON.stringify({ rasterFunction: rasterFunctionName }), - }); +// const params = new URLSearchParams({ +// f: 'image', +// bbox: `${xmin},${ymin},${xmax},${ymax}`, +// bboxSR: '102100', +// imageSR: '102100', +// format: 'jpgpng', +// size: `${width},${height}`, +// mosaicRule: JSON.stringify(getLockRasterMosaicRule([objectId])), +// renderingRule: JSON.stringify({ rasterFunction: rasterFunctionName }), +// }); - const requestURL = `${LANDSAT_LEVEL_2_SERVICE_URL}/exportImage?${params.toString()}`; +// const requestURL = `${LANDSAT_LEVEL_2_SERVICE_URL}/exportImage?${params.toString()}`; - const res = await fetch(requestURL, { signal: abortController.signal }); +// const res = await fetch(requestURL, { signal: abortController.signal }); - const blob = await res.blob(); +// const blob = await res.blob(); - return blob; -}; +// return blob; +// }; From ca83f1b13bbe1019bd9b2dabc3673762b9642ce7 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 25 Jun 2024 16:28:55 -0700 Subject: [PATCH 081/151] refactor(shared): identify module should only add mosaic rule to query params when it is defined --- src/shared/services/helpers/getMosaicRules.ts | 20 ++++++++++++++++++ src/shared/services/helpers/identify.ts | 21 +++++++++++-------- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/src/shared/services/helpers/getMosaicRules.ts b/src/shared/services/helpers/getMosaicRules.ts index f6a146a4..33e164ba 100644 --- a/src/shared/services/helpers/getMosaicRules.ts +++ b/src/shared/services/helpers/getMosaicRules.ts @@ -37,3 +37,23 @@ export const getLockRasterMosaicRule = (objectIds: number[]) => { where: `objectid in (${objectIds.join(',')})`, }; }; + +/** + * Orders rasters based on the absolute distance between their values of an attribute and a base value. + * @param objectIds + * @returns + * + * @see https://developers.arcgis.com/rest/services-reference/enterprise/mosaic-rules/#lockraster + */ +export const getByAttributeMosaicRule = ( + sortField: string, + sortValue: string +) => { + return { + ascending: true, + mosaicMethod: 'esriMosaicAttribute', + mosaicOperation: 'MT_FIRST', + sortField, + sortValue, + }; +}; diff --git a/src/shared/services/helpers/identify.ts b/src/shared/services/helpers/identify.ts index d9271ebc..a09a6f2d 100644 --- a/src/shared/services/helpers/identify.ts +++ b/src/shared/services/helpers/identify.ts @@ -31,9 +31,13 @@ export type IdentifyTaskParams = { */ point: Point; /** - * Object IDs of the imagery scenes + * Object IDs of the imagery scenes that will be used to create a Lock Raster mosaic rule */ objectIds?: number[]; + /** + * A custom mosaic rule to be used when object Ids are not provided + */ + customMosaicRule?: any; /** * Raster Function that will be used as rendering rule */ @@ -81,6 +85,7 @@ export const identify = async ({ serviceURL, point, objectIds, + customMosaicRule, rasterFunction, resolution, maxItemCount, @@ -89,13 +94,7 @@ export const identify = async ({ const mosaicRule = objectIds && objectIds.length ? getLockRasterMosaicRule(objectIds) - : { - ascending: true, - mosaicMethod: 'esriMosaicAttribute', - mosaicOperation: 'MT_FIRST', - sortField: 'best', - sortValue: '-99999999', - }; + : customMosaicRule; const params = new URLSearchParams({ f: 'json', @@ -110,7 +109,7 @@ export const identify = async ({ x: point.longitude, y: point.latitude, }), - mosaicRule: JSON.stringify(mosaicRule), + // mosaicRule: JSON.stringify(mosaicRule), }); if (rasterFunction) { @@ -136,6 +135,10 @@ export const identify = async ({ params.append('maxItemCount', maxItemCount.toString()); } + if (mosaicRule) { + params.append('mosaicRule', JSON.stringify(mosaicRule)); + } + const requestURL = `${serviceURL}/identify?${params.toString()}`; const res = await fetch(requestURL, { signal: abortController.signal }); From 81de145362812665b002feb0d9526614b5fe5f51 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 26 Jun 2024 10:49:55 -0700 Subject: [PATCH 082/151] test: install playwright and create e2e testing folder --- .gitignore | 6 +- README.md | 8 +- e2e/base.config.ts | 74 +++++++++++++ e2e/landsat/landsat.spec.ts | 19 ++++ e2e/playwright.landsat.config.ts | 22 ++++ e2e/playwright.sentinel1.config.ts | 22 ++++ e2e/sentinel1/sentinel1.spec.ts | 19 ++++ package-lock.json | 170 +++++++++++++++++++++++++++-- package.json | 26 +++-- 9 files changed, 342 insertions(+), 24 deletions(-) create mode 100644 e2e/base.config.ts create mode 100644 e2e/landsat/landsat.spec.ts create mode 100644 e2e/playwright.landsat.config.ts create mode 100644 e2e/playwright.sentinel1.config.ts create mode 100644 e2e/sentinel1/sentinel1.spec.ts diff --git a/.gitignore b/.gitignore index 4980267e..650f6b72 100644 --- a/.gitignore +++ b/.gitignore @@ -105,4 +105,8 @@ dist *.http -temp/ \ No newline at end of file +temp/ +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/README.md b/README.md index 2967860b..c5c365c8 100644 --- a/README.md +++ b/README.md @@ -52,12 +52,12 @@ Before running the application, update the `landsat-level-2` URLs in the [`confi To run and test the app on your local machine: ```sh -npm run start-landsat +npm run start:landsat ``` To build the app, you can run the command below, this will place all files needed for deployment into the `/dist/landsat` directory. ```sh -npm run build-landsat +npm run build:landsat ``` ### Resources @@ -91,12 +91,12 @@ The Sentinel-2 Land Cover Explorer app provides dynamic visual and statistical c ### Usage To run and test the app on your local machine: ```sh -npm run start-landcover +npm run start:landcover ``` To build the app, you can run the command below, this will place all files needed for deployment into the `/dist/landcover-explorer` directory. ```sh -npm run build-landcover +npm run build:landcover ``` ### Resources diff --git a/e2e/base.config.ts b/e2e/base.config.ts new file mode 100644 index 00000000..c30af284 --- /dev/null +++ b/e2e/base.config.ts @@ -0,0 +1,74 @@ +import type { PlaywrightTestConfig, } from "@playwright/test"; +import { devices } from "@playwright/test"; + +export const DEV_SERVER_URL = 'https://esri-qdegtg6faf.arcgis.com:8080/' + +export const baseConfig:PlaywrightTestConfig = { + testDir: './', + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'html', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + // baseURL: 'http://127.0.0.1:3000', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + + ignoreHTTPSErrors: true, + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + + /* Test against mobile viewports. */ + // { + // name: 'Mobile Chrome', + // use: { ...devices['Pixel 5'] }, + // }, + // { + // name: 'Mobile Safari', + // use: { ...devices['iPhone 12'] }, + // }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { ...devices['Desktop Edge'], channel: 'msedge' }, + // }, + // { + // name: 'Google Chrome', + // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, + // }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'npm run start', + url: DEV_SERVER_URL, + reuseExistingServer: !process.env.CI, + ignoreHTTPSErrors: true + }, +} \ No newline at end of file diff --git a/e2e/landsat/landsat.spec.ts b/e2e/landsat/landsat.spec.ts new file mode 100644 index 00000000..f98edde9 --- /dev/null +++ b/e2e/landsat/landsat.spec.ts @@ -0,0 +1,19 @@ +import { test, expect } from '@playwright/test'; +import { DEV_SERVER_URL } from '../base.config'; + +test('has title', async ({ page }) => { + await page.goto(DEV_SERVER_URL); + + // Expect a title "to contain" a substring. + await expect(page).toHaveTitle(/Landsat Explorer/); +}); + +// test('get started link', async ({ page }) => { +// await page.goto('https://playwright.dev/'); + +// // Click the get started link. +// await page.getByRole('link', { name: 'Get started' }).click(); + +// // Expects page to have a heading with the name of Installation. +// await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible(); +// }); diff --git a/e2e/playwright.landsat.config.ts b/e2e/playwright.landsat.config.ts new file mode 100644 index 00000000..c18a74b7 --- /dev/null +++ b/e2e/playwright.landsat.config.ts @@ -0,0 +1,22 @@ +import { defineConfig, devices } from '@playwright/test'; +import { baseConfig } from './base.config'; + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// import dotenv from 'dotenv'; +// dotenv.config({ path: path.resolve(__dirname, '.env') }); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + ...baseConfig, + testDir: './landsat', + /* Run your local dev server before starting the tests */ + webServer: { + ...baseConfig.webServer, + command: 'npm run start:landsat', + }, +}); diff --git a/e2e/playwright.sentinel1.config.ts b/e2e/playwright.sentinel1.config.ts new file mode 100644 index 00000000..a003b753 --- /dev/null +++ b/e2e/playwright.sentinel1.config.ts @@ -0,0 +1,22 @@ +import { defineConfig, devices } from '@playwright/test'; +import { baseConfig } from './base.config'; + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// import dotenv from 'dotenv'; +// dotenv.config({ path: path.resolve(__dirname, '.env') }); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + ...baseConfig, + testDir: './sentinel1', + /* Run your local dev server before starting the tests */ + webServer: { + ...baseConfig.webServer, + command: 'npm run start:sentinel1', + }, +}); diff --git a/e2e/sentinel1/sentinel1.spec.ts b/e2e/sentinel1/sentinel1.spec.ts new file mode 100644 index 00000000..78591f95 --- /dev/null +++ b/e2e/sentinel1/sentinel1.spec.ts @@ -0,0 +1,19 @@ +import { test, expect } from '@playwright/test'; +import { DEV_SERVER_URL } from '../base.config'; + +test('has title', async ({ page }) => { + await page.goto(DEV_SERVER_URL); + + // Expect a title "to contain" a substring. + await expect(page).toHaveTitle(/Sentinel-1 Explorer/); +}); + +// test('get started link', async ({ page }) => { +// await page.goto('https://playwright.dev/'); + +// // Click the get started link. +// await page.getByRole('link', { name: 'Get started' }).click(); + +// // Expects page to have a heading with the name of Installation. +// await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible(); +// }); diff --git a/package-lock.json b/package-lock.json index 31e10d0e..931231cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,6 +36,7 @@ "@babel/preset-react": "^7.24.1", "@babel/preset-typescript": "^7.24.1", "@babel/runtime": "^7.24.1", + "@playwright/test": "^1.45.0", "@storybook/addon-essentials": "^7.0.7", "@storybook/addon-interactions": "^7.0.7", "@storybook/addon-links": "^7.0.7", @@ -48,6 +49,7 @@ "@types/classnames": "^2.2.10", "@types/d3": "5.16", "@types/jest": "^29.5.11", + "@types/node": "^20.14.9", "@types/react-redux": "^7.1.16", "@types/react-responsive": "^8.0.2", "@types/shortid": "^0.0.29", @@ -4554,6 +4556,21 @@ "node": ">=14" } }, + "node_modules/@playwright/test": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.45.0.tgz", + "integrity": "sha512-TVYsfMlGAaxeUllNkywbwek67Ncf8FRGn8ZlRdO291OL3NjG9oMbfVhyP82HQF0CZLMrYsvesqoUekxdWuF9Qw==", + "dev": true, + "dependencies": { + "playwright": "1.45.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@polka/url": { "version": "1.0.0-next.15", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz", @@ -10355,6 +10372,12 @@ } } }, + "node_modules/@storybook/builder-webpack5/node_modules/@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + }, "node_modules/@storybook/builder-webpack5/node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", @@ -11547,6 +11570,12 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/@storybook/core-common/node_modules/@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + }, "node_modules/@storybook/core-common/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -12423,6 +12452,12 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/@storybook/core-webpack/node_modules/@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + }, "node_modules/@storybook/csf": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.2.tgz", @@ -12818,6 +12853,12 @@ } } }, + "node_modules/@storybook/preset-react-webpack/node_modules/@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + }, "node_modules/@storybook/preset-react-webpack/node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -13009,6 +13050,18 @@ } } }, + "node_modules/@storybook/react-webpack5/node_modules/@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + }, + "node_modules/@storybook/react/node_modules/@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + }, "node_modules/@storybook/react/node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -14679,10 +14732,13 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.18.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.25.tgz", - "integrity": "sha512-rUDO6s9Q/El1R1I21HG4qw/LstTHCPO/oQNAwI/4b2f9EWvMnqt4d3HJwPMawfZ3UvodB8516Yg+VAq54YM+eA==", - "dev": true + "version": "20.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", + "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/node-fetch": { "version": "2.6.7", @@ -26582,6 +26638,36 @@ "node": ">=10" } }, + "node_modules/playwright": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.45.0.tgz", + "integrity": "sha512-4z3ac3plDfYzGB6r0Q3LF8POPR20Z8D0aXcxbJvmfMgSSq1hkcgvFRXJk9rUq5H/MJ0Ktal869hhOdI/zUTeLA==", + "dev": true, + "dependencies": { + "playwright-core": "1.45.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.45.0.tgz", + "integrity": "sha512-lZmHlFQ0VYSpAs43dRq1/nJ9G/6SiTI7VPqidld9TDefL9tX87bTKExWZZUF5PeRyqtXqd8fQi2qmfIedkwsNQ==", + "dev": true, + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/polished": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/polished/-/polished-4.2.2.tgz", @@ -35195,6 +35281,15 @@ "dev": true, "optional": true }, + "@playwright/test": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.45.0.tgz", + "integrity": "sha512-TVYsfMlGAaxeUllNkywbwek67Ncf8FRGn8ZlRdO291OL3NjG9oMbfVhyP82HQF0CZLMrYsvesqoUekxdWuF9Qw==", + "dev": true, + "requires": { + "playwright": "1.45.0" + } + }, "@polka/url": { "version": "1.0.0-next.15", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz", @@ -38805,6 +38900,12 @@ "webpack-virtual-modules": "^0.4.3" }, "dependencies": { + "@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + }, "ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", @@ -39582,6 +39683,12 @@ "ts-dedent": "^2.0.0" }, "dependencies": { + "@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -40129,6 +40236,14 @@ "@storybook/types": "7.0.7", "@types/node": "^16.0.0", "ts-dedent": "^2.0.0" + }, + "dependencies": { + "@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + } } }, "@storybook/csf": { @@ -40402,6 +40517,12 @@ "source-map": "^0.7.3" } }, + "@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + }, "semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -40485,6 +40606,12 @@ "util-deprecate": "^1.0.2" }, "dependencies": { + "@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + }, "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -40539,6 +40666,14 @@ "@storybook/preset-react-webpack": "7.0.7", "@storybook/react": "7.0.7", "@types/node": "^16.0.0" + }, + "dependencies": { + "@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + } } }, "@storybook/router": { @@ -41813,10 +41948,13 @@ "dev": true }, "@types/node": { - "version": "16.18.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.25.tgz", - "integrity": "sha512-rUDO6s9Q/El1R1I21HG4qw/LstTHCPO/oQNAwI/4b2f9EWvMnqt4d3HJwPMawfZ3UvodB8516Yg+VAq54YM+eA==", - "dev": true + "version": "20.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", + "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } }, "@types/node-fetch": { "version": "2.6.7", @@ -50715,6 +50853,22 @@ "find-up": "^5.0.0" } }, + "playwright": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.45.0.tgz", + "integrity": "sha512-4z3ac3plDfYzGB6r0Q3LF8POPR20Z8D0aXcxbJvmfMgSSq1hkcgvFRXJk9rUq5H/MJ0Ktal869hhOdI/zUTeLA==", + "dev": true, + "requires": { + "fsevents": "2.3.2", + "playwright-core": "1.45.0" + } + }, + "playwright-core": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.45.0.tgz", + "integrity": "sha512-lZmHlFQ0VYSpAs43dRq1/nJ9G/6SiTI7VPqidld9TDefL9tX87bTKExWZZUF5PeRyqtXqd8fQi2qmfIedkwsNQ==", + "dev": true + }, "polished": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/polished/-/polished-4.2.2.tgz", diff --git a/package.json b/package.json index d3e1c7ec..a75c18b7 100644 --- a/package.json +++ b/package.json @@ -5,19 +5,21 @@ "main": "index.js", "scripts": { "test": "jest --passWithNoTests", - "start-landsat": "webpack serve --mode development --open --env app=landsat", - "start-landcover": "webpack serve --mode development --open --env app=landcover-explorer", - "start-sentinel1": "webpack serve --mode development --open --env app=sentinel1-explorer", - "start-spectral-sampling-tool": "webpack serve --mode development --open --env app=spectral-sampling-tool", - "start-surface-temp": "webpack serve --mode development --open --env app=landsat-surface-temp", - "build-landsat": "webpack --mode production --env app=landsat", - "build-landcover": "webpack --mode production --env app=landcover-explorer", - "build-sentinel1": "webpack --mode production --env app=sentinel1-explorer", - "build-spectral-sampling-tool": "webpack --mode production --env app=spectral-sampling-tool", - "build-surface-temp": "webpack --mode production --env app=landsat-surface-temp", + "start:landsat": "webpack serve --mode development --open --env app=landsat", + "start:landcover": "webpack serve --mode development --open --env app=landcover-explorer", + "start:sentinel1": "webpack serve --mode development --open --env app=sentinel1-explorer", + "start:spectral-sampling-tool": "webpack serve --mode development --open --env app=spectral-sampling-tool", + "start:surface-temp": "webpack serve --mode development --open --env app=landsat-surface-temp", + "build:landsat": "webpack --mode production --env app=landsat", + "build:landcover": "webpack --mode production --env app=landcover-explorer", + "build:sentinel1": "webpack --mode production --env app=sentinel1-explorer", + "build:spectral-sampling-tool": "webpack --mode production --env app=spectral-sampling-tool", + "build:surface-temp": "webpack --mode production --env app=landsat-surface-temp", "prepare": "husky install", "storybook": "storybook dev -p 6006", - "build-storybook": "storybook build" + "build-storybook": "storybook build", + "e2e:landsat": "npx playwright test --config e2e/playwright.landsat.config.ts", + "e2e:sentinel1": "npx playwright test --config e2e/playwright.sentinel1.config.ts" }, "lint-staged": { "src/**/*.{ts,tsx,json}": [ @@ -53,6 +55,7 @@ "@babel/preset-react": "^7.24.1", "@babel/preset-typescript": "^7.24.1", "@babel/runtime": "^7.24.1", + "@playwright/test": "^1.45.0", "@storybook/addon-essentials": "^7.0.7", "@storybook/addon-interactions": "^7.0.7", "@storybook/addon-links": "^7.0.7", @@ -65,6 +68,7 @@ "@types/classnames": "^2.2.10", "@types/d3": "5.16", "@types/jest": "^29.5.11", + "@types/node": "^20.14.9", "@types/react-redux": "^7.1.16", "@types/react-responsive": "^8.0.2", "@types/shortid": "^0.0.29", From d585f4967674ae1e9c75e7a43d8389625ff84847 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 26 Jun 2024 11:19:24 -0700 Subject: [PATCH 083/151] chore: use .env file to save WEBPACK_DEV_SERVER_HOSTNAME --- .env.template | 2 ++ e2e/base.config.ts | 6 +++++- package-lock.json | 16 ++++++++++------ package.json | 1 + webpack.config.js | 15 +++------------ 5 files changed, 21 insertions(+), 19 deletions(-) create mode 100644 .env.template diff --git a/.env.template b/.env.template new file mode 100644 index 00000000..058a3907 --- /dev/null +++ b/.env.template @@ -0,0 +1,2 @@ +# Custom hostname for starting the Webpack Dev server +WEBPACK_DEV_SERVER_HOSTNAME = my-custome-hostname.com \ No newline at end of file diff --git a/e2e/base.config.ts b/e2e/base.config.ts index c30af284..df5f0360 100644 --- a/e2e/base.config.ts +++ b/e2e/base.config.ts @@ -1,7 +1,11 @@ import type { PlaywrightTestConfig, } from "@playwright/test"; import { devices } from "@playwright/test"; +import { config } from "dotenv"; +config({ + path: '../.env' +}) -export const DEV_SERVER_URL = 'https://esri-qdegtg6faf.arcgis.com:8080/' +export const DEV_SERVER_URL = process.env.WEBPACK_DEV_SERVER_HOSTNAME || 'https://localhost:8080' export const baseConfig:PlaywrightTestConfig = { testDir: './', diff --git a/package-lock.json b/package-lock.json index 931231cf..6362f854 100644 --- a/package-lock.json +++ b/package-lock.json @@ -62,6 +62,7 @@ "copy-webpack-plugin": "^9.0.0", "css-loader": "^5.2.6", "css-minimizer-webpack-plugin": "^3.0.1", + "dotenv": "^16.4.5", "eslint": "8.54", "eslint-config-prettier": "^8.5.0", "eslint-plugin-prettier": "^4.2.1", @@ -18926,12 +18927,15 @@ "dev": true }, "node_modules/dotenv": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "dev": true, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" } }, "node_modules/dotenv-expand": { @@ -45167,9 +45171,9 @@ } }, "dotenv": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "dev": true }, "dotenv-expand": { diff --git a/package.json b/package.json index a75c18b7..bfa1cb46 100644 --- a/package.json +++ b/package.json @@ -81,6 +81,7 @@ "copy-webpack-plugin": "^9.0.0", "css-loader": "^5.2.6", "css-minimizer-webpack-plugin": "^3.0.1", + "dotenv": "^16.4.5", "eslint": "8.54", "eslint-config-prettier": "^8.5.0", "eslint-plugin-prettier": "^4.2.1", diff --git a/webpack.config.js b/webpack.config.js index c94943ee..2c5d8de7 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,5 +1,6 @@ +require('dotenv').config({ path: './.env' }); + const path = require('path'); -const os = require('os'); const package = require('./package.json'); const HtmlWebpackPlugin = require("html-webpack-plugin"); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); @@ -10,16 +11,6 @@ const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); const { DefinePlugin } = require('webpack'); const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; -const computerName = os.hostname(); - -/** - * the App ID and some of the proxy service URLs of the app only works with `arcgis.com` domain, - * therefore we need to run the webpack dev server using the host name below `${computerName}.arcgis.com` instead of `localhost`. - */ -const hostname = computerName.includes('Esri') - ? `${computerName}.arcgis.com` - : 'localhost'; - const config = require('./src/config.json'); module.exports = (env, options)=> { @@ -67,7 +58,7 @@ module.exports = (env, options)=> { mode: options.mode, devServer: { server: 'https', - host: hostname, + host: process.env.WEBPACK_DEV_SERVER_HOSTNAME || 'localhost', allowedHosts: "all", port: 8080 }, From 6a74a68c8b61ccb73e920407048e6dbdf5849f16 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 26 Jun 2024 11:26:14 -0700 Subject: [PATCH 084/151] chore(sentinel1explorer): update webmap Id --- src/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.json b/src/config.json index 592d4ee2..2fb20e03 100644 --- a/src/config.json +++ b/src/config.json @@ -18,7 +18,7 @@ }, "sentinel1-explorer": { "title": "Esri | Sentinel-1 Explorer", - "webmapId": "f8770e0adc5c41038026494b871ceb99", + "webmapId": "260548c9e7934ef5b20a5f48467a3c1d", "description": "", "animationMetadataSources": "Esri, European Space Agency", "pathname": "/sentinel1explorer", From 4312aedfc535d19c4ef81631f2d49a0e9bf95c1c Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 26 Jun 2024 12:09:50 -0700 Subject: [PATCH 085/151] fix(sentinel1explorer): Rearrange the Renderer options ref #35 - fix(sentinel1explorer): update SENTINEL1_RASTER_FUNCTION_INFOS - fix(shared): Renderers list cards should be center aligned horizontally --- .../RasterFunctionSelector.tsx | 2 +- src/shared/services/sentinel-1/config.ts | 24 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/shared/components/RasterFunctionSelector/RasterFunctionSelector.tsx b/src/shared/components/RasterFunctionSelector/RasterFunctionSelector.tsx index 5e170ea2..59dee0c3 100644 --- a/src/shared/components/RasterFunctionSelector/RasterFunctionSelector.tsx +++ b/src/shared/components/RasterFunctionSelector/RasterFunctionSelector.tsx @@ -77,7 +77,7 @@ export const RasterFunctionSelector: FC = ({ Renderer
-
+
{rasterFunctionInfo.map((d) => { const { name, thumbnail, label } = d; diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index f2d029cc..a2992251 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -121,28 +121,28 @@ export const SENTINEL1_RASTER_FUNCTION_INFOS: { label: 'False Color', }, { - name: 'SWI Colorized', + name: 'VV dB Colorized', description: - 'Sentinel-1 Water Index with a color map. Wetlands and moist areas range from light green to dark blue. Computed as (0.1747 * dB_vv) + (0.0082 * dB_vh * dB_vv) + (0.0023 * dB_vv ^ 2) - (0.0015 * dB_vh ^ 2) + 0.1904.', - label: 'Water Index ', + 'VV data in dB scale with a 7x7 Refined Lee despeckling filter and a dynamic stretch applied for visualization only.', + label: 'Colorized VV', }, { - name: 'Water Anomaly Index Colorized', + name: 'VH dB Colorized', description: - 'Water Anomaly Index with a color map. Increased water anomalies are indicated by bright yellow, orange and red colors. Computed as Ln (0.01 / (0.01 + VV * 2)).', - label: 'Water Anomaly', + 'VH data in dB scale with a 7x7 Refined Lee despeckling filter and a dynamic stretch applied for visualization only.', + label: 'Colorized VH', }, { - name: 'VV dB Colorized', + name: 'SWI Colorized', description: - 'VV data in dB scale with a 7x7 Refined Lee despeckling filter and a dynamic stretch applied for visualization only.', - label: 'VV dB', + 'Sentinel-1 Water Index with a color map. Wetlands and moist areas range from light green to dark blue. Computed as (0.1747 * dB_vv) + (0.0082 * dB_vh * dB_vv) + (0.0023 * dB_vv ^ 2) - (0.0015 * dB_vh ^ 2) + 0.1904.', + label: 'Water Index ', }, { - name: 'VH dB Colorized', + name: 'Water Anomaly Index Colorized', description: - 'VH data in dB scale with a 7x7 Refined Lee despeckling filter and a dynamic stretch applied for visualization only.', - label: 'VH dB', + 'Water Anomaly Index with a color map. Increased water anomalies are indicated by bright yellow, orange and red colors. Computed as Ln (0.01 / (0.01 + VV * 2)).', + label: 'Water Anomaly', }, // { // name: 'SWI Raw', From 14068cb9410125ef88bb3eb8d5ac58e434378567 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 26 Jun 2024 13:43:54 -0700 Subject: [PATCH 086/151] feat(sentinel1explorer): Add interesting places --- .../Sentinel1InterestingPlaces.tsx | 22 ++++ .../components/InterestingPlaces/data.ts | 98 ++++++++++++++++++ .../components/InterestingPlaces/index.ts | 17 +++ .../InterestingPlaces/thumbnails/Amazon.jpg | Bin 0 -> 5594 bytes .../thumbnails/CraterLake.jpg | Bin 0 -> 4674 bytes .../InterestingPlaces/thumbnails/Garig.jpg | Bin 0 -> 4892 bytes .../InterestingPlaces/thumbnails/Richat.jpg | Bin 0 -> 5671 bytes .../InterestingPlaces/thumbnails/Singapre.jpg | Bin 0 -> 5259 bytes .../InterestingPlaces/thumbnails/Torshavn.jpg | Bin 0 -> 4749 bytes .../components/Layout/Layout.tsx | 5 +- 10 files changed, 140 insertions(+), 2 deletions(-) create mode 100644 src/sentinel-1-explorer/components/InterestingPlaces/Sentinel1InterestingPlaces.tsx create mode 100644 src/sentinel-1-explorer/components/InterestingPlaces/data.ts create mode 100644 src/sentinel-1-explorer/components/InterestingPlaces/index.ts create mode 100644 src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/Amazon.jpg create mode 100644 src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/CraterLake.jpg create mode 100644 src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/Garig.jpg create mode 100644 src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/Richat.jpg create mode 100644 src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/Singapre.jpg create mode 100644 src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/Torshavn.jpg diff --git a/src/sentinel-1-explorer/components/InterestingPlaces/Sentinel1InterestingPlaces.tsx b/src/sentinel-1-explorer/components/InterestingPlaces/Sentinel1InterestingPlaces.tsx new file mode 100644 index 00000000..66812f50 --- /dev/null +++ b/src/sentinel-1-explorer/components/InterestingPlaces/Sentinel1InterestingPlaces.tsx @@ -0,0 +1,22 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import { data } from './data'; +import { InterestingPlaces } from '@shared/components/InterestingPlaces'; + +export const Sentinel1InterestingPlaces = () => { + return ; +}; diff --git a/src/sentinel-1-explorer/components/InterestingPlaces/data.ts b/src/sentinel-1-explorer/components/InterestingPlaces/data.ts new file mode 100644 index 00000000..5f7b4133 --- /dev/null +++ b/src/sentinel-1-explorer/components/InterestingPlaces/data.ts @@ -0,0 +1,98 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Singapre from './thumbnails/Singapre.jpg'; +import Amazon from './thumbnails/Amazon.jpg'; +import CraterLake from './thumbnails/CraterLake.jpg'; +import Garig from './thumbnails/Garig.jpg'; +import Richat from './thumbnails/Richat.jpg'; +import Torshavn from './thumbnails/Torshavn.jpg'; + +import { InterestingPlaceData } from '@typing/shared'; + +export const data: InterestingPlaceData[] = [ + { + name: 'Singapore', + location: { + center: [103.82475, 1.25343], + zoom: 13.953, + }, + renderer: 'VV dB Colorized', + label: 'Port of Singapore', + thumbnail: Singapre, + description: + 'Due to its strategic location in maritime Southeast Asia, the city of Singapore is home to one of the of the busiest shipping ports in the world. One fifth of the worlds shipping containers pass through the Port of Singapore. Here you can visually depict shipping vessels in the waters off the southern tip of the Malay Peninsula.', + }, + { + name: 'Crater Lake', + location: { + center: [-122.10872, 42.94143], + zoom: 13, + }, + renderer: 'SWI Colorized', + label: '', + thumbnail: CraterLake, + description: + 'Crater Lake sits in a volcanic crater in South-central Oregon in the Western United States. The lake partially fills the caldera left by the collapse of Mount Mazama thousands of years ago. With a maximum depth of 2,148 feet (655 meters) it is the deepest lake in the United States and ranks tenth deepest in the world. Here, the body of the lake is depicted using the Sentinel-1 SAR Water Index (SWI).', + }, + { + name: 'Tórshavn', + location: { + center: [-6.75967, 62.00664], + zoom: 12, + }, + renderer: 'False Color dB with DRA', + label: 'Tórshavn, Faroe Islands', + thumbnail: Torshavn, + description: + 'Tórshavn is the capital and largest city of the Faroe Islands. It is among the cloudiest places in the world averaging only 2.4 hours of sunshine per day and 840 hours per year. Since SAR signals penetrate clouds, Sentinel-1 can collect imagery of the islands even when they are enshrouded with clouds.', + }, + { + name: 'Amazon Estuary', + location: { + center: [-51.05776, -0.39478], + zoom: 11, + }, + renderer: 'Water Anomaly Index Colorized', + label: '', + thumbnail: Amazon, + description: + 'The Amazon River in South America is the largest river by discharge volume of water in the world and two of the top ten rivers by discharge are tributaries of the Amazon. The river has an average discharge of about 6,591–7,570 km³ (1,581–1,816 mi³) per year, greater than the next seven largest independent rivers combined. The high concentrations of sediment the Amazon carries, and discharges into the Atlantic Ocean, lights up here with this rendering of a water anomaly index.', + }, + { + name: 'Richat', + location: { + center: [-11.398, 21.124], + zoom: 12, + }, + renderer: 'VH dB Colorized', + label: 'Richat Structure (Eye of the Sahara)', + thumbnail: Richat, + description: + 'The Richat Structure, also known as the Eye of the Sahara, is a prominent circular geological feature in the Sahara Desert. It is an eroded geological dome, 40 km (25 mi) in diameter, exposing sedimentary rock in layers that appear as concentric rings.', + }, + { + name: 'Gunak Barlu', + location: { + center: [132.21062, -11.36392], + zoom: 11, + }, + renderer: 'False Color dB with DRA', + label: 'Garig Gunak Barlu National Park', + thumbnail: Garig, + description: + 'Garig Gunak Barlu is a national park in the Northern Territory of Australia on the Cobourg Peninsula. Its name derives from the local Garig language, and the words gunak (land) and barlu (deep water). It is categorized as an IUCN Category II protected area and is home to all six species of Australian marine turtles: green sea turtles, hawksbill sea turtles, flatback sea turtles, leatherback sea turtles, and olive ridley sea turtles.', + }, +]; diff --git a/src/sentinel-1-explorer/components/InterestingPlaces/index.ts b/src/sentinel-1-explorer/components/InterestingPlaces/index.ts new file mode 100644 index 00000000..73b42377 --- /dev/null +++ b/src/sentinel-1-explorer/components/InterestingPlaces/index.ts @@ -0,0 +1,17 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { Sentinel1InterestingPlaces } from './Sentinel1InterestingPlaces'; +export { data as landsatInterestingPlaces } from './data'; diff --git a/src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/Amazon.jpg b/src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/Amazon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9ff206ef5aaeb2b598674b34caf6734bd340217a GIT binary patch literal 5594 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 literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/CraterLake.jpg b/src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/CraterLake.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4ddc0b0029cda62ab25378779c4672335be5d2eb GIT binary patch literal 4674 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 TFFre?{Ro|B4bDm2moxtdL>mlr literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/Richat.jpg b/src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/Richat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3b9437d4eba2130bc76fe4df0e99d46f67a4dfa3 GIT binary patch literal 5671 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 literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/Torshavn.jpg b/src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/Torshavn.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5a8a23a7531989d2c071cfe11363eace7b0c6f1b GIT binary patch literal 4749 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 literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/Layout/Layout.tsx b/src/sentinel-1-explorer/components/Layout/Layout.tsx index 0a81b71a..0c2db037 100644 --- a/src/sentinel-1-explorer/components/Layout/Layout.tsx +++ b/src/sentinel-1-explorer/components/Layout/Layout.tsx @@ -47,6 +47,7 @@ import { ChangeCompareTool4Sentinel1 } from '../ChangeCompareTool'; import { Sentinel1TemporalProfileTool } from '../TemporalProfileTool'; import { Sentinel1MaskTool } from '../MaskTool'; import { useSaveSentinel1State2HashParams } from '../../hooks/saveSentinel1State2HashParams'; +import { Sentinel1InterestingPlaces } from '../InterestingPlaces'; export const Layout = () => { const mode = useSelector(selectAppMode); @@ -80,7 +81,7 @@ export const Layout = () => {
- {/* */} +
@@ -121,7 +122,7 @@ export const Layout = () => { {dynamicModeOn ? ( <> - {/* */} + ) : ( <> From e6e9e47109d1e740f6fd1399ae1e33c973fb32dd Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 26 Jun 2024 13:50:53 -0700 Subject: [PATCH 087/151] fix(shared): update InterestingPlaces and add 'isThreeColumnGrid' prop to it --- .../InterestingPlaces/Sentinel1InterestingPlaces.tsx | 2 +- .../InterestingPlaces/InterestingPlaces.tsx | 11 +++++++++-- .../InterestingPlaces/InterestingPlacesContainer.tsx | 10 +++++++++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/sentinel-1-explorer/components/InterestingPlaces/Sentinel1InterestingPlaces.tsx b/src/sentinel-1-explorer/components/InterestingPlaces/Sentinel1InterestingPlaces.tsx index 66812f50..98f2c376 100644 --- a/src/sentinel-1-explorer/components/InterestingPlaces/Sentinel1InterestingPlaces.tsx +++ b/src/sentinel-1-explorer/components/InterestingPlaces/Sentinel1InterestingPlaces.tsx @@ -18,5 +18,5 @@ import { data } from './data'; import { InterestingPlaces } from '@shared/components/InterestingPlaces'; export const Sentinel1InterestingPlaces = () => { - return ; + return ; }; diff --git a/src/shared/components/InterestingPlaces/InterestingPlaces.tsx b/src/shared/components/InterestingPlaces/InterestingPlaces.tsx index 80a7dff4..2b680881 100644 --- a/src/shared/components/InterestingPlaces/InterestingPlaces.tsx +++ b/src/shared/components/InterestingPlaces/InterestingPlaces.tsx @@ -23,6 +23,10 @@ import { InterestingPlaceData } from '@typing/shared'; type Props = { data: InterestingPlaceData[]; nameOfSelectedPlace: string; + /** + * if true, use 3 columns grid instead of 4 columns + */ + isThreeColumnGrid?: boolean; onChange: (name: string) => void; /** * Emits when user move mouse over/out an interesting place card @@ -35,6 +39,7 @@ type Props = { export const InterestingPlaces: FC = ({ data, nameOfSelectedPlace, + isThreeColumnGrid, onChange, onHover, }) => { @@ -56,8 +61,10 @@ export const InterestingPlaces: FC = ({
{data.map((d) => { diff --git a/src/shared/components/InterestingPlaces/InterestingPlacesContainer.tsx b/src/shared/components/InterestingPlaces/InterestingPlacesContainer.tsx index e93722f6..c01a76f8 100644 --- a/src/shared/components/InterestingPlaces/InterestingPlacesContainer.tsx +++ b/src/shared/components/InterestingPlaces/InterestingPlacesContainer.tsx @@ -32,9 +32,16 @@ type Props = { * list of interesting place data */ data: InterestingPlaceData[]; + /** + * if true, use 3 columns grid instead of 4 columns + */ + isThreeColumnGrid?: boolean; }; -export const InterestingPlacesContainer: FC = ({ data }) => { +export const InterestingPlacesContainer: FC = ({ + data, + isThreeColumnGrid, +}) => { const dispatch = useDispatch(); const nameOfSelectedInterestingPlace = useSelector( @@ -74,6 +81,7 @@ export const InterestingPlacesContainer: FC = ({ data }) => { { dispatch(nameOfSelectedInterestingPlaceChanged(name)); }} From d4b878dee77a5ffe2cd9b375147f36ca5c50e429 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 26 Jun 2024 14:01:55 -0700 Subject: [PATCH 088/151] fix(sentinel1explorer): use random item from Sentinel1 Interesting Places as default location --- .../components/InterestingPlaces/index.ts | 2 +- .../getPreloadedState4Sentinel1Explorer.ts | 30 ++++++++++--------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/sentinel-1-explorer/components/InterestingPlaces/index.ts b/src/sentinel-1-explorer/components/InterestingPlaces/index.ts index 73b42377..af6cc8fb 100644 --- a/src/sentinel-1-explorer/components/InterestingPlaces/index.ts +++ b/src/sentinel-1-explorer/components/InterestingPlaces/index.ts @@ -14,4 +14,4 @@ */ export { Sentinel1InterestingPlaces } from './Sentinel1InterestingPlaces'; -export { data as landsatInterestingPlaces } from './data'; +export { data as sentinel1InterestingPlaces } from './data'; diff --git a/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts index 57a9b033..5e7035a0 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts @@ -72,27 +72,28 @@ import { Sentinel1State, } from '@shared/store/Sentinel1/reducer'; import { getSentinel1StateFromHashParams } from '@shared/utils/url-hash-params/sentinel1'; -// import { getRandomElement } from '@shared/utils/snippets/getRandomElement'; +import { getRandomElement } from '@shared/utils/snippets/getRandomElement'; +import { sentinel1InterestingPlaces } from '../components/InterestingPlaces/'; /** * Map location info that contains center and zoom info from URL Hash Params */ const mapLocationFromHashParams = getMapCenterFromHashParams(); -// /** -// * Use the location of a randomly selected interesting place if there is no map location info -// * found in the URL hash params. -// */ -// const randomInterestingPlace = !mapLocationFromHashParams -// ? getRandomElement([]) -// : null; +/** + * Use the location of a randomly selected interesting place if there is no map location info + * found in the URL hash params. + */ +const randomInterestingPlace = !mapLocationFromHashParams + ? getRandomElement(sentinel1InterestingPlaces) + : null; const getPreloadedMapState = (): MapState => { - const mapLocation = mapLocationFromHashParams; + let mapLocation = mapLocationFromHashParams; - // if (!mapLocation) { - // mapLocation = randomInterestingPlace?.location; - // } + if (!mapLocation) { + mapLocation = randomInterestingPlace?.location; + } // show map labels if there is no `hideMapLabels` in hash params const showMapLabel = getHashParamValueByKey('hideMapLabels') === null; @@ -129,8 +130,8 @@ const getPreloadedImageryScenesState = (): ImageryScenesState => { // which will serve as the map center. const queryParams4MainScene = getQueryParams4MainSceneFromHashParams() || { ...DefaultQueryParams4ImageryScene, - rasterFunctionName: defaultRasterFunction, - // randomInterestingPlace?.renderer || defaultRasterFunction, + rasterFunctionName: + randomInterestingPlace?.renderer || defaultRasterFunction, }; const queryParams4SecondaryScene = @@ -175,6 +176,7 @@ const getPreloadedUIState = (): UIState => { const proloadedUIState: UIState = { ...initialUIState, + nameOfSelectedInterestingPlace: randomInterestingPlace?.name || '', }; if (animationSpeed) { From 519047aacf4d55ba07eba00cf37371420d539bb8 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 26 Jun 2024 14:27:09 -0700 Subject: [PATCH 089/151] fix(shared): minor style fix for GridCard component --- src/shared/components/GirdCard/GirdCard.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/shared/components/GirdCard/GirdCard.tsx b/src/shared/components/GirdCard/GirdCard.tsx index c03591e3..bffc667c 100644 --- a/src/shared/components/GirdCard/GirdCard.tsx +++ b/src/shared/components/GirdCard/GirdCard.tsx @@ -53,7 +53,12 @@ export const GirdCard: FC = ({ }) => { return (
= ({ className={classNames('absolute top-0 left-0 w-full h-full', { 'border-2': selected, 'border-custom-light-blue': selected, - 'drop-shadow-custom-light-blue': selected, + // 'drop-shadow-custom-light-blue': selected, })} style={{ background: `linear-gradient(0deg, rgba(2,28,36,1) 0%, rgba(2,28,36,0.6) 30%, rgba(2,28,36,0) 50%, rgba(2,28,36,0) 100%)`, From 1f3447e2dca1f156dd34e12ed42698c65fad1570 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 26 Jun 2024 15:05:35 -0700 Subject: [PATCH 090/151] fix(shared): minor fixes - fix: update calculatePixelArea function - chore: update jest config and ignore e2e folder --- jest.config.js | 2 +- .../components/InterestingPlaces/data.ts | 2 +- .../thumbnails/CraterLakeAlt.jpg | Bin 0 -> 3577 bytes src/shared/hooks/useCalculatePixelArea.tsx | 2 +- .../helpers/calculatePixelArea.test.ts | 26 ------------------ .../services/helpers/calculatePixelArea.ts | 19 ++++--------- src/shared/services/landsat-level-2/config.ts | 2 +- src/shared/services/sentinel-1/config.ts | 2 +- 8 files changed, 11 insertions(+), 44 deletions(-) create mode 100644 src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/CraterLakeAlt.jpg delete mode 100644 src/shared/services/helpers/calculatePixelArea.test.ts diff --git a/jest.config.js b/jest.config.js index ef7c600b..7790746c 100644 --- a/jest.config.js +++ b/jest.config.js @@ -24,7 +24,7 @@ module.exports = { // // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped // testPathIgnorePatterns: ['\\\\node_modules\\\\'], - testPathIgnorePatterns: ['/__jest_utils__/'], + testPathIgnorePatterns: ['/__jest_utils__/', 'e2e'], // // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href // testURL: 'http://localhost', diff --git a/src/sentinel-1-explorer/components/InterestingPlaces/data.ts b/src/sentinel-1-explorer/components/InterestingPlaces/data.ts index 5f7b4133..ffc617db 100644 --- a/src/sentinel-1-explorer/components/InterestingPlaces/data.ts +++ b/src/sentinel-1-explorer/components/InterestingPlaces/data.ts @@ -15,7 +15,7 @@ import Singapre from './thumbnails/Singapre.jpg'; import Amazon from './thumbnails/Amazon.jpg'; -import CraterLake from './thumbnails/CraterLake.jpg'; +import CraterLake from './thumbnails/CraterLakeAlt.jpg'; import Garig from './thumbnails/Garig.jpg'; import Richat from './thumbnails/Richat.jpg'; import Torshavn from './thumbnails/Torshavn.jpg'; diff --git a/src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/CraterLakeAlt.jpg b/src/sentinel-1-explorer/components/InterestingPlaces/thumbnails/CraterLakeAlt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4f091c93a9782149539cc4d2abc8c5add7b4f28a GIT binary patch literal 3577 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 J-s;jm{~Ni7X3+ou literal 0 HcmV?d00001 diff --git a/src/shared/hooks/useCalculatePixelArea.tsx b/src/shared/hooks/useCalculatePixelArea.tsx index 8b49892d..250c8c88 100644 --- a/src/shared/hooks/useCalculatePixelArea.tsx +++ b/src/shared/hooks/useCalculatePixelArea.tsx @@ -42,7 +42,7 @@ export const useCalculatePixelArea = ({ objectId ); - const area = calculatePixelArea(pixelWidth, pixelHeigh, lat); + const area = calculatePixelArea(pixelWidth, lat); setPixelAreaInSqMeter(area); })(); diff --git a/src/shared/services/helpers/calculatePixelArea.test.ts b/src/shared/services/helpers/calculatePixelArea.test.ts deleted file mode 100644 index 2bf80afb..00000000 --- a/src/shared/services/helpers/calculatePixelArea.test.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { calculatePixelArea } from './calculatePixelArea'; - -describe('test calculatePixelArea', () => { - // Constants for pixel width and height - const pixelWidth = 10; // in meters - const pixelHeight = 10; // in meters - - test.each([ - [0, 100.0], // Latitude 0 degrees - [10, 98.48], // Latitude 10 degrees - [20, 93.97], // Latitude 20 degrees - [30, 86.6], // Latitude 30 degrees - [40, 76.6], // Latitude 40 degrees - [50, 64.28], // Latitude 50 degrees - [60, 50.0], // Latitude 60 degrees - [70, 34.2], // Latitude 70 degrees - [80, 17.36], // Latitude 80 degrees - [90, 0.0], // Latitude 90 degrees (cosine of 90 degrees is zero) - ])( - 'at latitude %d degrees, the pixel area should be approximately %f square meters', - (latitude, expectedArea) => { - const area = calculatePixelArea(pixelWidth, pixelHeight, latitude); - expect(area).toBeCloseTo(expectedArea, 2); - } - ); -}); diff --git a/src/shared/services/helpers/calculatePixelArea.ts b/src/shared/services/helpers/calculatePixelArea.ts index 9334ede7..50d6bfea 100644 --- a/src/shared/services/helpers/calculatePixelArea.ts +++ b/src/shared/services/helpers/calculatePixelArea.ts @@ -1,23 +1,16 @@ /** * Calculate the area of a pixel in Web Mercator projection - * @param {number} pixelWidth - The width of the pixel in map units (meters) - * @param {number} pixelHeight - The height of the pixel in map units (meters) + * @param {number} pixelSize - The size of the pixel in map units (meters) * @param {number} latitude - The latitude at the center of the pixel in degrees * @returns {number} The area of the pixel in square meters */ -export const calculatePixelArea = ( - pixelWidth: number, - pixelHeight: number, - latitude: number -) => { +export const calculatePixelArea = (pixelSize: number, latitude: number) => { // Convert latitude from degrees to radians const latitudeInRadians = (latitude * Math.PI) / 180; - // Correct the height using the cosine of the latitude - const correctedHeight = pixelHeight * Math.cos(latitudeInRadians); + // Correct the size of pixel using the cosine of the latitude + const correctedPixelSize = pixelSize * Math.cos(latitudeInRadians); - // Calculate the area - const area = pixelWidth * correctedHeight; - - return area; + // return the Calculated pixel area + return correctedPixelSize ** 2; }; diff --git a/src/shared/services/landsat-level-2/config.ts b/src/shared/services/landsat-level-2/config.ts index ab8eea44..28942f8b 100644 --- a/src/shared/services/landsat-level-2/config.ts +++ b/src/shared/services/landsat-level-2/config.ts @@ -18,7 +18,7 @@ import { TIER, getServiceConfig } from '@shared/config'; import { celsius2fahrenheit } from '@shared/utils/temperature-conversion'; const serviceConfig = getServiceConfig('landsat-level-2'); -console.log('landsat-level-2 service config', serviceConfig); +// console.log('landsat-level-2 service config', serviceConfig); // // const serviceUrls = { // development: diff --git a/src/shared/services/sentinel-1/config.ts b/src/shared/services/sentinel-1/config.ts index a2992251..c74e6099 100644 --- a/src/shared/services/sentinel-1/config.ts +++ b/src/shared/services/sentinel-1/config.ts @@ -17,7 +17,7 @@ import { TIER, getServiceConfig } from '@shared/config'; const serviceConfig = getServiceConfig('sentinel-1'); -console.log('sentinel-1 service config', serviceConfig); +// console.log('sentinel-1 service config', serviceConfig); // const serviceUrls = { // development: From c92be200be657d54b37bc2a8fa4210fb742c92fd Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 26 Jun 2024 15:19:54 -0700 Subject: [PATCH 091/151] feat(shared): save map resolution and scale to redux store --- src/shared/components/MapView/EventHandlers.tsx | 12 ++++++++++-- src/shared/components/MapView/MapViewContainer.tsx | 6 +++++- src/shared/store/Map/reducer.ts | 9 +++++++++ src/shared/store/Map/selectors.ts | 5 +++++ 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/shared/components/MapView/EventHandlers.tsx b/src/shared/components/MapView/EventHandlers.tsx index 22a6ee76..50d1e24c 100644 --- a/src/shared/components/MapView/EventHandlers.tsx +++ b/src/shared/components/MapView/EventHandlers.tsx @@ -26,7 +26,13 @@ type Props = { * @param zoom * @returns */ - onStationary?: (center: Point, zoom: number, extent: Extent) => void; + onStationary?: ( + center: Point, + zoom: number, + extent: Extent, + resolution: number, + scale: number + ) => void; /** * fires when user clicks on the map * @param point @@ -56,7 +62,9 @@ const EventHandlers: FC = ({ onStationary( mapView.center, mapView.zoom, - mapView.extent + mapView.extent, + mapView.resolution, + mapView.scale ); } } diff --git a/src/shared/components/MapView/MapViewContainer.tsx b/src/shared/components/MapView/MapViewContainer.tsx index 5b501afd..0a6307d0 100644 --- a/src/shared/components/MapView/MapViewContainer.tsx +++ b/src/shared/components/MapView/MapViewContainer.tsx @@ -35,6 +35,8 @@ import { batch } from 'react-redux'; import { centerChanged, isUpdatingChanged, + resolutionUpdated, + scaleUpdated, zoomChanged, } from '../../store/Map/reducer'; import { saveMapCenterToHashParams } from '../../utils/url-hash-params'; @@ -131,7 +133,7 @@ const MapViewContainer: FC = ({ mapOnClick, children }) => { {children} { + onStationary={(center, zoom, extent, resolution, scale) => { // console.log('map view is stationary', center, zoom, extent); batch(() => { @@ -142,6 +144,8 @@ const MapViewContainer: FC = ({ mapOnClick, children }) => { ]) ); dispatch(zoomChanged(zoom)); + dispatch(resolutionUpdated(resolution)); + dispatch(scaleUpdated(scale)); }); }} onClickHandler={(point) => { diff --git a/src/shared/store/Map/reducer.ts b/src/shared/store/Map/reducer.ts index 3e19a369..1f895a1d 100644 --- a/src/shared/store/Map/reducer.ts +++ b/src/shared/store/Map/reducer.ts @@ -38,6 +38,10 @@ export type MapState = { * zoom level */ zoom: number; + /** + * map scale + */ + scale: number; /** * Represents the size of one pixel in map units. * The value of resolution can be found by dividing the extent width by the view's width. @@ -78,6 +82,7 @@ export const initialMapState: MapState = { center: MAP_CENTER, zoom: MAP_ZOOM, resolution: null, + scale: null, extent: null, showMapLabel: true, showTerrain: true, @@ -103,6 +108,9 @@ const slice = createSlice({ resolutionUpdated: (state, action: PayloadAction) => { state.resolution = action.payload; }, + scaleUpdated: (state, action: PayloadAction) => { + state.scale = action.payload; + }, extentUpdated: (state, action: PayloadAction) => { state.extent = action.payload; }, @@ -137,6 +145,7 @@ export const { centerChanged, zoomChanged, resolutionUpdated, + scaleUpdated, extentUpdated, showMapLabelToggled, showTerrainToggled, diff --git a/src/shared/store/Map/selectors.ts b/src/shared/store/Map/selectors.ts index dce19390..deb23a90 100644 --- a/src/shared/store/Map/selectors.ts +++ b/src/shared/store/Map/selectors.ts @@ -41,6 +41,11 @@ export const selectMapResolution = createSelector( (resolution) => resolution ); +export const selectMapScale = createSelector( + (state: RootState) => state.Map.scale, + (scale) => scale +); + export const selectShowMapLabel = createSelector( (state: RootState) => state.Map.showMapLabel, (showMapLabel) => showMapLabel From c9c1613576b9499895acb2733d98e6c82dbc3cd4 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 26 Jun 2024 15:44:58 -0700 Subject: [PATCH 092/151] feat(shared): Display current map scale and pixel resolution in Custom Attribution component ref #37 --- .../CustomMapArrtribution.tsx | 64 +++++++++++++++---- .../CustomMapArrtribution/style.css | 5 +- 2 files changed, 54 insertions(+), 15 deletions(-) diff --git a/src/shared/components/CustomMapArrtribution/CustomMapArrtribution.tsx b/src/shared/components/CustomMapArrtribution/CustomMapArrtribution.tsx index 19f83bfa..49540536 100644 --- a/src/shared/components/CustomMapArrtribution/CustomMapArrtribution.tsx +++ b/src/shared/components/CustomMapArrtribution/CustomMapArrtribution.tsx @@ -13,8 +13,15 @@ * limitations under the License. */ +import { useSelector } from 'react-redux'; import './style.css'; -import React, { FC } from 'react'; +import React, { FC, useEffect, useState } from 'react'; +import { + selectMapResolution, + selectMapScale, +} from '@shared/store/Map/selectors'; +import { numberWithCommas } from 'helper-toolkit-ts'; +import classNames from 'classnames'; type Props = { /** @@ -30,24 +37,55 @@ type Props = { * @returns */ const CustomMapArrtribution: FC = ({ atrribution }) => { - const toggleEsriAttribution = () => { + const mapScale = useSelector(selectMapScale); + const resolution = useSelector(selectMapResolution); + + const [shouldShowEsriAttribution, setShouldShowEsriAttribution] = + useState(false); + + // const toggleEsriAttribution = () => { + // const element = document.querySelector('.esri-attribution'); + // element.classList.toggle('show'); + // }; + + useEffect(() => { const element = document.querySelector('.esri-attribution'); - element.classList.toggle('show'); - }; + element.classList.toggle('show', shouldShowEsriAttribution); + }, [shouldShowEsriAttribution]); return (
-
- - Powered by Esri - {' | '} - {atrribution} - +
+
+ + Powered by Esri + {' | '} + {atrribution} + +
+ + {mapScale !== null && resolution !== null && ( +
+
+ + 1:{numberWithCommas(+mapScale.toFixed(0))} | 1px:{' '} + {resolution.toFixed(0)}m + +
+
+ )}
); }; diff --git a/src/shared/components/CustomMapArrtribution/style.css b/src/shared/components/CustomMapArrtribution/style.css index a65925d5..bc62f665 100644 --- a/src/shared/components/CustomMapArrtribution/style.css +++ b/src/shared/components/CustomMapArrtribution/style.css @@ -1,12 +1,13 @@ .custom-attribution-text { + position: relative; font-size: 12px; line-height: 16px; padding: 0 5px; background-color: rgba(36,36,36,.8); - display: flex; + /* display: flex; flex-flow: row nowrap; justify-content: space-between; - align-items: center; + align-items: center; */ color: rgba(255,255,255,.7); } From 38044cb1d800570ab13b0be73eb3123821018e0e Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 26 Jun 2024 16:23:38 -0700 Subject: [PATCH 093/151] chore: suppress the warning of deprecated tailwind colors --- tailwind.config.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tailwind.config.js b/tailwind.config.js index 0a063222..fda2329c 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,4 +1,15 @@ const colors = require('tailwindcss/colors') + +/** + * suppress the warning of deprecated colors. + * @see https://github.com/tailwindlabs/tailwindcss/issues/4690#issuecomment-1046087220 + */ +delete colors['lightBlue']; +delete colors['warmGray']; +delete colors['trueGray']; +delete colors['coolGray']; +delete colors['blueGray']; + module.exports = { content: [ './src/**/*.html', From 046e658afca6fbdc3e0cdf3878a0c9140490ade8 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 27 Jun 2024 07:20:20 -0700 Subject: [PATCH 094/151] refactor(shared): update DynamicModeInfo component to get content via 'content' prop ref #39 - add wrapper components for Landsat and Sentinel1 explorer apps --- .../LandsatDynamicModeInfo.tsx | 8 +++ .../components/Layout/Layout.tsx | 7 +-- .../components/Layout/Layout.tsx | 9 ++-- .../Sentinel1DynamicModeInfo.tsx | 8 +++ .../DynamicModeInfo/DynamicModeInfo.tsx | 37 ++++++++++--- .../DynamicModeInfo/LandsatInfo.tsx | 53 ------------------- .../DynamicModeInfo/Sentinel1Info.tsx | 30 ----------- 7 files changed, 55 insertions(+), 97 deletions(-) create mode 100644 src/landsat-explorer/components/LandsatDynamicModeInfo/LandsatDynamicModeInfo.tsx create mode 100644 src/sentinel-1-explorer/components/Sentinel1DynamicModeInfo/Sentinel1DynamicModeInfo.tsx delete mode 100644 src/shared/components/DynamicModeInfo/LandsatInfo.tsx delete mode 100644 src/shared/components/DynamicModeInfo/Sentinel1Info.tsx diff --git a/src/landsat-explorer/components/LandsatDynamicModeInfo/LandsatDynamicModeInfo.tsx b/src/landsat-explorer/components/LandsatDynamicModeInfo/LandsatDynamicModeInfo.tsx new file mode 100644 index 00000000..9059418e --- /dev/null +++ b/src/landsat-explorer/components/LandsatDynamicModeInfo/LandsatDynamicModeInfo.tsx @@ -0,0 +1,8 @@ +import { DynamicModeInfo } from '@shared/components/DynamicModeInfo'; +import React from 'react'; + +export const LandsatDynamicModeInfo = () => { + return ( + + ); +}; diff --git a/src/landsat-explorer/components/Layout/Layout.tsx b/src/landsat-explorer/components/Layout/Layout.tsx index aa1db0fc..c036d53d 100644 --- a/src/landsat-explorer/components/Layout/Layout.tsx +++ b/src/landsat-explorer/components/Layout/Layout.tsx @@ -34,7 +34,7 @@ import { MaskTool } from '../MaskTool'; import { SwipeLayerSelector } from '@shared/components/SwipeLayerSelector'; import { useSaveAppState2HashParams } from '@shared/hooks/useSaveAppState2HashParams'; import { IS_MOBILE_DEVICE } from '@shared/constants/UI'; -import { DynamicModeInfo } from '@shared/components/DynamicModeInfo'; +// import { DynamicModeInfo } from '@shared/components/DynamicModeInfo'; import { SpectralTool } from '../SpectralTool'; import { ChangeCompareLayerSelector } from '@shared/components/ChangeCompareLayerSelector'; import { ChangeCompareTool } from '../ChangeCompareTool'; @@ -46,6 +46,7 @@ import { LandsatMissionFilter } from '../LandsatMissionFilter'; import { AnalyzeToolSelector4Landsat } from '../AnalyzeToolSelector/AnalyzeToolSelector'; import { useShouldShowSecondaryControls } from '@shared/hooks/useShouldShowSecondaryControls'; import { CloudFilter } from '@shared/components/CloudFilter'; +import { LandsatDynamicModeInfo } from '../LandsatDynamicModeInfo/LandsatDynamicModeInfo'; const Layout = () => { const mode = useSelector(selectAppMode); @@ -73,7 +74,7 @@ const Layout = () => {
- +
@@ -107,7 +108,7 @@ const Layout = () => {
{dynamicModeOn ? ( <> - + ) : ( diff --git a/src/sentinel-1-explorer/components/Layout/Layout.tsx b/src/sentinel-1-explorer/components/Layout/Layout.tsx index 0c2db037..63ab0c58 100644 --- a/src/sentinel-1-explorer/components/Layout/Layout.tsx +++ b/src/sentinel-1-explorer/components/Layout/Layout.tsx @@ -27,11 +27,11 @@ import { selectAppMode, } from '@shared/store/ImageryScene/selectors'; import { AnimationControl } from '@shared/components/AnimationControl'; -import { AnalysisToolSelector } from '@shared/components/AnalysisToolSelector'; +// import { AnalysisToolSelector } from '@shared/components/AnalysisToolSelector'; import { SwipeLayerSelector } from '@shared/components/SwipeLayerSelector'; import { useSaveAppState2HashParams } from '@shared/hooks/useSaveAppState2HashParams'; import { IS_MOBILE_DEVICE } from '@shared/constants/UI'; -import { DynamicModeInfo } from '@shared/components/DynamicModeInfo'; +// import { DynamicModeInfo } from '@shared/components/DynamicModeInfo'; import { appConfig } from '@shared/config'; import { useQueryAvailableSentinel1Scenes } from '../../hooks/useQueryAvailableSentinel1Scenes'; import { SceneInfo } from '../SceneInfo'; @@ -48,6 +48,7 @@ import { Sentinel1TemporalProfileTool } from '../TemporalProfileTool'; import { Sentinel1MaskTool } from '../MaskTool'; import { useSaveSentinel1State2HashParams } from '../../hooks/saveSentinel1State2HashParams'; import { Sentinel1InterestingPlaces } from '../InterestingPlaces'; +import { Sentinel1DynamicModeInfo } from '../Sentinel1DynamicModeInfo/Sentinel1DynamicModeInfo'; export const Layout = () => { const mode = useSelector(selectAppMode); @@ -80,7 +81,7 @@ export const Layout = () => {
- +
@@ -121,7 +122,7 @@ export const Layout = () => {
{dynamicModeOn ? ( <> - + ) : ( diff --git a/src/sentinel-1-explorer/components/Sentinel1DynamicModeInfo/Sentinel1DynamicModeInfo.tsx b/src/sentinel-1-explorer/components/Sentinel1DynamicModeInfo/Sentinel1DynamicModeInfo.tsx new file mode 100644 index 00000000..ed495a6f --- /dev/null +++ b/src/sentinel-1-explorer/components/Sentinel1DynamicModeInfo/Sentinel1DynamicModeInfo.tsx @@ -0,0 +1,8 @@ +import { DynamicModeInfo } from '@shared/components/DynamicModeInfo'; +import React from 'react'; + +export const Sentinel1DynamicModeInfo = () => { + return ( + + ); +}; diff --git a/src/shared/components/DynamicModeInfo/DynamicModeInfo.tsx b/src/shared/components/DynamicModeInfo/DynamicModeInfo.tsx index 4d360cc6..58abadb4 100644 --- a/src/shared/components/DynamicModeInfo/DynamicModeInfo.tsx +++ b/src/shared/components/DynamicModeInfo/DynamicModeInfo.tsx @@ -13,20 +13,43 @@ * limitations under the License. */ -import { APP_NAME } from '@shared/config'; -import React from 'react'; -import LandsatInfo from './LandsatInfo'; -import { Sentinel1Info } from './Sentinel1Info'; +// import { APP_NAME } from '@shared/config'; +import React, { FC } from 'react'; +import { IS_MOBILE_DEVICE } from '@shared/constants/UI'; +import { modeChanged } from '@shared/store/ImageryScene/reducer'; +import { useDispatch } from 'react-redux'; + +type Props = { + content: string; +}; + +export const DynamicModeInfo: FC = ({ content }) => { + const dispatch = useDispatch(); + + const openFindASceneMode = () => { + dispatch(modeChanged('find a scene')); + }; -export const DynamicModeInfo = () => { return (
Dynamic View
- {APP_NAME === 'landsat' && } - {APP_NAME === 'sentinel1-explorer' && } +

{content}

+ + {IS_MOBILE_DEVICE === false ? ( +

+ To select an individual scene for a specific date, try the{' '} + + FIND A SCENE + {' '} + mode. +

+ ) : null}
); }; diff --git a/src/shared/components/DynamicModeInfo/LandsatInfo.tsx b/src/shared/components/DynamicModeInfo/LandsatInfo.tsx deleted file mode 100644 index b37f2d0d..00000000 --- a/src/shared/components/DynamicModeInfo/LandsatInfo.tsx +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { IS_MOBILE_DEVICE } from '@shared/constants/UI'; -import { modeChanged } from '@shared/store/ImageryScene/reducer'; -import React from 'react'; -import { useDispatch } from 'react-redux'; - -const LandsatInfo = () => { - const dispatch = useDispatch(); - - const openFindASceneMode = () => { - dispatch(modeChanged('find a scene')); - }; - return ( - <> -

- In the current map display, the most recent and most cloud free - scenes from the Landsat archive are prioritized and dynamically - fused into a single mosaicked image layer. As you explore, the - map continues to dynamically fetch and render the best available - scenes. -

- - {IS_MOBILE_DEVICE === false ? ( -

- To select a scene for a specific date, try the{' '} - - FIND A SCENE - {' '} - mode. -

- ) : null} - - ); -}; - -export default LandsatInfo; diff --git a/src/shared/components/DynamicModeInfo/Sentinel1Info.tsx b/src/shared/components/DynamicModeInfo/Sentinel1Info.tsx deleted file mode 100644 index 871294ae..00000000 --- a/src/shared/components/DynamicModeInfo/Sentinel1Info.tsx +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { IS_MOBILE_DEVICE } from '@shared/constants/UI'; -import React from 'react'; - -export const Sentinel1Info = () => { - return ( - <> -

- Lorem ipsum dolor sit, amet consectetur adipisicing elit. Eius - quidem obcaecati ea tempore ullam alias reprehenderit. Aperiam - reprehenderit, sapiente cupiditate possimus alias blanditiis ad - vel, accusamus non atque doloribus architecto! -

- - ); -}; From d58a7e0af7e6a58330e70ca393775e14513d1790 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 27 Jun 2024 09:36:36 -0700 Subject: [PATCH 095/151] chore(sentinel1explorer): Add info/tooltip for Index Mask ref #42 --- .../components/MaskTool/Sentinel1MaskTool.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx b/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx index 6b54a033..b3ebcc91 100644 --- a/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx +++ b/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx @@ -125,7 +125,7 @@ export const Sentinel1MaskTool = () => { }, ]} selectedValue={selectedIndex} - tooltipText={''} + tooltipText={`Radar backscatter values can be used to compute a variety of indices. Different thresholds can be applied to these SAR indices to mask and highlight different characteristics of the Earth's surface.`} dropdownMenuSelectedItemOnChange={(val) => { dispatch(selectedIndex4MaskToolChanged(val as RadarIndex)); }} From 4b463515a9c06dda45cd1b368d2a3e7006a89186 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 27 Jun 2024 09:43:02 -0700 Subject: [PATCH 096/151] fix(sentinel1explorer): Add info/tooltip for Temporal Composite ref #43 --- .../TemporalCompositeTool.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx b/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx index 84c4c87c..2a458b66 100644 --- a/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx +++ b/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx @@ -20,6 +20,7 @@ import { TemproalCompositeToolControls } from './Controls'; import { DropdownData } from '@shared/components/Dropdown'; import { initialChangeCompareToolState } from '@shared/store/ChangeCompareTool/reducer'; import { initiateImageryScenes4TemporalCompositeTool } from '@shared/store/TemporalCompositeTool/thunks'; +import { Tooltip } from '@shared/components/Tooltip'; export const TemporalCompositeTool = () => { const dispatch = useDispatch(); @@ -65,8 +66,17 @@ export const TemporalCompositeTool = () => { return (
-
-

Composite

+
+ + + + + Composite
From 84756f81c3567ad6da455e2393f3a9be2d93e90e Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 27 Jun 2024 10:00:46 -0700 Subject: [PATCH 097/151] fix(shared): add 'widthOfTooltipContainer' prop to RasterFunctionSelector --- .../RasterFunctionSelectorContainer.tsx | 17 ++++++++++++++--- .../TemporalCompositeTool.tsx | 2 +- .../RasterFunctionSelector.tsx | 10 +++++++++- .../RasterFunctionSelectorContainer.tsx | 6 ++++++ 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/sentinel-1-explorer/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx b/src/sentinel-1-explorer/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx index d3fb96f4..9869b626 100644 --- a/src/sentinel-1-explorer/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx +++ b/src/sentinel-1-explorer/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx @@ -17,14 +17,25 @@ import { RasterFunctionSelector } from '@shared/components/RasterFunctionSelecto import React from 'react'; import { useSentinel1RasterFunctions } from './useSentinel1RasterFunctions'; +const TOOLTIP_TEXT = ` +
+

Sentinel-1 SAR sensors send and receive radar pulses that echo off the Earth’s surface. The echoes returned to the sensor are known as radar backscatter. The amplitude (strength) of the backscatter varies depending on the characteristics of the surface at any given location, resulting in variable dark to bright pixels. Consider the following:

+

Smoother surfaces = Lower backscatter = Darker pixels

+

Rougher surfaces = Higher backscatter = Brighter pixels

+

Water bodies/wet soils = Lower backscatter = Darker pixels

+

Vertical objects = Higher backscatter = Brighter pixels

+

Thicker vegetation = Lower backscatter = Darker pixels

+

NOTE: In some cases, multiple factors need to be considered simultaneously. For example, water bodies generally have greater signal reflectivity away from the sensor, resulting in lower backscatter and a darker appearance. However, a rough water surface will result in higher backscatter and appear brighter than a smooth water surface.

+
+`; + export const RasterFunctionSelectorContainer = () => { const data = useSentinel1RasterFunctions(); return ( ); diff --git a/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx b/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx index 2a458b66..6238308c 100644 --- a/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx +++ b/src/sentinel-1-explorer/components/TemporalCompositeTool/TemporalCompositeTool.tsx @@ -69,7 +69,7 @@ export const TemporalCompositeTool = () => {
For example, elements with a high backscatter in the scene used as the red band will have a stronger red hue in the composite image. Elements with a high backscatter in the red scene and the blue scene, and low backscatter in the green scene, will appear purple. And so on. Areas with more consistent backscatter, meaning little to no change over time, will appear as shades of gray.' } width={400} > diff --git a/src/shared/components/RasterFunctionSelector/RasterFunctionSelector.tsx b/src/shared/components/RasterFunctionSelector/RasterFunctionSelector.tsx index 59dee0c3..77c81d52 100644 --- a/src/shared/components/RasterFunctionSelector/RasterFunctionSelector.tsx +++ b/src/shared/components/RasterFunctionSelector/RasterFunctionSelector.tsx @@ -38,6 +38,10 @@ type Props = { * if true, Raster Function selector should be disabled */ disabled: boolean; + /** + * The width of header tooltip container in px. The default width is 240px and this value can be used to override that value + */ + widthOfTooltipContainer?: number; /** * Fires when user selects a new raster function * @param name name of new raster function @@ -55,6 +59,7 @@ export const RasterFunctionSelector: FC = ({ nameOfSelectedRasterFunction, rasterFunctionInfo, disabled, + widthOfTooltipContainer, onChange, itemOnHover, }) => { @@ -70,7 +75,10 @@ export const RasterFunctionSelector: FC = ({ ref={containerRef} >
- + diff --git a/src/shared/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx b/src/shared/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx index 129e9104..deb646c3 100644 --- a/src/shared/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx +++ b/src/shared/components/RasterFunctionSelector/RasterFunctionSelectorContainer.tsx @@ -34,6 +34,10 @@ type Props = { * tooltip text that will be displayed when user hovers the info icon next to the header */ headerTooltip: string; + /** + * The width of header tooltip container in px. The default width is 240px and this value can be used to override that value + */ + widthOfTooltipContainer?: number; /** * list of raster functions of the imagery service */ @@ -42,6 +46,7 @@ type Props = { export const RasterFunctionSelectorContainer: FC = ({ headerTooltip, + widthOfTooltipContainer, data, }) => { const dispatch = useDispatch(); @@ -105,6 +110,7 @@ export const RasterFunctionSelectorContainer: FC = ({ rasterFunctionInfo={data} nameOfSelectedRasterFunction={rasterFunctionName} disabled={shouldDisable()} + widthOfTooltipContainer={widthOfTooltipContainer} onChange={(rasterFunctionName) => { dispatch(updateRasterFunctionName(rasterFunctionName)); }} From ff7942c716a2c5e83cadbf07b1d5f921a18cb14d Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 27 Jun 2024 10:28:35 -0700 Subject: [PATCH 098/151] chore(sentinel1explorer): Add info/tooltip for Temporal Profile ref #45 --- .../Sentinel1TemporalProfileTool.tsx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx b/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx index 4b518544..eccba065 100644 --- a/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx +++ b/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx @@ -19,15 +19,15 @@ import { TemporalProfileToolHeader, } from '@shared/components/TemproalProfileTool'; // import { getProfileData } from '@shared/services/landsat-2/getProfileData'; -import { - // acquisitionMonth4TrendToolChanged, - // // samplingTemporalResolutionChanged, - // trendToolDataUpdated, - selectedIndex4TrendToolChanged, - // queryLocation4TrendToolChanged, - // trendToolOptionChanged, - // acquisitionYear4TrendToolChanged, -} from '@shared/store/TrendTool/reducer'; +// import { +// // acquisitionMonth4TrendToolChanged, +// // // samplingTemporalResolutionChanged, +// // trendToolDataUpdated, +// selectedIndex4TrendToolChanged, +// // queryLocation4TrendToolChanged, +// // trendToolOptionChanged, +// // acquisitionYear4TrendToolChanged, +// } from '@shared/store/TrendTool/reducer'; // import { // selectAcquisitionMonth4TrendTool, // // selectActiveAnalysisTool, @@ -78,7 +78,7 @@ export const Sentinel1TemporalProfileTool = () => { // const { rasterFunctionName, acquisitionDate, objectIdOfSelectedScene } = // useSelector(selectQueryParams4SceneInSelectedMode) || {}; - const error = useSelector(selectError4TemporalProfileTool); + // const error = useSelector(selectError4TemporalProfileTool); /** * this function will be invoked by the updateTemporalProfileToolData thunk function @@ -158,7 +158,7 @@ export const Sentinel1TemporalProfileTool = () => { label: 'water anomaly', }, ]} - tooltipText={`The scenes from the selected time interval will be sampled to show a temporal trend for the selected point and category.`} + tooltipText={`The most recent scene within each month in the selected time interval will be sampled to show a temporal profile and trend for the selected point and category.`} />
From f095a6b53c31c5f1a6571cadcf5002e0c57ba697 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 27 Jun 2024 11:01:46 -0700 Subject: [PATCH 099/151] fix(sentinel1explorer): Add info tooltip to Ascending/Descending filter ref #46 --- .../OrbitDirectionFilter/OrbitDirectionFilter.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx b/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx index c6d61905..c13218e1 100644 --- a/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx +++ b/src/sentinel-1-explorer/components/OrbitDirectionFilter/OrbitDirectionFilter.tsx @@ -53,9 +53,17 @@ export const OrbitDirectionFilter: FC = ({ orbitDirectionOnChange(val as Sentinel1OrbitDirection); }} /> */} -
- -
+ + +
+ +
+
{data.map((d) => { return ( From 5d3fb09bcd1e45380aab89eb3dd14d1b044cf1e8 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 27 Jun 2024 11:04:48 -0700 Subject: [PATCH 100/151] fix(sentinel1explorer): update map attribution/credits text --- src/sentinel-1-explorer/components/Map/Map.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/components/Map/Map.tsx b/src/sentinel-1-explorer/components/Map/Map.tsx index 32696db2..13902c2e 100644 --- a/src/sentinel-1-explorer/components/Map/Map.tsx +++ b/src/sentinel-1-explorer/components/Map/Map.tsx @@ -80,7 +80,7 @@ export const Map = () => { - + ); }; From b28bb3fb2ceadba0fbbd458c1ecb9db0e6f38a9e Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 27 Jun 2024 14:14:50 -0700 Subject: [PATCH 101/151] feat(sentinel1explorer): update About this App modal --- .../About/AboutSentinel1ExplorerContent.tsx | 158 +++++++++++++++++- 1 file changed, 150 insertions(+), 8 deletions(-) diff --git a/src/sentinel-1-explorer/components/About/AboutSentinel1ExplorerContent.tsx b/src/sentinel-1-explorer/components/About/AboutSentinel1ExplorerContent.tsx index fd321d07..028491fc 100644 --- a/src/sentinel-1-explorer/components/About/AboutSentinel1ExplorerContent.tsx +++ b/src/sentinel-1-explorer/components/About/AboutSentinel1ExplorerContent.tsx @@ -36,10 +36,30 @@ export const AboutSentinel1ExplorerContent = () => {

- Lorem ipsum dolor sit amet consectetur adipisicing elit. - Excepturi esse quos ab vel, ducimus deserunt temporibus quam - soluta assumenda! Doloribus repudiandae id voluptatem sint - incidunt numquam vero! Enim, amet natus? + Sentinel-1 is a spaceborne Synthetic Aperture Radar (SAR) + imaging system and mission from the European Space Agency + and the European Commission. The mission launched and began + collecting imagery in 2014. +

+ +

+ The Sentinel-1 RTC data in this collection is an analysis + ready product derived from the Ground Range Detected (GRD) + Level-1 products produced by the European Space Agency. + Radiometric Terrain Correction (RTC) accounts for terrain + variations that affect both the position of a given point on + the Earth's surface and the brightness of the radar + return. +

+ +

+ With the ability to see through cloud and smoke cover, and + because it does not rely on solar illumination of the + Earth's surface, Sentinel-1 is able to collect useful + imagery in most weather conditions, during both day and + night. This data is good for wide range of land and maritime + applications, from mapping floods, to deforestation, to oil + spills, and more.

@@ -49,17 +69,139 @@ export const AboutSentinel1ExplorerContent = () => {

- Lorem ipsum dolor sit amet consectetur adipisicing elit. - Aliquid nesciunt qui maxime mollitia odit dolorum, quod - repellat cum amet nihil natus! Itaque inventore tempore - nihil repudiandae. Earum tempore quos reprehenderit. + Sentinel-1 SAR imagery helps to track and document land use + and land change associated with climate change, + urbanization, drought, wildfire, deforestation, and other + natural processes and human activity. +

+ +

+ Through an intuitive user experience, this app leverages a + variety of ArcGIS capabilities to explore and begin to + unlock the wealth of information that Sentinel-1 provides. + Some of the key capabilities include:

+ +
    +
  • + Visual exploration of a dynamic global mosaic of the + latest available scenes. +
  • +
  • + On-the-fly band/polarization combinations and indices + for visualization and analysis. +
  • +
  • + Interactive Find a Scene by location, time, and orbit + direction. +
  • +
  • + Visual change by time and renderings with Swipe and + Animation modes. +
  • +
  • + Analysis such as threshold masking and temporal profiles + for vegetation, water, land surface temperature, and + more. +
  • +

Attribution and Terms of Use

+ +
+

+ Sentinel-1 RTC Imagery – + Esri, Microsoft, European Space Agency, European + Commission +

+
+

+ + Sentinel-1 RTC Source Imagery – Microsoft + +
+ The source imagery is hosted on Microsoft Planetary + Computer under an open{' '} + + CC BY 4.0 license + + . +

+
+ +
+

+ Sentinel-1 RTC Image Service – Esri +

+

+ This work is licensed under the Esri Master License + Agreement.{' '} + + View Summary + {' '} + |{' '} + + View Terms of Use + +

+
+
+ +
+

Sentinel-1 Explorer - Esri

+

+ This app is licensed under the Esri Master License + Agreement.{' '} + + View Summary + {' '} + |{' '} + + View Terms of Use + +

+

+ This app is provided for informational purposes. The + accuracy of the information provided is subject to the + accuracy of the source data. +

+
+ +
+

+ Information contained in the Interesting Places + descriptions was sourced from Wikipedia. +

+
); From fa227208c18e1a66b744072f908b342a9a553317 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 28 Jun 2024 10:29:29 -0700 Subject: [PATCH 102/151] chore: add compiled sentinel1explorer to docs --- .../1007.cff7df7005c4c7b361f7.js | 1 + .../1057.80d448d03450f4895bc5.js | 1 + .../1180.a2e3c250d885346869c3.js | 1 + .../1208.a5db1e31bc13993f0ddc.js | 1108 +++++++++++++++++ .../124.023165bd499c17fcba07.js | 1 + .../126.8653729b24edf2c2037d.js | 1 + .../134.119d1393190cc4bf5c15.js | 1 + .../1350.bb4511c0466cf76f5402.js | 1 + .../1352.919ea06b70a0b4486c5c.js | 1 + .../1449.7a31619e82cdce8142d0.js | 1 + .../1489.b87acb6dd37ff0854056.js | 1 + .../1593.ff8e2a7cb9c4805eb718.js | 1 + .../1605.d6a00f2c7c6a550d595f.js | 1 + .../1637.05e1c10f54d6170aca4f.js | 1 + .../1655.ff4f967b33e6acb4a837.js | 1 + .../1673.64f18ac9126754ddc50b.js | 1 + .../1681.fe72583b4e05b0c2ffa0.js | 1 + .../1691.f7ba4bd96c77f6e9b701.js | 1 + .../17.463856564ec1e9c1c89d.js | 1 + .../1780.ddf057b2d37c169fb3d4.js | 1 + .../1810.e6b397ef133cb945866a.js | 1 + .../1840.39ebab71fe0ccf8757e2.js | 1 + .../1844.3e40c41105213aa2105e.js | 1 + .../1936.96fa57a440dbfe1e08d1.js | 1 + .../1968.7f204c7410c0c3c2b981.js | 1 + .../2030.18b4a2b0210598b70333.js | 1 + .../2149.00dfd018974b866d4dd2.js | 2 + .../2149.00dfd018974b866d4dd2.js.LICENSE.txt | 5 + .../218.e36138b16de18a4b0149.js | 1 + .../2209.b82f9d059ae8c61ea8cc.js | 1 + .../2213.5cc625b24ba0647b7410.js | 1 + .../2229.80d2d1fa15fd9475e3bf.js | 1 + .../2247.e3ff7bc5d02f56755812.js | 1 + .../2329.97554577f877e255b0ac.js | 1 + .../2338.9aad8b4369330e9d2389.js | 2 + .../2338.9aad8b4369330e9d2389.js.LICENSE.txt | 5 + .../2394.b40539e259089f9f3bad.js | 1 + .../2411.2908312c82a15909d5d1.js | 1 + .../2420.1ec1e17fc753b2b526cf.js | 1 + .../2444.b72e5d11993249f31102.js | 1 + .../2601.7d8824939aa4518d1d50.js | 1 + .../2688.059dec6d363894d4235f.js | 1 + .../2705.b736950f6f24dd94be88.js | 1 + .../2727.c8292e3c3c05465855e5.js | 1 + .../2738.94f06e61d3535b4afa6b.js | 1 + .../2762.303190f87cd335176758.js | 1 + .../2886.c29de8ec8f61cdc5c0b4.js | 1 + .../2901.19b2d31c5afe021ef145.js | 1 + .../2902.39166b523d0376af0d7d.js | 1 + .../2942.5bd02075fcd2d8771a0d.js | 1 + .../3027.07ca63f286a159ad63e1.js | 1 + .../3040.afbf360b8c29ef628146.js | 1 + .../3041.acb9914cf6f8473f03f5.js | 1 + .../3043.4f021eb70dac10f91cb3.js | 1 + .../3052.168b659a39902b69c405.js | 1 + .../3062.6de67cfff3a7a88ba189.js | 1 + .../3094.56f7d135e277ff494efb.js | 1 + .../3095.8ebb499ea7ee8a999b69.js | 1 + .../3108.03912388623b53dcba43.js | 1 + .../3190.c1fcd2982ad00e241df8.js | 1 + .../3194.8d7631f37e6847b5ffbc.js | 1 + .../3206.968d5d4921a832aa64b3.js | 1 + .../3261.8f0a5d6be50d374b3039.js | 1 + .../3295.72a88e86fc62214cabb4.js | 1 + .../3296.a74d99fe8f11188a8cdb.js | 1 + .../332.e2c7801fdd6b21190d1b.js | 1 + .../3399.8d7464162d75fe8583c1.js | 1 + .../3433.0822bc5eefeb6794812a.js | 1 + .../3449.970f8f9e45bd00bb034b.js | 1 + .../3483.3667288446f8ba2de747.js | 2 + .../3483.3667288446f8ba2de747.js.LICENSE.txt | 5 + .../3549.034aa8b9417d4375bc8c.js | 1 + .../3625.aa9d370c1f9a9ac40736.js | 1 + .../3709.ba8d711818498c5feb03.js | 1 + .../3711.e3337a3b4f8ee1783a9a.js | 1 + .../3714.2e706eb2a8771d5d4f99.js | 1 + .../372.27e70715ac8323ea406c.js | 1 + .../3734.fda0c0d38f780736f626.js | 1 + .../3805.a9057d5ba64e662ac46c.js | 1 + .../3814.9d0c5c3c75621bcb4a81.js | 1 + .../3822.8763352f30e46e3b0011.js | 1 + .../3860.2e5fe30ec90233f89924.js | 1 + .../3912.1a17db0fafc909ab661b.js | 1 + .../3963.25fd225f3b8d416004a0.js | 1 + .../3970.7530ef75cb680dd2c3e3.js | 1 + .../3989.1f11203a27f832003c23.js | 1 + .../4049.759e1794d310437843b1.js | 1 + .../4070.bbbdc0865bbb1046aa6c.js | 1 + .../412.ea8fd621d7cb3e4d3dc1.js | 1 + .../4121.a5e845d166c9373580a5.js | 1 + .../4168.2d26b88f8b7ba5db3b63.js | 1 + .../4287.bd12634bb15599263706.js | 1 + .../4323.d7b03b6d1976aa6abe9e.js | 2 + .../4323.d7b03b6d1976aa6abe9e.js.LICENSE.txt | 5 + .../4325.3b152c5d6a9042aa58ed.js | 1 + .../4339.4488e12c3a48a4c9a2ff.js | 1 + .../436.bdfd9656acd410b1b5f0.js | 1 + .../4372.e4ab29d41fbbb9a73d89.js | 1 + .../4417.6f29920b5c8b093cec09.js | 1 + .../442.709a2819b79e6ce60e84.js | 1 + .../4420.c057f987c0769397f49e.js | 1 + .../4512.a5f45bc32f61a1d6e2fe.js | 1 + .../4568.804d4d397361029e8359.js | 1 + .../4575.66324b7676620702ab27.js | 1 + .../4578.9f1a1054c5900a3f7914.js | 2 + .../4578.9f1a1054c5900a3f7914.js.LICENSE.txt | 12 + .../4630.16abd854c09672c706c9.js | 1 + .../4669.5a6d1e46cf3fc8f7d1e3.js | 1 + .../4682.0ddfeaf1f46550a00aaa.js | 1 + .../4765.2a42174b92ff6788b52f.js | 1 + .../4832.6cadad9596b67dc0977b.js | 1 + .../4864.38f658c71d23a9a6ffd1.js | 1 + .../4868.03034afda09e3904853d.js | 1 + .../4892.801456edde926ecbef77.js | 1 + .../4950.e55f107e3b030ac9062c.js | 2 + .../4950.e55f107e3b030ac9062c.js.LICENSE.txt | 5 + .../5007.7b2144e90bca19e6150d.js | 1 + .../5009.3125db46ece0fdb909bf.js | 1 + .../5027.0bd38c8543c99dece676.js | 2 + .../5027.0bd38c8543c99dece676.js.LICENSE.txt | 5 + .../5048.893fe04d03a08ef6d2fc.js | 2 + .../5048.893fe04d03a08ef6d2fc.js.LICENSE.txt | 5 + .../5071.21cae464b8d2c5d5e6c3.js | 1 + .../5109.2d6c0df569ea1b7eb2f5.js | 1 + .../5134.d4e4baf8f7fba3a6e2c0.js | 1 + .../5169.8b544dcea3039febab49.js | 1 + .../5215.ba47aa053f4ac842d861.js | 1 + .../5247.39a516f965d7aaea8b66.js | 2 + .../5247.39a516f965d7aaea8b66.js.LICENSE.txt | 5 + .../5266.4bd06395df5b891961dc.js | 1 + .../530.354e0807be31ba628e76.js | 1 + .../5310.fd3f8381a386d0424677.js | 1 + .../5320.73664f410779311b1c47.js | 1 + .../5371.f226b86c7fcc35537c22.js | 1 + .../5423.e9ba552360761f0951b2.js | 1 + .../546.071b6d2d8fb1cca2ba4a.js | 1 + .../5515.059a8da235d83a190ec9.js | 1 + .../5519.a13ce716e24bf34df10c.js | 1 + .../5532.2acc394a1573f22d5b02.js | 1 + .../5553.6a84c24f672ce3567ae3.js | 1 + .../5609.e2938abc38f2a459d027.js | 1 + .../5618.30b544dfe969fc317516.js | 2 + .../5618.30b544dfe969fc317516.js.LICENSE.txt | 5 + .../5672.7f17b7ea273618d31eb8.js | 1 + .../5693.37798b865af8ea0235c7.js | 2 + .../5693.37798b865af8ea0235c7.js.LICENSE.txt | 5 + .../5698.d35dd6e82c5c8bb9cae9.js | 1 + .../5745.ebe94fc94d7af11b1b8b.js | 1 + .../576.8c99231039ea4aa76994.js | 2 + .../576.8c99231039ea4aa76994.js.LICENSE.txt | 11 + .../5831.f9a619d227f8b8515e4d.js | 1 + .../587.a3b661c03de58780f051.js | 1 + .../5881.06c1eb49e2012f59e288.js | 1 + .../5917.59727aa1a3fe7276debc.js | 1 + .../5967.51ca94433022d54e7147.js | 1 + .../6033.5bc6b7917d8bd9787ec3.js | 1 + .../6057.621f5ac17403f37f52a6.js | 1 + .../6165.e303b8ef1ff08a8925eb.js | 1 + .../6185.61ffe31c43856a6a5ad7.js | 1 + .../627.f58acb14f98120375b02.js | 1 + .../6324.e97e7da2148ccaef61cc.js | 2 + .../6324.e97e7da2148ccaef61cc.js.LICENSE.txt | 5 + .../6330.364706e95324445c714b.js | 1 + .../6353.989479cfec5c0ebbd149.js | 1 + .../6361.416059884d44d914fd30.js | 1 + .../6428.4eee85711a7af17efec1.js | 1 + .../6441.16a17d16b78d2ddca902.js | 1 + .../6449.26616038f3cd038818a8.js | 1 + .../6479.030cd59ede197230bcaa.js | 1 + .../6498.5a12400cd007b9028877.js | 1 + .../6663.d02c707c22906ce7560e.js | 2 + .../6663.d02c707c22906ce7560e.js.LICENSE.txt | 5 + .../6685.471f6754e2350a35ceab.js | 1 + .../6782.19dd3acda276dab89862.js | 1 + .../6802.667b91d186b8cb149e21.js | 1 + .../6829.81fd856d3b22b92d29a4.js | 1 + .../6857.c69b2cad6fc44ac3b9f0.js | 1 + .../6867.df688ff51b1588d27cd2.js | 1 + .../6883.5a6892f01140e41675ea.js | 1 + .../69.9fffed5792113a8444a9.js | 2 + .../69.9fffed5792113a8444a9.js.LICENSE.txt | 5 + .../693.7daf76ab641afeb6e0f5.js | 1 + .../7013.cf8d53511bacdb35f7f6.js | 1 + .../7100.47f6937deb1dbb99d155.js | 1 + .../7102.09ce65885e17f04ace1d.js | 1 + .../7124.414ec20b64c0dadb91df.js | 1 + .../7253.15db11b5cee004c2958d.js | 1 + .../7303.ec0ee7aec191be7caf3d.js | 1 + .../7334.6ce42b5f9b35308f7022.js | 2 + .../7334.6ce42b5f9b35308f7022.js.LICENSE.txt | 5 + .../736.3923eaa23c25401fa832.js | 1 + .../7435.45dffd5033fcb31d0834.js | 1 + .../7440.6e6f8b54af98741d1be5.js | 1 + .../7503.fd4be9f485e4ba9e8a3c.js | 1 + .../7518.a73a5c96d60be8614342.js | 1 + .../7532.fa14e724d3362dd43fe6.js | 1 + .../7565.b4661195ca9760c5ac75.js | 1 + .../7578.87302960514eb76d7af7.js | 1 + .../7595.4dbe338126689d8b66ec.js | 1 + .../7653.f6f17072d9c6684b049b.js | 1 + .../7660.01603e9902b573642aa0.js | 1 + .../7676.7bfd2ac20f65646f6f87.js | 1 + .../7700.f9c937d150b1ca7c827c.js | 1 + .../7710.6e291eb192d0c7bbcea0.js | 1 + .../7714.1cb4669a88b829b7f71e.js | 1 + .../7877.7600c2217e458a2811b4.js | 1 + .../791.cb144fd9976c061d96b4.js | 1 + .../7946.ba98d941346228ba72fe.js | 1 + .../7981.7c86bbed904e147278eb.js | 1 + .../8009.13e7115b69144e160ede.js | 1 + .../8015.01da9131e2b98001a6bf.js | 1 + .../8060.42f9d80f8aed026ba729.js | 1 + .../81.1155da79443400b793b2.js | 1 + .../8145.9e5bb10721369e880f6b.js | 1 + .../8229.c03f7b2b5ca84a513838.js | 1 + .../8243.bed43b242bad700f7f7e.js | 1 + .../829.a73028980ac04b8da6f8.js | 1 + .../8298.8ed0085c3e6db4d05ade.js | 1 + .../8385.85e977bc875eed101a18.js | 1 + .../8414.c899e5c93fd1da51b195.js | 1 + .../8427.facf5662282383f566a4.js | 1 + .../8434.1ba8d0cdb597381bc6f6.js | 1 + .../846.2715fba2814b139f09d7.js | 1 + .../85.28559a31ee9560e4e711.js | 2 + .../85.28559a31ee9560e4e711.js.LICENSE.txt | 10 + .../8506.49f8c8d8b451db730d8e.js | 1 + .../8534.1ca2b1e215e746612893.js | 1 + .../8536.98d8552ac3d1cbf034ba.js | 1 + .../8575.437b23809333bb041473.js | 1 + .../8611.afe43b8fd46cfc093b57.js | 1 + .../8632.cfe5992715ba812093c6.js | 1 + .../8690.cf2b0443fa650b6f43f7.js | 1 + .../8699.c71e79c9823fd475bb26.js | 1 + .../8705.538394f9dcbac3697a37.js | 1 + .../8718.037cd46360db7181fc4f.js | 1 + .../8754.141e349f8c70fdd833e0.js | 1 + .../880.55e604c3fe36955cc0f9.js | 2 + .../880.55e604c3fe36955cc0f9.js.LICENSE.txt | 5 + .../8808.e3b2e7af8faa4c9a9d7f.js | 1 + .../8858.a8aaa12af2b97e623c04.js | 1 + .../890.3390fa60d23cb041ad42.js | 1 + .../8902.f3e4df7fc2ef89ee1139.js | 1 + .../8923.daf50acb34302afd773d.js | 1 + .../8943.360302f619fb649356f7.js | 1 + .../895.de8f7ff9f336c530f91e.js | 1 + .../9018.847ee0fe18f852fd0583.js | 1 + .../9024.2a43be43faaa3d7c5f6c.js | 1 + .../9060.52eeae005e65d61004cd.js | 2 + .../9060.52eeae005e65d61004cd.js.LICENSE.txt | 5 + .../9067.2437439b6dd9482dc391.js | 1 + .../9091.ac0af13aa42a28cf4f1b.js | 1 + .../910.cc1267b1eda2feb860ec.js | 1 + .../9110.fa9d5f28e6f3b77a029d.js | 1 + .../9112.1b0946b5e59198d81b3b.js | 1 + .../9145.e19b68c694e8066b7c80.js | 1 + .../9194.94e06bdbe897da1e5d3c.js | 1 + .../922.8ea149c01b4af86736e6.js | 1 + .../9229.c2f73b4f12c2b356d015.js | 1 + .../9341.2ab444f88c2b4c5f4f5b.js | 1 + .../9361.6d1dffd85cb0010dfb4c.js | 1 + .../9420.906154ee4f385accfe0c.js | 1 + .../9431.e5d0bcad265d2d1a4a9b.js | 1 + .../9457.4bf6a4bf172cb3961657.js | 1 + .../9516.45c667b8c469691879f6.js | 2 + .../9516.45c667b8c469691879f6.js.LICENSE.txt | 5 + .../953.447177fec985cffe0de2.js | 2 + .../953.447177fec985cffe0de2.js.LICENSE.txt | 5 + .../9547.0bc410f2ed4b5307c98f.js | 1 + .../9597.a946b10a11f4a47e95d8.js | 1 + .../9612.07a38515fdfc224d84cf.js | 1 + .../9725.fdf68bdcc8b9339b7200.js | 1 + .../9731.da3cf09cb82545b98992.js | 1 + .../9758.4ac458ba7cd9014c4e41.js | 2 + .../9758.4ac458ba7cd9014c4e41.js.LICENSE.txt | 5 + .../9794.378f9a5226c435c3b103.js | 1 + .../9821.2169ca81413e3af14bc6.js | 1 + .../9849.f3a4c21754fecdd19950.js | 1 + .../9855.faa70eef46f39ef717a0.js | 1 + .../9859.b853d92a999cd6d1cbba.js | 1 + .../9862.aec2be77ffbf48243391.js | 1 + .../9871.3799ecb96b2e30770997.js | 1 + .../990.8c2da22cadc0f8ca4f62.js | 1 + .../9911.5c36d8d14c5a14e53800.js | 1 + .../994.d8e9c94b0a3cca406f27.js | 1 + .../9955.c55960e65592dc034b63.js | 1 + ...mazon.238aa8dbf697de794b4416030d12783b.jpg | Bin 0 -> 5594 bytes ..._Blue.a7ebe07b0181f4ba69b7f8d6720497b5.png | Bin 0 -> 505 bytes ...Green.b751b38133e2588f27e594925df30140.png | Bin 0 -> 547 bytes ...e_RGB.5f3d917b8c6636610862ca4d8c7384c2.png | Bin 0 -> 360 bytes ...e_Red.1506162e49d8733e9898726f758df1a9.png | Bin 0 -> 496 bytes ...keAlt.81ff9fcf9d10bc36c94031de43146608.jpg | Bin 0 -> 3577 bytes ...Garig.0fbb4c6154a30577899eeb921c1a0894.jpg | Bin 0 -> 4892 bytes ...osite.ce33953b497e8ed72040319d9e107c78.png | Bin 0 -> 15307 bytes ...Color.994f966da159854b87a40e2a2a6b1bbf.jpg | Bin 0 -> 5527 bytes ...VV_VH.47c6c27f1aaa735eea5e724598336a52.jpg | Bin 0 -> 5256 bytes ...omaly.08b91c5f6aa13fff6dd02e9daaacb747.jpg | Bin 0 -> 4229 bytes ...Index.6fc26ca848cb3b3681fbc5cdd46c54f0.jpg | Bin 0 -> 5706 bytes ...ichat.7497712f01c9c1017399b271a08cfbde.jpg | Bin 0 -> 5671 bytes ...egend.5c0fbef143ea002eb38cc4f10569e74e.png | Bin 0 -> 1604 bytes ...egend.ee58150ccb2ac69a8876baa3940aa49b.png | Bin 0 -> 1566 bytes ...egend.a786dbad9a25724d50bcabdbef0b1ed1.png | Bin 0 -> 1882 bytes ...egend.a8fd586ffd6b6ef58254885b150612ed.png | Bin 0 -> 2224 bytes ...gapre.531dfdf037a2f353e277012aae50b10c.jpg | Bin 0 -> 5259 bytes ...shavn.9d59687646b4d64d99ff6d71ce40926d.jpg | Bin 0 -> 4749 bytes docs/sentinel1-explorer/index.html | 1 + .../main.7a9aa3d2385a9946d55e.js | 2 + .../main.7a9aa3d2385a9946d55e.js.LICENSE.txt | 93 ++ .../main.96737f0117b6b5b7c155.css | 3 + ...nchor.30d82b29995875af75cc99e4c5f8523e.png | Bin 0 -> 885 bytes docs/sentinel1-explorer/public/favicon.ico | Bin 0 -> 1406 bytes .../public/thumbnails/landcover-explorer.jpg | Bin 0 -> 261017 bytes .../thumbnails/landsat-surface-temp.jpg | Bin 0 -> 122630 bytes .../public/thumbnails/landsat.jpg | Bin 0 -> 321005 bytes 313 files changed, 1619 insertions(+) create mode 100644 docs/sentinel1-explorer/1007.cff7df7005c4c7b361f7.js create mode 100644 docs/sentinel1-explorer/1057.80d448d03450f4895bc5.js create mode 100644 docs/sentinel1-explorer/1180.a2e3c250d885346869c3.js create mode 100644 docs/sentinel1-explorer/1208.a5db1e31bc13993f0ddc.js create mode 100644 docs/sentinel1-explorer/124.023165bd499c17fcba07.js create mode 100644 docs/sentinel1-explorer/126.8653729b24edf2c2037d.js create mode 100644 docs/sentinel1-explorer/134.119d1393190cc4bf5c15.js create mode 100644 docs/sentinel1-explorer/1350.bb4511c0466cf76f5402.js create mode 100644 docs/sentinel1-explorer/1352.919ea06b70a0b4486c5c.js create mode 100644 docs/sentinel1-explorer/1449.7a31619e82cdce8142d0.js create mode 100644 docs/sentinel1-explorer/1489.b87acb6dd37ff0854056.js create mode 100644 docs/sentinel1-explorer/1593.ff8e2a7cb9c4805eb718.js create mode 100644 docs/sentinel1-explorer/1605.d6a00f2c7c6a550d595f.js create mode 100644 docs/sentinel1-explorer/1637.05e1c10f54d6170aca4f.js create mode 100644 docs/sentinel1-explorer/1655.ff4f967b33e6acb4a837.js create mode 100644 docs/sentinel1-explorer/1673.64f18ac9126754ddc50b.js create mode 100644 docs/sentinel1-explorer/1681.fe72583b4e05b0c2ffa0.js create mode 100644 docs/sentinel1-explorer/1691.f7ba4bd96c77f6e9b701.js create mode 100644 docs/sentinel1-explorer/17.463856564ec1e9c1c89d.js create mode 100644 docs/sentinel1-explorer/1780.ddf057b2d37c169fb3d4.js create mode 100644 docs/sentinel1-explorer/1810.e6b397ef133cb945866a.js create mode 100644 docs/sentinel1-explorer/1840.39ebab71fe0ccf8757e2.js create mode 100644 docs/sentinel1-explorer/1844.3e40c41105213aa2105e.js create mode 100644 docs/sentinel1-explorer/1936.96fa57a440dbfe1e08d1.js create mode 100644 docs/sentinel1-explorer/1968.7f204c7410c0c3c2b981.js create mode 100644 docs/sentinel1-explorer/2030.18b4a2b0210598b70333.js create mode 100644 docs/sentinel1-explorer/2149.00dfd018974b866d4dd2.js create mode 100644 docs/sentinel1-explorer/2149.00dfd018974b866d4dd2.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/218.e36138b16de18a4b0149.js create mode 100644 docs/sentinel1-explorer/2209.b82f9d059ae8c61ea8cc.js create mode 100644 docs/sentinel1-explorer/2213.5cc625b24ba0647b7410.js create mode 100644 docs/sentinel1-explorer/2229.80d2d1fa15fd9475e3bf.js create mode 100644 docs/sentinel1-explorer/2247.e3ff7bc5d02f56755812.js create mode 100644 docs/sentinel1-explorer/2329.97554577f877e255b0ac.js create mode 100644 docs/sentinel1-explorer/2338.9aad8b4369330e9d2389.js create mode 100644 docs/sentinel1-explorer/2338.9aad8b4369330e9d2389.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/2394.b40539e259089f9f3bad.js create mode 100644 docs/sentinel1-explorer/2411.2908312c82a15909d5d1.js create mode 100644 docs/sentinel1-explorer/2420.1ec1e17fc753b2b526cf.js create mode 100644 docs/sentinel1-explorer/2444.b72e5d11993249f31102.js create mode 100644 docs/sentinel1-explorer/2601.7d8824939aa4518d1d50.js create mode 100644 docs/sentinel1-explorer/2688.059dec6d363894d4235f.js create mode 100644 docs/sentinel1-explorer/2705.b736950f6f24dd94be88.js create mode 100644 docs/sentinel1-explorer/2727.c8292e3c3c05465855e5.js create mode 100644 docs/sentinel1-explorer/2738.94f06e61d3535b4afa6b.js create mode 100644 docs/sentinel1-explorer/2762.303190f87cd335176758.js create mode 100644 docs/sentinel1-explorer/2886.c29de8ec8f61cdc5c0b4.js create mode 100644 docs/sentinel1-explorer/2901.19b2d31c5afe021ef145.js create mode 100644 docs/sentinel1-explorer/2902.39166b523d0376af0d7d.js create mode 100644 docs/sentinel1-explorer/2942.5bd02075fcd2d8771a0d.js create mode 100644 docs/sentinel1-explorer/3027.07ca63f286a159ad63e1.js create mode 100644 docs/sentinel1-explorer/3040.afbf360b8c29ef628146.js create mode 100644 docs/sentinel1-explorer/3041.acb9914cf6f8473f03f5.js create mode 100644 docs/sentinel1-explorer/3043.4f021eb70dac10f91cb3.js create mode 100644 docs/sentinel1-explorer/3052.168b659a39902b69c405.js create mode 100644 docs/sentinel1-explorer/3062.6de67cfff3a7a88ba189.js create mode 100644 docs/sentinel1-explorer/3094.56f7d135e277ff494efb.js create mode 100644 docs/sentinel1-explorer/3095.8ebb499ea7ee8a999b69.js create mode 100644 docs/sentinel1-explorer/3108.03912388623b53dcba43.js create mode 100644 docs/sentinel1-explorer/3190.c1fcd2982ad00e241df8.js create mode 100644 docs/sentinel1-explorer/3194.8d7631f37e6847b5ffbc.js create mode 100644 docs/sentinel1-explorer/3206.968d5d4921a832aa64b3.js create mode 100644 docs/sentinel1-explorer/3261.8f0a5d6be50d374b3039.js create mode 100644 docs/sentinel1-explorer/3295.72a88e86fc62214cabb4.js create mode 100644 docs/sentinel1-explorer/3296.a74d99fe8f11188a8cdb.js create mode 100644 docs/sentinel1-explorer/332.e2c7801fdd6b21190d1b.js create mode 100644 docs/sentinel1-explorer/3399.8d7464162d75fe8583c1.js create mode 100644 docs/sentinel1-explorer/3433.0822bc5eefeb6794812a.js create mode 100644 docs/sentinel1-explorer/3449.970f8f9e45bd00bb034b.js create mode 100644 docs/sentinel1-explorer/3483.3667288446f8ba2de747.js create mode 100644 docs/sentinel1-explorer/3483.3667288446f8ba2de747.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/3549.034aa8b9417d4375bc8c.js create mode 100644 docs/sentinel1-explorer/3625.aa9d370c1f9a9ac40736.js create mode 100644 docs/sentinel1-explorer/3709.ba8d711818498c5feb03.js create mode 100644 docs/sentinel1-explorer/3711.e3337a3b4f8ee1783a9a.js create mode 100644 docs/sentinel1-explorer/3714.2e706eb2a8771d5d4f99.js create mode 100644 docs/sentinel1-explorer/372.27e70715ac8323ea406c.js create mode 100644 docs/sentinel1-explorer/3734.fda0c0d38f780736f626.js create mode 100644 docs/sentinel1-explorer/3805.a9057d5ba64e662ac46c.js create mode 100644 docs/sentinel1-explorer/3814.9d0c5c3c75621bcb4a81.js create mode 100644 docs/sentinel1-explorer/3822.8763352f30e46e3b0011.js create mode 100644 docs/sentinel1-explorer/3860.2e5fe30ec90233f89924.js create mode 100644 docs/sentinel1-explorer/3912.1a17db0fafc909ab661b.js create mode 100644 docs/sentinel1-explorer/3963.25fd225f3b8d416004a0.js create mode 100644 docs/sentinel1-explorer/3970.7530ef75cb680dd2c3e3.js create mode 100644 docs/sentinel1-explorer/3989.1f11203a27f832003c23.js create mode 100644 docs/sentinel1-explorer/4049.759e1794d310437843b1.js create mode 100644 docs/sentinel1-explorer/4070.bbbdc0865bbb1046aa6c.js create mode 100644 docs/sentinel1-explorer/412.ea8fd621d7cb3e4d3dc1.js create mode 100644 docs/sentinel1-explorer/4121.a5e845d166c9373580a5.js create mode 100644 docs/sentinel1-explorer/4168.2d26b88f8b7ba5db3b63.js create mode 100644 docs/sentinel1-explorer/4287.bd12634bb15599263706.js create mode 100644 docs/sentinel1-explorer/4323.d7b03b6d1976aa6abe9e.js create mode 100644 docs/sentinel1-explorer/4323.d7b03b6d1976aa6abe9e.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/4325.3b152c5d6a9042aa58ed.js create mode 100644 docs/sentinel1-explorer/4339.4488e12c3a48a4c9a2ff.js create mode 100644 docs/sentinel1-explorer/436.bdfd9656acd410b1b5f0.js create mode 100644 docs/sentinel1-explorer/4372.e4ab29d41fbbb9a73d89.js create mode 100644 docs/sentinel1-explorer/4417.6f29920b5c8b093cec09.js create mode 100644 docs/sentinel1-explorer/442.709a2819b79e6ce60e84.js create mode 100644 docs/sentinel1-explorer/4420.c057f987c0769397f49e.js create mode 100644 docs/sentinel1-explorer/4512.a5f45bc32f61a1d6e2fe.js create mode 100644 docs/sentinel1-explorer/4568.804d4d397361029e8359.js create mode 100644 docs/sentinel1-explorer/4575.66324b7676620702ab27.js create mode 100644 docs/sentinel1-explorer/4578.9f1a1054c5900a3f7914.js create mode 100644 docs/sentinel1-explorer/4578.9f1a1054c5900a3f7914.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/4630.16abd854c09672c706c9.js create mode 100644 docs/sentinel1-explorer/4669.5a6d1e46cf3fc8f7d1e3.js create mode 100644 docs/sentinel1-explorer/4682.0ddfeaf1f46550a00aaa.js create mode 100644 docs/sentinel1-explorer/4765.2a42174b92ff6788b52f.js create mode 100644 docs/sentinel1-explorer/4832.6cadad9596b67dc0977b.js create mode 100644 docs/sentinel1-explorer/4864.38f658c71d23a9a6ffd1.js create mode 100644 docs/sentinel1-explorer/4868.03034afda09e3904853d.js create mode 100644 docs/sentinel1-explorer/4892.801456edde926ecbef77.js create mode 100644 docs/sentinel1-explorer/4950.e55f107e3b030ac9062c.js create mode 100644 docs/sentinel1-explorer/4950.e55f107e3b030ac9062c.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/5007.7b2144e90bca19e6150d.js create mode 100644 docs/sentinel1-explorer/5009.3125db46ece0fdb909bf.js create mode 100644 docs/sentinel1-explorer/5027.0bd38c8543c99dece676.js create mode 100644 docs/sentinel1-explorer/5027.0bd38c8543c99dece676.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/5048.893fe04d03a08ef6d2fc.js create mode 100644 docs/sentinel1-explorer/5048.893fe04d03a08ef6d2fc.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/5071.21cae464b8d2c5d5e6c3.js create mode 100644 docs/sentinel1-explorer/5109.2d6c0df569ea1b7eb2f5.js create mode 100644 docs/sentinel1-explorer/5134.d4e4baf8f7fba3a6e2c0.js create mode 100644 docs/sentinel1-explorer/5169.8b544dcea3039febab49.js create mode 100644 docs/sentinel1-explorer/5215.ba47aa053f4ac842d861.js create mode 100644 docs/sentinel1-explorer/5247.39a516f965d7aaea8b66.js create mode 100644 docs/sentinel1-explorer/5247.39a516f965d7aaea8b66.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/5266.4bd06395df5b891961dc.js create mode 100644 docs/sentinel1-explorer/530.354e0807be31ba628e76.js create mode 100644 docs/sentinel1-explorer/5310.fd3f8381a386d0424677.js create mode 100644 docs/sentinel1-explorer/5320.73664f410779311b1c47.js create mode 100644 docs/sentinel1-explorer/5371.f226b86c7fcc35537c22.js create mode 100644 docs/sentinel1-explorer/5423.e9ba552360761f0951b2.js create mode 100644 docs/sentinel1-explorer/546.071b6d2d8fb1cca2ba4a.js create mode 100644 docs/sentinel1-explorer/5515.059a8da235d83a190ec9.js create mode 100644 docs/sentinel1-explorer/5519.a13ce716e24bf34df10c.js create mode 100644 docs/sentinel1-explorer/5532.2acc394a1573f22d5b02.js create mode 100644 docs/sentinel1-explorer/5553.6a84c24f672ce3567ae3.js create mode 100644 docs/sentinel1-explorer/5609.e2938abc38f2a459d027.js create mode 100644 docs/sentinel1-explorer/5618.30b544dfe969fc317516.js create mode 100644 docs/sentinel1-explorer/5618.30b544dfe969fc317516.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/5672.7f17b7ea273618d31eb8.js create mode 100644 docs/sentinel1-explorer/5693.37798b865af8ea0235c7.js create mode 100644 docs/sentinel1-explorer/5693.37798b865af8ea0235c7.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/5698.d35dd6e82c5c8bb9cae9.js create mode 100644 docs/sentinel1-explorer/5745.ebe94fc94d7af11b1b8b.js create mode 100644 docs/sentinel1-explorer/576.8c99231039ea4aa76994.js create mode 100644 docs/sentinel1-explorer/576.8c99231039ea4aa76994.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/5831.f9a619d227f8b8515e4d.js create mode 100644 docs/sentinel1-explorer/587.a3b661c03de58780f051.js create mode 100644 docs/sentinel1-explorer/5881.06c1eb49e2012f59e288.js create mode 100644 docs/sentinel1-explorer/5917.59727aa1a3fe7276debc.js create mode 100644 docs/sentinel1-explorer/5967.51ca94433022d54e7147.js create mode 100644 docs/sentinel1-explorer/6033.5bc6b7917d8bd9787ec3.js create mode 100644 docs/sentinel1-explorer/6057.621f5ac17403f37f52a6.js create mode 100644 docs/sentinel1-explorer/6165.e303b8ef1ff08a8925eb.js create mode 100644 docs/sentinel1-explorer/6185.61ffe31c43856a6a5ad7.js create mode 100644 docs/sentinel1-explorer/627.f58acb14f98120375b02.js create mode 100644 docs/sentinel1-explorer/6324.e97e7da2148ccaef61cc.js create mode 100644 docs/sentinel1-explorer/6324.e97e7da2148ccaef61cc.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/6330.364706e95324445c714b.js create mode 100644 docs/sentinel1-explorer/6353.989479cfec5c0ebbd149.js create mode 100644 docs/sentinel1-explorer/6361.416059884d44d914fd30.js create mode 100644 docs/sentinel1-explorer/6428.4eee85711a7af17efec1.js create mode 100644 docs/sentinel1-explorer/6441.16a17d16b78d2ddca902.js create mode 100644 docs/sentinel1-explorer/6449.26616038f3cd038818a8.js create mode 100644 docs/sentinel1-explorer/6479.030cd59ede197230bcaa.js create mode 100644 docs/sentinel1-explorer/6498.5a12400cd007b9028877.js create mode 100644 docs/sentinel1-explorer/6663.d02c707c22906ce7560e.js create mode 100644 docs/sentinel1-explorer/6663.d02c707c22906ce7560e.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/6685.471f6754e2350a35ceab.js create mode 100644 docs/sentinel1-explorer/6782.19dd3acda276dab89862.js create mode 100644 docs/sentinel1-explorer/6802.667b91d186b8cb149e21.js create mode 100644 docs/sentinel1-explorer/6829.81fd856d3b22b92d29a4.js create mode 100644 docs/sentinel1-explorer/6857.c69b2cad6fc44ac3b9f0.js create mode 100644 docs/sentinel1-explorer/6867.df688ff51b1588d27cd2.js create mode 100644 docs/sentinel1-explorer/6883.5a6892f01140e41675ea.js create mode 100644 docs/sentinel1-explorer/69.9fffed5792113a8444a9.js create mode 100644 docs/sentinel1-explorer/69.9fffed5792113a8444a9.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/693.7daf76ab641afeb6e0f5.js create mode 100644 docs/sentinel1-explorer/7013.cf8d53511bacdb35f7f6.js create mode 100644 docs/sentinel1-explorer/7100.47f6937deb1dbb99d155.js create mode 100644 docs/sentinel1-explorer/7102.09ce65885e17f04ace1d.js create mode 100644 docs/sentinel1-explorer/7124.414ec20b64c0dadb91df.js create mode 100644 docs/sentinel1-explorer/7253.15db11b5cee004c2958d.js create mode 100644 docs/sentinel1-explorer/7303.ec0ee7aec191be7caf3d.js create mode 100644 docs/sentinel1-explorer/7334.6ce42b5f9b35308f7022.js create mode 100644 docs/sentinel1-explorer/7334.6ce42b5f9b35308f7022.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/736.3923eaa23c25401fa832.js create mode 100644 docs/sentinel1-explorer/7435.45dffd5033fcb31d0834.js create mode 100644 docs/sentinel1-explorer/7440.6e6f8b54af98741d1be5.js create mode 100644 docs/sentinel1-explorer/7503.fd4be9f485e4ba9e8a3c.js create mode 100644 docs/sentinel1-explorer/7518.a73a5c96d60be8614342.js create mode 100644 docs/sentinel1-explorer/7532.fa14e724d3362dd43fe6.js create mode 100644 docs/sentinel1-explorer/7565.b4661195ca9760c5ac75.js create mode 100644 docs/sentinel1-explorer/7578.87302960514eb76d7af7.js create mode 100644 docs/sentinel1-explorer/7595.4dbe338126689d8b66ec.js create mode 100644 docs/sentinel1-explorer/7653.f6f17072d9c6684b049b.js create mode 100644 docs/sentinel1-explorer/7660.01603e9902b573642aa0.js create mode 100644 docs/sentinel1-explorer/7676.7bfd2ac20f65646f6f87.js create mode 100644 docs/sentinel1-explorer/7700.f9c937d150b1ca7c827c.js create mode 100644 docs/sentinel1-explorer/7710.6e291eb192d0c7bbcea0.js create mode 100644 docs/sentinel1-explorer/7714.1cb4669a88b829b7f71e.js create mode 100644 docs/sentinel1-explorer/7877.7600c2217e458a2811b4.js create mode 100644 docs/sentinel1-explorer/791.cb144fd9976c061d96b4.js create mode 100644 docs/sentinel1-explorer/7946.ba98d941346228ba72fe.js create mode 100644 docs/sentinel1-explorer/7981.7c86bbed904e147278eb.js create mode 100644 docs/sentinel1-explorer/8009.13e7115b69144e160ede.js create mode 100644 docs/sentinel1-explorer/8015.01da9131e2b98001a6bf.js create mode 100644 docs/sentinel1-explorer/8060.42f9d80f8aed026ba729.js create mode 100644 docs/sentinel1-explorer/81.1155da79443400b793b2.js create mode 100644 docs/sentinel1-explorer/8145.9e5bb10721369e880f6b.js create mode 100644 docs/sentinel1-explorer/8229.c03f7b2b5ca84a513838.js create mode 100644 docs/sentinel1-explorer/8243.bed43b242bad700f7f7e.js create mode 100644 docs/sentinel1-explorer/829.a73028980ac04b8da6f8.js create mode 100644 docs/sentinel1-explorer/8298.8ed0085c3e6db4d05ade.js create mode 100644 docs/sentinel1-explorer/8385.85e977bc875eed101a18.js create mode 100644 docs/sentinel1-explorer/8414.c899e5c93fd1da51b195.js create mode 100644 docs/sentinel1-explorer/8427.facf5662282383f566a4.js create mode 100644 docs/sentinel1-explorer/8434.1ba8d0cdb597381bc6f6.js create mode 100644 docs/sentinel1-explorer/846.2715fba2814b139f09d7.js create mode 100644 docs/sentinel1-explorer/85.28559a31ee9560e4e711.js create mode 100644 docs/sentinel1-explorer/85.28559a31ee9560e4e711.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/8506.49f8c8d8b451db730d8e.js create mode 100644 docs/sentinel1-explorer/8534.1ca2b1e215e746612893.js create mode 100644 docs/sentinel1-explorer/8536.98d8552ac3d1cbf034ba.js create mode 100644 docs/sentinel1-explorer/8575.437b23809333bb041473.js create mode 100644 docs/sentinel1-explorer/8611.afe43b8fd46cfc093b57.js create mode 100644 docs/sentinel1-explorer/8632.cfe5992715ba812093c6.js create mode 100644 docs/sentinel1-explorer/8690.cf2b0443fa650b6f43f7.js create mode 100644 docs/sentinel1-explorer/8699.c71e79c9823fd475bb26.js create mode 100644 docs/sentinel1-explorer/8705.538394f9dcbac3697a37.js create mode 100644 docs/sentinel1-explorer/8718.037cd46360db7181fc4f.js create mode 100644 docs/sentinel1-explorer/8754.141e349f8c70fdd833e0.js create mode 100644 docs/sentinel1-explorer/880.55e604c3fe36955cc0f9.js create mode 100644 docs/sentinel1-explorer/880.55e604c3fe36955cc0f9.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/8808.e3b2e7af8faa4c9a9d7f.js create mode 100644 docs/sentinel1-explorer/8858.a8aaa12af2b97e623c04.js create mode 100644 docs/sentinel1-explorer/890.3390fa60d23cb041ad42.js create mode 100644 docs/sentinel1-explorer/8902.f3e4df7fc2ef89ee1139.js create mode 100644 docs/sentinel1-explorer/8923.daf50acb34302afd773d.js create mode 100644 docs/sentinel1-explorer/8943.360302f619fb649356f7.js create mode 100644 docs/sentinel1-explorer/895.de8f7ff9f336c530f91e.js create mode 100644 docs/sentinel1-explorer/9018.847ee0fe18f852fd0583.js create mode 100644 docs/sentinel1-explorer/9024.2a43be43faaa3d7c5f6c.js create mode 100644 docs/sentinel1-explorer/9060.52eeae005e65d61004cd.js create mode 100644 docs/sentinel1-explorer/9060.52eeae005e65d61004cd.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/9067.2437439b6dd9482dc391.js create mode 100644 docs/sentinel1-explorer/9091.ac0af13aa42a28cf4f1b.js create mode 100644 docs/sentinel1-explorer/910.cc1267b1eda2feb860ec.js create mode 100644 docs/sentinel1-explorer/9110.fa9d5f28e6f3b77a029d.js create mode 100644 docs/sentinel1-explorer/9112.1b0946b5e59198d81b3b.js create mode 100644 docs/sentinel1-explorer/9145.e19b68c694e8066b7c80.js create mode 100644 docs/sentinel1-explorer/9194.94e06bdbe897da1e5d3c.js create mode 100644 docs/sentinel1-explorer/922.8ea149c01b4af86736e6.js create mode 100644 docs/sentinel1-explorer/9229.c2f73b4f12c2b356d015.js create mode 100644 docs/sentinel1-explorer/9341.2ab444f88c2b4c5f4f5b.js create mode 100644 docs/sentinel1-explorer/9361.6d1dffd85cb0010dfb4c.js create mode 100644 docs/sentinel1-explorer/9420.906154ee4f385accfe0c.js create mode 100644 docs/sentinel1-explorer/9431.e5d0bcad265d2d1a4a9b.js create mode 100644 docs/sentinel1-explorer/9457.4bf6a4bf172cb3961657.js create mode 100644 docs/sentinel1-explorer/9516.45c667b8c469691879f6.js create mode 100644 docs/sentinel1-explorer/9516.45c667b8c469691879f6.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/953.447177fec985cffe0de2.js create mode 100644 docs/sentinel1-explorer/953.447177fec985cffe0de2.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/9547.0bc410f2ed4b5307c98f.js create mode 100644 docs/sentinel1-explorer/9597.a946b10a11f4a47e95d8.js create mode 100644 docs/sentinel1-explorer/9612.07a38515fdfc224d84cf.js create mode 100644 docs/sentinel1-explorer/9725.fdf68bdcc8b9339b7200.js create mode 100644 docs/sentinel1-explorer/9731.da3cf09cb82545b98992.js create mode 100644 docs/sentinel1-explorer/9758.4ac458ba7cd9014c4e41.js create mode 100644 docs/sentinel1-explorer/9758.4ac458ba7cd9014c4e41.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/9794.378f9a5226c435c3b103.js create mode 100644 docs/sentinel1-explorer/9821.2169ca81413e3af14bc6.js create mode 100644 docs/sentinel1-explorer/9849.f3a4c21754fecdd19950.js create mode 100644 docs/sentinel1-explorer/9855.faa70eef46f39ef717a0.js create mode 100644 docs/sentinel1-explorer/9859.b853d92a999cd6d1cbba.js create mode 100644 docs/sentinel1-explorer/9862.aec2be77ffbf48243391.js create mode 100644 docs/sentinel1-explorer/9871.3799ecb96b2e30770997.js create mode 100644 docs/sentinel1-explorer/990.8c2da22cadc0f8ca4f62.js create mode 100644 docs/sentinel1-explorer/9911.5c36d8d14c5a14e53800.js create mode 100644 docs/sentinel1-explorer/994.d8e9c94b0a3cca406f27.js create mode 100644 docs/sentinel1-explorer/9955.c55960e65592dc034b63.js create mode 100644 docs/sentinel1-explorer/Amazon.238aa8dbf697de794b4416030d12783b.jpg create mode 100644 docs/sentinel1-explorer/Composite_Blue.a7ebe07b0181f4ba69b7f8d6720497b5.png create mode 100644 docs/sentinel1-explorer/Composite_Green.b751b38133e2588f27e594925df30140.png create mode 100644 docs/sentinel1-explorer/Composite_RGB.5f3d917b8c6636610862ca4d8c7384c2.png create mode 100644 docs/sentinel1-explorer/Composite_Red.1506162e49d8733e9898726f758df1a9.png create mode 100644 docs/sentinel1-explorer/CraterLakeAlt.81ff9fcf9d10bc36c94031de43146608.jpg create mode 100644 docs/sentinel1-explorer/Garig.0fbb4c6154a30577899eeb921c1a0894.jpg create mode 100644 docs/sentinel1-explorer/RGBComposite.ce33953b497e8ed72040319d9e107c78.png create mode 100644 docs/sentinel1-explorer/Render_FalseColor.994f966da159854b87a40e2a2a6b1bbf.jpg create mode 100644 docs/sentinel1-explorer/Render_VV_VH.47c6c27f1aaa735eea5e724598336a52.jpg create mode 100644 docs/sentinel1-explorer/Render_WaterAnomaly.08b91c5f6aa13fff6dd02e9daaacb747.jpg create mode 100644 docs/sentinel1-explorer/Render_WaterIndex.6fc26ca848cb3b3681fbc5cdd46c54f0.jpg create mode 100644 docs/sentinel1-explorer/Richat.7497712f01c9c1017399b271a08cfbde.jpg create mode 100644 docs/sentinel1-explorer/SAR_FalseColorComposite_Legend.5c0fbef143ea002eb38cc4f10569e74e.png create mode 100644 docs/sentinel1-explorer/SAR_SingleBandV2_Legend.ee58150ccb2ac69a8876baa3940aa49b.png create mode 100644 docs/sentinel1-explorer/SAR_WaterAnomaly_Legend.a786dbad9a25724d50bcabdbef0b1ed1.png create mode 100644 docs/sentinel1-explorer/SAR_WaterIndex_Legend.a8fd586ffd6b6ef58254885b150612ed.png create mode 100644 docs/sentinel1-explorer/Singapre.531dfdf037a2f353e277012aae50b10c.jpg create mode 100644 docs/sentinel1-explorer/Torshavn.9d59687646b4d64d99ff6d71ce40926d.jpg create mode 100644 docs/sentinel1-explorer/index.html create mode 100644 docs/sentinel1-explorer/main.7a9aa3d2385a9946d55e.js create mode 100644 docs/sentinel1-explorer/main.7a9aa3d2385a9946d55e.js.LICENSE.txt create mode 100644 docs/sentinel1-explorer/main.96737f0117b6b5b7c155.css create mode 100644 docs/sentinel1-explorer/map-anchor.30d82b29995875af75cc99e4c5f8523e.png create mode 100644 docs/sentinel1-explorer/public/favicon.ico create mode 100644 docs/sentinel1-explorer/public/thumbnails/landcover-explorer.jpg create mode 100644 docs/sentinel1-explorer/public/thumbnails/landsat-surface-temp.jpg create mode 100644 docs/sentinel1-explorer/public/thumbnails/landsat.jpg diff --git a/docs/sentinel1-explorer/1007.cff7df7005c4c7b361f7.js b/docs/sentinel1-explorer/1007.cff7df7005c4c7b361f7.js new file mode 100644 index 00000000..8a9cd9f0 --- /dev/null +++ b/docs/sentinel1-explorer/1007.cff7df7005c4c7b361f7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1007],{71007:function(e,t,o){o.r(t),o.d(t,{executeRelationshipQuery:function(){return f},executeRelationshipQueryForCount:function(){return y}});var r=o(84238),n=o(66341),a=o(35925),u=o(27707);function c(e,t){const o=e.toJSON();return o.objectIds&&(o.objectIds=o.objectIds.join(",")),o.orderByFields&&(o.orderByFields=o.orderByFields.join(",")),o.outFields&&!t?.returnCountOnly?o.outFields.includes("*")?o.outFields="*":o.outFields=o.outFields.join(","):delete o.outFields,o.outSR&&(o.outSR=(0,a.B9)(o.outSR)),o.dynamicDataSource&&(o.layer=JSON.stringify({source:o.dynamicDataSource}),delete o.dynamicDataSource),o}async function s(e,t,o){const r=await d(e,t,o),n=r.data,a=n.geometryType,u=n.spatialReference,c={};for(const e of n.relatedRecordGroups){const t={fields:void 0,objectIdFieldName:void 0,geometryType:a,spatialReference:u,hasZ:!!n.hasZ,hasM:!!n.hasM,features:e.relatedRecords};if(null!=e.objectId)c[e.objectId]=t;else for(const o of Object.keys(e))"relatedRecords"!==o&&(c[e[o]]=t)}return{...r,data:c}}async function d(e,t,o={},r){const a=(0,u.A)({...e.query,f:"json",...r,...c(t,r)});return(0,n.Z)(e.path+"/queryRelatedRecords",{...o,query:{...o.query,...a}})}var i=o(51211),l=o(8284);async function f(e,t,o){t=l.default.from(t);return s((0,r.en)(e),t,o).then((e=>{const t=e.data,o={};return Object.keys(t).forEach((e=>o[e]=i.Z.fromJSON(t[e]))),o}))}async function y(e,t,o){t=l.default.from(t);return async function(e,t,o){const r=await d(e,t,o,{returnCountOnly:!0}),n=r.data,a={};for(const e of n.relatedRecordGroups)null!=e.objectId&&(a[e.objectId]=e.count);return{...r,data:a}}((0,r.en)(e),t,{...o}).then((e=>e.data))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1057.80d448d03450f4895bc5.js b/docs/sentinel1-explorer/1057.80d448d03450f4895bc5.js new file mode 100644 index 00000000..682040ff --- /dev/null +++ b/docs/sentinel1-explorer/1057.80d448d03450f4895bc5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1057],{1057:function(e,t,s){s.r(t),s.d(t,{default:function(){return m}});var r=s(36663),n=s(70375),i=s(23148),o=s(76868),a=s(81977),u=(s(39994),s(13802),s(4157),s(40266)),l=s(51211),c=s(15881),h=s(50198),d=s(15553);const p=e=>{let t=class extends e{resume(){this._isUserPaused=!1,this.suspended||this._doResume()}pause(){this._isUserPaused=!0,this.suspended||this._doPause()}disconnect(){this._doDisconnect()}connect(){this._doConnect()}clear(){this._doClear()}constructor(...e){super(...e),this._isUserPaused=!1,this.filter=null}get connectionStatus(){return(this._isUserPaused||this.suspended)&&"connected"===this._streamConnectionStatus?"paused":this._streamConnectionStatus}_onSuspendedChange(e){e?this._doPause():this._isUserPaused||this._doResume()}};return(0,r._)([(0,a.Cb)()],t.prototype,"_isUserPaused",void 0),(0,r._)([(0,a.Cb)({readOnly:!0})],t.prototype,"connectionStatus",null),(0,r._)([(0,a.Cb)({type:d.Z})],t.prototype,"filter",void 0),t=(0,r._)([(0,u.j)("esri.layers.mixins.StreamLayerView")],t),t};let _=class extends(p(c.default)){constructor(){super(...arguments),this.pipelineConnectionStatus="disconnected",this.pipelineErrorString=null}initialize(){this.addHandles([(0,o.YP)((()=>this.layer.customParameters),(e=>this._worker.streamMessenger.updateCustomParameters(e))),this.layer.on("send-message-to-socket",(e=>this._worker.streamMessenger.sendMessageToSocket(e))),this.layer.on("send-message-to-client",(e=>{this._worker.streamMessenger.sendMessageToClient(e),this._isUserPaused&&"type"in e&&"clear"===e.type&&this.incrementSourceRefreshVersion()})),(0,o.YP)((()=>this.layer.purgeOptions),(()=>this._update())),(0,o.YP)((()=>this.suspended),this._onSuspendedChange.bind(this))],"constructor"),this._doResume()}destroy(){this._doPause()}get connectionError(){return this.pipelineErrorString?new n.Z("stream-controller",this.pipelineErrorString):null}on(e,t){if(Array.isArray(e))return(0,i.AL)(e.map((e=>this.on(e,t))));const s=["data-received","message-received"].includes(e);s&&this._worker.streamMessenger.enableEvent(e,!0);const r=super.on(e,t),n=this;return(0,i.kB)((()=>{r.remove(),s&&(n._worker.closed||n.hasEventListener(e)||n._worker.streamMessenger.enableEvent(e,!1))}))}queryLatestObservations(e,t){if(!(this.layer.timeInfo?.endField||this.layer.timeInfo?.startField||this.layer.timeInfo?.trackIdField))throw new n.Z("streamlayer-no-timeField","queryLatestObservation can only be used with services that define a TrackIdField");return(0,h.Y)(this._worker.features.executeQueryForLatestObservations(this._cleanUpQuery(e),t).then((e=>{const t=l.Z.fromJSON(e);return t.features.forEach((e=>{e.layer=this.layer,e.sourceLayer=this.layer})),t})),new l.Z({features:[]}))}detach(){super.detach(),this.pipelineConnectionStatus="disconnected"}get _streamConnectionStatus(){return this.pipelineConnectionStatus}_doPause(){null!=this._refreshInterval&&(clearInterval(this._refreshInterval),this._refreshInterval=null)}_doResume(){this._refreshInterval=setInterval((()=>this.incrementSourceRefreshVersion()),this.layer.updateInterval)}_doDisconnect(){this._worker.streamMessenger.disconnect(),this._doPause()}_doConnect(){this._worker.streamMessenger.connect(),this.resume()}_doClear(){this._worker.streamMessenger.clear(),null==this._refreshInterval&&this.incrementSourceRefreshVersion()}_createClientOptions(){const e=super._createClientOptions(),t=this;return{...e,get container(){return t.featureContainer},setProperty:e=>{this.set(e.propertyName,e.value)}}}};(0,r._)([(0,a.Cb)()],_.prototype,"pipelineConnectionStatus",void 0),(0,r._)([(0,a.Cb)()],_.prototype,"pipelineErrorString",void 0),(0,r._)([(0,a.Cb)({readOnly:!0})],_.prototype,"connectionError",null),(0,r._)([(0,a.Cb)({readOnly:!0})],_.prototype,"_streamConnectionStatus",null),_=(0,r._)([(0,u.j)("esri.views.2d.layers.StreamLayerView2D")],_);const m=_}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1180.a2e3c250d885346869c3.js b/docs/sentinel1-explorer/1180.a2e3c250d885346869c3.js new file mode 100644 index 00000000..92d25106 --- /dev/null +++ b/docs/sentinel1-explorer/1180.a2e3c250d885346869c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1180],{1180:function(e,r,p){p.r(r),p.d(r,{build:function(){return u.b}});p(95650),p(57218),p(35031),p(5885),p(4731),p(99163),p(7792),p(91636),p(40433),p(82082),p(6502),p(78549),p(5664),p(74312),p(3417),p(11827),p(99660),p(58749),p(73393),p(2833),p(89585),p(3864),p(59181),p(30228),p(91024),p(49745),p(10938),p(71354),p(43036),p(63371),p(24603),p(23410),p(3961),p(15176),p(42842),p(21414);var u=p(45584)}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1208.a5db1e31bc13993f0ddc.js b/docs/sentinel1-explorer/1208.a5db1e31bc13993f0ddc.js new file mode 100644 index 00000000..497f729b --- /dev/null +++ b/docs/sentinel1-explorer/1208.a5db1e31bc13993f0ddc.js @@ -0,0 +1,1108 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1208],{45584:function(e,t,r){r.d(t,{D:function(){return G},b:function(){return z}});var n=r(95650),i=r(57218),o=r(35031),a=r(5885),s=r(4731),l=r(99163),c=r(7792),u=r(91636),d=r(40433),h=r(82082),f=r(6502),m=r(78549),p=r(5664),v=r(74312),g=r(3417),_=r(11827),x=r(99660),T=r(58749),b=r(73393),y=r(2833),S=r(89585),A=r(3864),E=r(59181),w=r(30228),C=r(91024),M=r(44391),O=r(49745),R=r(10938),I=r(71354),P=r(43036),N=r(63371),H=r(24603),L=r(23410),F=r(3961),D=r(15176),B=r(42842),U=r(21414);function z(e){const t=new F.kG,{vertex:r,fragment:z,varyings:G}=t;if((0,I.Sv)(r,e),t.include(u.f),G.add("vpos","vec3"),t.include(C.k,e),t.include(l.fQ,e),t.include(p.L,e),t.include(w.av,e),e.output===o.H_.Color||e.output===o.H_.Alpha){t.include(w.NI,e),t.include(w.R5,e),t.include(w.jF,e),t.include(w.DT,e),(0,I.hY)(r,e),t.include(c.O,e),t.include(s.w,e);const o=e.normalType===c.r.Attribute||e.normalType===c.r.Compressed;o&&e.offsetBackfaces&&t.include(i.w),t.include(g.Q,e),t.include(m.Bb,e),e.instancedColor&&t.attributes.add(U.T.INSTANCECOLOR,"vec4"),G.add("vPositionLocal","vec3"),t.include(h.D,e),t.include(n.qj,e),t.include(d.R,e),t.include(f.c,e),r.uniforms.add(new N.N("externalColor",(e=>e.externalColor))),G.add("vcolorExt","vec4"),e.multipassEnabled&&G.add("depth","float"),r.code.add(L.H` + void main(void) { + forwardNormalizedVertexColor(); + vcolorExt = externalColor; + ${e.instancedColor?"vcolorExt *= instanceColor * 0.003921568627451;":""} + vcolorExt *= vvColor(); + vcolorExt *= getSymbolColor(); + forwardColorMixMode(); + + if (vcolorExt.a < ${L.H.float(M.b)}) { + gl_Position = vec4(1e38, 1e38, 1e38, 1.0); + } else { + vpos = getVertexInLocalOriginSpace(); + vPositionLocal = vpos - view[3].xyz; + vpos = subtractOrigin(vpos); + ${o?L.H`vNormalWorld = dpNormal(vvLocalNormal(normalModel()));`:""} + vpos = addVerticalOffset(vpos, localOrigin); + ${e.hasVertexTangents?"vTangent = dpTransformVertexTangent(tangent);":""} + gl_Position = transformPosition(proj, view, vpos); + ${o&&e.offsetBackfaces?"gl_Position = offsetBackfacingClipPosition(gl_Position, vpos, vNormalWorld, cameraPosition);":""} + } + + ${e.multipassEnabled?"depth = (view * vec4(vpos, 1.0)).z;":""} + forwardLinearDepth(); + forwardTextureCoordinates(); + forwardColorUV(); + forwardNormalUV(); + forwardEmissiveUV(); + forwardOcclusionUV(); + forwardMetallicRoughnessUV(); + } + `)}switch(e.output){case o.H_.Alpha:t.include(a.f5,e),t.include(O.z,e),t.include(b.l,e),z.uniforms.add(new H.p("opacity",(e=>e.opacity)),new H.p("layerOpacity",(e=>e.layerOpacity))),e.hasColorTexture&&z.uniforms.add(new D.A("tex",(e=>e.texture))),z.include(R.y),z.code.add(L.H` + void main() { + discardBySlice(vpos); + ${e.multipassEnabled?"terrainDepthTest(depth);":""} + ${e.hasColorTexture?L.H` + vec4 texColor = texture(tex, ${e.hasColorTextureTransform?L.H`colorUV`:L.H`vuv0`}); + ${e.textureAlphaPremultiplied?"texColor.rgb /= texColor.a;":""} + discardOrAdjustAlpha(texColor);`:L.H`vec4 texColor = vec4(1.0);`} + ${e.hasVertexColors?L.H`float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, int(colorMixMode));`:L.H`float opacity_ = layerOpacity * mixExternalOpacity(opacity, texColor.a, vcolorExt.a, int(colorMixMode));`} + fragColor = vec4(opacity_); + } + `);break;case o.H_.Color:t.include(a.f5,e),t.include(x.XP,e),t.include(_.K,e),t.include(O.z,e),t.include(e.instancedDoublePrecision?E.hb:E.XE,e),t.include(b.l,e),(0,I.hY)(z,e),z.uniforms.add(r.uniforms.get("localOrigin"),new P.J("ambient",(e=>e.ambient)),new P.J("diffuse",(e=>e.diffuse)),new H.p("opacity",(e=>e.opacity)),new H.p("layerOpacity",(e=>e.layerOpacity))),e.hasColorTexture&&z.uniforms.add(new D.A("tex",(e=>e.texture))),t.include(A.jV,e),t.include(S.T,e),z.include(R.y),t.include(y.k,e),(0,x.PN)(z),(0,x.sC)(z),(0,T.F1)(z),z.code.add(L.H` + void main() { + discardBySlice(vpos); + ${e.multipassEnabled?"terrainDepthTest(depth);":""} + ${e.hasColorTexture?L.H` + vec4 texColor = texture(tex, ${e.hasColorTextureTransform?L.H`colorUV`:L.H`vuv0`}); + ${e.textureAlphaPremultiplied?"texColor.rgb /= texColor.a;":""} + discardOrAdjustAlpha(texColor);`:L.H`vec4 texColor = vec4(1.0);`} + shadingParams.viewDirection = normalize(vpos - cameraPosition); + ${e.normalType===c.r.ScreenDerivative?L.H` + vec3 normal = screenDerivativeNormal(vPositionLocal);`:L.H` + shadingParams.normalView = vNormalWorld; + vec3 normal = shadingNormal(shadingParams);`} + ${e.pbrMode===A.f7.Normal?"applyPBRFactors();":""} + float ssao = evaluateAmbientOcclusionInverse() * getBakedOcclusion(); + + vec3 posWorld = vpos + localOrigin; + + float additionalAmbientScale = additionalDirectedAmbientLight(posWorld); + float shadow = ${e.receiveShadows?"readShadowMap(vpos, linearDepth)":e.spherical?"lightingGlobalFactor * (1.0 - additionalAmbientScale)":"0.0"}; + + vec3 matColor = max(ambient, diffuse); + ${e.hasVertexColors?L.H` + vec3 albedo = mixExternalColor(vColor.rgb * matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode)); + float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, int(colorMixMode));`:L.H` + vec3 albedo = mixExternalColor(matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode)); + float opacity_ = layerOpacity * mixExternalOpacity(opacity, texColor.a, vcolorExt.a, int(colorMixMode));`} + ${e.hasNormalTexture?L.H` + mat3 tangentSpace = ${e.hasVertexTangents?"computeTangentSpace(normal);":"computeTangentSpace(normal, vpos, vuv0);"} + vec3 shadingNormal = computeTextureNormal(tangentSpace, ${e.hasNormalTextureTransform?L.H`normalUV`:"vuv0"});`:L.H`vec3 shadingNormal = normal;`} + vec3 normalGround = ${e.spherical?L.H`normalize(posWorld);`:L.H`vec3(0.0, 0.0, 1.0);`} + + ${e.snowCover?L.H` + float snow = smoothstep(0.5, 0.55, dot(normal, normalGround)); + albedo = mix(albedo, vec3(1), snow); + shadingNormal = mix(shadingNormal, normal, snow); + ssao = mix(ssao, 1.0, snow);`:""} + + vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor; + + ${e.pbrMode===A.f7.Normal||e.pbrMode===A.f7.Schematic?L.H` + float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2]; + ${e.snowCover?L.H` + mrr = mix(mrr, vec3(0.0, 1.0, 0.04), snow); + emission = mix(emission, vec3(0.0), snow);`:""} + + vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);`:L.H`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`} + fragColor = highlightSlice(vec4(shadedColor, opacity_), vpos); + ${e.transparencyPassType===B.A.Color?L.H`fragColor = premultiplyAlpha(fragColor);`:""} + } + `)}return t.include(v.s,e),t}const G=Object.freeze(Object.defineProperty({__proto__:null,build:z},Symbol.toStringTag,{value:"Module"}))},60926:function(e,t,r){r.d(t,{R:function(){return D},b:function(){return F}});var n=r(95650),i=r(57218),o=r(35031),a=r(5885),s=r(4731),l=r(99163),c=r(7792),u=r(91636),d=r(40433),h=r(82082),f=r(6502),m=r(5664),p=r(74312),v=r(11827),g=r(99660),_=r(58749),x=r(73393),T=r(89585),b=r(3864),y=r(59181),S=r(91024),A=r(44391),E=r(49745),w=r(10938),C=r(71354),M=r(43036),O=r(63371),R=r(24603),I=r(23410),P=r(3961),N=r(15176),H=r(42842),L=r(21414);function F(e){const t=new P.kG,{vertex:r,fragment:F,varyings:D}=t;return(0,C.Sv)(r,e),t.include(u.f),D.add("vpos","vec3"),t.include(S.k,e),t.include(l.fQ,e),t.include(m.L,e),e.output!==o.H_.Color&&e.output!==o.H_.Alpha||((0,C.hY)(t.vertex,e),t.include(c.O,e),t.include(s.w,e),e.offsetBackfaces&&t.include(i.w),e.instancedColor&&t.attributes.add(L.T.INSTANCECOLOR,"vec4"),D.add("vNormalWorld","vec3"),D.add("localvpos","vec3"),e.multipassEnabled&&D.add("depth","float"),t.include(h.D,e),t.include(n.qj,e),t.include(d.R,e),t.include(f.c,e),r.uniforms.add(new O.N("externalColor",(e=>e.externalColor))),D.add("vcolorExt","vec4"),r.code.add(I.H` + void main(void) { + forwardNormalizedVertexColor(); + vcolorExt = externalColor; + ${e.instancedColor?"vcolorExt *= instanceColor * 0.003921568627451;":""} + vcolorExt *= vvColor(); + vcolorExt *= getSymbolColor(); + forwardColorMixMode(); + + if (vcolorExt.a < ${I.H.float(A.b)}) { + gl_Position = vec4(1e38, 1e38, 1e38, 1.0); + } else { + vpos = getVertexInLocalOriginSpace(); + localvpos = vpos - view[3].xyz; + vpos = subtractOrigin(vpos); + vNormalWorld = dpNormal(vvLocalNormal(normalModel())); + vpos = addVerticalOffset(vpos, localOrigin); + gl_Position = transformPosition(proj, view, vpos); + ${e.offsetBackfaces?"gl_Position = offsetBackfacingClipPosition(gl_Position, vpos, vNormalWorld, cameraPosition);":""} + } + ${e.multipassEnabled?I.H`depth = (view * vec4(vpos, 1.0)).z;`:""} + forwardLinearDepth(); + forwardTextureCoordinates(); + } + `)),e.output===o.H_.Alpha&&(t.include(a.f5,e),t.include(E.z,e),t.include(x.l,e),F.uniforms.add(new R.p("opacity",(e=>e.opacity)),new R.p("layerOpacity",(e=>e.layerOpacity))),e.hasColorTexture&&F.uniforms.add(new N.A("tex",(e=>e.texture))),F.include(w.y),F.code.add(I.H` + void main() { + discardBySlice(vpos); + ${e.multipassEnabled?I.H`terrainDepthTest(depth);`:""} + ${e.hasColorTexture?I.H` + vec4 texColor = texture(tex, ${e.hasColorTextureTransform?I.H`colorUV`:I.H`vuv0`}); + ${e.textureAlphaPremultiplied?"texColor.rgb /= texColor.a;":""} + discardOrAdjustAlpha(texColor);`:I.H`vec4 texColor = vec4(1.0);`} + ${e.hasVertexColors?I.H`float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, int(colorMixMode));`:I.H`float opacity_ = layerOpacity * mixExternalOpacity(opacity, texColor.a, vcolorExt.a, int(colorMixMode));`} + + fragColor = vec4(opacity_); + } + `)),e.output===o.H_.Color&&(t.include(a.f5,e),t.include(g.XP,e),t.include(v.K,e),t.include(E.z,e),t.include(e.instancedDoublePrecision?y.hb:y.XE,e),t.include(x.l,e),(0,C.hY)(t.fragment,e),(0,_.Pe)(F),(0,g.PN)(F),(0,g.sC)(F),F.uniforms.add(r.uniforms.get("localOrigin"),r.uniforms.get("view"),new M.J("ambient",(e=>e.ambient)),new M.J("diffuse",(e=>e.diffuse)),new R.p("opacity",(e=>e.opacity)),new R.p("layerOpacity",(e=>e.layerOpacity))),e.hasColorTexture&&F.uniforms.add(new N.A("tex",(e=>e.texture))),t.include(b.jV,e),t.include(T.T,e),F.include(w.y),(0,_.F1)(F),F.code.add(I.H` + void main() { + discardBySlice(vpos); + ${e.multipassEnabled?I.H`terrainDepthTest(depth);`:""} + ${e.hasColorTexture?I.H` + vec4 texColor = texture(tex, ${e.hasColorTextureTransform?I.H`colorUV`:I.H`vuv0`}); + ${e.textureAlphaPremultiplied?"texColor.rgb /= texColor.a;":""} + discardOrAdjustAlpha(texColor);`:I.H`vec4 texColor = vec4(1.0);`} + vec3 viewDirection = normalize(vpos - cameraPosition); + ${e.pbrMode===b.f7.Normal?"applyPBRFactors();":""} + float ssao = evaluateAmbientOcclusionInverse(); + ssao *= getBakedOcclusion(); + + float additionalAmbientScale = additionalDirectedAmbientLight(vpos + localOrigin); + vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor; + ${e.receiveShadows?"float shadow = readShadowMap(vpos, linearDepth);":e.spherical?"float shadow = lightingGlobalFactor * (1.0 - additionalAmbientScale);":"float shadow = 0.0;"} + vec3 matColor = max(ambient, diffuse); + ${e.hasVertexColors?I.H` + vec3 albedo = mixExternalColor(vColor.rgb * matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode)); + float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, int(colorMixMode));`:I.H` + vec3 albedo = mixExternalColor(matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode)); + float opacity_ = layerOpacity * mixExternalOpacity(opacity, texColor.a, vcolorExt.a, int(colorMixMode));`} + ${e.snowCover?I.H`albedo = mix(albedo, vec3(1), 0.9);`:I.H``} + ${I.H` + vec3 shadingNormal = normalize(vNormalWorld); + albedo *= 1.2; + vec3 viewForward = vec3(view[0][2], view[1][2], view[2][2]); + float alignmentLightView = clamp(dot(viewForward, -mainLightDirection), 0.0, 1.0); + float transmittance = 1.0 - clamp(dot(viewForward, shadingNormal), 0.0, 1.0); + float treeRadialFalloff = vColor.r; + float backLightFactor = 0.5 * treeRadialFalloff * alignmentLightView * transmittance * (1.0 - shadow); + additionalLight += backLightFactor * mainLightIntensity;`} + ${e.pbrMode===b.f7.Normal||e.pbrMode===b.f7.Schematic?e.spherical?I.H`vec3 normalGround = normalize(vpos + localOrigin);`:I.H`vec3 normalGround = vec3(0.0, 0.0, 1.0);`:I.H``} + ${e.pbrMode===b.f7.Normal||e.pbrMode===b.f7.Schematic?I.H` + float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2]; + ${e.snowCover?I.H` + mrr = vec3(0.0, 1.0, 0.04); + emission = vec3(0.0);`:""} + + vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);`:I.H`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`} + fragColor = highlightSlice(vec4(shadedColor, opacity_), vpos); + ${e.transparencyPassType===H.A.Color?I.H`fragColor = premultiplyAlpha(fragColor);`:I.H``} + } + `)),t.include(p.s,e),t}const D=Object.freeze(Object.defineProperty({__proto__:null,build:F},Symbol.toStringTag,{value:"Module"}))},91800:function(e,t,r){r.d(t,{S:function(){return g},b:function(){return m},g:function(){return p}});var n=r(36531),i=r(84164),o=r(55208),a=r(31227),s=r(77334),l=r(93072),c=r(24603),u=r(23410),d=r(3961),h=r(15176);const f=16;function m(){const e=new d.kG,t=e.fragment;return e.include(o.k),e.include(s.GZ),t.include(a.K),t.uniforms.add(new c.p("radius",((e,t)=>p(t.camera)))),t.code.add(u.H`vec3 sphere[16] = vec3[16]( +vec3(0.186937, 0.0, 0.0), +vec3(0.700542, 0.0, 0.0), +vec3(-0.864858, -0.481795, -0.111713), +vec3(-0.624773, 0.102853, -0.730153), +vec3(-0.387172, 0.260319, 0.007229), +vec3(-0.222367, -0.642631, -0.707697), +vec3(-0.01336, -0.014956, 0.169662), +vec3(0.122575, 0.1544, -0.456944), +vec3(-0.177141, 0.85997, -0.42346), +vec3(-0.131631, 0.814545, 0.524355), +vec3(-0.779469, 0.007991, 0.624833), +vec3(0.308092, 0.209288,0.35969), +vec3(0.359331, -0.184533, -0.377458), +vec3(0.192633, -0.482999, -0.065284), +vec3(0.233538, 0.293706, -0.055139), +vec3(0.417709, -0.386701, 0.442449) +); +float fallOffFunction(float vv, float vn, float bias) { +float f = max(radius * radius - vv, 0.0); +return f * f * f * max(vn - bias, 0.0); +}`),t.code.add(u.H`float aoValueFromPositionsAndNormal(vec3 C, vec3 n_C, vec3 Q) { +vec3 v = Q - C; +float vv = dot(v, v); +float vn = dot(normalize(v), n_C); +return fallOffFunction(vv, vn, 0.1); +}`),t.uniforms.add(new l.A("nearFar",((e,t)=>t.camera.nearFar)),new h.A("normalMap",(e=>e.normalTexture)),new h.A("depthMap",(e=>e.depthTexture)),new c.p("projScale",(e=>e.projScale)),new h.A("rnm",(e=>e.noiseTexture)),new l.A("rnmScale",((e,t)=>(0,n.t8)(v,t.camera.fullWidth/e.noiseTexture.descriptor.width,t.camera.fullHeight/e.noiseTexture.descriptor.height))),new c.p("intensity",(e=>e.intensity)),new l.A("screenSize",((e,t)=>(0,n.t8)(v,t.camera.fullWidth,t.camera.fullHeight)))),e.outputs.add("fragOcclusion","float"),t.code.add(u.H` + void main(void) { + float currentPixelDepth = linearDepthFromTexture(depthMap, uv, nearFar); + + if (-currentPixelDepth > nearFar.y || -currentPixelDepth < nearFar.x) { + fragOcclusion = 1.0; + return; + } + + // get the normal of current fragment + vec4 norm4 = texture(normalMap, uv); + if(norm4.a != 1.0) { + fragOcclusion = 1.0; + return; + } + vec3 norm = vec3(-1.0) + 2.0 * norm4.xyz; + + vec3 currentPixelPos = reconstructPosition(gl_FragCoord.xy, currentPixelDepth); + + float sum = 0.0; + vec3 tapPixelPos; + + vec3 fres = normalize(2.0 * texture(rnm, uv * rnmScale).xyz - 1.0); + + // note: the factor 2.0 should not be necessary, but makes ssao much nicer. + // bug or deviation from CE somewhere else? + float ps = projScale / (2.0 * currentPixelPos.z * zScale.x + zScale.y); + + for(int i = 0; i < ${u.H.int(f)}; ++i) { + vec2 unitOffset = reflect(sphere[i], fres).xy; + vec2 offset = vec2(-unitOffset * radius * ps); + + // don't use current or very nearby samples + if( abs(offset.x) < 2.0 || abs(offset.y) < 2.0){ + continue; + } + + vec2 tc = vec2(gl_FragCoord.xy + offset); + if (tc.x < 0.0 || tc.y < 0.0 || tc.x > screenSize.x || tc.y > screenSize.y) continue; + vec2 tcTap = tc / screenSize; + float occluderFragmentDepth = linearDepthFromTexture(depthMap, tcTap, nearFar); + + tapPixelPos = reconstructPosition(tc, occluderFragmentDepth); + + sum += aoValueFromPositionsAndNormal(currentPixelPos, norm, tapPixelPos); + } + + // output the result + float A = max(1.0 - sum * intensity / float(${u.H.int(f)}), 0.0); + + // Anti-tone map to reduce contrast and drag dark region farther: (x^0.2 + 1.2 * x^4) / 2.2 + A = (pow(A, 0.2) + 1.2 * A*A*A*A) / 2.2; + + fragOcclusion = A; + } + `),e}function p(e){return Math.max(10,20*e.computeScreenPixelSizeAtDist(Math.abs(4*e.relativeElevation)))}const v=(0,i.Ue)(),g=Object.freeze(Object.defineProperty({__proto__:null,build:m,getRadius:p},Symbol.toStringTag,{value:"Module"}))},24756:function(e,t,r){r.d(t,{S:function(){return p},b:function(){return m}});var n=r(86717),i=r(55208),o=r(31227),a=r(26482),s=r(93072),l=r(24603),c=r(23410),u=r(3961),d=r(37649),h=r(15176);const f=4;function m(){const e=new u.kG,t=e.fragment;e.include(i.k);const r=(f+1)/2,m=1/(2*r*r);return t.include(o.K),t.uniforms.add(new h.A("depthMap",(e=>e.depthTexture)),new d.R("tex",(e=>e.colorTexture)),new a.q("blurSize",(e=>e.blurSize)),new l.p("projScale",((e,t)=>{const r=(0,n.q)(t.camera.eye,t.camera.center);return r>5e4?Math.max(0,e.projScale-(r-5e4)):e.projScale})),new s.A("nearFar",((e,t)=>t.camera.nearFar))),t.code.add(c.H` + void blurFunction(vec2 uv, float r, float center_d, float sharpness, inout float wTotal, inout float bTotal) { + float c = texture(tex, uv).r; + float d = linearDepthFromTexture(depthMap, uv, nearFar); + + float ddiff = d - center_d; + + float w = exp(-r * r * ${c.H.float(m)} - ddiff * ddiff * sharpness); + wTotal += w; + bTotal += w * c; + } + `),e.outputs.add("fragBlur","float"),t.code.add(c.H` + void main(void) { + float b = 0.0; + float w_total = 0.0; + + float center_d = linearDepthFromTexture(depthMap, uv, nearFar); + + float sharpness = -0.05 * projScale / center_d; + for (int r = -${c.H.int(f)}; r <= ${c.H.int(f)}; ++r) { + float rf = float(r); + vec2 uvOffset = uv + rf * blurSize; + blurFunction(uvOffset, rf, center_d, sharpness, w_total, b); + } + + fragBlur = b / w_total; + } + `),e}const p=Object.freeze(Object.defineProperty({__proto__:null,build:m},Symbol.toStringTag,{value:"Module"}))},91917:function(e,t,r){r.d(t,{a:function(){return x},b:function(){return T},c:function(){return v},f:function(){return y},g:function(){return b},j:function(){return C},n:function(){return H}});r(39994);var n=r(13802),i=r(19431),o=r(32114),a=r(86717),s=r(81095),l=r(56999),c=r(52721),u=r(40201),d=r(19546),h=r(97537),f=r(5700),m=r(68817);const p=v();function v(){return(0,c.Ue)()}const g=l.e,_=l.e;function x(e,t){return(0,l.c)(t,e)}function T(e){return e[3]}function b(e){return e}function y(e,t,r,n){return(0,c.al)(e,t,r,n)}function S(e,t,r){if(null==t)return!1;if(!E(e,t,A))return!1;let{t0:n,t1:i}=A;if((n<0||i0)&&(n=i),n<0)return!1;if(r){const{origin:e,direction:i}=t;r[0]=e[0]+i[0]*n,r[1]=e[1]+i[1]*n,r[2]=e[2]+i[2]*n}return!0}const A={t0:0,t1:0};function E(e,t,r){const{origin:n,direction:i}=t,o=w;o[0]=n[0]-e[0],o[1]=n[1]-e[1],o[2]=n[2]-e[2];const a=i[0]*i[0]+i[1]*i[1]+i[2]*i[2];if(0===a)return!1;const s=2*(i[0]*o[0]+i[1]*o[1]+i[2]*o[2]),l=s*s-4*a*(o[0]*o[0]+o[1]*o[1]+o[2]*o[2]-e[3]*e[3]);if(l<0)return!1;const c=Math.sqrt(l);return r.t0=(-s-c)/(2*a),r.t1=(-s+c)/(2*a),!0}const w=(0,s.Ue)();function C(e,t){return S(e,t,null)}function M(e,t,r){const n=m.WM.get(),i=m.MP.get();(0,a.b)(n,t.origin,t.direction);const s=T(e);(0,a.b)(r,n,t.origin),(0,a.h)(r,r,1/(0,a.l)(r)*s);const l=R(e,t.origin),c=(0,f.EU)(t.origin,r);return(0,o.Us)(i,c+l,n),(0,a.e)(r,r,i),r}function O(e,t,r){const n=(0,a.f)(m.WM.get(),t,e),i=(0,a.h)(m.WM.get(),n,e[3]/(0,a.l)(n));return(0,a.g)(r,i,e)}function R(e,t){const r=(0,a.f)(m.WM.get(),t,e),n=(0,a.l)(r),o=T(e),s=o+Math.abs(o-n);return(0,i.ZF)(o/s)}const I=(0,s.Ue)();function P(e,t,r,n){const o=(0,a.f)(I,t,e);switch(r){case d.R.X:{const e=(0,i.jE)(o,I)[2];return(0,a.s)(n,-Math.sin(e),Math.cos(e),0)}case d.R.Y:{const e=(0,i.jE)(o,I),t=e[1],r=e[2],s=Math.sin(t);return(0,a.s)(n,-s*Math.cos(r),-s*Math.sin(r),Math.cos(t))}case d.R.Z:return(0,a.n)(n,o);default:return}}function N(e,t){const r=(0,a.f)(L,t,e);return(0,a.l)(r)-e[3]}function H(e,t){const r=(0,a.a)(e,t),n=T(e);return r<=n*n}const L=(0,s.Ue)(),F=v();Object.freeze(Object.defineProperty({__proto__:null,NullSphere:p,altitudeAt:N,angleToSilhouette:R,axisAt:P,clear:function(e){e[0]=e[1]=e[2]=e[3]=0},closestPoint:function(e,t,r){return S(e,t,r)?r:((0,h.JI)(t,e,r),O(e,r,r))},closestPointOnSilhouette:M,containsPoint:H,copy:x,create:v,distanceToSilhouette:function(e,t){const r=(0,a.f)(m.WM.get(),t,e),n=(0,a.p)(r),i=e[3]*e[3];return Math.sqrt(Math.abs(n-i))},elevate:function(e,t,r){return e!==r&&(r[0]=e[0],r[1]=e[1],r[2]=e[2]),r[3]=e[3]+t,r},equals:_,exactEquals:g,fromCenterAndRadius:function(e,t){return(0,c.al)(e[0],e[1],e[2],t)},fromRadius:function(e,t){return e[0]=e[1]=e[2]=0,e[3]=t,e},fromValues:y,getCenter:b,getRadius:T,intersectLine:function(e,t,r){const n=(0,h.zk)(t,r);if(!E(e,n,A))return[];const{origin:i,direction:o}=n,{t0:l,t1:c}=A,d=t=>{const r=(0,s.Ue)();return(0,a.r)(r,i,o,t),O(e,r,r)};return Math.abs(l-c)<(0,u.bn)()?[d(l)]:[d(l),d(c)]},intersectRay:S,intersectRayClosestSilhouette:function(e,t,r){if(S(e,t,r))return r;const n=M(e,t,m.WM.get());return(0,a.g)(r,t.origin,(0,a.h)(m.WM.get(),t.direction,(0,a.q)(t.origin,n)/(0,a.l)(t.direction))),r},intersectsRay:C,projectPoint:O,setAltitudeAt:function(e,t,r,n){const i=N(e,t),o=P(e,t,d.R.Z,L),s=(0,a.h)(L,o,r-i);return(0,a.g)(n,t,s)},setExtent:function(e,t,r){return n.Z.getLogger("esri.geometry.support.sphere").error("sphere.setExtent is not yet supported"),e!==r&&x(e,r),r},tmpSphere:F,union:function(e,t,r=(0,c.Ue)()){const n=(0,a.q)(e,t),i=e[3],o=t[3];return n+o0){const t=1/Math.sqrt(c);e[a]=t*i,e[a+1]=t*s,e[a+2]=t*l}o+=n,a+=r}}Object.freeze(Object.defineProperty({__proto__:null,normalize:h,normalizeView:d,scale:c,scaleView:l,shiftRight:function(e,t,r){const n=Math.min(e.count,t.count),i=e.typedBuffer,o=e.typedBufferStride,a=t.typedBuffer,s=t.typedBufferStride;let l=0,c=0;for(let e=0;e>r,i[c+1]=a[l+1]>>r,i[c+2]=a[l+2]>>r,l+=s,c+=o},transformMat3:s,transformMat3View:a,transformMat4:o,transformMat4View:i,translate:u},Symbol.toStringTag,{value:"Module"}))},22445:function(e,t,r){r.d(t,{r:function(){return n}});class n{constructor(){this._outer=new Map}clear(){this._outer.clear()}get empty(){return 0===this._outer.size}get(e,t){return this._outer.get(e)?.get(t)}set(e,t,r){const n=this._outer.get(e);n?n.set(t,r):this._outer.set(e,new Map([[t,r]]))}delete(e,t){const r=this._outer.get(e);r&&(r.delete(t),0===r.size&&this._outer.delete(e))}forEach(e){this._outer.forEach(((t,r)=>e(t,r)))}}},19480:function(e,t,r){r.d(t,{x:function(){return i}});var n=r(66581);class i{constructor(e){this._allocator=e,this._items=[],this._itemsPtr=0,this._grow()}get(){return 0===this._itemsPtr&&(0,n.Y)((()=>this._reset())),this._itemsPtr===this._items.length&&this._grow(),this._items[this._itemsPtr++]}_reset(){const e=Math.min(3*Math.max(8,this._itemsPtr),this._itemsPtr+3*o);this._items.length=Math.min(e,this._items.length),this._itemsPtr=0}_grow(){for(let e=0;enull!=e?.match(t)))}function i(e,t){return e&&(t=t||globalThis.location.hostname)?null!=t.match(o)||null!=t.match(s)?e.replace("static.arcgis.com","staticdev.arcgis.com"):null!=t.match(a)||null!=t.match(l)?e.replace("static.arcgis.com","staticqa.arcgis.com"):e:e}r.d(t,{XO:function(){return n},pJ:function(){return i}});const o=/^devext.arcgis.com$/,a=/^qaext.arcgis.com$/,s=/^[\w-]*\.mapsdevext.arcgis.com$/,l=/^[\w-]*\.mapsqa.arcgis.com$/,c=[/^([\w-]*\.)?[\w-]*\.zrh-dev-local.esri.com$/,o,a,/^jsapps.esri.com$/,s,l]},31725:function(e,t,r){r.d(t,{xx:function(){return i}});var n=r(86098);function i(e,t=!1){return e<=n.c8?t?new Array(e).fill(0):new Array(e):new Float32Array(e)}},45150:function(e,t,r){r.d(t,{M:function(){return i}});var n=r(13802);const i=()=>n.Z.getLogger("esri.views.3d.support.buffer.math")},56215:function(e,t,r){r.d(t,{Jk:function(){return d},Ue:function(){return l},al:function(){return c},nF:function(){return h},zk:function(){return u}});var n=r(19431),i=r(19480),o=r(86717),a=r(81095),s=r(68817);function l(e){return e?{origin:(0,a.d9)(e.origin),vector:(0,a.d9)(e.vector)}:{origin:(0,a.Ue)(),vector:(0,a.Ue)()}}function c(e,t,r=l()){return(0,o.c)(r.origin,e),(0,o.c)(r.vector,t),r}function u(e,t,r=l()){return(0,o.c)(r.origin,e),(0,o.f)(r.vector,t,e),r}function d(e,t){const r=(0,o.f)(s.WM.get(),t,e.origin),i=(0,o.k)(e.vector,r),a=(0,o.k)(e.vector,e.vector),l=(0,n.uZ)(i/a,0,1),c=(0,o.f)(s.WM.get(),(0,o.h)(s.WM.get(),e.vector,l),r);return(0,o.k)(c,c)}function h(e,t,r){return function(e,t,r,i,a){const{vector:l,origin:c}=e,u=(0,o.f)(s.WM.get(),t,c),d=(0,o.k)(l,u)/(0,o.p)(l);return(0,o.h)(a,l,(0,n.uZ)(d,r,i)),(0,o.g)(a,a,e.origin)}(e,t,0,1,r)}(0,a.Ue)(),(0,a.Ue)(),new i.x((()=>l()))},97537:function(e,t,r){r.d(t,{JG:function(){return c},JI:function(){return h},Ue:function(){return a},al:function(){return d},re:function(){return l},zk:function(){return u}});r(7753);var n=r(19480),i=r(86717),o=r(81095);r(68817);function a(e){return e?s((0,o.d9)(e.origin),(0,o.d9)(e.direction)):s((0,o.Ue)(),(0,o.Ue)())}function s(e,t){return{origin:e,direction:t}}function l(e,t){const r=f.get();return r.origin=e,r.direction=t,r}function c(e,t=a()){return d(e.origin,e.direction,t)}function u(e,t,r=a()){return(0,i.c)(r.origin,e),(0,i.f)(r.direction,t,e),r}function d(e,t,r=a()){return(0,i.c)(r.origin,e),(0,i.c)(r.direction,t),r}function h(e,t,r){const n=(0,i.k)(e.direction,(0,i.f)(r,t,e.origin));return(0,i.g)(r,e.origin,(0,i.h)(r,e.direction,n)),r}const f=new n.x((()=>a()))},44883:function(e,t,r){r.d(t,{t:function(){return i}});var n=r(66341);async function i(e,t){const{data:r}=await(0,n.Z)(e,{responseType:"image",...t});return r}},61208:function(e,t,r){r.d(t,{fetch:function(){return Qt}});var n=r(57989),i=r(46332),o=r(3965),a=r(32114),s=r(3308),l=r(84164),c=r(86717),u=r(81095),d=r(37116),h=r(31725),f=r(81936),m=r(6766),p=r(88589),v=r(55709),g=r(14789),_=r(32101),x=r(91420),T=r(85636),b=r(1731),y=r(95970),S=r(45867);function A(e){if(null==e)return null;const t=null!=e.offset?e.offset:S.AG,r=null!=e.rotation?e.rotation:0,n=null!=e.scale?e.scale:S.hq,a=(0,o.al)(1,0,0,0,1,0,t[0],t[1],1),s=(0,o.al)(Math.cos(r),-Math.sin(r),0,Math.sin(r),Math.cos(r),0,0,0,1),l=(0,o.al)(n[0],0,0,0,n[1],0,0,0,1),c=(0,o.Ue)();return(0,i.Jp)(c,s,l),(0,i.Jp)(c,a,c),c}class E{constructor(){this.geometries=new Array,this.materials=new Array,this.textures=new Array}}class w{constructor(e,t,r){this.name=e,this.lodThreshold=t,this.pivotOffset=r,this.stageResources=new E,this.numberOfVertices=0}}var C=r(66341),M=r(67979),O=r(4745),R=r(70375),I=r(13802),P=r(22445),N=r(78668),H=r(26139),L=r(35914),F=r(44883),D=r(85799),B=r(70984),U=r(40526),z=r(39994),G=r(31355),V=r(61681),W=r(86098),j=r(3466),k=r(73401),q=r(36567);let J;var $;!function(e){e[e.ETC1_RGB=0]="ETC1_RGB",e[e.ETC2_RGBA=1]="ETC2_RGBA",e[e.BC1_RGB=2]="BC1_RGB",e[e.BC3_RGBA=3]="BC3_RGBA",e[e.BC4_R=4]="BC4_R",e[e.BC5_RG=5]="BC5_RG",e[e.BC7_M6_RGB=6]="BC7_M6_RGB",e[e.BC7_M5_RGBA=7]="BC7_M5_RGBA",e[e.PVRTC1_4_RGB=8]="PVRTC1_4_RGB",e[e.PVRTC1_4_RGBA=9]="PVRTC1_4_RGBA",e[e.ASTC_4x4_RGBA=10]="ASTC_4x4_RGBA",e[e.ATC_RGB=11]="ATC_RGB",e[e.ATC_RGBA=12]="ATC_RGBA",e[e.FXT1_RGB=17]="FXT1_RGB",e[e.PVRTC2_4_RGB=18]="PVRTC2_4_RGB",e[e.PVRTC2_4_RGBA=19]="PVRTC2_4_RGBA",e[e.ETC2_EAC_R11=20]="ETC2_EAC_R11",e[e.ETC2_EAC_RG11=21]="ETC2_EAC_RG11",e[e.RGBA32=13]="RGBA32",e[e.RGB565=14]="RGB565",e[e.BGR565=15]="BGR565",e[e.RGBA4444=16]="RGBA4444"}($||($={}));var Y=r(91907),X=r(71449),Z=r(62486);let K=null,Q=null;async function ee(){return null==Q&&(Q=function(){if(null==J){const e=e=>(0,q.V)(`esri/libs/basisu/${e}`);J=r.e(1681).then(r.bind(r,21681)).then((e=>e.b)).then((({default:t})=>t({locateFile:e}).then((e=>(e.initializeBasis(),delete e.then,e)))))}return J}(),K=await Q),Q}function te(e,t,r,n,i){const o=(0,Z.RG)(t?Y.q_.COMPRESSED_RGBA8_ETC2_EAC:Y.q_.COMPRESSED_RGB8_ETC2),a=i&&e>1?(4**e-1)/(3*4**(e-1)):1;return Math.ceil(r*n*o*a)}function re(e){return e.getNumImages()>=1&&!e.isUASTC()}function ne(e){return e.getFaces()>=1&&e.isETC1S()}function ie(e,t,r,n,i,o,a,s){const{compressedTextureETC:l,compressedTextureS3TC:c}=e.capabilities,[u,d]=l?n?[$.ETC2_RGBA,Y.q_.COMPRESSED_RGBA8_ETC2_EAC]:[$.ETC1_RGB,Y.q_.COMPRESSED_RGB8_ETC2]:c?n?[$.BC3_RGBA,Y.q_.COMPRESSED_RGBA_S3TC_DXT5_EXT]:[$.BC1_RGB,Y.q_.COMPRESSED_RGB_S3TC_DXT1_EXT]:[$.RGBA32,Y.VI.RGBA],h=t.hasMipmap?r:Math.min(1,r),f=[];for(let e=0;e1,t.samplingMode=t.hasMipmap?Y.cw.LINEAR_MIPMAP_LINEAR:Y.cw.LINEAR,t.width=i,t.height=o,new X.x(e,t,{type:"compressed",levels:f})}var oe=r(10107),ae=r(95399);const se=()=>I.Z.getLogger("esri.views.3d.webgl-engine.lib.DDSUtil"),le=542327876,ce=131072,ue=4;function de(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}const he=de("DXT1"),fe=de("DXT3"),me=de("DXT5"),pe=31,ve=0,ge=1,_e=2,xe=3,Te=4,be=7,ye=20,Se=21;function Ae(e,t){const r=new Int32Array(e,0,pe);if(r[ve]!==le)return se().error("Invalid magic number in DDS header"),null;if(!(r[ye]&ue))return se().error("Unsupported format, must contain a FourCC code"),null;const n=r[Se];let i,o;switch(n){case he:i=8,o=Y.q_.COMPRESSED_RGB_S3TC_DXT1_EXT;break;case fe:i=16,o=Y.q_.COMPRESSED_RGBA_S3TC_DXT3_EXT;break;case me:i=16,o=Y.q_.COMPRESSED_RGBA_S3TC_DXT5_EXT;break;default:return se().error("Unsupported FourCC code:",function(e){return String.fromCharCode(255&e,e>>8&255,e>>16&255,e>>24&255)}(n)),null}let a=1,s=r[Te],l=r[xe];0==(3&s)&&0==(3&l)||(se().warn("Rounding up compressed texture size to nearest multiple of 4."),s=s+3&-4,l=l+3&-4);const c=s,u=l;let d,h;r[_e]&ce&&!1!==t&&(a=Math.max(1,r[be]));let f=r[ge]+4;const m=[];for(let t=0;t>2)*(l+3>>2)*i,d=new Uint8Array(e,f,h),m.push(d),f+=h,s=Math.max(1,s>>1),l=Math.max(1,l>>1);return{textureData:{type:"compressed",levels:m},internalFormat:o,width:c,height:u}}function Ee(e,t,r){if(e instanceof ImageData)return Ee(we(e),t,r);const n=document.createElement("canvas");return n.width=t,n.height=r,n.getContext("2d").drawImage(e,0,0,n.width,n.height),n}function we(e){const t=document.createElement("canvas");t.width=e.width,t.height=e.height;const r=t.getContext("2d");if(null==r)throw new R.Z("Failed to create 2d context from HTMLCanvasElement");return r.putImageData(e,0,0),t}var Ce,Me=r(15095),Oe=r(80479);class Re extends oe.c{get parameters(){return this._parameters}constructor(e,t){super(),this._data=e,this.type=ae.U.Texture,this._glTexture=null,this._loadingPromise=null,this._loadingController=null,this.events=new G.Z,this._parameters={...Pe,...t},this._startPreload(e)}dispose(){this.unload(),this._data=this.frameUpdate=void 0}_startPreload(e){null!=e&&(e instanceof HTMLVideoElement?(this.frameUpdate=t=>this._frameUpdate(e,t),this._startPreloadVideoElement(e)):e instanceof HTMLImageElement&&this._startPreloadImageElement(e))}_startPreloadVideoElement(e){if(!((0,j.jc)(e.src)||"auto"===e.preload&&e.crossOrigin)){e.preload="auto",e.crossOrigin="anonymous";const t=!e.paused;if(e.src=e.src,t&&e.autoplay){const t=()=>{e.removeEventListener("canplay",t),e.play()};e.addEventListener("canplay",t)}}}_startPreloadImageElement(e){(0,j.HK)(e.src)||(0,j.jc)(e.src)||e.crossOrigin||(e.crossOrigin="anonymous",e.src=e.src)}_createDescriptor(e){const t=new Oe.X;return t.wrapMode=this._parameters.wrap??Y.e8.REPEAT,t.flipped=!this._parameters.noUnpackFlip,t.samplingMode=this._parameters.mipmap?Y.cw.LINEAR_MIPMAP_LINEAR:Y.cw.LINEAR,t.hasMipmap=!!this._parameters.mipmap,t.preMultiplyAlpha=!!this._parameters.preMultiplyAlpha,t.maxAnisotropy=this._parameters.maxAnisotropy??(this._parameters.mipmap?e.parameters.maxMaxAnisotropy:1),t}get glTexture(){return this._glTexture}get memoryEstimate(){return this._glTexture?.usedMemory||function(e,t){if(null==e)return 0;if((0,W.eP)(e)||(0,W.lq)(e))return t.encoding===B.Ti.KTX2_ENCODING?function(e,t){if(null==K)return e.byteLength;const r=new K.KTX2File(new Uint8Array(e)),n=ne(r)?te(r.getLevels(),r.getHasAlpha(),r.getWidth(),r.getHeight(),t):0;return r.close(),r.delete(),n}(e,!!t.mipmap):t.encoding===B.Ti.BASIS_ENCODING?function(e,t){if(null==K)return e.byteLength;const r=new K.BasisFile(new Uint8Array(e)),n=re(r)?te(r.getNumLevels(0),r.getHasAlpha(),r.getImageWidth(0,0),r.getImageHeight(0,0),t):0;return r.close(),r.delete(),n}(e,!!t.mipmap):e.byteLength;const{width:r,height:n}=e instanceof Image||e instanceof ImageData||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement?Ie(e):t;return(t.mipmap?4/3:1)*r*n*(t.components||4)||0}(this._data,this._parameters)}load(e){if(this._glTexture)return this._glTexture;if(this._loadingPromise)return this._loadingPromise;const t=this._data;return null==t?(this._glTexture=new X.x(e,this._createDescriptor(e),null),this._glTexture):(this._parameters.reloadable||(this._data=void 0),"string"==typeof t?this._loadFromURL(e,t):t instanceof Image?this._loadFromImageElement(e,t):t instanceof HTMLVideoElement?this._loadFromVideoElement(e,t):t instanceof ImageData||t instanceof HTMLCanvasElement?this._loadFromImage(e,t):((0,W.eP)(t)||(0,W.lq)(t))&&this._parameters.encoding===B.Ti.DDS_ENCODING?this._loadFromDDSData(e,t):((0,W.eP)(t)||(0,W.lq)(t))&&this._parameters.encoding===B.Ti.KTX2_ENCODING?this._loadFromKTX2(e,t):((0,W.eP)(t)||(0,W.lq)(t))&&this._parameters.encoding===B.Ti.BASIS_ENCODING?this._loadFromBasis(e,t):(0,W.lq)(t)?this._loadFromPixelData(e,t):(0,W.eP)(t)?this._loadFromPixelData(e,new Uint8Array(t)):null)}_frameUpdate(e,t){return null==this._glTexture||e.readyState1?Y.cw.LINEAR_MIPMAP_LINEAR:Y.cw.LINEAR,t.hasMipmap=i.levels.length>1,t.internalFormat=o,t.width=a,t.height=s,new X.x(e,t,i)}(e,this._createDescriptor(e),t),this._glTexture}_loadFromKTX2(e,t){return this._loadAsync((()=>async function(e,t,r){null==K&&(K=await ee());const n=new K.KTX2File(new Uint8Array(r));if(!ne(n))return null;n.startTranscoding();const i=ie(e,t,n.getLevels(),n.getHasAlpha(),n.getWidth(),n.getHeight(),((e,t)=>n.getImageTranscodedSizeInBytes(e,0,0,t)),((e,t,r)=>n.transcodeImage(r,e,0,0,t,0,-1,-1)));return n.close(),n.delete(),i}(e,this._createDescriptor(e),t).then((e=>(this._glTexture=e,e)))))}_loadFromBasis(e,t){return this._loadAsync((()=>async function(e,t,r){null==K&&(K=await ee());const n=new K.BasisFile(new Uint8Array(r));if(!re(n))return null;n.startTranscoding();const i=ie(e,t,n.getNumLevels(0),n.getHasAlpha(),n.getImageWidth(0,0),n.getImageHeight(0,0),((e,t)=>n.getImageTranscodedSizeInBytes(0,e,t)),((e,t,r)=>n.transcodeImage(r,0,e,t,0,0)));return n.close(),n.delete(),i}(e,this._createDescriptor(e),t).then((e=>(this._glTexture=e,e)))))}_loadFromPixelData(e,t){(0,Me.hu)(this._parameters.width>0&&this._parameters.height>0);const r=this._createDescriptor(e);return r.pixelFormat=1===this._parameters.components?Y.VI.LUMINANCE:3===this._parameters.components?Y.VI.RGB:Y.VI.RGBA,r.width=this._parameters.width??0,r.height=this._parameters.height??0,this._glTexture=new X.x(e,r,t),this._glTexture}_loadFromURL(e,t){return this._loadAsync((async r=>{const n=await(0,F.t)(t,{signal:r});return(0,N.k_)(r),this._loadFromImage(e,n)}))}_loadFromImageElement(e,t){return t.complete?this._loadFromImage(e,t):this._loadAsync((async r=>{const n=await(0,k.fY)(t,t.src,!1,r);return(0,N.k_)(r),this._loadFromImage(e,n)}))}_loadFromVideoElement(e,t){return t.readyState>=Ce.HAVE_CURRENT_DATA?this._loadFromImage(e,t):this._loadFromVideoElementAsync(e,t)}_loadFromVideoElementAsync(e,t){return this._loadAsync((r=>new Promise(((n,i)=>{const o=()=>{t.removeEventListener("loadeddata",a),t.removeEventListener("error",s),(0,V.hw)(l)},a=()=>{t.readyState>=Ce.HAVE_CURRENT_DATA&&(o(),n(this._loadFromImage(e,t)))},s=e=>{o(),i(e||new R.Z("Failed to load video"))};t.addEventListener("loadeddata",a),t.addEventListener("error",s);const l=(0,N.fu)(r,(()=>s((0,N.zE)())))}))))}_loadFromImage(e,t){let r=t;if(!(r instanceof HTMLVideoElement)){const{maxTextureSize:t}=e.parameters;r=this._parameters.downsampleUncompressed?function(e,t){let r=e.width*e.height;if(r<4096)return e instanceof ImageData?we(e):e;let n=e.width,i=e.height;do{n=Math.ceil(n/2),i=Math.ceil(i/2),r=n*i}while(r>1048576||null!=t&&(n>t||i>t));return Ee(e,n,i)}(r,t):function(e,t){const r=Math.max(e.width,e.height);if(r<=t)return e;const n=t/r;return Ee(e,Math.round(e.width*n),Math.round(e.height*n))}(r,t)}const n=Ie(r);this._parameters.width=n.width,this._parameters.height=n.height;const i=this._createDescriptor(e);return i.pixelFormat=3===this._parameters.components?Y.VI.RGB:Y.VI.RGBA,i.width=n.width,i.height=n.height,this._glTexture=new X.x(e,i,r),this._glTexture}_loadAsync(e){const t=new AbortController;this._loadingController=t;const r=e(t.signal);this._loadingPromise=r;const n=()=>{this._loadingController===t&&(this._loadingController=null),this._loadingPromise===r&&(this._loadingPromise=null)};return r.then(n,n),r}unload(){if(this._glTexture=(0,V.M2)(this._glTexture),null!=this._loadingController){const e=this._loadingController;this._loadingController=null,this._loadingPromise=null,e.abort()}this.events.emit("unloaded")}}function Ie(e){return e instanceof HTMLVideoElement?{width:e.videoWidth,height:e.videoHeight}:e}!function(e){e[e.HAVE_NOTHING=0]="HAVE_NOTHING",e[e.HAVE_METADATA=1]="HAVE_METADATA",e[e.HAVE_CURRENT_DATA=2]="HAVE_CURRENT_DATA",e[e.HAVE_FUTURE_DATA=3]="HAVE_FUTURE_DATA",e[e.HAVE_ENOUGH_DATA=4]="HAVE_ENOUGH_DATA"}(Ce||(Ce={}));const Pe={wrap:{s:Y.e8.REPEAT,t:Y.e8.REPEAT},mipmap:!0,noUnpackFlip:!1,preMultiplyAlpha:!1,downsampleUncompressed:!1};var Ne=r(21414),He=r(65684),Le=r(44685),Fe=r(35031),De=r(7792),Be=r(2833),Ue=r(3864),ze=r(97009),Ge=r(90160),Ve=r(12045),We=r(46378),je=r(91917),ke=r(47850);const qe=new class{constructor(e=0){this.offset=e,this.sphere=(0,je.c)(),this.tmpVertex=(0,u.Ue)()}applyToVertex(e,t,r){const n=this.objectTransform.transform,i=(0,c.s)(Je,e,t,r),o=(0,c.e)(i,i,n),a=this.offset/(0,c.l)(o);(0,c.r)(o,o,o,a);const s=this.objectTransform.inverse;return(0,c.e)(this.tmpVertex,o,s),this.tmpVertex}applyToMinMax(e,t){const r=this.offset/(0,c.l)(e);(0,c.r)(e,e,e,r);const n=this.offset/(0,c.l)(t);(0,c.r)(t,t,t,n)}applyToAabb(e){const t=this.offset/Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]+=e[0]*t,e[1]+=e[1]*t,e[2]+=e[2]*t;const r=this.offset/Math.sqrt(e[3]*e[3]+e[4]*e[4]+e[5]*e[5]);return e[3]+=e[3]*r,e[4]+=e[4]*r,e[5]+=e[5]*r,e}applyToBoundingSphere(e){const t=(0,c.l)((0,je.g)(e)),r=this.offset/t;return(0,c.r)((0,je.g)(this.sphere),(0,je.g)(e),(0,je.g)(e),r),this.sphere[3]=e[3]+e[3]*this.offset/t,this.sphere}};new class{constructor(e=0){this.componentLocalOriginLength=0,this._totalOffset=0,this._offset=0,this._tmpVertex=(0,u.Ue)(),this._tmpMbs=(0,je.c)(),this._tmpObb=new ke.Oo,this._resetOffset(e)}_resetOffset(e){this._offset=e,this._totalOffset=e}set offset(e){this._resetOffset(e)}get offset(){return this._offset}set componentOffset(e){this._totalOffset=this._offset+e}set localOrigin(e){this.componentLocalOriginLength=(0,c.l)(e)}applyToVertex(e,t,r){const n=(0,c.s)(Je,e,t,r),i=(0,c.s)($e,e,t,r+this.componentLocalOriginLength),o=this._totalOffset/(0,c.l)(i);return(0,c.r)(this._tmpVertex,n,i,o),this._tmpVertex}applyToAabb(e){const t=this.componentLocalOriginLength,r=e[0],n=e[1],i=e[2]+t,o=e[3],a=e[4],s=e[5]+t,l=Math.abs(r),c=Math.abs(n),u=Math.abs(i),d=Math.abs(o),h=Math.abs(a),f=Math.abs(s),m=.5*(1+Math.sign(r*o))*Math.min(l,d),p=.5*(1+Math.sign(n*a))*Math.min(c,h),v=.5*(1+Math.sign(i*s))*Math.min(u,f),g=Math.max(l,d),_=Math.max(c,h),x=Math.max(u,f),T=Math.sqrt(m*m+p*p+v*v),b=Math.sign(l+r),y=Math.sign(c+n),S=Math.sign(u+i),A=Math.sign(d+o),E=Math.sign(h+a),w=Math.sign(f+s),C=this._totalOffset;if(T{const r=this.applyToVertex(t[0],t[1],t[2]);for(let t=0;t<3;++t)e[t]=Math.min(e[t],r[t]),e[t+3]=Math.max(e[t+3],r[t])};for(let e=1;e<8;++e){for(let i=0;i<3;++i)n[i]=0==(e&1<{S=o[e]+T,A=o[e+1]+b,E=o[e+2]+y}:e=>{const t=o[e],r=o[e+1],n=o[e+2];S=d*t+m*r+g*n+T,A=h*t+p*r+_*n+b,E=f*t+v*r+x*n+y};if(1===i)for(let e=0;e{A=o[e],E=o[e+1],w=o[e+2]}:e=>{const t=o[e],r=o[e+1],n=o[e+2];A=h*t+p*r+_*n,E=f*t+v*r+x*n,w=m*t+g*r+T*n};if(1===i)if(b)for(let e=0;ey){const e=1/Math.sqrt(t);c[n]=A*e,c[n+1]=E*e,c[n+2]=w*e}else c[n]=A,c[n+1]=E,c[n+2]=w;n+=u}else for(let e=0;ey){const t=1/Math.sqrt(e);A*=t,E*=t,w*=t}}for(let e=0;ey){const t=1/Math.sqrt(e);d*=t,A*=t,E*=t}}c[n]=d,c[n+1]=A,c[n+2]=E,c[n+3]=l,n+=u}else for(let e=0;ey){const t=1/Math.sqrt(e);A*=t,E*=t,w*=t}}for(let e=0;er.e(1180).then(r.bind(r,1180))));var wt=r(36663),Ct=r(67197),Mt=r(99163),Ot=r(40017);class Rt extends Mt.PO{}(0,wt._)([(0,Ct.o)({constValue:!0})],Rt.prototype,"hasSliceHighlight",void 0),(0,wt._)([(0,Ct.o)({constValue:!1})],Rt.prototype,"hasSliceInVertexProgram",void 0),(0,wt._)([(0,Ct.o)({constValue:Ot.P.Pass})],Rt.prototype,"pbrTextureBindType",void 0);class It extends Rt{constructor(){super(...arguments),this.output=Fe.H_.Color,this.alphaDiscardMode=B.JJ.Opaque,this.doubleSidedMode=Be.q.None,this.pbrMode=Ue.f7.Disabled,this.cullFace=B.Vr.None,this.transparencyPassType=vt.A.NONE,this.normalType=De.r.Attribute,this.textureCoordinateType=at.N.None,this.customDepthTest=B.Gv.Less,this.spherical=!1,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.hasVerticalOffset=!1,this.hasSlicePlane=!1,this.hasSliceHighlight=!0,this.hasColorTexture=!1,this.hasMetallicRoughnessTexture=!1,this.hasEmissionTexture=!1,this.hasOcclusionTexture=!1,this.hasNormalTexture=!1,this.hasScreenSizePerspective=!1,this.hasVertexTangents=!1,this.hasOccludees=!1,this.multipassEnabled=!1,this.hasModelTransformation=!1,this.offsetBackfaces=!1,this.vvSize=!1,this.vvColor=!1,this.receiveShadows=!1,this.receiveAmbientOcclusion=!1,this.textureAlphaPremultiplied=!1,this.instanced=!1,this.instancedColor=!1,this.objectAndLayerIdColorInstanced=!1,this.instancedDoublePrecision=!1,this.doublePrecisionRequiresObfuscation=!1,this.writeDepth=!0,this.transparent=!1,this.enableOffset=!0,this.cullAboveGround=!1,this.snowCover=!1,this.hasColorTextureTransform=!1,this.hasEmissionTextureTransform=!1,this.hasNormalTextureTransform=!1,this.hasOcclusionTextureTransform=!1,this.hasMetallicRoughnessTextureTransform=!1}}(0,wt._)([(0,Ct.o)({count:Fe.H_.COUNT})],It.prototype,"output",void 0),(0,wt._)([(0,Ct.o)({count:B.JJ.COUNT})],It.prototype,"alphaDiscardMode",void 0),(0,wt._)([(0,Ct.o)({count:Be.q.COUNT})],It.prototype,"doubleSidedMode",void 0),(0,wt._)([(0,Ct.o)({count:Ue.f7.COUNT})],It.prototype,"pbrMode",void 0),(0,wt._)([(0,Ct.o)({count:B.Vr.COUNT})],It.prototype,"cullFace",void 0),(0,wt._)([(0,Ct.o)({count:vt.A.COUNT})],It.prototype,"transparencyPassType",void 0),(0,wt._)([(0,Ct.o)({count:De.r.COUNT})],It.prototype,"normalType",void 0),(0,wt._)([(0,Ct.o)({count:at.N.COUNT})],It.prototype,"textureCoordinateType",void 0),(0,wt._)([(0,Ct.o)({count:B.Gv.COUNT})],It.prototype,"customDepthTest",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"spherical",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasVertexColors",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasSymbolColors",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasVerticalOffset",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasSlicePlane",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasSliceHighlight",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasColorTexture",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasMetallicRoughnessTexture",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasEmissionTexture",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasOcclusionTexture",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasNormalTexture",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasScreenSizePerspective",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasVertexTangents",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasOccludees",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"multipassEnabled",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasModelTransformation",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"offsetBackfaces",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"vvSize",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"vvColor",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"receiveShadows",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"receiveAmbientOcclusion",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"textureAlphaPremultiplied",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"instanced",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"instancedColor",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"objectAndLayerIdColorInstanced",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"instancedDoublePrecision",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"doublePrecisionRequiresObfuscation",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"writeDepth",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"transparent",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"enableOffset",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"cullAboveGround",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"snowCover",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasColorTextureTransform",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasEmissionTextureTransform",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasNormalTextureTransform",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasOcclusionTextureTransform",void 0),(0,wt._)([(0,Ct.o)()],It.prototype,"hasMetallicRoughnessTextureTransform",void 0),(0,wt._)([(0,Ct.o)({constValue:!1})],It.prototype,"occlusionPass",void 0),(0,wt._)([(0,Ct.o)({constValue:!0})],It.prototype,"hasVvInstancing",void 0),(0,wt._)([(0,Ct.o)({constValue:!1})],It.prototype,"useCustomDTRExponentForWater",void 0),(0,wt._)([(0,Ct.o)({constValue:!1})],It.prototype,"supportsTextureAtlas",void 0),(0,wt._)([(0,Ct.o)({constValue:!0})],It.prototype,"useFillLights",void 0);var Pt=r(60926);class Nt extends At{initializeConfiguration(e,t){super.initializeConfiguration(e,t),t.hasMetallicRoughnessTexture=!1,t.hasEmissionTexture=!1,t.hasOcclusionTexture=!1,t.hasNormalTexture=!1,t.hasModelTransformation=!1,t.normalType=De.r.Attribute,t.doubleSidedMode=Be.q.WindingOrder,t.hasVertexTangents=!1}initializeProgram(e){return this._initializeProgram(e,Nt.shader)}}Nt.shader=new ct.J(Pt.R,(()=>r.e(6353).then(r.bind(r,56353))));class Ht extends Ge.F5{constructor(e){super(e,Ft),this.supportsEdges=!0,this.produces=new Map([[We.r.OPAQUE_MATERIAL,e=>((0,Fe.Jb)(e)||(0,Fe.Kr)(e))&&!this.parameters.transparent],[We.r.TRANSPARENT_MATERIAL,e=>((0,Fe.Jb)(e)||(0,Fe.Kr)(e))&&this.parameters.transparent&&this.parameters.writeDepth],[We.r.TRANSPARENT_DEPTH_WRITE_DISABLED_MATERIAL,e=>((0,Fe.Jb)(e)||(0,Fe.Kr)(e))&&this.parameters.transparent&&!this.parameters.writeDepth]]),this._configuration=new It,this._vertexBufferLayout=function(e){const t=(0,Le.U$)().vec3f(Ne.T.POSITION);return e.normalType===De.r.Compressed?t.vec2i16(Ne.T.NORMALCOMPRESSED,{glNormalized:!0}):t.vec3f(Ne.T.NORMAL),e.hasVertexTangents&&t.vec4f(Ne.T.TANGENT),(e.textureId||e.normalTextureId||e.metallicRoughnessTextureId||e.emissiveTextureId||e.occlusionTextureId)&&t.vec2f(Ne.T.UV0),e.hasVertexColors&&t.vec4u8(Ne.T.COLOR),e.hasSymbolColors&&t.vec4u8(Ne.T.SYMBOLCOLOR),(0,z.Z)("enable-feature:objectAndLayerId-rendering")&&t.vec4u8(Ne.T.OBJECTANDLAYERIDCOLOR),t}(this.parameters)}isVisibleForOutput(e){return e!==Fe.H_.Shadow&&e!==Fe.H_.ShadowExcludeHighlight&&e!==Fe.H_.ShadowHighlight||this.parameters.castShadows}isVisible(){const e=this.parameters;if(!super.isVisible()||0===e.layerOpacity)return!1;const{hasInstancedColor:t,hasVertexColors:r,hasSymbolColors:n,vvColor:i}=e,o="replace"===e.colorMixMode,a=e.opacity>0,s=e.externalColor&&e.externalColor[3]>0,l=t||i||n;return r&&l?o||a:r?o?s:a:l?o||a:o?s:a}getConfiguration(e,t){return this._configuration.output=e,this._configuration.hasNormalTexture=!!this.parameters.normalTextureId,this._configuration.hasColorTexture=!!this.parameters.textureId,this._configuration.hasVertexTangents=this.parameters.hasVertexTangents,this._configuration.instanced=this.parameters.isInstanced,this._configuration.instancedDoublePrecision=this.parameters.instancedDoublePrecision,this._configuration.vvSize=!!this.parameters.vvSize,this._configuration.hasVerticalOffset=null!=this.parameters.verticalOffset,this._configuration.hasScreenSizePerspective=null!=this.parameters.screenSizePerspective,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.hasSliceHighlight=this.parameters.hasSliceHighlight,this._configuration.alphaDiscardMode=this.parameters.textureAlphaMode,this._configuration.normalType=this.parameters.normalType,this._configuration.transparent=this.parameters.transparent,this._configuration.writeDepth=this.parameters.writeDepth,null!=this.parameters.customDepthTest&&(this._configuration.customDepthTest=this.parameters.customDepthTest),this._configuration.hasOccludees=this.parameters.hasOccludees,this._configuration.cullFace=this.parameters.hasSlicePlane?B.Vr.None:this.parameters.cullFace,this._configuration.multipassEnabled=t.multipassEnabled,this._configuration.cullAboveGround=t.multipassTerrain.cullAboveGround,this._configuration.hasModelTransformation=null!=this.parameters.modelTransformation,e!==Fe.H_.Color&&e!==Fe.H_.Alpha||(this._configuration.hasVertexColors=this.parameters.hasVertexColors,this._configuration.hasSymbolColors=this.parameters.hasSymbolColors,this.parameters.treeRendering?this._configuration.doubleSidedMode=Be.q.WindingOrder:this._configuration.doubleSidedMode=this.parameters.doubleSided&&"normal"===this.parameters.doubleSidedType?Be.q.View:this.parameters.doubleSided&&"winding-order"===this.parameters.doubleSidedType?Be.q.WindingOrder:Be.q.None,this._configuration.instancedColor=this.parameters.hasInstancedColor,this._configuration.receiveShadows=this.parameters.receiveShadows&&this.parameters.shadowMappingEnabled,this._configuration.receiveAmbientOcclusion=this.parameters.receiveAmbientOcclusion&&null!=t.ssao,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.textureAlphaPremultiplied=!!this.parameters.textureAlphaPremultiplied,this._configuration.pbrMode=this.parameters.usePBR?this.parameters.isSchematic?Ue.f7.Schematic:Ue.f7.Normal:Ue.f7.Disabled,this._configuration.hasMetallicRoughnessTexture=!!this.parameters.metallicRoughnessTextureId,this._configuration.hasEmissionTexture=!!this.parameters.emissiveTextureId,this._configuration.hasOcclusionTexture=!!this.parameters.occlusionTextureId,this._configuration.offsetBackfaces=!(!this.parameters.transparent||!this.parameters.offsetTransparentBackfaces),this._configuration.transparencyPassType=t.transparencyPassType,this._configuration.enableOffset=t.camera.relativeElevationI.Z.getLogger("esri.views.3d.layers.graphics.objectResourceUtils");async function kt(e,t){const r=await async function(e,t){const r=t?.streamDataRequester;if(r)return async function(e,t,r){const n=await(0,M.q6)(t.request(e,"json",r));if(!0===n.ok)return n.value;(0,N.r9)(n.error),qt(n.error.details.url)}(e,r,t);const n=await(0,M.q6)((0,C.Z)(e,t));if(!0===n.ok)return n.value.data;(0,N.r9)(n.error),qt(n.error)}(e,t),n=await async function(e,t){const r=new Array;for(const n in e){const i=e[n],o=i.images[0].data;if(!o){jt().warn("Externally referenced texture data is not yet supported");continue}const a=i.encoding+";base64,"+o,s="/textureDefinitions/"+n,l="rgba"===i.channels?i.alphaChannelUsage||"transparency":"none",c={noUnpackFlip:!0,wrap:{s:Y.e8.REPEAT,t:Y.e8.REPEAT},preMultiplyAlpha:Yt(l)!==B.JJ.Opaque},u=null!=t&&t.disableTextures?Promise.resolve(null):(0,F.t)(a,t);r.push(u.then((e=>({refId:s,image:e,parameters:c,alphaChannelUsage:l}))))}const n=await Promise.all(r),i={};for(const e of n)i[e.refId]=e;return i}(r.textureDefinitions??{},t);let i=0;for(const e in n)if(n.hasOwnProperty(e)){const t=n[e];i+=t?.image?t.image.width*t.image.height*4:0}return{resource:r,textures:n,size:i+(0,O.Ul)(r)}}function qt(e){throw new R.Z("",`Request for object resource failed: ${e}`)}function Jt(e){const t=e.params,r=t.topology;let n=!0;switch(t.vertexAttributes||(jt().warn("Geometry must specify vertex attributes"),n=!1),t.topology){case"PerAttributeArray":break;case"Indexed":case null:case void 0:{const e=t.faces;if(e){if(t.vertexAttributes)for(const r in t.vertexAttributes){const t=e[r];t?.values?(null!=t.valueType&&"UInt32"!==t.valueType&&(jt().warn(`Unsupported indexed geometry indices type '${t.valueType}', only UInt32 is currently supported`),n=!1),null!=t.valuesPerElement&&1!==t.valuesPerElement&&(jt().warn(`Unsupported indexed geometry values per element '${t.valuesPerElement}', only 1 is currently supported`),n=!1)):(jt().warn(`Indexed geometry does not specify face indices for '${r}' attribute`),n=!1)}}else jt().warn("Indexed geometries must specify faces"),n=!1;break}default:jt().warn(`Unsupported topology '${r}'`),n=!1}e.params.material||(jt().warn("Geometry requires material"),n=!1);const i=e.params.vertexAttributes;for(const e in i)i[e].values||(jt().warn("Geometries with externally defined attributes are not yet supported"),n=!1);return n}function $t(e){const t=(0,d.cS)();return e.forEach((e=>{const r=e.boundingInfo;null!=r&&((0,d.pp)(t,r.bbMin),(0,d.pp)(t,r.bbMax))})),t}function Yt(e){switch(e){case"mask":return B.JJ.Mask;case"maskAndTransparency":return B.JJ.MaskBlend;case"none":return B.JJ.Opaque;default:return B.JJ.Blend}}function Xt(e){const t=e.params;return{id:1,material:t.material,texture:t.texture,region:t.texture}}const Zt=new H.G(1,2,"wosr");var Kt=r(14634);async function Qt(e,t){const r=function(e){const t=e.match(/(.*\.(gltf|glb))(\?lod=([0-9]+))?$/);return t?{fileType:"gltf",url:t[1],specifiedLodIndex:null!=t[4]?Number(t[4]):null}:e.match(/(.*\.(json|json\.gz))$/)?{fileType:"wosr",url:e,specifiedLodIndex:null}:{fileType:"unknown",url:e,specifiedLodIndex:null}}((0,n.pJ)(e));if("wosr"===r.fileType){const e=await(t.cache?t.cache.loadWOSR(r.url,t):kt(r.url,t)),{engineResources:n,referenceBoundingBox:i}=function(e,t){const r=new Array,n=new Array,i=new Array,o=new P.r,a=e.resource,s=H.G.parse(a.version||"1.0","wosr");Zt.validate(s);const l=a.model.name,c=a.model.geometries,d=a.materialDefinitions??{},h=e.textures;let f=0;const m=new Map;for(let e=0;e{if("PerAttributeArray"===a.params.topology)return null;const t=a.params.faces;for(const r in t)if(r===e)return t[r].values;return null},g=l[Ne.T.POSITION],_=g.values.length/g.valuesPerElement;for(const e in l){const t=l[e],r=t.values,n=v(e)??(0,L.KF)(_);p.push([e,new D.a(r,n,t.valuesPerElement,!0)])}const x=s.texture,T=h&&h[x];if(T&&!m.has(x)){const{image:e,parameters:t}=T,r=new Re(e,t);n.push(r),m.set(x,r)}const b=m.get(x),y=b?b.id:void 0,S=s.material;let A=o.get(S,x);if(null==A){const e=d[S.substring(S.lastIndexOf("/")+1)].params;1===e.transparency&&(e.transparency=0);const r=T&&T.alphaChannelUsage,n=e.transparency>0||"transparency"===r||"maskAndTransparency"===r,i=T?Yt(T.alphaChannelUsage):void 0,a={ambient:(0,u.nI)(e.diffuse),diffuse:(0,u.nI)(e.diffuse),opacity:1-(e.transparency||0),transparent:n,textureAlphaMode:i,textureAlphaCutoff:.33,textureId:y,initTextureTransparent:!0,doubleSided:!0,cullFace:B.Vr.None,colorMixMode:e.externalColorMixMode||"tint",textureAlphaPremultiplied:T?.parameters.preMultiplyAlpha??!1};t?.materialParameters&&Object.assign(a,t.materialParameters),A=new Ht(a),o.set(S,x,A)}i.push(A);const E=new U.Z(A,p);f+=p.find((e=>e[0]===Ne.T.POSITION))?.[1]?.indices.length??0,r.push(E)}return{engineResources:[{name:l,stageResources:{textures:n,materials:i,geometries:r},pivotOffset:a.model.pivotOffset,numberOfVertices:f,lodThreshold:null}],referenceBoundingBox:$t(r)}}(e,t);return{lods:n,referenceBoundingBox:i,isEsriSymbolResource:!1,isWosr:!0}}const o=await(t.cache?t.cache.loadGLTF(r.url,t,!!t.usePBR):(0,T.Q)(new x.C(t.streamDataRequester),r.url,t,t.usePBR)),S=o.model.meta?.ESRI_proxyEllipsoid,E=o.meta.isEsriSymbolResource&&null!=S&&"EsriRealisticTreesStyle"===o.meta.ESRI_webstyle;E&&!o.customMeta.esriTreeRendering&&(o.customMeta.esriTreeRendering=!0,function(e,t){for(let r=0;r1&&(0,c.m)(m,m,d,s>-1?.2:Math.min(-4*s-3.8,1)),v[_]=m[0],v[_+1]=m[1],v[_+2]=m[2],_+=3,p[x]=255*u,p[x+1]=255*u,p[x+2]=255*u,p[x+3]=255,x+=4}i.attributes.normal=new f.ct(v),i.attributes.color=new f.mc(p)}}}(o,S));const C=!!t.usePBR,M=o.meta.isEsriSymbolResource?{usePBR:C,isSchematic:!1,treeRendering:E,mrrFactors:[...xt]}:{usePBR:C,isSchematic:!1,treeRendering:!1,mrrFactors:[...gt]},O={...t.materialParameters,treeRendering:E},{engineResources:R,referenceBoundingBox:I}=function(e,t,r,n){const o=e.model,a=new Array,s=new Map,x=new Map,T=o.lods.length,S=(0,d.cS)();return o.lods.forEach(((e,E)=>{const C=!0===n.skipHighLods&&(T>1&&0===E||T>3&&1===E)||!1===n.skipHighLods&&null!=n.singleLodIndex&&E!==n.singleLodIndex;if(C&&0!==E)return;const M=new w(e.name,e.lodThreshold,[0,0,0]);e.parts.forEach((e=>{const n=C?new Ht({}):function(e,t,r,n,i,o,a){const s=t.material+(t.attributes.normal?"_normal":"")+(t.attributes.color?"_color":"")+(t.attributes.texCoord0?"_texCoord0":"")+(t.attributes.tangent?"_tangent":""),d=e.materials.get(t.material),h=null!=t.attributes.texCoord0,f=null!=t.attributes.normal;if(null==d)return null;const m=function(e){switch(e){case"BLEND":return B.JJ.Blend;case"MASK":return B.JJ.Mask;case"OPAQUE":case null:case void 0:return B.JJ.Opaque}}(d.alphaMode);if(!o.has(s)){if(h){const t=(t,r=!1)=>{if(null!=t&&!a.has(t)){const n=e.textures.get(t);if(null!=n){const e=n.data;a.set(t,new Re((0,y.$A)(e)?e.data:e,{...n.parameters,preMultiplyAlpha:!(0,y.$A)(e)&&r,encoding:(0,y.$A)(e)&&null!=e.encoding?e.encoding:void 0}))}}};t(d.textureColor,m!==B.JJ.Opaque),t(d.textureNormal),t(d.textureOcclusion),t(d.textureEmissive),t(d.textureMetallicRoughness)}const r=d.color[0]**(1/Kt.j),p=d.color[1]**(1/Kt.j),v=d.color[2]**(1/Kt.j),g=d.emissiveFactor[0]**(1/Kt.j),_=d.emissiveFactor[1]**(1/Kt.j),x=d.emissiveFactor[2]**(1/Kt.j),T=null!=d.textureColor&&h?a.get(d.textureColor):null,b=function({normalTexture:e,metallicRoughnessTexture:t,metallicFactor:r,roughnessFactor:n,emissiveTexture:i,emissiveFactor:o,occlusionTexture:a}){return null==e&&null==t&&null==i&&(null==o||(0,c.j)(o,u.AG))&&null==a&&(null==n||1===n)&&(null==r||1===r)}({normalTexture:d.textureNormal,metallicRoughnessTexture:d.textureMetallicRoughness,metallicFactor:d.metallicFactor,roughnessFactor:d.roughnessFactor,emissiveTexture:d.textureEmissive,emissiveFactor:d.emissiveFactor,occlusionTexture:d.textureOcclusion}),S=null!=d.normalTextureTransform?.scale?d.normalTextureTransform?.scale:l.hq;o.set(s,new Ht({...n,transparent:m===B.JJ.Blend,customDepthTest:B.Gv.Lequal,textureAlphaMode:m,textureAlphaCutoff:d.alphaCutoff,diffuse:[r,p,v],ambient:[r,p,v],opacity:d.opacity,doubleSided:d.doubleSided,doubleSidedType:"winding-order",cullFace:d.doubleSided?B.Vr.None:B.Vr.Back,hasVertexColors:!!t.attributes.color,hasVertexTangents:!!t.attributes.tangent,normalType:f?De.r.Attribute:De.r.ScreenDerivative,castShadows:!0,receiveShadows:d.receiveShadows,receiveAmbientOcclusion:d.receiveAmbientOcclustion,textureId:null!=T?T.id:void 0,colorMixMode:d.colorMixMode,normalTextureId:null!=d.textureNormal&&h?a.get(d.textureNormal).id:void 0,textureAlphaPremultiplied:null!=T&&!!T.parameters.preMultiplyAlpha,occlusionTextureId:null!=d.textureOcclusion&&h?a.get(d.textureOcclusion).id:void 0,emissiveTextureId:null!=d.textureEmissive&&h?a.get(d.textureEmissive).id:void 0,metallicRoughnessTextureId:null!=d.textureMetallicRoughness&&h?a.get(d.textureMetallicRoughness).id:void 0,emissiveFactor:[g,_,x],mrrFactors:b?[..._t]:[d.metallicFactor,d.roughnessFactor,n.mrrFactors[2]],isSchematic:b,colorTextureTransformMatrix:A(d.colorTextureTransform),normalTextureTransformMatrix:A(d.normalTextureTransform),scale:[S[0],S[1]],occlusionTextureTransformMatrix:A(d.occlusionTextureTransform),emissiveTextureTransformMatrix:A(d.emissiveTextureTransform),metallicRoughnessTextureTransformMatrix:A(d.metallicRoughnessTextureTransform),...i}))}const p=o.get(s);if(r.stageResources.materials.push(p),h){const e=e=>{null!=e&&r.stageResources.textures.push(a.get(e))};e(d.textureColor),e(d.textureNormal),e(d.textureOcclusion),e(d.textureEmissive),e(d.textureMetallicRoughness)}return p}(o,e,M,t,r,s,x),{geometry:a,vertexCount:T}=function(e,t){const r=e.attributes.position.count,n=(0,b.p)(e.indices||r,e.primitiveType),o=(0,h.xx)(3*r),{typedBuffer:a,typedBufferStride:s}=e.attributes.position;(0,m.a)(o,a,e.transform,3,s);const l=[[Ne.T.POSITION,new D.a(o,n,3,!0)]];if(null!=e.attributes.normal){const t=(0,h.xx)(3*r),{typedBuffer:o,typedBufferStride:a}=e.attributes.normal;(0,i.XL)(er,e.transform),(0,m.b)(t,o,er,3,a),l.push([Ne.T.NORMAL,new D.a(t,n,3,!0)])}if(null!=e.attributes.tangent){const t=(0,h.xx)(4*r),{typedBuffer:o,typedBufferStride:a}=e.attributes.tangent;(0,i.XL)(er,e.transform),(0,p.t)(t,o,er,4,a),l.push([Ne.T.TANGENT,new D.a(t,n,4,!0)])}if(null!=e.attributes.texCoord0){const t=(0,h.xx)(2*r),{typedBuffer:i,typedBufferStride:o}=e.attributes.texCoord0;(0,v.n)(t,i,2,o),l.push([Ne.T.UV0,new D.a(t,n,2,!0)])}if(null!=e.attributes.color){const t=new Uint8Array(4*r);4===e.attributes.color.elementCount?e.attributes.color instanceof f.ek?(0,p.s)(t,e.attributes.color,255):e.attributes.color instanceof f.mc?(0,_.c)(t,e.attributes.color):e.attributes.color instanceof f.v6&&(0,p.s)(t,e.attributes.color,1/256):(t.fill(255),e.attributes.color instanceof f.ct?(0,m.s)(t,e.attributes.color,255,4):e.attributes.color instanceof f.ne?(0,g.c)(t,e.attributes.color.typedBuffer,4,e.attributes.color.typedBufferStride):e.attributes.color instanceof f.mw&&(0,m.s)(t,e.attributes.color,1/256,4)),l.push([Ne.T.COLOR,new D.a(t,n,4,!0)])}return{geometry:new U.Z(t,l),vertexCount:r}}(e,null!=n?n:new Ht({})),w=a.boundingInfo;null!=w&&0===E&&((0,d.pp)(S,w.bbMin),(0,d.pp)(S,w.bbMax)),null!=n&&(M.stageResources.geometries.push(a),M.numberOfVertices+=T)})),C||a.push(M)})),{engineResources:a,referenceBoundingBox:S}}(o,M,O,t.skipHighLods&&null==r.specifiedLodIndex?{skipHighLods:!0}:{skipHighLods:!1,singleLodIndex:r.specifiedLodIndex});return{lods:R,referenceBoundingBox:I,isEsriSymbolResource:o.meta.isEsriSymbolResource,isWosr:!1}}const er=(0,o.Ue)()},66352:function(e,t,r){r.d(t,{F5:function(){return o},a9:function(){return n}});var n,i;r(19431);function o(e){switch(e){case"multiply":default:return n.Multiply;case"ignore":return n.Ignore;case"replace":return n.Replace;case"tint":return n.Tint}}(i=n||(n={}))[i.Multiply=1]="Multiply",i[i.Ignore=2]="Ignore",i[i.Replace=3]="Replace",i[i.Tint=4]="Tint"},44685:function(e,t,r){r.d(t,{Gw:function(){return c},U$:function(){return l},pV:function(){return s}});var n=r(81936),i=r(90331),o=r(15095);class a{constructor(e,t){this.layout=e,this.buffer="number"==typeof t?new ArrayBuffer(t*e.stride):t;for(const t of e.fields.keys()){const r=e.fields.get(t);this[t]=new r.constructor(this.buffer,r.offset,this.stride)}}get stride(){return this.layout.stride}get count(){return this.buffer.byteLength/this.stride}get byteLength(){return this.buffer.byteLength}getField(e,t){const r=this[e];return r&&r.elementCount===t.ElementCount&&r.elementType===t.ElementType?r:null}slice(e,t){return new a(this.layout,this.buffer.slice(e*this.stride,t*this.stride))}copyFrom(e,t=0,r=0,n=e.count){const i=this.stride;if(i%4==0){const o=new Uint32Array(e.buffer,t*i,n*i/4);new Uint32Array(this.buffer,r*i,n*i/4).set(o)}else{const o=new Uint8Array(e.buffer,t*i,n*i);new Uint8Array(this.buffer,r*i,n*i).set(o)}return this}get usedMemory(){return this.byteLength}dispose(){}}class s{constructor(e=null){this._stride=0,this._lastAligned=0,this._fields=new Map,e&&(this._stride=e.stride,e.fields.forEach((e=>this._fields.set(e[0],{...e[1],constructor:h(e[1].constructor)}))))}vec2f(e,t){return this._appendField(e,n.Eu,t),this}vec2f64(e,t){return this._appendField(e,n.q6,t),this}vec3f(e,t){return this._appendField(e,n.ct,t),this}vec3f64(e,t){return this._appendField(e,n.fP,t),this}vec4f(e,t){return this._appendField(e,n.ek,t),this}vec4f64(e,t){return this._appendField(e,n.Cd,t),this}mat3f(e,t){return this._appendField(e,n.gK,t),this}mat3f64(e,t){return this._appendField(e,n.ey,t),this}mat4f(e,t){return this._appendField(e,n.bj,t),this}mat4f64(e,t){return this._appendField(e,n.O1,t),this}vec4u8(e,t){return this._appendField(e,n.mc,t),this}f32(e,t){return this._appendField(e,n.ly,t),this}f64(e,t){return this._appendField(e,n.oS,t),this}u8(e,t){return this._appendField(e,n.D_,t),this}u16(e,t){return this._appendField(e,n.av,t),this}i8(e,t){return this._appendField(e,n.Hz,t),this}vec2i8(e,t){return this._appendField(e,n.Vs,t),this}vec2i16(e,t){return this._appendField(e,n.or,t),this}vec2u8(e,t){return this._appendField(e,n.xA,t),this}vec4u16(e,t){return this._appendField(e,n.v6,t),this}u32(e,t){return this._appendField(e,n.Nu,t),this}_appendField(e,t,r){if(this._fields.has(e))return void(0,o.hu)(!1,`${e} already added to vertex buffer layout`);const n=t.ElementCount*(0,i.n1)(t.ElementType),a=this._stride;this._stride+=n,this._fields.set(e,{size:n,constructor:t,offset:a,optional:r})}createBuffer(e){return new a(this,e)}createView(e){return new a(this,e)}clone(){const e=new s;return e._stride=this._stride,e._fields=new Map,this._fields.forEach(((t,r)=>e._fields.set(r,t))),e.BufferType=this.BufferType,e}get stride(){if(this._lastAligned!==this._fields.size){let e=1;this._fields.forEach((t=>e=Math.max(e,(0,i.n1)(t.constructor.ElementType)))),this._stride=Math.floor((this._stride+e-1)/e)*e,this._lastAligned=this._fields.size}return this._stride}get fields(){return this._fields}}function l(){return new s}class c{constructor(e){this.fields=new Array,e.fields.forEach(((e,t)=>{const r={...e,constructor:d(e.constructor)};this.fields.push([t,r])})),this.stride=e.stride}}const u=[n.ly,n.Eu,n.ct,n.ek,n.gK,n.bj,n.oS,n.q6,n.fP,n.Cd,n.ey,n.O1,n.D_,n.xA,n.ne,n.mc,n.av,n.TS,n.mw,n.v6,n.Nu,n.qt,n.G5,n.hu,n.Hz,n.Vs,n.P_,n.ir,n.o7,n.or,n.n1,n.zO,n.Jj,n.wA,n.PP,n.TN];function d(e){return`${e.ElementType}_${e.ElementCount}`}function h(e){return f.get(e)}const f=new Map;u.forEach((e=>f.set(d(e),e)))},95650:function(e,t,r){r.d(t,{Zu:function(){return l},bA:function(){return c},qj:function(){return u}});var n=r(35031),i=r(62295),o=r(93072),a=r(23410);function s(e){e.varyings.add("linearDepth","float")}function l(e){e.vertex.uniforms.add(new o.A("nearFar",((e,t)=>t.camera.nearFar)))}function c(e){e.vertex.code.add(a.H`float calculateLinearDepth(vec2 nearFar,float z) { +return (-z - nearFar[0]) / (nearFar[1] - nearFar[0]); +}`)}function u(e,t){const{vertex:r}=e;switch(t.output){case n.H_.Color:if(t.receiveShadows)return s(e),void r.code.add(a.H`void forwardLinearDepth() { linearDepth = gl_Position.w; }`);break;case n.H_.LinearDepth:case n.H_.Shadow:case n.H_.ShadowHighlight:case n.H_.ShadowExcludeHighlight:return e.include(i.up,t),s(e),l(e),c(e),void r.code.add(a.H`void forwardLinearDepth() { +linearDepth = calculateLinearDepth(nearFar, vPosition_view.z); +}`)}r.code.add(a.H`void forwardLinearDepth() {}`)}},57218:function(e,t,r){r.d(t,{w:function(){return i}});var n=r(23410);function i(e){e.vertex.code.add(n.H`vec4 offsetBackfacingClipPosition(vec4 posClip, vec3 posWorld, vec3 normalWorld, vec3 camPosWorld) { +vec3 camToVert = posWorld - camPosWorld; +bool isBackface = dot(camToVert, normalWorld) > 0.0; +if (isBackface) { +posClip.z += 0.0000003 * posClip.w; +} +return posClip; +}`)}},55208:function(e,t,r){r.d(t,{k:function(){return o}});var n=r(23410),i=r(21414);function o(e,t=!0){e.attributes.add(i.T.POSITION,"vec2"),t&&e.varyings.add("uv","vec2"),e.vertex.code.add(n.H` + void main(void) { + gl_Position = vec4(position, 0.0, 1.0); + ${t?n.H`uv = position * 0.5 + vec2(0.5);`:""} + } + `)}},35031:function(e,t,r){var n;function i(e){return e===n.Shadow||e===n.ShadowHighlight||e===n.ShadowExcludeHighlight}function o(e){return function(e){return function(e){return s(e)||a(e)}(e)||e===n.LinearDepth}(e)||e===n.Normal}function a(e){return e===n.Highlight||e===n.ObjectAndLayerIdColor}function s(e){return e===n.Color||e===n.Alpha}r.d(t,{H_:function(){return n},Jb:function(){return o},Kr:function(){return i}}),function(e){e[e.Color=0]="Color",e[e.LinearDepth=1]="LinearDepth",e[e.Depth=2]="Depth",e[e.Normal=3]="Normal",e[e.Shadow=4]="Shadow",e[e.ShadowHighlight=5]="ShadowHighlight",e[e.ShadowExcludeHighlight=6]="ShadowExcludeHighlight",e[e.Highlight=7]="Highlight",e[e.Alpha=8]="Alpha",e[e.ObjectAndLayerIdColor=9]="ObjectAndLayerIdColor",e[e.CompositeColor=10]="CompositeColor",e[e.COUNT=11]="COUNT"}(n||(n={}))},5885:function(e,t,r){r.d(t,{f5:function(){return u}});var n=r(32114),i=r(3308),o=r(86717),a=r(81095),s=r(32006),l=(r(43036),r(23410));class c extends l.K{constructor(e){super(),this.slicePlaneLocalOrigin=e}}function u(e,t){d(e,t,new s.B("slicePlaneOrigin",((e,r)=>p(t,e,r))),new s.B("slicePlaneBasis1",((e,r)=>v(t,e,r,r.slicePlane?.basis1))),new s.B("slicePlaneBasis2",((e,r)=>v(t,e,r,r.slicePlane?.basis2))))}function d(e,t,...r){if(!t.hasSlicePlane){const r=l.H`#define rejectBySlice(_pos_) false +#define discardBySlice(_pos_) {} +#define highlightSlice(_color_, _pos_) (_color_)`;return t.hasSliceInVertexProgram&&e.vertex.code.add(r),void e.fragment.code.add(r)}t.hasSliceInVertexProgram&&e.vertex.uniforms.add(...r),e.fragment.uniforms.add(...r);const n=l.H`struct SliceFactors { +float front; +float side0; +float side1; +float side2; +float side3; +}; +SliceFactors calculateSliceFactors(vec3 pos) { +vec3 rel = pos - slicePlaneOrigin; +vec3 slicePlaneNormal = -cross(slicePlaneBasis1, slicePlaneBasis2); +float slicePlaneW = -dot(slicePlaneNormal, slicePlaneOrigin); +float basis1Len2 = dot(slicePlaneBasis1, slicePlaneBasis1); +float basis2Len2 = dot(slicePlaneBasis2, slicePlaneBasis2); +float basis1Dot = dot(slicePlaneBasis1, rel); +float basis2Dot = dot(slicePlaneBasis2, rel); +return SliceFactors( +dot(slicePlaneNormal, pos) + slicePlaneW, +-basis1Dot - basis1Len2, +basis1Dot - basis1Len2, +-basis2Dot - basis2Len2, +basis2Dot - basis2Len2 +); +} +bool sliceByFactors(SliceFactors factors) { +return factors.front < 0.0 +&& factors.side0 < 0.0 +&& factors.side1 < 0.0 +&& factors.side2 < 0.0 +&& factors.side3 < 0.0; +} +bool sliceEnabled() { +return dot(slicePlaneBasis1, slicePlaneBasis1) != 0.0; +} +bool sliceByPlane(vec3 pos) { +return sliceEnabled() && sliceByFactors(calculateSliceFactors(pos)); +} +#define rejectBySlice(_pos_) sliceByPlane(_pos_) +#define discardBySlice(_pos_) { if (sliceByPlane(_pos_)) discard; }`,i=l.H`vec4 applySliceHighlight(vec4 color, vec3 pos) { +SliceFactors factors = calculateSliceFactors(pos); +const float HIGHLIGHT_WIDTH = 1.0; +const vec4 HIGHLIGHT_COLOR = vec4(0.0, 0.0, 0.0, 0.3); +factors.front /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.front); +factors.side0 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side0); +factors.side1 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side1); +factors.side2 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side2); +factors.side3 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side3); +if (sliceByFactors(factors)) { +return color; +} +float highlightFactor = (1.0 - step(0.5, factors.front)) +* (1.0 - step(0.5, factors.side0)) +* (1.0 - step(0.5, factors.side1)) +* (1.0 - step(0.5, factors.side2)) +* (1.0 - step(0.5, factors.side3)); +return mix(color, vec4(HIGHLIGHT_COLOR.rgb, color.a), highlightFactor * HIGHLIGHT_COLOR.a); +}`,o=t.hasSliceHighlight?l.H` + ${i} + #define highlightSlice(_color_, _pos_) (sliceEnabled() ? applySliceHighlight(_color_, _pos_) : (_color_)) + `:l.H`#define highlightSlice(_color_, _pos_) (_color_)`;t.hasSliceInVertexProgram&&e.vertex.code.add(n),e.fragment.code.add(n),e.fragment.code.add(o)}function h(e,t,r){return e.instancedDoublePrecision?(0,o.s)(g,r.camera.viewInverseTransposeMatrix[3],r.camera.viewInverseTransposeMatrix[7],r.camera.viewInverseTransposeMatrix[11]):t.slicePlaneLocalOrigin}function f(e,t){return null!=e?(0,o.f)(_,t.origin,e):t.origin}function m(e,t,r){return e.hasSliceTranslatedView?null!=t?(0,n.Iu)(T,r.camera.viewMatrix,t):r.camera.viewMatrix:null}function p(e,t,r){if(null==r.slicePlane)return a.AG;const n=h(e,t,r),i=f(n,r.slicePlane),s=m(e,n,r);return null!=s?(0,o.e)(_,i,s):i}function v(e,t,r,n){if(null==n||null==r.slicePlane)return a.AG;const i=h(e,t,r),s=f(i,r.slicePlane),l=m(e,i,r);return null!=l?((0,o.g)(x,n,s),(0,o.e)(_,s,l),(0,o.e)(x,x,l),(0,o.f)(x,x,_)):n}const g=(0,a.Ue)(),_=(0,a.Ue)(),x=(0,a.Ue)(),T=(0,i.Ue)()},4731:function(e,t,r){r.d(t,{w:function(){return o}});var n=r(95650),i=r(23410);function o(e){(0,n.bA)(e),e.vertex.code.add(i.H`vec4 transformPositionWithDepth(mat4 proj, mat4 view, vec3 pos, vec2 nearFar, out float depth) { +vec4 eye = view * vec4(pos, 1.0); +depth = calculateLinearDepth(nearFar,eye.z); +return proj * eye; +}`),e.vertex.code.add(i.H`vec4 transformPosition(mat4 proj, mat4 view, vec3 pos) { +return proj * (view * vec4(pos, 1.0)); +}`)}},99163:function(e,t,r){r.d(t,{PO:function(){return x},fQ:function(){return y}});var n=r(36663),i=r(46332),o=r(3965),a=r(3308),s=r(86717),l=r(81095),c=r(35031),u=r(5331),d=r(71354),h=r(32006),f=r(23410),m=r(11125),p=r(87621),v=r(67197),g=r(21414),_=r(30560);class x extends v.m{constructor(){super(...arguments),this.instancedDoublePrecision=!1,this.hasModelTransformation=!1}}(0,n._)([(0,v.o)()],x.prototype,"instancedDoublePrecision",void 0),(0,n._)([(0,v.o)()],x.prototype,"hasModelTransformation",void 0);class T extends f.K{constructor(){super(...arguments),this.modelTransformation=null}}const b=(0,o.Ue)();function y(e,t){const r=t.hasModelTransformation,n=t.instancedDoublePrecision;r&&(e.vertex.uniforms.add(new p.g("model",(e=>e.modelTransformation??a.Wd))),e.vertex.uniforms.add(new m.c("normalLocalOriginFromModel",(e=>((0,i.XL)(b,e.modelTransformation??a.Wd),b))))),t.instanced&&n&&(e.attributes.add(g.T.INSTANCEMODELORIGINHI,"vec3"),e.attributes.add(g.T.INSTANCEMODELORIGINLO,"vec3"),e.attributes.add(g.T.INSTANCEMODEL,"mat3"),e.attributes.add(g.T.INSTANCEMODELNORMAL,"mat3"));const o=e.vertex;n&&(o.include(u.$,t),o.uniforms.add(new h.B("viewOriginHi",((e,t)=>(0,_.U8)((0,s.s)(S,t.camera.viewInverseTransposeMatrix[3],t.camera.viewInverseTransposeMatrix[7],t.camera.viewInverseTransposeMatrix[11]),S))),new h.B("viewOriginLo",((e,t)=>(0,_.GB)((0,s.s)(S,t.camera.viewInverseTransposeMatrix[3],t.camera.viewInverseTransposeMatrix[7],t.camera.viewInverseTransposeMatrix[11]),S))))),o.code.add(f.H` + vec3 getVertexInLocalOriginSpace() { + return ${r?n?"(model * vec4(instanceModel * localPosition().xyz, 1.0)).xyz":"(model * localPosition()).xyz":n?"instanceModel * localPosition().xyz":"localPosition().xyz"}; + } + + vec3 subtractOrigin(vec3 _pos) { + ${n?f.H` + // Negated inputs are intentionally the first two arguments. The other way around the obfuscation in dpAdd() stopped + // working for macOS 14+ and iOS 17+. + // Issue: https://devtopia.esri.com/WebGIS/arcgis-js-api/issues/56280 + vec3 originDelta = dpAdd(-instanceModelOriginHi, -instanceModelOriginLo, viewOriginHi, viewOriginLo); + return _pos - originDelta;`:"return vpos;"} + } + `),o.code.add(f.H` + vec3 dpNormal(vec4 _normal) { + return normalize(${r?n?"normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz)":"normalLocalOriginFromModel * _normal.xyz":n?"instanceModelNormal * _normal.xyz":"_normal.xyz"}); + } + `),t.output===c.H_.Normal&&((0,d._8)(o),o.code.add(f.H` + vec3 dpNormalView(vec4 _normal) { + return normalize((viewNormal * ${r?n?"vec4(normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz), 1.0)":"vec4(normalLocalOriginFromModel * _normal.xyz, 1.0)":n?"vec4(instanceModelNormal * _normal.xyz, 1.0)":"_normal"}).xyz); + } + `)),t.hasVertexTangents&&o.code.add(f.H` + vec4 dpTransformVertexTangent(vec4 _tangent) { + ${r?n?"return vec4(normalLocalOriginFromModel * (instanceModelNormal * _tangent.xyz), _tangent.w);":"return vec4(normalLocalOriginFromModel * _tangent.xyz, _tangent.w);":n?"return vec4(instanceModelNormal * _tangent.xyz, _tangent.w);":"return _tangent;"} + }`)}const S=(0,l.Ue)()},7792:function(e,t,r){r.d(t,{O:function(){return l},r:function(){return n}});var n,i,o=r(27755),a=r(23410),s=r(21414);function l(e,t){switch(t.normalType){case n.Compressed:e.attributes.add(s.T.NORMALCOMPRESSED,"vec2"),e.vertex.code.add(a.H`vec3 decompressNormal(vec2 normal) { +float z = 1.0 - abs(normal.x) - abs(normal.y); +return vec3(normal + sign(normal) * min(z, 0.0), z); +} +vec3 normalModel() { +return decompressNormal(normalCompressed); +}`);break;case n.Attribute:e.attributes.add(s.T.NORMAL,"vec3"),e.vertex.code.add(a.H`vec3 normalModel() { +return normal; +}`);break;case n.ScreenDerivative:e.fragment.code.add(a.H`vec3 screenDerivativeNormal(vec3 positionView) { +return normalize(cross(dFdx(positionView), dFdy(positionView))); +}`);break;default:(0,o.Bg)(t.normalType);case n.COUNT:case n.Ground:}}(i=n||(n={}))[i.Attribute=0]="Attribute",i[i.Compressed=1]="Compressed",i[i.Ground=2]="Ground",i[i.ScreenDerivative=3]="ScreenDerivative",i[i.COUNT=4]="COUNT"},91636:function(e,t,r){r.d(t,{f:function(){return o}});var n=r(23410),i=r(21414);function o(e){e.attributes.add(i.T.POSITION,"vec3"),e.vertex.code.add(n.H`vec3 positionModel() { return position; }`)}},40433:function(e,t,r){r.d(t,{R:function(){return c}});var n=r(66352),i=r(23410);function o(e){e.vertex.code.add(i.H` + vec4 decodeSymbolColor(vec4 symbolColor, out int colorMixMode) { + float symbolAlpha = 0.0; + + const float maxTint = 85.0; + const float maxReplace = 170.0; + const float scaleAlpha = 3.0; + + if (symbolColor.a > maxReplace) { + colorMixMode = ${i.H.int(n.a9.Multiply)}; + symbolAlpha = scaleAlpha * (symbolColor.a - maxReplace); + } else if (symbolColor.a > maxTint) { + colorMixMode = ${i.H.int(n.a9.Replace)}; + symbolAlpha = scaleAlpha * (symbolColor.a - maxTint); + } else if (symbolColor.a > 0.0) { + colorMixMode = ${i.H.int(n.a9.Tint)}; + symbolAlpha = scaleAlpha * symbolColor.a; + } else { + colorMixMode = ${i.H.int(n.a9.Multiply)}; + symbolAlpha = 0.0; + } + + return vec4(symbolColor.r, symbolColor.g, symbolColor.b, symbolAlpha); + } + `)}var a=r(59842),s=r(21414),l=r(13705);function c(e,t){t.hasSymbolColors?(e.include(o),e.attributes.add(s.T.SYMBOLCOLOR,"vec4"),e.varyings.add("colorMixMode","mediump float"),e.vertex.code.add(i.H`int symbolColorMixMode; +vec4 getSymbolColor() { +return decodeSymbolColor(symbolColor, symbolColorMixMode) * 0.003921568627451; +} +void forwardColorMixMode() { +colorMixMode = float(symbolColorMixMode) + 0.5; +}`)):(e.fragment.uniforms.add(new a._("colorMixMode",(e=>l.FZ[e.colorMixMode]))),e.vertex.code.add(i.H`vec4 getSymbolColor() { return vec4(1.0); } +void forwardColorMixMode() {}`))}},82082:function(e,t,r){r.d(t,{D:function(){return l},N:function(){return n}});var n,i,o=r(27755),a=r(23410),s=r(21414);function l(e,t){switch(t.textureCoordinateType){case n.Default:return e.attributes.add(s.T.UV0,"vec2"),e.varyings.add("vuv0","vec2"),void e.vertex.code.add(a.H`void forwardTextureCoordinates() { +vuv0 = uv0; +}`);case n.Compressed:return e.attributes.add(s.T.UV0,"vec2"),e.varyings.add("vuv0","vec2"),void e.vertex.code.add(a.H`vec2 getUV0() { +return uv0 / 16384.0; +} +void forwardTextureCoordinates() { +vuv0 = getUV0(); +}`);case n.Atlas:return e.attributes.add(s.T.UV0,"vec2"),e.varyings.add("vuv0","vec2"),e.attributes.add(s.T.UVREGION,"vec4"),e.varyings.add("vuvRegion","vec4"),void e.vertex.code.add(a.H`void forwardTextureCoordinates() { +vuv0 = uv0; +vuvRegion = uvRegion; +}`);default:(0,o.Bg)(t.textureCoordinateType);case n.None:return void e.vertex.code.add(a.H`void forwardTextureCoordinates() {}`);case n.COUNT:return}}(i=n||(n={}))[i.None=0]="None",i[i.Default=1]="Default",i[i.Atlas=2]="Atlas",i[i.Compressed=3]="Compressed",i[i.COUNT=4]="COUNT"},6502:function(e,t,r){r.d(t,{c:function(){return o}});var n=r(23410),i=r(21414);function o(e,t){t.hasVertexColors?(e.attributes.add(i.T.COLOR,"vec4"),e.varyings.add("vColor","vec4"),e.vertex.code.add(n.H`void forwardVertexColor() { vColor = color; }`),e.vertex.code.add(n.H`void forwardNormalizedVertexColor() { vColor = color * 0.003921568627451; }`)):e.vertex.code.add(n.H`void forwardVertexColor() {} +void forwardNormalizedVertexColor() {}`)}},78549:function(e,t,r){r.d(t,{Bb:function(){return d},Pf:function(){return f},d4:function(){return h}});var n=r(27755),i=r(3965),o=r(52721),a=r(7792),s=r(62295),l=r(23410),c=r(55784),u=r(11125);function d(e,t){switch(t.normalType){case a.r.Attribute:case a.r.Compressed:e.include(a.O,t),e.varyings.add("vNormalWorld","vec3"),e.varyings.add("vNormalView","vec3"),e.vertex.uniforms.add(new c.j("transformNormalGlobalFromModel",(e=>e.transformNormalGlobalFromModel)),new u.c("transformNormalViewFromGlobal",(e=>e.transformNormalViewFromGlobal))),e.vertex.code.add(l.H`void forwardNormal() { +vNormalWorld = transformNormalGlobalFromModel * normalModel(); +vNormalView = transformNormalViewFromGlobal * vNormalWorld; +}`);break;case a.r.Ground:e.include(s.up,t),e.varyings.add("vNormalWorld","vec3"),e.vertex.code.add(l.H` + void forwardNormal() { + vNormalWorld = ${t.spherical?l.H`normalize(vPositionWorldCameraRelative);`:l.H`vec3(0.0, 0.0, 1.0);`} + } + `);break;case a.r.ScreenDerivative:e.vertex.code.add(l.H`void forwardNormal() {}`);break;default:(0,n.Bg)(t.normalType);case a.r.COUNT:}}class h extends s.su{constructor(){super(...arguments),this.transformNormalViewFromGlobal=(0,i.Ue)()}}class f extends s.OU{constructor(){super(...arguments),this.transformNormalGlobalFromModel=(0,i.Ue)(),this.toMapSpace=(0,o.Ue)()}}},62295:function(e,t,r){r.d(t,{OU:function(){return v},su:function(){return p},up:function(){return m}});var n=r(3965),i=r(3308),o=r(81095),a=r(91636),s=r(5331),l=r(32006),c=r(43036),u=r(23410),d=r(55784),h=r(11125),f=r(87621);function m(e,t){e.include(a.f);const r=e.vertex;r.include(s.$,t),e.varyings.add("vPositionWorldCameraRelative","vec3"),e.varyings.add("vPosition_view","vec3"),r.uniforms.add(new c.J("transformWorldFromViewTH",(e=>e.transformWorldFromViewTH)),new c.J("transformWorldFromViewTL",(e=>e.transformWorldFromViewTL)),new h.c("transformViewFromCameraRelativeRS",(e=>e.transformViewFromCameraRelativeRS)),new f.g("transformProjFromView",(e=>e.transformProjFromView)),new d.j("transformWorldFromModelRS",(e=>e.transformWorldFromModelRS)),new l.B("transformWorldFromModelTH",(e=>e.transformWorldFromModelTH)),new l.B("transformWorldFromModelTL",(e=>e.transformWorldFromModelTL))),r.code.add(u.H`vec3 positionWorldCameraRelative() { +vec3 rotatedModelPosition = transformWorldFromModelRS * positionModel(); +vec3 transform_CameraRelativeFromModel = dpAdd( +transformWorldFromModelTL, +transformWorldFromModelTH, +-transformWorldFromViewTL, +-transformWorldFromViewTH +); +return transform_CameraRelativeFromModel + rotatedModelPosition; +}`),r.code.add(u.H` + void forwardPosition(float fOffset) { + vPositionWorldCameraRelative = positionWorldCameraRelative(); + if (fOffset != 0.0) { + vPositionWorldCameraRelative += fOffset * ${t.spherical?u.H`normalize(transformWorldFromViewTL + vPositionWorldCameraRelative)`:u.H`vec3(0.0, 0.0, 1.0)`}; + } + + vPosition_view = transformViewFromCameraRelativeRS * vPositionWorldCameraRelative; + gl_Position = transformProjFromView * vec4(vPosition_view, 1.0); + } + `),e.fragment.uniforms.add(new c.J("transformWorldFromViewTL",(e=>e.transformWorldFromViewTL))),r.code.add(u.H`vec3 positionWorld() { +return transformWorldFromViewTL + vPositionWorldCameraRelative; +}`),e.fragment.code.add(u.H`vec3 positionWorld() { +return transformWorldFromViewTL + vPositionWorldCameraRelative; +}`)}class p extends u.K{constructor(){super(...arguments),this.transformWorldFromViewTH=(0,o.Ue)(),this.transformWorldFromViewTL=(0,o.Ue)(),this.transformViewFromCameraRelativeRS=(0,n.Ue)(),this.transformProjFromView=(0,i.Ue)()}}class v extends u.K{constructor(){super(...arguments),this.transformWorldFromModelRS=(0,n.Ue)(),this.transformWorldFromModelTH=(0,o.Ue)(),this.transformWorldFromModelTL=(0,o.Ue)()}}},72129:function(e,t,r){r.d(t,{i:function(){return s}});var n=r(27755),i=r(82082),o=r(23410);function a(e){e.fragment.code.add(o.H`vec4 textureAtlasLookup(sampler2D tex, vec2 textureCoordinates, vec4 atlasRegion) { +vec2 atlasScale = atlasRegion.zw - atlasRegion.xy; +vec2 uvAtlas = fract(textureCoordinates) * atlasScale + atlasRegion.xy; +float maxdUV = 0.125; +vec2 dUVdx = clamp(dFdx(textureCoordinates), -maxdUV, maxdUV) * atlasScale; +vec2 dUVdy = clamp(dFdy(textureCoordinates), -maxdUV, maxdUV) * atlasScale; +return textureGrad(tex, uvAtlas, dUVdx, dUVdy); +}`)}function s(e,t){switch(e.include(i.D,t),t.textureCoordinateType){case i.N.Default:case i.N.Compressed:return void e.fragment.code.add(o.H`vec4 textureLookup(sampler2D tex, vec2 uv) { +return texture(tex, uv); +}`);case i.N.Atlas:return e.include(a),void e.fragment.code.add(o.H`vec4 textureLookup(sampler2D tex, vec2 uv) { +return textureAtlasLookup(tex, uv, vuvRegion); +}`);default:(0,n.Bg)(t.textureCoordinateType);case i.N.None:case i.N.COUNT:return}}},5664:function(e,t,r){r.d(t,{L:function(){return m}});var n=r(56999),i=r(52721),o=r(86717),a=r(81095),s=r(43036),l=r(23410);function c(e){e.vertex.code.add(l.H`float screenSizePerspectiveViewAngleDependentFactor(float absCosAngle) { +return absCosAngle * absCosAngle * absCosAngle; +}`),e.vertex.code.add(l.H`vec3 screenSizePerspectiveScaleFactor(float absCosAngle, float distanceToCamera, vec3 params) { +return vec3( +min(params.x / (distanceToCamera - params.y), 1.0), +screenSizePerspectiveViewAngleDependentFactor(absCosAngle), +params.z +); +}`),e.vertex.code.add(l.H`float applyScreenSizePerspectiveScaleFactorFloat(float size, vec3 factor) { +return mix(size * clamp(factor.x, factor.z, 1.0), size, factor.y); +}`),e.vertex.code.add(l.H`float screenSizePerspectiveScaleFloat(float size, float absCosAngle, float distanceToCamera, vec3 params) { +return applyScreenSizePerspectiveScaleFactorFloat( +size, +screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params) +); +}`),e.vertex.code.add(l.H`vec2 applyScreenSizePerspectiveScaleFactorVec2(vec2 size, vec3 factor) { +return mix(size * clamp(factor.x, factor.z, 1.0), size, factor.y); +}`),e.vertex.code.add(l.H`vec2 screenSizePerspectiveScaleVec2(vec2 size, float absCosAngle, float distanceToCamera, vec3 params) { +return applyScreenSizePerspectiveScaleFactorVec2(size, screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params)); +}`)}function u(e){return(0,o.s)(d,e.parameters.divisor,e.parameters.offset,e.minScaleFactor)}const d=(0,a.Ue)();var h=r(71354),f=r(63371);function m(e,t){const r=e.vertex;t.hasVerticalOffset?(function(e){e.uniforms.add(new f.N("verticalOffset",((e,t)=>{const{minWorldLength:r,maxWorldLength:i,screenLength:o}=e.verticalOffset,a=Math.tan(.5*t.camera.fovY)/(.5*t.camera.fullViewport[3]),s=t.camera.pixelRatio||1;return(0,n.s)(p,o*s,a,r,i)})))}(r),t.hasScreenSizePerspective&&(e.include(c),function(e){e.uniforms.add(new s.J("screenSizePerspectiveAlignment",(e=>u(e.screenSizePerspectiveAlignment||e.screenSizePerspective))))}(r),(0,h.hY)(e.vertex,t)),r.code.add(l.H` + vec3 calculateVerticalOffset(vec3 worldPos, vec3 localOrigin) { + float viewDistance = length((view * vec4(worldPos, 1.0)).xyz); + ${t.spherical?l.H`vec3 worldNormal = normalize(worldPos + localOrigin);`:l.H`vec3 worldNormal = vec3(0.0, 0.0, 1.0);`} + ${t.hasScreenSizePerspective?l.H` + float cosAngle = dot(worldNormal, normalize(worldPos - cameraPosition)); + float verticalOffsetScreenHeight = screenSizePerspectiveScaleFloat(verticalOffset.x, abs(cosAngle), viewDistance, screenSizePerspectiveAlignment);`:l.H` + float verticalOffsetScreenHeight = verticalOffset.x;`} + // Screen sized offset in world space, used for example for line callouts + float worldOffset = clamp(verticalOffsetScreenHeight * verticalOffset.y * viewDistance, verticalOffset.z, verticalOffset.w); + return worldNormal * worldOffset; + } + + vec3 addVerticalOffset(vec3 worldPos, vec3 localOrigin) { + return worldPos + calculateVerticalOffset(worldPos, localOrigin); + } + `)):r.code.add(l.H`vec3 addVerticalOffset(vec3 worldPos, vec3 localOrigin) { return worldPos; }`)}const p=(0,i.Ue)()},74312:function(e,t,r){r.d(t,{s:function(){return E}});var n=r(95650),i=r(35031),o=r(5885),a=r(4731),s=r(7792),l=r(23410),c=r(21414);function u(e,t){const r=t.output===i.H_.ObjectAndLayerIdColor,n=t.objectAndLayerIdColorInstanced;r&&(e.varyings.add("objectAndLayerIdColorVarying","vec4"),n?e.attributes.add(c.T.INSTANCEOBJECTANDLAYERIDCOLOR,"vec4"):e.attributes.add(c.T.OBJECTANDLAYERIDCOLOR,"vec4")),e.vertex.code.add(l.H` + void forwardObjectAndLayerIdColor() { + ${r?n?l.H`objectAndLayerIdColorVarying = instanceObjectAndLayerIdColor * 0.003921568627451;`:l.H`objectAndLayerIdColorVarying = objectAndLayerIdColor * 0.003921568627451;`:l.H``} }`),e.fragment.code.add(l.H` + void outputObjectAndLayerIdColor() { + ${r?l.H`fragColor = objectAndLayerIdColorVarying;`:l.H``} }`)}var d=r(82082),h=r(78549),f=r(52446),m=r(9794);function p(e,t){switch(t.output){case i.H_.Shadow:case i.H_.ShadowHighlight:case i.H_.ShadowExcludeHighlight:e.fragment.include(f.f),e.fragment.code.add(l.H`float _calculateFragDepth(const in float depth) { +const float SLOPE_SCALE = 2.0; +const float BIAS = 20.0 * .000015259; +float m = max(abs(dFdx(depth)), abs(dFdy(depth))); +return depth + SLOPE_SCALE * m + BIAS; +} +void outputDepth(float _linearDepth) { +fragColor = floatToRgba4(_calculateFragDepth(_linearDepth)); +}`);break;case i.H_.LinearDepth:e.fragment.include(m.n),e.fragment.code.add(l.H`void outputDepth(float _linearDepth) { +fragColor = float2rgba(_linearDepth); +}`)}}var v=r(52721),g=r(15176);const _=(0,v.al)(1,1,0,1),x=(0,v.al)(1,0,1,1);function T(e){e.fragment.uniforms.add(new g.A("depthTexture",((e,t)=>t.mainDepth))),e.fragment.constants.add("occludedHighlightFlag","vec4",_).add("unoccludedHighlightFlag","vec4",x),e.fragment.code.add(l.H`void outputHighlight() { +float sceneDepth = float(texelFetch(depthTexture, ivec2(gl_FragCoord.xy), 0).x); +if (gl_FragCoord.z > sceneDepth + 5e-7) { +fragColor = occludedHighlightFlag; +} else { +fragColor = unoccludedHighlightFlag; +} +}`)}var b=r(91024),y=r(49745),S=r(71354),A=r(70984);function E(e,t){const{vertex:r,fragment:c}=e,f=t.hasColorTexture&&t.alphaDiscardMode!==A.JJ.Opaque;switch(t.output){case i.H_.LinearDepth:case i.H_.Shadow:case i.H_.ShadowHighlight:case i.H_.ShadowExcludeHighlight:case i.H_.ObjectAndLayerIdColor:(0,S.Sv)(r,t),e.include(a.w,t),e.include(d.D,t),e.include(b.k,t),e.include(p,t),e.include(o.f5,t),e.include(u,t),(0,n.Zu)(e),e.varyings.add("depth","float"),f&&c.uniforms.add(new g.A("tex",(e=>e.texture))),r.code.add(l.H`void main(void) { +vpos = getVertexInLocalOriginSpace(); +vpos = subtractOrigin(vpos); +vpos = addVerticalOffset(vpos, localOrigin); +gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth); +forwardTextureCoordinates(); +forwardObjectAndLayerIdColor(); +}`),e.include(y.z,t),c.code.add(l.H` + void main(void) { + discardBySlice(vpos); + ${f?l.H` + vec4 texColor = texture(tex, ${t.hasColorTextureTransform?l.H`colorUV`:l.H`vuv0`}); + discardOrAdjustAlpha(texColor);`:""} + ${t.output===i.H_.ObjectAndLayerIdColor?l.H`outputObjectAndLayerIdColor();`:l.H`outputDepth(depth);`} + } + `);break;case i.H_.Normal:{(0,S.Sv)(r,t),e.include(a.w,t),e.include(s.O,t),e.include(h.Bb,t),e.include(d.D,t),e.include(b.k,t),f&&c.uniforms.add(new g.A("tex",(e=>e.texture))),t.normalType===s.r.ScreenDerivative&&e.varyings.add("vPositionView","vec3");const n=t.normalType===s.r.Attribute||t.normalType===s.r.Compressed;r.code.add(l.H` + void main(void) { + vpos = getVertexInLocalOriginSpace(); + + ${n?l.H`vNormalWorld = dpNormalView(vvLocalNormal(normalModel()));`:l.H` + // Get vertex position in camera space for screen-space derivative normals + vPositionView = (view * vec4(vpos, 1.0)).xyz; + `} + vpos = subtractOrigin(vpos); + vpos = addVerticalOffset(vpos, localOrigin); + gl_Position = transformPosition(proj, view, vpos); + forwardTextureCoordinates(); + } + `),e.include(o.f5,t),e.include(y.z,t),c.code.add(l.H` + void main() { + discardBySlice(vpos); + ${f?l.H` + vec4 texColor = texture(tex, ${t.hasColorTextureTransform?l.H`colorUV`:l.H`vuv0`}); + discardOrAdjustAlpha(texColor);`:""} + + ${t.normalType===s.r.ScreenDerivative?l.H`vec3 normal = screenDerivativeNormal(vPositionView);`:l.H` + vec3 normal = normalize(vNormalWorld); + if (gl_FrontFacing == false){ + normal = -normal; + }`} + fragColor = vec4(0.5 + 0.5 * normal, 1.0); + } + `);break}case i.H_.Highlight:(0,S.Sv)(r,t),e.include(a.w,t),e.include(d.D,t),e.include(b.k,t),f&&c.uniforms.add(new g.A("tex",(e=>e.texture))),r.code.add(l.H`void main(void) { +vpos = getVertexInLocalOriginSpace(); +vpos = subtractOrigin(vpos); +vpos = addVerticalOffset(vpos, localOrigin); +gl_Position = transformPosition(proj, view, vpos); +forwardTextureCoordinates(); +}`),e.include(o.f5,t),e.include(y.z,t),e.include(T,t),c.code.add(l.H` + void main() { + discardBySlice(vpos); + ${f?l.H` + vec4 texColor = texture(tex, ${t.hasColorTextureTransform?l.H`colorUV`:l.H`vuv0`}); + discardOrAdjustAlpha(texColor);`:""} + outputHighlight(); + } + `)}}},31227:function(e,t,r){r.d(t,{K:function(){return a},S:function(){return o}});var n=r(9794),i=r(23410);function o(e){e.include(n.n),e.code.add(i.H`float linearDepthFromFloat(float depth, vec2 nearFar) { +return -(depth * (nearFar[1] - nearFar[0]) + nearFar[0]); +} +float linearDepthFromRGBA(vec4 depth, vec2 nearFar) { +return linearDepthFromFloat(rgba2float(depth), nearFar); +} +float linearDepthFromTexture(sampler2D depthTexture, vec2 uv, vec2 nearFar) { +ivec2 iuv = ivec2(uv * vec2(textureSize(depthTexture, 0))); +return linearDepthFromRGBA(texelFetch(depthTexture, iuv, 0), nearFar); +}`)}function a(e){e.code.add(i.H`float linearizeDepth(float depth, vec2 nearFar) { +float depthNdc = depth * 2.0 - 1.0; +return (2.0 * nearFar[0] * nearFar[1]) / (depthNdc * (nearFar[1] - nearFar[0]) - (nearFar[1] + nearFar[0])); +} +float linearDepthFromTexture(sampler2D depthTexture, vec2 uv, vec2 nearFar) { +ivec2 iuv = ivec2(uv * vec2(textureSize(depthTexture, 0))); +float depth = texelFetch(depthTexture, iuv, 0).r; +return linearizeDepth(depth, nearFar); +}`)}},3417:function(e,t,r){r.d(t,{Q:function(){return p}});var n=r(3965),i=r(84164),o=r(82082),a=r(72129),s=r(2833),l=r(93072),c=r(23410),u=r(11125),d=r(37649),h=r(15176),f=r(40017),m=r(21414);function p(e,t){const r=e.fragment;t.hasVertexTangents?(e.attributes.add(m.T.TANGENT,"vec4"),e.varyings.add("vTangent","vec4"),t.doubleSidedMode===s.q.WindingOrder?r.code.add(c.H`mat3 computeTangentSpace(vec3 normal) { +float tangentHeadedness = gl_FrontFacing ? vTangent.w : -vTangent.w; +vec3 tangent = normalize(gl_FrontFacing ? vTangent.xyz : -vTangent.xyz); +vec3 bitangent = cross(normal, tangent) * tangentHeadedness; +return mat3(tangent, bitangent, normal); +}`):r.code.add(c.H`mat3 computeTangentSpace(vec3 normal) { +float tangentHeadedness = vTangent.w; +vec3 tangent = normalize(vTangent.xyz); +vec3 bitangent = cross(normal, tangent) * tangentHeadedness; +return mat3(tangent, bitangent, normal); +}`)):r.code.add(c.H`mat3 computeTangentSpace(vec3 normal, vec3 pos, vec2 st) { +vec3 Q1 = dFdx(pos); +vec3 Q2 = dFdy(pos); +vec2 stx = dFdx(st); +vec2 sty = dFdy(st); +float det = stx.t * sty.s - sty.t * stx.s; +vec3 T = stx.t * Q2 - sty.t * Q1; +T = T - normal * dot(normal, T); +T *= inversesqrt(max(dot(T,T), 1.e-10)); +vec3 B = sign(det) * cross(normal, T); +return mat3(T, B, normal); +}`),t.textureCoordinateType!==o.N.None&&(e.include(a.i,t),r.uniforms.add(t.pbrTextureBindType===f.P.Pass?new h.A("normalTexture",(e=>e.textureNormal)):new d.R("normalTexture",(e=>e.textureNormal))),t.hasNormalTextureTransform&&(r.uniforms.add(new l.A("scale",(e=>e.scale??i.hq))),r.uniforms.add(new u.c("normalTextureTransformMatrix",(e=>e.normalTextureTransformMatrix??n.Wd)))),r.code.add(c.H`vec3 computeTextureNormal(mat3 tangentSpace, vec2 uv) { +vec3 rawNormal = textureLookup(normalTexture, uv).rgb * 2.0 - 1.0;`),t.hasNormalTextureTransform&&r.code.add(c.H`mat3 normalTextureRotation = mat3(normalTextureTransformMatrix[0][0]/scale[0], normalTextureTransformMatrix[0][1]/scale[1], 0.0, +normalTextureTransformMatrix[1][0]/scale[0], normalTextureTransformMatrix[1][1]/scale[1], 0.0, +0.0, 0.0, 0.0 ); +rawNormal.xy = (normalTextureRotation * vec3(rawNormal.x, rawNormal.y, 1.0)).xy;`),r.code.add(c.H`return tangentSpace * rawNormal; +}`))}},11827:function(e,t,r){r.d(t,{K:function(){return k}});var n,i,o=r(23410),a=r(15176),s=r(36663),l=r(19431),c=r(61681),u=r(76868),d=r(12928),h=r(81977),f=(r(39994),r(13802),r(4157),r(40266)),m=r(36531);!function(e){e[e.RED=0]="RED",e[e.RG=1]="RG",e[e.RGBA4=2]="RGBA4",e[e.RGBA=3]="RGBA",e[e.RGBA_MIPMAP=4]="RGBA_MIPMAP",e[e.R16F=5]="R16F",e[e.RGBA16F=6]="RGBA16F"}(n||(n={})),function(e){e[e.DEPTH_STENCIL_TEXTURE=0]="DEPTH_STENCIL_TEXTURE",e[e.DEPTH16_BUFFER=1]="DEPTH16_BUFFER"}(i||(i={}));const p=5e5;var v=r(74396),g=r(35031);const _={required:[]},x=(g.H_.LinearDepth,g.H_.CompositeColor,g.H_.Highlight,{required:[g.H_.Depth,g.H_.Normal]});class T extends v.Z{consumes(){return _}get usedMemory(){return 0}get isDecoration(){return!1}get running(){return!1}get materialReference(){return null}modify(e){}get numGeometries(){return 0}get hasOccludees(){return!1}queryRenderOccludedState(e){return!1}}class b extends T{}var y=r(9969),S=r(52756),A=r(5474),E=r(95194),w=r(24756),C=r(17346);class M extends S.A{initializeProgram(e){return new E.$(e.rctx,M.shader.get().build(),A.i)}initializePipeline(){return(0,C.sm)({colorWrite:C.BK})}}M.shader=new y.J(w.S,(()=>r.e(9018).then(r.bind(r,99018))));var O=r(84164);class R extends o.K{constructor(){super(...arguments),this.projScale=1}}class I extends R{constructor(){super(...arguments),this.intensity=1}}class P extends o.K{}class N extends P{constructor(){super(...arguments),this.blurSize=(0,O.Ue)()}}var H=r(91800);class L extends S.A{initializeProgram(e){return new E.$(e.rctx,L.shader.get().build(),A.i)}initializePipeline(){return(0,C.sm)({colorWrite:C.BK})}}L.shader=new y.J(H.S,(()=>r.e(4168).then(r.bind(r,4168))));var F,D;r(22445),r(22855);(D=F||(F={}))[D.Antialiasing=0]="Antialiasing",D[D.HighQualityTransparency=1]="HighQualityTransparency",D[D.HighResolutionVoxel=2]="HighResolutionVoxel",D[D.HighResolutionAtmosphere=3]="HighResolutionAtmosphere",D[D.SSAO=4]="SSAO",D[D.WaterReflection=5]="WaterReflection",D[D.HighResolutionShadows=6]="HighResolutionShadows",D[D.PhysicalPixelRendering=7]="PhysicalPixelRendering";var B=r(46378),U=r(91907),z=r(71449),G=r(80479);const V=2;let W=class extends b{constructor(e){super(e),this._context=null,this._passParameters=new I,this._drawParameters=new N,this.produces=new Map([[B.r.SSAO,()=>this._produces()]])}_getCameraElevation(){return this._context?.renderContext.bindParameters.camera.relativeElevation??1/0}_produces(){return null!=this._enableTime&&null!=this._context&&this._getCameraElevation()this.view.qualitySettings.ambientOcclusion||this._context?.isFeatureEnabled(F.SSAO)),(e=>e?this._enable():this._disable()),u.tX)])}uninitializeRenderContext(){this._disable(),this._context=null}_disable(){this._passParameters.noiseTexture=(0,c.M2)(this._passParameters.noiseTexture),this._enableTime=null}destroy(){this._disable()}_enable(){if(null!=this._enableTime||!this._context)return;const e=Uint8Array.from(atob("eXKEvZaUc66cjIKElE1jlJ6MjJ6Ufkl+jn2fcXp5jBx7c6KEflSGiXuXeW6OWs+tfqZ2Yot2Y7Zzfo2BhniEj3xoiXuXj4eGZpqEaHKDWjSMe7palFlzc3BziYOGlFVzg6Zzg7CUY5JrjFF7eYJ4jIKEcyyEonSXe7qUfqZ7j3xofqZ2c4R5lFZ5Y0WUbppoe1l2cIh2ezyUho+BcHN2cG6DbpqJhqp2e1GcezhrdldzjFGUcyxjc3aRjDyEc1h7Sl17c6aMjH92pb6Mjpd4dnqBjMOEhqZleIOBYzB7gYx+fnqGjJuEkWlwnCx7fGl+c4hjfGyRe5qMlNOMfnqGhIWHc6OMi4GDc6aMfqZuc6aMzqJzlKZ+lJ6Me3qRfoFue0WUhoR5UraEa6qMkXiPjMOMlJOGe7JrUqKMjK6MeYRzdod+Sl17boiPc6qEeYBlcIh2c1WEe7GDiWCDa0WMjEmMdod+Y0WcdntzhmN8WjyMjKJjiXtzgYxYaGd+a89zlEV7e2GJfnd+lF1rcK5zc4p5cHuBhL6EcXp5eYB7fnh8iX6HjIKEeaxuiYOGc66RfG2Ja5hzjlGMjEmMe9OEgXuPfHyGhPeEdl6JY02McGuMfnqGhFiMa3WJfnx2l4hwcG1uhmN8c0WMc39og1GBbrCEjE2EZY+JcIh2cIuGhIWHe0mEhIVrc09+gY5+eYBlnCyMhGCDl3drfmmMgX15aGd+gYx+fnuRfnhzY1SMsluJfnd+hm98WtNrcIuGh4SEj0qPdkqOjFF7jNNjdnqBgaqUjMt7boeBhnZ4jDR7c5pze4GGjEFrhLqMjHyMc0mUhKZze4WEa117kWlwbpqJjHZ2eX2Bc09zeId+e0V7WlF7jHJ2l72BfId8l3eBgXyBe897jGl7c66cgW+Xc76EjKNbgaSEjGx4fId8jFFjgZB8cG6DhlFziZhrcIh2fH6HgUqBgXiPY8dahGFzjEmMhEFre2dxhoBzc5SGfleGe6alc7aUeYBlhKqUdlp+cH5za4OEczxza0Gcc4J2jHZ5iXuXjH2Jh5yRjH2JcFx+hImBjH+MpddCl3dreZeJjIt8ZW18bm1zjoSEeIOBlF9oh3N7hlqBY4+UeYFwhLJjeYFwaGd+gUqBYxiEYot2fqZ2ondzhL6EYyiEY02Ea0VjgZB8doaGjHxoc66cjEGEiXuXiXWMiZhreHx8frGMe75rY02Ec5pzfnhzlEp4a3VzjM+EhFFza3mUY7Zza1V5e2iMfGyRcziEhDyEkXZ2Y4OBnCx7g5t2eyBjgV6EhEFrcIh2dod+c4Z+nJ5zjm15jEmUeYxijJp7nL6clIpjhoR5WrZraGd+fnuRa6pzlIiMg6ZzfHx5foh+eX1ufnB5eX1ufnB5aJt7UqKMjIh+e3aBfm5lbYSBhGFze6J4c39oc0mUc4Z+e0V7fKFVe0WEdoaGY02Ec4Z+Y02EZYWBfH6HgU1+gY5+hIWUgW+XjJ57ebWRhFVScHuBfJ6PhBx7WqJzlM+Ujpd4gHZziX6HjHmEgZN+lJt5boiPe2GJgX+GjIGJgHZzeaxufnB5hF2JtdN7jJ57hp57hK6ElFVzg6ZzbmiEbndzhIWHe3uJfoFue3qRhJd2j3xoc65zlE1jc3p8lE1jhniEgXJ7e657vZaUc3qBh52BhIF4aHKDa9drgY5+c52GWqZzbpqJe8tjnM+UhIeMfo2BfGl+hG1zSmmMjKJjZVaGgX15c1lze0mEp4OHa3mUhIWHhDyclJ6MeYOJkXiPc0VzhFiMlKaEboSJa5Jze41re3qRhn+HZYWBe0mEc4p5fnORbox5lEp4hGFjhGGEjJuEc1WEhLZjeHeGa7KlfHx2hLaMeX1ugY5+hIWHhKGPjMN7c1WEho1zhoBzZYx7fnhzlJt5exyUhFFziXtzfmmMa6qMYyiEiXxweV12kZSMeWqXSl17fnhzxmmMrVGEe1mcc4p5eHeGjK6MgY5+doaGa6pzlGV7g1qBh4KHkXiPeW6OaKqafqZ2eXZ5e1V7jGd7boSJc3BzhJd2e0mcYot2h1RoY8dahK6EQmWEWjx7e1l2lL6UgXyBdnR4eU9zc0VreX1umqaBhld7fo2Bc6KEc5Z+hDyEcIeBWtNrfHyGe5qMhMuMe5qMhEGEbVVupcNzg3aHhIF4boeBe0mEdlptc39ofFl5Y8uUlJOGiYt2UmGEcyxjjGx4jFF7a657ZYWBnElzhp57iXtrgZN+tfOEhIOBjE2HgU1+e8tjjKNbiWCDhE15gUqBgYN7fnqGc66ce9d7iYSBj0qPcG6DnGGcT3eGa6qMZY+JlIiMl4hwc3aRdnqBlGV7eHJ2hLZjfnuRhDyEeX6MSk17g6Z+c6aUjHmEhIF4gXyBc76EZW18fGl+fkl+jCxrhoVwhDyUhIqGlL2DlI6EhJd2tdN7eYORhEGMa2Faa6pzc3Bzc4R5lIRznM+UY9eMhDycc5Z+c4p5c4iGY117pb6MgXuPrbJafnx2eYOJeXZ5e657hDyEcziElKZjfoB5eHeGj4WRhGGEe6KGeX1utTStc76EhFGJnCyMa5hzfH6HnNeceYB7hmN8gYuMhIVrczSMgYF8h3N7c5pza5hzjJqEYIRdgYuMlL2DeYRzhGGEeX1uhLaEc4iGeZ1zdl6JhrVteX6Me2iMfm5lWqJzSpqEa6pzdnmchHx2c6OMhNdrhoR5g3aHczxzeW52gV6Ejm15frGMc0Vzc4Z+l3drfniJe+9rWq5rlF1rhGGEhoVwe9OEfoh+e7pac09+c3qBY0lrhDycdnp2lJ6MiYOGhGCDc3aRlL2DlJt5doaGdnp2gYF8gWeOjF2Uc4R5c5Z+jEmMe7KEc4mEeYJ4dmyBe0mcgXiPbqJ7eYB7fmGGiYSJjICGlF1reZ2PnElzbpqJfH6Hc39oe4WEc5eJhK6EhqyJc3qBgZB8c09+hEmEaHKDhFGJc5SGiXWMUpaEa89zc6OMnCyMiXtrho+Be5qMc7KEjJ57dmN+hKGPjICGbmiEe7prdod+hGCDdnmchBx7eX6MkXZ2hGGEa657hm98jFFjY5JreYOJgY2EjHZ2a295Y3FajJ6Mc1J+YzB7e4WBjF2Uc4R5eV12gYxzg1qBeId+c9OUc5pzjFFjgY5+hFiMlIaPhoR5lIpjjIKBlNdSe7KEeX2BfrGMhIqGc65zjE2UhK6EklZ+QmWEeziMWqZza3VzdnR4foh+gYF8n3iJiZhrnKp7gYF8eId+lJ6Me1lrcIuGjKJjhmN8c66MjFF7a6prjJ6UnJ5zezyUfruRWlF7nI5zfHyGe657h4SEe8tjhBx7jFFjc09+c39ojICMeZeJeXt+YzRzjHZ2c0WEcIeBeXZ5onSXkVR+gYJ+eYFwdldzgYF7eX2BjJ6UiXuXlE1jh4SEe1mchLJjc4Z+hqZ7eXZ5bm1zlL6Ue5p7iWeGhKqUY5pzjKJjcIeBe8t7gXyBYIRdlEp4a3mGnK6EfmmMZpqEfFl5gYxzjKZuhGFjhoKGhHx2fnx2eXuMe3aBiWeGvbKMe6KGa5hzYzB7gZOBlGV7hmN8hqZlYot2Y117a6pzc6KEfId8foB5rctrfneJfJ6PcHN2hFiMc5pzjH92c0VzgY2EcElzdmCBlFVzg1GBc65zY4OBboeBcHiBeYJ4ewxzfHx5lIRzlEmEnLKEbk1zfJ6PhmN8eYBljBiEnMOEiXxwezyUcIeBe76EdsKEeX2BdnR4jGWUrXWMjGd7fkl+j4WRlEGMa5Jzho+BhDyEfnqMeXt+g3aHlE1jczClhNN7ZW18eHx8hGFjZW18iXWMjKJjhH57gYuMcIuGWjyMe4ZtjJuExmmMj4WRdntzi4GDhFFzYIRdnGGcjJp7Y0F7e4WEkbCGiX57fnSHa657a6prhBCMe3Z+SmmMjH92eHJ2hK6EY1FzexhrvbKMnI5za4OEfnd+eXuMhImBe897hLaMjN+EfG+BeIOBhF1+eZeJi4GDkXZ2eXKEgZ6Ejpd4c2GHa1V5e5KUfqZuhCx7jKp7lLZrg11+hHx2hFWUoot2nI5zgbh5mo9zvZaUe3qRbqKMfqZ2kbCGhFiM"),(e=>e.charCodeAt(0))),t=new G.X;t.wrapMode=U.e8.CLAMP_TO_EDGE,t.pixelFormat=U.VI.RGB,t.wrapMode=U.e8.REPEAT,t.hasMipmap=!0,t.width=32,t.height=32,this._passParameters.noiseTexture=new z.x(this._context.renderContext.rctx,t,e),null==this._ssaoTechnique&&(this._ssaoTechnique=this._context.techniqueRepository.acquire(L)),null==this._blurTechnique&&(this._blurTechnique=this._context.techniqueRepository.acquire(M)),this._enableTime=(0,d.HA)(0),this._context?.requestRender()}renderNode(e,t,r){const i=e.bindParameters,o=r?.get("normals"),a=o?.getTexture(),s=o?.getTexture(U.Lu);if(null==this._enableTime||null==this._context||!a||!s)return;if(!this._ssaoTechnique.compiled||!this._blurTechnique.compiled)return this._enableTime=e.time,void this._context.requestRender();0===this._enableTime&&(this._enableTime=e.time);const c=e.rctx,u=i.camera,d=this.view.qualitySettings.fadeDuration,h=u.relativeElevation,f=(0,l.uZ)((p-h)/2e5,0,1),v=d>0?Math.min(d,e.time-this._enableTime)/d:1,g=v*f;this._passParameters.normalTexture=a,this._passParameters.depthTexture=s,this._passParameters.projScale=1/u.computeScreenPixelSizeAtDist(1),this._passParameters.intensity=4*j/(0,H.g)(u)**6*g;const _=u.fullViewport[2],x=u.fullViewport[3],T=Math.round(_/V),b=Math.round(x/V),y=this._context.fbos,S=y.acquire(_,x,"ssao input",n.RG);c.unbindTexture(S.fbo.colorTexture),c.bindFramebuffer(S.fbo),c.setViewport(0,0,_,x),c.bindTechnique(this._ssaoTechnique,i,this._passParameters,this._drawParameters),c.screen.draw();const A=y.acquire(T,b,"ssao blur",n.RED);c.unbindTexture(A.fbo.colorTexture),c.bindFramebuffer(A.fbo),this._drawParameters.colorTexture=S.getTexture(),(0,m.t8)(this._drawParameters.blurSize,0,V/x),c.bindTechnique(this._blurTechnique,i,this._passParameters,this._drawParameters),c.setViewport(0,0,T,b),c.screen.draw(),S.release();const E=y.acquire(T,b,"ssao",n.RED);return c.unbindTexture(E.fbo.colorTexture),c.bindFramebuffer(E.fbo),c.setViewport(0,0,_,x),c.setClearColor(1,1,1,0),c.clear(U.lk.COLOR_BUFFER_BIT),this._drawParameters.colorTexture=A.getTexture(),(0,m.t8)(this._drawParameters.blurSize,V/_,0),c.bindTechnique(this._blurTechnique,i,this._passParameters,this._drawParameters),c.setViewport(0,0,T,b),c.screen.draw(),c.setViewport4fv(u.fullViewport),A.release(),v<1&&this._context.requestRender(),E}};(0,s._)([(0,h.Cb)({constructOnly:!0})],W.prototype,"view",void 0),(0,s._)([(0,h.Cb)()],W.prototype,"_context",void 0),W=(0,s._)([(0,f.j)("esri.views.3d.webgl-engine.effects.ssao.SSAO")],W);const j=.5;function k(e,t){const r=e.fragment;t.receiveAmbientOcclusion?(r.uniforms.add(new a.A("ssaoTex",((e,t)=>t.ssao?.getTexture()))),r.constants.add("blurSizePixelsInverse","float",1/V),r.code.add(o.H`float evaluateAmbientOcclusionInverse() { +vec2 ssaoTextureSizeInverse = 1.0 / vec2(textureSize(ssaoTex, 0)); +return texture(ssaoTex, gl_FragCoord.xy * blurSizePixelsInverse * ssaoTextureSizeInverse).r; +} +float evaluateAmbientOcclusion() { +return 1.0 - evaluateAmbientOcclusionInverse(); +}`)):r.code.add(o.H`float evaluateAmbientOcclusionInverse() { return 1.0; } +float evaluateAmbientOcclusion() { return 0.0; }`)}},99660:function(e,t,r){r.d(t,{XP:function(){return w},PN:function(){return A},sC:function(){return E}});var n=r(27755),i=r(86717),o=r(81095),a=r(56999),s=r(52721),l=r(3864),c=r(43036),u=r(63371),d=r(23410);function h(e,t){const r=e.fragment,n=void 0!==t.lightingSphericalHarmonicsOrder?t.lightingSphericalHarmonicsOrder:2;0===n?(r.uniforms.add(new c.J("lightingAmbientSH0",((e,t)=>(0,i.s)(f,t.lighting.sh.r[0],t.lighting.sh.g[0],t.lighting.sh.b[0])))),r.code.add(d.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) { +vec3 ambientLight = 0.282095 * lightingAmbientSH0; +return ambientLight * (1.0 - ambientOcclusion); +}`)):1===n?(r.uniforms.add(new u.N("lightingAmbientSH_R",((e,t)=>(0,a.s)(m,t.lighting.sh.r[0],t.lighting.sh.r[1],t.lighting.sh.r[2],t.lighting.sh.r[3]))),new u.N("lightingAmbientSH_G",((e,t)=>(0,a.s)(m,t.lighting.sh.g[0],t.lighting.sh.g[1],t.lighting.sh.g[2],t.lighting.sh.g[3]))),new u.N("lightingAmbientSH_B",((e,t)=>(0,a.s)(m,t.lighting.sh.b[0],t.lighting.sh.b[1],t.lighting.sh.b[2],t.lighting.sh.b[3])))),r.code.add(d.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) { +vec4 sh0 = vec4( +0.282095, +0.488603 * normal.x, +0.488603 * normal.z, +0.488603 * normal.y +); +vec3 ambientLight = vec3( +dot(lightingAmbientSH_R, sh0), +dot(lightingAmbientSH_G, sh0), +dot(lightingAmbientSH_B, sh0) +); +return ambientLight * (1.0 - ambientOcclusion); +}`)):2===n&&(r.uniforms.add(new c.J("lightingAmbientSH0",((e,t)=>(0,i.s)(f,t.lighting.sh.r[0],t.lighting.sh.g[0],t.lighting.sh.b[0]))),new u.N("lightingAmbientSH_R1",((e,t)=>(0,a.s)(m,t.lighting.sh.r[1],t.lighting.sh.r[2],t.lighting.sh.r[3],t.lighting.sh.r[4]))),new u.N("lightingAmbientSH_G1",((e,t)=>(0,a.s)(m,t.lighting.sh.g[1],t.lighting.sh.g[2],t.lighting.sh.g[3],t.lighting.sh.g[4]))),new u.N("lightingAmbientSH_B1",((e,t)=>(0,a.s)(m,t.lighting.sh.b[1],t.lighting.sh.b[2],t.lighting.sh.b[3],t.lighting.sh.b[4]))),new u.N("lightingAmbientSH_R2",((e,t)=>(0,a.s)(m,t.lighting.sh.r[5],t.lighting.sh.r[6],t.lighting.sh.r[7],t.lighting.sh.r[8]))),new u.N("lightingAmbientSH_G2",((e,t)=>(0,a.s)(m,t.lighting.sh.g[5],t.lighting.sh.g[6],t.lighting.sh.g[7],t.lighting.sh.g[8]))),new u.N("lightingAmbientSH_B2",((e,t)=>(0,a.s)(m,t.lighting.sh.b[5],t.lighting.sh.b[6],t.lighting.sh.b[7],t.lighting.sh.b[8])))),r.code.add(d.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) { +vec3 ambientLight = 0.282095 * lightingAmbientSH0; +vec4 sh1 = vec4( +0.488603 * normal.x, +0.488603 * normal.z, +0.488603 * normal.y, +1.092548 * normal.x * normal.y +); +vec4 sh2 = vec4( +1.092548 * normal.y * normal.z, +0.315392 * (3.0 * normal.z * normal.z - 1.0), +1.092548 * normal.x * normal.z, +0.546274 * (normal.x * normal.x - normal.y * normal.y) +); +ambientLight += vec3( +dot(lightingAmbientSH_R1, sh1), +dot(lightingAmbientSH_G1, sh1), +dot(lightingAmbientSH_B1, sh1) +); +ambientLight += vec3( +dot(lightingAmbientSH_R2, sh2), +dot(lightingAmbientSH_G2, sh2), +dot(lightingAmbientSH_B2, sh2) +); +return ambientLight * (1.0 - ambientOcclusion); +}`),t.pbrMode!==l.f7.Normal&&t.pbrMode!==l.f7.Schematic||r.code.add(d.H`const vec3 skyTransmittance = vec3(0.9, 0.9, 1.0); +vec3 calculateAmbientRadiance(float ambientOcclusion) +{ +vec3 ambientLight = 1.2 * (0.282095 * lightingAmbientSH0) - 0.2; +return ambientLight *= (1.0 - ambientOcclusion) * skyTransmittance; +}`))}const f=(0,o.Ue)(),m=(0,s.Ue)();var p=r(11827),v=r(58749),g=r(89585),_=r(95509),x=r(91013),T=r(40017);class b extends x.x{constructor(e,t){super(e,"bool",T.P.Pass,((r,n,i)=>r.setUniform1b(e,t(n,i))))}}var y=r(24603);r(19431);(0,o.Ue)();const S=.4;(0,o.Ue)();function A(e){e.constants.add("ambientBoostFactor","float",S)}function E(e){e.uniforms.add(new y.p("lightingGlobalFactor",((e,t)=>t.lighting.globalFactor)))}function w(e,t){const r=e.fragment;switch(e.include(p.K,t),t.pbrMode!==l.f7.Disabled&&e.include(g.T,t),e.include(h,t),e.include(_.e),r.code.add(d.H` + const float GAMMA_SRGB = 2.1; + const float INV_GAMMA_SRGB = 0.4761904; + ${t.pbrMode===l.f7.Disabled?"":"const vec3 GROUND_REFLECTANCE = vec3(0.2);"} + `),A(r),E(r),(0,v.Pe)(r),r.code.add(d.H` + float additionalDirectedAmbientLight(vec3 vPosWorld) { + float vndl = dot(${t.spherical?d.H`normalize(vPosWorld)`:d.H`vec3(0.0, 0.0, 1.0)`}, mainLightDirection); + return smoothstep(0.0, 1.0, clamp(vndl * 2.5, 0.0, 1.0)); + } + `),(0,v.F1)(r),r.code.add(d.H`vec3 evaluateAdditionalLighting(float ambientOcclusion, vec3 vPosWorld) { +float additionalAmbientScale = additionalDirectedAmbientLight(vPosWorld); +return (1.0 - ambientOcclusion) * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor * mainLightIntensity; +}`),t.pbrMode){case l.f7.Disabled:case l.f7.WaterOnIntegratedMesh:case l.f7.Water:e.include(v.kR),r.code.add(d.H`vec3 evaluateSceneLighting(vec3 normalWorld, vec3 albedo, float shadow, float ssao, vec3 additionalLight) +{ +vec3 mainLighting = evaluateMainLighting(normalWorld, shadow); +vec3 ambientLighting = calculateAmbientIrradiance(normalWorld, ssao); +vec3 albedoLinear = pow(albedo, vec3(GAMMA_SRGB)); +vec3 totalLight = mainLighting + ambientLighting + additionalLight; +totalLight = min(totalLight, vec3(PI)); +vec3 outColor = vec3((albedoLinear / PI) * totalLight); +return pow(outColor, vec3(INV_GAMMA_SRGB)); +}`);break;case l.f7.Normal:case l.f7.Schematic:r.code.add(d.H`const float fillLightIntensity = 0.25; +const float horizonLightDiffusion = 0.4; +const float additionalAmbientIrradianceFactor = 0.02; +vec3 evaluateSceneLightingPBR(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight, vec3 viewDir, vec3 normalGround, vec3 mrr, vec3 _emission, float additionalAmbientIrradiance) +{ +vec3 viewDirection = -viewDir; +vec3 h = normalize(viewDirection + mainLightDirection); +PBRShadingInfo inputs; +inputs.NdotL = clamp(dot(normal, mainLightDirection), 0.001, 1.0); +inputs.NdotV = clamp(abs(dot(normal, viewDirection)), 0.001, 1.0); +inputs.NdotH = clamp(dot(normal, h), 0.0, 1.0); +inputs.VdotH = clamp(dot(viewDirection, h), 0.0, 1.0); +inputs.NdotNG = clamp(dot(normal, normalGround), -1.0, 1.0); +vec3 reflectedView = normalize(reflect(viewDirection, normal)); +inputs.RdotNG = clamp(dot(reflectedView, normalGround), -1.0, 1.0); +inputs.albedoLinear = pow(albedo, vec3(GAMMA_SRGB)); +inputs.ssao = ssao; +inputs.metalness = mrr[0]; +inputs.roughness = clamp(mrr[1] * mrr[1], 0.001, 0.99);`),r.code.add(d.H`inputs.f0 = (0.16 * mrr[2] * mrr[2]) * (1.0 - inputs.metalness) + inputs.albedoLinear * inputs.metalness; +inputs.f90 = vec3(clamp(dot(inputs.f0, vec3(50.0 * 0.33)), 0.0, 1.0)); +inputs.diffuseColor = inputs.albedoLinear * (vec3(1.0) - inputs.f0) * (1.0 - inputs.metalness);`),t.useFillLights?r.uniforms.add(new b("hasFillLights",((e,t)=>t.enableFillLights))):r.constants.add("hasFillLights","bool",!1),r.code.add(d.H`vec3 ambientDir = vec3(5.0 * normalGround[1] - normalGround[0] * normalGround[2], - 5.0 * normalGround[0] - normalGround[2] * normalGround[1], normalGround[1] * normalGround[1] + normalGround[0] * normalGround[0]); +ambientDir = ambientDir != vec3(0.0) ? normalize(ambientDir) : normalize(vec3(5.0, -1.0, 0.0)); +inputs.NdotAmbDir = hasFillLights ? abs(dot(normal, ambientDir)) : 1.0; +vec3 mainLightIrradianceComponent = inputs.NdotL * (1.0 - shadow) * mainLightIntensity; +vec3 fillLightsIrradianceComponent = inputs.NdotAmbDir * mainLightIntensity * fillLightIntensity; +vec3 ambientLightIrradianceComponent = calculateAmbientIrradiance(normal, ssao) + additionalLight; +inputs.skyIrradianceToSurface = ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ; +inputs.groundIrradianceToSurface = GROUND_REFLECTANCE * ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;`),r.uniforms.add(new y.p("lightingSpecularStrength",((e,t)=>t.lighting.mainLight.specularStrength)),new y.p("lightingEnvironmentStrength",((e,t)=>t.lighting.mainLight.environmentStrength))),r.code.add(d.H`vec3 horizonRingDir = inputs.RdotNG * normalGround - reflectedView; +vec3 horizonRingH = normalize(viewDirection + horizonRingDir); +inputs.NdotH_Horizon = dot(normal, horizonRingH); +vec3 mainLightRadianceComponent = lightingSpecularStrength * normalDistribution(inputs.NdotH, inputs.roughness) * mainLightIntensity * (1.0 - shadow); +vec3 horizonLightRadianceComponent = lightingEnvironmentStrength * normalDistribution(inputs.NdotH_Horizon, min(inputs.roughness + horizonLightDiffusion, 1.0)) * mainLightIntensity * fillLightIntensity; +vec3 ambientLightRadianceComponent = lightingEnvironmentStrength * calculateAmbientRadiance(ssao) + additionalLight; +float normalDirectionModifier = mix(1., min(mix(0.1, 2.0, (inputs.NdotNG + 1.) * 0.5), 1.0), clamp(inputs.roughness * 5.0, 0.0 , 1.0)); +inputs.skyRadianceToSurface = (ambientLightRadianceComponent + horizonLightRadianceComponent) * normalDirectionModifier + mainLightRadianceComponent; +inputs.groundRadianceToSurface = 0.5 * GROUND_REFLECTANCE * (ambientLightRadianceComponent + horizonLightRadianceComponent) * normalDirectionModifier + mainLightRadianceComponent; +inputs.averageAmbientRadiance = ambientLightIrradianceComponent[1] * (1.0 + GROUND_REFLECTANCE[1]);`),r.code.add(d.H` + vec3 reflectedColorComponent = evaluateEnvironmentIllumination(inputs); + vec3 additionalMaterialReflectanceComponent = inputs.albedoLinear * additionalAmbientIrradiance; + vec3 emissionComponent = _emission == vec3(0.0) ? _emission : pow(_emission, vec3(GAMMA_SRGB)); + vec3 outColorLinear = reflectedColorComponent + additionalMaterialReflectanceComponent + emissionComponent; + ${t.pbrMode!==l.f7.Schematic||t.hasColorTexture?d.H`vec3 outColor = pow(blackLevelSoftCompression(outColorLinear, inputs), vec3(INV_GAMMA_SRGB));`:d.H`vec3 outColor = pow(max(vec3(0.0), outColorLinear - 0.005 * inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`} + return outColor; + } + `);break;case l.f7.Simplified:case l.f7.TerrainWithWater:e.include(v.kR),r.code.add(d.H`const float roughnessTerrain = 0.5; +const float specularityTerrain = 0.5; +const vec3 fresnelReflectionTerrain = vec3(0.04); +vec3 evaluatePBRSimplifiedLighting(vec3 n, vec3 c, float shadow, float ssao, vec3 al, vec3 vd, vec3 nup) { +vec3 viewDirection = -vd; +vec3 h = normalize(viewDirection + mainLightDirection); +float NdotL = clamp(dot(n, mainLightDirection), 0.001, 1.0); +float NdotV = clamp(abs(dot(n, viewDirection)), 0.001, 1.0); +float NdotH = clamp(dot(n, h), 0.0, 1.0); +float NdotNG = clamp(dot(n, nup), -1.0, 1.0); +vec3 albedoLinear = pow(c, vec3(GAMMA_SRGB)); +float lightness = 0.3 * albedoLinear[0] + 0.5 * albedoLinear[1] + 0.2 * albedoLinear[2]; +vec3 f0 = (0.85 * lightness + 0.15) * fresnelReflectionTerrain; +vec3 f90 = vec3(clamp(dot(f0, vec3(50.0 * 0.33)), 0.0, 1.0)); +vec3 mainLightIrradianceComponent = (1. - shadow) * NdotL * mainLightIntensity; +vec3 ambientLightIrradianceComponent = calculateAmbientIrradiance(n, ssao) + al; +vec3 ambientSky = ambientLightIrradianceComponent + mainLightIrradianceComponent; +vec3 indirectDiffuse = ((1.0 - NdotNG) * mainLightIrradianceComponent + (1.0 + NdotNG ) * ambientSky) * 0.5; +vec3 outDiffColor = albedoLinear * (1.0 - f0) * indirectDiffuse / PI; +vec3 mainLightRadianceComponent = normalDistribution(NdotH, roughnessTerrain) * mainLightIntensity; +vec2 dfg = prefilteredDFGAnalytical(roughnessTerrain, NdotV); +vec3 specularColor = f0 * dfg.x + f90 * dfg.y; +vec3 specularComponent = specularityTerrain * specularColor * mainLightRadianceComponent; +vec3 outColorLinear = outDiffColor + specularComponent; +vec3 outColor = pow(outColorLinear, vec3(INV_GAMMA_SRGB)); +return outColor; +}`);break;default:(0,n.Bg)(t.pbrMode);case l.f7.COUNT:}}},58749:function(e,t,r){r.d(t,{F1:function(){return a},Pe:function(){return o},kR:function(){return s}});var n=r(43036),i=r(23410);function o(e){e.uniforms.add(new n.J("mainLightDirection",((e,t)=>t.lighting.mainLight.direction)))}function a(e){e.uniforms.add(new n.J("mainLightIntensity",((e,t)=>t.lighting.mainLight.intensity)))}function s(e){o(e.fragment),a(e.fragment),e.fragment.code.add(i.H`vec3 evaluateMainLighting(vec3 normal_global, float shadowing) { +float dotVal = clamp(dot(normal_global, mainLightDirection), 0.0, 1.0); +return mainLightIntensity * ((1.0 - shadowing) * dotVal); +}`)}},73393:function(e,t,r){r.d(t,{l:function(){return s}});var n=r(31227),i=r(93072),o=r(23410),a=r(15176);function s(e,t){if(!t.multipassEnabled)return;e.fragment.include(n.S),e.fragment.uniforms.add(new a.A("terrainDepthTexture",((e,t)=>t.multipassTerrain.linearDepth?.getTexture())),new i.A("nearFar",((e,t)=>t.camera.nearFar)));const r=t.occlusionPass;e.fragment.code.add(o.H` + ${r?"bool":"void"} terrainDepthTest(float fragmentDepth) { + vec4 data = texelFetch(terrainDepthTexture, ivec2(gl_FragCoord.xy), 0); + float linearDepth = linearDepthFromRGBA(data, nearFar); + ${r?o.H`return fragmentDepth < linearDepth && data != vec4(0.0, 0.0, 0.0, 1.0);`:o.H` + if(fragmentDepth ${t.cullAboveGround?">":"<="} linearDepth){ + discard; + }`} + }`)}},2833:function(e,t,r){r.d(t,{k:function(){return s},q:function(){return n}});var n,i,o=r(27755),a=r(23410);function s(e,t){const r=e.fragment;switch(r.code.add(a.H`struct ShadingNormalParameters { +vec3 normalView; +vec3 viewDirection; +} shadingParams;`),t.doubleSidedMode){case n.None:r.code.add(a.H`vec3 shadingNormal(ShadingNormalParameters params) { +return normalize(params.normalView); +}`);break;case n.View:r.code.add(a.H`vec3 shadingNormal(ShadingNormalParameters params) { +return dot(params.normalView, params.viewDirection) > 0.0 ? normalize(-params.normalView) : normalize(params.normalView); +}`);break;case n.WindingOrder:r.code.add(a.H`vec3 shadingNormal(ShadingNormalParameters params) { +return gl_FrontFacing ? normalize(params.normalView) : normalize(-params.normalView); +}`);break;default:(0,o.Bg)(t.doubleSidedMode);case n.COUNT:}}(i=n||(n={}))[i.None=0]="None",i[i.View=1]="View",i[i.WindingOrder=2]="WindingOrder",i[i.COUNT=3]="COUNT"},89585:function(e,t,r){r.d(t,{T:function(){return s}});var n=r(23410);function i(e){const t=e.fragment.code;t.add(n.H`vec3 evaluateDiffuseIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float NdotNG) +{ +return ((1.0 - NdotNG) * ambientGround + (1.0 + NdotNG) * ambientSky) * 0.5; +}`),t.add(n.H`float integratedRadiance(float cosTheta2, float roughness) +{ +return (cosTheta2 - 1.0) / (cosTheta2 * (1.0 - roughness * roughness) - 1.0); +}`),t.add(n.H`vec3 evaluateSpecularIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float RdotNG, float roughness) +{ +float cosTheta2 = 1.0 - RdotNG * RdotNG; +float intRadTheta = integratedRadiance(cosTheta2, roughness); +float ground = RdotNG < 0.0 ? 1.0 - intRadTheta : 1.0 + intRadTheta; +float sky = 2.0 - ground; +return (ground * ambientGround + sky * ambientSky) * 0.5; +}`)}var o=r(3864),a=r(95509);function s(e,t){const r=e.fragment.code;e.include(a.e),t.pbrMode!==o.f7.Normal&&t.pbrMode!==o.f7.Schematic&&t.pbrMode!==o.f7.Simplified&&t.pbrMode!==o.f7.TerrainWithWater||(r.add(n.H`float normalDistribution(float NdotH, float roughness) +{ +float a = NdotH * roughness; +float b = roughness / (1.0 - NdotH * NdotH + a * a); +return b * b * INV_PI; +}`),r.add(n.H`const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022); +const vec4 c1 = vec4( 1.0, 0.0425, 1.040, -0.040); +const vec2 c2 = vec2(-1.04, 1.04); +vec2 prefilteredDFGAnalytical(float roughness, float NdotV) { +vec4 r = roughness * c0 + c1; +float a004 = min(r.x * r.x, exp2(-9.28 * NdotV)) * r.x + r.y; +return c2 * a004 + r.zw; +}`)),t.pbrMode!==o.f7.Normal&&t.pbrMode!==o.f7.Schematic||(e.include(i),r.add(n.H`struct PBRShadingInfo +{ +float NdotL; +float NdotV; +float NdotH; +float VdotH; +float LdotH; +float NdotNG; +float RdotNG; +float NdotAmbDir; +float NdotH_Horizon; +vec3 skyRadianceToSurface; +vec3 groundRadianceToSurface; +vec3 skyIrradianceToSurface; +vec3 groundIrradianceToSurface; +float averageAmbientRadiance; +float ssao; +vec3 albedoLinear; +vec3 f0; +vec3 f90; +vec3 diffuseColor; +float metalness; +float roughness; +};`),r.add(n.H`vec3 evaluateEnvironmentIllumination(PBRShadingInfo inputs) { +vec3 indirectDiffuse = evaluateDiffuseIlluminationHemisphere(inputs.groundIrradianceToSurface, inputs.skyIrradianceToSurface, inputs.NdotNG); +vec3 indirectSpecular = evaluateSpecularIlluminationHemisphere(inputs.groundRadianceToSurface, inputs.skyRadianceToSurface, inputs.RdotNG, inputs.roughness); +vec3 diffuseComponent = inputs.diffuseColor * indirectDiffuse * INV_PI; +vec2 dfg = prefilteredDFGAnalytical(inputs.roughness, inputs.NdotV); +vec3 specularColor = inputs.f0 * dfg.x + inputs.f90 * dfg.y; +vec3 specularComponent = specularColor * indirectSpecular; +return (diffuseComponent + specularComponent); +}`),r.add(n.H`float gamutMapChanel(float x, vec2 p){ +return (x < p.x) ? mix(0.0, p.y, x/p.x) : mix(p.y, 1.0, (x - p.x) / (1.0 - p.x) ); +}`),r.add(n.H`vec3 blackLevelSoftCompression(vec3 inColor, PBRShadingInfo inputs){ +vec3 outColor; +vec2 p = vec2(0.02 * (inputs.averageAmbientRadiance), 0.0075 * (inputs.averageAmbientRadiance)); +outColor.x = gamutMapChanel(inColor.x, p) ; +outColor.y = gamutMapChanel(inColor.y, p) ; +outColor.z = gamutMapChanel(inColor.z, p) ; +return outColor; +}`))}},3864:function(e,t,r){r.d(t,{f7:function(){return n},jV:function(){return m}});var n,i,o=r(72129),a=r(32006),s=r(43036),l=r(23410),c=r(37649),u=r(15176),d=r(40017),h=r(97009);(i=n||(n={}))[i.Disabled=0]="Disabled",i[i.Normal=1]="Normal",i[i.Schematic=2]="Schematic",i[i.Water=3]="Water",i[i.WaterOnIntegratedMesh=4]="WaterOnIntegratedMesh",i[i.Simplified=5]="Simplified",i[i.TerrainWithWater=6]="TerrainWithWater",i[i.COUNT=7]="COUNT";class f extends h.E{}function m(e,t){const r=e.fragment,i=t.hasMetallicRoughnessTexture||t.hasEmissionTexture||t.hasOcclusionTexture;if(t.pbrMode===n.Normal&&i&&e.include(o.i,t),t.pbrMode!==n.Schematic)if(t.pbrMode!==n.Disabled){if(t.pbrMode===n.Normal){r.code.add(l.H`vec3 mrr; +vec3 emission; +float occlusion;`);const e=t.pbrTextureBindType;t.hasMetallicRoughnessTexture&&(r.uniforms.add(e===d.P.Pass?new u.A("texMetallicRoughness",(e=>e.textureMetallicRoughness)):new c.R("texMetallicRoughness",(e=>e.textureMetallicRoughness))),r.code.add(l.H`void applyMetallnessAndRoughness(vec2 uv) { +vec3 metallicRoughness = textureLookup(texMetallicRoughness, uv).rgb; +mrr[0] *= metallicRoughness.b; +mrr[1] *= metallicRoughness.g; +}`)),t.hasEmissionTexture&&(r.uniforms.add(e===d.P.Pass?new u.A("texEmission",(e=>e.textureEmissive)):new c.R("texEmission",(e=>e.textureEmissive))),r.code.add(l.H`void applyEmission(vec2 uv) { +emission *= textureLookup(texEmission, uv).rgb; +}`)),t.hasOcclusionTexture?(r.uniforms.add(e===d.P.Pass?new u.A("texOcclusion",(e=>e.textureOcclusion)):new c.R("texOcclusion",(e=>e.textureOcclusion))),r.code.add(l.H`void applyOcclusion(vec2 uv) { +occlusion *= textureLookup(texOcclusion, uv).r; +} +float getBakedOcclusion() { +return occlusion; +}`)):r.code.add(l.H`float getBakedOcclusion() { return 1.0; }`),e===d.P.Pass?r.uniforms.add(new s.J("emissionFactor",(e=>e.emissiveFactor)),new s.J("mrrFactors",(e=>e.mrrFactors))):r.uniforms.add(new a.B("emissionFactor",(e=>e.emissiveFactor)),new a.B("mrrFactors",(e=>e.mrrFactors))),r.code.add(l.H` + void applyPBRFactors() { + mrr = mrrFactors; + emission = emissionFactor; + occlusion = 1.0; + + ${t.hasMetallicRoughnessTexture?l.H`applyMetallnessAndRoughness(${t.hasMetallicRoughnessTextureTransform?l.H`metallicRoughnessUV`:"vuv0"});`:""} + + ${t.hasEmissionTexture?l.H`applyEmission(${t.hasEmissiveTextureTransform?l.H`emissiveUV`:"vuv0"});`:""} + + ${t.hasOcclusionTexture?l.H`applyOcclusion(${t.hasOcclusionTextureTransform?l.H`occlusionUV`:"vuv0"});`:""} + } + `)}}else r.code.add(l.H`float getBakedOcclusion() { return 1.0; }`);else r.code.add(l.H`vec3 mrr = vec3(0.0, 0.6, 0.2); +vec3 emission = vec3(0.0); +float occlusion = 1.0; +void applyPBRFactors() {} +float getBakedOcclusion() { return 1.0; }`)}},95509:function(e,t,r){r.d(t,{e:function(){return i}});var n=r(23410);function i(e){e.vertex.code.add(n.H`const float PI = 3.141592653589793;`),e.fragment.code.add(n.H`const float PI = 3.141592653589793; +const float LIGHT_NORMALIZATION = 1.0 / PI; +const float INV_PI = 0.3183098861837907; +const float HALF_PI = 1.570796326794897;`)}},59181:function(e,t,r){r.d(t,{XE:function(){return p},hb:function(){return m}});r(3308),r(81095);var n=r(52446),i=r(63371),o=r(59842),a=r(23410),s=r(91013),l=r(40017);class c extends s.x{constructor(e,t,r){super(e,"mat4",l.P.Draw,((r,n,i,o)=>r.setUniformMatrix4fv(e,t(n,i,o))),r)}}class u extends s.x{constructor(e,t,r){super(e,"mat4",l.P.Pass,((r,n,i)=>r.setUniformMatrix4fv(e,t(n,i))),r)}}var d=r(15176);class h extends a.K{constructor(){super(...arguments),this.origin=(0,vec3f64.Ue)()}}class f extends a.K{constructor(){super(...arguments),this.modelTransformation=mat4f64.Wd}}function m(e,t){t.receiveShadows&&(e.fragment.uniforms.add(new u("shadowMapMatrix",((e,t)=>t.shadowMap.getShadowMapMatrices(e.origin)),4)),v(e))}function p(e,t){t.receiveShadows&&(e.fragment.uniforms.add(new c("shadowMapMatrix",((e,t)=>t.shadowMap.getShadowMapMatrices(e.origin)),4)),v(e))}function v(e){const t=e.fragment;t.include(n.f),t.uniforms.add(new d.A("shadowMap",((e,t)=>t.shadowMap.depthTexture)),new o._("numCascades",((e,t)=>t.shadowMap.numCascades)),new i.N("cascadeDistances",((e,t)=>t.shadowMap.cascadeDistances))),t.code.add(a.H`int chooseCascade(float depth, out mat4 mat) { +vec4 distance = cascadeDistances; +int i = depth < distance[1] ? 0 : depth < distance[2] ? 1 : depth < distance[3] ? 2 : 3; +mat = i == 0 ? shadowMapMatrix[0] : i == 1 ? shadowMapMatrix[1] : i == 2 ? shadowMapMatrix[2] : shadowMapMatrix[3]; +return i; +} +vec3 lightSpacePosition(vec3 _vpos, mat4 mat) { +vec4 lv = mat * vec4(_vpos, 1.0); +lv.xy /= lv.w; +return 0.5 * lv.xyz + vec3(0.5); +} +vec2 cascadeCoordinates(int i, ivec2 textureSize, vec3 lvpos) { +float xScale = float(textureSize.y) / float(textureSize.x); +return vec2((float(i) + lvpos.x) * xScale, lvpos.y); +} +float readShadowMapDepth(ivec2 uv, sampler2D _depthTex) { +return rgba4ToFloat(texelFetch(_depthTex, uv, 0)); +} +float posIsInShadow(ivec2 uv, vec3 lvpos, sampler2D _depthTex) { +return readShadowMapDepth(uv, _depthTex) < lvpos.z ? 1.0 : 0.0; +} +float filterShadow(vec2 uv, vec3 lvpos, ivec2 texSize, sampler2D _depthTex) { +vec2 st = fract(uv * vec2(texSize) + vec2(0.5)); +ivec2 base = ivec2(uv * vec2(texSize) - vec2(0.5)); +float s00 = posIsInShadow(ivec2(base.x, base.y), lvpos, _depthTex); +float s10 = posIsInShadow(ivec2(base.x + 1, base.y), lvpos, _depthTex); +float s11 = posIsInShadow(ivec2(base.x + 1, base.y + 1), lvpos, _depthTex); +float s01 = posIsInShadow(ivec2(base.x, base.y + 1), lvpos, _depthTex); +return mix(mix(s00, s10, st.x), mix(s01, s11, st.x), st.y); +} +float readShadowMap(const in vec3 _vpos, float _linearDepth) { +mat4 mat; +int i = chooseCascade(_linearDepth, mat); +if (i >= numCascades) { return 0.0; } +vec3 lvpos = lightSpacePosition(_vpos, mat); +if (lvpos.z >= 1.0 || lvpos.x < 0.0 || lvpos.x > 1.0 || lvpos.y < 0.0 || lvpos.y > 1.0) { return 0.0; } +ivec2 size = textureSize(shadowMap, 0); +vec2 uv = cascadeCoordinates(i, size, lvpos); +return filterShadow(uv, lvpos, size, shadowMap); +}`)}},30228:function(e,t,r){r.d(t,{DT:function(){return d},NI:function(){return l},R5:function(){return c},av:function(){return s},jF:function(){return u}});var n=r(3965),i=r(82082),o=r(23410),a=r(11125);function s(e,t){t.hasColorTextureTransform?(e.vertex.uniforms.add(new a.c("colorTextureTransformMatrix",(e=>e.colorTextureTransformMatrix??n.Wd))),e.varyings.add("colorUV","vec2"),e.vertex.code.add(o.H`void forwardColorUV(){ +colorUV = (colorTextureTransformMatrix * vec3(vuv0, 1.0)).xy; +}`)):e.vertex.code.add(o.H`void forwardColorUV(){}`)}function l(e,t){t.hasNormalTextureTransform&&t.textureCoordinateType!==i.N.None?(e.vertex.uniforms.add(new a.c("normalTextureTransformMatrix",(e=>e.normalTextureTransformMatrix??n.Wd))),e.varyings.add("normalUV","vec2"),e.vertex.code.add(o.H`void forwardNormalUV(){ +normalUV = (normalTextureTransformMatrix * vec3(vuv0, 1.0)).xy; +}`)):e.vertex.code.add(o.H`void forwardNormalUV(){}`)}function c(e,t){t.hasEmissionTextureTransform&&t.textureCoordinateType!==i.N.None?(e.vertex.uniforms.add(new a.c("emissiveTextureTransformMatrix",(e=>e.emissiveTextureTransformMatrix??n.Wd))),e.varyings.add("emissiveUV","vec2"),e.vertex.code.add(o.H`void forwardEmissiveUV(){ +emissiveUV = (emissiveTextureTransformMatrix * vec3(vuv0, 1.0)).xy; +}`)):e.vertex.code.add(o.H`void forwardEmissiveUV(){}`)}function u(e,t){t.hasOcclusionTextureTransform&&t.textureCoordinateType!==i.N.None?(e.vertex.uniforms.add(new a.c("occlusionTextureTransformMatrix",(e=>e.occlusionTextureTransformMatrix??n.Wd))),e.varyings.add("occlusionUV","vec2"),e.vertex.code.add(o.H`void forwardOcclusionUV(){ +occlusionUV = (occlusionTextureTransformMatrix * vec3(vuv0, 1.0)).xy; +}`)):e.vertex.code.add(o.H`void forwardOcclusionUV(){}`)}function d(e,t){t.hasMetallicRoughnessTextureTransform&&t.textureCoordinateType!==i.N.None?(e.vertex.uniforms.add(new a.c("metallicRoughnessTextureTransformMatrix",(e=>e.metallicRoughnessTextureTransformMatrix??n.Wd))),e.varyings.add("metallicRoughnessUV","vec2"),e.vertex.code.add(o.H`void forwardMetallicRoughnessUV(){ +metallicRoughnessUV = (metallicRoughnessTextureTransformMatrix * vec3(vuv0, 1.0)).xy; +}`)):e.vertex.code.add(o.H`void forwardMetallicRoughnessUV(){}`)}},91024:function(e,t,r){r.d(t,{k:function(){return y}});var n=r(43036),i=r(91013),o=r(40017);class a extends i.x{constructor(e,t,r){super(e,"vec4",o.P.Pass,((r,n,i)=>r.setUniform4fv(e,t(n,i))),r)}}class s extends i.x{constructor(e,t,r){super(e,"float",o.P.Pass,((r,n,i)=>r.setUniform1fv(e,t(n,i))),r)}}var l=r(23410),c=r(11125),u=r(21414),d=(r(39994),r(19431),r(46332),r(3965),r(32114),r(3308)),h=(r(86717),r(81095)),f=(r(6923),r(36663)),m=r(74396),p=r(81977),v=(r(13802),r(4157),r(40266));let g=class extends m.Z{constructor(){super(...arguments),this.SCENEVIEW_HITTEST_RETURN_INTERSECTOR=!1,this.DECONFLICTOR_SHOW_VISIBLE=!1,this.DECONFLICTOR_SHOW_INVISIBLE=!1,this.DECONFLICTOR_SHOW_GRID=!1,this.LABELS_SHOW_BORDER=!1,this.TEXT_SHOW_BASELINE=!1,this.TEXT_SHOW_BORDER=!1,this.OVERLAY_DRAW_DEBUG_TEXTURE=!1,this.OVERLAY_SHOW_CENTER=!1,this.SHOW_POI=!1,this.TESTS_DISABLE_OPTIMIZATIONS=!1,this.TESTS_DISABLE_FAST_UPDATES=!1,this.DRAW_MESH_GEOMETRY_NORMALS=!1,this.FEATURE_TILE_FETCH_SHOW_TILES=!1,this.FEATURE_TILE_TREE_SHOW_TILES=!1,this.TERRAIN_TILE_TREE_SHOW_TILES=!1,this.I3S_TREE_SHOW_TILES=!1,this.I3S_SHOW_MODIFICATIONS=!1,this.LOD_INSTANCE_RENDERER_DISABLE_UPDATES=!1,this.LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL=!1,this.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES=!1,this.LINE_WIREFRAMES=!1}};(0,f._)([(0,p.Cb)()],g.prototype,"SCENEVIEW_HITTEST_RETURN_INTERSECTOR",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"DECONFLICTOR_SHOW_VISIBLE",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"DECONFLICTOR_SHOW_INVISIBLE",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"DECONFLICTOR_SHOW_GRID",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"LABELS_SHOW_BORDER",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"TEXT_SHOW_BASELINE",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"TEXT_SHOW_BORDER",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"OVERLAY_DRAW_DEBUG_TEXTURE",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"OVERLAY_SHOW_CENTER",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"SHOW_POI",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"TESTS_DISABLE_OPTIMIZATIONS",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"TESTS_DISABLE_FAST_UPDATES",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"DRAW_MESH_GEOMETRY_NORMALS",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"FEATURE_TILE_FETCH_SHOW_TILES",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"FEATURE_TILE_TREE_SHOW_TILES",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"TERRAIN_TILE_TREE_SHOW_TILES",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"I3S_TREE_SHOW_TILES",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"I3S_SHOW_MODIFICATIONS",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"LOD_INSTANCE_RENDERER_DISABLE_UPDATES",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES",void 0),(0,f._)([(0,p.Cb)()],g.prototype,"LINE_WIREFRAMES",void 0),g=(0,f._)([(0,v.j)("esri.views.3d.support.DebugFlags")],g);new g;var _,x;!function(e){e[e.Undefined=0]="Undefined",e[e.DefinedSize=1]="DefinedSize",e[e.DefinedScale=2]="DefinedScale"}(_||(_={})),function(e){e[e.Undefined=0]="Undefined",e[e.DefinedAngle=1]="DefinedAngle"}(x||(x={}));class T extends l.K{constructor(e){super(),this.vvSize=e?.size??null,this.vvColor=e?.color??null,this.vvOpacity=e?.opacity??null}}(0,d.Ue)(),(0,h.Ue)(),(0,d.Ue)();r(90160);const b=8;function y(e,t){const{vertex:r,attributes:i}=e;t.hasVvInstancing&&(t.vvSize||t.vvColor)&&i.add(u.T.INSTANCEFEATUREATTRIBUTE,"vec4"),t.vvSize?(r.uniforms.add(new n.J("vvSizeMinSize",(e=>e.vvSize.minSize))),r.uniforms.add(new n.J("vvSizeMaxSize",(e=>e.vvSize.maxSize))),r.uniforms.add(new n.J("vvSizeOffset",(e=>e.vvSize.offset))),r.uniforms.add(new n.J("vvSizeFactor",(e=>e.vvSize.factor))),r.uniforms.add(new c.c("vvSymbolRotationMatrix",(e=>e.vvSymbolRotationMatrix))),r.uniforms.add(new n.J("vvSymbolAnchor",(e=>e.vvSymbolAnchor))),r.code.add(l.H`vec3 vvScale(vec4 _featureAttribute) { +return clamp(vvSizeOffset + _featureAttribute.x * vvSizeFactor, vvSizeMinSize, vvSizeMaxSize); +} +vec4 vvTransformPosition(vec3 position, vec4 _featureAttribute) { +return vec4(vvSymbolRotationMatrix * ( vvScale(_featureAttribute) * (position + vvSymbolAnchor)), 1.0); +}`),r.code.add(l.H` + const float eps = 1.192092896e-07; + vec4 vvTransformNormal(vec3 _normal, vec4 _featureAttribute) { + vec3 vvScale = clamp(vvSizeOffset + _featureAttribute.x * vvSizeFactor, vvSizeMinSize + eps, vvSizeMaxSize); + return vec4(vvSymbolRotationMatrix * _normal / vvScale, 1.0); + } + + ${t.hasVvInstancing?l.H` + vec4 vvLocalNormal(vec3 _normal) { + return vvTransformNormal(_normal, instanceFeatureAttribute); + } + + vec4 localPosition() { + return vvTransformPosition(position, instanceFeatureAttribute); + }`:""} + `)):r.code.add(l.H`vec4 localPosition() { return vec4(position, 1.0); } +vec4 vvLocalNormal(vec3 _normal) { return vec4(_normal, 1.0); }`),t.vvColor?(r.constants.add("vvColorNumber","int",b),r.uniforms.add(new s("vvColorValues",(e=>e.vvColor.values),b),new a("vvColorColors",(e=>e.vvColor.colors),b)),r.code.add(l.H` + vec4 interpolateVVColor(float value) { + if (value <= vvColorValues[0]) { + return vvColorColors[0]; + } + + for (int i = 1; i < vvColorNumber; ++i) { + if (vvColorValues[i] >= value) { + float f = (value - vvColorValues[i-1]) / (vvColorValues[i] - vvColorValues[i-1]); + return mix(vvColorColors[i-1], vvColorColors[i], f); + } + } + return vvColorColors[vvColorNumber - 1]; + } + + vec4 vvGetColor(vec4 featureAttribute) { + return interpolateVVColor(featureAttribute.y); + } + + ${t.hasVvInstancing?l.H` + vec4 vvColor() { + return vvGetColor(instanceFeatureAttribute); + }`:"vec4 vvColor() { return vec4(1.0); }"} + `)):r.code.add(l.H`vec4 vvColor() { return vec4(1.0); }`)}},44391:function(e,t,r){r.d(t,{F:function(){return n},b:function(){return i}});const n=.1,i=.001},49745:function(e,t,r){r.d(t,{z:function(){return u}});var n=r(44391),i=r(23410);function o(e){e.fragment.code.add(i.H` + #define discardOrAdjustAlpha(color) { if (color.a < ${i.H.float(n.b)}) { discard; } } + `)}var a=r(91013);r(40017);class s extends a.x{constructor(e,t){super(e,"float",BindType.P.Draw,((r,n,i)=>r.setUniform1f(e,t(n,i))))}}var l=r(24603),c=r(70984);function u(e,t){d(e,t,new l.p("textureAlphaCutoff",(e=>e.textureAlphaCutoff)))}function d(e,t,r){const n=e.fragment;switch(t.alphaDiscardMode!==c.JJ.Mask&&t.alphaDiscardMode!==c.JJ.MaskBlend||n.uniforms.add(r),t.alphaDiscardMode){case c.JJ.Blend:return e.include(o);case c.JJ.Opaque:n.code.add(i.H`void discardOrAdjustAlpha(inout vec4 color) { +color.a = 1.0; +}`);break;case c.JJ.Mask:n.code.add(i.H`#define discardOrAdjustAlpha(color) { if (color.a < textureAlphaCutoff) { discard; } else { color.a = 1.0; } }`);break;case c.JJ.MaskBlend:e.fragment.code.add(i.H`#define discardOrAdjustAlpha(color) { if (color.a < textureAlphaCutoff) { discard; } }`)}}},77334:function(e,t,r){r.d(t,{GZ:function(){return u}});var n=r(36531),i=r(84164),o=r(56999),a=r(52721),s=r(93072),l=r(63371),c=r(23410);function u(e){e.fragment.uniforms.add(new l.N("projInfo",((e,t)=>function(e){const t=e.projectionMatrix;return 0===t[11]?(0,o.s)(d,2/(e.fullWidth*t[0]),2/(e.fullHeight*t[5]),(1+t[12])/t[0],(1+t[13])/t[5]):(0,o.s)(d,-2/(e.fullWidth*t[0]),-2/(e.fullHeight*t[5]),(1-t[8])/t[0],(1-t[9])/t[5])}(t.camera)))),e.fragment.uniforms.add(new s.A("zScale",((e,t)=>function(e){return 0===e.projectionMatrix[11]?(0,n.t8)(h,0,1):(0,n.t8)(h,1,0)}(t.camera)))),e.fragment.code.add(c.H`vec3 reconstructPosition(vec2 fragCoord, float depth) { +return vec3((fragCoord * projInfo.xy + projInfo.zw) * (zScale.x * depth + zScale.y), depth); +}`)}const d=(0,a.Ue)();const h=(0,i.Ue)()},5331:function(e,t,r){r.d(t,{$:function(){return i}});var n=r(23410);function i({code:e},t){t.doublePrecisionRequiresObfuscation?e.add(n.H`vec3 dpPlusFrc(vec3 a, vec3 b) { +return mix(a, a + b, vec3(notEqual(b, vec3(0)))); +} +vec3 dpMinusFrc(vec3 a, vec3 b) { +return mix(vec3(0), a - b, vec3(notEqual(a, b))); +} +vec3 dpAdd(vec3 hiA, vec3 loA, vec3 hiB, vec3 loB) { +vec3 t1 = dpPlusFrc(hiA, hiB); +vec3 e = dpMinusFrc(t1, hiA); +vec3 t2 = dpMinusFrc(hiB, e) + dpMinusFrc(hiA, dpMinusFrc(t1, e)) + loA + loB; +return t1 + t2; +}`):e.add(n.H`vec3 dpAdd(vec3 hiA, vec3 loA, vec3 hiB, vec3 loB) { +vec3 t1 = hiA + hiB; +vec3 e = t1 - hiA; +vec3 t2 = ((hiB - e) + (hiA - (t1 - e))) + loA + loB; +return t1 + t2; +}`)}},10938:function(e,t,r){r.d(t,{y:function(){return a}});var n=r(66352),i=r(23410);function o(e){e.code.add(i.H`vec4 premultiplyAlpha(vec4 v) { +return vec4(v.rgb * v.a, v.a); +} +vec3 rgb2hsv(vec3 c) { +vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); +vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy); +vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx); +float d = q.x - min(q.w, q.y); +float e = 1.0e-10; +return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), min(d / (q.x + e), 1.0), q.x); +} +vec3 hsv2rgb(vec3 c) { +vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); +vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); +return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); +} +float rgb2v(vec3 c) { +return max(c.x, max(c.y, c.z)); +}`)}function a(e){e.include(o),e.code.add(i.H` + vec3 mixExternalColor(vec3 internalColor, vec3 textureColor, vec3 externalColor, int mode) { + // workaround for artifacts in OSX using Intel Iris Pro + // see: https://devtopia.esri.com/WebGIS/arcgis-js-api/issues/10475 + vec3 internalMixed = internalColor * textureColor; + vec3 allMixed = internalMixed * externalColor; + + if (mode == ${i.H.int(n.a9.Multiply)}) { + return allMixed; + } + if (mode == ${i.H.int(n.a9.Ignore)}) { + return internalMixed; + } + if (mode == ${i.H.int(n.a9.Replace)}) { + return externalColor; + } + + // tint (or something invalid) + float vIn = rgb2v(internalMixed); + vec3 hsvTint = rgb2hsv(externalColor); + vec3 hsvOut = vec3(hsvTint.x, hsvTint.y, vIn * hsvTint.z); + return hsv2rgb(hsvOut); + } + + float mixExternalOpacity(float internalOpacity, float textureOpacity, float externalOpacity, int mode) { + // workaround for artifacts in OSX using Intel Iris Pro + // see: https://devtopia.esri.com/WebGIS/arcgis-js-api/issues/10475 + float internalMixed = internalOpacity * textureOpacity; + float allMixed = internalMixed * externalOpacity; + + if (mode == ${i.H.int(n.a9.Ignore)}) { + return internalMixed; + } + if (mode == ${i.H.int(n.a9.Replace)}) { + return externalOpacity; + } + + // multiply or tint (or something invalid) + return allMixed; + } + `)}},52446:function(e,t,r){r.d(t,{f:function(){return i}});var n=r(23410);function i(e){e.code.add(n.H`const float MAX_RGBA4_FLOAT = +15.0 / 16.0 + +15.0 / 16.0 / 16.0 + +15.0 / 16.0 / 16.0 / 16.0 + +15.0 / 16.0 / 16.0 / 16.0 / 16.0; +const vec4 FIXED_POINT_FACTORS_RGBA4 = vec4(1.0, 16.0, 16.0 * 16.0, 16.0 * 16.0 * 16.0); +vec4 floatToRgba4(const float value) { +float valueInValidDomain = clamp(value, 0.0, MAX_RGBA4_FLOAT); +vec4 fixedPointU4 = floor(fract(valueInValidDomain * FIXED_POINT_FACTORS_RGBA4) * 16.0); +const float toU4AsFloat = 1.0 / 15.0; +return fixedPointU4 * toU4AsFloat; +} +const vec4 RGBA4_2_FLOAT_FACTORS = vec4( +15.0 / (16.0), +15.0 / (16.0 * 16.0), +15.0 / (16.0 * 16.0 * 16.0), +15.0 / (16.0 * 16.0 * 16.0 * 16.0) +); +float rgba4ToFloat(vec4 rgba) { +return dot(rgba, RGBA4_2_FLOAT_FACTORS); +}`)}},9794:function(e,t,r){r.d(t,{n:function(){return i}});var n=r(23410);function i(e){e.code.add(n.H`const float MAX_RGBA_FLOAT = +255.0 / 256.0 + +255.0 / 256.0 / 256.0 + +255.0 / 256.0 / 256.0 / 256.0 + +255.0 / 256.0 / 256.0 / 256.0 / 256.0; +const vec4 FIXED_POINT_FACTORS = vec4(1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0); +vec4 float2rgba(const float value) { +float valueInValidDomain = clamp(value, 0.0, MAX_RGBA_FLOAT); +vec4 fixedPointU8 = floor(fract(valueInValidDomain * FIXED_POINT_FACTORS) * 256.0); +const float toU8AsFloat = 1.0 / 255.0; +return fixedPointU8 * toU8AsFloat; +} +const vec4 RGBA_2_FLOAT_FACTORS = vec4( +255.0 / (256.0), +255.0 / (256.0 * 256.0), +255.0 / (256.0 * 256.0 * 256.0), +255.0 / (256.0 * 256.0 * 256.0 * 256.0) +); +float rgba2float(vec4 rgba) { +return dot(rgba, RGBA_2_FLOAT_FACTORS); +}`)}},71354:function(e,t,r){r.d(t,{hY:function(){return f},Sv:function(){return m},_8:function(){return g}});var n=r(32114),i=r(3308),o=r(86717),a=r(81095),s=r(32006),l=r(43036),c=(r(24603),r(91013)),u=r(40017);class d extends c.x{constructor(e,t){super(e,"mat4",u.P.Draw,((r,n,i)=>r.setUniformMatrix4fv(e,t(n,i))))}}var h=r(87621);function f(e,t){t.instancedDoublePrecision?e.constants.add("cameraPosition","vec3",a.AG):e.uniforms.add(new s.B("cameraPosition",((e,t)=>(0,o.s)(v,t.camera.viewInverseTransposeMatrix[3]-e.origin[0],t.camera.viewInverseTransposeMatrix[7]-e.origin[1],t.camera.viewInverseTransposeMatrix[11]-e.origin[2]))))}function m(e,t){if(!t.instancedDoublePrecision)return void e.uniforms.add(new h.g("proj",((e,t)=>t.camera.projectionMatrix)),new d("view",((e,t)=>(0,n.Iu)(p,t.camera.viewMatrix,e.origin))),new s.B("localOrigin",(e=>e.origin)));const r=e=>(0,o.s)(v,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]);e.uniforms.add(new h.g("proj",((e,t)=>t.camera.projectionMatrix)),new h.g("view",((e,t)=>(0,n.Iu)(p,t.camera.viewMatrix,r(t)))),new l.J("localOrigin",((e,t)=>r(t))))}const p=(0,i.Ue)(),v=(0,a.Ue)();function g(e){e.uniforms.add(new h.g("viewNormal",((e,t)=>t.camera.viewInverseTransposeMatrix)))}},26482:function(e,t,r){r.d(t,{q:function(){return o}});var n=r(91013),i=r(40017);class o extends n.x{constructor(e,t){super(e,"vec2",i.P.Draw,((r,n,i,o)=>r.setUniform2fv(e,t(n,i,o))))}}},93072:function(e,t,r){r.d(t,{A:function(){return o}});var n=r(91013),i=r(40017);class o extends n.x{constructor(e,t){super(e,"vec2",i.P.Pass,((r,n,i)=>r.setUniform2fv(e,t(n,i))))}}},32006:function(e,t,r){r.d(t,{B:function(){return o}});var n=r(91013),i=r(40017);class o extends n.x{constructor(e,t){super(e,"vec3",i.P.Draw,((r,n,i,o)=>r.setUniform3fv(e,t(n,i,o))))}}},43036:function(e,t,r){r.d(t,{J:function(){return o}});var n=r(91013),i=r(40017);class o extends n.x{constructor(e,t){super(e,"vec3",i.P.Pass,((r,n,i)=>r.setUniform3fv(e,t(n,i))))}}},63371:function(e,t,r){r.d(t,{N:function(){return o}});var n=r(91013),i=r(40017);class o extends n.x{constructor(e,t){super(e,"vec4",i.P.Pass,((r,n,i)=>r.setUniform4fv(e,t(n,i))))}}},24603:function(e,t,r){r.d(t,{p:function(){return o}});var n=r(91013),i=r(40017);class o extends n.x{constructor(e,t){super(e,"float",i.P.Pass,((r,n,i)=>r.setUniform1f(e,t(n,i))))}}},59842:function(e,t,r){r.d(t,{_:function(){return o}});var n=r(91013),i=r(40017);class o extends n.x{constructor(e,t){super(e,"int",i.P.Pass,((r,n,i)=>r.setUniform1i(e,t(n,i))))}}},55784:function(e,t,r){r.d(t,{j:function(){return o}});var n=r(91013),i=r(40017);class o extends n.x{constructor(e,t){super(e,"mat3",i.P.Draw,((r,n,i)=>r.setUniformMatrix3fv(e,t(n,i))))}}},11125:function(e,t,r){r.d(t,{c:function(){return o}});var n=r(91013),i=r(40017);class o extends n.x{constructor(e,t){super(e,"mat3",i.P.Pass,((r,n,i)=>r.setUniformMatrix3fv(e,t(n,i))))}}},87621:function(e,t,r){r.d(t,{g:function(){return o}});var n=r(91013),i=r(40017);class o extends n.x{constructor(e,t){super(e,"mat4",i.P.Pass,((r,n,i)=>r.setUniformMatrix4fv(e,t(n,i))))}}},3961:function(e,t,r){r.d(t,{kG:function(){return c}});var n=r(70375),i=r(13802),o=r(40017),a=r(15095);const s=()=>i.Z.getLogger("esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder");class l{constructor(){this._includedModules=new Map}include(e,t){if(this._includedModules.has(e)){const r=this._includedModules.get(e);if(r!==t){s().error("Shader module included multiple times with different configuration.");const t=new Set;for(const n of Object.keys(r))r[n]!==e[n]&&t.add(n);for(const n of Object.keys(e))r[n]!==e[n]&&t.add(n);t.forEach((e=>{}))}}else this._includedModules.set(e,t),e(this.builder,t)}}class c extends l{constructor(){super(...arguments),this.vertex=new h,this.fragment=new h,this.attributes=new f,this.varyings=new m,this.extensions=new p,this.constants=new g,this.outputs=new v}get fragmentUniforms(){return this.fragment.uniforms.entries}get builder(){return this}generate(e){const t=this.extensions.generateSource(e),r=this.attributes.generateSource(e),n=this.varyings.generateSource(e),i="vertex"===e?this.vertex:this.fragment,o=i.uniforms.generateSource(),a=i.code.generateSource(),s="vertex"===e?x:_,l=this.constants.generateSource().concat(i.constants.generateSource()),c=this.outputs.generateSource(e);return`#version 300 es\n${t.join("\n")}\n\n${s}\n\n${l.join("\n")}\n\n${o.join("\n")}\n\n${r.join("\n")}\n\n${n.join("\n")}\n\n${c.join("\n")}\n\n${a.join("\n")}`}generateBindPass(e){const t=new Map;this.vertex.uniforms.entries.forEach((e=>{const r=e.bind[o.P.Pass];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[o.P.Pass];r&&t.set(e.name,r)}));const r=Array.from(t.values()),n=r.length;return(t,i)=>{for(let o=0;o{const r=e.bind[o.P.Draw];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[o.P.Draw];r&&t.set(e.name,r)}));const r=Array.from(t.values()),n=r.length;return(t,i,o)=>{for(let a=0;anull!=e.arraySize?`uniform ${e.type} ${e.name}[${e.arraySize}];`:`uniform ${e.type} ${e.name};`))}get entries(){return Array.from(this._entries.values())}}class d{constructor(){this._entries=new Array}add(e){this._entries.push(e)}generateSource(){return this._entries}}class h extends l{constructor(){super(...arguments),this.uniforms=new u,this.code=new d,this.constants=new g}get builder(){return this}}class f{constructor(){this._entries=new Array}add(e,t){this._entries.push([e,t])}generateSource(e){return"fragment"===e?[]:this._entries.map((e=>`in ${e[1]} ${e[0]};`))}}class m{constructor(){this._entries=new Map}add(e,t){this._entries.has(e)&&(0,a.hu)(this._entries.get(e)===t),this._entries.set(e,t)}generateSource(e){const t=new Array;return this._entries.forEach(((r,n)=>t.push("vertex"===e?`out ${r} ${n};`:`in ${r} ${n};`))),t}}class p{constructor(){this._entries=new Set}add(e){this._entries.add(e)}generateSource(e){const t="vertex"===e?p.ALLOWLIST_VERTEX:p.ALLOWLIST_FRAGMENT;return Array.from(this._entries).filter((e=>t.includes(e))).map((e=>`#extension ${e} : enable`))}}p.ALLOWLIST_FRAGMENT=["GL_EXT_shader_texture_lod","GL_OES_standard_derivatives"],p.ALLOWLIST_VERTEX=[];class v{constructor(){this._entries=new Map}add(e,t,r=0){const n=this._entries.get(r);n?(0,a.hu)(n.name===e&&n.type===t,`Fragment shader output location ${r} occupied`):this._entries.set(r,{name:e,type:t})}generateSource(e){if("vertex"===e)return[];0===this._entries.size&&this._entries.set(0,{name:v.DEFAULT_NAME,type:v.DEFAULT_TYPE});const t=new Array;return this._entries.forEach(((e,r)=>t.push(`layout(location = ${r}) out ${e.type} ${e.name};`))),t}}v.DEFAULT_TYPE="vec4",v.DEFAULT_NAME="fragColor";class g{constructor(){this._entries=new Set}add(e,t,r){let n="ERROR_CONSTRUCTOR_STRING";switch(t){case"float":n=g._numberToFloatStr(r);break;case"int":n=g._numberToIntStr(r);break;case"bool":n=r.toString();break;case"vec2":n=`vec2(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])})`;break;case"vec3":n=`vec3(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])}, ${g._numberToFloatStr(r[2])})`;break;case"vec4":n=`vec4(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])}, ${g._numberToFloatStr(r[2])}, ${g._numberToFloatStr(r[3])})`;break;case"ivec2":n=`ivec2(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])})`;break;case"ivec3":n=`ivec3(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])})`;break;case"ivec4":n=`ivec4(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])}, ${g._numberToIntStr(r[3])})`;break;case"mat2":case"mat3":case"mat4":n=`${t}(${Array.prototype.map.call(r,(e=>g._numberToFloatStr(e))).join(", ")})`}return this._entries.add(`const ${t} ${e} = ${n};`),this}static _numberToIntStr(e){return e.toFixed(0)}static _numberToFloatStr(e){return Number.isInteger(e)?e.toFixed(1):e.toString()}generateSource(){return Array.from(this._entries)}}const _="#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n precision highp sampler2D;\n#else\n precision mediump float;\n precision mediump sampler2D;\n#endif",x="precision highp float;\nprecision highp sampler2D;"},37649:function(e,t,r){r.d(t,{R:function(){return o}});var n=r(91013),i=r(40017);class o extends n.x{constructor(e,t){super(e,"sampler2D",i.P.Draw,((r,n,i)=>r.bindTexture(e,t(n,i))))}}},15176:function(e,t,r){r.d(t,{A:function(){return o}});var n=r(91013),i=r(40017);class o extends n.x{constructor(e,t){super(e,"sampler2D",i.P.Pass,((r,n,i)=>r.bindTexture(e,t(n,i))))}}},91013:function(e,t,r){r.d(t,{x:function(){return i}});var n=r(40017);class i{constructor(e,t,r,i,o=null){if(this.name=e,this.type=t,this.arraySize=o,this.bind={[n.P.Pass]:null,[n.P.Draw]:null},i)switch(r){case n.P.Pass:this.bind[n.P.Pass]=i;break;case n.P.Draw:this.bind[n.P.Draw]=i}}equals(e){return this.type===e.type&&this.name===e.name&&this.arraySize===e.arraySize}}},23410:function(e,t,r){r.d(t,{H:function(){return i},K:function(){return n}});const n=class{};function i(e,...t){let r="";for(let n=0;n0)):[],this._parameterNames||(this._parameterNames=[])}get key(){return this._keyDirty&&(this._keyDirty=!1,this._key=String.fromCharCode.apply(String,this._parameterBits)),this._key}snapshot(){const e=this._parameterNames,t={key:this.key};for(const r of e)t[r]=this[r];return t}}function o(e={}){return(t,r)=>{if(t._parameterNames=t._parameterNames??[],t._parameterNames.push(r),null!=e.constValue)Object.defineProperty(t,r,{get:()=>e.constValue});else{const n=t._parameterNames.length-1,i=e.count||2,o=Math.ceil(Math.log2(i)),a=t._parameterBits??[0];let s=0;for(;a[s]+o>16;)s++,s>=a.length&&a.push(0);t._parameterBits=a;const l=a[s],c=(1<this._texture=e)),this._acquire(e.normalTextureId,(e=>this._textureNormal=e)),this._acquire(e.emissiveTextureId,(e=>this._textureEmissive=e)),this._acquire(e.occlusionTextureId,(e=>this._textureOcclusion=e)),this._acquire(e.metallicRoughnessTextureId,(e=>this._textureMetallicRoughness=e))}dispose(){this._texture=(0,n.RY)(this._texture),this._textureNormal=(0,n.RY)(this._textureNormal),this._textureEmissive=(0,n.RY)(this._textureEmissive),this._textureOcclusion=(0,n.RY)(this._textureOcclusion),this._textureMetallicRoughness=(0,n.RY)(this._textureMetallicRoughness),this._disposed=!0}ensureResources(e){return 0===this._numLoading?a.Rw.LOADED:a.Rw.LOADING}get textureBindParameters(){return new c(null!=this._texture?this._texture.glTexture:null,null!=this._textureNormal?this._textureNormal.glTexture:null,null!=this._textureEmissive?this._textureEmissive.glTexture:null,null!=this._textureOcclusion?this._textureOcclusion.glTexture:null,null!=this._textureMetallicRoughness?this._textureMetallicRoughness.glTexture:null)}updateTexture(e){null!=this._texture&&e===this._texture.id||(this._texture=(0,n.RY)(this._texture),this._textureId=e,this._acquire(this._textureId,(e=>this._texture=e)))}_acquire(e,t){if(null==e)return void t(null);const r=this._textureRepository.acquire(e);if((0,i.y8)(r))return++this._numLoading,void r.then((e=>{if(this._disposed)return(0,n.RY)(e),void t(null);t(e)})).finally((()=>--this._numLoading));t(r)}}class c extends o.K{constructor(e=null,t=null,r=null,n=null,i=null,o,a){super(),this.texture=e,this.textureNormal=t,this.textureEmissive=r,this.textureOcclusion=n,this.textureMetallicRoughness=i,this.scale=o,this.normalTextureTransformMatrix=a}}},40526:function(e,t,r){r.d(t,{Z:function(){return O}});var n=r(3308),i=r(86717),o=r(35914),a=r(86098);function s(e){if(e.length=1),(0,d.hu)(3===r.size||4===r.size);const{data:n,size:o,indices:a}=r;(0,d.hu)(a.length%this._numIndexPerPrimitive==0),(0,d.hu)(a.length>=e.length*this._numIndexPerPrimitive);const s=e.length;let l=o*a[this._numIndexPerPrimitive*e[0]];f.clear(),f.push(l);const c=(0,u.al)(n[l],n[l+1],n[l+2]),h=(0,u.d9)(c);for(let t=0;t0&&++l;if(l<2)return;const c=new Array(8);for(let e=0;e<8;++e)c[e]=n[e]>0?new Uint32Array(n[e]):void 0;for(let e=0;e<8;++e)n[e]=0;for(let e=0;e_()));const T=(0,u.Ue)(),b=(0,u.Ue)();const y=(0,u.Ue)(),S=(0,u.Ue)(),A=(0,u.Ue)(),E=(0,u.Ue)();var w=r(7958);class C{constructor(e){this.channel=e,this.id=(0,w.D)()}}var M=r(21414);r(30560);(0,u.Ue)(),new Float32Array(6);class O extends m.c{constructor(e,t,r=null,n=p.U.Mesh,i=null,a=-1){super(),this.material=e,this.mapPositions=r,this.type=n,this.objectAndLayerIdColor=i,this.edgeIndicesLength=a,this.visible=!0,this._attributes=new Map,this._boundingInfo=null;for(const[e,r]of t)this._attributes.set(e,{...r,indices:(0,o.mi)(r.indices)}),e===M.T.POSITION&&(this.edgeIndicesLength=this.edgeIndicesLength<0?this._attributes.get(e).indices.length:this.edgeIndicesLength)}instantiate(e={}){const t=new O(e.material||this.material,[],this.mapPositions,this.type,this.objectAndLayerIdColor,this.edgeIndicesLength);return this._attributes.forEach(((e,r)=>{e.exclusive=!1,t._attributes.set(r,e)})),t._boundingInfo=this._boundingInfo,t.transformation=e.transformation||this.transformation,t}get attributes(){return this._attributes}getMutableAttribute(e){let t=this._attributes.get(e);return t&&!t.exclusive&&(t={...t,exclusive:!0,data:s(t.data)},this._attributes.set(e,t)),t}setAttributeData(e,t){const r=this._attributes.get(e);r&&this._attributes.set(e,{...r,exclusive:!0,data:t})}get indexCount(){const e=this._attributes.values().next().value.indices;return e?.length??0}get faceCount(){return this.indexCount/3}get boundingInfo(){return null==this._boundingInfo&&(this._boundingInfo=this._calculateBoundingInfo()),this._boundingInfo}computeAttachmentOrigin(e){return!!(this.type===p.U.Mesh?this._computeAttachmentOriginTriangles(e):this.type===p.U.Line?this._computeAttachmentOriginLines(e):this._computeAttachmentOriginPoints(e))&&(null!=this._transformation&&(0,i.e)(e,e,this._transformation),!0)}_computeAttachmentOriginTriangles(e){return function(e,t){if(!e)return!1;const{size:r,data:n,indices:o}=e;(0,i.s)(t,0,0,0),(0,i.s)(E,0,0,0);let a=0,s=0;for(let e=0;e0?((0,i.g)(r,r,(0,i.h)(y,y,h)),n+=h):0===n&&((0,i.g)(E,E,y),o++)}return 0!==n?((0,i.h)(r,r,1/n),!0):0!==o&&((0,i.h)(r,E,1/o),!0)}(t,function(e,t){return!(!("isClosed"in e)||!e.isClosed)&&t.indices.length>2}(this.material.parameters,t),e)}_computeAttachmentOriginPoints(e){return function(e,t){if(!e)return!1;const{size:r,data:n,indices:o}=e;(0,i.s)(t,0,0,0);let a=-1,s=0;for(let e=0;e1&&(0,i.h)(t,t,1/s),s>0}(this.attributes.get(M.T.POSITION),e)}invalidateBoundingInfo(){this._boundingInfo=null}_calculateBoundingInfo(){const e=this.attributes.get(M.T.POSITION);if(!e||0===e.indices.length)return null;const t=this.type===p.U.Mesh?3:1;(0,d.hu)(e.indices.length%t==0,"Indexing error: "+e.indices.length+" not divisible by "+t);const r=(0,o.KF)(e.indices.length/t);return new h(r,t,e)}get transformation(){return this._transformation??n.Wd}set transformation(e){this._transformation=e&&e!==n.Wd?(0,n.d9)(e):null}addHighlight(){const e=new C(l.V_.Highlight);return this.highlights=function(e,t){return null==e&&(e=[]),e.push(t),e}(this.highlights,e),e}removeHighlight(e){this.highlights=function(e,t){if(null==e)return null;const r=e.filter((e=>e!==t));return 0===r.length?null:r}(this.highlights,e)}}},90160:function(e,t,r){r.d(t,{F5:function(){return d},yD:function(){return o}});var n=r(81095),i=r(23410);r(12928);var o,a=r(70984),s=r(10107),l=r(95399),c=r(5474),u=r(13705);class d extends s.c{constructor(e,t){super(),this.type=l.U.Material,this.supportsEdges=!1,this._visible=!0,this._renderPriority=0,this._vertexAttributeLocations=c.i,this._pp0=(0,n.al)(0,0,1),this._pp1=(0,n.al)(0,0,0),this._parameters=(0,u.Uf)(e,t),this.validateParameters(this._parameters)}get parameters(){return this._parameters}update(e){return!1}setParameters(e,t=!0){(0,u.LO)(this._parameters,e)&&(this.validateParameters(this._parameters),t&&this.parametersChanged())}validateParameters(e){}get visible(){return this._visible}set visible(e){e!==this._visible&&(this._visible=e,this.parametersChanged())}shouldRender(e){return this.isVisible()&&this.isVisibleForOutput(e.output)&&(!this.parameters.isDecoration||e.bindParameters.decorations===a.Iq.ON)&&0!=(this.parameters.renderOccluded&e.renderOccludedMask)}isVisibleForOutput(e){return!0}get renderPriority(){return this._renderPriority}set renderPriority(e){e!==this._renderPriority&&(this._renderPriority=e,this.parametersChanged())}get vertexAttributeLocations(){return this._vertexAttributeLocations}isVisible(){return this._visible}parametersChanged(){this.repository?.materialChanged(this)}queryRenderOccludedState(e){return this.isVisible()&&this.parameters.renderOccluded===e}intersectDraped(e,t,r,n,i,o){return this._pp0[0]=this._pp1[0]=n[0],this._pp0[1]=this._pp1[1]=n[1],this.intersect(e,t,r,this._pp0,this._pp1,i)}}!function(e){e[e.None=0]="None",e[e.Occlude=1]="Occlude",e[e.Transparent=2]="Transparent",e[e.OccludeAndTransparent=4]="OccludeAndTransparent",e[e.OccludeAndTransparentStencil=8]="OccludeAndTransparentStencil",e[e.Opaque=16]="Opaque"}(o||(o={}));class h extends i.K{constructor(){super(...arguments),this.renderOccluded=o.Occlude,this.isDecoration=!1}}},12045:function(e,t,r){r.d(t,{Bh:function(){return f},IB:function(){return l},j7:function(){return c},je:function(){return h},ve:function(){return u},wu:function(){return a}});var n=r(42842),i=r(91907),o=r(17346);const a=(0,o.wK)(i.zi.SRC_ALPHA,i.zi.ONE,i.zi.ONE_MINUS_SRC_ALPHA,i.zi.ONE_MINUS_SRC_ALPHA),s=(0,o.if)(i.zi.ONE,i.zi.ONE),l=(0,o.if)(i.zi.ZERO,i.zi.ONE_MINUS_SRC_ALPHA);function c(e){return e===n.A.FrontFace?null:e===n.A.Alpha?l:s}const u=5e5,d={factor:-1,units:-2};function h(e){return e?d:null}function f(e,t=i.wb.LESS){return e===n.A.NONE||e===n.A.FrontFace?t:i.wb.LEQUAL}},95194:function(e,t,r){r.d(t,{$:function(){return o}});var n=r(17135),i=r(6174);class o{constructor(e,t,r){this._context=e,this._locations=r,this._textures=new Map,this._freeTextureUnits=new n.Z({deallocator:null}),this._glProgram=e.programCache.acquire(t.generate("vertex"),t.generate("fragment"),r),this._glProgram.stop=()=>{throw new Error("Wrapped _glProgram used directly")},this.bindPass=t.generateBindPass(this),this.bindDraw=t.generateBindDraw(this),this._fragmentUniforms=(0,i.hZ)()?t.fragmentUniforms:null}dispose(){this._glProgram.dispose()}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(e,t){this._glProgram.setUniform1i(e,t?1:0)}setUniform1i(e,t){this._glProgram.setUniform1i(e,t)}setUniform1f(e,t){this._glProgram.setUniform1f(e,t)}setUniform2fv(e,t){this._glProgram.setUniform2fv(e,t)}setUniform3fv(e,t){this._glProgram.setUniform3fv(e,t)}setUniform4fv(e,t){this._glProgram.setUniform4fv(e,t)}setUniformMatrix3fv(e,t){this._glProgram.setUniformMatrix3fv(e,t)}setUniformMatrix4fv(e,t){this._glProgram.setUniformMatrix4fv(e,t)}setUniform1fv(e,t){this._glProgram.setUniform1fv(e,t)}setUniform1iv(e,t){this._glProgram.setUniform1iv(e,t)}setUniform2iv(e,t){this._glProgram.setUniform3iv(e,t)}setUniform3iv(e,t){this._glProgram.setUniform3iv(e,t)}setUniform4iv(e,t){this._glProgram.setUniform4iv(e,t)}assertCompatibleVertexAttributeLocations(e){e.locations,this._locations}stop(){this._textures.clear(),this._freeTextureUnits.clear()}bindTexture(e,t){if(null==t?.glName){const t=this._textures.get(e);return t&&(this._context.bindTexture(null,t.unit),this._freeTextureUnit(t),this._textures.delete(e)),null}let r=this._textures.get(e);return null==r?(r=this._allocTextureUnit(t),this._textures.set(e,r)):r.texture=t,this._context.useProgram(this),this.setUniform1i(e,r.unit),this._context.bindTexture(t,r.unit),r.unit}rebindTextures(){this._context.useProgram(this),this._textures.forEach(((e,t)=>{this._context.bindTexture(e.texture,e.unit),this.setUniform1i(t,e.unit)})),this._fragmentUniforms?.forEach((e=>{"sampler2D"!==e.type&&"samplerCube"!==e.type||this._textures.has(e.name)}))}_allocTextureUnit(e){return{texture:e,unit:0===this._freeTextureUnits.length?this._textures.size:this._freeTextureUnits.pop()}}_freeTextureUnit(e){this._freeTextureUnits.push(e.unit)}}},46378:function(e,t,r){var n;r.d(t,{r:function(){return n}}),function(e){e[e.INTEGRATED_MESH=0]="INTEGRATED_MESH",e[e.OPAQUE_TERRAIN=1]="OPAQUE_TERRAIN",e[e.OPAQUE_MATERIAL=2]="OPAQUE_MATERIAL",e[e.OPAQUE_NO_SSAO_DEPTH=3]="OPAQUE_NO_SSAO_DEPTH",e[e.TRANSPARENT_MATERIAL=4]="TRANSPARENT_MATERIAL",e[e.TRANSPARENT_NO_SSAO_DEPTH=5]="TRANSPARENT_NO_SSAO_DEPTH",e[e.TRANSPARENT_TERRAIN=6]="TRANSPARENT_TERRAIN",e[e.TRANSPARENT_DEPTH_WRITE_DISABLED_MATERIAL=7]="TRANSPARENT_DEPTH_WRITE_DISABLED_MATERIAL",e[e.OCCLUDED_TERRAIN=8]="OCCLUDED_TERRAIN",e[e.OCCLUDER_MATERIAL=9]="OCCLUDER_MATERIAL",e[e.TRANSPARENT_OCCLUDER_MATERIAL=10]="TRANSPARENT_OCCLUDER_MATERIAL",e[e.OCCLUSION_PIXELS=11]="OCCLUSION_PIXELS",e[e.ANTIALIASING=12]="ANTIALIASING",e[e.COMPOSITE=13]="COMPOSITE",e[e.BLIT=14]="BLIT",e[e.SSAO=15]="SSAO",e[e.HIGHLIGHT=16]="HIGHLIGHT",e[e.SHADOW_HIGHLIGHT=17]="SHADOW_HIGHLIGHT",e[e.ENVIRONMENT_OPAQUE=18]="ENVIRONMENT_OPAQUE",e[e.ENVIRONMENT_TRANSPARENT=19]="ENVIRONMENT_TRANSPARENT",e[e.LASERLINES=20]="LASERLINES",e[e.LASERLINES_CONTRAST_CONTROL=21]="LASERLINES_CONTRAST_CONTROL",e[e.HUD_MATERIAL=22]="HUD_MATERIAL",e[e.LABEL_MATERIAL=23]="LABEL_MATERIAL",e[e.LINE_CALLOUTS=24]="LINE_CALLOUTS",e[e.LINE_CALLOUTS_HUD_DEPTH=25]="LINE_CALLOUTS_HUD_DEPTH",e[e.DRAPED_MATERIAL=26]="DRAPED_MATERIAL",e[e.DRAPED_WATER=27]="DRAPED_WATER",e[e.VOXEL=28]="VOXEL",e[e.MAX_SLOTS=29]="MAX_SLOTS"}(n||(n={}))},42842:function(e,t,r){var n;r.d(t,{A:function(){return n}}),function(e){e[e.Color=0]="Color",e[e.Alpha=1]="Alpha",e[e.FrontFace=2]="FrontFace",e[e.NONE=3]="NONE",e[e.COUNT=4]="COUNT"}(n||(n={}))},70984:function(e,t,r){var n,i,o,a,s,l,c,u,d;r.d(t,{Gv:function(){return i},Iq:function(){return u},JJ:function(){return c},Rw:function(){return a},Ti:function(){return d},V_:function(){return l},Vr:function(){return n},hU:function(){return s}}),function(e){e[e.None=0]="None",e[e.Front=1]="Front",e[e.Back=2]="Back",e[e.COUNT=3]="COUNT"}(n||(n={})),function(e){e[e.Less=0]="Less",e[e.Lequal=1]="Lequal",e[e.COUNT=2]="COUNT"}(i||(i={})),function(e){e[e.BACKGROUND=0]="BACKGROUND",e[e.UPDATE=1]="UPDATE"}(o||(o={})),function(e){e[e.NOT_LOADED=0]="NOT_LOADED",e[e.LOADING=1]="LOADING",e[e.LOADED=2]="LOADED"}(a||(a={})),function(e){e[e.IntegratedMeshMaskExcluded=1]="IntegratedMeshMaskExcluded",e[e.OutlineVisualElementMask=2]="OutlineVisualElementMask"}(s||(s={})),function(e){e[e.Highlight=0]="Highlight",e[e.MaskOccludee=1]="MaskOccludee",e[e.COUNT=2]="COUNT"}(l||(l={})),function(e){e[e.Blend=0]="Blend",e[e.Opaque=1]="Opaque",e[e.Mask=2]="Mask",e[e.MaskBlend=3]="MaskBlend",e[e.COUNT=4]="COUNT"}(c||(c={})),function(e){e[e.OFF=0]="OFF",e[e.ON=1]="ON"}(u||(u={})),function(e){e.DDS_ENCODING="image/vnd-ms.dds",e.KTX2_ENCODING="image/ktx2",e.BASIS_ENCODING="image/x.basis"}(d||(d={}))},13705:function(e,t,r){r.d(t,{FZ:function(){return M},Uf:function(){return E},Bw:function(){return v},LO:function(){return w},Hx:function(){return A}});var n=r(7753),i=r(19431),o=r(86717),a=r(81095),s=r(37116),l=r(95399);r(65684);function c(e,t,r){const n=r.parameters;return h.scale=Math.min(n.divisor/(t-n.offset),1),h.factor=function(e){return Math.abs(e*e*e)}(e),h}function u(e,t){return(0,i.t7)(e*Math.max(t.scale,t.minScaleFactor),e,t.factor)}function d(e,t,r,n){return u(e,c(t,r,n))}(0,i.Vl)(10),(0,i.Vl)(12),(0,i.Vl)(70),(0,i.Vl)(40);const h={scale:0,factor:0,minScaleFactor:0};var f=r(15095),m=r(21414);const p=(0,s.Ue)();function v(e,t,r,n,i,o){if(e.visible)if(e.boundingInfo){(0,f.hu)(e.type===l.U.Mesh);const a=t.tolerance;_(e.boundingInfo,r,n,a,i,o)}else{const t=e.attributes.get(m.T.POSITION),a=t.indices;T(r,n,0,a.length/3,a,t,void 0,i,o)}}const g=(0,a.Ue)();function _(e,t,r,n,i,a){if(null==e)return;const l=function(e,t,r){return(0,o.s)(r,1/(t[0]-e[0]),1/(t[1]-e[1]),1/(t[2]-e[2]))}(t,r,g);if((0,s.op)(p,e.bbMin),(0,s.Tn)(p,e.bbMax),null!=i&&i.applyToAabb(p),function(e,t,r,n){return function(e,t,r,n,i){const o=(e[0]-n-t[0])*r[0],a=(e[3]+n-t[0])*r[0];let s=Math.min(o,a),l=Math.max(o,a);const c=(e[1]-n-t[1])*r[1],u=(e[4]+n-t[1])*r[1];if(l=Math.min(l,Math.max(c,u)),l<0)return!1;if(s=Math.max(s,Math.min(c,u)),s>l)return!1;const d=(e[2]-n-t[2])*r[2],h=(e[5]+n-t[2])*r[2];return l=Math.min(l,Math.max(d,h)),!(l<0)&&(s=Math.max(s,Math.min(d,h)),!(s>l)&&sO){const o=e.getChildren();if(void 0!==o){for(const e of o)_(e,t,r,n,i,a);return}}T(t,r,0,l,s.indices,s,o,i,a)}}const x=(0,a.Ue)();function T(e,t,r,n,i,o,a,s,l){if(a)return function(e,t,r,n,i,o,a,s,l){const{data:c,stride:u}=o,d=e[0],h=e[1],f=e[2],m=t[0]-d,p=t[1]-h,v=t[2]-f;for(let e=r;e0){if(z<0||z>F)continue}else if(z>0||z0){if(j<0||z+j>F)continue}else if(j>0||z+j=0&&l(k,S(C,M,O,R,I,P,x),t,!1)}}(e,t,r,n,i,o,a,s,l);const{data:c,stride:u}=o,d=e[0],h=e[1],f=e[2],m=t[0]-d,p=t[1]-h,v=t[2]-f;for(let e=r,t=3*r;e0){if(B<0||B>H)continue}else if(B>0||B0){if(V<0||B+V>H)continue}else if(V>0||B+V=0&&l(W,S(E,w,C,M,O,R,x),e,!1)}}const b=(0,a.Ue)(),y=(0,a.Ue)();function S(e,t,r,n,i,a,s){return(0,o.s)(b,e,t,r),(0,o.s)(y,n,i,a),(0,o.b)(s,b,y),(0,o.n)(s,s),s}function A(e,t,r,n,o){let a=(r.screenLength||0)*e.pixelRatio;null!=o&&(a=d(a,n,t,o));const s=a*Math.tan(.5*e.fovY)/(.5*e.fullHeight);return(0,i.uZ)(s*t,r.minWorldLength||0,null!=r.maxWorldLength?r.maxWorldLength:1/0)}function E(e,t){const r=t?E(t):{};for(const t in e){let n=e[t];n?.forEach&&(n=C(n)),null==n&&t in r||(r[t]=n)}return r}function w(e,t){let r=!1;for(const i in t){const o=t[i];void 0!==o&&(Array.isArray(o)?null===e[i]?(e[i]=o.slice(),r=!0):(0,n.Vx)(e[i],o)&&(r=!0):e[i]!==o&&(r=!0,e[i]=o))}return r}function C(e){const t=[];return e.forEach((e=>t.push(e))),t}const M={multiply:1,ignore:2,replace:3,tint:4},O=1e3},22855:function(e,t,r){var n;r.d(t,{n:function(){return n}}),function(e){e[e.ANIMATING=0]="ANIMATING",e[e.INTERACTING=1]="INTERACTING",e[e.IDLE=2]="IDLE"}(n||(n={}))},30560:function(e,t,r){function n(e,t,r){for(let n=0;ne===n.Vr.Back?s:e===n.Vr.Front?l:null,u={zNear:0,zFar:1},d={r:!0,g:!0,b:!0,a:!0};function h(e){return A.intern(e)}function f(e){return w.intern(e)}function m(e){return M.intern(e)}function p(e){return R.intern(e)}function v(e){return P.intern(e)}function g(e){return H.intern(e)}function _(e){return F.intern(e)}function x(e){return B.intern(e)}function T(e){return z.intern(e)}function b(e){return V.intern(e)}class y{constructor(e,t){this._makeKey=e,this._makeRef=t,this._interns=new Map}intern(e){if(!e)return null;const t=this._makeKey(e),r=this._interns;return r.has(t)||r.set(t,this._makeRef(e)),r.get(t)??null}}function S(e){return"["+e.join(",")+"]"}const A=new y(E,(e=>({__tag:"Blending",...e})));function E(e){return e?S([e.srcRgb,e.srcAlpha,e.dstRgb,e.dstAlpha,e.opRgb,e.opAlpha,e.color.r,e.color.g,e.color.b,e.color.a]):null}const w=new y(C,(e=>({__tag:"Culling",...e})));function C(e){return e?S([e.face,e.mode]):null}const M=new y(O,(e=>({__tag:"PolygonOffset",...e})));function O(e){return e?S([e.factor,e.units]):null}const R=new y(I,(e=>({__tag:"DepthTest",...e})));function I(e){return e?S([e.func]):null}const P=new y(N,(e=>({__tag:"StencilTest",...e})));function N(e){return e?S([e.function.func,e.function.ref,e.function.mask,e.operation.fail,e.operation.zFail,e.operation.zPass]):null}const H=new y(L,(e=>({__tag:"DepthWrite",...e})));function L(e){return e?S([e.zNear,e.zFar]):null}const F=new y(D,(e=>({__tag:"ColorWrite",...e})));function D(e){return e?S([e.r,e.g,e.b,e.a]):null}const B=new y(U,(e=>({__tag:"StencilWrite",...e})));function U(e){return e?S([e.mask]):null}const z=new y(G,(e=>({__tag:"DrawBuffers",...e})));function G(e){return e?S(e.buffers):null}const V=new y((function(e){return e?S([E(e.blending),C(e.culling),O(e.polygonOffset),I(e.depthTest),N(e.stencilTest),L(e.depthWrite),D(e.colorWrite),U(e.stencilWrite),G(e.drawBuffers)]):null}),(e=>({blending:h(e.blending),culling:f(e.culling),polygonOffset:m(e.polygonOffset),depthTest:p(e.depthTest),stencilTest:v(e.stencilTest),depthWrite:g(e.depthWrite),colorWrite:_(e.colorWrite),stencilWrite:x(e.stencilWrite),drawBuffers:T(e.drawBuffers)})));class W{constructor(e){this._pipelineInvalid=!0,this._blendingInvalid=!0,this._cullingInvalid=!0,this._polygonOffsetInvalid=!0,this._depthTestInvalid=!0,this._stencilTestInvalid=!0,this._depthWriteInvalid=!0,this._colorWriteInvalid=!0,this._stencilWriteInvalid=!0,this._drawBuffersInvalid=!0,this._stateSetters=e}setPipeline(e){(this._pipelineInvalid||e!==this._pipeline)&&(this._setBlending(e.blending),this._setCulling(e.culling),this._setPolygonOffset(e.polygonOffset),this._setDepthTest(e.depthTest),this._setStencilTest(e.stencilTest),this._setDepthWrite(e.depthWrite),this._setColorWrite(e.colorWrite),this._setStencilWrite(e.stencilWrite),this._setDrawBuffers(e.drawBuffers),this._pipeline=e),this._pipelineInvalid=!1}invalidateBlending(){this._blendingInvalid=!0,this._pipelineInvalid=!0}invalidateCulling(){this._cullingInvalid=!0,this._pipelineInvalid=!0}invalidatePolygonOffset(){this._polygonOffsetInvalid=!0,this._pipelineInvalid=!0}invalidateDepthTest(){this._depthTestInvalid=!0,this._pipelineInvalid=!0}invalidateStencilTest(){this._stencilTestInvalid=!0,this._pipelineInvalid=!0}invalidateDepthWrite(){this._depthWriteInvalid=!0,this._pipelineInvalid=!0}invalidateColorWrite(){this._colorWriteInvalid=!0,this._pipelineInvalid=!0}invalidateStencilWrite(){this._stencilTestInvalid=!0,this._pipelineInvalid=!0}invalidateDrawBuffers(){this._drawBuffersInvalid=!0,this._pipelineInvalid=!0}_setBlending(e){this._blending=this._setSubState(e,this._blending,this._blendingInvalid,this._stateSetters.setBlending),this._blendingInvalid=!1}_setCulling(e){this._culling=this._setSubState(e,this._culling,this._cullingInvalid,this._stateSetters.setCulling),this._cullingInvalid=!1}_setPolygonOffset(e){this._polygonOffset=this._setSubState(e,this._polygonOffset,this._polygonOffsetInvalid,this._stateSetters.setPolygonOffset),this._polygonOffsetInvalid=!1}_setDepthTest(e){this._depthTest=this._setSubState(e,this._depthTest,this._depthTestInvalid,this._stateSetters.setDepthTest),this._depthTestInvalid=!1}_setStencilTest(e){this._stencilTest=this._setSubState(e,this._stencilTest,this._stencilTestInvalid,this._stateSetters.setStencilTest),this._stencilTestInvalid=!1}_setDepthWrite(e){this._depthWrite=this._setSubState(e,this._depthWrite,this._depthWriteInvalid,this._stateSetters.setDepthWrite),this._depthWriteInvalid=!1}_setColorWrite(e){this._colorWrite=this._setSubState(e,this._colorWrite,this._colorWriteInvalid,this._stateSetters.setColorWrite),this._colorWriteInvalid=!1}_setStencilWrite(e){this._stencilWrite=this._setSubState(e,this._stencilWrite,this._stencilWriteInvalid,this._stateSetters.setStencilWrite),this._stencilTestInvalid=!1}_setDrawBuffers(e){this._drawBuffers=this._setSubState(e,this._drawBuffers,this._drawBuffersInvalid,this._stateSetters.setDrawBuffers),this._drawBuffersInvalid=!1}_setSubState(e,t,r,n){return(r||e!==t)&&(n(e),this._pipelineInvalid=!0),e}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/124.023165bd499c17fcba07.js b/docs/sentinel1-explorer/124.023165bd499c17fcba07.js new file mode 100644 index 00000000..16add6e6 --- /dev/null +++ b/docs/sentinel1-explorer/124.023165bd499c17fcba07.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[124],{30124:function(e,r,n){n.r(r),n.d(r,{default:function(){return a}});const a={_decimalSeparator:".",_thousandSeparator:"'",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"K",_big_number_suffix_6:"Mio",_big_number_suffix_9:"Mrd",_big_number_suffix_12:"Bio",_big_number_suffix_15:"Brd",_big_number_suffix_18:"Trill",_big_number_suffix_21:"Trd",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - dd. MMM, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - dd. MMM, yyyy",_date_day:"dd. MMM",_date_day_full:"dd. MMM, yyyy",_date_week:"ww",_date_week_full:"dd. MMM, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_second:"ss",_duration_minute:"mm",_duration_hour:"hh",_duration_day:"dd",_duration_week:"ww",_duration_month:"MM",_duration_year:"yyyy",_era_ad:"v. Chr.",_era_bc:"n. Chr.",A:"",P:"",AM:"",PM:"","A.M.":"","P.M.":"",January:"Januar",February:"Februar",March:"März",April:"April",May:"Mai",June:"Juni",July:"Juli",August:"August",September:"September",October:"Oktober",November:"November",December:"Dezember",Jan:"Jan.",Feb:"Febr.",Mar:"März",Apr:"Apr.","May(short)":"Mai",Jun:"Juni",Jul:"Juli",Aug:"Aug.",Sep:"Sept.",Oct:"Okt.",Nov:"Nov.",Dec:"Dez.",Sunday:"Sonntag",Monday:"Montag",Tuesday:"Dienstag",Wednesday:"Mittwoch",Thursday:"Donnerstag",Friday:"Freitag",Saturday:"Samstag",Sun:"So.",Mon:"Mo.",Tue:"Di.",Wed:"Mi.",Thu:"Do.",Fri:"Fr.",Sat:"Sa.",_dateOrd:function(e){return e+"."},"Zoom Out":"Herauszoomen",Play:"Abspielen",Stop:"Stop",Legend:"Legende","Press ENTER to toggle":"Klicken, tippen oder ENTER drücken zum Umschalten",Loading:"Wird geladen",Home:"Home",Chart:"Diagramm","Serial chart":"Seriendiagramm","X/Y chart":"X-Y-Diagramm","Pie chart":"Kreisdiagramm","Gauge chart":"Messdiagramm","Radar chart":"Netzdiagramm","Sankey diagram":"Sankey-Diagramm","Chord diagram":"","Flow diagram":"Flussdiagramm","TreeMap chart":"Baumdiagramm",Series:"Serie","Candlestick Series":"Kerzendiagramm","Column Series":"Balkendiagramm","Line Series":"Liniendiagramm","Pie Slice Series":"Kreisdiagramm","X/Y Series":"Punktdiagramm",Map:"Karte","Press ENTER to zoom in":"Drücke ENTER zum Hereinzoomen","Press ENTER to zoom out":"Drücke ENTER zum Herauszoomen","Use arrow keys to zoom in and out":"Benutze die Pfeiltasten zum Zoomen","Use plus and minus keys on your keyboard to zoom in and out":"Benutze Plus- und Minustasten zum Zoomen",Export:"Export",Image:"Bild",Data:"Daten",Print:"Drucken","Press ENTER to open":"Zum Öffnen klicken, tippen oder ENTER drücken","Press ENTER to print.":"Zum Drucken klicken, tippen oder ENTER drücken.","Press ENTER to export as %1.":"Klicken, tippen oder ENTER drücken um als %1 zu exportieren","(Press ESC to close this message)":"ESC drücken um diese Nachricht zu schließen","Image Export Complete":"Bildexport komplett","Export operation took longer than expected. Something might have gone wrong.":"Der Export dauert länger als geplant. Vielleicht ist etwas schiefgelaufen.","Saved from":"Gespeichert von",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"TAB nutzen, um Ankerpunkte auszuwählen oder linke und rechte Pfeiltaste um die Auswahl zu ändern","Use left and right arrows to move selection":"Linke und rechte Pfeiltaste nutzen um die Auswahl zu verschieben","Use left and right arrows to move left selection":"Linke und rechte Pfeiltaste nutzen um die linke Auswahl zu verschieben","Use left and right arrows to move right selection":"Linke und rechte Pfeiltaste nutzen um die rechte Auswahl zu verschieben","Use TAB select grip buttons or up and down arrows to change selection":"TAB nutzen, um Ankerpunkte auszuwählen oder Pfeiltaste nach oben und unten drücken, um die Auswahl zu ändern","Use up and down arrows to move selection":"Pfeiltaste nach oben und unten drücken, um die Auswahl zu verschieben","Use up and down arrows to move lower selection":"Pfeiltaste nach oben und unten drücken, um die untere Auswahl zu verschieben","Use up and down arrows to move upper selection":"Pfeiltaste nach oben und unten drücken, um die obere Auswahl zu verschieben","From %1 to %2":"Von %1 bis %2","From %1":"Von %1","To %1":"Bis %1","No parser available for file: %1":"Kein Parser für Datei %1 verfügbar","Error parsing file: %1":"Fehler beim Parsen von Datei %1","Unable to load file: %1":"Datei %1 konnte nicht geladen werden","Invalid date":"Kein Datum"}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/126.8653729b24edf2c2037d.js b/docs/sentinel1-explorer/126.8653729b24edf2c2037d.js new file mode 100644 index 00000000..75b52cca --- /dev/null +++ b/docs/sentinel1-explorer/126.8653729b24edf2c2037d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[126],{80126:function(t,e,s){s.r(e),s.d(e,{default:function(){return P}});var r=s(27755),i=s(7958),n=s(14685),o=s(95247),a=(s(4745),s(39994),s(86098),s(37116),s(24568),s(7505),s(59659),s(12512));s(19431),s(35925);class h{constructor(t,e,s){this.uid=t,this.geometry=e,this.attributes=s,this.visible=!0,this.objectId=null,this.centroid=null}}class l{constructor(){this.exceededTransferLimit=!1,this.features=[],this.fields=[],this.hasM=!1,this.hasZ=!1,this.geometryType=null,this.objectIdFieldName=null,this.globalIdFieldName=null,this.geometryProperties=null,this.geohashFieldName=null,this.spatialReference=null,this.transform=null}}function u(t,e,s,r){if(e?.size&&null!=s&&t)for(const i in t){if(!e.has(i))continue;const n=t[i];"string"==typeof n&&n.length>s&&(r(i),t[i]="")}}var c=s(12065);function d(t,e){return e}function p(t,e,s,r){switch(s){case 0:return y(t,e+r,0);case 1:return"lowerLeft"===t.originPosition?y(t,e+r,1):function({translate:t,scale:e},s,r){return t[r]-s*e[r]}(t,e+r,1)}}function f(t,e,s,r){return 2===s?y(t,e,2):p(t,e,s,r)}function _(t,e,s,r){return 2===s?y(t,e,3):p(t,e,s,r)}function m(t,e,s,r){return 3===s?y(t,e,3):f(t,e,s,r)}function y({translate:t,scale:e},s,r){return t[r]+s*e[r]}class g{constructor(t){this._options=t,this.geometryTypes=["point","multipoint","polyline","polygon"],this._previousCoordinate=[0,0],this._transform=null,this._applyTransform=d,this._lengths=[],this._currentLengthIndex=0,this._toAddInCurrentPath=0,this._vertexDimension=0,this._coordinateBuffer=null,this._coordinateBufferPtr=0,this._attributesConstructor=class{},this._missingAttributes=[]}get missingAttributes(){return this._missingAttributes}createFeatureResult(){return new l}finishFeatureResult(t){if(this._options.applyTransform&&(t.transform=null),this._attributesConstructor=class{},this._coordinateBuffer=null,this._lengths.length=0,!t.hasZ)return;const e=(0,o.k)(t.geometryType,this._options.sourceSpatialReference,t.spatialReference);if(null!=e)for(const s of t.features)e(s.geometry)}createSpatialReference(){return new n.Z}addField(t,e){t.fields.push(a.Z.fromJSON(e));const s=t.fields.map((t=>t.name));this._attributesConstructor=function(){for(const t of s)this[t]=null}}addFeature(t,e){const s=this._options.maxStringAttributeLength,r=this._options.maxStringAttributeFields;u(e.attributes,r,s,(s=>{const r=e.attributes[t.objectIdFieldName];null!=r&&this._missingAttributes.push({objectId:r,attribute:s})})),t.features.push(e)}addQueryGeometry(t,e){const{queryGeometry:s,queryGeometryType:r}=e,i=(0,c.$g)(s.clone(),s,!1,!1,this._transform),n=(0,c.di)(i,r,!1,!1);let o=null;switch(r){case"esriGeometryPoint":o="point";break;case"esriGeometryPolygon":o="polygon";break;case"esriGeometryPolyline":o="polyline";break;case"esriGeometryMultipoint":o="multipoint"}n.type=o,t.queryGeometryType=r,t.queryGeometry=n}prepareFeatures(t){switch(this._transform=t.transform??null,this._options.applyTransform&&t.transform&&(this._applyTransform=this._deriveApplyTransform(t)),this._vertexDimension=2,t.hasZ&&this._vertexDimension++,t.hasM&&this._vertexDimension++,t.geometryType){case"point":this.addCoordinate=(t,e,s)=>this.addCoordinatePoint(t,e,s),this.createGeometry=t=>this.createPointGeometry(t);break;case"polygon":this.addCoordinate=(t,e,s)=>this._addCoordinatePolygon(t,e,s),this.createGeometry=t=>this._createPolygonGeometry(t);break;case"polyline":this.addCoordinate=(t,e,s)=>this._addCoordinatePolyline(t,e,s),this.createGeometry=t=>this._createPolylineGeometry(t);break;case"multipoint":this.addCoordinate=(t,e,s)=>this._addCoordinateMultipoint(t,e,s),this.createGeometry=t=>this._createMultipointGeometry(t);break;case"mesh":case"extent":break;default:(0,r.Bg)(t.geometryType)}}createFeature(){return this._lengths.length=0,this._currentLengthIndex=0,this._previousCoordinate[0]=0,this._previousCoordinate[1]=0,new h((0,i.D)(),null,new this._attributesConstructor)}allocateCoordinates(){const t=this._lengths.reduce(((t,e)=>t+e),0);this._coordinateBuffer=new Float64Array(t*this._vertexDimension),this._coordinateBufferPtr=0}addLength(t,e){0===this._lengths.length&&(this._toAddInCurrentPath=e),this._lengths.push(e)}createPointGeometry(t){const e={type:"point",x:0,y:0,spatialReference:t.spatialReference,hasZ:!!t.hasZ,hasM:!!t.hasM};return e.hasZ&&(e.z=0),e.hasM&&(e.m=0),e}addCoordinatePoint(t,e,s){const r=this._transform?this._applyTransform(this._transform,e,s,0):e;if(null!=r)switch(s){case 0:t.x=r;break;case 1:t.y=r;break;case 2:t.hasZ?t.z=r:t.m=r;break;case 3:t.m=r}}_transformPathLikeValue(t,e){let s=0;return e<=1&&(s=this._previousCoordinate[e],this._previousCoordinate[e]+=t),this._transform?this._applyTransform(this._transform,t,e,s):t}_addCoordinatePolyline(t,e,s){this._dehydratedAddPointsCoordinate(t.paths,e,s)}_addCoordinatePolygon(t,e,s){this._dehydratedAddPointsCoordinate(t.rings,e,s)}_addCoordinateMultipoint(t,e,s){0===s&&t.points.push([]);const r=this._transformPathLikeValue(e,s);t.points[t.points.length-1].push(r)}_createPolygonGeometry(t){return{type:"polygon",rings:[[]],spatialReference:t.spatialReference,hasZ:!!t.hasZ,hasM:!!t.hasM}}_createPolylineGeometry(t){return{type:"polyline",paths:[[]],spatialReference:t.spatialReference,hasZ:!!t.hasZ,hasM:!!t.hasM}}_createMultipointGeometry(t){return{type:"multipoint",points:[],spatialReference:t.spatialReference,hasZ:!!t.hasZ,hasM:!!t.hasM}}_dehydratedAddPointsCoordinate(t,e,s){0===s&&0==this._toAddInCurrentPath--&&(t.push([]),this._toAddInCurrentPath=this._lengths[++this._currentLengthIndex]-1,this._previousCoordinate[0]=0,this._previousCoordinate[1]=0);const r=this._transformPathLikeValue(e,s),i=t[t.length-1],n=this._coordinateBuffer;if(n){if(0===s){const t=this._coordinateBufferPtr*Float64Array.BYTES_PER_ELEMENT;i.push(new Float64Array(n.buffer,t,this._vertexDimension))}n[this._coordinateBufferPtr++]=r}}_deriveApplyTransform(t){const{hasZ:e,hasM:s}=t;return e&&s?m:e?f:s?_:p}}var b=s(75844);class C{_parseFeatureQuery(t){const e=new g(t.options),s=(0,b.C)(t.buffer,e),r={...s,spatialReference:s.spatialReference?.toJSON(),fields:s.fields?s.fields.map((t=>t.toJSON())):void 0,missingAttributes:e.missingAttributes};return Promise.resolve(r)}}function P(){return new C}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/134.119d1393190cc4bf5c15.js b/docs/sentinel1-explorer/134.119d1393190cc4bf5c15.js new file mode 100644 index 00000000..0d35afef --- /dev/null +++ b/docs/sentinel1-explorer/134.119d1393190cc4bf5c15.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[134],{40134:function(e,o,a){a.r(o),a.d(o,{default:function(){return t}});const t={_decimalSeparator:",",_thousandSeparator:" ",_percentPrefix:null,_percentSuffix:"%",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - dd MMM",_date_hour:"HH:mm",_date_hour_full:"HH:mm - dd MMM",_date_day:"dd MMM",_date_day_full:"dd MMM",_date_week:"ww",_date_week_full:"dd MMM",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_second:"ss",_duration_minute:"mm",_duration_hour:"hh",_duration_day:"dd",_duration_week:"ww",_duration_month:"MM",_duration_year:"yyyy",_era_ad:"н.э.",_era_bc:"до н.э.",A:"У",P:"В",AM:"утра",PM:"вечера","A.M.":"до полудня","P.M.":"после полудня",January:"января",February:"февраля",March:"марта",April:"апреля",May:"мая",June:"июня",July:"июля",August:"августа",September:"сентября",October:"октября",November:"ноября",December:"декабря",Jan:"янв.",Feb:"февр.",Mar:"март",Apr:"апр.","May(short)":"май",Jun:"июнь",Jul:"июль",Aug:"авг.",Sep:"сент.",Oct:"окт.",Nov:"нояб.",Dec:"дек.",Sunday:"воскресенье",Monday:"понедельник",Tuesday:"вторник",Wednesday:"среда",Thursday:"четверг",Friday:"пятница",Saturday:"суббота",Sun:"вс.",Mon:"пн.",Tue:"вт.",Wed:"ср.",Thu:"чт.",Fri:"пт.",Sat:"сб.",_dateOrd:function(e){return"-ое"},"Zoom Out":"Уменьшить",Play:"Старт",Stop:"Стоп",Legend:"Легенда","Press ENTER to toggle":"Щелкните, коснитесь или нажмите ВВОД, чтобы переключить",Loading:"Идет загрузка",Home:"Начало",Chart:"График","Serial chart":"Серийная диаграмма","X/Y chart":"Диаграмма X/Y","Pie chart":"Круговая диаграмма","Gauge chart":"Датчик-диаграмма","Radar chart":"Лепестковая диаграмма","Sankey diagram":"Диаграмма Сэнки","Chord diagram":"Диаграмма Chord","Flow diagram":"Диаграмма флоу","TreeMap chart":"Иерархическая диаграмма",Series:"Серия","Candlestick Series":"Серия-подсвечник","Column Series":"Столбчатая серия","Line Series":"Линейная серия","Pie Slice Series":"Круговая серия","X/Y Series":"X/Y серия",Map:"Карта","Press ENTER to zoom in":"Нажмите ВВОД чтобу увеличить","Press ENTER to zoom out":"Нажмите ВВОД чтобы уменьшить","Use arrow keys to zoom in and out":"Используйте клавиши-стрелки чтобы увеличить и уменьшить","Use plus and minus keys on your keyboard to zoom in and out":"Используйте клавиши плюс и минус на клавиатуре чтобы увеличить и уменьшить",Export:"Экспортировать",Image:"Изображение",Data:"Данные",Print:"Печатать","Press ENTER to open":"Щелкните, коснитесь или нажмите ВВОД чтобы открыть","Press ENTER to print.":"Щелкните, коснитесь или нажмите ВВОД чтобы распечатать","Press ENTER to export as %1.":"Щелкните, коснитесь или нажмите ВВОД чтобы экспортировать как %1",'To save the image, right-click this link and choose "Save picture as..."':'Чтобы сохранить изображение, щелкните правой кнопкой на ссылке и выберите "Сохранить изображение как..."','To save the image, right-click thumbnail on the left and choose "Save picture as..."':'Чтобы сохранить изображение, щелкните правой кнопкой на картинке слева и выберите "Сохранить изображение как..."',"(Press ESC to close this message)":"(Нажмите ESC чтобы закрыть это сообщение)","Image Export Complete":"Экспорт изображения завершен","Export operation took longer than expected. Something might have gone wrong.":"Экспортирование заняло дольше, чем планировалось. Возможно что-то пошло не так.","Saved from":"Сохранено из",PNG:"PNG",JPG:"JPG",GIF:"GIF",SVG:"SVG",PDF:"PDF",JSON:"JSON",CSV:"CSV",XLSX:"XLSX",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"Используйте клавишу TAB, чтобы выбрать рукоятки или клавиши стрелок влево и вправо, чтобы изменить выделение","Use left and right arrows to move selection":"Используйте стрелки влево-вправо, чтобы передвинуть выделение","Use left and right arrows to move left selection":"Используйте стрелки влево-вправо, чтобы передвинуть левое выделение","Use left and right arrows to move right selection":"Используйте стрелки влево-вправо, чтобы передвинуть правое выделение","Use TAB select grip buttons or up and down arrows to change selection":"Используйте TAB, чтобы выбрать рукоятки или клавиши вверх-вниз, чтобы изменить выделение","Use up and down arrows to move selection":"Используйте стрелки вверх-вниз, чтобы передвинуть выделение","Use up and down arrows to move lower selection":"Используйте стрелки вверх-вниз, чтобы передвинуть нижнее выделение","Use up and down arrows to move upper selection":"Используйте стрелки вверх-вниз, чтобы передвинуть верхнее выделение","From %1 to %2":"От %1 до %2","From %1":"От %1","To %1":"До %1","No parser available for file: %1":"Нет анализатора для файла: %1","Error parsing file: %1":"Ошибка при разборе файла: %1","Unable to load file: %1":"Не удалось загрузить файл: %1","Invalid date":"Некорректная дата"}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1350.bb4511c0466cf76f5402.js b/docs/sentinel1-explorer/1350.bb4511c0466cf76f5402.js new file mode 100644 index 00000000..989c38c1 --- /dev/null +++ b/docs/sentinel1-explorer/1350.bb4511c0466cf76f5402.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1350],{41350:function(e,t,r){r.r(t),r.d(t,{_fetchWrapper:function(){return Ie},executeApplyEdits:function(){return ge},executeQuery:function(){return we},executeQueryStreaming:function(){return me},executeSearch:function(){return be},executeSearchStreaming:function(){return Ee},fetchKnowledgeGraph:function(){return Te},kgRestServices:function(){return _e},refreshDataModel:function(){return ve},refreshServiceDefinition:function(){return Ge}});r(91957);var n=r(88256),o=r(66341),i=r(70375),a=r(13802),s=r(36663),l=r(74396),p=r(81977),d=(r(39994),r(4157),r(40266));let u=class extends l.Z{constructor(e){super(e),this.resultRows=[]}};(0,s._)([(0,p.Cb)()],u.prototype,"resultRows",void 0),u=(0,s._)([(0,d.j)("esri.rest.knowledgeGraph.GraphQueryResult")],u);const c=u;let y=class extends l.Z{constructor(e){super(e),this.resultRowsStream=new ReadableStream}};(0,s._)([(0,p.Cb)()],y.prototype,"resultRowsStream",void 0),y=(0,s._)([(0,d.j)("esri.rest.knowledgeGraph.GraphQueryResult")],y);const h=y;var f=r(82064),_=r(14685),g=r(17176),w=r(92484);let m=class extends f.wq{constructor(e){super(e),this.timestamp=null,this.spatialReference=null,this.strict=null,this.objectIdField=null,this.globalIdField=null,this.arcgisManaged=null,this.identifierInfo=null,this.searchIndexes=null,this.entityTypes=null,this.relationshipTypes=null}};(0,s._)([(0,p.Cb)({type:Date,json:{type:Number,write:{writer:(e,t)=>{t.timestamp=e?.getTime()}}}})],m.prototype,"timestamp",void 0),(0,s._)([(0,p.Cb)({type:_.Z,json:{write:!0}})],m.prototype,"spatialReference",void 0),(0,s._)([(0,p.Cb)({type:Boolean,json:{write:!0}})],m.prototype,"strict",void 0),(0,s._)([(0,p.Cb)({type:String,json:{write:!0}})],m.prototype,"objectIdField",void 0),(0,s._)([(0,p.Cb)({type:String,json:{write:!0}})],m.prototype,"globalIdField",void 0),(0,s._)([(0,p.Cb)()],m.prototype,"arcgisManaged",void 0),(0,s._)([(0,p.Cb)()],m.prototype,"identifierInfo",void 0),(0,s._)([(0,p.Cb)()],m.prototype,"searchIndexes",void 0),(0,s._)([(0,p.Cb)({type:[g.Z],json:{write:!0}})],m.prototype,"entityTypes",void 0),(0,s._)([(0,p.Cb)({type:[w.Z],json:{write:!0}})],m.prototype,"relationshipTypes",void 0),m=(0,s._)([(0,d.j)("esri.rest.knowledgeGraph.DataModel")],m);const b=m;let E=class extends f.wq{constructor(e){super(e),this.capabilities=[],this.supportsSearch=!1,this.supportedQueryFormats=[],this.allowGeometryUpdates=!1,this.searchMaxRecordCount=null,this.serviceCapabilities=null,this.maxRecordCount=null,this.description="",this.copyrightText="",this.units="",this.spatialReference=null,this.currentVersion=null,this.dateFieldsTimeReference=null,this.serviceItemId="",this.supportsDocuments=!1,this.dataEditingNotSupported=!1,this.schemaEditingNotSupported=!1}};(0,s._)([(0,p.Cb)({type:[String],json:{write:!0}})],E.prototype,"capabilities",void 0),(0,s._)([(0,p.Cb)({type:Boolean,json:{write:!0}})],E.prototype,"supportsSearch",void 0),(0,s._)([(0,p.Cb)({type:[String],json:{write:!0}})],E.prototype,"supportedQueryFormats",void 0),(0,s._)([(0,p.Cb)({type:Boolean,json:{write:!0}})],E.prototype,"allowGeometryUpdates",void 0),(0,s._)([(0,p.Cb)({type:Number,json:{write:!0}})],E.prototype,"searchMaxRecordCount",void 0),(0,s._)([(0,p.Cb)({type:Object,json:{write:!0}})],E.prototype,"serviceCapabilities",void 0),(0,s._)([(0,p.Cb)({type:Number,json:{write:!0}})],E.prototype,"maxRecordCount",void 0),(0,s._)([(0,p.Cb)({type:String,json:{write:!0}})],E.prototype,"description",void 0),(0,s._)([(0,p.Cb)({type:String,json:{write:!0}})],E.prototype,"copyrightText",void 0),(0,s._)([(0,p.Cb)({type:String,json:{write:!0}})],E.prototype,"units",void 0),(0,s._)([(0,p.Cb)({type:Object,json:{write:!0}})],E.prototype,"spatialReference",void 0),(0,s._)([(0,p.Cb)({type:Number,json:{write:!0}})],E.prototype,"currentVersion",void 0),(0,s._)([(0,p.Cb)({type:Object,json:{write:!0}})],E.prototype,"dateFieldsTimeReference",void 0),(0,s._)([(0,p.Cb)({type:String,json:{write:!0}})],E.prototype,"serviceItemId",void 0),(0,s._)([(0,p.Cb)({type:Boolean,json:{write:!0}})],E.prototype,"supportsDocuments",void 0),(0,s._)([(0,p.Cb)({type:Boolean,json:{write:!0}})],E.prototype,"dataEditingNotSupported",void 0),(0,s._)([(0,p.Cb)({type:Boolean,json:{write:!0}})],E.prototype,"schemaEditingNotSupported",void 0),E=(0,s._)([(0,d.j)("esri.rest.knowledgeGraph.ServiceDefinition")],E);const T=E;let v=class extends f.wq{constructor(e){super(e),this.dataModel=null,this.serviceDefinition=null}};(0,s._)([(0,p.Cb)({type:String,json:{write:!0}})],v.prototype,"url",void 0),(0,s._)([(0,p.Cb)({type:b,json:{write:!0}})],v.prototype,"dataModel",void 0),(0,s._)([(0,p.Cb)({type:T,json:{write:!0}})],v.prototype,"serviceDefinition",void 0),v=(0,s._)([(0,d.j)("esri.rest.knowledgeGraph.KnowledgeGraph")],v);const G=v;var I=r(65726),R=r(74304),C=r(67666),S=r(89542),M=r(90819),x=r(20031);function j(e,t){const r=new t.ArrayValue;return r.deleteLater(),e.forEach((e=>{r.add_value(P(e,t))})),r}function O(e,t){const r=new t.ObjectValue;r.deleteLater();for(const[n,o]of Object.entries(e))r.set_key_value(n,P(o,t));return r}function k(e,t){if(e instanceof R.Z)return function(e,t){const r=new t.GeometryValue;r.deleteLater(),r.geometry_type=r.geometry_type=t.esriGeometryType.esriGeometryMultipoint,r.has_z=e.hasZ,r.has_m=e.hasM;const n=[],o=[];o[0]=e.points.length;let i=0;return e.points.forEach((e=>{e.forEach((e=>{n[i]=e,i++}))})),r.coords=new Float64Array(n),r.lengths=new Uint32Array(o),r}(e,t);if(e instanceof C.Z)return function(e,t){const r=new t.GeometryValue;r.deleteLater(),r.geometry_type=t.esriGeometryType.esriGeometryPoint,r.has_z=e.hasZ,r.has_m=e.hasM;const n=[],o=[];o[0]=1,n[0]=e.x,n[1]=e.y;let i=2;return e.hasZ&&(n[i]=e.z,i++),e.hasM&&(n[i]=e.m,i++),r.coords=new Float64Array(n),r.lengths=new Uint32Array(o),r}(e,t);if(e instanceof M.Z||e instanceof S.Z)return function(e,t){const r=new t.GeometryValue;r.deleteLater(),r.has_z=e.hasZ,r.has_m=e.hasM;const n=[],o=[];let i=[];e instanceof M.Z?(r.geometry_type=t.esriGeometryType.esriGeometryPolyline,i=e.paths):e instanceof S.Z&&(r.geometry_type=t.esriGeometryType.esriGeometryPolygon,i=e.rings);let a=0,s=0;return i.forEach((e=>{let t=0;e.forEach((e=>{t++,e.forEach((e=>{n[s]=e,s++}))})),o[a]=t,a++})),r.coords=new Float64Array(n),r.lengths=new Uint32Array(o),r}(e,t);throw new i.Z("knowledge-graph:unsupported-geometry","Only Point, Multipoint, Polyline, and Polygon geometry are supported by ArcGIS Knowledge",{geometry:e})}function P(e,t){if(null==e)return"";if("object"!=typeof e)return e;if(e instanceof Date)return e;if(e instanceof x.Z)return k(e,t);if(Array.isArray(e)){const r=new t.ArrayValue;return r.deleteLater(),e.forEach((e=>{r.add_value(P(e,t))})),r}return O(e,t)}var Z=r(99606),F=r(70206);function D(e,t){if(!e.typeName)throw new i.Z("knowledge-graph:no-type-name","You must indicate the entity/relationship named object type to apply edits");if(e instanceof Z.Z){const r=new t.EntityValue;r.deleteLater(),r.type_name=e.typeName;for(const[n,o]of Object.entries(e.properties))r.set_key_value(n,N(o,t));return e.id&&r.set_id(e.id),r}if(e instanceof F.Z){const r=new t.RelationshipValue;r.deleteLater(),r.type_name=e.typeName;for(const[n,o]of Object.entries(e.properties))r.set_key_value(n,N(o,t));return e.id&&r.set_id(e.id),e.originId&&e.destinationId&&r.set_related_entity_ids(e.originId,e.destinationId),r}throw new i.Z("knowledge-graph:applyEdits-encoding-failure","Could not determine the type of a named graph object passed to the encoder")}function N(e,t){return null==e?"":"object"!=typeof e||e instanceof Date?e:e instanceof x.Z?k(e,t):""}var L=r(36877),A=(r(47855),r(65438));let z=class extends l.Z{constructor(e){super(e),this.name=null,this.supportedCategory=null,this.analyzers=[],this.searchProperties=new Map}};(0,s._)([(0,p.Cb)()],z.prototype,"name",void 0),(0,s._)([(0,p.Cb)()],z.prototype,"supportedCategory",void 0),(0,s._)([(0,p.Cb)()],z.prototype,"analyzers",void 0),(0,s._)([(0,p.Cb)()],z.prototype,"searchProperties",void 0),z=(0,s._)([(0,d.j)("esri.rest.knowledgeGraph.SearchIndex")],z);const q=z;var U=r(79458);function Y(e){return e.deleteLater(),new g.Z(B(e))}function Q(e){return e.deleteLater(),new L.Z({name:e.name,unique:e.unique,ascending:e.ascending,description:e.description,fieldNames:K(e.fields)})}function B(e){return{name:e.name,alias:e.alias,role:U.r0[e.role.value]?U.r0[e.role.value]:null,strict:e.strict,properties:$(e.properties),fieldIndexes:J(e.field_indexes)}}function V(e){return e.deleteLater(),new A.Z({alias:e.alias,name:e.name,fieldType:U.jC[e.field_type.value]?U.jC[e.field_type.value]:null,geometryType:U.Ks[e.geometry_type.value]?U.Ks[e.geometry_type.value]:null,hasM:e.has_m,hasZ:e.has_z,nullable:e.nullable,editable:e.editable,required:e.required,defaultVisibility:e.default_visibility,systemMaintained:e.system_maintained,role:U.NM[e.role.value],defaultValue:e.default_value})}function W(e){e.deleteLater();const t=B(e),r=[];for(let t=0;t{const t=[];for(let r=0;ra.Z.getLogger("esri.rest.knowledgeGraph.WasmToQueryResponseObjConstructors"),pe={decodedWasmObjToQueryResponseObj:(e,t,r)=>{if(null==e)return null;if("object"!=typeof e)return e;if("getDate"in e)return e;if("geometry_type"in e)switch(e.geometry_type.value){case null:return null;case te.ESRI_GEOMETRY_POINT:return function(e,t){const r={spatialReference:t};let n=2;se(e,r);const o=e.coords;return r.x=o[0],r.y=o[1],e.has_z&&(r.z=o[n],n++),e.has_m&&(r.m=o[n]),new C.Z(r)}(e,r);case te.ESRI_GEOMETRY_MULTIPOINT:return function(e,t){const r={spatialReference:t},n=se(e,r),o=e.lengths,i=e.coords,a=o[0];r.points=[];let s=0;for(let e=0;e{const t=new G({url:e}),r=[];return r.push(ve(t)),r.push(Ge(t)),await Promise.all(r),t},refreshDataModel:async e=>{e.dataModel=await Oe(e)},refreshServiceDefinition:async e=>{const t=(await(0,o.Z)(e.url,{query:{f:"json"}})).data;return t.capabilities=t?.capabilities?.split(","),t.supportedQueryFormats=t?.supportedQueryFormats?.split(","),e.serviceDefinition=new T(t),e.serviceDefinition},executeQueryStreaming:async(e,t,r)=>{const n=`${e.url}/graph/query`;await Re(e);const o=await Me(n,r);o.data.body=await async function(e,t){const r=await(0,I.$G)(),n=new r.GraphQueryRequestEncoder;if(n.deleteLater(),e.outputSpatialReference?n.output_spatial_reference={wkid:e.outputSpatialReference.wkid,latestWkid:e.outputSpatialReference.latestWkid,vcsWkid:e.outputSpatialReference.vcsWkid,latestVcsWkid:e.outputSpatialReference.latestVcsWkid,wkt:e.outputSpatialReference.wkt??""}:n.output_spatial_reference=r.SpatialReferenceUtil.WGS84(),n.open_cypher_query=e.openCypherQuery,e.bindParameters)for(const[t,o]of Object.entries(e.bindParameters))Se(t,o,n,r);if(e.bindGeometryQuantizationParameters)!function(e,t){t.input_quantization_parameters={xy_resolution:e.xyResolution,x_false_origin:e.xFalseOrigin,y_false_origin:e.yFalseOrigin,z_resolution:e.zResolution,z_false_origin:e.zFalseOrigin,m_resolution:e.mResolution,m_false_origin:e.mFalseOrigin}}(e.bindGeometryQuantizationParameters,n);else{if(t.dataModel||await ve(t),4326!==t.dataModel?.spatialReference?.wkid)throw new i.Z("knowledge-graph:SR-quantization-mismatch","If the DataModel indicates a coordinate system other than WGS84, inputQuantizationParameters must be provided to the query encoder");n.input_quantization_parameters=r.InputQuantizationUtil.WGS84_lossless()}e.outputQuantizationParameters&&function(e,t,r){if(!e.extent)throw new i.Z("knowledge-graph:illegal-output-quantization","The Output quantization provided to the encoder had an illegal value as part of its extent",e.extent);if(!e.quantizeMode)throw new i.Z("knowledge-graph:illegal-output-quantization","The Output quantization contained an illegal mode setting",e.quantizeMode);if(!e.tolerance)throw new i.Z("knowledge-graph:illegal-output-quantization","The Output quantization contained an illegal tolerance setting",e.quantizeMode);t.output_quantization_parameters={extent:{xmax:e.extent.xmax,ymax:e.extent.ymax,xmin:e.extent.xmin,ymin:e.extent.ymin},quantize_mode:r.esriQuantizeMode[e.quantizeMode],tolerance:e.tolerance}}(e.outputQuantizationParameters,n,r);try{n.encode()}catch(e){throw new i.Z("knowledge-graph:query-encoding-failed","Attempting to encode the query failed",{error:e})}const o=n.get_encoding_result();if(0!==o.error.error_code)throw new i.Z("knowledge-graph:query-encoding-failed","Attempting to encode the query failed",{errorCode:o.error.error_code,errorMessage:o.error.error_message});return structuredClone(o.get_byte_buffer())}(t,e);const a=await Ie(o.data.url,o.data);if(e.dataModel)return new h({resultRowsStream:await je(a,e.dataModel,t.outputSpatialReference??void 0)});throw new i.Z("knowledge-graph:undefined-data-model","The KnowledgeGraph supplied did not have a data model")},executeApplyEdits:async(e,t,r)=>{if(e.serviceDefinition?.dataEditingNotSupported)throw new i.Z("knowledge-graph:data-editing-not-supported","The Knowledge Graph Service definition indicated that data editing is not supported");const n=`${e.url}/graph/applyEdits`;await Re(e);const o=await Me(n,r);return o.data.body=await async function(e,t){if(t.dataModel||await ve(t),!t.dataModel)throw new i.Z("knowledge-graph:data-model-undefined","Encoding could not proceed because a data model was not provided and it could not be determined from the service");const r=await(0,I.$G)(),n=!!e.options?.cascadeDelete,o=new r.GraphApplyEditsEncoder(r.SpatialReferenceUtil.WGS84(),e.options?.inputQuantizationParameters?function(e){return{xy_resolution:e.xyResolution,x_false_origin:e.xFalseOrigin,y_false_origin:e.yFalseOrigin,z_resolution:e.zResolution,z_false_origin:e.zFalseOrigin,m_resolution:e.mResolution,m_false_origin:e.mFalseOrigin}}(e.options?.inputQuantizationParameters):r.InputQuantizationUtil.WGS84_lossless());o.deleteLater(),o.cascade_delete=n;try{let t;e.entityAdds?.forEach((e=>{t=o.add_entity(D(e,r)),Ce(t,"knowledge-graph:applyEdits-encoding-failed","Attempting to encode the applyEdits - an entity failed to be added to the encoder")})),e.relationshipAdds?.forEach((e=>{if(!e.originId||!e.destinationId)throw new i.Z("knowledge-graph:relationship-origin-destination-missing","When adding a new relationship, you must provide both an origin and destination id on the appropriate class property");t=o.add_relationship(D(e,r)),Ce(t,"knowledge-graph:applyEdits-encoding-failed","Attempting to encode the applyEdits - a relationship failed to be added to the encoder")})),e.entityUpdates?.forEach((e=>{if(!e.id)throw new i.Z("knowledge-graph:entity-id-missing","When updating an entity or relationship, you must specify the id on the class level property");t=o.update_entity(D(e,r)),Ce(t,"knowledge-graph:applyEdits-encoding-failed","Attempting to encode the applyEdits - an entity failed to be added to the encoder")})),e.relationshipUpdates?.forEach((e=>{if(!e.id)throw new i.Z("knowledge-graph:relationship-id-missing","When updating an entity or relationship, you must specify the id on the class level property");t=o.update_relationship(D(e,r)),Ce(t,"knowledge-graph:applyEdits-encoding-failed","Attempting to encode the applyEdits - a relationship failed to be added to the encoder")})),e.entityDeletes?.forEach((e=>{if(!e.typeName)throw new i.Z("knowledge-graph:no-type-name","You must indicate the entity/relationship named object type to apply edits - delete");const t=o.make_delete_helper(e.typeName,!0);t.deleteLater(),e.ids?.forEach((e=>{t.delete_by_id(e)}))})),e.relationshipDeletes?.forEach((e=>{if(!e.typeName)throw new i.Z("knowledge-graph:no-type-name","You must indicate the entity/relationship named object type to apply edits - delete");const t=o.make_delete_helper(e.typeName,!1);e.ids?.forEach((e=>{t.delete_by_id(e)}))})),o.encode()}catch(e){throw new i.Z("knowledge-graph:applyEdits-encoding-failed","Attempting to encode the applyEdits failed",{error:e})}const a=o.get_encoding_result();return Ce(a.error,"knowledge-graph:applyEdits-encoding-failed","Attempting to encode the applyEdits failed"),structuredClone(a.get_byte_buffer())}(t,e),async function(e){const t=e.headers.get("content-type");if(t?.includes("application/x-protobuf")){const t=await e.arrayBuffer(),r=new((await(0,I.$G)()).GraphApplyEditsDecoder);return r.deleteLater(),r.decode(new Uint8Array(t)),function(e){const t=new fe;t.hasError=e.has_error(),t.hasError&&(t.error={errorCode:e.error.error_code,errorMessage:e.error.error_message});const r=e.get_edit_results_count();for(let n=0;n{const n=`${e.url}/graph/query`,a=await(0,o.Z)(n,{responseType:"array-buffer",query:{f:"pbf",openCypherQuery:t.openCypherQuery,...r?.query},signal:r?.signal,timeout:r?.timeout}),s=a.getHeader?.("content-type"),l=a.data;if(s?.includes("application/x-protobuf")){const t=new((await(0,I.$G)()).GraphQueryDecoder);if(t.deleteLater(),e.dataModel)return new c({resultRows:xe(t,l,e.dataModel)});throw new i.Z("knowledge-graph:undefined-data-model","The KnowledgeGraph supplied did not have a data model")}throw new i.Z("knowledge-graph:unexpected-server-response","server returned an unexpected response",{responseType:s,data:a.data})},executeSearch:async(e,t,r)=>{const n=t.typeCategoryFilter,a=`${e.url}/graph/search`,s=await(0,o.Z)(a,{responseType:"array-buffer",query:{f:"pbf",searchQuery:`"${t.searchQuery}"`,typeCategoryFilter:n,...r?.query},signal:r?.signal,timeout:r?.timeout}),l=s.getHeader?.("content-type"),p=s.data;if(l?.includes("application/x-protobuf")){const t=new((await(0,I.$G)()).GraphQueryDecoder);if(t.deleteLater(),e.dataModel)return new c({resultRows:xe(t,p,e.dataModel)});throw new i.Z("knowledge-graph:undefined-data-model","The KnowledgeGraph supplied did not have a data model")}throw new i.Z("knowledge-graph:unexpected-server-response","server returned an unexpected response",{responseType:l,data:s.data})},executeSearchStreaming:async(e,t,r)=>{const n=`${e.url}/graph/search`;await Re(e);const o=await Me(n,r);o.data.body=await async function(e){const t=await(0,I.$G)(),r=new t.GraphSearchRequestEncoder;if(r.deleteLater(),r.search_query=e.searchQuery,r.type_category_filter=t.esriNamedTypeCategory[e.typeCategoryFilter],!0===e.returnSearchContext&&(r.return_search_context=e.returnSearchContext),null!=e.start&&e.start>0&&(r.start_index=e.start),null!=e.num&&(r.max_num_results=e.num),null!=e.idsFilter&&Array.isArray(e.idsFilter)&&e.idsFilter.length>0)try{r.set_ids_filter(j(e.idsFilter,t))}catch(e){throw new i.Z("knowledge-graph:ids-format-error","Attempting to set ids filter failed. This is usually caused by an incorrectly formatted UUID string",{error:e})}e.namedTypesFilter?.forEach((e=>{r.add_named_type_filter(e)}));try{r.encode()}catch(e){throw new i.Z("knowledge-graph:search-encoding-failed","Attempting to encode the search failed",{error:e})}const n=r.get_encoding_result();if(0!==n.error.error_code)throw new i.Z("knowledge-graph:search-encoding-failed","Attempting to get encoding result from the query failed",{errorCode:n.error.error_code,errorMessage:n.error.error_message});return structuredClone(n.get_byte_buffer())}(t);const a=await Ie(o.data.url,o.data);if(e.dataModel)return new h({resultRowsStream:await je(a,e.dataModel)});throw new i.Z("knowledge-graph:undefined-data-model","The KnowledgeGraph supplied did not have a data model")},_fetchWrapper:async(e,t)=>fetch(e,t)};async function ge(e,t,r){return _e.executeApplyEdits(e,t,r)}async function we(e,t,r){return _e.executeQuery(e,t,r)}async function me(e,t,r){return _e.executeQueryStreaming(e,t,r)}async function be(e,t,r){return _e.executeSearch(e,t,r)}async function Ee(e,t,r){return _e.executeSearchStreaming(e,t,r)}async function Te(e){return _e.fetchKnowledgeGraph(e)}async function ve(e){return _e.refreshDataModel(e)}async function Ge(e){return _e.refreshServiceDefinition(e)}async function Ie(e,t){return _e._fetchWrapper(e,t)}async function Re(e){const t=n.id?.findCredential(e.url);t||(e.dataModel?await Oe(e):await ve(e))}function Ce(e,t,r){if(0!==e.error_code)throw new i.Z(t,r,{errorCode:e.error_code,errorMessage:e.error_message})}function Se(e,t,r,n){null==t?r.set_param_key_value(e,""):"object"!=typeof t||t instanceof Date?r.set_param_key_value(e,t):t instanceof x.Z?r.set_param_key_value(e,k(t,n)):t instanceof Array?r.set_param_key_value(e,j(t,n)):r.set_param_key_value(e,O(t,n))}async function Me(e,t){return(0,o.Z)(e,{responseType:"native-request-init",method:"post",query:{f:"pbf",...t?.query},body:"x",headers:{"Content-Type":"application/octet-stream"},signal:t?.signal,timeout:t?.timeout})}function xe(e,t,r,n=new _.Z({wkid:_.Z.WGS84.wkid})){e.push_buffer(new Uint8Array(t));const o=[];let a=0;for(;e.next_row();){a||(a=e.get_header_keys().size());const t=new Array(a);for(let o=0;o{if(s){let t;if(o.has_error()&&(t=new i.Z("knowledge-graph:stream-decoding-error","One or more result rows were not successfully decoded",{errorCode:o.error.error_code,errorMessage:o.error.error_message})),n.releaseLock(),t)throw e.error(t),t;return void e.close()}const p=xe(o,l,t,r);return p.length>0&&e.enqueue(p),a()}))}()}catch(t){n?.releaseLock(),e.error(new i.Z("knowledge-graph:stream-decoding-error","The server returned a valid response, but there was an error decoding the response stream",{error:t})),e.close()}}})}throw new i.Z("knowledge-graph:unexpected-server-response","server returned an unexpected response",{responseType:n,data:e.text()})}async function Oe(e){const t=`${e.url}/dataModel/queryDataModel`,r=await(0,o.Z)(t,{responseType:"array-buffer",query:{f:"pbf"}}),n=r.getHeader?.("content-type"),a=r.data;if(n?.includes("application/x-protobuf")){const e=(await(0,I.$G)()).decode_data_model_from_protocol_buffer(new Uint8Array(a));if(!e)throw new i.Z("knowledge-graph:data-model-decode-failure","The server responded to the data model query, but the response failed to be decoded. This typically occurs when the Knowledge JS API (4.26 or later) is used with an unsupported backend (11.0 or earlier)");return function(e){return e.deleteLater(),new b({timestamp:e.timestamp,spatialReference:new _.Z(e.spatial_reference),strict:e.strict,objectIdField:e.objectid_property,globalIdField:e.globalid_property,arcgisManaged:e.arcgis_managed,identifierInfo:{identifierMappingInfo:{identifierInfoType:U.Mm[e.identifier_info?.identifier_mapping_info?.identifier_info_type?.value],databaseNativeIdentifier:e.identifier_info?.identifier_mapping_info?.database_native_identifier,uniformPropertyIdentifier:{identifierPropertyName:e.identifier_info?.identifier_mapping_info?.uniform_property_identifier?.identifier_property_name}},identifierGenerationInfo:{uuidMethodHint:U.Wf[e.identifier_info?.identifier_generation_info?.uuid_method_hint?.value]}},searchIndexes:ee(e.search_indexes),entityTypes:H(e.entity_types),relationshipTypes:X(e.relationship_types)})}(e)}throw new i.Z("knowledge-graph:unexpected-server-response","server returned an unexpected response",{responseType:n,data:r.data})}},17176:function(e,t,r){r.d(t,{Z:function(){return s}});var n=r(36663),o=(r(13802),r(39994),r(4157),r(70375),r(40266)),i=r(47855);let a=class extends i.Z{constructor(e){super(e)}};a=(0,n._)([(0,o.j)("esri.rest.knowledgeGraph.EntityType")],a);const s=a},36877:function(e,t,r){r.d(t,{Z:function(){return l}});var n=r(36663),o=r(82064),i=r(81977),a=(r(39994),r(13802),r(4157),r(40266));let s=class extends o.wq{constructor(e){super(e),this.name=null,this.unique=null,this.ascending=null,this.description=null,this.fieldNames=null}};(0,n._)([(0,i.Cb)({type:String,json:{write:!0}})],s.prototype,"name",void 0),(0,n._)([(0,i.Cb)({type:Boolean,json:{write:!0}})],s.prototype,"unique",void 0),(0,n._)([(0,i.Cb)({type:Boolean,json:{write:!0}})],s.prototype,"ascending",void 0),(0,n._)([(0,i.Cb)({type:String,json:{write:!0}})],s.prototype,"description",void 0),(0,n._)([(0,i.Cb)({type:[String],json:{write:!0}})],s.prototype,"fieldNames",void 0),s=(0,n._)([(0,a.j)("esri.rest.knowledgeGraph.FieldIndex")],s);const l=s},47855:function(e,t,r){r.d(t,{Z:function(){return d}});var n=r(36663),o=r(82064),i=r(81977),a=(r(39994),r(13802),r(4157),r(40266)),s=r(36877),l=r(65438);let p=class extends o.wq{constructor(e){super(e),this.name=null,this.alias=null,this.role=null,this.strict=null,this.properties=null,this.fieldIndexes=null}};(0,n._)([(0,i.Cb)({type:String,json:{write:!0}})],p.prototype,"name",void 0),(0,n._)([(0,i.Cb)({type:String,json:{write:!0}})],p.prototype,"alias",void 0),(0,n._)([(0,i.Cb)({type:String,json:{write:!0}})],p.prototype,"role",void 0),(0,n._)([(0,i.Cb)({type:Boolean,json:{write:!0}})],p.prototype,"strict",void 0),(0,n._)([(0,i.Cb)({type:[l.Z],json:{write:!0}})],p.prototype,"properties",void 0),(0,n._)([(0,i.Cb)({type:[s.Z],json:{write:!0}})],p.prototype,"fieldIndexes",void 0),p=(0,n._)([(0,a.j)("esri.rest.knowledgeGraph.GraphObjectType")],p);const d=p},65438:function(e,t,r){r.d(t,{Z:function(){return l}});var n=r(36663),o=r(82064),i=r(81977),a=(r(39994),r(13802),r(4157),r(40266));let s=class extends o.wq{constructor(e){super(e),this.name=null,this.alias=null,this.fieldType=null,this.geometryType=null,this.hasM=null,this.hasZ=null,this.nullable=null,this.editable=null,this.required=null,this.defaultVisibility=null,this.systemMaintained=null,this.role=null,this.defaultValue=null}};(0,n._)([(0,i.Cb)({type:String,json:{write:!0}})],s.prototype,"name",void 0),(0,n._)([(0,i.Cb)({type:String,json:{write:!0}})],s.prototype,"alias",void 0),(0,n._)([(0,i.Cb)({type:String,json:{write:!0}})],s.prototype,"fieldType",void 0),(0,n._)([(0,i.Cb)({type:String,json:{write:!0}})],s.prototype,"geometryType",void 0),(0,n._)([(0,i.Cb)({type:Boolean,json:{write:!0}})],s.prototype,"hasM",void 0),(0,n._)([(0,i.Cb)({type:Boolean,json:{write:!0}})],s.prototype,"hasZ",void 0),(0,n._)([(0,i.Cb)({type:Boolean,json:{write:!0}})],s.prototype,"nullable",void 0),(0,n._)([(0,i.Cb)({type:Boolean,json:{write:!0}})],s.prototype,"editable",void 0),(0,n._)([(0,i.Cb)({type:Boolean,json:{write:!0}})],s.prototype,"required",void 0),(0,n._)([(0,i.Cb)({type:Boolean,json:{write:!0}})],s.prototype,"defaultVisibility",void 0),(0,n._)([(0,i.Cb)({type:Boolean,json:{write:!0}})],s.prototype,"systemMaintained",void 0),(0,n._)([(0,i.Cb)()],s.prototype,"role",void 0),(0,n._)([(0,i.Cb)({type:Object,json:{type:String,write:{writer:(e,t)=>{t.defaultValue=null!=e?e.toString():null}}}})],s.prototype,"defaultValue",void 0),s=(0,n._)([(0,a.j)("esri.rest.knowledgeGraph.GraphProperty")],s);const l=s},92484:function(e,t,r){r.d(t,{Z:function(){return l}});var n=r(36663),o=r(81977),i=(r(39994),r(13802),r(4157),r(40266)),a=r(47855);let s=class extends a.Z{constructor(e){super(e),this.endPoints=[]}};(0,n._)([(0,o.Cb)()],s.prototype,"endPoints",void 0),s=(0,n._)([(0,i.j)("esri.rest.knowledgeGraph.RelationshipType")],s);const l=s},79458:function(e,t,r){var n,o,i,a,s,l,p;r.d(t,{Ks:function(){return i},LM:function(){return s},Mm:function(){return p},NM:function(){return l},Wf:function(){return a},jC:function(){return o},r0:function(){return n}}),function(e){e[e.Regular=0]="Regular",e[e.Provenance=1]="Provenance",e[e.Document=2]="Document"}(n||(n={})),function(e){e[e.esriFieldTypeSmallInteger=0]="esriFieldTypeSmallInteger",e[e.esriFieldTypeInteger=1]="esriFieldTypeInteger",e[e.esriFieldTypeSingle=2]="esriFieldTypeSingle",e[e.esriFieldTypeDouble=3]="esriFieldTypeDouble",e[e.esriFieldTypeString=4]="esriFieldTypeString",e[e.esriFieldTypeDate=5]="esriFieldTypeDate",e[e.esriFieldTypeOID=6]="esriFieldTypeOID",e[e.esriFieldTypeGeometry=7]="esriFieldTypeGeometry",e[e.esriFieldTypeBlob=8]="esriFieldTypeBlob",e[e.esriFieldTypeRaster=9]="esriFieldTypeRaster",e[e.esriFieldTypeGUID=10]="esriFieldTypeGUID",e[e.esriFieldTypeGlobalID=11]="esriFieldTypeGlobalID",e[e.esriFieldTypeXML=12]="esriFieldTypeXML",e[e.esriFieldTypeBigInteger=13]="esriFieldTypeBigInteger",e[e.esriFieldTypeDateOnly=14]="esriFieldTypeDateOnly",e[e.esriFieldTypeTimeOnly=15]="esriFieldTypeTimeOnly",e[e.esriFieldTypeTimestampOffset=16]="esriFieldTypeTimestampOffset"}(o||(o={})),function(e){e[e.esriGeometryNull=0]="esriGeometryNull",e[e.esriGeometryPoint=1]="esriGeometryPoint",e[e.esriGeometryMultipoint=2]="esriGeometryMultipoint",e[e.esriGeometryPolyline=3]="esriGeometryPolyline",e[e.esriGeometryPolygon=4]="esriGeometryPolygon",e[e.esriGeometryEnvelope=5]="esriGeometryEnvelope",e[e.esriGeometryAny=6]="esriGeometryAny",e[e.esriGeometryMultiPatch=7]="esriGeometryMultiPatch"}(i||(i={})),function(e){e[e.esriMethodHintUNSPECIFIED=0]="esriMethodHintUNSPECIFIED",e[e.esriUUIDESRI=1]="esriUUIDESRI",e[e.esriUUIDRFC4122=2]="esriUUIDRFC4122"}(a||(a={})),function(e){e[e.esriTypeUNSPECIFIED=0]="esriTypeUNSPECIFIED",e[e.esriTypeEntity=1]="esriTypeEntity",e[e.esriTypeRelationship=2]="esriTypeRelationship",e[e.esriTypeBoth=4]="esriTypeBoth"}(s||(s={})),function(e){e[e.esriGraphPropertyUNSPECIFIED=0]="esriGraphPropertyUNSPECIFIED",e[e.esriGraphPropertyRegular=1]="esriGraphPropertyRegular",e[e.esriGraphPropertyDocumentName=2]="esriGraphPropertyDocumentName",e[e.esriGraphPropertyDocumentTitle=3]="esriGraphPropertyDocumentTitle",e[e.esriGraphPropertyDocumentUrl=4]="esriGraphPropertyDocumentUrl",e[e.esriGraphPropertyDocumentText=5]="esriGraphPropertyDocumentText",e[e.esriGraphPropertyDocumentKeywords=6]="esriGraphPropertyDocumentKeywords",e[e.esriGraphPropertyDocumentContentType=7]="esriGraphPropertyDocumentContentType",e[e.esriGraphPropertyDocumentMetadata=8]="esriGraphPropertyDocumentMetadata",e[e.esriGraphPropertyDocumentFileExtension=9]="esriGraphPropertyDocumentFileExtension"}(l||(l={})),function(e){e[e.esriIdentifierInfoTypeUNSPECIFIED=0]="esriIdentifierInfoTypeUNSPECIFIED",e[e.esriIdentifierInfoTypeDatabaseNative=1]="esriIdentifierInfoTypeDatabaseNative",e[e.esriIdentifierInfoTypeUniformProperty=2]="esriIdentifierInfoTypeUniformProperty"}(p||(p={}))},65726:function(e,t,r){r.d(t,{$G:function(){return l}});var n=r(36567),o=r(39994);const i="esri/rest/knowledgeGraph/wasmInterface/";let a,s=null;async function l(){const e=s??a;if(e)return e;const t=(0,o.Z)("wasm-simd");return a=p(t),a}async function p(e){if(e){const{default:e}=await r.e(5169).then(r.bind(r,15169)).then((e=>e.a));return e({locateFile:e=>(0,n.V)(i+e)})}const{default:t}=await r.e(3095).then(r.bind(r,83095)).then((e=>e.a));return t({locateFile:e=>(0,n.V)(i+e)})}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1352.919ea06b70a0b4486c5c.js b/docs/sentinel1-explorer/1352.919ea06b70a0b4486c5c.js new file mode 100644 index 00000000..030755db --- /dev/null +++ b/docs/sentinel1-explorer/1352.919ea06b70a0b4486c5c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1352],{21352:function(e,a,i){i.r(a),i.d(a,{default:function(){return r}});const r={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"n. št.",_era_bc:"pr. n. št.",A:"A",P:"P",AM:"AM",PM:"PM","A.M.":"A.M.","P.M.":"P.M.",January:"Januar",February:"Februar",March:"Marec",April:"April",May:"Maj",June:"Junij",July:"Julij",August:"Avgust",September:"September",October:"Oktober",November:"November",December:"December",Jan:"Jan",Feb:"Feb",Mar:"Mar",Apr:"Apr","May(short)":"Maj",Jun:"Jun",Jul:"Jul",Aug:"Avg",Sep:"Sep",Oct:"Okt",Nov:"Nov",Dec:"Dec",Sunday:"Nedelja",Monday:"Ponedeljek",Tuesday:"Torek",Wednesday:"Sreda",Thursday:"Četrtek",Friday:"Petek",Saturday:"Sobota",Sun:"Ned",Mon:"Pon",Tue:"Tor",Wed:"Sre",Thu:"Čet",Fri:"Pet",Sat:"Sob",_dateOrd:function(e){return"."},"Zoom Out":"Oddalji pogled",Play:"Zaženi",Stop:"Ustavi",Legend:"Legenda","Press ENTER to toggle":"Klikni, tapni ali pritisni ENTER za preklop",Loading:"Nalagam",Home:"Domov",Chart:"Graf","Serial chart":"Serijski graf","X/Y chart":"X/Y graf","Pie chart":"Tortni graf","Gauge chart":"Stevčni graf","Radar chart":"Radar graf","Sankey diagram":"Sankey diagram","Flow diagram":"Prikaz poteka","Chord diagram":"Kolobarni diagram","TreeMap chart":"Drevesi graf","Sliced chart":"Sliced graf",Series:"Serija","Candlestick Series":"Svečna serija","OHLC Series":"OHLC serija","Column Series":"Stolpičasta serija","Line Series":"Črtna serija","Pie Slice Series":"Tortna serija","Funnel Series":"Lijak serija","Pyramid Series":"Piramidna serija","X/Y Series":"X/Y serija",Map:"Mapa","Press ENTER to zoom in":"Pritisni ENTER za približevanje","Press ENTER to zoom out":"Pritisni ENTER za oddaljevanje","Use arrow keys to zoom in and out":"Uporabi smerne tiple za približevanje in oddaljevanje","Use plus and minus keys on your keyboard to zoom in and out":"Uporabi plus in minus tipke na tipkovnici za približevanje in oddaljevanje",Export:"Izvozi",Image:"Slika",Data:"Podatki",Print:"Natisni","Press ENTER to open":"Klikni, tapni ali pritisni ENTER da odpreš.","Press ENTER to print.":"Klikni, tapni ali pritisni ENTER za tiskanje.","Press ENTER to export as %1.":"Klikni, tapni ali pritisni ENTER da izvoziš kot %1.","(Press ESC to close this message)":"(Pritisni ESC da zapreš to sporočilo)","Image Export Complete":"Izvoz slike končan","Export operation took longer than expected. Something might have gone wrong.":"Operacija izvoza je trajala dlje kot pričakovano. Nekaj je šlo narobe.","Saved from":"Shranjeno od",PNG:"PNG",JPG:"JPG",GIF:"GIF",SVG:"SVG",PDF:"PDF",JSON:"JSON",CSV:"CSV",XLSX:"XLSX",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"Uporabi TAB za izbiro drsnih gumbov ali levo in desno smerno tipko da spremeniš izbiro","Use left and right arrows to move selection":"Uporabi levo in desno smerno tipko za premik izbranega","Use left and right arrows to move left selection":"Uporabi levo in desno smerno tipko za premik leve izbire","Use left and right arrows to move right selection":"Uporabi levo in desno smerno tipko za premik desne izbire","Use TAB select grip buttons or up and down arrows to change selection":"Uporabi TAB za izbiro drsnih gumbov ali gor in dol smerno tipko da spremeniš izbiro","Use up and down arrows to move selection":"Uporabi gor in dol smerne tipke za premik izbire","Use up and down arrows to move lower selection":"Uporabi gor in dol smerne tipke za premik spodnje izbire","Use up and down arrows to move upper selection":"Uporabi gor in dol smerne tipke za premik zgornje izbire","From %1 to %2":"Od %1 do %2","From %1":"Od %1","To %1":"Do %1","No parser available for file: %1":"Nobenega parserja ni na voljo za datoteko: %1","Error parsing file: %1":"Napaka pri parsanju datoteke: %1","Unable to load file: %1":"Ni mogoče naložiti datoteke: %1","Invalid date":"Neveljaven datum"}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1449.7a31619e82cdce8142d0.js b/docs/sentinel1-explorer/1449.7a31619e82cdce8142d0.js new file mode 100644 index 00000000..7337259d --- /dev/null +++ b/docs/sentinel1-explorer/1449.7a31619e82cdce8142d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1449],{43106:function(e,t,_){var E;_.d(t,{B:function(){return E}}),function(e){e[e.Texture=0]="Texture",e[e.RenderBuffer=1]="RenderBuffer"}(E||(E={}))},71449:function(e,t,_){_.d(t,{x:function(){return n}});var E=_(70375),T=(_(39994),_(6174)),r=_(91907),R=_(43106),i=_(80479);class A extends i.X{constructor(e,t){switch(super(),this.context=e,Object.assign(this,t),this.internalFormat){case r.lP.R16F:case r.lP.R16I:case r.lP.R16UI:case r.lP.R32F:case r.lP.R32I:case r.lP.R32UI:case r.lP.R8_SNORM:case r.lP.R8:case r.lP.R8I:case r.lP.R8UI:this.pixelFormat=r.VI.RED}}static validate(e,t){return new A(e,t)}}let n=class e{constructor(e,t=null,_=null){if(this.type=R.B.Texture,this._glName=null,this._samplingModeDirty=!1,this._wrapModeDirty=!1,this._wasImmutablyAllocated=!1,"context"in e)this._descriptor=e,_=t;else{const _=A.validate(e,t);if(!_)throw new E.Z("Texture descriptor invalid");this._descriptor=_}this._descriptor.target===r.No.TEXTURE_CUBE_MAP?this._setDataCubeMap(_):this.setData(_)}get glName(){return this._glName}get descriptor(){return this._descriptor}get usedMemory(){return(0,i.G)(this._descriptor)}get isDirty(){return this._samplingModeDirty||this._wrapModeDirty}dispose(){this._glName&&this._descriptor.context.instanceCounter.decrement(r._g.Texture,this),this._descriptor.context.gl&&this._glName&&(this._descriptor.context.unbindTexture(this),this._descriptor.context.gl.deleteTexture(this._glName),this._glName=null)}release(){this.dispose()}resize(e,t){const _=this._descriptor;if(_.width!==e||_.height!==t){if(this._wasImmutablyAllocated)throw new E.Z("Immutable textures can't be resized!");_.width=e,_.height=t,this._descriptor.target===r.No.TEXTURE_CUBE_MAP?this._setDataCubeMap(null):this.setData(null)}}_setDataCubeMap(e=null){for(let t=r.No.TEXTURE_CUBE_MAP_POSITIVE_X;t<=r.No.TEXTURE_CUBE_MAP_NEGATIVE_Z;t++)this._setData(e,t)}setData(e){this._setData(e)}_setData(t,_){if(!this._descriptor.context?.gl)return;const R=this._descriptor.context.gl;(0,T.zu)(R),this._glName||(this._glName=R.createTexture(),this._glName&&this._descriptor.context.instanceCounter.increment(r._g.Texture,this)),void 0===t&&(t=null);const i=this._descriptor,A=_??i.target,n=c(A);null===t&&(i.width=i.width||4,i.height=i.height||4,n&&(i.depth=i.depth??1));const C=this._descriptor.context.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),s(i),this._configurePixelStorage(),(0,T.zu)(R);const u=this._deriveInternalFormat();if(I(t)){let e="width"in t?t.width:t.codedWidth,_="height"in t?t.height:t.codedHeight;const E=1;t instanceof HTMLVideoElement&&(e=t.videoWidth,_=t.videoHeight),i.width&&i.height,n&&i.depth,i.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(A,u,i.hasMipmap,e,_,E),this._texImage(A,0,u,e,_,E,t),(0,T.zu)(R),i.hasMipmap&&this.generateMipmap(),i.width||(i.width=e),i.height||(i.height=_),n&&!i.depth&&(i.depth=E)}else{const{width:e,height:_,depth:s}=i;if(null==e||null==_)throw new E.Z("Width and height must be specified!");if(n&&null==s)throw new E.Z("Depth must be specified!");if(i.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(A,u,i.hasMipmap,e,_,s),o(t)){const T=t.levels,n=S(A,e,_,s),a=Math.min(n-1,T.length-1);R.texParameteri(i.target,this._descriptor.context.gl.TEXTURE_MAX_LEVEL,a);const N=u;if(!(N in r.q_))throw new E.Z("Attempting to use compressed data with an uncompressed format!");this._forEachMipmapLevel(((e,t,_,E)=>{const r=T[Math.min(e,T.length-1)];this._compressedTexImage(A,e,N,t,_,E,r)}),a)}else this._texImage(A,0,u,e,_,s,t),(0,T.zu)(R),i.hasMipmap&&this.generateMipmap()}a(R,this._descriptor),N(R,this._descriptor),function(e,t){const _=e.capabilities.textureFilterAnisotropic;if(!_)return;e.gl.texParameterf(t.target,_.TEXTURE_MAX_ANISOTROPY,t.maxAnisotropy??1)}(this._descriptor.context,this._descriptor),(0,T.zu)(R),this._descriptor.context.bindTexture(C,e.TEXTURE_UNIT_FOR_UPDATES)}updateData(t,_,T,r,R,i,A=0){this._glName;const n=this._descriptor,s=this._deriveInternalFormat(),{context:a,pixelFormat:N,dataType:c,target:S,isImmutable:C}=n;if(C&&!this._wasImmutablyAllocated)throw new E.Z("Cannot update immutable texture before allocation!");const u=a.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES,!0);_<0||T<0||r>n.width||R>n.height||_+r>n.width||n.height,this._configurePixelStorage();const{gl:O}=a;A&&O.pixelStorei(O.UNPACK_SKIP_ROWS,A),I(i)?O.texSubImage2D(S,t,_,T,r,R,N,c,i):o(i)?O.compressedTexSubImage2D(S,t,_,T,r,R,s,i.levels[t]):O.texSubImage2D(S,t,_,T,r,R,N,c,i),A&&O.pixelStorei(O.UNPACK_SKIP_ROWS,0),a.bindTexture(u,e.TEXTURE_UNIT_FOR_UPDATES)}updateData3D(t,_,T,r,R,i,A,n){this._glName;const s=this._descriptor,a=this._deriveInternalFormat(),{context:N,pixelFormat:I,dataType:S,isImmutable:C,target:u}=s;if(C&&!this._wasImmutablyAllocated)throw new E.Z("Cannot update immutable texture before allocation!");c(u);const O=N.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);N.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),_<0||T<0||r<0||R>s.width||i>s.height||A>s.depth||_+R>s.width||T+i>s.height||s.depth,this._configurePixelStorage();const{gl:P}=N;if(o(n))n=n.levels[t],P.compressedTexSubImage3D(u,t,_,T,r,R,i,A,a,n);else{const e=n;P.texSubImage3D(u,t,_,T,r,R,i,A,I,S,e)}N.bindTexture(O,e.TEXTURE_UNIT_FOR_UPDATES)}generateMipmap(){const t=this._descriptor;if(!t.hasMipmap){if(this._wasImmutablyAllocated)throw new E.Z("Cannot add mipmaps to immutable texture after allocation");t.hasMipmap=!0,this._samplingModeDirty=!0,s(t)}t.samplingMode===r.cw.LINEAR?(this._samplingModeDirty=!0,t.samplingMode=r.cw.LINEAR_MIPMAP_NEAREST):t.samplingMode===r.cw.NEAREST&&(this._samplingModeDirty=!0,t.samplingMode=r.cw.NEAREST_MIPMAP_NEAREST);const _=this._descriptor.context.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),this._descriptor.context.gl.generateMipmap(t.target),this._descriptor.context.bindTexture(_,e.TEXTURE_UNIT_FOR_UPDATES)}setSamplingMode(e){e!==this._descriptor.samplingMode&&(this._descriptor.samplingMode=e,this._samplingModeDirty=!0)}setWrapMode(e){e!==this._descriptor.wrapMode&&(this._descriptor.wrapMode=e,s(this._descriptor),this._wrapModeDirty=!0)}applyChanges(){const e=this._descriptor,t=e.context.gl;this._samplingModeDirty&&(a(t,e),this._samplingModeDirty=!1),this._wrapModeDirty&&(N(t,e),this._wrapModeDirty=!1)}_deriveInternalFormat(){if(null!=this._descriptor.internalFormat)return this._descriptor.internalFormat===r.VI.DEPTH_STENCIL&&(this._descriptor.internalFormat=r.VI.DEPTH24_STENCIL8),this._descriptor.internalFormat;switch(this._descriptor.dataType){case r.Br.FLOAT:switch(this._descriptor.pixelFormat){case r.VI.RGBA:return this._descriptor.internalFormat=r.lP.RGBA32F;case r.VI.RGB:return this._descriptor.internalFormat=r.lP.RGB32F;default:throw new E.Z("Unable to derive format")}case r.Br.UNSIGNED_BYTE:switch(this._descriptor.pixelFormat){case r.VI.RGBA:return this._descriptor.internalFormat=r.lP.RGBA8;case r.VI.RGB:return this._descriptor.internalFormat=r.lP.RGB8}}return this._descriptor.internalFormat=this._descriptor.pixelFormat===r.VI.DEPTH_STENCIL?r.VI.DEPTH24_STENCIL8:this._descriptor.pixelFormat}_configurePixelStorage(){const e=this._descriptor.context.gl,{unpackAlignment:t,flipped:_,preMultiplyAlpha:E}=this._descriptor;e.pixelStorei(e.UNPACK_ALIGNMENT,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,_?1:0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,E?1:0)}_texStorage(e,t,_,T,R,i){const{gl:A}=this._descriptor.context;if(!(t in r.lP))throw new E.Z("Immutable textures must have a sized internal format");if(!this._descriptor.isImmutable)return;const n=_?S(e,T,R,i):1;if(c(e)){if(null==i)throw new E.Z("Missing depth dimension for 3D texture upload");A.texStorage3D(e,n,t,T,R,i)}else A.texStorage2D(e,n,t,T,R);this._wasImmutablyAllocated=!0}_texImage(e,t,_,T,r,R,i){const A=this._descriptor.context.gl,n=c(e),{isImmutable:s,pixelFormat:a,dataType:N}=this._descriptor;if(s){if(null!=i){const _=i;if(n){if(null==R)throw new E.Z("Missing depth dimension for 3D texture upload");A.texSubImage3D(e,t,0,0,0,T,r,R,a,N,_)}else A.texSubImage2D(e,t,0,0,T,r,a,N,_)}}else{const s=i;if(n){if(null==R)throw new E.Z("Missing depth dimension for 3D texture upload");A.texImage3D(e,t,_,T,r,R,0,a,N,s)}else A.texImage2D(e,t,_,T,r,0,a,N,s)}}_compressedTexImage(e,t,_,T,r,R,i){const A=this._descriptor.context.gl,n=c(e);if(this._descriptor.isImmutable){if(null!=i)if(n){if(null==R)throw new E.Z("Missing depth dimension for 3D texture upload");A.compressedTexSubImage3D(e,t,0,0,0,T,r,R,_,i)}else A.compressedTexSubImage2D(e,t,0,0,T,r,_,i)}else if(n){if(null==R)throw new E.Z("Missing depth dimension for 3D texture upload");A.compressedTexImage3D(e,t,_,T,r,R,0,i)}else A.compressedTexImage2D(e,t,_,T,r,0,i)}_forEachMipmapLevel(e,t=1/0){let{width:_,height:T,depth:R,hasMipmap:i,target:A}=this._descriptor;const n=A===r.No.TEXTURE_3D;if(null==_||null==T||n&&null==R)throw new E.Z("Missing texture dimensions for mipmap calculation");for(let E=0;e(E,_,T,R),i&&(1!==_||1!==T||n&&1!==R)&&!(E>=t);++E)_=Math.max(1,_>>1),T=Math.max(1,T>>1),n&&(R=Math.max(1,R>>1))}};function s(e){null!=e.width&&e.width<0||null!=e.height&&e.height<0||null!=e.depth&&e.depth}function a(e,t){let _=t.samplingMode,E=t.samplingMode;_===r.cw.LINEAR_MIPMAP_NEAREST||_===r.cw.LINEAR_MIPMAP_LINEAR?(_=r.cw.LINEAR,t.hasMipmap||(E=r.cw.LINEAR)):_!==r.cw.NEAREST_MIPMAP_NEAREST&&_!==r.cw.NEAREST_MIPMAP_LINEAR||(_=r.cw.NEAREST,t.hasMipmap||(E=r.cw.NEAREST)),e.texParameteri(t.target,e.TEXTURE_MAG_FILTER,_),e.texParameteri(t.target,e.TEXTURE_MIN_FILTER,E)}function N(e,t){"number"==typeof t.wrapMode?(e.texParameteri(t.target,e.TEXTURE_WRAP_S,t.wrapMode),e.texParameteri(t.target,e.TEXTURE_WRAP_T,t.wrapMode)):(e.texParameteri(t.target,e.TEXTURE_WRAP_S,t.wrapMode.s),e.texParameteri(t.target,e.TEXTURE_WRAP_T,t.wrapMode.t))}function o(e){return null!=e&&"type"in e&&"compressed"===e.type}function I(e){return null!=e&&!o(e)&&!function(e){return null!=e&&"byteLength"in e}(e)}function c(e){return e===r.No.TEXTURE_3D||e===r.No.TEXTURE_2D_ARRAY}function S(e,t,_,E=1){let T=Math.max(t,_);return e===r.No.TEXTURE_3D&&(T=Math.max(T,E)),Math.round(Math.log(T)/Math.LN2)+1}n.TEXTURE_UNIT_FOR_UPDATES=0},80479:function(e,t,_){_.d(t,{G:function(){return R},X:function(){return r}});var E=_(91907),T=_(62486);class r{constructor(e=0,t=e){this.width=e,this.height=t,this.target=E.No.TEXTURE_2D,this.pixelFormat=E.VI.RGBA,this.dataType=E.Br.UNSIGNED_BYTE,this.samplingMode=E.cw.LINEAR,this.wrapMode=E.e8.REPEAT,this.maxAnisotropy=1,this.flipped=!1,this.hasMipmap=!1,this.isOpaque=!1,this.unpackAlignment=4,this.preMultiplyAlpha=!1,this.depth=1,this.isImmutable=!1}}function R(e){return e.width<=0||e.height<=0?0:Math.round(e.width*e.height*(e.hasMipmap?4/3:1)*(null==e.internalFormat?4:(0,T.RG)(e.internalFormat)))}},62486:function(e,t,_){_.d(t,{HH:function(){return R},RG:function(){return A},XP:function(){return i}});_(39994);var E=_(6174),T=_(91907),r=_(13683);function R(e){const t=e.gl;switch(t.getError()){case t.NO_ERROR:return null;case t.INVALID_ENUM:return"An unacceptable value has been specified for an enumerated argument";case t.INVALID_VALUE:return"An unacceptable value has been specified for an argument";case t.INVALID_OPERATION:return"The specified command is not allowed for the current state";case t.INVALID_FRAMEBUFFER_OPERATION:return"The currently bound framebuffer is not framebuffer complete";case t.OUT_OF_MEMORY:return"Not enough memory is left to execute the command";case t.CONTEXT_LOST_WEBGL:return"WebGL context is lost"}return"Unknown error"}function i(e,t,_,T,i=0){const A=e.gl;e.bindBuffer(_);for(const _ of T){const T=t.get(_.name);if(void 0===T)continue;const n=i*_.stride;if(_.count<=4)A.vertexAttribPointer(T,_.count,_.type,_.normalized,_.stride,_.offset+n),A.enableVertexAttribArray(T),_.divisor>0&&e.gl.vertexAttribDivisor(T,_.divisor);else if(9===_.count)for(let t=0;t<3;t++)A.vertexAttribPointer(T+t,3,_.type,_.normalized,_.stride,_.offset+12*t+n),A.enableVertexAttribArray(T+t),_.divisor>0&&e.gl.vertexAttribDivisor(T+t,_.divisor);else if(16===_.count)for(let t=0;t<4;t++)A.vertexAttribPointer(T+t,4,_.type,_.normalized,_.stride,_.offset+16*t+n),A.enableVertexAttribArray(T+t),_.divisor>0&&e.gl?.vertexAttribDivisor(T+t,_.divisor);if((0,E.hZ)()){R(e);const t=(0,r.S)(_.type),E=_.offset;Math.round(t/E)}}}function A(e){switch(e){case T.VI.ALPHA:case T.VI.LUMINANCE:case T.VI.RED:case T.VI.RED_INTEGER:case T.lP.R8:case T.lP.R8I:case T.lP.R8UI:case T.lP.R8_SNORM:case T.Tg.STENCIL_INDEX8:return 1;case T.VI.LUMINANCE_ALPHA:case T.VI.RG:case T.VI.RG_INTEGER:case T.lP.RGBA4:case T.lP.R16F:case T.lP.R16I:case T.lP.R16UI:case T.lP.RG8:case T.lP.RG8I:case T.lP.RG8UI:case T.lP.RG8_SNORM:case T.lP.RGB565:case T.lP.RGB5_A1:case T.Tg.DEPTH_COMPONENT16:return 2;case T.VI.DEPTH_COMPONENT:case T.VI.RGB:case T.VI.RGB_INTEGER:case T.lP.RGB8:case T.lP.RGB8I:case T.lP.RGB8UI:case T.lP.RGB8_SNORM:case T.lP.SRGB8:case T.Tg.DEPTH_COMPONENT24:return 3;case T.VI.DEPTH_STENCIL:case T.VI.DEPTH24_STENCIL8:case T.VI.RGBA:case T.VI.RGBA_INTEGER:case T.lP.RGBA8:case T.lP.R32F:case T.lP.R11F_G11F_B10F:case T.lP.RG16F:case T.lP.R32I:case T.lP.R32UI:case T.lP.RG16I:case T.lP.RG16UI:case T.lP.RGBA8I:case T.lP.RGBA8UI:case T.lP.RGBA8_SNORM:case T.lP.SRGB8_ALPHA8:case T.lP.RGB9_E5:case T.lP.RGB10_A2UI:case T.lP.RGB10_A2:case T.Tg.DEPTH_STENCIL:case T.Tg.DEPTH_COMPONENT32F:case T.Tg.DEPTH24_STENCIL8:return 4;case T.Tg.DEPTH32F_STENCIL8:return 5;case T.lP.RGB16F:case T.lP.RGB16I:case T.lP.RGB16UI:return 6;case T.lP.RG32F:case T.lP.RG32I:case T.lP.RG32UI:case T.lP.RGBA16F:case T.lP.RGBA16I:case T.lP.RGBA16UI:return 8;case T.lP.RGB32F:case T.lP.RGB32I:case T.lP.RGB32UI:return 12;case T.lP.RGBA32F:case T.lP.RGBA32I:case T.lP.RGBA32UI:return 16;case T.q_.COMPRESSED_RGB_S3TC_DXT1_EXT:case T.q_.COMPRESSED_RGBA_S3TC_DXT1_EXT:return.5;case T.q_.COMPRESSED_RGBA_S3TC_DXT3_EXT:case T.q_.COMPRESSED_RGBA_S3TC_DXT5_EXT:return 1;case T.q_.COMPRESSED_R11_EAC:case T.q_.COMPRESSED_SIGNED_R11_EAC:case T.q_.COMPRESSED_RGB8_ETC2:case T.q_.COMPRESSED_SRGB8_ETC2:case T.q_.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:case T.q_.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:return.5;case T.q_.COMPRESSED_RG11_EAC:case T.q_.COMPRESSED_SIGNED_RG11_EAC:case T.q_.COMPRESSED_RGBA8_ETC2_EAC:case T.q_.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:return 1}return 0}},6174:function(e,t,_){_.d(t,{CG:function(){return n},hZ:function(){return A},zu:function(){return s}});var E=_(70375),T=_(39994),r=_(13802);const R=()=>r.Z.getLogger("esri.views.webgl.checkWebGLError");const i=!!(0,T.Z)("enable-feature:webgl-debug");function A(){return i}function n(){return i}function s(e){if(A()){const t=e.getError();if(t){const _=function(e,t){switch(t){case e.INVALID_ENUM:return"Invalid Enum. An unacceptable value has been specified for an enumerated argument.";case e.INVALID_VALUE:return"Invalid Value. A numeric argument is out of range.";case e.INVALID_OPERATION:return"Invalid Operation. The specified command is not allowed for the current state.";case e.INVALID_FRAMEBUFFER_OPERATION:return"Invalid Framebuffer operation. The currently bound framebuffer is not framebuffer complete when trying to render to or to read from it.";case e.OUT_OF_MEMORY:return"Out of memory. Not enough memory is left to execute the command.";case e.CONTEXT_LOST_WEBGL:return"WebGL context has been lost";default:return"Unknown error"}}(e,t),T=(new Error).stack;R().error(new E.Z("webgl-error","WebGL error occurred",{message:_,stack:T}))}}}},91907:function(e,t,_){var E,T,r,R,i,A,n,s,a,N,o,I,c,S,C,u,O,P,l,M;_.d(t,{Br:function(){return u},Ho:function(){return l},LR:function(){return A},Lu:function(){return L},MX:function(){return T},No:function(){return c},Se:function(){return B},Tg:function(){return O},V1:function(){return D},V7:function(){return F},VI:function(){return S},VY:function(){return U},Wf:function(){return n},Xg:function(){return G},Y5:function(){return m},_g:function(){return h},cw:function(){return o},db:function(){return R},e8:function(){return I},g:function(){return s},l1:function(){return P},lP:function(){return C},lk:function(){return E},q_:function(){return d},qi:function(){return M},w0:function(){return i},wb:function(){return a},xS:function(){return N},zi:function(){return r}}),function(e){e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT"}(E||(E={})),function(e){e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN"}(T||(T={})),function(e){e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA"}(r||(r={})),function(e){e[e.ADD=32774]="ADD",e[e.MIN=32775]="MIN",e[e.MAX=32776]="MAX",e[e.SUBTRACT=32778]="SUBTRACT",e[e.REVERSE_SUBTRACT=32779]="REVERSE_SUBTRACT"}(R||(R={})),function(e){e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e[e.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",e[e.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",e[e.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",e[e.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",e[e.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER"}(i||(i={})),function(e){e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK"}(A||(A={})),function(e){e[e.CW=2304]="CW",e[e.CCW=2305]="CCW"}(n||(n={})),function(e){e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT"}(s||(s={})),function(e){e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS"}(a||(a={})),function(e){e[e.ZERO=0]="ZERO",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP"}(N||(N={})),function(e){e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR"}(o||(o={})),function(e){e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.REPEAT=10497]="REPEAT",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT"}(I||(I={})),function(e){e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_3D=32879]="TEXTURE_3D",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY"}(c||(c={})),function(e){e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.RED=6403]="RED",e[e.RG=33319]="RG",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER"}(S||(S={})),function(e){e[e.RGBA4=32854]="RGBA4",e[e.R16F=33325]="R16F",e[e.RG16F=33327]="RG16F",e[e.RGB32F=34837]="RGB32F",e[e.RGBA16F=34842]="RGBA16F",e[e.R32F=33326]="R32F",e[e.RG32F=33328]="RG32F",e[e.RGBA32F=34836]="RGBA32F",e[e.R11F_G11F_B10F=35898]="R11F_G11F_B10F",e[e.RGB8=32849]="RGB8",e[e.RGBA8=32856]="RGBA8",e[e.RGB5_A1=32855]="RGB5_A1",e[e.R8=33321]="R8",e[e.RG8=33323]="RG8",e[e.R8I=33329]="R8I",e[e.R8UI=33330]="R8UI",e[e.R16I=33331]="R16I",e[e.R16UI=33332]="R16UI",e[e.R32I=33333]="R32I",e[e.R32UI=33334]="R32UI",e[e.RG8I=33335]="RG8I",e[e.RG8UI=33336]="RG8UI",e[e.RG16I=33337]="RG16I",e[e.RG16UI=33338]="RG16UI",e[e.RG32I=33339]="RG32I",e[e.RG32UI=33340]="RG32UI",e[e.RGB16F=34843]="RGB16F",e[e.RGB9_E5=35901]="RGB9_E5",e[e.SRGB8=35905]="SRGB8",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.RGB565=36194]="RGB565",e[e.RGBA32UI=36208]="RGBA32UI",e[e.RGB32UI=36209]="RGB32UI",e[e.RGBA16UI=36214]="RGBA16UI",e[e.RGB16UI=36215]="RGB16UI",e[e.RGBA8UI=36220]="RGBA8UI",e[e.RGB8UI=36221]="RGB8UI",e[e.RGBA32I=36226]="RGBA32I",e[e.RGB32I=36227]="RGB32I",e[e.RGBA16I=36232]="RGBA16I",e[e.RGB16I=36233]="RGB16I",e[e.RGBA8I=36238]="RGBA8I",e[e.RGB8I=36239]="RGB8I",e[e.R8_SNORM=36756]="R8_SNORM",e[e.RG8_SNORM=36757]="RG8_SNORM",e[e.RGB8_SNORM=36758]="RGB8_SNORM",e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGB10_A2=32857]="RGB10_A2",e[e.RGB10_A2UI=36975]="RGB10_A2UI"}(C||(C={})),function(e){e[e.FLOAT=5126]="FLOAT",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.INT=5124]="INT",e[e.HALF_FLOAT=5131]="HALF_FLOAT",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV"}(u||(u={})),function(e){e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",e[e.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8"}(O||(O={})),function(e){e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.STATIC_READ=35045]="STATIC_READ",e[e.DYNAMIC_READ=35049]="DYNAMIC_READ",e[e.STREAM_READ=35041]="STREAM_READ",e[e.STATIC_COPY=35046]="STATIC_COPY",e[e.DYNAMIC_COPY=35050]="DYNAMIC_COPY",e[e.STREAM_COPY=35042]="STREAM_COPY"}(P||(P={})),function(e){e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER"}(l||(l={})),function(e){e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",e[e.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER"}(M||(M={}));const D=33984;var h,U,G;!function(e){e[e.Texture=0]="Texture",e[e.BufferObject=1]="BufferObject",e[e.VertexArrayObject=2]="VertexArrayObject",e[e.Shader=3]="Shader",e[e.Program=4]="Program",e[e.FramebufferObject=5]="FramebufferObject",e[e.Renderbuffer=6]="Renderbuffer",e[e.TransformFeedback=7]="TransformFeedback",e[e.Sync=8]="Sync",e[e.UNCOUNTED=9]="UNCOUNTED",e[e.LinesOfCode=9]="LinesOfCode",e[e.Uniform=10]="Uniform",e[e.COUNT=11]="COUNT"}(h||(h={})),function(e){e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",e[e.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",e[e.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",e[e.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",e[e.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",e[e.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",e[e.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",e[e.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",e[e.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",e[e.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",e[e.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",e[e.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",e[e.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",e[e.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",e[e.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15"}(U||(U={})),function(e){e[e.NONE=0]="NONE",e[e.BACK=1029]="BACK"}(G||(G={}));const L=33306;var d,B,p,f,m,F,g;!function(e){e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_SRGB8_ETC2=37493]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37494]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37495]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37496]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37497]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"}(d||(d={})),function(e){e[e.FLOAT=5126]="FLOAT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT=5124]="INT",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",e[e.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",e[e.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",e[e.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",e[e.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",e[e.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",e[e.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",e[e.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",e[e.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",e[e.SAMPLER_3D=35679]="SAMPLER_3D",e[e.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",e[e.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",e[e.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",e[e.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",e[e.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",e[e.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",e[e.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",e[e.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",e[e.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",e[e.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",e[e.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",e[e.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY"}(B||(B={})),function(e){e[e.OBJECT_TYPE=37138]="OBJECT_TYPE",e[e.SYNC_CONDITION=37139]="SYNC_CONDITION",e[e.SYNC_STATUS=37140]="SYNC_STATUS",e[e.SYNC_FLAGS=37141]="SYNC_FLAGS"}(p||(p={})),function(e){e[e.UNSIGNALED=37144]="UNSIGNALED",e[e.SIGNALED=37145]="SIGNALED"}(f||(f={})),function(e){e[e.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",e[e.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",e[e.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",e[e.WAIT_FAILED=37149]="WAIT_FAILED"}(m||(m={})),function(e){e[e.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE"}(F||(F={})),function(e){e[e.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT"}(g||(g={}))},13683:function(e,t,_){_.d(t,{S:function(){return T}});var E=_(91907);function T(e){switch(e){case E.g.BYTE:case E.g.UNSIGNED_BYTE:return 1;case E.g.SHORT:case E.g.UNSIGNED_SHORT:return 2;case E.g.FLOAT:case E.g.INT:case E.g.UNSIGNED_INT:return 4}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1489.b87acb6dd37ff0854056.js b/docs/sentinel1-explorer/1489.b87acb6dd37ff0854056.js new file mode 100644 index 00000000..34e3e84e --- /dev/null +++ b/docs/sentinel1-explorer/1489.b87acb6dd37ff0854056.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1489],{51489:function(e,_,t){t.r(_),t.d(_,{default:function(){return r}});const r={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"sau CN",_era_bc:"Trước CN",A:"s",P:"c",AM:"SA",PM:"CH","A.M.":"SA","P.M.":"CH",January:"tháng 1",February:"tháng 2",March:"tháng 3",April:"tháng 4",May:"tháng 5",June:"tháng 6",July:"tháng 7",August:"tháng 8",September:"tháng 9",October:"tháng 10",November:"tháng 11",December:"tháng 12",Jan:"thg 1",Feb:"thg 2",Mar:"thg 3",Apr:"thg 4","May(short)":"thg 5",Jun:"thg 6",Jul:"thg 7",Aug:"thg 8",Sep:"thg 9",Oct:"thg 10",Nov:"thg 11",Dec:"thg 12",Sunday:"Chủ Nhật",Monday:"Thứ Hai",Tuesday:"Thứ Ba",Wednesday:"Thứ Tư",Thursday:"Thứ Năm",Friday:"Thứ Sáu",Saturday:"Thứ Bảy",Sun:"CN",Mon:"Th 2",Tue:"Th 3",Wed:"Th 4",Thu:"Th 5",Fri:"Th 6",Sat:"Th 7",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Thu phóng",Play:"Phát",Stop:"Dừng",Legend:"Chú giải","Press ENTER to toggle":"",Loading:"Đang tải",Home:"Trang chủ",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"In",Image:"Hình ảnh",Data:"Dữ liệu",Print:"In","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Từ %1 đến %2","From %1":"Từ %1","To %1":"Đến %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1593.ff8e2a7cb9c4805eb718.js b/docs/sentinel1-explorer/1593.ff8e2a7cb9c4805eb718.js new file mode 100644 index 00000000..9bfa3daa --- /dev/null +++ b/docs/sentinel1-explorer/1593.ff8e2a7cb9c4805eb718.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1593],{5992:function(e,t,n){n.d(t,{e:function(){return l}});var i,r,s,o=n(58340),a={exports:{}};i=a,r=function(){function e(e,n,r){r=r||2;var s,o,a,u,c,h,f,_=n&&n.length,x=_?n[0]*r:e.length,y=t(e,0,x,r,!0),d=[];if(!y||y.next===y.prev)return d;if(_&&(y=l(e,n,y,r)),e.length>80*r){s=a=e[0],o=u=e[1];for(var E=r;Ea&&(a=c),h>u&&(u=h);f=0!==(f=Math.max(a-s,u-o))?1/f:0}return i(y,d,r,s,o,f),d}function t(e,t,n,i,r){var s,o;if(r===O(e,t,n,i)>0)for(s=t;s=t;s-=i)o=N(s,e[s],e[s+1],o);if(o&&p(o,o.next)){var a=o.next;S(o),o=a}return o}function n(e,t){if(!e)return e;t||(t=e);var n,i=e;do{if(n=!1,i.steiner||!p(i,i.next)&&0!==T(i.prev,i,i.next))i=i.next;else{var r=i.prev;if(S(i),(i=t=r)===i.next)break;n=!0}}while(n||i!==t);return t}function i(e,t,l,u,c,h,f){if(e){!f&&h&&_(e,u,c,h);for(var x,y,d=e;e.prev!==e.next;)if(x=e.prev,y=e.next,h?s(e,u,c,h):r(e))t.push(x.i/l),t.push(e.i/l),t.push(y.i/l),S(e),e=y.next,d=y.next;else if((e=y)===d){f?1===f?i(e=o(n(e),t,l),t,l,u,c,h,2):2===f&&a(e,t,l,u,c,h):i(n(e),t,l,u,c,h,1);break}}}function r(e){var t=e.prev,n=e,i=e.next;if(T(t,n,i)>=0)return!1;for(var r=e.next.next;r!==e.prev;){if(d(t.x,t.y,n.x,n.y,i.x,i.y,r.x,r.y)&&T(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function s(e,t,n,i){var r=e.prev,s=e,o=e.next;if(T(r,s,o)>=0)return!1;for(var a=r.xs.x?r.x>o.x?r.x:o.x:s.x>o.x?s.x:o.x,c=r.y>s.y?r.y>o.y?r.y:o.y:s.y>o.y?s.y:o.y,h=x(a,l,t,n,i),f=x(u,c,t,n,i),_=e.prevZ,y=e.nextZ;_&&_.z>=h&&y&&y.z<=f;){if(_!==e.prev&&_!==e.next&&d(r.x,r.y,s.x,s.y,o.x,o.y,_.x,_.y)&&T(_.prev,_,_.next)>=0)return!1;if(_=_.prevZ,y!==e.prev&&y!==e.next&&d(r.x,r.y,s.x,s.y,o.x,o.y,y.x,y.y)&&T(y.prev,y,y.next)>=0)return!1;y=y.nextZ}for(;_&&_.z>=h;){if(_!==e.prev&&_!==e.next&&d(r.x,r.y,s.x,s.y,o.x,o.y,_.x,_.y)&&T(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;y&&y.z<=f;){if(y!==e.prev&&y!==e.next&&d(r.x,r.y,s.x,s.y,o.x,o.y,y.x,y.y)&&T(y.prev,y,y.next)>=0)return!1;y=y.nextZ}return!0}function o(e,t,i){var r=e;do{var s=r.prev,o=r.next.next;!p(s,o)&&R(s,r,r.next,o)&&A(s,o)&&A(o,s)&&(t.push(s.i/i),t.push(r.i/i),t.push(o.i/i),S(r),S(r.next),r=e=o),r=r.next}while(r!==e);return n(r)}function a(e,t,r,s,o,a){var l=e;do{for(var u=l.next.next;u!==l.prev;){if(l.i!==u.i&&E(l,u)){var c=I(l,u);return l=n(l,l.next),c=n(c,c.next),i(l,t,r,s,o,a),void i(c,t,r,s,o,a)}u=u.next}l=l.next}while(l!==e)}function l(e,i,r,s){var o,a,l,c=[];for(o=0,a=i.length;o=i.next.y&&i.next.y!==i.y){var a=i.x+(s-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(a<=r&&a>o){if(o=a,a===r){if(s===i.y)return i;if(s===i.next.y)return i.next}n=i.x=i.x&&i.x>=c&&r!==i.x&&d(sn.x||i.x===n.x&&f(n,i)))&&(n=i,_=l)),i=i.next}while(i!==u);return n}(e,t);if(!i)return t;var r=I(i,e),s=n(i,i.next);let o=c(r);return n(o,o.next),s=c(s),c(t===i?s:t)}function f(e,t){return T(e.prev,e,t.prev)<0&&T(t.next,e,e.next)<0}function _(e,t,n,i){var r=e;do{null===r.z&&(r.z=x(r.x,r.y,t,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==e);r.prevZ.nextZ=null,r.prevZ=null,function(e){var t,n,i,r,s,o,a,l,u=1;do{for(n=e,e=null,s=null,o=0;n;){for(o++,i=n,a=0,t=0;t0||l>0&&i;)0!==a&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,a--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:e=r,r.prevZ=s,s=r;n=i}s.nextZ=null,u*=2}while(o>1)}(r)}function x(e,t,n,i,r){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*r)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-i)*r)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function y(e){var t=e,n=e;do{(t.x=0&&(e-o)*(i-a)-(n-o)*(t-a)>=0&&(n-o)*(s-a)-(r-o)*(i-a)>=0}function E(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&R(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(A(e,t)&&A(t,e)&&function(e,t){var n=e,i=!1,r=(e.x+t.x)/2,s=(e.y+t.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==e);return i}(e,t)&&(T(e.prev,e,t.prev)||T(e,t.prev,t))||p(e,t)&&T(e.prev,e,e.next)>0&&T(t.prev,t,t.next)>0)}function T(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function p(e,t){return e.x===t.x&&e.y===t.y}function R(e,t,n,i){var r=m(T(e,t,n)),s=m(T(e,t,i)),o=m(T(n,i,e)),a=m(T(n,i,t));return r!==s&&o!==a||!(0!==r||!g(e,n,t))||!(0!==s||!g(e,i,t))||!(0!==o||!g(n,e,i))||!(0!==a||!g(n,t,i))}function g(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function m(e){return e>0?1:e<0?-1:0}function A(e,t){return T(e.prev,e,e.next)<0?T(e,t,e.next)>=0&&T(e,e.prev,t)>=0:T(e,t,e.prev)<0||T(e,e.next,t)<0}function I(e,t){var n=new C(e.i,e.x,e.y),i=new C(t.i,t.x,t.y),r=e.next,s=t.prev;return e.next=t,t.prev=e,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function N(e,t,n,i){var r=new C(e,t,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function S(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function C(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function O(e,t,n,i){for(var r=0,s=t,o=n-i;s0&&(i+=e[r-1].length,n.holes.push(i))}return n},e},void 0!==(s=r())&&(i.exports=s);const l=(0,o.g)(a.exports)},38958:function(e,t,n){n.d(t,{b:function(){return u},j:function(){return l}});var i=n(36567),r=n(39994);const s=128e3;let o=null,a=null;async function l(){return o||(o=async function(){const e=(0,r.Z)("esri-csp-restrictions")?await n.e(2394).then(n.bind(n,42394)).then((e=>e.l)):await n.e(7981).then(n.bind(n,87981)).then((e=>e.l));a=await e.default({locateFile:e=>(0,i.V)(`esri/core/libs/libtess/${e}`)})}()),o}function u(e,t){const n=Math.max(e.length,s);return a.triangulate(e,t,n)}},25609:function(e,t,n){var i,r,s,o,a,l,u,c,h,f,_,x,y,d,E,T,p,R,g,m,A,I,N,S,C,O,M,L,P,D,B,v,b,U,F,G,w,V,H,k,z,W,Y,Z,X,K,j,q,Q,J,$,ee,te,ne,ie,re,se,oe,ae,le,ue;n.d(t,{$y:function(){return I},AH:function(){return r},CS:function(){return j},DD:function(){return c},Dd:function(){return P},Em:function(){return A},JS:function(){return X},Ky:function(){return h},Lh:function(){return q},Qb:function(){return se},RL:function(){return i},RS:function(){return ae},TF:function(){return m},Tx:function(){return a},UR:function(){return p},UX:function(){return re},bj:function(){return K},eZ:function(){return u},id:function(){return C},kP:function(){return G},of:function(){return _},r4:function(){return k},sj:function(){return w},v2:function(){return s},zQ:function(){return L},zV:function(){return T}}),function(e){e[e.BUTT=0]="BUTT",e[e.ROUND=1]="ROUND",e[e.SQUARE=2]="SQUARE",e[e.UNKNOWN=4]="UNKNOWN"}(i||(i={})),function(e){e[e.BEVEL=0]="BEVEL",e[e.ROUND=1]="ROUND",e[e.MITER=2]="MITER",e[e.UNKNOWN=4]="UNKNOWN"}(r||(r={})),function(e){e[e.SCREEN=0]="SCREEN",e[e.MAP=1]="MAP"}(s||(s={})),function(e){e[e.Tint=0]="Tint",e[e.Ignore=1]="Ignore",e[e.Multiply=99]="Multiply"}(o||(o={})),function(e){e.Both="Both",e.JustBegin="JustBegin",e.JustEnd="JustEnd",e.None="None"}(a||(a={})),function(e){e[e.Mosaic=0]="Mosaic",e[e.Centered=1]="Centered"}(l||(l={})),function(e){e[e.Normal=0]="Normal",e[e.Superscript=1]="Superscript",e[e.Subscript=2]="Subscript"}(u||(u={})),function(e){e[e.MSSymbol=0]="MSSymbol",e[e.Unicode=1]="Unicode"}(c||(c={})),function(e){e[e.Unspecified=0]="Unspecified",e[e.TrueType=1]="TrueType",e[e.PSOpenType=2]="PSOpenType",e[e.TTOpenType=3]="TTOpenType",e[e.Type1=4]="Type1"}(h||(h={})),function(e){e[e.Display=0]="Display",e[e.Map=1]="Map"}(f||(f={})),function(e){e.None="None",e.Loop="Loop",e.Oscillate="Oscillate"}(_||(_={})),function(e){e[e.Z=0]="Z",e[e.X=1]="X",e[e.Y=2]="Y"}(x||(x={})),function(e){e[e.XYZ=0]="XYZ",e[e.ZXY=1]="ZXY",e[e.YXZ=2]="YXZ"}(y||(y={})),function(e){e[e.Rectangle=0]="Rectangle",e[e.RoundedRectangle=1]="RoundedRectangle",e[e.Oval=2]="Oval"}(d||(d={})),function(e){e[e.None=0]="None",e[e.Alpha=1]="Alpha",e[e.Screen=2]="Screen",e[e.Multiply=3]="Multiply",e[e.Add=4]="Add"}(E||(E={})),function(e){e[e.TTB=0]="TTB",e[e.RTL=1]="RTL",e[e.BTT=2]="BTT"}(T||(T={})),function(e){e[e.None=0]="None",e[e.SignPost=1]="SignPost",e[e.FaceNearPlane=2]="FaceNearPlane"}(p||(p={})),function(e){e[e.Float=0]="Float",e[e.String=1]="String",e[e.Boolean=2]="Boolean"}(R||(R={})),function(e){e[e.Intersect=0]="Intersect",e[e.Subtract=1]="Subtract"}(g||(g={})),function(e){e.OpenEnded="OpenEnded",e.Block="Block",e.Crossed="Crossed"}(m||(m={})),function(e){e.FullGeometry="FullGeometry",e.PerpendicularFromFirstSegment="PerpendicularFromFirstSegment",e.ReversedFirstSegment="ReversedFirstSegment",e.PerpendicularToSecondSegment="PerpendicularToSecondSegment",e.SecondSegmentWithTicks="SecondSegmentWithTicks",e.DoublePerpendicular="DoublePerpendicular",e.OppositeToFirstSegment="OppositeToFirstSegment",e.TriplePerpendicular="TriplePerpendicular",e.HalfCircleFirstSegment="HalfCircleFirstSegment",e.HalfCircleSecondSegment="HalfCircleSecondSegment",e.HalfCircleExtended="HalfCircleExtended",e.OpenCircle="OpenCircle",e.CoverageEdgesWithTicks="CoverageEdgesWithTicks",e.GapExtentWithDoubleTicks="GapExtentWithDoubleTicks",e.GapExtentMidline="GapExtentMidline",e.Chevron="Chevron",e.PerpendicularWithArc="PerpendicularWithArc",e.ClosedHalfCircle="ClosedHalfCircle",e.TripleParallelExtended="TripleParallelExtended",e.ParallelWithTicks="ParallelWithTicks",e.Parallel="Parallel",e.PerpendicularToFirstSegment="PerpendicularToFirstSegment",e.ParallelOffset="ParallelOffset",e.OffsetOpposite="OffsetOpposite",e.OffsetSame="OffsetSame",e.CircleWithArc="CircleWithArc",e.DoubleJog="DoubleJog",e.PerpendicularOffset="PerpendicularOffset",e.LineExcludingLastSegment="LineExcludingLastSegment",e.MultivertexArrow="MultivertexArrow",e.CrossedArrow="CrossedArrow",e.ChevronArrow="ChevronArrow",e.ChevronArrowOffset="ChevronArrowOffset",e.PartialFirstSegment="PartialFirstSegment",e.Arch="Arch",e.CurvedParallelTicks="CurvedParallelTicks",e.Arc90Degrees="Arc90Degrees"}(A||(A={})),function(e){e.Mitered="Mitered",e.Bevelled="Bevelled",e.Rounded="Rounded",e.Square="Square",e.TrueBuffer="TrueBuffer"}(I||(I={})),function(e){e.ClosePath="ClosePath",e.ConvexHull="ConvexHull",e.RectangularBox="RectangularBox"}(N||(N={})),function(e){e.BeginningOfLine="BeginningOfLine",e.EndOfLine="EndOfLine"}(S||(S={})),function(e){e.Mitered="Mitered",e.Bevelled="Bevelled",e.Rounded="Rounded",e.Square="Square"}(C||(C={})),function(e){e.Fast="Fast",e.Accurate="Accurate"}(O||(O={})),function(e){e.BeginningOfLine="BeginningOfLine",e.EndOfLine="EndOfLine"}(M||(M={})),function(e){e.Sinus="Sinus",e.Square="Square",e.Triangle="Triangle",e.Random="Random"}(L||(L={})),function(e){e[e.None=0]="None",e[e.Default=1]="Default",e[e.Force=2]="Force"}(P||(P={})),function(e){e[e.Buffered=0]="Buffered",e[e.Left=1]="Left",e[e.Right=2]="Right",e[e.AlongLine=3]="AlongLine"}(D||(D={})),function(e){e[e.Linear=0]="Linear",e[e.Rectangular=1]="Rectangular",e[e.Circular=2]="Circular",e[e.Buffered=3]="Buffered"}(B||(B={})),function(e){e[e.Discrete=0]="Discrete",e[e.Continuous=1]="Continuous"}(v||(v={})),function(e){e[e.AcrossLine=0]="AcrossLine",e[e.AloneLine=1]="AloneLine"}(b||(b={})),function(e){e[e.Left=0]="Left",e[e.Right=1]="Right",e[e.Center=2]="Center",e[e.Justify=3]="Justify"}(U||(U={})),function(e){e[e.Base=0]="Base",e[e.MidPoint=1]="MidPoint",e[e.ThreePoint=2]="ThreePoint",e[e.FourPoint=3]="FourPoint",e[e.Underline=4]="Underline",e[e.CircularCW=5]="CircularCW",e[e.CircularCCW=6]="CircularCCW"}(F||(F={})),function(e){e.Butt="Butt",e.Round="Round",e.Square="Square"}(G||(G={})),function(e){e.NoConstraint="NoConstraint",e.HalfPattern="HalfPattern",e.HalfGap="HalfGap",e.FullPattern="FullPattern",e.FullGap="FullGap",e.Custom="Custom"}(w||(w={})),function(e){e[e.None=-1]="None",e[e.Custom=0]="Custom",e[e.Circle=1]="Circle",e[e.OpenArrow=2]="OpenArrow",e[e.ClosedArrow=3]="ClosedArrow",e[e.Diamond=4]="Diamond"}(V||(V={})),function(e){e[e.ExtraLeading=0]="ExtraLeading",e[e.Multiple=1]="Multiple",e[e.Exact=2]="Exact"}(H||(H={})),function(e){e.Bevel="Bevel",e.Round="Round",e.Miter="Miter"}(k||(k={})),function(e){e[e.Default=0]="Default",e[e.String=1]="String",e[e.Numeric=2]="Numeric"}(z||(z={})),function(e){e[e.InsidePolygon=0]="InsidePolygon",e[e.PolygonCenter=1]="PolygonCenter",e[e.RandomlyInsidePolygon=2]="RandomlyInsidePolygon"}(W||(W={})),function(e){e[e.Tint=0]="Tint",e[e.Replace=1]="Replace",e[e.Multiply=2]="Multiply"}(Y||(Y={})),function(e){e[e.ClipAtBoundary=0]="ClipAtBoundary",e[e.RemoveIfCenterOutsideBoundary=1]="RemoveIfCenterOutsideBoundary",e[e.DoNotTouchBoundary=2]="DoNotTouchBoundary",e[e.DoNotClip=3]="DoNotClip"}(Z||(Z={})),function(e){e.NoConstraint="NoConstraint",e.WithMarkers="WithMarkers",e.WithFullGap="WithFullGap",e.WithHalfGap="WithHalfGap",e.Custom="Custom"}(X||(X={})),function(e){e.Fixed="Fixed",e.Random="Random",e.RandomFixedQuantity="RandomFixedQuantity"}(K||(K={})),function(e){e.LineMiddle="LineMiddle",e.LineBeginning="LineBeginning",e.LineEnd="LineEnd",e.SegmentMidpoint="SegmentMidpoint"}(j||(j={})),function(e){e.OnPolygon="OnPolygon",e.CenterOfMass="CenterOfMass",e.BoundingBoxCenter="BoundingBoxCenter"}(q||(q={})),function(e){e[e.Low=0]="Low",e[e.Medium=1]="Medium",e[e.High=2]="High"}(Q||(Q={})),function(e){e[e.MarkerCenter=0]="MarkerCenter",e[e.MarkerBounds=1]="MarkerBounds"}(J||(J={})),function(e){e[e.None=0]="None",e[e.PropUniform=1]="PropUniform",e[e.PropNonuniform=2]="PropNonuniform",e[e.DifUniform=3]="DifUniform",e[e.DifNonuniform=4]="DifNonuniform"}($||($={})),function(e){e.Tube="Tube",e.Strip="Strip",e.Wall="Wall"}(ee||(ee={})),function(e){e[e.Random=0]="Random",e[e.Increasing=1]="Increasing",e[e.Decreasing=2]="Decreasing",e[e.IncreasingThenDecreasing=3]="IncreasingThenDecreasing"}(te||(te={})),function(e){e[e.Relative=0]="Relative",e[e.Absolute=1]="Absolute"}(ne||(ne={})),function(e){e[e.Normal=0]="Normal",e[e.LowerCase=1]="LowerCase",e[e.Allcaps=2]="Allcaps"}(ie||(ie={})),function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(re||(re={})),function(e){e.Draft="Draft",e.Picture="Picture",e.Text="Text"}(se||(se={})),function(e){e[e.Top=0]="Top",e[e.Center=1]="Center",e[e.Baseline=2]="Baseline",e[e.Bottom=3]="Bottom"}(oe||(oe={})),function(e){e[e.Right=0]="Right",e[e.Upright=1]="Upright"}(ae||(ae={})),function(e){e[e.Small=0]="Small",e[e.Medium=1]="Medium",e[e.Large=2]="Large"}(le||(le={})),function(e){e[e.Calm=0]="Calm",e[e.Rippled=1]="Rippled",e[e.Slight=2]="Slight",e[e.Moderate=3]="Moderate"}(ue||(ue={}))},14141:function(e,t,n){n.d(t,{Z:function(){return o}});var i,r,s=n(82584);(r=i||(i={}))[r.moveTo=1]="moveTo",r[r.lineTo=2]="lineTo",r[r.close=7]="close";class o{constructor(e,t,n=0){this.values={},this._geometry=void 0,this._pbfGeometry=null,this.featureIndex=n;const i=t.keys,r=t.values,s=e.asUnsafe();for(;s.next();)switch(s.tag()){case 1:this.id=s.getUInt64();break;case 2:{const e=s.getMessage().asUnsafe(),t=this.values;for(;!e.empty();){const n=e.getUInt32(),s=e.getUInt32();t[i[n]]=r[s]}e.release();break}case 3:this.type=s.getUInt32();break;case 4:this._pbfGeometry=s.getMessage();break;default:s.skip()}}getGeometry(e){if(void 0!==this._geometry)return this._geometry;if(!this._pbfGeometry)return null;const t=this._pbfGeometry.asUnsafe();let n,r;this._pbfGeometry=null,e?e.reset(this.type):n=[];let o,a=i.moveTo,l=0,u=0,c=0;for(;!t.empty();){if(0===l){const e=t.getUInt32();a=7&e,l=e>>3}switch(l--,a){case i.moveTo:u+=t.getSInt32(),c+=t.getSInt32(),e?e.moveTo(u,c):n&&(r&&n.push(r),r=[],r.push(new s.E9(u,c)));break;case i.lineTo:u+=t.getSInt32(),c+=t.getSInt32(),e?e.lineTo(u,c):r&&r.push(new s.E9(u,c));break;case i.close:e?e.close():r&&!r[0].equals(u,c)&&r.push(r[0].clone());break;default:throw t.release(),new Error("Invalid path operation")}}return e?o=e.result():n&&(r&&n.push(r),o=n),t.release(),this._geometry=o,o}}},51008:function(e,t,n){n.d(t,{Z:function(){return i}});class i{constructor(e){this.extent=4096,this.keys=[],this.values=[],this._pbfLayer=e.clone();const t=e.asUnsafe();for(;t.next();)switch(t.tag()){case 1:this.name=t.getString();break;case 3:this.keys.push(t.getString());break;case 4:this.values.push(t.processMessage(i._parseValue));break;case 5:this.extent=t.getUInt32();break;default:t.skip()}}getData(){return this._pbfLayer}static _parseValue(e){for(;e.next();)switch(e.tag()){case 1:return e.getString();case 2:return e.getFloat();case 3:return e.getDouble();case 4:return e.getInt64();case 5:return e.getUInt64();case 6:return e.getSInt64();case 7:return e.getBool();default:e.skip()}return null}}},63025:function(e,t,n){n.r(t),n.d(t,{default:function(){return $}});var i=n(78668),r=n(43405),s=n(82584),o=n(93944);function a(e){return 746===e||747===e||!(e<4352)&&(e>=12704&&e<=12735||e>=12544&&e<=12591||e>=65072&&e<=65103&&!(e>=65097&&e<=65103)||e>=63744&&e<=64255||e>=13056&&e<=13311||e>=11904&&e<=12031||e>=12736&&e<=12783||e>=12288&&e<=12351&&!(e>=12296&&e<=12305||e>=12308&&e<=12319||12336===e)||e>=13312&&e<=19903||e>=19968&&e<=40959||e>=12800&&e<=13055||e>=12592&&e<=12687||e>=43360&&e<=43391||e>=55216&&e<=55295||e>=4352&&e<=4607||e>=44032&&e<=55215||e>=12352&&e<=12447||e>=12272&&e<=12287||e>=12688&&e<=12703||e>=12032&&e<=12255||e>=12784&&e<=12799||e>=12448&&e<=12543&&12540!==e||e>=65280&&e<=65519&&!(65288===e||65289===e||65293===e||e>=65306&&e<=65310||65339===e||65341===e||65343===e||e>=65371&&e<=65503||65507===e||e>=65512&&e<=65519)||e>=65104&&e<=65135&&!(e>=65112&&e<=65118||e>=65123&&e<=65126)||e>=5120&&e<=5759||e>=6320&&e<=6399||e>=65040&&e<=65055||e>=19904&&e<=19967||e>=40960&&e<=42127||e>=42128&&e<=42191)}function l(e){return!(e<11904)&&(e>=12704&&e<=12735||e>=12544&&e<=12591||e>=65072&&e<=65103||e>=63744&&e<=64255||e>=13056&&e<=13311||e>=11904&&e<=12031||e>=12736&&e<=12783||e>=12288&&e<=12351||e>=13312&&e<=19903||e>=19968&&e<=40959||e>=12800&&e<=13055||e>=65280&&e<=65519||e>=12352&&e<=12447||e>=12272&&e<=12287||e>=12032&&e<=12255||e>=12784&&e<=12799||e>=12448&&e<=12543||e>=65040&&e<=65055||e>=42128&&e<=42191||e>=40960&&e<=42127)}function u(e){switch(e){case 10:case 32:case 38:case 40:case 41:case 43:case 45:case 47:case 173:case 183:case 8203:case 8208:case 8211:case 8231:return!0}return!1}function c(e){switch(e){case 9:case 10:case 11:case 12:case 13:case 32:return!0}return!1}var h=n(4655);const f=24;class _{constructor(e,t,n,i,r,s,o){this._glyphItems=e,this._maxWidth=t,this._lineHeight=n,this._letterSpacing=i,this._hAnchor=r,this._vAnchor=s,this._justify=o}getShaping(e,t,n){const i=this._letterSpacing,r=this._lineHeight,s=this._justify,o=this._maxWidth,h=[];let f=0,_=0;for(const t of e){const e=t.codePointAt(0);if(null==e)continue;const r=n&&a(e);let s;for(const t of this._glyphItems)if(s=t[e],s)break;h.push({codePoint:e,x:f,y:_,vertical:r,glyphMosaicItem:s}),s&&(f+=s.metrics.advance+i)}let x=f;o>0&&(x=f/Math.max(1,Math.ceil(f/o)));const y=e.includes("​"),d=[],E=h.length;for(let e=0;en&&c(h[i].codePoint);)h[i].glyphMosaicItem=null,--i;if(n<=i){const e=h[n].x;for(let t=n;t<=i;t++)h[t].x-=e,h[t].y=_;let t=h[i].x;h[i].glyphMosaicItem&&(t+=h[i].glyphMosaicItem.metrics.advance),p=Math.max(t,p),s&&this._applyJustification(h,n,i)}g=t,_+=R}if(h.length>0){const e=T.length-1,n=(s-this._hAnchor)*p;let i=(-this._vAnchor*(e+1)+.5)*r;t&&e&&(i+=e*r);for(const e of h)e.x+=n,e.y+=i}return h.filter((e=>e.glyphMosaicItem))}static getTextBox(e,t){if(!e.length)return null;let n=1/0,i=1/0,r=0,s=0;for(const o of e){const e=o.glyphMosaicItem.metrics.advance,a=o.x,l=o.y-17,u=a+e,c=l+t;n=Math.min(n,a),r=Math.max(r,u),i=Math.min(i,l),s=Math.max(s,c)}return{x:n,y:i,width:r-n,height:s-i}}static getBox(e){if(!e.length)return null;let t=1/0,n=1/0,i=0,r=0;for(const s of e){const{height:e,left:o,top:a,width:l}=s.glyphMosaicItem.metrics,u=s.x,c=s.y-(e-Math.abs(a)),h=u+l+o,f=c+e;t=Math.min(t,u),i=Math.max(i,h),n=Math.min(n,c),r=Math.max(r,f)}return{x:t,y:n,width:i-t,height:r-n}}static addDecoration(e,t){const n=e.length;if(0===n)return;let i=e[0].x+e[0].glyphMosaicItem.metrics.left,r=e[0].y;for(let s=1;s=0&&l,g=i.allowOverlap&&i.ignorePlacement?null:[],m=[],A=!E;let I=Number.POSITIVE_INFINITY,N=Number.NEGATIVE_INFINITY,S=I,C=N;const O=(E||l)&&u,M=i.size/f;let L=!1;for(const e of t)if(e.vertical){L=!0;break}let P,D=0,B=0;if(!E&&L){const e=_.getTextBox(t,i.lineHeight*f);switch(i.anchor){case y.nR.LEFT:D=e.height/2,B=-e.width/2;break;case y.nR.RIGHT:D=-e.height/2,B=e.width/2;break;case y.nR.TOP:D=e.height/2,B=e.width/2;break;case y.nR.BOTTOM:D=-e.height/2,B=-e.width/2;break;case y.nR.TOP_LEFT:D=e.height;break;case y.nR.BOTTOM_LEFT:B=-e.width;break;case y.nR.TOP_RIGHT:B=e.width;break;case y.nR.BOTTOM_RIGHT:D=-e.height}}D+=i.offset[0]*f,B+=i.offset[1]*f;for(const f of t){const t=f.glyphMosaicItem;if(!t||t.rect.isEmpty)continue;const _=t.rect,y=t.metrics,R=t.page;if(g&&A){if(void 0!==P&&P!==f.y){let t,n,r,s;L?(t=-C+D,n=I+B,r=C-S,s=N-I):(t=I+D,n=S+B,r=N-I,s=C-S);const l={xTile:e.x,yTile:e.y,dxPixels:t*M-c,dyPixels:n*M-c,hard:!i.optional,partIndex:1,width:r*M+2*c,height:s*M+2*c,angle:a,minLod:d,maxLod:o.FM};g.push(l),I=Number.POSITIVE_INFINITY,N=Number.NEGATIVE_INFINITY,S=I,C=N}P=f.y}const v=[];if(E){const i=.5*t.metrics.width,r=(f.x+y.left-4+i)*M*8;if(h=this._placeGlyph(e,h,r,n,e.segment,1,f.vertical,R,v),u&&(h=this._placeGlyph(e,h,r,n,e.segment,-1,f.vertical,R,v)),h>=2)break}else v.push(new T(r,x,x,R,!1)),l&&u&&v.push(new T(r,x+o.RD,x+o.RD,R,!1));const b=f.x+y.left,U=f.y-17-y.top,F=b+y.width,G=U+y.height;let w,V,H,k,z,W,Y,Z;if(!E&&L)if(f.vertical){const e=(b+F)/2-y.height/2,t=(U+G)/2+y.width/2;w=new s.E9(-t-4+D,e-4+B),V=new s.E9(w.x+_.width,w.y+_.height),H=new s.E9(w.x,V.y),k=new s.E9(V.x,w.y)}else w=new s.E9(4-U+D,b-4+B),V=new s.E9(w.x-_.height,w.y+_.width),H=new s.E9(V.x,w.y),k=new s.E9(w.x,V.y);else w=new s.E9(b-4+D,U-4+B),V=new s.E9(w.x+_.width,w.y+_.height),H=new s.E9(w.x,V.y),k=new s.E9(V.x,w.y);for(const t of v){let n,r,o,l;if(t.alternateVerticalGlyph){if(!z){const e=(U+G)/2+B;z=new s.E9((b+F)/2+D-y.height/2-4,e+y.width/2+4),W=new s.E9(z.x+_.height,z.y-_.width),Y=new s.E9(W.x,z.y),Z=new s.E9(z.x,W.y)}n=z,r=Y,o=Z,l=W}else n=w,r=H,o=k,l=V;const u=U,h=G,x=t.glyphAngle+a;if(0!==x){const e=Math.cos(x),t=Math.sin(x);n=n.clone(),r=r?.clone(),o=o?.clone(),l=l?.clone(),n.rotate(e,t),l?.rotate(e,t),r?.rotate(e,t),o?.rotate(e,t)}let d=0,T=256;if(E&&L?f.vertical?t.alternateVerticalGlyph?(d=32,T=96):(d=224,T=32):(d=224,T=96):(d=192,T=64),m.push(new p(n,o,r,l,_,t.labelAngle,d,T,t.anchor,t.minzoom,t.maxzoom,t.page)),g&&(!O||this._legible(t.labelAngle)))if(A)bN&&(N=F),h>C&&(C=h);else if(t.minzoom<2){const n={xTile:e.x,yTile:e.y,dxPixels:(b+D)*M-c,dyPixels:(u+D)*M-c,hard:!i.optional,partIndex:1,width:(F-b)*M+2*c,height:(h-u)*M+2*c,angle:x,minLod:t.minzoom,maxLod:t.maxzoom};g.push(n)}}}if(h>=2)return null;if(g&&A){let t,n,r,s;L?(t=-C+D,n=I+B,r=C-S,s=N-I):(t=I+D,n=S+B,r=N-I,s=C-S);const l={xTile:e.x,yTile:e.y,dxPixels:t*M-c,dyPixels:n*M-c,hard:!i.optional,partIndex:1,width:r*M+2*c,height:s*M+2*c,angle:a,minLod:d,maxLod:o.FM};g.push(l)}const v=new R(m);return g&&g.length>0&&(v.textColliders=g),v}_legible(e){const t=(0,o.Or)(e);return t<65||t>=193}_placeGlyph(e,t,n,i,r,a,l,u,c){let h=a;const f=h<0?(0,o.DQ)(e.angle+o.RD,o.yF):e.angle;let _=0;n<0&&(h*=-1,n*=-1,_=o.RD),h>0&&++r;let x=new s.E9(e.x,e.y),y=i[r],d=o.FM;if(i.length<=r)return d;for(;;){const e=y.x-x.x,s=y.y-x.y,a=Math.sqrt(e*e+s*s),E=Math.max(n/a,t),p=e/a,R=s/a,g=(0,o.DQ)(Math.atan2(R,p)+_,o.yF);if(c.push(new T(x,f,g,u,!1,E,d)),l&&c.push(new T(x,f,g,u,!0,E,d)),E<=t)return E;x=y.clone();do{if(r+=h,i.length<=r||r<0)return E;y=i[r]}while(x.isEqual(y));let m=y.x-x.x,A=y.y-x.y;const I=Math.sqrt(m*m+A*A);m*=a/I,A*=a/I,x.x-=m,x.y-=A,d=E}}}var m=n(76480),A=n(38958),I=n(14141),N=n(42938);class S extends N.Z{constructor(){super(12)}add(e,t,n){const i=this.array;i.push(e),i.push(t),i.push(n)}}class C extends N.Z{constructor(){super(4)}add(e){this.array.push(e)}}var O=n(51008);class M extends N.Z{constructor(e){super(e)}add(e,t,n,i,r,s,o,a,l,u,c,h){const f=this.array;let _=N.Z.i1616to32(e,t);f.push(_);const x=31;_=N.Z.i8888to32(Math.round(x*n),Math.round(x*i),Math.round(x*r),Math.round(x*s)),f.push(_),_=N.Z.i8888to32(Math.round(x*o),Math.round(x*a),Math.round(x*l),Math.round(x*u)),f.push(_),_=N.Z.i1616to32(c,0),f.push(_),h&&f.push(...h)}}class L extends N.Z{constructor(e){super(e)}add(e,t,n){const i=this.array;i.push(N.Z.i1616to32(e,t)),n&&i.push(...n)}}class P extends N.Z{constructor(e){super(e)}add(e,t,n,i,r,s,o){const a=this.array,l=this.index;let u=N.Z.i1616to32(e,t);a.push(u);return u=N.Z.i8888to32(Math.round(15*n),Math.round(15*i),r,s),a.push(u),o&&a.push(...o),l}}class D extends N.Z{constructor(e){super(e)}add(e,t,n,i,r,s,a,l,u,c,h,f){const _=this.array;let x=N.Z.i1616to32(e,t);_.push(x),x=N.Z.i1616to32(Math.round(8*n),Math.round(8*i)),_.push(x),x=N.Z.i8888to32(r/4,s/4,l,u),_.push(x),x=N.Z.i8888to32(0,(0,o.Or)(a),10*c,Math.min(10*h,255)),_.push(x),f&&_.push(...f)}}class B extends N.Z{constructor(e){super(e)}add(e,t,n,i,r){const s=this.array,o=N.Z.i1616to32(2*e+n,2*t+i);s.push(o),r&&s.push(...r)}}class v{constructor(e,t,n){this.layerExtent=4096,this._features=[],this.layer=e,this.zoom=t,this._spriteInfo=n,this._filter=e.getFeatureFilter()}pushFeature(e){this._filter&&!this._filter.filter(e,this.zoom)||this._features.push(e)}hasFeatures(){return this._features.length>0}getResources(e,t,n){}}class b extends v{constructor(e,t,n,i,s){super(e,t,n),this.type=r.al.CIRCLE,this._circleVertexBuffer=i,this._circleIndexBuffer=s}get circleIndexStart(){return this._circleIndexStart}get circleIndexCount(){return this._circleIndexCount}processFeatures(e){const t=this._circleVertexBuffer,n=this._circleIndexBuffer;this._circleIndexStart=3*n.index,this._circleIndexCount=0;const i=this.layer,r=this.zoom;e&&e.setExtent(this.layerExtent);for(const s of this._features){const o=s.getGeometry(e);if(!o)continue;const a=i.circleMaterial.encodeAttributes(s,r,i);for(const e of o)if(e)for(const i of e){const e=t.index;t.add(i.x,i.y,0,0,a),t.add(i.x,i.y,0,1,a),t.add(i.x,i.y,1,0,a),t.add(i.x,i.y,1,1,a),n.add(e,e+1,e+2),n.add(e+1,e+2,e+3),this._circleIndexCount+=6}}}serialize(){let e=6;e+=this.layerUIDs.length,e+=this._circleVertexBuffer.array.length,e+=this._circleIndexBuffer.array.length;const t=new Uint32Array(e),n=new Int32Array(t.buffer);let i=0;t[i++]=this.type,t[i++]=this.layerUIDs.length;for(let e=0;ee.page-t.page));for(const{ddFillAttributes:e,ddOutlineAttributes:n,page:i,geometry:r}of s)this._processFeature(r,u,t.outlineUsesFillColor,e,n,h,i)}}else for(const a of c){const l=s?i.encodeAttributes(a,n,t):null,c=u&&o?r.encodeAttributes(a,n,t):null,f=a.getGeometry(e);this._processFeature(f,u,t.outlineUsesFillColor,l,c,h)}}serialize(){let e=10;e+=this.layerUIDs.length,e+=this._fillVertexBuffer.array.length,e+=this._fillIndexBuffer.array.length,e+=this._outlineVertexBuffer.array.length,e+=this._outlineIndexBuffer.array.length,e+=3*this._patternMap.size+1;const t=new Uint32Array(e),n=new Int32Array(t.buffer);let i=0;t[i++]=this.type,t[i++]=this.layerUIDs.length;for(let e=0;e0)for(const[e,[n,s]]of r)t[i++]=e,t[i++]=n,t[i++]=s;t[i++]=this._fillVertexBuffer.array.length;for(let e=0;e32?(void 0!==u&&this._processFill(e,u,i,s,o),u=[t]):n<-32&&void 0!==u&&u.push(t)}void 0!==u&&this._processFill(e,u,i,s,o)}_processOutline(e,t){const n=this._outlineVertexBuffer,i=this._outlineIndexBuffer,r=i.index;let o,a,l;const u=new s.E9(0,0),c=new s.E9(0,0),h=new s.E9(0,0);let f=-1,_=-1,x=-1,y=-1,d=-1,E=!1;let T=e.length;if(T<2)return;const p=e[0];let R=e[T-1];for(;T&&R.isEqual(p);)--T,R=e[T-1];if(!(T-0<2)){for(let r=0;r8&&(g=8),p>=0?(x=n.add(a.x,a.y,u.x,u.y,0,1,t),-1===y&&(y=x),f>=0&&_>=0&&x>=0&&!s&&i.add(f,_,x),_=n.add(a.x,a.y,g*-h.x,g*-h.y,0,-1,t),-1===d&&(d=_),f>=0&&_>=0&&x>=0&&!s&&i.add(f,_,x),f=_,_=x,x=n.add(a.x,a.y,h.x,h.y,0,1,t),f>=0&&_>=0&&x>=0&&!s&&i.add(f,_,x),_=n.add(a.x,a.y,c.x,c.y,0,1,t),f>=0&&_>=0&&x>=0&&!s&&i.add(f,_,x)):(x=n.add(a.x,a.y,g*h.x,g*h.y,0,1,t),-1===y&&(y=x),f>=0&&_>=0&&x>=0&&!s&&i.add(f,_,x),_=n.add(a.x,a.y,-u.x,-u.y,0,-1,t),-1===d&&(d=_),f>=0&&_>=0&&x>=0&&!s&&i.add(f,_,x),f=_,_=x,x=n.add(a.x,a.y,-h.x,-h.y,0,-1,t),f>=0&&_>=0&&x>=0&&!s&&i.add(f,_,x),f=n.add(a.x,a.y,-c.x,-c.y,0,-1,t),f>=0&&_>=0&&x>=0&&!s&&i.add(f,_,x))}f>=0&&_>=0&&y>=0&&!E&&i.add(f,_,y),f>=0&&y>=0&&d>=0&&!E&&i.add(f,d,y),this._outlineIndexCount+=3*(i.index-r)}}_processFill(e,t,n,i,r){let s;t.length>1&&(s=[]);let o=0;for(const n of t)0!==o&&s.push(o),o+=e[n].length;const a=2*o,l=U.Z.acquire();for(const n of t){const t=e[n],i=t.length;for(let e=0;e0){const i=t.map((t=>e[t].length)),{buffer:s,vertexCount:o}=(0,A.b)(l,i);if(o>0){const e=this._fillVertexBuffer.index;for(let e=0;e0){const t=this._fillVertexBuffer.index;let i=0;for(;i=4160:e.y===t.y&&(e.y<=-64||e.y>=4160)}static _area(e){let t=0;const n=e.length-1;for(let i=0;ie.page-t.page)),r.textured=!0;for(const{ddAttributes:e,page:t,cap:n,join:i,miterLimit:o,roundLimit:a,halfWidth:l,offset:u,geometry:c}of s)r.capType=n,r.joinType=i,r.miterLimit=o,r.roundLimit=a,r.halfWidth=l,r.offset=u,this._processFeature(c,e,t)}else{if(a){const e=a.getValue(n),t=this._spriteInfo[e];if(!t?.rect)return}r.textured=!(!a&&!l),r.capType=_,r.joinType=E,r.miterLimit=p,r.roundLimit=g,r.halfWidth=.5*A,r.offset=N;for(const a of i){const i=s?o.encodeAttributes(a,n,t):null;f&&(r.capType=f.getValue(n,a)),d&&(r.joinType=d.getValue(n,a)),T&&(r.miterLimit=T.getValue(n,a)),R&&(r.roundLimit=R.getValue(n,a)),m&&(r.halfWidth=.5*m.getValue(n,a)),I&&(r.offset=I.getValue(n,a));const l=a.getGeometry(e);this._processFeature(l,i)}}}serialize(){let e=6;e+=this.layerUIDs.length,e+=this.tessellationProperties._lineVertexBuffer.array.length,e+=this.tessellationProperties._lineIndexBuffer.array.length,e+=3*this._patternMap.size+1;const t=new Uint32Array(e),n=new Int32Array(t.buffer);let i=0;t[i++]=this.type,t[i++]=this.layerUIDs.length;for(let e=0;e0)for(const[e,[n,s]]of r)t[i++]=e,t[i++]=n,t[i++]=s;t[i++]=this.tessellationProperties._lineVertexBuffer.array.length;for(let e=0;e(t,n,i,r,s,o,a,l,u,c,h)=>(e._lineVertexBuffer.add(t,n,a,l,i,r,s,o,u,c,h,e._ddValues),e._lineVertexBuffer.index-1),k=e=>(t,n,i)=>{e._lineIndexBuffer.add(t,n,i)};var z=n(11026),W=n(61681),Y=n(21130),Z=n(18897);function X(e,t){return e.iconMosaicItem&&t.iconMosaicItem?e.iconMosaicItem.page===t.iconMosaicItem.page?0:e.iconMosaicItem.page-t.iconMosaicItem.page:e.iconMosaicItem&&!t.iconMosaicItem?1:!e.iconMosaicItem&&t.iconMosaicItem?-1:0}class K extends v{constructor(e,t,n,i,s,o,a,l,u){super(t,n,u.getSpriteItems()),this.type=r.al.SYMBOL,this._markerMap=new Map,this._glyphMap=new Map,this._glyphBufferDataStorage=new Map,this._isIconSDF=!1,this._sourceTileKey=e,this._iconVertexBuffer=i,this._iconIndexBuffer=s,this._textVertexBuffer=o,this._textIndexBuffer=a,this._placementEngine=l,this._workerTileHandler=u}get markerPageMap(){return this._markerMap}get glyphsPageMap(){return this._glyphMap}get symbolInstances(){return this._symbolInstances}getResources(e,t,n){const i=this.layer,r=this.zoom;e&&e.setExtent(this.layerExtent);const s=i.getLayoutProperty("icon-image"),o=i.getLayoutProperty("text-field");let a=i.getLayoutProperty("text-transform"),l=i.getLayoutProperty("text-font");const u=[];let c,h,f,_;s&&!s.isDataDriven&&(c=s.getValue(r)),o&&!o.isDataDriven&&(h=o.getValue(r)),a&&a.isDataDriven||(f=i.getLayoutValue("text-transform",r),a=null),l&&l.isDataDriven||(_=i.getLayoutValue("text-font",r),l=null);for(const x of this._features){const d=x.getGeometry(e);if(!d||0===d.length)continue;let E,T;s&&(E=s.isDataDriven?s.getValue(r,x):this._replaceKeys(c,x.values),E&&t(E));let p=!1;if(o&&(T=o.isDataDriven?o.getValue(r,x):this._replaceKeys(h,x.values),T)){switch(T=T.replaceAll("\\n","\n"),a&&(f=a.getValue(r,x)),f){case y._5.LOWERCASE:T=T.toLowerCase();break;case y._5.UPPERCASE:T=T.toUpperCase()}if(K._bidiEngine.hasBidiChar(T)){let e;e="rtl"===K._bidiEngine.checkContextual(T)?"IDNNN":"ICNNN",T=K._bidiEngine.bidiTransform(T,e,"VLYSN"),p=!0}if(T.length>0){l&&(_=l.getValue(r,x));for(const e of _){let t=n[e];t||(t=n[e]=new Set);for(const e of T){const n=e.codePointAt(0);null!=n&&t.add(n)}}}}if(!E&&!T)continue;const R=i.getLayoutValue("symbol-sort-key",r,x),g={feature:x,sprite:E,label:T,rtl:p,geometry:d,hash:(T?(0,Y.hP)(T):0)^(E?(0,Y.hP)(E):0),priority:R,textFont:_};u.push(g)}this._symbolFeatures=u}processFeatures(e){e&&e.setExtent(this.layerExtent);const t=this.layer,n=this.zoom,i=t.getLayoutValue("symbol-placement",n),r=i!==y.R.POINT,a=8*t.getLayoutValue("symbol-spacing",n),l=t.getLayoutProperty("icon-image"),u=t.getLayoutProperty("text-field"),c=l?new Z._L(t,n,r):null,h=u?new Z.nj(t,n,r):null,x=this._workerTileHandler;let d;l&&(d=x.getSpriteItems()),this._iconIndexStart=3*this._iconIndexBuffer.index,this._textIndexStart=3*this._textIndexBuffer.index,this._iconIndexCount=0,this._textIndexCount=0,this._markerMap.clear(),this._glyphMap.clear();const T=[];let p=1;h&&h.size&&(p=h.size/f);const R=h?h.maxAngle*o.nF:0,g=h?8*h.size:0;for(const e of this._symbolFeatures){let t,o;c&&d&&e.sprite&&(t=d[e.sprite],t&&t.sdf&&(this._isIconSDF=!0)),t&&c.update(n,e.feature);let l=0;const u=e.label;if(u){(0,W.O3)(h),h.update(n,e.feature);const t=r&&h.rotationAlignment===y.aF.MAP?h.keepUpright:h.writingMode&&h.writingMode.includes(y.r1.VERTICAL);let i=.5;switch(h.anchor){case y.nR.TOP_LEFT:case y.nR.LEFT:case y.nR.BOTTOM_LEFT:i=0;break;case y.nR.TOP_RIGHT:case y.nR.RIGHT:case y.nR.BOTTOM_RIGHT:i=1}let s=.5;switch(h.anchor){case y.nR.TOP_LEFT:case y.nR.TOP:case y.nR.TOP_RIGHT:s=0;break;case y.nR.BOTTOM_LEFT:case y.nR.BOTTOM:case y.nR.BOTTOM_RIGHT:s=1}let a=.5;switch(h.justify){case y.vL.AUTO:a=i;break;case y.vL.LEFT:a=0;break;case y.vL.RIGHT:a=1}const c=h.letterSpacing*f,d=r?0:h.maxWidth*f,E=h.lineHeight*f,T=e.textFont.map((e=>x.getGlyphItems(e)));if(o=new _(T,d,E,c,i,s,a).getShaping(u,e.rtl,t),o&&o.length>0){let e=1e30,t=-1e30;for(const n of o)e=Math.min(e,n.x),t=Math.max(t,n.x);l=(t-e+48)*p*8}}for(let n of e.geometry){const u=[];if(i===y.R.LINE){if(o?.length&&h?.size){const e=8*h.size*(2+Math.min(2,4*Math.abs(h.offset[1])));n=K._smoothVertices(n,e)}K._pushAnchors(u,n,a,l)}else i===y.R.LINE_CENTER?K._pushCenterAnchor(u,n):e.feature.type===s.Vl.Polygon?K._pushCentroid(u,n):u.push(new E(n[0].x,n[0].y));for(const i of u){if(i.x<0||i.x>4096||i.y<0||i.y>4096)continue;if(r&&l>0&&h?.rotationAlignment===y.aF.MAP&&!K._honorsTextMaxAngle(n,i,l,R,g))continue;const s={shaping:o,line:n,iconMosaicItem:t,anchor:i,symbolFeature:e,textColliders:[],iconColliders:[],textVertexRanges:[],iconVertexRanges:[]};T.push(s),this._processFeature(s,c,h)}}}T.sort(X),this._addPlacedGlyphs(),this._symbolInstances=T}serialize(){let e=14;e+=this.layerUIDs.length,e+=3*this.markerPageMap.size,e+=3*this.glyphsPageMap.size,e+=K._symbolsSerializationLength(this._symbolInstances),e+=this._iconVertexBuffer.array.length,e+=this._iconIndexBuffer.array.length,e+=this._textVertexBuffer.array.length,e+=this._textIndexBuffer.array.length;const t=new Uint32Array(e),n=new Int32Array(t.buffer),i=new Float32Array(t.buffer),[r,s,o]=this._sourceTileKey.split("/");let a=0;t[a++]=this.type,t[a++]=this.layerUIDs.length;for(let e=0;en in t?t[n]:""))}_processFeature(e,t,n){const{line:i,iconMosaicItem:r,shaping:s,anchor:a}=e,l=this.zoom,u=this.layer,c=!!r;let h=!0;c&&(h=t?.optional||!r);const f=s&&s.length>0,_=!f||n?.optional;let x,d;if(c&&(x=this._placementEngine.getIconPlacement(a,r,t)),(x||h)&&(f&&(d=this._placementEngine.getTextPlacement(a,s,i,n)),d||_)){if(x&&d||(_||h?_||d?h||x||(d=null):x=null:(x=null,d=null)),d){const t=u.hasDataDrivenText?u.textMaterial.encodeAttributes(e.symbolFeature.feature,l,u):null;if(this._storePlacedGlyphs(e,d.shapes,l,n.rotationAlignment,t),d.textColliders){e.textColliders=d.textColliders;for(const e of d.textColliders){e.minLod=Math.max(l+(0,o.k3)(e.minLod),0),e.maxLod=Math.min(l+(0,o.k3)(e.maxLod),25);const t=e.angle;if(t){const n=Math.cos(t),i=Math.sin(t),r=e.dxPixels*n-e.dyPixels*i,s=e.dxPixels*i+e.dyPixels*n,o=(e.dxPixels+e.width)*n-e.dyPixels*i,a=(e.dxPixels+e.width)*i+e.dyPixels*n,l=e.dxPixels*n-(e.dyPixels+e.height)*i,u=e.dxPixels*i+(e.dyPixels+e.height)*n,c=(e.dxPixels+e.width)*n-(e.dyPixels+e.height)*i,h=(e.dxPixels+e.width)*i+(e.dyPixels+e.height)*n,f=Math.min(r,o,l,c),_=Math.max(r,o,l,c),x=Math.min(s,a,u,h),y=Math.max(s,a,u,h);e.dxPixels=f,e.dyPixels=x,e.width=_-f,e.height=y-x}}}}if(x){const n=u.hasDataDrivenIcon?u.iconMaterial.encodeAttributes(e.symbolFeature.feature,l,u):null;if(this._addPlacedIcons(e,x.shapes,l,r.page,t.rotationAlignment===y.aF.VIEWPORT,n),x.iconColliders){e.iconColliders=x.iconColliders;for(const e of x.iconColliders){e.minLod=Math.max(l+(0,o.k3)(e.minLod),0),e.maxLod=Math.min(l+(0,o.k3)(e.maxLod),25);const t=e.angle;if(t){const n=Math.cos(t),i=Math.sin(t),r=e.dxPixels*n-e.dyPixels*i,s=e.dxPixels*i+e.dyPixels*n,o=(e.dxPixels+e.width)*n-e.dyPixels*i,a=(e.dxPixels+e.width)*i+e.dyPixels*n,l=e.dxPixels*n-(e.dyPixels+e.height)*i,u=e.dxPixels*i+(e.dyPixels+e.height)*n,c=(e.dxPixels+e.width)*n-(e.dyPixels+e.height)*i,h=(e.dxPixels+e.width)*i+(e.dyPixels+e.height)*n,f=Math.min(r,o,l,c),_=Math.max(r,o,l,c),x=Math.min(s,a,u,h),y=Math.max(s,a,u,h);e.dxPixels=f,e.dyPixels=x,e.width=_-f,e.height=y-x}}}}}}_addPlacedIcons(e,t,n,i,r,s){const a=Math.max(n-1,0),l=this._iconVertexBuffer,u=this._iconIndexBuffer,c=this._markerMap;for(const h of t){const t=r?0:Math.max(n+(0,o.k3)(h.minzoom),a),f=r?25:Math.min(n+(0,o.k3)(h.maxzoom),25);if(f<=t)continue;const _=h.tl,x=h.tr,y=h.bl,d=h.br,E=h.mosaicRect,T=h.labelAngle,p=h.minAngle,R=h.maxAngle,g=h.anchor,m=l.index,A=E.x,I=E.y,N=A+E.width,S=I+E.height,C=l.index;l.add(g.x,g.y,_.x,_.y,A,I,T,p,R,t,f,s),l.add(g.x,g.y,x.x,x.y,N,I,T,p,R,t,f,s),l.add(g.x,g.y,y.x,y.y,A,S,T,p,R,t,f,s),l.add(g.x,g.y,d.x,d.y,N,S,T,p,R,t,f,s),e.iconVertexRanges.length>0&&e.iconVertexRanges[0][0]+e.iconVertexRanges[0][1]===C?e.iconVertexRanges[0][1]+=4:e.iconVertexRanges.push([C,4]),u.add(m,m+1,m+2),u.add(m+1,m+2,m+3),c.has(i)?c.get(i)[1]+=6:c.set(i,[this._iconIndexStart+this._iconIndexCount,6]),this._iconIndexCount+=6}}_addPlacedGlyphs(){const e=this._textVertexBuffer,t=this._textIndexBuffer,n=this._glyphMap;for(const[i,r]of this._glyphBufferDataStorage)for(const s of r){const r=e.index,o=s.symbolInstance,a=s.ddAttributes,l=e.index;e.add(s.glyphAnchor[0],s.glyphAnchor[1],s.tl[0],s.tl[1],s.xmin,s.ymin,s.labelAngle,s.minAngle,s.maxAngle,s.minLod,s.maxLod,a),e.add(s.glyphAnchor[0],s.glyphAnchor[1],s.tr[0],s.tr[1],s.xmax,s.ymin,s.labelAngle,s.minAngle,s.maxAngle,s.minLod,s.maxLod,a),e.add(s.glyphAnchor[0],s.glyphAnchor[1],s.bl[0],s.bl[1],s.xmin,s.ymax,s.labelAngle,s.minAngle,s.maxAngle,s.minLod,s.maxLod,a),e.add(s.glyphAnchor[0],s.glyphAnchor[1],s.br[0],s.br[1],s.xmax,s.ymax,s.labelAngle,s.minAngle,s.maxAngle,s.minLod,s.maxLod,a),o.textVertexRanges.length>0&&o.textVertexRanges[0][0]+o.textVertexRanges[0][1]===l?o.textVertexRanges[0][1]+=4:o.textVertexRanges.push([l,4]),t.add(r,r+1,r+2),t.add(r+1,r+2,r+3),n.has(i)?n.get(i)[1]+=6:n.set(i,[this._textIndexStart+this._textIndexCount,6]),this._textIndexCount+=6}this._glyphBufferDataStorage.clear()}_storePlacedGlyphs(e,t,n,i,r){const s=Math.max(n-1,0),a=i===y.aF.VIEWPORT;let l,u,c,h,f,_,x,d,E,T,p;for(const i of t)l=a?0:Math.max(n+(0,o.k3)(i.minzoom),s),u=a?25:Math.min(n+(0,o.k3)(i.maxzoom),25),u<=l||(c=i.tl,h=i.tr,f=i.bl,_=i.br,x=i.labelAngle,d=i.minAngle,E=i.maxAngle,T=i.anchor,p=i.mosaicRect,this._glyphBufferDataStorage.has(i.page)||this._glyphBufferDataStorage.set(i.page,[]),this._glyphBufferDataStorage.get(i.page).push({glyphAnchor:[T.x,T.y],tl:[c.x,c.y],tr:[h.x,h.y],bl:[f.x,f.y],br:[_.x,_.y],xmin:p.x,ymin:p.y,xmax:p.x+p.width,ymax:p.y+p.height,labelAngle:x,minAngle:d,maxAngle:E,minLod:l,maxLod:u,placementLod:s,symbolInstance:e,ddAttributes:r}))}static _pushAnchors(e,t,n,i){n+=i;let r=0;const a=t.length-1;for(let e=0;e-a;){if(--u,u<0)return!1;o-=s.E9.distance(e[u],l),l=e[u]}o+=s.E9.distance(e[u],e[u+1]);const c=[];let h=0;const f=e.length;for(;or;)h-=c.shift().deviation;if(Math.abs(h)>i)return!1;o+=s.E9.distance(n,l),u=a}return!0}static _smoothVertices(e,t){if(t<=0)return e;let n=e.length;if(n<3)return e;const i=[];let r=0,o=0;i.push(0);for(let t=1;t0&&(r+=n,i.push(r),o++,o!==t&&(e[o]=e[t]))}if(n=o+1,n<3)return e;t=Math.min(t,.2*r);const a=e[0].x,l=e[0].y,u=e[n-1].x,c=e[n-1].y,h=s.E9.sub(e[0],e[1]);h.normalize(),e[0].x+=t*h.x,e[0].y+=t*h.y,h.assignSub(e[n-1],e[n-2]),h.normalize(),e[n-1].x+=t*h.x,e[n-1].y+=t*h.y,i[0]-=t,i[n-1]+=t;const f=[];f.push(new s.E9(a,l));const _=1e-6,x=.5*t;for(let r=1;r=0;n--){const s=x+i[n+1]-i[r];if(s<0)break;const u=i[n+1]-i[n],c=i[r]-i[n]n&&(l=n),l<0&&(l=0),u>i&&(u=i),u<0&&(u=0);for(let e=1;en&&(r=n),r<0&&(r=0),c>i&&(c=i),c<0&&(c=0),h>n&&(h=n),h<0&&(h=0),f>i&&(f=i),f<0&&(f=0);const _=(r-l)*(f-u)-(h-l)*(c-u);s+=_*(l+r+h),o+=_*(u+c+f),a+=_}s/=3*a,o/=3*a,isNaN(s)||isNaN(o)||e.push(new E(s,o))}}var j;K._bidiEngine=new z.Z,function(e){e[e.INITIALIZED=0]="INITIALIZED",e[e.NO_DATA=1]="NO_DATA",e[e.READY=2]="READY",e[e.MODIFIED=3]="MODIFIED",e[e.INVALID=4]="INVALID"}(j||(j={}));class q{constructor(e,t,n,i,r,a){if(this._pbfTiles={},this._tileClippers={},this._client=n,this._tile=t,this._sourceDataMaxLOD=i,a){this._styleLayerUIDs=new Set;for(const e of a)this._styleLayerUIDs.add(e)}this._styleRepository=r,this._layers=this._styleRepository?.layers??[];const[l,u,c]=t.tileKey.split("/").map(parseFloat);this._level=l;const h=(0,o.KU)(this._level);for(const t of Object.keys(e)){const n=e[t];if(this._pbfTiles[t]=new m.Z(new Uint8Array(n.protobuff),new DataView(n.protobuff)),n.refKey){const[e]=n.refKey.split("/").map(parseFloat),i=l-e;if(i>0){const e=(1<{s.has(e)||(r.push({name:e,repeat:t}),s.add(e))},a={};for(const e of i)e.getResources(e.tileClipper,o,a);if(this._tile.status===j.INVALID)return[];const l=this._fetchResources(r,a,e);return Promise.all([...l,t]).then((()=>this._processFeatures(n.returnedBuckets)))}_initialize(e){const t=e?.signal;return{signal:t,sourceNameToTileData:this._parseTileData(this._pbfTiles),layers:this._layers,zoom:this._level,sourceNameToTileClipper:this._tileClippers,sourceNameToUniqueSourceLayerBuckets:{},sourceNameToUniqueSourceLayers:{},returnedBuckets:[],layerIdToBucket:{},referencerUIDToReferencedId:new Map}}_processLayers(e){const{sourceNameToTileData:t,zoom:n,layers:i,sourceNameToTileClipper:r,sourceNameToUniqueSourceLayerBuckets:s,sourceNameToUniqueSourceLayers:o,returnedBuckets:a,layerIdToBucket:l,referencerUIDToReferencedId:u}=e,c=this._sourceDataMaxLOD;for(let e=i.length-1;e>=0;e--){const h=i[e];if(n=h.maxzoom)continue}else if(h.maxzoom&&n>=h.maxzoom)continue;if(h.type===y.fR.BACKGROUND||!this._canParseStyleLayer(h.uid)||!t[h.source]||!r[h.source])continue;const f=t[h.source],_=r[h.source],x=h.sourceLayer,d=f[x];if(d){let e=o[h.source];if(e||(e=o[h.source]=new Set),e.add(h.sourceLayer),h.refLayerId)u.set(h.uid,h.refLayerId);else{const e=this._createBucket(h);if(e){e.layerUIDs=[h.uid],e.layerExtent=d.extent,e.tileClipper=_;let t=s[h.source];t||(t=s[h.source]={});let n=t[x];n||(n=t[x]=[]),n.push(e),a.push(e),l[h.id]=e}}}}}_linkReferences(e){const{layerIdToBucket:t,referencerUIDToReferencedId:n}=e;n.forEach(((e,n)=>{t[e]&&t[e].layerUIDs.push(n)}))}_filterFeatures(e){const{signal:t,sourceNameToTileData:n,sourceNameToUniqueSourceLayerBuckets:r,sourceNameToUniqueSourceLayers:s}=e,o=10*this._level,a=10*(this._level+1),l=[],u=[];for(const e of Object.keys(s))s[e].forEach((t=>{l.push(t),u.push(e)}));for(let e=0;e=a)continue;const t=n._maxzoom;if(t&&t<=o)continue}for(const e of f)e.pushFeature(t)}}}_fetchResources(e,t,n){const i=[],r=this._tile.getWorkerTileHandler();let s,o;e.length>0&&(s=r.fetchSprites(e,this._client,n),i.push(s));for(const e in t){const s=t[e];s.size>0&&(o=r.fetchGlyphs(this._tile.tileKey,e,s,this._client,n),i.push(o))}return i}_processFeatures(e){const t=e.filter((e=>e.hasFeatures()||this._canParseStyleLayer(e.layer.uid)));for(const e of t)e.processFeatures(e.tileClipper);return t}_parseTileData(e){const t={};for(const n of Object.keys(e)){const i=e[n],r={};for(;i.next();)switch(i.tag()){case 3:{const e=i.getMessage(),t=new O.Z(e);e.release(),r[t.name]=t;break}default:i.skip()}t[n]=r}return t}_createBucket(e){switch(e.type){case y.fR.BACKGROUND:return null;case y.fR.FILL:return this._createFillBucket(e);case y.fR.LINE:return this._createLineBucket(e);case y.fR.CIRCLE:return this._createCircleBucket(e);case y.fR.SYMBOL:return this._createSymbolBucket(e)}}_createFillBucket(e){return new G(e,this._level,this._tile.getWorkerTileHandler().getSpriteItems(),new L(e.fillMaterial.getStride()),new S,new P(e.outlineMaterial.getStride()),new S)}_createLineBucket(e){return new V(e,this._level,this._tile.getWorkerTileHandler().getSpriteItems(),new M(e.lineMaterial.getStride()),new S)}_createCircleBucket(e){return new b(e,this._level,this._tile.getWorkerTileHandler().getSpriteItems(),new B(e.circleMaterial.getStride()),new S)}_createSymbolBucket(e){const t=this._tile;return new K(t.tileKey,e,this._level,new D(e.iconMaterial.getStride()),new S,new D(e.textMaterial.getStride()),new S,t.placementEngine,t.getWorkerTileHandler())}}class Q{constructor(e,t,n,i){this.status=j.INITIALIZED,this.placementEngine=new g,this.tileKey=e,this.refKeys=t,this._workerTileHandler=n,this._styleRepository=i}release(){this.tileKey="",this.refKeys=null,this.status=j.INITIALIZED,this._workerTileHandler=null}async parse(e,t){const n=t?.signal;if(null!=n){const e=()=>{n.removeEventListener("abort",e),this.status=j.INVALID};n.addEventListener("abort",e)}let r;const s={bucketsWithData:[],emptyBuckets:null};try{r=await this._parse(e,t)}catch(e){if((0,i.D_)(e))throw e;return{result:s,transferList:[]}}this.status=j.READY;const o=s.bucketsWithData,a=[];for(const e of r)if(e.hasFeatures()){const t=e.serialize();o.push(t)}else a.push(e.layer.uid);const l=[...o];let u=null;return a.length>0&&(u=Uint32Array.from(a),l.push(u.buffer)),s.emptyBuckets=u,{result:s,transferList:l}}setObsolete(){this.status=j.INVALID}getLayers(){return this._workerTileHandler.getLayers()}getWorkerTileHandler(){return this._workerTileHandler}async _parse(e,t){const n=e.sourceName2DataAndRefKey;return 0===Object.keys(n).length?[]:(this.status=j.MODIFIED,new q(n,this,t.client,e.sourceDataMaxLOD,this._styleRepository,e.styleLayerUIDs).parse(t))}}var J=n(63043);class ${constructor(){this._spriteInfo={},this._glyphInfo={},this._sourceDataMaxLOD=25}reset(){return this._spriteInfo={},this._glyphInfo={},Promise.resolve()}getLayers(){return this._styleRepository?.layers??[]}async createTileAndParse(e,t){const{key:n}=e,r={};for(const t of Object.keys(e.sourceName2DataAndRefKey)){const n=e.sourceName2DataAndRefKey[t];r[t]=n.refKey}const s=new Q(n,r,this,this._styleRepository);try{return await s.parse({...e,sourceDataMaxLOD:this._sourceDataMaxLOD},t)}catch(e){if(s.setObsolete(),s.release(),!(0,i.D_)(e))throw e;return null}}updateStyle(e){if(!e||0===e.length||!this._styleRepository)return;const t=this._styleRepository;for(const n of e){const e=n.type,i=n.data;switch(e){case r.Fr.PAINTER_CHANGED:t.setPaintProperties(i.layer,i.paint);break;case r.Fr.LAYOUT_CHANGED:t.setLayoutProperties(i.layer,i.layout);break;case r.Fr.LAYER_REMOVED:t.deleteStyleLayer(i.layer);break;case r.Fr.LAYER_CHANGED:t.setStyleLayer(i.layer,i.index);break;case r.Fr.SPRITES_CHANGED:this._spriteInfo={}}}}setStyle(e){const{style:t,sourceDataMaxLOD:n}=e;this._styleRepository=new J.Z(t),this._sourceDataMaxLOD=n,this._spriteInfo={},this._glyphInfo={}}fetchSprites(e,t,n){const i=[],r=this._spriteInfo;for(const t of e)void 0===r[t.name]&&i.push(t);return 0===i.length?Promise.resolve():t.invoke("getSprites",i,{signal:n?.signal}).then((e=>{for(const t in e){const n=e[t];r[t]=n}}))}getSpriteItems(){return this._spriteInfo}fetchGlyphs(e,t,n,i,r){const s=[];let o=this._glyphInfo[t];return o?n.forEach((e=>{o[e]||s.push(e)})):(o=this._glyphInfo[t]=[],n.forEach((e=>s.push(e)))),0===s.length?Promise.resolve():i.invoke("getGlyphs",{tileID:e,font:t,codePoints:s},r).then((e=>{for(let t=0;tn){r=!0;const e=(n-i)/h;h=n-i,a=(1-e)*s+e*a,l=(1-e)*o+e*l,--t}const f=this._writeVertex(s,o,0,0,u,c,c,-u,0,-1,i),_=this._writeVertex(s,o,0,0,u,c,-c,u,0,1,i);i+=h;const x=this._writeVertex(a,l,0,0,u,c,c,-u,0,-1,i),y=this._writeVertex(a,l,0,0,u,c,-c,u,0,1,i);this._writeTriangle(f,_,x),this._writeTriangle(_,x,y),s=a,o=l}}_tessellate(e,t){const n=e[0],r=e[e.length-1],o=s(n,r),x=o?3:2;if(e.length{const o=V(A,I,P,D,n,i,e,t,r,s,w);return U>=0&&F>=0&&o>=0&&H(U,F,o),U=F,F=o,o};o&&(m=e[e.length-2],C.x=r.x-m.x,C.y=r.y-m.y,M=h(C),C.x/=M,C.y/=M);let z=!1;for(let t=0;tG&&(z=!0)),z){const n=(G-w)/O;O=G-w,m={x:(1-n)*m.x+n*e[t].x,y:(1-n)*m.y+n*e[t].y},--t}else m=e[t];A=m.x,I=m.y;const n=t<=0&&!z,r=t===e.length-1;if(n||(w+=O),N=r?o?e[1]:null:e[t+1],N?(C.x=N.x-A,C.y=N.y-I,M=h(C),C.x/=M,C.y/=M):(C.x=void 0,C.y=void 0),!o){if(n){l(L,C),P=L.x,D=L.y,d===i.RL.SQUARE&&(k(-C.y-C.x,C.x-C.y,C.x,C.y,0,-1),k(C.y-C.x,-C.x-C.y,C.x,C.y,0,1)),d===i.RL.ROUND&&(k(-C.y-C.x,C.x-C.y,C.x,C.y,-1,-1),k(C.y-C.x,-C.x-C.y,C.x,C.y,-1,1)),d!==i.RL.ROUND&&d!==i.RL.BUTT||(k(-C.y,C.x,C.x,C.y,0,-1),k(C.y,-C.x,C.x,C.y,0,1));continue}if(r){a(L,S),P=L.x,D=L.y,d!==i.RL.ROUND&&d!==i.RL.BUTT||(k(S.y,-S.x,-S.x,-S.y,0,-1),k(-S.y,S.x,-S.x,-S.y,0,1)),d===i.RL.SQUARE&&(k(S.y-S.x,-S.x-S.y,-S.x,-S.y,0,-1),k(-S.y-S.x,S.x-S.y,-S.x,-S.y,0,1)),d===i.RL.ROUND&&(k(S.y-S.x,-S.x-S.y,-S.x,-S.y,1,-1),k(-S.y-S.x,S.x-S.y,-S.x,-S.y,1,1));continue}}let s,x,V=(Y=C,-((W=S).x*Y.y-W.y*Y.x));if(Math.abs(V)<.01)f(S,C)>0?(L.x=S.x,L.y=S.y,V=1,s=Number.MAX_VALUE,x=!0):(l(L,C),V=1,s=1,x=!1);else{L.x=(S.x+C.x)/V,L.y=(S.y+C.y)/V,s=h(L);const e=(s-1)*R*y;x=s>4||e>O&&e>M}P=L.x,D=L.y;let H=E;switch(E){case i.AH.BEVEL:s<1.05&&(H=i.AH.MITER);break;case i.AH.ROUND:sT&&(H=i.AH.BEVEL)}switch(H){case i.AH.MITER:if(k(L.x,L.y,-S.x,-S.y,0,-1),k(-L.x,-L.y,-S.x,-S.y,0,1),r)break;if(g){const e=z?0:w;U=this._writeVertex(A,I,P,D,C.x,C.y,L.x,L.y,0,-1,e),F=this._writeVertex(A,I,P,D,C.x,C.y,-L.x,-L.y,0,1,e)}break;case i.AH.BEVEL:{const e=V<0;let t,n,i,s;if(e){const e=U;U=F,F=e,t=B,n=v}else t=v,n=B;if(x)i=e?l(this._innerPrev,S):a(this._innerPrev,S),s=e?a(this._innerNext,C):l(this._innerNext,C);else{const t=e?c(this._inner,L):u(this._inner,L);i=t,s=t}const o=e?a(this._bevelStart,S):l(this._bevelStart,S);k(i.x,i.y,-S.x,-S.y,t.x,t.y);const h=k(o.x,o.y,-S.x,-S.y,n.x,n.y);if(r)break;const f=e?l(this._bevelEnd,C):a(this._bevelEnd,C);if(x){const e=this._writeVertex(A,I,P,D,-S.x,-S.y,0,0,0,0,w);U=this._writeVertex(A,I,P,D,C.x,C.y,s.x,s.y,t.x,t.y,w),F=this._writeVertex(A,I,P,D,C.x,C.y,f.x,f.y,n.x,n.y,w),this._writeTriangle(h,e,F)}else{if(g){const e=this._bevelMiddle;e.x=(o.x+f.x)/2,e.y=(o.y+f.y)/2,_(b,e,-S.x,-S.y),k(e.x,e.y,-S.x,-S.y,b.x,b.y),_(b,e,C.x,C.y),U=this._writeVertex(A,I,P,D,C.x,C.y,e.x,e.y,b.x,b.y,w),F=this._writeVertex(A,I,P,D,C.x,C.y,s.x,s.y,t.x,t.y,w)}else{const e=U;U=F,F=e}k(f.x,f.y,C.x,C.y,n.x,n.y)}if(e){const e=U;U=F,F=e}break}case i.AH.ROUND:{const e=V<0;let t,n;if(e){const e=U;U=F,F=e,t=B,n=v}else t=v,n=B;const i=e?c(this._inner,L):u(this._inner,L);let o,h;x?(o=e?l(this._innerPrev,S):a(this._innerPrev,S),h=e?a(this._innerNext,C):l(this._innerNext,C)):(o=i,h=i);const y=e?a(this._roundStart,S):l(this._roundStart,S),d=e?l(this._roundEnd,C):a(this._roundEnd,C),E=k(o.x,o.y,-S.x,-S.y,t.x,t.y),T=k(y.x,y.y,-S.x,-S.y,n.x,n.y);if(r)break;const p=this._writeVertex(A,I,P,D,-S.x,-S.y,0,0,0,0,w);x||this._writeTriangle(U,F,p);const R=c(this._outer,i),m=this._writeVertex(A,I,P,D,C.x,C.y,d.x,d.y,n.x,n.y,w);let N,O;const M=s>2;if(M){let t;s!==Number.MAX_VALUE?(R.x/=s,R.y/=s,t=f(S,R),t=(s*(t*t-1)+1)/t):t=-1,N=e?a(this._startBreak,S):l(this._startBreak,S),N.x+=S.x*t,N.y+=S.y*t,O=e?l(this._endBreak,C):a(this._endBreak,C),O.x+=C.x*t,O.y+=C.y*t}_(b,R,-S.x,-S.y);const G=this._writeVertex(A,I,P,D,-S.x,-S.y,R.x,R.y,b.x,b.y,w);_(b,R,C.x,C.y);const H=g?this._writeVertex(A,I,P,D,C.x,C.y,R.x,R.y,b.x,b.y,w):G,z=p,W=g?this._writeVertex(A,I,P,D,C.x,C.y,0,0,0,0,w):p;let Y=-1,Z=-1;if(M&&(_(b,N,-S.x,-S.y),Y=this._writeVertex(A,I,P,D,-S.x,-S.y,N.x,N.y,b.x,b.y,w),_(b,O,C.x,C.y),Z=this._writeVertex(A,I,P,D,C.x,C.y,O.x,O.y,b.x,b.y,w)),g?M?(this._writeTriangle(z,T,Y),this._writeTriangle(z,Y,G),this._writeTriangle(W,H,Z),this._writeTriangle(W,Z,m)):(this._writeTriangle(z,T,G),this._writeTriangle(W,H,m)):M?(this._writeTriangle(p,T,Y),this._writeTriangle(p,Y,Z),this._writeTriangle(p,Z,m)):(this._writeTriangle(p,T,G),this._writeTriangle(p,H,m)),x?(U=this._writeVertex(A,I,P,D,C.x,C.y,h.x,h.y,t.x,t.y,w),F=m):(U=g?this._writeVertex(A,I,P,D,C.x,C.y,h.x,h.y,t.x,t.y,w):E,this._writeTriangle(U,W,m),F=m),e){const e=U;U=F,F=e}break}}}var W,Y}}},14266:function(e,t,n){n.d(t,{BZ:function(){return H},FM:function(){return U},GV:function(){return Y},Ib:function(){return x},J1:function(){return z},JS:function(){return F},KA:function(){return G},Kg:function(){return s},Kt:function(){return f},Ly:function(){return p},NG:function(){return V},NY:function(){return y},Of:function(){return I},Pp:function(){return l},Sf:function(){return A},Uz:function(){return w},Vo:function(){return B},Zt:function(){return m},_8:function(){return Z},_E:function(){return D},ad:function(){return a},bm:function(){return E},ce:function(){return R},cz:function(){return g},dD:function(){return P},do:function(){return M},g3:function(){return C},gj:function(){return h},i9:function(){return r},iD:function(){return c},j1:function(){return T},k9:function(){return i},kU:function(){return O},l3:function(){return W},nY:function(){return L},nn:function(){return k},oh:function(){return o},qu:function(){return b},s4:function(){return v},uk:function(){return u},vk:function(){return N},wJ:function(){return _},wi:function(){return S},zZ:function(){return d}});const i=1e-30,r=512,s=128,o=511,a=16777216,l=8,u=29,c=24,h=4,f=0,_=0,x=0,y=1,d=2,E=3,T=4,p=5,R=6,g=12,m=5,A=6,I=5,N=6;var S;!function(e){e[e.FilterFlags=0]="FilterFlags",e[e.Animation=1]="Animation",e[e.GPGPU=2]="GPGPU",e[e.VV=3]="VV",e[e.DD0=4]="DD0",e[e.DD1=5]="DD1",e[e.DD2=6]="DD2"}(S||(S={}));const C=8,O=C<<1,M=1.05,L=1,P=5,D=6,B=1.15,v=2,b=128-2*v,U=2,F=10,G=1024,w=128,V=4,H=1,k=1<<20,z=.75,W=10,Y=.75,Z=256},41163:function(e,t,n){n.d(t,{G:function(){return i}});class i{constructor(e,t,n,i,r,s=!1,o=0){this.name=e,this.count=t,this.type=n,this.offset=i,this.stride=r,this.normalized=s,this.divisor=o}}},91907:function(e,t,n){var i,r,s,o,a,l,u,c,h,f,_,x,y,d,E,T,p,R,g,m;n.d(t,{Br:function(){return T},Ho:function(){return g},LR:function(){return l},Lu:function(){return C},MX:function(){return r},No:function(){return y},Se:function(){return M},Tg:function(){return p},V1:function(){return A},V7:function(){return B},VI:function(){return d},VY:function(){return N},Wf:function(){return u},Xg:function(){return S},Y5:function(){return D},_g:function(){return I},cw:function(){return _},db:function(){return o},e8:function(){return x},g:function(){return c},l1:function(){return R},lP:function(){return E},lk:function(){return i},q_:function(){return O},qi:function(){return m},w0:function(){return a},wb:function(){return h},xS:function(){return f},zi:function(){return s}}),function(e){e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT"}(i||(i={})),function(e){e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN"}(r||(r={})),function(e){e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA"}(s||(s={})),function(e){e[e.ADD=32774]="ADD",e[e.MIN=32775]="MIN",e[e.MAX=32776]="MAX",e[e.SUBTRACT=32778]="SUBTRACT",e[e.REVERSE_SUBTRACT=32779]="REVERSE_SUBTRACT"}(o||(o={})),function(e){e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e[e.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",e[e.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",e[e.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",e[e.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",e[e.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER"}(a||(a={})),function(e){e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK"}(l||(l={})),function(e){e[e.CW=2304]="CW",e[e.CCW=2305]="CCW"}(u||(u={})),function(e){e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT"}(c||(c={})),function(e){e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS"}(h||(h={})),function(e){e[e.ZERO=0]="ZERO",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP"}(f||(f={})),function(e){e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR"}(_||(_={})),function(e){e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.REPEAT=10497]="REPEAT",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT"}(x||(x={})),function(e){e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_3D=32879]="TEXTURE_3D",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY"}(y||(y={})),function(e){e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.RED=6403]="RED",e[e.RG=33319]="RG",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER"}(d||(d={})),function(e){e[e.RGBA4=32854]="RGBA4",e[e.R16F=33325]="R16F",e[e.RG16F=33327]="RG16F",e[e.RGB32F=34837]="RGB32F",e[e.RGBA16F=34842]="RGBA16F",e[e.R32F=33326]="R32F",e[e.RG32F=33328]="RG32F",e[e.RGBA32F=34836]="RGBA32F",e[e.R11F_G11F_B10F=35898]="R11F_G11F_B10F",e[e.RGB8=32849]="RGB8",e[e.RGBA8=32856]="RGBA8",e[e.RGB5_A1=32855]="RGB5_A1",e[e.R8=33321]="R8",e[e.RG8=33323]="RG8",e[e.R8I=33329]="R8I",e[e.R8UI=33330]="R8UI",e[e.R16I=33331]="R16I",e[e.R16UI=33332]="R16UI",e[e.R32I=33333]="R32I",e[e.R32UI=33334]="R32UI",e[e.RG8I=33335]="RG8I",e[e.RG8UI=33336]="RG8UI",e[e.RG16I=33337]="RG16I",e[e.RG16UI=33338]="RG16UI",e[e.RG32I=33339]="RG32I",e[e.RG32UI=33340]="RG32UI",e[e.RGB16F=34843]="RGB16F",e[e.RGB9_E5=35901]="RGB9_E5",e[e.SRGB8=35905]="SRGB8",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.RGB565=36194]="RGB565",e[e.RGBA32UI=36208]="RGBA32UI",e[e.RGB32UI=36209]="RGB32UI",e[e.RGBA16UI=36214]="RGBA16UI",e[e.RGB16UI=36215]="RGB16UI",e[e.RGBA8UI=36220]="RGBA8UI",e[e.RGB8UI=36221]="RGB8UI",e[e.RGBA32I=36226]="RGBA32I",e[e.RGB32I=36227]="RGB32I",e[e.RGBA16I=36232]="RGBA16I",e[e.RGB16I=36233]="RGB16I",e[e.RGBA8I=36238]="RGBA8I",e[e.RGB8I=36239]="RGB8I",e[e.R8_SNORM=36756]="R8_SNORM",e[e.RG8_SNORM=36757]="RG8_SNORM",e[e.RGB8_SNORM=36758]="RGB8_SNORM",e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGB10_A2=32857]="RGB10_A2",e[e.RGB10_A2UI=36975]="RGB10_A2UI"}(E||(E={})),function(e){e[e.FLOAT=5126]="FLOAT",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.INT=5124]="INT",e[e.HALF_FLOAT=5131]="HALF_FLOAT",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV"}(T||(T={})),function(e){e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",e[e.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8"}(p||(p={})),function(e){e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.STATIC_READ=35045]="STATIC_READ",e[e.DYNAMIC_READ=35049]="DYNAMIC_READ",e[e.STREAM_READ=35041]="STREAM_READ",e[e.STATIC_COPY=35046]="STATIC_COPY",e[e.DYNAMIC_COPY=35050]="DYNAMIC_COPY",e[e.STREAM_COPY=35042]="STREAM_COPY"}(R||(R={})),function(e){e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER"}(g||(g={})),function(e){e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",e[e.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER"}(m||(m={}));const A=33984;var I,N,S;!function(e){e[e.Texture=0]="Texture",e[e.BufferObject=1]="BufferObject",e[e.VertexArrayObject=2]="VertexArrayObject",e[e.Shader=3]="Shader",e[e.Program=4]="Program",e[e.FramebufferObject=5]="FramebufferObject",e[e.Renderbuffer=6]="Renderbuffer",e[e.TransformFeedback=7]="TransformFeedback",e[e.Sync=8]="Sync",e[e.UNCOUNTED=9]="UNCOUNTED",e[e.LinesOfCode=9]="LinesOfCode",e[e.Uniform=10]="Uniform",e[e.COUNT=11]="COUNT"}(I||(I={})),function(e){e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",e[e.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",e[e.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",e[e.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",e[e.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",e[e.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",e[e.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",e[e.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",e[e.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",e[e.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",e[e.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",e[e.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",e[e.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",e[e.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",e[e.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15"}(N||(N={})),function(e){e[e.NONE=0]="NONE",e[e.BACK=1029]="BACK"}(S||(S={}));const C=33306;var O,M,L,P,D,B,v;!function(e){e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_SRGB8_ETC2=37493]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37494]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37495]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37496]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37497]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"}(O||(O={})),function(e){e[e.FLOAT=5126]="FLOAT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT=5124]="INT",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",e[e.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",e[e.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",e[e.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",e[e.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",e[e.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",e[e.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",e[e.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",e[e.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",e[e.SAMPLER_3D=35679]="SAMPLER_3D",e[e.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",e[e.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",e[e.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",e[e.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",e[e.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",e[e.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",e[e.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",e[e.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",e[e.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",e[e.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",e[e.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",e[e.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY"}(M||(M={})),function(e){e[e.OBJECT_TYPE=37138]="OBJECT_TYPE",e[e.SYNC_CONDITION=37139]="SYNC_CONDITION",e[e.SYNC_STATUS=37140]="SYNC_STATUS",e[e.SYNC_FLAGS=37141]="SYNC_FLAGS"}(L||(L={})),function(e){e[e.UNSIGNALED=37144]="UNSIGNALED",e[e.SIGNALED=37145]="SIGNALED"}(P||(P={})),function(e){e[e.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",e[e.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",e[e.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",e[e.WAIT_FAILED=37149]="WAIT_FAILED"}(D||(D={})),function(e){e[e.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE"}(B||(B={})),function(e){e[e.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT"}(v||(v={}))}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1605.d6a00f2c7c6a550d595f.js b/docs/sentinel1-explorer/1605.d6a00f2c7c6a550d595f.js new file mode 100644 index 00000000..85aabe5f --- /dev/null +++ b/docs/sentinel1-explorer/1605.d6a00f2c7c6a550d595f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1605],{21605:function(e,t,r){r.r(t),r.d(t,{default:function(){return m}});var s,o=r(36663),n=r(82064),p=r(81977),i=r(7283),y=(r(4157),r(39994),r(40266)),a=r(5029),u=r(96776);let l=s=class extends n.wq{static from(e){return(0,i.TJ)(s,e)}constructor(e){super(e),this.returnDeletes=!1,this.elements=[],this.types=[],this.gdbVersion=null,this.moment=null}};(0,o._)([(0,p.Cb)({type:Boolean,json:{write:!0}})],l.prototype,"returnDeletes",void 0),(0,o._)([(0,p.Cb)({type:[u.Z],json:{write:!0}})],l.prototype,"elements",void 0),(0,o._)([(0,p.Cb)({type:[a.By.apiValues],json:{type:a.By.jsonValues,read:a.By.read,write:a.By.write}})],l.prototype,"types",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:!0}})],l.prototype,"gdbVersion",void 0),(0,o._)([(0,p.Cb)({type:Date,json:{type:Number,write:{writer:(e,t)=>{t.moment=e?.getTime()}}}})],l.prototype,"moment",void 0),l=s=(0,o._)([(0,y.j)("esri.rest.networks.support.QueryAssociationsParameters")],l);const m=l}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1637.05e1c10f54d6170aca4f.js b/docs/sentinel1-explorer/1637.05e1c10f54d6170aca4f.js new file mode 100644 index 00000000..8fee86a2 --- /dev/null +++ b/docs/sentinel1-explorer/1637.05e1c10f54d6170aca4f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1637],{41637:function(e,t,r){r.d(t,{isAnimatedGIF:function(){return S},parseGif:function(){return A}});var n=r(12928),i={},a={},o={};Object.defineProperty(o,"__esModule",{value:!0}),o.loop=o.conditional=o.parse=void 0;o.parse=function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:n;if(Array.isArray(r))r.forEach((function(r){return e(t,r,n,i)}));else if("function"==typeof r)r(t,n,i,e);else{var a=Object.keys(r)[0];Array.isArray(r[a])?(i[a]={},e(t,r[a],n,i[a])):i[a]=r[a](t,n,i,e)}return n};o.conditional=function(e,t){return function(r,n,i,a){t(r,n,i)&&a(r,e,n,i)}};o.loop=function(e,t){return function(r,n,i,a){for(var o=[],d=r.pos;t(r,n,i);){var s={};if(a(r,e,n,s),r.pos===d)break;d=r.pos,o.push(s)}return o}};var d={};Object.defineProperty(d,"__esModule",{value:!0}),d.readBits=d.readArray=d.readUnsigned=d.readString=d.peekBytes=d.readBytes=d.peekByte=d.readByte=d.buildStream=void 0;d.buildStream=function(e){return{data:e,pos:0}};var s=function(){return function(e){return e.data[e.pos++]}};d.readByte=s;d.peekByte=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function(t){return t.data[t.pos+e]}};var c=function(e){return function(t){return t.data.subarray(t.pos,t.pos+=e)}};d.readBytes=c;d.peekBytes=function(e){return function(t){return t.data.subarray(t.pos,t.pos+e)}};d.readString=function(e){return function(t){return Array.from(c(e)(t)).map((function(e){return String.fromCharCode(e)})).join("")}};d.readUnsigned=function(e){return function(t){var r=c(2)(t);return e?(r[1]<<8)+r[0]:(r[0]<<8)+r[1]}};d.readArray=function(e,t){return function(r,n,i){for(var a="function"==typeof t?t(r,n,i):t,o=c(e),d=new Array(a),s=0;s=n){var o=n-e.pos;t.push((0,r.readBytes)(o)(e)),i+=o;break}t.push((0,r.readBytes)(a)(e)),i+=a}for(var d=new Uint8Array(i),s=0,c=0;c>=o,g-=o,u>n||u==d)break;if(u==i){a=(1<<(o=f+1))-1,n=i+2,c=-1;continue}if(-1==c){A[h++]=k[u],c=u,y=u;continue}for(s=u,u==n&&(A[h++]=y,u=c);u>i;)A[h++]=k[u],u=b[u];y=255&k[u],A[h++]=y,ns[e],width:a,height:o}}function U(e){return b??=document.createElement("canvas"),k??=b.getContext("2d",{willReadFrequently:!0}),b.width=e.width,b.height=e.height,k.putImageData(e,0,0),b}p=i.decompressFrames=function(e,t){return e.frames.filter((function(e){return e.image})).map((function(r){return x(r,e.gct,t)}))};const _=[71,73,70];function S(e){if(!function(e){const t=new Uint8Array(e);return!_.some(((e,r)=>e!==t[r]))}(e))return!1;const t=new DataView(e),r=t.getUint8(10);let n=13+(128&r?3*2**(1+(7&r)):0),i=0,a=!1;for(;!a;){switch(t.getUint8(n++)){case 33:if(!o())return!1;break;case 44:d();break;case 59:a=!0;break;default:return!1}if(i>1)return!0}function o(){switch(t.getUint8(n++)){case 249:n++,n+=4,s();break;case 1:i++,n++,n+=12,s();break;case 254:s();break;case 255:n++,n+=8,n+=3,s();break;default:return!1}return!0}function d(){i++,n+=8;const e=t.getUint8(n++);n+=128&e?3*2**(1+(7&e)):0,n++,s()}function s(){let e;for(;e=t.getUint8(n++);)n+=e}return!1}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1655.ff4f967b33e6acb4a837.js b/docs/sentinel1-explorer/1655.ff4f967b33e6acb4a837.js new file mode 100644 index 00000000..8d94323e --- /dev/null +++ b/docs/sentinel1-explorer/1655.ff4f967b33e6acb4a837.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1655],{81655:function(e,t,r){r.r(t),r.d(t,{default:function(){return U}});var s=r(36663),o=(r(91957),r(80020)),i=(r(86004),r(55565),r(16192),r(71297),r(878),r(22836),r(50172),r(72043),r(72506),r(54021)),n=r(15842),a=r(78668),u=r(3466),p=r(81977),l=r(39994),d=r(13802),c=(r(4157),r(40266)),y=r(59659),h=r(38481),m=r(70375),f=r(68309),b=r(62517),g=r(40400),_=r(51211),v=r(91772),C=r(89542);let S=class extends f.Z{constructor(){super(...arguments),this.type="geojson",this.refresh=(0,a.Ds)((async e=>{await this.load();const{extent:t,timeExtent:r}=await this._connection.invoke("refresh",e);return this.sourceJSON.extent=t,r&&(this.sourceJSON.timeInfo.timeExtent=[r.start,r.end]),{dataChanged:!0,updates:{extent:this.sourceJSON.extent,timeInfo:this.sourceJSON.timeInfo}}}))}load(e){const t=null!=e?e.signal:null;return this.addResolvingPromise(this._startWorker(t)),Promise.resolve(this)}destroy(){this._connection?.close(),this._connection=null}applyEdits(e){return this.load().then((()=>this._applyEdits(e)))}openPorts(){return this.load().then((()=>this._connection.openPorts()))}queryFeatures(e,t={}){return this.load(t).then((()=>this._connection.invoke("queryFeatures",e?e.toJSON():null,t))).then((e=>_.Z.fromJSON(e)))}queryFeaturesJSON(e,t={}){return this.load(t).then((()=>this._connection.invoke("queryFeatures",e?e.toJSON():null,t)))}queryFeatureCount(e,t={}){return this.load(t).then((()=>this._connection.invoke("queryFeatureCount",e?e.toJSON():null,t)))}queryObjectIds(e,t={}){return this.load(t).then((()=>this._connection.invoke("queryObjectIds",e?e.toJSON():null,t)))}queryExtent(e,t={}){return this.load(t).then((()=>this._connection.invoke("queryExtent",e?e.toJSON():null,t))).then((e=>({count:e.count,extent:v.Z.fromJSON(e.extent)})))}querySnapping(e,t={}){return this.load(t).then((()=>this._connection.invoke("querySnapping",e,t)))}_applyEdits(e){if(!this._connection)throw new m.Z("geojson-layer-source:edit-failure","Memory source not loaded");const t=this.layer.objectIdField,r=[],s=[],o=[];if(e.addFeatures)for(const t of e.addFeatures)r.push(this._serializeFeature(t));if(e.deleteFeatures)for(const r of e.deleteFeatures)"objectId"in r&&null!=r.objectId?s.push(r.objectId):"attributes"in r&&null!=r.attributes[t]&&s.push(r.attributes[t]);if(e.updateFeatures)for(const t of e.updateFeatures)o.push(this._serializeFeature(t));return this._connection.invoke("applyEdits",{adds:r,updates:o,deletes:s}).then((({extent:e,timeExtent:t,featureEditResults:r})=>(this.sourceJSON.extent=e,t&&(this.sourceJSON.timeInfo.timeExtent=[t.start,t.end]),this._createEditsResult(r))))}_createEditsResult(e){return{addFeatureResults:e.addResults?e.addResults.map(this._createFeatureEditResult,this):[],updateFeatureResults:e.updateResults?e.updateResults.map(this._createFeatureEditResult,this):[],deleteFeatureResults:e.deleteResults?e.deleteResults.map(this._createFeatureEditResult,this):[],addAttachmentResults:[],updateAttachmentResults:[],deleteAttachmentResults:[]}}_createFeatureEditResult(e){const t=!0===e.success?null:e.error||{code:void 0,description:void 0};return{objectId:e.objectId,globalId:e.globalId,error:t?new m.Z("geojson-layer-source:edit-failure",t.description,{code:t.code}):null}}_serializeFeature(e){const{attributes:t}=e,r=this._geometryForSerialization(e);return r?{geometry:r.toJSON(),attributes:t}:{attributes:t}}_geometryForSerialization(e){const{geometry:t}=e;return null==t?null:"mesh"===t.type||"extent"===t.type?C.Z.fromExtent(t.extent):t}async _startWorker(e){this._connection=await(0,b.bA)("GeoJSONSourceWorker",{strategy:(0,l.Z)("feature-layers-workers")?"dedicated":"local",signal:e,registryTarget:this});const{fields:t,spatialReference:r,hasZ:s,geometryType:o,objectIdField:i,url:n,timeInfo:a,customParameters:u}=this.layer,p="defaults"===this.layer.originOf("spatialReference"),c={url:n,customParameters:u,fields:t&&t.map((e=>e.toJSON())),geometryType:y.M.toJSON(o),hasZ:s,objectIdField:i,timeInfo:a?a.toJSON():null,spatialReference:p?null:r&&r.toJSON()},h=await this._connection.invoke("load",c,{signal:e});for(const e of h.warnings)d.Z.getLogger(this.layer).warn("#load()",`$${e.message} (title: '${this.layer.title||"no title"}', id: '${this.layer.id??"no id"}')`,{warning:e});h.featureErrors.length&&d.Z.getLogger(this.layer).warn("#load()",`Encountered ${h.featureErrors.length} validation errors while loading features. (title: '${this.layer.title||"no title"}', id: '${this.layer.id??"no id"}')`,{errors:h.featureErrors}),this.sourceJSON=h.layerDefinition,this.capabilities=(0,g.MS)(this.sourceJSON.hasZ,!0)}};(0,s._)([(0,p.Cb)()],S.prototype,"capabilities",void 0),(0,s._)([(0,p.Cb)()],S.prototype,"type",void 0),(0,s._)([(0,p.Cb)({constructOnly:!0})],S.prototype,"layer",void 0),(0,s._)([(0,p.Cb)()],S.prototype,"sourceJSON",void 0),S=(0,s._)([(0,c.j)("esri.layers.graphics.sources.GeoJSONSource")],S);var F=r(27668),O=r(63989),x=r(22368),E=r(82733),I=r(43330),R=r(91610),N=r(18241),w=r(12478),Z=r(95874),j=r(2030),J=r(51599),P=r(60822),q=r(12512),T=r(89076),A=r(14845),D=r(26732),Q=r(49341),k=r(14136),$=r(10171),G=r(72559),M=r(14685);const z=(0,T.v)();let B=class extends((0,R.c)((0,O.N)((0,E.M)((0,x.b)((0,F.h)((0,j.n)((0,Z.M)((0,w.Q)((0,I.q)((0,N.I)((0,n.R)(h.Z)))))))))))){constructor(e){super(e),this.copyright=null,this.dateFieldsTimeZone=null,this.definitionExpression=null,this.displayField=null,this.editingEnabled=!1,this.elevationInfo=null,this.fields=null,this.fieldsIndex=null,this.fullExtent=null,this.geometryType=null,this.hasZ=void 0,this.labelsVisible=!0,this.labelingInfo=null,this.legendEnabled=!0,this.objectIdField=null,this.operationalLayerType="GeoJSON",this.popupEnabled=!0,this.popupTemplate=null,this.screenSizePerspectiveEnabled=!0,this.source=new S({layer:this}),this.spatialReference=M.Z.WGS84,this.templates=null,this.title="GeoJSON",this.type="geojson"}destroy(){this.source?.destroy()}load(e){const t=this.loadFromPortal({supportedTypes:["GeoJson"],supportsData:!1},e).catch(a.r9).then((()=>this.source.load(e))).then((()=>{this.read(this.source.sourceJSON,{origin:"service",url:this.parsedUrl}),this.revert(["objectIdField","fields","timeInfo"],"service"),(0,A.YN)(this.renderer,this.fieldsIndex),(0,A.UF)(this.timeInfo,this.fieldsIndex)}));return this.addResolvingPromise(t),Promise.resolve(this)}get capabilities(){return this.source?this.source.capabilities:null}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("capabilities"),(this._get("createQueryVersion")||0)+1}get defaultPopupTemplate(){return this.createPopupTemplate()}get isTable(){return this.loaded&&null==this.geometryType}get parsedUrl(){return this.url?(0,u.mN)(this.url):null}set renderer(e){(0,A.YN)(e,this.fieldsIndex),this._set("renderer",e)}set url(e){if(!e)return void this._set("url",e);const t=(0,u.mN)(e);this._set("url",t.path),t.query&&(this.customParameters={...this.customParameters,...t.query})}async applyEdits(e,t){const{applyEdits:s}=await r.e(3261).then(r.bind(r,23261));await this.load();const o=await s(this,this.source,e,t);return this.read({extent:this.source.sourceJSON.extent,timeInfo:this.source.sourceJSON.timeInfo},{origin:"service",ignoreDefaults:!0}),o}on(e,t){return super.on(e,t)}createPopupTemplate(e){return(0,$.eZ)(this,e)}createQuery(){const e=new k.Z,t=this.capabilities?.data;e.returnGeometry=!0,t&&t.supportsZ&&(e.returnZ=!0),e.outFields=["*"],e.where=this.definitionExpression||"1=1";const{timeOffset:r,timeExtent:s}=this;return e.timeExtent=null!=r&&null!=s?s.offset(-r.value,r.unit):s||null,e}getFieldDomain(e,t){return this.getField(e)?.domain}getField(e){return this.fieldsIndex.get(e)}queryFeatures(e,t){return this.load().then((()=>this.source.queryFeatures(k.Z.from(e)||this.createQuery(),t))).then((e=>{if(e?.features)for(const t of e.features)t.layer=t.sourceLayer=this;return e}))}queryObjectIds(e,t){return this.load().then((()=>this.source.queryObjectIds(k.Z.from(e)||this.createQuery(),t)))}queryFeatureCount(e,t){return this.load().then((()=>this.source.queryFeatureCount(k.Z.from(e)||this.createQuery(),t)))}queryExtent(e,t){return this.load().then((()=>this.source.queryExtent(k.Z.from(e)||this.createQuery(),t)))}async hasDataChanged(){try{const{dataChanged:e,updates:t}=await this.source.refresh(this.customParameters);return null!=t&&this.read(t,{origin:"service",url:this.parsedUrl,ignoreDefaults:!0}),e}catch{}return!1}};(0,s._)([(0,p.Cb)({readOnly:!0,json:{read:!1,write:!1}})],B.prototype,"capabilities",null),(0,s._)([(0,p.Cb)({type:String})],B.prototype,"copyright",void 0),(0,s._)([(0,p.Cb)({readOnly:!0})],B.prototype,"createQueryVersion",null),(0,s._)([(0,p.Cb)((0,G.mi)("dateFieldsTimeReference"))],B.prototype,"dateFieldsTimeZone",void 0),(0,s._)([(0,p.Cb)({readOnly:!0})],B.prototype,"defaultPopupTemplate",null),(0,s._)([(0,p.Cb)({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],B.prototype,"definitionExpression",void 0),(0,s._)([(0,p.Cb)({type:String})],B.prototype,"displayField",void 0),(0,s._)([(0,p.Cb)({type:Boolean})],B.prototype,"editingEnabled",void 0),(0,s._)([(0,p.Cb)(J.PV)],B.prototype,"elevationInfo",void 0),(0,s._)([(0,p.Cb)({type:[q.Z],json:{name:"layerDefinition.fields",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"fields"}}}})],B.prototype,"fields",void 0),(0,s._)([(0,p.Cb)(z.fieldsIndex)],B.prototype,"fieldsIndex",void 0),(0,s._)([(0,p.Cb)({type:v.Z,json:{name:"extent"}})],B.prototype,"fullExtent",void 0),(0,s._)([(0,p.Cb)({type:["point","polygon","polyline","multipoint"],json:{read:{reader:y.M.read}}})],B.prototype,"geometryType",void 0),(0,s._)([(0,p.Cb)({type:Boolean})],B.prototype,"hasZ",void 0),(0,s._)([(0,p.Cb)(J.id)],B.prototype,"id",void 0),(0,s._)([(0,p.Cb)({type:Boolean,readOnly:!0})],B.prototype,"isTable",null),(0,s._)([(0,p.Cb)(J.iR)],B.prototype,"labelsVisible",void 0),(0,s._)([(0,p.Cb)({type:[D.Z],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:{reader:Q.r},write:!0}})],B.prototype,"labelingInfo",void 0),(0,s._)([(0,p.Cb)(J.rn)],B.prototype,"legendEnabled",void 0),(0,s._)([(0,p.Cb)({type:["show","hide"]})],B.prototype,"listMode",void 0),(0,s._)([(0,p.Cb)({type:String,json:{name:"layerDefinition.objectIdField",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"objectIdField"}}}})],B.prototype,"objectIdField",void 0),(0,s._)([(0,p.Cb)(J.Oh)],B.prototype,"opacity",void 0),(0,s._)([(0,p.Cb)({type:["GeoJSON"]})],B.prototype,"operationalLayerType",void 0),(0,s._)([(0,p.Cb)({readOnly:!0})],B.prototype,"parsedUrl",null),(0,s._)([(0,p.Cb)(J.C_)],B.prototype,"popupEnabled",void 0),(0,s._)([(0,p.Cb)({type:o.Z,json:{name:"popupInfo",write:!0}})],B.prototype,"popupTemplate",void 0),(0,s._)([(0,p.Cb)({types:i.A,json:{name:"layerDefinition.drawingInfo.renderer",write:!0,origins:{service:{name:"drawingInfo.renderer"},"web-scene":{types:i.o}}}})],B.prototype,"renderer",null),(0,s._)([(0,p.Cb)(J.YI)],B.prototype,"screenSizePerspectiveEnabled",void 0),(0,s._)([(0,p.Cb)({readOnly:!0})],B.prototype,"source",void 0),(0,s._)([(0,p.Cb)({type:M.Z})],B.prototype,"spatialReference",void 0),(0,s._)([(0,p.Cb)({type:[P.Z]})],B.prototype,"templates",void 0),(0,s._)([(0,p.Cb)()],B.prototype,"title",void 0),(0,s._)([(0,p.Cb)({json:{read:!1},readOnly:!0})],B.prototype,"type",void 0),(0,s._)([(0,p.Cb)(J.HQ)],B.prototype,"url",null),B=(0,s._)([(0,c.j)("esri.layers.GeoJSONLayer")],B);const U=B},10287:function(e,t,r){r.d(t,{g:function(){return s}});const s={supportsStatistics:!0,supportsPercentileStatistics:!0,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsCentroid:!0,supportsCacheHint:!1,supportsDistance:!0,supportsDistinct:!0,supportsExtent:!0,supportsGeometryProperties:!1,supportsHavingClause:!0,supportsOrderBy:!0,supportsPagination:!0,supportsQuantization:!0,supportsQuantizationEditMode:!1,supportsQueryGeometry:!0,supportsResultType:!1,supportsSqlExpression:!0,supportsMaxRecordCountFactor:!1,supportsStandardizedQueriesOnly:!0,supportsTopFeaturesQuery:!1,supportsQueryByAnonymous:!0,supportsQueryByOthers:!0,supportsHistoricMoment:!1,supportsFormatPBF:!1,supportsDisjointSpatialRelationship:!0,supportsDefaultSpatialReference:!1,supportsFullTextSearch:!1,supportsCompactGeometry:!1,maxRecordCountFactor:void 0,maxRecordCount:void 0,standardMaxRecordCount:void 0,tileMaxRecordCount:void 0}},40400:function(e,t,r){r.d(t,{Dm:function(){return l},Hq:function(){return d},MS:function(){return c},bU:function(){return a}});var s=r(39994),o=r(67134),i=r(10287),n=r(86094);function a(e){return{renderer:{type:"simple",symbol:"esriGeometryPoint"===e||"esriGeometryMultipoint"===e?n.I4:"esriGeometryPolyline"===e?n.ET:n.lF}}}const u=/^[_$a-zA-Z][_$a-zA-Z0-9]*$/;let p=1;function l(e,t){if((0,s.Z)("esri-csp-restrictions"))return()=>({[t]:null,...e});try{let r=`this.${t} = null;`;for(const t in e)r+=`this${u.test(t)?`.${t}`:`["${t}"]`} = ${JSON.stringify(e[t])};`;const s=new Function(`\n return class AttributesClass$${p++} {\n constructor() {\n ${r};\n }\n }\n `)();return()=>new s}catch(r){return()=>({[t]:null,...e})}}function d(e={}){return[{name:"New Feature",description:"",prototype:{attributes:(0,o.d9)(e)}}]}function c(e,t){return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:e},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:t,supportsDelete:t,supportsEditing:t,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:t,supportsExceedsLimitStatistics:!0,supportsAsyncConvert3D:!1},query:i.g,queryRelated:{supportsCount:!0,supportsOrderBy:!0,supportsPagination:!0,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsGeometryUpdate:t,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1673.64f18ac9126754ddc50b.js b/docs/sentinel1-explorer/1673.64f18ac9126754ddc50b.js new file mode 100644 index 00000000..6db3a036 --- /dev/null +++ b/docs/sentinel1-explorer/1673.64f18ac9126754ddc50b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1673],{69079:function(e,t,n){n.d(t,{BN:function(){return u},Yc:function(){return h},em:function(){return i},mx:function(){return r}});var a=n(51366);const i="arial-unicode-ms",o="woff2",l=new Map,s=new Set;class c{constructor(e,t){this.fontFace=e,this.promise=t}}async function r(e){const t=h(e),n=l.get(t);if(n)return n.promise;const i=new FontFace(e.family,`url('${a.default.fontsUrl}/woff2/${t}.${o}') format('${o}')`,{style:e.style,weight:e.weight}),r=document.fonts;if(r.has(i)&&"loading"===i.status)return i.loaded;const u=i.load().then((()=>(r.add(i),i)));return l.set(t,new c(i,u)),s.add(i),u}function u(e){if(!e)return i;const t=e.toLowerCase().split(" ").join("-");switch(t){case"serif":return"noto-serif";case"sans-serif":return"arial-unicode-ms";case"monospace":return"ubuntu-mono";case"fantasy":return"cabin-sketch";case"cursive":return"redressed";default:return t}}function h(e){const t=function(e){if(!e.weight)return"";switch(e.weight.toLowerCase()){case"bold":case"bolder":return"-bold"}return""}(e)+function(e){if(!e.style)return"";switch(e.style.toLowerCase()){case"italic":case"oblique":return"-italic"}return""}(e);return u(e.family)+(t.length>0?t:"-regular")}},71673:function(e,t,n){n.d(t,{previewSymbol2D:function(){return S}});var a=n(30936),i=n(39043),o=n(70375),l=n(69079),s=n(95550),c=n(89298),r=n(83773),u=n(5840),h=n(63659);const m="picture-fill",d="picture-marker",f="simple-fill",p="simple-line",y="simple-marker",w="text",g="Aa",b=r.b_.size,v=r.b_.maxSize,x=r.b_.maxOutlineSize,M=r.b_.lineWidth,k=225,L=document.createElement("canvas");function z(e,t){const n=L.getContext("2d"),a=[];t&&(t.weight&&a.push(t.weight),t.size&&a.push(t.size+"px"),t.family&&a.push(t.family)),n.font=a.join(" ");const{width:i,actualBoundingBoxLeft:o,actualBoundingBoxRight:l,actualBoundingBoxAscent:s,actualBoundingBoxDescent:c}=n.measureText(e);return{width:Math.ceil(Math.max(i,o+l)),height:Math.ceil(s+c),x:Math.floor(o),y:Math.floor((s-c)/2)}}function C(e){const t=e?.size;return{width:null!=t&&"object"==typeof t&&"width"in t?(0,s.F2)(t.width):null,height:null!=t&&"object"==typeof t&&"height"in t?(0,s.F2)(t.height):null}}function F(e,t){return e>t?"dark":"light"}async function S(e,t){const{shapeDescriptor:n,size:a,renderOptions:i}=function(e,t){const n="number"==typeof t?.size?t?.size:null,a=null!=n?(0,s.F2)(n):null,i=null!=t?.maxSize?(0,s.F2)(t.maxSize):null,o=null!=t?.rotation?t.rotation:"angle"in e?e.angle:null,l=(0,c._M)(e);let u=(0,c.mx)(e);"dark"!==B(e,245)||t?.ignoreWhiteSymbols||(u={width:.75,...u,color:"#bdc3c7"});const h={shape:null,fill:l,stroke:u,offset:[0,0]};u?.width&&(u.width=Math.min(u.width,x));const k=u?.width||0;let L=null!=t?.size&&(null==t?.scale||t?.scale),F=0,S=0,_=!1;switch(e.type){case y:{const n=e.style,{width:l,height:c}=C(t),r=l===c&&null!=l?l:null!=a?a:Math.min((0,s.F2)(e.size),i||v);switch(F=r,S=r,n){case"circle":h.shape={type:"circle",cx:0,cy:0,r:.5*r},L||(F+=k,S+=k);break;case"cross":h.shape={type:"path",path:[{command:"M",values:[0,.5*S]},{command:"L",values:[F,.5*S]},{command:"M",values:[.5*F,0]},{command:"L",values:[.5*F,S]}]};break;case"diamond":h.shape={type:"path",path:[{command:"M",values:[0,.5*S]},{command:"L",values:[.5*F,0]},{command:"L",values:[F,.5*S]},{command:"L",values:[.5*F,S]},{command:"Z",values:[]}]},L||(F+=k,S+=k);break;case"square":h.shape={type:"path",path:[{command:"M",values:[0,0]},{command:"L",values:[F,0]},{command:"L",values:[F,S]},{command:"L",values:[0,S]},{command:"Z",values:[]}]},L||(F+=k,S+=k),o&&(_=!0);break;case"triangle":h.shape={type:"path",path:[{command:"M",values:[.5*F,0]},{command:"L",values:[F,S]},{command:"L",values:[0,S]},{command:"Z",values:[]}]},L||(F+=k,S+=k),o&&(_=!0);break;case"x":h.shape={type:"path",path:[{command:"M",values:[0,0]},{command:"L",values:[F,S]},{command:"M",values:[F,0]},{command:"L",values:[0,S]}]},o&&(_=!0);break;case"path":h.shape={type:"path",path:e.path||""},L||(F+=k,S+=k),o&&(_=!0),L=!0}break}case p:{const{width:e,height:n}=C(t),i=(0,c.iI)(u).reduce(((e,t)=>e+t),0),o=i&&Math.ceil(M/i),l=n??a??k,s=e??(i*o||M);u&&(u.width=l),F=s,S=l,L=!0,h.shape={type:"path",path:[{command:"M",values:[l/2,S/2]},{command:"L",values:[F-l/2,S/2]}]};break}case m:case f:{const e="object"==typeof t?.symbolConfig&&!!t?.symbolConfig?.isSquareFill,{width:n,height:i}=C(t);F=!e&&n!==i||null==n?null!=a?a:b:n,S=!e&&n!==i||null==i?F:i,L||(F+=k,S+=k),L=!0,h.shape=e?{type:"path",path:[{command:"M",values:[0,0]},{command:"L",values:[F,0]},{command:"L",values:[F,S]},{command:"L",values:[0,S]},{command:"L",values:[0,0]},{command:"Z",values:[]}]}:r.JZ.fill[0];break}case d:{const n=Math.min((0,s.F2)(e.width),i||v),l=Math.min((0,s.F2)(e.height),i||v),{width:c,height:r}=C(t),u=c===r&&null!=c?c:null!=a?a:Math.max(n,l),m=n/l;F=m<=1?Math.ceil(u*m):u,S=m<=1?u:Math.ceil(u/m),h.shape={type:"image",x:-Math.round(F/2),y:-Math.round(S/2),width:F,height:S,src:e.url||""},o&&(_=!0);break}case w:{const n=e,o=t?.overrideText||n.text||g,l=n.font,{width:c,height:r}=C(t),u=null!=r?r:null!=a?a:Math.min((0,s.F2)(l.size),i||v),{width:m,height:d}=z(o,{weight:l.weight,size:u,family:l.family}),f=/[\uE600-\uE6FF]/.test(o);F=c??(f?u:m),S=f?u:d;let p=.5*(f?u:d);f&&(p+=5),h.shape={type:"text",text:o,x:n.xoffset||0,y:n.yoffset||p,align:"middle",alignBaseline:n.verticalAlignment,decoration:l&&l.decoration,rotated:n.rotated,kerning:n.kerning},h.font=l&&{size:u,style:l.style,decoration:l.decoration,weight:l.weight,family:l.family};break}}return{shapeDescriptor:h,size:[F,S],renderOptions:{node:t?.node,scale:L,opacity:t?.opacity,rotation:o,useRotationSize:_,effectView:t?.effectView,ariaLabel:t?.ariaLabel}}}(e,t);if(!n.shape)throw new o.Z("symbolPreview: renderPreviewHTML2D","symbol not supported.");await async function(e,t){const n=t.fill,a=e.color;if("pattern"===n?.type&&a&&e.type!==m){const e=await(0,c.Od)(n.src,a.toCss(!0));n.src=e,t.fill=n}}(e,n),await async function(e,t,n,a){if(!("font"in e)||!e.font||"text"!==t.shape.type)return;try{await(0,l.mx)(e.font)}catch{}const{width:i,height:o}=C(a);if(!/[\uE600-\uE6FF]/.test(t.shape.text)){const{width:l,height:s,x:c,y:r}=z(t.shape.text,{weight:t.font?.weight,size:t.font?.size,family:t.font?.family});n[0]=i??l,n[1]=o??s,t.shape.x=c,t.shape.y=r;const u=null!=a?.rotation?a.rotation:"angle"in e?e.angle:null;if(u){const e=u*(Math.PI/180),t=Math.abs(Math.sin(e)),a=Math.abs(Math.cos(e));n[1]=n[0]*t+n[1]*a}}}(e,n,a,t);const k=[[n]];if("object"==typeof t?.symbolConfig&&t?.symbolConfig?.applyColorModulation){const e=.6*a[0];k.unshift([{...n,offset:[-e,0],fill:(0,r.dc)(n.fill,-.3)}]),k.push([{...n,offset:[e,0],fill:(0,r.dc)(n.fill,.3)}]),a[0]+=2*e,i.scale=!1}return"text"===e.type&&function(e,t,n,a,i){if(null!=e.haloColor&&null!=e.haloSize){i.masking??=n.map((()=>[]));const o=(0,s.F2)(e.haloSize);a[0]+=o,a[1]+=o,n.unshift([{...t,fill:null,stroke:{color:e.haloColor,width:2*o,join:"round",cap:"round"}}]),i.masking.unshift([{shape:{type:"rect",x:0,y:0,width:a[0]+2*h.c9,height:a[1]+2*h.c9},fill:[255,255,255],stroke:null},{...t,fill:[0,0,0,0],stroke:null}])}null==e.backgroundColor&&null==e.borderLineColor||(a[0]+=2*h.c9,a[1]+=2*h.c9,n.unshift([{shape:{type:"rect",x:0,y:0,width:a[0],height:a[1]},fill:e.backgroundColor,stroke:{color:e.borderLineColor,width:(0,s.F2)(e.borderLineSize)}}]),i.masking?.unshift([]))}(e,n,k,a,i),(0,u.wh)(k,a,i)}function B(e,t=k){const n=(0,c._M)(e),o=(0,c.mx)(e),l=!n||"type"in n?null:new a.Z(n),s=o?.color?new a.Z(o?.color):null,r=l?F((0,i.EX)(l),t):null,u=s?F((0,i.EX)(s),t):null;return u?r?r===u?r:t>=k?"light":"dark":u:r}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1681.fe72583b4e05b0c2ffa0.js b/docs/sentinel1-explorer/1681.fe72583b4e05b0c2ffa0.js new file mode 100644 index 00000000..a6e1fc8b --- /dev/null +++ b/docs/sentinel1-explorer/1681.fe72583b4e05b0c2ffa0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1681],{21681:function(t,e,n){n.r(e),n.d(e,{b:function(){return l}});var r,i,o,a=n(58340),u={exports:{}};r=u,i="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,"undefined"!=typeof __filename&&(i=i||__filename),o=function(t){var e,n,r=void 0!==(t=t||{})?t:{};r.ready=new Promise((function(t,r){e=t,n=r}));var o,u={};for(o in r)r.hasOwnProperty(o)&&(u[o]=r[o]);var s,l,c=!1,f=!1;c="object"==typeof window,f="function"==typeof importScripts,s="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,l=!c&&!s&&!f;var p,d,y,h,v="";s?(v=f?require("path").dirname(v)+"/":__dirname+"/",p=function(t,e){return y||(y=require("fs")),h||(h=require("path")),t=h.normalize(t),y.readFileSync(t,e?null:"utf8")},d=function(t){var e=p(t,!0);return e.buffer||(e=new Uint8Array(e)),T(e.buffer),e},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),process.on("uncaughtException",(function(t){if(!(t instanceof Be))throw t})),process.on("unhandledRejection",rt),r.inspect=function(){return"[Emscripten Module object]"}):l?("undefined"!=typeof read&&(p=function(t){return read(t)}),d=function(t){var e;return"function"==typeof readbuffer?new Uint8Array(readbuffer(t)):(T("object"==typeof(e=read(t,"binary"))),e)},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(c||f)&&(f?v=self.location.href:document.currentScript&&(v=document.currentScript.src),i&&(v=i),v=0!==v.indexOf("blob:")?v.substr(0,v.lastIndexOf("/")+1):"",p=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},f&&(d=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}));var m,g,$=r.print||void 0,b=r.printErr||void 0;for(o in u)u.hasOwnProperty(o)&&(r[o]=u[o]);u=null,r.arguments&&r.arguments,r.thisProgram&&r.thisProgram,r.quit&&r.quit,r.wasmBinary&&(m=r.wasmBinary),r.noExitRuntime&&r.noExitRuntime,"object"!=typeof WebAssembly&&rt("no native wasm support detected");var C=new WebAssembly.Table({initial:157,maximum:157,element:"anyfunc"}),w=!1;function T(t,e){t||rt("Assertion failed: "+e)}var _="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function P(t,e,n){for(var r=e+n,i=e;t[i]&&!(i>=r);)++i;if(i-e>16&&t.subarray&&_)return _.decode(t.subarray(e,i));for(var o="";e>10,56320|1023&l)}}else o+=String.fromCharCode((31&a)<<6|u)}else o+=String.fromCharCode(a)}return o}function A(t,e){return t?P(D,t,e):""}var W="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function E(t,e){for(var n=t,r=n>>1,i=r+e/2;!(r>=i)&&U[r];)++r;if((n=r<<1)-t>32&&W)return W.decode(D.subarray(t,n));for(var o=0,a="";;){var u=I[t+2*o>>1];if(0==u||o==e/2)return a;++o,a+=String.fromCharCode(u)}}function S(t,e,n){if(void 0===n&&(n=2147483647),n<2)return 0;for(var r=e,i=(n-=2)<2*t.length?n/2:t.length,o=0;o>1]=a,e+=2}return I[e>>1]=0,e-r}function k(t){return 2*t.length}function O(t,e){for(var n=0,r="";!(n>=e/4);){var i=M[t+4*n>>2];if(0==i)break;if(++n,i>=65536){var o=i-65536;r+=String.fromCharCode(55296|o>>10,56320|1023&o)}else r+=String.fromCharCode(i)}return r}function j(t,e,n){if(void 0===n&&(n=2147483647),n<4)return 0;for(var r=e,i=r+n-4,o=0;o=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&t.charCodeAt(++o)),M[e>>2]=a,(e+=4)+4>i)break}return M[e>>2]=0,e-r}function F(t){for(var e=0,n=0;n=55296&&r<=57343&&++n,e+=4}return e}var R,x,D,I,U,M,V,H,z;function q(t,e){return t%e>0&&(t+=e-t%e),t}function B(t){R=t,r.HEAP8=x=new Int8Array(t),r.HEAP16=I=new Int16Array(t),r.HEAP32=M=new Int32Array(t),r.HEAPU8=D=new Uint8Array(t),r.HEAPU16=U=new Uint16Array(t),r.HEAPU32=V=new Uint32Array(t),r.HEAPF32=H=new Float32Array(t),r.HEAPF64=z=new Float64Array(t)}var N=r.INITIAL_MEMORY||16777216;function G(t){for(;t.length>0;){var e=t.shift();if("function"!=typeof e){var n=e.func;"number"==typeof n?void 0===e.arg?r.dynCall_v(n):r.dynCall_vi(n,e.arg):n(void 0===e.arg?null:e.arg)}else e(r)}}(g=r.wasmMemory?r.wasmMemory:new WebAssembly.Memory({initial:N/65536,maximum:32768}))&&(R=g.buffer),N=R.byteLength,B(R),M[80624]=5565536;var L=[],X=[],J=[],Y=[];function Z(t){L.unshift(t)}function K(t){Y.unshift(t)}var Q=Math.ceil,tt=Math.floor,et=0,nt=null;function rt(t){r.onAbort&&r.onAbort(t),b(t+=""),w=!0,t="abort("+t+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(t);throw n(e),e}function it(t,e){return String.prototype.startsWith?t.startsWith(e):0===t.indexOf(e)}r.preloadedImages={},r.preloadedAudios={};var ot="data:application/octet-stream;base64,";function at(t){return it(t,ot)}var ut="file://";function st(t){return it(t,ut)}var lt="basis_transcoder.wasm";function ct(){try{if(m)return new Uint8Array(m);if(d)return d(lt);throw"both async and sync fetching of the wasm failed"}catch(t){rt(t)}}at(lt)||(lt=function(t){return r.locateFile?r.locateFile(t,v):v+t}(lt)),X.push({func:function(){Ve()}});var ft={};function pt(t){for(;t.length;){var e=t.pop();t.pop()(e)}}function dt(t){return this.fromWireType(V[t>>2])}var yt={},ht={},vt={},mt=48,gt=57;function $t(t){if(void 0===t)return"_unknown";var e=(t=t.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return e>=mt&&e<=gt?"_"+t:t}function bt(t,e){return t=$t(t),function(){return e.apply(this,arguments)}}function Ct(t,e){var n=bt(e,(function(t){this.name=e,this.message=t;var n=new Error(t).stack;void 0!==n&&(this.stack=this.toString()+"\n"+n.replace(/^Error(:[^\n]*)?\n/,""))}));return n.prototype=Object.create(t.prototype),n.prototype.constructor=n,n.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},n}var wt=void 0;function Tt(t){throw new wt(t)}function _t(t,e,n){function r(e){var r=n(e);r.length!==t.length&&Tt("Mismatched type converter count");for(var i=0;i>2)+r]);return n}function ge(t,e,n,r,i){var o=e.length;o<2&&St("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==e[1]&&null!==n,u=!1,s=1;s4&&0==--be[t].refcount&&(be[t]=void 0,$e.push(t))}function we(){for(var t=0,e=5;e>1])};case 2:return function(t){var e=n?M:V;return this.fromWireType(e[t>>2])};default:throw new TypeError("Unknown integer type: "+t)}}function Ae(t,e){var n=ht[t];return void 0===n&&St(e+" has unknown type "+he(t)),n}function We(t){if(null===t)return"null";var e=typeof t;return"object"===e||"array"===e||"function"===e?t.toString():""+t}function Ee(t,e){switch(e){case 2:return function(t){return this.fromWireType(H[t>>2])};case 3:return function(t){return this.fromWireType(z[t>>3])};default:throw new TypeError("Unknown float type: "+t)}}function Se(t,e,n){switch(e){case 0:return n?function(t){return x[t]}:function(t){return D[t]};case 1:return n?function(t){return I[t>>1]}:function(t){return U[t>>1]};case 2:return n?function(t){return M[t>>2]}:function(t){return V[t>>2]};default:throw new TypeError("Unknown integer type: "+t)}}function ke(t){return t||St("Cannot use deleted val. handle = "+t),be[t].value}var Oe={};function je(t){var e=Oe[t];return void 0===e?Wt(t):e}var Fe=[];function Re(){if("object"==typeof globalThis)return globalThis;function t(t){t.$$$embind_global$$$=t;var e="object"==typeof $$$embind_global$$$&&t.$$$embind_global$$$===t;return e||delete t.$$$embind_global$$$,e}if("object"==typeof $$$embind_global$$$)return $$$embind_global$$$;if("object"==typeof a.c&&t(a.c)?$$$embind_global$$$=a.c:"object"==typeof self&&t(self)&&($$$embind_global$$$=self),"object"==typeof $$$embind_global$$$)return $$$embind_global$$$;throw Error("unable to get global object.")}var xe={};function De(t){try{return g.grow(t-R.byteLength+65535>>>16),B(g.buffer),1}catch(t){}}var Ie={mappings:{},buffers:[null,[],[]],printChar:function(t,e){var n=Ie.buffers[t];0===e||10===e?((1===t?$:b)(P(n,0)),n.length=0):n.push(e)},varargs:void 0,get:function(){return Ie.varargs+=4,M[Ie.varargs-4>>2]},getStr:function(t){return A(t)},get64:function(t,e){return t}};wt=r.InternalError=Ct(Error,"InternalError"),function(){for(var t=new Array(256),e=0;e<256;++e)t[e]=String.fromCharCode(e);At=t}(),Et=r.BindingError=Ct(Error,"BindingError"),Nt.prototype.isAliasOf=Ot,Nt.prototype.clone=Ut,Nt.prototype.delete=Mt,Nt.prototype.isDeleted=Vt,Nt.prototype.deleteLater=Bt,fe.prototype.getPointee=te,fe.prototype.destructor=ee,fe.prototype.argPackAdvance=8,fe.prototype.readValueFromPointer=dt,fe.prototype.deleteObject=ne,fe.prototype.fromWireType=ce,r.getInheritedInstanceCount=ie,r.getLiveInheritedInstances=oe,r.flushPendingDeletes=qt,r.setDelayFunction=ae,ye=r.UnboundTypeError=Ct(Error,"UnboundTypeError"),r.count_emval_handles=we,r.get_first_emval=Te;var Ue={u:function(t){var e=ft[t];delete ft[t];var n=e.rawConstructor,r=e.rawDestructor,i=e.fields;_t([t],i.map((function(t){return t.getterReturnType})).concat(i.map((function(t){return t.setterArgumentType}))),(function(t){var o={};return i.forEach((function(e,n){var r=e.fieldName,a=t[n],u=e.getter,s=e.getterContext,l=t[n+i.length],c=e.setter,f=e.setterContext;o[r]={read:function(t){return a.fromWireType(u(s,t))},write:function(t,e){var n=[];c(f,t,l.toWireType(n,e)),pt(n)}}})),[{name:e.name,fromWireType:function(t){var e={};for(var n in o)e[n]=o[n].read(t);return r(t),e},toWireType:function(t,e){for(var i in o)if(!(i in e))throw new TypeError('Missing field: "'+i+'"');var a=n();for(i in o)o[i].write(a,e[i]);return null!==t&&t.push(r,a),a},argPackAdvance:8,readValueFromPointer:dt,destructorFunction:r}]}))},J:function(t,e,n,r,i){var o=Pt(n);kt(t,{name:e=Wt(e),fromWireType:function(t){return!!t},toWireType:function(t,e){return e?r:i},argPackAdvance:8,readValueFromPointer:function(t){var r;if(1===n)r=x;else if(2===n)r=I;else{if(4!==n)throw new TypeError("Unknown boolean type size: "+e);r=M}return this.fromWireType(r[t>>o])},destructorFunction:null})},y:function(t,e,n,r,i,o,a,u,s,l,c,f,p){c=Wt(c),o=de(i,o),u&&(u=de(a,u)),l&&(l=de(s,l)),p=de(f,p);var d=$t(c);Xt(d,(function(){ve("Cannot construct "+c+" due to unbound types",[r])})),_t([t,e,n],r?[r]:[],(function(e){var n,i;e=e[0],i=r?(n=e.registeredClass).instancePrototype:Nt.prototype;var a=bt(d,(function(){if(Object.getPrototypeOf(this)!==s)throw new Et("Use 'new' to construct "+c);if(void 0===f.constructor_body)throw new Et(c+" has no accessible constructor");var t=f.constructor_body[arguments.length];if(void 0===t)throw new Et("Tried to invoke ctor of "+c+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(f.constructor_body).toString()+") parameters instead!");return t.apply(this,arguments)})),s=Object.create(i,{constructor:{value:a}});a.prototype=s;var f=new Jt(c,a,s,p,n,o,u,l),y=new fe(c,f,!0,!1,!1),h=new fe(c+"*",f,!1,!1,!1),v=new fe(c+" const*",f,!1,!0,!1);return Gt[t]={pointerType:h,constPointerType:v},pe(d,a),[y,h,v]}))},x:function(t,e,n,r,i,o){T(e>0);var a=me(e,n);i=de(r,i);var u=[o],s=[];_t([],[t],(function(t){var n="constructor "+(t=t[0]).name;if(void 0===t.registeredClass.constructor_body&&(t.registeredClass.constructor_body=[]),void 0!==t.registeredClass.constructor_body[e-1])throw new Et("Cannot register multiple constructors with identical number of parameters ("+(e-1)+") for class '"+t.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return t.registeredClass.constructor_body[e-1]=function(){ve("Cannot construct "+t.name+" due to unbound types",a)},_t([],a,(function(r){return t.registeredClass.constructor_body[e-1]=function(){arguments.length!==e-1&&St(n+" called with "+arguments.length+" arguments, expected "+(e-1)),s.length=0,u.length=e;for(var t=1;t>>u}}var s=-1!=e.indexOf("unsigned");kt(t,{name:e,fromWireType:a,toWireType:function(t,n){if("number"!=typeof n&&"boolean"!=typeof n)throw new TypeError('Cannot convert "'+We(n)+'" to '+this.name);if(ni)throw new TypeError('Passing a number "'+We(n)+'" from JS side to C/C++ side to an argument of type "'+e+'", which is outside the valid range ['+r+", "+i+"]!");return s?n>>>0:0|n},argPackAdvance:8,readValueFromPointer:Se(e,o,0!==r),destructorFunction:null})},h:function(t,e,n){var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];function i(t){var e=V,n=e[t>>=2],i=e[t+1];return new r(R,i,n)}kt(t,{name:n=Wt(n),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},C:function(t,e){var n="std::string"===(e=Wt(e));kt(t,{name:e,fromWireType:function(t){var e,r=V[t>>2];if(n)for(var i=t+4,o=0;o<=r;++o){var a=t+4+o;if(o==r||0==D[a]){var u=A(i,a-i);void 0===e?e=u:(e+=String.fromCharCode(0),e+=u),i=a+1}}else{var s=new Array(r);for(o=0;o=55296&&r<=57343&&(r=65536+((1023&r)<<10)|1023&t.charCodeAt(++n)),r<=127?++e:e+=r<=2047?2:r<=65535?3:4}return e}(e)}:function(){return e.length})(),o=He(4+i+1);if(V[o>>2]=i,n&&r)!function(t,e,n){(function(t,e,n,r){if(!(r>0))return 0;for(var i=n,o=n+r-1,a=0;a=55296&&u<=57343&&(u=65536+((1023&u)<<10)|1023&t.charCodeAt(++a)),u<=127){if(n>=o)break;e[n++]=u}else if(u<=2047){if(n+1>=o)break;e[n++]=192|u>>6,e[n++]=128|63&u}else if(u<=65535){if(n+2>=o)break;e[n++]=224|u>>12,e[n++]=128|u>>6&63,e[n++]=128|63&u}else{if(n+3>=o)break;e[n++]=240|u>>18,e[n++]=128|u>>12&63,e[n++]=128|u>>6&63,e[n++]=128|63&u}}e[n]=0})(t,D,e,n)}(e,o+4,i+1);else if(r)for(var a=0;a255&&(ze(o),St("String has UTF-16 code units that do not fit in 8 bits")),D[o+4+a]=u}else for(a=0;a>2],a=o(),s=t+4,l=0;l<=i;++l){var c=t+4+l*e;if(l==i||0==a[c>>u]){var f=r(s,c-s);void 0===n?n=f:(n+=String.fromCharCode(0),n+=f),s=c+e}}return ze(t),n},toWireType:function(t,r){"string"!=typeof r&&St("Cannot pass non-string to C++ string type "+n);var o=a(r),s=He(4+o+e);return V[s>>2]=o>>u,i(r,s+4,o+e),null!==t&&t.push(ze,s),s},argPackAdvance:8,readValueFromPointer:dt,destructorFunction:function(t){ze(t)}})},v:function(t,e,n,r,i,o){ft[t]={name:Wt(e),rawConstructor:de(n,r),rawDestructor:de(i,o),fields:[]}},c:function(t,e,n,r,i,o,a,u,s,l){ft[t].fields.push({fieldName:Wt(e),getterReturnType:n,getter:de(r,i),getterContext:o,setterArgumentType:a,setter:de(u,s),setterContext:l})},K:function(t,e){kt(t,{isVoid:!0,name:e=Wt(e),argPackAdvance:0,fromWireType:function(){},toWireType:function(t,e){}})},m:function(t,e,n){t=ke(t),e=Ae(e,"emval::as");var r=[],i=_e(r);return M[n>>2]=i,e.toWireType(r,t)},s:function(t,e,n,r){(t=Fe[t])(e=ke(e),n=je(n),null,r)},b:Ce,z:function(t){return 0===t?_e(Re()):(t=je(t),_e(Re()[t]))},t:function(t,e){var n=function(t,e){for(var n=new Array(t),r=0;r>2)+r],"parameter "+r);return n}(t,e),r=n[0],i=new Array(t-1);return function(t){var e=Fe.length;return Fe.push(t),e}((function(e,o,a,u){for(var s=0,l=0;l4&&(be[t].refcount+=1)},q:function(t,e,n,r){t=ke(t);var i=xe[e];return i||(i=function(t){var e=new Array(t+1);return function(n,r,i){e[0]=n;for(var o=0;o>2)+o],"parameter "+o);e[o+1]=a.readValueFromPointer(i),i+=a.argPackAdvance}return _e(new(n.bind.apply(n,e)))}}(e),xe[e]=i),i(t,n,r)},f:function(t){return _e(je(t))},l:function(t){pt(be[t].value),Ce(t)},p:function(){rt()},F:function(t,e,n){D.copyWithin(t,e,e+n)},G:function(t){t>>>=0;var e=D.length,n=2147483648;if(t>n)return!1;for(var r=1;r<=4;r*=2){var i=e*(1+.2/r);if(i=Math.min(i,t+100663296),De(Math.min(n,q(Math.max(16777216,t,i),65536))))return!0}return!1},H:function(t){return 0},D:function(t,e,n,r,i){},A:function(t,e,n,r){for(var i=0,o=0;o>2],u=M[e+(8*o+4)>>2],s=0;s>2]=i,0},memory:g,o:function(t){return(t=+t)>=0?+tt(t+.5):+Q(t-.5)},E:function(t){},table:C};!function(){var t={a:Ue};function e(t,e){var n=t.exports;r.asm=n,function(t){if(et--,r.monitorRunDependencies&&r.monitorRunDependencies(et),0==et&&nt){var e=nt;nt=null,e()}}()}function n(t){e(t.instance)}function i(e){return(m||!c&&!f||"function"!=typeof fetch||st(lt)?new Promise((function(t,e){t(ct())})):fetch(lt,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at '"+lt+"'";return t.arrayBuffer()})).catch((function(){return ct()}))).then((function(e){return WebAssembly.instantiate(e,t)})).then(e,(function(t){b("failed to asynchronously prepare wasm: "+t),rt(t)}))}if(et++,r.monitorRunDependencies&&r.monitorRunDependencies(et),r.instantiateWasm)try{return r.instantiateWasm(t,e)}catch(t){return b("Module.instantiateWasm callback failed with error: "+t),!1}(function(){if(m||"function"!=typeof WebAssembly.instantiateStreaming||at(lt)||st(lt)||"function"!=typeof fetch)return i(n);fetch(lt,{credentials:"same-origin"}).then((function(e){return WebAssembly.instantiateStreaming(e,t).then(n,(function(t){return b("wasm streaming compile failed: "+t),b("falling back to ArrayBuffer instantiation"),i(n)}))}))})()}();var Me,Ve=r.___wasm_call_ctors=function(){return(Ve=r.___wasm_call_ctors=r.asm.L).apply(null,arguments)},He=r._malloc=function(){return(He=r._malloc=r.asm.M).apply(null,arguments)},ze=r._free=function(){return(ze=r._free=r.asm.N).apply(null,arguments)},qe=r.___getTypeName=function(){return(qe=r.___getTypeName=r.asm.O).apply(null,arguments)};function Be(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}function Ne(t){function n(){Me||(Me=!0,r.calledRun=!0,w||(G(X),G(J),e(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)K(r.postRun.shift());G(Y)}()))}et>0||(function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)Z(r.preRun.shift());G(L)}(),et>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("")}),1),n()}),1)):n()))}if(r.___embind_register_native_and_builtin_types=function(){return(r.___embind_register_native_and_builtin_types=r.asm.P).apply(null,arguments)},r.dynCall_viii=function(){return(r.dynCall_viii=r.asm.Q).apply(null,arguments)},r.dynCall_vi=function(){return(r.dynCall_vi=r.asm.R).apply(null,arguments)},r.dynCall_v=function(){return(r.dynCall_v=r.asm.S).apply(null,arguments)},r.dynCall_i=function(){return(r.dynCall_i=r.asm.T).apply(null,arguments)},r.dynCall_iii=function(){return(r.dynCall_iii=r.asm.U).apply(null,arguments)},r.dynCall_ii=function(){return(r.dynCall_ii=r.asm.V).apply(null,arguments)},r.dynCall_vii=function(){return(r.dynCall_vii=r.asm.W).apply(null,arguments)},r.dynCall_iiii=function(){return(r.dynCall_iiii=r.asm.X).apply(null,arguments)},r.dynCall_iiiii=function(){return(r.dynCall_iiiii=r.asm.Y).apply(null,arguments)},r.dynCall_iiiiii=function(){return(r.dynCall_iiiiii=r.asm.Z).apply(null,arguments)},r.dynCall_iiiiiiii=function(){return(r.dynCall_iiiiiiii=r.asm._).apply(null,arguments)},r.dynCall_iiiiiiiii=function(){return(r.dynCall_iiiiiiiii=r.asm.$).apply(null,arguments)},r.dynCall_viiii=function(){return(r.dynCall_viiii=r.asm.aa).apply(null,arguments)},r.dynCall_iiiiiii=function(){return(r.dynCall_iiiiiii=r.asm.ba).apply(null,arguments)},r.dynCall_iiiiiiiiiiiiiiiiiiii=function(){return(r.dynCall_iiiiiiiiiiiiiiiiiiii=r.asm.ca).apply(null,arguments)},r.dynCall_iiiiiiiiiiiiiiiiiiiii=function(){return(r.dynCall_iiiiiiiiiiiiiiiiiiiii=r.asm.da).apply(null,arguments)},r.dynCall_iiiiiiiiiiiiiiiiiii=function(){return(r.dynCall_iiiiiiiiiiiiiiiiiii=r.asm.ea).apply(null,arguments)},r.dynCall_viiiii=function(){return(r.dynCall_viiiii=r.asm.fa).apply(null,arguments)},r.dynCall_iiiiiiiiii=function(){return(r.dynCall_iiiiiiiiii=r.asm.ga).apply(null,arguments)},r.dynCall_iiiiiiiiiii=function(){return(r.dynCall_iiiiiiiiiii=r.asm.ha).apply(null,arguments)},r.dynCall_jiji=function(){return(r.dynCall_jiji=r.asm.ia).apply(null,arguments)},r.dynCall_viiiiii=function(){return(r.dynCall_viiiiii=r.asm.ja).apply(null,arguments)},nt=function t(){Me||Ne(),Me||(nt=t)},r.run=Ne,r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return Ne(),t.ready},r.exports=o;const s=(0,a.g)(u.exports),l=Object.freeze(Object.defineProperty({__proto__:null,default:s},Symbol.toStringTag,{value:"Module"}))}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1691.f7ba4bd96c77f6e9b701.js b/docs/sentinel1-explorer/1691.f7ba4bd96c77f6e9b701.js new file mode 100644 index 00000000..80b8104d --- /dev/null +++ b/docs/sentinel1-explorer/1691.f7ba4bd96c77f6e9b701.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1691],{66318:function(e,t,n){function r(e){return null!=i(e)||null!=a(e)}function o(e){return u.test(e)}function s(e){return i(e)??a(e)}function a(e){const t=new Date(e);return function(e,t){if(Number.isNaN(e.getTime()))return!1;let n=!0;if(c&&/\d+\W*$/.test(t)){const e=t.match(/[a-zA-Z]{2,}/);if(e){let t=!1,r=0;for(;!t&&r<=e.length;)t=!l.test(e[r]),r++;n=!t}}return n}(t,e)?Number.isNaN(t.getTime())?null:t.getTime()-6e4*t.getTimezoneOffset():null}function i(e){const t=u.exec(e);if(!t?.groups)return null;const n=t.groups,r=+n.year,o=+n.month-1,s=+n.day,a=+(n.hours??"0"),i=+(n.minutes??"0"),l=+(n.seconds??"0");if(a>23)return null;if(i>59)return null;if(l>59)return null;const c=n.ms??"0",f=c?+c.padEnd(3,"0").substring(0,3):0;let d;if(n.isUTC||!n.offsetSign)d=Date.UTC(r,o,s,a,i,l,f);else{const e=+n.offsetHours,t=+n.offsetMinutes;d=6e4*("+"===n.offsetSign?-1:1)*(60*e+t)+Date.UTC(r,o,s,a,i,l,f)}return Number.isNaN(d)?null:d}n.d(t,{mu:function(){return o},of:function(){return r},sG:function(){return s}});const u=/^(?:(?-?\d{4,})-(?\d{2})-(?\d{2}))(?:T(?\d{2}):(?\d{2}):(?\d{2})(?:\.(?\d+))?)?(?:(?Z)|(?:(?\+|-)(?\d{2}):(?\d{2})))?$/;const l=/^((jan(uary)?)|(feb(ruary)?)|(mar(ch)?)|(apr(il)?)|(may)|(jun(e)?)|(jul(y)?)|(aug(ust)?)|(sep(tember)?)|(oct(ober)?)|(nov(ember)?)|(dec(ember)?)|(am)|(pm)|(gmt)|(utc))$/i,c=!Number.isNaN(new Date("technology 10").getTime())},69400:function(e,t,n){n.d(t,{Z:function(){return y}});var r=n(7753),o=n(70375),s=n(31355),a=n(13802),i=n(37116),u=n(24568),l=n(12065),c=n(117),f=n(28098),d=n(12102);const p=(0,i.Ue)();class y{constructor(e){this.geometryInfo=e,this._boundsStore=new c.H,this._featuresById=new Map,this._markedIds=new Set,this.events=new s.Z,this.featureAdapter=d.n}get geometryType(){return this.geometryInfo.geometryType}get hasM(){return this.geometryInfo.hasM}get hasZ(){return this.geometryInfo.hasZ}get numFeatures(){return this._featuresById.size}get fullBounds(){return this._boundsStore.fullBounds}get storeStatistics(){let e=0;return this._featuresById.forEach((t=>{null!=t.geometry&&t.geometry.coords&&(e+=t.geometry.coords.length)})),{featureCount:this._featuresById.size,vertexCount:e/(this.hasZ?this.hasM?4:3:this.hasM?3:2)}}getFullExtent(e){if(null==this.fullBounds)return null;const[t,n,r,o]=this.fullBounds;return{xmin:t,ymin:n,xmax:r,ymax:o,spatialReference:(0,f.S2)(e)}}add(e){this._add(e),this._emitChanged()}addMany(e){for(const t of e)this._add(t);this._emitChanged()}upsertMany(e){const t=e.map((e=>this._upsert(e)));return this._emitChanged(),t.filter(r.pC)}clear(){this._featuresById.clear(),this._boundsStore.clear(),this._emitChanged()}removeById(e){const t=this._featuresById.get(e);return t?(this._remove(t),this._emitChanged(),t):null}removeManyById(e){this._boundsStore.invalidateIndex();for(const t of e){const e=this._featuresById.get(t);e&&this._remove(e)}this._emitChanged()}forEachBounds(e,t){for(const n of e){const e=this._boundsStore.get(n.objectId);e&&t((0,i.JR)(p,e))}}getFeature(e){return this._featuresById.get(e)}has(e){return this._featuresById.has(e)}forEach(e){this._featuresById.forEach((t=>e(t)))}forEachInBounds(e,t){this._boundsStore.forEachInBounds(e,(e=>{t(this._featuresById.get(e))}))}startMarkingUsedFeatures(){this._boundsStore.invalidateIndex(),this._markedIds.clear()}sweep(){let e=!1;this._featuresById.forEach(((t,n)=>{this._markedIds.has(n)||(e=!0,this._remove(t))})),this._markedIds.clear(),e&&this._emitChanged()}_emitChanged(){this.events.emit("changed",void 0)}_add(e){if(!e)return;const t=e.objectId;if(null==t)return void a.Z.getLogger("esri.layers.graphics.data.FeatureStore").error(new o.Z("featurestore:invalid-feature","feature id is missing",{feature:e}));const n=this._featuresById.get(t);let r;if(this._markedIds.add(t),n?(e.displayId=n.displayId,r=this._boundsStore.get(t),this._boundsStore.delete(t)):null!=this.onFeatureAdd&&this.onFeatureAdd(e),!e.geometry?.coords?.length)return this._boundsStore.set(t,null),void this._featuresById.set(t,e);r=(0,l.$)(null!=r?r:(0,u.Ue)(),e.geometry,this.geometryInfo.hasZ,this.geometryInfo.hasM),null!=r&&this._boundsStore.set(t,r),this._featuresById.set(t,e)}_upsert(e){const t=e?.objectId;if(null==t)return a.Z.getLogger("esri.layers.graphics.data.FeatureStore").error(new o.Z("featurestore:invalid-feature","feature id is missing",{feature:e})),null;const n=this._featuresById.get(t);if(!n)return this._add(e),e;this._markedIds.add(t);const{geometry:r,attributes:s}=e;for(const e in s)n.attributes[e]=s[e];return r&&(n.geometry=r,this._boundsStore.set(t,(0,l.$)((0,u.Ue)(),r,this.geometryInfo.hasZ,this.geometryInfo.hasM)??null)),n}_remove(e){null!=this.onFeatureRemove&&this.onFeatureRemove(e);const t=e.objectId;return this._markedIds.delete(t),this._boundsStore.delete(t),this._featuresById.delete(t),e}}},1691:function(e,t,n){n.r(t),n.d(t,{default:function(){return _}});var r=n(67979),o=n(70375),s=n(13802),a=n(78668),i=n(96863),u=n(35925),l=n(12065),c=n(69400),f=n(66069),d=n(66608),p=n(61957),y=n(24366),h=n(28727),m=n(28790),g=n(72559);const w="esri.layers.WFSLayer";class _{constructor(){this._customParameters=null,this._queryEngine=null,this._supportsPagination=!0}destroy(){this._queryEngine?.destroy(),this._queryEngine=null}async load(e,t={}){const{getFeatureUrl:n,getFeatureOutputFormat:r,fields:s,geometryType:i,featureType:u,maxRecordCount:l,maxTotalRecordCount:p,maxPageCount:y,objectIdField:w,customParameters:_}=e,{spatialReference:S,getFeatureSpatialReference:F}=(0,h.fU)(n,u,e.spatialReference);try{await(0,f._W)(F,S)}catch{throw new o.Z("unsupported-projection","Projection not supported",{inSpatialReference:F,outSpatialReference:S})}(0,a.k_)(t),this._customParameters=_,this._featureType=u,this._fieldsIndex=m.Z.fromLayerJSON({fields:s,dateFieldsTimeReference:s.some((e=>"esriFieldTypeDate"===e.type))?{timeZoneIANA:g.pt}:null}),this._geometryType=i,this._getFeatureUrl=n,this._getFeatureOutputFormat=r,this._getFeatureSpatialReference=F,this._maxRecordCount=l,this._maxTotalRecordCount=p,this._maxPageCount=y,this._objectIdField=w,this._spatialReference=S;let x=await this._snapshotFeatures(t);if(x.errors.length>0&&(this._supportsPagination=!1,x=await this._snapshotFeatures(t),x.errors.length>0))throw x.errors[0];return this._queryEngine=new d.q({fieldsIndex:this._fieldsIndex,geometryType:i,hasM:!1,hasZ:!1,objectIdField:w,spatialReference:S,timeInfo:null,featureStore:new c.Z({geometryType:i,hasM:!1,hasZ:!1})}),this._queryEngine.featureStore.addMany(x.features),{warnings:b(x),extent:(await this._queryEngine.fetchRecomputedExtents()).fullExtent}}async applyEdits(){throw new o.Z("wfs-source:editing-not-supported","applyEdits() is not supported on WFSLayer")}async queryFeatures(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQuery(e,t.signal)}async queryFeatureCount(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForCount(e,t.signal)}async queryObjectIds(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForIds(e,t.signal)}async queryExtent(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForExtent(e,t.signal)}async querySnapping(e,t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForSnapping(e,t.signal)}async refresh(e){return this._customParameters=e.customParameters,this._maxRecordCount=e.maxRecordCount,this._maxTotalRecordCount=e.maxTotalRecordCount,this._maxPageCount=e.maxPageCount,this._snapshotTask?.abort(),this._snapshotTask=(0,r.vr)((e=>this._snapshotFeatures({signal:e}))),this._snapshotTask.promise.then((e=>{this._queryEngine.featureStore.clear(),this._queryEngine.featureStore.addMany(e.features);for(const t of b(e))s.Z.getLogger(w).warn(new i.Z("wfs-layer:refresh-warning",t.message,t.details));e.errors?.length&&s.Z.getLogger(w).warn(new i.Z("wfs-layer:refresh-error","Refresh completed with errors",{errors:e.errors}))}),(()=>{this._queryEngine.featureStore.clear()})),await this._waitSnapshotComplete(),{extent:(await this._queryEngine.fetchRecomputedExtents()).fullExtent}}async _waitSnapshotComplete(){if(this._snapshotTask&&!this._snapshotTask.finished){try{await this._snapshotTask.promise}catch{}return this._waitSnapshotComplete()}}async _snapshotFeatures(e){const t=e?.signal,n=this._maxTotalRecordCount,r=this._maxPageCount,o=this._supportsPagination?await(0,h.bx)(this._getFeatureUrl,this._featureType.typeName,{customParameters:this._customParameters,signal:t}):void 0;let s=[];const i=[];if(null==o)try{s=await this._singleQuery(t)}catch(e){(0,a.D_)(e)||i.push(e)}else{const e=Math.min(o,n),u=function*(e,t,n){for(let r=0;rasync function(e,t,n){let r=e.next();for(;!r.done;){try{const e=await r.value;t.push(...e)}catch(e){(0,a.D_)(e)||n.push(e)}r=e.next()}}(u,s,i))))}return(0,a.k_)(t),{features:s,totalRecordCount:o,maxTotalRecordCount:n,maxPageCount:r,errors:i}}async _singleQuery(e){const t=await(0,h.Bm)(this._getFeatureUrl,this._featureType.typeName,this._getFeatureSpatialReference,this._getFeatureOutputFormat,{customParameters:this._customParameters,signal:e});return this._processGeoJSON(t,{signal:e})}async _pageQuery(e,t){const n=e*this._maxRecordCount,r=await(0,h.Bm)(this._getFeatureUrl,this._featureType.typeName,this._getFeatureSpatialReference,this._getFeatureOutputFormat,{customParameters:this._customParameters,startIndex:n,count:this._maxRecordCount,signal:t});return this._processGeoJSON(r,{startIndex:n,signal:t})}_processGeoJSON(e,t){(0,p.O3)(e,this._getFeatureSpatialReference.wkid);const{startIndex:n,signal:r}=t;(0,a.k_)(r);const o=(0,p.lG)(e,{geometryType:this._geometryType,hasZ:!1,objectIdField:this._objectIdField});if(!(0,u.fS)(this._spatialReference,this._getFeatureSpatialReference))for(const e of o)null!=e.geometry&&(e.geometry=(0,l.GH)((0,f.iV)((0,l.di)(e.geometry,this._geometryType,!1,!1),this._getFeatureSpatialReference,this._spatialReference)));let s=n??1;for(const e of o){const t={};(0,y.O0)(this._fieldsIndex,t,e.attributes,!0),e.attributes=t,null==t[this._objectIdField]&&(e.objectId=t[this._objectIdField]=s++)}return o}}function b(e){const t=[];return null!=e.totalRecordCount&&(e.features.lengthe.maxTotalRecordCount&&t.push({name:"wfs-layer:large-dataset",message:`The number of ${e.totalRecordCount} features exceeds the maximum allowed of ${e.maxTotalRecordCount}.`,details:{recordCount:e.features.length,totalRecordCount:e.totalRecordCount,maxTotalRecordCount:e.maxTotalRecordCount}})),t}},61957:function(e,t,n){n.d(t,{O3:function(){return x},lG:function(){return C},my:function(){return T},q9:function(){return c}});var r=n(66318),o=n(70375),s=n(35925),a=n(59958),i=n(15540),u=n(14845);const l={LineString:"esriGeometryPolyline",MultiLineString:"esriGeometryPolyline",MultiPoint:"esriGeometryMultipoint",Point:"esriGeometryPoint",Polygon:"esriGeometryPolygon",MultiPolygon:"esriGeometryPolygon"};function c(e){return l[e]}function*f(e){switch(e.type){case"Feature":yield e;break;case"FeatureCollection":for(const t of e.features)t&&(yield t)}}function*d(e){if(e)switch(e.type){case"Point":yield e.coordinates;break;case"LineString":case"MultiPoint":yield*e.coordinates;break;case"MultiLineString":case"Polygon":for(const t of e.coordinates)yield*t;break;case"MultiPolygon":for(const t of e.coordinates)for(const e of t)yield*e}}function p(e){for(const t of e)if(t.length>2)return!0;return!1}function y(e){let t=0;for(let n=0;n=0;r--)S(e,t[r],n);e.lengths.push(t.length)}function S(e,t,n){const[r,o,s]=t;e.coords.push(r,o),n.hasZ&&e.coords.push(s||0)}function F(e){switch(typeof e){case"string":return(0,r.mu)(e)?"esriFieldTypeDate":"esriFieldTypeString";case"number":return"esriFieldTypeDouble";default:return"unknown"}}function x(e,t=4326){if(!e)throw new o.Z("geojson-layer:empty","GeoJSON data is empty");if("Feature"!==e.type&&"FeatureCollection"!==e.type)throw new o.Z("geojson-layer:unsupported-geojson-object","missing or not supported GeoJSON object type",{data:e});const{crs:n}=e;if(!n)return;const r="string"==typeof n?n:"name"===n.type?n.properties.name:"EPSG"===n.type?n.properties.code:null,a=(0,s.oR)({wkid:t})?new RegExp(".*(CRS84H?|4326)$","i"):new RegExp(`.*(${t})$`,"i");if(!r||!a.test(r))throw new o.Z("geojson:unsupported-crs","unsupported GeoJSON 'crs' member",{crs:n})}function T(e,t={}){const n=[],r=new Set,o=new Set;let s,a=!1,i=null,l=!1,{geometryType:y=null}=t,h=!1;for(const t of f(e)){const{geometry:e,properties:f,id:m}=t;if((!e||(y||(y=c(e.type)),c(e.type)===y))&&(a||(a=p(d(e))),l||(l=null!=m,l&&(s=typeof m,f&&(i=Object.keys(f).filter((e=>f[e]===m))))),f&&i&&l&&null!=m&&(i.length>1?i=i.filter((e=>f[e]===m)):1===i.length&&(i=f[i[0]]===m?i:[])),!h&&f)){let e=!0;for(const t in f){if(r.has(t))continue;const s=f[t];if(null==s){e=!1,o.add(t);continue}const a=F(s);if("unknown"===a){o.add(t);continue}o.delete(t),r.add(t);const i=(0,u.q6)(t);i&&n.push({name:i,alias:t,type:a})}h=e}}const m=(0,u.q6)(1===i?.length&&i[0]||null)??void 0;if(m)for(const e of n)if(e.name===m&&(0,u.H7)(e)){e.type="esriFieldTypeOID";break}return{fields:n,geometryType:y,hasZ:a,objectIdFieldName:m,objectIdFieldType:s,unknownFields:Array.from(o)}}function C(e,t){return Array.from(function*(e,t={}){const{geometryType:n,objectIdField:r}=t;for(const o of e){const{geometry:e,properties:s,id:u}=o;if(e&&c(e.type)!==n)continue;const l=s||{};let f;r&&(f=l[r],null==u||f||(l[r]=f=u));const d=new a.u_(e?m(new i.Z,e,t):null,l,null,f??void 0);yield d}}(f(e),t))}},24366:function(e,t,n){n.d(t,{O0:function(){return d},av:function(){return u},b:function(){return m},d1:function(){return c},og:function(){return h}});var r=n(66318),o=n(35925),s=n(14845);class a{constructor(){this.code=null,this.description=null}}class i{constructor(e){this.error=new a,this.globalId=null,this.objectId=null,this.success=!1,this.uniqueId=null,this.error.description=e}}function u(e){return new i(e)}class l{constructor(e){this.globalId=null,this.success=!0,this.objectId=this.uniqueId=e}}function c(e){return new l(e)}const f=new Set;function d(e,t,n,r=!1){f.clear();for(const o in n){const a=e.get(o);if(!a)continue;const i=p(a,n[o]);if(f.add(a.name),a&&(r||a.editable)){const e=(0,s.Qc)(a,i);if(e)return u((0,s.vP)(e,a,i));t[a.name]=i}}for(const t of e?.requiredFields??[])if(!f.has(t.name))return u(`missing required field "${t.name}"`);return null}function p(e,t){let n=t;return(0,s.H7)(e)&&"string"==typeof t?n=parseFloat(t):(0,s.qN)(e)&&null!=t&&"string"!=typeof t?n=String(t):(0,s.y2)(e)&&"string"==typeof t&&(n=(0,r.sG)(t)),(0,s.Pz)(n)}let y;function h(e,t){if(!e||!(0,o.JY)(t))return e;if("rings"in e||"paths"in e){if(null==y)throw new TypeError("geometry engine not loaded");return y.simplify(t,e)}return e}async function m(e,t){!(0,o.JY)(e)||"esriGeometryPolygon"!==t&&"esriGeometryPolyline"!==t||await async function(){return null==y&&(y=await Promise.all([n.e(9067),n.e(3296)]).then(n.bind(n,8923))),y}()}},28727:function(e,t,n){n.d(t,{Bm:function(){return B},FU:function(){return k},be:function(){return G},bx:function(){return L},eB:function(){return A},fU:function(){return W},ft:function(){return j},u2:function(){return _}});n(91957);var r=n(66341),o=n(70375),s=n(99118),a=n(3466),i=n(28105),u=n(35925),l=n(59659),c=n(61957),f=n(94477),d=n(20692),p=n(12512),y=n(14845),h=n(14685),m=n(91772);const g="xlink:href",w="2.0.0",_="__esri_wfs_id__",b="wfs-layer:getWFSLayerTypeInfo-error",S="wfs-layer:empty-service",F="wfs-layer:feature-type-not-found",x="wfs-layer:geojson-not-supported",T="wfs-layer:kvp-encoding-not-supported",C="wfs-layer:malformed-json",R="wfs-layer:unknown-geometry-type",I="wfs-layer:unknown-field-type",P="wfs-layer:unsupported-spatial-reference",E="wfs-layer:unsupported-wfs-version";async function k(e,t){const n=function(e){const t=D(e);(function(e){const t=e.firstElementChild?.getAttribute("version");if(t&&t!==w)throw new o.Z(E,`Unsupported WFS version ${t}. Supported version: ${w}`)})(t),H(t);const n=t.firstElementChild,r=(0,s.Fs)(function(e){return(0,f.H)(e,{FeatureTypeList:{FeatureType:e=>{const t={typeName:"undefined:undefined",name:"",title:"",description:"",extent:null,namespacePrefix:"",namespaceUri:"",defaultSpatialReference:4326,supportedSpatialReferences:[]},n=new Set;return(0,f.h)(e,{Name:e=>{const{name:n,prefix:r}=V(e.textContent);t.typeName=`${r}:${n}`,t.name=n,t.namespacePrefix=r,t.namespaceUri=e.lookupNamespaceURI(r)},Abstract:e=>{t.description=e.textContent},Title:e=>{t.title=e.textContent},WGS84BoundingBox:e=>{t.extent=function(e){let t,n,r,o;for(const s of e.children)switch(s.localName){case"LowerCorner":[t,n]=s.textContent.split(" ").map((e=>Number.parseFloat(e)));break;case"UpperCorner":[r,o]=s.textContent.split(" ").map((e=>Number.parseFloat(e)))}return{xmin:t,ymin:n,xmax:r,ymax:o,spatialReference:u.YU}}(e)},DefaultCRS:e=>{const r=M(e);r&&(t.defaultSpatialReference=r,n.add(r))},OtherCRS:e=>{const t=M(e);t&&n.add(t)}}),t.title||(t.title=t.name),n.add(4326),t.supportedSpatialReferences.push(...n),t}}})}(n));return{operations:N(n),get featureTypes(){return Array.from(r())},readFeatureTypes:r}}((await(0,r.Z)(e,{responseType:"text",query:{SERVICE:"WFS",REQUEST:"GetCapabilities",VERSION:w,...t?.customParameters},signal:t?.signal})).data);return function(e,t){(0,a.$U)(e)&&((0,a.D6)(e,t.operations.DescribeFeatureType.url,!0)&&(t.operations.DescribeFeatureType.url=(0,a.hO)(t.operations.DescribeFeatureType.url)),(0,a.D6)(e,t.operations.GetFeature.url,!0)&&(t.operations.GetFeature.url=(0,a.hO)(t.operations.GetFeature.url)))}(e,n),n}const Z=["json","application/json","geojson","application/json; subtype=geojson","application/geo+json"];function v(e){for(const t of Z){const n=e.findIndex((e=>e.toLowerCase()===t));if(n>=0)return e[n]}return null}function N(e){let t=!1;const n={GetCapabilities:{url:""},DescribeFeatureType:{url:""},GetFeature:{url:"",outputFormat:null,supportsPagination:!1}},r=[],s=[];if((0,f.h)(e,{OperationsMetadata:{Parameter:e=>{if("outputFormat"===e.getAttribute("name"))return{AllowedValues:{Value:({textContent:e})=>{e&&r.push(e)}}}},Operation:e=>{switch(e.getAttribute("name")){case"GetCapabilities":return{DCP:{HTTP:{Get:e=>{n.GetCapabilities.url=e.getAttribute(g)}}}};case"DescribeFeatureType":return{DCP:{HTTP:{Get:e=>{n.DescribeFeatureType.url=e.getAttribute(g)}}}};case"GetFeature":return{DCP:{HTTP:{Get:e=>{n.GetFeature.url=e.getAttribute(g)}}},Parameter:e=>{if("outputFormat"===e.getAttribute("name"))return{AllowedValues:{Value:({textContent:e})=>{e&&s.push(e)}}}}}}},Constraint:e=>{switch(e.getAttribute("name")){case"KVPEncoding":return{DefaultValue:e=>{t="true"===e.textContent.toLowerCase()}};case"ImplementsResultPaging":return{DefaultValue:e=>{n.GetFeature.supportsPagination="true"===e.textContent.toLowerCase()}}}}}}),n.GetFeature.outputFormat=v(s)??v(r),!t)throw new o.Z(T,"WFS service doesn't support key/value pair (KVP) encoding");if(null==n.GetFeature.outputFormat)throw new o.Z(x,"WFS service doesn't support GeoJSON output format");return n}function M(e){const t=parseInt(e.textContent?.match(/(?\d+$)/i)?.groups?.wkid??"",10);if(!Number.isNaN(t))return t}function j(e,t,n){return(0,s.sE)(e,(e=>n?e.name===t&&e.namespaceUri===n:e.typeName===t||e.name===t))}async function G(e,t,n,r={}){const{featureType:s,extent:a}=await async function(e,t,n,r={}){const s=e.readFeatureTypes(),a=t?j(s,t,n):s.next().value,{spatialReference:l=new h.Z({wkid:a?.defaultSpatialReference})}=r;if(null==a)throw t?new o.Z(F,`The type '${t}' could not be found in the service`):new o.Z(S,"The service is empty");let c=new m.Z({...a.extent,spatialReference:h.Z.WGS84});if(!(0,u.fS)(c.spatialReference,l))try{await(0,i.initializeProjection)(c.spatialReference,l,void 0,r),c=(0,i.project)(c,l)}catch{throw new o.Z(P,"Projection not supported")}return{extent:c,spatialReference:l,featureType:a}}(e,t,n,r),{spatialReference:l}=W(e.operations.GetFeature.url,s,r.spatialReference),{fields:c,geometryType:f,swapXY:d,objectIdField:p,geometryField:y}=await async function(e,t,n,r={}){const{typeName:s}=t,[a,i]=await Promise.allSettled([O(e.operations.DescribeFeatureType.url,s,r),q(e,s,n,r)]),u=e=>new o.Z(b,`An error occurred while getting info about the feature type '${s}'`,{error:e});if("rejected"===a.status)throw u(a.reason);if("rejected"===i.status)throw u(i.reason);const{fields:l,errors:c}=a.value??{},f=a.value?.geometryType||i.value?.geometryType,d=i.value?.swapXY??!1;if(null==f)throw new o.Z(R,`The geometry type could not be determined for type '${s}`,{typeName:s,geometryType:f,fields:l,errors:c});return{...A(l??[]),geometryType:f,swapXY:d}}(e,s,l,r);return{url:e.operations.GetCapabilities.url,name:s.name,namespaceUri:s.namespaceUri,fields:c,geometryField:y,geometryType:f,objectIdField:p,spatialReference:r.spatialReference??new h.Z({wkid:s.defaultSpatialReference}),extent:a,swapXY:d,wfsCapabilities:e,customParameters:r.customParameters}}function A(e){const t=e.find((e=>"geometry"===e.type));let n=e.find((e=>"oid"===e.type));return e=e.filter((e=>"geometry"!==e.type)),n||(n=new p.Z({name:_,type:"oid",alias:_}),e.unshift(n)),{geometryField:t?.name??null,objectIdField:n.name,fields:e}}async function q(e,t,n,o={}){let s,a=!1;const[i,u]=await Promise.all([B(e.operations.GetFeature.url,t,n,e.operations.GetFeature.outputFormat,{...o,count:1}),(0,r.Z)(e.operations.GetFeature.url,{responseType:"text",query:$(t,n,void 0,{...o,count:1}),signal:o?.signal})]),f="FeatureCollection"===i.type&&i.features[0]?.geometry;if(f){let e;switch(s=l.M.fromJSON((0,c.q9)(f.type)),f.type){case"Point":e=f.coordinates;break;case"LineString":case"MultiPoint":e=f.coordinates[0];break;case"MultiLineString":case"Polygon":e=f.coordinates[0][0];break;case"MultiPolygon":e=f.coordinates[0][0][0]}const t=/<[^>]*pos[^>]*> *(-?\d+(?:\.\d+)?) (-?\d+(?:\.\d+)?)/.exec(u.data);if(t){const n=e[0].toFixed(3),r=e[1].toFixed(3),o=parseFloat(t[1]).toFixed(3);n===parseFloat(t[2]).toFixed(3)&&r===o&&(a=!0)}}return{geometryType:s,swapXY:a}}async function O(e,t,n){return function(e,t){const{name:n}=V(e),r=D(t);H(r);const a=(0,s.sE)((0,f.H)(r.firstElementChild,{element:e=>e}),(e=>e.getAttribute("name")===n));if(null!=a){const e=a.getAttribute("type"),t=e?(0,s.sE)((0,f.H)(r.firstElementChild,{complexType:e=>e}),(t=>t.getAttribute("name")===V(e).name)):(0,s.sE)((0,f.H)(a,{complexType:e=>e}),(()=>!0));if(t)return function(e){const t=[],n=[];let r;const s=(0,f.H)(e,{complexContent:{extension:{sequence:{element:e=>e}}}});for(const a of s){const s=a.getAttribute("name");if(!s)continue;let i,u;if(a.hasAttribute("type")?i=V(a.getAttribute("type")).name:(0,f.h)(a,{simpleType:{restriction:e=>(i=V(e.getAttribute("base")).name,{maxLength:e=>{u=+e.getAttribute("value")}})}}),!i)continue;const l="true"===a.getAttribute("nillable");let c=!1;switch(i.toLowerCase()){case"integer":case"nonpositiveinteger":case"negativeinteger":case"long":case"int":case"short":case"byte":case"nonnegativeinteger":case"unsignedlong":case"unsignedint":case"unsignedshort":case"unsignedbyte":case"positiveinteger":n.push(new p.Z({name:s,alias:s,type:"integer",nullable:l,length:(0,y.ZR)("integer")}));break;case"float":case"double":case"decimal":n.push(new p.Z({name:s,alias:s,type:"double",nullable:l,length:(0,y.ZR)("double")}));break;case"boolean":case"string":case"gyearmonth":case"gyear":case"gmonthday":case"gday":case"gmonth":case"anyuri":case"qname":case"notation":case"normalizedstring":case"token":case"language":case"idrefs":case"entities":case"nmtoken":case"nmtokens":case"name":case"ncname":case"id":case"idref":case"entity":case"duration":case"time":n.push(new p.Z({name:s,alias:s,type:"string",nullable:l,length:u??(0,y.ZR)("string")}));break;case"datetime":case"date":n.push(new p.Z({name:s,alias:s,type:"date",nullable:l,length:u??(0,y.ZR)("date")}));break;case"pointpropertytype":r="point",c=!0;break;case"multipointpropertytype":r="multipoint",c=!0;break;case"curvepropertytype":case"multicurvepropertytype":case"multilinestringpropertytype":r="polyline",c=!0;break;case"surfacepropertytype":case"multisurfacepropertytype":case"multipolygonpropertytype":r="polygon",c=!0;break;case"geometrypropertytype":case"multigeometrypropertytype":c=!0,t.push(new o.Z(R,`geometry type '${i}' is not supported`,{type:(new XMLSerializer).serializeToString(e)}));break;default:t.push(new o.Z(I,`Unknown field type '${i}'`,{type:(new XMLSerializer).serializeToString(e)}))}c&&n.push(new p.Z({name:s,alias:s,type:"geometry",nullable:l}))}for(const e of n)if("integer"===e.type&&!e.nullable&&U.has(e.name.toLowerCase())){e.type="oid";break}return{geometryType:r,fields:n,errors:t}}(t)}throw new o.Z(F,`Type '${e}' not found in document`,{document:(new XMLSerializer).serializeToString(r)})}(t,(await(0,r.Z)(e,{responseType:"text",query:{SERVICE:"WFS",REQUEST:"DescribeFeatureType",VERSION:w,TYPENAME:t,TYPENAMES:t,...n?.customParameters},signal:n?.signal})).data)}const U=new Set(["objectid","fid"]);async function B(e,t,n,s,a){let{data:i}=await(0,r.Z)(e,{responseType:"text",query:$(t,n,s,a),signal:a?.signal});i=i.replaceAll(/": +(-?\d+),(\d+)(,)?/g,'": $1.$2$3');try{return JSON.parse(i)}catch(e){throw new o.Z(C,"Error while parsing the response",{response:i,error:e})}}function $(e,t,n,r){const o="number"==typeof t?t:t.wkid;return{SERVICE:"WFS",REQUEST:"GetFeature",VERSION:w,TYPENAMES:e,OUTPUTFORMAT:n,SRSNAME:"EPSG:"+o,STARTINDEX:r?.startIndex,COUNT:r?.count,...r?.customParameters}}async function L(e,t,n){const o=await(0,r.Z)(e,{responseType:"text",query:{SERVICE:"WFS",REQUEST:"GetFeature",VERSION:w,TYPENAMES:t,RESULTTYPE:"hits",...n?.customParameters},signal:n?.signal}),s=/numberMatched=["'](?\d+)["']/gi.exec(o.data);if(s?.groups)return+s.groups.numberMatched}function D(e){return(new DOMParser).parseFromString(e.trim(),"text/xml")}function V(e){const[t,n]=e.split(":");return{prefix:n?t:"",name:n??t}}function H(e){let t="",n="";if((0,f.h)(e.firstElementChild,{Exception:e=>(t=e.getAttribute("exceptionCode"),{ExceptionText:e=>{n=e.textContent}})}),t)throw new o.Z(`wfs-layer:${t}`,n)}function W(e,t,n){const r={wkid:t.defaultSpatialReference},o=null!=n?.wkid?{wkid:n.wkid}:r;return{spatialReference:o,getFeatureSpatialReference:(0,d.B5)(e)||o.wkid&&t.supportedSpatialReferences.includes(o.wkid)?{wkid:o.wkid}:{wkid:t.defaultSpatialReference}}}},94477:function(e,t,n){function r(e,t){if(e&&t)for(const n of e.children)if(n.localName in t){const e=t[n.localName];if("function"==typeof e){const t=e(n);t&&r(n,t)}else r(n,e)}}function*o(e,t){for(const n of e.children)if(n.localName in t){const e=t[n.localName];"function"==typeof e?yield e(n):yield*o(n,e)}}n.d(t,{H:function(){return o},h:function(){return r}})}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/17.463856564ec1e9c1c89d.js b/docs/sentinel1-explorer/17.463856564ec1e9c1c89d.js new file mode 100644 index 00000000..2785dea0 --- /dev/null +++ b/docs/sentinel1-explorer/17.463856564ec1e9c1c89d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[17],{17:function(e,_,a){a.r(_),a.d(_,{default:function(){return r}});const r={_decimalSeparator:",",_thousandSeparator:" ",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"n.e.",_era_bc:"p.n.e.",A:"a",P:"p",AM:"AM",PM:"PM","A.M.":"AM","P.M.":"PM",January:"stycznia",February:"lutego",March:"marca",April:"kwietnia",May:"maja",June:"czerwca",July:"lipca",August:"sierpnia",September:"września",October:"października",November:"listopada",December:"grudnia",Jan:"sty",Feb:"lut",Mar:"mar",Apr:"kwi","May(short)":"maj",Jun:"cze",Jul:"lip",Aug:"sie",Sep:"wrz",Oct:"paź",Nov:"lis",Dec:"gru",Sunday:"niedziela",Monday:"poniedziałek",Tuesday:"wtorek",Wednesday:"środa",Thursday:"czwartek",Friday:"piątek",Saturday:"sobota",Sun:"niedz.",Mon:"pon.",Tue:"wt.",Wed:"śr.",Thu:"czw.",Fri:"pt.",Sat:"sob.",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Zmiana skali",Play:"Odtwarzanie",Stop:"Zatrzymaj",Legend:"Legenda","Press ENTER to toggle":"",Loading:"Wczytywanie",Home:"Strona główna",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Drukuj",Image:"Obraz",Data:"Dane",Print:"Drukuj","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Od %1 do %2","From %1":"Od %1","To %1":"Do %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1780.ddf057b2d37c169fb3d4.js b/docs/sentinel1-explorer/1780.ddf057b2d37c169fb3d4.js new file mode 100644 index 00000000..122db955 --- /dev/null +++ b/docs/sentinel1-explorer/1780.ddf057b2d37c169fb3d4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1780],{68403:function(e,t,r){r.d(t,{Z:function(){return B}});var n,s=r(36663),f=r(82064),i=r(81977),u=(r(39994),r(13802),r(4157),r(40266)),o=r(32114),c=r(3308),y=r(1845),l=r(96303),a=r(86717),p=r(81095),h=r(34218);let d=n=class extends f.wq{constructor(e){super(e),this.translation=(0,p.Ue)(),this.rotationAxis=(0,p.nI)(h.up),this.rotationAngle=0,this.scale=(0,p.al)(1,1,1)}get rotation(){return(0,h.uT)(this.rotationAxis,this.rotationAngle)}set rotation(e){this.rotationAxis=(0,p.d9)((0,h.ZZ)(e)),this.rotationAngle=(0,h.EU)(e)}get localMatrix(){const e=(0,c.Ue)();return(0,y.yY)(b,(0,h.ZZ)(this.rotation),(0,h.WH)(this.rotation)),(0,o.Iw)(e,b,this.translation,this.scale),e}get localMatrixInverse(){return(0,o.U_)((0,c.Ue)(),this.localMatrix)}applyLocal(e,t){return(0,a.e)(t,e,this.localMatrix)}applyLocalInverse(e,t){return(0,a.e)(t,e,this.localMatrixInverse)}equals(e){return this===e||null!=e&&(0,o.I6)(this.localMatrix,e.localMatrix)}clone(){const e={translation:(0,p.d9)(this.translation),rotationAxis:(0,p.d9)(this.rotationAxis),rotationAngle:this.rotationAngle,scale:(0,p.d9)(this.scale)};return new n(e)}};(0,s._)([(0,i.Cb)({type:[Number],nonNullable:!0,json:{write:!0}})],d.prototype,"translation",void 0),(0,s._)([(0,i.Cb)({type:[Number],nonNullable:!0,json:{write:!0}})],d.prototype,"rotationAxis",void 0),(0,s._)([(0,i.Cb)({type:Number,nonNullable:!0,json:{write:!0}})],d.prototype,"rotationAngle",void 0),(0,s._)([(0,i.Cb)({type:[Number],nonNullable:!0,json:{write:!0}})],d.prototype,"scale",void 0),(0,s._)([(0,i.Cb)()],d.prototype,"rotation",null),(0,s._)([(0,i.Cb)()],d.prototype,"localMatrix",null),(0,s._)([(0,i.Cb)()],d.prototype,"localMatrixInverse",null),d=n=(0,s._)([(0,u.j)("esri.geometry.support.MeshTransform")],d);const b=(0,l.Ue)(),B=d},34218:function(e,t,r){r.d(t,{EU:function(){return d},Ue:function(){return c},WH:function(){return b},ZZ:function(){return h},q_:function(){return l},qw:function(){return p},uT:function(){return y},up:function(){return T}});var n=r(19431),s=r(32114),f=r(1845),i=r(96303),u=r(86717),o=r(81095);r(52721);function c(e=T){return[e[0],e[1],e[2],e[3]]}function y(e,t,r=c()){return(0,u.c)(r,e),r[3]=t,r}function l(e,t=c()){const r=(0,s.j6)(g,e);return B(t,(0,n.BV)((0,f.Bh)(t,r))),t}function a(e,t,r=c()){return(0,f.yY)(g,e,b(e)),(0,f.yY)(m,t,b(t)),(0,f.Jp)(g,m,g),B(r,(0,n.BV)((0,f.Bh)(r,g)))}function p(e,t,r,n=c()){return y(o.E9,e,E),y(o.IO,t,A),y(o.eG,r,w),a(E,A,E),a(E,w,n),n}function h(e){return e}function d(e){return e[3]}function b(e){return(0,n.Vl)(e[3])}function B(e,t){return e[3]=t,e}const T=[0,0,1,0],g=(0,i.Ue)(),m=(0,i.Ue)(),E=(c(),c()),A=c(),w=c()},81936:function(e,t,r){r.d(t,{ly:function(){return a},oS:function(){return m},o7:function(){return I},Jj:function(){return G},Hz:function(){return U},gK:function(){return b},ey:function(){return B},bj:function(){return T},O1:function(){return g},av:function(){return L},Nu:function(){return v},D_:function(){return S},Eu:function(){return p},q6:function(){return E},or:function(){return j},wA:function(){return q},Vs:function(){return Y},TS:function(){return P},qt:function(){return F},xA:function(){return O},ct:function(){return h},fP:function(){return A},n1:function(){return z},PP:function(){return k},P_:function(){return Z},mw:function(){return M},G5:function(){return R},ne:function(){return x},ek:function(){return d},Cd:function(){return w},zO:function(){return W},TN:function(){return X},ir:function(){return V},v6:function(){return C},hu:function(){return N},mc:function(){return _}});class n{constructor(e,t,r=0,n,s){this.TypedArrayConstructor=e,this.elementCount=9;const f=this.TypedArrayConstructor;void 0===n&&(n=9*f.BYTES_PER_ELEMENT);const i=0===t.byteLength?0:r;this.typedBuffer=null==s?new f(t,i):new f(t,i,(s-r)/f.BYTES_PER_ELEMENT),this.typedBufferStride=n/f.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(e,t,r=this.count-t){const n=this.typedBuffer.byteOffset+t*this.stride;return new e(this.buffer,n,this.stride,n+r*this.stride)}getMat(e,t){let r=e*this.typedBufferStride;for(let e=0;e<9;e++)t[e]=this.typedBuffer[r++];return t}setMat(e,t){let r=e*this.typedBufferStride;for(let e=0;e<9;e++)this.typedBuffer[r++]=t[e]}get(e,t){return this.typedBuffer[e*this.typedBufferStride+t]}set(e,t,r){this.typedBuffer[e*this.typedBufferStride+t]=r}copyFrom(e,t,r){const n=this.typedBuffer,s=t.typedBuffer;let f=e*this.typedBufferStride,i=r*t.typedBufferStride;for(let e=0;e<9;++e)n[f++]=s[i++]}get buffer(){return this.typedBuffer.buffer}}n.ElementCount=9;class s{constructor(e,t,r=0,n,s){this.TypedArrayConstructor=e,this.elementCount=16;const f=this.TypedArrayConstructor;void 0===n&&(n=16*f.BYTES_PER_ELEMENT);const i=0===t.byteLength?0:r;this.typedBuffer=null==s?new f(t,i):new f(t,i,(s-r)/f.BYTES_PER_ELEMENT),this.typedBufferStride=n/f.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(e,t,r=this.count-t){const n=this.typedBuffer.byteOffset+t*this.stride;return new e(this.buffer,n,this.stride,n+r*this.stride)}getMat(e,t){let r=e*this.typedBufferStride;for(let e=0;e<16;e++)t[e]=this.typedBuffer[r++];return t}setMat(e,t){let r=e*this.typedBufferStride;for(let e=0;e<16;e++)this.typedBuffer[r++]=t[e]}get(e,t){return this.typedBuffer[e*this.typedBufferStride+t]}set(e,t,r){this.typedBuffer[e*this.typedBufferStride+t]=r}copyFrom(e,t,r){const n=this.typedBuffer,s=t.typedBuffer;let f=e*this.typedBufferStride,i=r*t.typedBufferStride;for(let e=0;e<16;++e)n[f++]=s[i++]}get buffer(){return this.typedBuffer.buffer}}s.ElementCount=16;class f{constructor(e,t,r=0,n,s){this.TypedArrayConstructor=e,this.elementCount=1;const f=this.TypedArrayConstructor;void 0===n&&(n=f.BYTES_PER_ELEMENT);const i=0===t.byteLength?0:r;this.typedBuffer=null==s?new f(t,i):new f(t,i,(s-r)/f.BYTES_PER_ELEMENT),this.stride=n,this.typedBufferStride=n/f.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride)}sliceBuffer(e,t,r=this.count-t){const n=this.typedBuffer.byteOffset+t*this.stride;return new e(this.buffer,n,this.stride,n+r*this.stride)}get(e){return this.typedBuffer[e*this.typedBufferStride]}set(e,t){this.typedBuffer[e*this.typedBufferStride]=t}get buffer(){return this.typedBuffer.buffer}}f.ElementCount=1;var i=r(36531);class u{constructor(e,t,r=0,n,s){this.TypedArrayConstructor=e,this.elementCount=2;const f=this.TypedArrayConstructor;void 0===n&&(n=2*f.BYTES_PER_ELEMENT);const i=0===t.byteLength?0:r;this.typedBuffer=null==s?new f(t,i):new f(t,i,(s-r)/f.BYTES_PER_ELEMENT),this.typedBufferStride=n/f.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(e,t,r=this.count-t){const n=this.typedBuffer.byteOffset+t*this.stride;return new e(this.buffer,n,this.stride,n+r*this.stride)}getVec(e,t){return e*=this.typedBufferStride,(0,i.t8)(t,this.typedBuffer[e],this.typedBuffer[e+1])}setVec(e,t){e*=this.typedBufferStride,this.typedBuffer[e++]=t[0],this.typedBuffer[e]=t[1]}get(e,t){return this.typedBuffer[e*this.typedBufferStride+t]}set(e,t,r){this.typedBuffer[e*this.typedBufferStride+t]=r}setValues(e,t,r){e*=this.typedBufferStride,this.typedBuffer[e++]=t,this.typedBuffer[e]=r}copyFrom(e,t,r){const n=this.typedBuffer,s=t.typedBuffer;let f=e*this.typedBufferStride,i=r*t.typedBufferStride;n[f++]=s[i++],n[f]=s[i]}get buffer(){return this.typedBuffer.buffer}}u.ElementCount=2;var o=r(86717);class c{constructor(e,t,r=0,n,s){this.TypedArrayConstructor=e,this.elementCount=3;const f=this.TypedArrayConstructor;void 0===n&&(n=3*f.BYTES_PER_ELEMENT);const i=0===t.byteLength?0:r;this.typedBuffer=null==s?new f(t,i):new f(t,i,(s-r)/f.BYTES_PER_ELEMENT),this.typedBufferStride=n/f.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(e,t,r=this.count-t){const n=this.typedBuffer.byteOffset+t*this.stride;return new e(this.buffer,n,this.stride,n+r*this.stride)}getVec(e,t){return e*=this.typedBufferStride,(0,o.s)(t,this.typedBuffer[e],this.typedBuffer[e+1],this.typedBuffer[e+2])}setVec(e,t){e*=this.typedBufferStride,this.typedBuffer[e++]=t[0],this.typedBuffer[e++]=t[1],this.typedBuffer[e]=t[2]}get(e,t){return this.typedBuffer[e*this.typedBufferStride+t]}set(e,t,r){this.typedBuffer[e*this.typedBufferStride+t]=r}setValues(e,t,r,n){e*=this.typedBufferStride,this.typedBuffer[e++]=t,this.typedBuffer[e++]=r,this.typedBuffer[e]=n}copyFrom(e,t,r){const n=this.typedBuffer,s=t.typedBuffer;let f=e*this.typedBufferStride,i=r*t.typedBufferStride;n[f++]=s[i++],n[f++]=s[i++],n[f]=s[i]}get buffer(){return this.typedBuffer.buffer}}c.ElementCount=3;var y=r(56999);class l{constructor(e,t,r=0,n,s){this.TypedArrayConstructor=e,this.start=r,this.elementCount=4;const f=this.TypedArrayConstructor;void 0===n&&(n=4*f.BYTES_PER_ELEMENT);const i=0===t.byteLength?0:r;this.typedBuffer=null==s?new f(t,i):new f(t,i,(s-r)/f.BYTES_PER_ELEMENT),this.typedBufferStride=n/f.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(e,t,r=this.count-t){const n=this.typedBuffer.byteOffset+t*this.stride;return new e(this.buffer,n,this.stride,n+r*this.stride)}getVec(e,t){return e*=this.typedBufferStride,(0,y.s)(t,this.typedBuffer[e++],this.typedBuffer[e++],this.typedBuffer[e++],this.typedBuffer[e])}setVec(e,t){e*=this.typedBufferStride,this.typedBuffer[e++]=t[0],this.typedBuffer[e++]=t[1],this.typedBuffer[e++]=t[2],this.typedBuffer[e]=t[3]}get(e,t){return this.typedBuffer[e*this.typedBufferStride+t]}set(e,t,r){this.typedBuffer[e*this.typedBufferStride+t]=r}setValues(e,t,r,n,s){e*=this.typedBufferStride,this.typedBuffer[e++]=t,this.typedBuffer[e++]=r,this.typedBuffer[e++]=n,this.typedBuffer[e]=s}copyFrom(e,t,r){const n=this.typedBuffer,s=t.typedBuffer;let f=e*this.typedBufferStride,i=r*t.typedBufferStride;n[f++]=s[i++],n[f++]=s[i++],n[f++]=s[i++],n[f]=s[i]}get buffer(){return this.typedBuffer.buffer}}l.ElementCount=4;class a extends f{constructor(e,t=0,r,n){super(Float32Array,e,t,r,n),this.elementType="f32"}static fromTypedArray(e,t){return new a(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}a.ElementType="f32";class p extends u{constructor(e,t=0,r,n){super(Float32Array,e,t,r,n),this.elementType="f32"}slice(e,t){return this.sliceBuffer(p,e,t)}static fromTypedArray(e,t){return new p(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}p.ElementType="f32";class h extends c{constructor(e,t=0,r,n){super(Float32Array,e,t,r,n),this.elementType="f32"}slice(e,t){return this.sliceBuffer(h,e,t)}static fromTypedArray(e,t){return new h(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}h.ElementType="f32";class d extends l{constructor(e,t=0,r,n){super(Float32Array,e,t,r,n),this.elementType="f32"}slice(e,t){return this.sliceBuffer(d,e,t)}static fromTypedArray(e,t){return new d(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}d.ElementType="f32";class b extends n{constructor(e,t=0,r,n){super(Float32Array,e,t,r,n),this.elementType="f32"}slice(e,t){return this.sliceBuffer(b,e,t)}static fromTypedArray(e,t){return new b(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}b.ElementType="f32";class B extends n{constructor(e,t=0,r,n){super(Float64Array,e,t,r,n),this.elementType="f64"}slice(e,t){return this.sliceBuffer(B,e,t)}static fromTypedArray(e,t){return new B(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}B.ElementType="f64";class T extends s{constructor(e,t=0,r,n){super(Float32Array,e,t,r,n),this.elementType="f32"}slice(e,t){return this.sliceBuffer(T,e,t)}static fromTypedArray(e,t){return new T(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}T.ElementType="f32";class g extends s{constructor(e,t=0,r,n){super(Float64Array,e,t,r,n),this.elementType="f64"}slice(e,t){return this.sliceBuffer(g,e,t)}static fromTypedArray(e,t){return new g(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}g.ElementType="f64";class m extends f{constructor(e,t=0,r,n){super(Float64Array,e,t,r,n),this.elementType="f64"}slice(e,t){return this.sliceBuffer(m,e,t)}static fromTypedArray(e,t){return new m(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}m.ElementType="f64";class E extends u{constructor(e,t=0,r,n){super(Float64Array,e,t,r,n),this.elementType="f64"}slice(e,t){return this.sliceBuffer(E,e,t)}static fromTypedArray(e,t){return new E(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}E.ElementType="f64";class A extends c{constructor(e,t=0,r,n){super(Float64Array,e,t,r,n),this.elementType="f64"}slice(e,t){return this.sliceBuffer(A,e,t)}static fromTypedArray(e,t){return new A(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}A.ElementType="f64";class w extends l{constructor(e,t=0,r,n){super(Float64Array,e,t,r,n),this.elementType="f64"}slice(e,t){return this.sliceBuffer(w,e,t)}static fromTypedArray(e,t){return new w(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}w.ElementType="f64";class S extends f{constructor(e,t=0,r,n){super(Uint8Array,e,t,r,n),this.elementType="u8"}slice(e,t){return this.sliceBuffer(S,e,t)}static fromTypedArray(e,t){return new S(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}S.ElementType="u8";class O extends u{constructor(e,t=0,r,n){super(Uint8Array,e,t,r,n),this.elementType="u8"}slice(e,t){return this.sliceBuffer(O,e,t)}static fromTypedArray(e,t){return new O(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}O.ElementType="u8";class x extends c{constructor(e,t=0,r,n){super(Uint8Array,e,t,r,n),this.elementType="u8"}slice(e,t){return this.sliceBuffer(x,e,t)}static fromTypedArray(e,t){return new x(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}x.ElementType="u8";class _ extends l{constructor(e,t=0,r,n){super(Uint8Array,e,t,r,n),this.elementType="u8"}slice(e,t){return this.sliceBuffer(_,e,t)}static fromTypedArray(e,t){return new _(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}_.ElementType="u8";class L extends f{constructor(e,t=0,r,n){super(Uint16Array,e,t,r,n),this.elementType="u16"}slice(e,t){return this.sliceBuffer(L,e,t)}static fromTypedArray(e,t){return new L(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}L.ElementType="u16";class P extends u{constructor(e,t=0,r,n){super(Uint16Array,e,t,r,n),this.elementType="u16"}slice(e,t){return this.sliceBuffer(P,e,t)}static fromTypedArray(e,t){return new P(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}P.ElementType="u16";class M extends c{constructor(e,t=0,r,n){super(Uint16Array,e,t,r,n),this.elementType="u16"}slice(e,t){return this.sliceBuffer(M,e,t)}static fromTypedArray(e,t){return new M(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}M.ElementType="u16";class C extends l{constructor(e,t=0,r,n){super(Uint16Array,e,t,r,n),this.elementType="u16"}slice(e,t){return this.sliceBuffer(C,e,t)}static fromTypedArray(e,t){return new C(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}C.ElementType="u16";class v extends f{constructor(e,t=0,r,n){super(Uint32Array,e,t,r,n),this.elementType="u32"}slice(e,t){return this.sliceBuffer(v,e,t)}static fromTypedArray(e,t){return new v(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}v.ElementType="u32";class F extends u{constructor(e,t=0,r,n){super(Uint32Array,e,t,r,n),this.elementType="u32"}slice(e,t){return this.sliceBuffer(F,e,t)}static fromTypedArray(e,t){return new F(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}F.ElementType="u32";class R extends c{constructor(e,t=0,r,n){super(Uint32Array,e,t,r,n),this.elementType="u32"}slice(e,t){return this.sliceBuffer(R,e,t)}static fromTypedArray(e,t){return new R(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}R.ElementType="u32";class N extends l{constructor(e,t=0,r,n){super(Uint32Array,e,t,r,n),this.elementType="u32"}slice(e,t){return this.sliceBuffer(N,e,t)}static fromTypedArray(e,t){return new N(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}N.ElementType="u32";class U extends f{constructor(e,t=0,r,n){super(Int8Array,e,t,r,n),this.elementType="i8"}slice(e,t){return this.sliceBuffer(U,e,t)}static fromTypedArray(e,t){return new U(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}U.ElementType="i8";class Y extends u{constructor(e,t=0,r,n){super(Int8Array,e,t,r,n),this.elementType="i8"}slice(e,t){return this.sliceBuffer(Y,e,t)}static fromTypedArray(e,t){return new Y(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}Y.ElementType="i8";class Z extends c{constructor(e,t=0,r,n){super(Int8Array,e,t,r,n),this.elementType="i8"}slice(e,t){return this.sliceBuffer(Z,e,t)}static fromTypedArray(e,t){return new Z(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}Z.ElementType="i8";class V extends l{constructor(e,t=0,r,n){super(Int8Array,e,t,r,n),this.elementType="i8"}slice(e,t){return this.sliceBuffer(V,e,t)}static fromTypedArray(e,t){return new V(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}V.ElementType="i8";class I extends f{constructor(e,t=0,r,n){super(Int16Array,e,t,r,n),this.elementType="i16"}slice(e,t){return this.sliceBuffer(I,e,t)}static fromTypedArray(e,t){return new I(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}I.ElementType="i16";class j extends u{constructor(e,t=0,r,n){super(Int16Array,e,t,r,n),this.elementType="i16"}slice(e,t){return this.sliceBuffer(j,e,t)}static fromTypedArray(e,t){return new j(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}j.ElementType="i16";class z extends c{constructor(e,t=0,r,n){super(Int16Array,e,t,r,n),this.elementType="i16"}slice(e,t){return this.sliceBuffer(z,e,t)}static fromTypedArray(e,t){return new z(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}z.ElementType="i16";class W extends l{constructor(e,t=0,r,n){super(Int16Array,e,t,r,n),this.elementType="i16"}slice(e,t){return this.sliceBuffer(W,e,t)}static fromTypedArray(e,t){return new W(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}W.ElementType="i16";class G extends f{constructor(e,t=0,r,n){super(Int32Array,e,t,r,n),this.elementType="i32"}slice(e,t){return this.sliceBuffer(G,e,t)}static fromTypedArray(e,t){return new G(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}G.ElementType="i32";class q extends u{constructor(e,t=0,r,n){super(Int32Array,e,t,r,n),this.elementType="i32"}slice(e,t){return this.sliceBuffer(q,e,t)}static fromTypedArray(e,t){return new q(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}q.ElementType="i32";class k extends c{constructor(e,t=0,r,n){super(Int32Array,e,t,r,n),this.elementType="i32"}slice(e,t){return this.sliceBuffer(k,e,t)}static fromTypedArray(e,t){return new k(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}k.ElementType="i32";class X extends l{constructor(e,t=0,r,n){super(Int32Array,e,t,r,n),this.elementType="i32"}slice(e,t){return this.sliceBuffer(X,e,t)}static fromTypedArray(e,t){return new X(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}X.ElementType="i32"},67341:function(e,t,r){r.d(t,{Pq:function(){return u},Tj:function(){return i},qr:function(){return o}});var n=r(59801),s=r(13802),f=r(50442);function i(e,t){return e.isGeographic||e.isWebMercator&&(t??!0)}function u(e,t){switch(e.type){case"georeferenced":return t.isGeographic;case"local":return t.isGeographic||t.isWebMercator}}function o(e,t,r,i){if(void 0!==i){(0,n.x9)(s.Z.getLogger(e),"option: geographic",{replacement:"use mesh vertexSpace and spatial reference to control how operations are performed",version:"4.29",warnOnce:!0});const u="local"===t.type;if(!(0,f.zZ)(t)||i===u)return r.isGeographic||r.isWebMercator&&i;s.Z.getLogger(e).warnOnce(`Specifying the 'geographic' parameter (${i}) for a Mesh vertex space of type "${t.type}" is not supported. This parameter will be ignored.`)}return u(t,r)}},91780:function(e,t,r){r.d(t,{I5:function(){return A},Ne:function(){return E},O7:function(){return F},Sm:function(){return P},Yq:function(){return O},pY:function(){return _},project:function(){return x},w1:function(){return w}});var n=r(17321),s=r(3965),f=r(32114),i=r(3308),u=r(86717),o=r(81095),c=r(46332),y=r(28105),l=r(61170),a=r(43176),p=r(22349),h=r(92570),d=r(68403),b=r(50442),B=r(6766),T=r(67341),g=r(49921);function m(e,t,r){return(0,T.Tj)(t.spatialReference,r?.geographic)?_(e,t,!1,r):function(e,t,r){const n=new Float64Array(e.position.length),s=e.position,f=t.x,i=t.y,u=t.z??0,o=F(r?r.unit:null,t.spatialReference);for(let e=0;en.Z.getLogger("esri.geometry.support.meshUtils.normalProjection");function B(e,t,r,n,s){return x(n)?(O(L.TO_PCPF,h.ct.fromTypedArray(e),h.fP.fromTypedArray(t),h.fP.fromTypedArray(r),n,h.ct.fromTypedArray(s)),s):(b().error("Cannot convert spatial reference to PCPF"),s)}function T(e,t,r,n,s){return x(n)?(O(L.FROM_PCPF,h.ct.fromTypedArray(e),h.fP.fromTypedArray(t),h.fP.fromTypedArray(r),n,h.ct.fromTypedArray(s)),s):(b().error("Cannot convert to spatial reference from PCPF"),s)}function g(e,t,r){return(0,l.projectBuffer)(e,t,0,r,(0,c.rS)(t),0,e.length/3),r}function m(e,t,r){return(0,l.projectBuffer)(e,(0,c.rS)(r),0,t,r,0,e.length/3),t}function E(e,t,r){return(0,s.XL)(F,r),(0,d.b)(t,e,F),(0,s.pV)(F)||(0,d.n)(t,t),t}function A(e,t,r){if((0,s.XL)(F,r),(0,d.b)(t,e,F,4),(0,s.pV)(F)||(0,d.n)(t,t,4),e!==t)for(let r=3;r>this._dz;t>s&&(t=s),this._margin=t,this._xmin=s*this._xPos-t,this._ymin=s*this._yPos-t,this._xmax=this._xmin+s+2*t,this._ymax=this._ymin+s+2*t}reset(e){this._type=e,this._lines=[],this._starts=[],this._line=null,this._start=0}moveTo(e,t){this._pushLine(),this._prevIsIn=this._isIn(e,t),this._moveTo(e,t,this._prevIsIn),this._prevPt=new n(e,t),this._firstPt=new n(e,t),this._dist=0}lineTo(e,t){const s=this._isIn(e,t),i=new n(e,t),r=n.distance(this._prevPt,i);let o,l,h,c,u,y,d,_;if(s)this._prevIsIn?this._lineTo(e,t,!0):(o=this._prevPt,l=i,h=this._intersect(l,o),this._start=this._dist+r*(1-this._r),this._lineTo(h.x,h.y,!0),this._lineTo(l.x,l.y,!0));else if(this._prevIsIn)l=this._prevPt,o=i,h=this._intersect(l,o),this._lineTo(h.x,h.y,!0),this._lineTo(o.x,o.y,!1);else{const e=this._prevPt,t=i;if(e.x<=this._xmin&&t.x<=this._xmin||e.x>=this._xmax&&t.x>=this._xmax||e.y<=this._ymin&&t.y<=this._ymin||e.y>=this._ymax&&t.y>=this._ymax)this._lineTo(t.x,t.y,!1);else{const s=[];if((e.xthis._xmin||e.x>this._xmin&&t.x=this._ymax?y=!0:s.push(new a(c,this._xmin,_))),(e.xthis._xmax||e.x>this._xmax&&t.x=this._ymax?y=!0:s.push(new a(c,this._xmax,_))),(e.ythis._ymin||e.y>this._ymin&&t.y=this._xmax?u=!0:s.push(new a(c,d,this._ymin))),(e.ythis._ymax||e.y>this._ymax&&t.y=this._xmax?u=!0:s.push(new a(c,d,this._ymax))),0===s.length)u?y?this._lineTo(this._xmax,this._ymax,!0):this._lineTo(this._xmax,this._ymin,!0):y?this._lineTo(this._xmin,this._ymax,!0):this._lineTo(this._xmin,this._ymin,!0);else if(s.length>1&&s[0].ratio>s[1].ratio)this._start=this._dist+r*s[1].ratio,this._lineTo(s[1].x,s[1].y,!0),this._lineTo(s[0].x,s[0].y,!0);else{this._start=this._dist+r*s[0].ratio;for(let e=0;e2){const e=this._firstPt,t=this._prevPt;e.x===t.x&&e.y===t.y||this.lineTo(e.x,e.y);const s=this._line;let i=s.length;for(;i>=4&&(s[0].x===s[1].x&&s[0].x===s[i-2].x||s[0].y===s[1].y&&s[0].y===s[i-2].y);)s.pop(),s[0].x=s[i-2].x,s[0].y=s[i-2].y,--i}}result(e=!0){return this._pushLine(),0===this._lines.length?null:(this._type===i.Polygon&&e&&h.simplify(this._tileSize,this._margin*this._finalRatio,this._lines),this._lines)}resultWithStarts(){if(this._type!==i.LineString)throw new Error("Only valid for lines");this._pushLine();const e=this._lines,t=e.length;if(0===t)return null;const s=[];for(let i=0;i=this._xmin&&e<=this._xmax&&t>=this._ymin&&t<=this._ymax}_intersect(e,t){let s,i,r;if(t.x>=this._xmin&&t.x<=this._xmax)i=t.y<=this._ymin?this._ymin:this._ymax,r=(i-e.y)/(t.y-e.y),s=e.x+r*(t.x-e.x);else if(t.y>=this._ymin&&t.y<=this._ymax)s=t.x<=this._xmin?this._xmin:this._xmax,r=(s-e.x)/(t.x-e.x),i=e.y+r*(t.y-e.y);else{i=t.y<=this._ymin?this._ymin:this._ymax,s=t.x<=this._xmin?this._xmin:this._xmax;const n=(s-e.x)/(t.x-e.x),a=(i-e.y)/(t.y-e.y);n0&&(this._lines.push(this._line),this._starts.push(this._start)):this._type===i.LineString?this._line.length>1&&(this._lines.push(this._line),this._starts.push(this._start)):this._type===i.Polygon&&this._line.length>3&&(this._lines.push(this._line),this._starts.push(this._start))),this._line=[],this._start=0}_moveTo(e,t,s){this._type!==i.Polygon?s&&(e=Math.round((e-(this._xmin+this._margin))*this._finalRatio),t=Math.round((t-(this._ymin+this._margin))*this._finalRatio),this._line.push(new n(e,t))):(s||(ethis._xmax&&(e=this._xmax),tthis._ymax&&(t=this._ymax)),e=Math.round((e-(this._xmin+this._margin))*this._finalRatio),t=Math.round((t-(this._ymin+this._margin))*this._finalRatio),this._line.push(new n(e,t)),this._isH=!1,this._isV=!1)}_lineTo(e,t,s){let r,a;if(this._type!==i.Polygon)if(s){if(e=Math.round((e-(this._xmin+this._margin))*this._finalRatio),t=Math.round((t-(this._ymin+this._margin))*this._finalRatio),this._line.length>0&&(r=this._line[this._line.length-1],r.equals(e,t)))return;this._line.push(new n(e,t))}else this._line&&this._line.length>0&&this._pushLine();else if(s||(ethis._xmax&&(e=this._xmax),tthis._ymax&&(t=this._ymax)),e=Math.round((e-(this._xmin+this._margin))*this._finalRatio),t=Math.round((t-(this._ymin+this._margin))*this._finalRatio),this._line&&this._line.length>0){r=this._line[this._line.length-1];const s=r.x===e,i=r.y===t;if(s&&i)return;this._isH&&s||this._isV&&i?(r.x=e,r.y=t,a=this._line[this._line.length-2],a.x===e&&a.y===t?(this._line.pop(),this._line.length<=1?(this._isH=!1,this._isV=!1):(a=this._line[this._line.length-2],this._isH=a.x===e,this._isV=a.y===t)):(this._isH=a.x===e,this._isV=a.y===t)):(this._line.push(new n(e,t)),this._isH=s,this._isV=i)}else this._line.push(new n(e,t))}}class l{setExtent(e){this._ratio=4096===e?1:4096/e}get validateTessellation(){return this._ratio<1}reset(e){this._lines=[],this._line=null}moveTo(e,t){this._line&&this._lines.push(this._line),this._line=[];const s=this._ratio;this._line.push(new n(e*s,t*s))}lineTo(e,t){const s=this._ratio;this._line.push(new n(e*s,t*s))}close(){const e=this._line;e&&!e[0].isEqual(e[e.length-1])&&e.push(e[0])}result(){return this._line&&this._lines.push(this._line),0===this._lines.length?null:this._lines}}!function(e){e[e.sideLeft=0]="sideLeft",e[e.sideRight=1]="sideRight",e[e.sideTop=2]="sideTop",e[e.sideBottom=3]="sideBottom"}(r||(r={}));class h{static simplify(e,t,s){if(!s)return;const i=-t,n=e+t,a=-t,o=e+t,l=[],c=[],u=s.length;for(let e=0;eh.y?(l.push(e),l.push(s),l.push(r.sideLeft),l.push(-1)):(c.push(e),c.push(s),c.push(r.sideLeft),c.push(-1))),u.x>=n&&(u.y=o&&(u.x>h.x?(l.push(e),l.push(s),l.push(r.sideBottom),l.push(-1)):(c.push(e),c.push(s),c.push(r.sideBottom),c.push(-1)))),u=h}if(0===l.length||0===c.length)return;h.fillParent(s,c,l),h.fillParent(s,l,c);const y=[];h.calcDeltas(y,c,l),h.calcDeltas(y,l,c),h.addDeltas(y,s)}static fillParent(e,t,s){const i=s.length,n=t.length;for(let a=0;a1&&i[n-2]===r?0:(i.push(r),h.calcDelta(r,s,t,i)+1)}static addDeltas(e,t){const s=e.length;let i=0;for(let t=0;ti&&(i=s)}for(let n=0;ne>=t&&e<=s||e>=s&&e<=t},13952:function(e,t,s){s.d(t,{L:function(){return r},v:function(){return i}});const i=15.5,r=1024},7937:function(e,t,s){s.d(t,{Y:function(){return o},m:function(){return l}});var i=s(73534),r=s(19431),n=s(13952);const a=e=>"vertical"===e||"horizontal"===e||"cross"===e||"esriSFSCross"===e||"esriSFSVertical"===e||"esriSFSHorizontal"===e;function o(e,t,s){const i=t.style,n=(0,r.fp)(Math.ceil(s)),o=a(i)?8*n:16*n,l=2*n;e.width=o,e.height=o;const h=e.getContext("2d");h.strokeStyle="#FFFFFF",h.lineWidth=n,h.beginPath(),"vertical"!==i&&"cross"!==i&&"esriSFSCross"!==i&&"esriSFSVertical"!==i||(h.moveTo(o/2,-l),h.lineTo(o/2,o+l)),"horizontal"!==i&&"cross"!==i&&"esriSFSCross"!==i&&"esriSFSHorizontal"!==i||(h.moveTo(-l,o/2),h.lineTo(o+l,o/2)),"backward-diagonal"!==i&&"diagonal-cross"!==i&&"esriSFSDiagonalCross"!==i&&"esriSFSBackwardDiagonal"!==i||(h.moveTo(-l,-l),h.lineTo(o+l,o+l),h.moveTo(o-l,-l),h.lineTo(o+l,l),h.moveTo(-l,o-l),h.lineTo(l,o+l)),"forward-diagonal"!==i&&"diagonal-cross"!==i&&"esriSFSForwardDiagonal"!==i&&"esriSFSDiagonalCross"!==i||(h.moveTo(o+l,-l),h.lineTo(-l,o+l),h.moveTo(l,-l),h.lineTo(-l,l),h.moveTo(o+l,o-l),h.lineTo(o-l,o+l)),h.stroke();const c=h.getImageData(0,0,e.width,e.height),u=new Uint8Array(c.data);let y;for(let e=0;e>3}switch(l--,o){case i.moveTo:h+=t.getSInt32(),c+=t.getSInt32(),e?e.moveTo(h,c):s&&(r&&s.push(r),r=[],r.push(new n.E9(h,c)));break;case i.lineTo:h+=t.getSInt32(),c+=t.getSInt32(),e?e.lineTo(h,c):r&&r.push(new n.E9(h,c));break;case i.close:e?e.close():r&&!r[0].equals(h,c)&&r.push(r[0].clone());break;default:throw t.release(),new Error("Invalid path operation")}}return e?a=e.result():s&&(r&&s.push(r),a=s),t.release(),this._geometry=a,a}}},93944:function(e,t,s){s.d(t,{DQ:function(){return y},FM:function(){return n},KU:function(){return b},Of:function(){return w},Or:function(){return d},Px:function(){return v},RD:function(){return a},Wg:function(){return I},Z0:function(){return S},k3:function(){return p},nF:function(){return c},pK:function(){return T},s5:function(){return _},sX:function(){return f},yF:function(){return o}});var i=s(38028),r=s(82584);const n=Number.POSITIVE_INFINITY,a=Math.PI,o=2*a,l=128/a,h=256/360,c=a/180,u=1/Math.LN2;function y(e,t){return(e%=t)>=0?e:e+t}function d(e){return y(e*l,256)}function _(e){return y(e*h,256)}function p(e){return Math.log(e)*u}function f(e,t,s){return e*(1-s)+t*s}const g=8,m=14,x=16;function b(e){return g+Math.max((e-m)*x,0)}function w(e,t,s){let i,r,n,a=0;for(const o of s){i=o.length;for(let s=1;st!=n.y>t&&((n.x-r.x)*(t-r.y)-(n.y-r.y)*(e-r.x)>0?a++:a--)}return 0!==a}function S(e,t,s,r){let n,a,o,l;const h=r*r;for(const r of s){const s=r.length;if(!(s<2)){n=r[0].x,a=r[0].y;for(let c=1;ce.key.level-t.key.level!=0?e.key.level-t.key.level:e.key.row-t.key.row!=0?e.key.row-t.key.row:e.key.col-t.key.col;class h extends n.Z{constructor(e){super(),this._tileInfoView=e}renderChildren(e){this.sortChildren(l),this.setStencilReference(e),super.renderChildren(e)}createRenderParams(e){const{state:t}=e,s=super.createRenderParams(e);return s.requiredLevel=this._tileInfoView.getClosestInfoForScale(t.scale).level,s.displayLevel=this._tileInfoView.tileInfo.scaleToZoom(t.scale),s}prepareRenderPasses(e){const t=super.prepareRenderPasses(e);return t.push(e.registerRenderPass({name:"stencil",brushes:[a.Z],drawPhase:r.jx.DEBUG|r.jx.MAP|r.jx.HIGHLIGHT|r.jx.LABEL,target:()=>this.getStencilTarget()})),(0,i.Z)("esri-tiles-debug")&&t.push(e.registerRenderPass({name:"tileInfo",brushes:[o.Z],drawPhase:r.jx.DEBUG,target:()=>this.children})),t}getStencilTarget(){return this.children}setStencilReference(e){let t=1;for(const e of this.children)e.stencilRef=t++}}},66878:function(e,t,s){s.d(t,{y:function(){return x}});var i=s(36663),r=s(6865),n=s(58811),a=s(70375),o=s(76868),l=s(81977),h=(s(39994),s(13802),s(4157),s(40266)),c=s(68577),u=s(10530),y=s(98114),d=s(55755),_=s(88723),p=s(96294);let f=class extends p.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,i._)([(0,l.Cb)({type:[[[Number]]],json:{write:!0}})],f.prototype,"path",void 0),f=(0,i._)([(0,h.j)("esri.views.layers.support.Path")],f);const g=f,m=r.Z.ofType({key:"type",base:null,typeMap:{rect:d.Z,path:g,geometry:_.Z}}),x=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new m,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new a.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new u.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,o.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),o.tX),(0,o.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),o.tX),(0,o.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),o.tX),(0,o.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),o.tX),(0,o.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),o.tX),(0,o.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),o.tX),(0,o.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),o.tX),(0,o.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),o.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:s,maxScale:i}=t;return(0,c.o2)(e,s,i)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,s=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),s&&(e.outsideScaleRange=s),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,i._)([(0,l.Cb)()],t.prototype,"attached",void 0),(0,i._)([(0,l.Cb)({type:m,set(e){const t=(0,n.Z)(e,this._get("clips"),m);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,i._)([(0,l.Cb)()],t.prototype,"container",void 0),(0,i._)([(0,l.Cb)()],t.prototype,"moving",void 0),(0,i._)([(0,l.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,i._)([(0,l.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,i._)([(0,l.Cb)()],t.prototype,"updateRequested",void 0),(0,i._)([(0,l.Cb)()],t.prototype,"updateSuspended",null),(0,i._)([(0,l.Cb)()],t.prototype,"updating",null),(0,i._)([(0,l.Cb)()],t.prototype,"view",void 0),(0,i._)([(0,l.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,i._)([(0,l.Cb)({type:y.Z})],t.prototype,"highlightOptions",void 0),t=(0,i._)([(0,h.j)("esri.views.2d.layers.LayerView2D")],t),t}},31840:function(e,t,s){s.r(t),s.d(t,{default:function(){return Ve}});var i=s(36663),r=s(67134),n=s(13802),a=s(61681),o=s(78668),l=s(81977),h=(s(39994),s(40266)),c=s(27281),u=s(67666),y=s(24568),d=s(35925),_=s(43405),p=s(3466),f=s(62517),g=s(4655);class m{constructor(e,t){this._width=0,this._height=0,this._free=[],this._width=e,this._height=t,this._free.push(new g.Z(0,0,e,t))}get width(){return this._width}get height(){return this._height}allocate(e,t){if(e>this._width||t>this._height)return new g.Z;let s=null,i=-1;for(let r=0;re&&this._free.push(new g.Z(s.x+e,s.y,s.width-e,t)),s.height>t&&this._free.push(new g.Z(s.x,s.y+t,s.width,s.height-t))):(s.width>e&&this._free.push(new g.Z(s.x+e,s.y,s.width-e,s.height)),s.height>t&&this._free.push(new g.Z(s.x,s.y+t,e,s.height-t))),new g.Z(s.x,s.y,e,t))}release(e){for(let t=0;t{const s=e+t;if(this._rangePromises.has(s))n.push(this._rangePromises.get(s));else{const r=i.getRange(e,t).then((()=>{this._rangePromises.delete(s)}),(()=>{this._rangePromises.delete(s)}));this._rangePromises.set(s,r),n.push(r)}})),Promise.all(n).then((()=>{let r=this._glyphIndex[e];r||(r={},this._glyphIndex[e]=r);for(const n of t){const t=r[n];if(t){s[n]={sdf:!0,rect:t.rect,metrics:t.metrics,page:t.page,code:n};continue}const a=i.getGlyph(e,n);if(!a?.metrics)continue;const o=a.metrics;let l;if(0===o.width)l=new g.Z(0,0,0,0);else{const e=3,t=o.width+2*e,s=o.height+2*e;let i=t%4?4-t%4:4,r=s%4?4-s%4:4;1===i&&(i=5),1===r&&(r=5),l=this._binPack.allocate(t+i,s+r),l.isEmpty&&(this._dirties[this._currentPage]||(this._glyphData[this._currentPage]=null),this._currentPage=this._glyphData.length,this._glyphData.push(new Uint8Array(this.width*this.height)),this._dirties.push(!0),this._textures.push(void 0),this._binPack=new m(this.width-4,this.height-4),l=this._binPack.allocate(t+i,s+r));const n=this._glyphData[this._currentPage],h=a.bitmap;let c,u;if(h)for(let e=0;e{s.addRange(t,new I(new T.Z(new Uint8Array(e.data),new DataView(e.data))))})).catch((()=>{s.addRange(t,new I)}))}return s.addRange(t,new I),Promise.resolve()}getGlyph(e,t){const s=this._getFontStack(e);if(!s)return;const i=Math.floor(t/256),r=s.getRange(i);return r?{metrics:r.getMetrics(t),bitmap:r.getBitmap(t)}:void 0}_getFontStack(e){let t=this._glyphInfo[e];return t||(t=this._glyphInfo[e]=new R),t}}class D{constructor(e,t,s){this._array=e,this._start=t,this.length=s}at(e){return 0<=e&&e0&&(this._maxItemSize=s),this._binPack=new m(e-4,t-4)}destroy(){this.dispose()}dispose(){this._binPack=null,this._mosaicsData.length=0,this._mosaicRects={};for(const e of this._textures)e&&e.dispose();this._textures.length=0}getWidth(e){return e>=this._size.length?-1:this._size[e][0]}getHeight(e){return e>=this._size.length?-1:this._size[e][1]}getPageSize(e){return e>=this._size.length?null:this._size[e]}setSpriteSource(e){if(this.dispose(),this.pixelRatio=e.devicePixelRatio,0===this._mosaicsData.length){this._binPack=new m(this._pageWidth-4,this._pageHeight-4);const e=Math.floor(this._pageWidth),t=Math.floor(this._pageHeight),s=new Uint32Array(e*t);this._mosaicsData[0]=s,this._dirties.push(!0),this._size.push([this._pageWidth,this._pageHeight]),this._textures.push(void 0)}this._sprites=e}getSpriteItem(e,t=!1){let s,i,r=this._mosaicRects[e];if(r)return r;if(!this._sprites||"loaded"!==this._sprites.loadStatus)return null;if(e&&e.startsWith("dasharray-")?([s,i]=this._rasterizeDash(e),t=!0):s=this._sprites.getSpriteInfo(e),!s?.width||!s.height||s.width<0||s.height<0)return null;const n=s.width,a=s.height,[o,l,h]=this._allocateImage(n,a);return o.width<=0?null:(this._copy(o,s,l,h,t,i),r={type:"sprite",rect:o,width:n,height:a,sdf:s.sdf,simplePattern:!1,rasterizationScale:s.pixelRatio,page:l},this._mosaicRects[e]=r,r)}getSpriteItems(e){const t={};for(const s of e)t[s.name]=this.getSpriteItem(s.name,s.repeat);return t}getMosaicItemPosition(e,t){const s=this.getSpriteItem(e,t),i=s&&s.rect;if(!i)return null;i.width=s.width,i.height=s.height;const r=s.width,n=s.height;return{tl:[i.x+2,i.y+2],br:[i.x+2+r,i.y+2+n],page:s.page}}bind(e,t,s=0,i=0){if(s>=this._size.length||s>=this._mosaicsData.length)return;if(!this._textures[s]){const t=new w.X;t.wrapMode=x.e8.CLAMP_TO_EDGE,t.width=this._size[s][0],t.height=this._size[s][1],this._textures[s]=new b.x(e,t,new Uint8Array(this._mosaicsData[s].buffer))}const r=this._textures[s];r.setSamplingMode(t),this._dirties[s]&&r.setData(new Uint8Array(this._mosaicsData[s].buffer)),e.bindTexture(r,i),this._dirties[s]=!1}static _copyBits(e,t,s,i,r,n,a,o,l,h,c){let u=i*t+s,y=o*n+a;if(c){y-=n;for(let a=-1;a<=h;a++,u=((a+h)%h+i)*t+s,y+=n)for(let t=-1;t<=l;t++)r[y+t]=e[u+(t+l)%l]}else for(let s=0;s=this._mosaicsData.length)return;const a=new Uint32Array(n?n.buffer:this._sprites.image.buffer),o=this._mosaicsData[s],l=n?t.width:this._sprites.width;P._copyBits(a,l,t.x,t.y,o,i[0],e.x+2,e.y+2,t.width,t.height,r),this._dirties[s]=!0}_allocateImage(e,t){e+=2,t+=2;const s=Math.max(e,t);if(this._maxItemSize&&this._maxItemSizethis._spriteMosaic))}get glyphMosaic(){return this._glyphMosaic}async start(e){this._requestSprite(e);const t=this._layer.currentStyleInfo.glyphsUrl,s=new C(t?(0,p.fl)(t,{...this._layer.customParameters,token:this._layer.apiKey}):null);this._glyphMosaic=new S(1024,1024,s),this._broadcastPromise=(0,f.bA)("WorkerTileHandler",{client:this,schedule:e.schedule,signal:e.signal}).then((t=>{if(this._layer&&(this._connection?.close(),this._connection=t,this._layer&&!this._connection.closed)){const s=t.broadcast("setStyle",{style:this._layer.currentStyleInfo.style,sourceDataMaxLOD:this._sourceDataMaxLOD},e);Promise.all(s).catch((e=>(0,o.H9)(e)))}}))}_requestSprite(e){this._spriteSourceAbortController?.abort();const t=new AbortController;this._spriteSourceAbortController=t;const s=e?.signal;this._inputSignalEventListener&&this._startOptionsInputSignal?.removeEventListener("abort",this._inputSignalEventListener),this._startOptionsInputSignal=null,s&&(this._inputSignalEventListener=function(e){return()=>e.abort()}(t),s.addEventListener("abort",this._inputSignalEventListener,{once:!0}));const{signal:i}=t,r={...e,signal:i};this._spriteSourcePromise=this._layer.loadSpriteSource(this.devicePixelRatio,r),this._spriteSourcePromise.then((e=>{(0,o.r9)(i),this._spriteMosaic=new P(1024,1024,250),this._spriteMosaic.setSpriteSource(e)}))}async updateStyle(e){return await this._broadcastPromise,this._broadcastPromise=Promise.all(this._connection.broadcast("updateStyle",e)),this._broadcastPromise}setSpriteSource(e){const t=new P(1024,1024,250);return t.setSpriteSource(e),this._spriteMosaic=t,this._spriteSourcePromise=Promise.resolve(e),this._spriteSourceAbortController=null,t}async setStyle(e,t,s){await this._broadcastPromise,this._styleRepository=e,this._sourceDataMaxLOD=s,this._requestSprite();const i=new C(this._layer.currentStyleInfo.glyphsUrl?(0,p.fl)(this._layer.currentStyleInfo.glyphsUrl,{...this._layer.customParameters,token:this._layer.apiKey}):null);return this._glyphMosaic=new S(1024,1024,i),this._broadcastPromise=Promise.all(this._connection.broadcast("setStyle",{style:t,sourceDataMaxLOD:this._sourceDataMaxLOD})),this._broadcastPromise}async fetchTileData(e,t){const s=await this._getRefKeys(e,t);return this._getSourcesData(Object.keys(this._layer.sourceNameToSource),s,t)}async fetchTilePBFs(e){const t=Object.keys(this._layer.sourceNameToSource),s={},i=await this._getRefKeys(e,s),r=[],n=[];for(let e=0;e{r.push({...e,key:a})})),n.push(o)}return Promise.all(n).then((()=>r))}async parseTileData(e,t){const s=e&&e.data;if(!s)return null;const{sourceName2DataAndRefKey:i,transferList:r}=s;return 0===Object.keys(i).length?null:this._broadcastPromise.then((()=>this._connection.invoke("createTileAndParse",{key:e.key.id,sourceName2DataAndRefKey:i,styleLayerUIDs:e.styleLayerUIDs},{...t,transferList:r})))}async getSprites(e){return await this._spriteSourcePromise,this._spriteMosaic.getSpriteItems(e)}getGlyphs(e){return this._glyphMosaic.getGlyphItems(e.font,e.codePoints)}async _getTilePayload(e,t,s){const i=L.Z.pool.acquire(e.id),r=this._layer.sourceNameToSource[t],{level:n,row:a,col:l}=i;L.Z.pool.release(i);try{return{protobuff:await r.requestTile(n,a,l,s),sourceName:t}}catch(e){if((0,o.D_)(e))throw e;return{protobuff:null,sourceName:t}}}async _getRefKeys(e,t){const s=this._layer.sourceNameToSource,i=new Array;for(const r in s){const n=s[r].getRefKey(e,t);i.push(n)}return(0,o.as)(i)}_getSourcesData(e,t,s){const i=[];for(let r=0;r{const s={},i=[];for(let r=0;r0){const e=t[r].value.id;s[n.sourceName]={refKey:e,protobuff:n.protobuff},i.push(n.protobuff)}}return{sourceName2DataAndRefKey:s,transferList:i}}))}}var k=s(55854),U=s(88782);const O=(e,t)=>e+1/(1<<2*t);class F{constructor(e,t){this._tiles=new Map,this._tileCache=new k.z(40,(e=>e.dispose())),this._viewSize=[0,0],this._visibleTiles=new Map,this.acquireTile=e.acquireTile,this.releaseTile=e.releaseTile,this.tileInfoView=e.tileInfoView,this._container=t}destroy(){for(const[e,t]of this._tiles)t.dispose();this._tiles=null,this._tileCache.clear(),this._tileCache=null}update(e){this._updateCacheSize(e);const t=this.tileInfoView,s=t.getTileCoverage(e.state,0,!0,"smallest");if(!s)return!0;const{spans:i,lodInfo:r}=s,{level:n}=r,a=this._tiles,o=new Set,l=new Set;for(const{row:e,colFrom:t,colTo:s}of i)for(let i=t;i<=s;i++){const t=L.Z.getId(n,e,r.normalizeCol(i),r.getWorldForColumn(i)),s=this._getOrAcquireTile(t);o.add(t),s.processed()?this._addToContainer(s):l.add(new L.Z(t))}for(const[e,t]of a)t.isCoverage=o.has(e);for(const e of l)this._findPlaceholdersForMissingTiles(e,o);let h=!1;for(const[e,i]of a)i.neededForCoverage=o.has(e),i.neededForCoverage||i.isHoldingForFade&&t.intersects(s,i.key)&&o.add(e),i.isFading&&(h=!0);for(const[e,t]of this._tiles)o.has(e)||this._releaseTile(e);return U.Z.pool.release(s),!h}clear(){this._tiles.clear(),this._tileCache.clear(),this._visibleTiles.clear()}clearCache(){this._tileCache.clear()}getIntersectingTiles(e,t,s,i,r){const n=[0,0],a=[0,0];i.toMap(n,e-s,t+s),i.toMap(a,e+s,t-s);const o=Math.min(n[0],a[0]),l=Math.min(n[1],a[1]),h=Math.max(n[0],a[0]),c=Math.max(n[1],a[1]),u=(0,y.al)(o,l,h,c),d=(0,y.Ue)(),_=[];for(const[e,t]of this._visibleTiles)this.tileInfoView.getTileBounds(d,t.key),(0,y.kK)(u,d)&&_.push(t);if(null!=r&&r.length>0){const e=new Set(_.map((e=>e.id))),t=r.filter((t=>!e.has(t.tileKey.id))).map((e=>this._visibleTiles.get(e.tileKey.id))).filter((e=>void 0!==e));_.push(...t)}return _}_findPlaceholdersForMissingTiles(e,t){const s=[];for(const[i,r]of this._tiles)this._addPlaceholderChild(s,r,e,t);const i=s.reduce(O,0);Math.abs(1-i)<1e-6||this._addPlaceholderParent(e.id,t)}_addPlaceholderChild(e,t,s,i){t.key.level<=s.level||!t.hasData()||function(e,t){const s=t.level-e.level;return e.row===t.row>>s&&e.col===t.col>>s&&e.world===t.world}(s,t.key)&&(this._addToContainer(t),i.add(t.id),e.push(t.key.level-s.level))}_addPlaceholderParent(e,t){const s=this._tiles;let i=e;for(;;){if(i=E(i),!i||t.has(i))return;const e=s.get(i);if(e&&e.hasData())return this._addToContainer(e),void t.add(e.id)}}_getOrAcquireTile(e){let t=this._tiles.get(e);return t||(t=this._tileCache.pop(e),t||(t=this.acquireTile(new L.Z(e))),this._tiles.set(e,t),t)}_releaseTile(e){const t=this._tiles.get(e);this.releaseTile(t),this._removeFromContainer(t),this._tiles.delete(e),t.hasData()?this._tileCache.put(e,t,1):t.dispose()}_addToContainer(e){let t;const s=[],i=this._container;if(i.contains(e))return;const r=this._visibleTiles;for(const[i,n]of r)this._canConnectDirectly(e,n)&&s.push(n),null==t&&this._canConnectDirectly(n,e)&&(t=n);if(null!=t){for(const i of s)t.childrenTiles.delete(i),e.childrenTiles.add(i),i.parentTile=e;t.childrenTiles.add(e),e.parentTile=t}else for(const t of s)e.childrenTiles.add(t),t.parentTile=e;r.set(e.id,e),i.addChild(e)}_removeFromContainer(e){if(this._visibleTiles.delete(e.id),this._container.removeChild(e),null!=e.parentTile){e.parentTile.childrenTiles.delete(e);for(const t of e.childrenTiles)null!=e.parentTile&&e.parentTile.childrenTiles.add(t)}for(const t of e.childrenTiles)t.parentTile=e.parentTile;e.parentTile=null,e.childrenTiles.clear()}_canConnectDirectly(e,t){const s=e.key;let{level:i,row:r,col:n,world:a}=t.key;const o=this._visibleTiles;for(;i>0;){if(i--,r>>=1,n>>=1,s.level===i&&s.row===r&&s.col===n&&s.world===a)return!0;if(o.has(`${i}/${r}/${n}/${a}`))return!1}return!1}_updateCacheSize(e){const t=e.state.size;if(t[0]===this._viewSize[0]&&t[1]===this._viewSize[1])return;const s=Math.ceil(t[0]/512)+1,i=Math.ceil(t[1]/512)+1;this._viewSize[0]=t[0],this._viewSize[1]=t[1],this._tileCache.maxSize=5*s*i}}function E(e){const[t,s,i,r]=e.split("/"),n=parseInt(t,10);return 0===n?null:`${n-1}/${parseInt(s,10)>>1}/${parseInt(i,10)>>1}/${parseInt(r,10)}`}var V=s(46332),z=s(38642),q=s(86098),H=s(64970),B=s(17224),Z=(s(23656),s(93944));class N{constructor(e,t){this.sourceTile=t,this.xTile=0,this.yTile=0,this.hash=0,this.priority=1,this.featureIndex=0,this.colliders=[],this.textVertexRanges=[],this.iconVertexRanges=[],this.tile=e}}class W{constructor(){this.tileSymbols=[],this.parts=[{startTime:0,startOpacity:0,targetOpacity:0,show:!1},{startTime:0,startOpacity:0,targetOpacity:0,show:!1}],this.show=!1}}function Q(e,t,s,i,r,n){const a=s-r;if(a>=0)return(t>>a)+(i-(n<>a);const o=-a;return t-(n-(i<>o)<0){this.patternMap=new Map;for(let e=0;e0}triangleCount(){return this.lineIndexCount/3}doDestroy(){this.vao=(0,a.M2)(this.vao)}doPrepareForRendering(e,t,s){const i=new Uint32Array(t),r=new Int32Array(i.buffer),n=i[s++],a=Y.f.createVertex(e,x.l1.STATIC_DRAW,new Int32Array(r.buffer,4*s,n));s+=n;const o=i[s++],l=Y.f.createIndex(e,x.l1.STATIC_DRAW,new Uint32Array(i.buffer,4*s,o));s+=o;const h=this.layer.lineMaterial;this.vao=new j.U(e,h.getAttributeLocations(),h.getLayoutInfo(),{geometry:a},l)}}class ee extends X{constructor(e,t){super(e,t),this.type=_.al.FILL,this.fillIndexStart=0,this.fillIndexCount=0,this.outlineIndexStart=0,this.outlineIndexCount=0;const s=new Uint32Array(e);let i=this.bufferDataOffset;this.fillIndexStart=s[i++],this.fillIndexCount=s[i++],this.outlineIndexStart=s[i++],this.outlineIndexCount=s[i++];const r=s[i++];if(r>0){this.patternMap=new Map;for(let e=0;e0||this.outlineIndexCount>0}triangleCount(){return(this.fillIndexCount+this.outlineIndexCount)/3}doDestroy(){this.fillVAO=(0,a.M2)(this.fillVAO),this.outlineVAO=(0,a.M2)(this.outlineVAO)}doPrepareForRendering(e,t,s){const i=new Uint32Array(t),r=new Int32Array(i.buffer),n=i[s++],a=Y.f.createVertex(e,x.l1.STATIC_DRAW,new Int32Array(r.buffer,4*s,n));s+=n;const o=i[s++],l=Y.f.createIndex(e,x.l1.STATIC_DRAW,new Uint32Array(i.buffer,4*s,o));s+=o;const h=i[s++],c=Y.f.createVertex(e,x.l1.STATIC_DRAW,new Int32Array(r.buffer,4*s,h));s+=h;const u=i[s++],y=Y.f.createIndex(e,x.l1.STATIC_DRAW,new Uint32Array(i.buffer,4*s,u));s+=u;const d=this.layer,_=d.fillMaterial,p=d.outlineMaterial;this.fillVAO=new j.U(e,_.getAttributeLocations(),_.getLayoutInfo(),{geometry:a},l),this.outlineVAO=new j.U(e,p.getAttributeLocations(),p.getLayoutInfo(),{geometry:c},y)}}class te extends X{constructor(e,t,s){super(e,t),this.type=_.al.SYMBOL,this.iconPerPageElementsMap=new Map,this.glyphPerPageElementsMap=new Map,this.symbolInstances=[],this.isIconSDF=!1,this.opacityChanged=!1,this.lastOpacityUpdate=0,this.symbols=[];const i=new Uint32Array(e),r=new Int32Array(e),n=new Float32Array(e);let a=this.bufferDataOffset;this.isIconSDF=!!i[a++];const o=i[a++],l=i[a++],h=i[a++],c=new L.Z(o,l,h,0),u=i[a++];for(let e=0;e0||this.glyphPerPageElementsMap.size>0}triangleCount(){let e=0;for(const[t,s]of this.iconPerPageElementsMap)e+=s[1];for(const[t,s]of this.glyphPerPageElementsMap)e+=s[1];return e/3}doDestroy(){this.iconVAO=(0,a.M2)(this.iconVAO),this.textVAO=(0,a.M2)(this.textVAO)}updateOpacityInfo(){if(!this.opacityChanged)return;this.opacityChanged=!1;const e=this.iconOpacity,t=this.iconVAO.vertexBuffers.opacity;e.length>0&&e.byteLength===t.usedMemory&&t.setSubData(e,0,0,e.length);const s=this.textOpacity,i=this.textVAO.vertexBuffers.opacity;s.length>0&&s.byteLength===i.usedMemory&&i.setSubData(s,0,0,s.length)}doPrepareForRendering(e,t,s){const i=new Uint32Array(t),r=new Int32Array(i.buffer),n=i[s++],a=Y.f.createVertex(e,x.l1.STATIC_DRAW,new Int32Array(r.buffer,4*s,n));s+=n;const o=i[s++],l=Y.f.createIndex(e,x.l1.STATIC_DRAW,new Uint32Array(i.buffer,4*s,o));s+=o;const h=i[s++],c=Y.f.createVertex(e,x.l1.STATIC_DRAW,new Int32Array(r.buffer,4*s,h));s+=h;const u=i[s++],y=Y.f.createIndex(e,x.l1.STATIC_DRAW,new Uint32Array(i.buffer,4*s,u));s+=u;const d=Y.f.createVertex(e,x.l1.STATIC_DRAW,this.iconOpacity.buffer),_=Y.f.createVertex(e,x.l1.STATIC_DRAW,this.textOpacity.buffer),p=this.layer,f=p.iconMaterial,g=p.textMaterial;this.iconVAO=new j.U(e,f.getAttributeLocations(),f.getLayoutInfo(),{geometry:a,opacity:d},l),this.textVAO=new j.U(e,g.getAttributeLocations(),g.getLayoutInfo(),{geometry:c,opacity:_},y)}}class se extends X{constructor(e,t){super(e,t),this.type=_.al.CIRCLE,this.circleIndexStart=0,this.circleIndexCount=0;const s=new Uint32Array(e);let i=this.bufferDataOffset;this.circleIndexStart=s[i++],this.circleIndexCount=s[i++],this.bufferDataOffset=i}get memoryUsed(){return(this.data?.byteLength??0)+(this.vao?.usedMemory??0)}hasData(){return this.circleIndexCount>0}triangleCount(){return this.circleIndexCount/3}doDestroy(){this.vao=(0,a.M2)(this.vao)}doPrepareForRendering(e,t,s){const i=new Uint32Array(t),r=new Int32Array(i.buffer),n=i[s++],a=Y.f.createVertex(e,x.l1.STATIC_DRAW,new Int32Array(r.buffer,4*s,n));s+=n;const o=i[s++],l=Y.f.createIndex(e,x.l1.STATIC_DRAW,new Uint32Array(i.buffer,4*s,o));s+=o;const h=this.layer.circleMaterial;this.vao=new j.U(e,h.getAttributeLocations(),h.getLayoutInfo(),{geometry:a},l)}}var ie=s(2509),re=s(27954);class ne extends re.I{constructor(e,t,s,i,r,n,a,o=null){super(e,t,s,i,r,n,4096,4096),this.styleRepository=a,this._memCache=o,this.type="vector-tile",this._referenced=0,this._hasSymbolBuckets=!1,this._memoryUsedByLayerData=0,this.layerData=new Map,this.status="loading",this.allSymbolsFadingOut=!1,this.lastOpacityUpdate=0,this.symbols=new Map,this.isCoverage=!1,this.neededForCoverage=!1,this.decluttered=!1,this.parentTile=null,this.childrenTiles=new Set,this.featureIndex=null,this.triangleCount=0,this._processed=!1,this._referenced=1,this.id=e.id}get hasSymbolBuckets(){return this._hasSymbolBuckets}get isFading(){return this._hasSymbolBuckets&&performance.now()-this.lastOpacityUpdate0}dispose(){"unloaded"!==this.status&&(this.featureIndex=null,ae.delete(this),ne._destroyRenderBuckets(this.layerData),this.layerData.clear(),this._memoryUsedByLayerData=0,this.destroy(),this.status="unloaded")}release(){return 0==--this._referenced&&(this.dispose(),this.stage=null,!0)}retain(){++this._referenced}get referenced(){return this._referenced}get usedMemory(){return this._memoryUsedByLayerData+256}changeDataImpl(e){this.featureIndex?.clear();let t=!1;if(e){const{bucketsWithData:s,emptyBuckets:i}=e,r=this._createRenderBuckets(s);if(i&&i.byteLength>0){const e=new Uint32Array(i);for(const t of e)this._deleteLayerData(t)}for(const[e,s]of r)this._deleteLayerData(e),s.type===_.al.SYMBOL&&(this.symbols.set(e,s.symbols),t=!0),this._memoryUsedByLayerData+=s.memoryUsed,this.layerData.set(e,s);this._memCache?.updateSize(this.key.id,this,this.usedMemory)}this._hasSymbolBuckets=!1;for(const[e,t]of this.layerData)t.type===_.al.SYMBOL&&(this._hasSymbolBuckets=!0);t&&this.emit("symbols-changed")}attachWithContext(e){this.stage={context:e,trashDisplayObject(e){e.processDetach()},untrashDisplayObject:()=>!1}}setTransform(e){super.setTransform(e);const t=this.resolution/(e.resolution*e.pixelRatio),s=this.width/this.rangeX*t,i=this.height/this.rangeY*t,r=[0,0];e.toScreen(r,[this.x,this.y]);const n=this.transforms.tileUnitsToPixels;(0,V.yR)(n),(0,V.Iu)(n,n,r),(0,V.U1)(n,n,Math.PI*e.rotation/180),(0,V.bA)(n,n,[s,i,1])}_createTransforms(){return{displayViewScreenMat3:(0,z.Ue)(),tileMat3:(0,z.Ue)(),tileUnitsToPixels:(0,z.Ue)()}}static _destroyRenderBuckets(e){if(!e)return;const t=new Set;for(const s of e.values())t.has(s)||(s.destroy(),t.add(s));e.clear()}_createRenderBuckets(e){const t=new Map,s=new Map;for(const i of e){const e=this._deserializeBucket(i,s);for(const s of e.layerUIDs)t.set(s,e)}return t}_deserializeBucket(e,t){let s=t.get(e);if(s)return s;switch(new Uint32Array(e)[0]){case _.al.FILL:s=new ee(e,this.styleRepository);break;case _.al.LINE:s=new $(e,this.styleRepository);break;case _.al.SYMBOL:s=new te(e,this.styleRepository,this);break;case _.al.CIRCLE:s=new se(e,this.styleRepository)}return t.set(e,s),s}_deleteLayerData(e){if(!this.layerData.has(e))return;const t=this.layerData.get(e);this._memoryUsedByLayerData-=t.memoryUsed,t.destroy(),this.layerData.delete(e)}}const ae=new Map;var oe=s(81590),le=s(18809),he=s(61296);function ce(e,t,s,i,r,n){const{iconRotationAlignment:a,textRotationAlignment:o,iconTranslate:l,iconTranslateAnchor:h,textTranslate:c,textTranslateAnchor:u}=i;let y=0;for(const i of e.colliders){const[e,d]=0===i.partIndex?l:c,_=0===i.partIndex?h:u,p=i.minLod<=n&&n<=i.maxLod;y+=p?0:1,i.enabled=p,i.xScreen=i.xTile*r[0]+i.yTile*r[3]+r[6],i.yScreen=i.xTile*r[1]+i.yTile*r[4]+r[7],_===he.fD.MAP?(i.xScreen+=s*e-t*d,i.yScreen+=t*e+s*d):(i.xScreen+=e,i.yScreen+=d),he.aF.VIEWPORT===(0===i.partIndex?a:o)?(i.dxScreen=i.dxPixels,i.dyScreen=i.dyPixels):(i.dxScreen=s*(i.dxPixels+i.width/2)-t*(i.dyPixels+i.height/2)-i.width/2,i.dyScreen=t*(i.dxPixels+i.width/2)+s*(i.dyPixels+i.height/2)-i.height/2)}e.colliders.length>0&&y===e.colliders.length&&(e.unique.show=!1)}class ue{constructor(e,t,s,i,r,n){this._symbols=e,this._styleRepository=i,this._zoom=r,this._currentLayerCursor=0,this._currentSymbolCursor=0,this._styleProps=new Map,this._allNeededMatrices=new Map,this._gridIndex=new G(t,s,ie.cn),this._si=Math.sin(Math.PI*n/180),this._co=Math.cos(Math.PI*n/180);for(const t of e)for(const e of t.symbols)this._allNeededMatrices.has(e.tile)||this._allNeededMatrices.set(e.tile,(0,z.d9)(e.tile.transforms.tileUnitsToPixels))}work(e){const t=this._gridIndex;function s(e){const s=e.xScreen+e.dxScreen,i=e.yScreen+e.dyScreen,r=s+e.width,n=i+e.height,[a,o,l,h]=t.getCellSpan(s,i,r,n);for(let e=o;e<=h;e++)for(let o=a;o<=l;o++){const a=t.cells[e][o];for(const e of a){const t=e.xScreen+e.dxScreen,a=e.yScreen+e.dyScreen,o=t+e.width,l=a+e.height;if(!(ro||nl))return!0}}return!1}const i=performance.now();for(;this._currentLayerCursore)return!1;const n=t.symbols[this._currentSymbolCursor];if(!n.unique.show)continue;ce(n,this._si,this._co,r,this._allNeededMatrices.get(n.tile),this._zoom);const a=n.unique;if(!a.show)continue;const{iconAllowOverlap:o,iconIgnorePlacement:l,textAllowOverlap:h,textIgnorePlacement:c}=r;for(const e of n.colliders){if(!e.enabled)continue;const t=a.parts[e.partIndex];t.show&&(!(e.partIndex?h:o)&&s(e)&&(e.hard?a.show=!1:t.show=!1))}if(a.show)for(const e of n.colliders){if(!e.enabled)continue;if(e.partIndex?c:l)continue;if(!a.parts[e.partIndex].show)continue;const t=e.xScreen+e.dxScreen,s=e.yScreen+e.dyScreen,i=t+e.width,r=s+e.height,[n,o,h,u]=this._gridIndex.getCellSpan(t,s,i,r);for(let t=o;t<=u;t++)for(let s=n;s<=h;s++)this._gridIndex.cells[t][s].push(e)}}}return!0}_getProperties(e){const t=this._styleProps.get(e);if(t)return t;const s=this._zoom,i=this._styleRepository.getStyleLayerByUID(e),r=i.getLayoutValue("symbol-placement",s)!==he.R.POINT;let n=i.getLayoutValue("icon-rotation-alignment",s);n===he.aF.AUTO&&(n=r?he.aF.MAP:he.aF.VIEWPORT);let a=i.getLayoutValue("text-rotation-alignment",s);a===he.aF.AUTO&&(a=r?he.aF.MAP:he.aF.VIEWPORT);const o=i.getPaintValue("icon-translate",s),l=i.getPaintValue("icon-translate-anchor",s),h=i.getPaintValue("text-translate",s),c=i.getPaintValue("text-translate-anchor",s),u={iconAllowOverlap:i.getLayoutValue("icon-allow-overlap",s),iconIgnorePlacement:i.getLayoutValue("icon-ignore-placement",s),textAllowOverlap:i.getLayoutValue("text-allow-overlap",s),textIgnorePlacement:i.getLayoutValue("text-ignore-placement",s),iconRotationAlignment:n,textRotationAlignment:a,iconTranslateAnchor:l,iconTranslate:o,textTranslateAnchor:c,textTranslate:h};return this._styleProps.set(e,u),u}}function ye(e,t){if(e.priority-t.priority)return e.priority-t.priority;const s=e.tile.key,i=t.tile.key;return s.world-i.world?s.world-i.world:s.level-i.level?s.level-i.level:s.row-i.row?s.row-i.row:s.col-i.col?s.col-i.col:e.xTile-t.xTile?e.xTile-t.xTile:e.yTile-t.yTile}class de{get running(){return this._running}constructor(e,t,s,i,r,n){this._visibleTiles=e,this._symbolRepository=t,this._createCollisionJob=s,this._assignTileSymbolsOpacity=i,this._symbolLayerSorter=r,this._isLayerVisible=n,this._selectionJob=null,this._selectionJobCompleted=!1,this._collisionJob=null,this._collisionJobCompleted=!1,this._opacityJob=null,this._opacityJobCompleted=!1,this._running=!0}setScreenSize(e,t){this._screenWidth===e&&this._screenHeight===t||this.restart(),this._screenWidth=e,this._screenHeight=t}restart(){this._selectionJob=null,this._selectionJobCompleted=!1,this._collisionJob=null,this._collisionJobCompleted=!1,this._opacityJob=null,this._opacityJobCompleted=!1,this._running=!0}continue(e){if(this._selectionJob||(this._selectionJob=this._createSelectionJob()),!this._selectionJobCompleted){const t=performance.now();if(!this._selectionJob.work(e))return!1;if(this._selectionJobCompleted=!0,0===(e=Math.max(0,e-(performance.now()-t))))return!1}if(this._collisionJob||(this._collisionJob=this._createCollisionJob(this._selectionJob.sortedSymbols,this._screenWidth,this._screenHeight)),!this._collisionJobCompleted){const t=performance.now();if(!this._collisionJob.work(e))return!1;if(this._collisionJobCompleted=!0,0===(e=Math.max(0,e-(performance.now()-t))))return!1}if(this._opacityJob||(this._opacityJob=this._createOpacityJob()),!this._opacityJobCompleted){const t=performance.now();if(!this._opacityJob.work(e))return!1;if(this._opacityJobCompleted=!0,0===(e=Math.max(0,e-(performance.now()-t))))return!1}return this._running=!1,!0}_createSelectionJob(){const e=this._symbolRepository.uniqueSymbols;for(let t=0;tn)return!1;let e=null,t=!1,i=!1;for(const s of a.tileSymbols)if(!i||!t){const r=s.tile;(!e||r.isCoverage||r.neededForCoverage&&!t)&&(e=s,(r.neededForCoverage||r.isCoverage)&&(i=!0),r.isCoverage&&(t=!0))}if(e.selectedForRendering=!0,i){c.symbols.push(e),a.show=!0;for(const e of a.parts)e.show=!0}else a.show=!1}}for(const e of t)e.symbols.sort(ye);return!0},get sortedSymbols(){return t.sort(n)}}}_createOpacityJob(){const e=this._assignTileSymbolsOpacity,t=this._visibleTiles;let s=0;function i(t,s){const r=t.symbols;for(const[e,t]of r)_e(t,s);e(t,s);for(const e of t.childrenTiles)i(e,s)}return{work(e){const r=performance.now();for(;se)return!1;const n=t[s];null==n.parentTile&&i(n,performance.now())}return!0}}}}function _e(e,t){for(const s of e){const e=s.unique;for(const s of e.parts){const i=s.targetOpacity>.5?1:-1;s.startOpacity+=i*((t-s.startTime)/ie.v7),s.startOpacity=Math.min(Math.max(s.startOpacity,0),1),s.startTime=t,s.targetOpacity=e.show&&s.show?1:0}}}class pe{constructor(e,t,s){this.tileCoordRange=e,this._visibleTiles=t,this._createUnique=s,this._tiles=new Map,this._uniqueSymbolsReferences=new Map}get uniqueSymbols(){return null==this._uniqueSymbolLayerArray&&(this._uniqueSymbolLayerArray=this._createUniqueSymbolLayerArray()),this._uniqueSymbolLayerArray}get uniqueSymbolsReferences(){return this._uniqueSymbolsReferences}add(e,t){this._uniqueSymbolLayerArray=null;let s=this._tiles.get(e.id);s||(s={symbols:new Map},this._tiles.set(e.id,s));const i=new Map;if(t)for(const e of t)s.symbols.has(e)&&(i.set(e,s.symbols.get(e)),s.symbols.delete(e));else for(const[t,r]of e.layerData)s.symbols.has(t)&&(i.set(t,s.symbols.get(t)),s.symbols.delete(t));this._removeSymbols(i);const r=e.symbols,n=new Map;for(const[e,t]of r){let i=t.length;if(i>=32){let r=this.tileCoordRange;do{r/=2,i/=4}while(i>8&&r>64);const a=new G(this.tileCoordRange,this.tileCoordRange,r);n.set(e,{flat:t,index:a}),s.symbols.set(e,{flat:t,index:a});for(const e of t)a.getCell(e.xTile,e.yTile).push(e)}else n.set(e,{flat:t}),s.symbols.set(e,{flat:t})}this._addSymbols(e.key,r)}deleteStyleLayers(e){this._uniqueSymbolLayerArray=null;for(const[t,s]of this._tiles){const i=new Map;for(const t of e)s.symbols.has(t)&&(i.set(t,s.symbols.get(t)),s.symbols.delete(t));this._removeSymbols(i),0===s.symbols.size&&this._tiles.delete(t)}}removeTile(e){this._uniqueSymbolLayerArray=null;const t=this._tiles.get(e.id);if(!t)return;const s=new Map;for(const[i,r]of e.symbols)t.symbols.has(i)&&(s.set(i,t.symbols.get(i)),t.symbols.delete(i));this._removeSymbols(s),0===t.symbols.size&&this._tiles.delete(e.id)}querySymbols(e,t,s,i){const r=[],n=this.uniqueSymbols;for(const i of n){const n=i.styleLayerUID,a=i.uniqueSymbols;for(const i of a){const a=i.tileSymbols.find((e=>e.selectedForRendering));a&&K(a,e,t*(window.devicePixelRatio||1),s)&&r.push({vtlSymbol:a,styleLayerUID:n,tileKey:a.tile.key})}}return r}_removeSymbols(e){for(const[t,{flat:s}]of e)for(const e of s){const s=e.unique,i=s.tileSymbols,r=i.length-1;for(let t=0;tt.level){const s=e.key.level-t.level;if(e.key.row>>s!==t.row||e.key.col>>s!==t.col)return}if(t.level>e.key.level){const s=t.level-e.key.level;if(t.row>>s!==e.key.row||t.col>>s!==e.key.col)return}if(t.equals(e.key)){for(const i of e.childrenTiles)this._matchSymbols(i,t,s);return}const i=new Map;for(const[r,n]of s){const s=[];for(const i of n){const r=Q(this.tileCoordRange,i.xTile,t.level,t.col,e.key.level,e.key.col),n=Q(this.tileCoordRange,i.yTile,t.level,t.row,e.key.level,e.key.row);r>=0&&r=0&&n0&&i.set(r,a)}for(const s of e.childrenTiles)this._matchSymbols(s,t,i)}_createUniqueSymbolLayerArray(){const e=this._uniqueSymbolsReferences,t=new Array(e.size);let s,i=0;for(const[r,n]of e){const e=new Array(n.size);s=0;for(const t of n)e[s++]=t;t[i]={styleLayerUID:r,uniqueSymbols:e},i++}return t}}const fe=1e-6;class ge{constructor(e,t){this.styleRepository=e,this._tileToHandle=new Map,this._viewState={scale:0,rotation:0,center:[0,0],size:[0,0]},this._declutterViewState={scale:0,rotation:0,center:[0,0],size:[0,0]},this._offsetFromScreenCenter=[0,0],this._completed=!1,this._fading=(0,le.t)(!1),this._symbolRepository=new pe(4096,t,(()=>new W)),this._symbolDeclutterer=new de(t,this._symbolRepository,((e,t,s)=>this._createCollisionJob(e,t,s)),((e,t)=>{e.allSymbolsFadingOut=!0,e.lastOpacityUpdate=t,function(e,t,s){for(const[i,r]of e.symbols)J(e,t,s,r,i)}(e,t,!0),e.decluttered=!0,e.requestRender()}),((e,t)=>this.styleRepository.getStyleLayerByUID(e.styleLayerUID).z-this.styleRepository.getStyleLayerByUID(t.styleLayerUID).z),(e=>{const t=this.styleRepository.getStyleLayerByUID(e);if(this._zoom+fe=t.maxzoom)return!1;const s=t.getLayoutProperty("visibility");return!s||s.getValue()!==he.EE.NONE}))}get symbolRepository(){return this._symbolRepository}_createCollisionJob(e,t,s){return this.updateDecluttererViewState(),new ue(e,t,s,this.styleRepository,this._zoom,this._viewState.rotation)}get fading(){return this._fading.value}get decluttererOffset(){return this._offsetFromScreenCenter}addTile(e){e.decluttered=!1,this._tileToHandle.set(e,e.on("symbols-changed",(()=>{this._symbolRepository.add(e),this.restartDeclutter()}))),this._symbolRepository.add(e),this.restartDeclutter()}removeTile(e){const t=this._tileToHandle.get(e);t&&(this._symbolRepository.removeTile(e),this.restartDeclutter(),t.remove(),this._tileToHandle.delete(e))}update(e,t){this._zoom=e,this._viewState={scale:t.scale,rotation:t.rotation,center:[t.center[0],t.center[1]],size:[t.size[0],t.size[1]]};const s=[0,0];t.toScreen(s,t.center);const i=[0,0];return t.toScreen(i,this._declutterViewState.center),this._offsetFromScreenCenter[0]=s[0]-i[0],this._offsetFromScreenCenter[1]=s[1]-i[1],this._continueDeclutter(),this._completed}restartDeclutter(){this._completed=!1,this._symbolDeclutterer.restart(),this._notifyUnstable()}clear(){this._completed=!1,this._symbolRepository=null,this._symbolDeclutterer.restart(),this._tileToHandle.forEach((e=>e.remove())),this._tileToHandle.clear()}get stale(){return this._zoom!==this._declutterZoom||this._viewState.size[0]!==this._declutterViewState.size[0]||this._viewState.size[1]!==this._declutterViewState.size[1]||this._viewState.scale!==this._declutterViewState.scale||this._viewState.rotation!==this._declutterViewState.rotation}deleteStyleLayers(e){this._symbolRepository.deleteStyleLayers(e)}_continueDeclutter(){this._completed&&!this.stale||(this._symbolDeclutterer.running||(this.updateDecluttererViewState(),this._symbolDeclutterer.restart()),this._symbolDeclutterer.setScreenSize(this._viewState.size[0],this._viewState.size[1]),this._completed=this._symbolDeclutterer.continue(ie.JM),this._completed&&this._scheduleNotifyStable())}_scheduleNotifyStable(){null!=this._stableNotificationHandle&&clearTimeout(this._stableNotificationHandle),this._stableNotificationHandle=setTimeout((()=>{this._stableNotificationHandle=null,this._fading.value=!1}),1.5*ie.v7)}_notifyUnstable(){null!=this._stableNotificationHandle&&(clearTimeout(this._stableNotificationHandle),this._stableNotificationHandle=null),this._fading.value=!0}updateDecluttererViewState(){this._declutterZoom=this._zoom,this._declutterViewState.center[0]=this._viewState.center[0],this._declutterViewState.center[1]=this._viewState.center[1],this._declutterViewState.rotation=this._viewState.rotation,this._declutterViewState.scale=this._viewState.scale,this._declutterViewState.size[0]=this._viewState.size[0],this._declutterViewState.size[1]=this._viewState.size[1],this._offsetFromScreenCenter[0]=0,this._offsetFromScreenCenter[1]=0}}var me=s(38716);class xe extends re.I{_createTransforms(){return{displayViewScreenMat3:(0,z.Ue)(),tileMat3:(0,z.Ue)()}}}var be=s(70179);const we=1e-6;function Se(e,t){if(e){const s=e.getLayoutProperty("visibility");if(!s||s.getValue()!==he.EE.NONE&&(void 0===e.minzoom||e.minzoom=t-we))return!0}return!1}class ve extends be.Z{constructor(e){super(e),this._backgroundTiles=[],this._computeDisplayInfoView(e)}destroy(){this.removeAllChildren(),this._spriteMosaic?.dispose(),this._spriteMosaic=null,this._glyphMosaic?.dispose(),this._glyphMosaic=null,null!=this._symbolFader&&(this._symbolFader.clear(),this._symbolFader=null),this._styleRepository=null,this._backgroundTiles=[]}get fading(){return this._symbolFader?.fading??!1}get symbolFader(){return this._symbolFader}get symbolRepository(){return this._symbolFader?.symbolRepository}setStyleResources(e,t,s,i){this._spriteMosaic=e,this._glyphMosaic=t,this._styleRepository=s,this._tileInfoView=i,this._computeDisplayInfoView(i),null==this._symbolFader&&(this._symbolFader=new ge(this._styleRepository,this.children)),this._symbolFader.styleRepository=s}setSpriteMosaic(e){this._spriteMosaic?.dispose(),this._spriteMosaic=e}deleteStyleLayers(e){null!=this._symbolFader&&this._symbolFader.deleteStyleLayers(e)}createRenderParams(e){return{...super.createRenderParams(e),renderPass:null,styleLayer:null,styleLayerUID:-1,glyphMosaic:this._glyphMosaic,spriteMosaic:this._spriteMosaic,hasClipping:!!this._clippingInfos}}doRender(e){!this.visible||e.drawPhase!==me.jx.MAP&&e.drawPhase!==me.jx.DEBUG||void 0===this._spriteMosaic||super.doRender(e)}addChild(e){return super.addChild(e),null!=this._symbolFader?this._symbolFader.addTile(e):e.decluttered=!0,this.requestRender(),e}removeChild(e){return null!=this._symbolFader&&this._symbolFader.removeTile(e),this.requestRender(),super.removeChild(e)}renderChildren(e){const{drawPhase:t}=e;t!==me.jx.DEBUG?this._doRender(e):super.renderChildren(e)}removeAllChildren(){for(let e=0;ee.neededForCoverage&&e.hasData()))}restartDeclutter(){null!=this._symbolFader&&this._symbolFader.restartDeclutter()}_doRender(e){const{context:t,state:s}=e,i=this._styleRepository;if(!i)return;const r=i.layers,n=this._displayInfo.scaleToZoom(s.scale);i.backgroundBucketIds.length>0&&(e.renderPass="background",this._renderBackgroundLayers(e,i.backgroundBucketIds,n)),super.renderChildren(e),e.drawPhase===me.jx.MAP&&this._fade(n,s);const a=this.children.filter((e=>e.visible&&e.hasData()));if(!a||0===a.length)return t.bindVAO(),t.setStencilTestEnabled(!0),void t.setBlendingEnabled(!0);for(const e of a)e.triangleCount=0;t.setStencilWriteMask(0),t.setColorMask(!0,!0,!0,!0),t.setStencilOp(x.xS.KEEP,x.xS.KEEP,x.xS.REPLACE),t.setStencilTestEnabled(!0),t.setBlendingEnabled(!1),t.setDepthTestEnabled(!0),t.setDepthWriteEnabled(!0),t.setDepthFunction(x.wb.LEQUAL),t.setClearDepth(1),t.clear(t.gl.DEPTH_BUFFER_BIT),e.renderPass="opaque";for(let t=r.length-1;t>=0;t--)this._renderStyleLayer(r[t],e,a);t.setDepthWriteEnabled(!1),t.setBlendingEnabled(!0),t.setBlendFunctionSeparate(x.zi.ONE,x.zi.ONE_MINUS_SRC_ALPHA,x.zi.ONE,x.zi.ONE_MINUS_SRC_ALPHA),e.renderPass="translucent";for(let t=0;te.decluttered)):s.filter((e=>e.neededForCoverage)),"vtlSymbol"!==o&&(0===s.length||void 0!==e.minzoom&&e.minzoom>=i+we||void 0!==e.maxzoom&&e.maxzoom{const s=e.vtlSymbol.sourceTile,i=t.vtlSymbol.sourceTile;return s.level!==i.level?s.level-i.level:s.row!==i.row?s.row-i.row:s.col!==i.col?s.col-i.col:e.styleLayerUID-t.styleLayerUID};class Le{constructor(e,t,s,i,r){this.tileKey=e,this._index=null,this._styleRepository=null,this._tileHandler=null,this._tileKeyToPBF=new Map,this._tileLayerData=t,this._styleRepository=s,this._tileHandler=i,this._parentLayer=r}static create(e,t,s,i,r){return new Le(e,t,s,i,r)}clear(){this._index?.clear(),this._tileKeyToPBF.clear()}async queryAttributes(e,t,s,i,r){if(0===this._tileLayerData.size||!this._styleRepository||!this._tileHandler)return[];null===this._index&&(this._index=new Re.Q(100,Ae),await this._indexLayers());const n=[];return this._queryIndex(n,e,t,s,this.tileKey.level,i),r&&r?.length>0&&await this._getSymbolsAttributes(n,r),n}async _indexLayers(){const e=this.tileKey,t=this._styleRepository.layers,s=await this._getTilePayload(e);for(const[i,r]of this._tileLayerData){const n=t[i],a=s.find((e=>e.sourceName===n.source));if(!a)continue;const{protobuff:o,key:l}=a;if(r.type!==_.al.SYMBOL){const t=1<=10*h||a&&a<=10*l)continue;const c=e.getFeatureInflatedBounds(i,l,y.extent,x);null==c||c[0]>g||c[1]>m||c[2]e.sourceName===a.source)),o&&this._addSymbolsAttributes(e,t.slice(r.from,r.to).map((e=>e.vtlSymbol)),i,o)}return e}_addSymbolsAttributes(e,t,s,i){const r=this._styleRepository.layers,n=i.key,a=this.tileKey,o=1<{const{attributes:i,tilePoint:n}=t;e.push({layerId:r[s].id,layerIndex:s,graphic:new Te.Z({attributes:i,origin:{type:"vector-tile",layerId:r[s].id,layerIndex:s,layer:this._parentLayer}}),tilePoint:n})}))}_getSymbolAttributes(e,t,s,i,r,n){const a=[],o=this._styleRepository.layers;let l=0;t.sort(((e,t)=>e.featureIndex-t.featureIndex));const h=new T.Z(new Uint8Array(e),new DataView(e));for(;h.next();)switch(h.tag()){case 3:{const e=h.getMessage(),c=new De.Z(e);if(e.release(),c.name!==o[s].sourceLayer)continue;const u=c.getData(),y=c.extent/i,d=4096/y,_=y*n,p=y*r;let f=0;for(;u.nextTag(2);){const e=u.getMessage();if(f++===t[l].featureIndex){const t=new Ce.Z(e,c),s=t.values,i=t.getGeometry(),r=null!=i?[d*(i[0][0].x-_),d*(i[0][0].y-p)]:null;a.push({attributes:s,tilePoint:r}),l++}if(e.release(),l===t.length)return a}break}default:h.skip()}return a}_queryIndex(e,t,s,i,r,n){const a=8*i*(window.devicePixelRatio||1);return this._index?.search({minX:t-a,minY:s-a,maxX:t+a,maxY:s+a},(a=>{const{layer:o,feature:l}=a;o.isIntersectingFeature(t,s,i,l,r,n,a)&&e.push({layerId:o.id,layerIndex:o.uid,tilePoint:null,graphic:new Te.Z({attributes:l.values,origin:{type:"vector-tile",layerId:a.layer.id,layerIndex:a.layer.uid,layer:this._parentLayer}})})})),e}async _getTilePayload(e){return(0,Ie.s1)(this._tileKeyToPBF,e.id,(()=>this._tileHandler.fetchTilePBFs(e))).then((e=>e))}}const Ae=e=>({minX:e.bounds[0],minY:e.bounds[1],maxX:e.bounds[2],maxY:e.bounds[3]});var ke=s(63043),Ue=s(66878);class Oe extends H.Z{constructor(){super(...arguments),this._fullCacheLodInfos=null,this._levelByScale={}}getTileParentId(e){const t=L.Z.pool.acquire(e),s=0===t.level?null:L.Z.getId(t.level-1,t.row>>1,t.col>>1,t.world);return L.Z.pool.release(t),s}getTileCoverage(e,t,s=!0,i){const r=super.getTileCoverage(e,t,s,i);if(!r)return r;const n=1<e.row>=0&&e.rowt[0].scale)return t[0].level;let s,i;for(let r=0;ri.scale)return s=t[r],s.level+(s.scale-e)/(s.scale-i.scale);return t[t.length-1].level}}_initializeFullCacheLODs(e){let t;if(0===e[0].level)t=e.map((e=>({level:e.level,resolution:e.resolution,scale:e.scale})));else{const e=this.tileInfo.size[0],s=this.tileInfo.spatialReference;t=oe.Z.create({size:e,spatialReference:s}).lods.map((e=>({level:e.level,resolution:e.resolution,scale:e.scale})))}for(let e=0;ee.tileKey.id===t.id))));return await Promise.all(l),h}update(e){if(this._tileHandlerPromise&&this._isTileHandlerReady)return e.pixelRatio!==this._tileHandler.devicePixelRatio?(this._start(),void(this._tileHandler.devicePixelRatio=e.pixelRatio)):void(this._styleChanges.length>0?this._tileHandlerPromise=this._applyStyleChanges():(this._fetchQueue.pause(),this._parseQueue.pause(),this._fetchQueue.state=e.state,this._parseQueue.state=e.state,this._tileManager.update(e)||this.requestUpdate(),this._parseQueue.resume(),this._fetchQueue.resume()))}attach(){const{style:e}=this.layer.currentStyleInfo;this._styleRepository=new ke.Z(e),this._tileInfoView=new Oe(this.layer.tileInfo,this.layer.fullExtent),this._vectorTileContainer=new ve(this._tileInfoView),this._tileHandler=new A(this.layer,this._styleRepository,window.devicePixelRatio||1,this.layer.tileInfo.lods.length-1),this.container.addChild(this._vectorTileContainer),this._start(),this.addAttachHandles([this.layer.on("paint-change",(e=>{if(e.isDataDriven)this._styleChanges.push({type:_.Fr.PAINTER_CHANGED,data:e}),this.requestUpdate();else{const t=this._styleRepository,s=t.getLayerById(e.layer);if(!s)return;const i=s.type===he.fR.SYMBOL;t.setPaintProperties(e.layer,e.paint),i&&this._vectorTileContainer?.restartDeclutter(),this._vectorTileContainer?.requestRender()}})),this.layer.on("layout-change",(e=>{const t=this._styleRepository,s=t.getLayerById(e.layer);if(!s)return;const i=(0,c.Hg)(s.layout,e.layout);if(null!=i){if((0,c.uD)(i,"visibility")&&1===function(e){if(null==e)return 0;switch(e.type){case"partial":return Object.keys(e.diff).length;case"complete":return Math.max(Object.keys(e.oldValue).length,Object.keys(e.newValue).length);case"collection":return Object.keys(e.added).length+Object.keys(e.changed).length+Object.keys(e.removed).length}}(i))return t.setLayoutProperties(e.layer,e.layout),s.type===he.fR.SYMBOL&&this._vectorTileContainer?.restartDeclutter(),void this._vectorTileContainer?.requestRender();this._styleChanges.push({type:_.Fr.LAYOUT_CHANGED,data:e}),this.requestUpdate()}})),this.layer.on("style-layer-visibility-change",(e=>{const t=this._styleRepository,s=t.getLayerById(e.layer);s&&(t.setStyleLayerVisibility(e.layer,e.visibility),s.type===he.fR.SYMBOL&&this._vectorTileContainer?.restartDeclutter(),this._vectorTileContainer?.requestRender())})),this.layer.on("style-layer-change",(e=>{this._styleChanges.push({type:_.Fr.LAYER_CHANGED,data:e}),this.requestUpdate()})),this.layer.on("delete-style-layer",(e=>{this._styleChanges.push({type:_.Fr.LAYER_REMOVED,data:e}),this.requestUpdate()})),this.layer.on("load-style",(()=>this._loadStyle())),this.layer.on("spriteSource-change",(e=>{this._styleChanges.push({type:_.Fr.SPRITES_CHANGED,data:e});const t=this._styleRepository.layers;for(const e of t)switch(e.type){case he.fR.SYMBOL:e.getLayoutProperty("icon-image")&&this._styleChanges.push({type:_.Fr.LAYOUT_CHANGED,data:{layer:e.id,layout:e.layout}});break;case he.fR.LINE:e.getPaintProperty("line-pattern")&&this._styleChanges.push({type:_.Fr.PAINTER_CHANGED,data:{layer:e.id,paint:e.paint,isDataDriven:e.isPainterDataDriven()}});break;case he.fR.FILL:e.getLayoutProperty("fill-pattern")&&this._styleChanges.push({type:_.Fr.PAINTER_CHANGED,data:{layer:e.id,paint:e.paint,isDataDriven:e.isPainterDataDriven()}})}this.requestUpdate()}))])}detach(){this._stop(),this.container.removeAllChildren(),this._vectorTileContainer=(0,a.SC)(this._vectorTileContainer),this._tileHandler=(0,a.SC)(this._tileHandler)}moveStart(){this.requestUpdate()}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return(0,d.fS)(this.layer.tileInfo?.spatialReference,e)}canResume(){let e=super.canResume();const{currentStyleInfo:t}=this.layer;if(e&&t?.layerDefinition){const s=this.view.scale,{minScale:i,maxScale:r}=t.layerDefinition;t?.layerDefinition&&(i&&is&&(e=!1))}return e}isUpdating(){return this.fading}acquireTile(e){const t=this._createVectorTile(e);return this._updatingHandles.addPromise(this._fetchQueue.push(t.key).then((e=>this._parseQueue.push({key:t.key,data:e}))).then((e=>{t.once("attach",(()=>this.requestUpdate())),t.setData(e),this.requestUpdate()})).catch((e=>{(0,o.D_)(e)||n.Z.getLogger(this).error(e)}))),t}releaseTile(e){const t=e.key.id;this._fetchQueue.abort(t),this._parseQueue.abort(t),this.requestUpdate()}_start(){if(this._stop(),this._tileManager=new F({acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView},this._vectorTileContainer),!this.layer.currentStyleInfo)return;const e=new AbortController,t=this._tileHandler.start({signal:e.signal}).then((()=>{this._fetchQueue=new B.Z({tileInfoView:this._tileInfoView,process:(e,t)=>this._getTileData(e,t),concurrency:15}),this._parseQueue=new B.Z({tileInfoView:this._tileInfoView,process:(e,t)=>this._parseTileData(e,t),concurrency:8}),this.requestUpdate(),this._isTileHandlerReady=!0}));this._tileHandler.spriteMosaic.then((e=>{this._vectorTileContainer.setStyleResources(e,this._tileHandler.glyphMosaic,this._styleRepository,this._tileInfoView),this.requestUpdate()})),this._tileHandlerAbortController=e,this._tileHandlerPromise=t}_stop(){if(!this._tileHandlerAbortController||!this._vectorTileContainer)return;const e=this._tileHandlerAbortController;e&&e.abort(),this._tileHandlerPromise=null,this._isTileHandlerReady=!1,this._fetchQueue=(0,a.SC)(this._fetchQueue),this._parseQueue=(0,a.SC)(this._parseQueue),this._tileManager=(0,a.SC)(this._tileManager),this._vectorTileContainer.removeAllChildren()}async _getTileData(e,t){return this._tileHandler.fetchTileData(e,t)}async _parseTileData(e,t){return this._tileHandler.parseTileData(e,t)}async _applyStyleChanges(){this._isTileHandlerReady=!1,this._fetchQueue.pause(),this._parseQueue.pause(),this._fetchQueue.clear(),this._parseQueue.clear(),this._tileManager.clearCache();const e=this._styleChanges;try{await this._tileHandler.updateStyle(e)}catch(e){n.Z.getLogger(this).error("error applying vector-tiles style update",e.message),this._fetchQueue.resume(),this._parseQueue.resume(),this._isTileHandlerReady=!0}const t=this._styleRepository,s=new Set;e.forEach((e=>{if(e.type!==_.Fr.LAYER_REMOVED)return;const i=e.data,r=t.getLayerById(i.layer);r&&s.add(r.uid)}));const i=new Set;e.forEach((e=>{let s;switch(e.type){case _.Fr.PAINTER_CHANGED:t.setPaintProperties(e.data.layer,e.data.paint),s=e.data.layer;break;case _.Fr.LAYOUT_CHANGED:t.setLayoutProperties(e.data.layer,e.data.layout),s=e.data.layer;break;case _.Fr.LAYER_REMOVED:return void t.deleteStyleLayer(e.data.layer);case _.Fr.LAYER_CHANGED:t.setStyleLayer(e.data.layer,e.data.index),s=e.data.layer.id;break;case _.Fr.SPRITES_CHANGED:this._vectorTileContainer.setSpriteMosaic(this._tileHandler.setSpriteSource(e.data.spriteSource))}if(s){const e=t.getLayerById(s);e&&i.add(e.uid)}}));const r=this._vectorTileContainer.children;if(s.size>0){const e=Array.from(s);this._vectorTileContainer.deleteStyleLayers(e);for(const t of r)t.deleteLayerData(e)}if(this._fetchQueue.resume(),this._parseQueue.resume(),i.size>0){const e=Array.from(i),t=[];for(const s of r){const i=this._updatingHandles.addPromise(this._fetchQueue.push(s.key).then((t=>this._parseQueue.push({key:s.key,data:t,styleLayerUIDs:e}))).then((e=>s.setData(e))));t.push(i)}await Promise.all(t)}this._styleChanges=[],this._isTileHandlerReady=!0,this.requestUpdate()}async _loadStyle(){const{style:e}=this.layer.currentStyleInfo,t=(0,r.d9)(e);this._isTileHandlerReady=!1,this._fetchQueue.pause(),this._parseQueue.pause(),this._fetchQueue.clear(),this._parseQueue.clear(),this._styleRepository=new ke.Z(t),this._vectorTileContainer.destroy(),this._tileManager.clear(),this._tileHandlerAbortController.abort(),this._tileHandlerAbortController=new AbortController;const{signal:s}=this._tileHandlerAbortController;try{this._tileHandlerPromise=this._tileHandler.setStyle(this._styleRepository,t,this.layer.tileInfo.lods.length-1),await this._tileHandlerPromise}catch(e){if(!(0,o.D_)(e))throw e}if(s.aborted)return this._fetchQueue.resume(),this._parseQueue.resume(),this._isTileHandlerReady=!0,void this.requestUpdate();const i=await this._tileHandler.spriteMosaic,n=this._vectorTileContainer;this._tileInfoView=new Oe(this.layer.tileInfo,this.layer.fullExtent),n.setStyleResources(i,this._tileHandler.glyphMosaic,this._styleRepository,this._tileInfoView),this._tileManager=new F({acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView},this._vectorTileContainer),this._fetchQueue.resume(),this._parseQueue.resume(),this._isTileHandlerReady=!0,this.requestUpdate()}_createVectorTile(e){const t=this._tileInfoView.getTileBounds((0,y.Ue)(),e),s=this._tileInfoView.getTileResolution(e.level);return new ne(e,s,t[0],t[3],512,512,this._styleRepository)}async _queryTile(e,t,s,i,r,n){if(0===r.layerData.size)return;const a=this._ensureTileIndex(r),o=this._tileInfoView.getTileBounds((0,y.Ue)(),r.key,!0),l=(t.x-o[0])/(o[2]-o[0])*4096,h=4096*(1-(t.y-o[1])/(o[3]-o[1])),c=await a.queryAttributes(l,h,s,i,n);for(const s of c)s.graphic.geometry=this._tileToMapPoint(s.tilePoint,r.transforms.tileUnitsToPixels),e.push({type:"graphic",layer:this.layer,graphic:s.graphic,mapPoint:t.clone()});e.sort(((e,t)=>t.graphic.origin.layerIndex-e.graphic.origin.layerIndex))}_tileToMapPoint(e,t){if(!e)return null;const s=e[0]*t[0]+e[1]*t[3]+t[6],i=e[0]*t[1]+e[1]*t[4]+t[7],r=this.view.state,n=[0,0];return r.toMap(n,[s,i]),new u.Z({x:n[0],y:n[1],spatialReference:r.spatialReference})}_ensureTileIndex(e){let t=e.featureIndex;return t||(t=Le.create(e.key,e.layerData,this._styleRepository,this._tileHandler,this.layer),e.featureIndex=t),t}};(0,i._)([(0,l.Cb)()],Ee.prototype,"_isTileHandlerReady",void 0),Ee=(0,i._)([(0,h.j)("esri.views.2d.layers.VectorTileLayerView2D")],Ee);const Ve=Ee},26216:function(e,t,s){s.d(t,{Z:function(){return _}});var i=s(36663),r=s(74396),n=s(31355),a=s(86618),o=s(13802),l=s(61681),h=s(64189),c=s(81977),u=(s(39994),s(4157),s(40266)),y=s(98940);let d=class extends((0,a.IG)((0,h.v)(n.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new y.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",s=this.layer?.title||"no title";o.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${s}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,l.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,i._)([(0,c.Cb)()],d.prototype,"fullOpacity",null),(0,i._)([(0,c.Cb)()],d.prototype,"layer",void 0),(0,i._)([(0,c.Cb)()],d.prototype,"parent",void 0),(0,i._)([(0,c.Cb)({readOnly:!0})],d.prototype,"suspended",null),(0,i._)([(0,c.Cb)({readOnly:!0})],d.prototype,"suspendInfo",null),(0,i._)([(0,c.Cb)({readOnly:!0})],d.prototype,"legendEnabled",null),(0,i._)([(0,c.Cb)({type:Boolean,readOnly:!0})],d.prototype,"updating",null),(0,i._)([(0,c.Cb)({readOnly:!0})],d.prototype,"updatingProgress",null),(0,i._)([(0,c.Cb)()],d.prototype,"visible",null),(0,i._)([(0,c.Cb)()],d.prototype,"view",void 0),d=(0,i._)([(0,u.j)("esri.views.layers.LayerView")],d);const _=d},88723:function(e,t,s){s.d(t,{Z:function(){return _}});var i,r=s(36663),n=(s(91957),s(81977)),a=(s(39994),s(13802),s(4157),s(40266)),o=s(20031),l=s(53736),h=s(96294),c=s(91772),u=s(89542);const y={base:o.Z,key:"type",typeMap:{extent:c.Z,polygon:u.Z}};let d=i=class extends h.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new i({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,n.Cb)({types:y,json:{read:l.im,write:!0}})],d.prototype,"geometry",void 0),d=i=(0,r._)([(0,a.j)("esri.views.layers.support.Geometry")],d);const _=d}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1844.3e40c41105213aa2105e.js b/docs/sentinel1-explorer/1844.3e40c41105213aa2105e.js new file mode 100644 index 00000000..1f1c1679 --- /dev/null +++ b/docs/sentinel1-explorer/1844.3e40c41105213aa2105e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1844],{1844:function(e,t,n){n.r(t),n.d(t,{default:function(){return o}});var r=n(44685);function s(e,t){return t.push(e.buffer),{buffer:e.buffer,layout:new r.Gw(e.layout)}}var i=n(82976),a=n(11591),c=n(62229);class o{async extract(e){const t=u(e),n=(0,c.Kl)(t),r=[t.data.buffer];return{result:l(n,r),transferList:r}}async extractComponentsEdgeLocations(e){const t=u(e),n=(0,c.kY)(t.data,t.skipDeduplicate,t.indices,t.indicesLength),r=[];return{result:s((0,a.n)(n,d,p).regular.instancesData,r),transferList:r}}async extractEdgeLocations(e){const t=u(e),n=(0,c.kY)(t.data,t.skipDeduplicate,t.indices,t.indicesLength),r=[];return{result:s((0,a.n)(n,f,p).regular.instancesData,r),transferList:r}}}function u(e){return{data:i.tf.createView(e.dataBuffer),indices:"Uint32Array"===e.indicesType?new Uint32Array(e.indices):"Uint16Array"===e.indicesType?new Uint16Array(e.indices):e.indices,indicesLength:e.indicesLength,writerSettings:e.writerSettings,skipDeduplicate:e.skipDeduplicate}}function l(e,t){return t.push(e.regular.lodInfo.lengths.buffer),t.push(e.silhouette.lodInfo.lengths.buffer),{regular:{instancesData:s(e.regular.instancesData,t),lodInfo:{lengths:e.regular.lodInfo.lengths.buffer}},silhouette:{instancesData:s(e.silhouette.instancesData,t),lodInfo:{lengths:e.silhouette.lodInfo.lengths.buffer}},averageEdgeLength:e.averageEdgeLength}}const f=new class{allocate(e){return c.Yr.createBuffer(e)}trim(e,t){return e.slice(0,t)}write(e,t,n){e.position0.setVec(t,n.position0),e.position1.setVec(t,n.position1)}},d=new class{allocate(e){return c.n_.createBuffer(e)}trim(e,t){return e.slice(0,t)}write(e,t,n){e.position0.setVec(t,n.position0),e.position1.setVec(t,n.position1),e.componentIndex.set(t,n.componentIndex)}},p={allocate:()=>null,write:()=>{},trim:()=>null}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1936.96fa57a440dbfe1e08d1.js b/docs/sentinel1-explorer/1936.96fa57a440dbfe1e08d1.js new file mode 100644 index 00000000..271e7e2d --- /dev/null +++ b/docs/sentinel1-explorer/1936.96fa57a440dbfe1e08d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1936],{61936:function(e,t,r){r.r(t),r.d(t,{default:function(){return we}});var n,s=r(36663),i=r(51366),a=r(80085),o=r(80020),l=r(66341),u=r(6865),p=r(81739),c=r(25709),d=r(67134),m=r(15842),y=r(78668),f=r(76868),h=r(3466),b=r(81977),g=r(7283),x=r(34248),v=r(40266),w=r(39835),_=r(86561),S=r(91772),C=r(14685),N=r(68577),E=r(35925),F=r(38481),I=r(27668),O=r(43330),R=r(18241),P=r(12478),A=r(95874),L=r(2030),M=r(73616),j=r(20692),U=r(51599),T=r(49999),Z=r(4452),q=r(86618),W=r(69236);r(4157),r(39994);let B=0,V=n=class extends((0,q.IG)(m.w)){constructor(e){super(e),this.description=null,this.dimensions=null,this.fullExtent=null,this.fullExtents=null,this.legendUrl=null,this.legendEnabled=!0,this.layer=null,this.maxScale=0,this.minScale=0,this.name=null,this.parent=null,this.popupEnabled=!1,this.queryable=!1,this.sublayers=null,this.spatialReferences=null,this.title=null,this.addHandles([(0,f.on)((()=>this.sublayers),"after-add",(({item:e})=>{e.parent=this,e.layer=this.layer}),f.Z_),(0,f.on)((()=>this.sublayers),"after-remove",(({item:e})=>{e.layer=e.parent=null}),f.Z_),(0,f.YP)((()=>this.sublayers),((e,t)=>{if(t)for(const e of t)e.layer=e.parent=null;if(e)for(const t of e)t.parent=this,t.layer=this.layer}),f.Z_),(0,f.YP)((()=>this.layer),(e=>{if(this.sublayers)for(const t of this.sublayers)t.layer=e}),f.Z_)])}get id(){return this._get("id")??B++}set id(e){this._set("id",e)}readLegendUrl(e,t){return t.legendUrl??t.legendURL??null}get effectiveScaleRange(){const{minScale:e,maxScale:t}=this;return{minScale:e,maxScale:t}}castSublayers(e){return(0,g.se)(u.Z.ofType(n),e)}set visible(e){this._setAndNotifyLayer("visible",e)}clone(){const e=new n;return this.hasOwnProperty("description")&&(e.description=this.description),this.hasOwnProperty("fullExtent")&&(e.fullExtent=this.fullExtent.clone()),this.hasOwnProperty("fullExtents")&&(e.fullExtents=this.fullExtents?.map((e=>e.clone()))??null),this.hasOwnProperty("legendUrl")&&(e.legendUrl=this.legendUrl),this.hasOwnProperty("legendEnabled")&&(e.legendEnabled=this.legendEnabled),this.hasOwnProperty("layer")&&(e.layer=this.layer),this.hasOwnProperty("name")&&(e.name=this.name),this.hasOwnProperty("parent")&&(e.parent=this.parent),this.hasOwnProperty("queryable")&&(e.queryable=this.queryable),this.hasOwnProperty("sublayers")&&(e.sublayers=this.sublayers?.map((e=>e.clone()))),this.hasOwnProperty("spatialReferences")&&(e.spatialReferences=this.spatialReferences?.map((e=>e))),this.hasOwnProperty("visible")&&(e.visible=this.visible),this.hasOwnProperty("title")&&(e.title=this.title),e}_setAndNotifyLayer(e,t){const r=this.layer;this._get(e)!==t&&(this._set(e,t),r&&r.emit("wms-sublayer-update",{propertyName:e,id:this.id}))}};(0,s._)([(0,b.Cb)()],V.prototype,"description",void 0),(0,s._)([(0,b.Cb)({readOnly:!0})],V.prototype,"dimensions",void 0),(0,s._)([(0,b.Cb)({type:S.Z,json:{name:"extent"}})],V.prototype,"fullExtent",void 0),(0,s._)([(0,b.Cb)()],V.prototype,"fullExtents",void 0),(0,s._)([(0,b.Cb)({type:Number,json:{write:{enabled:!1,overridePolicy:()=>({ignoreOrigin:!0,enabled:!0})}}})],V.prototype,"id",null),(0,s._)([(0,b.Cb)({type:String,json:{name:"legendUrl",write:{ignoreOrigin:!0}}})],V.prototype,"legendUrl",void 0),(0,s._)([(0,x.r)("legendUrl",["legendUrl","legendURL"])],V.prototype,"readLegendUrl",null),(0,s._)([(0,b.Cb)({type:Boolean,json:{name:"showLegend",origins:{"web-map":{read:!1,write:!1},"web-scene":{read:!1,write:!1}}}})],V.prototype,"legendEnabled",void 0),(0,s._)([(0,b.Cb)()],V.prototype,"layer",void 0),(0,s._)([(0,b.Cb)()],V.prototype,"maxScale",void 0),(0,s._)([(0,b.Cb)()],V.prototype,"minScale",void 0),(0,s._)([(0,b.Cb)({readOnly:!0})],V.prototype,"effectiveScaleRange",null),(0,s._)([(0,b.Cb)({type:String,json:{write:{ignoreOrigin:!0}}})],V.prototype,"name",void 0),(0,s._)([(0,b.Cb)()],V.prototype,"parent",void 0),(0,s._)([(0,b.Cb)({type:Boolean,json:{read:{source:"showPopup"},write:{ignoreOrigin:!0,target:"showPopup"}}})],V.prototype,"popupEnabled",void 0),(0,s._)([(0,b.Cb)({type:Boolean,json:{write:{ignoreOrigin:!0}}})],V.prototype,"queryable",void 0),(0,s._)([(0,b.Cb)()],V.prototype,"sublayers",void 0),(0,s._)([(0,W.p)("sublayers")],V.prototype,"castSublayers",null),(0,s._)([(0,b.Cb)({type:[Number],json:{read:{source:"spatialReferences"}}})],V.prototype,"spatialReferences",void 0),(0,s._)([(0,b.Cb)({type:String,json:{write:{ignoreOrigin:!0}}})],V.prototype,"title",void 0),(0,s._)([(0,b.Cb)({type:Boolean,value:!0,json:{read:{source:"defaultVisibility"}}})],V.prototype,"visible",null),V=n=(0,s._)([(0,v.j)("esri.layers.support.WMSSublayer")],V);const $=V;var k=r(7753),D=r(70375);const G={84:4326,83:4269,27:4267};function H(e){if(!e)return null;const t={idCounter:-1};"string"==typeof e&&(e=(new DOMParser).parseFromString(e,"text/xml"));const r=e.documentElement;if("ServiceExceptionReport"===r.nodeName){const e=Array.prototype.slice.call(r.childNodes).map((e=>e.textContent)).join("\r\n");throw new D.Z("wmslayer:wms-capabilities-xml-is-not-valid","The server returned errors when the WMS capabilities were requested.",e)}const n=Y("Capability",r),s=Y("Service",r),i=n&&Y("Request",n);if(!n||!s||!i)return null;const a=Y("Layer",n);if(!a)return null;const o="WMS_Capabilities"===r.nodeName||"WMT_MS_Capabilities"===r.nodeName?r.getAttribute("version"):"1.3.0",l=K("Title",s,"")||K("Name",s,""),u=K("AccessConstraints",s,""),p=/^none$/i.test(u)?"":u,c=K("Abstract",s,""),d=parseInt(K("MaxWidth",s,"5000"),10),m=parseInt(K("MaxHeight",s,"5000"),10),y=re(i,"GetMap"),f=te(i,"GetMap"),h=se(a,o,t);if(!h)return null;let b,g=0;const x=Array.prototype.slice.call(n.childNodes),v=h.sublayers??[],w=e=>{null!=e&&v.push(e)};x.forEach((e=>{"Layer"===e.nodeName&&(0===g?b=e:1===g?(h.name&&(h.name="",w(se(b,o,t))),w(se(e,o,t))):w(se(e,o,t)),g++)}));let _=h.sublayers,C=h.extent;const N=h.fullExtents??[];if(_||(_=[]),0===_.length&&_.push(h),!C){const e=new S.Z(_[0].extent);h.extent=e.toJSON(),C=h.extent}const E=h.spatialReferences.length>0?h.spatialReferences:X(h),F=te(i,"GetFeatureInfo"),I=F?re(i,"GetFeatureInfo"):null,O=J(_),R=h.minScale||0,P=h.maxScale||0,A=h.dimensions??[],L=O.reduce(((e,t)=>e.concat(t.dimensions??[])),[]),M=A.concat(L).filter(oe);let j=null;if(M.length){const e=M.map((e=>{const{extent:t}=e;return function(e){return Array.isArray(e)&&e.length>0&&e[0]instanceof Date}(t)?t.map((e=>e.getTime())):t?.map((e=>[e.min.getTime(),e.max.getTime()]))})).flat(2).filter(k.pC);j={startTimeField:null,endTimeField:null,trackIdField:void 0,timeExtent:[Math.min(...e),Math.max(...e)]}}return{copyright:p,description:c,dimensions:A,extent:C,fullExtents:N,featureInfoFormats:I,featureInfoUrl:F,mapUrl:f,maxWidth:d,maxHeight:m,maxScale:P,minScale:R,layers:O,spatialReferences:E,supportedImageFormatTypes:y,timeInfo:j,title:l,version:o}}function X(e){if(e.spatialReferences.length>0)return e.spatialReferences;if(e.sublayers)for(const t of e.sublayers){const e=X(t);if(e.length>0)return e}return[]}function J(e){let t=[];for(const r of e)t.push(r),r.sublayers?.length&&(t=t.concat(J(r.sublayers)),delete r.sublayers);return t}function Q(e,t,r){return t.getAttribute(e)??r}function Y(e,t){for(let r=0;re)).filter(k.pC);const n=[];for(const e of r)if(e.getAttribute("name")===t){const t=z("Format",e);for(const{textContent:e}of t)null!=e&&n.push(e)}return n}function ne(e,t,r){const n=Y(t,e);if(!n)return r;const{textContent:s}=n;if(null==s||""===s)return r;const i=Number(s);return isNaN(i)?r:i}function se(e,t,r){if(!e)return null;const n={id:r.idCounter++,fullExtents:[],parentLayerId:null,queryable:"1"===e.getAttribute("queryable"),spatialReferences:[],sublayers:null},s=Y("LatLonBoundingBox",e),i=Y("EX_GeographicBoundingBox",e);let a=null;s&&(a=ee(s,4326)),i&&(a=new S.Z(0,0,0,0,new C.Z({wkid:4326})),a.xmin=parseFloat(K("westBoundLongitude",i,"0")),a.ymin=parseFloat(K("southBoundLatitude",i,"0")),a.xmax=parseFloat(K("eastBoundLongitude",i,"0")),a.ymax=parseFloat(K("northBoundLatitude",i,"0"))),s||i||(a=new S.Z(-180,-90,180,90,new C.Z({wkid:4326}))),n.minScale=ne(e,"MaxScaleDenominator",0),n.maxScale=ne(e,"MinScaleDenominator",0);const o=["1.0.0","1.1.0","1.1.1"].includes(t)?"SRS":"CRS";return Array.prototype.slice.call(e.childNodes).forEach((e=>{if("Name"===e.nodeName)n.name=e.textContent||"";else if("Title"===e.nodeName)n.title=e.textContent||"";else if("Abstract"===e.nodeName)n.description=e.textContent||"";else if("BoundingBox"===e.nodeName){const r=e.getAttribute(o);if(r&&0===r.indexOf("EPSG:")){const n=parseInt(r.substring(5),10);0===n||isNaN(n)||a||(a="1.3.0"===t?ee(e,n,(0,M.A)(n)):ee(e,n))}const s=r&&r.indexOf(":");if(s&&s>-1){let i=parseInt(r.substring(s+1,r.length),10);0===i||isNaN(i)||(i=G[i]??i);const a="1.3.0"===t?ee(e,i,(0,M.A)(i)):ee(e,i);a&&n.fullExtents&&n.fullExtents.push(a)}}else if(e.nodeName===o)(e.textContent?.split(" ")??[]).forEach((e=>{const t=e.includes(":")?parseInt(e.split(":")[1],10):parseInt(e,10);if(0!==t&&!isNaN(t)){const e=G[t]??t;n.spatialReferences.includes(e)||n.spatialReferences.push(e)}}));else if("Style"!==e.nodeName||n.legendUrl){if("Layer"===e.nodeName){const s=se(e,t,r);s&&(s.parentLayerId=n.id,n.sublayers||(n.sublayers=[]),n.sublayers.push(s))}}else{const t=Y("LegendURL",e);if(t){const e=Y("OnlineResource",t);e&&(n.legendUrl=e.getAttribute("xlink:href"))}}})),n.extent=a?.toJSON(),n.dimensions=z("Dimension",e).filter((e=>e.getAttribute("name")&&e.getAttribute("units")&&e.textContent)).map((e=>{const t=e.getAttribute("name"),r=e.getAttribute("units"),n=e.textContent,s=e.getAttribute("unitSymbol")??void 0,i=e.getAttribute("default")??void 0,a="0"!==Q("default",e,"0"),o="0"!==Q("nearestValue",e,"0"),l="0"!==Q("current",e,"0");return oe({name:t,units:r})?{name:"time",units:"ISO8601",extent:pe(n),default:pe(i),multipleValues:a,nearestValue:o,current:l}:ae({name:t,units:r})?{name:"elevation",units:r,extent:le(n),unitSymbol:s,default:le(i),multipleValues:a,nearestValue:o}:{name:t,units:r,extent:ue(n),unitSymbol:s,default:ue(i),multipleValues:a,nearestValue:o}})),n}function ie(e){return e.nodeType===Node.ELEMENT_NODE}function ae(e){return/^elevation$/i.test(e.name)&&/^(epsg|crs):\d+$/i.test(e.units)}function oe(e){return/^time$/i.test(e.name)&&/^iso8601$/i.test(e.units)}function le(e){if(!e)return;const t=e.includes("/"),r=e.split(",");return t?r.map((e=>{const t=e.split("/");return t.length<2?null:{min:parseFloat(t[0]),max:parseFloat(t[1]),resolution:t.length>=3&&"0"!==t[2]?parseFloat(t[2]):void 0}})).filter(k.pC):r.map((e=>parseFloat(e)))}function ue(e){if(!e)return;const t=e.includes("/"),r=e.split(",");return t?r.map((e=>{const t=e.split("/");return t.length<2?null:{min:t[0],max:t[1],resolution:t.length>=3&&"0"!==t[2]?t[2]:void 0}})).filter(k.pC):r}function pe(e){if(!e)return;const t=e.includes("/"),r=e.split(",");return t?r.map((e=>{const t=e.split("/");return t.length<2?null:{min:new Date(t[0]),max:new Date(t[1]),resolution:t.length>=3&&"0"!==t[2]?ce(t[2]):void 0}})).filter(k.pC):r.map((e=>new Date(e)))}function ce(e){const t=e.match(/(?:p(\d+y|\d+(?:\.|,)\d+y)?(\d+m|\d+(?:\.|,)\d+m)?(\d+d|\d+(?:\.|,)\d+d)?)?(?:t(\d+h|\d+(?:\.|,)\d+h)?(\d+m|\d+(?:\.|,)\d+m)?(\d+s|\d+(?:\.|,)\d+s)?)?/i);return t?{years:de(t[1]),months:de(t[2]),days:de(t[3]),hours:de(t[4]),minutes:de(t[5]),seconds:de(t[6])}:null}function de(e){if(!e)return 0;const t=e.match(/(?:\d+(?:\.|,)\d+|\d+)/);if(!t)return 0;const r=t[0].replace(",",".");return Number(r)}function me(e){return e.toISOString().replace(/\.[0-9]{3}/,"")}const ye=new Set([102100,3857,102113,900913]),fe=new Set([3395,54004]);const he=new c.X({bmp:"image/bmp",gif:"image/gif",jpg:"image/jpeg",png:"image/png",svg:"image/svg+xml"},{ignoreUnknown:!1});function be(e){return"text/html"===e}function ge(e){return"text/plain"===e}let xe=class extends((0,I.h)((0,L.n)((0,P.Q)((0,A.M)((0,O.q)((0,R.I)((0,m.R)(F.Z)))))))){constructor(...e){super(...e),this.allSublayers=new p.Z({getCollections:()=>[this.sublayers],getChildrenFunction:e=>e.sublayers}),this.customParameters=null,this.customLayerParameters=null,this.copyright=null,this.description=null,this.dimensions=null,this.fullExtent=null,this.fullExtents=null,this.featureInfoFormats=null,this.featureInfoUrl=null,this.fetchFeatureInfoFunction=null,this.imageFormat=null,this.imageMaxHeight=2048,this.imageMaxWidth=2048,this.imageTransparency=!0,this.legendEnabled=!0,this.mapUrl=null,this.isReference=null,this.operationalLayerType="WMS",this.spatialReference=null,this.spatialReferences=null,this.sublayers=null,this.type="wms",this.version=null,this.addHandles([(0,f.on)((()=>this.sublayers),"after-add",(({item:e})=>{e.parent=e.layer=this}),f.Z_),(0,f.on)((()=>this.sublayers),"after-remove",(({item:e})=>{e.layer=e.parent=null}),f.Z_),(0,f.YP)((()=>this.sublayers),((e,t)=>{if(t)for(const e of t)e.layer=e.parent=null;if(e)for(const t of e)t.parent=t.layer=this}),f.Z_)])}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}destroy(){this.allSublayers.destroy()}load(e){const t=null!=e?e.signal:null;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["WMS"]},e).catch(y.r9).then((()=>this._fetchService(t)))),Promise.resolve(this)}readFullExtentFromItemOrMap(e,t){const r=t.extent;return r?new S.Z({xmin:r[0][0],ymin:r[0][1],xmax:r[1][0],ymax:r[1][1]}):null}writeFullExtent(e,t){t.extent=[[e.xmin,e.ymin],[e.xmax,e.ymax]]}get featureInfoFormat(){return null==this.featureInfoFormats?null:this.featureInfoFormats.find(be)??this.featureInfoFormats.find(ge)??null}set featureInfoFormat(e){null==e?(this.revert("featureInfoFormat","service"),this._clearOverride("featureInfoFormat")):(be(e)||ge(e))&&this._override("featureInfoFormat",e)}readImageFormat(e,t){const r=t.supportedImageFormatTypes;return r&&r.includes("image/png")?"image/png":r&&r[0]}readSpatialReferenceFromItemOrDocument(e,t){return new C.Z(t.spatialReferences[0])}writeSpatialReferences(e,t){const r=this.spatialReference?.wkid;e&&r?(t.spatialReferences=e.filter((e=>e!==r)),t.spatialReferences.unshift(r)):t.spatialReferences=e}readSublayersFromItemOrMap(e,t,r){return ve(t.layers,r,t.visibleLayers)}readSublayers(e,t,r){return ve(t.layers,r)}writeSublayers(e,t,r,n){t.layers=[];const s=new Map,i=e.flatten((({sublayers:e})=>e??[]));for(const e of i)if("number"==typeof e.parent?.id){const t=s.get(e.parent.id);null!=t?t.push(e.id):s.set(e.parent.id,[e.id])}for(const e of i){const r={sublayer:e,...n},i=e.write({parentLayerId:"number"==typeof e.parent?.id?e.parent.id:-1},r);if(s.has(e.id)&&(i.sublayerIds=s.get(e.id)),!e.sublayers&&e.name){const n=e.write({},r);delete n.id,t.layers.push(n)}}t.visibleLayers=i.filter((({visible:e,sublayers:t})=>e&&!t)).map((({name:e})=>e)).toArray()}set url(e){if(!e)return void this._set("url",e);const{path:t,query:r}=(0,h.mN)(e);for(const e in r)/^(request|service)$/i.test(e)&&delete r[e];const n=(0,h.fl)(t,r??{});this._set("url",n)}createExportImageParameters(e,t,r,n){const s=n?.pixelRatio??1,i=(0,N.yZ)({extent:e,width:t})*s,a=new T.j({layer:this,scale:i}),{xmin:o,ymin:l,xmax:u,ymax:p,spatialReference:c}=e,d=function(e,t){let r=e.wkid;return null==t?r:(null!=r&&t.includes(r)||!e.latestWkid||(r=e.latestWkid),null!=r&&ye.has(r)?t.find((e=>ye.has(e)))||t.find((e=>fe.has(e)))||102100:r)}(c,this.spatialReferences),m="1.3.0"===this.version&&(0,M.A)(d)?`${l},${o},${p},${u}`:`${o},${l},${u},${p}`,y=a.toJSON();return{bbox:m,["1.3.0"===this.version?"crs":"srs"]:null==d||isNaN(d)?void 0:"EPSG:"+d,...y}}async fetchImage(e,t,r,n){const s=this.mapUrl,i=this.createExportImageParameters(e,t,r,n);if(!i.layers){const e=document.createElement("canvas");return e.width=t,e.height=r,e}const a=n?.timeExtent?.start,o=n?.timeExtent?.end,u=null!=a&&null!=o?a.getTime()===o.getTime()?me(a):`${me(a)}/${me(o)}`:void 0,p={responseType:"image",query:this._mixCustomParameters({width:t,height:r,...i,time:u,...this.refreshParameters}),signal:n?.signal};return(0,l.Z)(s??"",p).then((e=>e.data))}async fetchImageBitmap(e,t,r,n){const s=this.mapUrl??"",i=this.createExportImageParameters(e,t,r,n);if(!i.layers){const e=document.createElement("canvas");return e.width=t,e.height=r,e}const a=n?.timeExtent?.start,o=n?.timeExtent?.end,u=null!=a&&null!=o?a.getTime()===o.getTime()?me(a):`${me(a)}/${me(o)}`:void 0,p={responseType:"blob",query:this._mixCustomParameters({width:t,height:r,...i,time:u,...this.refreshParameters}),signal:n?.signal},{data:c}=await(0,l.Z)(s,p);return(0,Z.g)(c,s,n?.signal)}fetchFeatureInfo(e,t,r,n,s){const i=(0,N.yZ)({extent:e,width:t}),a=function(e){const t=e.filter((e=>e.popupEnabled&&e.name&&e.queryable));return t.length?t.map((({name:e})=>e)).join():null}(new T.j({layer:this,scale:i}).visibleSublayers);if(null==this.featureInfoUrl||null==a)return Promise.resolve([]);if(null==this.fetchFeatureInfoFunction&&null==this.featureInfoFormat)return Promise.resolve([]);const o="1.3.0"===this.version?{I:n,J:s}:{x:n,y:s},l={query_layers:a,request:"GetFeatureInfo",info_format:this.featureInfoFormat,feature_count:25,width:t,height:r,...o},u={...this.createExportImageParameters(e,t,r),...l},p=this._mixCustomParameters(u);return null!=this.fetchFeatureInfoFunction?this.fetchFeatureInfoFunction(p):this._defaultFetchFeatureInfoFunction((0,h.fl)(this.featureInfoUrl,p))}findSublayerById(e){return this.allSublayers.find((t=>t.id===e))}findSublayerByName(e){return this.allSublayers.find((t=>t.name===e))}serviceSupportsSpatialReference(e){return(0,j.G)(this.url)||null!=this.spatialReferences&&this.spatialReferences.some((t=>{const r=900913===t?C.Z.WebMercator:new C.Z({wkid:t});return(0,E.fS)(r,e)}))}_defaultFetchFeatureInfoFunction(e){const t=document.createElement("iframe");t.src=(0,h.qg)(e),t.style.border="none",t.style.margin="0",t.style.width="100%",t.setAttribute("sandbox","");const r=new o.Z({title:this.title,content:t}),n=new a.Z({sourceLayer:this,popupTemplate:r});return Promise.resolve([n])}async _fetchService(e){if(!this.resourceInfo&&this.parsedUrl?.path){const{path:t,query:r}=this.parsedUrl,{data:n}=await(0,l.Z)(t,{query:{SERVICE:"WMS",REQUEST:"GetCapabilities",...r,...this.customParameters},responseType:"xml",signal:e});this.resourceInfo=H(n)}if(this.parsedUrl){const e=new h.R9(this.parsedUrl.path),{httpsDomains:t}=i.default.request;"https"!==e.scheme||e.port&&"443"!==e.port||!e.host||t.includes(e.host)||t.push(e.host)}this.read(this.resourceInfo,{origin:"service"})}_mixCustomParameters(e){if(!this.customLayerParameters&&!this.customParameters)return e;const t={...this.customParameters,...this.customLayerParameters};for(const r in t)e[r.toLowerCase()]=t[r];return e}};function ve(e,t,r){e=e??[];const n=new Map;e.every((e=>null==e.id))&&(e=(0,d.d9)(e)).forEach(((e,t)=>e.id=t));for(const s of e){const e=new $;e.read(s,t),r&&!r.includes(e.name)&&(e.visible=!1),n.set(e.id,e)}const s=[];for(const t of e){const e=null!=t.id?n.get(t.id):null;if(e)if(null!=t.parentLayerId&&t.parentLayerId>=0){const r=n.get(t.parentLayerId);if(!r)continue;r.sublayers||(r.sublayers=new u.Z),r.sublayers.push(e)}else s.push(e)}return s}(0,s._)([(0,b.Cb)({readOnly:!0})],xe.prototype,"allSublayers",void 0),(0,s._)([(0,b.Cb)({json:{type:Object,write:!0}})],xe.prototype,"customParameters",void 0),(0,s._)([(0,b.Cb)({json:{type:Object,write:!0}})],xe.prototype,"customLayerParameters",void 0),(0,s._)([(0,b.Cb)({type:String,json:{write:!0}})],xe.prototype,"copyright",void 0),(0,s._)([(0,b.Cb)()],xe.prototype,"description",void 0),(0,s._)([(0,b.Cb)({readOnly:!0})],xe.prototype,"dimensions",void 0),(0,s._)([(0,b.Cb)({json:{type:[[Number]],read:{source:"extent"},write:{target:"extent"},origins:{"web-document":{write:{ignoreOrigin:!0}},"portal-item":{write:{ignoreOrigin:!0}}}}})],xe.prototype,"fullExtent",void 0),(0,s._)([(0,x.r)(["web-document","portal-item"],"fullExtent",["extent"])],xe.prototype,"readFullExtentFromItemOrMap",null),(0,s._)([(0,w.c)(["web-document","portal-item"],"fullExtent",{extent:{type:[[Number]]}})],xe.prototype,"writeFullExtent",null),(0,s._)([(0,b.Cb)()],xe.prototype,"fullExtents",void 0),(0,s._)([(0,b.Cb)({type:String,json:{write:{ignoreOrigin:!0}}})],xe.prototype,"featureInfoFormat",null),(0,s._)([(0,b.Cb)({type:[String],readOnly:!0})],xe.prototype,"featureInfoFormats",void 0),(0,s._)([(0,b.Cb)({type:String,json:{write:{ignoreOrigin:!0}}})],xe.prototype,"featureInfoUrl",void 0),(0,s._)([(0,b.Cb)()],xe.prototype,"fetchFeatureInfoFunction",void 0),(0,s._)([(0,b.Cb)({type:String,json:{origins:{"web-document":{default:"image/png",type:he.jsonValues,read:{reader:he.read,source:"format"},write:{writer:he.write,target:"format"}}}}})],xe.prototype,"imageFormat",void 0),(0,s._)([(0,x.r)("imageFormat",["supportedImageFormatTypes"])],xe.prototype,"readImageFormat",null),(0,s._)([(0,b.Cb)({type:Number,json:{read:{source:"maxHeight"},write:{target:"maxHeight"}}})],xe.prototype,"imageMaxHeight",void 0),(0,s._)([(0,b.Cb)({type:Number,json:{read:{source:"maxWidth"},write:{target:"maxWidth"}}})],xe.prototype,"imageMaxWidth",void 0),(0,s._)([(0,b.Cb)()],xe.prototype,"imageTransparency",void 0),(0,s._)([(0,b.Cb)(U.rn)],xe.prototype,"legendEnabled",void 0),(0,s._)([(0,b.Cb)({type:["show","hide","hide-children"]})],xe.prototype,"listMode",void 0),(0,s._)([(0,b.Cb)({type:String,json:{write:{ignoreOrigin:!0}}})],xe.prototype,"mapUrl",void 0),(0,s._)([(0,b.Cb)({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],xe.prototype,"isReference",void 0),(0,s._)([(0,b.Cb)({type:["WMS"]})],xe.prototype,"operationalLayerType",void 0),(0,s._)([(0,b.Cb)()],xe.prototype,"resourceInfo",void 0),(0,s._)([(0,b.Cb)({type:C.Z,json:{origins:{service:{read:{source:"extent.spatialReference"}}},write:!1}})],xe.prototype,"spatialReference",void 0),(0,s._)([(0,x.r)(["web-document","portal-item"],"spatialReference",["spatialReferences"])],xe.prototype,"readSpatialReferenceFromItemOrDocument",null),(0,s._)([(0,b.Cb)({type:[g.z8],json:{read:!1,origins:{service:{read:!0},"web-document":{read:!1,write:{ignoreOrigin:!0}},"portal-item":{read:!1,write:{ignoreOrigin:!0}}}}})],xe.prototype,"spatialReferences",void 0),(0,s._)([(0,w.c)(["web-document","portal-item"],"spatialReferences")],xe.prototype,"writeSpatialReferences",null),(0,s._)([(0,b.Cb)({type:u.Z.ofType($),json:{write:{target:"layers",overridePolicy(e,t,r){if(function(e,t){return e.some((e=>{for(const r in e)if((0,_.d)(e,r,null,t))return!0;return!1}))}(this.allSublayers,r))return{ignoreOrigin:!0}}}}})],xe.prototype,"sublayers",void 0),(0,s._)([(0,x.r)(["web-document","portal-item"],"sublayers",["layers","visibleLayers"])],xe.prototype,"readSublayersFromItemOrMap",null),(0,s._)([(0,x.r)("service","sublayers",["layers"])],xe.prototype,"readSublayers",null),(0,s._)([(0,w.c)("sublayers",{layers:{type:[$]},visibleLayers:{type:[String]}})],xe.prototype,"writeSublayers",null),(0,s._)([(0,b.Cb)({json:{read:!1},readOnly:!0,value:"wms"})],xe.prototype,"type",void 0),(0,s._)([(0,b.Cb)(U.HQ)],xe.prototype,"url",null),(0,s._)([(0,b.Cb)({type:String,json:{write:{ignoreOrigin:!0}}})],xe.prototype,"version",void 0),xe=(0,s._)([(0,v.j)("esri.layers.WMSLayer")],xe);const we=xe},73616:function(e,t,r){r.d(t,{A:function(){return s}});const n=[[3819,3819],[3821,3824],[3889,3889],[3906,3906],[4001,4025],[4027,4036],[4039,4047],[4052,4055],[4074,4075],[4080,4081],[4120,4176],[4178,4185],[4188,4216],[4218,4289],[4291,4304],[4306,4319],[4322,4326],[4463,4463],[4470,4470],[4475,4475],[4483,4483],[4490,4490],[4555,4558],[4600,4646],[4657,4765],[4801,4811],[4813,4821],[4823,4824],[4901,4904],[5013,5013],[5132,5132],[5228,5229],[5233,5233],[5246,5246],[5252,5252],[5264,5264],[5324,5340],[5354,5354],[5360,5360],[5365,5365],[5370,5373],[5381,5381],[5393,5393],[5451,5451],[5464,5464],[5467,5467],[5489,5489],[5524,5524],[5527,5527],[5546,5546],[2044,2045],[2081,2083],[2085,2086],[2093,2093],[2096,2098],[2105,2132],[2169,2170],[2176,2180],[2193,2193],[2200,2200],[2206,2212],[2319,2319],[2320,2462],[2523,2549],[2551,2735],[2738,2758],[2935,2941],[2953,2953],[3006,3030],[3034,3035],[3038,3051],[3058,3059],[3068,3068],[3114,3118],[3126,3138],[3150,3151],[3300,3301],[3328,3335],[3346,3346],[3350,3352],[3366,3366],[3389,3390],[3416,3417],[3833,3841],[3844,3850],[3854,3854],[3873,3885],[3907,3910],[4026,4026],[4037,4038],[4417,4417],[4434,4434],[4491,4554],[4839,4839],[5048,5048],[5105,5130],[5253,5259],[5269,5275],[5343,5349],[5479,5482],[5518,5519],[5520,5520],[20004,20032],[20064,20092],[21413,21423],[21473,21483],[21896,21899],[22171,22177],[22181,22187],[22191,22197],[25884,25884],[27205,27232],[27391,27398],[27492,27492],[28402,28432],[28462,28492],[30161,30179],[30800,30800],[31251,31259],[31275,31279],[31281,31290],[31466,31700]];function s(e){return null!=e&&n.some((([t,r])=>e>=t&&e<=r))}},49999:function(e,t,r){r.d(t,{j:function(){return l}});var n=r(36663),s=r(74396),i=r(81977),a=(r(39994),r(13802),r(4157),r(40266));const o={visible:"visibleSublayers"};let l=class extends s.Z{constructor(e){super(e),this.scale=0}set layer(e){this._get("layer")!==e&&(this._set("layer",e),this.removeHandles("layer"),e&&this.addHandles([e.sublayers.on("change",(()=>this.notifyChange("visibleSublayers"))),e.on("wms-sublayer-update",(e=>this.notifyChange(o[e.propertyName])))],"layer"))}get layers(){return this.visibleSublayers.filter((({name:e})=>e)).map((({name:e})=>e)).join()}get version(){this.commitProperty("layers");const e=this.layer;return e&&e.commitProperty("imageTransparency"),(this._get("version")||0)+1}get visibleSublayers(){const{layer:e,scale:t}=this,r=e?.sublayers,n=[],s=e=>{const{minScale:r,maxScale:i,sublayers:a,visible:o}=e;o&&(0===t||(0===r||t<=r)&&(0===i||t>=i))&&(a?a.forEach(s):n.push(e))};return r?.forEach(s),n}toJSON(){const{layer:e,layers:t}=this,{imageFormat:r,imageTransparency:n,version:s}=e;return{format:r,request:"GetMap",service:"WMS",styles:"",transparent:n?"TRUE":"FALSE",version:s,layers:t}}};(0,n._)([(0,i.Cb)()],l.prototype,"layer",null),(0,n._)([(0,i.Cb)({readOnly:!0})],l.prototype,"layers",null),(0,n._)([(0,i.Cb)({type:Number})],l.prototype,"scale",void 0),(0,n._)([(0,i.Cb)({readOnly:!0})],l.prototype,"version",null),(0,n._)([(0,i.Cb)({readOnly:!0})],l.prototype,"visibleSublayers",null),l=(0,n._)([(0,a.j)("esri.layers.support.ExportWMSImageParameters")],l)}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/1968.7f204c7410c0c3c2b981.js b/docs/sentinel1-explorer/1968.7f204c7410c0c3c2b981.js new file mode 100644 index 00000000..0d82d175 --- /dev/null +++ b/docs/sentinel1-explorer/1968.7f204c7410c0c3c2b981.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[1968],{31968:function(e,t,a){a.r(t),a.d(t,{default:function(){return x}});var r,i=a(36663),o=(a(91957),a(66341)),n=a(70375),s=a(25709),l=a(15842),p=a(81977),u=(a(39994),a(13802),a(4157),a(40266)),g=a(14685),d=a(91772),y=a(24568),h=a(38481),c=a(27668),b=a(12478),v=a(95874),w=a(4452),m=a(81590);const Z=new(a(23758).f)("0/0/0",0,0,0,void 0);let M=r=class extends((0,c.h)((0,v.M)((0,b.Q)(h.Z)))){constructor(){super(...arguments),this.tileInfo=m.Z.create({spatialReference:g.Z.WebMercator,size:256}),this.type="base-tile",this.fullExtent=new d.Z(-20037508.342787,-20037508.34278,20037508.34278,20037508.342787,g.Z.WebMercator),this.spatialReference=g.Z.WebMercator}getTileBounds(e,t,a,r){const i=r||(0,y.Ue)();return Z.level=e,Z.row=t,Z.col=a,Z.extent=i,this.tileInfo.updateTileInfo(Z),Z.extent=void 0,i}fetchTile(e,t,a,r={}){const{signal:i}=r,n=this.getTileUrl(e,t,a),s={responseType:"image",signal:i,query:{...this.refreshParameters}};return(0,o.Z)(n??"",s).then((e=>e.data))}async fetchImageBitmapTile(e,t,a,i={}){const{signal:n}=i;if(this.fetchTile!==r.prototype.fetchTile){const r=await this.fetchTile(e,t,a,i);return(0,w.V)(r,e,t,a,n)}const s=this.getTileUrl(e,t,a)??"",l={responseType:"blob",signal:n,query:{...this.refreshParameters}},{data:p}=await(0,o.Z)(s,l);return(0,w.V)(p,e,t,a,n)}getTileUrl(){throw new n.Z("basetilelayer:gettileurl-not-implemented","getTileUrl() is not implemented")}};(0,i._)([(0,p.Cb)({type:m.Z})],M.prototype,"tileInfo",void 0),(0,i._)([(0,p.Cb)({type:["show","hide"]})],M.prototype,"listMode",void 0),(0,i._)([(0,p.Cb)({readOnly:!0,value:"base-tile"})],M.prototype,"type",void 0),(0,i._)([(0,p.Cb)({nonNullable:!0})],M.prototype,"fullExtent",void 0),(0,i._)([(0,p.Cb)()],M.prototype,"spatialReference",void 0),M=r=(0,i._)([(0,u.j)("esri.layers.BaseTileLayer")],M);const f=M;var _=a(43330),T=a(13054),C=a(67666);const S=new s.X({BingMapsAerial:"aerial",BingMapsRoad:"road",BingMapsHybrid:"hybrid"});let j=class extends((0,c.h)((0,_.q)((0,l.R)(f)))){constructor(e){super(e),this.type="bing-maps",this.tileInfo=new m.Z({size:[256,256],dpi:96,origin:new C.Z({x:-20037508.342787,y:20037508.342787,spatialReference:g.Z.WebMercator}),spatialReference:g.Z.WebMercator,lods:[new T.Z({level:1,resolution:78271.5169639999,scale:295828763.795777}),new T.Z({level:2,resolution:39135.7584820001,scale:147914381.897889}),new T.Z({level:3,resolution:19567.8792409999,scale:73957190.948944}),new T.Z({level:4,resolution:9783.93962049996,scale:36978595.474472}),new T.Z({level:5,resolution:4891.96981024998,scale:18489297.737236}),new T.Z({level:6,resolution:2445.98490512499,scale:9244648.868618}),new T.Z({level:7,resolution:1222.99245256249,scale:4622324.434309}),new T.Z({level:8,resolution:611.49622628138,scale:2311162.217155}),new T.Z({level:9,resolution:305.748113140558,scale:1155581.108577}),new T.Z({level:10,resolution:152.874056570411,scale:577790.554289}),new T.Z({level:11,resolution:76.4370282850732,scale:288895.277144}),new T.Z({level:12,resolution:38.2185141425366,scale:144447.638572}),new T.Z({level:13,resolution:19.1092570712683,scale:72223.819286}),new T.Z({level:14,resolution:9.55462853563415,scale:36111.909643}),new T.Z({level:15,resolution:4.77731426794937,scale:18055.954822}),new T.Z({level:16,resolution:2.38865713397468,scale:9027.977411}),new T.Z({level:17,resolution:1.19432856685505,scale:4513.988705}),new T.Z({level:18,resolution:.597164283559817,scale:2256.994353}),new T.Z({level:19,resolution:.298582141647617,scale:1128.497176}),new T.Z({level:20,resolution:.1492910708238085,scale:564.248588})]}),this.key=null,this.style="road",this.culture="en-US",this.region=null,this.portalUrl=null,this.hasAttributionData=!0}get bingMetadata(){return this._get("bingMetadata")}set bingMetadata(e){this._set("bingMetadata",e)}get copyright(){return null!=this.bingMetadata?this.bingMetadata.copyright:null}get operationalLayerType(){return S.toJSON(this.style)}get bingLogo(){return null!=this.bingMetadata?this.bingMetadata.brandLogoUri:null}load(e){return this.key?this.addResolvingPromise(this._getMetadata()):this.portalUrl?this.addResolvingPromise(this._getPortalBingKey().then((()=>this._getMetadata()))):this.addResolvingPromise(Promise.reject(new n.Z("bingmapslayer:load","Bing layer must have bing key."))),Promise.resolve(this)}getTileUrl(e,t,a){if(!this.loaded||null==this.bingMetadata)return null;const r=this.bingMetadata.resourceSets[0].resources[0],i=r.imageUrlSubdomains[t%r.imageUrlSubdomains.length],o=this._getQuadKey(e,t,a);return r.imageUrl.replace("{subdomain}",i).replace("{quadkey}",o)}async fetchAttributionData(){return this.load().then((()=>null==this.bingMetadata?null:{contributors:this.bingMetadata.resourceSets[0].resources[0].imageryProviders.map((e=>({attribution:e.attribution,coverageAreas:e.coverageAreas.map((e=>({zoomMin:e.zoomMin,zoomMax:e.zoomMax,score:1,bbox:[e.bbox[0],e.bbox[1],e.bbox[2],e.bbox[3]]})))})))}))}_getMetadata(){const e={road:"roadOnDemand",aerial:"aerial",hybrid:"aerialWithLabelsOnDemand"}[this.style];return(0,o.Z)(`https://dev.virtualearth.net/REST/v1/Imagery/Metadata/${e}`,{responseType:"json",query:{include:"ImageryProviders",uriScheme:"https",key:this.key,suppressStatus:!0,output:"json",culture:this.culture,userRegion:this.region}}).then((e=>{const t=e.data;if(200!==t.statusCode)throw new n.Z("bingmapslayer:getmetadata",t.statusDescription);if(this.bingMetadata=t,0===this.bingMetadata.resourceSets.length)throw new n.Z("bingmapslayer:getmetadata","no bing resourcesets");if(0===this.bingMetadata.resourceSets[0].resources.length)throw new n.Z("bingmapslayer:getmetadata","no bing resources")})).catch((e=>{throw new n.Z("bingmapslayer:getmetadata",e.message)}))}_getPortalBingKey(){return(0,o.Z)(this.portalUrl??"",{responseType:"json",authMode:"no-prompt",query:{f:"json"}}).then((e=>{if(!e.data.bingKey)throw new n.Z("bingmapslayer:getportalbingkey","The referenced Portal does not contain a valid bing key");this.key=e.data.bingKey})).catch((e=>{throw new n.Z("bingmapslayer:getportalbingkey",e.message)}))}_getQuadKey(e,t,a){let r="";for(let i=e;i>0;i--){let e=0;const o=1<requestAnimationFrame((()=>t())))))}n.d(e,{c:function(){return r},g:function(){return i}})},44586:function(t,e,n){n.d(e,{I:function(){return h},d:function(){return m}});var i=n(77210),r=n(79145),s=n(85545);const o="flip-rtl",a={},c={},u={s:16,m:24,l:32};async function l({icon:t,scale:e}){const n=u[e],r=function(t){const e=!isNaN(Number(t.charAt(0))),n=t.split("-");if(n.length>0){const e=/[a-z]/i;t=n.map(((t,n)=>t.replace(e,(function(t,e){return 0===n&&0===e?t:t.toUpperCase()})))).join("")}return e?`i${t}`:t}(t),s="F"===r.charAt(r.length-1),o=`${s?r.substring(0,r.length-1):r}${n}${s?"F":""}`;if(a[o])return a[o];c[o]||(c[o]=fetch((0,i.K3)(`./assets/icon/${o}.json`)).then((t=>t.json())).catch((()=>"")));const l=await c[o];return a[o]=l,l}const h=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.icon=null,this.flipRtl=!1,this.scale="m",this.textLabel=void 0,this.pathData=void 0,this.visible=!1}connectedCallback(){this.waitUntilVisible((()=>{this.visible=!0,this.loadIconPathData()}))}disconnectedCallback(){this.intersectionObserver?.disconnect(),this.intersectionObserver=null}async componentWillLoad(){this.loadIconPathData()}render(){const{el:t,flipRtl:e,pathData:n,scale:s,textLabel:a}=this,c=(0,r.a)(t),l=u[s],h=!!a,m=[].concat(n||"");return(0,i.h)(i.AA,{"aria-hidden":(0,r.t)(!h),"aria-label":h?a:null,role:h?"img":null},(0,i.h)("svg",{"aria-hidden":"true",class:{[o]:"rtl"===c&&e,svg:!0},fill:"currentColor",height:"100%",viewBox:`0 0 ${l} ${l}`,width:"100%",xmlns:"http://www.w3.org/2000/svg"},m.map((t=>"string"==typeof t?(0,i.h)("path",{d:t}):(0,i.h)("path",{d:t.d,opacity:"opacity"in t?t.opacity:1})))))}async loadIconPathData(){const{icon:t,scale:e,visible:n}=this;if(!i.Z5.isBrowser||!t||!n)return;const r=await l({icon:t,scale:e});t===this.icon&&(this.pathData=r)}waitUntilVisible(t){this.intersectionObserver=(0,s.c)("intersection",(e=>{e.forEach((e=>{e.isIntersecting&&(this.intersectionObserver.disconnect(),this.intersectionObserver=null,t())}))}),{rootMargin:"50px"}),this.intersectionObserver?this.intersectionObserver.observe(this.el):t()}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{icon:["loadIconPathData"],scale:["loadIconPathData"]}}static get style(){return":host{display:inline-flex;color:var(--calcite-ui-icon-color)}:host([scale=s]){inline-size:16px;block-size:16px;min-inline-size:16px;min-block-size:16px}:host([scale=m]){inline-size:24px;block-size:24px;min-inline-size:24px;min-block-size:24px}:host([scale=l]){inline-size:32px;block-size:32px;min-inline-size:32px;min-block-size:32px}.flip-rtl{transform:scaleX(-1)}.svg{display:block}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-icon",{icon:[513],flipRtl:[516,"flip-rtl"],scale:[513],textLabel:[1,"text-label"],pathData:[32],visible:[32]},void 0,{icon:["loadIconPathData"],scale:["loadIconPathData"]}]);function m(){if("undefined"==typeof customElements)return;["calcite-icon"].forEach((t=>{if("calcite-icon"===t)customElements.get(t)||customElements.define(t,h)}))}m()},25694:function(t,e,n){function i(t){return"Enter"===t||" "===t}n.d(e,{i:function(){return i},n:function(){return r}});const r=["0","1","2","3","4","5","6","7","8","9"]},16265:function(t,e,n){n.d(e,{a:function(){return a},c:function(){return c},s:function(){return o}});var i=n(77210);const r=new WeakMap,s=new WeakMap;function o(t){s.set(t,new Promise((e=>r.set(t,e))))}function a(t){r.get(t)()}async function c(t){if(await function(t){return s.get(t)}(t),i.Z5.isBrowser)return(0,i.xE)(t),new Promise((t=>requestAnimationFrame((()=>t()))))}},19417:function(t,e,n){n.d(e,{B:function(){return c},a:function(){return v},c:function(){return D},d:function(){return F},g:function(){return x},i:function(){return u},n:function(){return k},p:function(){return l},s:function(){return d}});var i=n(79145),r=n(25694),s=n(85545);const o=new RegExp("\\.(0+)?$"),a=new RegExp("0+$");class c{constructor(t){if(t instanceof c)return t;const[e,n]=function(t){const e=t.split(/[eE]/);if(1===e.length)return t;const n=+t;if(Number.isSafeInteger(n))return`${n}`;const i="-"===t.charAt(0),r=+e[1],s=e[0].split("."),a=(i?s[0].substring(1):s[0])||"",c=s[1]||"",u=(t,e)=>{const n=Math.abs(e)-t.length,i=n>0?`${"0".repeat(n)}${t}`:t;return`${i.slice(0,e)}.${i.slice(e)}`},l=(t,e)=>{const n=e>t.length?`${t}${"0".repeat(e-t.length)}`:t;return`${n.slice(0,e)}.${n.slice(e)}`},m=r>0?`${a}${l(c,r)}`:`${u(a,r)}${c}`;return`${i?"-":""}${"."===m.charAt(0)?"0":""}${m.replace(o,"").replace(h,"")}`}(t).split(".").concat("");this.value=BigInt(e+n.padEnd(c.DECIMALS,"0").slice(0,c.DECIMALS))+BigInt(c.ROUNDED&&n[c.DECIMALS]>="5"),this.isNegative="-"===t.charAt(0)}getIntegersAndDecimals(){const t=this.value.toString().replace("-","").padStart(c.DECIMALS+1,"0");return{integers:t.slice(0,-c.DECIMALS),decimals:t.slice(-c.DECIMALS).replace(a,"")}}toString(){const{integers:t,decimals:e}=this.getIntegersAndDecimals();return`${this.isNegative?"-":""}${t}${e.length?"."+e:""}`}formatToParts(t){const{integers:e,decimals:n}=this.getIntegersAndDecimals(),i=t.numberFormatter.formatToParts(BigInt(e));return this.isNegative&&i.unshift({type:"minusSign",value:t.minusSign}),n.length&&(i.push({type:"decimal",value:t.decimal}),n.split("").forEach((t=>i.push({type:"fraction",value:t})))),i}format(t){const{integers:e,decimals:n}=this.getIntegersAndDecimals();return`${`${this.isNegative?t.minusSign:""}${t.numberFormatter.format(BigInt(e))}`}${n.length?`${t.decimal}${n.split("").map((e=>t.numberFormatter.format(Number(e)))).join("")}`:""}`}add(t){return c.fromBigInt(this.value+new c(t).value)}subtract(t){return c.fromBigInt(this.value-new c(t).value)}multiply(t){return c._divRound(this.value*new c(t).value,c.SHIFT)}divide(t){return c._divRound(this.value*c.SHIFT,new c(t).value)}}function u(t){return!(!t||isNaN(Number(t)))}function l(t){return t&&(e=t,r.n.some((t=>e.includes(t))))?b(t,(t=>{let e=!1;const n=t.split("").filter(((t,n)=>t.match(/\./g)&&!e?(e=!0,!0):!(!t.match(/\-/g)||0!==n)||r.n.includes(t))).join("");return u(n)?new c(n).toString():""})):"";var e}c.DECIMALS=100,c.ROUNDED=!0,c.SHIFT=BigInt("1"+"0".repeat(c.DECIMALS)),c._divRound=(t,e)=>c.fromBigInt(t/e+(c.ROUNDED?t*BigInt(2)/e%BigInt(2):BigInt(0))),c.fromBigInt=t=>Object.assign(Object.create(c.prototype),{value:t,isNegative:tb(t,(t=>{const e=t.replace(g,"").replace(m,"").replace(h,"$1");return u(e)?p.test(e)?e:function(t){const e=t.split(".")[1],n=new c(t).toString(),[i,r]=n.split(".");return e&&r!==e?`${i}.${e}`:n}(e):t}));function b(t,e){if(!t)return t;const n=t.toLowerCase().indexOf("e")+1;return n?t.replace(/[eE]*$/g,"").substring(0,n).concat(t.slice(n).replace(/[eE]/g,"")).split(/[eE]/).map(((t,n)=>e(1===n?t.replace(/\./g,""):t))).join("e").replace(/^e/,"1e"):e(t)}function v(t,e,n){const i=e.split(".")[1];if(i){const r=i.match(f)[0];if(r&&n.delocalize(t).length!==e.length&&-1===i.indexOf("e")){const e=n.decimal;return(t=t.includes(e)?t:`${t}${e}`).padEnd(t.length+r.length,n.localize("0"))}}return t}const w="en",$=["ar","bg","bs","ca","cs","da","de","el",w,"es","et","fi","fr","he","hr","hu","id","it","ja","ko","lt","lv","no","nl","pl","pt-BR","pt-PT","ro","ru","sk","sl","sr","sv","th","tr","uk","vi","zh-CN","zh-HK","zh-TW"],_=["ar","bg","bs","ca","cs","da","de","de-AT","de-CH","el",w,"en-AU","en-CA","en-GB","es","es-MX","et","fi","fr","fr-CH","he","hi","hr","hu","id","it","it-CH","ja","ko","lt","lv","mk","no","nl","pl","pt","pt-PT","ro","ru","sk","sl","sr","sv","th","tr","uk","vi","zh-CN","zh-HK","zh-TW"],y=["arab","arabext","latn"],I=t=>y.includes(t),E=(new Intl.NumberFormat).resolvedOptions().numberingSystem,O="arab"!==E&&I(E)?E:"latn";function x(t,e="cldr"){const n="cldr"===e?_:$;return t?n.includes(t)?t:"nb"===(t=t.toLowerCase())?"no":"t9n"===e&&"pt"===t?"pt-BR":(t.includes("-")&&(t=t.replace(/(\w+)-(\w+)/,((t,e,n)=>`${e}-${n.toUpperCase()}`)),n.includes(t)||(t=t.split("-")[0])),"zh"===t?"zh-CN":n.includes(t)?t:w):w}const S=new Set;function D(t){!function(t){t.effectiveLocale=function(t){return t.el.lang||(0,i.c)(t.el,"[lang]")?.lang||document.documentElement.lang||w}(t)}(t),0===S.size&&z?.observe(document.documentElement,{attributes:!0,attributeFilter:["lang"],subtree:!0}),S.add(t)}function F(t){S.delete(t),0===S.size&&z.disconnect()}const z=(0,s.c)("mutation",(t=>{t.forEach((t=>{const e=t.target;S.forEach((t=>{if(!(0,i.b)(e,t.el))return;const n=(0,i.c)(t.el,"[lang]");if(!n)return void(t.effectiveLocale=w);const r=n.lang;t.effectiveLocale=n.hasAttribute("lang")&&""===r?w:r}))}))}));const k=new class{constructor(){this.delocalize=t=>this._numberFormatOptions?b(t,(t=>t.replace(new RegExp(`[${this._minusSign}]`,"g"),"-").replace(new RegExp(`[${this._group}]`,"g"),"").replace(new RegExp(`[${this._decimal}]`,"g"),".").replace(new RegExp(`[${this._digits.join("")}]`,"g"),this._getDigitIndex))):t,this.localize=t=>this._numberFormatOptions?b(t,(t=>u(t.trim())?new c(t.trim()).format(this).replace(new RegExp(`[${this._actualGroup}]`,"g"),this._group):t)):t}get group(){return this._group}get decimal(){return this._decimal}get minusSign(){return this._minusSign}get digits(){return this._digits}get numberFormatter(){return this._numberFormatter}get numberFormatOptions(){return this._numberFormatOptions}set numberFormatOptions(t){var e;if(t.locale=x(t?.locale),t.numberingSystem=(e=t?.numberingSystem,I(e)?e:O),!this._numberFormatOptions&&t.locale===w&&t.numberingSystem===O&&2===Object.keys(t).length||JSON.stringify(this._numberFormatOptions)===JSON.stringify(t))return;this._numberFormatOptions=t,this._numberFormatter=new Intl.NumberFormat(this._numberFormatOptions.locale,this._numberFormatOptions),this._digits=[...new Intl.NumberFormat(this._numberFormatOptions.locale,{useGrouping:!1,numberingSystem:this._numberFormatOptions.numberingSystem}).format(9876543210)].reverse();const n=new Map(this._digits.map(((t,e)=>[t,e]))),i=new Intl.NumberFormat(this._numberFormatOptions.locale,{numberingSystem:this._numberFormatOptions.numberingSystem}).formatToParts(-12345678.9);this._actualGroup=i.find((t=>"group"===t.type)).value,this._group=0===this._actualGroup.trim().length||" "==this._actualGroup?" ":this._actualGroup,this._decimal=i.find((t=>"decimal"===t.type)).value,this._minusSign=i.find((t=>"minusSign"===t.type)).value,this._getDigitIndex=t=>n.get(t)}}},85545:function(t,e,n){n.d(e,{c:function(){return r}});var i=n(77210);function r(t,e,n){if(!i.Z5.isBrowser)return;const r=function(t){class e extends window.MutationObserver{constructor(t){super(t),this.observedEntry=[],this.callback=t}observe(t,e){return this.observedEntry.push({target:t,options:e}),super.observe(t,e)}unobserve(t){const e=this.observedEntry.filter((e=>e.target!==t));this.observedEntry=[],this.callback(super.takeRecords(),this),this.disconnect(),e.forEach((t=>this.observe(t.target,t.options)))}}return"intersection"===t?window.IntersectionObserver:"mutation"===t?e:window.ResizeObserver}(t);return new r(e,n)}},53801:function(t,e,n){n.d(e,{c:function(){return h},d:function(){return m},s:function(){return c},u:function(){return l}});var i=n(77210),r=n(19417);const s={};function o(){throw new Error("could not fetch component message bundle")}function a(t){t.messages={...t.defaultMessages,...t.messageOverrides}}async function c(t){t.defaultMessages=await u(t,t.effectiveLocale),a(t)}async function u(t,e){if(!i.Z5.isBrowser)return{};const{el:n}=t,a=n.tagName.toLowerCase().replace("calcite-","");return async function(t,e){const n=`${e}_${t}`;return s[n]||(s[n]=fetch((0,i.K3)(`./assets/${e}/t9n/messages_${t}.json`)).then((t=>(t.ok||o(),t.json()))).catch((()=>o()))),s[n]}((0,r.g)(e,"t9n"),a)}async function l(t,e){t.defaultMessages=await u(t,e),a(t)}function h(t){t.onMessagesChange=g}function m(t){t.onMessagesChange=void 0}function g(){a(this)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2149.00dfd018974b866d4dd2.js.LICENSE.txt b/docs/sentinel1-explorer/2149.00dfd018974b866d4dd2.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/2149.00dfd018974b866d4dd2.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/218.e36138b16de18a4b0149.js b/docs/sentinel1-explorer/218.e36138b16de18a4b0149.js new file mode 100644 index 00000000..20430ccc --- /dev/null +++ b/docs/sentinel1-explorer/218.e36138b16de18a4b0149.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[218],{11026:function(t,i,s){s.d(i,{Z:function(){return I}});const n=[["(",")"],[")","("],["<",">"],[">","<"],["[","]"],["]","["],["{","}"],["}","{"],["«","»"],["»","«"],["‹","›"],["›","‹"],["⁽","⁾"],["⁾","⁽"],["₍","₎"],["₎","₍"],["≤","≥"],["≥","≤"],["〈","〉"],["〉","〈"],["﹙","﹚"],["﹚","﹙"],["﹛","﹜"],["﹜","﹛"],["﹝","﹞"],["﹞","﹝"],["﹤","﹥"],["﹥","﹤"]],e=["آ","أ","إ","ا"],r=["ﻵ","ﻷ","ﻹ","ﻻ"],h=["ﻶ","ﻸ","ﻺ","ﻼ"],o=["ا","ب","ت","ث","ج","ح","خ","د","ذ","ر","ز","س","ش","ص","ض","ط","ظ","ع","غ","ف","ق","ك","ل","م","ن","ه","و","ي","إ","أ","آ","ة","ى","ل","م","ن","ه","و","ي","إ","أ","آ","ة","ى","ی","ئ","ؤ"],a=["ﺍ","ﺏ","ﺕ","ﺙ","ﺝ","ﺡ","ﺥ","ﺩ","ﺫ","ﺭ","ﺯ","ﺱ","ﺵ","ﺹ","ﺽ","ﻁ","ﻅ","ﻉ","ﻍ","ﻑ","ﻕ","ﻙ","ﻝ","ﻡ","ﻥ","ﻩ","ﻭ","ﻱ","ﺇ","ﺃ","ﺁ","ﺓ","ﻯ","ﯼ","ﺉ","ﺅ","ﹰ","ﹲ","ﹴ","ﹶ","ﹸ","ﹺ","ﹼ","ﹾ","ﺀ","ﺉ","ﺅ"],u=["ﺎ","ﺐ","ﺖ","ﺚ","ﺞ","ﺢ","ﺦ","ﺪ","ﺬ","ﺮ","ﺰ","ﺲ","ﺶ","ﺺ","ﺾ","ﻂ","ﻆ","ﻊ","ﻎ","ﻒ","ﻖ","ﻚ","ﻞ","ﻢ","ﻦ","ﻪ","ﻮ","ﻲ","ﺈ","ﺄ","ﺂ","ﺔ","ﻰ","ﯽ","ﺊ","ﺆ","ﹰ","ﹲ","ﹴ","ﹶ","ﹸ","ﹺ","ﹼ","ﹾ","ﺀ","ﺊ","ﺆ"],l=["ﺎ","ﺒ","ﺘ","ﺜ","ﺠ","ﺤ","ﺨ","ﺪ","ﺬ","ﺮ","ﺰ","ﺴ","ﺸ","ﺼ","ﻀ","ﻄ","ﻈ","ﻌ","ﻐ","ﻔ","ﻘ","ﻜ","ﻠ","ﻤ","ﻨ","ﻬ","ﻮ","ﻴ","ﺈ","ﺄ","ﺂ","ﺔ","ﻰ","ﯿ","ﺌ","ﺆ","ﹱ","ﹲ","ﹴ","ﹷ","ﹹ","ﹻ","ﹽ","ﹿ","ﺀ","ﺌ","ﺆ"],_=["ﺍ","ﺑ","ﺗ","ﺛ","ﺟ","ﺣ","ﺧ","ﺩ","ﺫ","ﺭ","ﺯ","ﺳ","ﺷ","ﺻ","ﺿ","ﻃ","ﻇ","ﻋ","ﻏ","ﻓ","ﻗ","ﻛ","ﻟ","ﻣ","ﻧ","ﻫ","ﻭ","ﻳ","ﺇ","ﺃ","ﺁ","ﺓ","ﻯ","ﯾ","ﺋ","ﺅ","ﹰ","ﹲ","ﹴ","ﹶ","ﹸ","ﹺ","ﹼ","ﹾ","ﺀ","ﺋ","ﺅ"],c=["ء","آ","أ","ؤ","إ","ا","ة","د","ذ","ر","ز","و","ى"],x=["ً","ً","ٌ","؟","ٍ","؟","َ","َ","ُ","ُ","ِ","ِ","ّ","ّ","ْ","ْ","ء","آ","آ","أ","أ","ؤ","ؤ","إ","إ","ئ","ئ","ئ","ئ","ا","ا","ب","ب","ب","ب","ة","ة","ت","ت","ت","ت","ث","ث","ث","ث","ج","ج","ج","ج","ح","ح","ح","ح","خ","خ","خ","خ","د","د","ذ","ذ","ر","ر","ز","ز","س","س","س","س","ش","ش","ش","ش","ص","ص","ص","ص","ض","ض","ض","ض","ط","ط","ط","ط","ظ","ظ","ظ","ظ","ع","ع","ع","ع","غ","غ","غ","غ","ف","ف","ف","ف","ق","ق","ق","ق","ك","ك","ك","ك","ل","ل","ل","ل","م","م","م","م","ن","ن","ن","ن","ه","ه","ه","ه","و","و","ى","ى","ي","ي","ي","ي","ﻵ","ﻶ","ﻷ","ﻸ","ﻹ","ﻺ","ﻻ","ﻼ","؟","؟","؟"],f=["ء","ف"],y=["غ","ي"],m=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],p=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],g=0,d=1,T=2,L=3,A=4,R=5,w=6,b=7,B=8,U=10,F=11,S=12,v=18,P=["UBAT_L","UBAT_R","UBAT_EN","UBAT_AN","UBAT_ON","UBAT_B","UBAT_S","UBAT_AL","UBAT_WS","UBAT_CS","UBAT_ES","UBAT_ET","UBAT_NSM","UBAT_LRE","UBAT_RLE","UBAT_PDF","UBAT_LRO","UBAT_RLO","UBAT_BN"],M=100,N=[M+0,g,g,g,g,M+1,M+2,M+3,d,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,M+4,A,A,A,g,A,g,A,g,A,A,A,g,g,A,A,g,g,g,g,g,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,g,g,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,g,g,A,A,g,g,A,A,g,g,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,g,g,g,M+5,b,b,M+6,M+7],E=[[v,v,v,v,v,v,v,v,v,w,R,w,B,R,v,v,v,v,v,v,v,v,v,v,v,v,v,v,R,R,R,w,B,A,A,F,F,F,A,A,A,A,A,U,9,U,9,9,T,T,T,T,T,T,T,T,T,T,9,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,v,v,v,v,v,v,R,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,9,A,F,F,F,F,A,A,A,A,g,A,A,v,A,A,F,F,T,T,A,g,A,A,A,T,g,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,g,g,g,g,g,g,g,g],[g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,g,g,g,g,g,g,g,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,g,A,A,A,A,A,A,A,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,d,S,d,S,S,d,S,S,d,S,A,A,A,A,A,A,A,A,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,A,A,A,A,A,d,d,d,d,d,A,A,A,A,A,A,A,A,A,A,A],[L,L,L,L,A,A,A,A,b,F,F,b,9,b,A,A,S,S,S,S,S,S,S,S,S,S,S,b,A,A,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,L,L,L,L,L,L,L,L,L,L,F,L,L,b,b,b,S,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,S,S,S,S,S,S,S,L,A,S,S,S,S,S,S,b,b,S,S,A,S,S,S,S,b,b,T,T,T,T,T,T,T,T,T,T,b,b,b,b,b,b],[b,b,b,b,b,b,b,b,b,b,b,b,b,b,A,b,b,S,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,A,A,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,S,S,S,S,S,S,S,S,S,S,S,b,A,A,A,A,A,A,A,A,A,A,A,A,A,A,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,S,S,S,S,S,S,S,S,S,d,d,A,A,A,A,d,A,A,A,A,A],[B,B,B,B,B,B,B,B,B,B,B,v,v,v,g,d,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,B,R,13,14,15,16,17,9,F,F,F,F,F,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,9,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,B,v,v,v,v,v,A,A,A,A,A,v,v,v,v,v,v,T,g,A,A,T,T,T,T,T,T,U,U,A,A,A,g,T,T,T,T,T,T,T,T,T,T,U,U,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A],[g,g,g,g,g,g,g,A,A,A,A,A,A,A,A,A,A,A,A,g,g,g,g,g,A,A,A,A,A,d,S,d,d,d,d,d,d,d,d,d,d,U,d,d,d,d,d,d,d,d,d,d,d,d,d,A,d,d,d,d,d,A,d,A,d,d,A,d,d,A,d,d,d,d,d,d,d,d,d,d,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b],[S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,S,S,S,S,S,S,S,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,9,A,9,A,A,9,A,A,A,A,A,A,A,A,A,F,A,A,U,U,A,A,A,A,A,F,F,A,A,A,A,A,b,b,b,b,b,A,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,A,A,v],[A,A,A,F,F,F,A,A,A,A,A,U,9,U,9,9,T,T,T,T,T,T,T,T,T,T,9,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,A,A,A,A,A,A,A,A,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,A,A,A,g,g,g,g,g,g,A,A,g,g,g,g,g,g,A,A,g,g,g,g,g,g,A,A,g,g,g,A,A,A,F,F,A,A,A,F,F,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A]];class I{constructor(){this.inputFormat="ILYNN",this.outputFormat="VLNNN",this.sourceToTarget=[],this.targetToSource=[],this.levels=[]}bidiTransform(t,i,s){if(this.sourceToTarget=[],this.targetToSource=[],!t)return"";if(function(t,i,s){nt=[],rt=[];for(let n=0;n-1?(st(et,i,!t,-1),nt.splice(i,1)):x+=n[i];return x}(g,p,!0):function(t,i,s){if(0===t.length)return"";void 0===s&&(s=!0),void 0===i&&(i=!0);let n="";const r=(t=String(t)).split("");for(let h=0;h="ﹰ"&&r[h]<"\ufeff"){const a=t.charCodeAt(h);r[h]>="ﻵ"&&r[h]<="ﻼ"?(i?(h>0&&s&&" "===r[h-1]?n=n.substring(0,n.length-1)+"ل":(n+="ل",o=!0),n+=e[(a-65269)/2]):(n+=e[(a-65269)/2],n+="ل",h+10)if(16===_){for(let t=h;t-1){for(let t=h;t=0&&t[s]===B;s--)i[s]=n.dir}}(o,i,n,s)}function O(t){const i=t.charCodeAt(0),s=N[i>>8];return s=f[i]&&t<=y[i])return!0;return!1}function j(t,i,s,n){for(;i*s=t){for(r=l+1;r=t;)r++;for(h=l,o=r-1;h(e.lastArabic=!1,g),UBAT_R:()=>(e.lastArabic=!1,d),UBAT_ON:()=>A,UBAT_AN:()=>L,UBAT_EN:()=>e.lastArabic?L:T,UBAT_AL:()=>(e.lastArabic=!0,e.hasUbatAl=!0,d),UBAT_WS:()=>A,UBAT_CS:()=>{let t,r;return n<1||n+1>=i.length||(t=s[n-1])!==T&&t!==L||(r=i[n+1])!==T&&r!==L?A:(e.lastArabic&&(r=L),r===t?r:A)},UBAT_ES:()=>(n>0?s[n-1]:R)===T&&n+1{if(n>0&&s[n-1]===T)return T;if(e.lastArabic)return A;let t=n+1;const r=i.length;for(;t{if("VLTR"===e.inFormat){const s=i.length;let e=n+1;for(;e=1425&&s<=2303||64286===s,h=i[e];if(r&&(h===d||h===b))return d}}return n<1||i[n-1]===R?A:s[n-1]},UBAT_B:()=>(e.lastArabic=!0,e.hasUbatB=!0,e.dir),UBAT_S:()=>(e.hasUbatS=!0,A),UBAT_LRE:()=>(e.lastArabic=!1,A),UBAT_RLE:()=>(e.lastArabic=!1,A),UBAT_LRO:()=>(e.lastArabic=!1,A),UBAT_RLO:()=>(e.lastArabic=!1,A),UBAT_PDF:()=>(e.lastArabic=!1,A),UBAT_BN:()=>A}[P[r]]()}function K(t){let i,s=0,e=n.length-1;for(;s<=e;)if(i=Math.floor((s+e)/2),tn[i][0]))return n[i][1];s=i+1}return t}function Q(t){for(let i=0;i="ً"&&t<="ٕ"}function J(t){return"L"===t?"LTR":"R"===t?"RTL":"C"===t?"CLR":"D"===t?"CRL":""}function tt(t,i,s,n){for(;i*si||!s&&t[e]===i)&&(t[e]+=n)}let nt=[],et=[],rt=[];const ht={dir:0,defInFormat:"LLTR",defoutFormat:"VLTR",defSwap:"YN",inFormat:"LLTR",outFormat:"VLTR",swap:"YN",hiLevel:0,lastArabic:!1,hasUbatAl:!1,hasBlockSep:!1,hasSegSep:!1,defOutFormat:""},ot=5,at=6,ut=0,lt=1,_t=/^[(I|V)][(L|R|C|D)][(Y|N)][(S|N)][N]$/,ct=/[\u0591-\u06ff\ufb1d-\ufefc]/},82584:function(t,i,s){s.d(i,{E9:function(){return r},I6:function(){return a},Vl:function(){return n},bN:function(){return o}});var n,e;!function(t){t[t.Unknown=0]="Unknown",t[t.Point=1]="Point",t[t.LineString=2]="LineString",t[t.Polygon=3]="Polygon"}(n||(n={}));class r{constructor(t,i){this.x=t,this.y=i}clone(){return new r(this.x,this.y)}equals(t,i){return t===this.x&&i===this.y}isEqual(t){return t.x===this.x&&t.y===this.y}setCoords(t,i){return this.x=t,this.y=i,this}normalize(){const t=this.x,i=this.y,s=Math.sqrt(t*t+i*i);return this.x/=s,this.y/=s,this}rightPerpendicular(){const t=this.x;return this.x=this.y,this.y=-t,this}leftPerpendicular(){const t=this.x;return this.x=-this.y,this.y=t,this}move(t,i){return this.x+=t,this.y+=i,this}assign(t){return this.x=t.x,this.y=t.y,this}assignAdd(t,i){return this.x=t.x+i.x,this.y=t.y+i.y,this}assignSub(t,i){return this.x=t.x-i.x,this.y=t.y-i.y,this}rotate(t,i){const s=this.x,n=this.y;return this.x=s*t-n*i,this.y=s*i+n*t,this}scale(t){return this.x*=t,this.y*=t,this}length(){const t=this.x,i=this.y;return Math.sqrt(t*t+i*i)}sub(t){return this.x-=t.x,this.y-=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}static distance(t,i){const s=i.x-t.x,n=i.y-t.y;return Math.sqrt(s*s+n*n)}static add(t,i){return new r(t.x+i.x,t.y+i.y)}static sub(t,i){return new r(t.x-i.x,t.y-i.y)}}class h{constructor(t,i,s){this.ratio=t,this.x=i,this.y=s}}class o{constructor(t,i,s,n=8,e=8){this._lines=[],this._starts=[],this.validateTessellation=!0,this._pixelRatio=n,this._pixelMargin=e,this._tileSize=512*n,this._dz=t,this._yPos=i,this._xPos=s}setPixelMargin(t){t!==this._pixelMargin&&(this._pixelMargin=t,this.setExtent(this._extent))}setExtent(t){this._extent=t,this._finalRatio=this._tileSize/t*(1<>this._dz;i>s&&(i=s),this._margin=i,this._xmin=s*this._xPos-i,this._ymin=s*this._yPos-i,this._xmax=this._xmin+s+2*i,this._ymax=this._ymin+s+2*i}reset(t){this._type=t,this._lines=[],this._starts=[],this._line=null,this._start=0}moveTo(t,i){this._pushLine(),this._prevIsIn=this._isIn(t,i),this._moveTo(t,i,this._prevIsIn),this._prevPt=new r(t,i),this._firstPt=new r(t,i),this._dist=0}lineTo(t,i){const s=this._isIn(t,i),n=new r(t,i),e=r.distance(this._prevPt,n);let o,a,u,l,_,c,x,f;if(s)this._prevIsIn?this._lineTo(t,i,!0):(o=this._prevPt,a=n,u=this._intersect(a,o),this._start=this._dist+e*(1-this._r),this._lineTo(u.x,u.y,!0),this._lineTo(a.x,a.y,!0));else if(this._prevIsIn)a=this._prevPt,o=n,u=this._intersect(a,o),this._lineTo(u.x,u.y,!0),this._lineTo(o.x,o.y,!1);else{const t=this._prevPt,i=n;if(t.x<=this._xmin&&i.x<=this._xmin||t.x>=this._xmax&&i.x>=this._xmax||t.y<=this._ymin&&i.y<=this._ymin||t.y>=this._ymax&&i.y>=this._ymax)this._lineTo(i.x,i.y,!1);else{const s=[];if((t.xthis._xmin||t.x>this._xmin&&i.x=this._ymax?c=!0:s.push(new h(l,this._xmin,f))),(t.xthis._xmax||t.x>this._xmax&&i.x=this._ymax?c=!0:s.push(new h(l,this._xmax,f))),(t.ythis._ymin||t.y>this._ymin&&i.y=this._xmax?_=!0:s.push(new h(l,x,this._ymin))),(t.ythis._ymax||t.y>this._ymax&&i.y=this._xmax?_=!0:s.push(new h(l,x,this._ymax))),0===s.length)_?c?this._lineTo(this._xmax,this._ymax,!0):this._lineTo(this._xmax,this._ymin,!0):c?this._lineTo(this._xmin,this._ymax,!0):this._lineTo(this._xmin,this._ymin,!0);else if(s.length>1&&s[0].ratio>s[1].ratio)this._start=this._dist+e*s[1].ratio,this._lineTo(s[1].x,s[1].y,!0),this._lineTo(s[0].x,s[0].y,!0);else{this._start=this._dist+e*s[0].ratio;for(let t=0;t2){const t=this._firstPt,i=this._prevPt;t.x===i.x&&t.y===i.y||this.lineTo(t.x,t.y);const s=this._line;let n=s.length;for(;n>=4&&(s[0].x===s[1].x&&s[0].x===s[n-2].x||s[0].y===s[1].y&&s[0].y===s[n-2].y);)s.pop(),s[0].x=s[n-2].x,s[0].y=s[n-2].y,--n}}result(t=!0){return this._pushLine(),0===this._lines.length?null:(this._type===n.Polygon&&t&&u.simplify(this._tileSize,this._margin*this._finalRatio,this._lines),this._lines)}resultWithStarts(){if(this._type!==n.LineString)throw new Error("Only valid for lines");this._pushLine();const t=this._lines,i=t.length;if(0===i)return null;const s=[];for(let n=0;n=this._xmin&&t<=this._xmax&&i>=this._ymin&&i<=this._ymax}_intersect(t,i){let s,n,e;if(i.x>=this._xmin&&i.x<=this._xmax)n=i.y<=this._ymin?this._ymin:this._ymax,e=(n-t.y)/(i.y-t.y),s=t.x+e*(i.x-t.x);else if(i.y>=this._ymin&&i.y<=this._ymax)s=i.x<=this._xmin?this._xmin:this._xmax,e=(s-t.x)/(i.x-t.x),n=t.y+e*(i.y-t.y);else{n=i.y<=this._ymin?this._ymin:this._ymax,s=i.x<=this._xmin?this._xmin:this._xmax;const r=(s-t.x)/(i.x-t.x),h=(n-t.y)/(i.y-t.y);r0&&(this._lines.push(this._line),this._starts.push(this._start)):this._type===n.LineString?this._line.length>1&&(this._lines.push(this._line),this._starts.push(this._start)):this._type===n.Polygon&&this._line.length>3&&(this._lines.push(this._line),this._starts.push(this._start))),this._line=[],this._start=0}_moveTo(t,i,s){this._type!==n.Polygon?s&&(t=Math.round((t-(this._xmin+this._margin))*this._finalRatio),i=Math.round((i-(this._ymin+this._margin))*this._finalRatio),this._line.push(new r(t,i))):(s||(tthis._xmax&&(t=this._xmax),ithis._ymax&&(i=this._ymax)),t=Math.round((t-(this._xmin+this._margin))*this._finalRatio),i=Math.round((i-(this._ymin+this._margin))*this._finalRatio),this._line.push(new r(t,i)),this._isH=!1,this._isV=!1)}_lineTo(t,i,s){let e,h;if(this._type!==n.Polygon)if(s){if(t=Math.round((t-(this._xmin+this._margin))*this._finalRatio),i=Math.round((i-(this._ymin+this._margin))*this._finalRatio),this._line.length>0&&(e=this._line[this._line.length-1],e.equals(t,i)))return;this._line.push(new r(t,i))}else this._line&&this._line.length>0&&this._pushLine();else if(s||(tthis._xmax&&(t=this._xmax),ithis._ymax&&(i=this._ymax)),t=Math.round((t-(this._xmin+this._margin))*this._finalRatio),i=Math.round((i-(this._ymin+this._margin))*this._finalRatio),this._line&&this._line.length>0){e=this._line[this._line.length-1];const s=e.x===t,n=e.y===i;if(s&&n)return;this._isH&&s||this._isV&&n?(e.x=t,e.y=i,h=this._line[this._line.length-2],h.x===t&&h.y===i?(this._line.pop(),this._line.length<=1?(this._isH=!1,this._isV=!1):(h=this._line[this._line.length-2],this._isH=h.x===t,this._isV=h.y===i)):(this._isH=h.x===t,this._isV=h.y===i)):(this._line.push(new r(t,i)),this._isH=s,this._isV=n)}else this._line.push(new r(t,i))}}class a{setExtent(t){this._ratio=4096===t?1:4096/t}get validateTessellation(){return this._ratio<1}reset(t){this._lines=[],this._line=null}moveTo(t,i){this._line&&this._lines.push(this._line),this._line=[];const s=this._ratio;this._line.push(new r(t*s,i*s))}lineTo(t,i){const s=this._ratio;this._line.push(new r(t*s,i*s))}close(){const t=this._line;t&&!t[0].isEqual(t[t.length-1])&&t.push(t[0])}result(){return this._line&&this._lines.push(this._line),0===this._lines.length?null:this._lines}}!function(t){t[t.sideLeft=0]="sideLeft",t[t.sideRight=1]="sideRight",t[t.sideTop=2]="sideTop",t[t.sideBottom=3]="sideBottom"}(e||(e={}));class u{static simplify(t,i,s){if(!s)return;const n=-i,r=t+i,h=-i,o=t+i,a=[],l=[],_=s.length;for(let t=0;t<_;++t){const i=s[t];if(!i||i.length<2)continue;let u,_=i[0];const c=i.length;for(let s=1;su.y?(a.push(t),a.push(s),a.push(e.sideLeft),a.push(-1)):(l.push(t),l.push(s),l.push(e.sideLeft),l.push(-1))),_.x>=r&&(_.y=o&&(_.x>u.x?(a.push(t),a.push(s),a.push(e.sideBottom),a.push(-1)):(l.push(t),l.push(s),l.push(e.sideBottom),l.push(-1)))),_=u}if(0===a.length||0===l.length)return;u.fillParent(s,l,a),u.fillParent(s,a,l);const c=[];u.calcDeltas(c,l,a),u.calcDeltas(c,a,l),u.addDeltas(c,s)}static fillParent(t,i,s){const n=s.length,r=i.length;for(let h=0;h1&&n[r-2]===e?0:(n.push(e),u.calcDelta(e,s,i,n)+1)}static addDeltas(t,i){const s=t.length;let n=0;for(let i=0;in&&(n=s)}for(let r=0;rt>=i&&t<=s||t>=s&&t<=i},93944:function(t,i,s){s.d(i,{DQ:function(){return c},FM:function(){return r},KU:function(){return T},Of:function(){return L},Or:function(){return x},Px:function(){return R},RD:function(){return h},Wg:function(){return b},Z0:function(){return A},k3:function(){return y},nF:function(){return l},pK:function(){return w},s5:function(){return f},sX:function(){return m},yF:function(){return o}});var n=s(38028),e=s(82584);const r=Number.POSITIVE_INFINITY,h=Math.PI,o=2*h,a=128/h,u=256/360,l=h/180,_=1/Math.LN2;function c(t,i){return(t%=i)>=0?t:t+i}function x(t){return c(t*a,256)}function f(t){return c(t*u,256)}function y(t){return Math.log(t)*_}function m(t,i,s){return t*(1-s)+i*s}const p=8,g=14,d=16;function T(t){return p+Math.max((t-g)*d,0)}function L(t,i,s){let n,e,r,h=0;for(const o of s){n=o.length;for(let s=1;si!=r.y>i&&((r.x-e.x)*(i-e.y)-(r.y-e.y)*(t-e.x)>0?h++:h--)}return 0!==h}function A(t,i,s,e){let r,h,o,a;const u=e*e;for(const e of s){const s=e.length;if(!(s<2)){r=e[0].x,h=e[0].y;for(let l=1;l({name:n.name,code:n.code})))},(0,o.N)(e)):r.Z.convertObjectToArcadeDictionary({type:"range",name:n.domain.name,dataType:i.yE[n.field.type],min:n.domain.minValue,max:n.domain.maxValue},(0,o.N)(e)):null}function u(n){"async"===n.mode&&(n.functions.domain=function(e,a){return n.standardFunctionAsync(e,a,(async(n,r,i)=>{if((0,o.H)(i,2,3,e,a),(0,o.r)(i[0]))return c((0,o.X)(i[0],(0,o.j)(i[1]),void 0===i[2]?void 0:i[2]),e);if((0,o.u)(i[0]))return await i[0]._ensureLoaded(),c((0,o.a4)((0,o.j)(i[1]),i[0],null,void 0===i[2]?void 0:i[2]),e);throw new t.aV(e,t.rH.InvalidParameter,a)}))},n.functions.subtypes=function(e,a){return n.standardFunctionAsync(e,a,(async(n,i,c)=>{if((0,o.H)(c,1,1,e,a),(0,o.r)(c[0])){const n=(0,o.W)(c[0]);return n?r.Z.convertObjectToArcadeDictionary(n,(0,o.N)(e)):null}if((0,o.u)(c[0])){await c[0]._ensureLoaded();const n=c[0].subtypeMetaData();return n?r.Z.convertObjectToArcadeDictionary(n,(0,o.N)(e)):null}throw new t.aV(e,t.rH.InvalidParameter,a)}))},n.functions.domainname=function(e,a){return n.standardFunctionAsync(e,a,(async(n,r,i)=>{if((0,o.H)(i,2,4,e,a),(0,o.r)(i[0]))return(0,o.Y)(i[0],(0,o.j)(i[1]),i[2],void 0===i[3]?void 0:i[3]);if((0,o.u)(i[0])){await i[0]._ensureLoaded();const n=(0,o.a4)((0,o.j)(i[1]),i[0],null,void 0===i[3]?void 0:i[3]);return(0,o.a5)(n,i[2])}throw new t.aV(e,t.rH.InvalidParameter,a)}))},n.signatures.push({name:"domainname",min:2,max:4}),n.functions.domaincode=function(e,a){return n.standardFunctionAsync(e,a,(async(n,r,i)=>{if((0,o.H)(i,2,4,e,a),(0,o.r)(i[0]))return(0,o.Z)(i[0],(0,o.j)(i[1]),i[2],void 0===i[3]?void 0:i[3]);if((0,o.u)(i[0])){await i[0]._ensureLoaded();const n=(0,o.a4)((0,o.j)(i[1]),i[0],null,void 0===i[3]?void 0:i[3]);return(0,o.a6)(n,i[2])}throw new t.aV(e,t.rH.InvalidParameter,a)}))},n.signatures.push({name:"domaincode",min:2,max:4})),n.functions.text=function(e,a){return n.standardFunctionAsync(e,a,((n,r,t)=>{if((0,o.H)(t,1,2,e,a),!(0,o.u)(t[0]))return(0,o.t)(t[0],t[1]);{const e=(0,o.K)(t[1],"");if(""===e)return t[0].castToText();if("schema"===e.toLowerCase())return t[0].convertToText("schema",n.abortSignal);if("featureset"===e.toLowerCase())return t[0].convertToText("featureset",n.abortSignal)}}))},n.functions.gdbversion=function(e,a){return n.standardFunctionAsync(e,a,(async(n,r,i)=>{if((0,o.H)(i,1,1,e,a),(0,o.r)(i[0]))return i[0].gdbVersion();if((0,o.u)(i[0]))return(await i[0].load()).gdbVersion;throw new t.aV(e,t.rH.InvalidParameter,a)}))},n.functions.schema=function(e,a){return n.standardFunctionAsync(e,a,(async(n,i,c)=>{if((0,o.H)(c,1,1,e,a),(0,o.u)(c[0]))return await c[0].load(),r.Z.convertObjectToArcadeDictionary(c[0].schema(),(0,o.N)(e));if((0,o.r)(c[0])){const n=(0,o.V)(c[0]);return n?r.Z.convertObjectToArcadeDictionary(n,(0,o.N)(e)):null}throw new t.aV(e,t.rH.InvalidParameter,a)}))}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2213.5cc625b24ba0647b7410.js b/docs/sentinel1-explorer/2213.5cc625b24ba0647b7410.js new file mode 100644 index 00000000..110ecc13 --- /dev/null +++ b/docs/sentinel1-explorer/2213.5cc625b24ba0647b7410.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2213],{52213:function(t,e,r){r.r(e),r.d(e,{default:function(){return c}});var s,o=r(36663),i=r(82064),n=r(81977),p=r(7283),a=(r(4157),r(39994),r(40266));let u=s=class extends i.wq{static from(t){return(0,p.TJ)(s,t)}constructor(t){super(t),this.globalIds=[],this.creators=[],this.tags=[],this.names=[]}};(0,o._)([(0,n.Cb)({type:[String],json:{write:!0}})],u.prototype,"globalIds",void 0),(0,o._)([(0,n.Cb)({type:[String],json:{write:!0}})],u.prototype,"creators",void 0),(0,o._)([(0,n.Cb)({type:[String],json:{write:!0}})],u.prototype,"tags",void 0),(0,o._)([(0,n.Cb)({type:[String],json:{write:!0}})],u.prototype,"names",void 0),u=s=(0,o._)([(0,a.j)("esri.rest.networks.support.QueryNamedTraceConfigurationsParameters")],u);const c=u}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2229.80d2d1fa15fd9475e3bf.js b/docs/sentinel1-explorer/2229.80d2d1fa15fd9475e3bf.js new file mode 100644 index 00000000..c8deeb06 --- /dev/null +++ b/docs/sentinel1-explorer/2229.80d2d1fa15fd9475e3bf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2229],{31725:function(t,e,n){n.d(e,{xx:function(){return _}});var E=n(86098);function _(t,e=!1){return t<=E.c8?e?new Array(t).fill(0):new Array(t):new Float32Array(t)}},90331:function(t,e,n){function E(t){switch(t){case"u8":case"i8":return 1;case"u16":case"i16":return 2;case"u32":case"i32":case"f32":return 4;case"f64":return 8}}n.d(e,{n1:function(){return E}})},67262:function(t,e,n){n.d(e,{d:function(){return T}});var E=n(19431),_=n(35914);function T(t,e,n){const T=Array.isArray(t),o=T?t.length/e:t.byteLength/(4*e),N=T?t:new Uint32Array(t,0,o*e),s=n?.minReduction??0,O=n?.originalIndices||null,S=O?O.length:0,I=n?.componentOffsets||null;let c=0;if(I)for(let t=0;tc&&(c=e)}else c=o;const u=Math.floor(1.1*c)+1;(null==i||i.length<2*u)&&(i=new Uint32Array((0,E.Sf)(2*u)));for(let t=0;t<2*u;t++)i[t]=0;let C=0;const f=!!I&&!!O,a=f?S:o;let L=(0,_.$z)(o);const M=new Uint32Array(S),D=1.96;let l=0!==s?Math.ceil(4*D*D/(s*s)*s*(1-s)):a,U=1,P=I?I[1]:a;for(let t=0;t=u&&(T-=u)}A===C&&(i[2*T]=_,i[2*T+1]=n+1,C++),L[n]=A}if(0!==s&&1-C/o>>2)|0;return E>>>0}let i=null},44685:function(t,e,n){n.d(e,{Gw:function(){return i},U$:function(){return R},pV:function(){return A}});var E=n(81936),_=n(90331),T=n(15095);class r{constructor(t,e){this.layout=t,this.buffer="number"==typeof e?new ArrayBuffer(e*t.stride):e;for(const e of t.fields.keys()){const n=t.fields.get(e);this[e]=new n.constructor(this.buffer,n.offset,this.stride)}}get stride(){return this.layout.stride}get count(){return this.buffer.byteLength/this.stride}get byteLength(){return this.buffer.byteLength}getField(t,e){const n=this[t];return n&&n.elementCount===e.ElementCount&&n.elementType===e.ElementType?n:null}slice(t,e){return new r(this.layout,this.buffer.slice(t*this.stride,e*this.stride))}copyFrom(t,e=0,n=0,E=t.count){const _=this.stride;if(_%4==0){const T=new Uint32Array(t.buffer,e*_,E*_/4);new Uint32Array(this.buffer,n*_,E*_/4).set(T)}else{const T=new Uint8Array(t.buffer,e*_,E*_);new Uint8Array(this.buffer,n*_,E*_).set(T)}return this}get usedMemory(){return this.byteLength}dispose(){}}class A{constructor(t=null){this._stride=0,this._lastAligned=0,this._fields=new Map,t&&(this._stride=t.stride,t.fields.forEach((t=>this._fields.set(t[0],{...t[1],constructor:s(t[1].constructor)}))))}vec2f(t,e){return this._appendField(t,E.Eu,e),this}vec2f64(t,e){return this._appendField(t,E.q6,e),this}vec3f(t,e){return this._appendField(t,E.ct,e),this}vec3f64(t,e){return this._appendField(t,E.fP,e),this}vec4f(t,e){return this._appendField(t,E.ek,e),this}vec4f64(t,e){return this._appendField(t,E.Cd,e),this}mat3f(t,e){return this._appendField(t,E.gK,e),this}mat3f64(t,e){return this._appendField(t,E.ey,e),this}mat4f(t,e){return this._appendField(t,E.bj,e),this}mat4f64(t,e){return this._appendField(t,E.O1,e),this}vec4u8(t,e){return this._appendField(t,E.mc,e),this}f32(t,e){return this._appendField(t,E.ly,e),this}f64(t,e){return this._appendField(t,E.oS,e),this}u8(t,e){return this._appendField(t,E.D_,e),this}u16(t,e){return this._appendField(t,E.av,e),this}i8(t,e){return this._appendField(t,E.Hz,e),this}vec2i8(t,e){return this._appendField(t,E.Vs,e),this}vec2i16(t,e){return this._appendField(t,E.or,e),this}vec2u8(t,e){return this._appendField(t,E.xA,e),this}vec4u16(t,e){return this._appendField(t,E.v6,e),this}u32(t,e){return this._appendField(t,E.Nu,e),this}_appendField(t,e,n){if(this._fields.has(t))return void(0,T.hu)(!1,`${t} already added to vertex buffer layout`);const E=e.ElementCount*(0,_.n1)(e.ElementType),r=this._stride;this._stride+=E,this._fields.set(t,{size:E,constructor:e,offset:r,optional:n})}createBuffer(t){return new r(this,t)}createView(t){return new r(this,t)}clone(){const t=new A;return t._stride=this._stride,t._fields=new Map,this._fields.forEach(((e,n)=>t._fields.set(n,e))),t.BufferType=this.BufferType,t}get stride(){if(this._lastAligned!==this._fields.size){let t=1;this._fields.forEach((e=>t=Math.max(t,(0,_.n1)(e.constructor.ElementType)))),this._stride=Math.floor((this._stride+t-1)/t)*t,this._lastAligned=this._fields.size}return this._stride}get fields(){return this._fields}}function R(){return new A}class i{constructor(t){this.fields=new Array,t.fields.forEach(((t,e)=>{const n={...t,constructor:N(t.constructor)};this.fields.push([e,n])})),this.stride=t.stride}}const o=[E.ly,E.Eu,E.ct,E.ek,E.gK,E.bj,E.oS,E.q6,E.fP,E.Cd,E.ey,E.O1,E.D_,E.xA,E.ne,E.mc,E.av,E.TS,E.mw,E.v6,E.Nu,E.qt,E.G5,E.hu,E.Hz,E.Vs,E.P_,E.ir,E.o7,E.or,E.n1,E.zO,E.Jj,E.wA,E.PP,E.TN];function N(t){return`${t.ElementType}_${t.ElementCount}`}function s(t){return O.get(t)}const O=new Map;o.forEach((t=>O.set(N(t),t)))},95397:function(t,e,n){n.d(e,{K:function(){return T}});var E=n(91907),_=n(41163);function T(t,e=0){const n=t.stride;return Array.from(t.fields.keys()).map((E=>{const T=t.fields.get(E),A=T.constructor.ElementCount,R=r(T.constructor.ElementType),i=T.offset,o=!(!T.optional||!T.optional.glNormalized);return new _.G(E,A,R,i,n,o,e)}))}function r(t){const e=A[t];if(e)return e;throw new Error("BufferType not supported in WebGL")}const A={u8:E.g.UNSIGNED_BYTE,u16:E.g.UNSIGNED_SHORT,u32:E.g.UNSIGNED_INT,i8:E.g.BYTE,i16:E.g.SHORT,i32:E.g.INT,f32:E.g.FLOAT}},21414:function(t,e,n){var E;n.d(e,{T:function(){return E}}),function(t){t.POSITION="position",t.NORMAL="normal",t.NORMALCOMPRESSED="normalCompressed",t.UV0="uv0",t.COLOR="color",t.SYMBOLCOLOR="symbolColor",t.SIZE="size",t.TANGENT="tangent",t.OFFSET="offset",t.PERSPECTIVEDIVIDE="perspectiveDivide",t.CENTEROFFSETANDDISTANCE="centerOffsetAndDistance",t.LENGTH="length",t.PREVPOSITION="prevPosition",t.NEXTPOSITION="nextPosition",t.SUBDIVISIONFACTOR="subdivisionFactor",t.COLORFEATUREATTRIBUTE="colorFeatureAttribute",t.SIZEFEATUREATTRIBUTE="sizeFeatureAttribute",t.OPACITYFEATUREATTRIBUTE="opacityFeatureAttribute",t.DISTANCETOSTART="distanceToStart",t.UVMAPSPACE="uvMapSpace",t.BOUNDINGRECT="boundingRect",t.UVREGION="uvRegion",t.PROFILERIGHT="profileRight",t.PROFILEUP="profileUp",t.PROFILEVERTEXANDNORMAL="profileVertexAndNormal",t.FEATUREVALUE="featureValue",t.INSTANCEMODELORIGINHI="instanceModelOriginHi",t.INSTANCEMODELORIGINLO="instanceModelOriginLo",t.INSTANCEMODEL="instanceModel",t.INSTANCEMODELNORMAL="instanceModelNormal",t.INSTANCECOLOR="instanceColor",t.INSTANCEFEATUREATTRIBUTE="instanceFeatureAttribute",t.LOCALTRANSFORM="localTransform",t.GLOBALTRANSFORM="globalTransform",t.BOUNDINGSPHERE="boundingSphere",t.MODELORIGIN="modelOrigin",t.MODELSCALEFACTORS="modelScaleFactors",t.FEATUREATTRIBUTE="featureAttribute",t.STATE="state",t.LODLEVEL="lodLevel",t.POSITION0="position0",t.POSITION1="position1",t.NORMAL2COMPRESSED="normal2Compressed",t.COMPONENTINDEX="componentIndex",t.VARIANTOFFSET="variantOffset",t.VARIANTSTROKE="variantStroke",t.VARIANTEXTENSION="variantExtension",t.SIDENESS="sideness",t.START="start",t.END="end",t.UP="up",t.EXTRUDE="extrude",t.OBJECTANDLAYERIDCOLOR="objectAndLayerIdColor",t.INSTANCEOBJECTANDLAYERIDCOLOR="instanceObjectAndLayerIdColor"}(E||(E={}))},82976:function(t,e,n){n.d(e,{Hr:function(){return i},dG:function(){return R},tf:function(){return r}});var E=n(95397),_=n(44685),T=n(21414);const r=(0,_.U$)().vec3f(T.T.POSITION).u16(T.T.COMPONENTINDEX),A=(0,_.U$)().vec2u8(T.T.SIDENESS),R=((0,E.K)(A),(0,_.U$)().vec3f(T.T.POSITION0).vec3f(T.T.POSITION1).vec2i16(T.T.NORMALCOMPRESSED).u16(T.T.COMPONENTINDEX).u8(T.T.VARIANTOFFSET,{glNormalized:!0}).u8(T.T.VARIANTSTROKE).u8(T.T.VARIANTEXTENSION,{glNormalized:!0})),i=(0,_.U$)().vec3f(T.T.POSITION0).vec3f(T.T.POSITION1).vec2i16(T.T.NORMALCOMPRESSED).vec2i16(T.T.NORMAL2COMPRESSED).u16(T.T.COMPONENTINDEX).u8(T.T.VARIANTOFFSET,{glNormalized:!0}).u8(T.T.VARIANTSTROKE).u8(T.T.VARIANTEXTENSION,{glNormalized:!0});new Map([[T.T.POSITION0,0],[T.T.POSITION1,1],[T.T.COMPONENTINDEX,2],[T.T.VARIANTOFFSET,3],[T.T.VARIANTSTROKE,4],[T.T.VARIANTEXTENSION,5],[T.T.NORMALCOMPRESSED,6],[T.T.NORMAL2COMPRESSED,7],[T.T.SIDENESS,8]])},11591:function(t,e,n){n.d(e,{n:function(){return o}});var E=n(7753),_=n(19431),T=n(86717),r=n(81095);const A=-1;var R,i;function o(t,e,n,r=u){const R=t.vertices.position,i=t.vertices.componentIndex,o=(0,_.Vl)(r.anglePlanar),c=(0,_.Vl)(r.angleSignificantEdge),C=Math.cos(c),f=Math.cos(o),a=I.edge,L=a.position0,M=a.position1,D=a.faceNormal0,l=a.faceNormal1,U=S(t),P=function(t){const e=t.faces.length/3,n=t.faces,E=t.neighbors;let _=0;for(let t=0;t{R.getVec(P[4*e],L),R.getVec(P[4*e+1],M),n[e]=(0,T.q)(L,M)})),m.sort(((t,e)=>V[e]-V[t]));const y=new Array,v=new Array;for(let t=0;te}function O(t,e){const n=(0,_.ZF)(t.cosAngle),E=I.fwd,r=I.ortho;return(0,T.E)(E,t.position1,t.position0),n*((0,T.k)((0,T.b)(r,t.faceNormal0,t.faceNormal1),E)>0?-1:1)>e}function S(t){const e=t.faces.length/3,n=t.vertices.position,E=t.faces,_=c.v0,r=c.v1,A=c.v2,R=new Float32Array(3*e);for(let t=0;t{t{if(t{const n=2*t,E=e-t;for(let t=1;t=0&&i[n+2*_]>e;_--)i[n+2*_+2]=i[n+2*_],i[n+2*_+3]=i[n+2*_+1];i[n+2*_+2]=e,i[n+2*_+3]=E}};for(let t=0;te===t[3*n]?0:e===t[3*n+1]?1:e===t[3*n+2]?2:-1,I=(t,e)=>{const n=S(t,e);O[3*e+n]=-1},c=(t,e,n,E)=>{const _=S(t,e);O[3*e+_]=E;const T=S(n,E);O[3*E+T]=e};for(let t=0;t=0?1:-1)*(1-Math.abs(R)):A,o=_<=0?(R>=0?1:-1)*(1-Math.abs(A)):R,N=e*T;t[N]=S(i),t[N+1]=S(o)}function S(t){return(0,s.uZ)(Math.round(32767*t),-32767,32767)}class I{updateSettings(t){this.settings=t,this._edgeHashFunction=t.reducedPrecision?a:f}write(t,e,n){const E=this._edgeHashFunction(n);P.seed=E;const _=P.getIntRange(0,255),T=P.getIntRange(0,this.settings.variants-1),r=P.getFloat(),A=255*(.5*function(t,e){const n=t<0?-1:1;return Math.abs(t)**e*n}(-(1-Math.min(r/.7,1))+Math.max(0,r-.7)/(1-.7),1.2)+.5);t.position0.setVec(e,n.position0),t.position1.setVec(e,n.position1),t.componentIndex.set(e,n.componentIndex),t.variantOffset.set(e,_),t.variantStroke.set(e,T),t.variantExtension.set(e,A)}trim(t,e){return t.slice(0,e)}}const c=new Float32Array(6),u=new Uint32Array(c.buffer),C=new Uint32Array(1);function f(t){const e=c;e[0]=t.position0[0],e[1]=t.position0[1],e[2]=t.position0[2],e[3]=t.position1[0],e[4]=t.position1[1],e[5]=t.position1[2],C[0]=5381;for(let t=0;tnull!=e?o.Z.fromJSON(e):null)),primaryPixelSizes:e.primaryPixelSizes?.map((e=>null!=e?d.Z.fromJSON(e):null)),primaryRasterIds:e.primaryRasterIds});return null!=r?r.toJSON():null}stretch(e){const r=this.symbolizer.simpleStretch(o.Z.fromJSON(e.srcPixelBlock),e.stretchParams);return Promise.resolve(r?.toJSON())}estimateStatisticsHistograms(e){const r=(0,c.Hv)(o.Z.fromJSON(e.srcPixelBlock));return Promise.resolve(r)}split(e){const r=(0,n.Vl)(o.Z.fromJSON(e.srcPixelBlock),e.tileSize,e.maximumPyramidLevel??0,!1===e.useBilinear);return r&&r.forEach(((e,t)=>{r.set(t,e?.toJSON())})),Promise.resolve(r)}clipTile(e){const r=o.Z.fromJSON(e.pixelBlock),t=(0,n.Uu)({...e,pixelBlock:r});return Promise.resolve(t?.toJSON())}async mosaicAndTransform(e){const r=e.srcPixelBlocks.map((e=>e?new o.Z(e):null)),t=(0,n.us)(r,e.srcMosaicSize,{blockWidths:e.blockWidths,alignmentInfo:e.alignmentInfo,clipOffset:e.clipOffset,clipSize:e.clipSize});let s,i=t;return e.coefs&&(i=(0,n.Uk)(t,e.destDimension,e.coefs,e.sampleSpacing,e.interpolation)),e.projectDirections&&e.gcsGrid&&(s=(0,n.Qh)(e.destDimension,e.gcsGrid),i=(0,m.xQ)(i,e.isUV?"vector-uv":"vector-magdir",s)),{pixelBlock:i?.toJSON(),localNorthDirections:s}}async createFlowMesh(e,r){const t={data:new Float32Array(e.flowData.buffer),mask:new Uint8Array(e.flowData.maskBuffer),width:e.flowData.width,height:e.flowData.height},{vertexData:s,indexData:o}=await(0,p.GE)(e.meshType,e.simulationSettings,t,r.signal);return{result:{vertexBuffer:s.buffer,indexBuffer:o.buffer},transferList:[s.buffer,o.buffer]}}async getProjectionOffsetGrid(e){const r=S.Z.fromJSON(e.projectedExtent),t=S.Z.fromJSON(e.srcBufferExtent);let o=null;e.datumTransformationSteps&&(o=new s.Z({steps:e.datumTransformationSteps})),(e.includeGCSGrid||(0,a.Mk)(r.spatialReference,t.spatialReference,o))&&await(0,a.zD)();const i=e.rasterTransform?(0,f.c)(e.rasterTransform):null;return(0,a.Qp)({...e,projectedExtent:r,srcBufferExtent:t,datumTransformation:o,rasterTransform:i})}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2329.97554577f877e255b0ac.js b/docs/sentinel1-explorer/2329.97554577f877e255b0ac.js new file mode 100644 index 00000000..cb7deb0d --- /dev/null +++ b/docs/sentinel1-explorer/2329.97554577f877e255b0ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2329],{32329:function(e,a,o){o.r(a),o.d(a,{default:function(){return r}});const r={_decimalSeparator:".",_thousandSeparator:",",_percentPrefix:null,_percentSuffix:"%",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"hh:mm:ss a",_date_second_full:"hh:mm:ss a",_date_minute:"hh:mm a",_date_minute_full:"hh:mm a - MMM dd, yyyy",_date_hour:"hh:mm a",_date_hour_full:"hh:mm a - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_second:"ss",_duration_minute:"mm",_duration_hour:"hh",_duration_day:"dd",_duration_week:"ww",_duration_month:"MM",_duration_year:"yyyy",_era_ad:"AD",_era_bc:"BC",A:"",P:"",AM:"",PM:"","A.M.":"","P.M.":"",January:"",February:"",March:"",April:"",May:"",June:"",July:"",August:"",September:"",October:"",November:"",December:"",Jan:"",Feb:"",Mar:"",Apr:"","May(short)":"May",Jun:"",Jul:"",Aug:"",Sep:"",Oct:"",Nov:"",Dec:"",Sunday:"",Monday:"",Tuesday:"",Wednesday:"",Thursday:"",Friday:"",Saturday:"",Sun:"",Mon:"",Tue:"",Wed:"",Thu:"",Fri:"",Sat:"",_dateOrd:function(e){let a="th";if(e<11||e>13)switch(e%10){case 1:a="st";break;case 2:a="nd";break;case 3:a="rd"}return a},Play:"",Stop:"","Zoom Out":"",Legend:"","Press ENTER to toggle":"",Loading:"",Home:"",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Chord diagram":"","Flow diagram":"","TreeMap chart":"",Series:"","Candlestick Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"",Image:"",Data:"",Print:"","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"","From %1":"","To %1":"","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2338.9aad8b4369330e9d2389.js b/docs/sentinel1-explorer/2338.9aad8b4369330e9d2389.js new file mode 100644 index 00000000..d3f87764 --- /dev/null +++ b/docs/sentinel1-explorer/2338.9aad8b4369330e9d2389.js @@ -0,0 +1,2 @@ +/*! For license information please see 2338.9aad8b4369330e9d2389.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2338],{44925:function(e,t,o){o.d(t,{A:function(){return v},S:function(){return g},d:function(){return x}});var i=o(77210),n=o(14974),a=o(16265),s=o(19417),c=o(53801),l=o(86663),r=o(79145),d=o(19516),h=o(44586),u=o(92708),p=o(18888);const g={menuActions:"menu-actions",menuTooltip:"menu-tooltip"},m="ellipsis",f="container",v=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.setMenuOpen=e=>{this.menuOpen=!!e.target.open},this.handleMenuActionsSlotChange=e=>{this.hasMenuActions=(0,r.d)(e)},this.expanded=!1,this.label=void 0,this.layout="vertical",this.columns=void 0,this.menuOpen=!1,this.overlayPositioning="absolute",this.scale=void 0,this.messages=void 0,this.messageOverrides=void 0,this.effectiveLocale="",this.defaultMessages=void 0,this.hasMenuActions=!1}expandedHandler(){this.menuOpen=!1}onMessagesChange(){}effectiveLocaleChange(){(0,c.u)(this,this.effectiveLocale)}async setFocus(){await(0,a.c)(this),this.el.focus()}connectedCallback(){(0,s.c)(this),(0,c.c)(this),(0,n.c)(this)}disconnectedCallback(){(0,s.d)(this),(0,c.d)(this),(0,n.d)(this)}async componentWillLoad(){(0,a.s)(this),await(0,c.s)(this)}componentDidLoad(){(0,a.a)(this)}renderMenu(){const{expanded:e,menuOpen:t,scale:o,layout:n,messages:a,overlayPositioning:s,hasMenuActions:c}=this;return(0,i.h)("calcite-action-menu",{expanded:e,flipPlacements:["left","right"],hidden:!c,label:a.more,onCalciteActionMenuOpen:this.setMenuOpen,open:t,overlayPositioning:s,placement:"horizontal"===n?"bottom-start":"leading-start",scale:o},(0,i.h)("calcite-action",{icon:m,scale:o,slot:l.S.trigger,text:a.more,textEnabled:e}),(0,i.h)("slot",{name:g.menuActions,onSlotchange:this.handleMenuActionsSlotChange}),(0,i.h)("slot",{name:g.menuTooltip,slot:l.S.tooltip}))}render(){return(0,i.h)("div",{"aria-label":this.label,class:f,role:"group"},(0,i.h)("slot",null),this.renderMenu())}static get delegatesFocus(){return!0}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{expanded:["expandedHandler"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return':host{box-sizing:border-box;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2);font-size:var(--calcite-font-size--1)}:host *{box-sizing:border-box}:host{display:flex;flex-direction:column;padding:0px;--calcite-action-group-columns:3;--calcite-action-group-gap:1px;--calcite-action-group-padding:1px}.container{display:flex;flex-grow:1;flex-direction:column}:host([columns="1"]){--calcite-action-group-columns:1}:host([columns="2"]){--calcite-action-group-columns:2}:host([columns="3"]){--calcite-action-group-columns:3}:host([columns="4"]){--calcite-action-group-columns:4}:host([columns="5"]){--calcite-action-group-columns:5}:host([columns="6"]){--calcite-action-group-columns:6}:host(:first-child){padding-block-start:0px}:host([layout=horizontal]),:host([layout=horizontal]) .container{flex-direction:row}:host([layout=grid]){display:grid}:host([layout=grid]) .container{display:grid;place-content:stretch;background-color:var(--calcite-color-background);gap:var(--calcite-action-group-gap);padding:var(--calcite-action-group-gap);grid-template-columns:repeat(var(--calcite-action-group-columns), auto)}:host([hidden]){display:none}[hidden]{display:none}'}},[17,"calcite-action-group",{expanded:[516],label:[1],layout:[513],columns:[514],menuOpen:[1540,"menu-open"],overlayPositioning:[513,"overlay-positioning"],scale:[513],messages:[1040],messageOverrides:[1040],effectiveLocale:[32],defaultMessages:[32],hasMenuActions:[32],setFocus:[64]},void 0,{expanded:["expandedHandler"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}]);function x(){if("undefined"==typeof customElements)return;["calcite-action-group","calcite-action","calcite-action-menu","calcite-icon","calcite-loader","calcite-popover"].forEach((e=>{switch(e){case"calcite-action-group":customElements.get(e)||customElements.define(e,v);break;case"calcite-action":customElements.get(e)||(0,d.d)();break;case"calcite-action-menu":customElements.get(e)||(0,l.d)();break;case"calcite-icon":customElements.get(e)||(0,h.d)();break;case"calcite-loader":customElements.get(e)||(0,u.d)();break;case"calcite-popover":customElements.get(e)||(0,p.d)()}}))}x()},62338:function(e,t,o){o.r(t),o.d(t,{CalciteActionBar:function(){return O},defineCustomElement:function(){return M}});var i=o(77210),n=o(14974),a=o(79145),s=o(16265),c=o(19417),l=o(85545),r=o(53801),d=o(44925),h=o(86663);const u=e=>e.reduce(((e,t)=>e+t),0)/e.length,p=({layout:e,actionCount:t,actionWidth:o,width:i,actionHeight:n,height:a,groupCount:s})=>Math.max(t-(({width:e,actionWidth:t,layout:o,height:i,actionHeight:n,groupCount:a})=>{const s="horizontal"===o?e:i,c="horizontal"===o?t:n;return Math.floor((s-2*a)/c)})({width:i,actionWidth:o,layout:e,height:a,actionHeight:n,groupCount:s}),0),g=e=>Array.from(e.querySelectorAll("calcite-action")).filter((e=>!e.closest("calcite-action-menu")||e.slot===h.S.trigger)),m="chevrons-left",f="chevrons-right";function v({el:e,expanded:t}){g(e).filter((e=>e.slot!==d.S.menuActions)).forEach((e=>e.textEnabled=t)),e.querySelectorAll("calcite-action-group, calcite-action-menu").forEach((e=>e.expanded=t))}const x=({expanded:e,expandText:t,collapseText:o,toggle:n,el:s,position:c,tooltip:l,ref:r,scale:d})=>{const h="rtl"===(0,a.a)(s),u=e?o:t,p=[m,f];h&&p.reverse();const g="end"===function(e,t){return e||t.closest("calcite-shell-panel")?.position||"start"}(c,s),v=g?p[1]:p[0],x=g?p[0]:p[1],b=(0,i.h)("calcite-action",{icon:e?v:x,onClick:n,scale:d,text:u,textEnabled:e,title:e||l?null:u,ref:t=>(({tooltip:e,referenceElement:t,expanded:o,ref:i})=>(e&&(e.referenceElement=!o&&t?t:null),i&&i(t),t))({tooltip:l,referenceElement:t,expanded:e,ref:r})});return b};var b=o(19516),y=o(44586),A=o(92708),E=o(18888),w=o(52971);const C="action-group--end",z="actions-end",H="bottom-actions",S="expand-tooltip",k=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.calciteActionBarToggle=(0,i.yM)(this,"calciteActionBarToggle",6),this.mutationObserver=(0,l.c)("mutation",(()=>{const{el:e,expanded:t}=this;v({el:e,expanded:t}),this.overflowActions()})),this.resizeObserver=(0,l.c)("resize",(e=>this.resizeHandlerEntries(e))),this.actionMenuOpenHandler=e=>{if(e.target.menuOpen){const t=e.composedPath();Array.from(this.el.querySelectorAll("calcite-action-group")).forEach((e=>{t.includes(e)||(e.menuOpen=!1)}))}},this.resizeHandlerEntries=e=>{e.forEach(this.resizeHandler)},this.resizeHandler=e=>{const{width:t,height:o}=e.contentRect;this.resize({width:t,height:o})},this.resize=(0,w.d)((({width:e,height:t})=>{const{el:o,expanded:n,expandDisabled:a,layout:s,overflowActionsDisabled:c}=this;if(c||"vertical"===s&&!t||"horizontal"===s&&!e)return;const l=g(o),r=a?l.length:l.length+1,h=Array.from(o.querySelectorAll("calcite-action-group"));this.setGroupLayout(h);const m=this.hasActionsEnd||this.hasBottomActions||!a?h.length+1:h.length,{actionHeight:f,actionWidth:v}=(e=>{const t=e.filter((e=>e.slot!==d.S.menuActions)),o=t?.length;return{actionWidth:o?u(t.map((e=>e.clientWidth||0))):0,actionHeight:o?u(t.map((e=>e.clientHeight||0))):0}})(l);(({actionGroups:e,expanded:t,overflowCount:o})=>{let n=o;e.reverse().forEach((e=>{let o=0;const a=g(e).reverse();a.forEach((e=>{e.slot===d.S.menuActions&&(e.removeAttribute("slot"),e.textEnabled=t)})),n>0&&a.some((e=>{const t=a.filter((e=>!e.slot));return t.length>1&&a.length>2&&!e.closest("calcite-action-menu")&&(e.textEnabled=!0,e.setAttribute("slot",d.S.menuActions),o++,o>1&&n--),n<1})),(0,i.xE)(e)}))})({actionGroups:h,expanded:n,overflowCount:p({layout:s,actionCount:r,actionHeight:f,actionWidth:v,height:t,width:e,groupCount:m})})}),150),this.toggleExpand=()=>{this.expanded=!this.expanded,this.calciteActionBarToggle.emit()},this.setExpandToggleRef=e=>{this.expandToggleEl=e},this.handleDefaultSlotChange=e=>{const t=(0,a.s)(e).filter((e=>e.matches("calcite-action-group")));this.setGroupLayout(t)},this.handleActionsEndSlotChange=e=>{this.hasActionsEnd=(0,a.d)(e)},this.handleBottomActionsSlotChange=e=>{this.hasBottomActions=(0,a.d)(e)},this.handleTooltipSlotChange=e=>{const t=(0,a.s)(e).filter((e=>e?.matches("calcite-tooltip")));this.expandTooltip=t[0]},this.actionsEndGroupLabel=void 0,this.expandDisabled=!1,this.expanded=!1,this.layout="vertical",this.overflowActionsDisabled=!1,this.overlayPositioning="absolute",this.position=void 0,this.scale=void 0,this.messages=void 0,this.messageOverrides=void 0,this.effectiveLocale=void 0,this.hasActionsEnd=!1,this.hasBottomActions=!1,this.expandTooltip=void 0,this.defaultMessages=void 0}expandHandler(){this.overflowActions()}expandedHandler(){const{el:e,expanded:t}=this;v({el:e,expanded:t}),this.overflowActions()}layoutHandler(){this.updateGroups()}overflowDisabledHandler(e){e?this.resizeObserver?.disconnect():(this.resizeObserver?.observe(this.el),this.overflowActions())}onMessagesChange(){}effectiveLocaleChange(){(0,r.u)(this,this.effectiveLocale)}componentDidLoad(){const{el:e,expanded:t}=this;(0,s.a)(this),v({el:e,expanded:t}),this.overflowActions()}connectedCallback(){const{el:e,expanded:t}=this;(0,c.c)(this),(0,r.c)(this),v({el:e,expanded:t}),this.mutationObserver?.observe(e,{childList:!0,subtree:!0}),this.overflowActionsDisabled||this.resizeObserver?.observe(e),this.overflowActions(),(0,n.c)(this)}async componentWillLoad(){(0,s.s)(this),await(0,r.s)(this)}disconnectedCallback(){this.mutationObserver?.disconnect(),this.resizeObserver?.disconnect(),(0,n.d)(this),(0,c.d)(this),(0,r.d)(this)}async overflowActions(){this.resize({width:this.el.clientWidth,height:this.el.clientHeight})}async setFocus(){await(0,s.c)(this),(0,a.f)(this.el)}updateGroups(){this.setGroupLayout(Array.from(this.el.querySelectorAll("calcite-action-group")))}setGroupLayout(e){e.forEach((e=>e.layout=this.layout))}renderBottomActionGroup(){const{expanded:e,expandDisabled:t,el:o,position:n,toggleExpand:a,scale:s,layout:c,messages:l,actionsEndGroupLabel:r,overlayPositioning:d}=this,h=t?null:(0,i.h)(x,{collapseText:l.collapse,el:o,expandText:l.expand,expanded:e,position:n,scale:s,toggle:a,tooltip:this.expandTooltip,ref:this.setExpandToggleRef});return(0,i.h)("calcite-action-group",{class:C,hidden:this.expandDisabled&&!(this.hasActionsEnd||this.hasBottomActions),label:r,layout:c,overlayPositioning:d,scale:s},(0,i.h)("slot",{name:z,onSlotchange:this.handleActionsEndSlotChange}),(0,i.h)("slot",{name:H,onSlotchange:this.handleBottomActionsSlotChange}),(0,i.h)("slot",{name:S,onSlotchange:this.handleTooltipSlotChange}),h)}render(){return(0,i.h)(i.AA,{onCalciteActionMenuOpen:this.actionMenuOpenHandler},(0,i.h)("slot",{onSlotchange:this.handleDefaultSlotChange}),this.renderBottomActionGroup())}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{expandDisabled:["expandHandler"],expanded:["expandedHandler"],layout:["layoutHandler"],overflowActionsDisabled:["overflowDisabledHandler"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host{box-sizing:border-box;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2);font-size:var(--calcite-font-size--1)}:host *{box-sizing:border-box}:host{pointer-events:auto;display:inline-flex;align-self:stretch;--calcite-action-bar-expanded-max-width:auto}:host([layout=vertical]){flex-direction:column}:host([layout=vertical]) .action-group--end{margin-block-start:auto}:host([layout=horizontal]){flex-direction:row}:host([layout=horizontal]) .action-group--end{margin-inline-start:auto}:host([layout=vertical][overflow-actions-disabled]){overflow-y:auto}:host([layout=horizontal][overflow-actions-disabled]){overflow-x:auto}:host([layout=vertical][expanded]){max-inline-size:var(--calcite-action-bar-expanded-max-width)}::slotted(calcite-action-group){border-block-end:1px solid var(--calcite-color-border-3)}:host([layout=horizontal]) ::slotted(calcite-action-group){border-block-end:0;border-inline-end:1px solid var(--calcite-color-border-3)}:host([layout=horizontal][expand-disabled]) ::slotted(calcite-action-group:last-of-type){border-inline-end:0}::slotted(calcite-action-group:last-child){border-block-end:0;border-inline-end:0}.action-group--end{justify-content:flex-end}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-action-bar",{actionsEndGroupLabel:[1,"actions-end-group-label"],expandDisabled:[516,"expand-disabled"],expanded:[1540],layout:[513],overflowActionsDisabled:[516,"overflow-actions-disabled"],overlayPositioning:[513,"overlay-positioning"],position:[513],scale:[513],messages:[1040],messageOverrides:[1040],effectiveLocale:[32],hasActionsEnd:[32],hasBottomActions:[32],expandTooltip:[32],defaultMessages:[32],overflowActions:[64],setFocus:[64]},void 0,{expandDisabled:["expandHandler"],expanded:["expandedHandler"],layout:["layoutHandler"],overflowActionsDisabled:["overflowDisabledHandler"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}]);function L(){if("undefined"==typeof customElements)return;["calcite-action-bar","calcite-action","calcite-action-group","calcite-action-menu","calcite-icon","calcite-loader","calcite-popover"].forEach((e=>{switch(e){case"calcite-action-bar":customElements.get(e)||customElements.define(e,k);break;case"calcite-action":customElements.get(e)||(0,b.d)();break;case"calcite-action-group":customElements.get(e)||(0,d.d)();break;case"calcite-action-menu":customElements.get(e)||(0,h.d)();break;case"calcite-icon":customElements.get(e)||(0,y.d)();break;case"calcite-loader":customElements.get(e)||(0,A.d)();break;case"calcite-popover":customElements.get(e)||(0,E.d)()}}))}L();const O=k,M=L},14974:function(e,t,o){o.d(t,{c:function(){return l},d:function(){return r}});var i=o(77210),n=o(85545);const a=new Set;let s;const c={childList:!0};function l(e){s||(s=(0,n.c)("mutation",d)),s.observe(e.el,c)}function r(e){a.delete(e.el),d(s.takeRecords()),s.disconnect();for(const[e]of a.entries())s.observe(e,c)}function d(e){e.forEach((({target:e})=>{(0,i.xE)(e)}))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2338.9aad8b4369330e9d2389.js.LICENSE.txt b/docs/sentinel1-explorer/2338.9aad8b4369330e9d2389.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/2338.9aad8b4369330e9d2389.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/2394.b40539e259089f9f3bad.js b/docs/sentinel1-explorer/2394.b40539e259089f9f3bad.js new file mode 100644 index 00000000..0bc5dd68 --- /dev/null +++ b/docs/sentinel1-explorer/2394.b40539e259089f9f3bad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2394],{42394:function(r,e,f){f.r(e),f.d(e,{l:function(){return o}});var i=f(58340);var a,n,t,b={exports:{}};a=b,n="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,t=function(r={}){var e,f,i=r;i.ready=new Promise(((r,i)=>{e=r,f=i}));var a=Object.assign({},i),t="object"==typeof window,b="function"==typeof importScripts;"object"==typeof process&&"object"==typeof process.versions&&process.versions.node;var k,o="";(t||b)&&(b?o=self.location.href:"undefined"!=typeof document&&document.currentScript&&(o=document.currentScript.src),n&&(o=n),o=0!==o.indexOf("blob:")?o.substr(0,o.replace(/[?#].*/,"").lastIndexOf("/")+1):"",b&&(k=r=>{var e=new XMLHttpRequest;return e.open("GET",r,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}));var u,c=i.print||void 0,s=i.printErr||void 0;Object.assign(i,a),a=null,i.arguments&&i.arguments,i.thisProgram&&i.thisProgram,i.quit&&i.quit,i.wasmBinary&&(u=i.wasmBinary);var A,l={Memory:function(r){this.buffer=new ArrayBuffer(65536*r.initial)},Module:function(r){},Instance:function(r,e){this.exports=function(r){for(var e,f=new Uint8Array(123),i=25;i>=0;--i)f[48+i]=52+i,f[65+i]=i,f[97+i]=26+i;function a(r,e,i){for(var a,n,t=0,b=e,k=i.length,o=e+(3*k>>2)-("="==i[k-2])-("="==i[k-1]);t>4,b>2),b>>0<=244){if(3&(f=(b=k[854])>>>(i=(o=r>>>0<11?16:r+11&504)>>>3|0)|0)){f=3456+(r=(i=i+(1&(-1^f))|0)<<3)|0,a=k[r+3464>>2],(0|f)!=(0|(r=k[a+8>>2]))?(k[r+12>>2]=f,k[f+8>>2]=r):(A=3416,v=Pr(i)&b,k[A>>2]=v),r=a+8|0,f=i<<3,k[a+4>>2]=3|f,k[4+(f=f+a|0)>>2]=1|k[f+4>>2];break r}if((s=k[856])>>>0>=o>>>0)break k;if(f){f=3456+(r=(a=Fr((0-(r=2<>2],(0|f)!=(0|(r=k[n+8>>2]))?(k[r+12>>2]=f,k[f+8>>2]=r):(b=Pr(a)&b,k[854]=b),k[n+4>>2]=3|o,a=(r=a<<3)-o|0,k[4+(i=n+o|0)>>2]=1|a,k[r+n>>2]=a,s&&(f=3456+(-8&s)|0,t=k[859],(r=1<<(s>>>3))&b?r=k[f+8>>2]:(k[854]=r|b,r=f),k[f+8>>2]=t,k[r+12>>2]=t,k[t+12>>2]=f,k[t+8>>2]=r),r=n+8|0,k[859]=i,k[856]=a;break r}if(!(c=k[855]))break k;for(i=k[3720+(Fr(c)<<2)>>2],n=(-8&k[i+4>>2])-o|0,f=i;(r=k[f+16>>2])||(r=k[f+20>>2]);)n=(a=(f=(-8&k[r+4>>2])-o|0)>>>0>>0)?f:n,i=a?r:i,f=r;if(u=k[i+24>>2],(0|(a=k[i+12>>2]))!=(0|i)){r=k[i+8>>2],k[r+12>>2]=a,k[a+8>>2]=r;break e}if(!(r=k[(f=i+20|0)>>2])){if(!(r=k[i+16>>2]))break b;f=i+16|0}for(;t=f,a=r,(r=k[(f=r+20|0)>>2])||(f=a+16|0,r=k[a+16>>2]););k[t>>2]=0;break e}if(o=-1,!(r>>>0>4294967231)&&(o=-8&(r=r+11|0),c=k[855])){n=0-o|0,b=0,o>>>0<256||(b=31,o>>>0>16777215||(b=62+((o>>>38-(r=g(r>>>8|0))&1)-(r<<1)|0)|0));o:{u:{if(f=k[3720+(b<<2)>>2])for(r=0,i=o<<(31!=(0|b)?25-(b>>>1|0)|0:0);;){if(!((t=(-8&k[f+4>>2])-o|0)>>>0>=n>>>0||(a=f,n=t))){n=0,r=f;break u}if(t=k[f+20>>2],f=k[16+((i>>>29&4)+f|0)>>2],r=t?(0|t)==(0|f)?r:t:r,i<<=1,!f)break}else r=0;if(!(r|a)){if(a=0,!(r=(0-(r=2<>2]}if(!r)break o}for(;n=(i=(f=(-8&k[r+4>>2])-o|0)>>>0>>0)?f:n,a=i?r:a,r=(f=k[r+16>>2])||k[r+20>>2];);}if(!(!a|k[856]-o>>>0<=n>>>0)){if(b=k[a+24>>2],(0|a)!=(0|(i=k[a+12>>2]))){r=k[a+8>>2],k[r+12>>2]=i,k[i+8>>2]=r;break f}if(!(r=k[(f=a+20|0)>>2])){if(!(r=k[a+16>>2]))break t;f=a+16|0}for(;t=f,i=r,(r=k[(f=r+20|0)>>2])||(f=i+16|0,r=k[i+16>>2]););k[t>>2]=0;break f}}}if((r=k[856])>>>0>=o>>>0){a=k[859],(f=r-o|0)>>>0>=16?(k[4+(i=a+o|0)>>2]=1|f,k[r+a>>2]=f,k[a+4>>2]=3|o):(k[a+4>>2]=3|r,k[4+(r=r+a|0)>>2]=1|k[r+4>>2],i=0,f=0),k[856]=f,k[859]=i,r=a+8|0;break r}if((u=k[857])>>>0>o>>>0){f=u-o|0,k[857]=f,r=(i=k[860])+o|0,k[860]=r,k[r+4>>2]=1|f,k[i+4>>2]=3|o,r=i+8|0;break r}if(r=0,n=o+47|0,k[972]?i=k[974]:(k[975]=-1,k[976]=-1,k[973]=4096,k[974]=4096,k[972]=e+12&-16^1431655768,k[977]=0,k[965]=0,i=4096),(f=(b=n+i|0)&(t=0-i|0))>>>0<=o>>>0)break r;if((a=k[964])&&a>>>0<(c=(i=k[962])+f|0)>>>0|i>>>0>=c>>>0)break r;k:{if(!(4&l[3860])){o:{u:{c:{s:{if(a=k[860])for(r=3864;;){if((i=k[r>>2])>>>0<=a>>>0&a>>>0>2]>>>0)break s;if(!(r=k[r+8>>2]))break}if(-1==(0|(i=Sr(0))))break o;if(b=f,(r=(a=k[973])-1|0)&i&&(b=(f-i|0)+(r+i&0-a)|0),b>>>0<=o>>>0)break o;if((a=k[964])&&a>>>0<(t=(r=k[962])+b|0)>>>0|r>>>0>=t>>>0)break o;if((0|i)!=(0|(r=Sr(b))))break c;break k}if((0|(i=Sr(b=t&b-u)))==(k[r>>2]+k[r+4>>2]|0))break u;r=i}if(-1==(0|r))break o;if(o+48>>>0<=b>>>0){i=r;break k}if(-1==(0|Sr(i=(i=k[974])+(n-b|0)&0-i)))break o;b=i+b|0,i=r;break k}if(-1!=(0|i))break k}k[965]=4|k[965]}if(-1==(0|(i=Sr(f)))|-1==(0|(r=Sr(0)))|r>>>0<=i>>>0)break i;if((b=r-i|0)>>>0<=o+40>>>0)break i}r=k[962]+b|0,k[962]=r,r>>>0>d[963]&&(k[963]=r);k:{if(n=k[860]){for(r=3864;;){if(((a=k[r>>2])+(f=k[r+4>>2])|0)==(0|i))break k;if(!(r=k[r+8>>2]))break}break n}for((r=k[858])>>>0<=i>>>0&&r||(k[858]=i),r=0,k[967]=b,k[966]=i,k[862]=-1,k[863]=k[972],k[969]=0;f=3456+(a=r<<3)|0,k[a+3464>>2]=f,k[a+3468>>2]=f,32!=(0|(r=r+1|0)););f=(a=b-40|0)-(r=-8-i&7)|0,k[857]=f,r=r+i|0,k[860]=r,k[r+4>>2]=1|f,k[4+(i+a|0)>>2]=40,k[861]=k[976];break a}if(8&k[r+12>>2]|i>>>0<=n>>>0|a>>>0>n>>>0)break n;k[r+4>>2]=f+b,i=(r=-8-n&7)+n|0,k[860]=i,r=(f=k[857]+b|0)-r|0,k[857]=r,k[i+4>>2]=1|r,k[4+(f+n|0)>>2]=40,k[861]=k[976];break a}a=0;break e}i=0;break f}d[858]>i>>>0&&(k[858]=i),f=i+b|0,r=3864;n:{t:{b:{for(;;){if((0|f)!=k[r>>2]){if(r=k[r+8>>2])continue;break b}break}if(!(8&l[r+12|0]))break t}for(r=3864;!((f=k[r>>2])>>>0<=n>>>0&&(t=f+k[r+4>>2]|0)>>>0>n>>>0);)r=k[r+8>>2];for(f=(a=b-40|0)-(r=-8-i&7)|0,k[857]=f,r=r+i|0,k[860]=r,k[r+4>>2]=1|f,k[4+(i+a|0)>>2]=40,k[861]=k[976],k[(a=(r=(t+(39-t&7)|0)-47|0)>>>0>>0?n:r)+4>>2]=27,r=k[969],k[a+16>>2]=k[968],k[a+20>>2]=r,r=k[967],k[a+8>>2]=k[966],k[a+12>>2]=r,k[968]=a+8,k[967]=b,k[966]=i,k[969]=0,r=a+24|0;k[r+4>>2]=7,f=r+8|0,r=r+4|0,f>>>0>>0;);if((0|a)==(0|n))break a;if(k[a+4>>2]=-2&k[a+4>>2],t=a-n|0,k[n+4>>2]=1|t,k[a>>2]=t,t>>>0<=255){f=3456+(-8&t)|0,(i=k[854])&(r=1<<(t>>>3))?r=k[f+8>>2]:(k[854]=r|i,r=f),k[f+8>>2]=n,k[r+12>>2]=n,k[n+12>>2]=f,k[n+8>>2]=r;break a}if(r=31,t>>>0<=16777215&&(r=62+((t>>>38-(r=g(t>>>8|0))&1)-(r<<1)|0)|0),k[n+28>>2]=r,k[n+16>>2]=0,k[n+20>>2]=0,f=3720+(r<<2)|0,(a=k[855])&(i=1<>>1|0)|0:0),a=k[f>>2];;){if((0|t)==(-8&k[(f=a)+4>>2]))break n;if(i=r>>>29|0,r<<=1,!(a=k[16+(i=(4&i)+f|0)>>2]))break}k[i+16>>2]=n}else k[855]=i|a,k[f>>2]=n;k[n+24>>2]=f,k[n+12>>2]=n,k[n+8>>2]=n;break a}k[r>>2]=i,k[r+4>>2]=k[r+4>>2]+b,k[4+(c=(-8-i&7)+i|0)>>2]=3|o,b=(n=f+(-8-f&7)|0)-(u=o+c|0)|0;t:if(k[860]!=(0|n))if(k[859]!=(0|n)){if(1==(3&(i=k[n+4>>2]))){t=-8&i;b:if(i>>>0<=255){if((0|(f=k[n+12>>2]))==(0|(r=k[n+8>>2]))){A=3416,v=k[854]&Pr(i>>>3|0),k[A>>2]=v;break b}k[r+12>>2]=f,k[f+8>>2]=r}else{o=k[n+24>>2];k:if((0|n)==(0|(r=k[n+12>>2]))){o:{if(!(i=k[(f=n+20|0)>>2])){if(!(i=k[n+16>>2]))break o;f=n+16|0}for(;a=f,(i=k[(f=(r=i)+20|0)>>2])||(f=r+16|0,i=k[r+16>>2]););k[a>>2]=0;break k}r=0}else f=k[n+8>>2],k[f+12>>2]=r,k[r+8>>2]=f;if(o){i=k[n+28>>2];k:{if(k[(f=3720+(i<<2)|0)>>2]==(0|n)){if(k[f>>2]=r,r)break k;A=3420,v=k[855]&Pr(i),k[A>>2]=v;break b}if(k[o+(k[o+16>>2]==(0|n)?16:20)>>2]=r,!r)break b}k[r+24>>2]=o,(f=k[n+16>>2])&&(k[r+16>>2]=f,k[f+24>>2]=r),(f=k[n+20>>2])&&(k[r+20>>2]=f,k[f+24>>2]=r)}}b=t+b|0,i=k[4+(n=n+t|0)>>2]}if(k[n+4>>2]=-2&i,k[u+4>>2]=1|b,k[b+u>>2]=b,b>>>0<=255)f=3456+(-8&b)|0,(i=k[854])&(r=1<<(b>>>3))?r=k[f+8>>2]:(k[854]=r|i,r=f),k[f+8>>2]=u,k[r+12>>2]=u,k[u+12>>2]=f,k[u+8>>2]=r;else{i=31,b>>>0<=16777215&&(i=62+((b>>>38-(r=g(b>>>8|0))&1)-(r<<1)|0)|0),k[u+28>>2]=i,k[u+16>>2]=0,k[u+20>>2]=0,f=3720+(i<<2)|0;b:{if((a=k[855])&(r=1<>>1|0)|0:0),r=k[f>>2];;){if(f=r,(-8&k[r+4>>2])==(0|b))break b;if(a=i>>>29|0,i<<=1,!(r=k[16+(a=(4&a)+r|0)>>2]))break}k[a+16>>2]=u}else k[855]=r|a,k[f>>2]=u;k[u+24>>2]=f,k[u+12>>2]=u,k[u+8>>2]=u;break t}r=k[f+8>>2],k[r+12>>2]=u,k[f+8>>2]=u,k[u+24>>2]=0,k[u+12>>2]=f,k[u+8>>2]=r}}else k[859]=u,r=k[856]+b|0,k[856]=r,k[u+4>>2]=1|r,k[r+u>>2]=r;else k[860]=u,r=k[857]+b|0,k[857]=r,k[u+4>>2]=1|r;r=c+8|0;break r}r=k[f+8>>2],k[r+12>>2]=n,k[f+8>>2]=n,k[n+24>>2]=0,k[n+12>>2]=f,k[n+8>>2]=r}if(!((r=k[857])>>>0<=o>>>0)){f=r-o|0,k[857]=f,r=(i=k[860])+o|0,k[860]=r,k[r+4>>2]=1|f,k[i+4>>2]=3|o,r=i+8|0;break r}}k[806]=48,r=0;break r}f:if(b){f=k[a+28>>2];i:{if(k[(r=3720+(f<<2)|0)>>2]==(0|a)){if(k[r>>2]=i,i)break i;c=Pr(f)&c,k[855]=c;break f}if(k[b+(k[b+16>>2]==(0|a)?16:20)>>2]=i,!i)break f}k[i+24>>2]=b,(r=k[a+16>>2])&&(k[i+16>>2]=r,k[r+24>>2]=i),(r=k[a+20>>2])&&(k[i+20>>2]=r,k[r+24>>2]=i)}f:if(n>>>0<=15)r=n+o|0,k[a+4>>2]=3|r,k[4+(r=r+a|0)>>2]=1|k[r+4>>2];else if(k[a+4>>2]=3|o,k[4+(t=a+o|0)>>2]=1|n,k[n+t>>2]=n,n>>>0<=255)f=3456+(-8&n)|0,(i=k[854])&(r=1<<(n>>>3))?r=k[f+8>>2]:(k[854]=r|i,r=f),k[f+8>>2]=t,k[r+12>>2]=t,k[t+12>>2]=f,k[t+8>>2]=r;else{r=31,n>>>0<=16777215&&(r=62+((n>>>38-(r=g(n>>>8|0))&1)-(r<<1)|0)|0),k[t+28>>2]=r,k[t+16>>2]=0,k[t+20>>2]=0,f=3720+(r<<2)|0;i:{if((i=1<>>1|0)|0:0),o=k[f>>2];;){if((-8&k[(f=o)+4>>2])==(0|n))break i;if(i=r>>>29|0,r<<=1,!(o=k[16+(i=(4&i)+f|0)>>2]))break}k[i+16>>2]=t}else k[855]=i|c,k[f>>2]=t;k[t+24>>2]=f,k[t+12>>2]=t,k[t+8>>2]=t;break f}r=k[f+8>>2],k[r+12>>2]=t,k[f+8>>2]=t,k[t+24>>2]=0,k[t+12>>2]=f,k[t+8>>2]=r}r=a+8|0;break r}e:if(u){f=k[i+28>>2];f:{if(k[(r=3720+(f<<2)|0)>>2]==(0|i)){if(k[r>>2]=a,a)break f;A=3420,v=Pr(f)&c,k[A>>2]=v;break e}if(k[u+(k[u+16>>2]==(0|i)?16:20)>>2]=a,!a)break e}k[a+24>>2]=u,(r=k[i+16>>2])&&(k[a+16>>2]=r,k[r+24>>2]=a),(r=k[i+20>>2])&&(k[a+20>>2]=r,k[r+24>>2]=a)}n>>>0<=15?(r=n+o|0,k[i+4>>2]=3|r,k[4+(r=r+i|0)>>2]=1|k[r+4>>2]):(k[i+4>>2]=3|o,k[4+(a=i+o|0)>>2]=1|n,k[a+n>>2]=n,s&&(f=3456+(-8&s)|0,t=k[859],(r=1<<(s>>>3))&b?r=k[f+8>>2]:(k[854]=r|b,r=f),k[f+8>>2]=t,k[r+12>>2]=t,k[t+12>>2]=f,k[t+8>>2]=r),k[859]=a,k[856]=n),r=i+8|0}return U=e+16|0,0|r}function T(r,e){var f,i,a,n,b,o,u,c,s=p(0),v=0,d=p(0),y=p(0),m=0,g=p(0),E=p(0),C=p(0),R=0,I=0,S=p(0),M=0,_=0,P=p(0),B=0,F=0;U=f=U-144|0,c=k[k[k[e+4>>2]+8>>2]>>2],u=k[c>>2],n=k[u+16>>2],b=k[k[u+4>>2]+16>>2],o=k[e>>2],a=k[k[o+4>>2]+16>>2],i=k[o+16>>2],tr(a,k[r+72>>2],i)>p(0)&&(s=h[a+28>>2],y=h[a+32>>2],v=k[r+72>>2],d=h[v+28>>2],g=h[v+32>>2],C=h[i+28>>2],w[f+40>>3]=h[i+32>>2],w[f+32>>3]=C,w[f+24>>3]=g,w[f+16>>3]=d,w[f+8>>3]=y,w[f>>3]=s,Ur(1098,f));r:{e:{f:if((0|i)!=(0|n)&&(g=(s=h[i+32>>2])<=(y=h[a+32>>2])?s:y,y=h[n+32>>2],!(g>((d=h[b+32>>2])<=y?y:d)))){i:{if(!(!((d=h[i+28>>2])<(g=h[n+28>>2]))&(!(s<=y)|d!=g))){if(!(tr(b,i,n)>p(0)))break i;break f}if(tr(a,n,i)>2])<(y=h[i+28>>2])|s==y&h[R+32>>2]<=h[i+32>>2]?(m=_,_=R):m=R,(s=h[v+28>>2])>(y=h[I+28>>2])|s==y&h[I+32>>2]<=h[v+32>>2]?(s=y,R=v,v=I):R=I,(y=h[_+28>>2])>2]<=h[v+32>>2]?(y=s,I=R,M=v,R=m,v=_):(I=m,M=_);i:if((d=h[R+28>>2])>y|d==y&h[M+32>>2]<=h[R+32>>2])if(!((C=h[I+28>>2])>d)&(!(h[R+32>>2]<=h[I+32>>2])|d!=C))if(s=tr(v,M,R),d=tr(v,I,R),y=h[M+28>>2],(g=(s=(m=p(s-d)>2],s=p(p(y+E)*p(.5)),d==p(0))break i;s=p(p(p(E-y)*p(g/p(g+d)))+y)}else s=h[I+28>>2],s=p(p(p(y-s)*p(d/p(g+d)))+s);else{if(s=p(0),g=p(d-y),S=p(y-h[v+28>>2]),(P=p(g+S))>p(0)&&(s=h[((m=g>S)?v:R)+32>>2],s=p(p(p(s-h[(m?R:v)+32>>2])*p((m?S:g)/P))+p(h[M+32>>2]-s))),C=p(C-d),(S=p(g+C))>p(0)&&(E=h[((m=g>2],E=p(p(p(E-h[(m?I:M)+32>>2])*p((m?g:C)/S))+p(h[R+32>>2]-E))),(C=(s=(m=p(s+E)>2]=s,(s=h[v+32>>2])<(y=h[R+32>>2])|s==y&h[v+28>>2]<=h[R+28>>2]?(m=R,R=v):m=v,(s=h[I+32>>2])>(y=h[M+32>>2])|s==y&h[M+28>>2]<=h[I+28>>2]?(s=y,v=I,I=M):v=M,(y=h[R+32>>2])>2]<=h[I+28>>2]?(y=s,_=v,M=I,v=m,I=R):(_=m,M=R);i:{a:if((d=h[v+32>>2])>y|d==y&h[M+28>>2]<=h[v+28>>2]){if(!(!((E=h[_+32>>2])>d)&(!(h[v+28>>2]<=h[_+28>>2])|d!=E))){if(s=p(0),g=p(0),C=p(d-y),S=p(y-h[I+32>>2]),(P=p(C+S))>p(0)&&(g=h[((m=C>S)?I:v)+28>>2],g=p(p(p(g-h[(m?v:I)+28>>2])*p((m?S:C)/P))+p(h[M+28>>2]-g))),E=p(E-d),(S=p(C+E))>p(0)&&(s=h[((m=E>C)?M:_)+28>>2],s=p(p(p(s-h[(m?_:M)+28>>2])*p((m?C:E)/S))+p(h[v+28>>2]-s))),(g=(g=(v=p(g+s)>2]=p(C*p(g/p(g+s)))+y;break i}h[f+88>>2]=p(p(y-d)*p(s/p(g+s)))+d;break i}if(s=p(0),g=p(0),C=p(d-y),S=h[I+32>>2],P=p(y-S),p(C+P)>p(0)&&(g=h[M+28>>2],g=p(p(p(g-h[v+28>>2])*P)+p(C*p(g-h[I+28>>2])))),d=p(d-E),C=p(E-S),p(d+C)>p(0)&&(s=h[_+28>>2],s=p(p(p(s-h[v+28>>2])*C)+p(d*p(s-h[I+28>>2])))),(d=(d=(v=p(g-s)>2]=p(y+E)*p(.5);break i}h[f+88>>2]=p(p(E-y)*p(d/p(d+s)))+y;break i}h[f+88>>2]=p(p(y-E)*p(s/p(d+s)))+E;break i}h[f+88>>2]=p(y+d)*p(.5)}y=h[f+84>>2],m=k[r+72>>2];i:{if(y<(s=h[m+28>>2]))d=h[m+32>>2];else{if(s!=y)break i;if(!((d=h[m+32>>2])>=h[f+88>>2]))break i}h[f+88>>2]=d,h[f+84>>2]=s,y=s}(s=E=h[(v=i)+28>>2])<(d=h[n+28>>2])||s==d&&h[v+32>>2]<=h[n+32>>2]||(s=d,v=n);i:{if(s>2];else{if(s!=y)break i;if(!((g=h[v+32>>2])<=h[f+88>>2]))break i}h[f+88>>2]=g,h[f+84>>2]=s,y=s}if(!(y==E&h[f+88>>2]==h[i+32>>2])&(d!=y|h[f+88>>2]!=h[n+32>>2])){i:{a:{if(!((y=h[m+28>>2])==h[a+28>>2]&h[a+32>>2]==h[m+32>>2])){if(tr(a,m,f+56|0)>=p(0))break a;m=k[r+72>>2],y=h[m+28>>2]}if(y==h[b+28>>2]&h[b+32>>2]==h[m+32>>2])break i;if(!(tr(b,m,f+56|0)<=p(0)))break i}if((0|(v=k[r+72>>2]))==(0|b)){if(!V(k[o+4>>2]))break r;if(!K(k[u+4>>2],o))break r;for(v=k[k[e>>2]+16>>2];e=k[k[k[e+4>>2]+4>>2]>>2],R=k[e>>2],(0|v)==k[R+16>>2];);if(l[e+15|0]&&(m=0,(v=J(k[k[k[k[k[e+4>>2]+8>>2]>>2]>>2]+4>>2],k[R+12>>2]))&&Z(k[e>>2])&&(k[e>>2]=v,t[e+15|0]=0,k[v+24>>2]=e,m=k[k[k[e+4>>2]+4>>2]>>2]),e=m),!e)break r;m=k[k[k[e+4>>2]+8>>2]>>2],v=k[m>>2],kr(r,m,c),F=1,Y(r,e,k[k[v+4>>2]+12>>2],v,v,1);break f}if((0|v)==(0|a)){if(!V(k[u+4>>2]))break r;if(!K(k[o+12>>2],k[k[u+4>>2]+12>>2]))break r;for(m=k[k[k[e>>2]+4>>2]+16>>2],v=e;v=k[k[k[v+4>>2]+4>>2]>>2],(0|m)==k[k[k[v>>2]+4>>2]+16>>2];);m=k[k[k[k[k[k[v+4>>2]+8>>2]>>2]>>2]+4>>2]+8>>2],k[e>>2]=k[k[u+4>>2]+12>>2],F=1,Y(r,v,k[kr(r,e,0)+8>>2],k[k[o+4>>2]+8>>2],m,1);break f}if(tr(a,v,f+56|0)>=p(0)){if(t[e+14|0]=1,t[k[k[k[e+4>>2]+4>>2]>>2]+14|0]=1,!V(k[o+4>>2]))break r;m=k[o+16>>2],v=k[r+72>>2],h[m+28>>2]=h[v+28>>2],h[m+32>>2]=h[v+32>>2]}else v=k[r+72>>2];if(!(tr(b,v,f+56|0)<=p(0)))break f;if(t[c+14|0]=1,t[e+14|0]=1,!V(k[u+4>>2]))break r;e=k[u+16>>2],r=k[r+72>>2],h[e+28>>2]=h[r+28>>2],h[e+32>>2]=h[r+32>>2];break f}if(!V(k[o+4>>2]))break r;if(!V(k[u+4>>2]))break r;if(!K(k[k[u+4>>2]+12>>2],o))break r;if(v=k[o+16>>2],h[v+28>>2]=h[f+84>>2],h[v+32>>2]=h[f+88>>2],m=q(k[r+68>>2],v),v=k[o+16>>2],k[v+36>>2]=m,2147483647==(0|m))break e;k[f+112>>2]=k[i+12>>2],k[f+116>>2]=k[a+12>>2],k[f+120>>2]=k[n+12>>2],k[f+124>>2]=k[b+12>>2],k[v+24>>2]=0,k[v+16>>2]=0,k[v+20>>2]=0,s=h[v+28>>2],E=(y=p(h[a+28>>2]-s))>2],d=p(h[a+32>>2]-y),g=p(E+(d>2]-s))>2]-y),E=p(E+(d>2]=d,g=p(.5*+E/B),h[f+100>>2]=g,E=p(p(p(d*h[i+16>>2])+p(h[a+16>>2]*g))+p(0)),h[v+16>>2]=E,C=p(p(p(d*h[i+20>>2])+p(h[a+20>>2]*g))+p(0)),h[v+20>>2]=C,g=p(p(p(d*h[i+24>>2])+p(h[a+24>>2]*g))+p(0)),h[v+24>>2]=g,S=(d=p(h[n+28>>2]-s))>2]-y),d=p(S+(d>2]-s))>2]-y),s=p(S+(s>2]=s,y=p(.5*+d/B),h[f+108>>2]=y,d=p(E+p(p(s*h[n+16>>2])+p(h[b+16>>2]*y))),h[v+16>>2]=d,E=p(C+p(p(s*h[n+20>>2])+p(h[b+20>>2]*y))),h[v+20>>2]=E,s=p(g+p(p(s*h[n+24>>2])+p(h[b+24>>2]*y))),h[v+24>>2]=s,h[f+140>>2]=s,h[f+136>>2]=E,h[f+132>>2]=d,k[v+12>>2]=0,v=v+12|0,10==(0|(m=k[r+1736>>2]))?Wr[k[r+76>>2]](f+132|0,f+112|0,f+96|0,v):Wr[0|m](f+132|0,f+112|0,f+96|0,v,k[r+1896>>2]),k[v>>2]|l[r+60|0]||(11==(0|(v=k[r+1732>>2]))?Wr[k[r+12>>2]](100156):Wr[0|v](100156,k[r+1896>>2]),t[r+60|0]=1),t[c+14|0]=1,t[e+14|0]=1,t[k[k[k[e+4>>2]+4>>2]>>2]+14|0]=1}else D(r,e)}return U=f+144|0,F}Mr(k[r+68>>2]),k[r+68>>2]=0}Br(r+1740|0,1),A()}function x(r,e,f,i,a,n){var o,u,c,s,A,v=0,d=0,h=0,p=0,m=0,g=0,E=0,C=0,R=0,I=0,S=0,M=0,_=0,P=0,B=0,F=0;U=o=U-80|0,k[o+76>>2]=e,c=a-192|0,s=i-384|0,A=o+55|0,u=o+56|0;r:{e:{f:{i:{a:for(;;){v=0;n:for(;;){if(h=e,(2147483647^C)<(0|v))break i;C=v+C|0;t:{b:{k:{if(d=l[0|(v=e)])for(;;){o:{u:if(e=255&d){if(37!=(0|e))break o;for(d=v;;){if(37!=l[d+1|0]){e=d;break u}if(v=v+1|0,m=l[d+2|0],d=e=d+2|0,37!=(0|m))break}}else e=v;if((0|(v=v-h|0))>(0|(B=2147483647^C)))break i;if(r&&Ar(r,h,v),v)continue n;k[o+76>>2]=e,v=e+1|0,R=-1,d=t[e+1|0]-48|0,36!=l[e+2|0]|d>>>0>=10||(R=d,S=1,v=e+3|0),k[o+76>>2]=v,g=0;u:if((e=(d=t[0|v])-32|0)>>>0>31)m=v;else if(m=v,75913&(e=1<>2]=m,g|=e,(e=(d=t[v+1|0])-32|0)>>>0>=32)break u;if(v=m,!(75913&(e=1<>2]}else{if(d=m+1|0,36!=l[m+2|0]|t[m+1|0]-48>>>0>=10){if(S)break k;if(!r){k[o+76>>2]=d,S=0,I=0;break u}e=k[f>>2],k[f>>2]=e+4,S=0,e=k[e>>2]}else e=t[0|d],d=m+3|0,S=1,r?e=k[(e<<3)+s>>2]:(k[(e<<2)+c>>2]=10,e=0);if(k[o+76>>2]=d,I=e,(0|e)>=0)break u;I=0-e|0,g|=8192}if(v=0,p=-1,46==l[0|d])if(42!=l[d+1|0])k[o+76>>2]=d+1,p=pr(o+76|0),e=k[o+76>>2],_=1;else{if(e=d+2|0,36!=l[d+3|0]|t[d+2|0]-48>>>0>=10){if(S)break k;r?(d=k[f>>2],k[f>>2]=d+4,p=k[d>>2]):p=0}else e=t[0|e],r?p=k[(e<<3)+s>>2]:(k[(e<<2)+c>>2]=10,p=0),e=d+4|0;k[o+76>>2]=e,_=(0|p)>=0}else e=d,_=0;for(;;){if(P=v,m=28,E=e,(d=t[0|e])-123>>>0<4294967238)break f;if(e=e+1|0,!((v=l[1071+(d+y(v,58)|0)|0])-1>>>0<8))break}k[o+76>>2]=e;u:if(27==(0|v)){if((0|R)>=0)break f;if(v=0,!r)continue n}else{if(!v)break f;if((0|R)>=0){if(!r){k[(R<<2)+a>>2]=v;continue a}v=k[4+(d=(R<<3)+i|0)>>2],k[o+64>>2]=k[d>>2],k[o+68>>2]=v;break u}if(!r)break t;ar(o- -64|0,v,f)}if(32&l[0|r])break e;d=-65537&g,g=8192&g?d:g,R=0,M=1024,m=u;u:{c:{s:{A:{l:{v:{d:{h:{w:{y:{p:{m:{g:{E:{C:{switch(v=t[0|E],(v=P&&3==(15&v)?-45&v:v)-88|0){case 11:break u;case 9:case 13:case 14:case 15:break c;case 27:break d;case 12:case 17:break y;case 23:break p;case 0:case 32:break m;case 24:break g;case 22:break E;case 29:break C;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break b}switch(v-65|0){case 0:case 4:case 5:case 6:break c;case 2:break l;case 1:case 3:break b}if(83==(0|v))break v;break b}h=k[o+64>>2],d=k[o+68>>2],M=1024;break w}v=0;E:switch(255&P){case 0:case 1:case 6:k[k[o+64>>2]>>2]=C;continue n;case 2:h=k[o+64>>2],k[h>>2]=C,k[h+4>>2]=C>>31;continue n;case 3:b[k[o+64>>2]>>1]=C;continue n;case 4:t[k[o+64>>2]]=C;continue n;case 7:break E;default:continue n}h=k[o+64>>2],k[h>>2]=C,k[h+4>>2]=C>>31;continue n}p=p>>>0<=8?8:p,g|=8,v=120}if(e=u,(h=k[o+64>>2])|(d=k[o+68>>2]))for(F=32&v;t[0|(e=e-1|0)]=F|l[1600+(15&h)|0],P=!d&h>>>0>15|0!=(0|d),E=d,d=d>>>4|0,h=(15&E)<<28|h>>>4,P;);if(h=e,!(k[o+64>>2]|k[o+68>>2])|!(8&g))break h;M=1024+(v>>>4|0)|0,R=2;break h}if(e=u,d=v=k[o+68>>2],v|(h=k[o+64>>2]))for(;t[0|(e=e-1|0)]=7&h|48,E=!d&h>>>0>7|0!=(0|d),d=(v=d)>>>3|0,h=(7&v)<<29|h>>>3,E;);if(h=e,!(8&g))break h;p=(0|(e=u-e|0))<(0|p)?p:e+1|0;break h}h=k[o+64>>2],d=e=k[o+68>>2],(0|e)<0?(d=v=0-(e+(0!=(0|h))|0)|0,h=0-h|0,k[o+64>>2]=h,k[o+68>>2]=v,R=1,M=1024):2048&g?(R=1,M=1025):M=(R=1&g)?1026:1024}h=hr(h,d,u)}if((0|p)<0&_)break i;if(g=_?-65537&g:g,!(p|0!=((e=k[o+64>>2])|(v=k[o+68>>2])))){h=u,p=0;break b}p=(0|(e=!(e|v)+(u-h|0)|0))<(0|p)?p:e;break b}E=m=p>>>0>=2147483647?2147483647:p,g=0!=(0|m);d:{h:{w:{y:if(!(!(3&(e=h=(e=k[o+64>>2])||1071))|!m))for(;;){if(!l[0|e])break w;if(g=0!=(0|(E=E-1|0)),!(3&(e=e+1|0)))break y;if(!E)break}if(!g)break h;if(!(!l[0|e]|E>>>0<4))for(;;){if((-1^(v=k[e>>2]))&v-16843009&-2139062144)break w;if(e=e+4|0,!((E=E-4|0)>>>0>3))break}if(!E)break h}for(;;){if(!l[0|e])break d;if(e=e+1|0,!(E=E-1|0))break}}e=0}if(m=(e=e?e-h|0:m)+h|0,(0|p)>=0){g=d,p=e;break b}if(g=d,p=e,l[0|m])break i;break b}if(p){d=k[o+64>>2];break A}v=0,Cr(r,32,I,0,g);break s}k[o+12>>2]=0,k[o+8>>2]=k[o+64>>2],d=o+8|0,k[o+64>>2]=d,p=-1}for(v=0;;){if(h=k[d>>2]){if((0|(h=cr(o+4|0,h)))<0)break e;if(!(h>>>0>p-v>>>0)&&(d=d+4|0,p>>>0>(v=v+h|0)>>>0))continue}break}if(m=61,(0|v)<0)break f;if(Cr(r,32,I,v,g),v)for(m=0,d=k[o+64>>2];;){if(!(h=k[d>>2]))break s;if((m=(h=cr(p=o+4|0,h))+m|0)>>>0>v>>>0)break s;if(Ar(r,p,h),d=d+4|0,!(v>>>0>m>>>0))break}else v=0}Cr(r,32,I,v,8192^g),v=(0|v)<(0|I)?I:v;continue n}if((0|p)<0&_)break i;if(m=61,(0|(v=0|Wr[0|n](r,w[o+64>>3],I,p,g,v)))>=0)continue n;break f}t[o+55|0]=k[o+64>>2],p=1,h=A,g=d;break b}d=l[v+1|0],v=v+1|0}if(r)break r;if(!S)break t;for(v=1;;){if(r=k[(v<<2)+a>>2]){if(ar((v<<3)+i|0,r,f),C=1,10!=(0|(v=v+1|0)))continue;break r}break}if(C=1,v>>>0>=10)break r;for(;;){if(k[(v<<2)+a>>2])break k;if(10==(0|(v=v+1|0)))break}break r}m=28;break f}if((0|(e=(0|(d=m-h|0))<(0|p)?p:d))>(2147483647^R))break i;if(m=61,(0|B)<(0|(v=(0|(p=e+R|0))<(0|I)?I:p)))break f;Cr(r,32,v,p,g),Ar(r,M,R),Cr(r,48,v,p,65536^g),Cr(r,48,e,d,0),Ar(r,h,d),Cr(r,32,v,p,8192^g),e=k[o+76>>2];continue}break}break}C=0;break r}m=61}k[806]=m}C=-1}return U=o+80|0,C}function W(r,e){var f,i=0,a=0,n=0,b=0,o=p(0),u=0,c=0,s=p(0),v=0,d=0;U=f=U-16|0,k[r+72>>2]=e,i=n=k[e+8>>2];r:{e:{f:{for(;;){if(a=k[i+24>>2])break f;if((0|n)==(0|(i=k[i+8>>2])))break}for(k[f>>2]=k[n+4>>2],n=i=k[r+64>>2];n=k[n+4>>2],(a=k[n>>2])&&!(0|Wr[k[i+16>>2]](k[i+12>>2],f,a)););if(a=k[n>>2],n=k[k[k[a+4>>2]+8>>2]>>2],u=k[n>>2],b=k[a>>2],tr(k[k[b+4>>2]+16>>2],e,k[b+16>>2])==p(0)){if(o=h[e+28>>2],i=k[a>>2],n=k[i+16>>2],!(o!=h[n+28>>2]|h[n+32>>2]!=h[e+32>>2])){or(r,i,k[e+8>>2]);break e}if(b=k[i+4>>2],n=k[b+16>>2],!(o==h[n+28>>2]&h[n+32>>2]==h[e+32>>2])){if(!V(b))break r;if(l[a+15|0]){if(!Z(k[i+8>>2]))break r;t[a+15|0]=0}if(!K(k[e+8>>2],i))break r;W(r,e);break e}for(;a=k[k[k[a+4>>2]+4>>2]>>2],(0|n)==k[k[k[a>>2]+4>>2]+16>>2];);if(n=k[k[k[a+4>>2]+8>>2]>>2],u=k[n>>2],b=k[u+4>>2],i=k[b+8>>2],l[n+15|0]){if(k[u+24>>2]=0,_r(k[n+4>>2]),O(n),!Z(b))break r;b=k[k[i+4>>2]+12>>2]}if(!K(k[e+8>>2],b))break r;c=k[b+8>>2],n=k[k[i+4>>2]+16>>2],o=h[n+28>>2],u=k[i+16>>2],Y(r,a,c,i,e=o<(s=h[u+28>>2])|o==s&h[n+32>>2]<=h[u+32>>2]?i:0,1);break e}if(c=l[a+12|0],u=k[u+4>>2],v=k[u+16>>2],o=h[v+28>>2],d=k[k[b+4>>2]+16>>2],i=a,o<(s=h[d+28>>2])||o==s&&(i=a,h[v+32>>2]<=h[d+32>>2])||(i=n),c|l[i+15|0]){i:{if((0|a)==(0|i)){if(n=J(k[k[e+8>>2]+4>>2],k[b+12>>2]))break i;break r}if(!(n=J(k[k[u+8>>2]+4>>2],k[e+8>>2])))break r;n=k[n+4>>2]}if(l[i+15|0]){if(Z(k[i>>2])){k[i>>2]=n,t[i+15|0]=0,k[n+24>>2]=i,W(r,e);break e}break r}if(!(i=Q(16)))break r;if(k[i>>2]=n,a=Er(k[r+64>>2],k[a+4>>2],i),k[i+4>>2]=a,!a)break r;t[i+13|0]=0,t[i+14|0]=0,t[i+15|0]=0,k[n+24>>2]=i,b=k[r+56>>2],n=k[k[i>>2]+28>>2]+k[k[k[a+4>>2]>>2]+8>>2]|0,k[i+8>>2]=n;i:{a:switch(b-100130|0){case 0:a=1&n;break i;case 1:a=0!=(0|n);break i;case 2:a=(0|n)>0;break i;case 3:a=n>>>31|0;break i;case 4:break a;default:break i}a=n-2>>>0<4294967293}t[i+12|0]=a,W(r,e);break e}Y(i=r,a,r=k[e+8>>2],r,0,1);break e}for(e=k[k[a>>2]+16>>2];a=k[k[k[a+4>>2]+4>>2]>>2],i=k[a>>2],(0|e)==k[i+16>>2];);if(l[a+15|0]){if(!(e=J(k[k[k[k[k[a+4>>2]+8>>2]>>2]>>2]+4>>2],k[i+12>>2])))break r;if(!Z(k[a>>2]))break r;if(k[a>>2]=e,t[a+15|0]=0,k[e+24>>2]=a,!(a=k[k[k[a+4>>2]+4>>2]>>2]))break r}if(e=k[k[k[a+4>>2]+8>>2]>>2],i=k[e>>2],e=kr(r,e,0),(0|i)!=(0|(n=k[e+8>>2])))Y(r,a,n,i,i,1);else{if(n=k[a>>2],v=k[k[k[a+4>>2]+8>>2]>>2],u=k[v>>2],k[k[n+4>>2]+16>>2]!=k[k[u+4>>2]+16>>2]&&T(r,a),d=1,b=k[r+72>>2],o=h[b+28>>2],c=k[n+16>>2],!(o!=h[c+28>>2]|h[c+32>>2]!=h[b+32>>2])){if(!K(k[k[i+4>>2]+12>>2],n))break r;for(i=k[k[a>>2]+16>>2];a=k[k[k[a+4>>2]+4>>2]>>2],b=k[a>>2],(0|i)==k[b+16>>2];);if(l[a+15|0]){if(!(i=J(k[k[k[k[k[a+4>>2]+8>>2]>>2]>>2]+4>>2],k[b+12>>2])))break r;if(!Z(k[a>>2]))break r;if(k[a>>2]=i,t[a+15|0]=0,k[i+24>>2]=a,!(a=k[k[k[a+4>>2]+4>>2]>>2]))break r}b=k[k[k[a+4>>2]+8>>2]>>2],i=k[b>>2],kr(r,b,v),b=k[r+72>>2],o=h[b+28>>2],d=0}f:{if(s=o,c=k[u+16>>2],s!=(o=h[c+28>>2])|h[c+32>>2]!=h[b+32>>2]){if(d)break f}else{if(!K(e,k[k[u+4>>2]+12>>2]))break r;e=kr(r,v,0)}Y(r,a,k[e+8>>2],i,i,1);break e}if(i=k[n+16>>2],!((s=h[i+28>>2])>o)&(!(h[c+32>>2]<=h[i+32>>2])|o!=s)||(n=k[k[u+4>>2]+12>>2]),!(e=J(k[k[e+8>>2]+4>>2],n)))break r;Y(r,a,e,i=k[e+8>>2],i,0),t[k[k[e+4>>2]+24>>2]+15|0]=1,L(r,a)}}return void(U=f+16|0)}Br(r+1740|0,1),A()}function H(r){r|=0;var e,f=0,i=0,a=0,n=p(0),t=p(0),b=0,o=0,u=p(0),c=0,s=p(0),A=p(0),l=0,v=p(0),d=p(0),w=p(0),y=p(0),m=p(0),g=p(0),E=p(0),C=p(0),R=p(0),I=p(0),S=p(0),M=0,_=0,P=0,B=0,F=0,Q=0,T=0,x=0,W=p(0);e=k[r+8>>2],f=U-80|0,y=h[r+16>>2],h[f+8>>2]=y,m=h[r+20>>2],h[f+12>>2]=m,g=h[r+24>>2],h[f+16>>2]=g,c=k[e>>2];r:if(_=y==p(0)&m==p(0)&g==p(0)){if(k[f+76>>2]=-42943038,k[f+68>>2]=-42943038,k[f+72>>2]=-42943038,k[f+64>>2]=2104540610,k[f+56>>2]=2104540610,k[f+60>>2]=2104540610,(0|e)!=(0|c)){for(w=p(19999999867631625e21),R=p(-19999999867631625e21),E=p(-19999999867631625e21),C=p(19999999867631625e21),I=p(-19999999867631625e21),S=p(19999999867631625e21),s=p(-19999999867631625e21),u=p(19999999867631625e21),v=p(-19999999867631625e21),t=p(19999999867631625e21),A=p(-19999999867631625e21),d=p(19999999867631625e21),i=c;s=(a=(n=h[i+24>>2])>s)?n:s,R=a?n:R,u=(l=n>2])>v)?n:v,E=o?n:E,t=(M=t>n)?n:t,C=M?n:C,A=(b=(n=h[i+16>>2])>A)?n:A,I=b?n:I,P=b?i:P,d=(b=n>2])););k[f+20>>2]=B,h[f+56>>2]=S,h[f+68>>2]=I,k[f+32>>2]=P,h[f+60>>2]=C,k[f+24>>2]=x,h[f+72>>2]=E,k[f+36>>2]=T,h[f+64>>2]=w,k[f+28>>2]=Q,h[f+76>>2]=R,k[f+40>>2]=F,u=p(s-u),s=p(A-d),t=p(v-t)}else s=p(-3999999973526325e22),u=p(-3999999973526325e22),t=p(-3999999973526325e22);if(i=2,a=(o=t>s)<<2,l=o,b=f+56|0,l=p(h[(o=f+68|0)+a>>2]-h[b+a>>2])>2]>=h[a+o>>2])k[f+8>>2]=0,k[f+12>>2]=0;else{if(i=k[(a=l<<2)+(f+20|0)>>2],a=k[a+(f+32|0)>>2],I=h[a+16>>2],w=p(h[i+16>>2]-I),h[f+44>>2]=w,S=h[a+20>>2],A=p(h[i+20>>2]-S),h[f+48>>2]=A,W=h[a+24>>2],d=p(h[i+24>>2]-W),R=p(-w),(0|e)!=(0|c)){for(C=p(-A),E=p(-d),t=p(0),i=c;u=p(h[i+20>>2]-S),n=p(h[i+16>>2]-I),s=p(p(w*u)+p(n*C)),v=p(h[i+24>>2]-W),u=p(p(A*v)+p(u*E)),n=p(p(d*n)+p(v*R)),(v=p(p(s*s)+p(p(u*u)+p(n*n))))>t&&(g=s,m=n,y=u,t=v),(0|e)!=(0|(i=k[i>>2])););if(h[f+16>>2]=g,h[f+12>>2]=m,h[f+8>>2]=y,!(t<=p(0)))break r}else E=p(-d),C=p(-A);k[f+16>>2]=0,k[f+8>>2]=0,k[f+12>>2]=0,i=(A(w>2],i=(d(t>2]=1065353216,g=h[f+16>>2],y=h[f+8>>2],m=h[f+12>>2]}if(o=f+8|0,a=(m(y>2],i=r+28|0,f=(g(t>2]=0,k[(b=(3!=(0|(b=f+1|0))?b:0)<<2)+i>>2]=1065353216,k[(f=(f+2>>>0)%3<<2)+i>>2]=0,k[(i=r+40|0)+a>>2]=0,a=h[a+o>>2]>p(0),h[i+b>>2]=p(a?-0:0),h[f+i>>2]=p(a?1:-1),!(a=(0|e)==(0|c)))for(i=c;f=k[i+20>>2],k[i+28>>2]=k[i+16>>2],k[i+32>>2]=f,(0|e)!=(0|(i=k[i>>2])););if(_&&(0|(f=k[e+40>>2]))!=(0|(o=e+40|0))){for(t=p(0);;){if(b=k[f+8>>2],k[(i=b)+28>>2]>0)for(;l=k[i+16>>2],M=k[k[i+4>>2]+16>>2],t=p(p(p(h[l+28>>2]-h[M+28>>2])*p(h[l+32>>2]+h[M+32>>2]))+t),(0|b)!=(0|(i=k[i+12>>2])););if((0|o)==(0|(f=k[f>>2])))break}if(t>2]=-h[c+32>>2],(0|(c=k[c>>2]))!=(0|e););h[r+40>>2]=-h[r+40>>2],h[r+44>>2]=-h[r+44>>2],h[r+48>>2]=-h[r+48>>2]}}}function O(r){var e=0,f=0,i=0,a=0,n=0,t=0,b=0,o=0,u=0;r:if(r|=0){n=(i=r-8|0)+(r=-8&(e=k[r-4>>2]))|0;e:if(!(1&e)){if(!(2&e))break r;if((i=i-(e=k[i>>2])|0)>>>0>>0<=255){if(a=e>>>3|0,(0|(e=k[i+12>>2]))==(0|(f=k[i+8>>2]))){o=3416,u=k[854]&Pr(a),k[o>>2]=u;break e}k[f+12>>2]=e,k[e+8>>2]=f;break e}if(b=k[i+24>>2],(0|i)!=(0|(e=k[i+12>>2]))){f=k[i+8>>2],k[f+12>>2]=e,k[e+8>>2]=f;break f}if(!(f=k[(a=i+20|0)>>2])){if(!(f=k[i+16>>2]))break i;a=i+16|0}for(;t=a,(f=k[(a=(e=f)+20|0)>>2])||(a=e+16|0,f=k[e+16>>2]););k[t>>2]=0;break f}if(3!=(3&(e=k[n+4>>2])))break e;return k[856]=r,k[n+4>>2]=-2&e,k[i+4>>2]=1|r,void(k[n>>2]=r)}e=0}if(b){f=k[i+28>>2];f:{if(k[(a=3720+(f<<2)|0)>>2]==(0|i)){if(k[a>>2]=e,e)break f;o=3420,u=k[855]&Pr(f),k[o>>2]=u;break e}if(k[b+(k[b+16>>2]==(0|i)?16:20)>>2]=e,!e)break e}k[e+24>>2]=b,(f=k[i+16>>2])&&(k[e+16>>2]=f,k[f+24>>2]=e),(f=k[i+20>>2])&&(k[e+20>>2]=f,k[f+24>>2]=e)}}if(!(i>>>0>=n>>>0)&&1&(e=k[n+4>>2])){e:{f:{i:{a:{if(!(2&e)){if(k[860]==(0|n)){if(k[860]=i,r=k[857]+r|0,k[857]=r,k[i+4>>2]=1|r,k[859]!=(0|i))break r;return k[856]=0,void(k[859]=0)}if(k[859]==(0|n))return k[859]=i,r=k[856]+r|0,k[856]=r,k[i+4>>2]=1|r,void(k[r+i>>2]=r);if(r=(-8&e)+r|0,e>>>0<=255){if(a=e>>>3|0,(0|(e=k[n+12>>2]))==(0|(f=k[n+8>>2]))){o=3416,u=k[854]&Pr(a),k[o>>2]=u;break f}k[f+12>>2]=e,k[e+8>>2]=f;break f}if(b=k[n+24>>2],(0|n)!=(0|(e=k[n+12>>2]))){f=k[n+8>>2],k[f+12>>2]=e,k[e+8>>2]=f;break i}if(!(f=k[(a=n+20|0)>>2])){if(!(f=k[n+16>>2]))break a;a=n+16|0}for(;t=a,(f=k[(a=(e=f)+20|0)>>2])||(a=e+16|0,f=k[e+16>>2]););k[t>>2]=0;break i}k[n+4>>2]=-2&e,k[i+4>>2]=1|r,k[r+i>>2]=r;break e}e=0}if(b){f=k[n+28>>2];i:{if(k[(a=3720+(f<<2)|0)>>2]==(0|n)){if(k[a>>2]=e,e)break i;o=3420,u=k[855]&Pr(f),k[o>>2]=u;break f}if(k[b+(k[b+16>>2]==(0|n)?16:20)>>2]=e,!e)break f}k[e+24>>2]=b,(f=k[n+16>>2])&&(k[e+16>>2]=f,k[f+24>>2]=e),(f=k[n+20>>2])&&(k[e+20>>2]=f,k[f+24>>2]=e)}}if(k[i+4>>2]=1|r,k[r+i>>2]=r,k[859]==(0|i))return void(k[856]=r)}if(r>>>0<=255)return e=3456+(-8&r)|0,(f=k[854])&(r=1<<(r>>>3))?r=k[e+8>>2]:(k[854]=r|f,r=e),k[e+8>>2]=i,k[r+12>>2]=i,k[i+12>>2]=e,void(k[i+8>>2]=r);f=31,r>>>0<=16777215&&(f=62+((r>>>38-(e=g(r>>>8|0))&1)-(e<<1)|0)|0),k[i+28>>2]=f,k[i+16>>2]=0,k[i+20>>2]=0,e=3720+(f<<2)|0;e:{f:{if((a=k[855])&(t=1<>>1|0)|0:0),e=k[e>>2];;){if(a=e,(-8&k[e+4>>2])==(0|r))break f;if(t=f>>>29|0,f<<=1,!(e=k[16+(t=e+(4&t)|0)>>2]))break}k[t+16>>2]=i,k[i+24>>2]=a}else k[855]=a|t,k[e>>2]=i,k[i+24>>2]=e;k[i+12>>2]=i,k[i+8>>2]=i;break e}r=k[a+8>>2],k[r+12>>2]=i,k[a+8>>2]=i,k[i+24>>2]=0,k[i+12>>2]=a,k[i+8>>2]=r}r=k[862]-1|0,k[862]=r||-1}}}function j(r,e){var f,i=0,a=0,n=0,t=0,b=0,o=0,u=0;f=r+e|0;r:{e:if(!(1&(i=k[r+4>>2]))){if(!(2&i))break r;e=(i=k[r>>2])+e|0;f:{i:{a:{if((0|(r=r-i|0))!=k[859]){if(i>>>0<=255){if((0|(a=k[r+8>>2]))!=(0|(n=k[r+12>>2])))break a;o=3416,u=k[854]&Pr(i>>>3|0),k[o>>2]=u;break e}if(b=k[r+24>>2],(0|(i=k[r+12>>2]))!=(0|r)){a=k[r+8>>2],k[a+12>>2]=i,k[i+8>>2]=a;break f}if(!(a=k[(n=r+20|0)>>2])){if(!(a=k[r+16>>2]))break i;n=r+16|0}for(;t=n,(a=k[(n=(i=a)+20|0)>>2])||(n=i+16|0,a=k[i+16>>2]););k[t>>2]=0;break f}if(3!=(3&(i=k[f+4>>2])))break e;return k[856]=e,k[f+4>>2]=-2&i,k[r+4>>2]=1|e,void(k[f>>2]=e)}k[a+12>>2]=n,k[n+8>>2]=a;break e}i=0}if(b){a=k[r+28>>2];f:{if(k[(n=3720+(a<<2)|0)>>2]==(0|r)){if(k[n>>2]=i,i)break f;o=3420,u=k[855]&Pr(a),k[o>>2]=u;break e}if(k[b+(k[b+16>>2]==(0|r)?16:20)>>2]=i,!i)break e}k[i+24>>2]=b,(a=k[r+16>>2])&&(k[i+16>>2]=a,k[a+24>>2]=i),(a=k[r+20>>2])&&(k[i+20>>2]=a,k[a+24>>2]=i)}}e:{f:{i:{a:{if(!(2&(i=k[f+4>>2]))){if(k[860]==(0|f)){if(k[860]=r,e=k[857]+e|0,k[857]=e,k[r+4>>2]=1|e,k[859]!=(0|r))break r;return k[856]=0,void(k[859]=0)}if(k[859]==(0|f))return k[859]=r,e=k[856]+e|0,k[856]=e,k[r+4>>2]=1|e,void(k[r+e>>2]=e);if(e=(-8&i)+e|0,i>>>0<=255){if(n=i>>>3|0,(0|(i=k[f+12>>2]))==(0|(a=k[f+8>>2]))){o=3416,u=k[854]&Pr(n),k[o>>2]=u;break f}k[a+12>>2]=i,k[i+8>>2]=a;break f}if(b=k[f+24>>2],(0|f)!=(0|(i=k[f+12>>2]))){a=k[f+8>>2],k[a+12>>2]=i,k[i+8>>2]=a;break i}if(!(a=k[(n=f+20|0)>>2])){if(!(a=k[f+16>>2]))break a;n=f+16|0}for(;t=n,(a=k[(n=(i=a)+20|0)>>2])||(n=i+16|0,a=k[i+16>>2]););k[t>>2]=0;break i}k[f+4>>2]=-2&i,k[r+4>>2]=1|e,k[r+e>>2]=e;break e}i=0}if(b){a=k[f+28>>2];i:{if(k[(n=3720+(a<<2)|0)>>2]==(0|f)){if(k[n>>2]=i,i)break i;o=3420,u=k[855]&Pr(a),k[o>>2]=u;break f}if(k[b+(k[b+16>>2]==(0|f)?16:20)>>2]=i,!i)break f}k[i+24>>2]=b,(a=k[f+16>>2])&&(k[i+16>>2]=a,k[a+24>>2]=i),(a=k[f+20>>2])&&(k[i+20>>2]=a,k[a+24>>2]=i)}}if(k[r+4>>2]=1|e,k[r+e>>2]=e,k[859]==(0|r))return void(k[856]=e)}if(e>>>0<=255)return i=3456+(-8&e)|0,(a=k[854])&(e=1<<(e>>>3))?e=k[i+8>>2]:(k[854]=e|a,e=i),k[i+8>>2]=r,k[e+12>>2]=r,k[r+12>>2]=i,void(k[r+8>>2]=e);a=31,e>>>0<=16777215&&(a=62+((e>>>38-(i=g(e>>>8|0))&1)-(i<<1)|0)|0),k[r+28>>2]=a,k[r+16>>2]=0,k[r+20>>2]=0,i=3720+(a<<2)|0;e:{if((n=k[855])&(t=1<>>1|0)|0:0),i=k[i>>2];;){if(n=i,(-8&k[i+4>>2])==(0|e))break e;if(t=a>>>29|0,a<<=1,!(i=k[16+(t=i+(4&t)|0)>>2]))break}k[t+16>>2]=r,k[r+24>>2]=n}else k[855]=n|t,k[i>>2]=r,k[r+24>>2]=i;return k[r+12>>2]=r,void(k[r+8>>2]=r)}e=k[n+8>>2],k[e+12>>2]=r,k[n+8>>2]=r,k[r+24>>2]=0,k[r+12>>2]=n,k[r+8>>2]=e}}function D(r,e){var f=0,i=0,a=0,n=0,b=p(0),o=0,u=p(0),c=0,s=0,l=0,v=0,d=0,w=0,y=0,m=0,g=0,E=0,C=0,R=0;r:{l=k[e>>2],a=k[l+16>>2],u=h[a+28>>2],f=k[k[k[e+4>>2]+8>>2]>>2],v=k[f>>2],n=k[v+16>>2];e:{if(!(!(u<(b=h[n+28>>2]))&(!(h[a+32>>2]<=h[n+32>>2])|u!=b))){if(tr(k[k[v+4>>2]+16>>2],a,n)>p(0))break e;if(a=k[l+16>>2],n=k[v+16>>2],!(h[a+28>>2]==h[n+28>>2]&h[a+32>>2]==h[n+32>>2])){if(!V(k[v+4>>2]))break r;if(!K(l,k[k[v+4>>2]+12>>2]))break r;return t[f+14|0]=1,t[e+14|0]=1,1}if(i=1,(0|a)==(0|n))break e;if(o=k[r+68>>2],(0|(n=k[a+36>>2]))>=0){if(d=k[o>>2],c=k[d>>2],s=k[d+4>>2],e=k[4+(g=s+(n<<3)|0)>>2],y=k[d+8>>2],m=k[c+(y<<2)>>2],k[c+(e<<2)>>2]=m,C=i=(m<<3)+s|0,k[i+4>>2]=e,E=y-1|0,k[d+8>>2]=E,(0|e)<(0|y)){f:{if((0|e)<2||(f=k[(k[c+(e<<1&-4)>>2]<<3)+s>>2],b=h[f+28>>2],w=k[i>>2],b<(u=h[w+28>>2])||!(!(h[f+32>>2]<=h[w+32>>2])|u!=b)))for(R=(m<<3)+s|0;;){if((0|E)<=(0|(f=e<<1))||(o=k[(k[c+((i=1|f)<<2)>>2]<<3)+s>>2],u=h[o+28>>2],a=k[(k[c+(f<<2)>>2]<<3)+s>>2],!(u<(b=h[a+28>>2]))&(!(h[o+32>>2]<=h[a+32>>2])|u!=b)||(f=i)),(0|f)>=(0|y)){f=e;break f}if(w=k[R>>2],u=h[w+28>>2],o=k[c+(f<<2)>>2],i=k[(a=(o<<3)+s|0)>>2],u<(b=h[i+28>>2])){f=e;break f}if(!(!(h[w+32>>2]<=h[i+32>>2])|u!=b)){f=e;break f}k[c+(e<<2)>>2]=o,k[a+4>>2]=e,e=f}for(;;){if(o=k[c+((f=e>>>1|0)<<2)>>2],i=k[(a=(o<<3)+s|0)>>2],(b=h[i+28>>2])>2]<=h[w+32>>2])|u!=b)){f=e;break f}if(k[c+(e<<2)>>2]=o,k[a+4>>2]=e,i=e>>>0>3,e=f,!i)break}}k[c+(f<<2)>>2]=m,k[C+4>>2]=f}k[g>>2]=0,k[g+4>>2]=k[d+16>>2],k[d+16>>2]=n}else{k[k[o+4>>2]+((-1^n)<<2)>>2]=0;f:if(!((0|(e=k[o+12>>2]))<=0))for(n=k[o+8>>2]-4|0;;){if(k[k[n+(e<<2)>>2]>>2])break f;if(f=e-1|0,k[o+12>>2]=f,i=(0|e)>1,e=f,!i)break}}return or(r,k[k[v+4>>2]+12>>2],l),1}if(!(tr(k[k[l+4>>2]+16>>2],n,a)>2]+4>>2]>>2]+14|0]=1,!V(k[l+4>>2]))break r;if(!K(k[k[v+4>>2]+12>>2],l))break r}}return i}Br(r+1740|0,1),A()}function G(r,e){var f,i,a=0,n=0,t=0,b=0,o=0,u=0,c=0,s=0,A=0,l=0,v=0;if(!r)return Q(e);if(e>>>0>=4294967232)return k[806]=48,0;f=e>>>0<11?16:e+11&-8,n=-8&(i=k[4+(t=r-8|0)>>2]);r:if(3&i){b=n+t|0;e:if(n>>>0>=f>>>0){if((a=n-f|0)>>>0<16)break e;k[t+4>>2]=1&i|f|2,k[4+(n=t+f|0)>>2]=3|a,k[b+4>>2]=1|k[b+4>>2],j(n,a)}else if(k[860]!=(0|b))if(k[859]!=(0|b)){if(2&(o=k[b+4>>2]))break r;if((u=n+(-8&o)|0)>>>0>>0)break r;s=u-f|0;f:if(o>>>0<=255){if((0|(a=k[b+12>>2]))==(0|(n=k[b+8>>2]))){l=3416,v=k[854]&Pr(o>>>3|0),k[l>>2]=v;break f}k[n+12>>2]=a,k[a+8>>2]=n}else{c=k[b+24>>2];i:if((0|b)==(0|(n=k[b+12>>2]))){a:{if(!(o=k[(a=b+20|0)>>2])){if(!(o=k[b+16>>2]))break a;a=b+16|0}for(;A=a,(o=k[(a=(n=o)+20|0)>>2])||(a=n+16|0,o=k[n+16>>2]););k[A>>2]=0;break i}n=0}else a=k[b+8>>2],k[a+12>>2]=n,k[n+8>>2]=a;if(c){a=k[b+28>>2];i:{if(k[(o=3720+(a<<2)|0)>>2]==(0|b)){if(k[o>>2]=n,n)break i;l=3420,v=k[855]&Pr(a),k[l>>2]=v;break f}if(k[(k[c+16>>2]==(0|b)?16:20)+c>>2]=n,!n)break f}k[n+24>>2]=c,(a=k[b+16>>2])&&(k[n+16>>2]=a,k[a+24>>2]=n),(a=k[b+20>>2])&&(k[n+20>>2]=a,k[a+24>>2]=n)}}s>>>0<=15?(k[t+4>>2]=1&i|u|2,k[4+(a=t+u|0)>>2]=1|k[a+4>>2]):(k[t+4>>2]=1&i|f|2,k[4+(a=t+f|0)>>2]=3|s,k[4+(n=t+u|0)>>2]=1|k[n+4>>2],j(a,s))}else{if((n=n+k[856]|0)>>>0>>0)break r;(a=n-f|0)>>>0>=16?(k[t+4>>2]=1&i|f|2,k[4+(o=t+f|0)>>2]=1|a,k[(n=n+t|0)>>2]=a,k[n+4>>2]=-2&k[n+4>>2]):(k[t+4>>2]=n|1&i|2,k[4+(a=n+t|0)>>2]=1|k[a+4>>2],a=0),k[859]=o,k[856]=a}else{if((n=n+k[857]|0)>>>0<=f>>>0)break r;k[t+4>>2]=1&i|f|2,n=n-f|0,k[4+(a=t+f|0)>>2]=1|n,k[857]=n,k[860]=a}a=t}else{if(f>>>0<256)break r;if(n>>>0>=f+4>>>0&&(a=t,n-f>>>0<=k[974]<<1>>>0))break r;a=0}return a?a+8|0:(a=Q(e))?(N(a,r,e>>>0>(t=(3&(t=k[r-4>>2])?-4:-8)+(-8&t)|0)>>>0?t:e),O(r),a):0}function L(r,e){var f=0,i=0,a=0,n=0,b=0,o=0,u=p(0),c=0,s=p(0);for(i=k[k[k[e+4>>2]+8>>2]>>2];;){r:{if(l[i+14|0])for(;i=k[k[k[(e=i)+4>>2]+8>>2]>>2],l[i+14|0];);e:{f:{i:{a:{if(l[e+14|0])f=e;else{if(!(f=k[k[k[e+4>>2]+4>>2]>>2]))break a;if(i=e,!l[f+14|0])break a}t[f+14|0]=0,a=k[f>>2],e=k[k[a+4>>2]+16>>2],b=k[i>>2];n:if((0|e)!=k[k[b+4>>2]+16>>2]){u=h[e+28>>2],c=k[k[k[f+4>>2]+8>>2]>>2],n=k[c>>2],o=k[k[n+4>>2]+16>>2];t:{if(!(!(u<(s=h[o+28>>2]))&(!(h[e+32>>2]<=h[o+32>>2])|u!=s))){if(tr(e,o,k[a+16>>2])>2]+4>>2]>>2]+14|0]=1,!(e=V(a)))break e;if(K(k[n+4>>2],e))break t;break r}if(tr(o,e,k[n+16>>2])>p(0)){e=f;break n}if(t[c+14|0]=1,t[f+14|0]=1,!(e=V(n)))break r;if(!K(k[a+12>>2],k[n+4>>2]))break r;e=k[e+4>>2]}if(t[k[e+20>>2]+21|0]=l[f+12|0],l[i+15|0]){if(k[k[i>>2]+24>>2]=0,_r(k[i+4>>2]),O(i),!Z(b))break r;i=k[k[k[f+4>>2]+8>>2]>>2],b=k[i>>2],e=f}else if(l[f+15|0]){if(k[k[f>>2]+24>>2]=0,_r(k[f+4>>2]),O(f),!Z(a))break r;e=k[k[k[i+4>>2]+4>>2]>>2],a=k[e>>2]}else e=f}else e=f;if(k[a+16>>2]==k[b+16>>2])break f;if(f=k[k[a+4>>2]+16>>2],n=k[k[b+4>>2]+16>>2],l[i+15|0]|l[e+15|0]|(0|f)==(0|n))break i;if((0|(o=f))!=(0|(f=k[r+72>>2]))&(0|f)!=(0|n))break i;if(!T(r,e))break f}return}D(r,e)}if(k[a+16>>2]!=k[b+16>>2])continue;if(n=k[a+4>>2],f=k[b+4>>2],k[n+16>>2]!=k[f+16>>2])continue;if(k[b+28>>2]=k[b+28>>2]+k[a+28>>2],k[f+28>>2]=k[f+28>>2]+k[n+28>>2],k[k[e>>2]+24>>2]=0,_r(k[e+4>>2]),O(e),!Z(a))break r;e=k[k[k[i+4>>2]+4>>2]>>2];continue}}break}Br(r+1740|0,1),A()}function Y(r,e,f,i,a,n){var b=0,o=0,u=0,c=0,s=0;r:{for(;;){if(o=k[f+4>>2],!(b=Q(16)))break r;if(k[b>>2]=o,u=Er(k[r+64>>2],k[e+4>>2],b),k[b+4>>2]=u,!u)break r;if(t[b+13|0]=0,t[b+14|0]=0,t[b+15|0]=0,k[o+24>>2]=b,(0|i)==(0|(f=k[f+8>>2])))break}if(f=k[k[k[e+4>>2]+8>>2]>>2],o=k[k[f>>2]+4>>2],a=a||k[o+8>>2],k[o+16>>2]==k[a+16>>2]){if(k[o+8>>2]!=(0|a)){if(!K(k[k[o+4>>2]+12>>2],o))break r;if(!K(k[k[a+4>>2]+12>>2],o))break r}i=(a=k[e+8>>2])-(u=k[o+28>>2])|0,k[f+8>>2]=i;e:{f:switch(k[r+56>>2]-100130|0){case 4:b=i-2>>>0<4294967293;break e;case 3:b=i>>>31|0;break e;case 2:b=(0|i)>0;break e;case 1:b=(0|a)!=(0|u);break e;case 0:break f;default:break e}b=1&i}if(t[f+12|0]=b,t[e+14|0]=1,u=k[k[k[f+4>>2]+8>>2]>>2],i=k[k[u>>2]+4>>2],k[i+16>>2]==k[o+16>>2])for(a=f+4|0;;){if(e=u,k[(b=i)+8>>2]!=(0|o)){if(!K(k[k[b+4>>2]+12>>2],b))break r;if(!K(k[k[o+4>>2]+12>>2],b))break r}i=(c=k[f+8>>2])-(s=k[b+28>>2])|0,k[e+8>>2]=i;e:{f:switch(k[r+56>>2]-100130|0){case 0:u=1&i;break e;case 1:u=(0|c)!=(0|s);break e;case 2:u=(0|i)>0;break e;case 3:u=i>>>31|0;break e;case 4:break f;default:break e}u=i-2>>>0<4294967293}if(t[e+12|0]=u,t[f+14|0]=1,D(r,f)&&(k[b+28>>2]=k[b+28>>2]+k[o+28>>2],i=k[b+4>>2],k[i+28>>2]=k[i+28>>2]+k[k[o+4>>2]+28>>2],k[k[f>>2]+24>>2]=0,_r(k[a>>2]),O(f),!Z(o)))break r;if(a=e+4|0,u=k[k[k[(f=e)+4>>2]+8>>2]>>2],i=k[k[u>>2]+4>>2],o=b,k[i+16>>2]!=k[b+16>>2])break}else e=f}return t[e+14|0]=1,void(n&&L(r,e))}Br(r+1740|0,1),A()}function Z(r){var e,f=0,i=0,a=0,n=0,b=0;if(n=k[r+4>>2],(0|(e=k[n+20>>2]))!=(0|(i=k[r+20>>2]))){for(f=a=k[i+8>>2];k[f+20>>2]=e,(0|a)!=(0|(f=k[f+12>>2])););f=k[i>>2],a=k[i+4>>2],k[f+4>>2]=a,k[a>>2]=f,O(i)}if((0|(a=k[r+8>>2]))!=(0|r)){if(b=k[r+4>>2],f=k[b+12>>2],k[k[b+20>>2]+8>>2]=f,k[k[r+16>>2]+8>>2]=a,b=k[f+8>>2],k[k[a+4>>2]+12>>2]=f,k[k[b+4>>2]+12>>2]=r,k[r+8>>2]=b,k[f+8>>2]=a,(0|i)==(0|e)){if(!(i=Q(24)))return 0;for(f=k[r+20>>2],a=k[f+4>>2],k[i+4>>2]=a,k[a>>2]=i,k[i>>2]=f,k[f+4>>2]=i,k[i+12>>2]=0,k[i+16>>2]=0,k[i+8>>2]=r,t[i+20|0]=0,t[i+21|0]=l[f+21|0],f=r;k[f+20>>2]=i,(0|(f=k[f+12>>2]))!=(0|r););}}else{for(i=k[r+16>>2],f=a=k[i+8>>2];k[f+16>>2]=0,(0|a)!=(0|(f=k[f+8>>2])););f=k[i>>2],a=k[i+4>>2],k[f+4>>2]=a,k[a>>2]=f,O(i)}if((0|(f=k[n+8>>2]))!=(0|n))i=k[k[n+4>>2]+12>>2],k[k[r+20>>2]+8>>2]=i,k[k[n+16>>2]+8>>2]=f,a=k[i+8>>2],k[k[f+4>>2]+12>>2]=i,k[k[a+4>>2]+12>>2]=n,k[n+8>>2]=a,k[i+8>>2]=f;else{for(i=k[n+16>>2],f=a=k[i+8>>2];k[f+16>>2]=0,(0|a)!=(0|(f=k[f+8>>2])););for(f=k[i>>2],a=k[i+4>>2],k[f+4>>2]=a,k[a>>2]=f,O(i),i=k[n+20>>2],f=n=k[i+8>>2];k[f+20>>2]=0,(0|n)!=(0|(f=k[f+12>>2])););f=k[i>>2],n=k[i+4>>2],k[f+4>>2]=n,k[n>>2]=f,O(i)}return f=k[r+4>>2],f=k[(r=r>>>0>f>>>0?f:r)>>2],i=k[k[r+4>>2]>>2],k[k[f+4>>2]>>2]=i,k[k[i+4>>2]>>2]=f,O(r),1}function J(r,e){var f=0,i=0,a=0,n=0,b=0,o=0,u=0,c=0,s=0,A=0;r:if(f=Q(64)){if(o=k[r+4>>2],n=k[(i=r>>>0>o>>>0?o:r)+4>>2],a=k[n>>2],k[f+32>>2]=a,k[k[a+4>>2]>>2]=f,k[f>>2]=i,i=n,n=f+32|0,k[i>>2]=n,k[f+16>>2]=0,k[f+20>>2]=0,k[f+12>>2]=n,k[f+4>>2]=n,k[f+24>>2]=0,k[f+28>>2]=0,k[f+48>>2]=0,k[f+52>>2]=0,k[f+44>>2]=f,k[f+40>>2]=n,k[f+36>>2]=f,k[f+56>>2]=0,k[f+60>>2]=0,k[f+8>>2]=f,a=n,u=f,(0|(i=b=k[e+20>>2]))!=(0|(c=k[r+20>>2]))){for(i=a=k[i+8>>2];k[i+20>>2]=c,(0|a)!=(0|(i=k[i+12>>2])););i=k[b>>2],a=k[b+4>>2],k[i+4>>2]=a,k[a>>2]=i,O(b),o=k[r+4>>2],u=k[f+8>>2],a=k[u+4>>2],i=k[r+20>>2]}if(r=k[r+12>>2],s=k[r+8>>2],k[a+12>>2]=r,k[k[s+4>>2]+12>>2]=f,k[f+8>>2]=s,k[r+8>>2]=u,r=k[e+8>>2],a=k[f+40>>2],k[k[a+4>>2]+12>>2]=e,k[k[r+4>>2]+12>>2]=n,k[f+40>>2]=r,k[e+8>>2]=a,k[f+16>>2]=k[o+16>>2],r=k[e+16>>2],k[f+52>>2]=i,k[f+48>>2]=r,k[f+20>>2]=i,k[i+8>>2]=n,(0|b)==(0|c)){if(!(r=Q(24)))break r;for(e=k[i+4>>2],k[r+4>>2]=e,k[e>>2]=r,k[r>>2]=i,k[i+4>>2]=r,k[r+12>>2]=0,k[r+16>>2]=0,k[r+8>>2]=f,t[r+20|0]=0,t[r+21|0]=l[i+21|0],i=f;k[i+20>>2]=r,(0|(i=k[i+12>>2]))!=(0|f););}A=f}return A}function N(r,e,f){var i=0,a=0;if(f>>>0>=512)_(0|r,0|e,0|f);else{i=r+f|0;r:if(3&(r^e))if(i>>>0<4)f=r;else if((a=i-4|0)>>>0>>0)f=r;else for(f=r;t[0|f]=l[0|e],t[f+1|0]=l[e+1|0],t[f+2|0]=l[e+2|0],t[f+3|0]=l[e+3|0],e=e+4|0,a>>>0>=(f=f+4|0)>>>0;);else{e:if(3&r)if(f)for(f=r;;){if(t[0|f]=l[0|e],e=e+1|0,!(3&(f=f+1|0)))break e;if(!(f>>>0>>0))break}else f=r;else f=r;if(!((r=-4&i)>>>0<64||(a=r+-64|0)>>>0>>0))for(;k[f>>2]=k[e>>2],k[f+4>>2]=k[e+4>>2],k[f+8>>2]=k[e+8>>2],k[f+12>>2]=k[e+12>>2],k[f+16>>2]=k[e+16>>2],k[f+20>>2]=k[e+20>>2],k[f+24>>2]=k[e+24>>2],k[f+28>>2]=k[e+28>>2],k[f+32>>2]=k[e+32>>2],k[f+36>>2]=k[e+36>>2],k[f+40>>2]=k[e+40>>2],k[f+44>>2]=k[e+44>>2],k[f+48>>2]=k[e+48>>2],k[f+52>>2]=k[e+52>>2],k[f+56>>2]=k[e+56>>2],k[f+60>>2]=k[e+60>>2],e=e- -64|0,a>>>0>=(f=f- -64|0)>>>0;);if(r>>>0<=f>>>0)break r;for(;k[f>>2]=k[e>>2],e=e+4|0,r>>>0>(f=f+4|0)>>>0;);}if(f>>>0>>0)for(;t[0|f]=l[0|e],e=e+1|0,(0|i)!=(0|(f=f+1|0)););}}function V(r){var e,f=0,i=0,a=0,n=0,t=0;if(e=r,r=0,(f=Q(64))&&(a=k[e+4>>2],n=k[(i=a>>>0>>0?a:e)+4>>2],t=k[n>>2],k[f+32>>2]=t,k[k[t+4>>2]>>2]=f,k[f>>2]=i,i=f+32|0,k[n>>2]=i,k[f+16>>2]=0,k[f+20>>2]=0,k[f+12>>2]=i,k[f+4>>2]=i,k[f+24>>2]=0,k[f+28>>2]=0,k[f+48>>2]=0,k[f+52>>2]=0,k[f+40>>2]=i,k[f+36>>2]=f,k[f+56>>2]=0,k[f+60>>2]=0,k[f+8>>2]=f,n=k[e+12>>2],t=k[n+8>>2],k[f+44>>2]=n,k[k[t+4>>2]+12>>2]=f,k[f+8>>2]=t,k[n+8>>2]=f,n=k[a+16>>2],k[f+16>>2]=n,a=Q(40))){for(r=k[n+4>>2],k[a+4>>2]=r,k[r>>2]=a,k[a>>2]=n,k[n+4>>2]=a,k[a+12>>2]=0,k[a+8>>2]=i,r=i;k[r+16>>2]=a,(0|i)!=(0|(r=k[r+8>>2])););r=k[e+20>>2],k[f+20>>2]=r,k[f+52>>2]=r,r=f}return r?(f=k[r+4>>2],r=k[e+4>>2],i=k[k[r+4>>2]+12>>2],a=k[i+8>>2],n=k[r+8>>2],k[k[n+4>>2]+12>>2]=i,k[k[a+4>>2]+12>>2]=r,k[r+8>>2]=a,k[i+8>>2]=n,i=k[f+8>>2],a=k[r+8>>2],k[k[a+4>>2]+12>>2]=f,k[k[i+4>>2]+12>>2]=r,k[r+8>>2]=i,k[f+8>>2]=a,k[r+16>>2]=k[f+16>>2],i=k[f+4>>2],k[k[i+16>>2]+8>>2]=i,k[i+20>>2]=k[r+20>>2],k[f+28>>2]=k[e+28>>2],k[i+28>>2]=k[r+28>>2],f):0}function z(r){var e,f=0,i=0,a=0,n=0,t=0,b=0,o=0,u=0;if((0|(n=k[40+(r|=0)>>2]))!=(0|(e=r+40|0)))for(;;){if(u=k[n>>2],!l[n+21|0]){for(o=k[n+8>>2],r=k[o+12>>2];;){if(k[r+20>>2]=0,b=k[r+12>>2],f=k[r+4>>2],!k[f+20>>2]){if(a=k[r+16>>2],(0|(i=k[r+8>>2]))!=(0|r))k[a+8>>2]=i,a=k[f+12>>2],t=k[a+8>>2],k[k[i+4>>2]+12>>2]=a,k[k[t+4>>2]+12>>2]=r,k[r+8>>2]=t,k[a+8>>2]=i;else{for(f=i=k[a+8>>2];k[f+16>>2]=0,(0|i)!=(0|(f=k[f+8>>2])););f=k[a>>2],i=k[a+4>>2],k[f+4>>2]=i,k[i>>2]=f,O(a),f=k[r+4>>2]}if(a=k[f+16>>2],(0|(i=k[f+8>>2]))!=(0|f))k[a+8>>2]=i,a=k[k[f+4>>2]+12>>2],t=k[a+8>>2],k[k[i+4>>2]+12>>2]=a,k[k[t+4>>2]+12>>2]=f,k[f+8>>2]=t,k[a+8>>2]=i;else{for(f=i=k[a+8>>2];k[f+16>>2]=0,(0|i)!=(0|(f=k[f+8>>2])););f=k[a>>2],i=k[a+4>>2],k[f+4>>2]=i,k[i>>2]=f,O(a),f=k[r+4>>2]}a=k[(f=r>>>0>f>>>0?f:r)>>2],i=k[k[f+4>>2]>>2],k[k[a+4>>2]>>2]=i,k[k[i+4>>2]>>2]=a,O(f)}if(f=(0|r)!=(0|o),r=b,!f)break}r=k[n>>2],b=k[n+4>>2],k[r+4>>2]=b,k[b>>2]=r,O(n)}if((0|e)==(0|(n=u)))break}}function K(r,e){var f=0,i=0,a=0,n=0,b=0,o=0;if((0|r)!=(0|e)){if((0|(i=k[e+16>>2]))!=(0|(b=k[r+16>>2]))){for(f=a=k[i+8>>2];k[f+16>>2]=b,(0|a)!=(0|(f=k[f+8>>2])););f=k[i>>2],a=k[i+4>>2],k[f+4>>2]=a,k[a>>2]=f,O(i)}if((0|(o=k[r+20>>2]))!=(0|(a=k[e+20>>2]))){for(f=n=k[a+8>>2];k[f+20>>2]=o,(0|n)!=(0|(f=k[f+12>>2])););f=k[a>>2],n=k[a+4>>2],k[f+4>>2]=n,k[n>>2]=f,O(a)}if(f=k[r+8>>2],n=k[e+8>>2],k[k[n+4>>2]+12>>2]=r,k[k[f+4>>2]+12>>2]=e,k[e+8>>2]=f,k[r+8>>2]=n,(0|i)==(0|b)){if(!(i=Q(40)))return 0;for(f=k[r+16>>2],b=k[f+4>>2],k[i+4>>2]=b,k[b>>2]=i,k[i>>2]=f,k[f+4>>2]=i,k[i+12>>2]=0,k[i+8>>2]=e,f=e;k[f+16>>2]=i,(0|(f=k[f+8>>2]))!=(0|e););k[k[r+16>>2]+8>>2]=r}if((0|a)==(0|o)){if(!(i=Q(24)))return 0;for(f=k[r+20>>2],a=k[f+4>>2],k[i+4>>2]=a,k[a>>2]=i,k[i>>2]=f,k[f+4>>2]=i,k[i+12>>2]=0,k[i+16>>2]=0,k[i+8>>2]=e,t[i+20|0]=0,t[i+21|0]=l[f+21|0],f=e;k[f+20>>2]=i,(0|(f=k[f+12>>2]))!=(0|e););k[k[r+20>>2]+8>>2]=r}}return 1}function q(r,e){var f=0,i=0,a=0,n=0,t=0,b=0,o=p(0),u=0,c=0,s=p(0);if(k[r+20>>2]){i=e,f=k[r>>2],r=k[f+8>>2]+1|0,k[f+8>>2]=r;r:{if(!((0|(e=k[f+12>>2]))>=r<<1)){if(k[f+12>>2]=e<<1,a=k[f+4>>2],e=G(n=k[f>>2],e<<3|4),k[f>>2]=e,!e){k[f>>2]=n,a=2147483647;break r}if(e=G(k[f+4>>2],8+(k[f+12>>2]<<3)|0),k[f+4>>2]=e,!e){k[f+4>>2]=a,a=2147483647;break r}}if(n=k[f+4>>2],a=r,(e=k[f+16>>2])&&(k[f+16>>2]=k[4+(n+(e<<3)|0)>>2],a=e),t=k[f>>2],k[t+(r<<2)>>2]=a,k[(b=n+(a<<3)|0)>>2]=i,k[b+4>>2]=r,k[f+20>>2]){e:if(r>>>0<2)e=r;else for(o=h[i+28>>2];;){if(f=k[((e=r>>1)<<2)+t>>2],c=k[(u=n+(f<<3)|0)>>2],(s=h[c+28>>2])>2]<=h[i+32>>2])|o!=s)){e=r;break e}if(k[(r<<2)+t>>2]=f,k[u+4>>2]=r,!((r=e)>>>0>1))break}k[(e<<2)+t>>2]=a,k[b+4>>2]=e}}return a}if(i=(f=k[r+12>>2])+1|0,k[r+12>>2]=i,a=k[r+4>>2],(0|(n=i))<(0|(i=k[r+16>>2])))i=a;else if(k[r+16>>2]=i<<1,i=G(a,i<<3),k[r+4>>2]=i,!i)return k[r+4>>2]=a,2147483647;return k[(f<<2)+i>>2]=e,-1^f}function $(r){var e,f,i=0,a=0,n=0,b=0,o=0;e=Q(40),f=Q(40);r:{if(!(n=Q(24))||!e|!f){if(e&&O(e),f&&O(f),!n)break r;return O(n),0}if(!(i=Q(64)))return 0;for(a=k[r+68>>2],b=k[(a=a>>>0<(b=r- -64|0)>>>0?a:b)+4>>2],o=k[b>>2],k[i+32>>2]=o,k[k[o+4>>2]>>2]=i,k[i>>2]=a,a=b,b=i+32|0,k[a>>2]=b,k[i+16>>2]=0,k[i+20>>2]=0,k[i+12>>2]=b,k[i+4>>2]=b,k[i+24>>2]=0,k[i+28>>2]=0,k[i+48>>2]=0,k[i+52>>2]=0,k[i+44>>2]=i,k[i+40>>2]=b,k[i+36>>2]=i,k[i+56>>2]=0,k[i+60>>2]=0,k[i+8>>2]=i,a=k[r+4>>2],k[e+4>>2]=a,k[a>>2]=e,k[e+12>>2]=0,k[e+8>>2]=i,a=i;k[a+16>>2]=e,(0|(a=k[a+8>>2]))!=(0|i););for(k[f+4>>2]=e,k[e>>2]=f,k[f>>2]=r,k[r+4>>2]=f,k[f+12>>2]=0,k[f+8>>2]=b,a=b;k[a+16>>2]=f,(0|b)!=(0|(a=k[a+8>>2])););for(a=k[r+44>>2],k[n+4>>2]=a,k[a>>2]=n,k[n>>2]=r+40,k[r+44>>2]=n,k[n+12>>2]=0,k[n+16>>2]=0,k[n+8>>2]=i,t[n+20|0]=0,t[n+21|0]=l[r+61|0],a=i;k[a+20>>2]=n,(0|(a=k[a+12>>2]))!=(0|i););}return i}function X(r){r|=0;var e=0,f=0,i=0,a=0,n=0,o=p(0);if((e=Q(128))&&(k[e+8>>2]=0,k[e+12>>2]=0,f=e+40|0,k[e+44>>2]=f,k[e+48>>2]=0,k[e+52>>2]=0,k[e+40>>2]=f,b[e+54>>1]=0,b[e+56>>1]=0,b[e+58>>1]=0,b[e+60>>1]=0,k[e+72>>2]=0,k[e+76>>2]=0,f=e+96|0,k[e+68>>2]=f,i=e- -64|0,k[e+64>>2]=i,k[e+80>>2]=0,k[e+84>>2]=0,k[e+88>>2]=0,k[e+92>>2]=0,k[e+104>>2]=0,k[e+108>>2]=0,k[e+100>>2]=i,k[e+96>>2]=f,k[e+112>>2]=0,k[e+116>>2]=0,k[e+120>>2]=0,k[e+124>>2]=0,k[e>>2]=e,k[e+4>>2]=e),k[r+8>>2]=e,!e)return 0;r:{if((0|(e=k[r+112>>2]))>0)for(a=116+((e<<4)+r|0)|0,f=r+116|0,e=k[r+4>>2];;){n=k[f+12>>2];e:{if(!e){if(i=0,!(e=$(k[r+8>>2])))break r;if(K(e,k[e+4>>2]))break e;break r}if(!V(e))return 0;e=k[e+12>>2]}if(i=k[e+16>>2],k[i+12>>2]=n,h[i+16>>2]=h[f>>2],o=h[f+4>>2],k[i+24>>2]=0,h[i+20>>2]=o,k[e+28>>2]=1,k[k[e+4>>2]+28>>2]=-1,k[r+4>>2]=e,!(a>>>0>(f=f+16|0)>>>0))break}t[r+108|0]=0,k[r+112>>2]=0,i=1}return 0|i}function rr(r,e){e|=0;var f=0;if((0|(f=k[(r|=0)>>2]))!=(0|e))for(;;){r:if(e>>>0>f>>>0){e:switch(0|f){case 0:11==(0|(f=k[r+1732>>2]))?Wr[k[r+12>>2]](100151):Wr[0|f](100151,k[r+1896>>2]),k[r>>2]&&rr(r,0),k[r+112>>2]=0,f=1,k[r>>2]=1,t[r+108|0]=0,k[r+1896>>2]=0,k[r+8>>2]=0;break r;case 1:break e;default:break r}if(11==(0|(f=k[r+1732>>2]))?Wr[k[r+12>>2]](100152):Wr[0|f](100152,k[r+1896>>2]),1!=k[r>>2]&&rr(r,1),k[r>>2]=2,k[r+4>>2]=0,f=2,k[r+112>>2]<=0)break r;t[r+108|0]=1}else{e:switch(f-1|0){case 1:11==(0|(f=k[r+1732>>2]))?Wr[k[r+12>>2]](100154):Wr[0|f](100154,k[r+1896>>2]),2!=k[r>>2]&&rr(r,2),f=1,k[r>>2]=1;break r;case 0:break e;default:break r}11==(0|(f=k[r+1732>>2]))?Wr[k[r+12>>2]](100153):Wr[0|f](100153,k[r+1896>>2]),(f=k[r+8>>2])&&vr(f),f=0,k[r+8>>2]=0,k[r>>2]=0,k[r+4>>2]=0}if((0|e)==(0|f))break}}function er(r,e){var f=0,i=0,a=0,n=0,b=0,o=0;k[r+8>>2]=7,k[r+4>>2]=0,f=k[e+20>>2];r:if(l[f+21|0]){a=e;e:{f:{for(;;){if(l[f+20|0])break r;if(t[f+20|0]=1,k[f+16>>2]=i,a=k[k[a+12>>2]+4>>2],i=k[a+20>>2],l[i+21|0]){if(l[i+20|0])break f;if(t[i+20|0]=1,k[i+16>>2]=f,n=n+2|0,a=k[a+8>>2],f=k[a+20>>2],l[f+21|0])continue;break r}break}n|=1;break e}n|=1}i=f}else a=e;b=k[e+4>>2],f=k[b+20>>2];r:if(!(!l[f+21|0]|l[f+20|0])){e:{f:{for(;;){if(t[f+20|0]=1,k[f+16>>2]=i,e=k[b+12>>2],b=k[e+4>>2],i=k[b+20>>2],l[i+21|0]){if(l[i+20|0])break f;if(t[i+20|0]=1,k[i+16>>2]=f,o=o+2|0,e=k[k[b+8>>2]+4>>2],b=k[e+4>>2],f=k[b+20>>2],!l[f+21|0])break r;if(!l[f+20|0])continue;break r}break}o|=1;break e}o|=1}i=f}f=n+o|0,k[r>>2]=f;r:{if(1&n){if(!(1&o))break r;k[r>>2]=f-1,e=e+8|0}else e=a+4|0;e=k[e>>2]}if(k[r+4>>2]=e,i)for(;t[i+20|0]=0,i=k[i+16>>2];);}function fr(r,e,f){var i=0,a=0,n=0,t=0,b=0,k=0,o=0,u=0,c=0;r:{e:{f:{i:{a:{n:{t:{b:{k:{o:{if(e){if(!f)break o;break k}F=0,r=(r>>>0)/(f>>>0)|0;break r}if(!r)break b;break t}if(!(f-1&f))break n;t=0-(n=(g(f)+33|0)-g(e)|0)|0;break i}F=0,r=(e>>>0)/0|0;break r}if((i=32-g(e)|0)>>>0<31)break a;break f}if(1==(0|f))break e;f=31&(n=Fr(f)),(63&n)>>>0>=32?r=e>>>f|0:(i=e>>>f|0,r=((1<>>f),F=i;break r}n=i+1|0,t=63-i|0}if(a=31&(i=63&n),i>>>0>=32?(i=0,b=e>>>a|0):(i=e>>>a|0,b=((1<>>a),a=31&(t&=63),t>>>0>=32?(e=r<>>32-a|e<>>31,b=(i=b<<1|e>>>31)-(o=f&(a=c-(k+(i>>>0>t>>>0)|0)>>31))|0,i=k-(i>>>0>>0)|0,e=e<<1|r>>>31,r=u|r<<1,u=1&a,n=n-1|0;);F=e<<1|r>>>31,r=u|r<<1;break r}r=0,e=0}F=e}return r}function ir(r){var e,f,i,a,n=0,t=0,b=0,o=p(0),u=0,c=p(0),s=0,A=0,l=0,v=0;if(f=k[r+4>>2],e=k[r>>2],t=k[e+4>>2],a=k[(n=f+(t<<3)|0)>>2],!((0|(i=k[r+8>>2]))<=0)&&(s=k[(i<<2)+e>>2],k[e+4>>2]=s,k[4+(A=(s<<3)+f|0)>>2]=1,k[n>>2]=0,k[n+4>>2]=k[r+16>>2],l=i-1|0,k[r+8>>2]=l,k[r+16>>2]=t,1!=(0|i))){for(n=1;(0|l)<=(0|(r=n<<1))||(b=k[(k[((t=1|r)<<2)+e>>2]<<3)+f>>2],o=h[b+28>>2],u=k[(k[(r<<2)+e>>2]<<3)+f>>2],!(o<(c=h[u+28>>2]))&(!(h[b+32>>2]<=h[u+32>>2])|o!=c)||(r=t)),!((0|r)>=(0|i)||(t=k[A>>2],o=h[t+28>>2],b=k[(r<<2)+e>>2],v=k[(u=(b<<3)+f|0)>>2],o<(c=h[v+28>>2])|o==c&h[t+32>>2]<=h[v+32>>2]));)k[(n<<2)+e>>2]=b,k[u+4>>2]=n,n=r;k[(n<<2)+e>>2]=s,k[A+4>>2]=n}return a}function ar(r,e,f){switch(e-9|0){case 0:return e=k[f>>2],k[f>>2]=e+4,void(k[r>>2]=k[e>>2]);case 6:return e=k[f>>2],k[f>>2]=e+4,e=b[e>>1],k[r>>2]=e,void(k[r+4>>2]=e>>31);case 7:return e=k[f>>2],k[f>>2]=e+4,k[r>>2]=v[e>>1],void(k[r+4>>2]=0);case 8:return e=k[f>>2],k[f>>2]=e+4,e=t[0|e],k[r>>2]=e,void(k[r+4>>2]=e>>31);case 9:return e=k[f>>2],k[f>>2]=e+4,k[r>>2]=l[0|e],void(k[r+4>>2]=0);case 16:return e=k[f>>2]+7&-8,k[f>>2]=e+8,void(w[r>>3]=w[e>>3]);case 17:A();default:return;case 1:case 4:case 14:return e=k[f>>2],k[f>>2]=e+4,e=k[e>>2],k[r>>2]=e,void(k[r+4>>2]=e>>31);case 2:case 5:case 11:case 15:return e=k[f>>2],k[f>>2]=e+4,k[r>>2]=k[e>>2],void(k[r+4>>2]=0);case 3:case 10:case 12:case 13:}e=k[f>>2]+7&-8,k[f>>2]=e+8,f=k[e+4>>2],k[r>>2]=k[e>>2],k[r+4>>2]=f}function nr(r,e,f){var i=0,a=0;if(f&&(t[0|r]=e,t[(i=r+f|0)-1|0]=e,!(f>>>0<3||(t[r+2|0]=e,t[r+1|0]=e,t[i-3|0]=e,t[i-2|0]=e,f>>>0<7||(t[r+3|0]=e,t[i-4|0]=e,f>>>0<9||(a=(i=0-r&3)+r|0,r=y(255&e,16843009),k[a>>2]=r,k[(e=(f=f-i&-4)+a|0)-4>>2]=r,f>>>0<9||(k[a+8>>2]=r,k[a+4>>2]=r,k[e-8>>2]=r,k[e-12>>2]=r,f>>>0<25||(k[a+24>>2]=r,k[a+20>>2]=r,k[a+16>>2]=r,k[a+12>>2]=r,k[e-16>>2]=r,k[e-20>>2]=r,k[e-24>>2]=r,k[e-28>>2]=r,(f=f-(e=4&a|24)|0)>>>0<32))))))))for(r=gr(r,0,1,1),i=F,e=e+a|0;k[e+24>>2]=r,k[e+28>>2]=i,k[e+16>>2]=r,k[e+20>>2]=i,k[e+8>>2]=r,k[e+12>>2]=i,k[e>>2]=r,k[e+4>>2]=i,e=e+32|0,(f=f-32|0)>>>0>31;);}function tr(r,e,f){var i,a=p(0),n=0,t=p(0),b=p(0),o=0,u=p(0),c=p(0),s=p(0);U=i=U+-64|0;r:{e:{if(!(!(o=(a=h[e+28>>2])>(b=h[r+28>>2]))&(!(h[r+32>>2]<=h[e+32>>2])|a!=b))){if((t=h[f+28>>2])>a|a==t&h[e+32>>2]<=h[f+32>>2])break r;if(n=1,o)break e}n=0,a==b&&(n=h[r+32>>2]<=h[e+32>>2])}o=n,n=1,(t=h[f+28>>2])>a||(n=0,a==t&&(n=h[e+32>>2]<=h[f+32>>2])),u=h[r+32>>2],c=h[e+32>>2],s=h[f+32>>2],w[i+40>>3]=t,w[i+24>>3]=a,w[i+48>>3]=s,w[i+32>>3]=c,w[i+16>>3]=u,w[i+8>>3]=b,k[i+4>>2]=n,k[i>>2]=o,Ur(1092,i),t=h[f+28>>2],b=h[r+28>>2],a=h[e+28>>2]}return u=p(0),U=i- -64|0,b=p(a-b),a=p(t-a),p(b+a)>p(0)&&(t=h[e+32>>2],u=p(p(p(t-h[f+32>>2])*b)+p(a*p(t-h[r+32>>2])))),u}function br(r,e,f){switch(e-100100|0){case 0:return void(k[r+88>>2]=f||15);case 6:return void(k[r+1716>>2]=f||3);case 4:return t[r+80|0]=0!=(0|f),void(k[r+92>>2]=f||14);case 10:return t[r+80|0]=0!=(0|f),void(k[r+1720>>2]=f||4);case 1:return void(k[r+96>>2]=f||13);case 7:return void(k[r+1724>>2]=f||5);case 2:return void(k[r+100>>2]=f||12);case 8:return void(k[r+1728>>2]=f||6);case 3:return void(k[r+12>>2]=f||18);case 9:return void(k[r+1732>>2]=f||11);case 5:return void(k[r+76>>2]=f||17);case 11:return void(k[r+1736>>2]=f||10);case 12:return void(k[r+104>>2]=f||16)}11==(0|(e=k[r+1732>>2]))?Wr[k[r+12>>2]](100900):Wr[0|e](100900,k[r+1896>>2])}function kr(r,e,f){var i=0,a=0,n=0,b=0;i=k[e>>2];r:{if((0|e)!=(0|f))for(;;){if(t[e+15|0]=0,b=k[e+4>>2],n=k[k[b+8>>2]>>2],a=k[n>>2],k[a+16>>2]!=k[i+16>>2]){if(!l[n+15|0])return r=l[e+12|0],f=k[i+20>>2],k[f+8>>2]=i,t[f+21|0]=r,k[i+24>>2]=0,_r(b),O(e),i;if(!(a=J(k[k[i+8>>2]+4>>2],k[a+4>>2])))break r;if(!Z(k[n>>2]))break r;k[n>>2]=a,t[n+15|0]=0,k[a+24>>2]=n}if(k[i+8>>2]!=(0|a)){if(!K(k[k[a+4>>2]+12>>2],a))break r;if(!K(i,a))break r}if(a=l[e+12|0],i=k[e>>2],b=k[i+20>>2],k[b+8>>2]=i,t[b+21|0]=a,k[i+24>>2]=0,_r(k[e+4>>2]),O(e),i=k[n>>2],(0|f)==(0|(e=n)))break}return i}Br(r+1740|0,1),A()}function or(r,e,f){var i,a,n=0;U=i=U-48|0,k[i+24>>2]=0,k[i+28>>2]=0,k[i+16>>2]=0,k[i+20>>2]=0,k[i+8>>2]=0,k[i+12>>2]=0,k[i>>2]=1056964608,k[i+4>>2]=1056964608,n=k[e+16>>2],k[i+16>>2]=k[n+12>>2],k[i+20>>2]=k[k[f+16>>2]+12>>2],h[i+36>>2]=h[n+16>>2],h[i+40>>2]=h[n+20>>2],h[i+44>>2]=h[n+24>>2],k[n+12>>2]=0,n=n+12|0,10==(0|(a=k[r+1736>>2]))?Wr[k[r+76>>2]](i+36|0,i+16|0,i,n):Wr[0|a](i+36|0,i+16|0,i,n,k[r+1896>>2]),k[n>>2]||(k[n>>2]=k[i+16>>2]),K(e,f)||(Br(r+1740|0,1),A()),U=i+48|0}function ur(r,e,f){var i,a=0,n=0;if(U=i=U-208|0,k[i+204>>2]=e,nr(e=i+160|0,0,40),k[i+200>>2]=k[i+204>>2],!((0|x(0,r,i+200|0,i+80|0,e,f))<0)){e=k[423]<0,a=k[404],k[404]=-33&a;r:{e:{if(k[416]){if(k[408])break e}else k[416]=80,k[411]=0,k[408]=0,k[409]=0,n=k[415],k[415]=i;if(Rr(1616))break r}x(1616,r,i+200|0,i+80|0,i+160|0,f)}n&&(Wr[k[413]](1616,0,0),k[416]=0,k[415]=n,k[411]=0,k[408]=0,k[409]=0),k[404]=k[404]|32&a}U=i+208|0}function cr(r,e){if(!r)return 0;r:{e:{if(r){if(e>>>0<=127)break e;if(k[k[845]>>2]){if(e>>>0<=2047){t[r+1|0]=63&e|128,t[0|r]=e>>>6|192,r=2;break r}if(!(57344!=(-8192&e)&e>>>0>=55296)){t[r+2|0]=63&e|128,t[0|r]=e>>>12|224,t[r+1|0]=e>>>6&63|128,r=3;break r}if(e-65536>>>0<=1048575){t[r+3|0]=63&e|128,t[0|r]=e>>>18|240,t[r+2|0]=e>>>6&63|128,t[r+1|0]=e>>>12&63|128,r=4;break r}}else if(57216==(-128&e))break e;k[806]=25,r=-1}else r=1;break r}t[0|r]=e,r=1}return r}function sr(r){var e,f=0,i=0,a=0,n=0,t=p(0),b=p(0);if(!(f=k[r+12>>2]))return ir(k[r>>2]);if(a=k[r+8>>2],e=k[k[(a+(f<<2)|0)-4>>2]>>2],i=k[r>>2],k[i+8>>2]&&(n=k[k[i+4>>2]+(k[k[i>>2]+4>>2]<<3)>>2],!(!((t=h[n+28>>2])<(b=h[e+28>>2]))&(!(h[n+32>>2]<=h[e+32>>2])|t!=b))))return ir(i);for(i=a-8|0,a=((0|f)>0?1:f)-1|0;;){if((0|f)<2)return k[r+12>>2]=a,e;if(n=f<<2,f=f-1|0,k[k[i+n>>2]>>2])break}return k[r+12>>2]=f,e}function Ar(r,e,f){var i=0,a=0,n=0;if(!(32&l[0|r]))r:{if(!(i=k[r+16>>2])){if(Rr(r))break r;i=k[r+16>>2]}if(i-(a=k[r+20>>2])>>>0>>0)Wr[k[r+36>>2]](r,e,f);else{e:{f:if(!(!f|k[r+80>>2]<0)){for(i=f;;){if(10!=l[(n=e+i|0)-1|0]){if(i=i-1|0)continue;break f}break}if(Wr[k[r+36>>2]](r,e,i)>>>0>>0)break r;f=f-i|0,a=k[r+20>>2];break e}n=e}N(a,n,f),k[r+20>>2]=k[r+20>>2]+f}}}function lr(r,e){var f=0,i=0,a=0;(f=Q(16))&&(a=$(k[r+8>>2]))&&(i=k[a+16>>2],h[i+32>>2]=e,k[i+28>>2]=2112929218,i=k[k[a+4>>2]+16>>2],h[i+32>>2]=e,k[i+28>>2]=-34554430,k[r+72>>2]=i,t[f+15|0]=0,t[f+12|0]=0,k[f+8>>2]=0,k[f>>2]=a,t[f+13|0]=1,t[f+14|0]=0,i=f,f=Er(a=k[r+64>>2],a,f),k[i+4>>2]=f,f)||(Br(r+1740|0,1),A())}function vr(r){var e=0,f=0,i=0;if((0|(e=k[40+(r|=0)>>2]))!=(0|(f=r+40|0)))for(;i=k[e>>2],O(e),(0|f)!=(0|(e=i)););if((0|(e=k[r>>2]))!=(0|r))for(;i=k[e>>2],O(e),(0|(e=i))!=(0|r););if((0|(e=k[r+64>>2]))!=(0|(f=r- -64|0)))for(;i=k[e>>2],O(e),(0|f)!=(0|(e=i)););O(r)}function dr(r){var e=0,f=p(0),i=p(0);if(!(e=k[r+12>>2]))return r=k[r>>2],k[k[r+4>>2]+(k[k[r>>2]+4>>2]<<3)>>2];e=k[k[(k[r+8>>2]+(e<<2)|0)-4>>2]>>2],r=k[r>>2];r:{if(k[r+8>>2]){if(r=k[k[r+4>>2]+(k[k[r>>2]+4>>2]<<3)>>2],(f=h[r+28>>2])<(i=h[e+28>>2]))break r;if(f==i&&h[r+32>>2]<=h[e+32>>2])break r}r=e}return r}function hr(r,e,f){var i=0,a=0,n=0,b=0;if(e)for(;n=f=f-1|0,b=(a=r)-gr(r=fr(r,e,10),i=F,10,0)|48,t[0|n]=b,a=e>>>0>9,e=i,a;);if(r)for(;e=(r>>>0)/10|0,t[0|(f=f-1|0)]=r-y(e,10)|48,i=r>>>0>9,r=e,i;);return f}function wr(r,e,f,i){var a,n=0,t=0;if(a=k[980]+1|0,k[980]=a,k[r>>2]=a,i)for(;;){if(!k[(n=(t<<3)+f|0)>>2])return k[n>>2]=a,k[n+4>>2]=e,k[n+8>>2]=0,B=i,f;if((0|(t=t+1|0))==(0|i))break}return n=r,r=i<<1,e=wr(n,e,G(f,i<<4|8),r),B=r,e}function yr(r,e){var f,i,a=0;if(s(+r),f=0|o(1),i=0|o(0),2047!=(0|(a=f>>>20&2047))){if(!a)return 0==r?a=0:(r=yr(0x10000000000000000*r,e),a=k[e>>2]+-64|0),k[e>>2]=a,r;k[e>>2]=a-1022,u(0,0|i),u(1,-2146435073&f|1071644672),r=+c()}return r}function pr(r){var e=0,f=0,i=0;if(t[k[r>>2]]-48>>>0>=10)return 0;for(;i=k[r>>2],f=-1,e>>>0<=214748364&&(f=(0|(f=t[0|i]-48|0))>(2147483647^(e=y(e,10)))?-1:f+e|0),k[r>>2]=i+1,e=f,t[i+1|0]-48>>>0<10;);return e}function mr(r,e,f){var i=p(0),a=p(0),n=0,t=p(0),b=p(0);return i=h[e+28>>2],a=p(i-h[r+28>>2]),i=p(h[f+28>>2]-i),(t=p(a+i))>p(0)?(b=h[((n=i>a)?r:f)+32>>2],i=p(p(p(b-h[(n?f:r)+32>>2])*p((n?a:i)/t))+p(h[e+32>>2]-b))):i=p(0),i}function gr(r,e,f,i){var a,n,t,b,k=0,o=0;return b=y(k=f>>>16|0,o=r>>>16|0),k=(65535&(o=((t=y(a=65535&f,n=65535&r))>>>16|0)+y(o,a)|0))+y(k,n)|0,F=(y(e,f)+b|0)+y(r,i)+(o>>>16)+(k>>>16)|0,65535&t|k<<16}function Er(r,e,f){for(var i=0;e=k[e+8>>2],(i=k[e>>2])&&!(0|Wr[k[r+16>>2]](k[r+12>>2],i,f)););return(r=Q(12))&&(k[r>>2]=f,f=k[e+4>>2],k[r+4>>2]=f,k[f+8>>2]=r,k[r+8>>2]=e,k[e+4>>2]=r),r}function Cr(r,e,f,i,a){var n;if(U=n=U-256|0,!(73728&a|(0|f)<=(0|i))){if(nr(n,255&e,(f=(i=f-i|0)>>>0<256)?i:256),!f)for(;Ar(r,n,256),(i=i-256|0)>>>0>255;);Ar(r,n,i)}U=n+256|0}function Rr(r){var e=0;return e=k[r+72>>2],k[r+72>>2]=e-1|e,8&(e=k[r>>2])?(k[r>>2]=32|e,-1):(k[r+4>>2]=0,k[r+8>>2]=0,e=k[r+44>>2],k[r+28>>2]=e,k[r+20>>2]=e,k[r+16>>2]=e+k[r+48>>2],0)}function Ir(r,e,f){var i=0,a=0,n=0;r:if(f)for(;;){if(!(n=k[(a=(i<<3)+e|0)>>2]))break r;if((0|r)==(0|n))return k[a+4>>2];if((0|(i=i+1|0))==(0|f))break}return 0}function Sr(r){var e=0,f=0;r:{if(!((r=(e=k[440])+(f=r+7&-8)|0)>>>0<=e>>>0&&f)){if(r>>>0<=Hr()<<16>>>0)break r;if(0|M(0|r))break r}return k[806]=48,-1}return k[440]=r,e}function Mr(r){var e=0;(e=k[r>>2])&&(O(k[e+4>>2]),O(k[e>>2]),O(e)),(e=k[r+8>>2])&&O(e),(e=k[r+4>>2])&&O(e),O(r)}function _r(r){var e,f;e=k[r+4>>2],f=k[r+8>>2],k[e+8>>2]=f,k[f+4>>2]=e,O(r)}function Pr(r){var e;return(-1>>>(e=31&r)&-2)<>>r}function Ur(r,e){var f;U=f=U-16|0,k[f+12>>2]=e,ur(r,e,40),U=f+16|0}function Br(r,e){r|=0,e|=0,k[978]||(k[978]=r,k[979]=e),S()}function Fr(r){return r?31-g(r-1^r)|0:32}function Qr(r,e){}function Tr(r){}function xr(){}e=l,n();var Wr=function(r){return r.set=function(r,e){this[r]=e},r.get=function(r){return this[r]},r}([null,function(r,e,f){r|=0,e=k[20+(e|=0)>>2],k[e+16>>2]=k[r+84>>2],k[r+84>>2]=e,t[e+20|0]=1},function(r,e,f){e|=0,f|=0,3==(0|(f=k[1716+(r|=0)>>2]))?Wr[k[r+88>>2]](6):Wr[0|f](6,k[r+1896>>2]),5==(0|(f=k[r+1724>>2]))?Wr[k[r+96>>2]](k[k[e+16>>2]+12>>2]):Wr[0|f](k[k[e+16>>2]+12>>2],k[r+1896>>2]),5==(0|(f=k[r+1724>>2]))?Wr[k[r+96>>2]](k[k[k[e+4>>2]+16>>2]+12>>2]):Wr[0|f](k[k[k[e+4>>2]+16>>2]+12>>2],k[r+1896>>2]),f=k[e+20>>2];r:if(l[f+21|0])for(;;){if(l[f+20|0])break r;if(t[f+20|0]=1,e=k[e+8>>2],5==(0|(f=k[r+1724>>2]))?Wr[k[r+96>>2]](k[k[k[e+4>>2]+16>>2]+12>>2]):Wr[0|f](k[k[k[e+4>>2]+16>>2]+12>>2],k[r+1896>>2]),f=k[e+20>>2],!l[f+21|0])break}6==(0|(e=k[r+1728>>2]))?Wr[k[r+100>>2]]():Wr[0|e](k[r+1896>>2])},Qr,Qr,Qr,Tr,function(r,e,f){e|=0,f|=0,3==(0|(f=k[1716+(r|=0)>>2]))?Wr[k[r+88>>2]](5):Wr[0|f](5,k[r+1896>>2]),5==(0|(f=k[r+1724>>2]))?Wr[k[r+96>>2]](k[k[e+16>>2]+12>>2]):Wr[0|f](k[k[e+16>>2]+12>>2],k[r+1896>>2]),5==(0|(f=k[r+1724>>2]))?Wr[k[r+96>>2]](k[k[k[e+4>>2]+16>>2]+12>>2]):Wr[0|f](k[k[k[e+4>>2]+16>>2]+12>>2],k[r+1896>>2]),f=k[e+20>>2];r:if(l[f+21|0])for(;;){if(l[f+20|0])break r;if(t[f+20|0]=1,e=k[k[e+12>>2]+4>>2],5==(0|(f=k[r+1724>>2]))?Wr[k[r+96>>2]](k[k[e+16>>2]+12>>2]):Wr[0|f](k[k[e+16>>2]+12>>2],k[r+1896>>2]),f=k[e+20>>2],!l[f+21|0]|l[f+20|0])break r;if(t[f+20|0]=1,e=k[e+8>>2],5==(0|(f=k[r+1724>>2]))?Wr[k[r+96>>2]](k[k[k[e+4>>2]+16>>2]+12>>2]):Wr[0|f](k[k[k[e+4>>2]+16>>2]+12>>2],k[r+1896>>2]),f=k[e+20>>2],!l[f+21|0])break}6==(0|(e=k[r+1728>>2]))?Wr[k[r+100>>2]]():Wr[0|e](k[r+1896>>2])},function(r,e){r|=0,e|=0;var f=p(0),i=p(0);if((f=h[r+28>>2])<(i=h[e+28>>2]))r=1;else{if(f!=i)return 0;r=h[r+32>>2]<=h[e+32>>2]}return 0|r},function(r,e,f){r|=0,e|=0,f|=0;var i,a,n=p(0),t=p(0);return f=k[f>>2],i=k[k[f+4>>2]+16>>2],e=k[e>>2],(0|(a=k[k[e+4>>2]+16>>2]))==(0|(r=k[r+72>>2]))?(0|r)==(0|i)?(e=k[e+16>>2],n=h[e+28>>2],f=k[f+16>>2],!(n<(t=h[f+28>>2]))&(!(h[e+32>>2]<=h[f+32>>2])|n!=t)?tr(r,f,e)>=p(0)|0:tr(r,e,f)<=p(0)|0):tr(i,r,k[f+16>>2])<=p(0)|0:(e=k[e+16>>2],(0|r)==(0|i)?tr(a,r,e)>=p(0)|0:mr(a,r,e)>=mr(k[k[f+4>>2]+16>>2],r,k[f+16>>2])|0)},function(r,e,f,i,a){},Qr,xr,Tr,Tr,Tr,Tr,function(r,e,f,i){},Tr,rr,function(r){r|=0;var e=0,f=0,i=p(0),a=p(0),n=p(0),t=p(0),b=p(0),o=0,u=p(0),c=0,s=0,A=p(0),v=p(0),d=0,w=p(0),y=p(0),m=0,g=p(0),E=p(0),C=p(0),R=p(0),I=p(0),S=p(0),M=0;r:{e:if(!((0|(d=k[r+112>>2]))<3)){if(m=116+((M=d<<4)+r|0)|0,g=h[r+124>>2],E=h[r+120>>2],t=h[r+24>>2],C=h[r+116>>2],u=h[r+16>>2],b=h[r+20>>2],!(u!=p(0)|b!=p(0))&t==p(0))for(f=r+148|0,t=p(0),b=p(0),u=p(0),i=A=p(h[(e=r+132|0)>>2]-C),a=v=p(h[r+136>>2]-E),w=n=p(h[r+140>>2]-g);R=p(h[e+20>>2]-E),I=p(h[f>>2]-C),S=p(p(i*R)-p(I*a)),y=p(h[e+24>>2]-g),a=p(p(a*y)-p(R*w)),i=p(p(w*I)-p(y*i)),p(p(S*t)+p(p(a*u)+p(b*i)))>=p(0)?(t=p(t+S),b=p(b+i),a=p(u+a)):(t=p(t-S),b=p(b-i),a=p(u-a)),u=a,i=I,a=R,w=y,m>>>0>(f=(e=f)+16|0)>>>0;);else A=p(h[r+132>>2]-C),v=p(h[r+136>>2]-E),n=p(h[r+140>>2]-g);for(f=r+148|0,e=c=r+132|0;;){i=n,n=v,o=e,a=A,v=p(h[e+20>>2]-E),A=p(h[(e=f)>>2]-C),y=p(p(p(a*v)-p(n*A))*t),w=n,n=p(h[o+24>>2]-g);f:if((i=p(y+p(p(p(p(w*n)-p(v*i))*u)+p(b*p(p(i*A)-p(n*a))))))!=p(0)){if(i>p(0)){if(f=0,o=(0|s)<0,s=1,!o)break f;break r}if(f=0,o=(0|s)>0,s=-1,o)break r}if(!(m>>>0>(f=e+16|0)>>>0))break}if(s){f=1;f:{i:switch(k[r+56>>2]-100132|0){case 0:if((0|s)>=0)break f;break e;case 2:break r;case 1:break i;default:break f}if((0|s)>0)break e}3==(0|(e=k[r+1716>>2]))?Wr[k[r+88>>2]](l[r+81|0]?2:(0|d)<4?4:6):Wr[0|e](l[r+81|0]?2:(0|d)<4?4:6,k[r+1896>>2]),5==(0|(e=k[r+1724>>2]))?Wr[k[r+96>>2]](k[r+128>>2]):Wr[0|e](k[r+128>>2],k[r+1896>>2]);f:if((0|s)<=0){if((0|d)<2)break f;for(e=M+100|0;f=r+e|0,5==(0|(o=k[r+1724>>2]))?Wr[k[r+96>>2]](k[f+12>>2]):Wr[0|o](k[f+12>>2],k[r+1896>>2]),f=(0|e)>132,e=e-16|0,f;);}else if(!(c>>>0>=m>>>0))for(;5==(0|(e=k[r+1724>>2]))?Wr[k[r+96>>2]](k[c+12>>2]):Wr[0|e](k[c+12>>2],k[r+1896>>2]),m>>>0>(c=c+16|0)>>>0;);6==(0|(e=k[r+1728>>2]))?Wr[k[r+100>>2]]():Wr[0|e](k[r+1896>>2])}}f=1}return 0|f},X,Br,H,function(r){r|=0;var e,f=0,i=0,a=0,n=0,b=0,o=0,u=0,c=p(0),s=0,l=p(0),v=0,d=0,w=0,m=0,g=0,E=0,C=0,R=0,I=0;U=e=U-48|0,t[r+60|0]=0;r:{if(f=k[r+8>>2],(0|(i=k[f+64>>2]))!=(0|(u=f- -64|0)))for(;;){f=k[i+12>>2],a=k[i>>2],b=k[i+16>>2],n=k[k[i+4>>2]+16>>2];e:{if(!(h[b+28>>2]!=h[n+28>>2]|h[b+32>>2]!=h[n+32>>2]|k[f+12>>2]==(0|i))){if(or(r,f,i),Z(i)){n=k[f+12>>2];break e}break r}n=f,f=i}if(k[n+12>>2]==(0|f)){if((0|f)!=(0|n)&&(a=(0|a)!=(0|n)&k[a+4>>2]!=(0|n)?a:k[a>>2],!Z(n)))break r;if(i=(0|f)==(0|a)|k[a+4>>2]==(0|f)?k[a>>2]:a,!Z(f))break r}else i=a;if((0|i)==(0|u))break}(i=Q(28))?((f=Q(28))?(k[f+8>>2]=0,k[f+12>>2]=32,n=Q(132),k[f>>2]=n,n?(a=Q(264),k[f+4>>2]=a,a?(k[f+24>>2]=8,k[f+16>>2]=0,k[f+20>>2]=0,k[n+4>>2]=1,k[a+8>>2]=0):(O(n),O(f),f=0)):(O(f),f=0)):f=0,k[i>>2]=f,f?(a=Q(128),k[i+4>>2]=a,a?(k[i+24>>2]=8,k[i+20>>2]=0,k[i+12>>2]=0,k[i+16>>2]=32):(O(k[f+4>>2]),O(k[f>>2]),O(f),O(i),i=0)):(O(i),i=0)):i=0,d=i,k[r+68>>2]=d;e:if(d){i=a=k[r+8>>2];f:{i:{for(;;){if((0|a)!=(0|(i=k[i>>2]))){if(f=q(d,i),k[i+36>>2]=f,2147483647!=(0|f))continue;break i}break}if(U=E=U-400|0,a=Q(4+(f=(C=k[d+12>>2])<<2)|0),k[d+8>>2]=a,U=E+400|0,a){if((n=(f+a|0)-4|0)>>>0>=a>>>0)for(f=k[d+4>>2],i=a;k[i>>2]=f,f=f+4|0,n>>>0>=(i=i+4|0)>>>0;);for(k[E+4>>2]=n,k[E>>2]=a,v=8|E,R=2016473283,b=E;;){if((u=k[v-4>>2])>>>0>(o=k[b>>2])+40>>>0)for(;;){for(R=y(R,1539415821)+1|0,m=k[(f=((R>>>0)%(1+(u-o>>2)>>>0)<<2)+o|0)>>2],k[f>>2]=k[o>>2],k[o>>2]=m,f=u+4|0,i=o-4|0;;){a=f,n=i,i=i+4|0,s=k[n+4>>2],g=k[s>>2],c=h[g+28>>2],w=k[m>>2];a:if(!(c<(l=h[w+28>>2])))for(;;){if(f=i,!(!(h[g+32>>2]<=h[w+32>>2])|c!=l))break a;if(i=f+4|0,n=f,s=k[f+4>>2],g=k[s>>2],l>(c=h[g+28>>2]))break}v=k[(f=a-4|0)>>2],g=k[v>>2];a:if(!(l<(c=h[g+28>>2])))for(;;){if(!(!(h[w+32>>2]<=h[g+32>>2])|c!=l))break a;if(a=f,v=k[(f=f-4|0)>>2],g=k[v>>2],l<(c=h[g+28>>2]))break}if(k[i>>2]=v,k[f>>2]=s,!(f>>>0>i>>>0))break}if(v=k[i>>2],k[i>>2]=s,k[f>>2]=v,(i-o|0)<(u-f|0)?(f=a,i=u,u=n):(f=o,i=n,o=a),k[b+4>>2]=i,k[b>>2]=f,b=b+8|0,!(o+40>>>0>>0))break}if(v=b,(s=o+4|0)>>>0<=u>>>0)for(;;){w=k[s>>2];a:if(!(o>>>0>=(f=i=s)>>>0))for(;;){if(b=k[w>>2],c=h[b+28>>2],n=k[(f=i-4|0)>>2],a=k[n>>2],c<(l=h[a+28>>2])){f=i;break a}if(!(!(h[b+32>>2]<=h[a+32>>2])|c!=l)){f=i;break a}if(k[i>>2]=n,i=f,!(o>>>0>>0))break}if(k[f>>2]=w,!((s=s+4|0)>>>0<=u>>>0))break}if(!(E>>>0<=(b=v-8|0)>>>0))break}if(k[d+20>>2]=1,k[d+16>>2]=C,C=k[d>>2],(0|(b=k[C+8>>2]))>0)for(w=k[C+4>>2],m=k[C>>2],f=b;;){for(n=f,d=w+((s=k[m+(f<<2)>>2])<<3)|0,i=f;(0|b)<=(0|(f=i<<1))||(o=k[w+(k[m+((a=1|f)<<2)>>2]<<3)>>2],c=h[o+28>>2],u=k[w+(k[m+(f<<2)>>2]<<3)>>2],!(c<(l=h[u+28>>2]))&(!(h[o+32>>2]<=h[u+32>>2])|c!=l)||(f=a)),!((0|f)>(0|b)||(v=k[d>>2],c=h[v+28>>2],o=k[m+(f<<2)>>2],a=k[(u=w+(o<<3)|0)>>2],c<(l=h[a+28>>2])|c==l&h[v+32>>2]<=h[a+32>>2]));)k[m+(i<<2)>>2]=o,k[u+4>>2]=i,i=f;if(k[m+(i<<2)>>2]=s,k[d+4>>2]=i,f=n-1|0,!((0|n)>1))break}k[C+20>>2]=1,i=1}else i=0;if(i)break f}Mr(k[r+68>>2]),k[r+68>>2]=0;break e}if((f=Q(20))&&(k[f+16>>2]=9,k[f+12>>2]=r,k[f>>2]=0,k[f+8>>2]=f,k[f+4>>2]=f),k[r+64>>2]=f,!f)break r;if(lr(r,p(-3999999973526325e22)),lr(r,p(3999999973526325e22)),f=sr(k[r+68>>2]))for(;;){f:if(i=dr(k[r+68>>2]))for(;;){if(h[i+28>>2]!=h[f+28>>2]|h[i+32>>2]!=h[f+32>>2])break f;if(n=k[sr(k[r+68>>2])+8>>2],a=k[f+8>>2],k[e+24>>2]=0,k[e+28>>2]=0,k[e+16>>2]=0,k[e+20>>2]=0,k[e+8>>2]=0,k[e+12>>2]=0,k[e>>2]=1056964608,k[e+4>>2]=1056964608,i=k[a+16>>2],k[e+16>>2]=k[i+12>>2],k[e+20>>2]=k[k[n+16>>2]+12>>2],h[e+36>>2]=h[i+16>>2],h[e+40>>2]=h[i+20>>2],h[e+44>>2]=h[i+24>>2],k[i+12>>2]=0,b=i+12|0,10==(0|(i=k[r+1736>>2]))?Wr[k[r+76>>2]](e+36|0,e+16|0,e,b):Wr[0|i](e+36|0,e+16|0,e,b,k[r+1896>>2]),k[b>>2]||(k[b>>2]=k[e+16>>2]),!K(a,n))break r;if(!(i=dr(k[r+68>>2])))break}if(W(r,f),!(f=sr(k[r+68>>2])))break}for(i=k[k[k[r+64>>2]+4>>2]>>2],k[r+72>>2]=k[k[i>>2]+16>>2];k[k[i>>2]+24>>2]=0,_r(k[i+4>>2]),O(i),f=k[r+64>>2],i=k[k[f+4>>2]>>2];);if((0|f)!=(0|(i=k[f+4>>2])))for(;O(i),(0|f)!=(0|(i=k[i+4>>2])););if(O(f),Mr(k[r+68>>2]),I=1,f=k[r+8>>2],(0|(r=k[f+40>>2]))!=(0|(i=f+40|0)))for(;;){if(a=k[r+8>>2],r=k[r>>2],(0|a)==k[k[a+12>>2]+12>>2]&&(f=k[a+8>>2],k[f+28>>2]=k[f+28>>2]+k[a+28>>2],f=k[f+4>>2],k[f+28>>2]=k[f+28>>2]+k[k[a+4>>2]+28>>2],!Z(a))){I=0;break e}if((0|r)==(0|i))break}}return U=e+48|0,0|I}Br(r+1740|0,1),A()},function(r,e,f){e|=0,f|=0;var i=0,a=0,n=0,t=0;n=1;r:if((0|(i=k[64+(r|=0)>>2]))!=(0|(a=r- -64|0))){if(t=0-e|0,!f)for(;;)if(r=l[k[i+20>>2]+21|0],k[i+28>>2]=(0|r)!=l[k[k[i+4>>2]+20>>2]+21|0]?r?e:t:0,(0|a)==(0|(i=k[i>>2])))break r;for(;;){if(r=k[i>>2],(0|(f=l[k[i+20>>2]+21|0]))==l[k[k[i+4>>2]+20>>2]+21|0]){if(!Z(i)){n=0;break r}}else k[i+28>>2]=f?e:t;if((0|a)==(0|(i=r)))break}}return 0|n},function(r){r|=0;var e,f=0,i=0,a=0,n=p(0),t=p(0),b=0,o=0,u=0;if((0|(f=k[r+40>>2]))!=(0|(e=r+40|0)))for(;;){if(r=k[f>>2],l[f+21|0]){for(f=f+8|0;f=k[f>>2],a=k[k[f+4>>2]+16>>2],n=h[a+28>>2],i=k[f+16>>2],!(!(n<(t=h[i+28>>2]))&(!(h[a+32>>2]<=h[i+32>>2])|n!=t));)f=k[f+8>>2]+4|0;for(;!(!(n>t)&(!(h[i+32>>2]<=h[a+32>>2])|n!=t));)f=k[f+12>>2],i=k[f+16>>2],t=h[i+28>>2],a=k[k[f+4>>2]+16>>2],n=h[a+28>>2];r:{if((0|(a=k[k[f+8>>2]+4>>2]))!=k[f+12>>2])for(;;){if(i=k[k[f+4>>2]+16>>2],n=h[i+28>>2],b=k[a+16>>2],!(n<(t=h[b+28>>2]))&(!(h[i+32>>2]<=h[b+32>>2])|n!=t)){e:if(k[a+12>>2]!=(0|f))for(;;){if(i=k[k[f+8>>2]+4>>2],b=k[i+16>>2],n=h[b+28>>2],o=k[k[i+4>>2]+16>>2],!(n<(t=h[o+28>>2])|n==t&h[b+32>>2]<=h[o+32>>2])){if(!(tr(k[k[f+4>>2]+16>>2],k[f+16>>2],b)>=p(0)))break e;i=k[k[f+8>>2]+4>>2]}if(f=J(f,i),i=0,!f)break r;if((0|(f=k[f+4>>2]))==k[a+12>>2])break}f=k[f+12>>2]}else{e:if((0|(i=k[a+12>>2]))!=(0|f))for(b=a+12|0;;){if(o=k[k[i+4>>2]+16>>2],n=h[o+28>>2],u=k[i+16>>2],!(n<(t=h[u+28>>2])|n==t&h[o+32>>2]<=h[u+32>>2])){if(!(tr(k[a+16>>2],k[k[a+4>>2]+16>>2],o)<=p(0)))break e;i=k[b>>2]}if(a=J(i,a),i=0,!a)break r;if(b=(a=k[a+4>>2])+12|0,(0|(i=k[a+12>>2]))==(0|f))break}a=k[k[a+8>>2]+4>>2]}if(k[f+12>>2]==(0|a))break}if(i=k[a+12>>2],k[i+12>>2]!=(0|f))for(;;){if(a=J(i,a),i=0,!a)break r;if(a=k[a+4>>2],i=k[a+12>>2],k[i+12>>2]==(0|f))break}i=1}if(!i)return 0}if((0|e)==(0|(f=r)))break}return 1},function(r,e){r|=0;var f,i=0,a=0;if((0|(i=k[40+(e|=0)>>2]))!=(0|(f=e+40|0)))for(;;){if(l[i+21|0]){for(3==(0|(e=k[r+1716>>2]))?Wr[k[r+88>>2]](2):Wr[0|e](2,k[r+1896>>2]),e=k[i+8>>2];5==(0|(a=k[r+1724>>2]))?Wr[k[r+96>>2]](k[k[e+16>>2]+12>>2]):Wr[0|a](k[k[e+16>>2]+12>>2],k[r+1896>>2]),(0|(e=k[e+12>>2]))!=k[i+8>>2];);6==(0|(e=k[r+1728>>2]))?Wr[k[r+100>>2]]():Wr[0|e](k[r+1896>>2])}if((0|f)==(0|(i=k[i>>2])))break}},function(r,e){e|=0;var f,i,a=0,n=0,b=0,o=0,u=0,c=0,s=0,A=0,v=0,d=0,h=0,w=0,y=0,p=0,m=0,g=0,E=0;if(U=f=U-16|0,k[84+(r|=0)>>2]=0,!(a=(0|(s=k[e+40>>2]))==(0|(i=e+40|0)))){for(e=s;t[e+20|0]=0,(0|i)!=(0|(e=k[e>>2])););if(!a){for(;;){if(!(l[s+20|0]|!l[s+21|0])){if(u=k[s+8>>2],l[r+80|0])e=1,a=1;else{o=0,b=0,e=0,n=k[(a=u)+20>>2];r:if(l[n+21|0])for(;;){if(l[(e=n)+20|0]){e=b;break r}if(t[e+20|0]=1,k[e+16>>2]=b,o=o+1|0,b=e,a=k[a+8>>2],n=k[a+20>>2],!l[n+21|0])break}n=k[u+4>>2],b=k[n+20>>2];r:{e:if(!l[b+21|0]|l[b+20|0]){if(h=u,!e)break r}else for(a=e;;){if(t[(e=b)+20|0]=1,k[e+16>>2]=a,o=o+1|0,h=k[n+12>>2],n=k[h+4>>2],b=k[n+20>>2],!l[b+21|0])break e;if(a=e,l[b+20|0])break}for(;t[e+20|0]=0,e=k[e+16>>2];);}w=(0|o)>1,b=0,n=0,e=0,A=k[u+12>>2],a=k[(c=A)+20>>2];r:if(l[a+21|0])for(;;){if(l[(e=a)+20|0]){e=n;break r}if(t[e+20|0]=1,k[e+16>>2]=n,b=b+1|0,n=e,c=k[c+8>>2],a=k[c+20>>2],!l[a+21|0])break}v=w?o:1,n=k[A+4>>2],o=k[n+20>>2];r:{e:if(!l[o+21|0]|l[o+20|0]){if(!e)break r}else for(a=e;;){if(t[(e=o)+20|0]=1,k[e+16>>2]=a,b=b+1|0,A=k[n+12>>2],n=k[A+4>>2],o=k[n+20>>2],!l[o+21|0])break e;if(a=e,l[o+20|0])break}for(;t[e+20|0]=0,e=k[e+16>>2];);}y=(0|b)>(0|v),o=0,n=0,e=0,d=k[k[u+8>>2]+4>>2],a=k[(c=d)+20>>2];r:if(l[a+21|0])for(;;){if(l[(e=a)+20|0]){e=n;break r}if(t[e+20|0]=1,k[e+16>>2]=n,o=o+1|0,n=e,c=k[c+8>>2],a=k[c+20>>2],!l[a+21|0])break}c=y?b:v,n=k[d+4>>2],b=k[n+20>>2];r:{e:if(!l[b+21|0]|l[b+20|0]){if(!e)break r}else for(a=e;;){if(t[(e=b)+20|0]=1,k[e+16>>2]=a,o=o+1|0,d=k[n+12>>2],n=k[d+4>>2],b=k[n+20>>2],!l[b+21|0])break e;if(a=e,l[b+20|0])break}for(;t[e+20|0]=0,e=k[e+16>>2];);}er(e=f+4|0,u),p=k[f+12>>2],m=k[f+8>>2],a=k[f+4>>2],er(e,k[u+12>>2]),g=k[f+12>>2],E=k[f+8>>2],v=k[f+4>>2],er(e,k[k[u+8>>2]+4>>2]),e=o,(0|(e=(b=(0|(e=(n=(0|(e=(o=(0|o)>(0|c))?e:c))<(0|a))?a:e))<(0|v))?v:e))>=(0|(a=k[f+4>>2]))?(u=b?E:n?m:o?d:y?A:w?h:u,a=b?g:n?p:o||y||w?2:1):(u=k[f+8>>2],e=a,a=k[f+12>>2])}Wr[0|a](r,u,e)}if((0|i)==(0|(s=k[s>>2])))break}if(u=k[r+84>>2]){for(3==(0|(e=k[r+1716>>2]))?Wr[k[r+88>>2]](4):Wr[0|e](4,k[r+1896>>2]),o=-1;;){for(e=k[u+8>>2];l[r+80|0]&&(0|(a=!(n=l[k[k[e+4>>2]+20>>2]+21|0])))!=(0|o)&&(4==(0|(b=k[r+1720>>2]))?Wr[k[r+92>>2]](!n):Wr[0|b](!n,k[r+1896>>2]),o=a),5==(0|(a=k[r+1724>>2]))?Wr[k[r+96>>2]](k[k[e+16>>2]+12>>2]):Wr[0|a](k[k[e+16>>2]+12>>2],k[r+1896>>2]),(0|(e=k[e+12>>2]))!=k[u+8>>2];);if(!(u=k[u+16>>2]))break}6==(0|(e=k[r+1728>>2]))?Wr[k[r+100>>2]]():Wr[0|e](k[r+1896>>2]),k[r+84>>2]=0}}}U=f+16|0},z,vr,function(r,e){r|=0;var f,i=0;(0|(f=k[4+(e|=0)>>2]))>2]&&(i=k[e>>2]+(y(k[e+12>>2],f)<<2)|0,h[i>>2]=h[r>>2],h[i+4>>2]=h[r+4>>2],k[e+4>>2]=f+1)},Tr,xr,function(r,e,f,i){r|=0,e|=0,f|=0,i|=0,f=0;r:{if(e=k[456]){if(!((f=k[e>>2])>>>0<100001)){e=Q(12);break r}}else e=Q(1200008),k[e+4>>2]=12,k[e>>2]=0,k[456]=e;k[e>>2]=f+1,e=8+(y(f,12)+e|0)|0}h[e>>2]=h[r>>2],h[e+4>>2]=h[r+4>>2],h[e+8>>2]=h[r+8>>2],k[i>>2]=e},function(r){var e;r|=0,U=e=U-16|0,k[e>>2]=r,U=r=U-16|0,k[r+12>>2]=e,ur(1078,e,0),U=r+16|0,U=e+16|0},Tr,function(r){return 0},function(r,e,f){e|=0,f|=0;var i,a=0,n=0,t=0,b=0,o=0,u=0;U=i=U-32|0,a=k[28+(r|=0)>>2],k[i+16>>2]=a,t=k[r+20>>2],k[i+28>>2]=f,k[i+24>>2]=e,e=t-a|0,k[i+20>>2]=e,t=e+f|0,o=2;r:{e:{e=i+16|0,(a=0|R(k[r+60>>2],0|e,2,i+12|0))?(k[806]=a,a=-1):a=0;f:{if(a)a=e;else for(;;){if((0|(n=k[i+12>>2]))==(0|t))break f;if((0|n)<0){a=e;break e}if(b=n-((u=(b=k[e+4>>2])>>>0>>0)?b:0)|0,k[(a=(u<<3)+e|0)>>2]=b+k[a>>2],k[(e=(u?12:4)+e|0)>>2]=k[e>>2]-b,t=t-n|0,e=a,o=o-u|0,(n=0|R(k[r+60>>2],0|e,0|o,i+12|0))?(k[806]=n,n=-1):n=0,n)break}if(-1!=(0|t))break e}e=k[r+44>>2],k[r+28>>2]=e,k[r+20>>2]=e,k[r+16>>2]=e+k[r+48>>2],r=f;break r}k[r+28>>2]=0,k[r+16>>2]=0,k[r+20>>2]=0,k[r>>2]=32|k[r>>2],r=0,2!=(0|o)&&(r=f-k[a+4>>2]|0)}return U=i+32|0,0|r},function(r,e,f,i){return F=0,0},function(r,e,f,i,a,n){r|=0,e=+e,f|=0,i|=0,a|=0,n|=0;var b,u=0,c=0,A=0,v=0,d=0,h=0,w=0,p=0,g=0,E=0,C=0,R=0,I=0,S=0,M=0,_=0,P=0,B=0,Q=0,T=0;U=b=U-560|0,k[b+44>>2]=0,s(+e),u=0|o(1),o(0),(0|u)<0?(I=1,_=1034,s(+(e=-e)),u=0|o(1),o(0)):2048&a?(I=1,_=1037):(_=(I=1&a)?1040:1035,B=!I);r:if(2146435072!=(2146435072&u)){S=b+16|0;e:{f:{i:{if(e=yr(e,b+44|0),0!=(e+=e)){if(u=k[b+44>>2],k[b+44>>2]=u-1,97!=(0|(M=32|n)))break i;break e}if(97==(0|(M=32|n)))break e;d=k[b+44>>2],h=(0|i)<0?6:i;break f}d=u-29|0,k[b+44>>2]=d,e*=268435456,h=(0|i)<0?6:i}for(c=g=(b+48|0)+((0|d)>=0?288:0)|0;i=e<4294967296&e>=0?~~e>>>0:0,k[c>>2]=i,c=c+4|0,0!=(e=1e9*(e-+(i>>>0))););if((0|d)<=0)i=d,u=c,A=g;else for(A=g,i=d;;){if(v=(0|i)>=29?29:i,!(A>>>0>(u=c-4|0)>>>0)){for(p=0;i=k[u>>2],w=31&v,P=p,(63&v)>>>0>=32?(p=i<>>32-w,i<<=w),p=p+E|0,Q=u,T=(w=P+i|0)-gr(p=fr(w,i>>>0>w>>>0?p+1|0:p,1e9),F,1e9,0)|0,k[Q>>2]=T,A>>>0<=(u=u-4|0)>>>0;);p&&(k[(A=A-4|0)>>2]=p)}for(;A>>>0<(u=c)>>>0&&!k[(c=u-4|0)>>2];);if(i=k[b+44>>2]-v|0,k[b+44>>2]=i,c=u,!((0|i)>0))break}if((0|i)<0)for(R=1+((h+25>>>0)/9|0)|0,E=102==(0|M);;){if(w=(0|(i=0-i|0))>=9?9:i,u>>>0<=A>>>0)c=k[A>>2];else{for(p=1e9>>>w|0,v=-1<>2],k[c>>2]=P+(i>>>w|0),i=y(p,i&v),(c=c+4|0)>>>0>>0;);c=k[A>>2],i&&(k[u>>2]=i,u=u+4|0)}if(i=w+k[b+44>>2]|0,k[b+44>>2]=i,A=(!c<<2)+A|0,u=u-(c=E?g:A)>>2>(0|R)?c+(R<<2)|0:u,!((0|i)<0))break}if(i=0,!(u>>>0<=A>>>0||(i=y(g-A>>2,9),c=10,(v=k[A>>2])>>>0<10)))for(;i=i+1|0,v>>>0>=(c=y(c,10))>>>0;);if((0|(c=(h-(102!=(0|M)?i:0)|0)-(103==(0|M)&0!=(0|h))|0))<(y(u-g>>2,9)-9|0)){if(d=(R=((b+48|0)+((0|d)<0?4:292)|0)+((v=(0|(p=c+9216|0))/9|0)<<2)|0)-4096|0,c=10,(0|(w=p-y(v,9)|0))<=7)for(;c=y(c,10),8!=(0|(w=w+1|0)););if(!(!(w=(E=k[d>>2])-y(c,p=(E>>>0)/(c>>>0)|0)|0)&(0|(v=R-4092|0))==(0|u))&&(!(1&p)&&(e=9007199254740992,!(1&t[R-4100|0])|1e9!=(0|c)|A>>>0>=d>>>0)||(e=9007199254740994),C=(0|u)==(0|v)?1:1.5,C=(v=c>>>1|0)>>>0>w>>>0?.5:(0|v)==(0|w)?C:1.5,45!=l[0|_]|B||(C=-C,e=-e),v=E-w|0,k[d>>2]=v,e+C!=e)){if(i=c+v|0,k[d>>2]=i,i>>>0>=1e9)for(;k[d>>2]=0,(d=d-4|0)>>>0>>0&&(k[(A=A-4|0)>>2]=0),i=k[d>>2]+1|0,k[d>>2]=i,i>>>0>999999999;);if(i=y(g-A>>2,9),c=10,!((v=k[A>>2])>>>0<10))for(;i=i+1|0,v>>>0>=(c=y(c,10))>>>0;);}u=u>>>0>(c=d+4|0)>>>0?c:u}for(;v=u,!(p=u>>>0<=A>>>0)&&!k[(u=u-4|0)>>2];);if(103==(0|M)){if(h=((u=(0|(c=h||1))>(0|i)&(0|i)>-5)?-1^i:-1)+c|0,n=(u?-1:-2)+n|0,!(d=8&a)){if(u=-9,!p&&(d=k[v-4>>2])&&(w=10,u=0,!((d>>>0)%10|0))){for(;c=u,u=u+1|0,!((d>>>0)%((w=y(w,10))>>>0)|0););u=-1^c}c=y(v-g>>2,9),70!=(-33&n)?(d=0,h=(0|(u=(0|(u=((i+c|0)+u|0)-9|0))>0?u:0))>(0|h)?h:u):(d=0,h=(0|(u=(0|(u=(u+c|0)-9|0))>0?u:0))>(0|h)?h:u)}}else d=8&a;if(w=-1,(0|((p=d|h)?2147483645:2147483646))<(0|h))break r;if(E=1+((0!=(0|p))+h|0)|0,70!=(0|(c=-33&n))){if((S-(u=hr(((u=i>>31)^i)-u|0,0,S))|0)<=1)for(;t[0|(u=u-1|0)]=48,(S-u|0)<2;);if(t[0|(R=u-2|0)]=n,t[u-1|0]=(0|i)<0?45:43,(0|(u=S-R|0))>(2147483647^E))break r}else{if((2147483647^E)<(0|i))break r;u=(0|i)>0?i:0}if((0|(i=u+E|0))>(2147483647^I))break r;Cr(r,32,f,E=i+I|0,a),Ar(r,_,I),Cr(r,48,f,E,65536^a);f:{i:{a:{if(70==(0|c)){for(i=8|(n=b+16|0),d=9|n,A=c=A>>>0>g>>>0?g:A;;){u=hr(k[A>>2],0,d);n:if((0|c)==(0|A))(0|u)==(0|d)&&(t[b+24|0]=48,u=i);else{if(b+16>>>0>=u>>>0)break n;for(;t[0|(u=u-1|0)]=48,b+16>>>0>>0;);}if(Ar(r,u,d-u|0),!(g>>>0>=(A=A+4|0)>>>0))break}if(p&&Ar(r,1069,1),(0|h)<=0|A>>>0>=v>>>0)break a;for(;;){if((u=hr(k[A>>2],0,d))>>>0>b+16>>>0)for(;t[0|(u=u-1|0)]=48,b+16>>>0>>0;);if(Ar(r,u,(0|h)>=9?9:h),u=h-9|0,v>>>0<=(A=A+4|0)>>>0)break i;if(i=(0|h)>9,h=u,!i)break}break i}n:if(!((0|h)<0))for(g=A>>>0>>0?v:A+4|0,i=8|(n=b+16|0),v=9|n,c=A;;){(0|v)==(0|(u=hr(k[c>>2],0,v)))&&(t[b+24|0]=48,u=i);t:if((0|c)==(0|A))Ar(r,u,1),u=u+1|0,d|h&&Ar(r,1069,1);else{if(b+16>>>0>=u>>>0)break t;for(;t[0|(u=u-1|0)]=48,b+16>>>0>>0;);}if(Ar(r,u,(0|(n=v-u|0))<(0|h)?n:h),h=h-n|0,g>>>0<=(c=c+4|0)>>>0)break n;if(!((0|h)>=0))break}Cr(r,48,h+18|0,18,0),Ar(r,R,S-R|0);break f}u=h}Cr(r,48,u+9|0,9,0)}Cr(r,32,f,E,8192^a),w=(0|f)<(0|E)?E:f;break r}if(d=(n<<26>>31&9)+_|0,!(i>>>0>11)){for(u=12-i|0,C=16;C*=16,u=u-1|0;);e=45!=l[0|d]?e+C-C:-(C+(-e-C))}for((0|S)==(0|(u=hr(((u=k[b+44>>2])^(c=u>>31))-c|0,0,S)))&&(t[b+15|0]=48,u=b+15|0),g=2|I,A=32&n,c=k[b+44>>2],t[0|(h=u-2|0)]=n+15,t[u-1|0]=(0|c)<0?45:43,u=8&a,c=b+16|0;n=c,v=m(e)<2147483648?~~e:-2147483648,t[0|c]=A|l[v+1600|0],!((0|i)>0|u)&0==(e=16*(e-+(0|v)))|1!=((c=n+1|0)-(b+16|0)|0)||(t[n+1|0]=46,c=n+2|0),0!=e;);w=-1,(2147483645-(n=(u=S-h|0)+g|0)|0)<(0|i)||(v=n,A=c-(n=b+16|0)|0,Cr(r,32,f,c=v+(i=i&&(A-2|0)<(0|i)?i+2|0:A)|0,a),Ar(r,d,g),Cr(r,48,f,c,65536^a),Ar(r,n,A),Cr(r,48,i-A|0,0,0),Ar(r,h,u),Cr(r,32,f,c,8192^a),w=(0|f)<(0|c)?c:f)}else Cr(r,32,f,u=I+3|0,-65537&a),Ar(r,_,I),i=32&n,Ar(r,e!=e?i?1053:1061:i?1057:1065,3),Cr(r,32,f,u,8192^a),w=(0|f)<(0|u)?u:f;return U=b+560|0,0|w}]);function Hr(){return a.byteLength/65536|0}return{j:function(){k[845]=3260,k[827]=42},k:Q,l:O,m:Wr,n:function(r,e,f,i,a,n){r|=0,e|=0,f|=0,i|=0,a|=0,n|=0;for(var o=0,u=0,c=0,s=0,v=0,d=p(0),w=0,m=p(0),g=p(0),R=0,S=0,M=0,_=0,U=0,F=0;(o=k[1776+(u=s<<2)>>2])&&(k[o>>2]=0),(o=k[1776+(4|u)>>2])&&(k[o>>2]=0),(o=k[1776+(8|u)>>2])&&(k[o>>2]=0),(o=k[1776+(12|u)>>2])&&(k[o>>2]=0),100!=(0|(s=s+4|0)););if((s=k[544])||(s=Q(16),k[544]=s),k[s+8>>2]=n,k[s+4>>2]=0,k[s+12>>2]=i,k[s>>2]=a,(s=k[545])||((a=Q(1900))?(k[a+100>>2]=12,k[a+96>>2]=13,k[a+92>>2]=14,k[a+88>>2]=15,b[a+80>>1]=0,k[a+52>>2]=0,k[a+56>>2]=100130,k[a+16>>2]=0,k[a+20>>2]=0,k[a>>2]=0,k[a+1896>>2]=0,k[a+1736>>2]=10,k[a+1732>>2]=11,k[a+1728>>2]=6,k[a+1724>>2]=5,k[a+1720>>2]=4,k[a+1716>>2]=3,k[a+104>>2]=16,k[a+76>>2]=17,k[a+12>>2]=18,k[a+24>>2]=0):a=0,k[545]=a,br(a,100107,31),br(k[545],100100,32),br(k[545],100102,33),br(k[545],100105,34),br(k[545],100103,35),br(k[545],100104,36),k[k[545]+56>>2]=100130,a=k[545],h[a+16>>2]=0,h[a+24>>2]=1,h[a+20>>2]=0,s=k[545]),a=0,n=k[544],k[s>>2]&&rr(s,0),k[s+112>>2]=0,k[s>>2]=1,t[s+108|0]=0,k[s+1896>>2]=n,k[s+8>>2]=0,(0|f)>0)for(n=0;;){if(M=k[(n<<2)+e>>2],o=k[545],1!=k[o>>2]&&rr(o,1),k[o>>2]=2,k[o+4>>2]=0,k[o+112>>2]>0&&(t[o+108|0]=1),s=0,(0|M)>0)for(;;){v=k[545],2!=k[v>>2]&&rr(v,2),w=(y(a+s|0,i)<<2)+r|0;r:{e:{if(l[v+108|0]){if(!X(v)){if(11!=(0|(u=k[v+1732>>2])))break e;Wr[k[v+12>>2]](100902);break r}k[v+4>>2]=0}if(F=(R=+(m=(_=(R=+(d=h[w+4>>2]))<-1e37)?p(-9999999933815813e21):d))>1e37,c=(S=+(g=(U=(S=+(d=h[w>>2]))<-1e37)?p(-9999999933815813e21):d))>1e37,((o=+(d=h[w+8>>2])<-1e37)|(u=+(d=o?p(-9999999933815813e21):d)>1e37)|_|R>1e37||S>1e37||U)&&(11==(0|(o=k[v+1732>>2]))?Wr[k[v+12>>2]](100155):Wr[0|o](100155,k[v+1896>>2])),m=F?p(9999999933815813e21):m,g=c?p(9999999933815813e21):g,!k[v+8>>2]){if((0|(o=k[v+112>>2]))<=99){h[124+(c=v+(o<<4)|0)>>2]=u?p(9999999933815813e21):d,h[c+120>>2]=m,h[c+116>>2]=g,k[c+128>>2]=w,k[v+112>>2]=o+1;break r}if(!X(v)){if(11!=(0|(u=k[v+1732>>2])))break e;Wr[k[v+12>>2]](100902);break r}}f:{i:{if(!(o=k[v+4>>2])){if(!(u=$(k[v+8>>2])))break f;if(K(u,k[u+4>>2]))break i;break f}if(!V(o))break f;u=k[o+12>>2]}o=k[u+16>>2],h[o+16>>2]=g,k[o+12>>2]=w,k[o+24>>2]=0,h[o+20>>2]=m,k[u+28>>2]=1,k[k[u+4>>2]+28>>2]=-1,k[v+4>>2]=u;break r}if(11==(0|(u=k[v+1732>>2]))){Wr[k[v+12>>2]](100902);break r}}Wr[0|u](100902,k[v+1896>>2])}if((0|M)==(0|(s=s+1|0)))break}if(o=k[545],2!=k[o>>2]&&rr(o,2),k[o>>2]=1,a=a+M|0,(0|(n=n+1|0))==(0|f))break}c=k[545],r=Q(40),k[r>>2]=0,u=wr(a=c+1740|0,1,r,4),o=B,r=0;r:{e:{for(;;){if(r){if(11!=(0|(e=k[c+1732>>2]))){if(r=k[c+1896>>2],k[978]=0,E(0|e,100902,0|r),r=k[978],k[978]=0,e=-1,r&&(i=k[979])){if(!(e=Ir(k[r>>2],u,o)))break e;B=i}if(r=B,1==(0|e))continue;break r}if(r=k[c+12>>2],k[978]=0,I(0|r,100902),r=k[978],k[978]=0,e=-1,r&&(i=k[979])){if(!(e=Ir(k[r>>2],u,o)))break e;B=i}if(r=B,1==(0|e))continue;break r}if(1!=k[c>>2]){if(k[978]=0,E(19,0|c,1),r=k[978],k[978]=0,e=-1,r&&(i=k[979])){if(!(e=Ir(k[r>>2],u,o)))break e;B=i}if(r=B,1==(0|e))continue}if(k[c>>2]=0,!k[c+8>>2]){if(!(l[c+80|0]|16!=k[c+104>>2])){if(k[978]=0,f=0|C(20,0|c),r=k[978],k[978]=0,e=-1,r&&(i=k[979])){if(!(e=Ir(k[r>>2],u,o)))break e;B=i}if(r=B,1==(0|e))continue;if(f){k[c+1896>>2]=0;break r}}if(k[978]=0,f=0|C(21,0|c),r=k[978],k[978]=0,e=-1,r&&(i=k[979])){if(!(e=Ir(k[r>>2],u,o)))break e;B=i}if(r=B,1==(0|e))continue;if(!f){if(k[978]=0,E(22,0|a,1),r=k[978],k[978]=0,r&&(i=k[979])){if(!Ir(k[r>>2],u,o))break e;B=i}r=B;continue}}if(k[978]=0,H(c),r=k[978],k[978]=0,e=-1,r&&(i=k[979])){if(!(e=Ir(k[r>>2],u,o)))break e;B=i}if(r=B,1!=(0|e)){if(k[978]=0,f=0|C(24,0|c),r=k[978],k[978]=0,e=-1,r&&(i=k[979])){if(!(e=Ir(k[r>>2],u,o)))break e;B=i}if(r=B,1!=(0|e))if(f){n=k[c+8>>2];f:{i:{if(!l[c+60|0]){if(l[c+81|0]?(k[978]=0,f=0|P(25,0|n,1,1)):(k[978]=0,f=0|C(26,0|n)),r=k[978],k[978]=0,e=-1,r&&(i=k[979])){if(!(e=Ir(k[r>>2],u,o)))break e;B=i}if(r=B,1==(0|e))continue;if(!f){if(k[978]=0,E(22,0|a,1),r=k[978],k[978]=0,r&&(i=k[979])){if(!Ir(k[r>>2],u,o))break e;B=i}r=B;continue}if(15!=k[c+88>>2]|12!=k[c+100>>2]|13!=k[c+96>>2]|14!=k[c+92>>2]||3!=k[c+1716>>2]|6!=k[c+1728>>2]|5!=k[c+1724>>2]||4!=k[c+1720>>2])if(l[c+81|0]){if(k[978]=0,E(27,0|c,0|n),r=k[978],k[978]=0,e=-1,r&&(i=k[979])){if(!(e=Ir(k[r>>2],u,o)))break e;B=i}if(r=B,1==(0|e))continue}else{if(k[978]=0,E(28,0|c,0|n),r=k[978],k[978]=0,e=-1,r&&(i=k[979])){if(!(e=Ir(k[r>>2],u,o)))break e;B=i}if(r=B,1==(0|e))continue}if(16!=k[c+104>>2]){if(k[978]=0,z(n),r=k[978],k[978]=0,e=-1,r&&(i=k[979])){if(!(e=Ir(k[r>>2],u,o)))break e;B=i}if(r=B,1==(0|e))continue;if(r=k[c+104>>2],k[978]=0,I(0|r,0|n),r=k[978],k[978]=0,e=-1,!r)break f;if(!(i=k[979]))break f;if(e=Ir(k[r>>2],u,o))break i;break e}}if(k[978]=0,vr(n),r=k[978],k[978]=0,e=-1,r&&(i=k[979])){if(!(e=Ir(k[r>>2],u,o)))break e;B=i}if(r=B,1==(0|e))continue;k[c+8>>2]=0,k[c+1896>>2]=0;break r}B=i}if(r=B,1!=(0|e))break}else{if(k[978]=0,E(22,0|a,1),r=k[978],k[978]=0,r&&(i=k[979])){if(!Ir(k[r>>2],u,o))break e;B=i}r=B}}}k[c+1896>>2]=0,k[c+8>>2]=0;break r}O(u),Br(r,i),A()}return O(u),k[k[544]+4>>2]},o:function(r,e){r|=0,e|=0,k[978]||(k[978]=r,k[979]=e)},p:function(){return 0|U},q:function(r){U=r|=0}}}(r)}(e)},instantiate:function(r,e){return{then:function(f){var i=new l.Module(r);f({instance:new l.Instance(i,e)})}}},RuntimeError:Error};function v(r){if(U(r))return function(r){for(var e=atob(r),f=new Uint8Array(e.length),i=0;ir.startsWith(P);function B(r){if(r==_&&u)return new Uint8Array(u);var e=v(r);if(e)return e;if(k)return k(r);throw"both async and sync fetching of the wasm failed"}function F(r,e,f){return function(r){return u||U(r)||!t&&!b||"function"!=typeof fetch?Promise.resolve().then((()=>B(r))):fetch(r,{credentials:"same-origin"}).then((e=>{if(!e.ok)throw"failed to load wasm binary file at '"+r+"'";return e.arrayBuffer()})).catch((()=>B(r)))}(r).then((r=>l.instantiate(r,e))).then((r=>r)).then(f,(r=>{s(`failed to asynchronously prepare wasm: ${r}`),M(r)}))}U(_="libtess-asm.wasm")||(_=function(r){return i.locateFile?i.locateFile(r,o):o+r}(_));var Q=r=>{for(;r.length>0;)r.shift()(i)};i.noExitRuntime;var T,x=r=>{var e=(r-A.buffer.byteLength+65535)/65536;try{return A.grow(e),y(),1}catch(r){}},W=[null,[],[]],H="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,O=(r,e)=>{var f=W[r];0===e||10===e?((1===r?c:s)(((r,e,f)=>{for(var i=e+f,a=e;r[a]&&!(a>=i);)++a;if(a-e>16&&r.buffer&&H)return H.decode(r.subarray(e,a));for(var n="";e>10,56320|1023&o)}}else n+=String.fromCharCode((31&t)<<6|b)}else n+=String.fromCharCode(t)}return n})(f,0)),f.length=0):f.push(e)},j=[],D=r=>{var e=j[r];return e||(r>=j.length&&(j.length=r+1),j[r]=e=T.get(r)),e},G={f:()=>{throw 1/0},h:(r,e,f)=>d.copyWithin(r,e,e+f),g:r=>{var e=d.length,f=2147483648;if((r>>>=0)>f)return!1;for(var i=(r,e)=>r+(e-r%e)%e,a=1;a<=4;a*=2){var n=e*(1+.2/a);n=Math.min(n,r+100663296);var t=Math.min(f,i(Math.max(r,n),65536));if(x(t))return!0}return!1},d:(r,e,f,i)=>{for(var a=0,n=0;n>2],b=h[e+4>>2];e+=8;for(var k=0;k>2]=a,0},c:function(r,e){var f=J();try{return D(r)(e)}catch(r){if(N(f),r!==r+0)throw r;Z(1,0)}},i:function(r,e,f,i){var a=J();try{return D(r)(e,f,i)}catch(r){if(N(a),r!==r+0)throw r;Z(1,0)}},e:function(r,e){var f=J();try{D(r)(e)}catch(r){if(N(f),r!==r+0)throw r;Z(1,0)}},b:function(r,e,f){var i=J();try{D(r)(e,f)}catch(r){if(N(i),r!==r+0)throw r;Z(1,0)}},a:A},L=function(){var r={a:G};function e(r,e){return L=r.exports,T=L.m,function(r){g.unshift(r)}(L.j),function(r){if(I--,i.monitorRunDependencies?.(I),0==I&&S){var e=S;S=null,e()}}(),L}if(I++,i.monitorRunDependencies?.(I),i.instantiateWasm)try{return i.instantiateWasm(r,e)}catch(r){s(`Module.instantiateWasm callback failed with error: ${r}`),f(r)}return function(r,e,f,i){return r||"function"!=typeof l.instantiateStreaming||U(e)||"function"!=typeof fetch?F(e,f,i):fetch(e,{credentials:"same-origin"}).then((r=>l.instantiateStreaming(r,f).then(i,(function(r){return s(`wasm streaming compile failed: ${r}`),s("falling back to ArrayBuffer instantiation"),F(e,f,i)}))))}(u,_,r,(function(r){e(r.instance)})).catch(f),{}}();i._malloc=r=>(i._malloc=L.k)(r),i._free=r=>(i._free=L.l)(r),i._triangulate=(r,e,f,a,n,t)=>(i._triangulate=L.n)(r,e,f,a,n,t);var Y,Z=(r,e)=>(Z=L.o)(r,e),J=()=>(J=L.p)(),N=r=>(N=L.q)(r);function V(){function r(){Y||(Y=!0,i.calledRun=!0,w||(Q(g),e(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)R(i.postRun.shift());Q(E)}()))}I>0||(function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)C(i.preRun.shift());Q(m)}(),I>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),r()}),1)):r()))}if(S=function r(){Y||V(),Y||(S=r)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();V();let z=null,K=null,q=null,$=null;let X=0;return i.triangulate=(r,e,f)=>{z||(z=i._triangulate);let a=i.HEAPF32;const n=i.HEAP32.BYTES_PER_ELEMENT,t=a.BYTES_PER_ELEMENT;f>X&&(X=f,q&&(i._free(q),q=0),K&&(i._free(K),K=0)),q||(q=i._malloc(f*t)),$||($=i._malloc(4e3*n));const b=2*f;K||(K=i._malloc(b*t)),a=i.HEAPF32,a.set(r,q/t),i.HEAP32.set(e,$/n);const k=b/2,o=z(q,$,Math.min(e.length,4e3),2,K,k),u=2*o;a=i.HEAPF32;const c=a.slice(K/t,K/t+u),s={};return s.buffer=c,s.vertexCount=o,s},r.ready},a.exports=t;var k=b.exports;const o=function(r,e){for(var f=0;fi[e]})}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}({__proto__:null,default:(0,i.g)(k)},[k])}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2411.2908312c82a15909d5d1.js b/docs/sentinel1-explorer/2411.2908312c82a15909d5d1.js new file mode 100644 index 00000000..61cf0174 --- /dev/null +++ b/docs/sentinel1-explorer/2411.2908312c82a15909d5d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2411],{91917:function(t,e,n){n.d(e,{a:function(){return m},b:function(){return U},c:function(){return p},f:function(){return I},g:function(){return C},j:function(){return Z},n:function(){return L}});n(39994);var r=n(13802),o=n(19431),i=n(32114),c=n(86717),u=n(81095),s=n(56999),a=n(52721),f=n(40201),l=n(19546),d=n(97537),g=n(5700),h=n(68817);const y=p();function p(){return(0,a.Ue)()}const w=s.e,b=s.e;function m(t,e){return(0,s.c)(e,t)}function U(t){return t[3]}function C(t){return t}function I(t,e,n,r){return(0,a.al)(t,e,n,r)}function M(t,e,n){if(null==e)return!1;if(!v(t,e,E))return!1;let{t0:r,t1:o}=E;if((r<0||o0)&&(r=o),r<0)return!1;if(n){const{origin:t,direction:o}=e;n[0]=t[0]+o[0]*r,n[1]=t[1]+o[1]*r,n[2]=t[2]+o[2]*r}return!0}const E={t0:0,t1:0};function v(t,e,n){const{origin:r,direction:o}=e,i=T;i[0]=r[0]-t[0],i[1]=r[1]-t[1],i[2]=r[2]-t[2];const c=o[0]*o[0]+o[1]*o[1]+o[2]*o[2];if(0===c)return!1;const u=2*(o[0]*i[0]+o[1]*i[1]+o[2]*i[2]),s=u*u-4*c*(i[0]*i[0]+i[1]*i[1]+i[2]*i[2]-t[3]*t[3]);if(s<0)return!1;const a=Math.sqrt(s);return n.t0=(-u-a)/(2*c),n.t1=(-u+a)/(2*c),!0}const T=(0,u.Ue)();function Z(t,e){return M(t,e,null)}function S(t,e,n){const r=h.WM.get(),o=h.MP.get();(0,c.b)(r,e.origin,e.direction);const u=U(t);(0,c.b)(n,r,e.origin),(0,c.h)(n,n,1/(0,c.l)(n)*u);const s=O(t,e.origin),a=(0,g.EU)(e.origin,n);return(0,i.Us)(o,a+s,r),(0,c.e)(n,n,o),n}function A(t,e,n){const r=(0,c.f)(h.WM.get(),e,t),o=(0,c.h)(h.WM.get(),r,t[3]/(0,c.l)(r));return(0,c.g)(n,o,t)}function O(t,e){const n=(0,c.f)(h.WM.get(),e,t),r=(0,c.l)(n),i=U(t),u=i+Math.abs(i-r);return(0,o.ZF)(i/u)}const P=(0,u.Ue)();function _(t,e,n,r){const i=(0,c.f)(P,e,t);switch(n){case l.R.X:{const t=(0,o.jE)(i,P)[2];return(0,c.s)(r,-Math.sin(t),Math.cos(t),0)}case l.R.Y:{const t=(0,o.jE)(i,P),e=t[1],n=t[2],u=Math.sin(e);return(0,c.s)(r,-u*Math.cos(n),-u*Math.sin(n),Math.cos(e))}case l.R.Z:return(0,c.n)(r,i);default:return}}function z(t,e){const n=(0,c.f)(x,e,t);return(0,c.l)(n)-t[3]}function L(t,e){const n=(0,c.a)(t,e),r=U(t);return n<=r*r}const x=(0,u.Ue)(),R=p();Object.freeze(Object.defineProperty({__proto__:null,NullSphere:y,altitudeAt:z,angleToSilhouette:O,axisAt:_,clear:function(t){t[0]=t[1]=t[2]=t[3]=0},closestPoint:function(t,e,n){return M(t,e,n)?n:((0,d.JI)(e,t,n),A(t,n,n))},closestPointOnSilhouette:S,containsPoint:L,copy:m,create:p,distanceToSilhouette:function(t,e){const n=(0,c.f)(h.WM.get(),e,t),r=(0,c.p)(n),o=t[3]*t[3];return Math.sqrt(Math.abs(r-o))},elevate:function(t,e,n){return t!==n&&(n[0]=t[0],n[1]=t[1],n[2]=t[2]),n[3]=t[3]+e,n},equals:b,exactEquals:w,fromCenterAndRadius:function(t,e){return(0,a.al)(t[0],t[1],t[2],e)},fromRadius:function(t,e){return t[0]=t[1]=t[2]=0,t[3]=e,t},fromValues:I,getCenter:C,getRadius:U,intersectLine:function(t,e,n){const r=(0,d.zk)(e,n);if(!v(t,r,E))return[];const{origin:o,direction:i}=r,{t0:s,t1:a}=E,l=e=>{const n=(0,u.Ue)();return(0,c.r)(n,o,i,e),A(t,n,n)};return Math.abs(s-a)<(0,f.bn)()?[l(s)]:[l(s),l(a)]},intersectRay:M,intersectRayClosestSilhouette:function(t,e,n){if(M(t,e,n))return n;const r=S(t,e,h.WM.get());return(0,c.g)(n,e.origin,(0,c.h)(h.WM.get(),e.direction,(0,c.q)(e.origin,r)/(0,c.l)(e.direction))),n},intersectsRay:Z,projectPoint:A,setAltitudeAt:function(t,e,n,r){const o=z(t,e),i=_(t,e,l.R.Z,x),u=(0,c.h)(x,i,n-o);return(0,c.g)(r,e,u)},setExtent:function(t,e,n){return r.Z.getLogger("esri.geometry.support.sphere").error("sphere.setExtent is not yet supported"),t!==n&&m(t,n),n},tmpSphere:R,union:function(t,e,n=(0,a.Ue)()){const r=(0,c.q)(t,e),o=t[3],i=e[3];return r+ithis._reset())),this._itemsPtr===this._items.length&&this._grow(),this._items[this._itemsPtr++]}_reset(){const t=Math.min(3*Math.max(8,this._itemsPtr),this._itemsPtr+3*i);this._items.length=Math.min(t,this._items.length),this._itemsPtr=0}_grow(){for(let t=0;tc()))},9512:function(t,e,n){n.d(e,{I_:function(){return d},W7:function(){return y},qM:function(){return w}});var r=n(70375),o=n(67134),i=n(13802),c=n(52485),u=n(21414);const s=()=>i.Z.getLogger("esri.views.3d.layers.i3s.I3SBinaryReader");function a(t,e,n){let o="",i=0;for(;i=192&&c<224){if(i+1>=n)throw new r.Z("utf8-decode-error","UTF-8 Decode failed. Two byte character was truncated.");const u=(31&c)<<6|63&t[e+i+1];o+=String.fromCharCode(u),i+=2}else if(c>=224&&c<240){if(i+2>=n)throw new r.Z("utf8-decode-error","UTF-8 Decode failed. Multi byte character was truncated.");const u=(15&c)<<12|(63&t[e+i+1])<<6|63&t[e+i+2];o+=String.fromCharCode(u),i+=3}else{if(!(c>=240&&c<248))throw new r.Z("utf8-decode-error","UTF-8 Decode failed. Invalid multi byte sequence.");{if(i+3>=n)throw new r.Z("utf8-decode-error","UTF-8 Decode failed. Multi byte character was truncated.");const u=(7&c)<<18|(63&t[e+i+1])<<12|(63&t[e+i+2])<<6|63&t[e+i+3];if(u>=65536){const t=55296+(u-65536>>10),e=56320+(1023&u);o+=String.fromCharCode(t,e)}else o+=String.fromCharCode(u);i+=4}}}return o}function f(t,e){const n={byteOffset:0,byteCount:0,fields:Object.create(null)};let r=0;for(let o=0;o0){if(o.push(a(n,u,i-1)),0!==n[u+i-1])throw new r.Z("string-array-error","Invalid string array: missing null termination.")}else o.push(null);u+=i}return o}function d(t,e){return new(0,b[e.valueType])(t,e.byteOffset,e.count*e.valuesPerElement)}function g(t,e,n){const i=null!=e.header?f(t,e.header):{byteOffset:0,byteCount:0,fields:{count:n}},c={header:i,byteOffset:i.byteCount,byteCount:0,entries:Object.create(null)};let u=i.byteCount;for(let t=0;t{const e=t?Date.parse(t):null;return e&&!Number.isNaN(e)?e:null}))}(t.count,n,r):l(t.count,n,r)}return d(e,i)}throw new r.Z("bad-attribute-storage-info","Bad attributeStorageInfo specification.")}const b={Float32:Float32Array,Float64:Float64Array,UInt8:Uint8Array,Int8:Int8Array,UInt16:Uint16Array,Int16:Int16Array,UInt32:Uint32Array,Int32:Int32Array},m={Float32:(t,e)=>new DataView(t,0).getFloat32(e,!0),Float64:(t,e)=>new DataView(t,0).getFloat64(e,!0),UInt8:(t,e)=>new DataView(t,0).getUint8(e),Int8:(t,e)=>new DataView(t,0).getInt8(e),UInt16:(t,e)=>new DataView(t,0).getUint16(e,!0),Int16:(t,e)=>new DataView(t,0).getInt16(e,!0),UInt32:(t,e)=>new DataView(t,0).getUint32(e,!0),Int32:(t,e)=>new DataView(t,0).getInt32(e,!0)};function U(t){return b.hasOwnProperty(t)}function C(t){return U(t)?b[t].BYTES_PER_ELEMENT:0}},32411:function(t,e,n){n.d(e,{WD:function(){return U},xe:function(){return p}});n(91957);var r=n(66341),o=(n(7753),n(70375),n(39994),n(86098)),i=(n(32114),n(3308)),c=(n(86717),n(81095)),u=(n(28105),n(61170),n(14685));n(57022);u.Z.WGS84;var s=n(24568),a=(n(91917),n(14136),n(9512));n(69442),n(43176);n(30936),n(95550);var f,l=n(52721);function d(t){return{...g,...t,type:"solid"}}!function(t){t[t.INVISIBLE=0]="INVISIBLE",t[t.TRANSPARENT=1]="TRANSPARENT",t[t.OPAQUE=2]="OPAQUE"}(f||(f={}));const g={color:(0,l.al)(0,0,0,.2),size:1,extensionLength:0,opacity:1,objectTransparency:f.OPAQUE,hasSlicePlane:!1};(0,l.al)(0,0,0,.2),f.OPAQUE;n(66352);var h=n(47850);(0,s.Ue)();var y;async function p(t,e,n,o,i,c,u,s){const f=[];for(const r of e)if(r&&i.includes(r.name)){const e=`${t}/nodes/${n}/attributes/${r.key}/0`;f.push({url:e,storageInfo:r})}const l=await Promise.allSettled(f.map((t=>(0,r.Z)(t.url,{responseType:"array-buffer",query:{...u,token:c},signal:s?.signal}).then((e=>(0,a.qM)(t.storageInfo,e.data)))))),d=[];for(const t of o){const e={};for(let n=0;n1)throw new r.Z("lepcc-decode-error","Unknown version");const l=s(e,n);if(n+=u.byteCount,l.sizeHi*2**32+l.sizeLo!==t.byteLength)throw new r.Z("lepcc-decode-error","Bad size");const d=new Float64Array(3*l.count),g=[],h=[],y=[],p=[];if(n=f(t,n,g),n=f(t,n,h),n=f(t,n,y),n=f(t,n,p),n!==t.byteLength)throw new r.Z("lepcc-decode-error","Bad length");let w=0,b=0;for(let t=0;t>6;let f=0;if(0===a)f=i.getUint32(1,o),e+=5;else if(1===a)f=i.getUint16(1,o),e+=3;else{if(2!==a)throw new r.Z("lepcc-decode-error","Bad count type");f=i.getUint8(1),e+=2}if(s)throw new r.Z("lepcc-decode-error","LUT not implemented");const l=Math.ceil(f*u/8),d=new Uint8Array(t,e,l);let g=0,h=0,y=0;const p=-1>>>32-u;for(let t=0;t>>=u,h-=u,h+u>32&&(g|=d[y-1]>>8-h)}return e+y}const d={sizeLo:0,sizeHi:4,count:8,colorMapCount:12,lookupMethod:14,compressionMethod:15,byteCount:16};function g(t,e){return{sizeLo:t.getUint32(e+d.sizeLo,o),sizeHi:t.getUint32(e+d.sizeHi,o),count:t.getUint32(e+d.count,o),colorMapCount:t.getUint16(e+d.colorMapCount,o),lookupMethod:t.getUint8(e+d.lookupMethod),compressionMethod:t.getUint8(e+d.compressionMethod)}}function h(t){const e=new DataView(t,0);let n=0;const{identifier:o,version:u}=c(t,e,n);if(n+=i.byteCount,"ClusterRGB"!==o)throw new r.Z("lepcc-decode-error","Bad identifier");if(u>1)throw new r.Z("lepcc-decode-error","Unknown version");const s=g(e,n);if(n+=d.byteCount,s.sizeHi*2**32+s.sizeLo!==t.byteLength)throw new r.Z("lepcc-decode-error","Bad size");if((2===s.lookupMethod||1===s.lookupMethod)&&0===s.compressionMethod){if(3*s.colorMapCount+s.count+n!==t.byteLength||s.colorMapCount>256)throw new r.Z("lepcc-decode-error","Bad count");const e=new Uint8Array(t,n,3*s.colorMapCount),o=new Uint8Array(t,n+3*s.colorMapCount,s.count),i=new Uint8Array(3*s.count);for(let t=0;t1)throw new r.Z("lepcc-decode-error","Unknown version");const s=p(e,n);if(n+=y.byteCount,s.sizeHi*2**32+s.sizeLo!==t.byteLength)throw new r.Z("lepcc-decode-error","Bad size");const a=new Uint16Array(s.count);if(8===s.bitsPerPoint){if(s.count+n!==t.byteLength)throw new r.Z("lepcc-decode-error","Bad size");const e=new Uint8Array(t,n,s.count);for(let t=0;tf.Z.getLogger("esri.layers.support.ElevationSampler");class x{queryElevation(e){return function(e,t){const i=w(e,t.spatialReference);if(!i)return null;switch(e.type){case"point":!function(e,t,i){e.z=i.elevationAt(t.x,t.y)}(e,i,t);break;case"polyline":!function(e,t,i){g.spatialReference=t.spatialReference;const n=e.hasM&&!e.hasZ;for(let s=0;snew v(e,n,this.noDataValue))):e;const s=this.samplers[0];if(s){this.extent=s.extent.clone();const{min:e,max:t}=s.demResolution;this.demResolution={min:e,max:t};for(let e=1;ei?i:e}var A=i(23758);class D{async queryAll(e,t,i){if(!(e=i&&i.ignoreInvisibleLayers?e.filter((e=>e.visible)):e.slice()).length)throw new s.Z("elevation-query:invalid-layer","Elevation queries require at least one elevation layer to fetch tiles from");const n=q.fromGeometry(t);let l=!1;i&&i.returnSampleInfo||(l=!0);const a={...F,...i,returnSampleInfo:!0},o=await this.query(e[e.length-1],n,a),r=await this._queryAllContinue(e,o,a);return r.geometry=r.geometry.export(),l&&delete r.sampleInfo,r}async query(e,t,i){if(!e)throw new s.Z("elevation-query:invalid-layer","Elevation queries require an elevation layer to fetch tiles from");if(!t||!(t instanceof q)&&"point"!==t.type&&"multipoint"!==t.type&&"polyline"!==t.type)throw new s.Z("elevation-query:invalid-geometry","Only point, polyline and multipoint geometries can be used to query elevation");const n={...F,...i},l=new M(e,t.spatialReference,n),a=n.signal;return await e.load({signal:a}),await this._createGeometryDescriptor(l,t,a),await this._selectTiles(l,a),await this._populateElevationTiles(l,a),this._sampleGeometryWithElevation(l),this._createQueryResult(l,a)}async createSampler(e,t,i){if(!e)throw new s.Z("elevation-query:invalid-layer","Elevation queries require an elevation layer to fetch tiles from");if(!t||"extent"!==t.type)throw new s.Z("elevation-query:invalid-extent","Invalid or undefined extent");const n={...F,...i};return this._createSampler(e,t,n)}async createSamplerAll(e,t,i){if(!(e=i&&i.ignoreInvisibleLayers?e.filter((e=>e.visible)):e.slice()).length)throw new s.Z("elevation-query:invalid-layer","Elevation queries require at least one elevation layer to fetch tiles from");if(!t||"extent"!==t.type)throw new s.Z("elevation-query:invalid-extent","Invalid or undefined extent");const n={...F,...i,returnSampleInfo:!0},l=await this._createSampler(e[e.length-1],t,n);return this._createSamplerAllContinue(e,t,l,n)}async _createSampler(e,t,i,n){const s=i.signal;await e.load({signal:s});const l=t.spatialReference,a=e.tileInfo.spatialReference;l.equals(a)||(await(0,h.initializeProjection)([{source:l,dest:a}],{signal:s}),t=(0,h.project)(t,a));const o=new z(e,t,i,n);return await this._selectTiles(o,s),await this._populateElevationTiles(o,s),new T(o.elevationTiles,o.layer.tileInfo,o.options.noDataValue)}async _createSamplerAllContinue(e,t,i,n){if(e.pop(),!e.length)return i;const s=i.samplers.filter((e=>!e.tile.hasNoDataValues)).map((e=>(0,p.oJ)(e.extent))),l=await this._createSampler(e[e.length-1],t,n,s);if(0===l.samplers.length)return i;const a=i.samplers.concat(l.samplers),o=new T(a,n.noDataValue);return this._createSamplerAllContinue(e,t,o,n)}async _queryAllContinue(e,t,i){const n=e.pop(),s=t.geometry.coordinates,a=t.sampleInfo;(0,l.O3)(a);const o=[],r=[];for(let t=0;t=0?i.source||(i.source=n):e.length&&(o.push(s[t]),r.push(t))}if(!e.length||0===o.length)return t;const c=t.geometry.clone(o),u=await this.query(e[e.length-1],c,i),h=u.sampleInfo;if(!h)throw new Error("no sampleInfo");return r.forEach(((e,t)=>{s[e].z=u.geometry.coordinates[t].z,a[e].demResolution=h[t].demResolution})),this._queryAllContinue(e,t,i)}async _createQueryResult(e,t){const i=await e.geometry.project(e.outSpatialReference,t);(0,l.O3)(i);const n={geometry:i.export(),noDataValue:e.options.noDataValue};return e.options.returnSampleInfo&&(n.sampleInfo=this._extractSampleInfo(e)),e.geometry.coordinates.forEach((e=>{e.tile=null,e.elevationTile=null})),n}async _createGeometryDescriptor(e,t,i){let n;const l=e.layer.tileInfo.spatialReference;if(t instanceof q?n=await t.project(l,i):(await(0,h.initializeProjection)([{source:t.spatialReference,dest:l}],{signal:i}),n=(0,h.project)(t,l)),!n)throw new s.Z("elevation-query:spatial-reference-mismatch",`Cannot query elevation in '${t.spatialReference.wkid}' on an elevation service in '${l.wkid}'`);e.geometry=q.fromGeometry(n)}async _selectTiles(e,t){"geometry"===e.type&&this._preselectOutsideLayerExtent(e);const i=e.options.demResolution;if("number"==typeof i)this._selectTilesClosestResolution(e,i);else if("finest-contiguous"===i)await this._selectTilesFinestContiguous(e,t);else{if("auto"!==i)throw new s.Z("elevation-query:invalid-dem-resolution",`Invalid dem resolution value '${i}', expected a number, "finest-contiguous" or "auto"`);await this._selectTilesAuto(e,t)}}_preselectOutsideLayerExtent(e){if(null==e.layer.fullExtent)return;const t=new R(null);t.sample=()=>e.options.noDataValue,e.outsideExtentTile=t;const i=e.layer.fullExtent;e.geometry.coordinates.forEach((e=>{const n=e.x,s=e.y;(ni.xmax||si.ymax)&&(e.elevationTile=t)}))}_selectTilesClosestResolution(e,t){const i=this._findNearestDemResolutionLODIndex(e,t);e.selectTilesAtLOD(i)}_findNearestDemResolutionLODIndex(e,t){const{tileInfo:i,tilemapCache:n}=e.layer,s=t/(0,o.c9)(i.spatialReference),l=V(i,n);let a=l[0],r=0;for(let e=1;el.fetchAvailability(e.level,e.row,e.col,{signal:i})))),i);else if(await this._populateElevationTiles(e,i),!e.allElevationTilesFetched())throw e.clearElevationTiles(),new s.Z("elevation-query:has-unavailable-tiles")}catch(n){(0,a.r9)(n),await this._selectTilesFinestContiguousAt(e,t-1,i)}}async _populateElevationTiles(e,t){const i=e.getTilesToFetch(),n={},s=e.options.cache,l=e.options.noDataValue,o=i.map((async i=>{if(null==i.id)return;const a=`${e.layer.uid}:${i.id}:${l}`,o=null!=s?s.get(a):null,r=null!=o?o:await e.layer.fetchTile(i.level,i.row,i.col,{noDataValue:l,signal:t});null!=s&&s.put(a,r),n[i.id]=new R(i,r)}));await(0,a.Hl)(Promise.allSettled(o),t),e.populateElevationTiles(n)}async _selectTilesAuto(e,t){this._selectTilesAutoFinest(e),this._reduceTilesForMaximumRequests(e);const i=e.layer.tilemapCache;if(!i||k(i))return this._selectTilesAutoPrefetchUpsample(e,t);const s=e.getTilesToFetch(),l={},o=s.map((async e=>{const s=new A.f(null,0,0,0,(0,p.Ue)()),o=await(0,n.q6)(i.fetchAvailabilityUpsample(e.level,e.row,e.col,s,{signal:t}));!1!==o.ok?null!=e.id&&(l[e.id]=s):(0,a.r9)(o.error)}));await(0,a.Hl)(Promise.all(o),t),e.remapTiles(l)}_reduceTilesForMaximumRequests(e){const t=e.layer.tileInfo;let i=0;const n={},s=e=>{null!=e.id&&(e.id in n?n[e.id]++:(n[e.id]=1,i++))},l=e=>{if(null==e.id)return;const t=n[e.id];1===t?(delete n[e.id],i--):n[e.id]=t-1};e.forEachTileToFetch(s,l);let a=!0;for(;a&&(a=!1,e.forEachTileToFetch((n=>{i<=e.options.maximumAutoTileRequests||(l(n),t.upsampleTile(n)&&(a=!0),s(n))}),l),a););}_selectTilesAutoFinest(e){const{tileInfo:t,tilemapCache:i}=e.layer,n=Z(t,i,e.options.minDemResolution);e.selectTilesAtLOD(n,e.options.maximumAutoTileRequests)}async _selectTilesAutoPrefetchUpsample(e,t){const i=e.layer.tileInfo;await this._populateElevationTiles(e,t);let n=!1;e.forEachTileToFetch(((e,t)=>{i.upsampleTile(e)?n=!0:t()})),n&&await this._selectTilesAutoPrefetchUpsample(e,t)}_sampleGeometryWithElevation(e){e.geometry.coordinates.forEach((t=>{const i=t.elevationTile;let n=e.options.noDataValue;if(i){const e=i.sample(t.x,t.y);null!=e?n=e:t.elevationTile=null}t.z=n}))}_extractSampleInfo(e){const t=e.layer.tileInfo,i=(0,o.c9)(t.spatialReference);return e.geometry.coordinates.map((n=>{let s=-1;return n.elevationTile&&n.elevationTile!==e.outsideExtentTile&&(s=t.lodAt(n.elevationTile.tile.level).resolution*i),{demResolution:s}}))}}class q{export(){return this._exporter(this.coordinates,this.spatialReference)}clone(e){const t=new q;return t.geometry=this.geometry,t.spatialReference=this.spatialReference,t.coordinates=e||this.coordinates.map((e=>e.clone())),t._exporter=this._exporter,t}async project(e,t){if(this.spatialReference.equals(e))return this.clone();await(0,h.initializeProjection)([{source:this.spatialReference,dest:e}],{signal:t});const i=new r.Z({spatialReference:this.spatialReference,points:this.coordinates.map((e=>[e.x,e.y]))}),n=(0,h.project)(i,e);if(!n)return null;const s=this.coordinates.map(((e,t)=>{const i=e.clone(),s=n.points[t];return i.x=s[0],i.y=s[1],i})),l=this.clone(s);return l.spatialReference=e,l}static fromGeometry(e){const t=new q;if(t.geometry=e,t.spatialReference=e.spatialReference,e instanceof q)t.coordinates=e.coordinates.map((e=>e.clone())),t._exporter=(t,i)=>{const n=e.clone(t);return n.spatialReference=i,n};else switch(e.type){case"point":{const i=e,{hasZ:n,hasM:s}=i;t.coordinates=n&&s?[new I(i.x,i.y,i.z,i.m)]:n?[new I(i.x,i.y,i.z)]:s?[new I(i.x,i.y,null,i.m)]:[new I(i.x,i.y)],t._exporter=(t,i)=>e.hasM?new c.Z(t[0].x,t[0].y,t[0].z,t[0].m,i):new c.Z(t[0].x,t[0].y,t[0].z,i);break}case"multipoint":{const i=e,{hasZ:n,hasM:s}=i;t.coordinates=n&&s?i.points.map((e=>new I(e[0],e[1],e[2],e[3]))):n?i.points.map((e=>new I(e[0],e[1],e[2]))):s?i.points.map((e=>new I(e[0],e[1],null,e[2]))):i.points.map((e=>new I(e[0],e[1]))),t._exporter=(t,i)=>e.hasM?new r.Z({points:t.map((e=>[e.x,e.y,e.z,e.m])),hasZ:!0,hasM:!0,spatialReference:i}):new r.Z(t.map((e=>[e.x,e.y,e.z])),i);break}case"polyline":{const i=e,n=[],s=[],{hasZ:l,hasM:a}=e;let o=0;for(const e of i.paths)if(s.push([o,o+e.length]),o+=e.length,l&&a)for(const t of e)n.push(new I(t[0],t[1],t[2],t[3]));else if(l)for(const t of e)n.push(new I(t[0],t[1],t[2]));else if(a)for(const t of e)n.push(new I(t[0],t[1],null,t[2]));else for(const t of e)n.push(new I(t[0],t[1]));t.coordinates=n,t._exporter=(t,i)=>{const n=e.hasM?t.map((e=>[e.x,e.y,e.z,e.m])):t.map((e=>[e.x,e.y,e.z])),l=s.map((e=>n.slice(e[0],e[1])));return new u.Z({paths:l,hasM:e.hasM,hasZ:!0,spatialReference:i})};break}}return t}}class I{constructor(e,t,i=null,n=null,s=null,l=null){this.x=e,this.y=t,this.z=i,this.m=n,this.tile=s,this.elevationTile=l}clone(){return new I(this.x,this.y,this.z,this.m)}}class C{constructor(e,t){this.layer=e,this.options=t}}class M extends C{constructor(e,t,i){super(e,i),this.outSpatialReference=t,this.type="geometry"}selectTilesAtLOD(e){if(e<0)this.geometry.coordinates.forEach((e=>e.tile=null));else{const{tileInfo:t,tilemapCache:i}=this.layer,n=V(t,i)[e].level;this.geometry.coordinates.forEach((e=>e.tile=t.tileAt(n,e.x,e.y)))}}allElevationTilesFetched(){return!this.geometry.coordinates.some((e=>!e.elevationTile))}clearElevationTiles(){for(const e of this.geometry.coordinates)e.elevationTile!==this.outsideExtentTile&&(e.elevationTile=null)}populateElevationTiles(e){for(const t of this.geometry.coordinates)!t.elevationTile&&t.tile?.id&&(t.elevationTile=e[t.tile.id])}remapTiles(e){for(const t of this.geometry.coordinates){const i=t.tile?.id;t.tile=i?e[i]:null}}getTilesToFetch(){const e={},t=[];for(const i of this.geometry.coordinates){const n=i.tile;if(!n)continue;const s=i.tile?.id;i.elevationTile||!s||e[s]||(e[s]=n,t.push(n))}return t}forEachTileToFetch(e){for(const t of this.geometry.coordinates)t.tile&&!t.elevationTile&&e(t.tile,(()=>{t.tile=null}))}}class z extends C{constructor(e,t,i,n){super(e,i),this.type="extent",this.elevationTiles=[],this._candidateTiles=[],this._fetchedCandidates=new Set,this.extent=t.clone().intersection(e.fullExtent),this.maskExtents=n}selectTilesAtLOD(e,t){const i=this._maximumLodForRequests(t),n=Math.min(i,e);n<0?this._candidateTiles.length=0:this._selectCandidateTilesCoveringExtentAt(n)}_maximumLodForRequests(e){const{tileInfo:t,tilemapCache:i}=this.layer,n=V(t,i);if(!e)return n.length-1;const s=this.extent;if(null==s)return-1;for(let i=n.length-1;i>=0;i--){const l=n[i],a=l.resolution*t.size[0],o=l.resolution*t.size[1];if(Math.ceil(s.width/a)*Math.ceil(s.height/o)<=e)return i}return-1}allElevationTilesFetched(){return this._candidateTiles.length===this.elevationTiles.length}clearElevationTiles(){this.elevationTiles.length=0,this._fetchedCandidates.clear()}populateElevationTiles(e){for(const t of this._candidateTiles){const i=t.id&&e[t.id];i&&(this._fetchedCandidates.add(t),this.elevationTiles.push(i))}}remapTiles(e){this._candidateTiles=this._uniqueNonOverlappingTiles(this._candidateTiles.map((t=>e[t.id])))}getTilesToFetch(){return this._candidateTiles}forEachTileToFetch(e,t){const i=this._candidateTiles;this._candidateTiles=[],i.forEach((i=>{if(this._fetchedCandidates.has(i))return void(t&&t(i));let n=!1;e(i,(()=>n=!0)),n?t&&t(i):this._candidateTiles.push(i)})),this._candidateTiles=this._uniqueNonOverlappingTiles(this._candidateTiles,t)}_uniqueNonOverlappingTiles(e,t){const i={},n=[];for(const s of e){const e=s.id;e&&!i[e]?(i[e]=s,n.push(s)):t&&t(s)}const s=n.sort(((e,t)=>e.level-t.level));return s.filter(((e,i)=>{for(let n=0;ne.extent&&(0,p.r3)(t,e.extent)))}}function Z(e,t,i=0){const n=V(e,t);let s=n.length-1;if(i>0){const t=i/(0,o.c9)(e.spatialReference),l=n.findIndex((e=>e.resolution0&&(s=l-1)}return s}const F={maximumAutoTileRequests:20,noDataValue:0,returnSampleInfo:!1,demResolution:"auto",minDemResolution:0};function V(e,t){const i=e.lods;if(k(t)){const{effectiveMinLOD:e,effectiveMaxLOD:n}=t;return i.filter((t=>t.level>=e&&t.level<=n))}return i}function k(e){return null!=e?.tileInfo}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2444.b72e5d11993249f31102.js b/docs/sentinel1-explorer/2444.b72e5d11993249f31102.js new file mode 100644 index 00000000..970baa5d --- /dev/null +++ b/docs/sentinel1-explorer/2444.b72e5d11993249f31102.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2444],{73534:function(e,t,i){i.d(t,{I:function(){return s},v:function(){return r}});var n=i(19431);function s(e,t,i=0){const s=(0,n.uZ)(e,0,l);for(let e=0;e<4;e++)t[i+e]=Math.floor(256*u(s*a[e]))}function r(e,t=0){let i=0;for(let n=0;n<4;n++)i+=e[t+n]*o[n];return i}const a=[1,256,65536,16777216],o=[1/256,1/65536,1/16777216,1/4294967296],l=r(new Uint8ClampedArray([255,255,255,255]));function u(e){return e-Math.floor(e)}},91103:function(e,t,i){i.d(t,{CS:function(){return g},Cw:function(){return _},Yu:function(){return w},j5:function(){return m},lm:function(){return b}});var n=i(51366),s=i(88256),r=i(80020),a=i(66341),o=i(67134),l=i(3466),u=i(14685),h=i(37116),c=i(79880),d=i(72506),p=i(51211);const f={esriGeometryPoint:"points",esriGeometryPolyline:"polylines",esriGeometryPolygon:"polygons"};function _(e){const t=e.folders||[],i=t.slice(),n=new Map,s=new Map,r=new Map,a=new Map,l=new Map,u={esriGeometryPoint:s,esriGeometryPolyline:r,esriGeometryPolygon:a};(e.featureCollection?.layers||[]).forEach((e=>{const t=(0,o.d9)(e);t.featureSet.features=[];const i=e.featureSet.geometryType;n.set(i,t);const l=e.layerDefinition.objectIdField;"esriGeometryPoint"===i?y(s,l,e.featureSet.features):"esriGeometryPolyline"===i?y(r,l,e.featureSet.features):"esriGeometryPolygon"===i&&y(a,l,e.featureSet.features)})),e.groundOverlays&&e.groundOverlays.forEach((e=>{l.set(e.id,e)})),t.forEach((t=>{t.networkLinkIds.forEach((n=>{const s=function(e,t,i){const n=function(e,t){let i;return t.some((t=>t.id===e&&(i=t,!0))),i}(e,i);return n&&(n.parentFolderId=t,n.networkLink=n),n}(n,t.id,e.networkLinks);s&&i.push(s)}))})),i.forEach((e=>{if(e.featureInfos){e.points=(0,o.d9)(n.get("esriGeometryPoint")),e.polylines=(0,o.d9)(n.get("esriGeometryPolyline")),e.polygons=(0,o.d9)(n.get("esriGeometryPolygon")),e.mapImages=[];for(const t of e.featureInfos)switch(t.type){case"esriGeometryPoint":case"esriGeometryPolyline":case"esriGeometryPolygon":{const i=u[t.type].get(t.id);i&&e[f[t.type]]?.featureSet.features.push(i);break}case"GroundOverlay":{const i=l.get(t.id);i&&e.mapImages.push(i);break}}e.fullExtent=b([e])}}));const h=b(i);return{folders:t,sublayers:i,extent:h}}function g(e,t,i,r){const o=s.id?.findCredential(e);e=(0,l.fl)(e,{token:o?.token});const u=n.default.kmlServiceUrl;return(0,a.Z)(u,{query:{url:e,model:"simple",folders:"",refresh:0!==i||void 0,outSR:JSON.stringify(t)},responseType:"json",signal:r})}function m(e,t,i=null,n=[]){const s=[],r={},a=t.sublayers,o=new Set(t.folders.map((e=>e.id)));return a.forEach((t=>{const a=new e;if(i?a.read(t,i):a.read(t),n.length&&o.has(a.id)&&(a.visible=n.includes(a.id)),r[t.id]=a,null!=t.parentFolderId&&-1!==t.parentFolderId){const e=r[t.parentFolderId];e.sublayers||(e.sublayers=[]),e.sublayers?.unshift(a)}else s.unshift(a)})),s}function y(e,t,i){i.forEach((i=>{e.set(i.attributes[t],i)}))}async function w(e){const t=p.Z.fromJSON(e.featureSet).features,i=e.layerDefinition,n=(0,d.i)(i.drawingInfo.renderer),s=r.Z.fromJSON(e.popupInfo),a=[];for(const e of t){const t=await n.getSymbolAsync(e);e.symbol=t,e.popupTemplate=s,e.visible=!0,a.push(e)}return a}function b(e){const t=(0,h.Ue)(h.G_),i=(0,h.Ue)(h.G_);for(const n of e){if(n.polygons?.featureSet?.features)for(const e of n.polygons.featureSet.features)(0,c.Yg)(t,e.geometry),(0,h.TC)(i,t);if(n.polylines?.featureSet?.features)for(const e of n.polylines.featureSet.features)(0,c.Yg)(t,e.geometry),(0,h.TC)(i,t);if(n.points?.featureSet?.features)for(const e of n.points.featureSet.features)(0,c.Yg)(t,e.geometry),(0,h.TC)(i,t);if(n.mapImages)for(const e of n.mapImages)(0,c.Yg)(t,e.extent),(0,h.TC)(i,t)}return(0,h.fS)(i,h.G_)?void 0:{xmin:i[0],ymin:i[1],zmin:i[2],xmax:i[3],ymax:i[4],zmax:i[5],spatialReference:u.Z.WGS84}}},86602:function(e,t,i){i.d(t,{JZ:function(){return d},RL:function(){return p},eY:function(){return f}});var n=i(78668),s=i(46332),r=i(38642),a=i(45867),o=i(51118),l=i(7349),u=i(91907),h=i(71449),c=i(80479);function d(e){return e&&"render"in e}function p(e){const t=document.createElement("canvas");return t.width=e.width,t.height=e.height,e.render(t.getContext("2d")),t}class f extends o.s{constructor(e=null,t=!1){super(),this.blendFunction="standard",this._sourceWidth=0,this._sourceHeight=0,this._textureInvalidated=!1,this._texture=null,this.stencilRef=0,this.coordScale=[1,1],this._height=void 0,this.pixelRatio=1,this.resolution=0,this.rotation=0,this._source=null,this._width=void 0,this.x=0,this.y=0,this.immutable=t,this.source=e,this.requestRender=this.requestRender.bind(this)}destroy(){this._texture&&(this._texture.dispose(),this._texture=null),null!=this._uploadStatus&&(this._uploadStatus.controller.abort(),this._uploadStatus=null)}get isSourceScaled(){return this.width!==this._sourceWidth||this.height!==this._sourceHeight}get height(){return void 0!==this._height?this._height:this._sourceHeight}set height(e){this._height=e}get source(){return this._source}set source(e){null==e&&null==this._source||(this._source=e,this.invalidateTexture(),this.requestRender())}get width(){return void 0!==this._width?this._width:this._sourceWidth}set width(e){this._width=e}beforeRender(e){super.beforeRender(e),this.updateTexture(e)}async setSourceAsync(e,t){null!=this._uploadStatus&&this._uploadStatus.controller.abort();const i=new AbortController,s=(0,n.hh)();return(0,n.$F)(t,(()=>i.abort())),(0,n.$F)(i,(e=>s.reject(e))),this._uploadStatus={controller:i,resolver:s},this.source=e,s.promise}invalidateTexture(){this._textureInvalidated||(this._textureInvalidated=!0,this._source instanceof HTMLImageElement?(this._sourceHeight=this._source.naturalHeight,this._sourceWidth=this._source.naturalWidth):this._source&&(this._sourceHeight=this._source.height,this._sourceWidth=this._source.width))}updateTransitionProperties(e,t){e>=64&&(this.fadeTransitionEnabled=!1,this.inFadeTransition=!1),super.updateTransitionProperties(e,t)}setTransform(e){const t=(0,s.yR)(this.transforms.displayViewScreenMat3),[i,n]=e.toScreenNoRotation([0,0],[this.x,this.y]),r=this.resolution/this.pixelRatio/e.resolution,o=r*this.width,l=r*this.height,u=Math.PI*this.rotation/180;(0,s.Iu)(t,t,(0,a.al)(i,n)),(0,s.Iu)(t,t,(0,a.al)(o/2,l/2)),(0,s.U1)(t,t,-u),(0,s.Iu)(t,t,(0,a.al)(-o/2,-l/2)),(0,s.ex)(t,t,(0,a.al)(o,l)),(0,s.Jp)(this.transforms.displayViewScreenMat3,e.displayViewMat3,t)}setSamplingProfile(e){this._texture&&(e.mips&&!this._texture.descriptor.hasMipmap&&this._texture.generateMipmap(),this._texture.setSamplingMode(e.samplingMode))}bind(e,t){this._texture&&e.bindTexture(this._texture,t)}async updateTexture({context:e,painter:t}){if(!this._textureInvalidated)return;if(this._textureInvalidated=!1,this._texture||(this._texture=this._createTexture(e)),!this.source)return void this._texture.setData(null);this._texture.resize(this._sourceWidth,this._sourceHeight);const i=function(e){return d(e)?e instanceof l.Z?e.getRenderedRasterPixels()?.renderedRasterPixels:p(e):e}(this.source);try{if(null!=this._uploadStatus){const{controller:e,resolver:n}=this._uploadStatus,s={signal:e.signal},{width:r,height:a}=this,o=this._texture,l=t.textureUploadManager;await l.enqueueTextureUpdate({data:i,texture:o,width:r,height:a},s),n.resolve(),this._uploadStatus=null}else this._texture.setData(i);this.ready()}catch(e){(0,n.H9)(e)}}onDetach(){this.destroy()}_createTransforms(){return{displayViewScreenMat3:(0,r.Ue)()}}_createTexture(e){const t=this.immutable,i=new c.X;return i.internalFormat=t?u.lP.RGBA8:u.VI.RGBA,i.wrapMode=u.e8.CLAMP_TO_EDGE,i.isImmutable=t,i.width=this._sourceWidth,i.height=this._sourceHeight,new h.x(e,i)}}},12688:function(e,t,i){i.d(t,{c:function(){return a}});var n=i(98831),s=i(38716),r=i(10994);class a extends r.Z{constructor(){super(...arguments),this._hasCrossfade=!1}get requiresDedicatedFBO(){return super.requiresDedicatedFBO||this._hasCrossfade}beforeRender(e){super.beforeRender(e),this._manageFade()}prepareRenderPasses(e){const t=e.registerRenderPass({name:"bitmap",brushes:[n.U.bitmap],target:()=>this.children,drawPhase:s.jx.MAP});return[...super.prepareRenderPasses(e),t]}_manageFade(){this.children.reduce(((e,t)=>e+(t.inFadeTransition?1:0)),0)>=2?(this.children.forEach((e=>e.blendFunction="additive")),this._hasCrossfade=!0):(this.children.forEach((e=>e.blendFunction="standard")),this._hasCrossfade=!1)}}},7349:function(e,t,i){i.d(t,{Z:function(){return n}});class n{constructor(e,t,i){this.pixelBlock=e,this.extent=t,this.originalPixelBlock=i}get width(){return null!=this.pixelBlock?this.pixelBlock.width:0}get height(){return null!=this.pixelBlock?this.pixelBlock.height:0}render(e){const t=this.pixelBlock;if(null==t)return;const i=this.filter({extent:this.extent,pixelBlock:this.originalPixelBlock??t});if(null==i.pixelBlock)return;i.pixelBlock.maskIsAlpha&&(i.pixelBlock.premultiplyAlpha=!0);const n=i.pixelBlock.getAsRGBA(),s=e.createImageData(i.pixelBlock.width,i.pixelBlock.height);s.data.set(n),e.putImageData(s,0,0)}getRenderedRasterPixels(){const e=this.filter({extent:this.extent,pixelBlock:this.pixelBlock});return null==e.pixelBlock?null:(e.pixelBlock.maskIsAlpha&&(e.pixelBlock.premultiplyAlpha=!0),{width:e.pixelBlock.width,height:e.pixelBlock.height,renderedRasterPixels:new Uint8Array(e.pixelBlock.getAsRGBA().buffer)})}}},62585:function(e,t,i){i.r(t),i.d(t,{default:function(){return L}});var n=i(36663),s=i(88256),r=i(6865),a=i(61681),o=i(76868),l=i(3466),u=i(81977),h=(i(39994),i(13802),i(4157),i(40266)),c=i(91772),d=i(28105),p=i(14685),f=i(91103),_=i(84238),g=i(94449),m=i(86602),y=i(12688),w=i(66878),b=i(68114),v=i(18133),x=i(26216),S=i(66341),T=i(67666),I=i(18486),C=i(86424),E=i(3316),A=i(8396),R=i(91907),O=i(18567),P=i(10054),M=i(76729),V=i(71449),D=i(80479);class k{constructor(e){if(this._ownsRctx=!1,e)this._ownsRctx=!1,this._rctx=e;else{if(k._instance)return k._instanceRefCount++,k._instance;k._instanceRefCount=1,k._instance=this,this._ownsRctx=!0;const e=document.createElement("canvas"),t=(0,A.k)(e);t.getExtension("OES_texture_float"),this._rctx=new M.x(t,{})}const t=(0,E.s)("raster/reproject","raster/reproject",new Map([["a_position",0]]),{applyProjection:!0,bilinear:!1,bicubic:!1});this._program=this._rctx.programCache.acquire(t.shaders.vertexShader,t.shaders.fragmentShader,t.attributes),this._rctx.useProgram(this._program),this._program.setUniform1f("u_opacity",1),this._program.setUniform1i("u_image",0),this._program.setUniform1i("u_flipY",0),this._program.setUniform1i("u_transformGrid",1),this._quad=new C.Z(this._rctx,[0,0,1,0,0,1,1,1])}reprojectTexture(e,t,i=!1){const n=(0,d.project)(e.extent,t),s=new T.Z({x:(e.extent.xmax-e.extent.xmin)/e.texture.descriptor.width,y:(e.extent.ymax-e.extent.ymin)/e.texture.descriptor.height,spatialReference:e.extent.spatialReference}),{x:r,y:a}=(0,I.VO)(s,t,e.extent);let o=(r+a)/2;const l=Math.round((n.xmax-n.xmin)/o),u=Math.round((n.ymax-n.ymin)/o);o=(n.width/l+n.height/u)/2;const h=new T.Z({x:o,y:o,spatialReference:n.spatialReference}),c=(0,I.Qp)({projectedExtent:n,srcBufferExtent:e.extent,pixelSize:h,hasWrapAround:!0,spacing:[16,16]}),p=(0,P.Br)(this._rctx,c),f=new D.X(l,u);f.wrapMode=R.e8.CLAMP_TO_EDGE;const _=new O.X(this._rctx,f);this._rctx.bindFramebuffer(_),this._rctx.setViewport(0,0,l,u),this._rctx.useProgram(this._program),this._rctx.bindTexture(e.texture,0),this._rctx.bindTexture(p,1),this._quad.bind();const{width:g=0,height:m=0}=e.texture.descriptor;if(this._program.setUniform2f("u_srcImageSize",g,m),this._program.setUniform2fv("u_transformSpacing",c.spacing),this._program.setUniform2fv("u_transformGridSize",c.size),this._program.setUniform2f("u_targetImageSize",l,u),this._quad.draw(),this._quad.unbind(),this._rctx.useProgram(null),this._rctx.bindFramebuffer(null),p.dispose(),i){const{width:e,height:t}=_,i=new ImageData(e??0,t??0);_.readPixels(0,0,e??0,t??0,R.VI.RGBA,R.Br.UNSIGNED_BYTE,i.data);const s=_.detachColorTexture(R.VY.COLOR_ATTACHMENT0);return _.dispose(),{texture:s,extent:n,imageData:i}}const y=_.detachColorTexture(R.VY.COLOR_ATTACHMENT0);return _.dispose(),{texture:y,extent:n}}reprojectBitmapData(e,t){const i=(0,m.JZ)(e.bitmapData)?(0,m.RL)(e.bitmapData):e.bitmapData,n=new D.X;n.wrapMode=R.e8.CLAMP_TO_EDGE,n.width=e.bitmapData.width,n.height=e.bitmapData.height;const s=new V.x(this._rctx,n,i),r=this.reprojectTexture({texture:s,extent:e.extent},t,!0);r.texture.dispose();const a=document.createElement("canvas"),o=r.imageData;return a.width=o.width,a.height=o.height,a.getContext("2d").putImageData(o,0,0),{bitmapData:a,extent:r.extent}}async loadAndReprojectBitmapData(e,t,i){const n=(await(0,S.Z)(e,{responseType:"image"})).data,s=document.createElement("canvas");s.width=n.width,s.height=n.height;const r=s.getContext("2d");r.drawImage(n,0,0);const a=r.getImageData(0,0,s.width,s.height);if(t.spatialReference.equals(i))return{bitmapData:a,extent:t};const o=this.reprojectBitmapData({bitmapData:a,extent:t},i);return{bitmapData:o.bitmapData,extent:o.extent}}destroy(){this._ownsRctx?(k._instanceRefCount--,0===k._instanceRefCount&&(this._quad.dispose(),this._program.dispose(),this._rctx.dispose(),k._instance=null)):(this._quad.dispose(),this._program.dispose())}}k._instanceRefCount=0;class B{constructor(){this.allSublayers=new Map,this.allPoints=[],this.allPolylines=[],this.allPolygons=[],this.allMapImages=[]}}let U=class extends((0,w.y)(x.Z)){constructor(){super(...arguments),this._bitmapIndex=new Map,this._mapImageContainer=new y.c,this._kmlVisualData=new B,this._fetchController=null,this.allVisiblePoints=new g.J,this.allVisiblePolylines=new g.J,this.allVisiblePolygons=new g.J,this.allVisibleMapImages=new r.Z}async hitTest(e,t){const i=this.layer;return[this._pointsView?.hitTest(e),this._polylinesView?.hitTest(e),this._polygonsView?.hitTest(e)].flat().filter(Boolean).map((t=>(t.layer=i,t.sourceLayer=i,{type:"graphic",graphic:t,layer:i,mapPoint:e})))}update(e){this._polygonsView&&this._polygonsView.processUpdate(e),this._polylinesView&&this._polylinesView.processUpdate(e),this._pointsView&&this._pointsView.processUpdate(e)}attach(){this._fetchController=new AbortController,this.container.addChild(this._mapImageContainer),this._polygonsView=new v.Z({view:this.view,graphics:this.allVisiblePolygons,requestUpdateCallback:()=>this.requestUpdate(),container:new b.Z(this.view.featuresTilingScheme)}),this.container.addChild(this._polygonsView.container),this._polylinesView=new v.Z({view:this.view,graphics:this.allVisiblePolylines,requestUpdateCallback:()=>this.requestUpdate(),container:new b.Z(this.view.featuresTilingScheme)}),this.container.addChild(this._polylinesView.container),this._pointsView=new v.Z({view:this.view,graphics:this.allVisiblePoints,requestUpdateCallback:()=>this.requestUpdate(),container:new b.Z(this.view.featuresTilingScheme)}),this.container.addChild(this._pointsView.container),this.addAttachHandles([this.allVisibleMapImages.on("change",(e=>{e.added.forEach((e=>this._addMapImage(e))),e.removed.forEach((e=>this._removeMapImage(e)))})),(0,o.YP)((()=>this.layer.visibleSublayers),(e=>{for(const[e,t]of this._kmlVisualData.allSublayers)t.visibility=0;for(const t of e){const e=this._kmlVisualData.allSublayers.get(t.id);e&&(e.visibility=1)}this._refreshCollections()}))]),this._updatingHandles.addPromise(this._fetchService(this._fetchController.signal)),this._imageReprojector=new k}detach(){this._fetchController=(0,a.IM)(this._fetchController),this._mapImageContainer.removeAllChildren(),this.container.removeAllChildren(),this._bitmapIndex.clear(),this._polygonsView=(0,a.SC)(this._polygonsView),this._polylinesView=(0,a.SC)(this._polylinesView),this._pointsView=(0,a.SC)(this._pointsView),this._imageReprojector=(0,a.SC)(this._imageReprojector)}moveStart(){}viewChange(){this._polygonsView.viewChange(),this._polylinesView.viewChange(),this._pointsView.viewChange()}moveEnd(){}isUpdating(){return this._pointsView.updating||this._polygonsView.updating||this._polylinesView.updating}_addMapImage(e){(this.view.spatialReference?.isWGS84||this.view.spatialReference?.isWebMercator)&&this._imageReprojector.loadAndReprojectBitmapData(e.href,c.Z.fromJSON(e.extent),this.view.spatialReference).then((t=>{const i=new m.eY(t.bitmapData);i.x=t.extent.xmin,i.y=t.extent.ymax,i.resolution=t.extent.width/t.bitmapData.width,i.rotation=e.rotation,this._mapImageContainer.addChild(i),this._bitmapIndex.set(e,i)}))}async _getViewDependentUrl(e,t){const{viewFormat:i,viewBoundScale:n,httpQuery:r}=e;if(null!=i){if(null==t)throw new Error("Loading this network link requires a view state.");let a;if(await(0,d.load)(),null!=n&&1!==n){const e=new c.Z(t.extent);e.expand(n),a=e}else a=t.extent;a=(0,d.project)(a,p.Z.WGS84);const o=(0,d.project)(a,p.Z.WebMercator),u=a.xmin,h=a.xmax,f=a.ymin,g=a.ymax,m=t.size[0]*t.pixelRatio,y=t.size[1]*t.pixelRatio,w=Math.max(o.width,o.height),b={"[bboxWest]":u.toString(),"[bboxEast]":h.toString(),"[bboxSouth]":f.toString(),"[bboxNorth]":g.toString(),"[lookatLon]":a.center.x.toString(),"[lookatLat]":a.center.y.toString(),"[lookatRange]":w.toString(),"[lookatTilt]":"0","[lookatHeading]":t.rotation.toString(),"[lookatTerrainLon]":a.center.x.toString(),"[lookatTerrainLat]":a.center.y.toString(),"[lookatTerrainAlt]":"0","[cameraLon]":a.center.x.toString(),"[cameraLat]":a.center.y.toString(),"[cameraAlt]":w.toString(),"[horizFov]":"60","[vertFov]":"60","[horizPixels]":m.toString(),"[vertPixels]":y.toString(),"[terrainEnabled]":"0","[clientVersion]":s.i8,"[kmlVersion]":"2.2","[clientName]":"ArcGIS API for JavaScript","[language]":"en-US"},v=e=>{for(const t in e){let i;for(i in b)e[t]=e[t].replace(i,b[i])}},x=(0,l.u0)(i);v(x);let S={};null!=r&&(S=(0,l.u0)(r),v(S));const T=(0,_.en)(e.href);return T.query={...T.query,...x,...S},`${T.path}?${(0,l.B7)(x)}`}return e.href}async _fetchService(e){const t=new B;await this._loadVisualData(this.layer.url,t,e),this._kmlVisualData=t,this._refreshCollections()}_refreshCollections(){this.allVisiblePoints.removeAll(),this.allVisiblePolylines.removeAll(),this.allVisiblePolygons.removeAll(),this.allVisibleMapImages.removeAll(),this.allVisiblePoints.addMany(this._kmlVisualData.allPoints.filter((e=>this._isSublayerVisible(e.sublayerId))).map((({item:e})=>e))),this.allVisiblePolylines.addMany(this._kmlVisualData.allPolylines.filter((e=>this._isSublayerVisible(e.sublayerId))).map((({item:e})=>e))),this.allVisiblePolygons.addMany(this._kmlVisualData.allPolygons.filter((e=>this._isSublayerVisible(e.sublayerId))).map((({item:e})=>e))),this.allVisibleMapImages.addMany(this._kmlVisualData.allMapImages.filter((e=>this._isSublayerVisible(e.sublayerId))).map((({item:e})=>e)))}_isSublayerVisible(e){const t=this._kmlVisualData.allSublayers.get(e);return!!t?.visibility&&(-1===t.parentFolderId||this._isSublayerVisible(t.parentFolderId))}_loadVisualData(e,t,i){return this._fetchParsedKML(e,i).then((async e=>{for(const n of e.sublayers){t.allSublayers.set(n.id,n);const e=n.points?await(0,f.Yu)(n.points):[],s=n.polylines?await(0,f.Yu)(n.polylines):[],r=n.polygons?await(0,f.Yu)(n.polygons):[],a=n.mapImages||[];if(t.allPoints.push(...e.map((e=>({item:e,sublayerId:n.id})))),t.allPolylines.push(...s.map((e=>({item:e,sublayerId:n.id})))),t.allPolygons.push(...r.map((e=>({item:e,sublayerId:n.id})))),t.allMapImages.push(...a.map((e=>({item:e,sublayerId:n.id})))),n.networkLink){const e=await this._getViewDependentUrl(n.networkLink,this.view.state);await this._loadVisualData(e,t,i)}}}))}_fetchParsedKML(e,t){return(0,f.CS)(e,this.layer.spatialReference,this.layer.refreshInterval,t).then((e=>(0,f.Cw)(e.data)))}_removeMapImage(e){const t=this._bitmapIndex.get(e);t&&(this._mapImageContainer.removeChild(t),this._bitmapIndex.delete(e))}};(0,n._)([(0,u.Cb)()],U.prototype,"_pointsView",void 0),(0,n._)([(0,u.Cb)()],U.prototype,"_polylinesView",void 0),(0,n._)([(0,u.Cb)()],U.prototype,"_polygonsView",void 0),(0,n._)([(0,u.Cb)()],U.prototype,"updating",void 0),U=(0,n._)([(0,h.j)("esri.views.2d.layers.KMLLayerView2D")],U);const L=U},66878:function(e,t,i){i.d(t,{y:function(){return w}});var n=i(36663),s=i(6865),r=i(58811),a=i(70375),o=i(76868),l=i(81977),u=(i(39994),i(13802),i(4157),i(40266)),h=i(68577),c=i(10530),d=i(98114),p=i(55755),f=i(88723),_=i(96294);let g=class extends _.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,n._)([(0,l.Cb)({type:[[[Number]]],json:{write:!0}})],g.prototype,"path",void 0),g=(0,n._)([(0,u.j)("esri.views.layers.support.Path")],g);const m=g,y=s.Z.ofType({key:"type",base:null,typeMap:{rect:p.Z,path:m,geometry:f.Z}}),w=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new y,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new a.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new c.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,o.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),o.tX),(0,o.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),o.tX),(0,o.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),o.tX),(0,o.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),o.tX),(0,o.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),o.tX),(0,o.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),o.tX),(0,o.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),o.tX),(0,o.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),o.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:i,maxScale:n}=t;return(0,h.o2)(e,i,n)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,i=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),i&&(e.outsideScaleRange=i),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,n._)([(0,l.Cb)()],t.prototype,"attached",void 0),(0,n._)([(0,l.Cb)({type:y,set(e){const t=(0,r.Z)(e,this._get("clips"),y);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,n._)([(0,l.Cb)()],t.prototype,"container",void 0),(0,n._)([(0,l.Cb)()],t.prototype,"moving",void 0),(0,n._)([(0,l.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,n._)([(0,l.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,n._)([(0,l.Cb)()],t.prototype,"updateRequested",void 0),(0,n._)([(0,l.Cb)()],t.prototype,"updateSuspended",null),(0,n._)([(0,l.Cb)()],t.prototype,"updating",null),(0,n._)([(0,l.Cb)()],t.prototype,"view",void 0),(0,n._)([(0,l.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,n._)([(0,l.Cb)({type:d.Z})],t.prototype,"highlightOptions",void 0),t=(0,n._)([(0,u.j)("esri.views.2d.layers.LayerView2D")],t),t}},23410:function(e,t,i){i.d(t,{H:function(){return s},K:function(){return n}});const n=class{};function s(e,...t){let i="";for(let n=0;n{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";o.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,l.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,n._)([(0,h.Cb)()],p.prototype,"fullOpacity",null),(0,n._)([(0,h.Cb)()],p.prototype,"layer",void 0),(0,n._)([(0,h.Cb)()],p.prototype,"parent",void 0),(0,n._)([(0,h.Cb)({readOnly:!0})],p.prototype,"suspended",null),(0,n._)([(0,h.Cb)({readOnly:!0})],p.prototype,"suspendInfo",null),(0,n._)([(0,h.Cb)({readOnly:!0})],p.prototype,"legendEnabled",null),(0,n._)([(0,h.Cb)({type:Boolean,readOnly:!0})],p.prototype,"updating",null),(0,n._)([(0,h.Cb)({readOnly:!0})],p.prototype,"updatingProgress",null),(0,n._)([(0,h.Cb)()],p.prototype,"visible",null),(0,n._)([(0,h.Cb)()],p.prototype,"view",void 0),p=(0,n._)([(0,c.j)("esri.views.layers.LayerView")],p);const f=p},88723:function(e,t,i){i.d(t,{Z:function(){return f}});var n,s=i(36663),r=(i(91957),i(81977)),a=(i(39994),i(13802),i(4157),i(40266)),o=i(20031),l=i(53736),u=i(96294),h=i(91772),c=i(89542);const d={base:o.Z,key:"type",typeMap:{extent:h.Z,polygon:c.Z}};let p=n=class extends u.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new n({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,s._)([(0,r.Cb)({types:d,json:{read:l.im,write:!0}})],p.prototype,"geometry",void 0),p=n=(0,s._)([(0,a.j)("esri.views.layers.support.Geometry")],p);const f=p},31873:function(e,t,i){i.d(t,{G:function(){return s}});var n=i(61681);class s{constructor(){this._result=!1}dispose(){this._program=(0,n.M2)(this._program)}get result(){return null!=this._program&&(this._result=this._test(this._program),this.dispose()),this._result}}},33679:function(e,t,i){i.d(t,{mO:function(){return r}});class n{constructor(e,t,i,n,s,r,a,o,l){this.createQuery=e,this.deleteQuery=t,this.resultAvailable=i,this.getResult=n,this.disjoint=s,this.beginTimeElapsed=r,this.endTimeElapsed=a,this.createTimestamp=o,this.timestampBits=l}}let s=!1;function r(e,t){if(t.disjointTimerQuery)return null;let i=e.getExtension("EXT_disjoint_timer_query_webgl2");return i?new n((()=>e.createQuery()),(t=>{e.deleteQuery(t),s=!1}),(t=>e.getQueryParameter(t,e.QUERY_RESULT_AVAILABLE)),(t=>e.getQueryParameter(t,e.QUERY_RESULT)),(()=>e.getParameter(i.GPU_DISJOINT_EXT)),(t=>{s||(s=!0,e.beginQuery(i.TIME_ELAPSED_EXT,t))}),(()=>{e.endQuery(i.TIME_ELAPSED_EXT),s=!1}),(e=>i.queryCounterEXT(e,i.TIMESTAMP_EXT)),(()=>e.getQuery(i.TIMESTAMP_EXT,i.QUERY_COUNTER_BITS_EXT))):(i=e.getExtension("EXT_disjoint_timer_query"),i?new n((()=>i.createQueryEXT()),(e=>{i.deleteQueryEXT(e),s=!1}),(e=>i.getQueryObjectEXT(e,i.QUERY_RESULT_AVAILABLE_EXT)),(e=>i.getQueryObjectEXT(e,i.QUERY_RESULT_EXT)),(()=>e.getParameter(i.GPU_DISJOINT_EXT)),(e=>{s||(s=!0,i.beginQueryEXT(i.TIME_ELAPSED_EXT,e))}),(()=>{i.endQueryEXT(i.TIME_ELAPSED_EXT),s=!1}),(e=>i.queryCounterEXT(e,i.TIMESTAMP_EXT)),(()=>i.getQueryEXT(i.TIMESTAMP_EXT,i.QUERY_COUNTER_BITS_EXT))):null)}},10054:function(e,t,i){i.d(t,{Br:function(){return l},Fm:function(){return f},N9:function(){return g},RA:function(){return m},Tc:function(){return h},Ue:function(){return c},iC:function(){return u},s9:function(){return o},v:function(){return _},xW:function(){return p},zS:function(){return d}});var n=i(84164),s=i(91907),r=i(71449),a=i(80479);function o(e,t,i="nearest",n=!1){const o=!(n&&"u8"===t.pixelType),l=o?s.Br.FLOAT:s.Br.UNSIGNED_BYTE,u=null==t.pixels||0===t.pixels.length?null:o?t.getAsRGBAFloat():t.getAsRGBA(),h=e.capabilities.textureFloat?.textureFloatLinear,c=new a.X;return c.width=t.width,c.height=t.height,c.internalFormat=o?s.lP.RGBA32F:s.VI.RGBA,c.samplingMode=!h||"bilinear"!==i&&"cubic"!==i?s.cw.NEAREST:s.cw.LINEAR,c.dataType=l,c.wrapMode=s.e8.CLAMP_TO_EDGE,new r.x(e,c,u)}function l(e,t){const{spacing:i,offsets:n,coefficients:o,size:[l,u]}=t,h=i[0]>1,c=new a.X;c.width=h?4*l:l,c.height=u,c.internalFormat=s.lP.RGBA32F,c.dataType=s.Br.FLOAT,c.samplingMode=s.cw.NEAREST,c.wrapMode=s.e8.CLAMP_TO_EDGE;const d=new Float32Array(h?l*u*16:2*n.length);if(h&&null!=o)for(let e=0,t=0;e{const r=t.get(n)||t.get(n+"[0]");r&&function(e,t,i,n){if(null===n||null==i)return!1;const{info:r}=n;switch(r.type){case s.Se.FLOAT:r.size>1?e.setUniform1fv(t,i):e.setUniform1f(t,i);break;case s.Se.FLOAT_VEC2:e.setUniform2fv(t,i);break;case s.Se.FLOAT_VEC3:e.setUniform3fv(t,i);break;case s.Se.FLOAT_VEC4:e.setUniform4fv(t,i);break;case s.Se.FLOAT_MAT3:e.setUniformMatrix3fv(t,i);break;case s.Se.FLOAT_MAT4:e.setUniformMatrix4fv(t,i);break;case s.Se.INT:r.size>1?e.setUniform1iv(t,i):e.setUniform1i(t,i);break;case s.Se.BOOL:e.setUniform1i(t,i?1:0);break;case s.Se.INT_VEC2:case s.Se.BOOL_VEC2:e.setUniform2iv(t,i);break;case s.Se.INT_VEC3:case s.Se.BOOL_VEC3:e.setUniform3iv(t,i);break;case s.Se.INT_VEC4:case s.Se.BOOL_VEC4:e.setUniform4iv(t,i);break;default:return!1}}(e,n,i[n],r)}))}function m(e,t,i,n){i.length===n.length&&(n.some((e=>null==e))||i.some((e=>null==e))||i.forEach(((i,s)=>{t.setUniform1i(i,s),e.bindTexture(n[s],s)})))}},17346:function(e,t,i){i.d(t,{BK:function(){return c},LZ:function(){return h},if:function(){return r},jp:function(){return q},sm:function(){return v},wK:function(){return a},zp:function(){return u}});var n=i(70984),s=i(91907);function r(e,t,i=s.db.ADD,n=[0,0,0,0]){return{srcRgb:e,srcAlpha:e,dstRgb:t,dstAlpha:t,opRgb:i,opAlpha:i,color:{r:n[0],g:n[1],b:n[2],a:n[3]}}}function a(e,t,i,n,r=s.db.ADD,a=s.db.ADD,o=[0,0,0,0]){return{srcRgb:e,srcAlpha:t,dstRgb:i,dstAlpha:n,opRgb:r,opAlpha:a,color:{r:o[0],g:o[1],b:o[2],a:o[3]}}}const o={face:s.LR.BACK,mode:s.Wf.CCW},l={face:s.LR.FRONT,mode:s.Wf.CCW},u=e=>e===n.Vr.Back?o:e===n.Vr.Front?l:null,h={zNear:0,zFar:1},c={r:!0,g:!0,b:!0,a:!0};function d(e){return T.intern(e)}function p(e){return C.intern(e)}function f(e){return A.intern(e)}function _(e){return O.intern(e)}function g(e){return M.intern(e)}function m(e){return D.intern(e)}function y(e){return B.intern(e)}function w(e){return L.intern(e)}function b(e){return F.intern(e)}function v(e){return W.intern(e)}class x{constructor(e,t){this._makeKey=e,this._makeRef=t,this._interns=new Map}intern(e){if(!e)return null;const t=this._makeKey(e),i=this._interns;return i.has(t)||i.set(t,this._makeRef(e)),i.get(t)??null}}function S(e){return"["+e.join(",")+"]"}const T=new x(I,(e=>({__tag:"Blending",...e})));function I(e){return e?S([e.srcRgb,e.srcAlpha,e.dstRgb,e.dstAlpha,e.opRgb,e.opAlpha,e.color.r,e.color.g,e.color.b,e.color.a]):null}const C=new x(E,(e=>({__tag:"Culling",...e})));function E(e){return e?S([e.face,e.mode]):null}const A=new x(R,(e=>({__tag:"PolygonOffset",...e})));function R(e){return e?S([e.factor,e.units]):null}const O=new x(P,(e=>({__tag:"DepthTest",...e})));function P(e){return e?S([e.func]):null}const M=new x(V,(e=>({__tag:"StencilTest",...e})));function V(e){return e?S([e.function.func,e.function.ref,e.function.mask,e.operation.fail,e.operation.zFail,e.operation.zPass]):null}const D=new x(k,(e=>({__tag:"DepthWrite",...e})));function k(e){return e?S([e.zNear,e.zFar]):null}const B=new x(U,(e=>({__tag:"ColorWrite",...e})));function U(e){return e?S([e.r,e.g,e.b,e.a]):null}const L=new x(N,(e=>({__tag:"StencilWrite",...e})));function N(e){return e?S([e.mask]):null}const F=new x(G,(e=>({__tag:"DrawBuffers",...e})));function G(e){return e?S(e.buffers):null}const W=new x((function(e){return e?S([I(e.blending),E(e.culling),R(e.polygonOffset),P(e.depthTest),V(e.stencilTest),k(e.depthWrite),U(e.colorWrite),N(e.stencilWrite),G(e.drawBuffers)]):null}),(e=>({blending:d(e.blending),culling:p(e.culling),polygonOffset:f(e.polygonOffset),depthTest:_(e.depthTest),stencilTest:g(e.stencilTest),depthWrite:m(e.depthWrite),colorWrite:y(e.colorWrite),stencilWrite:w(e.stencilWrite),drawBuffers:b(e.drawBuffers)})));class q{constructor(e){this._pipelineInvalid=!0,this._blendingInvalid=!0,this._cullingInvalid=!0,this._polygonOffsetInvalid=!0,this._depthTestInvalid=!0,this._stencilTestInvalid=!0,this._depthWriteInvalid=!0,this._colorWriteInvalid=!0,this._stencilWriteInvalid=!0,this._drawBuffersInvalid=!0,this._stateSetters=e}setPipeline(e){(this._pipelineInvalid||e!==this._pipeline)&&(this._setBlending(e.blending),this._setCulling(e.culling),this._setPolygonOffset(e.polygonOffset),this._setDepthTest(e.depthTest),this._setStencilTest(e.stencilTest),this._setDepthWrite(e.depthWrite),this._setColorWrite(e.colorWrite),this._setStencilWrite(e.stencilWrite),this._setDrawBuffers(e.drawBuffers),this._pipeline=e),this._pipelineInvalid=!1}invalidateBlending(){this._blendingInvalid=!0,this._pipelineInvalid=!0}invalidateCulling(){this._cullingInvalid=!0,this._pipelineInvalid=!0}invalidatePolygonOffset(){this._polygonOffsetInvalid=!0,this._pipelineInvalid=!0}invalidateDepthTest(){this._depthTestInvalid=!0,this._pipelineInvalid=!0}invalidateStencilTest(){this._stencilTestInvalid=!0,this._pipelineInvalid=!0}invalidateDepthWrite(){this._depthWriteInvalid=!0,this._pipelineInvalid=!0}invalidateColorWrite(){this._colorWriteInvalid=!0,this._pipelineInvalid=!0}invalidateStencilWrite(){this._stencilTestInvalid=!0,this._pipelineInvalid=!0}invalidateDrawBuffers(){this._drawBuffersInvalid=!0,this._pipelineInvalid=!0}_setBlending(e){this._blending=this._setSubState(e,this._blending,this._blendingInvalid,this._stateSetters.setBlending),this._blendingInvalid=!1}_setCulling(e){this._culling=this._setSubState(e,this._culling,this._cullingInvalid,this._stateSetters.setCulling),this._cullingInvalid=!1}_setPolygonOffset(e){this._polygonOffset=this._setSubState(e,this._polygonOffset,this._polygonOffsetInvalid,this._stateSetters.setPolygonOffset),this._polygonOffsetInvalid=!1}_setDepthTest(e){this._depthTest=this._setSubState(e,this._depthTest,this._depthTestInvalid,this._stateSetters.setDepthTest),this._depthTestInvalid=!1}_setStencilTest(e){this._stencilTest=this._setSubState(e,this._stencilTest,this._stencilTestInvalid,this._stateSetters.setStencilTest),this._stencilTestInvalid=!1}_setDepthWrite(e){this._depthWrite=this._setSubState(e,this._depthWrite,this._depthWriteInvalid,this._stateSetters.setDepthWrite),this._depthWriteInvalid=!1}_setColorWrite(e){this._colorWrite=this._setSubState(e,this._colorWrite,this._colorWriteInvalid,this._stateSetters.setColorWrite),this._colorWriteInvalid=!1}_setStencilWrite(e){this._stencilWrite=this._setSubState(e,this._stencilWrite,this._stencilWriteInvalid,this._stateSetters.setStencilWrite),this._stencilTestInvalid=!1}_setDrawBuffers(e){this._drawBuffers=this._setSubState(e,this._drawBuffers,this._drawBuffersInvalid,this._stateSetters.setDrawBuffers),this._drawBuffersInvalid=!1}_setSubState(e,t,i,n){return(i||e!==t)&&(n(e),this._pipelineInvalid=!0),e}}},61581:function(e,t,i){i.d(t,{d:function(){return c}});var n=i(27894),s=i(78951),r=i(91907),a=i(18567),o=i(71449),l=i(80479),u=i(29620),h=i(31873);class c extends h.G{constructor(e){super(),this._rctx=e;this._program=e.programCache.acquire("\n precision highp float;\n\n attribute vec2 a_pos;\n varying vec2 v_uv;\n\n void main() {\n v_uv = a_pos;\n gl_Position = vec4(a_pos * 2.0 - 1.0, 0.0, 1.0);\n }\n ","\n precision highp float;\n\n varying vec2 v_uv;\n\n uniform sampler2D u_texture;\n\n void main() {\n gl_FragColor = texture2D(u_texture, v_uv);\n }\n ",new Map([["a_pos",0]]))}dispose(){super.dispose()}_test(e){const t=this._rctx;if(!t.gl)return e.dispose(),!0;const i=new l.X(1);i.wrapMode=r.e8.CLAMP_TO_EDGE,i.samplingMode=r.cw.NEAREST;const h=new a.X(t,i),c=s.f.createVertex(t,r.l1.STATIC_DRAW,new Uint16Array([0,0,1,0,0,1,1,1])),p=new u.U(t,new Map([["a_pos",0]]),n.cD,{geometry:c}),f=new l.X;f.samplingMode=r.cw.LINEAR,f.wrapMode=r.e8.CLAMP_TO_EDGE;const _=new o.x(t,f,d);t.useProgram(e),t.bindTexture(_,0),e.setUniform1i("u_texture",0);const g=t.getBoundFramebufferObject(),{x:m,y:y,width:w,height:b}=t.getViewport();t.bindFramebuffer(h),t.setViewport(0,0,1,1),t.setClearColor(0,0,0,0),t.setBlendingEnabled(!1),t.clearSafe(r.lk.COLOR_BUFFER_BIT),t.bindVAO(p),t.drawArrays(r.MX.TRIANGLE_STRIP,0,4);const v=new Uint8Array(4);return h.readPixels(0,0,1,1,r.VI.RGBA,r.Br.UNSIGNED_BYTE,v),p.dispose(),h.dispose(),_.dispose(),t.setViewport(m,y,w,b),t.bindFramebuffer(g),255!==v[0]}}const d=new Image;d.src="data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='5' height='5' version='1.1' viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='5' height='5' fill='%23f00' fill-opacity='.5'/%3E%3C/svg%3E%0A",d.width=5,d.height=5,d.decode()}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2601.7d8824939aa4518d1d50.js b/docs/sentinel1-explorer/2601.7d8824939aa4518d1d50.js new file mode 100644 index 00000000..f476c5fd --- /dev/null +++ b/docs/sentinel1-explorer/2601.7d8824939aa4518d1d50.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2601],{2601:function(e,_,r){r.r(_),r.d(_,{default:function(){return a}});const a={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"e.Kr.",_era_bc:"f.Kr.",A:"a",P:"p",AM:"AM",PM:"PM","A.M.":"AM","P.M.":"PM",January:"januar",February:"februar",March:"marts",April:"april",May:"maj",June:"juni",July:"juli",August:"august",September:"september",October:"oktober",November:"november",December:"december",Jan:"jan.",Feb:"feb.",Mar:"mar.",Apr:"apr.","May(short)":"maj",Jun:"jun.",Jul:"jul.",Aug:"aug.",Sep:"sep.",Oct:"okt.",Nov:"nov.",Dec:"dec.",Sunday:"søndag",Monday:"mandag",Tuesday:"tirsdag",Wednesday:"onsdag",Thursday:"torsdag",Friday:"fredag",Saturday:"lørdag",Sun:"søn.",Mon:"man.",Tue:"tir.",Wed:"ons.",Thu:"tor.",Fri:"fre.",Sat:"lør.",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Zoom",Play:"Afspil",Stop:"Stop",Legend:"Signaturforklaring","Press ENTER to toggle":"",Loading:"Indlæser",Home:"Hjem",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Udskriv",Image:"Billede",Data:"Data",Print:"Udskriv","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Fra %1 til %2","From %1":"Fra %1","To %1":"Til %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2688.059dec6d363894d4235f.js b/docs/sentinel1-explorer/2688.059dec6d363894d4235f.js new file mode 100644 index 00000000..3b33d842 --- /dev/null +++ b/docs/sentinel1-explorer/2688.059dec6d363894d4235f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2688,372],{22688:function(e,t,r){r.r(t),r.d(t,{createArcadeExecutor:function(){return Z},createArcadeProfile:function(){return U}});var n=r(80085),s=r(78053),a=r(58830),i=r(70375),o=r(67134),c=r(19980),u=r(62717),l=r(12926),m=r(93968),d=r(51211),h=r(30879);let f=null;function y(e,t,r,n={}){const s=t.elementType,i="value",o="array"===s.type?[{name:i,type:s.type,elementType:s.elementType}]:"dictionary"===s.type?[{name:i,type:s.type,properties:s.properties}]:[{name:i,type:s.type}];return new a.Z(e.map((e=>{const t={};return g(t,o,{[i]:e},r,n),t[i]})))}function p(e,t,r={}){const n=e instanceof d.Z?new l.default({source:e.features,geometryType:e.geometryType,fields:e.fields,spatialReference:e.spatialReference}):e;return t.constructFeatureSet(n,r.spatialReference,null,!0,r.lruCache,r.interceptor)}function T(e,t,r={}){const{spatialReference:n,interceptor:s,lruCache:a}=r;return"string"==typeof e?t.createFeatureSetCollectionFromService(e,n,a,s):t.createFeatureSetCollectionFromMap(e,n,a,s)}function S(e,t,r,n={}){const s={};return g(s,t.properties,e,r,n),new f.Dictionary(s)}function g(e,t,r,n,a={}){const i={};for(const e of Object.keys(r))i[e.toLowerCase()]=r[e];for(const r of t){const t=r.name.toLowerCase();if(a.variablesPreProcessed)e[t]=i[t];else switch(r.type){case"array":{const s=i[t];e[t]=null==s?null:y(s,r,n,a);break}case"feature":{const r=i[t];e[t]=null==r?null:f.Feature.createFromGraphic(r,a?.timeZone);break}case"featureSet":{const r=i[t];e[t]=null==r?null:n?p(r,n,a):null;break}case"featureSetCollection":{const r=i[t];e[t]=null==r?null:n?T(r,n,a):null;break}case"dictionary":{const s=i[t];e[t]=null==s?null:S(s,r,n,a);break}case"date":{const r=i[t];e[t]=r?r instanceof s.iG?r:a?.timeZone?s.iG.dateJSAndZoneToArcadeDate(r,a?.timeZone):s.iG.dateJSToArcadeDate(r):null;break}case"dateOnly":{const r=i[t];e[t]=r?r instanceof c.u?r:c.u.fromReader(r):null;break}case"time":{const r=i[t];e[t]=r?r instanceof u.n?r:u.n.fromReader(r):null;break}case"knowledgeGraph":case"geometry":case"boolean":case"text":case"number":e[t]=i[t]}}}function w(e,t){for(const r of e)t.push(r),"dictionary"===r.type&&w(r.properties,t);return t}function D(e,t,r,n,s){const{spatialReference:a,interceptor:i,lruCache:o,console:c,abortSignal:u,timeZone:l,services:d={portal:m.Z.getDefault()}}=r,h={vars:{},spatialReference:a,interceptor:i,timeZone:l,lrucache:o,useAsync:s,services:d,console:c,abortSignal:u};return t?(g(h.vars,e.variables,t,n,r),h):h}function C(e,t){switch(t.getArcadeType(e)){case"number":case"text":case"boolean":case"point":case"polygon":case"polyline":case"multipoint":case"extent":return e;case"date":return e.toJSDate();case"time":case"dateOnly":return e.toString();case"feature":{const t=(e.type,e),r="geometry"in t?t.geometry():null,s="readAttributes"in t?t.readAttributes():t.attributes;return new n.Z({geometry:r,attributes:s})}case"dictionary":{const r=e,n=r.attributes,s={};for(const e of Object.keys(n))s[e]=C(r.field(e),t);return s}case"array":return("toArray"in e?e.toArray():e).map((e=>C(e,t)))}return e}const k={variables:[{name:"$feature",type:"feature"},{name:"$layer",type:"featureSet"},{name:"$datastore",type:"featureSetCollection"},{name:"$map",type:"featureSetCollection"},{name:"$userInput",type:"geometry"},{name:"$graph",type:"knowledgeGraph"}]},b={variables:[{name:"$feature",type:"feature"},{name:"$aggregatedFeatures",type:"featureSet"}]},_=new Map([["form-constraint",{variables:[{name:"$feature",type:"feature"}]}],["feature-z",{variables:[{name:"$feature",type:"feature"}]}],["field-calculation",{variables:[{name:"$feature",type:"feature"},{name:"$datastore",type:"featureSetCollection"}]}],["form-calculation",{variables:[{name:"$feature",type:"feature"},{name:"$originalFeature",type:"feature"},{name:"$layer",type:"featureSet"},{name:"$featureSet",type:"featureSet"},{name:"$datastore",type:"featureSetCollection"},{name:"$map",type:"featureSetCollection"},{name:"$editContext",type:"dictionary",properties:[{name:"editType",type:"text"}]}]}],["labeling",{variables:[{name:"$feature",type:"feature"}]}],["popup",k],["popup-element",k],["feature-reduction-popup",b],["feature-reduction-popup-element",b],["visualization",{variables:[{name:"$feature",type:"feature"},{name:"$view",type:"dictionary",properties:[{name:"scale",type:"number"}]}]}]]);function U(e){const t=_.get(e);if(!t){const t=Array.from(_.keys()).map((e=>`'${e}'`)).join(", ");throw new i.Z("createArcadeProfile:invalid-profile-name",`Invalid profile name '${e}'. You must specify one of the following values: ${t}`)}return(0,o.d9)(t)}async function Z(e,t,r={}){f||(f=await(0,h.LC)());const{arcade:n,arcadeUtils:s}=f,{loadScriptDependencies:a,referencesMember:o,scriptIsAsync:c}=n,u=w(t.variables,[]),l=u.filter((e=>"featureSet"===e.type||"featureSetCollection"===e.type)).map((e=>e.name.toLowerCase())),m=n.parseScript(e,l);if(!m)throw new i.Z("arcade:invalid-script","Unable to create SyntaxTree");const d=s.extractFieldNames(m),y=n.scriptTouchesGeometry(m),p=u.map((e=>e.name.toLowerCase())).filter((e=>o(m,e))),T=c(m,l);await a(m,T,l);const S={vars:{},spatialReference:null,useAsync:T};for(const e of p)S.vars[e]="any";const{lruCache:g}=r,k=n.compileScript(m,S),b=n.featureSetUtils(),{services:_}=r;return{execute:(e,r={})=>{if(T)throw new i.Z("arcade:invalid-execution-mode","Cannot execute the script in synchronous mode");const n=k(D(t,e,{lruCache:g,...r},b,T));return r.rawOutput?n:C(n,s)},executeAsync:async(e,r={})=>{const n=await k(D(t,e,{lruCache:g,services:_,...r},b,T));return r.rawOutput?n:C(n,s)},isAsync:T,variablesUsed:p,fieldsUsed:d,geometryUsed:y,syntaxTree:m}}},78053:function(e,t,r){r.d(t,{Qn:function(){return d},iG:function(){return m}});var n,s=r(21130),a=r(46576),i=r(17126);(n||(n={})).TimeZoneNotRecognized="TimeZoneNotRecognized";const o={[n.TimeZoneNotRecognized]:"Timezone identifier has not been recognized."};class c extends Error{constructor(e,t){super((0,s.gx)(o[e],t)),this.declaredRootClass="esri.arcade.arcadedate.dateerror",Error.captureStackTrace&&Error.captureStackTrace(this,c)}}function u(e,t,r){return er?e-r:0}function l(e,t,r){return er?r:e}class m{constructor(e){this._date=e,this.declaredRootClass="esri.arcade.arcadedate"}static fromParts(e=0,t=1,r=1,n=0,s=0,a=0,o=0,c){if(isNaN(e)||isNaN(t)||isNaN(r)||isNaN(n)||isNaN(s)||isNaN(a)||isNaN(o))return null;const h=i.ou.local(e,t).daysInMonth;let f=i.ou.fromObject({day:l(r,1,h),year:e,month:l(t,1,12),hour:l(n,0,23),minute:l(s,0,59),second:l(a,0,59),millisecond:l(o,0,999)},{zone:d(c)});return f=f.plus({months:u(t,1,12),days:u(r,1,h),hours:u(n,0,23),minutes:u(s,0,59),seconds:u(a,0,59),milliseconds:u(o,0,999)}),new m(f)}static get systemTimeZoneCanonicalName(){return Intl.DateTimeFormat().resolvedOptions().timeZone??"system"}static arcadeDateAndZoneToArcadeDate(e,t){const r=d(t);return e.isUnknownTimeZone||r===a.yV.instance?m.fromParts(e.year,e.monthJS+1,e.day,e.hour,e.minute,e.second,e.millisecond,r):new m(e._date.setZone(r))}static dateJSToArcadeDate(e){return new m(i.ou.fromJSDate(e,{zone:"system"}))}static dateJSAndZoneToArcadeDate(e,t="system"){const r=d(t);return new m(i.ou.fromJSDate(e,{zone:r}))}static unknownEpochToArcadeDate(e){return new m(i.ou.fromMillis(e,{zone:a.yV.instance}))}static unknownDateJSToArcadeDate(e){return new m(i.ou.fromMillis(e.getTime(),{zone:a.yV.instance}))}static epochToArcadeDate(e,t="system"){const r=d(t);return new m(i.ou.fromMillis(e,{zone:r}))}static dateTimeToArcadeDate(e){return new m(e)}clone(){return new m(this._date)}changeTimeZone(e){const t=d(e);return m.dateTimeToArcadeDate(this._date.setZone(t))}static dateTimeAndZoneToArcadeDate(e,t){const r=d(t);return e.zone===a.yV.instance||r===a.yV.instance?m.fromParts(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond,r):new m(e.setZone(r))}static nowToArcadeDate(e){const t=d(e);return new m(i.ou.fromJSDate(new Date,{zone:t}))}static nowUTCToArcadeDate(){return new m(i.ou.utc())}get isSystem(){return"system"===this.timeZone||this.timeZone===m.systemTimeZoneCanonicalName}equals(e){return this.isSystem&&e.isSystem?this.toNumber()===e.toNumber():this.isUnknownTimeZone===e.isUnknownTimeZone&&this._date.equals(e._date)}get isUnknownTimeZone(){return this._date.zone===a.yV.instance}get isValid(){return this._date.isValid}get hour(){return this._date.hour}get second(){return this._date.second}get day(){return this._date.day}get dayOfWeekISO(){return this._date.weekday}get dayOfWeekJS(){let e=this._date.weekday;return e>6&&(e=0),e}get millisecond(){return this._date.millisecond}get monthISO(){return this._date.month}get weekISO(){return this._date.weekNumber}get yearISO(){return this._date.weekYear}get monthJS(){return this._date.month-1}get year(){return this._date.year}get minute(){return this._date.minute}get zone(){return this._date.zone}get timeZoneOffset(){return this.isUnknownTimeZone?0:this._date.offset}get timeZone(){if(this.isUnknownTimeZone)return"unknown";if("system"===this._date.zone.type)return"system";const e=this.zone;return"fixed"===e.type?0===e.fixed?"UTC":e.formatOffset(0,"short"):e.name}stringify(){return JSON.stringify(this.toJSDate())}plus(e){return new m(this._date.plus(e))}diff(e,t="milliseconds"){return this._date.diff(e._date,t)[t]}toISODate(){return this._date.toISODate()}toISOString(e){return e?this._date.toISO({suppressMilliseconds:!0,includeOffset:!this.isUnknownTimeZone}):this._date.toISO({includeOffset:!this.isUnknownTimeZone})}toISOTime(e,t){return this._date.toISOTime({suppressMilliseconds:e,includeOffset:t&&!this.isUnknownTimeZone})}toFormat(e,t){return this.isUnknownTimeZone&&(e=e.replaceAll("Z","")),this._date.toFormat(e,t)}toJSDate(){return this._date.toJSDate()}toSQLValue(){return this._date.toFormat("yyyy-LL-dd HH:mm:ss")}toSQLWithKeyword(){return`timestamp '${this.toSQLValue()}'`}toDateTime(){return this._date}toNumber(){return this._date.toMillis()}getTime(){return this._date.toMillis()}toUTC(){return new m(this._date.toUTC())}toLocal(){return new m(this._date.toLocal())}toString(){return this.toISOString(!0)}static fromReaderAsTimeStampOffset(e){if(!e)return null;const t=i.ou.fromISO(e,{setZone:!0});return new m(t)}}function d(e,t=!0){if(e instanceof i.ld)return e;if("system"===e.toLowerCase())return"system";if("utc"===e.toLowerCase())return"UTC";if("unknown"===e.toLowerCase())return a.yV.instance;if(/^[\+\-]?[0-9]{1,2}([:][0-9]{2})?$/.test(e)){const t=i.Qf.parseSpecifier("UTC"+(e.startsWith("+")||e.startsWith("-")?"":"+")+e);if(t)return t}const r=i.vF.create(e);if(!r.isValid){if(t)throw new c(n.TimeZoneNotRecognized);return null}return r}},58830:function(e,t,r){r.d(t,{Z:function(){return n}});class n{constructor(e=[]){this._elements=e}length(){return this._elements.length}get(e){return this._elements[e]}toArray(){const e=[];for(let t=0;t=2&&"["===n.slice(0,1)&&"]"===n.slice(-1)?t+=`'${n.slice(1,-1)}'`:t+=`'${n}'`}return t}class o{constructor(e,t,r){this._year=e,this._month=t,this._day=r,this.declaredRootClass="esri.core.sql.dateonly"}get month(){return this._month}get monthJS(){return this._month-1}get year(){return this._year}get day(){return this._day}get isValid(){return this.toDateTime("unknown").isValid}equals(e){return e instanceof o&&e.day===this.day&&e.month===this.month&&e.year===this.year}clone(){return new o(this._year,this._month,this._day)}toDateTime(e){return a.ou.fromObject({day:this.day,month:this.month,year:this.year},{zone:(0,n.Qn)(e)})}toDateTimeLuxon(e){return a.ou.fromObject({day:this.day,month:this.month,year:this.year},{zone:(0,n.Qn)(e)})}toString(){return`${this.year.toString().padStart(4,"0")}-${this.month.toString().padStart(2,"0")}-${this.day.toString().padStart(2,"0")}`}toFormat(e=null,t=!0){if(null===e||""===e)return this.toString();if(t&&(e=i(e)),!e)return"";const r=this.toDateTime("unknown");return n.iG.dateTimeToArcadeDate(r).toFormat(e,{locale:(0,s.Kd)(),numberingSystem:"latn"})}toArcadeDate(){const e=this.toDateTime("unknown");return n.iG.dateTimeToArcadeDate(e)}toNumber(){return this.toDateTime("unknown").toMillis()}toJSDate(){return this.toDateTime("unknown").toJSDate()}toStorageFormat(){return this.toFormat("yyyy-LL-dd",!1)}toSQLValue(){return this.toFormat("yyyy-LL-dd",!1)}toSQLWithKeyword(){return"date '"+this.toFormat("yyyy-LL-dd",!1)+"'"}plus(e,t){return o.fromDateTime(this.toUTCDateTime().plus({[e]:t}))}toUTCDateTime(){return a.ou.utc(this.year,this.month,this.day,0,0,0,0)}difference(e,t){switch(t.toLowerCase()){case"days":case"day":case"d":return this.toUTCDateTime().diff(e.toUTCDateTime(),"days").days;case"months":case"month":return this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months;case"minutes":case"minute":case"m":return"M"===t?this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months:this.toUTCDateTime().diff(e.toUTCDateTime(),"minutes").minutes;case"seconds":case"second":case"s":return this.toUTCDateTime().diff(e.toUTCDateTime(),"seconds").seconds;case"milliseconds":case"millisecond":case"ms":default:return this.toUTCDateTime().diff(e.toUTCDateTime(),"milliseconds").milliseconds;case"hours":case"hour":case"h":return this.toUTCDateTime().diff(e.toUTCDateTime(),"hours").hours;case"years":case"year":case"y":return this.toUTCDateTime().diff(e.toUTCDateTime(),"years").years}}static fromMilliseconds(e){const t=a.ou.fromMillis(e,{zone:a.Qf.utcInstance});return t.isValid?o.fromParts(t.year,t.month,t.day):null}static fromSeconds(e){const t=a.ou.fromSeconds(e,{zone:a.Qf.utcInstance});return t.isValid?o.fromParts(t.year,t.month,t.day):null}static fromReader(e){if(!e)return null;const t=e.split("-");return 3!==t.length?null:new o(parseInt(t[0],10),parseInt(t[1],10),parseInt(t[2],10))}static fromParts(e,t,r){const n=new o(e,t,r);return!1===n.isValid?null:n}static fromDateJS(e){return o.fromParts(e.getFullYear(),e.getMonth()+1,e.getDay())}static fromDateTime(e){return o.fromParts(e.year,e.month,e.day)}static fromSqlTimeStampOffset(e){return this.fromDateTime(e.toDateTime())}static fromString(e,t=null){if(""===e)return null;if(null===e)return null;const r=[];if(t)(t=i(t))&&r.push(t);else if(null===t||""===t){const t=a.ou.fromISO(e,{setZone:!0});return t.isValid?o.fromParts(t.year,t.month,t.day):null}for(const n of r){const r=a.ou.fromFormat(e,t??n);if(r.isValid)return new o(r.year,r.month,r.day)}return null}static fromNow(e="system"){const t=a.ou.fromJSDate(new Date).setZone((0,n.Qn)(e));return new o(t.year,t.month,t.day)}}},62717:function(e,t,r){r.d(t,{n:function(){return o}});var n=r(4080),s=r(8108),a=r(17126);function i(e){if(!e)return"";const t=/(a|A|hh?|HH?|mm?|ss?|SSS|S|.)/g;let r="";for(const n of e.match(t)||[])switch(n){case"SSS":case"m":case"mm":case"h":case"hh":case"H":case"HH":case"s":case"ss":r+=n;break;case"A":case"a":r+="a";break;default:r+=`'${n}'`}return r}class o{constructor(e,t,r,n){this._hour=e,this._minute=t,this._second=r,this._millisecond=n,this.declaredRootClass="esri.core.sql.timeonly"}get hour(){return this._hour}get minute(){return this._minute}get second(){return this._second}get millisecond(){return this._millisecond}equals(e){return e instanceof o&&e.hour===this.hour&&e.minute===this.minute&&e.second===this.second&&e.millisecond===this.millisecond}clone(){return new o(this.hour,this.minute,this.second,this.millisecond)}isValid(){return(0,n.U)(this.hour)&&(0,n.U)(this.minute)&&(0,n.U)(this.second)&&(0,n.U)(this.millisecond)&&this.hour>=0&&this.hour<24&&this.minute>=0&&this.minute<60&&this.second>=0&&this.second<60&&this.millisecond>=0&&this.millisecond<1e3}toString(){return`${this.hour.toString().padStart(2,"0")}:${this.minute.toString().padStart(2,"0")}:${this.second.toString().padStart(2,"0")}`+(this.millisecond>0?"."+this.millisecond.toString().padStart(3,"0"):"")}toSQLValue(){return this.toString()}toSQLWithKeyword(){return`time '${this.hour.toString().padStart(2,"0")}:${this.minute.toString().padStart(2,"0")}:${this.second.toString().padStart(2,"0")}${this.millisecond>0?"."+this.millisecond.toString().padStart(3,"0"):""}'`}toStorageString(){return`${this.hour.toString().padStart(2,"0")}:${this.minute.toString().padStart(2,"0")}:${this.second.toString().padStart(2,"0")}`}toFormat(e=null){return null===e||""===e?this.toString():(e=i(e))?a.ou.local(1970,1,1,this._hour,this._minute,this._second,this._millisecond).toFormat(e,{locale:(0,s.Kd)(),numberingSystem:"latn"}):""}toNumber(){return this.millisecond+1e3*this.second+1e3*this.minute*60+60*this.hour*60*1e3}static fromParts(e,t,r,n){const s=new o(e,t,r,n);return s.isValid()?s:null}static fromReader(e){if(!e)return null;const t=e.split(":");return 3!==t.length?null:new o(parseInt(t[0],10),parseInt(t[1],10),parseInt(t[2],10),0)}static fromMilliseconds(e){if(e>864e5||e<0)return null;const t=Math.floor(e/1e3%60),r=Math.floor(e/6e4%60),n=Math.floor(e/36e5%24),s=Math.floor(e%1e3);return new o(n,r,t,s)}static fromDateJS(e){return new o(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}static fromDateTime(e){return new o(e.hour,e.minute,e.second,e.millisecond)}static fromSqlTimeStampOffset(e){return this.fromDateTime(e.toDateTime())}static fromString(e,t=null){if(""===e)return null;if(null===e)return null;const r=[];t?(t=i(t))&&r.push(t):null!==t&&""!==t||(r.push("HH:mm:ss"),r.push("HH:mm:ss.SSS"),r.push("hh:mm:ss a"),r.push("hh:mm:ss.SSS a"),r.push("HH:mm"),r.push("hh:mm a"),r.push("H:mm"),r.push("h:mm a"),r.push("H:mm:ss"),r.push("h:mm:ss a"),r.push("H:mm:ss.SSS"),r.push("h:mm:ss.SSS a"));for(const t of r){const r=a.ou.fromFormat(e,t);if(r.isValid)return new o(r.hour,r.minute,r.second,r.millisecond)}return null}plus(e,t){switch(e){case"days":case"years":case"months":return this.clone();case"hours":case"minutes":case"seconds":case"milliseconds":return o.fromDateTime(this.toUTCDateTime().plus({[e]:t}))}return null}toUTCDateTime(){return a.ou.utc(1970,1,1,this.hour,this.minute,this.second,this.millisecond)}difference(e,t){switch(t.toLowerCase()){case"days":case"day":case"d":return this.toUTCDateTime().diff(e.toUTCDateTime(),"days").days;case"months":case"month":return this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months;case"minutes":case"minute":case"m":return"M"===t?this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months:this.toUTCDateTime().diff(e.toUTCDateTime(),"minutes").minutes;case"seconds":case"second":case"s":return this.toUTCDateTime().diff(e.toUTCDateTime(),"seconds").seconds;case"milliseconds":case"millisecond":case"ms":default:return this.toUTCDateTime().diff(e.toUTCDateTime(),"milliseconds").milliseconds;case"hours":case"hour":case"h":return this.toUTCDateTime().diff(e.toUTCDateTime(),"hours").hours;case"years":case"year":case"y":return this.toUTCDateTime().diff(e.toUTCDateTime(),"years").years}}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2705.b736950f6f24dd94be88.js b/docs/sentinel1-explorer/2705.b736950f6f24dd94be88.js new file mode 100644 index 00000000..e7ba62d5 --- /dev/null +++ b/docs/sentinel1-explorer/2705.b736950f6f24dd94be88.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2705],{2705:function(e,a,_){_.r(a),_.d(a,{default:function(){return t}});const t={_decimalSeparator:",",_thousandSeparator:" ",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"jKr.",_era_bc:"eKr.",A:"ap.",P:"ip.",AM:"ap.",PM:"ip.","A.M.":"ap.","P.M.":"ip.",January:"tammikuuta",February:"helmikuuta",March:"maaliskuuta",April:"huhtikuuta",May:"toukokuuta",June:"kesäkuuta",July:"heinäkuuta",August:"elokuuta",September:"syyskuuta",October:"lokakuuta",November:"marraskuuta",December:"joulukuuta",Jan:"tammik.",Feb:"helmik.",Mar:"maalisk.",Apr:"huhtik.","May(short)":"toukok.",Jun:"kesäk.",Jul:"heinäk.",Aug:"elok.",Sep:"syysk.",Oct:"lokak.",Nov:"marrask.",Dec:"jouluk.",Sunday:"sunnuntaina",Monday:"maanantaina",Tuesday:"tiistaina",Wednesday:"keskiviikkona",Thursday:"torstaina",Friday:"perjantaina",Saturday:"lauantaina",Sun:"su",Mon:"ma",Tue:"ti",Wed:"ke",Thu:"to",Fri:"pe",Sat:"la",_dateOrd:function(e){let a="th";if(e<11||e>13)switch(e%10){case 1:a="st";break;case 2:a="nd";break;case 3:a="rd"}return a},"Zoom Out":"Tarkennus",Play:"Toista",Stop:"Lopeta",Legend:"Selite","Press ENTER to toggle":"",Loading:"Ladataan",Home:"Aloitussivu",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Tulosta",Image:"kuva",Data:"Data",Print:"Tulosta","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Mistä %1 mihin %2","From %1":"Mistä %1","To %1":"Mihin %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2727.c8292e3c3c05465855e5.js b/docs/sentinel1-explorer/2727.c8292e3c3c05465855e5.js new file mode 100644 index 00000000..d5f39b6a --- /dev/null +++ b/docs/sentinel1-explorer/2727.c8292e3c3c05465855e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2727],{77765:function(t,e,i){i.d(e,{B:function(){return o},R:function(){return a}});var s=i(3027);class a extends s.R{_beforeChanged(){super._beforeChanged(),(this.isDirty("cornerRadiusTL")||this.isDirty("cornerRadiusTR")||this.isDirty("cornerRadiusBR")||this.isDirty("cornerRadiusBL"))&&(this._clear=!0)}_draw(){let t=this.width(),e=this.height(),i=t,a=e,o=i/Math.abs(t),n=a/Math.abs(e);if((0,s.k)(i)&&(0,s.k)(a)){let t=Math.min(i,a)/2,e=(0,s.l)(this.get("cornerRadiusTL",8),t),r=(0,s.l)(this.get("cornerRadiusTR",8),t),l=(0,s.l)(this.get("cornerRadiusBR",8),t),h=(0,s.l)(this.get("cornerRadiusBL",8),t),d=Math.min(Math.abs(i/2),Math.abs(a/2));e=(0,s.f)(e,0,d),r=(0,s.f)(r,0,d),l=(0,s.f)(l,0,d),h=(0,s.f)(h,0,d);const c=this._display;c.moveTo(e*o,0),c.lineTo(i-r*o,0),r>0&&c.arcTo(i,0,i,r*n,r),c.lineTo(i,a-l*n),l>0&&c.arcTo(i,a,i-l*o,a,l),c.lineTo(h*o,a),h>0&&c.arcTo(0,a,0,a-h*n,h),c.lineTo(0,e*n),e>0&&c.arcTo(0,0,e*o,0,e),c.closePath()}}}Object.defineProperty(a,"className",{enumerable:!0,configurable:!0,writable:!0,value:"RoundedRectangle"}),Object.defineProperty(a,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.R.classNames.concat([a.className])});class o extends s.g{_afterNew(){this._settings.themeTags=(0,s.m)(this._settings.themeTags,["button"]),super._afterNew(),this._settings.background||this.set("background",a.new(this._root,{themeTags:(0,s.m)(this._settings.themeTags,["background"])})),this.setPrivate("trustBounds",!0)}_prepareChildren(){if(super._prepareChildren(),this.isDirty("icon")){const t=this._prevSettings.icon,e=this.get("icon");e!==t&&(this._disposeProperty("icon"),t&&t.dispose(),e&&this.children.push(e),this._prevSettings.icon=e)}if(this.isDirty("label")){const t=this._prevSettings.label,e=this.get("label");e!==t&&(this._disposeProperty("label"),t&&t.dispose(),e&&this.children.push(e),this._prevSettings.label=e)}}}Object.defineProperty(o,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Button"}),Object.defineProperty(o,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.g.classNames.concat([o.className])})},32727:function(t,e,i){i.d(e,{AxisRendererXAm5:function(){return A},AxisRendererYAm5:function(){return T},CategoryAxisAm5:function(){return C},ColumnSeriesAm5:function(){return O},LineSeriesAm5:function(){return M},ValueAxisAm5:function(){return P},XYChartAm5:function(){return b},XYCursorAm5:function(){return f}});var s=i(3027),a=i(50240),o=i(97876),n=i(97722),r=i(77765),l=i(36663);function h(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function d(t){this._context=t}function c(t){return new d(t)}function u(t){return t[0]}function g(t){return t[1]}function p(t,e){var i=(0,n.c)(!0),s=null,a=c,o=null,r=(0,n.w)(l);function l(n){var l,d,c,u=(n=h(n)).length,g=!1;for(null==s&&(o=a(c=r())),l=0;l<=u;++l)!(l=u;--g)l.point(x[g],f[g]);l.lineEnd(),l.areaEnd()}b&&(x[c]=+t(p,c,n),f[c]=+e(p,c,n),l.point(s?+s(p,c,n):x[c],i?+i(p,c,n):f[c]))}if(m)return l=null,m+""||null}function _(){return p().defined(a).curve(r).context(o)}return t="function"==typeof t?t:void 0===t?u:(0,n.c)(+t),e="function"==typeof e?e:(0,n.c)(void 0===e?0:+e),i="function"==typeof i?i:void 0===i?g:(0,n.c)(+i),m.x=function(e){return arguments.length?(t="function"==typeof e?e:(0,n.c)(+e),s=null,m):t},m.x0=function(e){return arguments.length?(t="function"==typeof e?e:(0,n.c)(+e),m):t},m.x1=function(t){return arguments.length?(s=null==t?null:"function"==typeof t?t:(0,n.c)(+t),m):s},m.y=function(t){return arguments.length?(e="function"==typeof t?t:(0,n.c)(+t),i=null,m):e},m.y0=function(t){return arguments.length?(e="function"==typeof t?t:(0,n.c)(+t),m):e},m.y1=function(t){return arguments.length?(i=null==t?null:"function"==typeof t?t:(0,n.c)(+t),m):i},m.lineX0=m.lineY0=function(){return _().x(t).y(e)},m.lineY1=function(){return _().x(t).y(i)},m.lineX1=function(){return _().x(s).y(e)},m.defined=function(t){return arguments.length?(a="function"==typeof t?t:(0,n.c)(!!t),m):a},m.curve=function(t){return arguments.length?(r=t,null!=o&&(l=r(o)),m):r},m.context=function(t){return arguments.length?(null==t?o=l=null:l=r(o=t),m):o},m}d.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};class _ extends s.T{setupDefaultRules(){super.setupDefaultRules();const t=this._root.interfaceColors,e=this._root.language,i=this.rule.bind(this);i("XYChart").setAll({colors:a.C.new(this._root,{}),paddingLeft:20,paddingRight:20,paddingTop:16,paddingBottom:16,panX:!1,panY:!1,wheelStep:.25,arrangeTooltips:!0,pinchZoomX:!1,pinchZoomY:!1}),i("XYSeries").setAll({legendLabelText:"{name}"}),i("XYChart",["scrollbar","chart"]).setAll({paddingBottom:0,paddingLeft:0,paddingTop:0,paddingRight:0,colors:a.C.new(this._root,{saturation:0})});{const e=i("Graphics",["scrollbar","overlay"]);e.setAll({fillOpacity:.5}),(0,o.s)(e,"fill",t,"background")}i("RoundedRectangle",["xy","scrollbar","thumb"]).setAll({cornerRadiusTR:0,cornerRadiusTL:0,cornerRadiusBR:0,cornerRadiusBL:0,fillOpacity:0,focusable:!0}),i("RoundedRectangle",["xy","scrollbar","thumb"]).states.create("hover",{fillOpacity:.4}),i("RoundedRectangle",["xy","scrollbar","chart","background"]).setAll({cornerRadiusTL:0,cornerRadiusBL:0,cornerRadiusTR:0,cornerRadiusBR:0}),i("RoundedRectangle",["xy","scrollbar","chart","background","resize","button"]).setAll({cornerRadiusBL:40,cornerRadiusBR:40,cornerRadiusTL:40,cornerRadiusTR:40}),i("AxisRendererX",["xy","chart","scrollbar"]).setAll({strokeOpacity:0,inside:!0}),i("AxisRendererY",["xy","chart","scrollbar"]).setAll({strokeOpacity:0,inside:!0,minGridDistance:5}),i("AxisLabel",["xy","scrollbar","x"]).setAll({opacity:.5,centerY:s.a,minPosition:.01,maxPosition:.99,fontSize:"0.8em"}),i("AxisLabel",["category"]).setAll({text:"{category}",populateText:!0}),i("AxisLabel",["x"]).setAll({centerY:0}),i("AxisLabel",["x","inside"]).setAll({centerY:s.a}),i("AxisLabel",["x","inside","opposite"]).setAll({centerY:0}),i("AxisLabel",["x","opposite"]).setAll({centerY:s.a}),i("AxisLabel",["y"]).setAll({centerX:s.a}),i("AxisLabel",["y","inside"]).setAll({centerX:0}),i("AxisLabel",["y","inside","opposite"]).setAll({centerX:s.a}),i("AxisLabel",["y","opposite"]).setAll({centerX:0}),i("AxisLabel",["minor"]).setAll({fontSize:"0.6em"}),i("AxisLabel",["xy","scrollbar","y"]).setAll({visible:!1}),i("Grid",["xy","scrollbar","y"]).setAll({visible:!1}),i("Grid",["xy","scrollbar","x"]).setAll({opacity:.5}),i("XYCursor").setAll({behavior:"none",layer:30,exportable:!1,snapToSeriesBy:"xy",moveThreshold:1});{const s=i("Grid",["cursor","x"]);s.setAll({strokeOpacity:.8,strokeDasharray:[2,2],ariaLabel:e.translate("Use left and right arrows to move selection")}),(0,o.s)(s,"stroke",t,"alternativeBackground")}{const s=i("Grid",["cursor","y"]);s.setAll({strokeOpacity:.8,strokeDasharray:[2,2],ariaLabel:e.translate("Use up and down arrows to move selection")}),(0,o.s)(s,"stroke",t,"alternativeBackground")}{const e=i("Graphics",["cursor","selection"]);e.setAll({fillOpacity:.15}),(0,o.s)(e,"fill",t,"alternativeBackground")}i("Axis").setAll({start:0,end:1,minZoomCount:1,maxZoomCount:1/0,maxZoomFactor:1e3,maxDeviation:.1,snapTooltip:!0,tooltipLocation:.5,panX:!0,panY:!0,zoomX:!0,zoomY:!0,fixAxisSize:!0}),i("AxisLabel").setAll({location:.5,multiLocation:0,centerX:s.p,centerY:s.p,paddingTop:3,paddingBottom:3,paddingLeft:5,paddingRight:5}),i("Container",["axis","header"]).setAll({layer:30}),i("Rectangle",["axis","header","background"]).setAll({crisp:!0});{const e=i("AxisRenderer");e.setAll({crisp:!0,strokeOpacity:0}),(0,o.s)(e,"stroke",t,"grid")}i("AxisRendererX").setAll({minGridDistance:120,opposite:!1,inversed:!1,cellStartLocation:0,cellEndLocation:1,width:s.a}),i("AxisRendererY").setAll({minGridDistance:40,opposite:!1,inversed:!1,cellStartLocation:0,cellEndLocation:1,height:s.a});{const e=i("Rectangle",["axis","thumb"]);e.setAll({fillOpacity:0}),(0,o.s)(e,"fill",t,"alternativeBackground"),e.states.create("hover",{fillOpacity:.1})}i("Rectangle",["axis","thumb","x"]).setAll({cursorOverStyle:"ew-resize"}),i("Rectangle",["axis","thumb","y"]).setAll({cursorOverStyle:"ns-resize"});{const e=i("Grid");e.setAll({location:0,strokeOpacity:.15,crisp:!0}),(0,o.s)(e,"stroke",t,"grid")}{const e=i("Grid",["minor"]);e.setAll({location:0,strokeOpacity:.07,crisp:!0}),(0,o.s)(e,"stroke",t,"grid")}i("Grid",["base"]).setAll({strokeOpacity:.3});{const e=i("Graphics",["axis","fill"]);e.setAll({visible:!1,isMeasured:!1,position:"absolute",fillOpacity:.05}),(0,o.s)(e,"fill",t,"alternativeBackground")}i("Graphics",["axis","fill","range"]).setAll({isMeasured:!0}),i("Graphics",["series","fill","range"]).setAll({visible:!1,isMeasured:!0}),i("Grid",["series","range"]).setAll({visible:!1}),i("AxisTick",["series","range"]).setAll({visible:!1}),i("AxisLabel",["series","range"]).setAll({visible:!1});{const e=i("AxisTick");e.setAll({location:.5,multiLocation:0,strokeOpacity:1,isMeasured:!1,position:"absolute",visible:!1}),(0,o.s)(e,"stroke",t,"grid")}i("CategoryAxis").setAll({startLocation:0,endLocation:1,fillRule:(t,e)=>{const i=t.get("axisFill");i&&((0,s.k)(e)&&e%2!=0?i.setPrivate("visible",!1):i.setPrivate("visible",!0))}});const r=[{timeUnit:"millisecond",count:1},{timeUnit:"millisecond",count:5},{timeUnit:"millisecond",count:10},{timeUnit:"millisecond",count:50},{timeUnit:"millisecond",count:100},{timeUnit:"millisecond",count:500},{timeUnit:"second",count:1},{timeUnit:"second",count:5},{timeUnit:"second",count:10},{timeUnit:"second",count:30},{timeUnit:"minute",count:1},{timeUnit:"minute",count:5},{timeUnit:"minute",count:10},{timeUnit:"minute",count:15},{timeUnit:"minute",count:30},{timeUnit:"hour",count:1},{timeUnit:"hour",count:3},{timeUnit:"hour",count:6},{timeUnit:"hour",count:12},{timeUnit:"day",count:1},{timeUnit:"day",count:2},{timeUnit:"day",count:3},{timeUnit:"day",count:4},{timeUnit:"day",count:5},{timeUnit:"week",count:1},{timeUnit:"month",count:1},{timeUnit:"month",count:2},{timeUnit:"month",count:3},{timeUnit:"month",count:6},{timeUnit:"year",count:1},{timeUnit:"year",count:2},{timeUnit:"year",count:5},{timeUnit:"year",count:10},{timeUnit:"year",count:50},{timeUnit:"year",count:100},{timeUnit:"year",count:200},{timeUnit:"year",count:500},{timeUnit:"year",count:1e3},{timeUnit:"year",count:2e3},{timeUnit:"year",count:5e3},{timeUnit:"year",count:1e4},{timeUnit:"year",count:1e5}],l={millisecond:e.translate("_date_millisecond"),second:e.translate("_date_second"),minute:e.translate("_date_minute"),hour:e.translate("_date_hour"),day:e.translate("_date_day"),week:e.translate("_date_day"),month:e.translate("_date_month"),year:e.translate("_date_year")},h={millisecond:e.translate("_date_millisecond"),second:e.translate("_date_second"),minute:e.translate("_date_minute"),hour:e.translate("_date_day"),day:e.translate("_date_day"),week:e.translate("_date_day"),month:e.translate("_date_month")+" "+e.translate("_date_year"),year:e.translate("_date_year")},d={millisecond:e.translate("_date_millisecond_full"),second:e.translate("_date_second_full"),minute:e.translate("_date_minute_full"),hour:e.translate("_date_hour_full"),day:e.translate("_date_day_full"),week:e.translate("_date_week_full"),month:e.translate("_date_month_full"),year:e.translate("_date_year")};i("CategoryDateAxis").setAll({markUnitChange:!0,gridIntervals:(0,s.am)(r),dateFormats:(0,s.X)(l),periodChangeDateFormats:(0,s.X)(h)}),i("DateAxis").setAll({maxZoomFactor:null,strictMinMax:!0,startLocation:0,endLocation:1,markUnitChange:!0,groupData:!1,groupCount:500,gridIntervals:(0,s.am)(r),dateFormats:(0,s.X)(l),periodChangeDateFormats:(0,s.X)(h),tooltipDateFormats:d,groupIntervals:[{timeUnit:"millisecond",count:1},{timeUnit:"millisecond",count:10},{timeUnit:"millisecond",count:100},{timeUnit:"second",count:1},{timeUnit:"second",count:10},{timeUnit:"minute",count:1},{timeUnit:"minute",count:10},{timeUnit:"hour",count:1},{timeUnit:"day",count:1},{timeUnit:"week",count:1},{timeUnit:"month",count:1},{timeUnit:"year",count:1}],fillRule:t=>{const e=t.get("axisFill");if(e){const i=t.component,s=t.get("value"),a=t.get("endValue"),o=i.intervalDuration(),r=i.getPrivate("baseInterval"),l=i.getPrivate("gridInterval",r);let h=i.getPrivate("min",0);if(h=(0,n.r)(new Date(h),l.timeUnit,l.count,this._root.locale.firstDayOfWeek,this._root.utc,void 0,this._root.timezone).getTime(),null!=s&&null!=a){const t=Math.round(Math.round((s-h)/o))/2;t==Math.round(t)?e.setPrivate("visible",!0):e.setPrivate("visible",!1)}}}}),i("GaplessDateAxis").setAll({fillRule:t=>{const e=t.get("axisFill");if(e){const i=t.get("index");let a=!1;(0,s.k)(i)&&i%2!=0||(a=!0),e.setPrivate("visible",a)}}}),i("ValueAxis").setAll({baseValue:0,logarithmic:!1,strictMinMax:!1,autoZoom:!0,fillRule:t=>{const e=t.get("axisFill");if(e){const i=t.component,a=t.get("value"),o=i.getPrivate("step");(0,s.k)(a)&&(0,s.k)(o)&&((0,s.aH)(a/o/2,5)==Math.round(a/o/2)?e.setPrivate("visible",!1):e.setPrivate("visible",!0))}}}),i("DurationAxis").setAll({baseUnit:"second"}),i("XYSeries").setAll({maskBullets:!0,stackToNegative:!0,locationX:.5,locationY:.5,snapTooltip:!1,openValueXGrouped:"open",openValueYGrouped:"open",valueXGrouped:"close",valueYGrouped:"close",seriesTooltipTarget:"series"}),i("BaseColumnSeries").setAll({adjustBulletPosition:!0}),i("ColumnSeries").setAll({clustered:!0}),i("RoundedRectangle",["series","column"]).setAll({position:"absolute",isMeasured:!1,width:(0,s.j)(70),height:(0,s.j)(70),strokeWidth:1,strokeOpacity:1,cornerRadiusBL:0,cornerRadiusTL:0,cornerRadiusBR:0,cornerRadiusTR:0,fillOpacity:1,role:"figure"}),i("LineSeries").setAll({connect:!0,autoGapCount:1.1,stackToNegative:!1}),i("Graphics",["series","stroke"]).setAll({position:"absolute",strokeWidth:1,strokeOpacity:1,isMeasured:!1}),i("Graphics",["series","fill"]).setAll({visible:!1,fillOpacity:0,position:"absolute",strokeWidth:0,strokeOpacity:0,isMeasured:!1}),i("Graphics",["line","series","legend","marker","stroke"]).setAll({draw:(t,e)=>{const i=e.parent;if(i){const e=i.height(),s=i.width();t.moveTo(0,e/2),t.lineTo(s,e/2)}}});{const e=i("Graphics",["line","series","legend","marker","stroke"]).states.create("disabled",{});(0,o.s)(e,"stroke",t,"disabled")}i("Graphics",["line","series","legend","marker","fill"]).setAll({draw:(t,e)=>{const i=e.parent;if(i){const e=i.height(),s=i.width();t.moveTo(0,0),t.lineTo(s,0),t.lineTo(s,e),t.lineTo(0,e),t.lineTo(0,0)}}});{const e=i("Graphics",["line","series","legend","marker","fill"]).states.create("disabled",{});(0,o.s)(e,"stroke",t,"disabled")}i("SmoothedXYLineSeries").setAll({tension:.5}),i("SmoothedXLineSeries").setAll({tension:.5}),i("SmoothedYLineSeries").setAll({tension:.5}),i("Candlestick").setAll({position:"absolute",isMeasured:!1,width:(0,s.j)(50),height:(0,s.j)(50),strokeWidth:1,strokeOpacity:1,cornerRadiusBL:0,cornerRadiusTL:0,cornerRadiusBR:0,cornerRadiusTR:0,fillOpacity:1,role:"figure"}),i("OHLC").setAll({width:(0,s.j)(80),height:(0,s.j)(80)}),i("CandlestickSeries").setAll({lowValueXGrouped:"low",lowValueYGrouped:"low",highValueXGrouped:"high",highValueYGrouped:"high",openValueXGrouped:"open",openValueYGrouped:"open",valueXGrouped:"close",valueYGrouped:"close"});{const e=i("Rectangle",["column","autocolor"]).states.create("riseFromOpen",{});(0,o.s)(e,"fill",t,"positive"),(0,o.s)(e,"stroke",t,"positive")}{const e=i("Rectangle",["column","autocolor"]).states.create("dropFromOpen",{});(0,o.s)(e,"fill",t,"negative"),(0,o.s)(e,"stroke",t,"negative")}i("Rectangle",["column","autocolor","pro"]).states.create("riseFromOpen",{fillOpacity:0}),i("Rectangle",["column","autocolor","pro"]).states.create("dropFromOpen",{fillOpacity:1});{const e=i("Rectangle",["column","autocolor","pro"]).states.create("riseFromPrevious",{});(0,o.s)(e,"fill",t,"positive"),(0,o.s)(e,"stroke",t,"positive")}{const e=i("Rectangle",["column","autocolor","pro"]).states.create("dropFromPrevious",{});(0,o.s)(e,"fill",t,"negative"),(0,o.s)(e,"stroke",t,"negative")}i("RoundedRectangle",["rangegrip"]).setAll({strokeOpacity:0,fillOpacity:0,strokeWidth:1,width:12,height:12});{const e=i("Graphics",["rangegrip","button","icon"]);e.setAll({interactive:!1,crisp:!0,strokeOpacity:.5,draw:t=>{t.moveTo(0,.5),t.lineTo(0,12.5),t.moveTo(2,.5),t.lineTo(2,12.5),t.moveTo(4,.5),t.lineTo(4,12.5)}}),(0,o.s)(e,"stroke",t,"secondaryButtonText")}i("Button",["rangegrip"]).setAll({draggable:!0,paddingTop:0,paddingBottom:0}),i("Button",["rangegrip","vertical"]).setAll({rotation:90,cursorOverStyle:"ns-resize",centerX:s.p}),i("Button",["rangegrip","horizontal"]).setAll({cursorOverStyle:"ew-resize",centerX:s.p}),i("Button",["rangegrip","vertical","left"]).setAll({centerY:s.a}),i("Button",["rangegrip","vertical","right"]).setAll({centerY:0}),i("Button",["rangegrip","horizontal","top"]).setAll({centerY:0}),i("Button",["rangegrip","horizontal","bottom"]).setAll({centerY:s.a})}}class b extends n.S{constructor(){super(...arguments),Object.defineProperty(this,"xAxes",{enumerable:!0,configurable:!0,writable:!0,value:new s.N}),Object.defineProperty(this,"yAxes",{enumerable:!0,configurable:!0,writable:!0,value:new s.N}),Object.defineProperty(this,"topAxesContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.chartContainer.children.push(s.g.new(this._root,{width:s.a,layout:this._root.verticalLayout}))}),Object.defineProperty(this,"yAxesAndPlotContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.chartContainer.children.push(s.g.new(this._root,{width:s.a,height:s.a,layout:this._root.horizontalLayout}))}),Object.defineProperty(this,"bottomAxesContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.chartContainer.children.push(s.g.new(this._root,{width:s.a,layout:this._root.verticalLayout}))}),Object.defineProperty(this,"leftAxesContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.yAxesAndPlotContainer.children.push(s.g.new(this._root,{height:s.a,layout:this._root.horizontalLayout}))}),Object.defineProperty(this,"plotsContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.yAxesAndPlotContainer.children.push(s.g.new(this._root,{width:s.a,height:s.a,maskContent:!1}))}),Object.defineProperty(this,"plotContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.plotsContainer.children.push(s.g.new(this._root,{width:s.a,height:s.a}))}),Object.defineProperty(this,"topPlotContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.plotsContainer.children.push(s.g.new(this._root,{width:s.a,height:s.a}))}),Object.defineProperty(this,"gridContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.plotContainer.children.push(s.g.new(this._root,{width:s.a,height:s.a,isMeasured:!1}))}),Object.defineProperty(this,"topGridContainer",{enumerable:!0,configurable:!0,writable:!0,value:s.g.new(this._root,{width:s.a,height:s.a,isMeasured:!1})}),Object.defineProperty(this,"rightAxesContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.yAxesAndPlotContainer.children.push(s.g.new(this._root,{height:s.a,layout:this._root.horizontalLayout}))}),Object.defineProperty(this,"axisHeadersContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.plotContainer.children.push(s.g.new(this._root,{}))}),Object.defineProperty(this,"zoomOutButton",{enumerable:!0,configurable:!0,writable:!0,value:this.topPlotContainer.children.push(r.B.new(this._root,{themeTags:["zoom"],icon:s.e.new(this._root,{themeTags:["button","icon"]})}))}),Object.defineProperty(this,"_movePoint",{enumerable:!0,configurable:!0,writable:!0,value:{x:0,y:0}}),Object.defineProperty(this,"_wheelDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_otherCharts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_movePoints",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_downStartX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_downEndX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_downStartY",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_downEndY",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}_afterNew(){this._defaultThemes.push(_.new(this._root)),super._afterNew(),this._disposers.push(this.xAxes),this._disposers.push(this.yAxes);const t=this._root;let e=this._root.verticalLayout;const i=this.zoomOutButton;i.events.on("click",(()=>{this.zoomOut()})),i.hide(0),i.states.lookup("default").set("opacity",1),this.chartContainer.set("layout",e);const a=this.plotContainer;a.children.push(this.seriesContainer),this._disposers.push(this._processAxis(this.xAxes,this.bottomAxesContainer)),this._disposers.push(this._processAxis(this.yAxes,this.leftAxesContainer)),a.children.push(this.topGridContainer),a.children.push(this.bulletsContainer),a.set("interactive",!0),a.set("interactiveChildren",!1),a.set("background",s.R.new(t,{themeTags:["xy","background"],fill:s.C.fromHex(0),fillOpacity:0})),this._disposers.push(a.events.on("pointerdown",(t=>{this._handlePlotDown(t)}))),this._disposers.push(a.events.on("globalpointerup",(t=>{this._handlePlotUp(t)}))),this._disposers.push(a.events.on("globalpointermove",(t=>{this._handlePlotMove(t)}))),this._maskGrid(),this._setUpTouch()}_beforeChanged(){super._beforeChanged(),(this.isDirty("pinchZoomX")||this.isDirty("pinchZoomY")||this.get("panX")||this.get("panY"))&&this._setUpTouch()}_setUpTouch(){this.plotContainer._display.cancelTouch||(this.plotContainer._display.cancelTouch=!!(this.get("pinchZoomX")||this.get("pinchZoomY")||this.get("panX")||this.get("panY")))}_maskGrid(){this.gridContainer.set("maskContent",!0),this.topGridContainer.set("maskContent",!0)}_removeSeries(t){t._unstack(),t._posXDp&&t._posXDp.dispose(),t._posYDp&&t._posYDp.dispose(),t.set("baseAxis",void 0);const e=t.get("xAxis");e&&((0,s.r)(e.series,t),e.markDirtyExtremes());const i=t.get("yAxis");i&&((0,s.r)(i.series,t),i.markDirtyExtremes());const a=this.get("cursor");if(a){const e=a.get("snapToSeries");e&&(0,s.r)(e,t)}super._removeSeries(t)}handleWheel(t){const e=this.get("wheelX"),i=this.get("wheelY"),a=this.plotContainer,o=t.originalEvent;if(!(0,s.n)(o,this))return;o.preventDefault();const n=a.toLocal(t.point),r=this.get("wheelStep",.2),l=o.deltaY/100,h=o.deltaX/100,d=this.get("wheelZoomPositionX"),c=this.get("wheelZoomPositionY");"zoomX"!==e&&"zoomXY"!==e||0==h||this.xAxes.each((t=>{if(t.get("zoomX")){let e=t.get("start"),i=t.get("end"),s=t.fixPosition(n.x/a.width());null!=d&&(s=d);let o=e-r*(i-e)*h*s,l=i+r*(i-e)*h*(1-s);1/(l-o){if(t.get("zoomX")){let e=t.get("start"),i=t.get("end"),s=t.fixPosition(n.x/a.width());null!=d&&(s=d);let o=e-r*(i-e)*l*s,h=i+r*(i-e)*l*(1-s);1/(h-o){if(t.get("zoomY")){let e=t.get("start"),i=t.get("end"),s=t.fixPosition(n.y/a.height());null!=c&&(s=c);let o=e-r*(i-e)*h*s,l=i+r*(i-e)*h*(1-s);1/(l-o){if(t.get("zoomY")){let e=t.get("start"),i=t.get("end"),s=t.fixPosition(n.y/a.height());null!=c&&(s=c);let o=e-r*(i-e)*l*s,h=i+r*(i-e)*l*(1-s);1/(h-o){if(t.get("panX")){let e=t.get("start"),i=t.get("end"),s=this._getWheelSign(t)*r*(i-e)*h,a=e+s,o=i+s,n=this._fixWheel(a,o);a=n[0],o=n[1],this._handleWheelAnimation(t.zoom(a,o))}})),"panX"!==i&&"panXY"!==i||0==l||this.xAxes.each((t=>{if(t.get("panX")){let e=t.get("start"),i=t.get("end"),s=this._getWheelSign(t)*r*(i-e)*l,a=e+s,o=i+s,n=this._fixWheel(a,o);a=n[0],o=n[1],this._handleWheelAnimation(t.zoom(a,o))}})),"panY"!==e&&"panXY"!==e||0==h||this.yAxes.each((t=>{if(t.get("panY")){let e=t.get("start"),i=t.get("end"),s=this._getWheelSign(t)*r*(i-e)*h,a=e+s,o=i+s,n=this._fixWheel(a,o);a=n[0],o=n[1],this._handleWheelAnimation(t.zoom(a,o))}})),"panY"!==i&&"panXY"!==i||0==l||this.yAxes.each((t=>{if(t.get("panY")){let e=t.get("start"),i=t.get("end"),s=this._getWheelSign(t)*r*(i-e)*l,a=e-s,o=i-s,n=this._fixWheel(a,o);a=n[0],o=n[1],this._handleWheelAnimation(t.zoom(a,o))}}))}_handleSetWheel(){const t=this.get("wheelX"),e=this.get("wheelY"),i=this.plotContainer;"none"!==t||"none"!==e?(this._wheelDp=i.events.on("wheel",(i=>{const s=i.originalEvent;("none"!==t&&0!=Math.abs(s.deltaX)||"none"!==e&&0!=Math.abs(s.deltaY))&&this.handleWheel(i)})),this._disposers.push(this._wheelDp)):this._wheelDp&&this._wheelDp.dispose()}_getWheelSign(t){let e=1;return t.get("renderer").get("inversed")&&(e=-1),e}_fixWheel(t,e){const i=e-t;return t<0&&(e=(t=0)+i),e>1&&(t=(e=1)-i),[t,e]}_handlePlotDown(t){const e=t.originalEvent;if(2==e.button)return;const i=this.plotContainer;let a=i.toLocal(t.point);if((this.get("pinchZoomX")||this.get("pinchZoomY"))&&e.pointerId&&(0,s.H)(i._downPoints).length>0){const t=this.xAxes.getIndex(0),e=this.yAxes.getIndex(0);t&&(this._downStartX=t.get("start",0),this._downEndX=t.get("end",1)),e&&(this._downStartY=e.get("start",0),this._downEndY=e.get("end",1))}if((this.get("panX")||this.get("panY"))&&a.x>=0&&a.y>=0&&a.x<=i.width()&&a.y<=this.height()){this._downPoint={x:e.clientX,y:e.clientY};const i=this.get("panX"),s=this.get("panY");i&&this.xAxes.each((t=>{t._panStart=t.get("start"),t._panEnd=t.get("end")})),s&&this.yAxes.each((t=>{t._panStart=t.get("start"),t._panEnd=t.get("end")}));const a="panstarted";this.events.isEnabled(a)&&this.events.dispatch(a,{type:a,target:this,originalEvent:t.originalEvent})}}_handleWheelAnimation(t){t?t.events.on("stopped",(()=>{this._dispatchWheelAnimation()})):this._dispatchWheelAnimation()}_dispatchWheelAnimation(){const t="wheelended";this.events.isEnabled(t)&&this.events.dispatch(t,{type:t,target:this})}_handlePlotUp(t){const e=this._downPoint;if(e&&(this.get("panX")||this.get("panY"))){let i=this.plotContainer.toLocal(t.point);if(i.x==e.x&&i.y==e.y){const e="pancancelled";this.events.isEnabled(e)&&this.events.dispatch(e,{type:e,target:this,originalEvent:t.originalEvent})}const s="panended";this.events.isEnabled(s)&&this.events.dispatch(s,{type:s,target:this,originalEvent:t.originalEvent})}this._downPoint=void 0,this.xAxes.each((t=>{t._isPanning=!1})),this.yAxes.each((t=>{t._isPanning=!1}))}_handlePlotMove(t){const e=this.plotContainer;if(this.get("pinchZoomX")||this.get("pinchZoomY")){const i=t.originalEvent.pointerId;if(i&&(this._movePoints[i]=t.point,(0,s.H)(e._downPoints).length>1))return void this._handlePinch()}let i=this._downPoint;if(i){i=e.toLocal(this._root.documentPointToRoot(i));let s=e.toLocal(t.point);const a=this.get("panX"),o=this.get("panY");if(a){let t=this.get("scrollbarX");t&&t.events.disableType("rangechanged"),this.xAxes.each((t=>{if(t.get("panX")){t._isPanning=!0;let a=t._panStart,o=t._panEnd,n=(o-a)*(i.x-s.x)/e.width();t.get("renderer").get("inversed")&&(n*=-1);let r=a+n,l=o+n;l-r<1+2*t.get("maxDeviation",1)&&(t.set("start",r),t.set("end",l))}})),t&&t.events.enableType("rangechanged")}if(o){let t=this.get("scrollbarY");t&&t.events.disableType("rangechanged"),this.yAxes.each((t=>{if(t.get("panY")){t._isPanning=!0;let a=t._panStart,o=t._panEnd,n=(o-a)*(i.y-s.y)/e.height();t.get("renderer").get("inversed")&&(n*=-1);let r=a-n,l=o-n;l-r<1+2*t.get("maxDeviation",1)&&(t.set("start",r),t.set("end",l))}})),t&&t.events.enableType("rangechanged")}}}_handlePinch(){const t=this.plotContainer;let e=0,i=[],a=[];if((0,s._)(t._downPoints,((t,s)=>{i[e]=s;let o=this._movePoints[t];o&&(a[e]=o),e++})),i.length>1&&a.length>1){const e=t.width(),s=t.height();let o=i[0],n=i[1],r=a[0],l=a[1];if(o&&n&&r&&l){if(r=t.toLocal(r),l=t.toLocal(l),o=t.toLocal(o),n=t.toLocal(n),this.get("pinchZoomX")){const t=this._downStartX,i=this._downEndX;if(null!=t&&null!=i){o.x>n.x&&([o,n]=[n,o],[r,l]=[l,r]);let s=t+o.x/e*(i-t),a=t+n.x/e*(i-t),h=t+r.x/e*(i-t),d=t+l.x/e*(i-t),c=Math.max(.001,a-s)/Math.max(.001,d-h),u=t*c+s-h*c,g=i*c+a-d*c;this.xAxes.each((t=>{let e=t.fixPosition(u),i=t.fixPosition(g);t.zoom(e,i,0)}))}}if(this.get("pinchZoomY")){const t=this._downStartY,e=this._downEndY;if(null!=t&&null!=e){o.y{let e=t.fixPosition(u),i=t.fixPosition(g);t.zoom(e,i,0)}))}}}}}_handleCursorPosition(){const t=this.get("cursor");if(t){const e=t.getPrivate("point");let i=t.get("snapToSeries");if(t._downPoint&&(i=void 0),i&&e){const a=t.get("snapToSeriesBy"),o=[];(0,s.i)(i,(t=>{if(!t.isHidden()&&!t.isHiding())if("x!"!=a&&"y!"!=a){const e=t.startIndex(),i=t.endIndex();for(let s=e;s{const i=t.get("point");if(i){let s=0;s="x"==a||"x!"==a?Math.abs(e.x-i.x):"y"==a||"y!"==a?Math.abs(e.y-i.y):Math.hypot(e.x-i.x,e.y-i.y),s{const e=t.get("tooltip");e&&e._setDataItem(void 0)})),n){let e=n.component;e.showDataItemTooltip(n);const i=n.get("point");i&&t.handleMove(e.toGlobal({x:i.x-e.x(),y:i.y-e.y()}),!0)}}}}_updateCursor(){let t=this.get("cursor");t&&t.updateCursor()}_addCursor(t){this.plotContainer.children.push(t)}_prepareChildren(){if(super._prepareChildren(),this.series.each((t=>{this._colorize(t)})),(this.isDirty("wheelX")||this.isDirty("wheelY"))&&this._handleSetWheel(),this.isDirty("cursor")){const t=this._prevSettings.cursor,e=this.get("cursor");e!==t&&(this._disposeProperty("cursor"),t&&t.dispose(),e&&(e._setChart(this),this._addCursor(e),this._pushPropertyDisposer("cursor",e.events.on("selectended",(()=>{this._handleCursorSelectEnd()})))),this._prevSettings.cursor=e)}if(this.isDirty("scrollbarX")){const t=this._prevSettings.scrollbarX,e=this.get("scrollbarX");e!==t&&(this._disposeProperty("scrollbarX"),t&&t.dispose(),e&&(e.parent||this.topAxesContainer.children.push(e),this._pushPropertyDisposer("scrollbarX",e.events.on("rangechanged",(t=>{this._handleScrollbar(this.xAxes,t.start,t.end,t.grip)}))),e.setPrivate("positionTextFunction",(t=>{const e=this.xAxes.getIndex(0);return e&&e.getTooltipText(t,!1)||""}))),this._prevSettings.scrollbarX=e)}if(this.isDirty("scrollbarY")){const t=this._prevSettings.scrollbarY,e=this.get("scrollbarY");e!==t&&(this._disposeProperty("scrollbarY"),t&&t.dispose(),e&&(e.parent||this.rightAxesContainer.children.push(e),this._pushPropertyDisposer("scrollbarY",e.events.on("rangechanged",(t=>{this._handleScrollbar(this.yAxes,t.start,t.end,t.grip)}))),e.setPrivate("positionTextFunction",(t=>{const e=this.yAxes.getIndex(0);return e&&e.getTooltipText(t,!1)||""}))),this._prevSettings.scrollbarY=e)}this._handleZoomOut()}_processSeries(t){super._processSeries(t);const e=t.get("xAxis"),i=t.get("yAxis");(0,s.aI)(e.series,t),(0,s.aI)(i.series,t),t._posXDp=t.addDisposer(e.events.on("positionchanged",(()=>{t._fixPosition()}))),t._posXDp=t.addDisposer(i.events.on("positionchanged",(()=>{t._fixPosition()}))),t.get("baseAxis")||(i.isType("CategoryAxis")||i.isType("DateAxis")?t.set("baseAxis",i):t.set("baseAxis",e)),t.get("stacked")&&(t._markDirtyKey("stacked"),(0,s.i)(t.dataItems,(t=>{t.set("stackToItemY",void 0),t.set("stackToItemX",void 0)}))),t._markDirtyAxes(),i.markDirtyExtremes(),e.markDirtyExtremes(),e._seriesAdded=!0,i._seriesAdded=!0,this._colorize(t)}_colorize(t){const e=this.get("colors");if(e&&null==t.get("fill")){const i=e.next();t._setSoft("stroke",i),t._setSoft("fill",i)}}_handleCursorSelectEnd(){const t=this.get("cursor"),e=t.get("behavior"),i=t.getPrivate("downPositionX",0),s=t.getPrivate("downPositionY",0),a=Math.min(1,Math.max(0,t.getPrivate("positionX",.5))),o=Math.min(1,Math.max(0,t.getPrivate("positionY",.5)));this.xAxes.each((t=>{if("zoomX"===e||"zoomXY"===e){let e=t.toAxisPosition(i),s=t.toAxisPosition(a);t.zoom(e,s)}t.setPrivate("updateScrollbar",!0)})),this.yAxes.each((t=>{if("zoomY"===e||"zoomXY"===e){let e=t.toAxisPosition(s),i=t.toAxisPosition(o);t.zoom(e,i)}t.setPrivate("updateScrollbar",!0)}))}_handleScrollbar(t,e,i,s){t.each((t=>{let a=t.fixPosition(e),o=t.fixPosition(i),n=t.zoom(a,o,void 0,s);const r="updateScrollbar";t.setPrivateRaw(r,!1),n?n.events.on("stopped",(()=>{t.setPrivateRaw(r,!0)})):t.setPrivateRaw(r,!0)}))}_processAxis(t,e){return t.events.onAll((t=>{if("clear"===t.type)(0,s.i)(t.oldValues,(t=>{this._removeAxis(t)}));else if("push"===t.type)e.children.push(t.newValue),t.newValue.processChart(this);else if("setIndex"===t.type)e.children.setIndex(t.index,t.newValue),t.newValue.processChart(this);else if("insertIndex"===t.type)e.children.insertIndex(t.index,t.newValue),t.newValue.processChart(this);else if("removeIndex"===t.type)this._removeAxis(t.oldValue);else{if("moveIndex"!==t.type)throw new Error("Unknown IListEvent type");e.children.moveValue(t.value,t.newIndex),t.value.processChart(this)}}))}_removeAxis(t){if(!t.isDisposed()){const e=t.parent;e&&e.children.removeValue(t);const i=t.gridContainer,s=i.parent;s&&s.children.removeValue(i);const a=t.topGridContainer,o=a.parent;o&&o.children.removeValue(a)}}_updateChartLayout(){const t=this.leftAxesContainer.width(),e=this.rightAxesContainer.width(),i=this.bottomAxesContainer;i.set("paddingLeft",t),i.set("paddingRight",e);const s=this.topAxesContainer;s.set("paddingLeft",t),s.set("paddingRight",e)}processAxis(t){this.get("cursor")&&(this.addDisposer(t.on("start",(()=>{this._updateCursor()}))),this.addDisposer(t.on("end",(()=>{this._updateCursor()}))))}_handleAxisSelection(t,e){let i=t.fixPosition(t.get("start",0)),s=t.fixPosition(t.get("end",1));if(i>s&&([i,s]=[s,i]),-1!=this.xAxes.indexOf(t)){if(e||t.getPrivate("updateScrollbar")){let t=this.get("scrollbarX");!t||t.getPrivate("isBusy")&&!e||(t.setRaw("start",i),t.setRaw("end",s),t.updateGrips())}}else if(-1!=this.yAxes.indexOf(t)&&(e||t.getPrivate("updateScrollbar"))){let t=this.get("scrollbarY");!t||t.getPrivate("isBusy")&&!e||(t.setRaw("start",i),t.setRaw("end",s),t.updateGrips())}this._handleZoomOut()}_handleZoomOut(){let t=this.zoomOutButton;if(t&&t.parent){let e=!1;this.xAxes.each((t=>{0==t.get("start")&&1==t.get("end")||(e=!0)})),this.yAxes.each((t=>{0==t.get("start")&&1==t.get("end")||(e=!0)})),e?t.isHidden()&&t.show():t.hide()}}inPlot(t){const e=this.plotContainer,i=this.getPrivate("otherCharts",this._otherCharts),s=e.toGlobal(t);if(t.x>=-.5&&t.y>=-.5&&t.x<=e.width()+.5&&t.y<=e.height()+.5)return!0;if(i)for(let t=i.length-1;t>=0;t--){const e=i[t];if(e!=this){const t=e.plotContainer,i=this._root.rootPointToDocument(s),a=e._root.documentPointToRoot(i),o=t.toLocal(a);if(o.x>=-.1&&o.y>=-.1&&o.x<=t.width()+.1&&o.y<=t.height()+.1)return!0}}return!1}arrangeTooltips(){const t=this.plotContainer,e=t.width(),i=t.height(),a=this.height();let o=t._display.toGlobal({x:0,y:0}),n=t._display.toGlobal({x:e,y:i});const r=[];let l,h,d=0,c=1/0,u=this._movePoint,g=this.get("maxTooltipDistance"),p=this.get("maxTooltipDistanceBy","xy");(0,s.k)(g)&&this.series.each((t=>{if(!t.isHidden()){const e=t.get("tooltip");if(e){let i=e.get("pointTo");if(i){let e=Math.hypot(u.x-i.x,u.y-i.y);"x"==p?e=Math.abs(u.x-i.x):"y"==p&&(e=Math.abs(u.y-i.y)),e{const e=t.get("tooltip");if(e&&!e.get("forceHidden")){let i=!1,s=e.get("pointTo");if(s){if(g>=0){let s=e.get("pointTo");if(s&&h&&t!=l){let t=Math.hypot(h.x-s.x,h.y-s.y);"x"==p?t=Math.abs(h.x-s.x):"y"==p&&(t=Math.abs(h.y-s.y)),t>g&&(i=!0)}}else-1==g&&t!=l&&(i=!0);this.inPlot(this._tooltipToLocal(s))&&e.dataItem?i||(d+=s.y):i=!0,i||t.isHidden()||t.isHiding()?e.hide(0):(e.show(),r.push(e),m.push(t))}}})),this.setPrivate("tooltipSeries",m),this.get("arrangeTooltips")){const t=this._root.tooltipContainer,e=r.length;if(d/e>i/2+o.y){r.sort(((t,e)=>(0,s.aJ)(e.get("pointTo").y,t.get("pointTo").y)));let e=n.y;if((0,s.i)(r,(i=>{let a=i.height(),r=i.get("centerY");r instanceof s.P&&(a*=r.value),a+=i.get("marginBottom",0),i.set("bounds",{left:o.x,top:o.y,right:n.x,bottom:e}),i.setPrivate("customData",{left:o.x,top:o.y,right:n.x,bottom:e}),e=Math.min(e-a,i._fy-a),i.parent==t&&t.children.moveValue(i,0)})),e<0){r.reverse();let t=e;(0,s.i)(r,(i=>{let s=i.get("bounds");if(s){let a=s.top-e,o=s.bottom-e;a(0,s.aJ)(t.get("pointTo").y,e.get("pointTo").y)));let e=0;if((0,s.i)(r,(i=>{let r=i.height(),l=i.get("centerY");l instanceof s.P&&(r*=l.value),r+=i.get("marginBottom",0),i.set("bounds",{left:o.x,top:e,right:n.x,bottom:Math.max(o.y+a,e+r)}),i.parent==t&&t.children.moveValue(i,0),e=Math.max(e+r,i._fy+r)})),e>a){r.reverse();let t=a;(0,s.i)(r,(i=>{let s=i.get("bounds");if(s){let o=s.top-(a-e),n=s.bottom-(a-e);n>t&&(n=t,o=n-i.height()),i.set("bounds",{left:s.left,top:o,right:s.right,bottom:n}),t=n-i.height()-i.get("marginBottom",0)}}))}}}}_tooltipToLocal(t){return this.plotContainer.toLocal(t)}zoomOut(){this.xAxes.each((t=>{t.setPrivate("updateScrollbar",!0),t.zoom(0,1)})),this.yAxes.each((t=>{t.setPrivate("updateScrollbar",!0),t.zoom(0,1)}))}}Object.defineProperty(b,"className",{enumerable:!0,configurable:!0,writable:!0,value:"XYChart"}),Object.defineProperty(b,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:n.S.classNames.concat([b.className])});class x extends s.e{_beforeChanged(){super._beforeChanged(),(this.isPrivateDirty("width")||this.isPrivateDirty("height"))&&(this._clear=!0)}}Object.defineProperty(x,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Grid"}),Object.defineProperty(x,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.e.classNames.concat([x.className])});class f extends s.g{constructor(){super(...arguments),Object.defineProperty(this,"lineX",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(x.new(this._root,{themeTags:["x"]}))}),Object.defineProperty(this,"lineY",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(x.new(this._root,{themeTags:["y"]}))}),Object.defineProperty(this,"selection",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(s.e.new(this._root,{themeTags:["selection","cursor"],layer:30}))}),Object.defineProperty(this,"_movePoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_lastPoint",{enumerable:!0,configurable:!0,writable:!0,value:{x:0,y:0}}),Object.defineProperty(this,"_tooltipX",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_tooltipY",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"chart",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_toX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_toY",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}_afterNew(){this._settings.themeTags=(0,s.m)(this._settings.themeTags,["xy","cursor"]),super._afterNew(),this.setAll({width:s.a,height:s.a,isMeasured:!0,position:"absolute"}),this.states.create("hidden",{visible:!0,opacity:0}),this._drawLines(),this.setPrivateRaw("visible",!1),this._disposers.push(this.setTimeout((()=>{this.setPrivate("visible",!0)}),500)),this._disposers.push(this.lineX.events.on("positionchanged",(()=>{this._handleXLine()}))),this._disposers.push(this.lineY.events.on("positionchanged",(()=>{this._handleYLine()}))),this._disposers.push(this.lineX.events.on("focus",(t=>this._handleLineFocus(t.target)))),this._disposers.push(this.lineX.events.on("blur",(t=>this._handleLineBlur(t.target)))),this._disposers.push(this.lineY.events.on("focus",(t=>this._handleLineFocus(t.target)))),this._disposers.push(this.lineY.events.on("blur",(t=>this._handleLineBlur(t.target)))),(0,s.af)("keyboardevents")&&this._disposers.push((0,s.h)(document,"keydown",(t=>{this._handleLineMove(t.keyCode)})))}_setUpTouch(){const t=this.chart;t&&(t.plotContainer._display.cancelTouch="none"!=this.get("behavior"))}_handleXLine(){let t=this.lineX.x(),e=!0;(t<0||t>this.width())&&(e=!1),this.lineX.setPrivate("visible",e)}_handleYLine(){let t=this.lineY.y(),e=!0;(t<0||t>this.height())&&(e=!1),this.lineY.setPrivate("visible",e)}_handleLineMove(t){let e="",i=0,s=.1;const a=this.chart;this._root.focused(this.lineX)?(a&&a.xAxes.length&&(s=a.xAxes.getIndex(0).getCellWidthPosition()),i=this.getPrivate("positionX",0),e="positionX",37==t?i-=s:39==t&&(i+=s)):this._root.focused(this.lineY)&&(a&&a.yAxes.length&&(s=a.yAxes.getIndex(0).getCellWidthPosition()),i=this.getPrivate("positionY",0),e="positionY",38==t?i-=s:40==t&&(i+=s)),i<0?i=0:i>1&&(i=1),""!=e&&this.set(e,i)}_handleLineFocus(t){this.setAll({positionX:this.getPrivate("positionX"),positionY:this.getPrivate("positionY"),alwaysShow:!0})}_handleLineBlur(t){this.setAll({positionX:void 0,positionY:void 0,alwaysShow:!1})}_prepareChildren(){if(super._prepareChildren(),this.isDirty("xAxis")){this._tooltipX=!1;const t=this.get("xAxis");if(t){const e=t.get("tooltip");e&&(this._tooltipX=!0,this._disposers.push(e.on("pointTo",(()=>{this._updateXLine(e)}))))}}if(this.isDirty("yAxis")){this._tooltipY=!1;const t=this.get("yAxis");if(t){const e=t.get("tooltip");e&&(this._tooltipY=!0,this._disposers.push(e.on("pointTo",(()=>{this._updateYLine(e)}))))}}}_handleSyncWith(){const t=this.chart;if(t){const e=this.get("syncWith"),i=[];e&&(0,s.i)(e,(t=>{const e=t.chart;e&&i.push(e)})),t._otherCharts=i}}_updateChildren(){if(super._updateChildren(),this._handleSyncWith(),this.isDirty("positionX")||this.isDirty("positionY")){const t=this.get("positionX"),e=this.get("positionY");null==t&&null==e?this.hide(0):(this._movePoint=this.toGlobal(this._getPoint(this.get("positionX",0),this.get("positionY",0))),this.handleMove())}}_updateXLine(t){let e=(0,s.aH)(this._display.toLocal(t.get("pointTo",{x:0,y:0})).x,2);this._toX!=e&&(this.lineX.animate({key:"x",to:e,duration:t.get("animationDuration",0),easing:t.get("animationEasing")}),this._toX=e)}_updateYLine(t){let e=(0,s.aH)(this._display.toLocal(t.get("pointTo",{x:0,y:0})).y,2);this._toY!=e&&(this.lineY.animate({key:"y",to:e,duration:t.get("animationDuration",0),easing:t.get("animationEasing")}),this._toY=e)}_drawLines(){this.lineX.set("draw",(t=>{t.moveTo(0,0),t.lineTo(0,this.height())})),this.lineY.set("draw",(t=>{t.moveTo(0,0),t.lineTo(this.width(),0)}))}updateCursor(){this.get("alwaysShow")&&(this._movePoint=this.toGlobal(this._getPoint(this.get("positionX",0),this.get("positionY",0)))),this.handleMove()}_setChart(t){this.chart=t,this._handleSyncWith();const e=t.plotContainer;this.events.on("boundschanged",(()=>{this._disposers.push(this.setTimeout((()=>{this.updateCursor()}),50))})),(0,s.af)("touchevents")&&(this._disposers.push(e.events.on("click",(t=>{(0,s.aK)(t.originalEvent)&&this._handleMove(t)}))),this._setUpTouch()),this._disposers.push(e.events.on("pointerdown",(t=>{this._handleCursorDown(t)}))),this._disposers.push(e.events.on("globalpointerup",(t=>{this._handleCursorUp(t),t.native||this.isHidden()||this._handleMove(t)}))),this._disposers.push(e.events.on("globalpointermove",(t=>{(this.get("syncWith")||0!=(0,s.H)(e._downPoints).length||t.native||!this.isHidden())&&this._handleMove(t)})));const i=this.parent;i&&i.children.moveValue(this.selection)}_inPlot(t){const e=this.chart;return!!e&&e.inPlot(t)}_handleCursorDown(t){if(2==t.originalEvent.button)return;const e=t.point;let i=this._display.toLocal(e);const s=this.chart;if(this.selection.set("draw",(()=>{})),s&&this._inPlot(i)){if(this._downPoint=i,"none"!=this.get("behavior")){this.selection.show();const e="selectstarted";this.events.isEnabled(e)&&this.events.dispatch(e,{type:e,target:this,originalEvent:t.originalEvent})}let e=this._getPosition(i).x,s=this._getPosition(i).y;this.setPrivate("downPositionX",e),this.setPrivate("downPositionY",s)}}_handleCursorUp(t){if(this._downPoint){const e=this.get("behavior","none");if("none"!=e){"z"===e.charAt(0)&&this.selection.hide();const i=t.point;let s=this._display.toLocal(i);const a=this._downPoint,o=this.get("moveThreshold",1);if(s&&a){let i=!1;if("zoomX"!==e&&"zoomXY"!==e&&"selectX"!==e&&"selectXY"!==e||Math.abs(s.x-a.x)>o&&(i=!0),"zoomY"!==e&&"zoomXY"!==e&&"selectY"!==e&&"selectXY"!==e||Math.abs(s.y-a.y)>o&&(i=!0),i){const e="selectended";this.events.isEnabled(e)&&this.events.dispatch(e,{type:e,target:this,originalEvent:t.originalEvent})}else{const e="selectcancelled";this.events.isEnabled(e)&&this.events.dispatch(e,{type:e,target:this,originalEvent:t.originalEvent})}}}}this._downPoint=void 0}_handleMove(t){if(this.getPrivate("visible")){const e=this.chart;if(e&&(0,s.H)(e.plotContainer._downPoints).length>1)return void this.set("forceHidden",!0);this.set("forceHidden",!1);const i=t.point,a=this._lastPoint;if(Math.round(a.x)===Math.round(i.x)&&Math.round(a.y)===Math.round(i.y))return;this._lastPoint=i,this.setPrivate("lastPoint",i),this.handleMove({x:i.x,y:i.y},!1,t.originalEvent)}}_getPosition(t){return{x:t.x/this.width(),y:t.y/this.height()}}handleMove(t,e,i){t||(t=this._movePoint);const a=this.get("alwaysShow");if(!t)return void this.hide(0);this._movePoint=t;let o=this._display.toLocal(t),n=this.chart;if(n&&(this._inPlot(o)||this._downPoint)){n._movePoint=t,this.isHidden()&&(this.show(),"z"==this.get("behavior","").charAt(0)&&this.selection.set("draw",(()=>{})));let r=o.x,l=o.y,h=this._getPosition(o);this.setPrivate("point",o);let d=this.get("snapToSeries");this._downPoint&&(d=void 0);let c=this.get("positionX"),u=h.x;(0,s.k)(c)&&(u=c);let g=this.get("positionY"),p=h.y;(0,s.k)(g)&&(p=g),this.setPrivate("positionX",u),this.setPrivate("positionY",p);const m=this._getPoint(u,p);if(r=m.x,l=m.y,n.xAxes.each((t=>{t._handleCursorPosition(u,d),a&&t.handleCursorShow()})),n.yAxes.each((t=>{t._handleCursorPosition(p,d),a&&t.handleCursorShow()})),!e){n._handleCursorPosition();const e="cursormoved";this.events.isEnabled(e)&&this.events.dispatch(e,{type:e,target:this,point:t,originalEvent:i})}this._updateLines(r,l),n.arrangeTooltips()}else if(!this._downPoint&&!a){this.hide(0);const t="cursorhidden";this.events.isEnabled(t)&&this.events.dispatch(t,{type:t,target:this})}this._downPoint&&"none"!=this.get("behavior")&&this._updateSelection(o)}_getPoint(t,e){return{x:this.width()*t,y:this.height()*e}}_updateLines(t,e){this._tooltipX||this.lineX.set("x",t),this._tooltipY||this.lineY.set("y",e),this._drawLines()}_updateSelection(t){const e=this.selection,i=this.get("behavior"),s=this.width(),a=this.height();t.x<0&&(t.x=0),t.x>s&&(t.x=s),t.y<0&&(t.y=0),t.y>a&&(t.y=a),e.set("draw",(e=>{const o=this._downPoint;o&&("zoomXY"===i||"selectXY"===i?(e.moveTo(o.x,o.y),e.lineTo(o.x,t.y),e.lineTo(t.x,t.y),e.lineTo(t.x,o.y),e.lineTo(o.x,o.y)):"zoomX"===i||"selectX"===i?(e.moveTo(o.x,0),e.lineTo(o.x,a),e.lineTo(t.x,a),e.lineTo(t.x,0),e.lineTo(o.x,0)):"zoomY"!==i&&"selectY"!==i||(e.moveTo(0,o.y),e.lineTo(s,o.y),e.lineTo(s,t.y),e.lineTo(0,t.y),e.lineTo(0,o.y)))}))}_onHide(){if(this.isHidden()){let t=this.chart;t&&(t.xAxes.each((t=>{t.handleCursorHide()})),t.yAxes.each((t=>{t.handleCursorHide()})),t.series.each((t=>{t.handleCursorHide()})))}super._onHide()}_onShow(){if(!this.isHidden()){let t=this.chart;t&&(t.xAxes.each((t=>{t.handleCursorShow()})),t.yAxes.each((t=>{t.handleCursorShow()})))}super._onShow()}_dispose(){super._dispose(),this.selection.dispose()}}Object.defineProperty(f,"className",{enumerable:!0,configurable:!0,writable:!0,value:"XYCursor"}),Object.defineProperty(f,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.g.classNames.concat([f.className])});class v extends n.a{constructor(){super(...arguments),Object.defineProperty(this,"_xField",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_yField",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_xOpenField",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_yOpenField",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_xLowField",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_xHighField",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_yLowField",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_yHighField",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_axesDirty",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_stackDirty",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_selectionProcessed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_dataSets",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_mainContainerMask",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_x",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_y",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_bullets",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"mainContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(s.g.new(this._root,{}))}),Object.defineProperty(this,"axisRanges",{enumerable:!0,configurable:!0,writable:!0,value:new s.F}),Object.defineProperty(this,"_skipped",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_couldStackTo",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_reallyStackedTo",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_stackedSeries",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_aLocationX0",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_aLocationX1",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"_aLocationY0",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_aLocationY1",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"_showBullets",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"valueXFields",{enumerable:!0,configurable:!0,writable:!0,value:["valueX","openValueX","lowValueX","highValueX"]}),Object.defineProperty(this,"valueYFields",{enumerable:!0,configurable:!0,writable:!0,value:["valueY","openValueY","lowValueY","highValueY"]}),Object.defineProperty(this,"_valueXFields",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_valueYFields",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_valueXShowFields",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_valueYShowFields",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"__valueXShowFields",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"__valueYShowFields",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_emptyDataItem",{enumerable:!0,configurable:!0,writable:!0,value:new n.D(this,void 0,{})}),Object.defineProperty(this,"_dataSetId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tooltipFieldX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tooltipFieldY",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_posXDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_posYDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}_afterNew(){this.fields.push("categoryX","categoryY","openCategoryX","openCategoryY"),this.valueFields.push("valueX","valueY","openValueX","openValueY","lowValueX","lowValueY","highValueX","highValueY"),this._setRawDefault("vcx",1),this._setRawDefault("vcy",1),this._setRawDefault("valueXShow","valueXWorking"),this._setRawDefault("valueYShow","valueYWorking"),this._setRawDefault("openValueXShow","openValueXWorking"),this._setRawDefault("openValueYShow","openValueYWorking"),this._setRawDefault("lowValueXShow","lowValueXWorking"),this._setRawDefault("lowValueYShow","lowValueYWorking"),this._setRawDefault("highValueXShow","highValueXWorking"),this._setRawDefault("highValueYShow","highValueYWorking"),this._setRawDefault("lowValueXGrouped","low"),this._setRawDefault("lowValueYGrouped","low"),this._setRawDefault("highValueXGrouped","high"),this._setRawDefault("highValueYGrouped","high"),super._afterNew(),this.set("maskContent",!0),this._disposers.push(this.axisRanges.events.onAll((t=>{if("clear"===t.type)(0,s.i)(t.oldValues,(t=>{this._removeAxisRange(t)}));else if("push"===t.type)this._processAxisRange(t.newValue);else if("setIndex"===t.type)this._processAxisRange(t.newValue);else if("insertIndex"===t.type)this._processAxisRange(t.newValue);else if("removeIndex"===t.type)this._removeAxisRange(t.oldValue);else{if("moveIndex"!==t.type)throw new Error("Unknown IStreamEvent type");this._processAxisRange(t.value)}}))),this.states.create("hidden",{opacity:1,visible:!1}),this.onPrivate("startIndex",(()=>{this.updateLegendValue()})),this.onPrivate("endIndex",(()=>{this.updateLegendValue()})),this._makeFieldNames()}_processAxisRange(t){const e=s.g.new(this._root,{});t.container=e,this.children.push(e),t.series=this;const i=t.axisDataItem;i.setRaw("isRange",!0);const a=i.component;if(a){a._processAxisRange(i,["range","series"]);const t=i.get("bullet");if(t){const e=t.get("sprite");e&&e.setPrivate("visible",!1)}const s=i.get("axisFill");s&&e.set("mask",s),a._seriesAxisRanges.push(i)}}_removeAxisRange(t){const e=t.axisDataItem,i=e.component;i.disposeDataItem(e),(0,s.r)(i._seriesAxisRanges,e);const a=t.container;a&&a.dispose()}_updateFields(){super._updateFields(),this._valueXFields=[],this._valueYFields=[],this._valueXShowFields=[],this._valueYShowFields=[],this.__valueXShowFields=[],this.__valueYShowFields=[],this.valueXFields&&(0,s.i)(this.valueXFields,(t=>{if(this.get(t+"Field")){this._valueXFields.push(t);let e=this.get(t+"Show");this.__valueXShowFields.push(e),-1!=e.indexOf("Working")?this._valueXShowFields.push(e.split("Working")[0]):this._valueXShowFields.push(e)}})),this.valueYFields&&(0,s.i)(this.valueYFields,(t=>{if(this.get(t+"Field")){this._valueYFields.push(t);let e=this.get(t+"Show");this.__valueYShowFields.push(e),-1!=e.indexOf("Working")?this._valueYShowFields.push(e.split("Working")[0]):this._valueYShowFields.push(e)}}))}_dispose(){super._dispose(),this._bullets={};const t=this.chart;t&&t.series.removeValue(this),(0,s.al)(this.get("xAxis").series,this),(0,s.al)(this.get("yAxis").series,this)}_min(t,e){let i=function(t,e){return null==t?e:null==e?t:et?e:t}(this.getPrivate(t),e);this.setPrivate(t,i)}_shouldMakeBullet(t){const e=this.get("xAxis"),i=this.get("yAxis"),s=this.get("baseAxis");if(!e.inited||!i.inited)return!1;const a=this.get("minBulletDistance",0);if(a>0){let t=this.startIndex(),o=this.endIndex()-t;if(e==s){if(e.get("renderer").axisLength()/o{(0,s.i)(this._valueXShowFields,(t=>{let e=i.get(t);null!=e&&(n&&(e+=this.getStackedXValue(i,t)),this._min("minX",e),this._max("maxX",e))})),(0,s.i)(this._valueYShowFields,(t=>{let e=i.get(t);null!=e&&(n&&(e+=this.getStackedYValue(i,t)),this._min("minY",e),this._max("maxY",e))})),t.processSeriesDataItem(i,this._valueXFields),e.processSeriesDataItem(i,this._valueYFields)})),t._seriesValuesDirty=!0,e._seriesValuesDirty=!0,this.get("ignoreMinMax")||((this.isPrivateDirty("minX")||this.isPrivateDirty("maxX"))&&t.markDirtyExtremes(),(this.isPrivateDirty("minY")||this.isPrivateDirty("maxY"))&&e.markDirtyExtremes()),this._markStakedDirtyStack(),this.get("tooltipDataItem")||this.updateLegendValue(void 0)),(this.isDirty("vcx")||this.isDirty("vcy"))&&this._markStakedDirtyStack(),this._dataGrouped||(t._groupSeriesData(this),e._groupSeriesData(this),this._dataGrouped=!0),this._valuesDirty||this.isPrivateDirty("startIndex")||this.isPrivateDirty("adjustedStartIndex")||this.isPrivateDirty("endIndex")||this.isDirty("vcx")||this.isDirty("vcy")||this._stackDirty||this._sizeDirty){let s=this.startIndex(),a=this.endIndex(),o=this.get("minBulletDistance",0);if(o>0&&i&&(i.get("renderer").axisLength()/(a-s)>o?this._showBullets=!0:this._showBullets=!1),(this._psi!=s||this._pei!=a||this.isDirty("vcx")||this.isDirty("vcy")||this.isPrivateDirty("adjustedStartIndex")||this._stackDirty||this._valuesDirty)&&!this._selectionProcessed){this._selectionProcessed=!0;const o=this.get("vcx",1),n=this.get("vcy",1),r=this.get("stacked",!1),l=this.getPrivate("outOfSelection");if(i===t||!i)if(e._calculateTotals(),this.setPrivateRaw("selectionMinY",void 0),this.setPrivateRaw("selectionMaxY",void 0),l)e.markDirtySelectionExtremes();else for(let t=s;t0){let t=this._mainContainerMask;null==t&&(t=this.children.push(s.e.new(this._root,{})),this._mainContainerMask=t,t.set("draw",((e,i)=>{const s=this.parent;if(s){const t=this._root.container.width(),a=this._root.container.height();e.moveTo(-t,-a),e.lineTo(-t,2*a),e.lineTo(2*t,2*a),e.lineTo(2*t,-a),e.lineTo(-t,-a),this.axisRanges.each((t=>{const a=t.axisDataItem.get("axisFill");if(s&&a){let t=a.get("draw");t&&t(e,i)}}))}this.mainContainer._display.mask=t._display}))),t.markDirty(),t._markDirtyKey("fill")}else this.mainContainer._display.mask=null}_updateChildren(){super._updateChildren(),this._x=this.x(),this._y=this.y(),this._makeRangeMask()}_stack(){const t=this.chart;if(t){const e=t.series.indexOf(this);if(this._couldStackTo=[],e>0){let i;for(let s=e-1;s>=0&&(i=t.series.getIndex(s),i.get("xAxis")!==this.get("xAxis")||i.get("yAxis")!==this.get("yAxis")||i.className!==this.className||(this._couldStackTo.push(i),i.get("stacked")));s--);}this._stackDataItems()}}_unstack(){(0,s._)(this._reallyStackedTo,((t,e)=>{delete e._stackedSeries[this.uid]})),this._reallyStackedTo={},(0,s.i)(this.dataItems,(t=>{t.setRaw("stackToItemY",void 0),t.setRaw("stackToItemX",void 0)}))}_stackDataItems(){const t=this.get("baseAxis"),e=this.get("xAxis"),i=this.get("yAxis");let a,o;t===e?(a="valueY",o="stackToItemY"):t===i&&(a="valueX",o="stackToItemX");let n=this._couldStackTo.length,r=0;const l=this.get("stackToNegative");this._reallyStackedTo={},(0,s.i)(this.dataItems,(t=>{for(let e=0;e=0&&e>=0){t.setRaw(o,n),this._reallyStackedTo[i.uid]=i,i._stackedSeries[this.uid]=this;break}if(h<0&&e<0){t.setRaw(o,n),this._reallyStackedTo[i.uid]=i,i._stackedSeries[this.uid]=this;break}}}else if((0,s.k)(h)&&(0,s.k)(e)){t.setRaw(o,n),this._reallyStackedTo[i.uid]=i,i._stackedSeries[this.uid]=this;break}}}r++}))}processXSelectionDataItem(t,e,i){(0,s.i)(this.__valueXShowFields,(s=>{let a=t.get(s);null!=a&&(i&&(a+=this.getStackedXValueWorking(t,s)),this._min("selectionMinX",a),this._max("selectionMaxX",a*e))}))}processYSelectionDataItem(t,e,i){(0,s.i)(this.__valueYShowFields,(s=>{let a=t.get(s);null!=a&&(i&&(a+=this.getStackedYValueWorking(t,s)),this._min("selectionMinY",a),this._max("selectionMaxY",a*e))}))}getStackedYValueWorking(t,e){const i=t.get("stackToItemY");if(i){const t=i.component;return i.get(e,0)*t.get("vcy",1)+this.getStackedYValueWorking(i,e)}return 0}getStackedXValueWorking(t,e){const i=t.get("stackToItemX");if(i){const t=i.component;return i.get(e,0)*t.get("vcx",1)+this.getStackedXValueWorking(i,e)}return 0}getStackedYValue(t,e){const i=t.get("stackToItemY");return i?i.get(e,0)+this.getStackedYValue(i,e):0}getStackedXValue(t,e){const i=t.get("stackToItemX");return i?i.get(e,0)+this.getStackedXValue(i,e):0}createLegendMarker(t){this.updateLegendMarker()}_markDirtyAxes(){this._axesDirty=!0,this.markDirty()}_markDataSetDirty(){this._afterDataChange(),this._valuesDirty=!0,this._dataProcessed=!1,this._aggregatesCalculated=!1,this.markDirty()}_clearDirty(){super._clearDirty(),this._axesDirty=!1,this._selectionProcessed=!1,this._stackDirty=!1,this._dataProcessed=!1}_positionBullet(t){let e=t.get("sprite");if(e){let i=e.dataItem,s=t.get("locationX",i.get("locationX",.5)),a=t.get("locationY",i.get("locationY",.5)),o=this.get("xAxis"),n=this.get("yAxis"),r=o.getDataItemPositionX(i,this._xField,s,this.get("vcx",1)),l=n.getDataItemPositionY(i,this._yField,a,this.get("vcy",1)),h=this.getPoint(r,l),d=i.get("left",h.x),c=i.get("right",h.x),u=i.get("top",h.y),g=i.get("bottom",h.y),p=0,m=0,_=c-d,b=g-u;if(this._shouldShowBullet(r,l)){e.setPrivate("visible",!t.getPrivate("hidden"));let o=t.get("field");const n=this.get("baseAxis"),c=this.get("xAxis"),u=this.get("yAxis");if(null!=o){let t;n==c?("value"==o?t=this._yField:"open"==o?t=this._yOpenField:"high"==o?t=this._yHighField:"low"==o&&(t=this._yLowField),t&&(l=u.getDataItemPositionY(i,t,0,this.get("vcy",1)),h=u.get("renderer").positionToPoint(l),m=h.y,p=d+_*s)):("value"==o?t=this._xField:"open"==o?t=this._xOpenField:"high"==o?t=this._xHighField:"low"==o&&(t=this._xLowField),t&&(r=c.getDataItemPositionX(i,t,0,this.get("vcx",1)),h=c.get("renderer").positionToPoint(r),p=h.x,m=g-b*a))}else p=d+_*s,m=g-b*a;const x=t.get("stacked");if(x){const t=this.chart;if(n==c){let i=this._bullets[r+"_"+l];if(i){let s=i.bounds(),a=e.localBounds(),o=m;m=s.top,"down"==x?m=s.bottom-a.top:"auto"==x?t&&(o{e!=this._mainDataItems&&(0,s.i)(e,(t=>{this.disposeDataItem(t)}))})),this._dataSets={},this._dataItems=this.mainDataItems}_handleDataSetChange(){(0,s.i)(this._dataItems,(t=>{let e=t.bullets;e&&(0,s.i)(e,(t=>{if(t){let e=t.get("sprite");e&&e.setPrivate("visible",!1)}}))})),this._selectionProcessed=!1}show(t){const e=Object.create(null,{show:{get:()=>super.show}});return(0,l.b)(this,void 0,void 0,(function*(){this._fixVC();let i=[];i.push(e.show.call(this,t).then((()=>{this._isShowing=!1;let t=this.get("xAxis"),e=this.get("yAxis"),i=this.get("baseAxis");e!==i&&e.markDirtySelectionExtremes(),t!==i&&t.markDirtySelectionExtremes()}))),i.push(this.bulletsContainer.show(t)),i.push(this._sequencedShowHide(!0,t)),yield Promise.all(i)}))}hide(t){const e=Object.create(null,{hide:{get:()=>super.hide}});return(0,l.b)(this,void 0,void 0,(function*(){this._fixVC();let i=[];i.push(e.hide.call(this,t).then((()=>{this._isHiding=!1}))),i.push(this.bulletsContainer.hide(t)),i.push(this._sequencedShowHide(!1,t)),yield Promise.all(i)}))}showDataItem(t,e){const i=Object.create(null,{showDataItem:{get:()=>super.showDataItem}});return(0,l.b)(this,void 0,void 0,(function*(){const a=[i.showDataItem.call(this,t,e)];(0,s.k)(e)||(e=this.get("stateAnimationDuration",0));const o=this.get("stateAnimationEasing");(0,s.i)(this._valueFields,(i=>{a.push(t.animate({key:i+"Working",to:t.get(i),duration:e,easing:o}).waitForStop())})),yield Promise.all(a)}))}hideDataItem(t,e){const i=Object.create(null,{hideDataItem:{get:()=>super.hideDataItem}});return(0,l.b)(this,void 0,void 0,(function*(){const a=[i.hideDataItem.call(this,t,e)],o=this.states.create("hidden",{});(0,s.k)(e)||(e=o.get("stateAnimationDuration",this.get("stateAnimationDuration",0)));const n=o.get("stateAnimationEasing",this.get("stateAnimationEasing")),r=this.get("xAxis"),l=this.get("yAxis"),h=this.get("baseAxis"),d=this.get("stacked");if(h!==r&&h||(0,s.i)(this._valueYFields,(i=>{let o=l.getPrivate("min"),r=l.baseValue();(0,s.k)(o)&&o>r&&(r=o),d&&(r=0),null!=t.get(i)&&a.push(t.animate({key:i+"Working",to:r,duration:e,easing:n}).waitForStop())})),h===l||!h){let i=r.getPrivate("min"),o=r.baseValue();(0,s.k)(i)&&i>o&&(o=i),d&&(o=0),(0,s.i)(this._valueXFields,(i=>{null!=t.get(i)&&a.push(t.animate({key:i+"Working",to:o,duration:e,easing:n}).waitForStop())}))}yield Promise.all(a)}))}_markDirtyStack(){this._stackDirty=!0,this.markDirty(),this._markStakedDirtyStack()}_markStakedDirtyStack(){const t=this._stackedSeries;t&&(0,s._)(t,((t,e)=>{e._stackDirty||e._markDirtyStack()}))}_afterChanged(){super._afterChanged(),this._skipped&&(this._markDirtyAxes(),this._skipped=!1)}showDataItemTooltip(t){this.getPrivate("doNotUpdateLegend")||(this.updateLegendMarker(t),this.updateLegendValue(t));const e=this.get("tooltip");if(e)if(this.isHidden())this.hideTooltip();else if(e._setDataItem(t),t){let i=this.get("locationX",0),a=this.get("locationY",1),o=t.get("locationX",i),n=t.get("locationY",a);const r=this.get("xAxis"),l=this.get("yAxis"),h=this.get("vcx",1),d=this.get("vcy",1),c=r.getDataItemPositionX(t,this._tooltipFieldX,this._aLocationX0+(this._aLocationX1-this._aLocationX0)*o,h),u=l.getDataItemPositionY(t,this._tooltipFieldY,this._aLocationY0+(this._aLocationY1-this._aLocationY0)*n,d),g=this.getPoint(c,u);let p=!0;if((0,s.i)(this._valueFields,(e=>{null==t.get(e)&&(p=!1)})),p){const i=this.chart;i&&i.inPlot(g)?(e.label.text.markDirtyText(),e.set("tooltipTarget",this._getTooltipTarget(t)),e.set("pointTo",this._display.toGlobal({x:g.x,y:g.y}))):e._setDataItem(void 0)}else e._setDataItem(void 0)}}hideTooltip(){const t=this.get("tooltip");return t&&t.set("tooltipTarget",this),super.hideTooltip()}_getTooltipTarget(t){if("bullet"==this.get("seriesTooltipTarget")){const e=t.bullets;if(e&&e.length>0){const t=e[0].get("sprite");if(t)return t}}return this}updateLegendValue(t){const e=this.get("legendDataItem");if(e){const i=e.get("label");if(i){let e="";t?(i._setDataItem(t),e=this.get("legendLabelText",i.get("text",this.get("name","")))):(i._setDataItem(this._emptyDataItem),e=this.get("legendRangeLabelText",this.get("legendLabelText",i.get("text",this.get("name",""))))),i.set("text",e)}const s=e.get("valueLabel");if(s){let e="";t?(s._setDataItem(t),e=this.get("legendValueText",s.get("text",""))):(s._setDataItem(this._emptyDataItem),e=this.get("legendRangeValueText",s.get("text",""))),s.set("text",e)}}}_getItemReaderLabel(){let t="X: {"+this._xField;return this.get("xAxis").isType("DateAxis")&&(t+=".formatDate()"),t+="}; Y: {"+this._yField,this.get("yAxis").isType("DateAxis")&&(t+=".formatDate()"),t+="}",t}getPoint(t,e){let i=this.get("xAxis").get("renderer").positionToCoordinate(t),s=this.get("yAxis").get("renderer").positionToCoordinate(e),a=999999999;return s<-a&&(s=-a),s>a&&(s=a),i<-a&&(i=-a),i>a&&(i=a),{x:i,y:s}}_shouldInclude(t){return!0}handleCursorHide(){this.hideTooltip(),this.updateLegendValue(void 0),this.updateLegendMarker(void 0)}_afterDataChange(){super._afterDataChange(),this.get("xAxis")._markDirtyKey("start"),this.get("yAxis")._markDirtyKey("start"),this.resetExtremes()}resetExtremes(){this.setPrivate("selectionMinX",void 0),this.setPrivate("selectionMaxX",void 0),this.setPrivate("selectionMinY",void 0),this.setPrivate("selectionMaxY",void 0),this.setPrivate("minX",void 0),this.setPrivate("minY",void 0),this.setPrivate("maxX",void 0),this.setPrivate("maxY",void 0)}createAxisRange(t){return this.axisRanges.push({axisDataItem:t})}get mainDataItems(){return this._mainDataItems}_adjustStartIndex(t){const e=this.get("xAxis");if(this.get("baseAxis")==e&&e.isType("DateAxis")){const i=e.baseDuration(),s=e.getPrivate("selectionMin",e.getPrivate("min",0)),a=i*this.get("locationX",.5);let o=-1/0;for(;o{if("clear"===t.type)(0,s.i)(t.oldValues,(t=>{this.disposeDataItem(t)}));else if("push"===t.type)this._processAxisRange(t.newValue,["range"]);else if("setIndex"===t.type)this._processAxisRange(t.newValue,["range"]);else if("insertIndex"===t.type)this._processAxisRange(t.newValue,["range"]);else if("removeIndex"===t.type)this.disposeDataItem(t.oldValue);else{if("moveIndex"!==t.type)throw new Error("Unknown IStreamEvent type");this._processAxisRange(t.value,["range"])}})));const t=this.get("renderer");t&&(t.axis=this,t.processAxis()),this.children.push(t),this.ghostLabel=t.makeLabel(new n.D(this,void 0,{}),[]),this.ghostLabel.adapters.disable("text"),this.ghostLabel.setAll({opacity:0,tooltipText:void 0,tooltipHTML:void 0,interactive:!1}),this.ghostLabel.events.disable()}_updateFinals(t,e){}zoom(t,e,i,a){if(this.get("zoomable",!0))if(this._updateFinals(t,e),this.get("start")!==t||this.get("end")!=e){let o=this._sAnimation,n=this._eAnimation,r=this.get("maxDeviation",.5)*Math.min(1,e-t);t<-r&&(t=-r),e>1+r&&(e=1+r),t>e&&([t,e]=[e,t]),(0,s.k)(i)||(i=this.get("interpolationDuration",0)),a||(a="end");let l=this.getPrivate("maxZoomFactor",this.get("maxZoomFactor",100)),h=l;1===e&&0!==t&&(a=tthis.get("end",1)?"end":"start");let d=this.get("minZoomCount",0),c=this.get("maxZoomCount",1/0);(0,s.k)(d)&&(l=h/d);let u=1;if((0,s.k)(c)&&(u=h/c),"start"===a?(c>0&&1/(e-t)l&&(e=t+1/l),e>1&&e-t<1/l&&(t=e-1/l)):(c>0&&1/(e-t)l&&(t=e-1/l),t<0&&e-t<1/l&&(e=t+1/l)),1/(e-t)>l&&(e=t+1/l),1/(e-t)>l&&(t=e-1/l),null!=c&&null!=d&&t==this.get("start")&&e==this.get("end")){const t=this.chart;t&&t._handleAxisSelection(this,!0)}if((o&&o.playing&&o.to==t||this.get("start")==t)&&(n&&n.playing&&n.to==e||this.get("end")==e))return;if(i>0){let s,a,o=this.get("interpolationEasing");if(this.get("start")!=t&&(s=this.animate({key:"start",to:t,duration:i,easing:o})),this.get("end")!=e&&(a=this.animate({key:"end",to:e,duration:i,easing:o})),this._sAnimation=s,this._eAnimation=a,s)return s;if(a)return a}else this.set("start",t),this.set("end",e),this._root.events.once("frameended",(()=>{this._markDirtyKey("start"),this._root._markDirty()}))}else this._sAnimation&&this._sAnimation.stop(),this._eAnimation&&this._eAnimation.stop()}get series(){return this._series}_processAxisRange(t,e){t.setRaw("isRange",!0),this._createAssets(t,e),this._rangesDirty=!0,this._prepareDataItem(t);const i=t.get("above"),s=this.topGridContainer,a=t.get("grid");i&&a&&s.children.moveValue(a);const o=t.get("axisFill");i&&o&&s.children.moveValue(o)}_prepareDataItem(t,e){}markDirtyExtremes(){}markDirtySelectionExtremes(){}_calculateTotals(){}_updateAxisRanges(){this._bullets={},this.axisRanges.each((t=>{this._prepareDataItem(t)})),(0,s.i)(this._seriesAxisRanges,(t=>{this._prepareDataItem(t)}))}_prepareChildren(){if(super._prepareChildren(),this.get("fixAxisSize")?this.ghostLabel.set("visible",!0):this.ghostLabel.set("visible",!1),this.isDirty("start")||this.isDirty("end")){const t=this.chart;t&&t._updateCursor();let e=this.get("start",0),i=this.get("end",1),s=this.get("maxDeviation",.5)*Math.min(1,i-e);if(e<-s){let t=e+s;e=-s,this.setRaw("start",e),this.isDirty("end")&&this.setRaw("end",i-t)}if(i>1+s){let t=i-1-s;i=1+s,this.setRaw("end",i),this.isDirty("start")&&this.setRaw("start",e-t)}}const t=this.get("renderer");if(t._start=this.get("start"),t._end=this.get("end"),t._inversed=t.get("inversed",!1),t._axisLength=t.axisLength()/(t._end-t._start),t._updateLC(),this.isDirty("tooltip")){const e=this.get("tooltip");if(e){const i=t.get("themeTags");e.addTag("axis"),e.addTag(this.className.toLowerCase()),e._applyThemes(),i&&(e.set("themeTags",(0,s.m)(e.get("themeTags"),i)),e.label._applyThemes())}}}_updateTooltipBounds(){const t=this.get("tooltip");t&&this.get("renderer").updateTooltipBounds(t)}_updateBounds(){super._updateBounds(),this._updateTooltipBounds()}processChart(t){this.chart=t,this.get("renderer").chart=t,t.gridContainer.children.push(this.gridContainer),t.topGridContainer.children.push(this.topGridContainer),t.axisHeadersContainer.children.push(this.axisHeader),this.on("start",(()=>{t._handleAxisSelection(this)})),this.on("end",(()=>{t._handleAxisSelection(this)})),t.plotContainer.onPrivate("width",(()=>{this.markDirtySize()})),t.plotContainer.onPrivate("height",(()=>{this.markDirtySize()})),t.processAxis(this)}hideDataItem(t){return this._toggleFHDataItem(t,!0),super.hideDataItem(t)}showDataItem(t){return this._toggleFHDataItem(t,!1),super.showDataItem(t)}_toggleFHDataItem(t,e){const i="forceHidden",s=t.get("label");s&&s.set(i,e);const a=t.get("grid");a&&a.set(i,e);const o=t.get("tick");o&&o.set(i,e);const n=t.get("axisFill");n&&n.set(i,e);const r=t.get("bullet");if(r){const t=r.get("sprite");t&&t.set(i,e)}}_toggleDataItem(t,e){const i=t.get("label"),s="visible";i&&i.setPrivate(s,e);const a=t.get("grid");a&&a.setPrivate(s,e);const o=t.get("tick");o&&o.setPrivate(s,e);const n=t.get("axisFill");n&&n.setPrivate(s,e);const r=t.get("bullet");if(r){const t=r.get("sprite");t&&t.setPrivate(s,e)}}_createAssets(t,e,i){var s,a,o;const n=this.get("renderer");let r="minor";const l=t.get("label");if(l){let a=l.get("themeTags"),o=!1;i?-1==(null==a?void 0:a.indexOf(r))&&(o=!0):-1!=(null==a?void 0:a.indexOf(r))&&(o=!0),o&&(null===(s=l.parent)||void 0===s||s.children.removeValue(l),n.makeLabel(t,e),l.dispose(),n.labels.removeValue(l))}else n.makeLabel(t,e);const h=t.get("grid");if(h){let s=h.get("themeTags"),o=!1;i?-1==(null==s?void 0:s.indexOf(r))&&(o=!0):-1!=(null==s?void 0:s.indexOf(r))&&(o=!0),o&&(null===(a=h.parent)||void 0===a||a.children.removeValue(h),n.makeGrid(t,e),h.dispose(),n.grid.removeValue(h))}else n.makeGrid(t,e);const d=t.get("tick");if(d){let s=!1,a=d.get("themeTags");i?-1==(null==a?void 0:a.indexOf(r))&&(s=!0):-1!=(null==a?void 0:a.indexOf(r))&&(s=!0),s&&(null===(o=d.parent)||void 0===o||o.children.removeValue(d),n.makeTick(t,e),d.dispose(),n.ticks.removeValue(d))}else n.makeTick(t,e);i||t.get("axisFill")||n.makeAxisFill(t,e),this._processBullet(t)}_processBullet(t){let e=t.get("bullet"),i=this.get("bullet");if(e||!i||t.get("isRange")||(e=i(this._root,this,t)),e){e.axis=this;const i=e.get("sprite");i&&(i._setDataItem(t),t.setRaw("bullet",e),i.parent||this.bulletsContainer.children.push(i))}}_afterChanged(){super._afterChanged();const t=this.chart;t&&(t._updateChartLayout(),t.axisHeadersContainer.markDirtySize()),this.get("renderer")._updatePositions(),this._seriesAdded=!1}disposeDataItem(t){super.disposeDataItem(t);const e=this.get("renderer"),i=t.get("label");i&&(e.labels.removeValue(i),i.dispose());const s=t.get("tick");s&&(e.ticks.removeValue(s),s.dispose());const a=t.get("grid");a&&(e.grid.removeValue(a),a.dispose());const o=t.get("axisFill");o&&(e.axisFills.removeValue(o),o.dispose());const n=t.get("bullet");n&&n.dispose()}_updateGhost(){this.setPrivate("cellWidth",this.getCellWidthPosition()*this.get("renderer").axisLength());const t=this.ghostLabel;if(!t.isHidden()){const e=t.localBounds(),i=Math.ceil(e.right-e.left);let a=t.get("text");(0,s.i)(this.dataItems,(t=>{const e=t.get("label");if(e&&!e.isHidden()){const t=e.localBounds();Math.ceil(t.right-t.left)>i&&(a=e.text._getText())}})),t.set("text",a)}let e=this.get("start",0),i=this.get("end",1);this.get("renderer").updateLabel(t,e+.5*(i-e))}_handleCursorPosition(t,e){t=this.get("renderer").toAxisPosition(t),this._cursorPosition=t,this._snapToSeries=e,this.updateTooltip()}updateTooltip(){const t=this._snapToSeries;let e=this._cursorPosition;const i=this.get("tooltip"),a=this.get("renderer");(0,s.k)(e)&&((0,s.i)(this.series,(i=>{if(i.get("baseAxis")===this){const s=this.getSeriesItem(i,e,this.get("tooltipLocation"));i.setRaw("tooltipDataItem",s),t&&-1!=t.indexOf(i)?(i.updateLegendMarker(s),i.updateLegendValue(s)):i.showDataItemTooltip(s)}})),i&&(a.updateTooltipBounds(i),this.get("snapTooltip")&&(e=this.roundAxisPosition(e,this.get("tooltipLocation",.5))),(0,s.q)(e)?i.hide(0):(this.setPrivateRaw("tooltipPosition",e),this._updateTooltipText(i,e),a.positionTooltip(i,e),ethis.get("end",1)?i.hide(0):i.show(0))))}_updateTooltipText(t,e){t.label.set("text",this.getTooltipText(e))}roundAxisPosition(t,e){return t}handleCursorShow(){let t=this.get("tooltip");t&&t.show()}handleCursorHide(){let t=this.get("tooltip");t&&t.hide()}processSeriesDataItem(t,e){}_clearDirty(){super._clearDirty(),this._sizeDirty=!1,this._rangesDirty=!1}coordinateToPosition(t){const e=this.get("renderer");return e.toAxisPosition(t/e.axisLength())}toAxisPosition(t){return this.get("renderer").toAxisPosition(t)}toGlobalPosition(t){return this.get("renderer").toGlobalPosition(t)}fixPosition(t){return this.get("renderer").fixPosition(t)}shouldGap(t,e,i,s){return!1}createAxisRange(t){return this.axisRanges.push(t)}_groupSeriesData(t){}getCellWidthPosition(){return.05}}Object.defineProperty(y,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Axis"}),Object.defineProperty(y,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:n.C.classNames.concat([y.className])});class P extends y{constructor(){super(...arguments),Object.defineProperty(this,"_dirtyExtremes",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_dirtySelectionExtremes",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_deltaMinMax",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"_minReal",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_maxReal",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_baseValue",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_syncDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_minLogAdjusted",{enumerable:!0,configurable:!0,writable:!0,value:1})}markDirtyExtremes(){this._dirtyExtremes=!0,this.markDirty()}markDirtySelectionExtremes(){this._dirtySelectionExtremes=!0,this.markDirty()}_afterNew(){this._settings.themeTags=(0,s.m)(this._settings.themeTags,["axis"]),this.setPrivateRaw("name","value"),this.addTag("value"),super._afterNew()}_prepareChildren(){if(super._prepareChildren(),this.isDirty("syncWithAxis")){this._prevSettings.syncWithAxis&&this._syncDp&&this._syncDp.dispose();let t=this.get("syncWithAxis");t&&(this._syncDp=new s.M([t.onPrivate("selectionMinFinal",(()=>{this._dirtySelectionExtremes=!0})),t.onPrivate("selectionMaxFinal",(()=>{this._dirtySelectionExtremes=!0}))]))}let t=!1;(this.isDirty("min")||this.isDirty("max")||this.isDirty("maxPrecision")||this.isDirty("numberFormat"))&&(t=!0,this.ghostLabel.set("text","")),(this._sizeDirty||this._dirtyExtremes||this._valuesDirty||t||this.isPrivateDirty("width")||this.isPrivateDirty("height")||this.isDirty("extraMin")||this.isDirty("extraMax")||this.isDirty("logarithmic")||this.isDirty("treatZeroAs")||this.isDirty("baseValue")||this.isDirty("strictMinMax")||this.isDirty("strictMinMaxSelection"))&&(this._getMinMax(),this._dirtyExtremes=!1),this._dirtySelectionExtremes&&!this._isPanning&&this.get("autoZoom",!0)&&(this._getSelectionMinMax(),this._dirtySelectionExtremes=!1),this._groupData(),(this._sizeDirty||this._valuesDirty||this.isDirty("start")||this.isDirty("end")||this.isPrivateDirty("min")||this.isPrivateDirty("selectionMax")||this.isPrivateDirty("selectionMin")||this.isPrivateDirty("max")||this.isPrivateDirty("step")||this.isPrivateDirty("width")||this.isPrivateDirty("height")||this.isDirty("logarithmic"))&&(this._handleRangeChange(),this._prepareAxisItems(),this._updateAxisRanges()),this._baseValue=this.baseValue()}_groupData(){}_formatText(t){const e=this.get("numberFormat"),i=this.getNumberFormatter();let s="";return s=e?i.format(t,e):i.format(t,void 0,this.getPrivate("stepDecimalPlaces")),s}_prepareAxisItems(){const t=this.getPrivate("min"),e=this.getPrivate("max");if((0,s.k)(t)&&(0,s.k)(e)){const e=this.get("logarithmic"),i=this.getPrivate("step"),a=this.getPrivate("selectionMin"),o=this.getPrivate("selectionMax")+i;let r=a-i,l=1,h=t;if(e){if(r=this._minLogAdjusted,r2&&(r=Math.pow(10,Math.log(h)*Math.LOG10E-5))}const d=this.get("renderer"),c=d.get("minorLabelsEnabled"),u=d.get("minorGridEnabled",c);let g=Math.pow(10,Math.floor(Math.log(Math.abs(i))*Math.LOG10E));const p=Math.round(i/g);let m=2;(0,s.aH)(p/5,10)%1==0&&(m=5),(0,s.aH)(p/10,10)%1==0&&(m=10);let _=i/m,b=0,x=0,f=-1/0;for(;r2?o=Math.pow(10,Math.log(h)*Math.LOG10E+b-5):o+=i,u){let t=r+_;for(e&&(l>2&&(_=this._adjustMinMax(r,o,10).step),t=r+_);t{t.inited&&t._markDirtyAxes()})),this._updateGhost()}}_prepareDataItem(t,e){let i=this.get("renderer"),a=t.get("value"),o=t.get("endValue"),n=this.valueToPosition(a),r=n,l=this.valueToPosition(a+this.getPrivate("step"));(0,s.k)(o)&&(r=this.valueToPosition(o),l=r),t.get("isRange")&&null==o&&(l=n);let h=r,d=t.get("labelEndValue");null!=d&&(h=this.valueToPosition(d)),i.updateLabel(t.get("label"),n,h,e);const c=t.get("grid");if(i.updateGrid(c,n,r),c&&(a==this.get("baseValue",0)?(c.addTag("base"),c._applyThemes()):c.hasTag("base")&&(c.removeTag("base"),c._applyThemes())),i.updateTick(t.get("tick"),n,h,e),i.updateFill(t.get("axisFill"),n,l),this._processBullet(t),i.updateBullet(t.get("bullet"),n,r),!t.get("isRange")){const e=this.get("fillRule");e&&e(t)}}_handleRangeChange(){let t=this.positionToValue(this.get("start",0)),e=this.positionToValue(this.get("end",1));const i=this.get("renderer").gridCount();let a=this._adjustMinMax(t,e,i,!0),o=(0,s.aM)(a.step);this.setPrivateRaw("stepDecimalPlaces",o),t=(0,s.aH)(t,o),e=(0,s.aH)(e,o),a=this._adjustMinMax(t,e,i,!0);let n=a.step;t=a.min,e=a.max,this.getPrivate("selectionMin")===t&&this.getPrivate("selectionMax")===e&&this.getPrivate("step")===n||(this.setPrivateRaw("selectionMin",t),this.setPrivateRaw("selectionMax",e),this.setPrivateRaw("step",n))}positionToValue(t){const e=this.getPrivate("min"),i=this.getPrivate("max");return this.get("logarithmic")?Math.pow(Math.E,(t*(Math.log(i)*Math.LOG10E-Math.log(e)*Math.LOG10E)+Math.log(e)*Math.LOG10E)/Math.LOG10E):t*(i-e)+e}valueToPosition(t){const e=this.getPrivate("min"),i=this.getPrivate("max");if(this.get("logarithmic")){if(t<=0){let e=this.get("treatZeroAs");(0,s.k)(e)&&(t=e)}return(Math.log(t)*Math.LOG10E-Math.log(e)*Math.LOG10E)/(Math.log(i)*Math.LOG10E-Math.log(e)*Math.LOG10E)}return(t-e)/(i-e)}valueToFinalPosition(t){const e=this.getPrivate("minFinal"),i=this.getPrivate("maxFinal");if(this.get("logarithmic")){if(t<=0){let e=this.get("treatZeroAs");(0,s.k)(e)&&(t=e)}return(Math.log(t)*Math.LOG10E-Math.log(e)*Math.LOG10E)/(Math.log(i)*Math.LOG10E-Math.log(e)*Math.LOG10E)}return(t-e)/(i-e)}getX(t,e,i){t=i+(t-i)*e;const s=this.valueToPosition(t);return this._settings.renderer.positionToCoordinate(s)}getY(t,e,i){t=i+(t-i)*e;const s=this.valueToPosition(t);return this._settings.renderer.positionToCoordinate(s)}getDataItemCoordinateX(t,e,i,s){return this._settings.renderer.positionToCoordinate(this.getDataItemPositionX(t,e,i,s))}getDataItemPositionX(t,e,i,s){let a=t.get(e);return a=t.get("stackToItemX")?a*s+t.component.getStackedXValueWorking(t,e):this._baseValue+(a-this._baseValue)*s,this.valueToPosition(a)}getDataItemCoordinateY(t,e,i,s){return this._settings.renderer.positionToCoordinate(this.getDataItemPositionY(t,e,i,s))}getDataItemPositionY(t,e,i,s){let a=t.get(e);return a=t.get("stackToItemY")?a*s+t.component.getStackedYValueWorking(t,e):this._baseValue+(a-this._baseValue)*s,this.valueToPosition(a)}basePosition(){return this.valueToPosition(this.baseValue())}baseValue(){const t=Math.min(this.getPrivate("minFinal",-1/0),this.getPrivate("selectionMin",-1/0)),e=Math.max(this.getPrivate("maxFinal",1/0),this.getPrivate("selectionMax",1/0));let i=this.get("baseValue",0);return ie&&(i=e),i}cellEndValue(t){return t}fixSmallStep(t){return 1+t===1?(t*=2,this.fixSmallStep(t)):t}_fixMin(t){return t}_fixMax(t){return t}_calculateTotals(){if(this.get("calculateTotals")){let t=this.series[0];if(t){let e=t.startIndex();if(t.dataItems.length>0){e>0&&e--;let i,a,o=t.endIndex();o{if(!i.get("excludeFromTotal")){let r=i.dataItems[t];if(r){let t=r.get(n)*i.get(a);(0,s.q)(t)||(e+=t,o+=Math.abs(t))}}})),(0,s.i)(this.series,(r=>{if(!r.get("excludeFromTotal")){let l=r.dataItems[t];if(l){let t=l.get(n)*r.get(a);(0,s.q)(t)||(l.set(i+"Total",o),l.set(i+"Sum",e),l.set(i+"TotalPercent",t/o*100))}}}))}}}}}_getSelectionMinMax(){const t=this.getPrivate("minFinal"),e=this.getPrivate("maxFinal"),i=this.get("min"),a=this.get("max");let o=this.get("extraMin",0),n=this.get("extraMax",0);this.get("logarithmic")&&(null==this.get("extraMin")&&(o=.1),null==this.get("extraMax")&&(n=.2));const r=this.get("renderer").gridCount(),l=this.get("strictMinMaxSelection");let h=this.get("strictMinMax");if((0,s.k)(t)&&(0,s.k)(e)){let d=e,c=t;if((0,s.i)(this.series,(t=>{if(!t.get("ignoreMinMax")){let e,i;const a=t.getPrivate("outOfSelection");if(t.get("xAxis")===this){if(!a){let s=t.getPrivate("minX"),a=t.getPrivate("maxX");0==t.startIndex()&&t.endIndex()==t.dataItems.length||(s=void 0,a=void 0),e=t.getPrivate("selectionMinX",s),i=t.getPrivate("selectionMaxX",a)}}else if(t.get("yAxis")===this&&!a){let s=t.getPrivate("minY"),a=t.getPrivate("maxY");0==t.startIndex()&&t.endIndex()==t.dataItems.length||(s=void 0,a=void 0),e=t.getPrivate("selectionMinY",s),i=t.getPrivate("selectionMaxY",a)}t.isHidden()||t.isShowing()||((0,s.k)(e)&&(d=Math.min(d,e)),(0,s.k)(i)&&(c=Math.max(c,i)))}})),this.axisRanges.each((t=>{if(t.get("affectsMinMax")){let e=t.get("value");null!=e&&(d=Math.min(d,e),c=Math.max(c,e)),e=t.get("endValue"),null!=e&&(d=Math.min(d,e),c=Math.max(c,e))}})),d>c&&([d,c]=[c,d]),(0,s.k)(i)?d=h?i:t:h&&(0,s.k)(this._minReal)&&(d=this._minReal),(0,s.k)(a)?c=h?a:e:h&&(0,s.k)(this._maxReal)&&(c=this._maxReal),d===c){let e=d;if(d-=this._deltaMinMax,c+=this._deltaMinMax,de&&(c=e));let _=Math.min(20,Math.ceil(Math.log(this.getPrivate("maxZoomFactor",100)+1)/Math.LN10)+2),b=(0,s.aH)(this.valueToFinalPosition(d),_),x=(0,s.aH)(this.valueToFinalPosition(c),_);this.setPrivateRaw("selectionMinFinal",d),this.setPrivateRaw("selectionMaxFinal",c),this.setPrivateRaw("selectionStepFinal",p.step),this.zoom(b,x)}}_getMinMax(){let t=this.get("min"),e=this.get("max"),i=1/0,a=-1/0,o=this.get("extraMin",0),n=this.get("extraMax",0);this.get("logarithmic")&&(null==this.get("extraMin")&&(o=.1),null==this.get("extraMax")&&(n=.2));let r=1/0;if((0,s.i)(this.series,(t=>{if(!t.get("ignoreMinMax")){let e,o;if(t.get("xAxis")===this?(e=t.getPrivate("minX"),o=t.getPrivate("maxX")):t.get("yAxis")===this&&(e=t.getPrivate("minY"),o=t.getPrivate("maxY")),(0,s.k)(e)&&(0,s.k)(o)){i=Math.min(i,e),a=Math.max(a,o);let t=o-e;t<=0&&(t=Math.abs(o/100)),t{if(t.get("affectsMinMax")){let e=t.get("value");null!=e&&(i=Math.min(i,e),a=Math.max(a,e)),e=t.get("endValue"),null!=e&&(i=Math.min(i,e),a=Math.max(a,e))}})),this.get("logarithmic")){let t=this.get("treatZeroAs");(0,s.k)(t)&&i<=0&&(i=t)}if(0===i&&0===a&&(a=.9,i=-.9),(0,s.k)(t)&&(i=t),(0,s.k)(e)&&(a=e),i===1/0||a===-1/0)return this.setPrivate("minFinal",void 0),void this.setPrivate("maxFinal",void 0);const l=i,h=a;let d=this.adapters.fold("min",i),c=this.adapters.fold("max",a);(0,s.k)(d)&&(i=d),(0,s.k)(c)&&(a=c),i=this._fixMin(i),a=this._fixMax(a),a-i<=1/Math.pow(10,15)&&(a-i!=0?this._deltaMinMax=(a-i)/2:this._getDelta(a),i-=this._deltaMinMax,a+=this._deltaMinMax),i-=(a-i)*o,a+=(a-i)*n,this.get("logarithmic")&&(i<0&&l>=0&&(i=0),a>0&&h<=0&&(a=0)),this._minReal=i,this._maxReal=a;let u=this.get("strictMinMax"),g=this.get("strictMinMaxSelection",!1);g&&(u=g);let p=u;(0,s.k)(e)&&(p=!0);let m=this.get("renderer").gridCount(),_=this._adjustMinMax(i,a,m,p);i=_.min,a=_.max,_=this._adjustMinMax(i,a,m,!0),i=_.min,a=_.max,u&&(i=(0,s.k)(t)?t:this._minReal,a=(0,s.k)(e)?e:this._maxReal,a-i<=1e-8&&(i-=this._deltaMinMax,a+=this._deltaMinMax),i-=(a-i)*o,a+=(a-i)*n),d=this.adapters.fold("min",i),c=this.adapters.fold("max",a),(0,s.k)(d)&&(i=d),(0,s.k)(c)&&(a=c),r==1/0&&(r=a-i);let b=Math.round(Math.abs(Math.log(Math.abs(a-i))*Math.LOG10E))+5;i=(0,s.aH)(i,b),a=(0,s.aH)(a,b);const x=this.get("syncWithAxis");if(x&&(_=this._syncAxes(i,a,_.step,x.getPrivate("minFinal",x.getPrivate("min",0)),x.getPrivate("maxFinal",x.getPrivate("max",1)),x.getPrivate("step",1)),i=_.min,a=_.max),this.setPrivateRaw("maxZoomFactor",Math.max(1,Math.ceil((a-i)/r*this.get("maxZoomFactor",100)))),this._fixZoomFactor(),this.get("logarithmic")&&(this._minLogAdjusted=i,i=this._minReal,a=this._maxReal,i<=0&&(i=l*(1-Math.min(o,.99)))),(0,s.k)(i)&&(0,s.k)(a)&&(this.getPrivate("minFinal")!==i||this.getPrivate("maxFinal")!==a)){this.setPrivate("minFinal",i),this.setPrivate("maxFinal",a),this._saveMinMax(i,a);const t=this.get("interpolationDuration",0),e=this.get("interpolationEasing");this.animatePrivate({key:"min",to:i,duration:t,easing:e}),this.animatePrivate({key:"max",to:a,duration:t,easing:e})}}_fixZoomFactor(){}_getDelta(t){let e=Math.log(Math.abs(t))*Math.LOG10E,i=Math.pow(10,Math.floor(e));i/=10,this._deltaMinMax=i}_saveMinMax(t,e){}_adjustMinMax(t,e,i,a){i<=1&&(i=1),i=Math.round(i);let o=t,n=e,r=e-t;0===r&&(r=Math.abs(e));let l=Math.log(Math.abs(r))*Math.LOG10E,h=Math.pow(10,Math.floor(l));h/=10;let d=h;a&&(d=0),a?(t=Math.floor(t/h)*h,e=Math.ceil(e/h)*h):(t=Math.ceil(t/h)*h-d,e=Math.floor(e/h)*h+d),t<0&&o>=0&&(t=0),e>0&&n<=0&&(e=0),l=Math.log(Math.abs(r))*Math.LOG10E,h=Math.pow(10,Math.floor(l)),h/=100;let c=Math.ceil(r/i/h)*h,u=Math.pow(10,Math.floor(Math.log(Math.abs(c))*Math.LOG10E)),g=Math.ceil(c/u);g>5?g=10:g<=5&&g>2&&(g=5),c=Math.ceil(c/(u*g))*u*g;let p=this.get("maxPrecision");if((0,s.k)(p)){let t=(0,s.aN)(c,p);po&&(t-=c),c=this.fixSmallStep(c),{min:t,max:e,step:c}}getTooltipText(t,e){const i=this.get("tooltipNumberFormat",this.get("numberFormat")),a=this.getNumberFormatter(),o=this.get("extraTooltipPrecision",0),n=this.getPrivate("stepDecimalPlaces",0)+o,r=(0,s.aH)(this.positionToValue(t),n);return i?a.format(r,i):a.format(r,void 0,n)}getSeriesItem(t,e){let i,a,o=this.getPrivate("name")+this.get("renderer").getPrivate("letter"),n=this.positionToValue(e);if((0,s.i)(t.dataItems,((t,e)=>{const s=Math.abs(t.get(o)-n);(void 0===i||s500&&(s=!0),s)t=n,e=l,i=d;else{a/3==Math.round(a/3)?(n=t-o*a,t>=0&&n<0&&(n=0)):(l=e+o*a,l<=0&&l>0&&(l=0));let i=this._adjustMinMax(n,l,h,!0);n=i.min,l=i.max,d=i.step}}}return{min:t,max:e,step:i}}_checkSync(t,e,i,a){let o=(e-t)/i;for(let t=1;tk._new(this._root,{themeTags:(0,s.m)(this.ticks.template.get("themeTags",[]),this.get("themeTags",[]))},[this.ticks.template])))}),Object.defineProperty(this,"grid",{enumerable:!0,configurable:!0,writable:!0,value:new s.t(s.u.new({}),(()=>x._new(this._root,{themeTags:(0,s.m)(this.grid.template.get("themeTags",[]),this.get("themeTags",[]))},[this.grid.template])))}),Object.defineProperty(this,"axisFills",{enumerable:!0,configurable:!0,writable:!0,value:new s.t(s.u.new({}),(()=>s.e._new(this._root,{themeTags:(0,s.m)(this.axisFills.template.get("themeTags",["axis","fill"]),this.get("themeTags",[]))},[this.axisFills.template])))}),Object.defineProperty(this,"labels",{enumerable:!0,configurable:!0,writable:!0,value:new s.t(s.u.new({}),(()=>w._new(this._root,{themeTags:(0,s.m)(this.labels.template.get("themeTags",[]),this.get("themeTags",[]))},[this.labels.template])))}),Object.defineProperty(this,"axis",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"thumb",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}makeTick(t,e){const i=this.ticks.make();return i._setDataItem(t),t.setRaw("tick",i),i.set("themeTags",(0,s.m)(i.get("themeTags"),e)),this.axis.labelsContainer.children.push(i),this.ticks.push(i),i}makeGrid(t,e){const i=this.grid.make();return i._setDataItem(t),t.setRaw("grid",i),i.set("themeTags",(0,s.m)(i.get("themeTags"),e)),this.axis.gridContainer.children.push(i),this.grid.push(i),i}makeAxisFill(t,e){const i=this.axisFills.make();return i._setDataItem(t),i.set("themeTags",(0,s.m)(i.get("themeTags"),e)),this.axis.gridContainer.children.push(i),t.setRaw("axisFill",i),this.axisFills.push(i),i}makeLabel(t,e){const i=this.labels.make();return i.set("themeTags",(0,s.m)(i.get("themeTags"),e)),this.axis.labelsContainer.children.moveValue(i,0),i._setDataItem(t),t.setRaw("label",i),this.labels.push(i),i}axisLength(){return 0}gridCount(){return this.axisLength()/this.get("minGridDistance",50)}_updatePositions(){}_afterNew(){super._afterNew(),this.set("isMeasured",!1);const t=this.thumb;t&&(this._disposers.push(t.events.on("pointerdown",(t=>{this._handleThumbDown(t)}))),this._disposers.push(t.events.on("globalpointerup",(t=>{this._handleThumbUp(t)}))),this._disposers.push(t.events.on("globalpointermove",(t=>{this._handleThumbMove(t)}))))}_beforeChanged(){super._beforeChanged(),this.isDirty("minGridDistance")&&this.root.events.once("frameended",(()=>{this.axis.markDirtySize()}))}_changed(){if(super._changed(),this.isDirty("pan")){const t=this.thumb;if(t){const e=this.axis.labelsContainer,i=this.get("pan");"zoom"==i?e.children.push(t):"none"==i&&e.children.removeValue(t)}}}_handleThumbDown(t){this._thumbDownPoint=this.toLocal(t.point);const e=this.axis;this._downStart=e.get("start"),this._downEnd=e.get("end")}_handleThumbUp(t){this._thumbDownPoint=void 0}_handleThumbMove(t){const e=this._thumbDownPoint;if(e){const i=this.toLocal(t.point),s=this._downStart,a=this._downEnd,o=this._getPan(i,e)*Math.min(1,a-s)/2;this.axis.zoom(s-o,a+o,0)}}_getPan(t,e){return 0}positionToCoordinate(t){return this._inversed?(this._end-t)*this._axisLength:(t-this._start)*this._axisLength}updateTooltipBounds(t){}_updateSize(){this.markDirty(),this._clear=!0}toAxisPosition(t){const e=this._start||0,i=this._end||1;return t*=i-e,this.get("inversed")?i-t:e+t}toGlobalPosition(t){const e=this._start||0,i=this._end||1;return this.get("inversed")?t=i-t:t-=e,t/(i-e)}fixPosition(t){return this.get("inversed")?1-t:t}_updateLC(){}toggleVisibility(t,e,i,s){let a=this.axis;const o=a.get("start",0),n=a.get("end",1);eo+(n-o)*(s+1e-4)?t.setPrivate("visible",!1):t.setPrivate("visible",!0)}_positionTooltip(t,e){const i=this.chart;i&&(t.set("pointTo",this._display.toGlobal(e)),i.inPlot(e)||t.hide())}processAxis(){}}Object.defineProperty(D,"className",{enumerable:!0,configurable:!0,writable:!0,value:"AxisRenderer"}),Object.defineProperty(D,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.e.classNames.concat([D.className])});class A extends D{constructor(){super(...arguments),Object.defineProperty(this,"thumb",{enumerable:!0,configurable:!0,writable:!0,value:s.R.new(this._root,{width:s.a,isMeasured:!1,themeTags:["axis","x","thumb"]})})}_afterNew(){this._settings.themeTags=(0,s.m)(this._settings.themeTags,["renderer","x"]),super._afterNew(),this.setPrivateRaw("letter","X");const t=this.grid.template;t.set("height",s.a),t.set("width",0),t.set("draw",((t,e)=>{t.moveTo(0,0),t.lineTo(0,e.height())})),this.set("draw",((t,e)=>{t.moveTo(0,0),t.lineTo(e.width(),0)}))}_changed(){super._changed();const t=this.axis;t.ghostLabel.setPrivate("visible",!this.get("inside")),t.ghostLabel.set("x",-1e3);const e="opposite",i="inside";if(this.isDirty(e)||this.isDirty(i)){const s=this.chart,a=t.children;if(this.get(i)?t.addTag(i):t.removeTag(i),s){if(this.get(e)){const i=s.topAxesContainer.children;-1==i.indexOf(t)&&i.insertIndex(0,t),t.addTag(e),a.moveValue(this)}else{const i=s.bottomAxesContainer.children;-1==i.indexOf(t)&&i.moveValue(t),t.removeTag(e),a.moveValue(this,0)}t.ghostLabel._applyThemes(),this.labels.each((t=>{t._applyThemes()})),this.root._markDirtyRedraw()}t.markDirtySize()}this.thumb.setPrivate("height",t.labelsContainer.height())}_getPan(t,e){return(e.x-t.x)/this.width()}toAxisPosition(t){const e=this._start||0,i=this._end||1;return t=(t-=this._ls)*(i-e)/this._lc,this.get("inversed")?i-t:e+t}toGlobalPosition(t){const e=this._start||0,i=this._end||1;return this.get("inversed")?t=i-t:t-=e,(t=t/(i-e)*this._lc)+this._ls}_updateLC(){const t=this.axis,e=t.parent;if(e){const i=e.innerWidth();this._lc=this.axisLength()/i,this._ls=(t.x()-e.get("paddingLeft",0))/i}}_updatePositions(){const t=this.axis,e=t.x()-(0,s.l)(t.get("centerX",0),t.width())-t.parent.get("paddingLeft",0);t.gridContainer.set("x",e),t.topGridContainer.set("x",e),t.bulletsContainer.set("y",this.y());const i=t.chart;if(i){const e=i.plotContainer,s=t.axisHeader;let a=t.get("marginLeft",0),o=t.x()-a;const n=t.parent;n&&(o-=n.get("paddingLeft",0)),s.children.length>0?(a=t.axisHeader.width(),t.set("marginLeft",a+1)):s.set("width",a),s.setAll({x:o,y:-1,height:e.height()+2})}}processAxis(){super.processAxis();const t=this.axis;null==t.get("width")&&t.set("width",s.a);const e=this._root.verticalLayout;t.set("layout",e),t.labelsContainer.set("width",s.a),t.axisHeader.setAll({layout:e})}axisLength(){return this.axis.width()}positionToPoint(t){return{x:this.positionToCoordinate(t),y:0}}updateTick(t,e,i,a){if(t){(0,s.k)(e)||(e=0);let o=.5;o=(0,s.k)(a)&&a>1?t.get("multiLocation",o):t.get("location",o),(0,s.k)(i)&&i!=e&&(e+=(i-e)*o),t.set("x",this.positionToCoordinate(e));let n=t.get("length",0);const r=t.get("inside",this.get("inside",!1));this.get("opposite")?(t.set("y",s.a),r||(n*=-1)):(t.set("y",0),r&&(n*=-1)),t.set("draw",(t=>{t.moveTo(0,0),t.lineTo(0,n)})),this.toggleVisibility(t,e,t.get("minPosition",0),t.get("maxPosition",1))}}updateLabel(t,e,i,a){if(t){let o=.5;o=(0,s.k)(a)&&a>1?t.get("multiLocation",o):t.get("location",o),(0,s.k)(e)||(e=0);const n=t.get("inside",this.get("inside",!1));this.get("opposite")?n?(t.set("position","absolute"),t.set("y",0)):(t.set("position","relative"),t.set("y",s.a)):n?(t.set("y",0),t.set("position","absolute")):(t.set("y",void 0),t.set("position","relative")),(0,s.k)(i)&&i!=e&&(e+=(i-e)*o),t.set("x",this.positionToCoordinate(e)),this.toggleVisibility(t,e,t.get("minPosition",0),t.get("maxPosition",1))}}updateGrid(t,e,i){if(t){(0,s.k)(e)||(e=0);let a=t.get("location",.5);(0,s.k)(i)&&i!=e&&(e+=(i-e)*a),t.set("x",this.positionToCoordinate(e)),this.toggleVisibility(t,e,0,1)}}updateBullet(t,e,i){if(t){const a=t.get("sprite");if(a){(0,s.k)(e)||(e=0);let o=t.get("location",.5);(0,s.k)(i)&&i!=e&&(e+=(i-e)*o);let n=this.axis.roundAxisPosition(e,o),r=this.axis._bullets[n],l=-1;if(this.get("opposite")&&(l=1),t.get("stacked"))if(r){let t=r.get("sprite");t&&a.set("y",t.y()+t.height()*l)}else a.set("y",0);this.axis._bullets[n]=t,a.set("x",this.positionToCoordinate(e)),this.toggleVisibility(a,e,0,1)}}}updateFill(t,e,i){if(t){(0,s.k)(e)||(e=0),(0,s.k)(i)||(i=1);let a=this.positionToCoordinate(e),o=this.positionToCoordinate(i);this.fillDrawMethod(t,a,o)}}fillDrawMethod(t,e,i){t.set("draw",(t=>{const s=this.axis.gridContainer.height(),a=this.width();ia||i<0||(t.moveTo(e,0),t.lineTo(i,0),t.lineTo(i,s),t.lineTo(e,s),t.lineTo(e,0))}))}positionTooltip(t,e){this._positionTooltip(t,{x:this.positionToCoordinate(e),y:0})}updateTooltipBounds(t){const e=this.get("inside"),i=1e5;let a=this._display.toGlobal({x:0,y:0}),o=a.x,n=0,r=this.axisLength(),l=i,h="up";this.get("opposite")?e?(h="up",n=a.y,l=i):(h="down",n=a.y-i,l=i):e?(h="down",n=a.y-i,l=i):(h="up",n=a.y,l=i);const d={left:o,right:o+r,top:n,bottom:n+l},c=t.get("bounds");(0,s.aO)(d,c)||(t.set("bounds",d),t.set("pointerOrientation",h))}}Object.defineProperty(A,"className",{enumerable:!0,configurable:!0,writable:!0,value:"AxisRendererX"}),Object.defineProperty(A,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:D.classNames.concat([A.className])});class T extends D{constructor(){super(...arguments),Object.defineProperty(this,"_downY",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"thumb",{enumerable:!0,configurable:!0,writable:!0,value:s.R.new(this._root,{height:s.a,isMeasured:!1,themeTags:["axis","y","thumb"]})})}_afterNew(){this._settings.themeTags=(0,s.m)(this._settings.themeTags,["renderer","y"]),this._settings.opposite&&this._settings.themeTags.push("opposite"),super._afterNew(),this.setPrivateRaw("letter","Y");const t=this.grid.template;t.set("width",s.a),t.set("height",0),t.set("draw",((t,e)=>{t.moveTo(0,0),t.lineTo(e.width(),0)})),this.set("draw",((t,e)=>{t.moveTo(0,0),t.lineTo(0,e.height())}))}_getPan(t,e){return(t.y-e.y)/this.height()}_changed(){super._changed();const t=this.axis;t.ghostLabel.setPrivate("visible",!this.get("inside")),t.ghostLabel.set("y",-1e3);const e=this.thumb,i="opposite",s="inside",a=this.chart;if(this.isDirty(i)||this.isDirty(s)){const e=t.children;if(this.get(s)?t.addTag(s):t.removeTag(s),a){if(this.get(i)){const s=a.rightAxesContainer.children;-1==s.indexOf(t)&&s.moveValue(t,0),t.addTag(i),e.moveValue(this,0)}else{const s=a.leftAxesContainer.children;-1==s.indexOf(t)&&s.moveValue(t),t.removeTag(i),e.moveValue(this)}t.ghostLabel._applyThemes(),this.labels.each((t=>{t._applyThemes()})),this.root._markDirtyRedraw()}t.markDirtySize()}const o=t.labelsContainer.width();a&&(this.get(i)?e.set("centerX",0):e.set("centerX",o)),e.setPrivate("width",o)}processAxis(){super.processAxis();const t=this.axis;null==t.get("height")&&t.set("height",s.a);const e=this._root.horizontalLayout;t.set("layout",e),t.labelsContainer.set("height",s.a),t.axisHeader.set("layout",e)}_updatePositions(){const t=this.axis,e=t.y()-(0,s.l)(t.get("centerY",0),t.height());t.gridContainer.set("y",e),t.topGridContainer.set("y",e),t.bulletsContainer.set("x",this.x());const i=t.chart;if(i){const e=i.plotContainer,s=t.axisHeader;let a=t.get("marginTop",0);s.children.length>0?(a=t.axisHeader.height(),t.set("marginTop",a+1)):s.set("height",a),s.setAll({y:t.y()-a,x:-1,width:e.width()+2})}}axisLength(){return this.axis.innerHeight()}positionToPoint(t){return{x:0,y:this.positionToCoordinate(t)}}updateLabel(t,e,i,a){if(t){(0,s.k)(e)||(e=0);let o=.5;o=(0,s.k)(a)&&a>1?t.get("multiLocation",o):t.get("location",o);const n=this.get("opposite"),r=t.get("inside",this.get("inside",!1));n?(t.set("x",0),r?t.set("position","absolute"):t.set("position","relative")):r?(t.set("x",0),t.set("position","absolute")):(t.set("x",void 0),t.set("position","relative")),(0,s.k)(i)&&i!=e&&(e+=(i-e)*o),t.set("y",this.positionToCoordinate(e)),this.toggleVisibility(t,e,t.get("minPosition",0),t.get("maxPosition",1))}}updateGrid(t,e,i){if(t){(0,s.k)(e)||(e=0);let a=t.get("location",.5);(0,s.k)(i)&&i!=e&&(e+=(i-e)*a),t.set("y",this.positionToCoordinate(e)),this.toggleVisibility(t,e,0,1)}}updateTick(t,e,i,a){if(t){(0,s.k)(e)||(e=0);let o=.5;o=(0,s.k)(a)&&a>1?t.get("multiLocation",o):t.get("location",o),(0,s.k)(i)&&i!=e&&(e+=(i-e)*o),t.set("y",this.positionToCoordinate(e));let n=t.get("length",0);const r=t.get("inside",this.get("inside",!1));this.get("opposite")?(t.set("x",0),r&&(n*=-1)):r||(n*=-1),t.set("draw",(t=>{t.moveTo(0,0),t.lineTo(n,0)})),this.toggleVisibility(t,e,t.get("minPosition",0),t.get("maxPosition",1))}}updateBullet(t,e,i){if(t){const a=t.get("sprite");if(a){(0,s.k)(e)||(e=0);let o=t.get("location",.5);(0,s.k)(i)&&i!=e&&(e+=(i-e)*o);let n=this.axis.roundAxisPosition(e,o),r=this.axis._bullets[n],l=1;if(this.get("opposite")&&(l=-1),t.get("stacked"))if(r){let t=r.get("sprite");t&&a.set("x",t.x()+t.width()*l)}else a.set("x",0);this.axis._bullets[n]=t,a.set("y",this.positionToCoordinate(e)),this.toggleVisibility(a,e,0,1)}}}updateFill(t,e,i){if(t){(0,s.k)(e)||(e=0),(0,s.k)(i)||(i=1);let a=this.positionToCoordinate(e),o=this.positionToCoordinate(i);this.fillDrawMethod(t,a,o)}}fillDrawMethod(t,e,i){t.set("draw",(t=>{const s=this.axis.gridContainer.width(),a=this.height();ia||i<0||(t.moveTo(0,e),t.lineTo(s,e),t.lineTo(s,i),t.lineTo(0,i),t.lineTo(0,e))}))}positionToCoordinate(t){return this._inversed?(t-this._start)*this._axisLength:(this._end-t)*this._axisLength}positionTooltip(t,e){this._positionTooltip(t,{x:0,y:this.positionToCoordinate(e)})}updateTooltipBounds(t){const e=this.get("inside"),i=1e5;let a=this._display.toGlobal({x:0,y:0}),o=a.y,n=0,r=this.axisLength(),l=i,h="right";this.get("opposite")?e?(h="right",n=a.x-i,l=i):(h="left",n=a.x,l=i):e?(h="left",n=a.x,l=i):(h="right",n=a.x-i,l=i);const d={left:n,right:n+l,top:o,bottom:o+r},c=t.get("bounds");(0,s.aO)(d,c)||(t.set("bounds",d),t.set("pointerOrientation",h))}_updateLC(){const t=this.axis,e=t.parent;if(e){const i=e.innerHeight();this._lc=this.axisLength()/i,this._ls=t.y()/i}}toAxisPosition(t){const e=this._start||0,i=this._end||1;return t=(t-=this._ls)*(i-e)/this._lc,this.get("inversed")?e+t:i-t}toGlobalPosition(t){const e=this._start||0,i=this._end||1;return this.get("inversed")?t-=e:t=i-t,(t=t/(i-e)*this._lc)+this._ls}fixPosition(t){return this.get("inversed")?t:1-t}}Object.defineProperty(T,"className",{enumerable:!0,configurable:!0,writable:!0,value:"AxisRendererY"}),Object.defineProperty(T,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:D.classNames.concat([T.className])});class M extends v{constructor(){super(...arguments),Object.defineProperty(this,"_endIndex",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_strokeGenerator",{enumerable:!0,configurable:!0,writable:!0,value:p()}),Object.defineProperty(this,"_fillGenerator",{enumerable:!0,configurable:!0,writable:!0,value:m()}),Object.defineProperty(this,"_legendStroke",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_legendFill",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"strokes",{enumerable:!0,configurable:!0,writable:!0,value:new s.t(s.u.new({}),(()=>s.e._new(this._root,{themeTags:(0,s.m)(this.strokes.template.get("themeTags",[]),["line","series","stroke"])},[this.strokes.template])))}),Object.defineProperty(this,"fills",{enumerable:!0,configurable:!0,writable:!0,value:new s.t(s.u.new({}),(()=>s.e._new(this._root,{themeTags:(0,s.m)(this.strokes.template.get("themeTags",[]),["line","series","fill"])},[this.fills.template])))}),Object.defineProperty(this,"_fillTemplate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_strokeTemplate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_previousPoint",{enumerable:!0,configurable:!0,writable:!0,value:[0,0,0,0]}),Object.defineProperty(this,"_dindex",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_sindex",{enumerable:!0,configurable:!0,writable:!0,value:0})}_afterNew(){this._fillGenerator.y0((function(t){return t[3]})),this._fillGenerator.x0((function(t){return t[2]})),this._fillGenerator.y1((function(t){return t[1]})),this._fillGenerator.x1((function(t){return t[0]})),super._afterNew()}makeStroke(t){const e=this.mainContainer.children.push(t.make());return t.push(e),e}makeFill(t){const e=this.mainContainer.children.push(t.make());return t.push(e),e}_updateChildren(){this._strokeTemplate=void 0,this._fillTemplate=void 0;let t=this.get("xAxis"),e=this.get("yAxis");if(this.isDirty("stroke")){const t=this.get("stroke");this.strokes.template.set("stroke",t);const e=this._legendStroke;e&&e.states.lookup("default").set("stroke",t)}if(this.isDirty("fill")){const t=this.get("fill");this.fills.template.set("fill",t);const e=this._legendFill;e&&e.states.lookup("default").set("fill",t)}if(this.isDirty("curveFactory")){const t=this.get("curveFactory");t&&(this._strokeGenerator.curve(t),this._fillGenerator.curve(t))}if(t.inited&&e.inited){if(this._axesDirty||this._valuesDirty||this._stackDirty||this.isDirty("vcx")||this.isDirty("vcy")||this._sizeDirty||this.isDirty("connect")||this.isDirty("curveFactory")){this.fills.each((t=>{t.setPrivate("visible",!1)})),this.strokes.each((t=>{t.setPrivate("visible",!1)})),this.axisRanges.each((t=>{let e=t.fills;e&&e.each((t=>{t.setPrivate("visible",!1)}));let i=t.strokes;i&&i.each((t=>{t.setPrivate("visible",!1)}))}));let t=this.startIndex(),e=this.strokes.template.get("templateField"),i=this.fills.template.get("templateField"),a=!0,o=!0;e&&(a=!1),i&&(o=!1);for(let n=t-1;n>=0;n--){let r=this.dataItems[n],l=!0,h=r.dataContext;if(e&&h[e]&&(a=!0),i&&h[i]&&(o=!0),(0,s.i)(this._valueFields,(t=>{(0,s.k)(r.get(t))||(l=!1)})),l&&a&&o){t=n;break}}let n=this.dataItems.length,r=this.endIndex();if(r{(0,s.k)(e.get(t))||(i=!1)})),i){r=t+1;break}}}if(t>0&&t--,this._endIndex=r,this._clearGraphics(),this._sindex=0,this._dindex=t,1==this.dataItems.length)this._startSegment(0);else for(;this._dindex0&&(F=!0);let R=!1;(P||v||y)&&(R=!0);const j={points:T,segments:A,stacked:P,getOpen:R,basePosX:w,basePosY:k,fillVisible:F,xField:_,yField:b,xOpenField:x,yOpenField:f,vcx:p,vcy:m,baseAxis:g,xAxis:c,yAxis:u,locationX:C,locationY:O,openLocationX:X,openLocationY:S,minDistance:Y};for(L=t;Lt){i=L;break}h.template=a}}if(I){let a=e.dataContext[I];if(a){if(a instanceof s.u||(a=s.u.new(a)),this._fillTemplate=a,L>t){i=L;break}n.template=a}}if(!o){let t=this.dataItems[L+1];t&&g.shouldGap(e,t,a,D)&&(T=[],A.push(T),j.points=T)}}n.setRaw("userData",[t,L]),h.setRaw("userData",[t,L]),L===e&&this._endLine(T,A[0][0]),h&&this._drawStroke(h,A),n&&this._drawFill(n,A),this.axisRanges.each((e=>{const i=e.container,s=e.fills,a=this.makeFill(s);i&&i.children.push(a),a.setPrivate("visible",!0),this._drawFill(a,A);const o=e.strokes,n=this.makeStroke(o);i&&i.children.push(n),n.setPrivate("visible",!0),this._drawStroke(n,A),a.setRaw("userData",[t,L]),n.setRaw("userData",[t,L])}))}_getPoints(t,e){let i=e.points,a=t.get("locationX",e.locationX),o=t.get("locationY",e.locationY),n=e.xAxis.getDataItemPositionX(t,e.xField,a,e.vcx),r=e.yAxis.getDataItemPositionY(t,e.yField,o,e.vcy);if(this._shouldInclude(n)){const a=this.getPoint(n,r),o=[a.x,a.y];if(a.x+=this._x,a.y+=this._y,t.set("point",a),e.fillVisible){let i=n,a=r;if(e.baseAxis===e.xAxis?a=e.basePosY:e.baseAxis===e.yAxis&&(i=e.basePosX),e.getOpen){let o=t.get(e.xOpenField),n=t.get(e.yOpenField);if(null!=o&&null!=n){let o=t.get("openLocationX",e.openLocationX),n=t.get("openLocationY",e.openLocationY);if(e.stacked){let r=t.get("stackToItemX"),l=t.get("stackToItemY");r?(i=e.xAxis.getDataItemPositionX(r,e.xField,o,r.component.get("vcx")),(0,s.q)(i)&&(i=e.basePosX)):i=e.yAxis===e.baseAxis?e.basePosX:e.xAxis.getDataItemPositionX(t,e.xOpenField,o,e.vcx),l?(a=e.yAxis.getDataItemPositionY(l,e.yField,n,l.component.get("vcy")),(0,s.q)(a)&&(a=e.basePosY)):a=e.xAxis===e.baseAxis?e.basePosY:e.yAxis.getDataItemPositionY(t,e.yOpenField,n,e.vcy)}else i=e.xAxis.getDataItemPositionX(t,e.xOpenField,o,e.vcx),a=e.yAxis.getDataItemPositionY(t,e.yOpenField,n,e.vcy)}}let l=this.getPoint(i,a);o[2]=l.x,o[3]=l.y}if(e.minDistance>0){const t=o[0],s=o[1],a=o[2],n=o[3],r=this._previousPoint,l=r[0],h=r[1],d=r[2],c=r[3];(Math.hypot(t-l,s-h)>e.minDistance||a&&n&&Math.hypot(a-d,n-c)>e.minDistance)&&(i.push(o),this._previousPoint=o)}else i.push(o)}}_endLine(t,e){}_drawStroke(t,e){t.get("visible")&&!t.get("forceHidden")&&t.set("draw",(t=>{(0,s.i)(e,(e=>{this._strokeGenerator.context(t),this._strokeGenerator(e)}))}))}_drawFill(t,e){t.get("visible")&&!t.get("forceHidden")&&t.set("draw",(t=>{(0,s.i)(e,(e=>{this._fillGenerator.context(t),this._fillGenerator(e)}))}))}_processAxisRange(t){super._processAxisRange(t),t.fills=new s.t(s.u.new({}),(()=>s.e._new(this._root,{themeTags:(0,s.m)(t.fills.template.get("themeTags",[]),["line","series","fill"])},[this.fills.template,t.fills.template]))),t.strokes=new s.t(s.u.new({}),(()=>s.e._new(this._root,{themeTags:(0,s.m)(t.strokes.template.get("themeTags",[]),["line","series","stroke"])},[this.strokes.template,t.strokes.template])))}createLegendMarker(t){const e=this.get("legendDataItem");if(e){const t=e.get("marker"),i=e.get("markerRectangle");i&&i.setPrivate("visible",!1),t.set("background",s.R.new(t._root,{fillOpacity:0,fill:(0,s.d)(0)}));const a=t.children.push(s.e._new(t._root,{themeTags:["line","series","legend","marker","stroke"],interactive:!1},[this.strokes.template]));this._legendStroke=a;const o=t.children.push(s.e._new(t._root,{themeTags:["line","series","legend","marker","fill"]},[this.fills.template]));this._legendFill=o;const r=this._root.interfaceColors.get("disabled");if(a.states.create("disabled",{fill:r,stroke:r}),o.states.create("disabled",{fill:r,stroke:r}),this.bullets.length>0){const e=this.bullets.getIndex(0);if(e){const i=e(t._root,this,new n.D(this,{legend:!0},{}));if(i){const e=i.get("sprite");e instanceof s.e&&e.states.create("disabled",{fill:r,stroke:r}),e&&(e.set("tooltipText",void 0),e.set("tooltipHTML",void 0),t.children.push(e),e.setAll({x:t.width()/2,y:t.height()/2}),t.events.on("boundschanged",(()=>{e.setAll({x:t.width()/2,y:t.height()/2})})))}}}}}}Object.defineProperty(M,"className",{enumerable:!0,configurable:!0,writable:!0,value:"LineSeries"}),Object.defineProperty(M,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:v.classNames.concat([M.className])});class I extends v{constructor(){super(...arguments),Object.defineProperty(this,"_ph",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_pw",{enumerable:!0,configurable:!0,writable:!0,value:0})}_makeGraphics(t,e){return this.makeColumn(e,t)}_makeFieldNames(){super._makeFieldNames();const t=this.get("xAxis"),e=this.get("yAxis"),i="CategoryAxis",s="ValueAxis";t.isType(i)&&(this.get("openCategoryXField")||(this._xOpenField=this._xField)),t.isType(s)&&(this.get("openValueXField")||(this._xOpenField=this._xField)),e.isType(i)&&(this.get("openCategoryYField")||(this._yOpenField=this._yField)),e.isType(s)&&(this.get("openValueYField")||(this._yOpenField=this._yField))}_prepareChildren(){super._prepareChildren();const t=this.get("xAxis"),e=this.get("yAxis"),i=this.dataItems.length,s=Math.max(0,this.startIndex()-2),a=Math.min(this.endIndex()+2,i-1);if(t.inited&&e.inited)for(let t=s;t<=a;t++){let e=this.dataItems[t];this._createGraphics(e)}}_updateChildren(){const t=this.chart;t&&(this._ph=t.plotContainer.height(),this._pw=t.plotContainer.width());const e=this.get("xAxis"),i=this.get("yAxis"),a=this.get("baseAxis"),o=this.columns.template;this.isDirty("fill")&&null==o.get("fill")&&o.set("fill",this.get("fill")),this.isDirty("stroke")&&null==o.get("stroke")&&o.set("stroke",this.get("stroke"));let n=0,r=0,l=0;(0,s.i)(a.series,(t=>{if(t instanceof I){const e=t.get("stacked");e&&0==l&&r++,!e&&t.get("clustered")&&r++}t===this&&(n=r-1),l++})),this.get("clustered")||(n=0,r=1),0===r&&(r=1,n=0);const h=e.get("renderer"),d=i.get("renderer"),c="cellStartLocation",u="cellEndLocation",g=h.get(c,0),p=h.get(u,1),m=d.get(c,0),_=d.get(u,1);if(this._aLocationX0=g+n/r*(p-g),this._aLocationX1=g+(n+1)/r*(p-g),this._aLocationY0=m+n/r*(_-m),this._aLocationY1=m+(n+1)/r*(_-m),e.inited&&i.inited){if(this._axesDirty||this._valuesDirty||this._stackDirty||this.isDirty("vcx")||this.isDirty("vcy")||this._sizeDirty){const t=this.dataItems.length;let e=Math.max(0,this.startIndex()-2),i=Math.min(this.endIndex()+2,t-1);for(let t=0;t0&&e>0)for(let e=t-1;e>=0;e--){let t=this.dataItems[e];if(null!=t.get("valueX")&&null!=t.get("valueY")){s=t;break}}break}this._toggleColumn(i,!1)}for(let t=e;t<=i;t++){let e=this.dataItems[t];this._updateGraphics(e,s),null!=e.get("valueX")&&null!=e.get("valueY")&&(s=e)}for(let e=i+1;e{const a=e.get(s,this.get(s));t.set(s,a),i.set(s,a)}))}}let a=t.get("rangeGraphics");a&&(0,s.i)(a,(t=>{t.dispose()})),a=[],t.setRaw("rangeGraphics",a),this.axisRanges.each((e=>{const i=e.container,s=this._makeGraphics(e.columns,t);a&&a.push(s),s.setPrivate("list",e.columns),i.children.push(s)}))}}createAxisRange(t){return(0,s.i)(this.dataItems,(t=>{const e=t.get("graphics");e&&(e.dispose(),t.set("graphics",void 0))})),super.createAxisRange(t)}_updateGraphics(t,e){let i=t.get("graphics");const a=this._xField,o=this._yField,n=t.get(a),r=t.get(o);if(null!=n&&null!=r){const n=this._xOpenField,r=this._yOpenField,l=this.get("locationX",t.get("locationX",.5)),h=this.get("locationY",t.get("locationY",.5)),d=this.get("openLocationX",t.get("openLocationX",l)),c=this.get("openLocationY",t.get("openLocationY",h)),u=i.get("width"),g=i.get("height"),p=this.get("stacked"),m=this.get("xAxis"),_=this.get("yAxis"),b=this.get("baseAxis"),x=m.get("start"),f=m.get("end"),v=_.get("start"),y=_.get("end");let P,w,k,D,A=this.get("vcy",1),T=this.get("vcx",1),M=!1,I=!1;if(_.isType("CategoryAxis")&&m.isType("CategoryAxis")){let e=this._aLocationX0+d-.5,i=this._aLocationX1+l-.5;if(u instanceof s.P){let t=(i-e)*(1-u.value)/2;e+=t,i-=t}if(P=m.getDataItemPositionX(t,n,e,T),w=m.getDataItemPositionX(t,a,i,T),e=this._aLocationY0+c-.5,i=this._aLocationY1+h-.5,g instanceof s.P){let t=(i-e)*(1-g.value)/2;e+=t,i-=t}k=_.getDataItemPositionY(t,r,e,A),D=_.getDataItemPositionY(t,o,i,A),t.setRaw("point",{x:P+(w-P)/2,y:k+(D-k)/2})}else if(m===b){let e=this._aLocationX0+d-.5,i=this._aLocationX1+l-.5;if(u instanceof s.P){let t=(i-e)*(1-u.value)/2;e+=t,i-=t}if(P=m.getDataItemPositionX(t,n,e,T),w=m.getDataItemPositionX(t,a,i,T),k=_.getDataItemPositionY(t,o,h,A),this._yOpenField!==this._yField)D=_.getDataItemPositionY(t,r,c,A);else if(p){let e=t.get("stackToItemY");D=e?_.getDataItemPositionY(e,o,c,e.component.get("vcy")):_.basePosition()}else D=_.basePosition();t.setRaw("point",{x:P+(w-P)/2,y:k}),I=!0}else if(_===b){let e=this._aLocationY0+c-.5,i=this._aLocationY1+h-.5;if(g instanceof s.P){let t=(i-e)*(1-g.value)/2;e+=t,i-=t}if(k=_.getDataItemPositionY(t,r,e,A),D=_.getDataItemPositionY(t,o,i,A),w=m.getDataItemPositionX(t,a,l,T),this._xOpenField!==this._xField)P=m.getDataItemPositionX(t,n,d,T);else if(p){let e=t.get("stackToItemX");P=e?m.getDataItemPositionX(e,a,d,e.component.get("vcx")):m.basePosition()}else P=m.basePosition();M=!0,t.setRaw("point",{x:w,y:k+(D-k)/2})}this._updateSeriesGraphics(t,i,P,w,k,D,M,I),Pf&&w>f||k=y&&D>y||(0,s.q)(P)||(0,s.q)(k)?this._toggleColumn(t,!1):this._toggleColumn(t,!0);let C=t.get("rangeGraphics");C&&(0,s.i)(C,(e=>{this._updateSeriesGraphics(t,e,P,w,k,D,M,I)})),this._applyGraphicsStates(t,e)}}_updateSeriesGraphics(t,e,i,a,o,n,r,l){const h=e.get("width"),d=e.get("height"),c=e.get("maxWidth"),u=e.get("maxHeight"),g=this.getPoint(i,o),p=this.getPoint(a,n),m=t.get("point");if(m){const t=this.getPoint(m.x,m.y);m.x=t.x+this._x,m.y=t.y+this._y}if(i=g.x,a=p.x,o=g.y,n=p.y,(0,s.k)(h)){const t=(a-i-h)/2;i+=t,a-=t}if((0,s.k)(c)&&c{this._toggleColumn(t,!1)}))}_applyGraphicsStates(t,e){const i=t.get("graphics"),a=i.states.lookup("dropFromOpen"),o=i.states.lookup("riseFromOpen"),n=i.states.lookup("dropFromPrevious"),r=i.states.lookup("riseFromPrevious");if(a||n||o||r){const i=this.get("xAxis"),l=this.get("yAxis"),h=this.get("baseAxis");let d,c,u;h===i&&l.isType("ValueAxis")?(d=t.get(this._yOpenField),c=t.get(this._yField),u=e.get(this._yField)):h===l&&i.isType("ValueAxis")&&(d=t.get(this._xOpenField),c=t.get(this._xField),u=e.get(this._xField)),(0,s.k)(d)&&(0,s.k)(c)&&(c{const e=t.getPrivate("list");e&&e.removeValue(t),t.dispose()}))}hideDataItem(t,e){const i=Object.create(null,{hideDataItem:{get:()=>super.hideDataItem}});return(0,l.b)(this,void 0,void 0,(function*(){const a=[i.hideDataItem.call(this,t,e)],o=t.get("graphics");o&&a.push(o.hide(e));const n=t.get("rangeGraphics");n&&(0,s.i)(n,(t=>{a.push(t.hide(e))})),yield Promise.all(a)}))}_toggleColumn(t,e){const i=t.get("graphics");i&&i.setPrivate("visible",e);const a=t.get("rangeGraphics");a&&(0,s.i)(a,(t=>{t.setPrivate("visible",e)}));const o=t.bullets;o&&(0,s.i)(o,(t=>{t.setPrivate("hidden",!e)}))}showDataItem(t,e){const i=Object.create(null,{showDataItem:{get:()=>super.showDataItem}});return(0,l.b)(this,void 0,void 0,(function*(){const a=[i.showDataItem.call(this,t,e)],o=t.get("graphics");o&&a.push(o.show(e));const n=t.get("rangeGraphics");n&&(0,s.i)(n,(t=>{a.push(t.show(e))})),yield Promise.all(a)}))}updateLegendMarker(t){let e=this.get("legendDataItem");if(this.get("useLastColorForLegendMarker")&&!t){const e=this.dataItems[this.endIndex()-1];e&&(t=e)}if(e){let i=this.columns.template;if(t){let e=t.get("graphics");e&&(i=e)}const a=e.get("markerRectangle");if(a&&!e.get("itemContainer").get("disabled")){const t=a.states.lookup("default");(0,s.i)(s.v,(e=>{const s=i.get(e,this.get(e));a.set(e,s),t.set(e,s)}))}}}_getTooltipTarget(t){if("bullet"==this.get("seriesTooltipTarget"))return super._getTooltipTarget(t);return t.get("graphics")||this}}Object.defineProperty(I,"className",{enumerable:!0,configurable:!0,writable:!0,value:"BaseColumnSeries"}),Object.defineProperty(I,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:v.classNames.concat([I.className])});class C extends y{constructor(){super(...arguments),Object.defineProperty(this,"_frequency",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"_itemMap",{enumerable:!0,configurable:!0,writable:!0,value:{}})}_afterNew(){this._settings.themeTags=(0,s.m)(this._settings.themeTags,["axis"]),this.fields.push("category"),this.setPrivateRaw("name","category"),this.addTag("category"),super._afterNew()}_prepareChildren(){super._prepareChildren();const t=this.dataItems.length;let e=0;this._valuesDirty&&(this._itemMap={},(0,s.i)(this.dataItems,(t=>{t.setRaw("index",e),this._itemMap[t.get("category")]=t,e++})),this.setPrivateRaw("maxZoomFactor",t)),this.setPrivateRaw("startIndex",Math.max(Math.round(this.get("start",0)*t),0)),this.setPrivateRaw("endIndex",Math.min(Math.round(this.get("end",1)*t),t)),(this._sizeDirty||this._valuesDirty||this.isDirty("start")||this.isDirty("end")||this.isPrivateDirty("endIndex")||this.isPrivateDirty("startIndex")||this.isPrivateDirty("width")||this.isPrivateDirty("height"))&&this.dataItems.length>0&&(this._handleRangeChange(),this._prepareAxisItems(),this._updateAxisRanges())}_handleRangeChange(){(0,s.i)(this.series,(t=>{let e=this.dataItems[this.startIndex()].get("category"),i=this.dataItems[this.endIndex()-1].get("category"),a=t.get("baseAxis"),o=t.get("xAxis"),n=t.get("yAxis");if(o instanceof C&&n instanceof C)t._markDirtyAxes();else if(a===this){let r,l,h=n;if(o===a?(t.get("categoryXField")&&(r="categoryX"),t.get("openCategoryXField")&&(l="openCategoryX")):n===a&&(t.get("categoryYField")&&(r="categoryY"),t.get("openCategoryYField")&&(l="openCategoryY"),h=o),"ValueAxis"==h.className&&(r||l)){let a,o;for(let i=0,s=t.dataItems.length;i=0;e--){let s=t.dataItems[e];if(r&&s.get(r)===i){o=s;break}if(l&&s.get(l)===i){o=s;break}}let n=0,h=t.dataItems.length;a&&(n=t.dataItems.indexOf(a)),o&&(h=t.dataItems.indexOf(o)+1),t.setPrivate("startIndex",n),t.setPrivate("endIndex",h);let d=!1;for(let e=n;e{null!=i.get(t)&&(d=!0)})),(0,s.i)(t.__valueYShowFields,(t=>{null!=i.get(t)&&(d=!0)})),d)break}t.setPrivate("outOfSelection",!d)}t._markDirtyAxes()}}))}_prepareAxisItems(){var t;const e=this.get("renderer"),i=this.dataItems.length;let s=this.startIndex();s>0&&s--;let a=this.endIndex();a0){let i=this.getPrivate("name")+this.get("renderer").getPrivate("letter"),s=this.axisPositionToIndex(e),a=t.dataItems[s],o=this.dataItems[s],n=o.get("category");if(a&&o&&a.get(i)===n)return a;for(let e=0,s=t.dataItems.length;er.R._new(this._root,{position:"absolute",themeTags:(0,s.m)(this.columns.template.get("themeTags",[]),["series","column"])},[this.columns.template])))})}makeColumn(t,e){const i=this.mainContainer.children.push(e.make());return i._setDataItem(t),e.push(i),i}_processAxisRange(t){super._processAxisRange(t),t.columns=new s.t(s.u.new({}),(()=>r.R._new(this._root,{position:"absolute",themeTags:(0,s.m)(t.columns.template.get("themeTags",[]),["series","column"])},[this.columns.template,t.columns.template])))}}Object.defineProperty(O,"className",{enumerable:!0,configurable:!0,writable:!0,value:"ColumnSeries"}),Object.defineProperty(O,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:I.classNames.concat([O.className])})}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2738.94f06e61d3535b4afa6b.js b/docs/sentinel1-explorer/2738.94f06e61d3535b4afa6b.js new file mode 100644 index 00000000..adf2fd21 --- /dev/null +++ b/docs/sentinel1-explorer/2738.94f06e61d3535b4afa6b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2738],{24778:function(e,t,i){i.d(t,{b:function(){return f}});var s=i(70375),r=i(39994),n=i(13802),a=i(78668),o=i(14266),l=i(88013),h=i(64429),u=i(91907),d=i(18567),p=i(71449),c=i(80479);class g{constructor(e,t,i){this._texture=null,this._lastTexture=null,this._fbos={},this.texelSize=4;const{buffer:s,pixelType:r,textureOnly:n}=e,a=(0,h.UK)(r);this.blockIndex=i,this.pixelType=r,this.size=t,this.textureOnly=n,n||(this.data=new a(s)),this._resetRange()}destroy(){this._texture?.dispose();for(const e in this._fbos){const t=this._fbos[e];t&&("0"===e&&t.detachColorTexture(),t.dispose()),this._fbos[e]=null}this._texture=null}get _textureDesc(){const e=new c.X;return e.wrapMode=u.e8.CLAMP_TO_EDGE,e.samplingMode=u.cw.NEAREST,e.dataType=this.pixelType,e.width=this.size,e.height=this.size,e}setData(e,t,i){const s=(0,l.jL)(e),r=this.data,n=s*this.texelSize+t;!r||n>=r.length||(r[n]=i,this.dirtyStart=Math.min(this.dirtyStart,s),this.dirtyEnd=Math.max(this.dirtyEnd,s))}getData(e,t){if(null==this.data)return null;const i=(0,l.jL)(e)*this.texelSize+t;return!this.data||i>=this.data.length?null:this.data[i]}getTexture(e){return this._texture??this._initTexture(e)}getFBO(e,t=0){if(!this._fbos[t]){const i=0===t?this.getTexture(e):this._textureDesc;this._fbos[t]=new d.X(e,i)}return this._fbos[t]}get hasDirty(){const e=this.dirtyStart;return this.dirtyEnd>=e}updateTexture(e,t){try{const t=this.dirtyStart,i=this.dirtyEnd;if(!this.hasDirty)return;(0,r.Z)("esri-2d-update-debug"),this._resetRange();const a=this.data.buffer,o=this.getTexture(e),l=4,u=(t-t%this.size)/this.size,d=(i-i%this.size)/this.size,p=u,c=this.size,g=d,y=u*this.size*l,_=(c+g*this.size)*l-y,f=(0,h.UK)(this.pixelType),b=new f(a,y*f.BYTES_PER_ELEMENT,_),v=this.size,m=g-p+1;if(m>this.size)return void n.Z.getLogger("esri.views.2d.engine.webgl.AttributeStoreView").error(new s.Z("mapview-webgl","Out-of-bounds index when updating AttributeData"));o.updateData(0,0,p,v,m,b)}catch(e){}}update(e){const{data:t,start:i,end:s}=e;if(null!=t&&null!=this.data){const s=this.data,r=i*this.texelSize;for(let i=0;inull!=e?new g(e,this.size,t):null));else for(let e=0;e{(0,r.Z)("esri-2d-update-debug")})),this._version=e.version,this._pendingAttributeUpdates.push({inner:e,resolver:t}),(0,r.Z)("esri-2d-update-debug")}get currentEpoch(){return this._epoch}update(){if(this._locked)return;const e=this._pendingAttributeUpdates;this._pendingAttributeUpdates=[];for(const{inner:t,resolver:i}of e){const{blockData:e,initArgs:s,sendUpdateEpoch:n,version:a}=t;(0,r.Z)("esri-2d-update-debug"),this._version=a,this._epoch=n,null!=s&&this._initialize(s);const o=this._data;for(let t=0;te.destroy())),this.removeAllChildren(),this.attributeView.destroy()}doRender(e){e.context.capabilities.enable("textureFloat"),super.doRender(e)}createRenderParams(e){const t=super.createRenderParams(e);return t.attributeView=this.attributeView,t.instanceStore=this._instanceStore,t.statisticsByLevel=this._statisticsByLevel,t}}},70179:function(e,t,i){i.d(t,{Z:function(){return h}});var s=i(39994),r=i(38716),n=i(10994),a=i(22598),o=i(27946);const l=(e,t)=>e.key.level-t.key.level!=0?e.key.level-t.key.level:e.key.row-t.key.row!=0?e.key.row-t.key.row:e.key.col-t.key.col;class h extends n.Z{constructor(e){super(),this._tileInfoView=e}renderChildren(e){this.sortChildren(l),this.setStencilReference(e),super.renderChildren(e)}createRenderParams(e){const{state:t}=e,i=super.createRenderParams(e);return i.requiredLevel=this._tileInfoView.getClosestInfoForScale(t.scale).level,i.displayLevel=this._tileInfoView.tileInfo.scaleToZoom(t.scale),i}prepareRenderPasses(e){const t=super.prepareRenderPasses(e);return t.push(e.registerRenderPass({name:"stencil",brushes:[a.Z],drawPhase:r.jx.DEBUG|r.jx.MAP|r.jx.HIGHLIGHT|r.jx.LABEL,target:()=>this.getStencilTarget()})),(0,s.Z)("esri-tiles-debug")&&t.push(e.registerRenderPass({name:"tileInfo",brushes:[o.Z],drawPhase:r.jx.DEBUG,target:()=>this.children})),t}getStencilTarget(){return this.children}setStencilReference(e){let t=1;for(const e of this.children)e.stencilRef=t++}}},16699:function(e,t,i){i.d(t,{o:function(){return r}});var s=i(77206);class r{constructor(e,t,i,s,r){this._instanceId=e,this.techniqueRef=t,this._meshWriterName=i,this._input=s,this.optionalAttributes=r}get instanceId(){return(0,s.G)(this._instanceId)}createMeshInfo(e){return{id:this._instanceId,meshWriterName:this._meshWriterName,options:e,optionalAttributes:this.optionalAttributes}}getInput(){return this._input}setInput(e){this._input=e}}},42738:function(e,t,i){i.r(t),i.d(t,{default:function(){return _}});var s=i(36663),r=i(80020),n=i(6865),a=i(76868),o=(i(13802),i(39994),i(4157),i(70375),i(40266)),l=i(50172),h=i(72506),u=i(51211),d=i(66878),p=i(68114),c=i(18133),g=i(26216);let y=class extends((0,d.y)(g.Z)){constructor(){super(...arguments),this._graphicsViewMap={},this._popupTemplates=new Map,this.graphicsViews=[]}async hitTest(e,t){if(!this.graphicsViews.length)return null;const i=this.layer;return this.graphicsViews.reverse().flatMap((t=>{const s=this._popupTemplates.get(t),r=t.hitTest(e);for(const e of r)e.layer=i,e.sourceLayer=i,e.popupTemplate=s;return r})).map((t=>({type:"graphic",graphic:t,layer:i,mapPoint:e})))}update(e){if(this.graphicsViews)for(const t of this.graphicsViews)t.processUpdate(e)}attach(){this.addAttachHandles([(0,a.YP)((()=>this.layer?.featureCollections),(e=>{this._clear();for(const{popupInfo:t,featureSet:i,layerDefinition:s}of e){const e=u.Z.fromJSON(i),a=new n.Z(e.features),o=s.drawingInfo,l=t?r.Z.fromJSON(t):null,d=(0,h.i)(o.renderer),g=new c.Z({requestUpdateCallback:()=>this.requestUpdate(),view:this.view,graphics:a,renderer:d,container:new p.Z(this.view.featuresTilingScheme)});this._graphicsViewMap[e.geometryType]=g,this._popupTemplates.set(g,l),"polygon"!==e.geometryType||this.layer.polygonSymbol?"polyline"!==e.geometryType||this.layer.lineSymbol?"point"!==e.geometryType||this.layer.pointSymbol||(this.layer.pointSymbol=d.symbol):this.layer.lineSymbol=d.symbol:this.layer.polygonSymbol=d.symbol,this.graphicsViews.push(g),this.container.addChild(g.container)}}),a.nn),(0,a.YP)((()=>this.layer?.polygonSymbol),(e=>{this._graphicsViewMap.polygon.renderer=new l.Z({symbol:e})}),a.nn),(0,a.YP)((()=>this.layer?.lineSymbol),(e=>{this._graphicsViewMap.polyline.renderer=new l.Z({symbol:e})}),a.nn),(0,a.YP)((()=>this.layer?.pointSymbol),(e=>{this._graphicsViewMap.point.renderer=new l.Z({symbol:e})}),a.nn)])}detach(){this._clear()}moveStart(){}moveEnd(){}viewChange(){for(const e of this.graphicsViews)e.viewChange()}_clear(){this.container.removeAllChildren();for(const e of this.graphicsViews)e.destroy();this._graphicsViewMap={},this._popupTemplates.clear(),this.graphicsViews.length=0}};y=(0,s._)([(0,o.j)("esri.views.2d.layers.GeoRSSLayerView2D")],y);const _=y},66878:function(e,t,i){i.d(t,{y:function(){return v}});var s=i(36663),r=i(6865),n=i(58811),a=i(70375),o=i(76868),l=i(81977),h=(i(39994),i(13802),i(4157),i(40266)),u=i(68577),d=i(10530),p=i(98114),c=i(55755),g=i(88723),y=i(96294);let _=class extends y.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,s._)([(0,l.Cb)({type:[[[Number]]],json:{write:!0}})],_.prototype,"path",void 0),_=(0,s._)([(0,h.j)("esri.views.layers.support.Path")],_);const f=_,b=r.Z.ofType({key:"type",base:null,typeMap:{rect:c.Z,path:f,geometry:g.Z}}),v=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new b,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new a.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new d.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,o.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),o.tX),(0,o.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),o.tX),(0,o.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),o.tX),(0,o.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),o.tX),(0,o.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),o.tX),(0,o.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),o.tX),(0,o.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),o.tX),(0,o.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),o.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:i,maxScale:s}=t;return(0,u.o2)(e,i,s)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,i=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),i&&(e.outsideScaleRange=i),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,s._)([(0,l.Cb)()],t.prototype,"attached",void 0),(0,s._)([(0,l.Cb)({type:b,set(e){const t=(0,n.Z)(e,this._get("clips"),b);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"container",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"moving",void 0),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"updateRequested",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"updateSuspended",null),(0,s._)([(0,l.Cb)()],t.prototype,"updating",null),(0,s._)([(0,l.Cb)()],t.prototype,"view",void 0),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,s._)([(0,l.Cb)({type:p.Z})],t.prototype,"highlightOptions",void 0),t=(0,s._)([(0,h.j)("esri.views.2d.layers.LayerView2D")],t),t}},81110:function(e,t,i){i.d(t,{K:function(){return C}});var s=i(61681),r=i(24778),n=i(38716),a=i(16699),o=i(56144),l=i(77206);let h=0;function u(e,t,i){return new a.o((0,l.W)(h++),e,e.meshWriter.name,t,i)}const d={geometry:{visualVariableColor:null,visualVariableOpacity:null,visualVariableSizeMinMaxValue:null,visualVariableSizeScaleStops:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null,visualVariableRotation:null}};class p{constructor(){this.instances={fill:u(o.k2.fill,d,{zoomRange:!0}),marker:u(o.k2.marker,d,{zoomRange:!0}),line:u(o.k2.line,d,{zoomRange:!0}),text:u(o.k2.text,d,{zoomRange:!0,referenceSymbol:!1,clipAngle:!1}),complexFill:u(o.k2.complexFill,d,{zoomRange:!0}),texturedLine:u(o.k2.texturedLine,d,{zoomRange:!0})},this._instancesById=Object.values(this.instances).reduce(((e,t)=>(e.set(t.instanceId,t),e)),new Map)}getInstance(e){return this._instancesById.get(e)}}var c=i(46332),g=i(38642),y=i(45867),_=i(17703),f=i(29927),b=i(51118),v=i(64429),m=i(78951),w=i(91907),x=i(29620);const S=Math.PI/180;class R extends b.s{constructor(e){super(),this._program=null,this._vao=null,this._vertexBuffer=null,this._indexBuffer=null,this._dvsMat3=(0,g.Ue)(),this._localOrigin={x:0,y:0},this._getBounds=e}destroy(){this._vao&&(this._vao.dispose(),this._vao=null,this._vertexBuffer=null,this._indexBuffer=null),this._program=(0,s.M2)(this._program)}doRender(e){const{context:t}=e,i=this._getBounds();if(i.length<1)return;this._createShaderProgram(t),this._updateMatricesAndLocalOrigin(e),this._updateBufferData(t,i),t.setBlendingEnabled(!0),t.setDepthTestEnabled(!1),t.setStencilWriteMask(0),t.setStencilTestEnabled(!1),t.setBlendFunction(w.zi.ONE,w.zi.ONE_MINUS_SRC_ALPHA),t.setColorMask(!0,!0,!0,!0);const s=this._program;t.bindVAO(this._vao),t.useProgram(s),s.setUniformMatrix3fv("u_dvsMat3",this._dvsMat3),t.gl.lineWidth(1),t.drawElements(w.MX.LINES,8*i.length,w.g.UNSIGNED_INT,0),t.bindVAO()}_createTransforms(){return{displayViewScreenMat3:(0,g.Ue)()}}_createShaderProgram(e){if(this._program)return;this._program=e.programCache.acquire("precision highp float;\n uniform mat3 u_dvsMat3;\n\n attribute vec2 a_position;\n\n void main() {\n mediump vec3 pos = u_dvsMat3 * vec3(a_position, 1.0);\n gl_Position = vec4(pos.xy, 0.0, 1.0);\n }","precision mediump float;\n void main() {\n gl_FragColor = vec4(0.75, 0.0, 0.0, 0.75);\n }",T().attributes)}_updateMatricesAndLocalOrigin(e){const{state:t}=e,{displayMat3:i,size:s,resolution:r,pixelRatio:n,rotation:a,viewpoint:o}=t,l=S*a,{x:h,y:u}=o.targetGeometry,d=(0,f.or)(h,t.spatialReference);this._localOrigin.x=d,this._localOrigin.y=u;const p=n*s[0],g=n*s[1],b=r*p,v=r*g,m=(0,c.yR)(this._dvsMat3);(0,c.Jp)(m,m,i),(0,c.Iu)(m,m,(0,y.al)(p/2,g/2)),(0,c.bA)(m,m,(0,_.al)(s[0]/b,-g/v,1)),(0,c.U1)(m,m,-l)}_updateBufferData(e,t){const{x:i,y:s}=this._localOrigin,r=8*t.length,n=new Float32Array(r),a=new Uint32Array(8*t.length);let o=0,l=0;for(const e of t)e&&(n[2*o]=e[0]-i,n[2*o+1]=e[1]-s,n[2*o+2]=e[0]-i,n[2*o+3]=e[3]-s,n[2*o+4]=e[2]-i,n[2*o+5]=e[3]-s,n[2*o+6]=e[2]-i,n[2*o+7]=e[1]-s,a[l]=o+0,a[l+1]=o+3,a[l+2]=o+3,a[l+3]=o+2,a[l+4]=o+2,a[l+5]=o+1,a[l+6]=o+1,a[l+7]=o+0,o+=4,l+=8);if(this._vertexBuffer?this._vertexBuffer.setData(n.buffer):this._vertexBuffer=m.f.createVertex(e,w.l1.DYNAMIC_DRAW,n.buffer),this._indexBuffer?this._indexBuffer.setData(a):this._indexBuffer=m.f.createIndex(e,w.l1.DYNAMIC_DRAW,a),!this._vao){const t=T();this._vao=new x.U(e,t.attributes,t.bufferLayouts,{geometry:this._vertexBuffer},this._indexBuffer)}}}const T=()=>(0,v.cM)("bounds",{geometry:[{location:0,name:"a_position",count:2,type:w.g.FLOAT}]});class C extends r.b{constructor(e){super(e),this._instanceStore=new p,this.checkHighlight=()=>!0}destroy(){super.destroy(),this._boundsRenderer=(0,s.SC)(this._boundsRenderer)}get instanceStore(){return this._instanceStore}enableRenderingBounds(e){this._boundsRenderer=new R(e),this.requestRender()}get hasHighlight(){return this.checkHighlight()}onTileData(e,t){e.onMessage(t),this.contains(e)||this.addChild(e),this.requestRender()}_renderChildren(e,t){e.selection=t;for(const t of this.children){if(!t.visible)continue;const i=t.getDisplayList(e.drawPhase,this._instanceStore,n.gl.STRICT_ORDER);i?.render(e)}}}},68114:function(e,t,i){i.d(t,{Z:function(){return a}});var s=i(38716),r=i(81110),n=i(41214);class a extends r.K{renderChildren(e){for(const t of this.children)t.setTransform(e.state);if(super.renderChildren(e),this.attributeView.update(),this.children.some((e=>e.hasData))){switch(e.drawPhase){case s.jx.MAP:this._renderChildren(e,s.Xq.All);break;case s.jx.HIGHLIGHT:this.hasHighlight&&this._renderHighlight(e)}this._boundsRenderer&&this._boundsRenderer.doRender(e)}}_renderHighlight(e){(0,n.P9)(e,!1,(e=>{this._renderChildren(e,s.Xq.Highlight)}))}}},26216:function(e,t,i){i.d(t,{Z:function(){return g}});var s=i(36663),r=i(74396),n=i(31355),a=i(86618),o=i(13802),l=i(61681),h=i(64189),u=i(81977),d=(i(39994),i(4157),i(40266)),p=i(98940);let c=class extends((0,a.IG)((0,h.v)(n.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new p.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";o.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,l.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,s._)([(0,u.Cb)()],c.prototype,"fullOpacity",null),(0,s._)([(0,u.Cb)()],c.prototype,"layer",void 0),(0,s._)([(0,u.Cb)()],c.prototype,"parent",void 0),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"suspended",null),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"suspendInfo",null),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"legendEnabled",null),(0,s._)([(0,u.Cb)({type:Boolean,readOnly:!0})],c.prototype,"updating",null),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"updatingProgress",null),(0,s._)([(0,u.Cb)()],c.prototype,"visible",null),(0,s._)([(0,u.Cb)()],c.prototype,"view",void 0),c=(0,s._)([(0,d.j)("esri.views.layers.LayerView")],c);const g=c},88723:function(e,t,i){i.d(t,{Z:function(){return g}});var s,r=i(36663),n=(i(91957),i(81977)),a=(i(39994),i(13802),i(4157),i(40266)),o=i(20031),l=i(53736),h=i(96294),u=i(91772),d=i(89542);const p={base:o.Z,key:"type",typeMap:{extent:u.Z,polygon:d.Z}};let c=s=class extends h.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new s({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,n.Cb)({types:p,json:{read:l.im,write:!0}})],c.prototype,"geometry",void 0),c=s=(0,r._)([(0,a.j)("esri.views.layers.support.Geometry")],c);const g=c}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2762.303190f87cd335176758.js b/docs/sentinel1-explorer/2762.303190f87cd335176758.js new file mode 100644 index 00000000..c390bce3 --- /dev/null +++ b/docs/sentinel1-explorer/2762.303190f87cd335176758.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2762],{49526:function(e,t,o){o.d(t,{Z:function(){return c}});var r=o(36663),n=(o(91957),o(82064)),s=o(81977),l=(o(39994),o(13802),o(4157),o(34248)),i=o(40266),a=o(39835),p=o(5029),d=o(96776),m=o(90819);let u=class extends n.wq{constructor(e){super(e),this.globalId=null,this.associationType=null,this.fromNetworkElement=null,this.toNetworkElement=null,this.geometry=null,this.errorMessage=null,this.percentAlong=null,this.errorCode=null,this.isContentVisible=null,this.status=null}readFromNetworkElement(e,t){const o=new d.Z;return o.globalId=t.fromGlobalId,o.networkSourceId=t.fromNetworkSourceId,o.terminalId=t.fromTerminalId,o}writeFromNetworkElement(e,t){e&&(t.fromGlobalId=e.globalId,t.fromNetworkSourceId=e.networkSourceId,t.fromTerminalId=e.terminalId)}readToNetworkElement(e,t){const o=new d.Z;return o.globalId=t.toGlobalId,o.networkSourceId=t.toNetworkSourceId,o.terminalId=t.toTerminalId,o}writeToNetworkElement(e,t){e&&(t.toGlobalId=e.globalId,t.toNetworkSourceId=e.networkSourceId,t.toTerminalId=e.terminalId)}};(0,r._)([(0,s.Cb)({type:String,json:{write:!0}})],u.prototype,"globalId",void 0),(0,r._)([(0,s.Cb)({type:p.By.apiValues,json:{type:p.By.jsonValues,read:p.By.read,write:p.By.write}})],u.prototype,"associationType",void 0),(0,r._)([(0,s.Cb)({type:d.Z,json:{write:{target:{fromGlobalId:{type:String},fromNetworkSourceId:{type:Number},fromTerminalId:{type:Number}}},read:{source:["fromGlobalId","fromNetworkSourceId","fromTerminalId"]}}})],u.prototype,"fromNetworkElement",void 0),(0,r._)([(0,l.r)("fromNetworkElement")],u.prototype,"readFromNetworkElement",null),(0,r._)([(0,a.c)("fromNetworkElement")],u.prototype,"writeFromNetworkElement",null),(0,r._)([(0,s.Cb)({type:d.Z,json:{write:{target:{toGlobalId:{type:String},toNetworkSourceId:{type:Number},toTerminalId:{type:Number}}},read:{source:["toGlobalId","toNetworkSourceId","toTerminalId"]}}})],u.prototype,"toNetworkElement",void 0),(0,r._)([(0,l.r)("toNetworkElement")],u.prototype,"readToNetworkElement",null),(0,r._)([(0,a.c)("toNetworkElement")],u.prototype,"writeToNetworkElement",null),(0,r._)([(0,s.Cb)({type:m.Z,json:{write:!0}})],u.prototype,"geometry",void 0),(0,r._)([(0,s.Cb)({type:String,json:{write:!0}})],u.prototype,"errorMessage",void 0),(0,r._)([(0,s.Cb)({type:Number,json:{write:!0}})],u.prototype,"percentAlong",void 0),(0,r._)([(0,s.Cb)({type:Number,json:{write:!0}})],u.prototype,"errorCode",void 0),(0,r._)([(0,s.Cb)({type:Boolean,json:{write:!0}})],u.prototype,"isContentVisible",void 0),(0,r._)([(0,s.Cb)({type:Number,json:{write:!0}})],u.prototype,"status",void 0),u=(0,r._)([(0,i.j)("esri.rest.networks.support.Association")],u);const c=u},92762:function(e,t,o){o.r(t),o.d(t,{synthesizeAssociationGeometries:function(){return u}});var r=o(66341),n=o(84238),s=o(36663),l=o(82064),i=o(81977),a=(o(39994),o(13802),o(4157),o(40266)),p=o(49526);let d=class extends l.wq{constructor(e){super(e),this.maxGeometryCountExceeded=!1,this.associations=[]}};(0,s._)([(0,i.Cb)({type:Boolean,json:{write:!0}})],d.prototype,"maxGeometryCountExceeded",void 0),(0,s._)([(0,i.Cb)({type:[p.Z],json:{write:!0}})],d.prototype,"associations",void 0),d=(0,s._)([(0,a.j)("esri.rest.networks.support.AssociationGeometriesResult")],d);const m=d;async function u(e,t,o){const s=(0,n.en)(e),l={...t.toJSON(),f:"json"},i=(0,n.cv)({...s.query,...l});o?o.method="post":o={method:"post"};const a=(0,n.lA)(i,o),p=`${s.path}/synthesizeAssociationGeometries`;return(0,r.Z)(p,a).then((e=>function(e,t){const{data:o}=e,r=m.fromJSON(o);if(t)for(const e of r.associations)e.geometry.spatialReference=t.clone();return r}(e,t.outSpatialReference)))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2886.c29de8ec8f61cdc5c0b4.js b/docs/sentinel1-explorer/2886.c29de8ec8f61cdc5c0b4.js new file mode 100644 index 00000000..9aa1b8b5 --- /dev/null +++ b/docs/sentinel1-explorer/2886.c29de8ec8f61cdc5c0b4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2886],{50516:function(e,t,r){r.d(t,{D:function(){return i}});var o=r(71760);function i(e){e?.writtenProperties&&e.writtenProperties.forEach((({target:e,propName:t,newOrigin:r})=>{(0,o.l)(e)&&r&&e.originOf(t)!==r&&e.updateOrigin(t,r)}))}},71760:function(e,t,r){function o(e){return e&&"getAtOrigin"in e&&"originOf"in e}r.d(t,{l:function(){return o}})},92886:function(e,t,r){r.r(t),r.d(t,{default:function(){return wt}});var o=r(36663),i=r(51366),s=r(91957),n=r(80085),l=r(80020),a=(r(86004),r(55565),r(16192),r(71297),r(878),r(22836),r(50172),r(72043),r(72506)),u=r(13802),p=r(6865),c=r(70375),y=r(15842),d=r(86745),m=r(78668),f=r(76868),h=r(17321),v=r(3466),b=r(81977),w=(r(39994),r(4157),r(34248)),g=r(40266),_=r(39835),S=r(50516),C=r(91772),B=r(28105),T=r(35925),N=r(38481),Z=r(27668),P=r(43330),R=r(18241),j=r(95874),L=r(20692),A=r(4905),I=r(82064),O=r(1759);let J=class extends I.wq{constructor(e){super(e),this.break=new O.Z({color:[255,255,255],size:12,outline:{color:[0,122,194],width:3}}),this.first=new O.Z({color:[0,255,0],size:20,outline:{color:[255,255,255],width:4}}),this.unlocated=new O.Z({color:[255,0,0],size:12,outline:{color:[255,255,255],width:3}}),this.last=new O.Z({color:[255,0,0],size:20,outline:{color:[255,255,255],width:4}}),this.middle=new O.Z({color:[51,51,51],size:12,outline:{color:[0,122,194],width:3}}),this.waypoint=new O.Z({color:[255,255,255],size:12,outline:{color:[0,122,194],width:3}})}};(0,o._)([(0,b.Cb)({types:A.LB})],J.prototype,"break",void 0),(0,o._)([(0,b.Cb)({types:A.LB})],J.prototype,"first",void 0),(0,o._)([(0,b.Cb)({types:A.LB})],J.prototype,"unlocated",void 0),(0,o._)([(0,b.Cb)({types:A.LB})],J.prototype,"last",void 0),(0,o._)([(0,b.Cb)({types:A.LB})],J.prototype,"middle",void 0),(0,o._)([(0,b.Cb)({types:A.LB})],J.prototype,"waypoint",void 0),J=(0,o._)([(0,g.j)("esri.layers.support.RouteStopSymbols")],J);const D=J;var M=r(15498),k=r(43411);let x=class extends I.wq{constructor(e){super(e),this.directionLines=new M.Z({color:[0,122,194],width:6}),this.directionPoints=new O.Z({color:[255,255,255],size:6,outline:{color:[0,122,194],width:2}}),this.pointBarriers=new O.Z({style:"x",size:10,outline:{color:[255,0,0],width:3}}),this.polygonBarriers=new k.Z({color:[255,170,0,.6],outline:{width:7.5,color:[255,0,0,.6]}}),this.polylineBarriers=new M.Z({width:7.5,color:[255,85,0,.7]}),this.routeInfo=new M.Z({width:8,color:[20,89,127]}),this.stops=new D}};(0,o._)([(0,b.Cb)({types:A.LB})],x.prototype,"directionLines",void 0),(0,o._)([(0,b.Cb)({types:A.LB})],x.prototype,"directionPoints",void 0),(0,o._)([(0,b.Cb)({types:A.LB})],x.prototype,"pointBarriers",void 0),(0,o._)([(0,b.Cb)({types:A.LB})],x.prototype,"polygonBarriers",void 0),(0,o._)([(0,b.Cb)({types:A.LB})],x.prototype,"polylineBarriers",void 0),(0,o._)([(0,b.Cb)({types:A.LB})],x.prototype,"routeInfo",void 0),(0,o._)([(0,b.Cb)({type:D})],x.prototype,"stops",void 0),x=(0,o._)([(0,g.j)("esri.layers.support.RouteSymbols")],x);const F=x;var U=r(93968),E=r(53110),G=r(31370),q=r(66341),W=r(84238),z=r(79438),V=r(55065);let K=class extends I.wq{constructor(e){super(e),this.dataType=null,this.name=null,this.parameterNames=null,this.restrictionUsageParameterName=null,this.timeNeutralAttributeName=null,this.trafficSupport=null,this.units=null,this.usageType=null}};(0,o._)([(0,b.Cb)({type:String})],K.prototype,"dataType",void 0),(0,o._)([(0,z.J)(V.Ul,{ignoreUnknown:!1})],K.prototype,"name",void 0),(0,o._)([(0,b.Cb)({type:[String]})],K.prototype,"parameterNames",void 0),(0,o._)([(0,b.Cb)({type:String})],K.prototype,"restrictionUsageParameterName",void 0),(0,o._)([(0,z.J)(V.ZI,{ignoreUnknown:!1})],K.prototype,"timeNeutralAttributeName",void 0),(0,o._)([(0,b.Cb)({type:String})],K.prototype,"trafficSupport",void 0),(0,o._)([(0,z.J)(V.dg)],K.prototype,"units",void 0),(0,o._)([(0,z.J)(V.E2)],K.prototype,"usageType",void 0),K=(0,o._)([(0,g.j)("esri.rest.support.NetworkAttribute")],K);const $=K;let Q=class extends I.wq{constructor(e){super(e),this.buildTime=null,this.name=null,this.networkAttributes=null,this.networkSources=null,this.state=null}};(0,o._)([(0,b.Cb)({type:Number})],Q.prototype,"buildTime",void 0),(0,o._)([(0,b.Cb)({type:String})],Q.prototype,"name",void 0),(0,o._)([(0,b.Cb)({type:[$]})],Q.prototype,"networkAttributes",void 0),(0,o._)([(0,b.Cb)()],Q.prototype,"networkSources",void 0),(0,o._)([(0,b.Cb)({type:String})],Q.prototype,"state",void 0),Q=(0,o._)([(0,g.j)("esri.rest.support.NetworkDataset")],Q);const X=Q;var Y=r(23688);let H=class extends I.wq{constructor(e){super(e),this.accumulateAttributeNames=null,this.attributeParameterValues=null,this.currentVersion=null,this.defaultTravelMode=null,this.directionsLanguage=null,this.directionsLengthUnits=null,this.directionsSupportedLanguages=null,this.directionsTimeAttribute=null,this.hasZ=null,this.impedance=null,this.networkDataset=null,this.supportedTravelModes=null}readAccumulateAttributes(e){return null==e?null:e.map((e=>V.Ul.fromJSON(e)))}writeAccumulateAttributes(e,t,r){e?.length&&(t[r]=e.map((e=>V.Ul.toJSON(e))))}get capabilities(){return{supportsNow:(this.currentVersion??10)>=10.81}}readDefaultTravelMode(e,t){const r=t.supportedTravelModes?.find((({id:e})=>e===t.defaultTravelMode))??t.supportedTravelModes?.find((({itemId:e})=>e===t.defaultTravelMode));return r?Y.Z.fromJSON(r):null}};(0,o._)([(0,b.Cb)()],H.prototype,"accumulateAttributeNames",void 0),(0,o._)([(0,w.r)("accumulateAttributeNames")],H.prototype,"readAccumulateAttributes",null),(0,o._)([(0,_.c)("accumulateAttributeNames")],H.prototype,"writeAccumulateAttributes",null),(0,o._)([(0,b.Cb)()],H.prototype,"attributeParameterValues",void 0),(0,o._)([(0,b.Cb)()],H.prototype,"capabilities",null),(0,o._)([(0,b.Cb)()],H.prototype,"currentVersion",void 0),(0,o._)([(0,b.Cb)()],H.prototype,"defaultTravelMode",void 0),(0,o._)([(0,w.r)("defaultTravelMode",["defaultTravelMode","supportedTravelModes"])],H.prototype,"readDefaultTravelMode",null),(0,o._)([(0,b.Cb)()],H.prototype,"directionsLanguage",void 0),(0,o._)([(0,z.J)(V.GX)],H.prototype,"directionsLengthUnits",void 0),(0,o._)([(0,b.Cb)()],H.prototype,"directionsSupportedLanguages",void 0),(0,o._)([(0,z.J)(V.ZI,{ignoreUnknown:!1})],H.prototype,"directionsTimeAttribute",void 0),(0,o._)([(0,b.Cb)()],H.prototype,"hasZ",void 0),(0,o._)([(0,z.J)(V.Ul,{ignoreUnknown:!1})],H.prototype,"impedance",void 0),(0,o._)([(0,b.Cb)({type:X})],H.prototype,"networkDataset",void 0),(0,o._)([(0,b.Cb)({type:[Y.Z]})],H.prototype,"supportedTravelModes",void 0),H=(0,o._)([(0,g.j)("esri.rest.support.NetworkServiceDescription")],H);const ee=H,te=()=>u.Z.getLogger("esri.rest.networkService");function re(e,t,r,o){o[r]=[t.length,t.length+e.length],e.forEach((e=>{t.push(e.geometry)}))}async function oe(e,t,r){if(!e)throw new c.Z("network-service:missing-url","Url to Network service is missing");const o=(0,W.lA)({f:"json",token:t},r),{data:i}=await(0,q.Z)(e,o),s=i.currentVersion>=10.4?async function(e,t,r){try{const o=(0,W.lA)({f:"json",token:t},r),i=(0,v.Qj)(e)+"/retrieveTravelModes",{data:{supportedTravelModes:s,defaultTravelMode:n}}=await(0,q.Z)(i,o);return{supportedTravelModes:s,defaultTravelMode:n}}catch(e){throw new c.Z("network-service:retrieveTravelModes","Could not get to the NAServer's retrieveTravelModes.",{error:e})}}(e,t,r):async function(e,t){const r=(0,W.lA)({f:"json"},t),{data:o}=await(0,q.Z)(e.replace(/\/rest\/.*$/i,"/info"),r);if(!o?.owningSystemUrl)return{supportedTravelModes:[],defaultTravelMode:null};const{owningSystemUrl:i}=o,s=(0,v.Qj)(i)+"/sharing/rest/portals/self",{data:n}=await(0,q.Z)(s,r),l=(0,d.hS)("helperServices.routingUtilities.url",n);if(!l)return{supportedTravelModes:[],defaultTravelMode:null};const a=(0,W.en)(i),u=/\/solve$/i.test(a.path)?"Route":/\/solveclosestfacility$/i.test(a.path)?"ClosestFacility":"ServiceAreas",p=(0,W.lA)({f:"json",serviceName:u},t),c=(0,v.Qj)(l)+"/GetTravelModes/execute",y=await(0,q.Z)(c,p),m=[];let f=null;if(y?.data?.results?.length){const e=y.data.results;for(const t of e)if("supportedTravelModes"===t.paramName){if(t.value?.features)for(const{attributes:e}of t.value.features)if(e){const t=JSON.parse(e.TravelMode);m.push(t)}}else"defaultTravelMode"===t.paramName&&(f=t.value)}return{supportedTravelModes:m,defaultTravelMode:f}}(e,r),{defaultTravelMode:n,supportedTravelModes:l}=await s;return i.defaultTravelMode=n,i.supportedTravelModes=l,ee.fromJSON(i)}var ie=r(51777),se=r(29927),ne=r(13295),le=r(51211),ae=r(7753),ue=r(25709);const pe=new ue.X({esriJobMessageTypeInformative:"informative",esriJobMessageTypeProcessDefinition:"process-definition",esriJobMessageTypeProcessStart:"process-start",esriJobMessageTypeProcessStop:"process-stop",esriJobMessageTypeWarning:"warning",esriJobMessageTypeError:"error",esriJobMessageTypeEmpty:"empty",esriJobMessageTypeAbort:"abort"});let ce=class extends I.wq{constructor(e){super(e),this.description=null,this.type=null}};(0,o._)([(0,b.Cb)({type:String,json:{write:!0}})],ce.prototype,"description",void 0),(0,o._)([(0,b.Cb)({type:String,json:{read:pe.read,write:pe.write}})],ce.prototype,"type",void 0),ce=(0,o._)([(0,g.j)("esri.rest.support.GPMessage")],ce);const ye=ce,de=new ue.X({0:"informative",1:"process-definition",2:"process-start",3:"process-stop",50:"warning",100:"error",101:"empty",200:"abort"});let me=class extends ye{constructor(e){super(e),this.type=null}};(0,o._)([(0,b.Cb)({type:String,json:{read:de.read,write:de.write}})],me.prototype,"type",void 0),me=(0,o._)([(0,g.j)("esri.rest.support.NAMessage")],me);const fe=me;let he=class extends I.wq{constructor(e){super(e)}};(0,o._)([(0,b.Cb)({json:{read:{source:"string"}}})],he.prototype,"text",void 0),(0,o._)([(0,z.J)(V.Ks,{name:"stringType"})],he.prototype,"type",void 0),he=(0,o._)([(0,g.j)("esri.rest.support.DirectionsString")],he);const ve=he;var be=r(67666);let we=class extends I.wq{constructor(e){super(e),this.arriveTime=null,this.arriveTimeOffset=null,this.geometry=null,this.strings=null}readArriveTimeOffset(e,t){return(0,ne.pQ)(t.ETA,t.arriveTimeUTC)}readGeometry(e,t){return be.Z.fromJSON(t.point)}};(0,o._)([(0,b.Cb)({type:Date,json:{read:{source:"arriveTimeUTC"}}})],we.prototype,"arriveTime",void 0),(0,o._)([(0,b.Cb)()],we.prototype,"arriveTimeOffset",void 0),(0,o._)([(0,w.r)("arriveTimeOffset",["arriveTimeUTC","ETA"])],we.prototype,"readArriveTimeOffset",null),(0,o._)([(0,b.Cb)({type:be.Z})],we.prototype,"geometry",void 0),(0,o._)([(0,w.r)("geometry",["point"])],we.prototype,"readGeometry",null),(0,o._)([(0,b.Cb)({type:[ve]})],we.prototype,"strings",void 0),we=(0,o._)([(0,g.j)("esri.rest.support.DirectionsEvent")],we);const ge=we;var _e=r(90819);let Se=class extends n.Z{constructor(e){super(e),this.events=null,this.strings=null}readGeometry(e,t){const r=function(e){if(null==e||""===e)return null;let t=0,r=0,o=0,i=0;const s=[];let n,l,a,u,p,c,y,d,m=0,f=0,h=0;if(p=e.match(/((\+|\-)[^\+\-\|]+|\|)/g),p||(p=[]),0===parseInt(p[m],32)){m=2;const e=parseInt(p[m],32);m++,c=parseInt(p[m],32),m++,1&e&&(f=p.indexOf("|")+1,y=parseInt(p[f],32),f++),2&e&&(h=p.indexOf("|",f)+1,d=parseInt(p[h],32),h++)}else c=parseInt(p[m],32),m++;for(;m0,hasM:h>0}}(t.compressedGeometry);return null!=r?_e.Z.fromJSON(r):null}};(0,o._)([(0,b.Cb)({type:[ge]})],Se.prototype,"events",void 0),(0,o._)([(0,w.r)("geometry",["compressedGeometry"])],Se.prototype,"readGeometry",null),(0,o._)([(0,b.Cb)({type:[ve]})],Se.prototype,"strings",void 0),Se=(0,o._)([(0,g.j)("esri.rest.support.DirectionsFeature")],Se);const Ce=Se;var Be=r(14685);let Te=class extends le.Z{constructor(e){super(e),this.extent=null,this.features=[],this.geometryType="polyline",this.routeId=null,this.routeName=null,this.totalDriveTime=null,this.totalLength=null,this.totalTime=null}readFeatures(e,t){if(!e)return[];const r=t.summary.envelope.spatialReference??t.spatialReference,o=r&&Be.Z.fromJSON(r);return e.map((e=>{const t=Ce.fromJSON(e);if(null!=t.geometry&&(t.geometry.spatialReference=o),null!=t.events)for(const e of t.events)null!=e.geometry&&(e.geometry.spatialReference=o);return t}))}get mergedGeometry(){return this.features?function(e,t){if(0===e.length)return new _e.Z({spatialReference:t});const r=[];for(const t of e)for(const e of t.paths)r.push(...e);const o=[];r.forEach(((e,t)=>{0!==t&&e[0]===r[t-1][0]&&e[1]===r[t-1][1]||o.push(e)}));const{hasM:i,hasZ:s}=e[0];return new _e.Z({hasM:i,hasZ:s,paths:[o],spatialReference:t})}(this.features.map((({geometry:e})=>e)),this.extent.spatialReference):null}get strings(){return this.features.flatMap((({strings:e})=>e)).filter(ae.pC)}};(0,o._)([(0,b.Cb)({type:C.Z,json:{read:{source:"summary.envelope"}}})],Te.prototype,"extent",void 0),(0,o._)([(0,b.Cb)({nonNullable:!0})],Te.prototype,"features",void 0),(0,o._)([(0,w.r)("features")],Te.prototype,"readFeatures",null),(0,o._)([(0,b.Cb)()],Te.prototype,"geometryType",void 0),(0,o._)([(0,b.Cb)({readOnly:!0})],Te.prototype,"mergedGeometry",null),(0,o._)([(0,b.Cb)()],Te.prototype,"routeId",void 0),(0,o._)([(0,b.Cb)()],Te.prototype,"routeName",void 0),(0,o._)([(0,b.Cb)({value:null,readOnly:!0})],Te.prototype,"strings",null),(0,o._)([(0,b.Cb)({json:{read:{source:"summary.totalDriveTime"}}})],Te.prototype,"totalDriveTime",void 0),(0,o._)([(0,b.Cb)({json:{read:{source:"summary.totalLength"}}})],Te.prototype,"totalLength",void 0),(0,o._)([(0,b.Cb)({json:{read:{source:"summary.totalTime"}}})],Te.prototype,"totalTime",void 0),Te=(0,o._)([(0,g.j)("esri.rest.support.DirectionsFeatureSet")],Te);const Ne=Te;let Ze=class extends I.wq{constructor(e){super(e),this.directionLines=null,this.directionPoints=null,this.directions=null,this.route=null,this.routeName=null,this.stops=null,this.traversedEdges=null,this.traversedJunctions=null,this.traversedTurns=null}};(0,o._)([(0,b.Cb)({type:le.Z,json:{write:!0}})],Ze.prototype,"directionLines",void 0),(0,o._)([(0,b.Cb)({type:le.Z,json:{write:!0}})],Ze.prototype,"directionPoints",void 0),(0,o._)([(0,b.Cb)({type:Ne,json:{write:!0}})],Ze.prototype,"directions",void 0),(0,o._)([(0,b.Cb)({type:n.Z,json:{write:!0}})],Ze.prototype,"route",void 0),(0,o._)([(0,b.Cb)({type:String,json:{write:!0}})],Ze.prototype,"routeName",void 0),(0,o._)([(0,b.Cb)({type:[n.Z],json:{write:!0}})],Ze.prototype,"stops",void 0),(0,o._)([(0,b.Cb)({type:le.Z,json:{write:!0}})],Ze.prototype,"traversedEdges",void 0),(0,o._)([(0,b.Cb)({type:le.Z,json:{write:!0}})],Ze.prototype,"traversedJunctions",void 0),(0,o._)([(0,b.Cb)({type:le.Z,json:{write:!0}})],Ze.prototype,"traversedTurns",void 0),Ze=(0,o._)([(0,g.j)("esri.rest.support.RouteResult")],Ze);const Pe=Ze;function Re(e){return e?le.Z.fromJSON(e).features.filter(ae.pC):[]}let je=class extends I.wq{constructor(e){super(e),this.messages=null,this.pointBarriers=null,this.polylineBarriers=null,this.polygonBarriers=null,this.routeResults=null}readPointBarriers(e,t){return Re(t.barriers)}readPolylineBarriers(e){return Re(e)}readPolygonBarriers(e){return Re(e)}};(0,o._)([(0,b.Cb)({type:[fe]})],je.prototype,"messages",void 0),(0,o._)([(0,b.Cb)({type:[n.Z]})],je.prototype,"pointBarriers",void 0),(0,o._)([(0,w.r)("pointBarriers",["barriers"])],je.prototype,"readPointBarriers",null),(0,o._)([(0,b.Cb)({type:[n.Z]})],je.prototype,"polylineBarriers",void 0),(0,o._)([(0,w.r)("polylineBarriers")],je.prototype,"readPolylineBarriers",null),(0,o._)([(0,b.Cb)({type:[n.Z]})],je.prototype,"polygonBarriers",void 0),(0,o._)([(0,w.r)("polygonBarriers")],je.prototype,"readPolygonBarriers",null),(0,o._)([(0,b.Cb)({type:[Pe]})],je.prototype,"routeResults",void 0),je=(0,o._)([(0,g.j)("esri.rest.support.RouteSolveResult")],je);const Le=je;function Ae(e){return e instanceof le.Z}async function Ie(e,t,r){const o=[],i=[],s={},n={},l=(0,W.en)(e),{path:a}=l;Ae(t.stops)&&re(t.stops.features,i,"stops.features",s),Ae(t.pointBarriers)&&re(t.pointBarriers.features,i,"pointBarriers.features",s),Ae(t.polylineBarriers)&&re(t.polylineBarriers.features,i,"polylineBarriers.features",s),Ae(t.polygonBarriers)&&re(t.polygonBarriers.features,i,"polygonBarriers.features",s);const u=await(0,se.aX)(i);for(const e in s){const t=s[e];o.push(e),n[e]=u.slice(t[0],t[1])}if(function(e,t){for(let r=0;r{(0,ie.U2)(t,e)[o].geometry=r}));const p={...r,query:{...l.query,...(0,ne.Yc)(t),f:"json"}},c=a.endsWith("/solve")?a:`${a}/solve`,{data:y}=await(0,q.Z)(c,p);return function(e){const{barriers:t,directionLines:r,directionPoints:o,directions:i,messages:s,polygonBarriers:n,polylineBarriers:l,routes:a,stops:u,traversedEdges:p,traversedJunctions:c,traversedTurns:y}=e,d=e=>{const t=f.find((t=>t.routeName===e));if(null!=t)return t;const r={routeId:f.length+1,routeName:e};return f.push(r),r},m=e=>{const t=f.find((t=>t.routeId===e));if(null!=t)return t;const r={routeId:e,routeName:null};return f.push(r),r},f=[];a?.features.forEach(((e,t)=>{e.geometry.spatialReference=a.spatialReference??void 0;const r=e.attributes.Name,o=t+1;f.push({routeId:o,routeName:r,route:e})})),i?.forEach((e=>{const{routeName:t}=e;d(t).directions=e}));const h=u?.features.every((e=>null==e.attributes.RouteName))&&f.length>0?f[0].routeName:null;return u?.features.forEach((e=>{e.geometry&&(e.geometry.spatialReference??=u.spatialReference??void 0);const t=h??e.attributes.RouteName,r=d(t);r.stops??=[],r.stops.push(e)})),r?.features.forEach((e=>{const t=e.attributes.RouteID,o=m(t),{geometryType:i,spatialReference:s}=r;o.directionLines??={features:[],geometryType:i,spatialReference:s},o.directionLines.features.push(e)})),o?.features.forEach((e=>{const t=e.attributes.RouteID,r=m(t),{geometryType:i,spatialReference:s}=o;r.directionPoints??={features:[],geometryType:i,spatialReference:s},r.directionPoints.features.push(e)})),p?.features.forEach((e=>{const t=e.attributes.RouteID,r=m(t),{geometryType:o,spatialReference:i}=p;r.traversedEdges??={features:[],geometryType:o,spatialReference:i},r.traversedEdges.features.push(e)})),c?.features.forEach((e=>{const t=e.attributes.RouteID,r=m(t),{geometryType:o,spatialReference:i}=c;r.traversedJunctions??={features:[],geometryType:o,spatialReference:i},r.traversedJunctions.features.push(e)})),y?.features.forEach((e=>{const t=e.attributes.RouteID,r=m(t);r.traversedTurns??={features:[]},r.traversedTurns.features.push(e)})),Le.fromJSON({routeResults:f,barriers:t,polygonBarriers:n,polylineBarriers:l,messages:s})}(y)}var Oe=r(51801),Je=r(45340),De=r(6199),Me=r(52182),ke=r(79259),xe=r(92524),Fe=r(41151),Ue=r(7283),Ee=r(75855),Ge=r(53736);let qe=class extends((0,Fe.J)(I.wq)){constructor(e){super(e),this.doNotLocateOnRestrictedElements=null,this.geometry=null,this.geometryType=null,this.name=null,this.spatialRelationship=null,this.type="layer",this.where=null}};(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],qe.prototype,"doNotLocateOnRestrictedElements",void 0),(0,o._)([(0,b.Cb)({types:s.qM,json:{read:Ge.im,write:!0}})],qe.prototype,"geometry",void 0),(0,o._)([(0,z.J)(V.KA)],qe.prototype,"geometryType",void 0),(0,o._)([(0,b.Cb)({type:String,json:{name:"layerName",write:!0}})],qe.prototype,"name",void 0),(0,o._)([(0,z.J)(V.S7,{name:"spatialRel"})],qe.prototype,"spatialRelationship",void 0),(0,o._)([(0,b.Cb)({type:String,json:{write:!0}})],qe.prototype,"type",void 0),(0,o._)([(0,b.Cb)({type:String,json:{write:!0}})],qe.prototype,"where",void 0),qe=(0,o._)([(0,g.j)("esri.rest.support.DataLayer")],qe);const We=qe;var ze;let Ve=ze=class extends le.Z{constructor(e){super(e),this.doNotLocateOnRestrictedElements=null}clone(){return new ze({doNotLocateOnRestrictedElements:this.doNotLocateOnRestrictedElements,...this.cloneProperties()})}};(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ve.prototype,"doNotLocateOnRestrictedElements",void 0),Ve=ze=(0,o._)([(0,g.j)("esri.rest.support.NetworkFeatureSet")],Ve);const Ke=Ve;let $e=class extends((0,Fe.J)(I.wq)){constructor(e){super(e),this.doNotLocateOnRestrictedElements=null,this.url=null}};(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],$e.prototype,"doNotLocateOnRestrictedElements",void 0),(0,o._)([(0,b.Cb)({type:String,json:{write:!0}})],$e.prototype,"url",void 0),$e=(0,o._)([(0,g.j)("esri.rest.support.NetworkUrl")],$e);const Qe=$e;var Xe;let Ye=Xe=class extends((0,Fe.J)(I.wq)){constructor(e){super(e),this.accumulateAttributes=null,this.apiKey=null,this.attributeParameterValues=null,this.directionsLanguage=null,this.directionsLengthUnits=null,this.directionsOutputType=null,this.directionsStyleName=null,this.directionsTimeAttribute=null,this.findBestSequence=null,this.geometryPrecision=null,this.geometryPrecisionM=null,this.geometryPrecisionZ=null,this.ignoreInvalidLocations=null,this.impedanceAttribute=null,this.outputGeometryPrecision=null,this.outputGeometryPrecisionUnits=null,this.outputLines="true-shape",this.outSpatialReference=null,this.overrides=null,this.pointBarriers=null,this.polygonBarriers=null,this.polylineBarriers=null,this.preserveFirstStop=null,this.preserveLastStop=null,this.preserveObjectID=null,this.restrictionAttributes=null,this.restrictUTurns=null,this.returnBarriers=!1,this.returnDirections=!1,this.returnPolygonBarriers=!1,this.returnPolylineBarriers=!1,this.returnRoutes=!0,this.returnStops=!1,this.returnTraversedEdges=null,this.returnTraversedJunctions=null,this.returnTraversedTurns=null,this.returnZ=!0,this.startTime=null,this.startTimeIsUTC=!0,this.stops=null,this.timeWindowsAreUTC=null,this.travelMode=null,this.useHierarchy=null,this.useTimeWindows=null}static from(e){return(0,Ue.TJ)(Xe,e)}readAccumulateAttributes(e){return null==e?null:e.map((e=>V.Ul.fromJSON(e)))}writeAccumulateAttributes(e,t,r){e?.length&&(t[r]=e.map((e=>V.Ul.toJSON(e))))}writePointBarriers(e,t,r){et(e,t,r)}writePolygonBarrier(e,t,r){et(e,t,r)}writePolylineBarrier(e,t,r){et(e,t,r)}readRestrictionAttributes(e){return null==e?null:e.map((e=>V.kL.fromJSON(e)))}writeRestrictionAttributes(e,t,r){e?.length&&(t[r]=e.map((e=>V.kL.toJSON(e))))}readStartTime(e,t){const{startTime:r}=t;return null==r?null:"now"===r?"now":new Date(r)}writeStartTime(e,t){null!=e&&(t.startTime="now"===e?"now":e.getTime())}readStops(e,t){return function(e){return function(e){return e&&"type"in e}(e)?We.fromJSON(e):function(e){return e&&"url"in e}(e)?Qe.fromJSON(e):function(e){return e&&"features"in e&&"doNotLocateOnRestrictedElements"in e}(e)?Ke.fromJSON(e):function(e){return e&&"features"in e}(e)?le.Z.fromJSON(e):null}(t.stops)}writeStops(e,t,r){et(e,t,r)}};(0,o._)([(0,b.Cb)({type:[String],json:{name:"accumulateAttributeNames",write:!0}})],Ye.prototype,"accumulateAttributes",void 0),(0,o._)([(0,w.r)("accumulateAttributes")],Ye.prototype,"readAccumulateAttributes",null),(0,o._)([(0,_.c)("accumulateAttributes")],Ye.prototype,"writeAccumulateAttributes",null),(0,o._)([(0,b.Cb)(Ee.q)],Ye.prototype,"apiKey",void 0),(0,o._)([(0,b.Cb)({json:{write:!0}})],Ye.prototype,"attributeParameterValues",void 0),(0,o._)([(0,b.Cb)({type:String,json:{write:!0}})],Ye.prototype,"directionsLanguage",void 0),(0,o._)([(0,z.J)(V.GX)],Ye.prototype,"directionsLengthUnits",void 0),(0,o._)([(0,z.J)(V.$7)],Ye.prototype,"directionsOutputType",void 0),(0,o._)([(0,z.J)(V.WP)],Ye.prototype,"directionsStyleName",void 0),(0,o._)([(0,z.J)(V.ZI,{name:"directionsTimeAttributeName",ignoreUnknown:!1})],Ye.prototype,"directionsTimeAttribute",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"findBestSequence",void 0),(0,o._)([(0,b.Cb)({type:Number,json:{write:!0}})],Ye.prototype,"geometryPrecision",void 0),(0,o._)([(0,b.Cb)({type:Number,json:{write:!0}})],Ye.prototype,"geometryPrecisionM",void 0),(0,o._)([(0,b.Cb)({type:Number,json:{write:!0}})],Ye.prototype,"geometryPrecisionZ",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"ignoreInvalidLocations",void 0),(0,o._)([(0,z.J)(V.Ul,{name:"impedanceAttributeName",ignoreUnknown:!1})],Ye.prototype,"impedanceAttribute",void 0),(0,o._)([(0,b.Cb)({type:Number,json:{write:!0}})],Ye.prototype,"outputGeometryPrecision",void 0),(0,o._)([(0,z.J)(V.q$)],Ye.prototype,"outputGeometryPrecisionUnits",void 0),(0,o._)([(0,z.J)(V.no)],Ye.prototype,"outputLines",void 0),(0,o._)([(0,b.Cb)({type:Be.Z,json:{name:"outSR",write:!0}})],Ye.prototype,"outSpatialReference",void 0),(0,o._)([(0,b.Cb)({json:{write:!0}})],Ye.prototype,"overrides",void 0),(0,o._)([(0,b.Cb)({json:{name:"barriers",write:!0}})],Ye.prototype,"pointBarriers",void 0),(0,o._)([(0,_.c)("pointBarriers")],Ye.prototype,"writePointBarriers",null),(0,o._)([(0,b.Cb)({json:{write:!0}})],Ye.prototype,"polygonBarriers",void 0),(0,o._)([(0,_.c)("polygonBarriers")],Ye.prototype,"writePolygonBarrier",null),(0,o._)([(0,b.Cb)({json:{write:!0}})],Ye.prototype,"polylineBarriers",void 0),(0,o._)([(0,_.c)("polylineBarriers")],Ye.prototype,"writePolylineBarrier",null),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"preserveFirstStop",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"preserveLastStop",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"preserveObjectID",void 0),(0,o._)([(0,b.Cb)({type:[String],json:{name:"restrictionAttributeNames",write:!0}})],Ye.prototype,"restrictionAttributes",void 0),(0,o._)([(0,w.r)("restrictionAttributes")],Ye.prototype,"readRestrictionAttributes",null),(0,o._)([(0,_.c)("restrictionAttributes")],Ye.prototype,"writeRestrictionAttributes",null),(0,o._)([(0,z.J)(V.ip)],Ye.prototype,"restrictUTurns",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"returnBarriers",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"returnDirections",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"returnPolygonBarriers",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"returnPolylineBarriers",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"returnRoutes",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"returnStops",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"returnTraversedEdges",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"returnTraversedJunctions",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"returnTraversedTurns",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"returnZ",void 0),(0,o._)([(0,b.Cb)({json:{write:!0}})],Ye.prototype,"startTime",void 0),(0,o._)([(0,w.r)("startTime")],Ye.prototype,"readStartTime",null),(0,o._)([(0,_.c)("startTime")],Ye.prototype,"writeStartTime",null),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"startTimeIsUTC",void 0),(0,o._)([(0,b.Cb)({json:{write:!0}})],Ye.prototype,"stops",void 0),(0,o._)([(0,w.r)("stops")],Ye.prototype,"readStops",null),(0,o._)([(0,_.c)("stops")],Ye.prototype,"writeStops",null),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"timeWindowsAreUTC",void 0),(0,o._)([(0,b.Cb)({type:Y.Z,json:{write:!0}})],Ye.prototype,"travelMode",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"useHierarchy",void 0),(0,o._)([(0,b.Cb)({type:Boolean,json:{write:!0}})],Ye.prototype,"useTimeWindows",void 0),Ye=Xe=(0,o._)([(0,g.j)("esri.rest.support.RouteParameters")],Ye);const He=Ye;function et(e,t,r){null!=e&&(t[r]=p.Z.isCollection(e)?{features:e.toArray().map((e=>e.toJSON()))}:e.toJSON())}var tt=r(59700),rt=r(76045),ot=r(74304);function it(e){return e.length?e:null}function st(e){switch(e){case"esriGeometryPoint":return{type:"esriSMS",style:"esriSMSCircle",size:12,color:[0,0,0,0],outline:st("esriGeometryPolyline")};case"esriGeometryPolyline":return{type:"esriSLS",style:"esriSLSSolid",width:1,color:[0,0,0,0]};case"esriGeometryPolygon":return{type:"esriSFS",style:"esriSFSNull",outline:st("esriGeometryPolyline")}}}function nt(e){return"layers"in e}async function lt(e){const t=Be.Z.WGS84;return await(0,B.initializeProjection)(e.spatialReference,t),(0,B.project)(e,t)}function at(e,t){switch(t){case"seconds":return e/60;case"hours":return 60*e;case"days":return 60*e*24;default:return e}}function ut(e,t){return"decimal-degrees"===t||"points"===t||"unknown"===t?e:(0,h.En)(e,t,"meters")}const pt=p.Z.ofType(Oe.Z),ct=p.Z.ofType(Je.Z),yt=p.Z.ofType(De.Z),dt=p.Z.ofType(Me.Z),mt=p.Z.ofType(ke.Z),ft=p.Z.ofType(rt.Z),ht="esri.layers.RouteLayer",vt=()=>u.Z.getLogger(ht);let bt=class extends((0,Z.h)((0,j.M)((0,P.q)((0,R.I)((0,y.R)(N.Z)))))){constructor(e){super(e),this._cachedServiceDescription=null,this._featureCollection=null,this._type="Feature Collection",this.defaultSymbols=new F,this.directionLines=null,this.directionPoints=null,this.featureCollectionType="route",this.legendEnabled=!1,this.maxScale=0,this.minScale=0,this.pointBarriers=new yt,this.polygonBarriers=new dt,this.polylineBarriers=new mt,this.routeInfo=null,this.spatialReference=Be.Z.WGS84,this.stops=new ft,this.type="route";const t=()=>{this._setStopSymbol(this.stops)};this.addHandles((0,f.on)((()=>this.stops),"change",t,{sync:!0,onListenerAdd:t}))}writeFeatureCollectionWebmap(e,t,r,o){const i=[this._writePolygonBarriers(),this._writePolylineBarriers(),this._writePointBarriers(),this._writeRouteInfo(),this._writeDirectionLines(),this._writeDirectionPoints(),this._writeStops()].filter((e=>!!e)),s=i.map(((e,t)=>t)),n="web-map"===o.origin?"featureCollection.layers":"layers";(0,d.RB)(n,i,t),t.opacity=this.opacity,t.visibility=this.visible,t.visibleLayers=s}readDirectionLines(e,t){return this._getNetworkFeatures(t,"DirectionLines",(e=>Oe.Z.fromGraphic(e)))}readDirectionPoints(e,t){return this._getNetworkFeatures(t,"DirectionPoints",(e=>Je.Z.fromGraphic(e)))}get fullExtent(){const e=new C.Z({xmin:-180,ymin:-90,xmax:180,ymax:90,spatialReference:Be.Z.WGS84});if(null!=this.routeInfo?.geometry)return this.routeInfo.geometry.extent??e;if(null==this.stops)return e;const t=this.stops.filter((e=>null!=e.geometry));if(t.length<2)return e;const{spatialReference:r}=t.at(0).geometry;if(null==r)return e;const o=t.toArray().map((e=>{const t=e.geometry;return[t.x,t.y]}));return new ot.Z({points:o,spatialReference:r}).extent}readMaxScale(e,t){const r=nt(t)?t.layers:t.featureCollection?.layers,o=r?.find((e=>null!=e.layerDefinition.maxScale));return o?.layerDefinition.maxScale??0}readMinScale(e,t){const r=nt(t)?t.layers:t.featureCollection?.layers,o=r?.find((e=>null!=e.layerDefinition.minScale));return o?.layerDefinition.minScale??0}readPointBarriers(e,t){return this._getNetworkFeatures(t,"Barriers",(e=>De.Z.fromGraphic(e)))}readPolygonBarriers(e,t){return this._getNetworkFeatures(t,"PolygonBarriers",(e=>Me.Z.fromGraphic(e)))}readPolylineBarriers(e,t){return this._getNetworkFeatures(t,"PolylineBarriers",(e=>ke.Z.fromGraphic(e)))}readRouteInfo(e,t){const r=this._getNetworkFeatures(t,"RouteInfo",(e=>xe.Z.fromGraphic(e)));return r.length>0?r.at(0):null}readSpatialReference(e,t){const r=nt(t)?t.layers:t.featureCollection?.layers;if(!r?.length)return Be.Z.WGS84;const{layerDefinition:o,featureSet:i}=r[0],s=i.features[0],n=s?.geometry?.spatialReference??i.spatialReference??o.spatialReference??o.extent.spatialReference??T.YU;return Be.Z.fromJSON(n)}readStops(e,t){return this._getNetworkFeatures(t,"Stops",(e=>rt.Z.fromGraphic(e)),(e=>this._setStopSymbol(e)))}get title(){return null!=this.routeInfo?.name?this.routeInfo.name:"Route"}set title(e){this._overrideIfSome("title",e)}get url(){return i.default.routeServiceUrl}set url(e){null!=e?this._set("url",(0,L.Nm)(e,vt())):this._set("url",i.default.routeServiceUrl)}load(e){return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Feature Collection"]},e)),Promise.resolve(this)}removeAll(){this.removeResult(),this.pointBarriers.removeAll(),this.polygonBarriers.removeAll(),this.polylineBarriers.removeAll(),this.stops.removeAll()}removeResult(){null!=this.directionLines&&(this.directionLines.removeAll(),this._set("directionLines",null)),null!=this.directionPoints&&(this.directionPoints.removeAll(),this._set("directionPoints",null)),null!=this.routeInfo&&this._set("routeInfo",null)}async save(){await this.load();const{fullExtent:e,portalItem:t}=this;if(!t)throw new c.Z("routelayer:portal-item-not-set","save() requires to the layer to have a portal item");if(!t.id)throw new c.Z("routelayer:portal-item-not-saved","Please use saveAs() first to save the routelayer");if("Feature Collection"!==t.type)throw new c.Z("routelayer:portal-item-wrong-type",'Portal item needs to have type "Feature Collection"');if(null==this.routeInfo)throw new c.Z("routelayer:route-unsolved","save() requires a solved route");const{portal:r}=t;await r.signIn(),r.user||await t.reload();const{itemUrl:o,itemControl:i}=t;if("admin"!==i&&"update"!==i)throw new c.Z("routelayer:insufficient-permissions","To save this layer, you need to be the owner or an administrator of your organization");const s={messages:[],origin:"portal-item",portal:r,url:o?(0,v.mN)(o):void 0,writtenProperties:[]},n=this.write(void 0,s);return t.extent=await lt(e),t.title=this.title,await t.update({data:n}),t}async saveAs(e,t={}){if(await this.load(),null==this.routeInfo)throw new c.Z("routelayer:route-unsolved","saveAs() requires a solved route");const r=E.default.from(e).clone();r.extent??=await lt(this.fullExtent),r.id=null,r.portal??=U.Z.getDefault(),r.title??=this.title,r.type="Feature Collection",r.typeKeywords=["Data","Feature Collection",G.hz.MULTI_LAYER,"Route Layer"];const{portal:o}=r,i={messages:[],origin:"portal-item",portal:o,url:null,writtenProperties:[]};await o.signIn();const s=t?.folder,n=this.write(void 0,i);return await(o.user?.addItem({item:r,folder:s,data:n})),this.portalItem=r,(0,S.D)(i),i.portalItem=r,r}async solve(e,t){const r=e?.stops??this.stops,o=e?.pointBarriers??it(this.pointBarriers),i=e?.polylineBarriers??it(this.polylineBarriers),s=e?.polygonBarriers??it(this.polygonBarriers);if(null==r)throw new c.Z("routelayer:undefined-stops","the route layer must have stops defined in the route parameters.");if((function(e){return"esri.rest.support.FeatureSet"===e.declaredClass}(r)||function(e){return"esri.rest.support.NetworkFeatureSet"===e.declaredClass}(r))&&r.features.length<2||p.Z.isCollection(r)&&r.length<2)throw new c.Z("routelayer:insufficent-stops","the route layer must have two or more stops to solve a route.");if(p.Z.isCollection(r))for(const e of r)e.routeName=null;const n=e?.apiKey,l=this.url,a=await this._getServiceDescription(l,n,t),u=e?.travelMode??a.defaultTravelMode,y=e?.accumulateAttributes??[];null!=u&&(y.push(u.distanceAttributeName),u.timeAttributeName&&y.push(u.timeAttributeName));const d={accumulateAttributes:y,directionsOutputType:"featuresets",ignoreInvalidLocations:!0,pointBarriers:o,polylineBarriers:i,polygonBarriers:s,preserveFirstStop:!0,preserveLastStop:!0,returnBarriers:!!o,returnDirections:!0,returnPolygonBarriers:!!s,returnPolylineBarriers:!!i,returnRoutes:!0,returnStops:!0,stops:r},f=He.from(e??{});let h;f.set(d);try{h=await Ie(l,f,t)}catch(e){throw(0,m.D_)(e)?e:new c.Z("routelayer:failed-route-request","the routing request failed",{error:e})}const v=this._toRouteLayerSolution(h);return this._isOverridden("title")||(this.title=v.routeInfo.name??"Route"),function(e,t,r){const o=t.networkDataset?.networkAttributes,i=o?.filter((({usageType:e})=>"cost"===e))??[],s=r.travelMode??t.defaultTravelMode;if(null==s)return void vt().warn("route-layer:missing-travel-mode","The routing service must have a default travel mode or one must be specified in the route parameter.");const{timeAttributeName:n,distanceAttributeName:l}=s,a=i.find((({name:e})=>e===n)),u=i.find((({name:e})=>e===l)),p=r.travelMode?.impedanceAttributeName??r.impedanceAttribute??t.impedance,y=a?.units,d=u?.units;if(!y||!d)throw new c.Z("routelayer:unknown-impedance-units","the units of either the distance or time impedance are unknown");const m=r.directionsLanguage??t.directionsLanguage,f=r.accumulateAttributes??t.accumulateAttributeNames??[],h=new Set(i.filter((({name:e})=>e===n||e===l||e===p||null!=e&&f.includes(e))).map((({name:e})=>e))),v=e=>{for(const t in e)h.has(t)||delete e[t]};for(const t of e.pointBarriers)null!=t.costs&&(t.addedCost=t.costs[p]??0,v(t.costs));for(const t of e.polygonBarriers)null!=t.costs&&(t.scaleFactor=t.costs[p]??1,v(t.costs));for(const t of e.polylineBarriers)null!=t.costs&&(t.scaleFactor=t.costs[p]??1,v(t.costs));const{routeInfo:b}=e,{findBestSequence:w,preserveFirstStop:g,preserveLastStop:_,startTimeIsUTC:S,timeWindowsAreUTC:C}=r;b.analysisSettings=new tt.Z({accumulateAttributes:f,directionsLanguage:m,findBestSequence:w,preserveFirstStop:g,preserveLastStop:_,startTimeIsUTC:S,timeWindowsAreUTC:C,travelMode:s}),b.totalDuration=at(b.totalCosts?.[n]??0,y),b.totalDistance=ut(b.totalCosts?.[l]??0,d),b.totalLateDuration=at(b.totalViolations?.[n]??0,y),b.totalWaitDuration=at(b.totalWait?.[n]??0,y),null!=b.totalCosts&&v(b.totalCosts),null!=b.totalViolations&&v(b.totalViolations),null!=b.totalWait&&v(b.totalWait);for(const t of e.stops)null!=t.serviceCosts&&(t.serviceDuration=at(t.serviceCosts[n]??0,y),t.serviceDistance=ut(t.serviceCosts[l]??0,d),v(t.serviceCosts)),null!=t.cumulativeCosts&&(t.cumulativeDuration=at(t.cumulativeCosts[n]??0,y),t.cumulativeDistance=ut(t.cumulativeCosts[l]??0,d),v(t.cumulativeCosts)),null!=t.violations&&(t.lateDuration=at(t.violations[n]??0,y),v(t.violations)),null!=t.wait&&(t.waitDuration=at(t.wait[n]??0,y),v(t.wait))}(v,a,f),v}update(e){const{stops:t,directionLines:r,directionPoints:o,pointBarriers:i,polylineBarriers:s,polygonBarriers:n,routeInfo:l}=e;this.set({stops:t,pointBarriers:i,polylineBarriers:s,polygonBarriers:n}),this._set("directionLines",r),this._set("directionPoints",o),this._set("routeInfo",l),null!=l.geometry&&(this.spatialReference=l.geometry.spatialReference)}_getNetworkFeatures(e,t,r,o){const i=nt(e)?e.layers:e.featureCollection?.layers,s=i?.find((e=>e.layerDefinition.name===t));if(null==s)return new p.Z;const{layerDefinition:u,popupInfo:c,featureSet:y}=s,d=u.drawingInfo.renderer,{features:m}=y,f=y.spatialReference??u.spatialReference??u.extent.spatialReference??T.YU,h=d&&(0,a.a)(d),v=Be.Z.fromJSON(f),b=m.map((e=>{const o=n.Z.fromJSON(e);null!=o.geometry&&null!=e.geometry&&null==e.geometry.spatialReference&&(o.geometry.spatialReference=v);const i=r(o);return i.symbol??=h?.getSymbol(o)??this._getNetworkSymbol(t),i.popupTemplate??=c&&l.Z.fromJSON(c),i}));return o&&b.some((e=>!e.symbol))&&o(b),new p.Z(b)}_getNetworkSymbol(e){switch(e){case"Barriers":return this.defaultSymbols.pointBarriers;case"DirectionPoints":return this.defaultSymbols.directionPoints;case"DirectionLines":return this.defaultSymbols.directionLines;case"PolylineBarriers":return this.defaultSymbols.polylineBarriers;case"PolygonBarriers":return this.defaultSymbols.polygonBarriers;case"RouteInfo":return this.defaultSymbols.routeInfo;case"Stops":return null}}async _getServiceDescription(e,t,r){if(null!=this._cachedServiceDescription&&this._cachedServiceDescription.url===e)return this._cachedServiceDescription.serviceDescription;const o=await oe(e,t,r);return this._cachedServiceDescription={serviceDescription:o,url:e},o}_setStopSymbol(e){if(!e||0===e.length)return;if(null==this.defaultSymbols.stops)return;if(e.every((({symbol:e})=>null!=e)))return;const{first:t,last:r,middle:o,unlocated:i,waypoint:s,break:n}=this.defaultSymbols.stops;if(null==this.routeInfo||1===e.length)return void e.forEach(((i,s)=>{switch(s){case 0:i.symbol=t;break;case e.length-1:i.symbol=r;break;default:i.symbol=o}}));const l=e.map((({sequence:e})=>e)).filter((e=>null!=e)),a=Math.min(...l),u=Math.max(...l);for(const l of e)l.sequence!==a?l.sequence!==u?"ok"===l.status||"not-located-on-closest"===l.status?"waypoint"!==l.locationType?"break"!==l.locationType?l.symbol=o:l.symbol=n:l.symbol=s:l.symbol=i:l.symbol=r:l.symbol=t}_toRouteLayerSolution(e){const t=e.routeResults[0].stops?.map((e=>rt.Z.fromJSON(e.toJSON())));this._setStopSymbol(t);const r=new ft(t),o=new dt(e.polygonBarriers?.map((e=>{const t=Me.Z.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.polygonBarriers,t}))),i=new mt(e.polylineBarriers?.map((e=>{const t=ke.Z.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.polylineBarriers,t}))),s=new yt(e.pointBarriers?.map((e=>{const t=De.Z.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.pointBarriers,t}))),n=e.routeResults[0].route?.toJSON(),l=xe.Z.fromJSON(n);l.symbol=this.defaultSymbols.routeInfo;const a=new ct(e.routeResults[0].directionPoints?.features.map((e=>{const t=Je.Z.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.directionPoints,t})));return{directionLines:new pt(e.routeResults[0].directionLines?.features.map((e=>{const t=Oe.Z.fromJSON(e.toJSON());return t.symbol=this.defaultSymbols.directionLines,t}))),directionPoints:a,pointBarriers:s,polygonBarriers:o,polylineBarriers:i,routeInfo:l,stops:r}}_writeDirectionLines(){return this._writeNetworkFeatures(this.directionLines,this.defaultSymbols.directionLines,"esriGeometryPolyline",Oe.Z.fields,Oe.Z.popupInfo,"DirectionLines","Direction Lines")}_writeDirectionPoints(){return this._writeNetworkFeatures(this.directionPoints,this.defaultSymbols.directionPoints,"esriGeometryPoint",Je.Z.fields,Je.Z.popupInfo,"DirectionPoints","Direction Points")}_writeNetworkFeatures(e,t,r,o,i,s,n){if(!e?.length)return null;const l=this.spatialReference.toJSON(),{fullExtent:a,maxScale:u,minScale:p}=this;return{featureSet:{features:e.toArray().map((e=>function(e){const{attributes:t,geometry:r,popupTemplate:o,symbol:i}=e.toGraphic().toJSON();return{attributes:t,geometry:r,popupInfo:o,symbol:i}}(e))),geometryType:r,spatialReference:l},layerDefinition:{capabilities:"Query,Update,Editing",drawingInfo:{renderer:{type:"simple",symbol:null!=t?t.toJSON():st(r)}},extent:a.toJSON(),fields:o,geometryType:r,hasM:!1,hasZ:!1,maxScale:u,minScale:p,name:s,objectIdField:"ObjectID",spatialReference:l,title:n,type:"Feature Layer",typeIdField:""},popupInfo:i}}_writePointBarriers(){return this._writeNetworkFeatures(this.pointBarriers,this.defaultSymbols.pointBarriers,"esriGeometryPoint",De.Z.fields,De.Z.popupInfo,"Barriers","Point Barriers")}_writePolygonBarriers(){return this._writeNetworkFeatures(this.polygonBarriers,this.defaultSymbols.polygonBarriers,"esriGeometryPolygon",Me.Z.fields,Me.Z.popupInfo,"PolygonBarriers","Polygon Barriers")}_writePolylineBarriers(){return this._writeNetworkFeatures(this.polylineBarriers,this.defaultSymbols.polylineBarriers,"esriGeometryPolyline",ke.Z.fields,ke.Z.popupInfo,"PolylineBarriers","Line Barriers")}_writeRouteInfo(){return this._writeNetworkFeatures(null!=this.routeInfo?new p.Z([this.routeInfo]):null,this.defaultSymbols.routeInfo,"esriGeometryPolyline",xe.Z.fields,xe.Z.popupInfo,"RouteInfo","Route Details")}_writeStops(){const e=this._writeNetworkFeatures(this.stops,null,"esriGeometryPoint",rt.Z.fields,rt.Z.popupInfo,"Stops","Stops");if(null==e)return null;const{stops:t}=this.defaultSymbols,r=t?.first?.toJSON(),o=t?.middle?.toJSON(),i=t?.last?.toJSON();return e.layerDefinition.drawingInfo.renderer={type:"uniqueValue",field1:"Sequence",defaultSymbol:o,uniqueValueInfos:[{value:"1",symbol:r,label:"First Stop"},{value:`${this.stops.length}`,symbol:i,label:"Last Stop"}]},e}};(0,o._)([(0,b.Cb)({readOnly:!0,json:{read:!1,origins:{"portal-item":{write:{allowNull:!0,ignoreOrigin:!0}},"web-map":{write:{overridePolicy(){return{allowNull:!0,ignoreOrigin:null==this.portalItem}}}}}}})],bt.prototype,"_featureCollection",void 0),(0,o._)([(0,_.c)(["web-map","portal-item"],"_featureCollection")],bt.prototype,"writeFeatureCollectionWebmap",null),(0,o._)([(0,b.Cb)({readOnly:!0,json:{read:!1,origins:{"web-map":{write:{target:"type",overridePolicy(){return{ignoreOrigin:null!=this.portalItem}}}}}}})],bt.prototype,"_type",void 0),(0,o._)([(0,b.Cb)({nonNullable:!0,type:F})],bt.prototype,"defaultSymbols",void 0),(0,o._)([(0,b.Cb)({readOnly:!0})],bt.prototype,"directionLines",void 0),(0,o._)([(0,w.r)(["web-map","portal-item"],"directionLines",["layers","featureCollection.layers"])],bt.prototype,"readDirectionLines",null),(0,o._)([(0,b.Cb)({readOnly:!0})],bt.prototype,"directionPoints",void 0),(0,o._)([(0,w.r)(["web-map","portal-item"],"directionPoints",["layers","featureCollection.layers"])],bt.prototype,"readDirectionPoints",null),(0,o._)([(0,b.Cb)({readOnly:!0,json:{read:!1,origins:{"web-map":{write:{ignoreOrigin:!0}}}}})],bt.prototype,"featureCollectionType",void 0),(0,o._)([(0,b.Cb)({readOnly:!0})],bt.prototype,"fullExtent",null),(0,o._)([(0,b.Cb)({json:{origins:{"web-map":{name:"featureCollection.showLegend"}},write:!0}})],bt.prototype,"legendEnabled",void 0),(0,o._)([(0,b.Cb)({type:["show","hide"]})],bt.prototype,"listMode",void 0),(0,o._)([(0,b.Cb)({type:Number,nonNullable:!0,json:{write:!1}})],bt.prototype,"maxScale",void 0),(0,o._)([(0,w.r)(["web-map","portal-item"],"maxScale",["layers","featureCollection.layers"])],bt.prototype,"readMaxScale",null),(0,o._)([(0,b.Cb)({type:Number,nonNullable:!0,json:{write:!1}})],bt.prototype,"minScale",void 0),(0,o._)([(0,w.r)(["web-map","portal-item"],"minScale",["layers","featureCollection.layers"])],bt.prototype,"readMinScale",null),(0,o._)([(0,b.Cb)({type:["ArcGISFeatureLayer"],value:"ArcGISFeatureLayer"})],bt.prototype,"operationalLayerType",void 0),(0,o._)([(0,b.Cb)({nonNullable:!0,type:p.Z.ofType(De.Z)})],bt.prototype,"pointBarriers",void 0),(0,o._)([(0,w.r)(["web-map","portal-item"],"pointBarriers",["layers","featureCollection.layers"])],bt.prototype,"readPointBarriers",null),(0,o._)([(0,b.Cb)({nonNullable:!0,type:p.Z.ofType(Me.Z)})],bt.prototype,"polygonBarriers",void 0),(0,o._)([(0,w.r)(["web-map","portal-item"],"polygonBarriers",["layers","featureCollection.layers"])],bt.prototype,"readPolygonBarriers",null),(0,o._)([(0,b.Cb)({nonNullable:!0,type:p.Z.ofType(ke.Z)})],bt.prototype,"polylineBarriers",void 0),(0,o._)([(0,w.r)(["web-map","portal-item"],"polylineBarriers",["layers","featureCollection.layers"])],bt.prototype,"readPolylineBarriers",null),(0,o._)([(0,b.Cb)({readOnly:!0})],bt.prototype,"routeInfo",void 0),(0,o._)([(0,w.r)(["web-map","portal-item"],"routeInfo",["layers","featureCollection.layers"])],bt.prototype,"readRouteInfo",null),(0,o._)([(0,b.Cb)({type:Be.Z})],bt.prototype,"spatialReference",void 0),(0,o._)([(0,w.r)(["web-map","portal-item"],"spatialReference",["layers","featureCollection.layers"])],bt.prototype,"readSpatialReference",null),(0,o._)([(0,b.Cb)({nonNullable:!0,type:p.Z.ofType(rt.Z)})],bt.prototype,"stops",void 0),(0,o._)([(0,w.r)(["web-map","portal-item"],"stops",["layers","featureCollection.layers"])],bt.prototype,"readStops",null),(0,o._)([(0,b.Cb)()],bt.prototype,"title",null),(0,o._)([(0,b.Cb)({readOnly:!0,json:{read:!1}})],bt.prototype,"type",void 0),(0,o._)([(0,b.Cb)()],bt.prototype,"url",null),bt=(0,o._)([(0,g.j)(ht)],bt);const wt=bt}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/2901.19b2d31c5afe021ef145.js b/docs/sentinel1-explorer/2901.19b2d31c5afe021ef145.js new file mode 100644 index 00000000..ab571e52 --- /dev/null +++ b/docs/sentinel1-explorer/2901.19b2d31c5afe021ef145.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[2901],{62901:function(e,r,i){i.d(r,{computeObjectLayerResourceSize:function(){return l}});i(66341);var n=i(70375),o=i(55854),t=i(81095),s=i(37116),u=i(19049);let c=a();function a(){return new o.z(50)}async function l(e,r=null){if(!e.isPrimitive){const r=e.resource.href;if(!r)throw new n.Z("symbol:invalid-resource","The symbol does not have a valid resource");const o=c.get(r);if(void 0!==o)return o;const{fetch:u}=await Promise.all([i.e(1449),i.e(6428),i.e(3190),i.e(8145),i.e(1208)]).then(i.bind(i,61208)),a=await u(r,{disableTextures:!0}),l=(0,s.dp)(a.referenceBoundingBox,(0,t.Ue)());return c.put(r,l),l}if(!e.resource?.primitive)throw new n.Z("symbol:invalid-resource","The symbol does not have a valid resource");const o=(0,s.Ue)((0,u.Uz)(e.resource.primitive));if(null!=r)for(let e=0;e0){const t=1/Math.sqrt(c);e[f]=t*s,e[f+1]=t*u,e[f+2]=t*o}i+=n,f+=r}}Object.freeze(Object.defineProperty({__proto__:null,normalize:y,normalizeView:l,scale:c,scaleView:o,shiftRight:function(e,t,r){const n=Math.min(e.count,t.count),s=e.typedBuffer,i=e.typedBufferStride,f=t.typedBuffer,u=t.typedBufferStride;let o=0,c=0;for(let e=0;e>r,s[c+1]=f[o+1]>>r,s[c+2]=f[o+2]>>r,o+=u,c+=i},transformMat3:u,transformMat3View:f,transformMat4:i,transformMat4View:s,translate:a},Symbol.toStringTag,{value:"Module"}))},3308:function(e,t,r){function n(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function s(e){return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]}r.d(t,{Ue:function(){return n},Wd:function(){return i},d9:function(){return s}});const i=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];Object.freeze(Object.defineProperty({__proto__:null,IDENTITY:i,clone:s,create:n,createView:function(e,t){return new Float64Array(e,t,16)},fromValues:function(e,t,r,n,s,i,f,u,o,c,a,l,y,p,h,d){return[e,t,r,n,s,i,f,u,o,c,a,l,y,p,h,d]}},Symbol.toStringTag,{value:"Module"}))},96303:function(e,t,r){function n(){return[0,0,0,1]}function s(e){return[e[0],e[1],e[2],e[3]]}r.d(t,{Ue:function(){return n},Wd:function(){return i},d9:function(){return s}});const i=[0,0,0,1];Object.freeze(Object.defineProperty({__proto__:null,IDENTITY:i,clone:s,create:n,createView:function(e,t){return new Float64Array(e,t,4)},fromValues:function(e,t,r,n){return[e,t,r,n]}},Symbol.toStringTag,{value:"Module"}))},1845:function(e,t,r){r.d(t,{Bh:function(){return a},I6:function(){return x},Jp:function(){return l},Kx:function(){return p},Su:function(){return d},t8:function(){return m},yY:function(){return c}});var n=r(3965),s=r(96303),i=r(81095),f=r(40201),u=r(86717),o=r(56999);function c(e,t,r){r*=.5;const n=Math.sin(r);return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=Math.cos(r),e}function a(e,t){const r=2*Math.acos(t[3]),n=Math.sin(r/2);return n>(0,f.bn)()?(e[0]=t[0]/n,e[1]=t[1]/n,e[2]=t[2]/n):(e[0]=1,e[1]=0,e[2]=0),r}function l(e,t,r){const n=t[0],s=t[1],i=t[2],f=t[3],u=r[0],o=r[1],c=r[2],a=r[3];return e[0]=n*a+f*u+s*c-i*o,e[1]=s*a+f*o+i*u-n*c,e[2]=i*a+f*c+n*o-s*u,e[3]=f*a-n*u-s*o-i*c,e}function y(e,t,r,n){const s=t[0],i=t[1],u=t[2],o=t[3];let c,a,l,y,p,h=r[0],d=r[1],b=r[2],m=r[3];return a=s*h+i*d+u*b+o*m,a<0&&(a=-a,h=-h,d=-d,b=-b,m=-m),1-a>(0,f.bn)()?(c=Math.acos(a),l=Math.sin(c),y=Math.sin((1-n)*c)/l,p=Math.sin(n*c)/l):(y=1-n,p=n),e[0]=y*s+p*h,e[1]=y*i+p*d,e[2]=y*u+p*b,e[3]=y*o+p*m,e}function p(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function h(e,t){const r=t[0]+t[4]+t[8];let n;if(r>0)n=Math.sqrt(r+1),e[3]=.5*n,n=.5/n,e[0]=(t[5]-t[7])*n,e[1]=(t[6]-t[2])*n,e[2]=(t[1]-t[3])*n;else{let r=0;t[4]>t[0]&&(r=1),t[8]>t[3*r+r]&&(r=2);const s=(r+1)%3,i=(r+2)%3;n=Math.sqrt(t[3*r+r]-t[3*s+s]-t[3*i+i]+1),e[r]=.5*n,n=.5/n,e[3]=(t[3*s+i]-t[3*i+s])*n,e[s]=(t[3*s+r]+t[3*r+s])*n,e[i]=(t[3*i+r]+t[3*r+i])*n}return e}function d(e,t,r,n){const s=.5*Math.PI/180;t*=s,r*=s,n*=s;const i=Math.sin(t),f=Math.cos(t),u=Math.sin(r),o=Math.cos(r),c=Math.sin(n),a=Math.cos(n);return e[0]=i*o*a-f*u*c,e[1]=f*u*a+i*o*c,e[2]=f*o*c-i*u*a,e[3]=f*o*a+i*u*c,e}const b=o.c,m=o.s,g=o.f,B=l,T=o.b,E=o.g,A=o.l,w=o.i,S=w,M=o.j,_=M,O=o.n,x=o.a,L=o.e;const P=(0,i.Ue)(),v=(0,i.al)(1,0,0),C=(0,i.al)(0,1,0);const R=(0,s.Ue)(),F=(0,s.Ue)();const N=(0,n.Ue)();Object.freeze(Object.defineProperty({__proto__:null,add:g,calculateW:function(e,t){const r=t[0],n=t[1],s=t[2];return e[0]=r,e[1]=n,e[2]=s,e[3]=Math.sqrt(Math.abs(1-r*r-n*n-s*s)),e},conjugate:p,copy:b,dot:E,equals:L,exactEquals:x,fromEuler:d,fromMat3:h,getAxisAngle:a,identity:function(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e},invert:function(e,t){const r=t[0],n=t[1],s=t[2],i=t[3],f=r*r+n*n+s*s+i*i,u=f?1/f:0;return e[0]=-r*u,e[1]=-n*u,e[2]=-s*u,e[3]=i*u,e},len:S,length:w,lerp:A,mul:B,multiply:l,normalize:O,random:function(e){const t=f.FD,r=t(),n=t(),s=t(),i=Math.sqrt(1-r),u=Math.sqrt(r);return e[0]=i*Math.sin(2*Math.PI*n),e[1]=i*Math.cos(2*Math.PI*n),e[2]=u*Math.sin(2*Math.PI*s),e[3]=u*Math.cos(2*Math.PI*s),e},rotateX:function(e,t,r){r*=.5;const n=t[0],s=t[1],i=t[2],f=t[3],u=Math.sin(r),o=Math.cos(r);return e[0]=n*o+f*u,e[1]=s*o+i*u,e[2]=i*o-s*u,e[3]=f*o-n*u,e},rotateY:function(e,t,r){r*=.5;const n=t[0],s=t[1],i=t[2],f=t[3],u=Math.sin(r),o=Math.cos(r);return e[0]=n*o-i*u,e[1]=s*o+f*u,e[2]=i*o+n*u,e[3]=f*o-s*u,e},rotateZ:function(e,t,r){r*=.5;const n=t[0],s=t[1],i=t[2],f=t[3],u=Math.sin(r),o=Math.cos(r);return e[0]=n*o+s*u,e[1]=s*o-n*u,e[2]=i*o+f*u,e[3]=f*o-i*u,e},rotationTo:function(e,t,r){const n=(0,u.k)(t,r);return n<-.999999?((0,u.b)(P,v,t),(0,u.H)(P)<1e-6&&(0,u.b)(P,C,t),(0,u.n)(P,P),c(e,P,Math.PI),e):n>.999999?(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e):((0,u.b)(P,t,r),e[0]=P[0],e[1]=P[1],e[2]=P[2],e[3]=1+n,O(e,e))},scale:T,set:m,setAxes:function(e,t,r,n){const s=N;return s[0]=r[0],s[3]=r[1],s[6]=r[2],s[1]=n[0],s[4]=n[1],s[7]=n[2],s[2]=-t[0],s[5]=-t[1],s[8]=-t[2],O(e,h(e,s))},setAxisAngle:c,slerp:y,sqlerp:function(e,t,r,n,s,i){return y(R,t,s,i),y(F,r,n,i),y(e,R,F,2*i*(1-i)),e},sqrLen:_,squaredLength:M,str:function(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}},Symbol.toStringTag,{value:"Module"}))},43176:function(e,t,r){r.d(t,{B:function(){return c}});var n=r(19431),s=r(32114),i=r(81095);function f(e,t,r){const n=Math.sin(e),s=Math.cos(e),i=Math.sin(t),f=Math.cos(t),u=r;return u[0]=-n,u[4]=-i*s,u[8]=f*s,u[12]=0,u[1]=s,u[5]=-i*n,u[9]=f*n,u[13]=0,u[2]=0,u[6]=f,u[10]=i,u[14]=0,u[3]=0,u[7]=0,u[11]=0,u[15]=1,u}var u=r(19508),o=r(35925);function c(e,t,r,n){if(null==e||null==n)return!1;const i=(0,u.eT)(e,u.Jz),c=(0,u.eT)(n,u.sp);if(i===c&&!a(c)&&(i!==u.Ej.UNKNOWN||(0,o.fS)(e,n)))return(0,s.vc)(r,t),!0;if(a(c)){const e=u.rf[i][u.Ej.LON_LAT],n=u.rf[u.Ej.LON_LAT][c];return null!=e&&null!=n&&(e(t,0,y,0),n(y,0,p,0),f(l*y[0],l*y[1],r),r[12]=p[0],r[13]=p[1],r[14]=p[2],!0)}if((c===u.Ej.WEB_MERCATOR||c===u.Ej.PLATE_CARREE||c===u.Ej.WGS84)&&(i===u.Ej.WGS84||i===u.Ej.CGCS2000&&c===u.Ej.PLATE_CARREE||i===u.Ej.SPHERICAL_ECEF||i===u.Ej.WEB_MERCATOR)){const e=u.rf[i][u.Ej.LON_LAT],n=u.rf[u.Ej.LON_LAT][c];return null!=e&&null!=n&&(e(t,0,y,0),n(y,0,p,0),i===u.Ej.SPHERICAL_ECEF?function(e,t,r){f(e,t,r),(0,s.p4)(r,r)}(l*y[0],l*y[1],r):(0,s.yR)(r),r[12]=p[0],r[13]=p[1],r[14]=p[2],!0)}return!1}function a(e){return e===u.Ej.SPHERICAL_ECEF||e===u.Ej.SPHERICAL_MARS_PCPF||e===u.Ej.SPHERICAL_MOON_PCPF}const l=(0,n.Vl)(1),y=(0,i.Ue)(),p=(0,i.Ue)()},61170:function(e,t,r){r.d(t,{rS:function(){return c}});var n=r(69442),s=r(14685),i=r(35925);const f=new s.Z(n.kU),u=new s.Z(n.JL),o=new s.Z(n.mM);new s.Z(n.pn);function c(e){const t=a.get(e);if(t)return t;let r=f;if(e)if(e===u)r=u;else if(e===o)r=o;else{const t=e.wkid,n=e.latestWkid;if(null!=t||null!=n)(0,i.o$)(t)||(0,i.o$)(n)?r=u:((0,i.ME)(t)||(0,i.ME)(n))&&(r=o);else{const t=e.wkt2??e.wkt;if(t){const e=t.toUpperCase();e===l?r=u:e===y&&(r=o)}}}return a.set(e,r),r}const a=new Map,l=u.wkt.toUpperCase(),y=o.wkt.toUpperCase()},92570:function(e,t,r){r.d(t,{JK:function(){return u},QZ:function(){return i},Rq:function(){return f},bg:function(){return s},mB:function(){return o}});var n=r(86098);function s(e,t=!1){return e<=n.c8?t?new Array(e).fill(0):new Array(e):new Float64Array(e)}function i(e){return((0,n.kJ)(e)?e.length:e.byteLength/8)<=n.c8?Array.from(e):new Float64Array(e)}function f(e,t,r){return Array.isArray(e)?e.slice(t,t+r):e.subarray(t,t+r)}function u(e,t){for(let r=0;rn.Z.getLogger("esri.views.3d.support.buffer.math")},12902:function(e,t,r){r.r(t),r.d(t,{default:function(){return u}});var n=r(39994),s=r(26488),i=r(50442),f=r(91780);class u{async createIndex(e,t){const r=new Array;if(!e.vertexAttributes?.position)return new s.Q;const n=this._createMeshData(e),i=null!=t?await t.invoke("createIndexThread",n,{transferList:r}):this.createIndexThread(n).result;return this._createPooledRBush().fromJSON(i)}createIndexThread(e){const t=new Float64Array(e.position),r=this._createPooledRBush();return e.components?this._createIndexComponentsThread(r,t,e.components.map((e=>new Uint32Array(e)))):this._createIndexAllThread(r,t)}_createIndexAllThread(e,t){const r=new Array(t.length/9);let n=0;for(let e=0;e!e.faces))?{position:t}:{position:t,components:e.components.map((e=>e.faces))}}_createPooledRBush(){return new s.Q(9,(0,n.Z)("esri-csp-restrictions")?e=>e:[".minX",".minY",".maxX",".maxY"])}}function o(e,t,r,n){return{minX:Math.min(e[t],e[r],e[n]),maxX:Math.max(e[t],e[r],e[n]),minY:Math.min(e[t+1],e[r+1],e[n+1]),maxY:Math.max(e[t+1],e[r+1],e[n+1]),p0:[e[t],e[t+1],e[t+2]],p1:[e[r],e[r+1],e[r+2]],p2:[e[n],e[n+1],e[n+2]]}}},67341:function(e,t,r){r.d(t,{Pq:function(){return u},Tj:function(){return f},qr:function(){return o}});var n=r(59801),s=r(13802),i=r(50442);function f(e,t){return e.isGeographic||e.isWebMercator&&(t??!0)}function u(e,t){switch(e.type){case"georeferenced":return t.isGeographic;case"local":return t.isGeographic||t.isWebMercator}}function o(e,t,r,f){if(void 0!==f){(0,n.x9)(s.Z.getLogger(e),"option: geographic",{replacement:"use mesh vertexSpace and spatial reference to control how operations are performed",version:"4.29",warnOnce:!0});const u="local"===t.type;if(!(0,i.zZ)(t)||f===u)return r.isGeographic||r.isWebMercator&&f;s.Z.getLogger(e).warnOnce(`Specifying the 'geographic' parameter (${f}) for a Mesh vertex space of type "${t.type}" is not supported. This parameter will be ignored.`)}return u(t,r)}},91780:function(e,t,r){r.d(t,{I5:function(){return A},Ne:function(){return E},O7:function(){return R},Sm:function(){return L},Yq:function(){return M},pY:function(){return O},project:function(){return _},w1:function(){return w}});var n=r(17321),s=r(3965),i=r(32114),f=r(3308),u=r(86717),o=r(81095),c=r(46332),a=r(28105),l=r(61170),y=r(43176),p=r(22349),h=r(92570),d=r(68403),b=r(50442),m=r(6766),g=r(67341),B=r(49921);function T(e,t,r){return(0,g.Tj)(t.spatialReference,r?.geographic)?O(e,t,!1,r):function(e,t,r){const n=new Float64Array(e.position.length),s=e.position,i=t.x,f=t.y,u=t.z??0,o=R(r?r.unit:null,t.spatialReference);for(let e=0;en.Z.getLogger("esri.geometry.support.meshUtils.normalProjection");function m(e,t,r,n,s){return _(n)?(M(x.TO_PCPF,h.ct.fromTypedArray(e),h.fP.fromTypedArray(t),h.fP.fromTypedArray(r),n,h.ct.fromTypedArray(s)),s):(b().error("Cannot convert spatial reference to PCPF"),s)}function g(e,t,r,n,s){return _(n)?(M(x.FROM_PCPF,h.ct.fromTypedArray(e),h.fP.fromTypedArray(t),h.fP.fromTypedArray(r),n,h.ct.fromTypedArray(s)),s):(b().error("Cannot convert to spatial reference from PCPF"),s)}function B(e,t,r){return(0,l.projectBuffer)(e,t,0,r,(0,c.rS)(t),0,e.length/3),r}function T(e,t,r){return(0,l.projectBuffer)(e,(0,c.rS)(r),0,t,r,0,e.length/3),t}function E(e,t,r){return(0,s.XL)(R,r),(0,d.b)(t,e,R),(0,s.pV)(R)||(0,d.n)(t,t),t}function A(e,t,r){if((0,s.XL)(R,r),(0,d.b)(t,e,R,4),(0,s.pV)(R)||(0,d.n)(t,t,4),e!==t)for(let r=3;r{(0,n.l)(e)&&r&&e.originOf(t)!==r&&e.updateOrigin(t,r)}))}},71760:function(e,t,r){function n(e){return e&&"getAtOrigin"in e&&"originOf"in e}r.d(t,{l:function(){return n}})},42942:function(e,t,r){r.d(t,{save:function(){return f},saveAs:function(){return d}});var n=r(21011),a=r(31370);const i="Stream Service",o="Feed",s="stream-layer-save",u="stream-layer-save-as";function l(e){return{isValid:"stream"===e.type&&!!e.url&&!e.webSocketUrl,errorMessage:"Stream layer should be created using a url to a stream service"}}function c(e){const t=e.layerJSON;return Promise.resolve(t&&Object.keys(t).length?t:null)}async function p(e,t){const{parsedUrl:r,title:n,fullExtent:i}=e;t.url=r.path,t.title||=n,t.extent=null,null!=i&&(t.extent=await(0,a.$o)(i)),(0,a.ck)(t,a.hz.METADATA),(0,a.qj)(t,a.hz.SINGLE_LAYER)}async function f(e,t){return(0,n.a1)({layer:e,itemType:i,additionalItemType:o,validateLayer:l,createItemData:c,errorNamePrefix:s},t)}async function d(e,t,r){return(0,n.po)({layer:e,itemType:i,validateLayer:l,createItemData:c,errorNamePrefix:u,newItem:t,setItemProperties:p},r)}},21011:function(e,t,r){r.d(t,{DC:function(){return p},Nw:function(){return h},UY:function(){return g},V3:function(){return v},Ym:function(){return y},a1:function(){return x},jX:function(){return I},po:function(){return N},uT:function(){return w},xG:function(){return d}});var n=r(70375),a=r(50516),i=r(93968),o=r(53110),s=r(84513),u=r(31370),l=r(76990),c=r(60629);function p(e,t,r){const a=r(e);if(!a.isValid)throw new n.Z(`${t}:invalid-parameters`,a.errorMessage,{layer:e})}async function f(e){const{layer:t,errorNamePrefix:r,validateLayer:n}=e;await t.load(),p(t,r,n)}function d(e,t){return`Layer (title: ${e.title}, id: ${e.id}) of type '${e.declaredClass}' ${t}`}function m(e){const{item:t,errorNamePrefix:r,layer:a,validateItem:i}=e;if((0,l.w)(t),function(e){const{item:t,itemType:r,additionalItemType:a,errorNamePrefix:i,layer:o}=e,s=[r];if(a&&s.push(a),!s.includes(t.type)){const e=s.map((e=>`'${e}'`)).join(", ");throw new n.Z(`${i}:portal-item-wrong-type`,`Portal item type should be one of: "${e}"`,{item:t,layer:o})}}(e),i){const e=i(t);if(!e.isValid)throw new n.Z(`${r}:invalid-parameters`,e.errorMessage,{layer:a})}}function y(e){const{layer:t,errorNamePrefix:r}=e,{portalItem:a}=t;if(!a)throw new n.Z(`${r}:portal-item-not-set`,d(t,"requires the portalItem property to be set"));if(!a.loaded)throw new n.Z(`${r}:portal-item-not-loaded`,d(t,"cannot be saved to a portal item that does not exist or is inaccessible"));m({...e,item:a})}function w(e){const{newItem:t,itemType:r}=e;let n=o.default.from(t);return n.id&&(n=n.clone(),n.id=null),n.type??=r,n.portal??=i.Z.getDefault(),m({...e,item:n}),n}function v(e){return(0,s.Y)(e,"portal-item")}async function h(e,t,r){"beforeSave"in e&&"function"==typeof e.beforeSave&&await e.beforeSave();const n=e.write({},t);return await Promise.all(t.resources?.pendingOperations??[]),(0,c.z)(t,{errorName:"layer-write:unsupported"},r),n}function g(e){(0,u.qj)(e,u.hz.JSAPI),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}async function I(e,t,r){const n=e.portal;await n.signIn(),await(n.user?.addItem({item:e,data:t,folder:r?.folder}))}async function x(e,t){const{layer:r,createItemData:n,createJSONContext:i,saveResources:o,supplementalUnsupportedErrors:s}=e;await f(e),y(e);const u=r.portalItem,l=i?i(u):v(u),c=await h(r,l,{...t,supplementalUnsupportedErrors:s}),p=await n({layer:r,layerJSON:c},u);return g(u),await u.update({data:p}),(0,a.D)(l),await(o?.(u,l)),u}async function N(e,t){const{layer:r,createItemData:n,createJSONContext:i,setItemProperties:o,saveResources:s,supplementalUnsupportedErrors:u}=e;await f(e);const l=w(e),c=i?i(l):v(l),p=await h(r,c,{...t,supplementalUnsupportedErrors:u}),d=await n({layer:r,layerJSON:p},l);return await o(r,l),g(l),await I(l,d,t),r.portalItem=l,(0,a.D)(c),await(s?.(l,c)),l}},76990:function(e,t,r){r.d(t,{w:function(){return o}});var n=r(51366),a=r(70375),i=r(99522);function o(e){if(n.default.apiKey&&(0,i.r)(e.portal.url))throw new a.Z("save-api-key-utils:api-key-not-supported",`Saving is not supported on ${e.portal.url} when using an api key`)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3027.07ca63f286a159ad63e1.js b/docs/sentinel1-explorer/3027.07ca63f286a159ad63e1.js new file mode 100644 index 00000000..9ab9bf92 --- /dev/null +++ b/docs/sentinel1-explorer/3027.07ca63f286a159ad63e1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3027],{3027:function(t,e,i){i.d(e,{$:function(){return Ae},A:function(){return Jt},B:function(){return Qt},C:function(){return jt},D:function(){return ee},E:function(){return fe},F:function(){return Ft},G:function(){return Be},H:function(){return A},I:function(){return M},J:function(){return At},K:function(){return y},L:function(){return We},M:function(){return V},N:function(){return Wt},O:function(){return G},P:function(){return r},Q:function(){return B},R:function(){return Se},S:function(){return _e},T:function(){return Ve},U:function(){return g},V:function(){return f},W:function(){return lt},X:function(){return H},Y:function(){return m},Z:function(){return b},_:function(){return I},a:function(){return a},a0:function(){return d},a1:function(){return vt},a2:function(){return ot},a3:function(){return bt},a4:function(){return mt},a5:function(){return ct},a6:function(){return _t},a7:function(){return pt},a8:function(){return gt},a9:function(){return ft},aA:function(){return Z},aB:function(){return le},aC:function(){return K},aD:function(){return ut},aE:function(){return rt},aF:function(){return Lt},aG:function(){return he},aH:function(){return Yt},aI:function(){return O},aJ:function(){return de},aK:function(){return q},aL:function(){return yt},aM:function(){return at},aN:function(){return Xt},aO:function(){return Ot},aa:function(){return l},ab:function(){return dt},ac:function(){return L},ad:function(){return W},ae:function(){return F},af:function(){return Y},ag:function(){return v},ah:function(){return Q},ai:function(){return U},aj:function(){return J},ak:function(){return et},al:function(){return k},am:function(){return S},an:function(){return T},ao:function(){return ke},ap:function(){return D},aq:function(){return tt},ar:function(){return R},as:function(){return st},at:function(){return Gt},au:function(){return ht},av:function(){return Et},aw:function(){return Me},ax:function(){return Ce},ay:function(){return oe},az:function(){return $},c:function(){return se},d:function(){return St},e:function(){return Te},f:function(){return $t},g:function(){return Re},h:function(){return z},i:function(){return w},j:function(){return n},k:function(){return _},l:function(){return nt},m:function(){return kt},n:function(){return it},o:function(){return re},p:function(){return o},q:function(){return h},r:function(){return x},s:function(){return He},t:function(){return Vt},u:function(){return ye},v:function(){return Oe},w:function(){return Fe},x:function(){return zt},y:function(){return qt},z:function(){return Zt}});var s=i(36663);class r{constructor(t){Object.defineProperty(this,"_value",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._value=t}get value(){return this._value/100}get percent(){return this._value}toString(){return this._value+"%"}interpolate(t,e){return t+this.value*(e-t)}static normalize(t,e,i){return t instanceof r?t:new r(e===i?0:100*Math.min(Math.max(1/(i-e)*(t-e),0),1))}}function n(t){return new r(t)}n(0);const a=n(100),o=n(50);function h(t){return Number(t)!==t}function l(t){if(null!=t&&!_(t)){let e=Number(t);return h(e)&&g(t)&&""!=t?l(t.replace(/[^0-9.\-]+/g,"")):e}return t}function u(t){if(p(t))return new Date(t);if(_(t))return new Date(t);{let e=Number(t);return _(e)?new Date(e):new Date(t)}}function d(t){if(h(t))return"NaN";if(t===1/0)return"Infinity";if(t===-1/0)return"-Infinity";if(0===t&&1/t==-1/0)return"-0";let e=t<0;t=Math.abs(t);let i,s=/^([0-9]+)(?:\.([0-9]+))?(?:e[\+\-]([0-9]+))?$/.exec(""+t),r=s[1],n=s[2]||"";if(void 0===s[3])i=""===n?r:r+"."+n;else{let e=+s[3];if(t<1)i="0."+c("0",e-1)+r+n;else{let t=e-n.length;i=0===t?r+n:t<0?r+n.slice(0,t)+"."+n.slice(t):r+n+c("0",t)}}return e?"-"+i:i}function c(t,e){return new Array(e+1).join(t)}function p(t){return"[object Date]"===function(t){return{}.toString.call(t)}(t)}function g(t){return"string"==typeof t}function _(t){return"number"==typeof t&&Number(t)==t}function f(t){return"object"==typeof t&&null!==t}const m="__§§§__",b="__§§§§__";function v(t,e){const i=t.length;for(let s=0;s0;)--i,e(t[i],i)}function D(t,e){const i=t.length;for(let s=0;s0;)--i,e(t[i])||t.splice(i,1)}function A(t){return Object.keys(t)}function H(t){return Object.assign({},t)}function I(t,e){A(t).forEach((i=>{e(i,t[i])}))}function L(t,e){for(let i in t)if(N(t,i)&&!e(i,t[i]))break}function N(t,e){return{}.hasOwnProperty.call(t,e)}class R{constructor(){Object.defineProperty(this,"_disposed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._disposed=!1}isDisposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._dispose())}}class F{constructor(t){Object.defineProperty(this,"_disposed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_dispose",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._disposed=!1,this._dispose=t}isDisposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._dispose())}}class W extends R{constructor(){super(...arguments),Object.defineProperty(this,"_disposers",{enumerable:!0,configurable:!0,writable:!0,value:[]})}_dispose(){w(this._disposers,(t=>{t.dispose()}))}}class V extends R{constructor(t){super(),Object.defineProperty(this,"_disposers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._disposers=t}_dispose(){w(this._disposers,(t=>{t.dispose()}))}get disposers(){return this._disposers}}class U extends F{constructor(){super(...arguments),Object.defineProperty(this,"_counter",{enumerable:!0,configurable:!0,writable:!0,value:0})}increment(){return++this._counter,new F((()=>{--this._counter,0===this._counter&&this.dispose()}))}}function K(t){t.parentNode&&t.parentNode.removeChild(t)}function z(t,e,i,s){return t.addEventListener(e,i,s||!1),new F((()=>{t.removeEventListener(e,i,s||!1)}))}function G(t){return z(window,"resize",(e=>{t()}))}function Y(t){switch(t){case"touchevents":return window.hasOwnProperty("TouchEvent");case"pointerevents":return window.hasOwnProperty("PointerEvent");case"mouseevents":return window.hasOwnProperty("MouseEvent");case"wheelevents":return window.hasOwnProperty("WheelEvent");case"keyboardevents":return window.hasOwnProperty("KeyboardEvent")}return!1}function X(t){return t.pointerId||0}function $(){if(document.activeElement&&document.activeElement!=document.body)if(document.activeElement.blur)document.activeElement.blur();else{let t=document.createElement("button");t.style.position="fixed",t.style.top="0px",t.style.left="-10000px",document.body.appendChild(t),t.focus(),t.blur(),document.body.removeChild(t)}}function Z(t){t&&t.focus()}function J(t){if(Y("pointerevents"))return t;if(Y("touchevents"))switch(t){case"pointerover":case"pointerdown":return"touchstart";case"pointerout":case"pointerleave":case"pointerup":return"touchend";case"pointermove":return"touchmove";case"click":return"click";case"dblclick":return"dblclick"}else if(Y("mouseevents"))switch(t){case"pointerover":return"mouseover";case"pointerout":return"mouseout";case"pointerleave":return"mouseleave";case"pointerdown":return"mousedown";case"pointermove":return"mousemove";case"pointerup":return"mouseup";case"click":return"click";case"dblclick":return"dblclick"}return t}function q(t){if("undefined"!=typeof Touch&&t instanceof Touch)return!0;if("undefined"!=typeof PointerEvent&&t instanceof PointerEvent&&null!=t.pointerType)switch(t.pointerType){case"touch":case"pen":case 2:return!0;case"mouse":case 4:return!1;default:return!(t instanceof MouseEvent)}else if(null!=t.type&&t.type.match(/^mouse/))return!1;return!0}function Q(t,e,i){t.style[e]=i}function tt(t,e){return t.style[e]}function et(t){if(t.composedPath){const e=t.composedPath();return 0===e.length?null:e[0]}return t.target}function it(t,e){return t.target&&function(t,e){let i=e;for(;;){if(t===i)return!0;if(null===i.parentNode){if(null==i.host)return!1;i=i.host}else i=i.parentNode}}(e.root.dom,t.target)}function st(t,e){t.style.pointerEvents=e?"auto":"none"}function rt(){return/apple/i.test(navigator.vendor)&&"ontouchend"in document?1:void 0}function nt(t,e){return _(t)?t:null!=t&&_(t.value)&&_(e)?e*t.value:0}function at(t){let e=(""+t).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return e?Math.max(0,(e[1]?e[1].length:0)-(e[2]?+e[2]:0)):0}function ot(t,e=0,i="0"){return"string"!=typeof t&&(t=t.toString()),e>t.length?Array(e-t.length+1).join(i)+t:t}function ht(t){return function(t){return t.replace(/^[\s]*/,"")}(function(t){return t.replace(/[\s]*$/,"")}(t))}function lt(t){return t.replace(/\/(date|number|duration)$/i,"")}function ut(t){return t?t.replace(/<[^>]*>/g,""):t}function dt(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}function ct(t,e=!1){const i=new Date(t.getFullYear(),0,0),s=t.getTime()-i.getTime()+60*(i.getTimezoneOffset()-t.getTimezoneOffset())*1e3;return Math.floor(s/864e5)}function pt(t,e=!1){const i=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),s=i.getUTCDay()||7;i.setUTCDate(i.getUTCDate()+4-s);const r=new Date(Date.UTC(i.getUTCFullYear(),0,1));return Math.ceil(((i.getTime()-r.getTime())/864e5+1)/7)}function gt(t,e=!1){const i=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),s=i.getUTCDay()||7;return i.setUTCDate(i.getUTCDate()+4-s),new Date(Date.UTC(i.getUTCFullYear(),0,1)).getFullYear()}function _t(t,e=!1){const i=pt(new Date(t.getFullYear(),t.getMonth(),1),e);let s=pt(t,e);return 1==s&&(s=53),s-i+1}function ft(t,e,i=1,s=!1){let r=new Date(e,0,4,0,0,0,0);return s&&r.setUTCFullYear(e),7*t+i-((r.getDay()||7)+3)}function mt(t,e){return t>12?t-=12:0===t&&(t=12),null!=e?t+(e-1):t}function bt(t,e=!1,i=!1,s=!1,r){if(s)return e?"Coordinated Universal Time":"UTC";if(r){const i=t.toLocaleString("en-US",{timeZone:r});return ht(t.toLocaleString("en-US",{timeZone:r,timeZoneName:e?"long":"short"}).substr(i.length))}let n=t.toLocaleString("UTC"),a=t.toLocaleString("UTC",{timeZoneName:e?"long":"short"}).substr(n.length);return!1===i&&(a=a.replace(/ (standard|daylight|summer|winter) /i," ")),ht(a)}function vt(t){const e=new Date(Date.UTC(2012,0,1,0,0,0,0)),i=new Date(e.toLocaleString("en-US",{timeZone:"UTC"}));return(new Date(e.toLocaleString("en-US",{timeZone:t})).getTime()-i.getTime())/6e4*-1}function yt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function wt(t){let e,i,s,r=t.h,n=t.s,a=t.l;if(0==n)e=i=s=a;else{let t=function(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t},o=a<.5?a*(1+n):a+n-a*n,h=2*a-o;e=t(h,o,r+1/3),i=t(h,o,r),s=t(h,o,r-1/3)}return{r:Math.round(255*e),g:Math.round(255*i),b:Math.round(255*s)}}function Pt(t){let e=t.r/255,i=t.g/255,s=t.b/255,r=Math.max(e,i,s),n=Math.min(e,i,s),a=0,o=0,h=(r+n)/2;if(r===n)a=o=0;else{let t=r-n;switch(o=h>.5?t/(2-r-n):t/(r+n),r){case e:a=(i-s)/t+(i0?255-t:t;return Math.round(i*e)}function xt(t){return(299*t.r+587*t.g+114*t.b)/1e3>=128}function kt(t,e){return t||(t=[]),[...t,...e].filter(((t,e,i)=>i.indexOf(t)===e))}function Ot(t,e){return!!e&&t.left==e.left&&t.right==e.right&&t.top==e.top&&t.bottom==e.bottom}function Tt(t){return"#"===t[0]&&(t=t.substr(1)),3==t.length&&(t=t[0].repeat(2)+t[1].repeat(2)+t[2].repeat(2)),parseInt(t,16)}function St(t){return jt.fromAny(t)}class jt{constructor(t){Object.defineProperty(this,"_hex",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._hex=0|t}get hex(){return this._hex}get r(){return this._hex>>>16}get g(){return this._hex>>8&255}get b(){return 255&this._hex}toCSS(t=1){return"rgba("+this.r+", "+this.g+", "+this.b+", "+t+")"}toCSSHex(){return"#"+ot(this.r.toString(16),2)+ot(this.g.toString(16),2)+ot(this.b.toString(16),2)}toHSL(t=1){return Pt({r:this.r,g:this.g,b:this.b,a:t})}static fromHSL(t,e,i){const s=wt({h:t,s:e,l:i});return this.fromRGB(s.r,s.g,s.b)}toString(){return this.toCSSHex()}static fromHex(t){return new jt(t)}static fromRGB(t,e,i){return new jt((0|i)+(e<<8)+(t<<16))}static fromString(t){return new jt(Tt(t))}static fromCSS(t){return new jt(function(t){let e=(t=t.replace(/[ ]/g,"")).match(/^rgb\(([0-9]*),([0-9]*),([0-9]*)\)/i);if(e)e.push("1");else if(e=t.match(/^rgba\(([0-9]*),([0-9]*),([0-9]*),([.0-9]*)\)/i),!e)return 0;let i="";for(let t=1;t<=3;t++){let s=parseInt(e[t]).toString(16);1==s.length&&(s="0"+s),i+=s}return Tt(i)}(t))}static fromAny(t){if(g(t)){if("#"==t[0])return jt.fromString(t);if("rgb"==t.substr(0,3))return jt.fromCSS(t)}else{if(_(t))return jt.fromHex(t);if(t instanceof jt)return jt.fromHex(t.hex)}throw new Error("Unknown color syntax: "+t)}static alternative(t,e,i){const s=function(t,e={r:255,g:255,b:255},i={r:255,g:255,b:255}){let s=e,r=i;return xt(i)&&(s=i,r=e),xt(t)?r:s}({r:t.r,g:t.g,b:t.b},e?{r:e.r,g:e.g,b:e.b}:void 0,i?{r:i.r,g:i.g,b:i.b}:void 0);return this.fromRGB(s.r,s.g,s.b)}static interpolate(t,e,i,s="rgb"){if("hsl"==s){const s=e.toHSL(),r=i.toHSL();return jt.fromHSL(Mt(t,s.h,r.h),Mt(t,s.s,r.s),Mt(t,s.l,r.l))}return jt.fromRGB(Mt(t,e.r,i.r),Mt(t,e.g,i.g),Mt(t,e.b,i.b))}static lighten(t,e){const i=function(t,e){return t?{r:Math.max(0,Math.min(255,t.r+Dt(t.r,e))),g:Math.max(0,Math.min(255,t.g+Dt(t.g,e))),b:Math.max(0,Math.min(255,t.b+Dt(t.b,e))),a:t.a}:t}({r:t.r,g:t.g,b:t.b},e);return jt.fromRGB(i.r,i.g,i.b)}static brighten(t,e){const i=function(t,e){if(t){let i=Dt(Math.min(Math.max(t.r,t.g,t.b),230),e);return{r:Math.max(0,Math.min(255,Math.round(t.r+i))),g:Math.max(0,Math.min(255,Math.round(t.g+i))),b:Math.max(0,Math.min(255,Math.round(t.b+i))),a:t.a}}return t}({r:t.r,g:t.g,b:t.b},e);return jt.fromRGB(i.r,i.g,i.b)}static saturate(t,e){const i=function(t,e){if(void 0===t||1==e)return t;let i=Pt(t);return i.s=e,wt(i)}({r:t.r,g:t.g,b:t.b},e);return jt.fromRGB(i.r,i.g,i.b)}}class Et{constructor(){Object.defineProperty(this,"_listeners",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_killed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_disabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_iterating",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_enabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_disposed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._listeners=[],this._killed=[],this._disabled={},this._iterating=0,this._enabled=!0,this._disposed=!1}isDisposed(){return this._disposed}dispose(){if(!this._disposed){this._disposed=!0;const t=this._listeners;this._iterating=1,this._listeners=null,this._disabled=null;try{w(t,(t=>{t.disposer.dispose()}))}finally{this._killed=null,this._iterating=null}}}hasListeners(){return 0!==this._listeners.length}hasListenersByType(t){return function(t,e){const i=t.length;for(let s=0;s(null===e.type||e.type===t)&&!e.killed))}enable(){this._enabled=!0}disable(){this._enabled=!1}enableType(t){delete this._disabled[t]}disableType(t,e=1/0){this._disabled[t]=e}_removeListener(t){if(0===this._iterating){const e=this._listeners.indexOf(t);if(-1===e)throw new Error("Invalid state: could not remove listener");this._listeners.splice(e,1)}else this._killed.push(t)}_removeExistingListener(t,e,i,s){if(this._disposed)throw new Error("EventDispatcher is disposed");this._eachListener((r=>{r.once!==t||r.type!==e||void 0!==i&&r.callback!==i||r.context!==s||r.disposer.dispose()}))}isEnabled(t){if(this._disposed)throw new Error("EventDispatcher is disposed");return this._enabled&&this._listeners.length>0&&this.hasListenersByType(t)&&void 0===this._disabled[t]}removeType(t){if(this._disposed)throw new Error("EventDispatcher is disposed");this._eachListener((e=>{e.type===t&&e.disposer.dispose()}))}has(t,e,i){return-1!==C(this._listeners,(s=>!0!==s.once&&s.type===t&&(void 0===e||s.callback===e)&&s.context===i))}_shouldDispatch(t){if(this._disposed)throw new Error("EventDispatcher is disposed");const e=this._disabled[t];return _(e)?(e<=1?delete this._disabled[t]:--this._disabled[t],!1):this._enabled}_eachListener(t){++this._iterating;try{w(this._listeners,t)}finally{--this._iterating,0===this._iterating&&0!==this._killed.length&&(w(this._killed,(t=>{this._removeListener(t)})),this._killed.length=0)}}dispatch(t,e){this._shouldDispatch(t)&&this._eachListener((i=>{i.killed||null!==i.type&&i.type!==t||i.dispatch(t,e)}))}_on(t,e,i,s,r,n){if(this._disposed)throw new Error("EventDispatcher is disposed");this._removeExistingListener(t,e,i,s);const a={type:e,callback:i,context:s,shouldClone:r,dispatch:n,killed:!1,once:t,disposer:new F((()=>{a.killed=!0,this._removeListener(a)}))};return this._listeners.push(a),a}onAll(t,e,i=!0){return this._on(!1,null,t,e,i,((i,s)=>t.call(e,s))).disposer}on(t,e,i,s=!0){return this._on(!1,t,e,i,s,((t,s)=>e.call(i,s))).disposer}once(t,e,i,s=!0){const r=this._on(!0,t,e,i,s,((t,s)=>{r.disposer.dispose(),e.call(i,s)}));return r.disposer}off(t,e,i){this._removeExistingListener(!1,t,e,i)}copyFrom(t){if(this._disposed)throw new Error("EventDispatcher is disposed");if(t===this)throw new Error("Cannot copyFrom the same TargetedEventDispatcher");const e=[];return w(t._listeners,(t=>{!t.killed&&t.shouldClone&&(null===t.type?e.push(this.onAll(t.callback,t.context)):t.once?e.push(this.once(t.type,t.callback,t.context)):e.push(this.on(t.type,t.callback,t.context)))})),new V(e)}}function Ct(t){return(0,s.b)(this,void 0,void 0,(function*(){if(void 0!==t){const e=[];I(t,((t,i)=>{e.push(i.waitForStop())})),yield Promise.all(e)}}))}function Mt(t,e,i){return e+t*(i-e)}function Bt(t,e,i){return t>=1?i:e}function At(t,e,i){return new r(Mt(t,e.percent,i.percent))}function Ht(t,e,i){return jt.interpolate(t,e,i)}function It(t,e){return"number"==typeof t&&"number"==typeof e?Mt:t instanceof r&&e instanceof r?At:t instanceof jt&&e instanceof jt?Ht:Bt}var Lt,Nt;function Rt(t,e){if(!(t>=0&&t=0&&t{this.push(t)}))}copyFrom(t){this.pushAll(t._values)}pop(){return this._values.length-1<0?void 0:this.removeIndex(this._values.length-1)}shift(){return this._values.length?this.removeIndex(0):void 0}setAll(t){const e=this._values;this._values=[],this._onClear(e),w(t,(t=>{this._values.push(t),this._onPush(t)}))}clear(){this.setAll([])}*[Symbol.iterator](){const t=this._values.length;for(let e=0;e{t.dispose()})),super._onClear(t)}isDisposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this.autoDispose&&w(this._values,(t=>{t.dispose()})))}}class Vt extends Wt{constructor(t,e){super(),Object.defineProperty(this,"template",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"make",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.template=t,this.make=e}}class Ut extends Ft{constructor(t){super(),Object.defineProperty(this,"_disposed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_events",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._container=t,this._events=this.events.onAll((t=>{if("clear"===t.type)w(t.oldValues,(t=>{this._onRemoved(t)}));else if("push"===t.type)this._onInserted(t.newValue);else if("setIndex"===t.type)this._onRemoved(t.oldValue),this._onInserted(t.newValue,t.index);else if("insertIndex"===t.type)this._onInserted(t.newValue,t.index);else if("removeIndex"===t.type)this._onRemoved(t.oldValue);else{if("moveIndex"!==t.type)throw new Error("Unknown IListEvent type");this._onRemoved(t.value),this._onInserted(t.value,t.newIndex)}}))}_onInserted(t,e){t._setParent(this._container,!0);const i=this._container._childrenDisplay;void 0===e?i.addChild(t._display):i.addChildAt(t._display,e)}_onRemoved(t){this._container._childrenDisplay.removeChild(t._display),this._container.markDirtyBounds(),this._container.markDirty()}isDisposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._events.dispose(),w(this.values,(t=>{t.dispose()})))}}const Kt=Math.PI,zt=Kt/180,Gt=180/Kt;function Yt(t,e,i){if(!_(e)||e<=0){let e=Math.round(t);return i&&e-t==.5&&e--,e}{let i=Math.pow(10,e);return Math.round(t*i)/i}}function Xt(t,e){if(!_(e)||e<=0)return Math.ceil(t);{let i=Math.pow(10,e);return Math.ceil(t*i)/i}}function $t(t,e,i){return Math.min(Math.max(t,e),i)}function Zt(t){return Math.sin(zt*t)}function Jt(t){return Math.cos(zt*t)}function qt(t){return(t%=360)<0&&(t+=360),t}function Qt(t,e,i,s,r){let n=Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,h=-Number.MAX_VALUE,l=[];l.push(te(r,i)),l.push(te(r,s));let u=Math.min(90*Math.floor(i/90),90*Math.floor(s/90)),d=Math.max(90*Math.ceil(i/90),90*Math.ceil(s/90));for(let t=u;t<=d;t+=90)t>=i&&t<=s&&l.push(te(r,t));for(let t=0;to&&(o=e.x),e.y>h&&(h=e.y)}return{left:t+n,top:e+a,right:t+o,bottom:e+h}}function te(t,e){return{x:t*Jt(e),y:t*Zt(e)}}function ee(t){const e=t.length;if(e>0){let i=t[0],s=i.left,r=i.top,n=i.right,a=i.bottom;if(e>1)for(let o=1;o{this._userSettings[t]=!0}))}get(t,e){const i=this._settings[t];return void 0!==i?i:e}setRaw(t,e){this._settings[t]=e}set(t,e){this._userSettings[t]=!0,this.setRaw(t,e)}remove(t){delete this._userSettings[t],delete this._settings[t]}setAll(t){A(t).forEach((e=>{this.set(e,t[e])}))}_eachSetting(t){I(this._settings,t)}apply(){const t={stateAnimationEasing:!0,stateAnimationDuration:!0},e=this._entity.states.lookup("default");this._eachSetting(((i,s)=>{t[i]||(t[i]=!0,this!==e&&(i in e._settings||(e._settings[i]=this._entity.get(i))),this._entity.set(i,s))}))}applyAnimate(t){null==t&&(t=this._settings.stateAnimationDuration),null==t&&(t=this.get("stateAnimationDuration",this._entity.get("stateAnimationDuration",0)));let e=this._settings.stateAnimationEasing;null==e&&(e=this.get("stateAnimationEasing",this._entity.get("stateAnimationEasing",se)));const i=this._entity.states.lookup("default"),s={stateAnimationEasing:!0,stateAnimationDuration:!0},r={};return this._eachSetting(((n,a)=>{if(!s[n]){s[n]=!0,this!=i&&(n in i._settings||(i._settings[n]=this._entity.get(n)));const o=this._entity.animate({key:n,to:a,duration:t,easing:e});o&&(r[n]=o)}})),r}}class ae{constructor(t){Object.defineProperty(this,"_states",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_entity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._entity=t}lookup(t){return this._states[t]}create(t,e){const i=this._states[t];if(i)return i.setAll(e),i;{const i=new ne(this._entity,e);return this._states[t]=i,i}}remove(t){delete this._states[t]}apply(t){const e=this._states[t];e&&e.apply(),this._entity._applyState(t)}applyAnimate(t,e){let i;const s=this._states[t];return s&&(i=s.applyAnimate(e)),this._entity._applyStateAnimated(t,e),i}}const oe=new class{constructor(){Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:"5.8.0"}),Object.defineProperty(this,"licenses",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"entitiesById",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"rootElements",{enumerable:!0,configurable:!0,writable:!0,value:[]})}};function he(t){oe.licenses.push(t)}function le(t,e){return t===e?0:t{k(i,e)&&this._entity._markDirtyKey(t)}))}remove(t){const e=this._callbacks[t];void 0!==e&&(delete this._callbacks[t],0!==e.length&&this._entity._markDirtyKey(t))}enable(t){this._disabled[t]&&(delete this._disabled[t],this._entity._markDirtyKey(t))}disable(t){this._disabled[t]||(this._disabled[t]=!0,this._entity._markDirtyKey(t))}fold(t,e){if(!this._disabled[t]){const i=this._callbacks[t];if(void 0!==i)for(let s=0,r=i.length;s{if(this._stopped)t();else{const e=()=>{i.dispose(),t()},i=this.events.on("stopped",e)}}))}_checkEnded(){return!(this._loops>1&&(--this._loops,1))}_run(t){null!==this._oldTime&&(this._time+=t-this._oldTime,this._time>this._duration&&(this._time=this._duration)),this._oldTime=t}_reset(t){this._oldTime=t,this._time=0}_value(t){return this._interpolate(this._easing(t),this._from,this._to)}}let ge=0;class _e{constructor(t){Object.defineProperty(this,"uid",{enumerable:!0,configurable:!0,writable:!0,value:++ge}),Object.defineProperty(this,"_settings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_privateSettings",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_settingEvents",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_privateSettingEvents",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_prevSettings",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_prevPrivateSettings",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_animatingSettings",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_animatingPrivateSettings",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_disposed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_userProperties",{enumerable:!0,configurable:!0,writable:!0,value:{}}),this._settings=t}_checkDirty(){A(this._settings).forEach((t=>{this._userProperties[t]=!0,this._markDirtyKey(t)}))}resetUserSettings(){this._userProperties={}}_runAnimation(t){let e=Lt.Stopped;if(!this.isDisposed()){let i=!1,s=!1;I(this._animatingSettings,((e,r)=>{if(r.stopped)this._stopAnimation(e);else if(r.playing){r._run(t);const s=r.percentage;s>=1?r._checkEnded()?this.set(e,r._value(1)):(i=!0,r._reset(t),this._set(e,r._value(1))):(i=!0,this._set(e,r._value(s)))}else s=!0})),I(this._animatingPrivateSettings,((e,r)=>{if(r.stopped)this._stopAnimationPrivate(e);else if(r.playing){r._run(t);const s=r.percentage;s>=1?r._checkEnded()?this.setPrivate(e,r._value(1)):(i=!0,r._reset(t),this._setPrivate(e,r._value(1))):(i=!0,this._setPrivate(e,r._value(s)))}else s=!0})),i?e=Lt.Playing:s&&(e=Lt.Paused)}return e}_markDirtyKey(t){this.markDirty()}_markDirtyPrivateKey(t){this.markDirty()}on(t,e){let i=this._settingEvents[t];return void 0===i&&(i=this._settingEvents[t]=[]),i.push(e),new F((()=>{k(i,e),0===i.length&&delete this._settingEvents[t]}))}onPrivate(t,e){let i=this._privateSettingEvents[t];return void 0===i&&(i=this._privateSettingEvents[t]=[]),i.push(e),new F((()=>{k(i,e),0===i.length&&delete this._privateSettingEvents[t]}))}getRaw(t,e){const i=this._settings[t];return void 0!==i?i:e}get(t,e){return this.getRaw(t,e)}_sendKeyEvent(t,e){const i=this._settingEvents[t];void 0!==i&&w(i,(i=>{i(e,this,t)}))}_sendPrivateKeyEvent(t,e){const i=this._privateSettingEvents[t];void 0!==i&&w(i,(i=>{i(e,this,t)}))}_setRaw(t,e,i){this._prevSettings[t]=e,this._sendKeyEvent(t,i)}setRaw(t,e){const i=this._settings[t];this._settings[t]=e,i!==e&&this._setRaw(t,i,e)}_set(t,e){const i=this._settings[t];this._settings[t]=e,i!==e&&(this._setRaw(t,i,e),this._markDirtyKey(t))}_stopAnimation(t){const e=this._animatingSettings[t];e&&(delete this._animatingSettings[t],e.stop())}set(t,e){return this._set(t,e),this._stopAnimation(t),e}remove(t){t in this._settings&&(this._prevSettings[t]=this._settings[t],delete this._settings[t],this._sendKeyEvent(t,void 0),this._markDirtyKey(t)),this._stopAnimation(t)}removeAll(){w(A(this._settings),(t=>{this.remove(t)}))}getPrivate(t,e){const i=this._privateSettings[t];return void 0!==i?i:e}_setPrivateRaw(t,e,i){this._prevPrivateSettings[t]=e,this._sendPrivateKeyEvent(t,i)}setPrivateRaw(t,e){const i=this._privateSettings[t];this._privateSettings[t]=e,i!==e&&this._setPrivateRaw(t,i,e)}_setPrivate(t,e){const i=this._privateSettings[t];this._privateSettings[t]=e,i!==e&&(this._setPrivateRaw(t,i,e),this._markDirtyPrivateKey(t))}_stopAnimationPrivate(t){const e=this._animatingPrivateSettings[t];e&&(e.stop(),delete this._animatingPrivateSettings[t])}setPrivate(t,e){return this._setPrivate(t,e),this._stopAnimationPrivate(t),e}removePrivate(t){t in this._privateSettings&&(this._prevPrivateSettings[t]=this._privateSettings[t],delete this._privateSettings[t],this._markDirtyPrivateKey(t)),this._stopAnimationPrivate(t)}setAll(t){I(t,((t,e)=>{this.set(t,e)}))}animate(t){const e=t.key,i=t.to,s=t.duration||0,r=t.loops||1,n=void 0===t.from?this.get(e):t.from,a=void 0===t.easing?ie:t.easing;if(0===s)this.set(e,i);else{if(void 0!==n&&n!==i){this.set(e,n);const t=this._animatingSettings[e]=new pe(this,n,i,s,a,r,this._animationTime());return this._startAnimation(),t}this.set(e,i)}const o=new pe(this,n,i,s,a,r,null);return o.stop(),o}animatePrivate(t){const e=t.key,i=t.to,s=t.duration||0,r=t.loops||1,n=void 0===t.from?this.getPrivate(e):t.from,a=void 0===t.easing?ie:t.easing;if(0===s)this.setPrivate(e,i);else{if(void 0!==n&&n!==i){this.setPrivate(e,n);const t=this._animatingPrivateSettings[e]=new pe(this,n,i,s,a,r,this._animationTime());return this._startAnimation(),t}this.setPrivate(e,i)}const o=new pe(this,n,i,s,a,r,null);return o.stop(),o}_dispose(){}isDisposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._dispose())}}class fe extends _e{constructor(t,e,i,s=[]){if(super(e),Object.defineProperty(this,"_root",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_user_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"states",{enumerable:!0,configurable:!0,writable:!0,value:new ae(this)}),Object.defineProperty(this,"adapters",{enumerable:!0,configurable:!0,writable:!0,value:new ce(this)}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:this._createEvents()}),Object.defineProperty(this,"_userPrivateProperties",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_dirty",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_dirtyPrivate",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_template",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_templates",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_internalTemplates",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_defaultThemes",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_templateDisposers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_disposers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_runSetup",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"_disposerProperties",{enumerable:!0,configurable:!0,writable:!0,value:{}}),!i)throw new Error("You cannot use `new Class()`, instead use `Class.new()`");this._root=t,this._internalTemplates=s,e.id&&this._registerId(e.id)}static new(t,e,i){const s=new this(t,e,!0);return s._template=i,s._afterNew(),s}static _new(t,e,i=[]){const s=new this(t,e,!0,i);return s._afterNew(),s}_afterNew(){this._checkDirty();let t=!1;const e=this._template;e&&(t=!0,e._setObjectTemplate(this)),w(this._internalTemplates,(e=>{t=!0,e._setObjectTemplate(this)})),t&&this._applyTemplates(!1),this.states.create("default",{}),this._setDefaults()}_afterNewApplyThemes(){this._checkDirty();const t=this._template;t&&t._setObjectTemplate(this),w(this._internalTemplates,(t=>{t._setObjectTemplate(this)})),this.states.create("default",{}),this._setDefaults(),this._applyThemes()}_createEvents(){return new Et}get classNames(){return this.constructor.classNames}get className(){return this.constructor.className}_setDefaults(){}_setDefault(t,e){t in this._settings||super.set(t,e)}_setRawDefault(t,e){t in this._settings||super.setRaw(t,e)}_clearDirty(){A(this._dirty).forEach((t=>{this._dirty[t]=!1})),A(this._dirtyPrivate).forEach((t=>{this._dirtyPrivate[t]=!1}))}isDirty(t){return!!this._dirty[t]}isPrivateDirty(t){return!!this._dirtyPrivate[t]}_markDirtyKey(t){this._dirty[t]=!0,super._markDirtyKey(t)}_markDirtyPrivateKey(t){this._dirtyPrivate[t]=!0,super._markDirtyKey(t)}isType(t){return-1!==this.classNames.indexOf(t)}_pushPropertyDisposer(t,e){let i=this._disposerProperties[t];return void 0===i&&(i=this._disposerProperties[t]=[]),i.push(e),e}_disposeProperty(t){const e=this._disposerProperties[t];void 0!==e&&(w(e,(t=>{t.dispose()})),delete this._disposerProperties[t])}set template(t){const e=this._template;e!==t&&(this._template=t,e&&e._removeObjectTemplate(this),t&&t._setObjectTemplate(this),this._applyTemplates())}get template(){return this._template}markDirty(){this._root._addDirtyEntity(this)}_startAnimation(){this._root._addAnimation(this)}_animationTime(){return this._root.animationTime}_applyState(t){}_applyStateAnimated(t,e){}get(t,e){const i=this.adapters.fold(t,this._settings[t]);return void 0!==i?i:e}isUserSetting(t){return this._userProperties[t]||!1}set(t,e){return this._userProperties[t]=!0,super.set(t,e)}setRaw(t,e){this._userProperties[t]=!0,super.setRaw(t,e)}_setSoft(t,e){return this._userProperties[t]?e:super.set(t,e)}remove(t){delete this._userProperties[t],this._removeTemplateProperty(t)}setPrivate(t,e){return this._userPrivateProperties[t]=!0,super.setPrivate(t,e)}setPrivateRaw(t,e){this._userPrivateProperties[t]=!0,super.setPrivateRaw(t,e)}removePrivate(t){delete this._userPrivateProperties[t],this._removeTemplatePrivateProperty(t)}_setTemplateProperty(t,e,i){this._userProperties[e]||t===this._findTemplateByKey(e)&&super.set(e,i)}_setTemplatePrivateProperty(t,e,i){this._userPrivateProperties[e]||t===this._findTemplateByPrivateKey(e)&&super.setPrivate(e,i)}_removeTemplateProperty(t){if(!this._userProperties[t]){const e=this._findTemplateByKey(t);e?super.set(t,e._settings[t]):super.remove(t)}}_removeTemplatePrivateProperty(t){if(!this._userPrivateProperties[t]){const e=this._findTemplateByPrivateKey(t);e?super.setPrivate(t,e._privateSettings[t]):super.removePrivate(t)}}_walkParents(t){t(this._root._rootContainer),t(this)}_applyStateByKey(t){const e=this.states.create(t,{}),i={};this._eachTemplate((s=>{const r=s.states.lookup(t);r&&r._apply(e,i)})),I(e._settings,(t=>{i[t]||e._userSettings[t]||e.remove(t)}))}_applyTemplate(t,e){this._templateDisposers.push(t._apply(this,e)),I(t._settings,((t,i)=>{e.settings[t]||this._userProperties[t]||(e.settings[t]=!0,super.set(t,i))})),I(t._privateSettings,((t,i)=>{e.privateSettings[t]||this._userPrivateProperties[t]||(e.privateSettings[t]=!0,super.setPrivate(t,i))})),this._runSetup&&t.setup&&(this._runSetup=!1,t.setup(this))}_findStaticTemplate(t){if(this._template&&t(this._template))return this._template}_eachTemplate(t){this._findStaticTemplate((e=>(t(e),!1))),P(this._internalTemplates,t),w(this._templates,t)}_applyTemplates(t=!0){t&&this._disposeTemplates();const e={settings:{},privateSettings:{},states:{}};this._eachTemplate((t=>{this._applyTemplate(t,e)})),t&&(I(this._settings,(t=>{this._userProperties[t]||e.settings[t]||super.remove(t)})),I(this._privateSettings,(t=>{this._userPrivateProperties[t]||e.privateSettings[t]||super.removePrivate(t)})))}_findTemplate(t){const e=this._findStaticTemplate(t);if(void 0===e){const e=function(t,e){const i=function(t,e){let i=t.length;for(;i>0;)if(--i,e(t[i],i))return i;return-1}(t,e);if(-1!==i)return t[i]}(this._internalTemplates,t);return void 0===e?M(this._templates,t):e}return e}_findTemplateByKey(t){return this._findTemplate((e=>t in e._settings))}_findTemplateByPrivateKey(t){return this._findTemplate((e=>t in e._privateSettings))}_disposeTemplates(){w(this._templateDisposers,(t=>{t.dispose()})),this._templateDisposers.length=0}_removeTemplates(){w(this._templates,(t=>{t._removeObjectTemplate(this)})),this._templates.length=0}_applyThemes(t=!1){let e=!1;const i=[];let s=[];const r=new Set,n=this.get("themeTagsSelf");return n&&w(n,(t=>{r.add(t)})),this._walkParents((t=>{t===this._root._rootContainer&&(e=!0),t._defaultThemes.length>0&&i.push(t._defaultThemes);const n=t.get("themes");n&&s.push(n);const a=t.get("themeTags");a&&w(a,(t=>{r.add(t)}))})),s=i.concat(s),this._removeTemplates(),(e||t)&&P(this.classNames,(t=>{const e=[];w(s,(i=>{w(i,(i=>{const s=i._lookupRules(t);s&&P(s,(t=>{if(t.tags.every((t=>r.has(t)))){const i=function(t,e){let i=0,s=t.length,r=!1;for(;i>1,a=e(t[n]);a<0?i=n+1:0===a?(r=!0,s=n):s=n}return{found:r,index:i}}(e,(e=>{const i=le(t.tags.length,e.tags.length);return 0===i?ue(t.tags,e.tags,le):i}));e.splice(i.index,0,t)}}))}))})),w(e,(t=>{this._templates.push(t.template),t.template._setObjectTemplate(this)}))})),this._applyTemplates(),(e||t)&&(this._runSetup=!1),e||t}_changed(){}_beforeChanged(){if(this.isDirty("id")){const t=this.get("id");t&&this._registerId(t);const e=this._prevSettings.id;e&&delete oe.entitiesById[e]}}_registerId(t){if(oe.entitiesById[t]&&oe.entitiesById[t]!==this)throw new Error('An entity with id "'+t+'" already exists.');oe.entitiesById[t]=this}_afterChanged(){}addDisposer(t){return this._disposers.push(t),t}_dispose(){super._dispose();const t=this._template;t&&t._removeObjectTemplate(this),w(this._internalTemplates,(t=>{t._removeObjectTemplate(this)})),this._removeTemplates(),this._disposeTemplates(),this.events.dispose(),this._disposers.forEach((t=>{t.dispose()})),I(this._disposerProperties,((t,e)=>{w(e,(t=>{t.dispose()}))}));const e=this.get("id");e&&delete oe.entitiesById[e]}setTimeout(t,e){const i=setTimeout((()=>{this.removeDispose(s),t()}),e),s=new F((()=>{clearTimeout(i)}));return this._disposers.push(s),s}removeDispose(t){if(!this.isDisposed()){let e=v(this._disposers,t);e>-1&&this._disposers.splice(e,1)}t.dispose()}hasTag(t){return-1!==v(this.get("themeTags",[]),t)}addTag(t){if(!this.hasTag(t)){const e=this.get("themeTags",[]);e.push(t),this.set("themeTags",e)}}removeTag(t){if(this.hasTag(t)){const e=this.get("themeTags",[]);x(e,t),this.set("themeTags",e)}}_t(t,e,...i){return this._root.language.translate(t,e,...i)}get root(){return this._root}}Object.defineProperty(fe,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Entity"}),Object.defineProperty(fe,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:["Entity"]});class me{constructor(t,e,i){Object.defineProperty(this,"_settings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_template",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._name=t,this._template=e,this._settings=i}get(t,e){const i=this._settings[t];return void 0!==i?i:e}set(t,e){this._settings[t]=e,this._template._stateChanged(this._name)}remove(t){delete this._settings[t],this._template._stateChanged(this._name)}setAll(t){A(t).forEach((e=>{this._settings[e]=t[e]})),this._template._stateChanged(this._name)}_apply(t,e){I(this._settings,((i,s)=>{e[i]||t._userSettings[i]||(e[i]=!0,t.setRaw(i,s))}))}}class be{constructor(t){Object.defineProperty(this,"_template",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_states",{enumerable:!0,configurable:!0,writable:!0,value:{}}),this._template=t}lookup(t){return this._states[t]}create(t,e){const i=this._states[t];if(i)return i.setAll(e),i;{const i=new me(t,this._template,e);return this._states[t]=i,this._template._stateChanged(t),i}}remove(t){delete this._states[t],this._template._stateChanged(t)}_apply(t,e){I(this._states,((i,s)=>{let r=e.states[i];null==r&&(r=e.states[i]={});const n=t.states.create(i,{});s._apply(n,r)}))}}class ve{constructor(){Object.defineProperty(this,"_callbacks",{enumerable:!0,configurable:!0,writable:!0,value:{}})}add(t,e){let i=this._callbacks[t];return void 0===i&&(i=this._callbacks[t]=[]),i.push(e),new F((()=>{k(i,e),0===i.length&&delete this._callbacks[t]}))}remove(t){void 0!==this._callbacks[t]&&delete this._callbacks[t]}_apply(t){const e=[];return I(this._callbacks,((i,s)=>{w(s,(s=>{e.push(t.adapters.add(i,s))}))})),new V(e)}}class ye{constructor(t,e){if(Object.defineProperty(this,"_settings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_privateSettings",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_settingEvents",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_privateSettingEvents",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_entities",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"states",{enumerable:!0,configurable:!0,writable:!0,value:new be(this)}),Object.defineProperty(this,"adapters",{enumerable:!0,configurable:!0,writable:!0,value:new ve}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:new Et}),Object.defineProperty(this,"setup",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),!e)throw new Error("You cannot use `new Class()`, instead use `Class.new()`");this._settings=t}static new(t){return new ye(t,!0)}get entities(){return this._entities}get(t,e){const i=this._settings[t];return void 0!==i?i:e}setRaw(t,e){this._settings[t]=e}set(t,e){this._settings[t]!==e&&(this.setRaw(t,e),this._entities.forEach((i=>{i._setTemplateProperty(this,t,e)})))}remove(t){t in this._settings&&(delete this._settings[t],this._entities.forEach((e=>{e._removeTemplateProperty(t)})))}removeAll(){I(this._settings,((t,e)=>{this.remove(t)}))}getPrivate(t,e){const i=this._privateSettings[t];return void 0!==i?i:e}setPrivateRaw(t,e){return this._privateSettings[t]=e,e}setPrivate(t,e){return this._privateSettings[t]!==e&&(this.setPrivateRaw(t,e),this._entities.forEach((i=>{i._setTemplatePrivateProperty(this,t,e)}))),e}removePrivate(t){t in this._privateSettings&&(delete this._privateSettings[t],this._entities.forEach((e=>{e._removeTemplatePrivateProperty(t)})))}setAll(t){I(t,((t,e)=>{this.set(t,e)}))}on(t,e){let i=this._settingEvents[t];return void 0===i&&(i=this._settingEvents[t]=[]),i.push(e),new F((()=>{k(i,e),0===i.length&&delete this._settingEvents[t]}))}onPrivate(t,e){let i=this._privateSettingEvents[t];return void 0===i&&(i=this._privateSettingEvents[t]=[]),i.push(e),new F((()=>{k(i,e),0===i.length&&delete this._privateSettingEvents[t]}))}_apply(t,e){const i=[];return I(this._settingEvents,((e,s)=>{w(s,(s=>{i.push(t.on(e,s))}))})),I(this._privateSettingEvents,((e,s)=>{w(s,(s=>{i.push(t.onPrivate(e,s))}))})),this.states._apply(t,e),i.push(this.adapters._apply(t)),i.push(t.events.copyFrom(this.events)),new V(i)}_setObjectTemplate(t){this._entities.push(t)}_removeObjectTemplate(t){x(this._entities,t)}_stateChanged(t){this._entities.forEach((e=>{e._applyStateByKey(t)}))}}class we extends Et{constructor(t){super(),Object.defineProperty(this,"_sprite",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_rendererDisposers",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_dispatchParents",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this._sprite=t}_makePointerEvent(t,e){return{type:t,originalEvent:e.event,point:e.point,simulated:e.simulated,native:e.native,target:this._sprite}}_onRenderer(t,e){this._sprite.set("interactive",!0),this._sprite._display.interactive=!0;let i=this._rendererDisposers[t];if(void 0===i){const s=this._sprite._display.on(t,(t=>{e.call(this,t)}));i=this._rendererDisposers[t]=new U((()=>{delete this._rendererDisposers[t],s.dispose()}))}return i.increment()}_on(t,e,i,s,r,n){const a=super._on(t,e,i,s,r,n),o=we.RENDERER_EVENTS[e];return void 0!==o&&(a.disposer=new V([a.disposer,this._onRenderer(e,o)])),a}stopParentDispatch(){this._dispatchParents=!1}dispatchParents(t,e){const i=this._dispatchParents;this._dispatchParents=!0;try{this.dispatch(t,e),this._dispatchParents&&this._sprite.parent&&this._sprite.parent.events.dispatchParents(t,e)}finally{this._dispatchParents=i}}}Object.defineProperty(we,"RENDERER_EVENTS",{enumerable:!0,configurable:!0,writable:!0,value:{click:function(t){this.isEnabled("click")&&!this._sprite.isDragging()&&this._sprite._hasDown()&&!this._sprite._hasMoved(this._makePointerEvent("click",t))&&this.dispatch("click",this._makePointerEvent("click",t))},rightclick:function(t){this.isEnabled("rightclick")&&this.dispatch("rightclick",this._makePointerEvent("rightclick",t))},middleclick:function(t){this.isEnabled("middleclick")&&this.dispatch("middleclick",this._makePointerEvent("middleclick",t))},dblclick:function(t){this.dispatchParents("dblclick",this._makePointerEvent("dblclick",t))},pointerover:function(t){const e=this._sprite;let i=!0;if(e.getPrivate("trustBounds")){e._getBounds();const s=e.globalBounds();(function(t,e){return t.x>=e.left&&t.y>=e.top&&t.x<=e.right&&t.y<=e.bottom})(t.point,s)||(i=!1,e._root._renderer.removeHovering(e._display))}i&&this.isEnabled("pointerover")&&this.dispatch("pointerover",this._makePointerEvent("pointerover",t))},pointerout:function(t){this.isEnabled("pointerout")&&this.dispatch("pointerout",this._makePointerEvent("pointerout",t))},pointerdown:function(t){this.dispatchParents("pointerdown",this._makePointerEvent("pointerdown",t))},pointerup:function(t){this.isEnabled("pointerup")&&this.dispatch("pointerup",this._makePointerEvent("pointerup",t))},globalpointerup:function(t){this.isEnabled("globalpointerup")&&this.dispatch("globalpointerup",this._makePointerEvent("globalpointerup",t))},globalpointermove:function(t){this.isEnabled("globalpointermove")&&this.dispatch("globalpointermove",this._makePointerEvent("globalpointermove",t))},wheel:function(t){this.dispatchParents("wheel",{type:"wheel",target:this._sprite,originalEvent:t.event,point:t.point})}}});class Pe extends fe{constructor(){super(...arguments),Object.defineProperty(this,"_adjustedLocalBounds",{enumerable:!0,configurable:!0,writable:!0,value:{left:0,right:0,top:0,bottom:0}}),Object.defineProperty(this,"_localBounds",{enumerable:!0,configurable:!0,writable:!0,value:{left:0,right:0,top:0,bottom:0}}),Object.defineProperty(this,"_parent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_dataItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_templateField",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_sizeDirty",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_isDragging",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_dragEvent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_dragPoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_isHidden",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_isShowing",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_isHiding",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_isDown",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_downPoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_downPoints",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_toggleDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_dragDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tooltipDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_hoverDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_focusDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tooltipMoveDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tooltipPointerDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_statesHandled",{enumerable:!0,configurable:!0,writable:!0,value:!1})}_afterNew(){this.setPrivateRaw("visible",!0),super._afterNew()}_markDirtyKey(t){super._markDirtyKey(t),"x"!=t&&"y"!=t&&"dx"!=t&&"dy"!=t||(this.markDirtyBounds(),this._addPercentagePositionChildren(),this.markDirtyPosition())}_markDirtyPrivateKey(t){super._markDirtyPrivateKey(t),"x"!=t&&"y"!=t||this.markDirtyPosition()}_removeTemplateField(){this._templateField&&this._templateField._removeObjectTemplate(this)}_createEvents(){return new we(this)}_processTemplateField(){let t;const e=this.get("templateField");if(e){const i=this.dataItem;if(i){const s=i.dataContext;s&&(t=s[e],t instanceof ye||!t||(t=ye.new(t)))}}this._templateField!==t&&(this._removeTemplateField(),this._templateField=t,t&&t._setObjectTemplate(this),this._applyTemplates())}_setDataItem(t){const e=this._dataItem;this._dataItem=t,this._processTemplateField();const i="dataitemchanged";t!=e&&this.events.isEnabled(i)&&this.events.dispatch(i,{type:i,target:this,oldDataItem:e,newDataItem:t})}set dataItem(t){this._setDataItem(t)}get dataItem(){if(this._dataItem)return this._dataItem;{let t=this._parent;for(;t;){if(t._dataItem)return t._dataItem;t=t._parent}}}_addPercentageSizeChildren(){let t=this.parent;t&&(this.get("width")instanceof r||this.get("height")instanceof r?T(t._percentageSizeChildren,this):k(t._percentageSizeChildren,this))}_addPercentagePositionChildren(){let t=this.parent;t&&(this.get("x")instanceof r||this.get("y")instanceof r?T(t._percentagePositionChildren,this):k(t._percentagePositionChildren,this))}markDirtyPosition(){this._root._addDirtyPosition(this)}updatePivotPoint(){const t=this._localBounds;if(t){const e=this.get("centerX");null!=e&&(this._display.pivot.x=t.left+nt(e,t.right-t.left));const i=this.get("centerY");null!=i&&(this._display.pivot.y=t.top+nt(i,t.bottom-t.top))}}_beforeChanged(){if(super._beforeChanged(),this._handleStates(),this.isDirty("tooltip")){const t=this._prevSettings.tooltip;t&&t.dispose()}if((this.isDirty("layer")||this.isDirty("layerMargin"))&&(this._display.setLayer(this.get("layer"),this.get("layerMargin")),this.markDirtyLayer()),this.isDirty("tooltipPosition")){const t=this._tooltipMoveDp;t&&(t.dispose(),this._tooltipMoveDp=void 0);const e=this._tooltipPointerDp;e&&(e.dispose(),this._tooltipPointerDp=void 0),"pointer"==this.get("tooltipPosition")&&(this.isHover()&&(this._tooltipMoveDp=this.events.on("globalpointermove",(t=>{this.showTooltip(t.point)}))),this._tooltipPointerDp=new V([this.events.on("pointerover",(()=>{this._tooltipMoveDp=this.events.on("globalpointermove",(t=>{this.showTooltip(t.point)}))})),this.events.on("pointerout",(()=>{const t=this._tooltipMoveDp;t&&(t.dispose(),this._tooltipMoveDp=void 0)}))]))}}_handleStates(){this._statesHandled||(this.isDirty("active")&&(this.get("active")?(this.states.applyAnimate("active"),this.set("ariaChecked",!0)):(this.isHidden()||this.states.applyAnimate("default"),this.set("ariaChecked",!1)),this.markDirtyAccessibility()),this.isDirty("disabled")&&(this.get("disabled")?(this.states.applyAnimate("disabled"),this.set("ariaChecked",!1)):(this.isHidden()||this.states.applyAnimate("default"),this.set("ariaChecked",!0)),this.markDirtyAccessibility()),this._statesHandled=!0)}_changed(){super._changed();const t=this._display,e=this.events;if(this.isDirty("draggable")){const i=this.get("draggable");i?(this.set("interactive",!0),this._dragDp=new V([e.on("pointerdown",(t=>{this.dragStart(t)})),e.on("globalpointermove",(t=>{this.dragMove(t)})),e.on("globalpointerup",(t=>{this.dragStop(t)}))])):this._dragDp&&(this._dragDp.dispose(),this._dragDp=void 0),t.cancelTouch=!!i}if(this.isDirty("tooltipText")||this.isDirty("tooltipHTML")||this.isDirty("showTooltipOn")){const t=this.get("tooltipText"),i=this.get("tooltipHTML"),s=this.get("showTooltipOn","hover");this._tooltipDp&&(this._tooltipDp.dispose(),this._tooltipDp=void 0),(t||i)&&("click"==s?(this._tooltipDp=new V([e.on("click",(()=>{this.setTimeout((()=>this.showTooltip()),10)})),z(document,"click",(t=>{this.hideTooltip()}))]),this._disposers.push(this._tooltipDp)):"always"==s||(this._tooltipDp=new V([e.on("pointerover",(()=>{this.showTooltip()})),e.on("pointerout",(()=>{this.hideTooltip()}))]),this._disposers.push(this._tooltipDp)))}if(this.isDirty("toggleKey")){let t=this.get("toggleKey");t&&"none"!=t?this._toggleDp=e.on("click",(()=>{this._isDragging||this.set(t,!this.get(t))})):this._toggleDp&&(this._toggleDp.dispose(),this._toggleDp=void 0)}if(this.isDirty("opacity")&&(t.alpha=Math.max(0,this.get("opacity",1)),this.get("focusable")&&this.markDirtyAccessibility()),this.isDirty("rotation")&&(this.markDirtyBounds(),t.angle=this.get("rotation",0)),this.isDirty("scale")&&(this.markDirtyBounds(),t.scale=this.get("scale",0)),(this.isDirty("centerX")||this.isDirty("centerY"))&&(this.markDirtyBounds(),this.updatePivotPoint()),(this.isDirty("visible")||this.isPrivateDirty("visible")||this.isDirty("forceHidden"))&&(this.get("visible")&&this.getPrivate("visible")&&!this.get("forceHidden")?t.visible=!0:(t.visible=!1,this.hideTooltip()),this.markDirtyBounds(),this.get("focusable")&&this.markDirtyAccessibility()),this.isDirty("width")||this.isDirty("height")){this.markDirtyBounds(),this._addPercentageSizeChildren();const t=this.parent;t&&(this.isDirty("width")&&this.get("width")instanceof r||this.isDirty("height")&&this.get("height")instanceof r)&&(t.markDirty(),t._prevWidth=0),this._sizeDirty=!0}if((this.isDirty("maxWidth")||this.isDirty("maxHeight")||this.isPrivateDirty("width")||this.isPrivateDirty("height")||this.isDirty("minWidth")||this.isDirty("minHeight")||this.isPrivateDirty("maxWidth")||this.isPrivateDirty("maxHeight")||this.isPrivateDirty("minWidth")||this.isPrivateDirty("minHeight"))&&(this.markDirtyBounds(),this._sizeDirty=!0),this._sizeDirty&&this._updateSize(),this.isDirty("wheelable")){const e=this.get("wheelable");e&&this.set("interactive",!0),t.wheelable=!!e}(this.isDirty("tabindexOrder")||this.isDirty("focusableGroup"))&&(this.get("focusable")?this._root._registerTabindexOrder(this):this._root._unregisterTabindexOrder(this)),this.isDirty("filter")&&(t.filter=this.get("filter"));let i=this.get("filter","");if(this.isDirty("blur")){const t=this.get("blur",0);0!=t&&(i+=" blur("+t+"px)")}if(this.isDirty("saturate")){const t=this.get("saturate",1);1!=t&&(i+=" saturate("+t+")")}if(this.isDirty("brightness")){const t=this.get("brightness",1);1!=t&&(i+=" brightness("+t+")")}if(this.isDirty("contrast")){const t=this.get("contrast",1);1!=t&&(i+=" contrast("+t+")")}if(this.isDirty("sepia")){const t=this.get("sepia",0);0!=t&&(i+=" sepia("+t+")")}if(this.isDirty("hue")){const t=this.get("hue",0);0!=t&&(i+=" hue-rotate("+t+"deg)")}if(this.isDirty("invert")){const t=this.get("invert",0);0!=t&&(i+=" invert("+t+")")}if(i&&(t.filter=i),this.isDirty("cursorOverStyle")&&(t.cursorOverStyle=this.get("cursorOverStyle")),this.isDirty("hoverOnFocus")&&(this.get("hoverOnFocus")?this._focusDp=new V([e.on("focus",(()=>{this.showTooltip()})),e.on("blur",(()=>{this.hideTooltip()}))]):this._focusDp&&(this._focusDp.dispose(),this._focusDp=void 0)),this.isDirty("focusable")&&(this.get("focusable")?this._root._registerTabindexOrder(this):this._root._unregisterTabindexOrder(this),this.markDirtyAccessibility()),this.isPrivateDirty("focusable")&&this.markDirtyAccessibility(),(this.isDirty("role")||this.isDirty("ariaLive")||this.isDirty("ariaChecked")||this.isDirty("ariaHidden")||this.isDirty("ariaOrientation")||this.isDirty("ariaValueNow")||this.isDirty("ariaValueMin")||this.isDirty("ariaValueMax")||this.isDirty("ariaValueText")||this.isDirty("ariaLabel")||this.isDirty("ariaControls"))&&this.markDirtyAccessibility(),this.isDirty("exportable")&&(t.exportable=this.get("exportable")),this.isDirty("interactive")){const t=this.events;this.get("interactive")?this._hoverDp=new V([t.on("click",(t=>{q(t.originalEvent)&&(this.getPrivate("touchHovering")||this.setTimeout((()=>{this._handleOver(),(this.get("tooltipText")||this.get("tooltipHTML"))&&this.showTooltip(),this.setPrivateRaw("touchHovering",!0),this.events.dispatch("pointerover",{type:"pointerover",target:t.target,originalEvent:t.originalEvent,point:t.point,simulated:t.simulated})}),10))})),t.on("globalpointerup",(t=>{q(t.originalEvent)&&this.getPrivate("touchHovering")&&(this._handleOut(),(this.get("tooltipText")||this.get("tooltipHTML"))&&this.hideTooltip(),this.setPrivateRaw("touchHovering",!1),this.events.dispatch("pointerout",{type:"pointerout",target:t.target,originalEvent:t.originalEvent,point:t.point,simulated:t.simulated})),this._isDown&&this._handleUp(t)})),t.on("pointerover",(()=>{this._handleOver()})),t.on("pointerout",(()=>{this._handleOut()})),t.on("pointerdown",(t=>{this._handleDown(t)}))]):(this._display.interactive=!1,this._hoverDp&&(this._hoverDp.dispose(),this._hoverDp=void 0))}this.isDirty("forceInactive")&&(this._display.inactive=this.get("forceInactive",null)),"always"==this.get("showTooltipOn")&&this._display.visible&&this.showTooltip()}dragStart(t){this._dragEvent=t,this.events.stopParentDispatch()}dragStop(t){if(this._dragEvent=void 0,this._dragPoint=void 0,this.events.stopParentDispatch(),this._isDragging){this._isDragging=!1;const e="dragstop";this.events.isEnabled(e)&&this.events.dispatch(e,{type:e,target:this,originalEvent:t.originalEvent,point:t.point,simulated:t.simulated})}}_handleOver(){this.isHidden()||(this.get("active")&&this.states.lookup("hoverActive")?this.states.applyAnimate("hoverActive"):this.get("disabled")&&this.states.lookup("hoverDisabled")?this.states.applyAnimate("hoverDisabled"):this.states.applyAnimate("hover"),this.get("draggable")&&this._isDown&&this.states.lookup("down")&&this.states.applyAnimate("down"))}_handleOut(){this.isHidden()||(this.get("active")&&this.states.lookup("active")?this.states.applyAnimate("active"):this.get("disabled")&&this.states.lookup("disabled")?this.states.applyAnimate("disabled"):(this.states.lookup("hover")||this.states.lookup("hoverActive"))&&this.states.applyAnimate("default"),this.get("draggable")&&this._isDown&&this.states.lookup("down")&&this.states.applyAnimate("down"))}_handleUp(t){if(!this.isHidden()){this.get("active")&&this.states.lookup("active")?this.states.applyAnimate("active"):this.get("disabled")&&this.states.lookup("disabled")?this.states.applyAnimate("disabled"):this.states.lookup("down")&&(this.isHover()?this.states.applyAnimate("hover"):this.states.applyAnimate("default")),this._downPoint=void 0;const e=X(t.originalEvent);delete this._downPoints[e],0==A(this._downPoints).length&&(this._isDown=!1)}}_hasMoved(t){const e=X(t.originalEvent),i=this._downPoints[e];if(i){const e=Math.abs(i.x-t.point.x),s=Math.abs(i.y-t.point.y);return e>5||s>5}return!1}_hasDown(){return A(this._downPoints).length>0}_handleDown(t){const e=this.parent;if(e&&!this.get("draggable")&&e._handleDown(t),this.get("interactive")&&!this.isHidden()){this.states.lookup("down")&&this.states.applyAnimate("down"),this._downPoint={x:t.point.x,y:t.point.y},this._isDown=!0;const e=X(t.originalEvent);this._downPoints[e]={x:t.point.x,y:t.point.y}}}dragMove(t){let e=this._dragEvent;if(e){if(e.simulated&&!t.simulated)return!0;let i=0,s=this.parent,r=1;for(;null!=s;)i+=s.get("rotation",0),s=s.parent,s&&(r*=s.get("scale",1));let n=(t.point.x-e.point.x)/r,a=(t.point.y-e.point.y)/r;const o=this.events;if(e.simulated&&!this._isDragging){this._isDragging=!0,this._dragEvent=t,this._dragPoint={x:this.x(),y:this.y()};const e="dragstart";o.isEnabled(e)&&o.dispatch(e,{type:e,target:this,originalEvent:t.originalEvent,point:t.point,simulated:t.simulated})}if(this._isDragging){let e=this._dragPoint;this.set("x",e.x+n*Jt(i)+a*Zt(i)),this.set("y",e.y+a*Jt(i)-n*Zt(i));const s="dragged";o.isEnabled(s)&&o.dispatch(s,{type:s,target:this,originalEvent:t.originalEvent,point:t.point,simulated:t.simulated})}else if(Math.hypot(n,a)>5){this._isDragging=!0,this._dragEvent=t,this._dragPoint={x:this.x(),y:this.y()};const e="dragstart";o.isEnabled(e)&&o.dispatch(e,{type:e,target:this,originalEvent:t.originalEvent,point:t.point,simulated:t.simulated})}}}_updateSize(){}_getBounds(){this._localBounds=this._display.getLocalBounds()}depth(){let t=this.parent,e=0;for(;;){if(!t)return e;++e,t=t.parent}}markDirtySize(){this._sizeDirty=!0,this.markDirty()}markDirtyBounds(){const t=this._display;if(this.get("isMeasured")){this._root._addDirtyBounds(this),t.isMeasured=!0,t.invalidateBounds();const e=this.parent;e&&"absolute"!=this.get("position")&&(null==e.get("width")||null==e.get("height")||e.get("layout"))&&e.markDirtyBounds(),this.get("focusable")&&this.isFocus()&&this.markDirtyAccessibility()}}markDirtyAccessibility(){this._root._invalidateAccessibility(this)}markDirtyLayer(){this._display.markDirtyLayer(!0)}markDirty(){super.markDirty(),this.markDirtyLayer()}_updateBounds(){const t=this._adjustedLocalBounds;let e;if(this.get("visible")&&this.getPrivate("visible")&&!this.get("forceHidden")?(this._getBounds(),this._fixMinBounds(this._localBounds),this.updatePivotPoint(),this._adjustedLocalBounds=this._display.getAdjustedBounds(this._localBounds),e=this._adjustedLocalBounds):(e={left:0,right:0,top:0,bottom:0},this._localBounds=e,this._adjustedLocalBounds=e),!t||t.left!==e.left||t.top!==e.top||t.right!==e.right||t.bottom!==e.bottom){const t="boundschanged";this.events.isEnabled(t)&&this.events.dispatch(t,{type:t,target:this}),this.parent&&(this.parent.markDirty(),this.parent.markDirtyBounds())}}_fixMinBounds(t){let e=this.get("minWidth",this.getPrivate("minWidth")),i=this.get("minHeight",this.getPrivate("minHeight"));_(e)&&t.right-t.left0?t.right=t.left+s:t.left=t.right+s),_(r)&&(r>0?t.bottom=t.top+r:t.top=t.bottom+r)}_removeParent(t){t&&(t.children.removeValue(this),k(t._percentageSizeChildren,this),k(t._percentagePositionChildren,this))}_clearDirty(){super._clearDirty(),this._sizeDirty=!1,this._statesHandled=!1}hover(){this.showTooltip(),this._handleOver()}unhover(){this.hideTooltip(),this._handleOut()}showTooltip(t){const e=this.getTooltip(),i=this.get("tooltipText"),s=this.get("tooltipHTML");if((i||s)&&e){const r=this.get("tooltipPosition"),n=this.getPrivate("tooltipTarget",this);"fixed"!=r&&t||(this._display._setMatrix(),t=this.toGlobal(n._getTooltipPoint())),e.set("pointTo",t),e.set("tooltipTarget",n),e.get("x")||e.set("x",t.x),e.get("y")||e.set("y",t.y),i&&e.label.set("text",i),s&&e.label.set("html",s);const a=this.dataItem;if(a&&e.label._setDataItem(a),"always"==this.get("showTooltipOn")&&(t.x<0||t.x>this._root.width()||t.y<0||t.y>this._root.height()))return void this.hideTooltip();e.label.text.markDirtyText();const o=e.show();return this.setPrivateRaw("showingTooltip",!0),o}}hideTooltip(){const t=this.getTooltip();if(t&&(t.get("tooltipTarget")==this.getPrivate("tooltipTarget",this)||this.get("tooltip")==t)){let e=t.get("keepTargetHover")&&0==t.get("stateAnimationDuration",0)?400:void 0;const i=t.hide(e);return this.setPrivateRaw("showingTooltip",!1),i}}_getTooltipPoint(){const t=this._localBounds;if(t){let e=0,i=0;return this.get("isMeasured")?(e=t.left+nt(this.get("tooltipX",0),t.right-t.left),i=t.top+nt(this.get("tooltipY",0),t.bottom-t.top)):(e=nt(this.get("tooltipX",0),this.width()),i=nt(this.get("tooltipY",0),this.height())),{x:e,y:i}}return{x:0,y:0}}getTooltip(){let t=this.get("tooltip");if(t)return t;{let t=this.parent;if(t)return t.getTooltip()}}_updatePosition(){const t=this.parent;let e=this.get("dx",0),i=this.get("dy",0),s=this.get("x"),n=this.getPrivate("x"),a=0,o=0;const h=this.get("position");s instanceof r&&(s=t?t.innerWidth()*s.value+t.get("paddingLeft",0):0),_(s)?a=s+e:null!=n?a=n:t&&"relative"==h&&(a=t.get("paddingLeft",0)+e);let l=this.get("y"),u=this.getPrivate("y");l instanceof r&&(l=t?t.innerHeight()*l.value+t.get("paddingTop",0):0),_(l)?o=l+i:null!=u?o=u:t&&"relative"==h&&(o=t.get("paddingTop",0)+i);const d=this._display;if(d.x!=a||d.y!=o){d.invalidateBounds(),d.x=a,d.y=o;const t="positionchanged";this.events.isEnabled(t)&&this.events.dispatch(t,{type:t,target:this})}this.getPrivate("showingTooltip")&&this.showTooltip()}x(){let t=this.get("x"),e=this.getPrivate("x");const i=this.parent;return i?t instanceof r?nt(t,i.innerWidth())+i.get("paddingLeft",0):_(t)?t:null!=e?e:i.get("paddingLeft",this._display.x):this._display.x}y(){let t=this.getPrivate("y");if(null!=t)return t;let e=this.get("y");const i=this.parent;return i?e instanceof r?nt(e,i.innerHeight())+i.get("paddingTop",0):_(e)?e:null!=t?t:i.get("paddingTop",this._display.y):this._display.y}_dispose(){super._dispose(),this._display.dispose(),this._removeTemplateField(),this._removeParent(this.parent),this._root._removeFocusElement(this);const t=this.get("tooltip");t&&t.dispose(),this.markDirty()}adjustedLocalBounds(){return this._fixMinBounds(this._adjustedLocalBounds),this._adjustedLocalBounds}localBounds(){return this._localBounds}bounds(){const t=this._adjustedLocalBounds,e=this.x(),i=this.y();return{left:t.left+e,right:t.right+e,top:t.top+i,bottom:t.bottom+i}}globalBounds(){const t=this.localBounds(),e=this.toGlobal({x:t.left,y:t.top}),i=this.toGlobal({x:t.right,y:t.top}),s=this.toGlobal({x:t.right,y:t.bottom}),r=this.toGlobal({x:t.left,y:t.bottom});return{left:Math.min(e.x,i.x,s.x,r.x),top:Math.min(e.y,i.y,s.y,r.y),right:Math.max(e.x,i.x,s.x,r.x),bottom:Math.max(e.y,i.y,s.y,r.y)}}_onShow(t){}_onHide(t){}appear(t,e){return(0,s.b)(this,void 0,void 0,(function*(){return yield this.hide(0),e?new Promise(((i,s)=>{this.setTimeout((()=>{i(this.show(t))}),e)})):this.show(t)}))}show(t){return(0,s.b)(this,void 0,void 0,(function*(){if(!this._isShowing){this._isHidden=!1,this._isShowing=!0,this._isHiding=!1,this.states.lookup("default").get("visible")&&this.set("visible",!0),this._onShow(t);const e=this.states.applyAnimate("default",t);yield Ct(e),this._isShowing=!1}}))}hide(t){return(0,s.b)(this,void 0,void 0,(function*(){if(!this._isHiding&&!this._isHidden){this._isHiding=!0,this._isShowing=!1;let e=this.states.lookup("hidden");e||(e=this.states.create("hidden",{opacity:0,visible:!1})),this._isHidden=!0,this._onHide(t);const i=this.states.applyAnimate("hidden",t);yield Ct(i),this._isHiding=!1}}))}isHidden(){return this._isHidden}isShowing(){return this._isShowing}isHiding(){return this._isHiding}isHover(){return this._display.hovering()}isFocus(){return this._root.focused(this)}isDragging(){return this._isDragging}isVisible(){return!(!this.get("visible")||!this.getPrivate("visible")||this.get("forceHidden"))}isVisibleDeep(){return this._parent?this._parent.isVisibleDeep()&&this.isVisible():this.isVisible()}compositeOpacity(){const t=this.get("opacity",1);return this._parent?this._parent.compositeOpacity()*t:t}width(){let t=this.get("width"),e=this.get("maxWidth",this.getPrivate("maxWidth")),i=this.get("minWidth",this.getPrivate("minWidth")),s=this.getPrivate("width"),n=0;if(_(s))n=s;else if(null==t)this._adjustedLocalBounds&&(n=this._adjustedLocalBounds.right-this._adjustedLocalBounds.left);else if(t instanceof r){const e=this.parent;n=e?e.innerWidth()*t.value:this._root.width()*t.value}else _(t)&&(n=t);return _(i)&&(n=Math.max(i,n)),_(e)&&(n=Math.min(e,n)),n}maxWidth(){let t=this.get("maxWidth",this.getPrivate("maxWidth"));if(_(t))return t;{let t=this.get("width");if(_(t))return t}const e=this.parent;return e?e.innerWidth():this._root.width()}maxHeight(){let t=this.get("maxHeight",this.getPrivate("maxHeight"));if(_(t))return t;{let t=this.get("height");if(_(t))return t}const e=this.parent;return e?e.innerHeight():this._root.height()}height(){let t=this.get("height"),e=this.get("maxHeight",this.getPrivate("maxHeight")),i=this.get("minHeight",this.getPrivate("minHeight")),s=this.getPrivate("height"),n=0;if(_(s))n=s;else if(null==t)this._adjustedLocalBounds&&(n=this._adjustedLocalBounds.bottom-this._adjustedLocalBounds.top);else if(t instanceof r){const e=this.parent;n=e?e.innerHeight()*t.value:this._root.height()*t.value}else _(t)&&(n=t);return _(i)&&(n=Math.max(i,n)),_(e)&&(n=Math.min(e,n)),n}_findStaticTemplate(t){return this._templateField&&t(this._templateField)?this._templateField:super._findStaticTemplate(t)}_walkParents(t){this._parent&&this._walkParent(t)}_walkParent(t){this._parent&&this._parent._walkParent(t),t(this)}get parent(){return this._parent}_setParent(t,e=!1){const i=this._parent;t!==i&&(this.markDirtyBounds(),t.markDirty(),this._parent=t,e&&(this._removeParent(i),t&&(this._addPercentageSizeChildren(),this._addPercentagePositionChildren())),this.markDirtyPosition(),this._applyThemes())}getNumberFormatter(){return this.get("numberFormatter",this._root.numberFormatter)}getDateFormatter(){return this.get("dateFormatter",this._root.dateFormatter)}getDurationFormatter(){return this.get("durationFormatter",this._root.durationFormatter)}toGlobal(t){return this._display.toGlobal(t)}toLocal(t){return this._display.toLocal(t)}_getDownPoint(){const t=this._getDownPointId();if(t)return this._downPoints[t]}_getDownPointId(){if(this._downPoints)return function(t,e){return A(t).sort(e)}(this._downPoints,((t,e)=>t>e?1:t0&&(n.beginFill(s,r),n.drawRect(0,0,e,i),n.endFill()),a.angle=this.get("rotation",0),this._draw(),this._pattern=this._root._renderer.createPattern(a,n,t,e,i)}this._clear=!1}}Object.defineProperty(De,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Pattern"}),Object.defineProperty(De,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:fe.classNames.concat([De.className])});class xe extends De{constructor(){super(...arguments),Object.defineProperty(this,"_image",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}_beforeChanged(){super._beforeChanged(),this._clear=!0,this.isDirty("src")&&this._load();const t=this.get("canvas");t&&(this.set("width",t.width),this.set("height",t.height))}_draw(){super._draw();const t=this._image;if(t){const e=this.get("width",100),i=this.get("height",100),s=this.get("fit","image");let r=0,n=0;"pattern"==s?(r=e,n=i):(r=t.width,n=t.height,"image"==s&&(this.set("width",r),this.set("height",n)));let a=0,o=0;this.get("centered",!0)&&(a=e/2-r/2,o=i/2-n/2),this._display.image(t,r,n,a,o)}const e=this.get("canvas");e&&this._display.image(e,e.width,e.height,0,0)}_load(){const t=this.get("src");if(t){const e=new Image;e.src=t,e.decode().then((()=>{this._image=e,this._draw(),this.events.isEnabled("loaded")&&this.events.dispatch("loaded",{type:"loaded",target:this})})).catch((t=>{}))}}}var ke;Object.defineProperty(xe,"className",{enumerable:!0,configurable:!0,writable:!0,value:"PicturePattern"}),Object.defineProperty(xe,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:De.classNames.concat([xe.className])}),function(t){t.ADD="lighter",t.COLOR="color",t.COLOR_BURN="color-burn",t.COLOR_DODGE="color-dodge",t.DARKEN="darken",t.DIFFERENCE="difference",t.DST_OVER="destination-over",t.EXCLUSION="exclusion",t.HARD_LIGHT="hard-light",t.HUE="hue",t.LIGHTEN="lighten",t.LUMINOSITY="luminosity",t.MULTIPLY="multiply",t.NORMAL="source-over",t.OVERLAY="overlay",t.SATURATION="saturation",t.SCREEN="screen",t.SOFT_LIGHT="soft-light",t.SRC_ATOP="source-atop",t.XOR="xor"}(ke||(ke={}));const Oe=["fill","fillOpacity","stroke","strokeWidth","strokeOpacity","fillPattern","strokePattern","fillGradient","strokeGradient","strokeDasharray","strokeDashoffset","shadowBlur","shadowColor","shadowOpacity","shadowOffsetX","shadowOffsetY","blur","sepia","invert","brightness","hue","contrast","saturate"];class Te extends Pe{constructor(){super(...arguments),Object.defineProperty(this,"_display",{enumerable:!0,configurable:!0,writable:!0,value:this._root._renderer.makeGraphics()}),Object.defineProperty(this,"_clear",{enumerable:!0,configurable:!0,writable:!0,value:!1})}_beforeChanged(){if(super._beforeChanged(),(this.isDirty("draw")||this.isDirty("svgPath"))&&this.markDirtyBounds(),(this.isDirty("fill")||this.isDirty("stroke")||this.isDirty("visible")||this.isDirty("forceHidden")||this.isDirty("scale")||this.isDirty("fillGradient")||this.isDirty("strokeGradient")||this.isDirty("fillPattern")||this.isDirty("strokePattern")||this.isDirty("fillOpacity")||this.isDirty("strokeOpacity")||this.isDirty("strokeWidth")||this.isDirty("draw")||this.isDirty("blendMode")||this.isDirty("strokeDasharray")||this.isDirty("strokeDashoffset")||this.isDirty("svgPath")||this.isDirty("lineJoin")||this.isDirty("shadowColor")||this.isDirty("shadowBlur")||this.isDirty("shadowOffsetX")||this.isDirty("shadowOffsetY"))&&(this._clear=!0),this._display.crisp=this.get("crisp",!1),this.isDirty("fillGradient")){const t=this.get("fillGradient");if(t){this._display.isMeasured=!0;const e=t.get("target");e&&(this._disposers.push(e.events.on("boundschanged",(()=>{this._markDirtyKey("fill")}))),this._disposers.push(e.events.on("positionchanged",(()=>{this._markDirtyKey("fill")}))))}}if(this.isDirty("strokeGradient")){const t=this.get("strokeGradient");if(t){this._display.isMeasured=!0;const e=t.get("target");e&&(this._disposers.push(e.events.on("boundschanged",(()=>{this._markDirtyKey("stroke")}))),this._disposers.push(e.events.on("positionchanged",(()=>{this._markDirtyKey("stroke")}))))}}}_changed(){if(super._changed(),this._clear){this.markDirtyBounds(),this.markDirtyLayer(),this._display.clear();let t=this.get("strokeDasharray");_(t)&&(t=t<.5?[0]:[t]),this._display.setLineDash(t);const e=this.get("strokeDashoffset");e&&this._display.setLineDashOffset(e);const i=this.get("blendMode",ke.NORMAL);this._display.blendMode=i;const s=this.get("draw");s&&s(this._display,this);const r=this.get("svgPath");null!=r&&this._display.svgPath(r)}}_afterChanged(){if(super._afterChanged(),this._clear){const t=this.get("fill"),e=this.get("fillGradient"),i=this.get("fillPattern"),s=this.get("fillOpacity"),r=this.get("stroke"),n=this.get("strokeGradient"),a=this.get("strokePattern"),o=this.get("shadowColor"),h=this.get("shadowBlur"),l=this.get("shadowOffsetX"),u=this.get("shadowOffsetY"),d=this.get("shadowOpacity");if(o&&(h||l||u)&&this._display.shadow(o,h,l,u,d),t&&!e&&(this._display.beginFill(t,s),this._display.endFill()),e){if(t){const i=e.get("stops",[]);i.length&&w(i,(e=>{e.color&&!e.colorInherited||!t||(e.color=t,e.colorInherited=!0),(null==e.opacity||e.opacityInherited)&&(e.opacity=s,e.opacityInherited=!0)}))}const i=e.getFill(this);i&&(this._display.beginFill(i,s),this._display.endFill())}if(i){const t=i.pattern;t&&(this._display.beginFill(t,s),this._display.endFill(),i instanceof xe&&i.events.once("loaded",(()=>{this._clear=!0,this.markDirty()})))}if(r||n||a){const t=this.get("strokeOpacity");let e=this.get("strokeWidth",1);this.get("nonScalingStroke")&&(e/=this.get("scale",1)),this.get("crisp")&&(e/=this._root._renderer.resolution);const i=this.get("lineJoin");if(r&&!n&&(this._display.lineStyle(e,r,t,i),this._display.endStroke()),n){const s=n.get("stops",[]);s.length&&w(s,(e=>{e.color&&!e.colorInherited||!r||(e.color=r,e.colorInherited=!0),(null==e.opacity||e.opacityInherited)&&(e.opacity=t,e.opacityInherited=!0)}));const a=n.getFill(this);a&&(this._display.lineStyle(e,a,t,i),this._display.endStroke())}if(a){let s=a.pattern;s&&(this._display.lineStyle(e,s,t,i),this._display.endStroke(),a instanceof xe&&a.events.once("loaded",(()=>{this._clear=!0,this.markDirty()})))}}this.getPrivate("showingTooltip")&&this.showTooltip()}this._clear=!1}}Object.defineProperty(Te,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Graphics"}),Object.defineProperty(Te,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:Pe.classNames.concat([Te.className])});class Se extends Te{_afterNew(){super._afterNew(),this._display.isMeasured=!0,this.setPrivateRaw("trustBounds",!0)}_beforeChanged(){super._beforeChanged(),(this.isDirty("width")||this.isDirty("height")||this.isPrivateDirty("width")||this.isPrivateDirty("height"))&&(this._clear=!0)}_changed(){super._changed(),this._clear&&!this.get("draw")&&this._draw()}_draw(){this._display.drawRect(0,0,this.width(),this.height())}_updateSize(){this.markDirty(),this._clear=!0}}function je(t,e){t.get("reverseChildren",!1)?t.children.eachReverse(e):t.children.each(e)}Object.defineProperty(Se,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Rectangle"}),Object.defineProperty(Se,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:Te.classNames.concat([Se.className])});class Ee extends fe{}Object.defineProperty(Ee,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Layout"}),Object.defineProperty(Ee,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:fe.classNames.concat([Ee.className])});class Ce extends Ee{updateContainer(t){let e=t.get("paddingLeft",0),i=t.innerWidth(),s=0;je(t,(t=>{if(t.isVisible()&&"relative"==t.get("position")){let e=t.get("width");if(e instanceof r){s+=e.value;let r=i*e.value,n=t.get("minWidth",t.getPrivate("minWidth",-1/0));n>r&&(i-=n,s-=e.value);let a=t.get("maxWidth",t.getPrivate("maxWidth",1/0));r>a&&(i-=a,s-=e.value)}else _(e)||(e=t.width()),i-=e+t.get("marginLeft",0)+t.get("marginRight",0)}})),(i<=0||i==1/0)&&(i=.1),je(t,(t=>{if(t.isVisible()&&"relative"==t.get("position")){let e=t.get("width");if(e instanceof r){let r=i*e.value/s-t.get("marginLeft",0)-t.get("marginRight",0),n=t.get("minWidth",t.getPrivate("minWidth",-1/0)),a=t.get("maxWidth",t.getPrivate("maxWidth",1/0));r=Math.min(Math.max(n,r),a),t.setPrivate("width",r)}else t._prevSettings.width instanceof r&&t.setPrivate("width",void 0)}}));let n=e;je(t,(t=>{if("relative"==t.get("position"))if(t.isVisible()){let e=t.adjustedLocalBounds(),i=t.get("marginLeft",0),s=t.get("marginRight",0),r=t.get("maxWidth"),a=e.left,o=e.right;r&&o-a>r&&(o=a+r);let h=n+i-a;t.setPrivate("x",h),n=h+o+s}else t.setPrivate("x",void 0)}))}}Object.defineProperty(Ce,"className",{enumerable:!0,configurable:!0,writable:!0,value:"HorizontalLayout"}),Object.defineProperty(Ce,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:Ee.classNames.concat([Ce.className])});class Me extends Ee{updateContainer(t){let e=t.get("paddingTop",0),i=t.innerHeight(),s=0;je(t,(t=>{if(t.isVisible()&&"relative"==t.get("position")){let e=t.get("height");if(e instanceof r){s+=e.value;let r=i*e.value,n=t.get("minHeight",t.getPrivate("minHeight",-1/0));n>r&&(i-=n,s-=e.value);let a=t.get("maxHeight",t.getPrivate("maxHeight",1/0));r>a&&(i-=a,s-=e.value)}else _(e)||(e=t.height()),i-=e+t.get("marginTop",0)+t.get("marginBottom",0)}})),(i<=0||i==1/0)&&(i=.1),je(t,(t=>{if(t.isVisible()&&"relative"==t.get("position")){let e=t.get("height");if(e instanceof r){let r=i*e.value/s-t.get("marginTop",0)-t.get("marginBottom",0),n=t.get("minHeight",t.getPrivate("minHeight",-1/0)),a=t.get("maxHeight",t.getPrivate("maxHeight",1/0));r=Math.min(Math.max(n,r),a),t.setPrivate("height",r)}else t._prevSettings.height instanceof r&&t.setPrivate("height",void 0)}}));let n=e;je(t,(t=>{if("relative"==t.get("position"))if(t.isVisible()){let e=t.adjustedLocalBounds(),i=t.get("marginTop",0),s=e.top,r=e.bottom,a=t.get("maxHeight");a&&r-s>a&&(r=s+a);let o=t.get("marginBottom",0),h=n+i-s;t.setPrivate("y",h),n=h+r+o}else t.setPrivate("y",void 0)}))}}Object.defineProperty(Me,"className",{enumerable:!0,configurable:!0,writable:!0,value:"VerticalLayout"}),Object.defineProperty(Me,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:Ee.classNames.concat([Me.className])});class Be extends Ee{_afterNew(){this._setRawDefault("maxColumns",Number.MAX_VALUE),super._afterNew()}updateContainer(t){let e=t.get("paddingLeft",0),i=t.get("paddingRight",0),s=t.get("paddingTop",0),r=t.maxWidth()-e-i,n=r,a=1;je(t,(t=>{if(t.get("visible")&&t.getPrivate("visible")&&!t.get("forceHidden")&&"absolute"!=t.get("position")){let e=t.width();ea&&(a=e)}})),n=$t(n,1,r),a=$t(a,1,r);let o=1;o=this.get("fixedWidthGrid")?r/a:r/n,o=Math.max(1,Math.floor(o)),o=Math.min(this.get("maxColumns",Number.MAX_VALUE),o);let h=this.getColumnWidths(t,o,a,r),l=s,u=0,d=0;o=h.length;let c=e;je(t,(t=>{if("relative"==t.get("position")&&t.isVisible()){const i=t.get("marginTop",0),s=t.get("marginBottom",0);let r=t.adjustedLocalBounds(),n=t.get("marginLeft",0),a=t.get("marginRight",0),p=c+n-r.left,g=l+i-r.top;t.setPrivate("x",p),t.setPrivate("y",g),c+=h[u]+a,d=Math.max(d,t.height()+i+s),u++,u>=o&&(u=0,c=e,l+=d)}}))}getColumnWidths(t,e,i,s){let r=0,n=[],a=0;return je(t,(s=>{let r=s.adjustedLocalBounds();"absolute"!=s.get("position")&&s.isVisible()&&(this.get("fixedWidthGrid")?n[a]=i:n[a]=Math.max(0|n[a],r.right-r.left+s.get("marginLeft",0)+s.get("marginRight",0)),a{r+=t})),r>s?e>2?(e-=1,this.getColumnWidths(t,e,i,s)):[s]:n}}Object.defineProperty(Be,"className",{enumerable:!0,configurable:!0,writable:!0,value:"GridLayout"}),Object.defineProperty(Be,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:Ee.classNames.concat([Be.className])});class Ae{static escape(t){return t.replace(/\[\[/g,this.prefix+"1").replace(/([^\/\]]{1})\]\]/g,"$1"+this.prefix+"2").replace(/\]\]/g,this.prefix+"2").replace(/\{\{/g,this.prefix+"3").replace(/\}\}/g,this.prefix+"4").replace(/\'\'/g,this.prefix+"5")}static unescape(t){return t.replace(new RegExp(this.prefix+"1","g"),"[[").replace(new RegExp(this.prefix+"2","g"),"]]").replace(new RegExp(this.prefix+"3","g"),"{{").replace(new RegExp(this.prefix+"4","g"),"}}").replace(new RegExp(this.prefix+"5","g"),"''")}static cleanUp(t){return t.replace(/\[\[/g,"[").replace(/\]\]/g,"]").replace(/\{\{/g,"{").replace(/\}\}/g,"}").replace(/\'\'/g,"'")}static chunk(t,e=!1,i=!1){let s=[];t=this.escape(t);let r=e?t.split("'"):[t];for(let t=0;t{t.dispose()})),this.getPrivate("htmlElement")&&this._root._removeHTMLContent(this),super._dispose()}_changed(){if(super._changed(),this.isDirty("interactiveChildren")&&(this._display.interactiveChildren=this.get("interactiveChildren",!1)),this.isDirty("layout")&&(this._prevWidth=0,this._prevHeight=0,this.markDirtyBounds(),this._prevSettings.layout&&this.children.each((t=>{t.removePrivate("x"),t.removePrivate("y")}))),(this.isDirty("paddingTop")||this.isDirty("paddingBottom")||this.isDirty("paddingLeft")||this.isDirty("paddingRight"))&&this.children.each((t=>{t.markDirtyPosition()})),this.isDirty("maskContent")){const t=this._childrenDisplay;let e=this._contentMask;this.get("maskContent")?e||(e=Se.new(this._root,{x:-.5,y:-.5,width:this.width()+1,height:this.height()+1}),this._contentMask=e,t.addChildAt(e._display,0),t.mask=e._display):e&&(t.removeChild(e._display),t.mask=null,e.dispose(),this._contentMask=void 0)}}_updateSize(){super._updateSize(),w(this._percentageSizeChildren,(t=>{t._updateSize()})),w(this._percentagePositionChildren,(t=>{t.markDirtyPosition(),t._updateSize()})),this.updateBackground()}updateBackground(){const t=this.get("background");let e=this._localBounds;if(e&&!this.isHidden()){let i=e.left,s=e.top,r=e.right-i,n=e.bottom-s,a=this.get("maxWidth"),o=this.get("maxHeight");o&&n>o&&(n=o),a&&r>a&&(r=a);let h=this.width(),l=this.height();t&&(t.setAll({width:r,height:n,x:i,y:s}),this._display.interactive&&(t._display.interactive=!0));const u=this._contentMask;u&&u.setAll({width:h+1,height:l+1});const d=this.get("verticalScrollbar");if(d){d.set("height",l),d.set("x",h-d.width()-d.get("marginRight",0)),d.set("end",d.get("start",0)+l/this._contentHeight);const t=d.get("background");t&&t.setAll({width:d.width(),height:l});let e=!0;this._contentHeight<=l&&(e=!1),d.setPrivate("visible",e)}}}_applyThemes(t=!1){return!!super._applyThemes(t)&&(this.eachChildren((e=>{e._applyThemes(t)})),!0)}_applyState(t){super._applyState(t),this.get("setStateOnChildren")&&this.eachChildren((e=>{e.states.apply(t)}))}_applyStateAnimated(t,e){super._applyStateAnimated(t,e),this.get("setStateOnChildren")&&this.eachChildren((i=>{i.states.applyAnimate(t,e)}))}innerWidth(){return this.width()-this.get("paddingRight",0)-this.get("paddingLeft",0)}innerHeight(){return this.height()-this.get("paddingTop",0)-this.get("paddingBottom",0)}_getBounds(){let t=this.get("width"),e=this.get("height"),i=this.getPrivate("width"),s=this.getPrivate("height"),r={left:0,top:0,right:this.width(),bottom:this.height()},n=this.get("layout"),a=!1,o=!1;if((n instanceof Ce||n instanceof Be)&&(a=!0),n instanceof Me&&(o=!0),null==t&&null==i||null==e&&null==s||this.get("verticalScrollbar")){let t=Number.MAX_VALUE,e=t,i=-t,s=t,n=-t;const h=this.get("paddingLeft",0),l=this.get("paddingTop",0),u=this.get("paddingRight",0),d=this.get("paddingBottom",0);this.children.each((t=>{if("absolute"!=t.get("position")&&t.get("isMeasured")){let r=t.adjustedLocalBounds(),h=t.x(),l=t.y(),u=h+r.left,d=h+r.right,c=l+r.top,p=l+r.bottom;a&&(u-=t.get("marginLeft",0),d+=t.get("marginRight",0)),o&&(c-=t.get("marginTop",0),p+=t.get("marginBottom",0)),ui&&(i=d),cn&&(n=p)}})),e==t&&(e=0),i==-t&&(i=0),s==t&&(s=0),n==-t&&(n=0),r.left=e-h,r.top=s-l,r.right=i+u,r.bottom=n+d;const c=this.get("minWidth");_(c)&&c>0&&r.right-r.left=c?r.left=r.right-c:r.right=r.left+c);const p=this.get("minHeight");_(p)&&p>0&&r.bottom-r.top=p?r.top=r.bottom-p:r.bottom=r.top+p)}this._contentWidth=r.right-r.left,this._contentHeight=r.bottom-r.top,_(t)&&(r.left=0,r.right=t),_(i)&&(r.left=0,r.right=i),_(e)&&(r.top=0,r.bottom=e),_(s)&&(r.top=0,r.bottom=s),this._localBounds=r}_updateBounds(){const t=this.get("layout");t&&t.updateContainer(this),super._updateBounds(),this.updateBackground()}markDirty(){super.markDirty(),this._root._addDirtyParent(this)}_prepareChildren(){const t=this.innerWidth(),e=this.innerHeight();if(t!=this._prevWidth||e!=this._prevHeight){let i=this.get("layout"),s=!1,n=!1;i&&((i instanceof Ce||i instanceof Be)&&(s=!0),i instanceof Me&&(n=!0)),w(this._percentageSizeChildren,(i=>{if(!s){let e=i.get("width");e instanceof r&&i.setPrivate("width",e.value*t)}if(!n){let t=i.get("height");t instanceof r&&i.setPrivate("height",t.value*e)}})),w(this._percentagePositionChildren,(t=>{t.markDirtyPosition(),t.markDirtyBounds()})),this._prevWidth=t,this._prevHeight=e,this._sizeDirty=!0,this.updateBackground()}this._handleStates()}_updateChildren(){if(this.isDirty("html")){const t=this.get("html");t&&""!==t?this._root._setHTMLContent(this,He(this,this.get("html",""))):this._root._removeHTMLContent(this),this._root._positionHTMLElement(this)}if(this.isDirty("verticalScrollbar")){const t=this.get("verticalScrollbar");if(t){t._setParent(this),t.startGrip.setPrivate("visible",!1),t.endGrip.setPrivate("visible",!1),this.set("maskContent",!0),this.set("paddingRight",t.width()+t.get("marginRight",0)+t.get("marginLeft",0));let e=this.get("background");e||(e=this.set("background",Se.new(this._root,{themeTags:["background"],fillOpacity:0,fill:this._root.interfaceColors.get("alternativeBackground")}))),this._vsbd0=this.events.on("wheel",(e=>{const i=e.originalEvent;if(!it(i,this))return;i.preventDefault();let s=i.deltaY/5e3;const r=t.get("start",0),n=t.get("end",1);r+s<=0&&(s=-r),n+s>=1&&(s=1-n),r+s>=0&&n+s<=1&&(t.set("start",r+s),t.set("end",n+s))})),this._disposers.push(this._vsbd0),this._vsbd1=t.events.on("rangechanged",(()=>{let e=this._contentHeight;const i=this._childrenDisplay,s=this._contentMask;i.y=-t.get("start",0)*e,i.markDirtyLayer(),s&&(s._display.y=-i.y,i.mask=s._display)})),this._disposers.push(this._vsbd1),this._display.addChild(t._display)}else{const t=this._prevSettings.verticalScrollbar;t&&(this._display.removeChild(t._display),this._vsbd0&&this._vsbd0.dispose(),this._vsbd1&&this._vsbd1.dispose(),this._childrenDisplay.y=0,this.setPrivate("height",void 0),this.set("maskContent",!1),this.set("paddingRight",void 0))}}if(this.isDirty("background")){const t=this._prevSettings.background;t&&this._display.removeChild(t._display);const e=this.get("background");e instanceof Pe&&(e.set("isMeasured",!1),e._setParent(this),this._display.addChildAt(e._display,0))}if(this.isDirty("mask")){const t=this.get("mask"),e=this._prevSettings.mask;if(e&&(this._display.removeChild(e._display),e!=t&&e.dispose()),t){const e=t.parent;e&&e.children.removeValue(t),t._setParent(this),this._display.addChildAt(t._display,0),this._childrenDisplay.mask=t._display}}}_processTemplateField(){super._processTemplateField(),this.children.each((t=>{t._processTemplateField()}))}walkChildren(t){this.children.each((e=>{e instanceof Re&&e.walkChildren(t),t(e)}))}eachChildren(t){const e=this.get("background");e&&t(e);const i=this.get("verticalScrollbar");i&&t(i);const s=this.get("mask");s&&t(s),this.children.values.forEach((e=>{t(e)}))}allChildren(){const t=[];return this.eachChildren((e=>{t.push(e)})),t}_setDataItem(t){const e=t!==this._dataItem;super._setDataItem(t);const i=this.get("html","");i&&""!==i&&e&&this._root._setHTMLContent(this,He(this,i))}}Object.defineProperty(Re,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Container"}),Object.defineProperty(Re,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:Pe.classNames.concat([Re.className])});class Fe extends Pe{constructor(){super(...arguments),Object.defineProperty(this,"textStyle",{enumerable:!0,configurable:!0,writable:!0,value:this._root._renderer.makeTextStyle()}),Object.defineProperty(this,"_display",{enumerable:!0,configurable:!0,writable:!0,value:this._root._renderer.makeText("",this.textStyle)}),Object.defineProperty(this,"_textStyles",{enumerable:!0,configurable:!0,writable:!0,value:["textAlign","fontFamily","fontSize","fontStyle","fontWeight","fontStyle","fontVariant","textDecoration","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","shadowOpacity","lineHeight","baselineRatio","direction","textBaseline","oversizedBehavior","breakWords","ellipsis","minScale","maxChars"]}),Object.defineProperty(this,"_originalScale",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}_updateBounds(){if(this.get("text"))super._updateBounds();else{let t={left:0,right:0,top:0,bottom:0};this._adjustedLocalBounds=t}}_changed(){super._changed(),this._display.clear();let t=this.textStyle;if(this.isDirty("opacity")){let t=this.get("opacity",1);this._display.alpha=t}if((this.isDirty("text")||this.isDirty("populateText"))&&(this._display.text=this._getText(),this.markDirtyBounds(),"tooltip"==this.get("role")&&this._root.updateTooltip(this)),this.isPrivateDirty("tooltipElement")&&this.getPrivate("tooltipElement")&&this._disposers.push(new F((()=>{this._root._removeTooltipElement(this)}))),this.isDirty("width")&&(t.wordWrapWidth=this.width(),this.markDirtyBounds()),this.isDirty("oversizedBehavior")&&(t.oversizedBehavior=this.get("oversizedBehavior","none"),this.markDirtyBounds()),this.isDirty("breakWords")&&(t.breakWords=this.get("breakWords",!1),this.markDirtyBounds()),this.isDirty("ellipsis")&&(t.ellipsis=this.get("ellipsis"),this.markDirtyBounds()),this.isDirty("ignoreFormatting")&&(t.ignoreFormatting=this.get("ignoreFormatting",!1),this.markDirtyBounds()),this.isDirty("minScale")&&(t.minScale=this.get("minScale",0),this.markDirtyBounds()),this.isDirty("fill")){let e=this.get("fill");e&&(t.fill=e)}if(this.isDirty("fillOpacity")){let e=this.get("fillOpacity",1);e&&(t.fillOpacity=e)}(this.isDirty("maxWidth")||this.isPrivateDirty("maxWidth"))&&(t.maxWidth=this.get("maxWidth",this.getPrivate("maxWidth")),this.markDirtyBounds()),(this.isDirty("maxHeight")||this.isPrivateDirty("maxHeight"))&&(t.maxHeight=this.get("maxHeight",this.getPrivate("maxHeight")),this.markDirtyBounds()),w(this._textStyles,(e=>{this._dirty[e]&&(t[e]=this.get(e),this.markDirtyBounds())})),t.fontSize=this.get("fontSize"),t.fontFamily=this.get("fontFamily"),this._display.style=t,this.isDirty("role")&&"tooltip"==this.get("role")&&this._root.updateTooltip(this)}_getText(){let t=this.get("text","");return this.get("maxChars")&&(t=function(t,e,i=!1,s="..."){if(t.length>e){let r=e-1;for(;r>=0&&t.charAt(r).match(/\w/);)r--;return r>=0&&0==i?t.substring(0,r+1)+"...":t.substring(0,e)+s}return t}(t,this.get("maxChars",1e8),this.get("breakWords"),this.get("ellipsis"))),this.get("populateText")?He(this,t):t}markDirtyText(){this._display.text=this._getText(),"tooltip"==this.get("role")&&this._root.updateTooltip(this),this.markDirtyBounds(),this.markDirty()}_setDataItem(t){super._setDataItem(t),this.get("populateText")&&this.markDirtyText()}getNumberFormatter(){return this.parent?this.parent.getNumberFormatter():super.getNumberFormatter()}getDateFormatter(){return this.parent?this.parent.getDateFormatter():super.getDateFormatter()}getDurationFormatter(){return this.parent?this.parent.getDurationFormatter():super.getDurationFormatter()}}Object.defineProperty(Fe,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Text"}),Object.defineProperty(Fe,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:Pe.classNames.concat([Fe.className])});class We extends Re{constructor(){super(...arguments),Object.defineProperty(this,"_text",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_textKeys",{enumerable:!0,configurable:!0,writable:!0,value:["text","fill","fillOpacity","textAlign","fontFamily","fontSize","fontStyle","fontWeight","fontStyle","fontVariant","textDecoration","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","shadowOpacity","lineHeight","baselineRatio","direction","textBaseline","oversizedBehavior","breakWords","ellipsis","minScale","populateText","role","ignoreFormatting","maxChars"]})}get text(){return this._text}_afterNew(){super._afterNew(),this._makeText(),w(this._textKeys,(t=>{const e=this.get(t);null!=e&&this._text.set(t,e)})),""!==this.get("html","")&&this._text.set("text",""),this.onPrivate("maxWidth",(()=>{this._setMaxDimentions()})),this.onPrivate("maxHeight",(()=>{this._setMaxDimentions()}))}_makeText(){this._text=this.children.push(Fe.new(this._root,{}))}_updateChildren(){if(super._updateChildren(),w(this._textKeys,(t=>{this._text.set(t,this.get(t))})),this.isDirty("maxWidth")&&this._setMaxDimentions(),this.isDirty("maxHeight")&&this._setMaxDimentions(),this.isDirty("rotation")&&this._setMaxDimentions(),""!==this.get("html","")?this._text.set("text",""):this._text.set("text",this.get("text")),this.isDirty("textAlign")||this.isDirty("width")){const t=this.get("textAlign");let e;null!=this.get("width")?e="right"==t?a:"center"==t?o:0:"left"==t||"start"==t?e=this.get("paddingLeft"):"right"!=t&&"end"!=t||(e=-this.get("paddingRight")),this.text.set("x",e)}}_setMaxDimentions(){const t=this.get("rotation"),e=90==t||270==t||-90==t,i=this.get("maxWidth",this.getPrivate("maxWidth",1/0));_(i)?this.text.set(e?"maxHeight":"maxWidth",i-this.get("paddingLeft",0)-this.get("paddingRight",0)):this.text.set(e?"maxHeight":"maxWidth",void 0);const s=this.get("maxHeight",this.getPrivate("maxHeight",1/0));_(s)?this.text.set(e?"maxWidth":"maxHeight",s-this.get("paddingTop",0)-this.get("paddingBottom",0)):this.text.set(e?"maxWidth":"maxHeight",void 0)}_setDataItem(t){super._setDataItem(t),this._markDirtyKey("text"),this.text.get("populateText")&&this.text.markDirtyText()}getText(){return this._text._getText()}}Object.defineProperty(We,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Label"}),Object.defineProperty(We,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:Re.classNames.concat([We.className])});class Ve{constructor(t,e){if(Object.defineProperty(this,"_root",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_rules",{enumerable:!0,configurable:!0,writable:!0,value:{}}),this._root=t,!e)throw new Error("You cannot use `new Class()`, instead use `Class.new()`")}static new(t){const e=new this(t,!0);return e.setupDefaultRules(),e}setupDefaultRules(){}_lookupRules(t){return this._rules[t]}ruleRaw(t,e=[]){let i=this._rules[t];i||(i=this._rules[t]=[]),e.sort(le);const{index:s,found:r}=function(t,e){let i=0,s=t.length,r=!1;for(;i>1,a=e(t[n]);a<0?i=n+1:0===a?(r=!0,i=n+1):s=n}return{found:r,index:r?i-1:i}}(i,(t=>{const i=le(t.tags.length,e.length);return 0===i?ue(t.tags,e,le):i}));if(r)return i[s].template;{const t=ye.new({});return i.splice(s,0,{tags:e,template:t}),t}}rule(t,e=[]){return this.ruleRaw(t,e)}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3040.afbf360b8c29ef628146.js b/docs/sentinel1-explorer/3040.afbf360b8c29ef628146.js new file mode 100644 index 00000000..9f3a64f1 --- /dev/null +++ b/docs/sentinel1-explorer/3040.afbf360b8c29ef628146.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3040],{43040:function(e,_,r){r.r(_),r.d(_,{default:function(){return o}});const o={_decimalSeparator:",",_thousandSeparator:" ",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"н. е.",_era_bc:"до н. е.",A:"дп",P:"пп",AM:"дп",PM:"пп","A.M.":"дп","P.M.":"пп",January:"січня",February:"лютого",March:"березня",April:"квітня",May:"травня",June:"червня",July:"липня",August:"серпня",September:"вересня",October:"жовтня",November:"листопада",December:"грудня",Jan:"січ.",Feb:"лют.",Mar:"бер.",Apr:"квіт.","May(short)":"трав.",Jun:"черв.",Jul:"лип.",Aug:"серп.",Sep:"вер.",Oct:"жовт.",Nov:"лист.",Dec:"груд.",Sunday:"неділя",Monday:"понеділок",Tuesday:"вівторок",Wednesday:"середа",Thursday:"четвер",Friday:"пʼятниця",Saturday:"субота",Sun:"нд",Mon:"пн",Tue:"вт",Wed:"ср",Thu:"чт",Fri:"пт",Sat:"сб",_dateOrd:function(e){return""},"Zoom Out":"Масштабування",Play:"Відтворювати",Stop:"Зупинка",Legend:"Легенда","Press ENTER to toggle":"",Loading:"Завантажується",Home:"Головна сторінка",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"карта","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Друк",Image:"Зображення",Data:"Дані",Print:"Друк","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Від %1 до %2","From %1":"Від %1","To %1":"До %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3041.acb9914cf6f8473f03f5.js b/docs/sentinel1-explorer/3041.acb9914cf6f8473f03f5.js new file mode 100644 index 00000000..c9484af4 --- /dev/null +++ b/docs/sentinel1-explorer/3041.acb9914cf6f8473f03f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3041,5917],{73041:function(n,e,t){t.r(e),t.d(e,{registerFunctions:function(){return R}});var r=t(88256),a=t(58780),i=t(19249),o=t(7182),u=t(4080),c=t(94837),s=t(86727),l=t(5306),f=t(24653),d=t(17321),w=t(91772),h=t(20031),y=t(15917),m=t(74304),p=t(67666),g=t(89542),I=t(90819),Z=t(53736),H=t(93968),v=t(66341);async function A(n,e,t){const a=r.id?.findCredential(n.restUrl);if(!a)return null;if("loaded"===n.loadStatus&&""===e&&n.user?.sourceJSON&&!1===t)return n.user.sourceJSON;const i={responseType:"json",query:{f:"json"}};if(t&&(i.query.returnUserLicenseTypeExtensions=!0),""===e){const e=await(0,v.Z)(n.restUrl+"/community/self",i);if(e.data){const n=e.data;if(n?.username)return n}return null}const o=await(0,v.Z)(n.restUrl+"/community/users/"+e,i);if(o.data){const n=o.data;return n.error?null:n}return null}function V(n){return 0===r.i8.indexOf("4.")?g.Z.fromExtent(n):new g.Z({spatialReference:n.spatialReference,rings:[[[n.xmin,n.ymin],[n.xmin,n.ymax],[n.xmax,n.ymax],[n.xmax,n.ymin],[n.xmin,n.ymin]]]})}function P(n,e,t){if((0,c.H)(n,2,2,e,t),n[0]instanceof h.Z&&n[1]instanceof h.Z);else if(n[0]instanceof h.Z&&null===n[1]);else if(n[1]instanceof h.Z&&null===n[0]);else if(null!==n[0]||null!==n[1])throw new o.aV(e,o.rH.InvalidParameter,t)}async function L(n,e){if("polygon"!==n.type&&"polyline"!==n.type&&"extent"!==n.type)return 0;let t=1;(n.spatialReference.vcsWkid||n.spatialReference.latestVcsWkid)&&(t=(0,l._R)(n.spatialReference)/(0,d.c9)(n.spatialReference));let r=0;if("polyline"===n.type)for(const e of n.paths)for(let n=1;n(P(a=(0,c.I)(a),e,t),null===a[0]||null===a[1]||(0,y.disjoint)(a[0],a[1]))))},n.functions.intersects=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>(P(a=(0,c.I)(a),e,t),null!==a[0]&&null!==a[1]&&(0,y.intersects)(a[0],a[1]))))},n.functions.touches=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>(P(a=(0,c.I)(a),e,t),null!==a[0]&&null!==a[1]&&(0,y.touches)(a[0],a[1]))))},n.functions.crosses=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>(P(a=(0,c.I)(a),e,t),null!==a[0]&&null!==a[1]&&(0,y.crosses)(a[0],a[1]))))},n.functions.within=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>(P(a=(0,c.I)(a),e,t),null!==a[0]&&null!==a[1]&&(0,y.within)(a[0],a[1]))))},n.functions.contains=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>(P(a=(0,c.I)(a),e,t),null!==a[0]&&null!==a[1]&&(0,y.contains)(a[0],a[1]))))},n.functions.overlaps=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>(P(a=(0,c.I)(a),e,t),null!==a[0]&&null!==a[1]&&(0,y.overlaps)(a[0],a[1]))))},n.functions.equals=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>((0,c.H)(a,2,2,e,t),a[0]===a[1]||(a[0]instanceof h.Z&&a[1]instanceof h.Z?(0,y.equals)(a[0],a[1]):((0,c.k)(a[0])&&(0,c.k)(a[1])||!!((0,c.n)(a[0])&&(0,c.n)(a[1])||(0,c.m)(a[0])&&(0,c.m)(a[1])))&&a[0].equals(a[1])))))},n.functions.relate=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,3,3,e,t),a[0]instanceof h.Z&&a[1]instanceof h.Z)return(0,y.relate)(a[0],a[1],(0,c.j)(a[2]));if(a[0]instanceof h.Z&&null===a[1])return!1;if(a[1]instanceof h.Z&&null===a[0])return!1;if(null===a[0]&&null===a[1])return!1;throw new o.aV(e,o.rH.InvalidParameter,t)}))},n.functions.intersection=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>(P(a=(0,c.I)(a),e,t),null===a[0]||null===a[1]?null:(0,y.intersect)(a[0],a[1]))))},n.functions.union=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{const i=[];if(0===(a=(0,c.I)(a)).length)throw new o.aV(e,o.rH.WrongNumberOfParameters,t);if(1===a.length)if((0,c.o)(a[0])){const n=(0,c.I)(a[0]);for(let r=0;r(P(a=(0,c.I)(a),e,t),null!==a[0]&&null===a[1]?(0,u.r1)(a[0]):null===a[0]?null:(0,y.difference)(a[0],a[1]))))},n.functions.symmetricdifference=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>(P(a=(0,c.I)(a),e,t),null===a[0]&&null===a[1]?null:null===a[0]?(0,u.r1)(a[1]):null===a[1]?(0,u.r1)(a[0]):(0,y.symmetricDifference)(a[0],a[1]))))},n.functions.clip=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,2,2,e,t),!(a[1]instanceof w.Z)&&null!==a[1])throw new o.aV(e,o.rH.InvalidParameter,t);if(null===a[0])return null;if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);return null===a[1]?null:(0,y.clip)(a[0],a[1])}))},n.functions.cut=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,2,2,e,t),!(a[1]instanceof I.Z)&&null!==a[1])throw new o.aV(e,o.rH.InvalidParameter,t);if(null===a[0])return[];if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);return null===a[1]?[(0,u.r1)(a[0])]:(0,y.cut)(a[0],a[1])}))},n.functions.area=function(e,t){return n.standardFunctionAsync(e,t,(async(n,r,a)=>{if((0,c.H)(a,1,2,e,t),null===(a=(0,c.I)(a))[0])return 0;if((0,c.u)(a[0])){const n=await a[0].sumArea((0,u.EI)((0,c.K)(a[1],-1)),!1,e.abortSignal);if(e.abortSignal.aborted)throw new o.aV(e,o.rH.Cancelled,t);return n}if((0,c.o)(a[0])||(0,c.q)(a[0])){const n=(0,c.J)(a[0],e.spatialReference);return null===n?0:(0,y.planarArea)(n,(0,u.EI)((0,c.K)(a[1],-1)))}if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);return(0,y.planarArea)(a[0],(0,u.EI)((0,c.K)(a[1],-1)))}))},n.functions.areageodetic=function(e,t){return n.standardFunctionAsync(e,t,(async(n,r,a)=>{if((0,c.H)(a,1,2,e,t),null===(a=(0,c.I)(a))[0])return 0;if((0,c.u)(a[0])){const n=await a[0].sumArea((0,u.EI)((0,c.K)(a[1],-1)),!0,e.abortSignal);if(e.abortSignal.aborted)throw new o.aV(e,o.rH.Cancelled,t);return n}if((0,c.o)(a[0])||(0,c.q)(a[0])){const n=(0,c.J)(a[0],e.spatialReference);return null===n?0:(0,y.geodesicArea)(n,(0,u.EI)((0,c.K)(a[1],-1)))}if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);return(0,y.geodesicArea)(a[0],(0,u.EI)((0,c.K)(a[1],-1)))}))},n.functions.length=function(e,t){return n.standardFunctionAsync(e,t,(async(n,r,a)=>{if((0,c.H)(a,1,2,e,t),null===(a=(0,c.I)(a))[0])return 0;if((0,c.u)(a[0])){const n=await a[0].sumLength((0,u.Lz)((0,c.K)(a[1],-1)),!1,e.abortSignal);if(e.abortSignal.aborted)throw new o.aV(e,o.rH.Cancelled,t);return n}if((0,c.o)(a[0])||(0,c.q)(a[0])){const n=(0,c.L)(a[0],e.spatialReference);return null===n?0:(0,y.planarLength)(n,(0,u.Lz)((0,c.K)(a[1],-1)))}if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);return(0,y.planarLength)(a[0],(0,u.Lz)((0,c.K)(a[1],-1)))}))},n.functions.length3d=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if((0,c.H)(a,1,2,e,t),null===(a=(0,c.I)(a))[0])return 0;if((0,c.o)(a[0])||(0,c.q)(a[0])){const n=(0,c.L)(a[0],e.spatialReference);return null===n?0:!0===n.hasZ?L(n,(0,u.Lz)((0,c.K)(a[1],-1))):(0,y.planarLength)(n,(0,u.Lz)((0,c.K)(a[1],-1)))}if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);return!0===a[0].hasZ?L(a[0],(0,u.Lz)((0,c.K)(a[1],-1))):(0,y.planarLength)(a[0],(0,u.Lz)((0,c.K)(a[1],-1)))}))},n.functions.lengthgeodetic=function(e,t){return n.standardFunctionAsync(e,t,(async(n,r,a)=>{if((0,c.H)(a,1,2,e,t),null===(a=(0,c.I)(a))[0])return 0;if((0,c.u)(a[0])){const n=await a[0].sumLength((0,u.Lz)((0,c.K)(a[1],-1)),!0,e.abortSignal);if(e.abortSignal.aborted)throw new o.aV(e,o.rH.Cancelled,t);return n}if((0,c.o)(a[0])||(0,c.q)(a[0])){const n=(0,c.L)(a[0],e.spatialReference);return null===n?0:(0,y.geodesicLength)(n,(0,u.Lz)((0,c.K)(a[1],-1)))}if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);return(0,y.geodesicLength)(a[0],(0,u.Lz)((0,c.K)(a[1],-1)))}))},n.functions.distance=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{a=(0,c.I)(a),(0,c.H)(a,2,3,e,t);let i=a[0];((0,c.o)(a[0])||(0,c.q)(a[0]))&&(i=(0,c.M)(a[0],e.spatialReference));let s=a[1];if(((0,c.o)(a[1])||(0,c.q)(a[1]))&&(s=(0,c.M)(a[1],e.spatialReference)),!(i instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);if(!(s instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);return(0,y.distance)(i,s,(0,u.Lz)((0,c.K)(a[2],-1)))}))},n.functions.distancegeodetic=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{a=(0,c.I)(a),(0,c.H)(a,2,3,e,t);const i=a[0],s=a[1];if(!(i instanceof p.Z))throw new o.aV(e,o.rH.InvalidParameter,t);if(!(s instanceof p.Z))throw new o.aV(e,o.rH.InvalidParameter,t);const l=new I.Z({paths:[],spatialReference:i.spatialReference});return l.addPath([i,s]),(0,y.geodesicLength)(l,(0,u.Lz)((0,c.K)(a[2],-1)))}))},n.functions.densify=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,2,3,e,t),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);const i=(0,c.g)(a[1]);if(isNaN(i))throw new o.aV(e,o.rH.InvalidParameter,t);if(i<=0)throw new o.aV(e,o.rH.InvalidParameter,t);return a[0]instanceof g.Z||a[0]instanceof I.Z?(0,y.densify)(a[0],i,(0,u.Lz)((0,c.K)(a[2],-1))):a[0]instanceof w.Z?(0,y.densify)(V(a[0]),i,(0,u.Lz)((0,c.K)(a[2],-1))):a[0]}))},n.functions.densifygeodetic=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,2,3,e,t),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);const i=(0,c.g)(a[1]);if(isNaN(i))throw new o.aV(e,o.rH.InvalidParameter,t);if(i<=0)throw new o.aV(e,o.rH.InvalidParameter,t);return a[0]instanceof g.Z||a[0]instanceof I.Z?(0,y.geodesicDensify)(a[0],i,(0,u.Lz)((0,c.K)(a[2],-1))):a[0]instanceof w.Z?(0,y.geodesicDensify)(V(a[0]),i,(0,u.Lz)((0,c.K)(a[2],-1))):a[0]}))},n.functions.generalize=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,2,4,e,t),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);const i=(0,c.g)(a[1]);if(isNaN(i))throw new o.aV(e,o.rH.InvalidParameter,t);return(0,y.generalize)(a[0],i,(0,c.h)((0,c.K)(a[2],!0)),(0,u.Lz)((0,c.K)(a[3],-1)))}))},n.functions.buffer=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,2,3,e,t),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);const i=(0,c.g)(a[1]);if(isNaN(i))throw new o.aV(e,o.rH.InvalidParameter,t);return 0===i?(0,u.r1)(a[0]):(0,y.buffer)(a[0],i,(0,u.Lz)((0,c.K)(a[2],-1)))}))},n.functions.buffergeodetic=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,2,3,e,t),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);const i=(0,c.g)(a[1]);if(isNaN(i))throw new o.aV(e,o.rH.InvalidParameter,t);return 0===i?(0,u.r1)(a[0]):(0,y.geodesicBuffer)(a[0],i,(0,u.Lz)((0,c.K)(a[2],-1)))}))},n.functions.offset=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,2,6,e,t),null===a[0])return null;if(!(a[0]instanceof g.Z||a[0]instanceof I.Z))throw new o.aV(e,o.rH.InvalidParameter,t);const i=(0,c.g)(a[1]);if(isNaN(i))throw new o.aV(e,o.rH.InvalidParameter,t);const s=(0,c.g)((0,c.K)(a[4],10));if(isNaN(s))throw new o.aV(e,o.rH.InvalidParameter,t);const l=(0,c.g)((0,c.K)(a[5],0));if(isNaN(l))throw new o.aV(e,o.rH.InvalidParameter,t);return(0,y.offset)(a[0],i,(0,u.Lz)((0,c.K)(a[2],-1)),(0,c.j)((0,c.K)(a[3],"round")).toLowerCase(),s,l)}))},n.functions.rotate=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{a=(0,c.I)(a),(0,c.H)(a,2,3,e,t);let i=a[0];if(null===i)return null;if(!(i instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);i instanceof w.Z&&(i=g.Z.fromExtent(i));const u=(0,c.g)(a[1]);if(isNaN(u))throw new o.aV(e,o.rH.InvalidParameter,t);const s=(0,c.K)(a[2],null);if(null===s)return(0,y.rotate)(i,u);if(s instanceof p.Z)return(0,y.rotate)(i,u,s);throw new o.aV(e,o.rH.InvalidParameter,t)}))},n.functions.centroid=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,1,1,e,t),null===a[0])return null;let i=a[0];if(((0,c.o)(a[0])||(0,c.q)(a[0]))&&(i=(0,c.M)(a[0],e.spatialReference)),null===i)return null;if(!(i instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);return i instanceof p.Z?(0,c.x)((0,u.r1)(a[0]),e.spatialReference):i instanceof g.Z?i.centroid:i instanceof I.Z?(0,l.s9)(i):i instanceof m.Z?(0,l.Ay)(i):i instanceof w.Z?i.center:null}))},n.functions.measuretocoordinate=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,2,2,e,t),null===a[0])return null;let u=a[0];if(((0,c.o)(a[0])||(0,c.q)(a[0]))&&(u=(0,c.L)(a[0],e.spatialReference)),null===u)return null;if(!(u instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);if(!(u instanceof I.Z))throw new o.aV(e,o.rH.InvalidParameter,t);if((0,c.b)(!1===a[1]))throw new o.aV(e,o.rH.InvalidParameter,t);const s=(0,f.Tv)(u,a[1]);return s?i.Z.convertObjectToArcadeDictionary(s,(0,c.N)(e),!1,!0):null}))},n.functions.pointtocoordinate=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,2,2,e,t),null===a[0])return null;let u=a[0];if(((0,c.o)(a[0])||(0,c.q)(a[0]))&&(u=(0,c.L)(a[0],e.spatialReference)),null===u)return null;if(!(u instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);if(!(u instanceof I.Z))throw new o.aV(e,o.rH.InvalidParameter,t);const s=a[1];if(null===s)return null;if(!(s instanceof p.Z))throw new o.aV(e,o.rH.InvalidParameter,t);if((0,c.b)(!1===a[1]))throw new o.aV(e,o.rH.InvalidParameter,t);const l=(0,f.zq)(u,s);return l?i.Z.convertObjectToArcadeDictionary(l,(0,c.N)(e),!1,!0):null}))},n.functions.distancetocoordinate=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,2,2,e,t),null===a[0])return null;let u=a[0];if(((0,c.o)(a[0])||(0,c.q)(a[0]))&&(u=(0,c.L)(a[0],e.spatialReference)),null===u)return null;if(!(u instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);if(!(u instanceof I.Z))throw new o.aV(e,o.rH.InvalidParameter,t);if((0,c.b)(!1===a[1]))throw new o.aV(e,o.rH.InvalidParameter,t);const s=(0,f.qt)(u,a[1]);return s?i.Z.convertObjectToArcadeDictionary(s,(0,c.N)(e),!1,!0):null}))},n.functions.multiparttosinglepart=function(e,t){return n.standardFunctionAsync(e,t,(async(n,r,a)=>{a=(0,c.I)(a),(0,c.H)(a,1,1,e,t);const i=[];if(null===a[0])return null;if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);if(a[0]instanceof p.Z)return[(0,c.x)((0,u.r1)(a[0]),e.spatialReference)];if(a[0]instanceof w.Z)return[(0,c.x)((0,u.r1)(a[0]),e.spatialReference)];const s=await(0,y.simplify)(a[0]);if(s instanceof g.Z){const n=[],e=[];for(let t=0;t{if(a=(0,c.I)(a),(0,c.H)(a,1,1,e,t),null===a[0])return!0;if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);return(0,y.isSimple)(a[0])}))},n.functions.simplify=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,1,1,e,t),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);return(0,y.simplify)(a[0])}))},n.functions.convexhull=function(e,t){return n.standardFunctionAsync(e,t,((n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,1,1,e,t),null===a[0])return null;if(!(a[0]instanceof h.Z))throw new o.aV(e,o.rH.InvalidParameter,t);return(0,y.convexHull)(a[0])}))},n.functions.getuser=function(e,t){return n.standardFunctionAsync(e,t,(async(n,r,u)=>{(0,c.H)(u,0,2,e,t);let l=(0,c.K)(u[1],""),f=!0===l;if(l=!0===l||!1===l?"":(0,c.j)(l),0===u.length||u[0]instanceof a.Z){let n=null;n=e.services?.portal?e.services.portal:H.Z.getDefault(),u.length>0&&(n=(0,s._)(u[0],n));const t=await A(n,l,f);if(t){const n=JSON.parse(JSON.stringify(t));for(const e of["lastLogin","created","modified"])void 0!==n[e]&&null!==n[e]&&(n[e]=new Date(n[e]));return i.Z.convertObjectToArcadeDictionary(n,(0,c.N)(e))}return null}let d=null;if((0,c.u)(u[0])&&(d=u[0]),d){if(f=!1,l)return null;await d.load();const n=await d.getOwningSystemUrl();if(!n){if(!l){const n=await d.getIdentityUser();return n?i.Z.convertObjectToArcadeDictionary({username:n},(0,c.N)(e)):null}return null}let t=null;t=e.services?.portal?e.services.portal:H.Z.getDefault(),t=(0,s._)(new a.Z(n),t);const r=await A(t,l,f);if(r){const n=JSON.parse(JSON.stringify(r));for(const e of["lastLogin","created","modified"])void 0!==n[e]&&null!==n[e]&&(n[e]=new Date(n[e]));return i.Z.convertObjectToArcadeDictionary(n,(0,c.N)(e))}return null}throw new o.aV(e,o.rH.InvalidParameter,t)}))}),n.functions.nearestcoordinate=function(e,t){return n.standardFunctionAsync(e,t,(async(n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,2,2,e,t),!(a[0]instanceof h.Z||null===a[0]))throw new o.aV(e,o.rH.InvalidParameter,t);if(!(a[1]instanceof p.Z||null===a[1]))throw new o.aV(e,o.rH.InvalidParameter,t);if(null===a[0]||null===a[1])return null;const u=await(0,y.nearestCoordinate)(a[0],a[1]);return null===u?null:i.Z.convertObjectToArcadeDictionary({coordinate:u.coordinate,distance:u.distance,sideOfLine:0===u.distance?"straddle":u.isRightSide?"right":"left"},(0,c.N)(e),!1,!0)}))},n.functions.nearestvertex=function(e,t){return n.standardFunctionAsync(e,t,(async(n,r,a)=>{if(a=(0,c.I)(a),(0,c.H)(a,2,2,e,t),!(a[0]instanceof h.Z||null===a[0]))throw new o.aV(e,o.rH.InvalidParameter,t);if(!(a[1]instanceof p.Z||null===a[1]))throw new o.aV(e,o.rH.InvalidParameter,t);if(null===a[0]||null===a[1])return null;const u=await(0,y.nearestVertex)(a[0],a[1]);return null===u?null:i.Z.convertObjectToArcadeDictionary({coordinate:u.coordinate,distance:u.distance,sideOfLine:0===u.distance?"straddle":u.isRightSide?"right":"left"},(0,c.N)(e),!1,!0)}))}}},86727:function(n,e,t){t.d(e,{_:function(){return a}});var r=t(93968);function a(n,e){return null===n?e:new r.Z({url:n.field("url")})}},15917:function(n,e,t){t.r(e),t.d(e,{buffer:function(){return z},changeDefaultSpatialReferenceTolerance:function(){return X},clearDefaultSpatialReferenceTolerance:function(){return Y},clip:function(){return h},contains:function(){return m},convexHull:function(){return x},crosses:function(){return p},cut:function(){return y},densify:function(){return M},difference:function(){return N},disjoint:function(){return A},distance:function(){return g},equals:function(){return I},extendedSpatialReferenceInfo:function(){return w},flipHorizontal:function(){return E},flipVertical:function(){return k},generalize:function(){return C},geodesicArea:function(){return B},geodesicBuffer:function(){return O},geodesicDensify:function(){return W},geodesicLength:function(){return G},intersect:function(){return S},intersectLinesToPoints:function(){return Q},intersects:function(){return Z},isSimple:function(){return L},nearestCoordinate:function(){return D},nearestVertex:function(){return q},nearestVertices:function(){return J},offset:function(){return K},overlaps:function(){return V},planarArea:function(){return _},planarLength:function(){return U},relate:function(){return P},rotate:function(){return T},simplify:function(){return R},symmetricDifference:function(){return F},touches:function(){return H},union:function(){return b},within:function(){return v}});t(91957);var r=t(62517),a=t(67666),i=t(53736);function o(n){return Array.isArray(n)?n[0]?.spatialReference:n?.spatialReference}function u(n){return n?Array.isArray(n)?n.map(u):n.toJSON?n.toJSON():n:n}function c(n){return Array.isArray(n)?n.map((n=>(0,i.im)(n))):(0,i.im)(n)}let s;async function l(){return s||(s=(0,r.bA)("geometryEngineWorker",{strategy:"distributed"})),s}async function f(n,e){return(await l()).invoke("executeGEOperation",{operation:n,parameters:u(e)})}async function d(n,e){const t=await l();return Promise.all(t.broadcast("executeGEOperation",{operation:n,parameters:u(e)}))}function w(n){return f("extendedSpatialReferenceInfo",[n])}async function h(n,e){return c(await f("clip",[o(n),n,e]))}async function y(n,e){return c(await f("cut",[o(n),n,e]))}function m(n,e){return f("contains",[o(n),n,e])}function p(n,e){return f("crosses",[o(n),n,e])}function g(n,e,t){return f("distance",[o(n),n,e,t])}function I(n,e){return f("equals",[o(n),n,e])}function Z(n,e){return f("intersects",[o(n),n,e])}function H(n,e){return f("touches",[o(n),n,e])}function v(n,e){return f("within",[o(n),n,e])}function A(n,e){return f("disjoint",[o(n),n,e])}function V(n,e){return f("overlaps",[o(n),n,e])}function P(n,e,t){return f("relate",[o(n),n,e,t])}function L(n){return f("isSimple",[o(n),n])}async function R(n){return c(await f("simplify",[o(n),n]))}async function x(n,e=!1){return c(await f("convexHull",[o(n),n,e]))}async function N(n,e){return c(await f("difference",[o(n),n,e]))}async function F(n,e){return c(await f("symmetricDifference",[o(n),n,e]))}async function S(n,e){return c(await f("intersect",[o(n),n,e]))}async function b(n,e=null){const t=function(n,e){let t;return Array.isArray(n)?t=n:(t=[],t.push(n),null!=e&&t.push(e)),t}(n,e);return c(await f("union",[o(t),t]))}async function K(n,e,t,r,a,i){return c(await f("offset",[o(n),n,e,t,r,a,i]))}async function z(n,e,t,r=!1){const a=[o(n),n,e,t,r];return c(await f("buffer",a))}async function O(n,e,t,r,a,i){const u=[o(n),n,e,t,r,a,i];return c(await f("geodesicBuffer",u))}async function D(n,e,t=!0){const r=await f("nearestCoordinate",[o(n),n,e,t]);return{...r,coordinate:a.Z.fromJSON(r.coordinate)}}async function q(n,e){const t=await f("nearestVertex",[o(n),n,e]);return{...t,coordinate:a.Z.fromJSON(t.coordinate)}}async function J(n,e,t,r){return(await f("nearestVertices",[o(n),n,e,t,r])).map((n=>({...n,coordinate:a.Z.fromJSON(n.coordinate)})))}function j(n){return"xmin"in n?n.center:"x"in n?n:n.extent?.center}async function T(n,e,t){if(null==n)throw new $;const r=n.spatialReference;if(null==(t=t??j(n)))throw new $;const a=n.constructor.fromJSON(await f("rotate",[r,n,e,t]));return a.spatialReference=r,a}async function E(n,e){if(null==n)throw new $;const t=n.spatialReference;if(null==(e=e??j(n)))throw new $;const r=n.constructor.fromJSON(await f("flipHorizontal",[t,n,e]));return r.spatialReference=t,r}async function k(n,e){if(null==n)throw new $;const t=n.spatialReference;if(null==(e=e??j(n)))throw new $;const r=n.constructor.fromJSON(await f("flipVertical",[t,n,e]));return r.spatialReference=t,r}async function C(n,e,t,r){return c(await f("generalize",[o(n),n,e,t,r]))}async function M(n,e,t){return c(await f("densify",[o(n),n,e,t]))}async function W(n,e,t,r=0){return c(await f("geodesicDensify",[o(n),n,e,t,r]))}function _(n,e){return f("planarArea",[o(n),n,e])}function U(n,e){return f("planarLength",[o(n),n,e])}function B(n,e,t){return f("geodesicArea",[o(n),n,e,t])}function G(n,e,t){return f("geodesicLength",[o(n),n,e,t])}async function Q(n,e){return c(await f("intersectLinesToPoints",[o(n),n,e]))}async function X(n,e){await d("changeDefaultSpatialReferenceTolerance",[n,e])}async function Y(n){await d("clearDefaultSpatialReferenceTolerance",[n])}class $ extends Error{constructor(){super("Illegal Argument Exception")}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3043.4f021eb70dac10f91cb3.js b/docs/sentinel1-explorer/3043.4f021eb70dac10f91cb3.js new file mode 100644 index 00000000..ef1c4249 --- /dev/null +++ b/docs/sentinel1-explorer/3043.4f021eb70dac10f91cb3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3043],{42938:function(t,e,r){r.d(e,{Z:function(){return i}});class i{constructor(t){this._array=[],this._stride=t}get array(){return this._array}get index(){return 4*this._array.length/this._stride}get itemSize(){return this._stride}get sizeInBytes(){return 4*this._array.length}reset(){this.array.length=0}toBuffer(){return new Uint32Array(this._array).buffer}static i1616to32(t,e){return 65535&t|e<<16}static i8888to32(t,e,r,i){return 255&t|(255&e)<<8|(255&r)<<16|i<<24}static i8816to32(t,e,r){return 255&t|(255&e)<<8|r<<16}}},43405:function(t,e,r){var i,n,a;r.d(e,{Fr:function(){return a},_K:function(){return n},al:function(){return i}}),function(t){t[t.FILL=1]="FILL",t[t.LINE=2]="LINE",t[t.SYMBOL=3]="SYMBOL",t[t.CIRCLE=4]="CIRCLE"}(i||(i={})),function(t){t[t.BACKGROUND=0]="BACKGROUND",t[t.FILL=1]="FILL",t[t.OUTLINE=2]="OUTLINE",t[t.LINE=3]="LINE",t[t.ICON=4]="ICON",t[t.CIRCLE=5]="CIRCLE",t[t.TEXT=6]="TEXT",t[t.TILEINFO=7]="TILEINFO"}(n||(n={})),function(t){t[t.PAINTER_CHANGED=0]="PAINTER_CHANGED",t[t.LAYOUT_CHANGED=1]="LAYOUT_CHANGED",t[t.LAYER_CHANGED=2]="LAYER_CHANGED",t[t.LAYER_REMOVED=3]="LAYER_REMOVED",t[t.SPRITES_CHANGED=4]="SPRITES_CHANGED"}(a||(a={}))},18897:function(t,e,r){r.d(e,{Et:function(){return xt},sj:function(){return Ot},Le:function(){return St},_L:function(){return Bt},$L:function(){return Lt},gf:function(){return Ut},jG:function(){return Gt},nj:function(){return kt}});var i,n,a=r(24568),s=r(43405),o=r(93944),l=r(42938);!function(t){t[t.R8_SIGNED=0]="R8_SIGNED",t[t.R8_UNSIGNED=1]="R8_UNSIGNED",t[t.R16_SIGNED=2]="R16_SIGNED",t[t.R16_UNSIGNED=3]="R16_UNSIGNED",t[t.R8G8_SIGNED=4]="R8G8_SIGNED",t[t.R8G8_UNSIGNED=5]="R8G8_UNSIGNED",t[t.R16G16_SIGNED=6]="R16G16_SIGNED",t[t.R16G16_UNSIGNED=7]="R16G16_UNSIGNED",t[t.R8G8B8A8_SIGNED=8]="R8G8B8A8_SIGNED",t[t.R8G8B8A8_UNSIGNED=9]="R8G8B8A8_UNSIGNED",t[t.R8G8B8A8_COLOR=10]="R8G8B8A8_COLOR",t[t.R16G16B16A16_DASHARRAY=11]="R16G16B16A16_DASHARRAY",t[t.R16G16B16A16_PATTERN=12]="R16G16B16A16_PATTERN"}(i||(i={})),function(t){t[t.UNIFORM=0]="UNIFORM",t[t.DATA_DRIVEN=1]="DATA_DRIVEN",t[t.INTERPOLATED_DATA_DRIVEN=2]="INTERPOLATED_DATA_DRIVEN",t[t.UNUSED=3]="UNUSED"}(n||(n={}));var u=r(91907),c=r(41163);class h{constructor(t){this._locations=new Map,this._key=t}get key(){return this._key}get type(){return 7&this._key}defines(){return[]}getStride(){return this._layoutInfo||this._buildAttributesInfo(),this._stride}getAttributeLocations(){return 0===this._locations.size&&this._buildAttributesInfo(),this._locations}getLayoutInfo(){return this._layoutInfo||this._buildAttributesInfo(),this._layoutInfo}getEncodingInfos(){return this._propertyEncodingInfo||this._buildAttributesInfo(),this._propertyEncodingInfo}getUniforms(){return this._uniforms||this._buildAttributesInfo(),this._uniforms}getShaderHeader(){return this._shaderHeader||this._buildAttributesInfo(),this._shaderHeader}getShaderMain(){return this._shaderMain||this._buildAttributesInfo(),this._shaderMain}setDataUniforms(t,e,r,i,n){const a=this.getUniforms();for(const s of a){const{name:a,type:o,getValue:l}=s,u=l(r,e,i,n);if(null!==u)switch(o){case"float":t.setUniform1f(a,u);break;case"vec2":t.setUniform2fv(a,u);break;case"vec4":t.setUniform4fv(a,u)}}}encodeAttributes(t,e,r,n){const a=this.attributesInfo(),s=this.getEncodingInfos(),o=[];let l=0,u=0;for(const c of Object.keys(s)){const h=s[c],{type:p,precisionFactor:y,isLayout:f}=a[c],g=f?r.getLayoutProperty(c):r.getPaintProperty(c),_=g.interpolator?.getInterpolationRange(e);let d=0;for(const r of h){const{offset:a,bufferElementsToAdd:s}=r;if(s>0){for(let t=0;t4)i++,u={dataIndex:i,count:0,offset:0},4!==a&&(r[l]=u),t.push({location:-1,name:"a_data_"+i,count:a,type:e,normalized:s}),y=Math.ceil(Math.max(o/4,1));else{const e=t[u.dataIndex];e.count+=a,y=Math.ceil(Math.max(e.count*n/4,1))-Math.ceil(Math.max(u.offset/4,1))}c.push({dataIndex:u.dataIndex,offset:u.offset,bufferElementsToAdd:y}),u.offset+=o,u.count+=a}}for(const e of t)switch(e.type){case u.g.BYTE:case u.g.UNSIGNED_BYTE:e.count=4;break;case u.g.SHORT:case u.g.UNSIGNED_SHORT:e.count+=e.count%2}this._buildVertexBufferLayout(t);let l=0;const c=this._layoutInfo.geometry;for(const t of c)this._locations.set(t.name,l++);const p=this._layoutInfo.opacity;if(p)for(const t of p)this._locations.set(t.name,l++);this._buildShaderInfo(t,e),this._propertyEncodingInfo=e}_buildVertexBufferLayout(t){const e={},r=this.geometryInfo();let i=r[0].stride;if(0===t.length)e.geometry=r;else{const n=[];let a=i;for(const e of t)i+=p(e.type)*e.count;for(const t of r)n.push(new c.G(t.name,t.count,t.type,t.offset,i,t.normalized));for(const e of t)n.push(new c.G(e.name,e.count,e.type,a,i,e.normalized)),a+=p(e.type)*e.count;e.geometry=n}this.opacityInfo()&&(e.opacity=this.opacityInfo()),this._layoutInfo=e,this._stride=i}_buildShaderInfo(t,e){let r="\n",a="\n";const s=[];for(const e of t)r+=`attribute ${this._getType(e.count)} ${e.name};\n`;const o=this.attributes(),l=this.attributesInfo();let u=-1;for(const t of o){u++;const{name:o,type:c,precisionFactor:p,isLayout:f}=l[t],g=p&&1!==p?" * "+1/p:"",{bytesPerElement:_,count:d}=h._encodingInfo[c],m=t=>`a_data_${t.dataIndex}${y(d,t.offset,_)}`;switch(this.getAtributeState(u)){case n.UNIFORM:{const e=this._getType(d),n=`u_${o}`;s.push({name:n,type:e,getValue:(e,r,n,a)=>{const s=f?e.getLayoutValue(t,r):e.getPaintValue(t,r);if(c===i.R16G16B16A16_DASHARRAY){const t=e.getDashKey(s,e.getLayoutValue("line-cap",r)),i=a.getMosaicItemPosition(t,!1);if(null==i)return null;const{tl:n,br:o}=i;return[n[0],o[1],o[0],n[1]]}if(c===i.R16G16B16A16_PATTERN){const e=a.getMosaicItemPosition(s,!t.includes("line-"));if(null==e)return null;const{tl:r,br:i}=e;return[r[0],i[1],i[0],r[1]]}if(c===i.R8G8B8A8_COLOR){const t=s[3];return[t*s[0],t*s[1],t*s[2],t]}return s}}),r+=`uniform ${e} ${n};\n`,a+=`${e} ${o} = ${n};\n`}break;case n.DATA_DRIVEN:{const r=m(e[t][0]);a+=`${this._getType(d)} ${o} = ${r}${g};\n`}break;case n.INTERPOLATED_DATA_DRIVEN:{const i=`u_t_${o}`;s.push({name:i,type:"float",getValue:(e,r,i,n)=>(f?e.getLayoutProperty(t):e.getPaintProperty(t)).interpolator.interpolationUniformValue(i,r)}),r+=`uniform float ${i};\n`;const n=m(e[t][0]),l=m(e[t][1]);a+=`${this._getType(d)} ${o} = mix(${n}${g}, ${l}${g}, ${i});\n`}}}this._shaderHeader=r,this._shaderMain=a,this._uniforms=s}_bit(t){return(this._key&1<>t}_getType(t){switch(t){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4"}throw new Error("Invalid count")}_encodeColor(t){const e=255*t[3];return l.Z.i8888to32(t[0]*e,t[1]*e,t[2]*e,e)}_encodePattern(t,e,r){if(!r?.rect)return;const i=r.rect,n=r.width,a=r.height;e[t]=this._encodeShort(i.x+2,0),e[t]|=this._encodeShort(i.y+2+a,16),e[t+1]=this._encodeShort(i.x+2+n,0),e[t+1]|=this._encodeShort(i.y+2,16)}_encodeByte(t,e){return(255&t)<{switch(t){case u.g.FLOAT:case u.g.INT:case u.g.UNSIGNED_INT:return 4;case u.g.SHORT:case u.g.UNSIGNED_SHORT:return 2;case u.g.BYTE:case u.g.UNSIGNED_BYTE:return 1}},y=(t,e,r)=>{const i=e/r;if(1===t)switch(i){case 0:return".x";case 1:return".y";case 2:return".z";case 3:return".w"}else if(2===t)switch(i){case 0:return".xy";case 1:return".yz";case 2:return".zw"}else if(3===t)switch(i){case 0:return".xyz";case 1:return".yzw"}return""};class f extends h{constructor(t){super(t)}geometryInfo(){return f.GEOMETRY_LAYOUT}opacityInfo(){return null}attributes(){return f.ATTRIBUTES}attributesInfo(){return f.ATTRIBUTES_INFO}}f.ATTRIBUTES=[],f.GEOMETRY_LAYOUT=[new c.G("a_pos",2,u.g.BYTE,0,2)],f.ATTRIBUTES_INFO={};class g extends h{constructor(t){super(t)}geometryInfo(){return g.GEOMETRY_LAYOUT}opacityInfo(){return null}attributes(){return g.ATTRIBUTES}attributesInfo(){return g.ATTRIBUTES_INFO}}g.ATTRIBUTES=["circle-radius","circle-color","circle-opacity","circle-stroke-width","circle-stroke-color","circle-stroke-opacity","circle-blur"],g.GEOMETRY_LAYOUT=[new c.G("a_pos",2,u.g.SHORT,0,4)],g.ATTRIBUTES_INFO={"circle-radius":{name:"radius",type:i.R8_UNSIGNED},"circle-color":{name:"color",type:i.R8G8B8A8_COLOR},"circle-opacity":{name:"opacity",type:i.R8_UNSIGNED,precisionFactor:100},"circle-stroke-width":{name:"stroke_width",type:i.R8_UNSIGNED,precisionFactor:4},"circle-stroke-color":{name:"stroke_color",type:i.R8G8B8A8_COLOR},"circle-stroke-opacity":{name:"stroke_opacity",type:i.R8_UNSIGNED,precisionFactor:100},"circle-blur":{name:"blur",type:i.R8_UNSIGNED,precisionFactor:32}};class _ extends h{constructor(t){super(t)}geometryInfo(){return _.GEOMETRY_LAYOUT}opacityInfo(){return null}attributes(){return _.ATTRIBUTES}attributesInfo(){return _.ATTRIBUTES_INFO}}_.ATTRIBUTES=["fill-color","fill-opacity","fill-pattern"],_.GEOMETRY_LAYOUT=[new c.G("a_pos",2,u.g.SHORT,0,4)],_.ATTRIBUTES_INFO={"fill-color":{name:"color",type:i.R8G8B8A8_COLOR},"fill-opacity":{name:"opacity",type:i.R8_UNSIGNED,precisionFactor:100},"fill-pattern":{name:"tlbr",type:i.R16G16B16A16_PATTERN,isOptional:!0}};class d extends h{constructor(t,e){super(t),this._usefillColor=e}geometryInfo(){return d.GEOMETRY_LAYOUT}opacityInfo(){return null}attributes(){return this._usefillColor?d.ATTRIBUTES_FILL:d.ATTRIBUTES_OUTLINE}attributesInfo(){return this._usefillColor?d.ATTRIBUTES_INFO_FILL:d.ATTRIBUTES_INFO_OUTLINE}}d.ATTRIBUTES_OUTLINE=["fill-outline-color","fill-opacity"],d.ATTRIBUTES_FILL=["fill-color","fill-opacity"],d.GEOMETRY_LAYOUT=[new c.G("a_pos",2,u.g.SHORT,0,8),new c.G("a_offset",2,u.g.BYTE,4,8),new c.G("a_xnormal",2,u.g.BYTE,6,8)],d.ATTRIBUTES_INFO_OUTLINE={"fill-outline-color":{name:"color",type:i.R8G8B8A8_COLOR},"fill-opacity":{name:"opacity",type:i.R8_UNSIGNED,precisionFactor:100}},d.ATTRIBUTES_INFO_FILL={"fill-color":{name:"color",type:i.R8G8B8A8_COLOR},"fill-opacity":{name:"opacity",type:i.R8_UNSIGNED,precisionFactor:100}};class m extends h{constructor(t){super(t)}geometryInfo(){return m.GEOMETRY_LAYOUT}opacityInfo(){return null}attributes(){return m.ATTRIBUTES}attributesInfo(){return m.ATTRIBUTES_INFO}}m.ATTRIBUTES=["line-blur","line-color","line-gap-width","line-offset","line-opacity","line-width","line-pattern","line-dasharray"],m.GEOMETRY_LAYOUT=[new c.G("a_pos",2,u.g.SHORT,0,16),new c.G("a_extrude_offset",4,u.g.BYTE,4,16),new c.G("a_dir_normal",4,u.g.BYTE,8,16),new c.G("a_accumulatedDistance",2,u.g.UNSIGNED_SHORT,12,16)],m.ATTRIBUTES_INFO={"line-width":{name:"width",type:i.R8_UNSIGNED,precisionFactor:2},"line-gap-width":{name:"gap_width",type:i.R8_UNSIGNED,precisionFactor:2},"line-offset":{name:"offset",type:i.R8_SIGNED,precisionFactor:2},"line-color":{name:"color",type:i.R8G8B8A8_COLOR},"line-opacity":{name:"opacity",type:i.R8_UNSIGNED,precisionFactor:100},"line-blur":{name:"blur",type:i.R8_UNSIGNED,precisionFactor:4},"line-pattern":{name:"tlbr",type:i.R16G16B16A16_PATTERN,isOptional:!0},"line-dasharray":{name:"tlbr",type:i.R16G16B16A16_DASHARRAY,isOptional:!0}};const E=[new c.G("a_pos",2,u.g.SHORT,0,16),new c.G("a_vertexOffset",2,u.g.SHORT,4,16),new c.G("a_texAngleRange",4,u.g.UNSIGNED_BYTE,8,16),new c.G("a_levelInfo",4,u.g.UNSIGNED_BYTE,12,16)],w=[new c.G("a_opacityInfo",1,u.g.UNSIGNED_BYTE,0,1)];class I extends h{constructor(t){super(t)}geometryInfo(){return E}opacityInfo(){return w}attributes(){return I.ATTRIBUTES}attributesInfo(){return I.ATTRIBUTES_INFO}}I.ATTRIBUTES=["icon-color","icon-opacity","icon-halo-blur","icon-halo-color","icon-halo-width","icon-size"],I.ATTRIBUTES_INFO={"icon-color":{name:"color",type:i.R8G8B8A8_COLOR},"icon-opacity":{name:"opacity",type:i.R8_UNSIGNED,precisionFactor:100},"icon-halo-color":{name:"halo_color",type:i.R8G8B8A8_COLOR},"icon-halo-width":{name:"halo_width",type:i.R8_UNSIGNED,precisionFactor:4},"icon-halo-blur":{name:"halo_blur",type:i.R8_UNSIGNED,precisionFactor:4},"icon-size":{name:"size",type:i.R8_UNSIGNED,precisionFactor:32,isLayout:!0}};class T extends h{constructor(t){super(t)}geometryInfo(){return E}opacityInfo(){return w}attributes(){return T.ATTRIBUTES}attributesInfo(){return T.ATTRIBUTES_INFO}}T.ATTRIBUTES=["text-color","text-opacity","text-halo-blur","text-halo-color","text-halo-width","text-size"],T.ATTRIBUTES_INFO={"text-color":{name:"color",type:i.R8G8B8A8_COLOR},"text-opacity":{name:"opacity",type:i.R8_UNSIGNED,precisionFactor:100},"text-halo-color":{name:"halo_color",type:i.R8G8B8A8_COLOR},"text-halo-width":{name:"halo_width",type:i.R8_UNSIGNED,precisionFactor:4},"text-halo-blur":{name:"halo_blur",type:i.R8_UNSIGNED,precisionFactor:4},"text-size":{name:"size",type:i.R8_UNSIGNED,isLayout:!0}};var b=r(30936),R=r(39043),v=r(82584),D=r(50590);const N={kind:"null"},A={kind:"number"},L={kind:"string"},P={kind:"boolean"},x={kind:"color"},S={kind:"object"},U={kind:"value"};function G(t,e){return{kind:"array",itemType:t,n:e}}const O=[N,A,L,P,x,S,G(U)];function B(t){if("array"===t.kind){const e=B(t.itemType);return"number"==typeof t.n?`array<${e}, ${t.n}>`:"value"===t.itemType.kind?"array":`array<${e}>`}return t.kind}function k(t){if(null===t)return N;if("string"==typeof t)return L;if("boolean"==typeof t)return P;if("number"==typeof t)return A;if(t instanceof b.Z)return x;if(Array.isArray(t)){let e;for(const r of t){const t=k(r);if(e){if(e!==t){e=U;break}}else e=t}return G(e||U,t.length)}return"object"==typeof t?S:U}function F(t,e){if("array"===e.kind)return"array"===t.kind&&(0===t.n&&"value"===t.itemType.kind||F(t.itemType,e.itemType))&&("number"!=typeof e.n||e.n===t.n);if("value"===e.kind)for(const e of O)if(F(t,e))return!0;return e.kind===t.kind}function z(t){if(null===t)return"";const e=typeof t;return"string"===e?t:"number"===e||"boolean"===e?String(t):t instanceof b.Z?t.toString():JSON.stringify(t)}class V{constructor(t){this._parent=t,this._vars={}}add(t,e){this._vars[t]=e}get(t){return this._vars[t]?this._vars[t]:this._parent?this._parent.get(t):null}}class M{constructor(){this.type=U}static parse(t){if(t.length>1)throw new Error('"id" does not expect arguments');return new M}evaluate(t,e){return t?.id}}class C{constructor(){this.type=L}static parse(t){if(t.length>1)throw new Error('"geometry-type" does not expect arguments');return new C}evaluate(t,e){if(!t)return null;switch(t.type){case v.Vl.Point:return"Point";case v.Vl.LineString:return"LineString";case v.Vl.Polygon:return"Polygon";default:return null}}}class ${constructor(){this.type=S}static parse(t){if(t.length>1)throw new Error('"properties" does not expect arguments');return new $}evaluate(t,e){return t?.values}}class Y{constructor(){this.type=A}static parse(t){if(t.length>1)throw new Error('"zoom" does not expect arguments');return new Y}evaluate(t,e){return e}}class H{constructor(t,e,r){this._lhs=t,this._rhs=e,this._compare=r,this.type=P}static parse(t,e,r){if(3!==t.length&&4!==t.length)throw new Error(`"${t[0]}" expects 2 or 3 arguments`);if(4===t.length)throw new Error(`"${t[0]}" collator not supported`);return new H(Tt(t[1],e),Tt(t[2],e),r)}evaluate(t,e){return this._compare(this._lhs.evaluate(t,e),this._rhs.evaluate(t,e))}}class Z{constructor(t){this._arg=t,this.type=P}static parse(t,e){if(2!==t.length)throw new Error('"!" expects 1 argument');return new Z(Tt(t[1],e))}evaluate(t,e){return!this._arg.evaluate(t,e)}}class j{constructor(t){this._args=t,this.type=P}static parse(t,e){const r=[];for(let i=1;i1)throw new Error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1")}break;default:throw new Error(`"${t[0]}" unknown interpolation type "${n[0]}"`)}if(t.length%2!=1)throw new Error(`"${i}" expects an even number of arguments`);const a=Tt(t[2],e,A);let s;"interpolate-hcl"===i||"interpolate-lab"===i?s=x:r&&"value"!==r.kind&&(s=r);const o=[];for(let r=3;r=n)throw new Error(`"${i}" requires strictly ascending stop inputs`);const a=Tt(t[r+1],e,s);s||(s=a.type),o.push([n,a])}if(s&&s!==x&&s!==A&&("array"!==s.kind||s.itemType!==A))throw new Error(`"${i}" cannot interpolate type ${B(s)}`);return new Q(i,s,n,a,o)}evaluate(t,e){const r=this._stops;if(1===r.length)return r[0][1].evaluate(t,e);const i=this.input.evaluate(t,e);if(i<=r[0][0])return r[0][1].evaluate(t,e);if(i>=r[r.length-1][0])return r[r.length-1][1].evaluate(t,e);let n=0;for(;++n(0,o.sX)(t,c[e],l)));if("color"===this.type.kind&&u instanceof b.Z&&c instanceof b.Z){const t=new b.Z(u),e=new b.Z(c);return new b.Z([(0,o.sX)(t.r,e.r,l),(0,o.sX)(t.g,e.g,l),(0,o.sX)(t.b,e.b,l),(0,o.sX)(t.a,e.a,l)])}if("number"===this.type.kind&&"number"==typeof u&&"number"==typeof c)return(0,o.sX)(u,c,l);throw new Error(`"${this._operator}" cannot interpolate type ${B(this.type)}`)}if("interpolate-hcl"===this._operator){const t=(0,R.sJ)(u),e=(0,R.sJ)(c),r=e.h-t.h,i=(0,R.xr)({h:t.h+l*(r>180||r<-180?r-360*Math.round(r/360):r),c:(0,o.sX)(t.c,e.c,l),l:(0,o.sX)(t.l,e.l,l)});return new b.Z({a:(0,o.sX)(u.a,c.a,l),...i})}if("interpolate-lab"===this._operator){const t=(0,R.Y3)(u),e=(0,R.Y3)(c),r=(0,R.xr)({l:(0,o.sX)(t.l,e.l,l),a:(0,o.sX)(t.a,e.a,l),b:(0,o.sX)(t.b,e.b,l)});return new b.Z({a:(0,o.sX)(u.a,c.a,l),...r})}throw new Error(`Unexpected operator "${this._operator}"`)}interpolationUniformValue(t,e){const r=this._stops;if(1===r.length)return 0;if(t>=r[r.length-1][0])return 0;let i=0;for(;++i=r)return[r,r];let i=0;for(;++i1&&(n=1),n}static _exponentialInterpolationRatio(t,e,r,i){const n=i-r;if(0===n)return 0;const a=t-r;return 1===e?a/n:(e**a-1)/(e**n-1)}}class tt{constructor(t,e,r){this.type=t,this._input=e,this._stops=r}static parse(t,e){if(t.length<5)throw new Error('"step" expects at least 4 arguments');if(t.length%2!=1)throw new Error('"step" expects an even number of arguments');const r=Tt(t[1],e,A);let i;const n=[];n.push([-1/0,Tt(t[2],e)]);for(let r=3;r=a)throw new Error('"step" requires strictly ascending stop inputs');const s=Tt(t[r+1],e);i||(i=s.type),n.push([a,s])}return new tt(i,r,n)}evaluate(t,e){const r=this._stops;if(1===r.length)return r[0][1].evaluate(t,e);const i=this._input.evaluate(t,e);let n=0;for(;++n=i.length)throw new Error('"at" index out of bounds');if(r!==Math.floor(r))throw new Error('"at" index must be an integer');return i[r]}}class nt{constructor(t,e){this._key=t,this._obj=e,this.type=U}static parse(t,e){let r,i;switch(t.length){case 2:return r=Tt(t[1],e),new nt(r);case 3:return r=Tt(t[1],e),i=Tt(t[2],e),new nt(r,i);default:throw new Error('"get" expects 1 or 2 arguments')}}evaluate(t,e){const r=this._key.evaluate(t,e);return this._obj?this._obj.evaluate(t,e)[r]:t?.values[r]}}class at{constructor(t,e){this._key=t,this._obj=e,this.type=P}static parse(t,e){let r,i;switch(t.length){case 2:return r=Tt(t[1],e),new at(r);case 3:return r=Tt(t[1],e),i=Tt(t[2],e),new at(r,i);default:throw new Error('"has" expects 1 or 2 arguments')}}evaluate(t,e){const r=this._key.evaluate(t,e);return this._obj?r in this._obj.evaluate(t,e):!!t?.values[r]}}class st{constructor(t,e){this._key=t,this._vals=e,this.type=P}static parse(t,e){if(3!==t.length)throw new Error('"in" expects 2 arguments');return new st(Tt(t[1],e),Tt(t[2],e))}evaluate(t,e){const r=this._key.evaluate(t,e);return this._vals.evaluate(t,e).includes(r)}}class ot{constructor(t,e,r){this._item=t,this._array=e,this._from=r,this.type=A}static parse(t,e){if(t.length<3||t.length>4)throw new Error('"index-of" expects 3 or 4 arguments');const r=Tt(t[1],e),i=Tt(t[2],e);if(4===t.length){const n=Tt(t[3],e,A);return new ot(r,i,n)}return new ot(r,i)}evaluate(t,e){const r=this._item.evaluate(t,e),i=this._array.evaluate(t,e);if(this._from){const n=this._from.evaluate(t,e);if(n!==Math.floor(n))throw new Error('"index-of" index must be an integer');return i.indexOf(r,n)}return i.indexOf(r)}}class lt{constructor(t){this._arg=t,this.type=A}static parse(t,e){if(2!==t.length)throw new Error('"length" expects 2 arguments');const r=Tt(t[1],e);return new lt(r)}evaluate(t,e){const r=this._arg.evaluate(t,e);if("string"==typeof r)return r.length;if(Array.isArray(r))return r.length;throw new Error('"length" expects string or array')}}class ut{constructor(t,e,r,i){this.type=t,this._array=e,this._from=r,this._to=i}static parse(t,e){if(t.length<3||t.length>4)throw new Error('"slice" expects 2 or 3 arguments');const r=Tt(t[1],e),i=Tt(t[2],e,A);if(i.type!==A)throw new Error('"slice" index must return a number');if(4===t.length){const n=Tt(t[3],e,A);if(n.type!==A)throw new Error('"slice" index must return a number');return new ut(r.type,r,i,n)}return new ut(r.type,r,i)}evaluate(t,e){const r=this._array.evaluate(t,e);if(!Array.isArray(r)&&"string"!=typeof r)throw new Error('"slice" input must be an array or a string');const i=this._from.evaluate(t,e);if(i<0||i>=r.length)throw new Error('"slice" index out of bounds');if(i!==Math.floor(i))throw new Error('"slice" index must be an integer');if(this._to){const n=this._to.evaluate(t,e);if(n<0||n>=r.length)throw new Error('"slice" index out of bounds');if(n!==Math.floor(n))throw new Error('"slice" index must be an integer');return r.slice(i,n)}return r.slice(i)}}class ct{constructor(){this.type=P}static parse(t){if(1!==t.length)throw new Error('"has-id" expects no arguments');return new ct}evaluate(t,e){return void 0!==t?.id}}class ht{constructor(t,e){this._args=t,this._calculate=e,this.type=A}static parse(t,e,r){const i=t.slice(1).map((t=>Tt(t,e)));return new ht(i,r)}evaluate(t,e){let r;return this._args&&(r=this._args.map((r=>r.evaluate(t,e)))),this._calculate(r)}}class pt{constructor(t,e){this._args=t,this._calculate=e,this.type=A}static parse(t,e){const r=t.slice(1).map((t=>Tt(t,e)));return new pt(r,pt.ops[t[0]])}evaluate(t,e){let r;return this._args&&(r=this._args.map((r=>r.evaluate(t,e)))),this._calculate(r)}}pt.ops={abs:t=>Math.abs(t[0]),acos:t=>Math.acos(t[0]),asin:t=>Math.asin(t[0]),atan:t=>Math.atan(t[0]),ceil:t=>Math.ceil(t[0]),cos:t=>Math.cos(t[0]),e:()=>Math.E,floor:t=>Math.floor(t[0]),ln:t=>Math.log(t[0]),ln2:()=>Math.LN2,log10:t=>Math.log(t[0])/Math.LN10,log2:t=>Math.log(t[0])/Math.LN2,max:t=>Math.max(...t),min:t=>Math.min(...t),pi:()=>Math.PI,round:t=>Math.round(t[0]),sin:t=>Math.sin(t[0]),sqrt:t=>Math.sqrt(t[0]),tan:t=>Math.tan(t[0])};class yt{constructor(t){this._args=t,this.type=L}static parse(t,e){return new yt(t.slice(1).map((t=>Tt(t,e))))}evaluate(t,e){return this._args.map((r=>r.evaluate(t,e))).join("")}}class ft{constructor(t,e){this._arg=t,this._calculate=e,this.type=L}static parse(t,e){if(2!==t.length)throw new Error(`${t[0]} expects 1 argument`);const r=Tt(t[1],e);return new ft(r,ft.ops[t[0]])}evaluate(t,e){return this._calculate(this._arg.evaluate(t,e))}}ft.ops={downcase:t=>t.toLowerCase(),upcase:t=>t.toUpperCase()};class gt{constructor(t){this._args=t,this.type=x}static parse(t,e){if(4!==t.length)throw new Error('"rgb" expects 3 arguments');const r=t.slice(1).map((t=>Tt(t,e)));return new gt(r)}evaluate(t,e){const r=this._validate(this._args[0].evaluate(t,e)),i=this._validate(this._args[1].evaluate(t,e)),n=this._validate(this._args[2].evaluate(t,e));return new b.Z({r:r,g:i,b:n})}_validate(t){if("number"!=typeof t||t<0||t>255)throw new Error(`${t}: invalid color component`);return Math.round(t)}}class _t{constructor(t){this._args=t,this.type=x}static parse(t,e){if(5!==t.length)throw new Error('"rgba" expects 4 arguments');const r=t.slice(1).map((t=>Tt(t,e)));return new _t(r)}evaluate(t,e){const r=this._validate(this._args[0].evaluate(t,e)),i=this._validate(this._args[1].evaluate(t,e)),n=this._validate(this._args[2].evaluate(t,e)),a=this._validateAlpha(this._args[3].evaluate(t,e));return new b.Z({r:r,g:i,b:n,a:a})}_validate(t){if("number"!=typeof t||t<0||t>255)throw new Error(`${t}: invalid color component`);return Math.round(t)}_validateAlpha(t){if("number"!=typeof t||t<0||t>1)throw new Error(`${t}: invalid alpha color component`);return t}}class dt{constructor(t){this._color=t,this.type=G(A,4)}static parse(t,e){if(2!==t.length)throw new Error('"to-rgba" expects 1 argument');const r=Tt(t[1],e);return new dt(r)}evaluate(t,e){return new b.Z(this._color.evaluate(t,e)).toRgba()}}class mt{constructor(t,e){this.type=t,this._args=e}static parse(t,e){const r=t[0];if(t.length<2)throw new Error(`${r} expects at least one argument`);let i,n=1;if("array"===r){if(t.length>2){switch(t[1]){case"string":i=L;break;case"number":i=A;break;case"boolean":i=P;break;default:throw new Error('"array" type argument must be string, number or boolean')}n++}else i=U;let e;if(t.length>3){if(e=t[2],null!==e&&("number"!=typeof e||e<0||e!==Math.floor(e)))throw new Error('"array" length argument must be a positive integer literal');n++}i=G(i,e)}else switch(r){case"string":i=L;break;case"number":i=A;break;case"boolean":i=P;break;case"object":i=S}const a=[];for(;nt!==e))}},"<":class extends H{static parse(t,e){return H.parse(t,e,((t,e)=>tt<=e))}},"==":class extends H{static parse(t,e){return H.parse(t,e,((t,e)=>t===e))}},">":class extends H{static parse(t,e){return H.parse(t,e,((t,e)=>t>e))}},">=":class extends H{static parse(t,e){return H.parse(t,e,((t,e)=>t>=e))}},all:j,any:K,case:q,coalesce:W,match:J,within:null,interpolate:Q,"interpolate-hcl":Q,"interpolate-lab":Q,step:tt,let:et,var:rt,concat:yt,downcase:ft,"is-supported-script":null,"resolved-locale":null,upcase:ft,rgb:gt,rgba:_t,"to-rgba":dt,"-":class extends ht{static parse(t,e){switch(t.length){case 2:return ht.parse(t,e,(t=>-t[0]));case 3:return ht.parse(t,e,(t=>t[0]-t[1]));default:throw new Error('"-" expects 1 or 2 arguments')}}},"*":class extends ht{static parse(t,e){return ht.parse(t,e,(t=>{let e=1;for(const r of t)e*=r;return e}))}},"/":class extends ht{static parse(t,e){if(3===t.length)return ht.parse(t,e,(t=>t[0]/t[1]));throw new Error('"/" expects 2 arguments')}},"%":class extends ht{static parse(t,e){if(3===t.length)return ht.parse(t,e,(t=>t[0]%t[1]));throw new Error('"%" expects 2 arguments')}},"^":class extends ht{static parse(t,e){if(3===t.length)return ht.parse(t,e,(t=>t[0]**t[1]));throw new Error('"^" expects 1 or 2 arguments')}},"+":class extends ht{static parse(t,e){return ht.parse(t,e,(t=>{let e=0;for(const r of t)e+=r;return e}))}},abs:pt,acos:pt,asin:pt,atan:pt,ceil:pt,cos:pt,e:pt,floor:pt,ln:pt,ln2:pt,log10:pt,log2:pt,max:pt,min:pt,pi:pt,round:pt,sin:pt,sqrt:pt,tan:pt,zoom:Y,"heatmap-density":null,"has-id":ct,none:X};class Rt{constructor(t){this._expression=t}filter(t,e){if(!this._expression)return!0;try{return this._expression.evaluate(t,e)}catch(t){return!0}}static createFilter(t){if(!t)return null;this.isLegacyFilter(t)&&(t=this.convertLegacyFilter(t));try{const e=Tt(t,null,P);return new Rt(e)}catch(t){return null}}static isLegacyFilter(t){if(!Array.isArray(t))return!0;if(0===t.length)return!0;switch(t[0]){case"==":case"!=":case">":case"<":case">=":case"<=":return 3===t.length&&"string"==typeof t[1]&&!Array.isArray(t[2]);case"in":return t.length>=3&&"string"==typeof t[1]&&!Array.isArray(t[2]);case"!in":case"none":case"!has":return!0;case"any":case"all":for(let e=1;e":case"<":case">=":case"<=":return Rt.convertComparison(e,t[1],t[2]);case"in":return Rt.convertIn(t[1],t.slice(2));case"!in":return Rt.negate(Rt.convertIn(t[1],t.slice(2)));case"any":case"all":case"none":return Rt.convertCombining(e,t.slice(1));case"has":return Rt.convertHas(t[1]);case"!has":return Rt.negate(Rt.convertHas(t[1]));default:throw new Error("Unexpected legacy filter.")}}static convertComparison(t,e,r){switch(e){case"$type":return[t,["geometry-type"],r];case"$id":return[t,["id"],r];default:return[t,["get",e],r]}}static convertIn(t,e){switch(t){case"$type":return["in",["geometry-type"],["literal",e]];case"$id":return["in",["id"],["literal",e]];default:return["in",["get",t],["literal",e]]}}static convertHas(t){switch(t){case"$type":return!0;case"$id":return["has-id"];default:return["has",t]}}static convertCombining(t,e){return[t].concat(e.map(this.convertLegacyFilter))}static negate(t){return["!",t]}}var vt=r(61296);class Dt{constructor(t,e){let r;switch(this.isDataDriven=!1,this.interpolator=null,t.type){case"number":case"color":r=!0;break;case"array":r="number"===t.value;break;default:r=!1}if(null==e&&(e=t.default),Array.isArray(e)&&e.length>0&&bt[e[0]]){const r={number:A,color:x,string:L,boolean:P,enum:L};try{const i=Tt(e,null,"array"===t.type?G(r[t.value]||U,t.length):r[t.type]);this.getValue=this._buildExpression(i,t),this.isDataDriven=!0,i instanceof Q&&i.input instanceof Y&&(this.interpolator=i)}catch(e){this.getValue=this._buildSimple(t.default)}return}r&&"interval"===e.type&&(r=!1);const i=e?.stops&&e.stops.length>0;if(i)for(const r of e.stops)r[1]=this._validate(r[1],t);if(this.isDataDriven=!!e&&!!e.property,this.isDataDriven)if(void 0!==e.default&&(e.default=this._validate(e.default,t)),i)switch(e.type){case"identity":this.getValue=this._buildIdentity(e,t);break;case"categorical":this.getValue=this._buildCategorical(e,t);break;default:this.getValue=r?this._buildInterpolate(e,t):this._buildInterval(e,t)}else this.getValue=this._buildIdentity(e,t);else i?this.getValue=r?this._buildZoomInterpolate(e):this._buildZoomInterval(e):(e=this._validate(e,t),this.getValue=this._buildSimple(e))}_validate(t,e){if("number"===e.type){if(null!=e.minimum&&te.maximum)return e.maximum}else"color"===e.type?t=Dt._parseColor(t):"enum"===e.type?"string"==typeof t&&(t=e.values.indexOf(t)):"array"===e.type&&"enum"===e.value?t=t.map((t=>"string"==typeof t?e.values.indexOf(t):t)):"string"===e.type&&(t=z(t));return t}_buildSimple(t){return()=>t}_buildExpression(t,e){return(r,i)=>{try{const n=t.evaluate(i,r);return void 0===n?e.default:this._validate(n,e)}catch(t){return e.default}}}_buildIdentity(t,e){return(r,i)=>{let n;return i&&(n=i.values[t.property]),void 0!==n&&(n=this._validate(n,e)),null!=n?n:void 0!==t.default?t.default:e.default}}_buildCategorical(t,e){return(r,i)=>{let n;return i&&(n=i.values[t.property]),n=this._categorical(n,t.stops),void 0!==n?n:void 0!==t.default?t.default:e.default}}_buildInterval(t,e){return(r,i)=>{let n;return i&&(n=i.values[t.property]),"number"==typeof n?this._interval(n,t.stops):void 0!==t.default?t.default:e.default}}_buildInterpolate(t,e){return(r,i)=>{let n;return i&&(n=i.values[t.property]),"number"==typeof n?this._interpolate(n,t.stops,t.base||1):void 0!==t.default?t.default:e.default}}_buildZoomInterpolate(t){return e=>this._interpolate(e,t.stops,t.base||1)}_buildZoomInterval(t){return e=>this._interval(e,t.stops)}_categorical(t,e){const r=e.length;for(let i=0;ithis._create(t,e,r))).filter((t=>!!t)),this.layers)for(let t=0;t=this.layers.length?null:this.layers[t].id}getStyleLayerByUID(t){return this._uidToLayer.get(t)??null}getStyleLayerIndex(t){const e=this._layerByName[t];return e?this.layers.indexOf(e):-1}setStyleLayer(t,e){if(!t?.id)return;const r=this._style;null!=e&&e>=this.layers.length&&(e=this.layers.length-1);let i,n=!0;const s=this._layerByName[t.id];if(s){const o=this.layers.indexOf(s);e||(e=o),e===o?(n=!1,i=a._recreateLayer(t,s),this.layers[e]=i,r.layers[e]=t):(this.layers.splice(o,1),r.layers.splice(o,1),i=this._create(t,e,this.layers),this.layers.splice(e,0,i),r.layers.splice(e,0,t))}else i=this._create(t,e,this.layers),!e||e>=this.layers.length?(this.layers.push(i),r.layers.push(t)):(this.layers.splice(e,0,i),r.layers.splice(e,0,t));this._layerByName[t.id]=i,this._uidToLayer.set(i.uid,i),n&&this._recomputeZValues(),this._identifyRefLayers()}getStyleLayer(t){const e=this._layerByName[t];return e?{type:e.typeName,id:e.id,source:e.source,"source-layer":e.sourceLayer,minzoom:e.minzoom,maxzoom:e.maxzoom,filter:e.filter,layout:e.layout,paint:e.paint}:null}deleteStyleLayer(t){const e=this._layerByName[t];if(e){delete this._layerByName[t],this._uidToLayer.delete(e.uid);const r=this.layers.indexOf(e);this.layers.splice(r,1),this._style.layers.splice(r,1),this._recomputeZValues(),this._identifyRefLayers()}}getLayerById(t){return this._layerByName[t]}getLayoutProperties(t){const e=this._layerByName[t];return e?e.layout:null}getPaintProperties(t){const e=this._layerByName[t];return e?e.paint:null}setPaintProperties(t,e){const r=this._layerByName[t];if(!r)return;const i={type:r.typeName,id:r.id,source:r.source,"source-layer":r.sourceLayer,minzoom:r.minzoom,maxzoom:r.maxzoom,filter:r.filter,layout:r.layout,paint:e},n=a._recreateLayer(i,r),s=this.layers.indexOf(r);this.layers[s]=n,this._style.layers[s].paint=e,this._layerByName[r.id]=n,this._uidToLayer.set(r.uid,n)}setLayoutProperties(t,e){const r=this._layerByName[t];if(!r)return;const i={type:r.typeName,id:r.id,source:r.source,"source-layer":r.sourceLayer,minzoom:r.minzoom,maxzoom:r.maxzoom,filter:r.filter,layout:e,paint:r.paint},n=a._recreateLayer(i,r),s=this.layers.indexOf(r);this.layers[s]=n,this._style.layers[s].layout=e,this._layerByName[r.id]=n,this._uidToLayer.set(r.uid,n)}setStyleLayerVisibility(t,e){const r=this._layerByName[t];if(!r)return;const i=r.layout||{};i.visibility=e;const n={type:r.typeName,id:r.id,source:r.source,"source-layer":r.sourceLayer,minzoom:r.minzoom,maxzoom:r.maxzoom,filter:r.filter,layout:i,paint:r.paint},s=a._recreateLayer(n,r),o=this.layers.indexOf(r);this.layers[o]=s,this._style.layers[o].layout=i,this._layerByName[r.id]=s,this._uidToLayer.set(r.uid,s)}getStyleLayerVisibility(t){const e=this._layerByName[t];if(!e)return"none";const r=e.layout;return r?.visibility??"visible"}_recomputeZValues(){const t=this.layers,e=1/(t.length+1);for(let r=0;rt.keye.key?1:0));const n=t.length;for(let a=0;at(e,s)))}}},24778:function(t,e,s){s.d(e,{b:function(){return E}});var i=s(70375),r=s(39994),n=s(13802),a=s(78668),l=s(14266),o=s(88013),h=s(64429),u=s(91907),c=s(18567),_=s(71449),f=s(80479);class d{constructor(t,e,s){this._texture=null,this._lastTexture=null,this._fbos={},this.texelSize=4;const{buffer:i,pixelType:r,textureOnly:n}=t,a=(0,h.UK)(r);this.blockIndex=s,this.pixelType=r,this.size=e,this.textureOnly=n,n||(this.data=new a(i)),this._resetRange()}destroy(){this._texture?.dispose();for(const t in this._fbos){const e=this._fbos[t];e&&("0"===t&&e.detachColorTexture(),e.dispose()),this._fbos[t]=null}this._texture=null}get _textureDesc(){const t=new f.X;return t.wrapMode=u.e8.CLAMP_TO_EDGE,t.samplingMode=u.cw.NEAREST,t.dataType=this.pixelType,t.width=this.size,t.height=this.size,t}setData(t,e,s){const i=(0,o.jL)(t),r=this.data,n=i*this.texelSize+e;!r||n>=r.length||(r[n]=s,this.dirtyStart=Math.min(this.dirtyStart,i),this.dirtyEnd=Math.max(this.dirtyEnd,i))}getData(t,e){if(null==this.data)return null;const s=(0,o.jL)(t)*this.texelSize+e;return!this.data||s>=this.data.length?null:this.data[s]}getTexture(t){return this._texture??this._initTexture(t)}getFBO(t,e=0){if(!this._fbos[e]){const s=0===e?this.getTexture(t):this._textureDesc;this._fbos[e]=new c.X(t,s)}return this._fbos[e]}get hasDirty(){const t=this.dirtyStart;return this.dirtyEnd>=t}updateTexture(t,e){try{const e=this.dirtyStart,s=this.dirtyEnd;if(!this.hasDirty)return;(0,r.Z)("esri-2d-update-debug"),this._resetRange();const a=this.data.buffer,l=this.getTexture(t),o=4,u=(e-e%this.size)/this.size,c=(s-s%this.size)/this.size,_=u,f=this.size,d=c,g=u*this.size*o,p=(f+d*this.size)*o-g,E=(0,h.UK)(this.pixelType),b=new E(a,g*E.BYTES_PER_ELEMENT,p),F=this.size,R=d-_+1;if(R>this.size)return void n.Z.getLogger("esri.views.2d.engine.webgl.AttributeStoreView").error(new i.Z("mapview-webgl","Out-of-bounds index when updating AttributeData"));l.updateData(0,0,_,F,R,b)}catch(t){}}update(t){const{data:e,start:s,end:i}=t;if(null!=e&&null!=this.data){const i=this.data,r=s*this.texelSize;for(let s=0;snull!=t?new d(t,this.size,e):null));else for(let t=0;t{(0,r.Z)("esri-2d-update-debug")})),this._version=t.version,this._pendingAttributeUpdates.push({inner:t,resolver:e}),(0,r.Z)("esri-2d-update-debug")}get currentEpoch(){return this._epoch}update(){if(this._locked)return;const t=this._pendingAttributeUpdates;this._pendingAttributeUpdates=[];for(const{inner:e,resolver:s}of t){const{blockData:t,initArgs:i,sendUpdateEpoch:n,version:a}=e;(0,r.Z)("esri-2d-update-debug"),this._version=a,this._epoch=n,null!=i&&this._initialize(i);const l=this._data;for(let e=0;et.destroy())),this.removeAllChildren(),this.attributeView.destroy()}doRender(t){t.context.capabilities.enable("textureFloat"),super.doRender(t)}createRenderParams(t){const e=super.createRenderParams(t);return e.attributeView=this.attributeView,e.instanceStore=this._instanceStore,e.statisticsByLevel=this._statisticsByLevel,e}}},70179:function(t,e,s){s.d(e,{Z:function(){return h}});var i=s(39994),r=s(38716),n=s(10994),a=s(22598),l=s(27946);const o=(t,e)=>t.key.level-e.key.level!=0?t.key.level-e.key.level:t.key.row-e.key.row!=0?t.key.row-e.key.row:t.key.col-e.key.col;class h extends n.Z{constructor(t){super(),this._tileInfoView=t}renderChildren(t){this.sortChildren(o),this.setStencilReference(t),super.renderChildren(t)}createRenderParams(t){const{state:e}=t,s=super.createRenderParams(t);return s.requiredLevel=this._tileInfoView.getClosestInfoForScale(e.scale).level,s.displayLevel=this._tileInfoView.tileInfo.scaleToZoom(e.scale),s}prepareRenderPasses(t){const e=super.prepareRenderPasses(t);return e.push(t.registerRenderPass({name:"stencil",brushes:[a.Z],drawPhase:r.jx.DEBUG|r.jx.MAP|r.jx.HIGHLIGHT|r.jx.LABEL,target:()=>this.getStencilTarget()})),(0,i.Z)("esri-tiles-debug")&&e.push(t.registerRenderPass({name:"tileInfo",brushes:[l.Z],drawPhase:r.jx.DEBUG,target:()=>this.children})),e}getStencilTarget(){return this.children}setStencilReference(t){let e=1;for(const t of this.children)t.stencilRef=e++}}},16699:function(t,e,s){s.d(e,{o:function(){return r}});var i=s(77206);class r{constructor(t,e,s,i,r){this._instanceId=t,this.techniqueRef=e,this._meshWriterName=s,this._input=i,this.optionalAttributes=r}get instanceId(){return(0,i.G)(this._instanceId)}createMeshInfo(t){return{id:this._instanceId,meshWriterName:this._meshWriterName,options:t,optionalAttributes:this.optionalAttributes}}getInput(){return this._input}setInput(t){this._input=t}}},3316:function(t,e,s){s.d(e,{s:function(){return l}});var i=s(74580),r=s(73353);const n=t=>{let e="";e+=t[0].toUpperCase();for(let s=1;s{const e={};for(const s in t)e[n(s)]=t[s];return(0,r.K)(e)},l=(t,e,s,r)=>{const n=t+t.substring(t.lastIndexOf("/")),l=e+e.substring(e.lastIndexOf("/")),o=a(r);return{attributes:s,shaders:{vertexShader:o+(0,i.w)(`${n}.vert`),fragmentShader:o+(0,i.w)(`${l}.frag`)}}}},81110:function(t,e,s){s.d(e,{K:function(){return S}});var i=s(61681),r=s(24778),n=s(38716),a=s(16699),l=s(56144),o=s(77206);let h=0;function u(t,e,s){return new a.o((0,o.W)(h++),t,t.meshWriter.name,e,s)}const c={geometry:{visualVariableColor:null,visualVariableOpacity:null,visualVariableSizeMinMaxValue:null,visualVariableSizeScaleStops:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null,visualVariableRotation:null}};class _{constructor(){this.instances={fill:u(l.k2.fill,c,{zoomRange:!0}),marker:u(l.k2.marker,c,{zoomRange:!0}),line:u(l.k2.line,c,{zoomRange:!0}),text:u(l.k2.text,c,{zoomRange:!0,referenceSymbol:!1,clipAngle:!1}),complexFill:u(l.k2.complexFill,c,{zoomRange:!0}),texturedLine:u(l.k2.texturedLine,c,{zoomRange:!0})},this._instancesById=Object.values(this.instances).reduce(((t,e)=>(t.set(e.instanceId,e),t)),new Map)}getInstance(t){return this._instancesById.get(t)}}var f=s(46332),d=s(38642),g=s(45867),p=s(17703),E=s(29927),b=s(51118),F=s(64429),R=s(78951),m=s(91907),T=s(29620);const x=Math.PI/180;class B extends b.s{constructor(t){super(),this._program=null,this._vao=null,this._vertexBuffer=null,this._indexBuffer=null,this._dvsMat3=(0,d.Ue)(),this._localOrigin={x:0,y:0},this._getBounds=t}destroy(){this._vao&&(this._vao.dispose(),this._vao=null,this._vertexBuffer=null,this._indexBuffer=null),this._program=(0,i.M2)(this._program)}doRender(t){const{context:e}=t,s=this._getBounds();if(s.length<1)return;this._createShaderProgram(e),this._updateMatricesAndLocalOrigin(t),this._updateBufferData(e,s),e.setBlendingEnabled(!0),e.setDepthTestEnabled(!1),e.setStencilWriteMask(0),e.setStencilTestEnabled(!1),e.setBlendFunction(m.zi.ONE,m.zi.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0);const i=this._program;e.bindVAO(this._vao),e.useProgram(i),i.setUniformMatrix3fv("u_dvsMat3",this._dvsMat3),e.gl.lineWidth(1),e.drawElements(m.MX.LINES,8*s.length,m.g.UNSIGNED_INT,0),e.bindVAO()}_createTransforms(){return{displayViewScreenMat3:(0,d.Ue)()}}_createShaderProgram(t){if(this._program)return;this._program=t.programCache.acquire("precision highp float;\n uniform mat3 u_dvsMat3;\n\n attribute vec2 a_position;\n\n void main() {\n mediump vec3 pos = u_dvsMat3 * vec3(a_position, 1.0);\n gl_Position = vec4(pos.xy, 0.0, 1.0);\n }","precision mediump float;\n void main() {\n gl_FragColor = vec4(0.75, 0.0, 0.0, 0.75);\n }",A().attributes)}_updateMatricesAndLocalOrigin(t){const{state:e}=t,{displayMat3:s,size:i,resolution:r,pixelRatio:n,rotation:a,viewpoint:l}=e,o=x*a,{x:h,y:u}=l.targetGeometry,c=(0,E.or)(h,e.spatialReference);this._localOrigin.x=c,this._localOrigin.y=u;const _=n*i[0],d=n*i[1],b=r*_,F=r*d,R=(0,f.yR)(this._dvsMat3);(0,f.Jp)(R,R,s),(0,f.Iu)(R,R,(0,g.al)(_/2,d/2)),(0,f.bA)(R,R,(0,p.al)(i[0]/b,-d/F,1)),(0,f.U1)(R,R,-o)}_updateBufferData(t,e){const{x:s,y:i}=this._localOrigin,r=8*e.length,n=new Float32Array(r),a=new Uint32Array(8*e.length);let l=0,o=0;for(const t of e)t&&(n[2*l]=t[0]-s,n[2*l+1]=t[1]-i,n[2*l+2]=t[0]-s,n[2*l+3]=t[3]-i,n[2*l+4]=t[2]-s,n[2*l+5]=t[3]-i,n[2*l+6]=t[2]-s,n[2*l+7]=t[1]-i,a[o]=l+0,a[o+1]=l+3,a[o+2]=l+3,a[o+3]=l+2,a[o+4]=l+2,a[o+5]=l+1,a[o+6]=l+1,a[o+7]=l+0,l+=4,o+=8);if(this._vertexBuffer?this._vertexBuffer.setData(n.buffer):this._vertexBuffer=R.f.createVertex(t,m.l1.DYNAMIC_DRAW,n.buffer),this._indexBuffer?this._indexBuffer.setData(a):this._indexBuffer=R.f.createIndex(t,m.l1.DYNAMIC_DRAW,a),!this._vao){const e=A();this._vao=new T.U(t,e.attributes,e.bufferLayouts,{geometry:this._vertexBuffer},this._indexBuffer)}}}const A=()=>(0,F.cM)("bounds",{geometry:[{location:0,name:"a_position",count:2,type:m.g.FLOAT}]});class S extends r.b{constructor(t){super(t),this._instanceStore=new _,this.checkHighlight=()=>!0}destroy(){super.destroy(),this._boundsRenderer=(0,i.SC)(this._boundsRenderer)}get instanceStore(){return this._instanceStore}enableRenderingBounds(t){this._boundsRenderer=new B(t),this.requestRender()}get hasHighlight(){return this.checkHighlight()}onTileData(t,e){t.onMessage(e),this.contains(t)||this.addChild(t),this.requestRender()}_renderChildren(t,e){t.selection=e;for(const e of this.children){if(!e.visible)continue;const s=e.getDisplayList(t.drawPhase,this._instanceStore,n.gl.STRICT_ORDER);s?.render(t)}}}},68114:function(t,e,s){s.d(e,{Z:function(){return a}});var i=s(38716),r=s(81110),n=s(41214);class a extends r.K{renderChildren(t){for(const e of this.children)e.setTransform(t.state);if(super.renderChildren(t),this.attributeView.update(),this.children.some((t=>t.hasData))){switch(t.drawPhase){case i.jx.MAP:this._renderChildren(t,i.Xq.All);break;case i.jx.HIGHLIGHT:this.hasHighlight&&this._renderHighlight(t)}this._boundsRenderer&&this._boundsRenderer.doRender(t)}}_renderHighlight(t){(0,n.P9)(t,!1,(t=>{this._renderChildren(t,i.Xq.Highlight)}))}}},18636:function(t,e,s){s.d(e,{G:function(){return n}});var i=s(22445),r=s(69609);class n{constructor(t){this._rctx=t,this._store=new i.r}dispose(){this._store.forEach((t=>t.forEach((t=>t.dispose())))),this._store.clear()}acquire(t,e,s,i){const n=this._store.get(t,e);if(null!=n)return n.ref(),n;const a=new r.$(this._rctx,t,e,s,i);return a.ref(),this._store.set(t,e,a),a}get test(){let t=0;return this._store.forEach((e=>e.forEach((e=>t+=e.hasGLName?2:1)))),{cachedWebGLProgramObjects:t}}}},76729:function(t,e,s){s.d(e,{x:function(){return z}});var i=s(61681),n=s(78668),a=s(12928),l=s(6174),o=s(91907);class h{constructor(){this.blend=!1,this.blendColor={r:0,g:0,b:0,a:0},this.blendFunction={srcRGB:o.zi.ONE,dstRGB:o.zi.ZERO,srcAlpha:o.zi.ONE,dstAlpha:o.zi.ZERO},this.blendEquation={mode:o.db.ADD,modeAlpha:o.db.ADD},this.colorMask={r:!0,g:!0,b:!0,a:!0},this.faceCulling=!1,this.cullFace=o.LR.BACK,this.frontFace=o.Wf.CCW,this.scissorTest=!1,this.scissorRect={x:0,y:0,width:0,height:0},this.depthTest=!1,this.depthFunction=o.wb.LESS,this.clearDepth=1,this.depthWrite=!0,this.depthRange={zNear:0,zFar:1},this.viewport=null,this.stencilTest=!1,this.polygonOffsetFill=!1,this.polygonOffset=[0,0],this.stencilFunction={face:o.LR.FRONT_AND_BACK,func:o.wb.ALWAYS,ref:0,mask:1},this.clearStencil=0,this.stencilWriteMask=1,this.stencilOperation={face:o.LR.FRONT_AND_BACK,fail:o.xS.KEEP,zFail:o.xS.KEEP,zPass:o.xS.KEEP},this.clearColor={r:0,g:0,b:0,a:0},this.program=null,this.vertexBuffer=null,this.indexBuffer=null,this.uniformBuffer=null,this.pixelPackBuffer=null,this.pixelUnpackBuffer=null,this.copyReadBuffer=null,this.copyWriteBuffer=null,this.transformFeedbackBuffer=null,this.uniformBufferBindingPoints=new Array,this.transformBufferBindingPoints=new Array,this.readFramebuffer=null,this.drawFramebuffer=null,this.renderbuffer=null,this.activeTexture=0,this.textureUnitMap=new Array,this.vertexArrayObject=null}}class u{constructor(t){this._objectType=t,this._active=new Map}add(t){const e=(new Error).stack.split("\n");e.shift(),e.shift(),this._active.set(t,e.join("\n"))}remove(t){this._active.delete(t)}resetLog(){const t=new Map;this._active.forEach(((e,{usedMemory:s})=>{t.has(e)||t.set(e,new Map);const i=t.get(e);i.set(s??0,i.get(s??0)??1)})),this._active.clear();let e=0;const s=new Array;return t.forEach(((t,i)=>{let r=0;t.forEach(((t,e)=>r+=t*e)),t.set(-1,r),e+=r,s.push([i,t])})),t.clear(),s.sort(((t,e)=>e[1].get(-1)-t[1].get(-1))),s.reduce(((t,[e,s])=>{const i=Math.round(s.get(-1)/1024);return s.delete(-1),t+` ${i}KB from ${Array.from(s.values()).reduce(((t,e)=>t+e),0)} allocations at ${e}\n`}),`Total unestimated ${this._objectType} memory: ${Math.round(e/1024)}KB\n`)}}const c=!1;class _{constructor(){for(this._current=new Array,this._allocations=c?new u("WebGLObject"):null;this._current.lengtht+(s0){t+="Live objects:\n";for(let e=0;e0&&(t+=`${o._g[e]}: ${s}\n`)}}return t+=this._allocations?.resetLog(),t}}class f{constructor(t,e,s){const i=e.textureFilterAnisotropic,r=s.maxAnisotropy??1/0;this.versionString=t.getParameter(t.VERSION),this.maxVertexTextureImageUnits=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),this.maxVertexAttributes=t.getParameter(t.MAX_VERTEX_ATTRIBS),this.maxMaxAnisotropy=i?Math.min(t.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY),r):1,this.maxTextureImageUnits=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),this.maxTextureSize=t.getParameter(t.MAX_TEXTURE_SIZE),this.maxRenderbufferSize=t.getParameter(t.MAX_RENDERBUFFER_SIZE),this.maxViewportDims=t.getParameter(t.MAX_VIEWPORT_DIMS),this.maxUniformBufferBindings=t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS),this.maxVertexUniformBlocks=t.getParameter(t.MAX_VERTEX_UNIFORM_BLOCKS),this.maxFragmentUniformBlocks=t.getParameter(t.MAX_FRAGMENT_UNIFORM_BLOCKS),this.maxUniformBlockSize=t.getParameter(t.MAX_UNIFORM_BLOCK_SIZE),this.uniformBufferOffsetAlignment=t.getParameter(t.UNIFORM_BUFFER_OFFSET_ALIGNMENT),this.maxArrayTextureLayers=t.getParameter(t.MAX_ARRAY_TEXTURE_LAYERS),this.maxSamples=t.getParameter(t.MAX_SAMPLES)}}var d=s(18636),g=s(17346),p=s(71449),E=s(62486),b=s(39994),F=s(23410),R=s(78951);class m{constructor(t){this._rctx=t,this._indexBuffer=this._createIndexbuffer(),this._program=this._createHelperProgram()}static getShaderSources(){return{vertex:"#version 300 es\n precision highp float;\n\n void main(void) {\n gl_Position = vec4(0.0, 0.0, float(gl_VertexID)-2.0, 1.0);\n }",fragment:"#version 300 es\n precision highp float;\n\n out vec4 fragColor;\n\n void main(void) {\n fragColor = vec4(0.0, 0.0, 0.0, 1.0);\n }"}}_createHelperProgram(){const t=m.getShaderSources();return this._rctx.programCache.acquire(t.vertex,t.fragment,new Map([]))}_createIndexbuffer(){return R.f.createIndex(this._rctx,o.l1.STATIC_DRAW,new Uint32Array([0]))}run(){this._program.compiled&&this._indexBuffer&&(this._rctx.bindVAO(null),this._rctx.useProgram(this._program),this._rctx.bindBuffer(this._indexBuffer,o.w0.ELEMENT_ARRAY_BUFFER),this._rctx.drawElements(o.MX.POINTS,1,o.g.UNSIGNED_INT,0))}dispose(){this._program.dispose(),this._indexBuffer.dispose()}get test(){return{cachedWebGLObjects:this._indexBuffer?.glName?1:0}}}var T=s(18567),x=s(80479),B=s(31873);class A extends B.G{constructor(t){super(),this._rctx=t,this._helperProgram=null,(0,b.Z)("mac")&&(0,b.Z)("chrome")&&(this._program=this._prepareProgram(),this._helperProgram=this._prepareHelperProgram())}dispose(){super.dispose(),this._helperProgram?.dispose(),this._helperProgram=null}_test(t){const e=this._rctx,s=e.getBoundFramebufferObject(),{x:i,y:r,width:n,height:a}=e.getViewport();e.resetState();const l=new x.X(1);l.wrapMode=o.e8.CLAMP_TO_EDGE,l.samplingMode=o.cw.NEAREST;const h=new T.X(e,l),u=R.f.createIndex(this._rctx,o.l1.STATIC_DRAW,new Uint8Array([0]));e.bindFramebuffer(h),e.setViewport(0,0,1,1),e.useProgram(this._helperProgram),e.bindBuffer(u,o.w0.ELEMENT_ARRAY_BUFFER),e.drawElements(o.MX.POINTS,1,o.g.UNSIGNED_BYTE,0),e.useProgram(t),e.bindVAO(null),e.drawArrays(o.MX.TRIANGLES,0,258);const c=new Uint8Array(4);return h.readPixels(0,0,1,1,o.VI.RGBA,o.Br.UNSIGNED_BYTE,c),e.setViewport(i,r,n,a),e.bindFramebuffer(s),h.dispose(),u.dispose(),255===c[0]}_prepareProgram(){const t=`#version 300 es\n precision highp float;\n\n out float triangleId;\n\n const vec3 triangleVertices[3] = vec3[3](vec3(-0.5, -0.5, 0.0), vec3(0.5, -0.5, 0.0), vec3(0.0, 0.5, 0.0));\n\n void main(void) {\n triangleId = floor(float(gl_VertexID)/3.0);\n\n vec3 position = triangleVertices[gl_VertexID % 3];\n float offset = triangleId / ${F.H.float(85)};\n position.z = 0.5 - offset;\n\n gl_Position = vec4(position, 1.0);\n }\n `,e=`#version 300 es\n precision highp float;\n\n in float triangleId;\n\n out vec4 fragColor;\n\n void main(void) {\n fragColor = triangleId == ${F.H.float(85)} ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);\n }\n `;return this._rctx.programCache.acquire(t,e,new Map([]))}_prepareHelperProgram(){const t=m.getShaderSources();return this._rctx.programCache.acquire(t.vertex,t.fragment,new Map([]))}}var S=s(73534),w=s(81095),v=s(30560),C=s(29620),O=s(41163);class M extends B.G{constructor(t){super(),this._rctx=t,this._program=y(this._rctx,!1),this._obfuscated=y(this._rctx,!0)}dispose(){super.dispose(),this._obfuscated=(0,i.M2)(this._obfuscated)}_test(t){if((0,b.Z)("force-double-precision-obfuscation"))return!0;if(null==this._obfuscated)return!1;const e=this._rctx,s=e.getBoundFramebufferObject(),{x:i,y:r,width:n,height:a}=e.getViewport(),l=this._runProgram(t),o=this._runProgram(this._obfuscated);return e.setViewport(i,r,n,a),e.bindFramebuffer(s),0!==l&&(0===o||l/o>5)}_runProgram(t){const e=this._rctx;e.resetState();const s=new x.X(1);s.wrapMode=o.e8.CLAMP_TO_EDGE,s.samplingMode=o.cw.NEAREST;const i=new T.X(e,s),r=R.f.createVertex(e,o.l1.STATIC_DRAW,new Uint16Array([0,0,1,0,0,1,1,1])),n=new C.U(e,new Map([["position",0]]),{geometry:[new O.G("position",2,o.g.UNSIGNED_SHORT,0,4)]},{geometry:r}),a=(0,w.al)(5633261.287538229,2626832.878767164,1434988.0495278358),l=(0,w.al)(5633271.46742708,2626873.6381334523,1434963.231608387),h=new Float32Array(6);(0,v.LF)(a,h,3);const u=new Float32Array(6);(0,v.LF)(l,u,3),e.useProgram(t),t.setUniform3f("u_highA",h[0],h[2],h[4]),t.setUniform3f("u_lowA",h[1],h[3],h[5]),t.setUniform3f("u_highB",u[0],u[2],u[4]),t.setUniform3f("u_lowB",u[1],u[3],u[5]),e.bindFramebuffer(i),e.setViewport(0,0,1,1),e.bindVAO(n),e.drawArrays(o.MX.TRIANGLE_STRIP,0,4);const c=new Uint8Array(4);i.readPixels(0,0,1,1,o.VI.RGBA,o.Br.UNSIGNED_BYTE,c),n.dispose(),i.dispose();const _=(a[2]-l[2])/25,f=(0,S.v)(c);return Math.abs(_-f)}}function y(t,e){const s=`\n\n precision highp float;\n\n attribute vec2 position;\n\n uniform vec3 u_highA;\n uniform vec3 u_lowA;\n uniform vec3 u_highB;\n uniform vec3 u_lowB;\n\n varying vec4 v_color;\n\n ${e?"#define DOUBLE_PRECISION_REQUIRES_OBFUSCATION":""}\n\n #ifdef DOUBLE_PRECISION_REQUIRES_OBFUSCATION\n\n vec3 dpPlusFrc(vec3 a, vec3 b) {\n return mix(a, a + b, vec3(notEqual(b, vec3(0))));\n }\n\n vec3 dpMinusFrc(vec3 a, vec3 b) {\n return mix(vec3(0), a - b, vec3(notEqual(a, b)));\n }\n\n vec3 dpAdd(vec3 hiA, vec3 loA, vec3 hiB, vec3 loB) {\n vec3 t1 = dpPlusFrc(hiA, hiB);\n vec3 e = dpMinusFrc(t1, hiA);\n vec3 t2 = dpMinusFrc(hiB, e) + dpMinusFrc(hiA, dpMinusFrc(t1, e)) + loA + loB;\n return t1 + t2;\n }\n\n #else\n\n vec3 dpAdd(vec3 hiA, vec3 loA, vec3 hiB, vec3 loB) {\n vec3 t1 = hiA + hiB;\n vec3 e = t1 - hiA;\n vec3 t2 = ((hiB - e) + (hiA - (t1 - e))) + loA + loB;\n return t1 + t2;\n }\n\n #endif\n\n const float MAX_RGBA_FLOAT =\n 255.0 / 256.0 +\n 255.0 / 256.0 / 256.0 +\n 255.0 / 256.0 / 256.0 / 256.0 +\n 255.0 / 256.0 / 256.0 / 256.0 / 256.0;\n\n const vec4 FIXED_POINT_FACTORS = vec4(1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0);\n\n vec4 float2rgba(const float value) {\n // Make sure value is in the domain we can represent\n float valueInValidDomain = clamp(value, 0.0, MAX_RGBA_FLOAT);\n\n // Decompose value in 32bit fixed point parts represented as\n // uint8 rgba components. Decomposition uses the fractional part after multiplying\n // by a power of 256 (this removes the bits that are represented in the previous\n // component) and then converts the fractional part to 8bits.\n vec4 fixedPointU8 = floor(fract(valueInValidDomain * FIXED_POINT_FACTORS) * 256.0);\n\n // Convert uint8 values (from 0 to 255) to floating point representation for\n // the shader\n const float toU8AsFloat = 1.0 / 255.0;\n\n return fixedPointU8 * toU8AsFloat;\n }\n\n void main() {\n vec3 val = dpAdd(u_highA, u_lowA, -u_highB, -u_lowB);\n\n v_color = float2rgba(val.z / 25.0);\n\n gl_Position = vec4(position * 2.0 - 1.0, 0.0, 1.0);\n }\n `;return t.programCache.acquire(s,"\n precision highp float;\n\n varying vec4 v_color;\n\n void main() {\n gl_FragColor = v_color;\n }\n ",new Map([["position",0]]))}var P=s(12045);class U extends B.G{constructor(t){if(super(),this._rctx=t,!t.gl)return;if(!t.capabilities.colorBufferFloat?.textureFloat||!t.capabilities.colorBufferFloat?.floatBlend)return;this._program=t.programCache.acquire("\n precision highp float;\n attribute vec2 a_pos;\n\n void main() {\n gl_Position = vec4(a_pos * 2.0 - 1.0, 0.0, 1.0);\n }\n ","\n precision highp float;\n\n void main() {\n gl_FragColor = vec4(0.5, 0.5, 0.5, 0.5);\n }\n ",new Map([["a_pos",0]]))}_test(t){const e=this._rctx,s=new x.X(1);s.wrapMode=o.e8.CLAMP_TO_EDGE,s.dataType=o.Br.FLOAT,s.internalFormat=o.lP.RGBA32F,s.samplingMode=o.cw.NEAREST;const i=new T.X(e,s),r=R.f.createVertex(e,o.l1.STATIC_DRAW,new Uint16Array([0,0,1,0,0,1,1,1])),n=new C.U(e,new Map([["a_pos",0]]),{geometry:[new O.G("a_pos",2,o.g.UNSIGNED_SHORT,0,4)]},{geometry:r});e.useProgram(t);const a=e.getBoundFramebufferObject(),{x:l,y:h,width:u,height:c}=e.getViewport();e.bindFramebuffer(i),e.setViewport(0,0,1,1),e.bindVAO(n),e.drawArrays(o.MX.TRIANGLE_STRIP,0,4);const _=(0,g.sm)({blending:P.IB});e.setPipelineState(_),e.drawArrays(o.MX.TRIANGLE_STRIP,0,4);const f=e.gl.getError();return e.setViewport(l,h,u,c),e.bindFramebuffer(a),n.dispose(),i.dispose(),1282!==f||!1}}var D=s(13802);class I extends B.G{constructor(t){super(),this._rctx=t;this._program=t.programCache.acquire("\n precision highp float;\n attribute vec2 a_pos;\n uniform highp sampler2D u_texture;\n varying vec4 v_color;\n\n float getBit(in float bitset, in int bitIndex) {\n float offset = pow(2.0, float(bitIndex));\n return mod(floor(bitset / offset), 2.0);\n }\n\n void main() {\n vec4 value = texture2D(u_texture, vec2(0.0));\n float bit = getBit(value.x * 255.0, 1);\n\n v_color = bit * vec4(1.0);\n gl_Position = vec4(a_pos * 2.0 - 1.0, 0.0, 1.0);\n }\n ","\n precision highp float;\n varying vec4 v_color;\n\n void main() {\n gl_FragColor = v_color;\n }\n ",new Map([["a_pos",0]]))}_test(t){const e=this._rctx,s=new x.X(1);s.wrapMode=o.e8.CLAMP_TO_EDGE,s.samplingMode=o.cw.NEAREST;const i=new T.X(e,s),r=new Uint8Array(4),n=R.f.createVertex(e,o.l1.STATIC_DRAW,new Uint16Array([0,0,1,0,0,1,1,1])),a=new C.U(e,new Map([["a_position",0]]),{geometry:[new O.G("a_position",2,o.g.SHORT,0,4)]},{geometry:n});e.useProgram(t);const l=new p.x(e,s,new Uint8Array([2,255,0,0]));t.setUniform1i("u_texture",0),e.bindTexture(l,0);const h=e.getBoundFramebufferObject();e.bindFramebuffer(i),e.useProgram(t);const{x:u,y:c,width:_,height:f}=e.getViewport();e.setViewport(0,0,1,1),e.bindVAO(a),e.drawArrays(o.MX.TRIANGLE_STRIP,0,4),e.setViewport(u,c,_,f),i.readPixels(0,0,1,1,o.VI.RGBA,o.Br.UNSIGNED_BYTE,r),a.dispose(),i.dispose();const d=255!==r[0]||255!==r[1]||255!==r[2]||255!==r[3];return d&&D.Z.getLogger("esri.views.webgl.testSamplerPrecision").warn(`A problem was detected with your graphics driver. Your driver does not appear to honor sampler precision specifiers, which may result in rendering issues due to numerical instability. We recommend ensuring that your drivers have been updated to the latest version. Applying lowp sampler workaround. [${r[0]}.${r[1]}.${r[2]}.${r[3]}]`),e.bindFramebuffer(h),d}}var N=s(61581);class k{constructor(t){this.rctx=t,this.floatBufferBlend=new U(t),this.svgPremultipliesAlpha=new N.d(t),this.doublePrecisionRequiresObfuscation=new M(t),this.ignoresSamplerPrecision=new I(t),this.drawArraysRequiresIndicesTypeReset=new A(t)}dispose(){this.ignoresSamplerPrecision.dispose(),this.doublePrecisionRequiresObfuscation.dispose(),this.svgPremultipliesAlpha.dispose(),this.floatBufferBlend.dispose(),this.drawArraysRequiresIndicesTypeReset.dispose()}}var L=s(33679);function G(t,e,s,i,r){if(i)return!0;if(e[s])return!1;for(const e of r)if(t.getExtension(e))return!0;return!1}class X{constructor(t,e){this._gl=t,this._compressedTextureETC=null,this._compressedTextureS3TC=null,this._textureFilterAnisotropic=null,this._textureFloat=null,this._colorBufferFloat=null,this._loseContext=null,this._textureNorm16=null,this._depthTexture=null,this._textureFloatLinear=null,this._disabledExtensions=e.disabledExtensions||{},this._debugWebGLExtensions=e.debugWebGLExtensions||{}}get compressedTextureETC(){return this._compressedTextureETC||(this._compressedTextureETC=function(t,e){if(e.compressedTextureETC)return null;const s=t.getExtension("WEBGL_compressed_texture_etc");return s?{COMPRESSED_R11_EAC:s.COMPRESSED_R11_EAC,COMPRESSED_SIGNED_R11_EAC:s.COMPRESSED_SIGNED_R11_EAC,COMPRESSED_RG11_EAC:s.COMPRESSED_RG11_EAC,COMPRESSED_SIGNED_RG11_EAC:s.COMPRESSED_SIGNED_RG11_EAC,COMPRESSED_RGB8_ETC2:s.COMPRESSED_RGB8_ETC2,COMPRESSED_SRGB8_ETC2:s.COMPRESSED_SRGB8_ETC2,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:s.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:s.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,COMPRESSED_RGBA8_ETC2_EAC:s.COMPRESSED_RGBA8_ETC2_EAC,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:s.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC}:null}(this._gl,this._disabledExtensions)),this._compressedTextureETC}get compressedTextureS3TC(){return this._compressedTextureS3TC||(this._compressedTextureS3TC=function(t,e){if(e.compressedTextureS3TC)return null;const s=t.getExtension("WEBGL_compressed_texture_s3tc");return s?{COMPRESSED_RGB_S3TC_DXT1:s.COMPRESSED_RGB_S3TC_DXT1_EXT,COMPRESSED_RGBA_S3TC_DXT1:s.COMPRESSED_RGBA_S3TC_DXT1_EXT,COMPRESSED_RGBA_S3TC_DXT3:s.COMPRESSED_RGBA_S3TC_DXT3_EXT,COMPRESSED_RGBA_S3TC_DXT5:s.COMPRESSED_RGBA_S3TC_DXT5_EXT}:null}(this._gl,this._disabledExtensions)),this._compressedTextureS3TC}get textureFilterAnisotropic(){return this._textureFilterAnisotropic||(this._textureFilterAnisotropic=function(t,e){if(e.textureFilterAnisotropic)return null;const s=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");return s?{MAX_TEXTURE_MAX_ANISOTROPY:s.MAX_TEXTURE_MAX_ANISOTROPY_EXT,TEXTURE_MAX_ANISOTROPY:s.TEXTURE_MAX_ANISOTROPY_EXT}:null}(this._gl,this._disabledExtensions)),this._textureFilterAnisotropic}get disjointTimerQuery(){return this._disjointTimerQuery||(this._disjointTimerQuery=(0,L.mO)(this._gl,this._disabledExtensions)),this._disjointTimerQuery}get textureFloat(){if(!this._textureFloat){const{textureFloatLinear:t}=this._disabledExtensions;this._textureFloat={textureFloatLinear:!t&&!!this._gl.getExtension("OES_texture_float_linear")}}return this._textureFloat}get colorBufferFloat(){return this._colorBufferFloat||(this._colorBufferFloat=function(t,e){const s=!e.colorBufferHalfFloat&&t.getExtension("EXT_color_buffer_half_float")||!e.colorBufferFloat&&t.getExtension("EXT_color_buffer_float"),i=!e.colorBufferFloat&&t.getExtension("EXT_color_buffer_float"),r=!e.floatBlend&&!e.colorBufferFloat&&t.getExtension("EXT_float_blend");return s||i||r?{textureFloat:!!i,textureHalfFloat:!!s,floatBlend:!!r,R16F:t.R16F,RG16F:t.RG16F,RGBA16F:t.RGBA16F,R32F:t.R32F,RG32F:t.RG32F,RGBA32F:t.RGBA32F,R11F_G11F_B10F:t.R11F_G11F_B10F,RGB16F:t.RGB16F}:null}(this._gl,this._disabledExtensions)),this._colorBufferFloat}get depthTexture(){return null===this._depthTexture&&(this._depthTexture=G(this._gl,this._disabledExtensions,"depthTexture",!0,["WEBGL_depth_texture","MOZ_WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture"])),this._depthTexture}get loseContext(){return this._loseContext||(this._loseContext=function(t,e){const s=e.loseContext&&t.getExtension("WEBGL_lose_context");return s?{loseRenderingContext:()=>s.loseContext()}:null}(this._gl,this._debugWebGLExtensions)),this._loseContext}get textureNorm16(){return this._textureNorm16||(this._textureNorm16=function(t,e){if(e.textureNorm16)return null;const s=t.getExtension("EXT_texture_norm16");return s?{R16:s.R16_EXT,RG16:s.RG16_EXT,RGB16:s.RGB16_EXT,RGBA16:s.RGBA16_EXT,R16_SNORM:s.R16_SNORM_EXT,RG16_SNORM:s.RG16_SNORM_EXT,RGB16_SNORM:s.RGB16_SNORM_EXT,RGBA16_SNORM:s.RGBA16_SNORM_EXT}:null}(this._gl,this._disabledExtensions)),this._textureNorm16}get textureFloatLinear(){return null===this._textureFloatLinear&&(this._textureFloatLinear=G(this._gl,this._disabledExtensions,"textureFloatLinear",!1,["OES_texture_float_linear"])),this._textureFloatLinear}enable(t){return this[t]}}let z=class{constructor(t,e){this.gl=t,this.instanceCounter=new _,this.programCache=new d.G(this),this._transformFeedbackRequestInfo=null,this._state=new h,this._numOfDrawCalls=0,this._numOfTriangles=0,this._loadExtensions(),this.configure(e)}configure(t){this._capabilities=new X(this.gl,t),this._parameters=new f(this.gl,this._capabilities,t),p.x.TEXTURE_UNIT_FOR_UPDATES=this._parameters.maxTextureImageUnits-1;const e=this.gl.getParameter(this.gl.VIEWPORT);this._state=new h,this._state.viewport={x:e[0],y:e[1],width:e[2],height:e[3]},this._stateTracker=new g.jp({setBlending:t=>{if(t){this.setBlendingEnabled(!0),this.setBlendEquationSeparate(t.opRgb,t.opAlpha),this.setBlendFunctionSeparate(t.srcRgb,t.dstRgb,t.srcAlpha,t.dstAlpha);const e=t.color;this.setBlendColor(e.r,e.g,e.b,e.a)}else this.setBlendingEnabled(!1)},setCulling:t=>{t?(this.setFaceCullingEnabled(!0),this.setCullFace(t.face),this.setFrontFace(t.mode)):this.setFaceCullingEnabled(!1)},setPolygonOffset:t=>{t?(this.setPolygonOffsetFillEnabled(!0),this.setPolygonOffset(t.factor,t.units)):this.setPolygonOffsetFillEnabled(!1)},setDepthTest:t=>{t?(this.setDepthTestEnabled(!0),this.setDepthFunction(t.func)):this.setDepthTestEnabled(!1)},setStencilTest:t=>{if(t){this.setStencilTestEnabled(!0);const e=t.function;this.setStencilFunction(e.func,e.ref,e.mask);const s=t.operation;this.setStencilOp(s.fail,s.zFail,s.zPass)}else this.setStencilTestEnabled(!1)},setDepthWrite:t=>{t?(this.setDepthWriteEnabled(!0),this.setDepthRange(t.zNear,t.zFar)):this.setDepthWriteEnabled(!1)},setColorWrite:t=>{t?this.setColorMask(t.r,t.g,t.b,t.a):this.setColorMask(!1,!1,!1,!1)},setStencilWrite:t=>{t?this.setStencilWriteMask(t.mask):this.setStencilWriteMask(0)},setDrawBuffers:t=>{const{gl:e}=this;if(t)e.drawBuffers(t.buffers);else{const{drawFramebuffer:t}=this._state;null===t||0===t.colorAttachments.length?e.drawBuffers([o.Xg.BACK]):e.drawBuffers([o.VY.COLOR_ATTACHMENT0])}}}),this.enforceState(),(0,i.M2)(this._driverTest),this._driverTest=new k(this)}dispose(){(0,i.M2)(this._driverTest),this.programCache.dispose(),this.bindVAO(null),this.unbindBuffer(o.w0.ARRAY_BUFFER),this.unbindBuffer(o.w0.ELEMENT_ARRAY_BUFFER),this.unbindBuffer(o.w0.UNIFORM_BUFFER),this._state.uniformBufferBindingPoints.length=0,this.unbindBuffer(o.w0.PIXEL_PACK_BUFFER),this.unbindBuffer(o.w0.PIXEL_UNPACK_BUFFER),this.unbindBuffer(o.w0.COPY_READ_BUFFER),this.unbindBuffer(o.w0.COPY_WRITE_BUFFER),this._state.textureUnitMap.length=0,(0,l.hZ)()}get driverTest(){return this._driverTest}get contextAttributes(){return this.gl.getContextAttributes()}get parameters(){return this._parameters}setPipelineState(t){this._stateTracker.setPipeline(t)}setBlendingEnabled(t){this._state.blend!==t&&(!0===t?this.gl.enable(this.gl.BLEND):this.gl.disable(this.gl.BLEND),this._state.blend=t,this._stateTracker.invalidateBlending())}externalProgramUpdate(){this._state.program?.stop(),this._state.program=null}externalTextureUnitUpdate(t,e){for(let e=0;e=0&&(this._state.activeTexture=e)}externalVertexArrayObjectUpdate(){this.gl.bindVertexArray(null),this._state.vertexArrayObject=null,this._state.vertexBuffer=null,this._state.indexBuffer=null}externalVertexBufferUpdate(){this._state.vertexBuffer=null}externalIndexBufferUpdate(){this._state.indexBuffer=null}setBlendColor(t,e,s,i){t===this._state.blendColor.r&&e===this._state.blendColor.g&&s===this._state.blendColor.b&&i===this._state.blendColor.a||(this.gl.blendColor(t,e,s,i),this._state.blendColor.r=t,this._state.blendColor.g=e,this._state.blendColor.b=s,this._state.blendColor.a=i,this._stateTracker.invalidateBlending())}setBlendFunction(t,e){t===this._state.blendFunction.srcRGB&&e===this._state.blendFunction.dstRGB||(this.gl.blendFunc(t,e),this._state.blendFunction.srcRGB=t,this._state.blendFunction.srcAlpha=t,this._state.blendFunction.dstRGB=e,this._state.blendFunction.dstAlpha=e,this._stateTracker.invalidateBlending())}setBlendFunctionSeparate(t,e,s,i){this._state.blendFunction.srcRGB===t&&this._state.blendFunction.srcAlpha===s&&this._state.blendFunction.dstRGB===e&&this._state.blendFunction.dstAlpha===i||(this.gl.blendFuncSeparate(t,e,s,i),this._state.blendFunction.srcRGB=t,this._state.blendFunction.srcAlpha=s,this._state.blendFunction.dstRGB=e,this._state.blendFunction.dstAlpha=i,this._stateTracker.invalidateBlending())}setBlendEquation(t){this._state.blendEquation.mode!==t&&(this.gl.blendEquation(t),this._state.blendEquation.mode=t,this._state.blendEquation.modeAlpha=t,this._stateTracker.invalidateBlending())}setBlendEquationSeparate(t,e){this._state.blendEquation.mode===t&&this._state.blendEquation.modeAlpha===e||(this.gl.blendEquationSeparate(t,e),this._state.blendEquation.mode=t,this._state.blendEquation.modeAlpha=e,this._stateTracker.invalidateBlending())}setColorMask(t,e,s,i){this._state.colorMask.r===t&&this._state.colorMask.g===e&&this._state.colorMask.b===s&&this._state.colorMask.a===i||(this.gl.colorMask(t,e,s,i),this._state.colorMask.r=t,this._state.colorMask.g=e,this._state.colorMask.b=s,this._state.colorMask.a=i,this._stateTracker.invalidateColorWrite())}setClearColor(t,e,s,i){this._state.clearColor.r===t&&this._state.clearColor.g===e&&this._state.clearColor.b===s&&this._state.clearColor.a===i||(this.gl.clearColor(t,e,s,i),this._state.clearColor.r=t,this._state.clearColor.g=e,this._state.clearColor.b=s,this._state.clearColor.a=i)}setFaceCullingEnabled(t){this._state.faceCulling!==t&&(!0===t?this.gl.enable(this.gl.CULL_FACE):this.gl.disable(this.gl.CULL_FACE),this._state.faceCulling=t,this._stateTracker.invalidateCulling())}setPolygonOffsetFillEnabled(t){this._state.polygonOffsetFill!==t&&(!0===t?this.gl.enable(this.gl.POLYGON_OFFSET_FILL):this.gl.disable(this.gl.POLYGON_OFFSET_FILL),this._state.polygonOffsetFill=t,this._stateTracker.invalidatePolygonOffset())}setPolygonOffset(t,e){this._state.polygonOffset[0]===t&&this._state.polygonOffset[1]===e||(this._state.polygonOffset[0]=t,this._state.polygonOffset[1]=e,this.gl.polygonOffset(t,e),this._stateTracker.invalidatePolygonOffset())}setCullFace(t){this._state.cullFace!==t&&(this.gl.cullFace(t),this._state.cullFace=t,this._stateTracker.invalidateCulling())}setFrontFace(t){this._state.frontFace!==t&&(this.gl.frontFace(t),this._state.frontFace=t,this._stateTracker.invalidateCulling())}setScissorTestEnabled(t){this._state.scissorTest!==t&&(!0===t?this.gl.enable(this.gl.SCISSOR_TEST):this.gl.disable(this.gl.SCISSOR_TEST),this._state.scissorTest=t)}setScissorRect(t,e,s,i){this._state.scissorRect.x===t&&this._state.scissorRect.y===e&&this._state.scissorRect.width===s&&this._state.scissorRect.height===i||(this.gl.scissor(t,e,s,i),this._state.scissorRect.x=t,this._state.scissorRect.y=e,this._state.scissorRect.width=s,this._state.scissorRect.height=i)}setDepthTestEnabled(t){this._state.depthTest!==t&&(!0===t?this.gl.enable(this.gl.DEPTH_TEST):this.gl.disable(this.gl.DEPTH_TEST),this._state.depthTest=t,this._stateTracker.invalidateDepthTest())}setClearDepth(t){this._state.clearDepth!==t&&(this.gl.clearDepth(t),this._state.clearDepth=t)}setDepthFunction(t){this._state.depthFunction!==t&&(this.gl.depthFunc(t),this._state.depthFunction=t,this._stateTracker.invalidateDepthTest())}setDepthWriteEnabled(t){this._state.depthWrite!==t&&(this.gl.depthMask(t),this._state.depthWrite=t,this._stateTracker.invalidateDepthWrite())}setDepthRange(t,e){this._state.depthRange.zNear===t&&this._state.depthRange.zFar===e||(this.gl.depthRange(t,e),this._state.depthRange.zNear=t,this._state.depthRange.zFar=e,this._stateTracker.invalidateDepthWrite())}setStencilTestEnabled(t){this._state.stencilTest!==t&&(!0===t?this.gl.enable(this.gl.STENCIL_TEST):this.gl.disable(this.gl.STENCIL_TEST),this._state.stencilTest=t,this._stateTracker.invalidateStencilTest())}setClearStencil(t){t!==this._state.clearStencil&&(this.gl.clearStencil(t),this._state.clearStencil=t)}setStencilFunction(t,e,s){this._state.stencilFunction.func===t&&this._state.stencilFunction.ref===e&&this._state.stencilFunction.mask===s||(this.gl.stencilFunc(t,e,s),this._state.stencilFunction.face=o.LR.FRONT_AND_BACK,this._state.stencilFunction.func=t,this._state.stencilFunction.ref=e,this._state.stencilFunction.mask=s,this._stateTracker.invalidateStencilTest())}setStencilFunctionSeparate(t,e,s,i){this._state.stencilFunction.face===t&&this._state.stencilFunction.func===e&&this._state.stencilFunction.ref===s&&this._state.stencilFunction.mask===i||(this.gl.stencilFuncSeparate(t,e,s,i),this._state.stencilFunction.face=t,this._state.stencilFunction.func=e,this._state.stencilFunction.ref=s,this._state.stencilFunction.mask=i,this._stateTracker.invalidateStencilTest())}setStencilWriteMask(t){this._state.stencilWriteMask!==t&&(this.gl.stencilMask(t),this._state.stencilWriteMask=t,this._stateTracker.invalidateStencilWrite())}setStencilOp(t,e,s){this._state.stencilOperation.face===o.LR.FRONT_AND_BACK&&this._state.stencilOperation.fail===t&&this._state.stencilOperation.zFail===e&&this._state.stencilOperation.zPass===s||(this.gl.stencilOp(t,e,s),this._state.stencilOperation.face=o.LR.FRONT_AND_BACK,this._state.stencilOperation.fail=t,this._state.stencilOperation.zFail=e,this._state.stencilOperation.zPass=s,this._stateTracker.invalidateStencilTest())}setStencilOpSeparate(t,e,s,i){this._state.stencilOperation.face===t&&this._state.stencilOperation.fail===e&&this._state.stencilOperation.zFail===s&&this._state.stencilOperation.zPass===i||(this.gl.stencilOpSeparate(t,e,s,i),this._state.stencilOperation.face=t,this._state.stencilOperation.fail=e,this._state.stencilOperation.zFail=s,this._state.stencilOperation.zPass=i,this._stateTracker.invalidateStencilTest())}setActiveTexture(t,e=!1){const s=this._state.activeTexture;return t>=0&&(e||t!==this._state.activeTexture)&&(this.gl.activeTexture(o.V1+t),this._state.activeTexture=t),s}clear(t){t&&this.gl.clear(t)}clearSafe(t,e=255){t&&(t&o.lk.COLOR_BUFFER_BIT&&this.setColorMask(!0,!0,!0,!0),t&o.lk.DEPTH_BUFFER_BIT&&this.setDepthWriteEnabled(!0),t&o.lk.STENCIL_BUFFER_BIT&&this.setStencilWriteMask(e),this.gl.clear(t))}clearFramebuffer(t,e=!1,s=!1){let i=0;if(t){const e=1e-13,s=Math.max(e,t[3]);this.setClearColor(t[0],t[1],t[2],s),i|=o.lk.COLOR_BUFFER_BIT}e&&(i|=o.lk.DEPTH_BUFFER_BIT),!1===s?s=0:(!0===s&&(s=255),i|=o.lk.STENCIL_BUFFER_BIT),i&&this.clearSafe(i,s)}drawArrays(t,e,s){if(this._transformFeedbackRequestInfo){if(t!==this._transformFeedbackRequestInfo.primitiveType)throw new Error("DrawArrays called during transform feedback, but primitiveType does not match that of the current transform feedback request");if(null==this._state.program?.hasTransformFeedbackVaryings)throw new Error("DrawArrays called during transform feedback, but the shader program was not linked with a transform feedback varying")}if((0,l.hZ)()){this._numOfDrawCalls++,this._numOfTriangles+=W(t,s);const e=this._state.textureUnitMap;for(let t=0;t=this.parameters.maxUniformBufferBindings||e<0)return null;const s=t===o.w0.UNIFORM_BUFFER?this._state.uniformBufferBindingPoints:this._state.transformBufferBindingPoints;let i=s[e];return null==i&&(i={buffer:null,offset:0,size:0},s[e]=i),i}bindBufferBase(t,e,s){const i=this._getBufferBinding(t,e);null!=i&&(i.buffer===s&&0===i.offset&&0===i.size||(this.gl.bindBufferBase(t,e,s?s.glName:null),i.buffer=s,i.offset=0,i.size=0))}bindBufferRange(t,e,s,i,r){const n=this._getBufferBinding(t,e);null!=n&&(n.buffer===s&&n.offset===i&&n.size===r||i%this._parameters.uniformBufferOffsetAlignment==0&&(this.gl.bindBufferRange(t,e,s.glName,i,r),n.buffer=s,n.offset=i,n.size=r))}bindUBO(t,e,s,i){null!=e?((0,l.hZ)()&&(i??e.byteLength,this._parameters.maxUniformBlockSize),e.initialize(),void 0!==s&&void 0!==i?this.bindBufferRange(o.w0.UNIFORM_BUFFER,t,e.buffer,s,i):this.bindBufferBase(o.w0.UNIFORM_BUFFER,t,e.buffer)):this.bindBufferBase(o.w0.UNIFORM_BUFFER,t,null)}unbindUBO(t){for(let e=0,s=this._state.uniformBufferBindingPoints.length;e""!==e)).map((e=>`'${e}'`));return i.push("''"),`${t} IN (${i.join(",")}) OR ${t} IS NULL`}i.d(t,{c:function(){return r},f:function(){return s}})},59468:function(e,t,i){function r(e,t){return t?"xoffset"in t&&t.xoffset?Math.max(e,Math.abs(t.xoffset)):"yoffset"in t&&t.yoffset?Math.max(e,Math.abs(t.yoffset||0)):e:e}function s(e,t){return"number"==typeof e?e:e?.stops?.length?function(e){let t=0,i=0;for(let r=0;r"size"===e.type)).map((t=>{const{maxSize:i,minSize:r}=t;return(s(i,e)+s(r,e))/2}));let r=0;const n=i.length;if(0===n)return e;for(let e=0;e{e=r(e,t.symbol)})),e}if("class-breaks"===t.type){let e=o;return t.classBreakInfos.forEach((t=>{e=r(e,t.symbol)})),e}return"dot-density"===t.type||t.type,o}i.d(t,{k:function(){return o}})},24778:function(e,t,i){i.d(t,{b:function(){return m}});var r=i(70375),s=i(39994),n=i(13802),o=i(78668),a=i(14266),l=i(88013),u=i(64429),h=i(91907),c=i(18567),d=i(71449),p=i(80479);class f{constructor(e,t,i){this._texture=null,this._lastTexture=null,this._fbos={},this.texelSize=4;const{buffer:r,pixelType:s,textureOnly:n}=e,o=(0,u.UK)(s);this.blockIndex=i,this.pixelType=s,this.size=t,this.textureOnly=n,n||(this.data=new o(r)),this._resetRange()}destroy(){this._texture?.dispose();for(const e in this._fbos){const t=this._fbos[e];t&&("0"===e&&t.detachColorTexture(),t.dispose()),this._fbos[e]=null}this._texture=null}get _textureDesc(){const e=new p.X;return e.wrapMode=h.e8.CLAMP_TO_EDGE,e.samplingMode=h.cw.NEAREST,e.dataType=this.pixelType,e.width=this.size,e.height=this.size,e}setData(e,t,i){const r=(0,l.jL)(e),s=this.data,n=r*this.texelSize+t;!s||n>=s.length||(s[n]=i,this.dirtyStart=Math.min(this.dirtyStart,r),this.dirtyEnd=Math.max(this.dirtyEnd,r))}getData(e,t){if(null==this.data)return null;const i=(0,l.jL)(e)*this.texelSize+t;return!this.data||i>=this.data.length?null:this.data[i]}getTexture(e){return this._texture??this._initTexture(e)}getFBO(e,t=0){if(!this._fbos[t]){const i=0===t?this.getTexture(e):this._textureDesc;this._fbos[t]=new c.X(e,i)}return this._fbos[t]}get hasDirty(){const e=this.dirtyStart;return this.dirtyEnd>=e}updateTexture(e,t){try{const t=this.dirtyStart,i=this.dirtyEnd;if(!this.hasDirty)return;(0,s.Z)("esri-2d-update-debug"),this._resetRange();const o=this.data.buffer,a=this.getTexture(e),l=4,h=(t-t%this.size)/this.size,c=(i-i%this.size)/this.size,d=h,p=this.size,f=c,y=h*this.size*l,g=(p+f*this.size)*l-y,m=(0,u.UK)(this.pixelType),_=new m(o,y*m.BYTES_PER_ELEMENT,g),b=this.size,x=f-d+1;if(x>this.size)return void n.Z.getLogger("esri.views.2d.engine.webgl.AttributeStoreView").error(new r.Z("mapview-webgl","Out-of-bounds index when updating AttributeData"));a.updateData(0,0,d,b,x,_)}catch(e){}}update(e){const{data:t,start:i,end:r}=e;if(null!=t&&null!=this.data){const r=this.data,s=i*this.texelSize;for(let i=0;inull!=e?new f(e,this.size,t):null));else for(let e=0;e{(0,s.Z)("esri-2d-update-debug")})),this._version=e.version,this._pendingAttributeUpdates.push({inner:e,resolver:t}),(0,s.Z)("esri-2d-update-debug")}get currentEpoch(){return this._epoch}update(){if(this._locked)return;const e=this._pendingAttributeUpdates;this._pendingAttributeUpdates=[];for(const{inner:t,resolver:i}of e){const{blockData:e,initArgs:r,sendUpdateEpoch:n,version:o}=t;(0,s.Z)("esri-2d-update-debug"),this._version=o,this._epoch=n,null!=r&&this._initialize(r);const a=this._data;for(let t=0;te.destroy())),this.removeAllChildren(),this.attributeView.destroy()}doRender(e){e.context.capabilities.enable("textureFloat"),super.doRender(e)}createRenderParams(e){const t=super.createRenderParams(e);return t.attributeView=this.attributeView,t.instanceStore=this._instanceStore,t.statisticsByLevel=this._statisticsByLevel,t}}},70179:function(e,t,i){i.d(t,{Z:function(){return u}});var r=i(39994),s=i(38716),n=i(10994),o=i(22598),a=i(27946);const l=(e,t)=>e.key.level-t.key.level!=0?e.key.level-t.key.level:e.key.row-t.key.row!=0?e.key.row-t.key.row:e.key.col-t.key.col;class u extends n.Z{constructor(e){super(),this._tileInfoView=e}renderChildren(e){this.sortChildren(l),this.setStencilReference(e),super.renderChildren(e)}createRenderParams(e){const{state:t}=e,i=super.createRenderParams(e);return i.requiredLevel=this._tileInfoView.getClosestInfoForScale(t.scale).level,i.displayLevel=this._tileInfoView.tileInfo.scaleToZoom(t.scale),i}prepareRenderPasses(e){const t=super.prepareRenderPasses(e);return t.push(e.registerRenderPass({name:"stencil",brushes:[o.Z],drawPhase:s.jx.DEBUG|s.jx.MAP|s.jx.HIGHLIGHT|s.jx.LABEL,target:()=>this.getStencilTarget()})),(0,r.Z)("esri-tiles-debug")&&t.push(e.registerRenderPass({name:"tileInfo",brushes:[a.Z],drawPhase:s.jx.DEBUG,target:()=>this.children})),t}getStencilTarget(){return this.children}setStencilReference(e){let t=1;for(const e of this.children)e.stencilRef=t++}}},16699:function(e,t,i){i.d(t,{o:function(){return s}});var r=i(77206);class s{constructor(e,t,i,r,s){this._instanceId=e,this.techniqueRef=t,this._meshWriterName=i,this._input=r,this.optionalAttributes=s}get instanceId(){return(0,r.G)(this._instanceId)}createMeshInfo(e){return{id:this._instanceId,meshWriterName:this._meshWriterName,options:e,optionalAttributes:this.optionalAttributes}}getInput(){return this._input}setInput(e){this._input=e}}},81110:function(e,t,i){i.d(t,{K:function(){return R}});var r=i(61681),s=i(24778),n=i(38716),o=i(16699),a=i(56144),l=i(77206);let u=0;function h(e,t,i){return new o.o((0,l.W)(u++),e,e.meshWriter.name,t,i)}const c={geometry:{visualVariableColor:null,visualVariableOpacity:null,visualVariableSizeMinMaxValue:null,visualVariableSizeScaleStops:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null,visualVariableRotation:null}};class d{constructor(){this.instances={fill:h(a.k2.fill,c,{zoomRange:!0}),marker:h(a.k2.marker,c,{zoomRange:!0}),line:h(a.k2.line,c,{zoomRange:!0}),text:h(a.k2.text,c,{zoomRange:!0,referenceSymbol:!1,clipAngle:!1}),complexFill:h(a.k2.complexFill,c,{zoomRange:!0}),texturedLine:h(a.k2.texturedLine,c,{zoomRange:!0})},this._instancesById=Object.values(this.instances).reduce(((e,t)=>(e.set(t.instanceId,t),e)),new Map)}getInstance(e){return this._instancesById.get(e)}}var p=i(46332),f=i(38642),y=i(45867),g=i(17703),m=i(29927),_=i(51118),b=i(64429),x=i(78951),w=i(91907),v=i(29620);const S=Math.PI/180;class T extends _.s{constructor(e){super(),this._program=null,this._vao=null,this._vertexBuffer=null,this._indexBuffer=null,this._dvsMat3=(0,f.Ue)(),this._localOrigin={x:0,y:0},this._getBounds=e}destroy(){this._vao&&(this._vao.dispose(),this._vao=null,this._vertexBuffer=null,this._indexBuffer=null),this._program=(0,r.M2)(this._program)}doRender(e){const{context:t}=e,i=this._getBounds();if(i.length<1)return;this._createShaderProgram(t),this._updateMatricesAndLocalOrigin(e),this._updateBufferData(t,i),t.setBlendingEnabled(!0),t.setDepthTestEnabled(!1),t.setStencilWriteMask(0),t.setStencilTestEnabled(!1),t.setBlendFunction(w.zi.ONE,w.zi.ONE_MINUS_SRC_ALPHA),t.setColorMask(!0,!0,!0,!0);const r=this._program;t.bindVAO(this._vao),t.useProgram(r),r.setUniformMatrix3fv("u_dvsMat3",this._dvsMat3),t.gl.lineWidth(1),t.drawElements(w.MX.LINES,8*i.length,w.g.UNSIGNED_INT,0),t.bindVAO()}_createTransforms(){return{displayViewScreenMat3:(0,f.Ue)()}}_createShaderProgram(e){if(this._program)return;this._program=e.programCache.acquire("precision highp float;\n uniform mat3 u_dvsMat3;\n\n attribute vec2 a_position;\n\n void main() {\n mediump vec3 pos = u_dvsMat3 * vec3(a_position, 1.0);\n gl_Position = vec4(pos.xy, 0.0, 1.0);\n }","precision mediump float;\n void main() {\n gl_FragColor = vec4(0.75, 0.0, 0.0, 0.75);\n }",I().attributes)}_updateMatricesAndLocalOrigin(e){const{state:t}=e,{displayMat3:i,size:r,resolution:s,pixelRatio:n,rotation:o,viewpoint:a}=t,l=S*o,{x:u,y:h}=a.targetGeometry,c=(0,m.or)(u,t.spatialReference);this._localOrigin.x=c,this._localOrigin.y=h;const d=n*r[0],f=n*r[1],_=s*d,b=s*f,x=(0,p.yR)(this._dvsMat3);(0,p.Jp)(x,x,i),(0,p.Iu)(x,x,(0,y.al)(d/2,f/2)),(0,p.bA)(x,x,(0,g.al)(r[0]/_,-f/b,1)),(0,p.U1)(x,x,-l)}_updateBufferData(e,t){const{x:i,y:r}=this._localOrigin,s=8*t.length,n=new Float32Array(s),o=new Uint32Array(8*t.length);let a=0,l=0;for(const e of t)e&&(n[2*a]=e[0]-i,n[2*a+1]=e[1]-r,n[2*a+2]=e[0]-i,n[2*a+3]=e[3]-r,n[2*a+4]=e[2]-i,n[2*a+5]=e[3]-r,n[2*a+6]=e[2]-i,n[2*a+7]=e[1]-r,o[l]=a+0,o[l+1]=a+3,o[l+2]=a+3,o[l+3]=a+2,o[l+4]=a+2,o[l+5]=a+1,o[l+6]=a+1,o[l+7]=a+0,a+=4,l+=8);if(this._vertexBuffer?this._vertexBuffer.setData(n.buffer):this._vertexBuffer=x.f.createVertex(e,w.l1.DYNAMIC_DRAW,n.buffer),this._indexBuffer?this._indexBuffer.setData(o):this._indexBuffer=x.f.createIndex(e,w.l1.DYNAMIC_DRAW,o),!this._vao){const t=I();this._vao=new v.U(e,t.attributes,t.bufferLayouts,{geometry:this._vertexBuffer},this._indexBuffer)}}}const I=()=>(0,b.cM)("bounds",{geometry:[{location:0,name:"a_position",count:2,type:w.g.FLOAT}]});class R extends s.b{constructor(e){super(e),this._instanceStore=new d,this.checkHighlight=()=>!0}destroy(){super.destroy(),this._boundsRenderer=(0,r.SC)(this._boundsRenderer)}get instanceStore(){return this._instanceStore}enableRenderingBounds(e){this._boundsRenderer=new T(e),this.requestRender()}get hasHighlight(){return this.checkHighlight()}onTileData(e,t){e.onMessage(t),this.contains(e)||this.addChild(e),this.requestRender()}_renderChildren(e,t){e.selection=t;for(const t of this.children){if(!t.visible)continue;const i=t.getDisplayList(e.drawPhase,this._instanceStore,n.gl.STRICT_ORDER);i?.render(e)}}}},14945:function(e,t,i){i.d(t,{Z:function(){return u}});var r=i(36663),s=(i(13802),i(39994),i(4157),i(70375),i(40266)),n=i(38716),o=i(81110),a=i(41214);let l=class extends o.K{get hasHighlight(){return this.children.some((e=>e.hasData))}renderChildren(e){this.attributeView.update(),e.drawPhase===n.jx.HIGHLIGHT&&this.children.some((e=>e.hasData))&&(super.renderChildren(e),e.context.setColorMask(!0,!0,!0,!0),(0,a.P9)(e,!0,(e=>{this._renderChildren(e,n.Xq.All)})))}};l=(0,r._)([(0,s.j)("esri.views.2d.layers.support.HighlightGraphicContainer")],l);const u=l},7608:function(e,t,i){i.d(t,{VF:function(){return K},Uf:function(){return W}});var r=i(36663),s=i(80085),n=i(74396),o=i(7753),a=i(6865),l=i(70375),u=i(23148),h=i(39994),c=i(86114),d=i(78668),p=i(76868),f=i(17321),y=i(81977),g=(i(13802),i(40266)),m=i(91772),_=i(68577),b=i(14845),x=i(21586),w=i(59468),v=i(66341),S=i(29927),T=i(84238),I=i(84684),R=i(53736),M=i(35925),E=i(93698);function F(e,t){const{dpi:i,gdbVersion:r,geometry:s,geometryPrecision:n,height:o,historicMoment:a,layerOption:l,mapExtent:u,maxAllowableOffset:h,returnFieldName:c,returnGeometry:d,returnUnformattedValues:p,returnZ:f,spatialReference:y,timeExtent:g,tolerance:m,width:_}=e.toJSON(),{dynamicLayers:b,layerDefs:x,layerIds:w}=A(e),v=null!=t?.geometry?t.geometry:null,S={historicMoment:a,geometryPrecision:n,maxAllowableOffset:h,returnFieldName:c,returnGeometry:d,returnUnformattedValues:p,returnZ:f,tolerance:m},T=v&&v.toJSON()||s;S.imageDisplay=`${_},${o},${i}`,r&&(S.gdbVersion=r),T&&(delete T.spatialReference,S.geometry=JSON.stringify(T),S.geometryType=(0,R.Ji)(T));const I=y??T?.spatialReference??u?.spatialReference;if(I&&(S.sr=(0,M.B9)(I)),S.time=g?[g.start,g.end].join(","):null,u){const{xmin:e,ymin:t,xmax:i,ymax:r}=u;S.mapExtent=`${e},${t},${i},${r}`}return x&&(S.layerDefs=x),b&&!x&&(S.dynamicLayers=b),S.layers="popup"===l?"visible":l,w&&!b&&(S.layers+=`:${w.join(",")}`),S}function A(e){const{mapExtent:t,floors:i,width:r,sublayers:s,layerIds:n,layerOption:o,gdbVersion:a}=e,l=s?.find((e=>null!=e.layer))?.layer?.serviceSublayers,u="popup"===o,h={},c=(0,_.yZ)({extent:t,width:r,spatialReference:t?.spatialReference}),d=[],p=e=>{const t=0===c,i=0===e.minScale||c<=e.minScale,r=0===e.maxScale||c>=e.maxScale;if(e.visible&&(t||i&&r))if(e.sublayers)e.sublayers.forEach(p);else{if(!1===n?.includes(e.id)||u&&(!e.popupTemplate||!e.popupEnabled))return;d.unshift(e)}};if(s?.forEach(p),s&&!d.length)h.layerIds=[];else{const e=(0,E.FN)(d,l,a),t=d.map((e=>{const t=(0,x.f)(i,e);return e.toExportImageJSON(t)}));if(e)h.dynamicLayers=JSON.stringify(t);else{if(s){let e=d.map((({id:e})=>e));n&&(e=e.filter((e=>n.includes(e)))),h.layerIds=e}else n?.length&&(h.layerIds=n);const e=function(e,t){const i=!!e?.length,r=t.filter((e=>null!=e.definitionExpression||i&&null!=e.floorInfo));return r.length?r.map((t=>{const i=(0,x.f)(e,t),r=(0,I._)(i,t.definitionExpression);return{id:t.id,definitionExpression:r??void 0}})):null}(i,d);if(null!=e&&e.length){const t={};for(const i of e)i.definitionExpression&&(t[i.id]=i.definitionExpression);Object.keys(t).length&&(h.layerDefs=JSON.stringify(t))}}}return h}var C,z=i(91957),P=i(37956),V=i(82064),D=i(7283),O=(i(4157),i(39835)),k=i(14685);let j=C=class extends V.wq{static from(e){return(0,D.TJ)(C,e)}constructor(e){super(e),this.dpi=96,this.floors=null,this.gdbVersion=null,this.geometry=null,this.geometryPrecision=null,this.height=400,this.historicMoment=null,this.layerIds=null,this.layerOption="top",this.mapExtent=null,this.maxAllowableOffset=null,this.returnFieldName=!0,this.returnGeometry=!1,this.returnM=!1,this.returnUnformattedValues=!0,this.returnZ=!1,this.spatialReference=null,this.sublayers=null,this.timeExtent=null,this.tolerance=null,this.width=400}writeHistoricMoment(e,t){t.historicMoment=e&&e.getTime()}};(0,r._)([(0,y.Cb)({type:Number,json:{write:!0}})],j.prototype,"dpi",void 0),(0,r._)([(0,y.Cb)()],j.prototype,"floors",void 0),(0,r._)([(0,y.Cb)({type:String,json:{write:!0}})],j.prototype,"gdbVersion",void 0),(0,r._)([(0,y.Cb)({types:z.qM,json:{read:R.im,write:!0}})],j.prototype,"geometry",void 0),(0,r._)([(0,y.Cb)({type:Number,json:{write:!0}})],j.prototype,"geometryPrecision",void 0),(0,r._)([(0,y.Cb)({type:Number,json:{write:!0}})],j.prototype,"height",void 0),(0,r._)([(0,y.Cb)({type:Date})],j.prototype,"historicMoment",void 0),(0,r._)([(0,O.c)("historicMoment")],j.prototype,"writeHistoricMoment",null),(0,r._)([(0,y.Cb)({type:[Number],json:{write:!0}})],j.prototype,"layerIds",void 0),(0,r._)([(0,y.Cb)({type:["top","visible","all","popup"],json:{write:!0}})],j.prototype,"layerOption",void 0),(0,r._)([(0,y.Cb)({type:m.Z,json:{write:!0}})],j.prototype,"mapExtent",void 0),(0,r._)([(0,y.Cb)({type:Number,json:{write:!0}})],j.prototype,"maxAllowableOffset",void 0),(0,r._)([(0,y.Cb)({type:Boolean,json:{write:!0}})],j.prototype,"returnFieldName",void 0),(0,r._)([(0,y.Cb)({type:Boolean,json:{write:!0}})],j.prototype,"returnGeometry",void 0),(0,r._)([(0,y.Cb)({type:Boolean,json:{write:!0}})],j.prototype,"returnM",void 0),(0,r._)([(0,y.Cb)({type:Boolean,json:{write:!0}})],j.prototype,"returnUnformattedValues",void 0),(0,r._)([(0,y.Cb)({type:Boolean,json:{write:!0}})],j.prototype,"returnZ",void 0),(0,r._)([(0,y.Cb)({type:k.Z,json:{write:!0}})],j.prototype,"spatialReference",void 0),(0,r._)([(0,y.Cb)()],j.prototype,"sublayers",void 0),(0,r._)([(0,y.Cb)({type:P.Z,json:{write:!0}})],j.prototype,"timeExtent",void 0),(0,r._)([(0,y.Cb)({type:Number,json:{write:!0}})],j.prototype,"tolerance",void 0),(0,r._)([(0,y.Cb)({type:Number,json:{write:!0}})],j.prototype,"width",void 0),j=C=(0,r._)([(0,g.j)("esri.rest.support.IdentifyParameters")],j);const L=j;var N=i(34248),U=i(59659);let B=class extends V.wq{constructor(e){super(e),this.displayFieldName=null,this.feature=null,this.layerId=null,this.layerName=null}readFeature(e,t){return s.Z.fromJSON({attributes:{...t.attributes},geometry:{...t.geometry}})}writeFeature(e,t){if(!e)return;const{attributes:i,geometry:r}=e;i&&(t.attributes={...i}),null!=r&&(t.geometry=r.toJSON(),t.geometryType=U.P.toJSON(r.type))}};(0,r._)([(0,y.Cb)({type:String,json:{write:!0}})],B.prototype,"displayFieldName",void 0),(0,r._)([(0,y.Cb)({type:s.Z})],B.prototype,"feature",void 0),(0,r._)([(0,N.r)("feature",["attributes","geometry"])],B.prototype,"readFeature",null),(0,r._)([(0,O.c)("feature")],B.prototype,"writeFeature",null),(0,r._)([(0,y.Cb)({type:Number,json:{write:!0}})],B.prototype,"layerId",void 0),(0,r._)([(0,y.Cb)({type:String,json:{write:!0}})],B.prototype,"layerName",void 0),B=(0,r._)([(0,g.j)("esri.rest.support.IdentifyResult")],B);const Z=B;async function G(e,t,i){const r=(n=t,t=L.from(n)).geometry?[t.geometry]:[],s=(0,T.en)(e);var n;return s.path+="/identify",(0,S.aX)(r).then((e=>{const r=F(t,{geometry:e?.[0]}),n=(0,T.cv)({...s.query,f:"json",...r}),o=(0,T.lA)(n,i);return(0,v.Z)(s.path,o).then(H).then((e=>function(e,t){if(!t?.length)return e;const i=new Map;function r(e){i.set(e.id,e),e.sublayers&&e.sublayers.forEach(r)}t.forEach(r);for(const t of e.results)t.feature.sourceLayer=i.get(t.layerId);return e}(e,t.sublayers)))}))}function H(e){const t=e.data;return t.results=t.results||[],t.exceededTransferLimit=Boolean(t.exceededTransferLimit),t.results=t.results.map((e=>Z.fromJSON(e))),t}var q=i(30879),$=i(1759),J=i(59439);let Q=null;function W(e,t){return"tile"===t.type||"map-image"===t.type}let K=class extends n.Z{constructor(e){super(e),this._featuresResolutions=new WeakMap,this.highlightGraphics=null,this.highlightGraphicUpdated=null,this.updateHighlightedFeatures=(0,d.Ds)((async e=>{this.destroyed||this.updatingHandles.addPromise(this._updateHighlightedFeaturesGeometries(e).catch((()=>{})))}))}initialize(){const e=e=>{this.updatingHandles.addPromise(this._updateHighlightedFeaturesSymbols(e).catch((()=>{}))),this.updateHighlightedFeatures(this._highlightGeometriesResolution)};this.addHandles([(0,p.on)((()=>this.highlightGraphics),"change",(t=>e(t.added)),{onListenerAdd:t=>e(t)})])}async fetchPopupFeaturesAtLocation(e,t){const{layerView:{layer:i,view:{scale:r}}}=this;if(!e)throw new l.Z("fetchPopupFeatures:invalid-area","Nothing to fetch without area",{layer:i});const s=function(e,t,i){const r=[];if(!e)return r;const s=e=>{const n=0===e.minScale||t<=e.minScale,o=0===e.maxScale||t>=e.maxScale;if(e.visible&&n&&o)if(e.sublayers)e.sublayers.forEach(s);else if(e.popupEnabled){const t=(0,J.V5)(e,{...i,defaultPopupTemplateEnabled:!1});null!=t&&r.unshift({sublayer:e,popupTemplate:t})}};return e.map(s),r}(i.sublayers,r,t);if(!s.length)return[];const n=await async function(e,t){if(e.capabilities?.operations?.supportsQuery)return!0;try{return await Promise.any(t.map((({sublayer:e})=>e.load().then((()=>e.capabilities.operations.supportsQuery)))))}catch{return!1}}(i,s);if(!((i.capabilities?.operations?.supportsIdentify??1)&&i.version>=10.5||n))throw new l.Z("fetchPopupFeatures:not-supported","query operation is disabled for this service",{layer:i});return n?this._fetchPopupFeaturesUsingQueries(e,s,t):this._fetchPopupFeaturesUsingIdentify(e,s,t)}clearHighlights(){this.highlightGraphics?.removeAll()}highlight(e){const t=this.highlightGraphics;if(!t)return(0,u.kB)();let i=null;if(e instanceof s.Z?i=[e]:a.Z.isCollection(e)&&e.length>0?i=e.toArray():Array.isArray(e)&&e.length>0&&(i=e),i=i?.filter(o.pC),!i?.length)return(0,u.kB)();for(const e of i){const t=e.sourceLayer;null!=t&&"geometryType"in t&&"point"===t.geometryType&&(e.visible=!1)}return t.addMany(i),(0,u.kB)((()=>t.removeMany(i??[])))}async _updateHighlightedFeaturesSymbols(e){const{layerView:{view:t},highlightGraphics:r,highlightGraphicUpdated:s}=this;if(r&&s)for(const n of e){const e=n.sourceLayer&&"renderer"in n.sourceLayer&&n.sourceLayer.renderer;n.sourceLayer&&"geometryType"in n.sourceLayer&&"point"===n.sourceLayer.geometryType&&e&&"getSymbolAsync"in e&&e.getSymbolAsync(n).then((async o=>{o||=new $.Z;let a=null;const l="visualVariables"in e?e.visualVariables?.find((e=>"size"===e.type)):void 0;l&&(Q||(Q=(await Promise.resolve().then(i.bind(i,36496))).getSize),a=Q(l,n,{view:t.type,scale:t.scale,shape:"simple-marker"===o.type?o.style:null})),a||="width"in o&&"height"in o&&null!=o.width&&null!=o.height?Math.max(o.width,o.height):"size"in o?o.size:16,r.includes(n)&&(n.symbol=new $.Z({style:"square",size:a,xoffset:"xoffset"in o?o.xoffset:0,yoffset:"yoffset"in o?o.yoffset:0}),s(n,"symbol"),n.visible=!0)}))}}async _updateHighlightedFeaturesGeometries(e){const{layerView:{layer:t,view:i},highlightGraphics:r,highlightGraphicUpdated:s}=this;if(this._highlightGeometriesResolution=e,!s||!r?.length||!t.capabilities.operations.supportsQuery)return;const n=this._getTargetResolution(e),o=new Map;for(const e of r)if(!this._featuresResolutions.has(e)||this._featuresResolutions.get(e)>n){const t=e.sourceLayer;(0,c.s1)(o,t,(()=>new Map)).set(e.getObjectId(),e)}const a=Array.from(o,(([e,t])=>{const r=e.createQuery();return r.objectIds=[...t.keys()],r.outFields=[e.objectIdField],r.returnGeometry=!0,r.maxAllowableOffset=n,r.outSpatialReference=i.spatialReference,e.queryFeatures(r)})),l=await Promise.all(a);if(!this.destroyed)for(const{features:e}of l)for(const t of e){const e=t.sourceLayer,i=o.get(e).get(t.getObjectId());i&&r.includes(i)&&(i.geometry=t.geometry,s(i,"geometry"),this._featuresResolutions.set(i,n))}}_getTargetResolution(e){const t=e*(0,f.c9)(this.layerView.view.spatialReference),i=t/16;return i<=10?0:e/t*i}async _fetchPopupFeaturesUsingIdentify(e,t,i){const r=await this._createIdentifyParameters(e,t,i);if(null==r)return[];const{results:s}=await G(this.layerView.layer.parsedUrl,r,i);return s.map((e=>e.feature))}async _createIdentifyParameters(e,t,i){const{floors:r,layer:s,timeExtent:n,view:{spatialReference:o,scale:a}}=this.layerView;if(!t.length)return null;await Promise.all(t.map((({sublayer:e})=>e.load(i).catch((()=>{})))));const l=Math.min((0,h.Z)("mapservice-popup-identify-max-tolerance"),s.allSublayers.reduce(((e,t)=>t.renderer?(0,w.k)({renderer:t.renderer,pointerType:i?.pointerType}):e),2)),u=this.createFetchPopupFeaturesQueryGeometry(e,l),c=(0,_.dp)(a,o),d=Math.round(u.width/c),p=new m.Z({xmin:u.center.x-c*d,ymin:u.center.y-c*d,xmax:u.center.x+c*d,ymax:u.center.y+c*d,spatialReference:u.spatialReference});return new L({floors:r,gdbVersion:"gdbVersion"in s?s.gdbVersion:void 0,geometry:e,height:d,layerOption:"popup",mapExtent:p,returnGeometry:!0,spatialReference:o,sublayers:s.sublayers,timeExtent:n,tolerance:l,width:d})}async _fetchPopupFeaturesUsingQueries(e,t,i){const{layerView:{floors:r,timeExtent:s}}=this,n=t.map((async({sublayer:t,popupTemplate:n})=>{if(await t.load(i).catch((()=>{})),t.capabilities&&!t.capabilities.operations.supportsQuery)return[];const o=t.createQuery(),a=(0,w.k)({renderer:t.renderer,pointerType:i?.pointerType}),l=this.createFetchPopupFeaturesQueryGeometry(e,a),u=new Set,[h]=await Promise.all([(0,J.e7)(t,n),t.renderer?.collectRequiredFields(u,t.fieldsIndex)]);(0,d.k_)(i),(0,b.gd)(u,t.fieldsIndex,h);const c=Array.from(u).sort();if(o.geometry=l,o.outFields=c,o.timeExtent=s,r){const e=r.clone(),i=(0,x.f)(e,t);null!=i&&(o.where=o.where?`(${o.where}) AND (${i})`:i)}const p=this._getTargetResolution(l.width/a),f=await function(e){return e.expressionInfos?.length||Array.isArray(e.content)&&e.content.some((e=>"expression"===e.type))?(0,q.LC)():Promise.resolve()}(n);(0,d.k_)(i);const y="point"===t.geometryType||f&&f.arcadeUtils.hasGeometryOperations(n);y||(o.maxAllowableOffset=p);let{features:g}=await t.queryFeatures(o,i);const m=y?0:p;g=await async function(e,t,i){const r=e.renderer;return r&&"defaultSymbol"in r&&!r.defaultSymbol&&(t=r.valueExpression?await Promise.all(t.map((e=>r.getSymbolAsync(e,i).then((t=>t?e:null))))).then((e=>e.filter((e=>null!=e)))):t.filter((e=>null!=r.getSymbol(e)))),t}(t,g,i);for(const e of g)this._featuresResolutions.set(e,m);return g}));return(await Promise.allSettled(n)).reduce(((e,t)=>"fulfilled"===t.status?[...e,...t.value]:e),[]).filter(o.pC)}};(0,r._)([(0,y.Cb)({constructOnly:!0})],K.prototype,"createFetchPopupFeaturesQueryGeometry",void 0),(0,r._)([(0,y.Cb)({constructOnly:!0})],K.prototype,"layerView",void 0),(0,r._)([(0,y.Cb)({constructOnly:!0})],K.prototype,"highlightGraphics",void 0),(0,r._)([(0,y.Cb)({constructOnly:!0})],K.prototype,"highlightGraphicUpdated",void 0),(0,r._)([(0,y.Cb)({constructOnly:!0})],K.prototype,"updatingHandles",void 0),K=(0,r._)([(0,g.j)("esri.views.layers.support.MapService")],K)},59439:function(e,t,i){i.d(t,{V5:function(){return n},e7:function(){return s}});var r=i(14845);async function s(e,t=e.popupTemplate){if(null==t)return[];const i=await t.getRequiredFields(e.fieldsIndex),{lastEditInfoEnabled:s}=t,{objectIdField:n,typeIdField:o,globalIdField:a,relationships:l}=e;if(i.includes("*"))return["*"];const u=s?(0,r.CH)(e):[],h=(0,r.Q0)(e.fieldsIndex,[...i,...u]);return o&&h.push(o),h&&n&&e.fieldsIndex?.has(n)&&!h.includes(n)&&h.push(n),h&&a&&e.fieldsIndex?.has(a)&&!h.includes(a)&&h.push(a),l&&l.forEach((t=>{const{keyField:i}=t;h&&i&&e.fieldsIndex?.has(i)&&!h.includes(i)&&h.push(i)})),h}function n(e,t){return e.popupTemplate?e.popupTemplate:null!=t&&t.defaultPopupTemplateEnabled&&null!=e.defaultPopupTemplate?e.defaultPopupTemplate:null}},99621:function(e,t,i){i.d(t,{K:function(){return n}});i(91957);var r=i(17321),s=(i(59468),i(91772));function n(e,t,i,n=new s.Z){let o=0;if("2d"===i.type)o=t*(i.resolution??0);else if("3d"===i.type){const s=i.overlayPixelSizeInMapUnits(e),n=i.basemapSpatialReference;o=null==n||n.equals(i.spatialReference)?t*s:(0,r.c9)(n)/(0,r.c9)(i.spatialReference)}const a=e.x-o,l=e.y-o,u=e.x+o,h=e.y+o,{spatialReference:c}=i;return n.xmin=Math.min(a,u),n.ymin=Math.min(l,h),n.xmax=Math.max(a,u),n.ymax=Math.max(l,h),n.spatialReference=c,n}new s.Z}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3094.56f7d135e277ff494efb.js b/docs/sentinel1-explorer/3094.56f7d135e277ff494efb.js new file mode 100644 index 00000000..b5d43da6 --- /dev/null +++ b/docs/sentinel1-explorer/3094.56f7d135e277ff494efb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3094],{3094:function(t,e,r){r.r(e),r.d(e,{default:function(){return C}});var o=r(36663),i=r(82064),n=r(81977),a=r(7283),s=(r(4157),r(39994),r(40266)),p=r(14685),l=r(5029),u=r(36441),c=r(25709);r(13802);const y=new c.X({startingPoint:"starting-point",barrier:"barrier"});let d=class extends i.wq{constructor(t){super(t),this.globalId=null,this.isFilterBarrier=!1,this.percentAlong=null,this.terminalId=null,this.type=null}};(0,o._)([(0,n.Cb)({type:String,json:{write:!0}})],d.prototype,"globalId",void 0),(0,o._)([(0,n.Cb)({type:Boolean,json:{write:!0}})],d.prototype,"isFilterBarrier",void 0),(0,o._)([(0,n.Cb)({type:Number,json:{write:!0}})],d.prototype,"percentAlong",void 0),(0,o._)([(0,n.Cb)({type:Number,json:{write:!0}})],d.prototype,"terminalId",void 0),(0,o._)([(0,n.Cb)({type:y.apiValues,json:{type:y.jsonValues,read:{reader:y.read,source:"traceLocationType"},write:{writer:y.write,target:"traceLocationType"}}})],d.prototype,"type",void 0),d=(0,o._)([(0,s.j)("esri.rest.networks.support.TraceLocation")],d);const b=d;var w;let g=w=class extends i.wq{static from(t){return(0,a.TJ)(w,t)}constructor(t){super(t),this.namedTraceConfigurationGlobalId=null,this.gdbVersion=null,this.traceLocations=[],this.moment=null,this.outSpatialReference=null,this.traceConfiguration=null,this.resultTypes=null,this.traceType=null}};(0,o._)([(0,n.Cb)({type:String,json:{read:{source:"traceConfigurationGlobalId"},write:{target:"traceConfigurationGlobalId"}}})],g.prototype,"namedTraceConfigurationGlobalId",void 0),(0,o._)([(0,n.Cb)({type:String,json:{write:!0}})],g.prototype,"gdbVersion",void 0),(0,o._)([(0,n.Cb)({type:[b],json:{write:!0}})],g.prototype,"traceLocations",void 0),(0,o._)([(0,n.Cb)({type:Date,json:{type:Number,write:{writer:(t,e)=>{e.moment=t?t.getTime():null}}}})],g.prototype,"moment",void 0),(0,o._)([(0,n.Cb)({type:p.Z,json:{read:!1}})],g.prototype,"outSpatialReference",void 0),(0,o._)([(0,n.Cb)({type:u.Z,json:{write:!0}})],g.prototype,"traceConfiguration",void 0),(0,o._)([(0,n.Cb)({type:[Object],json:{write:!0}})],g.prototype,"resultTypes",void 0),(0,o._)([(0,n.Cb)({type:l.Fh.apiValues,json:{type:l.Fh.jsonValues,read:l.Fh.read,write:l.Fh.write}})],g.prototype,"traceType",void 0),g=w=(0,o._)([(0,s.j)("esri.rest.networks.support.TraceParameters")],g);const C=g}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3095.8ebb499ea7ee8a999b69.js b/docs/sentinel1-explorer/3095.8ebb499ea7ee8a999b69.js new file mode 100644 index 00000000..b757f637 --- /dev/null +++ b/docs/sentinel1-explorer/3095.8ebb499ea7ee8a999b69.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3095],{83095:function(n,t,e){e.r(t),e.d(t,{a:function(){return f}});var r,a,i,o=e(58340),u={exports:{}};r=u,a="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,i=function(n){var t,e,r;n=n||{},t||(t=void 0!==n?n:{}),t.ready=new Promise((function(n,t){e=n,r=t}));var i=Object.assign({},t),u="./this.program",c="";"undefined"!=typeof document&&document.currentScript&&(c=document.currentScript.src),a&&(c=a),c=0!==c.indexOf("blob:")?c.substr(0,c.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var f,s=t.print||void 0,l=t.printErr||void 0;Object.assign(t,i),i=null,t.thisProgram&&(u=t.thisProgram),t.wasmBinary&&(f=t.wasmBinary),t.noExitRuntime,"object"!=typeof WebAssembly&&R("no native wasm support detected");var h,d,p,v,y,m,g,b,w,A,T,_,C=!1,P="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function k(n,t,e){var r=t+e;for(e=t;n[e]&&!(e>=r);)++e;if(16(a=224==(240&a)?(15&a)<<12|i<<6|o:(7&a)<<18|i<<12|o<<6|63&n[t++])?r+=String.fromCharCode(a):(a-=65536,r+=String.fromCharCode(55296|a>>10,56320|1023&a))}}else r+=String.fromCharCode(a)}return r}function $(n,t,e,r){if(0=i&&(i=65536+((1023&i)<<10)|1023&n.charCodeAt(++a)),127>=i){if(e>=r)break;t[e++]=i}else{if(2047>=i){if(e+1>=r)break;t[e++]=192|i>>6}else{if(65535>=i){if(e+2>=r)break;t[e++]=224|i>>12}else{if(e+3>=r)break;t[e++]=240|i>>18,t[e++]=128|i>>12&63}t[e++]=128|i>>6&63}t[e++]=128|63&i}}t[e]=0}}function W(n){for(var t=0,e=0;e=r?t++:2047>=r?t+=2:55296<=r&&57343>=r?(t+=4,++e):t+=3}return t}function E(){var n=h.buffer;d=n,t.HEAP8=p=new Int8Array(n),t.HEAP16=y=new Int16Array(n),t.HEAP32=g=new Int32Array(n),t.HEAPU8=v=new Uint8Array(n),t.HEAPU16=m=new Uint16Array(n),t.HEAPU32=b=new Uint32Array(n),t.HEAPF32=w=new Float32Array(n),t.HEAPF64=_=new Float64Array(n),t.HEAP64=A=new BigInt64Array(n),t.HEAPU64=T=new BigUint64Array(n)}var O,j=[],S=[],F=[];function D(){var n=t.preRun.shift();j.unshift(n)}var M,U=0,I=null;function R(n){throw t.onAbort&&t.onAbort(n),l(n="Aborted("+n+")"),C=!0,n=new WebAssembly.RuntimeError(n+". Build with -sASSERTIONS for more info."),r(n),n}function x(){return M.startsWith("data:application/octet-stream;base64,")}if(M="arcgis-knowledge-client-core.wasm",!x()){var Y=M;M=t.locateFile?t.locateFile(Y,c):c+Y}function H(){var n=M;try{if(n==M&&f)return new Uint8Array(f);throw"both async and sync fetching of the wasm failed"}catch(n){R(n)}}function V(n){for(;0>2]=n},this.Oa=function(n){b[this.fa+8>>2]=n},this.Ua=function(){g[this.fa>>2]=0},this.Ma=function(){p[this.fa+12>>0]=0},this.Va=function(){p[this.fa+13>>0]=0},this.Ia=function(n,t){this.La(),this.Ya(n),this.Oa(t),this.Ua(),this.Ma(),this.Va()},this.La=function(){b[this.fa+16>>2]=0}}var z={};function q(n){for(;n.length;){var t=n.pop();n.pop()(t)}}function N(n){return this.fromWireType(g[n>>2])}var L={},G={},J={};function X(n){if(void 0===n)return"_unknown";var t=(n=n.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&57>=t?"_"+n:n}function Z(n,t){return n=X(n),function(){return t.apply(this,arguments)}}function K(n){var t=Error,e=Z(n,(function(t){this.name=n,this.message=t,void 0!==(t=Error(t).stack)&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},e}var Q=void 0;function nn(n){throw new Q(n)}function tn(n,t,e){function r(t){(t=e(t)).length!==n.length&&nn("Mismatched type converter count");for(var r=0;r{G.hasOwnProperty(n)?a[t]=G[n]:(i.push(n),L.hasOwnProperty(n)||(L[n]=[]),L[n].push((()=>{a[t]=G[n],++o===i.length&&r(a)})))})),0===i.length&&r(a)}function en(n){if(null===n)return"null";var t=typeof n;return"object"===t||"array"===t||"function"===t?n.toString():""+n}var rn=void 0;function an(n){for(var t="";v[n];)t+=rn[v[n++]];return t}var on=void 0;function un(n){throw new on(n)}function cn(n,t,e={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var r=t.name;if(n||un('type "'+r+'" must have a positive integer typeid pointer'),G.hasOwnProperty(n)){if(e.Wa)return;un("Cannot register type '"+r+"' twice")}G[n]=t,delete J[n],L.hasOwnProperty(n)&&(t=L[n],delete L[n],t.forEach((n=>n())))}function fn(n,t,e){switch(t){case 0:return e?function(n){return p[n]}:function(n){return v[n]};case 1:return e?function(n){return y[n>>1]}:function(n){return m[n>>1]};case 2:return e?function(n){return g[n>>2]}:function(n){return b[n>>2]};case 3:return e?function(n){return A[n>>3]}:function(n){return T[n>>3]};default:throw new TypeError("Unknown integer type: "+n)}}function sn(n){switch(n){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+n)}}function ln(n){un(n.da.ga.ea.name+" instance already deleted")}var hn=!1;function dn(){}function pn(n){--n.count.value,0===n.count.value&&(n.ia?n.ka.na(n.ia):n.ga.ea.na(n.fa))}function vn(n,t,e){return t===e?n:void 0===e.la||null===(n=vn(n,t,e.la))?null:e.Ka(n)}var yn={},mn=[];function gn(){for(;mn.length;){var n=mn.pop();n.da.ta=!1,n.delete()}}var bn=void 0,wn={};function An(n,t){return t.ga&&t.fa||nn("makeClassHandle requires ptr and ptrType"),!!t.ka!=!!t.ia&&nn("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Tn(Object.create(n,{da:{value:t}}))}function Tn(n){return"undefined"==typeof FinalizationRegistry?(Tn=n=>n,n):(hn=new FinalizationRegistry((n=>{pn(n.da)})),dn=n=>{hn.unregister(n)},(Tn=n=>{var t=n.da;return t.ia&&hn.register(n,{da:t},n),n})(n))}function _n(){}function Cn(n,t,e){if(void 0===n[t].ha){var r=n[t];n[t]=function(){return n[t].ha.hasOwnProperty(arguments.length)||un("Function '"+e+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+n[t].ha+")!"),n[t].ha[arguments.length].apply(this,arguments)},n[t].ha=[],n[t].ha[r.sa]=r}}function Pn(n,e,r){t.hasOwnProperty(n)?((void 0===r||void 0!==t[n].ha&&void 0!==t[n].ha[r])&&un("Cannot register public name '"+n+"' twice"),Cn(t,n,n),t.hasOwnProperty(r)&&un("Cannot register multiple overloads of a function with the same number of arguments ("+r+")!"),t[n].ha[r]=e):(t[n]=e,void 0!==r&&(t[n].kb=r))}function kn(n,t,e,r,a,i,o,u){this.name=n,this.constructor=t,this.oa=e,this.na=r,this.la=a,this.Pa=i,this.va=o,this.Ka=u,this.$a=[]}function $n(n,t,e){for(;t!==e;)t.va||un("Expected null or instance of "+e.name+", got an instance of "+t.name),n=t.va(n),t=t.la;return n}function Wn(n,t){return null===t?(this.Aa&&un("null is not a valid "+this.name),0):(t.da||un('Cannot pass "'+en(t)+'" as a '+this.name),t.da.fa||un("Cannot pass deleted object as a pointer of type "+this.name),$n(t.da.fa,t.da.ga.ea,this.ea))}function En(n,t){if(null===t){if(this.Aa&&un("null is not a valid "+this.name),this.xa){var e=this.Ba();return null!==n&&n.push(this.na,e),e}return 0}if(t.da||un('Cannot pass "'+en(t)+'" as a '+this.name),t.da.fa||un("Cannot pass deleted object as a pointer of type "+this.name),!this.wa&&t.da.ga.wa&&un("Cannot convert argument of type "+(t.da.ka?t.da.ka.name:t.da.ga.name)+" to parameter type "+this.name),e=$n(t.da.fa,t.da.ga.ea,this.ea),this.xa)switch(void 0===t.da.ia&&un("Passing raw pointer to smart pointer is illegal"),this.fb){case 0:t.da.ka===this?e=t.da.ia:un("Cannot convert argument of type "+(t.da.ka?t.da.ka.name:t.da.ga.name)+" to parameter type "+this.name);break;case 1:e=t.da.ia;break;case 2:if(t.da.ka===this)e=t.da.ia;else{var r=t.clone();e=this.ab(e,qn((function(){r.delete()}))),null!==n&&n.push(this.na,e)}break;default:un("Unsupporting sharing policy")}return e}function On(n,t){return null===t?(this.Aa&&un("null is not a valid "+this.name),0):(t.da||un('Cannot pass "'+en(t)+'" as a '+this.name),t.da.fa||un("Cannot pass deleted object as a pointer of type "+this.name),t.da.ga.wa&&un("Cannot convert argument of type "+t.da.ga.name+" to parameter type "+this.name),$n(t.da.fa,t.da.ga.ea,this.ea))}function jn(n,t,e,r,a,i,o,u,c,f,s){this.name=n,this.ea=t,this.Aa=e,this.wa=r,this.xa=a,this.Za=i,this.fb=o,this.Ga=u,this.Ba=c,this.ab=f,this.na=s,a||void 0!==t.la?this.toWireType=En:(this.toWireType=r?Wn:On,this.ja=null)}function Sn(n,e,r){t.hasOwnProperty(n)||nn("Replacing nonexistant public symbol"),void 0!==t[n].ha&&void 0!==r?t[n].ha[r]=e:(t[n]=e,t[n].sa=r)}var Fn=[];function Dn(n,t){n=an(n);var e=Fn[t];return e||(t>=Fn.length&&(Fn.length=t+1),Fn[t]=e=O.get(t)),"function"!=typeof e&&un("unknown function pointer with signature "+n+": "+t),e}var Mn=void 0;function Un(n){var t=an(n=Tt(n));return At(n),t}function In(n,t){var e=[],r={};throw t.forEach((function n(t){r[t]||G[t]||(J[t]?J[t].forEach(n):(e.push(t),r[t]=!0))})),new Mn(n+": "+e.map(Un).join([", "]))}function Rn(n,t,e,r,a){var i=t.length;2>i&&un("argTypes array size mismatch! Must at least get return value and 'this' types!");var o=null!==t[1]&&null!==e,u=!1;for(e=1;e>2]);return e}function Yn(n,t,e){return n instanceof Object||un(e+' with invalid "this": '+n),n instanceof t.ea.constructor||un(e+' incompatible with "this" of type '+n.constructor.name),n.da.fa||un("cannot call emscripten binding method "+e+" on deleted object"),$n(n.da.fa,n.da.ga.ea,t.ea)}var Hn=[],Vn=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Bn(n){4(n||un("Cannot use deleted val. handle = "+n),Vn[n].value),qn=n=>{switch(n){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Hn.length?Hn.pop():Vn.length;return Vn[t]={Ca:1,value:n},t}};function Nn(n,t,e){switch(t){case 0:return function(n){return this.fromWireType((e?p:v)[n])};case 1:return function(n){return this.fromWireType((e?y:m)[n>>1])};case 2:return function(n){return this.fromWireType((e?g:b)[n>>2])};default:throw new TypeError("Unknown integer type: "+n)}}function Ln(n,t){var e=G[n];return void 0===e&&un(t+" has unknown type "+Un(n)),e}function Gn(n,t){switch(t){case 2:return function(n){return this.fromWireType(w[n>>2])};case 3:return function(n){return this.fromWireType(_[n>>3])};default:throw new TypeError("Unknown float type: "+n)}}var Jn="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function Xn(n,t){for(var e=n>>1,r=e+t/2;!(e>=r)&&m[e];)++e;if(32<(e<<=1)-n&&Jn)return Jn.decode(v.subarray(n,e));for(e="",r=0;!(r>=t/2);++r){var a=y[n+2*r>>1];if(0==a)break;e+=String.fromCharCode(a)}return e}function Zn(n,t,e){if(void 0===e&&(e=2147483647),2>e)return 0;var r=t;e=(e-=2)<2*n.length?e/2:n.length;for(var a=0;a>1]=n.charCodeAt(a),t+=2;return y[t>>1]=0,t-r}function Kn(n){return 2*n.length}function Qn(n,t){for(var e=0,r="";!(e>=t/4);){var a=g[n+4*e>>2];if(0==a)break;++e,65536<=a?(a-=65536,r+=String.fromCharCode(55296|a>>10,56320|1023&a)):r+=String.fromCharCode(a)}return r}function nt(n,t,e){if(void 0===e&&(e=2147483647),4>e)return 0;var r=t;e=r+e-4;for(var a=0;a=i&&(i=65536+((1023&i)<<10)|1023&n.charCodeAt(++a)),g[t>>2]=i,(t+=4)+4>e)break}return g[t>>2]=0,t-r}function tt(n){for(var t=0,e=0;e=r&&++e,t+=4}return t}function et(n,t){for(var e=Array(n),r=0;r>2],"parameter "+r);return e}var rt={};function at(n){var t=rt[n];return void 0===t?an(n):t}var it=[];function ot(){function n(n){n.$$$embind_global$$$=n;var t="object"==typeof $$$embind_global$$$&&n.$$$embind_global$$$==n;return t||delete n.$$$embind_global$$$,t}if("object"==typeof globalThis)return globalThis;if("object"==typeof $$$embind_global$$$)return $$$embind_global$$$;if("object"==typeof o.c&&n(o.c)?$$$embind_global$$$=o.c:"object"==typeof self&&n(self)&&($$$embind_global$$$=self),"object"==typeof $$$embind_global$$$)return $$$embind_global$$$;throw Error("unable to get global object.")}var ut=[],ct={};function ft(){if(!st){var n,t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:u||"./this.program"};for(n in ct)void 0===ct[n]?delete t[n]:t[n]=ct[n];var e=[];for(n in t)e.push(n+"="+t[n]);st=e}return st}var st,lt=[null,[],[]];function ht(n){return 0==n%4&&(0!=n%100||0==n%400)}var dt=[31,29,31,30,31,30,31,31,30,31,30,31],pt=[31,28,31,30,31,30,31,31,30,31,30,31];function vt(n,t,e,r){function a(n,t,e){for(n="number"==typeof n?n.toString():n||"";n.lengthn?-1:0r-n.getDate())){n.setDate(n.getDate()+t);break}t-=r-n.getDate()+1,n.setDate(1),11>e?n.setMonth(e+1):(n.setMonth(0),n.setFullYear(n.getFullYear()+1))}return e=new Date(n.getFullYear()+1,0,4),t=u(new Date(n.getFullYear(),0,4)),e=u(e),0>=o(t,n)?0>=o(e,n)?n.getFullYear()+1:n.getFullYear():n.getFullYear()-1}var f=g[r+40>>2];for(var s in r={ib:g[r>>2],hb:g[r+4>>2],ya:g[r+8>>2],Da:g[r+12>>2],za:g[r+16>>2],ra:g[r+20>>2],ma:g[r+24>>2],qa:g[r+28>>2],lb:g[r+32>>2],gb:g[r+36>>2],jb:f&&f?k(v,f):""},e=e?k(v,e):"",f={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})e=e.replace(new RegExp(s,"g"),f[s]);var l="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),h="January February March April May June July August September October November December".split(" ");for(s in f={"%a":function(n){return l[n.ma].substring(0,3)},"%A":function(n){return l[n.ma]},"%b":function(n){return h[n.za].substring(0,3)},"%B":function(n){return h[n.za]},"%C":function(n){return i((n.ra+1900)/100|0,2)},"%d":function(n){return i(n.Da,2)},"%e":function(n){return a(n.Da,2," ")},"%g":function(n){return c(n).toString().substring(2)},"%G":function(n){return c(n)},"%H":function(n){return i(n.ya,2)},"%I":function(n){return 0==(n=n.ya)?n=12:12n.ya?"AM":"PM"},"%S":function(n){return i(n.ib,2)},"%t":function(){return"\t"},"%u":function(n){return n.ma||7},"%U":function(n){return i(Math.floor((n.qa+7-n.ma)/7),2)},"%V":function(n){var t=Math.floor((n.qa+7-(n.ma+6)%7)/7);if(2>=(n.ma+371-n.qa-2)%7&&t++,t)53==t&&(4==(e=(n.ma+371-n.qa)%7)||3==e&&ht(n.ra)||(t=1));else{t=52;var e=(n.ma+7-n.qa-1)%7;(4==e||5==e&&ht(n.ra%400-1))&&t++}return i(t,2)},"%w":function(n){return n.ma},"%W":function(n){return i(Math.floor((n.qa+7-(n.ma+6)%7)/7),2)},"%y":function(n){return(n.ra+1900).toString().substring(2)},"%Y":function(n){return n.ra+1900},"%z":function(n){var t=0<=(n=n.gb);return n=Math.abs(n)/60,(t?"+":"-")+String("0000"+(n/60*100+n%60)).slice(-4)},"%Z":function(n){return n.jb},"%%":function(){return"%"}},e=e.replace(/%%/g,"\0\0"),f)e.includes(s)&&(e=e.replace(new RegExp(s,"g"),f[s](r)));return(s=function(n){var t=Array(W(n)+1);return $(n,t,0,t.length),t}(e=e.replace(/\0\0/g,"%"))).length>t?0:(p.set(s,n),s.length-1)}Q=t.InternalError=K("InternalError");for(var yt=Array(256),mt=0;256>mt;++mt)yt[mt]=String.fromCharCode(mt);rn=yt,on=t.BindingError=K("BindingError"),_n.prototype.isAliasOf=function(n){if(!(this instanceof _n&&n instanceof _n))return!1;var t=this.da.ga.ea,e=this.da.fa,r=n.da.ga.ea;for(n=n.da.fa;t.la;)e=t.va(e),t=t.la;for(;r.la;)n=r.va(n),r=r.la;return t===r&&e===n},_n.prototype.clone=function(){if(this.da.fa||ln(this),this.da.ua)return this.da.count.value+=1,this;var n=Tn,t=Object,e=t.create,r=Object.getPrototypeOf(this),a=this.da;return(n=n(e.call(t,r,{da:{value:{count:a.count,ta:a.ta,ua:a.ua,fa:a.fa,ga:a.ga,ia:a.ia,ka:a.ka}}}))).da.count.value+=1,n.da.ta=!1,n},_n.prototype.delete=function(){this.da.fa||ln(this),this.da.ta&&!this.da.ua&&un("Object already scheduled for deletion"),dn(this),pn(this.da),this.da.ua||(this.da.ia=void 0,this.da.fa=void 0)},_n.prototype.isDeleted=function(){return!this.da.fa},_n.prototype.deleteLater=function(){return this.da.fa||ln(this),this.da.ta&&!this.da.ua&&un("Object already scheduled for deletion"),mn.push(this),1===mn.length&&bn&&bn(gn),this.da.ta=!0,this},t.getInheritedInstanceCount=function(){return Object.keys(wn).length},t.getLiveInheritedInstances=function(){var n,t=[];for(n in wn)wn.hasOwnProperty(n)&&t.push(wn[n]);return t},t.flushPendingDeletes=gn,t.setDelayFunction=function(n){bn=n,mn.length&&bn&&bn(gn)},jn.prototype.Qa=function(n){return this.Ga&&(n=this.Ga(n)),n},jn.prototype.Ea=function(n){this.na&&this.na(n)},jn.prototype.argPackAdvance=8,jn.prototype.readValueFromPointer=N,jn.prototype.deleteObject=function(n){null!==n&&n.delete()},jn.prototype.fromWireType=function(n){function t(){return this.xa?An(this.ea.oa,{ga:this.Za,fa:e,ka:this,ia:n}):An(this.ea.oa,{ga:this,fa:n})}var e=this.Qa(n);if(!e)return this.Ea(n),null;var r=function(n,t){for(void 0===t&&un("ptr should not be undefined");n.la;)t=n.va(t),n=n.la;return wn[t]}(this.ea,e);if(void 0!==r)return 0===r.da.count.value?(r.da.fa=e,r.da.ia=n,r.clone()):(r=r.clone(),this.Ea(n),r);if(r=this.ea.Pa(e),!(r=yn[r]))return t.call(this);r=this.wa?r.Ha:r.pointerType;var a=vn(e,this.ea,r.ea);return null===a?t.call(this):this.xa?An(r.ea.oa,{ga:r,fa:a,ka:this,ia:n}):An(r.ea.oa,{ga:r,fa:a})},Mn=t.UnboundTypeError=K("UnboundTypeError"),t.count_emval_handles=function(){for(var n=0,t=5;tn.Ta)).concat(a.map((n=>n.cb))),(n=>{var i={};return a.forEach(((t,e)=>{var r=n[e],o=t.Ra,u=t.Sa,c=n[e+a.length],f=t.bb,s=t.eb;i[t.Na]={read:n=>r.fromWireType(o(u,n)),write:(n,t)=>{var e=[];f(s,n,c.toWireType(e,t)),q(e)}}})),[{name:t.name,fromWireType:function(n){var t,e={};for(t in i)e[t]=i[t].read(n);return r(n),e},toWireType:function(n,t){for(var a in i)if(!(a in t))throw new TypeError('Missing field: "'+a+'"');var o=e();for(a in i)i[a].write(o,t[a]);return null!==n&&n.push(r,o),o},argPackAdvance:8,readValueFromPointer:N,ja:r}]}))},E:function(n,t,e,r,a){t=an(t),e=sn(e);var i=-1!=t.indexOf("u");i&&(a=(1n<<64n)-1n),cn(n,{name:t,fromWireType:function(n){return n},toWireType:function(n,e){if("bigint"!=typeof e&&"number"!=typeof e)throw new TypeError('Cannot convert "'+en(e)+'" to '+this.name);if(ea)throw new TypeError('Passing a number "'+en(e)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+r+", "+a+"]!");return e},argPackAdvance:8,readValueFromPointer:fn(t,e,!i),ja:null})},S:function(n,t,e,r,a){var i=sn(e);cn(n,{name:t=an(t),fromWireType:function(n){return!!n},toWireType:function(n,t){return t?r:a},argPackAdvance:8,readValueFromPointer:function(n){if(1===e)var r=p;else if(2===e)r=y;else{if(4!==e)throw new TypeError("Unknown boolean type size: "+t);r=g}return this.fromWireType(r[n>>i])},ja:null})},f:function(n,t,e,r,a,i,o,u,c,f,s,l,h){s=an(s),i=Dn(a,i),u&&(u=Dn(o,u)),f&&(f=Dn(c,f)),h=Dn(l,h);var d=X(s);Pn(d,(function(){In("Cannot construct "+s+" due to unbound types",[r])})),tn([n,t,e],r?[r]:[],(function(t){if(t=t[0],r)var e=t.ea,a=e.oa;else a=_n.prototype;t=Z(d,(function(){if(Object.getPrototypeOf(this)!==o)throw new on("Use 'new' to construct "+s);if(void 0===c.pa)throw new on(s+" has no accessible constructor");var n=c.pa[arguments.length];if(void 0===n)throw new on("Tried to invoke ctor of "+s+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(c.pa).toString()+") parameters instead!");return n.apply(this,arguments)}));var o=Object.create(a,{constructor:{value:t}});t.prototype=o;var c=new kn(s,t,o,h,e,i,u,f);e=new jn(s,c,!0,!1,!1),a=new jn(s+"*",c,!1,!1,!1);var l=new jn(s+" const*",c,!1,!0,!1);return yn[n]={pointerType:a,Ha:l},Sn(d,t),[e,a,l]}))},o:function(n,t,e,r,a,i,o){var u=xn(e,r);t=an(t),i=Dn(a,i),tn([],[n],(function(n){function r(){In("Cannot call "+a+" due to unbound types",u)}var a=(n=n[0]).name+"."+t;t.startsWith("@@")&&(t=Symbol[t.substring(2)]);var c=n.ea.constructor;return void 0===c[t]?(r.sa=e-1,c[t]=r):(Cn(c,t,a),c[t].ha[e-1]=r),tn([],u,(function(n){return n=Rn(a,[n[0],null].concat(n.slice(1)),null,i,o),void 0===c[t].ha?(n.sa=e-1,c[t]=n):c[t].ha[e-1]=n,[]})),[]}))},i:function(n,t,e,r,a,i){0{In("Cannot construct "+n.name+" due to unbound types",o)},tn([],o,(function(r){return r.splice(1,0,null),n.ea.pa[t-1]=Rn(e,r,null,a,i),[]})),[]}))},b:function(n,t,e,r,a,i,o,u){var c=xn(e,r);t=an(t),i=Dn(a,i),tn([],[n],(function(n){function r(){In("Cannot call "+a+" due to unbound types",c)}var a=(n=n[0]).name+"."+t;t.startsWith("@@")&&(t=Symbol[t.substring(2)]),u&&n.ea.$a.push(t);var f=n.ea.oa,s=f[t];return void 0===s||void 0===s.ha&&s.className!==n.name&&s.sa===e-2?(r.sa=e-2,r.className=n.name,f[t]=r):(Cn(f,t,a),f[t].ha[e-2]=r),tn([],c,(function(r){return r=Rn(a,r,n,i,o),void 0===f[t].ha?(r.sa=e-2,f[t]=r):f[t].ha[e-2]=r,[]})),[]}))},c:function(n,t,e,r,a,i,o,u,c,f){t=an(t),a=Dn(r,a),tn([],[n],(function(n){var r=(n=n[0]).name+"."+t,s={get:function(){In("Cannot access "+r+" due to unbound types",[e,o])},enumerable:!0,configurable:!0};return s.set=c?()=>{In("Cannot access "+r+" due to unbound types",[e,o])}:()=>{un(r+" is a read-only property")},Object.defineProperty(n.ea.oa,t,s),tn([],c?[e,o]:[e],(function(e){var o=e[0],s={get:function(){var t=Yn(this,n,r+" getter");return o.fromWireType(a(i,t))},enumerable:!0};if(c){c=Dn(u,c);var l=e[1];s.set=function(t){var e=Yn(this,n,r+" setter"),a=[];c(f,e,l.toWireType(a,t)),q(a)}}return Object.defineProperty(n.ea.oa,t,s),[]})),[]}))},R:function(n,t){cn(n,{name:t=an(t),fromWireType:function(n){var t=zn(n);return Bn(n),t},toWireType:function(n,t){return qn(t)},argPackAdvance:8,readValueFromPointer:N,ja:null})},s:function(n,t,e,r){function a(){}e=sn(e),t=an(t),a.values={},cn(n,{name:t,constructor:a,fromWireType:function(n){return this.constructor.values[n]},toWireType:function(n,t){return t.value},argPackAdvance:8,readValueFromPointer:Nn(t,e,r),ja:null}),Pn(t,a)},e:function(n,t,e){var r=Ln(n,"enum");t=an(t),n=r.constructor,r=Object.create(r.constructor.prototype,{value:{value:e},constructor:{value:Z(r.name+"_"+t,(function(){}))}}),n.values[e]=r,n[t]=r},D:function(n,t,e){e=sn(e),cn(n,{name:t=an(t),fromWireType:function(n){return n},toWireType:function(n,t){return t},argPackAdvance:8,readValueFromPointer:Gn(t,e),ja:null})},V:function(n,t,e,r,a,i){var o=xn(t,e);n=an(n),a=Dn(r,a),Pn(n,(function(){In("Cannot call "+n+" due to unbound types",o)}),t-1),tn([],o,(function(e){return Sn(n,Rn(n,[e[0],null].concat(e.slice(1)),null,a,i),t-1),[]}))},w:function(n,t,e,r,a){t=an(t),-1===a&&(a=4294967295),a=sn(e);var i=n=>n;if(0===r){var o=32-8*e;i=n=>n<>>o}e=t.includes("unsigned")?function(n,t){return t>>>0}:function(n,t){return t},cn(n,{name:t,fromWireType:i,toWireType:e,argPackAdvance:8,readValueFromPointer:fn(t,a,0!==r),ja:null})},q:function(n,t,e){function r(n){var t=b;return new a(d,t[1+(n>>=2)],t[n])}var a=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];cn(n,{name:e=an(e),fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{Wa:!0})},h:function(n,t,e,r,a,i,o,u,c,f,s,l){e=an(e),i=Dn(a,i),u=Dn(o,u),f=Dn(c,f),l=Dn(s,l),tn([n],[t],(function(n){return n=n[0],[new jn(e,n.ea,!1,!1,!0,n,r,i,u,f,l)]}))},F:function(n,t){var e="std::string"===(t=an(t));cn(n,{name:t,fromWireType:function(n){var t=b[n>>2],r=n+4;if(e)for(var a=r,i=0;i<=t;++i){var o=r+i;if(i==t||0==v[o]){if(a=a?k(v,a,o-a):"",void 0===u)var u=a;else u+=String.fromCharCode(0),u+=a;a=o+1}}else{for(u=Array(t),i=0;i>2]=a,e&&r)$(t,v,o,a+1);else if(r)for(r=0;rm,u=1;else 4===t&&(r=Qn,a=nt,i=tt,o=()=>b,u=2);cn(n,{name:e,fromWireType:function(n){for(var e,a=b[n>>2],i=o(),c=n+4,f=0;f<=a;++f){var s=n+4+f*t;f!=a&&0!=i[s>>u]||(c=r(c,s-c),void 0===e?e=c:(e+=String.fromCharCode(0),e+=c),c=s+t)}return At(n),e},toWireType:function(n,r){"string"!=typeof r&&un("Cannot pass non-string to C++ string type "+e);var o=i(r),c=wt(4+o+t);return b[c>>2]=o>>u,a(r,c+4,o+t),null!==n&&n.push(At,c),c},argPackAdvance:8,readValueFromPointer:N,ja:function(n){At(n)}})},v:function(n,t,e,r,a,i){z[n]={name:an(t),Ba:Dn(e,r),na:Dn(a,i),Fa:[]}},l:function(n,t,e,r,a,i,o,u,c,f){z[n].Fa.push({Na:an(t),Ta:e,Ra:Dn(r,a),Sa:i,cb:o,bb:Dn(u,c),eb:f})},T:function(n,t){cn(n,{Xa:!0,name:t=an(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},k:function(n,t,e){n=zn(n),t=Ln(t,"emval::as");var r=[],a=qn(r);return b[e>>2]=a,t.toWireType(r,n)},z:function(n,t){return n=zn(n),(t=Ln(t,"emval::as")).toWireType(null,n)},W:function(n,t,e,r){n=zn(n),e=et(t,e);for(var a=Array(t),i=0;i>2]=qn(i),n(t,e,i,a)},G:function(n,t,e,r){(n=it[n])(t=zn(t),e=at(e),null,r)},a:Bn,H:function(n){return 0===n?qn(ot()):(n=at(n),qn(ot()[n]))},B:function(n,t){var e=et(n,t),r=e[0];t=r.name+"_$"+e.slice(1).map((function(n){return n.name})).join("_")+"$";var a=ut[t];if(void 0!==a)return a;var i=Array(n-1);return a=function(n){var t=it.length;return it.push(n),t}(((t,a,o,u)=>{for(var c=0,f=0;f>>=0))return!1;for(var e=1;4>=e;e*=2){var r=t*(1+.2/e);r=Math.min(r,n+100663296);var a=Math;r=Math.max(n,r),a=a.min.call(a,2147483648,r+(65536-r%65536)%65536);n:{try{h.grow(a-d.byteLength+65535>>>16),E();var i=1;break n}catch(n){}i=void 0}if(i)return!0}return!1},K:function(n,t){var e=0;return ft().forEach((function(r,a){var i=t+e;for(a=b[n+4*a>>2]=i,i=0;i>0]=r.charCodeAt(i);p[a>>0]=0,e+=r.length+1})),0},L:function(n,t){var e=ft();b[n>>2]=e.length;var r=0;return e.forEach((function(n){r+=n.length+1})),b[t>>2]=r,0},Q:function(){return 52},P:function(){return 70},O:function(n,t,e,r){for(var a=0,i=0;i>2],u=b[t+4>>2];t+=8;for(var c=0;c>2]=a,0},J:function(n,t,e,r){return vt(n,t,e,r)}};!function(){function n(n){t.asm=n.exports,h=t.asm.X,E(),O=t.asm.ba,S.unshift(t.asm.Y),U--,t.monitorRunDependencies&&t.monitorRunDependencies(U),0==U&&I&&(n=I,I=null,n())}function e(t){n(t.instance)}function a(n){return(f||"function"!=typeof fetch?Promise.resolve().then((function(){return H()})):fetch(M,{credentials:"same-origin"}).then((function(n){if(!n.ok)throw"failed to load wasm binary file at '"+M+"'";return n.arrayBuffer()})).catch((function(){return H()}))).then((function(n){return WebAssembly.instantiate(n,i)})).then((function(n){return n})).then(n,(function(n){l("failed to asynchronously prepare wasm: "+n),R(n)}))}var i={a:gt};if(U++,t.monitorRunDependencies&&t.monitorRunDependencies(U),t.instantiateWasm)try{return t.instantiateWasm(i,n)}catch(n){l("Module.instantiateWasm callback failed with error: "+n),r(n)}(f||"function"!=typeof WebAssembly.instantiateStreaming||x()||"function"!=typeof fetch?a(e):fetch(M,{credentials:"same-origin"}).then((function(n){return WebAssembly.instantiateStreaming(n,i).then(e,(function(n){return l("wasm streaming compile failed: "+n),l("falling back to ArrayBuffer instantiation"),a(e)}))}))).catch(r)}(),t.___wasm_call_ctors=function(){return(t.___wasm_call_ctors=t.asm.Y).apply(null,arguments)};var bt,wt=t._malloc=function(){return(wt=t._malloc=t.asm.Z).apply(null,arguments)},At=t._free=function(){return(At=t._free=t.asm._).apply(null,arguments)},Tt=t.___getTypeName=function(){return(Tt=t.___getTypeName=t.asm.$).apply(null,arguments)};function _t(){function n(){if(!bt&&(bt=!0,t.calledRun=!0,!C)){if(V(S),e(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;){var n=t.postRun.shift();F.unshift(n)}V(F)}}if(!(0{(0,o.l)(e)&&r&&e.originOf(t)!==r&&e.updateOrigin(t,r)}))}},71760:function(e,t,r){function o(e){return e&&"getAtOrigin"in e&&"originOf"in e}r.d(t,{l:function(){return o}})},73108:function(e,t,r){r.r(t),r.d(t,{default:function(){return te}});var o=r(36663),n=r(80020),i=r(66341),s=r(70375),a=r(67134),l=r(13802),p=r(15842),u=r(86745),d=r(78668),c=r(3466),y=r(81977),h=(r(39994),r(34248)),f=r(40266),m=r(39835),v=r(38481),b=r(91223),w=r(87232),g=r(63989),_=r(43330),S=r(18241),C=r(95874),x=r(93902),I=r(7283),T=r(79438),j=r(82064);r(4157);let R=class extends j.wq{constructor(e){super(e),this.field=null,this.type=null}clone(){return null}};(0,o._)([(0,y.Cb)({type:String,json:{write:{enabled:!0,isRequired:!0}}})],R.prototype,"field",void 0),(0,o._)([(0,y.Cb)({readOnly:!0,nonNullable:!0,json:{read:!1}})],R.prototype,"type",void 0),R=(0,o._)([(0,f.j)("esri.layers.pointCloudFilters.PointCloudFilter")],R);const Z=R;var P;let V=P=class extends Z{constructor(e){super(e),this.requiredClearBits=null,this.requiredSetBits=null,this.type="bitfield"}clone(){return new P({field:this.field,requiredClearBits:(0,a.d9)(this.requiredClearBits),requiredSetBits:(0,a.d9)(this.requiredSetBits)})}};(0,o._)([(0,y.Cb)({type:[I.z8],json:{write:{enabled:!0,overridePolicy(){return{enabled:!0,isRequired:!this.requiredSetBits}}}}})],V.prototype,"requiredClearBits",void 0),(0,o._)([(0,y.Cb)({type:[I.z8],json:{write:{enabled:!0,overridePolicy(){return{enabled:!0,isRequired:!this.requiredClearBits}}}}})],V.prototype,"requiredSetBits",void 0),(0,o._)([(0,T.J)({pointCloudBitfieldFilter:"bitfield"})],V.prototype,"type",void 0),V=P=(0,o._)([(0,f.j)("esri.layers.pointCloudFilters.PointCloudBitfieldFilter")],V);const N=V;var O;let F=O=class extends Z{constructor(e){super(e),this.includedReturns=[],this.type="return"}clone(){return new O({field:this.field,includedReturns:(0,a.d9)(this.includedReturns)})}};(0,o._)([(0,y.Cb)({type:[["firstOfMany","last","lastOfMany","single"]],json:{write:{enabled:!0,isRequired:!0}}})],F.prototype,"includedReturns",void 0),(0,o._)([(0,T.J)({pointCloudReturnFilter:"return"})],F.prototype,"type",void 0),F=O=(0,o._)([(0,f.j)("esri.layers.pointCloudFilters.PointCloudReturnFilter")],F);const q=F;var A;let E=A=class extends Z{constructor(e){super(e),this.mode="exclude",this.type="value",this.values=[]}clone(){return new A({field:this.field,mode:this.mode,values:(0,a.d9)(this.values)})}};(0,o._)([(0,y.Cb)({type:["exclude","include"],json:{write:{enabled:!0,isRequired:!0}}})],E.prototype,"mode",void 0),(0,o._)([(0,T.J)({pointCloudValueFilter:"value"})],E.prototype,"type",void 0),(0,o._)([(0,y.Cb)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],E.prototype,"values",void 0),E=A=(0,o._)([(0,f.j)("esri.layers.pointCloudFilters.PointCloudValueFilter")],E);const K={key:"type",base:Z,typeMap:{value:E,bitfield:N,return:q}};var z,k=r(51599),B=r(12512),U=r(89076),L=r(18228),D=r(99723),M=r(46999);let $=z=class extends M.Z{constructor(e){super(e),this.type="point-cloud-rgb",this.field=null}clone(){return new z({...this.cloneProperties(),field:(0,a.d9)(this.field)})}};(0,o._)([(0,T.J)({pointCloudRGBRenderer:"point-cloud-rgb"})],$.prototype,"type",void 0),(0,o._)([(0,y.Cb)({type:String,json:{write:!0}})],$.prototype,"field",void 0),$=z=(0,o._)([(0,f.j)("esri.renderers.PointCloudRGBRenderer")],$);const J=$;var W=r(5947),G=r(60948);const H={key:"type",base:M.Z,typeMap:{"point-cloud-class-breaks":D.Z,"point-cloud-rgb":J,"point-cloud-stretch":W.Z,"point-cloud-unique-value":G.Z},errorContext:"renderer"};var X=r(83772),Y=r(10171);const Q=(0,U.v)();let ee=class extends((0,x.Vt)((0,w.Y)((0,_.q)((0,S.I)((0,C.M)((0,p.R)((0,g.N)((0,b.V)(v.Z))))))))){constructor(...e){super(...e),this.operationalLayerType="PointCloudLayer",this.popupEnabled=!0,this.popupTemplate=null,this.opacity=1,this.filters=[],this.fields=null,this.fieldsIndex=null,this.outFields=null,this.path=null,this.legendEnabled=!0,this.renderer=null,this.type="point-cloud"}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}get defaultPopupTemplate(){return this.attributeStorageInfo?this.createPopupTemplate():null}getFieldDomain(e){const t=this.fieldsIndex.get(e);return t?.domain?t.domain:null}readServiceFields(e,t,r){return Array.isArray(e)?e.map((e=>{const t=new B.Z;return"FieldTypeInteger"===e.type&&((e=(0,a.d9)(e)).type="esriFieldTypeInteger"),t.read(e,r),t})):Array.isArray(t.attributeStorageInfo)?t.attributeStorageInfo.map((e=>new B.Z({name:e.name,type:"ELEVATION"===e.name?"double":"integer"}))):null}set elevationInfo(e){this._set("elevationInfo",e),this._validateElevationInfo()}writeRenderer(e,t,r,o){(0,u.RB)("layerDefinition.drawingInfo.renderer",e.write({},o),t)}load(e){const t=null!=e?e.signal:null,r=this.loadFromPortal({supportedTypes:["Scene Service"]},e).catch(d.r9).then((()=>this._fetchService(t)));return this.addResolvingPromise(r),Promise.resolve(this)}createPopupTemplate(e){const t=(0,Y.eZ)(this,e);return t&&(this._formatPopupTemplateReturnsField(t),this._formatPopupTemplateRGBField(t)),t}_formatPopupTemplateReturnsField(e){const t=this.fieldsIndex.get("RETURNS");if(!t)return;const r=e.fieldInfos?.find((e=>e.fieldName===t.name));if(!r)return;const o=new L.Z({name:"pcl-returns-decoded",title:t.alias||t.name,expression:`\n var returnValue = $feature.${t.name};\n return (returnValue % 16) + " / " + Floor(returnValue / 16);\n `});e.expressionInfos=[...e.expressionInfos||[],o],r.fieldName="expression/pcl-returns-decoded"}_formatPopupTemplateRGBField(e){const t=this.fieldsIndex.get("RGB");if(!t)return;const r=e.fieldInfos?.find((e=>e.fieldName===t.name));if(!r)return;const o=new L.Z({name:"pcl-rgb-decoded",title:t.alias||t.name,expression:`\n var rgb = $feature.${t.name};\n var red = Floor(rgb / 65536, 0);\n var green = Floor((rgb - (red * 65536)) / 256,0);\n var blue = rgb - (red * 65536) - (green * 256);\n\n return "rgb(" + red + "," + green + "," + blue + ")";\n `});e.expressionInfos=[...e.expressionInfos||[],o],r.fieldName="expression/pcl-rgb-decoded"}async queryCachedStatistics(e,t){if(await this.load(t),!this.attributeStorageInfo)throw new s.Z("scenelayer:no-cached-statistics","Cached statistics are not available for this layer");const r=this.fieldsIndex.get(e);if(!r)throw new s.Z("pointcloudlayer:field-unexisting",`Field '${e}' does not exist on the layer`);for(const e of this.attributeStorageInfo)if(e.name===r.name){const r=(0,c.v_)(this.parsedUrl.path,`./statistics/${e.key}`);return(0,i.Z)(r,{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:t?t.signal:null}).then((e=>e.data))}throw new s.Z("pointcloudlayer:no-cached-statistics","Cached statistics for this attribute are not available")}async saveAs(e,t){return this._debouncedSaveOperations(x.xp.SAVE_AS,{...t,getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:"point-cloud"},e)}async save(){const e={getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:"point-cloud"};return this._debouncedSaveOperations(x.xp.SAVE,e)}validateLayer(e){if(e.layerType&&"PointCloud"!==e.layerType)throw new s.Z("pointcloudlayer:layer-type-not-supported","PointCloudLayer does not support this layer type",{layerType:e.layerType});if(isNaN(this.version.major)||isNaN(this.version.minor))throw new s.Z("layer:service-version-not-supported","Service version is not supported.",{serviceVersion:this.version.versionString,supportedVersions:"1.x-2.x"});if(this.version.major>2)throw new s.Z("layer:service-version-too-new","Service version is too new.",{serviceVersion:this.version.versionString,supportedVersions:"1.x-2.x"})}hasCachedStatistics(e){return null!=this.attributeStorageInfo&&this.attributeStorageInfo.some((t=>t.name===e))}_getTypeKeywords(){return["PointCloud"]}_validateElevationInfo(){const e=this.elevationInfo;(0,X.LR)(l.Z.getLogger(this),(0,X.Uy)("Point cloud layers","absolute-height",e)),(0,X.LR)(l.Z.getLogger(this),(0,X.kf)("Point cloud layers",e))}};(0,o._)([(0,y.Cb)({type:["PointCloudLayer"]})],ee.prototype,"operationalLayerType",void 0),(0,o._)([(0,y.Cb)(k.C_)],ee.prototype,"popupEnabled",void 0),(0,o._)([(0,y.Cb)({type:n.Z,json:{name:"popupInfo",write:!0}})],ee.prototype,"popupTemplate",void 0),(0,o._)([(0,y.Cb)({readOnly:!0,json:{read:!1}})],ee.prototype,"defaultPopupTemplate",null),(0,o._)([(0,y.Cb)({readOnly:!0,json:{write:!1,read:!1,origins:{"web-document":{write:!1,read:!1}}}})],ee.prototype,"opacity",void 0),(0,o._)([(0,y.Cb)({type:["show","hide"]})],ee.prototype,"listMode",void 0),(0,o._)([(0,y.Cb)({types:[K],json:{origins:{service:{read:{source:"filters"}}},name:"layerDefinition.filters",write:!0}})],ee.prototype,"filters",void 0),(0,o._)([(0,y.Cb)({type:[B.Z]})],ee.prototype,"fields",void 0),(0,o._)([(0,y.Cb)(Q.fieldsIndex)],ee.prototype,"fieldsIndex",void 0),(0,o._)([(0,h.r)("service","fields",["fields","attributeStorageInfo"])],ee.prototype,"readServiceFields",null),(0,o._)([(0,y.Cb)(Q.outFields)],ee.prototype,"outFields",void 0),(0,o._)([(0,y.Cb)({readOnly:!0})],ee.prototype,"attributeStorageInfo",void 0),(0,o._)([(0,y.Cb)(k.PV)],ee.prototype,"elevationInfo",null),(0,o._)([(0,y.Cb)({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],ee.prototype,"path",void 0),(0,o._)([(0,y.Cb)(k.rn)],ee.prototype,"legendEnabled",void 0),(0,o._)([(0,y.Cb)({types:H,json:{origins:{service:{read:{source:"drawingInfo.renderer"}}},name:"layerDefinition.drawingInfo.renderer",write:{target:{"layerDefinition.drawingInfo.renderer":{types:H},"layerDefinition.drawingInfo.transparency":{type:Number}}}}})],ee.prototype,"renderer",void 0),(0,o._)([(0,m.c)("renderer")],ee.prototype,"writeRenderer",null),(0,o._)([(0,y.Cb)({json:{read:!1},readOnly:!0})],ee.prototype,"type",void 0),ee=(0,o._)([(0,f.j)("esri.layers.PointCloudLayer")],ee);const te=ee},93902:function(e,t,r){r.d(t,{xp:function(){return F},Vt:function(){return R}});var o=r(36663),n=r(66341),i=r(70375),s=r(13802),a=r(78668),l=r(3466),p=r(81977),u=(r(39994),r(4157),r(34248)),d=r(40266),c=r(39835),y=r(50516),h=r(91772),f=r(64307),m=r(14685),v=r(20692),b=r(51599),w=r(40909);let g=null;function _(){return g}var S=r(93968),C=r(53110),x=r(84513),I=r(83415),T=r(76990),j=r(60629);const R=e=>{let t=class extends e{constructor(){super(...arguments),this.spatialReference=null,this.fullExtent=null,this.heightModelInfo=null,this.minScale=0,this.maxScale=0,this.version={major:Number.NaN,minor:Number.NaN,versionString:""},this.copyright=null,this.sublayerTitleMode="item-title",this.title=null,this.layerId=null,this.indexInfo=null,this._debouncedSaveOperations=(0,a.Ds)((async(e,t,r)=>{switch(e){case F.SAVE:return this._save(t);case F.SAVE_AS:return this._saveAs(r,t)}}))}readSpatialReference(e,t){return this._readSpatialReference(t)}_readSpatialReference(e){if(null!=e.spatialReference)return m.Z.fromJSON(e.spatialReference);const t=e.store,r=t.indexCRS||t.geographicCRS,o=r&&parseInt(r.substring(r.lastIndexOf("/")+1,r.length),10);return null!=o?new m.Z(o):null}readFullExtent(e,t,r){if(null!=e&&"object"==typeof e){const o=null==e.spatialReference?{...e,spatialReference:this._readSpatialReference(t)}:e;return h.Z.fromJSON(o,r)}const o=t.store,n=this._readSpatialReference(t);return null==n||null==o?.extent||!Array.isArray(o.extent)||o.extent.some((e=>e=2&&(t.major=parseInt(r[0],10),t.minor=parseInt(r[1],10)),t}readVersion(e,t){const r=t.store,o=null!=r.version?r.version.toString():"";return this.parseVersionString(o)}readTitlePortalItem(e){return"item-title"!==this.sublayerTitleMode?void 0:e}readTitleService(e,t){const r=this.portalItem?.title;if("item-title"===this.sublayerTitleMode)return(0,v.a7)(this.url,t.name);let o=t.name;if(!o&&this.url){const e=(0,v.Qc)(this.url);null!=e&&(o=e.title)}return"item-title-and-service-name"===this.sublayerTitleMode&&r&&(o=r+" - "+o),(0,v.ld)(o)}set url(e){const t=(0,v.XG)({layer:this,url:e,nonStandardUrlAllowed:!1,logger:s.Z.getLogger(this)});this._set("url",t.url),null!=t.layerId&&this._set("layerId",t.layerId)}writeUrl(e,t,r,o){(0,v.wH)(this,e,"layers",t,o)}get parsedUrl(){const e=this._get("url"),t=(0,l.mN)(e);return null!=this.layerId&&(t.path=`${t.path}/layers/${this.layerId}`),t}async _fetchIndexAndUpdateExtent(e,t){this.indexInfo=(0,w.T)(this.parsedUrl.path,this.rootNode,e,this.customParameters,this.apiKey,s.Z.getLogger(this),t),null==this.fullExtent||this.fullExtent.hasZ||this._updateExtent(await this.indexInfo)}_updateExtent(e){if("page"===e?.type){const t=e.rootIndex%e.pageSize,r=e.rootPage?.nodes?.[t];if(null==r?.obb?.center||null==r.obb.halfSize)throw new i.Z("sceneservice:invalid-node-page","Invalid node page.");if(r.obb.center[0]0)return t.data.layers[0].id}async _fetchServiceLayer(e){const t=await(0,n.Z)(this.parsedUrl?.path??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e});t.ssl&&(this.url=this.url.replace(/^http:/i,"https:"));let r=!1;if(t.data.layerType&&"Voxel"===t.data.layerType&&(r=!0),r)return this._fetchVoxelServiceLayer();const o=t.data;this.read(o,this._getServiceContext()),this.validateLayer(o)}async _fetchVoxelServiceLayer(e){const t=(await(0,n.Z)(this.parsedUrl?.path+"/layer",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e})).data;this.read(t,this._getServiceContext()),this.validateLayer(t)}_getServiceContext(){return{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl}}async _ensureLoadBeforeSave(){await this.load(),"beforeSave"in this&&"function"==typeof this.beforeSave&&await this.beforeSave()}validateLayer(e){}_updateTypeKeywords(e,t,r){e.typeKeywords||(e.typeKeywords=[]);const o=t.getTypeKeywords();for(const t of o)e.typeKeywords.push(t);e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)),r===P.newItem&&(e.typeKeywords=e.typeKeywords.filter((e=>"Hosted Service"!==e))))}async _saveAs(e,t){const r={...O,...t};let o=C.default.from(e);if(!o)throw new i.Z("sceneservice:portal-item-required","_saveAs() requires a portal item to save to");(0,T.w)(o),o.id&&(o=o.clone(),o.id=null);const n=o.portal||S.Z.getDefault();await this._ensureLoadBeforeSave(),o.type=N,o.portal=n;const s=(0,x.Y)(o,"portal-item",!0),a={layers:[this.write({},s)]};return await Promise.all(s.resources.pendingOperations??[]),await this._validateAgainstJSONSchema(a,s,r),o.url=this.url,o.title||(o.title=this.title),this._updateTypeKeywords(o,r,P.newItem),await n.signIn(),await(n.user?.addItem({item:o,folder:r?.folder,data:a})),await(0,I.H)(this.resourceReferences,s),this.portalItem=o,(0,y.D)(s),s.portalItem=o,o}async _save(e){const t={...O,...e};if(!this.portalItem)throw new i.Z("sceneservice:portal-item-not-set","Portal item to save to has not been set on this SceneService");if((0,T.w)(this.portalItem),this.portalItem.type!==N)throw new i.Z("sceneservice:portal-item-wrong-type",`Portal item needs to have type "${N}"`);await this._ensureLoadBeforeSave();const r=(0,x.Y)(this.portalItem,"portal-item",!0),o={layers:[this.write({},r)]};return await Promise.all(r.resources.pendingOperations??[]),await this._validateAgainstJSONSchema(o,r,t),this.portalItem.url=this.url,this.portalItem.title||(this.portalItem.title=this.title),this._updateTypeKeywords(this.portalItem,t,P.existingItem),await(0,I.b)(this.portalItem,o,this.resourceReferences,r),(0,y.D)(r),this.portalItem}async _validateAgainstJSONSchema(e,t,r){const o=r?.validationOptions;(0,j.z)(t,{errorName:"sceneservice:save"},{ignoreUnsupported:o?.ignoreUnsupported,supplementalUnsupportedErrors:["scenemodification:unsupported"]});const n=o?.enabled,a=_();if(n&&a){const t=(await a()).validate(e,r.portalItemLayerType);if(!t.length)return;const n=`Layer item did not validate:\n${t.join("\n")}`;if(s.Z.getLogger(this).error(`_validateAgainstJSONSchema(): ${n}`),"throw"===o.failPolicy){const e=t.map((e=>new i.Z("sceneservice:schema-validation",e)));throw new i.Z("sceneservice-validate:error","Failed to save layer item due to schema validation, see `details.errors`.",{validationErrors:e})}}}};return(0,o._)([(0,p.Cb)(b.id)],t.prototype,"id",void 0),(0,o._)([(0,p.Cb)({type:m.Z})],t.prototype,"spatialReference",void 0),(0,o._)([(0,u.r)("spatialReference",["spatialReference","store.indexCRS","store.geographicCRS"])],t.prototype,"readSpatialReference",null),(0,o._)([(0,p.Cb)({type:h.Z})],t.prototype,"fullExtent",void 0),(0,o._)([(0,u.r)("fullExtent",["fullExtent","store.extent","spatialReference","store.indexCRS","store.geographicCRS"])],t.prototype,"readFullExtent",null),(0,o._)([(0,p.Cb)({readOnly:!0,type:f.Z})],t.prototype,"heightModelInfo",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:{source:"minScale"},write:!1}}}})],t.prototype,"minScale",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:{source:"maxScale"},write:!1}}}})],t.prototype,"maxScale",void 0),(0,o._)([(0,p.Cb)({readOnly:!0})],t.prototype,"version",void 0),(0,o._)([(0,u.r)("version",["store.version"])],t.prototype,"readVersion",null),(0,o._)([(0,p.Cb)({type:String,json:{read:{source:"copyrightText"}}})],t.prototype,"copyright",void 0),(0,o._)([(0,p.Cb)({type:String,json:{read:!1}})],t.prototype,"sublayerTitleMode",void 0),(0,o._)([(0,p.Cb)({type:String})],t.prototype,"title",void 0),(0,o._)([(0,u.r)("portal-item","title")],t.prototype,"readTitlePortalItem",null),(0,o._)([(0,u.r)("service","title",["name"])],t.prototype,"readTitleService",null),(0,o._)([(0,p.Cb)({type:Number,json:{origins:{service:{read:{source:"id"}},"portal-item":{write:{target:"id",isRequired:!0,ignoreOrigin:!0},read:!1}}}})],t.prototype,"layerId",void 0),(0,o._)([(0,p.Cb)(b.HQ)],t.prototype,"url",null),(0,o._)([(0,c.c)("url")],t.prototype,"writeUrl",null),(0,o._)([(0,p.Cb)()],t.prototype,"parsedUrl",null),(0,o._)([(0,p.Cb)({readOnly:!0})],t.prototype,"store",void 0),(0,o._)([(0,p.Cb)({type:String,readOnly:!0,json:{read:{source:"store.rootNode"}}})],t.prototype,"rootNode",void 0),t=(0,o._)([(0,d.j)("esri.layers.mixins.SceneService")],t),t},Z=-1e38;var P,V;(V=P||(P={}))[V.existingItem=0]="existingItem",V[V.newItem=1]="newItem";const N="Scene Service",O={getTypeKeywords:()=>[],portalItemLayerType:"unknown",validationOptions:{enabled:!0,ignoreUnsupported:!1,failPolicy:"throw"}};var F;!function(e){e[e.SAVE=0]="SAVE",e[e.SAVE_AS=1]="SAVE_AS"}(F||(F={}))},40909:function(e,t,r){r.d(t,{T:function(){return i}});var o=r(66341),n=r(70375);async function i(e,t,r,i,s,a,l){let p=null;if(null!=r){const t=`${e}/nodepages/`,n=t+Math.floor(r.rootIndex/r.nodesPerPage);try{return{type:"page",rootPage:(await(0,o.Z)(n,{query:{f:"json",...i,token:s},responseType:"json",signal:l})).data,rootIndex:r.rootIndex,pageSize:r.nodesPerPage,lodMetric:r.lodSelectionMetricType,urlPrefix:t}}catch(e){null!=a&&a.warn("#fetchIndexInfo()","Failed to load root node page. Falling back to node documents.",n,e),p=e}}if(!t)return null;const u=t?.split("/").pop(),d=`${e}/nodes/`,c=d+u;try{return{type:"node",rootNode:(await(0,o.Z)(c,{query:{f:"json",...i,token:s},responseType:"json",signal:l})).data,urlPrefix:d}}catch(e){throw new n.Z("sceneservice:root-node-missing","Root node missing.",{pageError:p,nodeError:e,url:c})}}},68611:function(e,t,r){r.d(t,{FO:function(){return c},W7:function(){return y},addOrUpdateResources:function(){return a},fetchResources:function(){return s},removeAllResources:function(){return p},removeResource:function(){return l}});var o=r(66341),n=r(70375),i=r(3466);async function s(e,t={},r){await e.load(r);const o=(0,i.v_)(e.itemUrl,"resources"),{start:n=1,num:s=10,sortOrder:a="asc",sortField:l="resource"}=t,p={query:{start:n,num:s,sortOrder:a,sortField:l,token:e.apiKey},signal:r?.signal},u=await e.portal.request(o,p);return{total:u.total,nextStart:u.nextStart,resources:u.resources.map((({created:t,size:r,resource:o})=>({created:new Date(t),size:r,resource:e.resourceFromPath(o)})))}}async function a(e,t,r,o){const s=new Map;for(const{resource:e,content:o,compress:i,access:a}of t){if(!e.hasPath())throw new n.Z(`portal-item-resource-${r}:invalid-path`,"Resource does not have a valid path");const[t,l]=u(e.path),p=`${t}/${i??""}/${a??""}`;s.has(p)||s.set(p,{prefix:t,compress:i,access:a,files:[]}),s.get(p).files.push({fileName:l,content:o})}await e.load(o);const a=(0,i.v_)(e.userItemUrl,"add"===r?"addResources":"updateResources");for(const{prefix:t,compress:r,access:n,files:i}of s.values()){const s=25;for(let l=0;le.resource.path))),u=new Set,d=[];p.forEach((t=>{l.delete(t),e.paths.push(t)}));const c=[],y=[],h=[];for(const r of t.resources.toUpdate)if(l.delete(r.resource.path),p.has(r.resource.path)||u.has(r.resource.path)){const{resource:t,content:o,finish:n}=r,a=(0,s.W7)(t,(0,i.DO)());e.paths.push(a.path),c.push({resource:a,content:await(0,s.FO)(o),compress:r.compress}),n&&h.push((()=>n(a)))}else{e.paths.push(r.resource.path),y.push({resource:r.resource,content:await(0,s.FO)(r.content),compress:r.compress});const t=r.finish;t&&h.push((()=>t(r.resource))),u.add(r.resource.path)}for(const r of t.resources.toAdd)if(e.paths.push(r.resource.path),l.has(r.resource.path))l.delete(r.resource.path);else{c.push({resource:r.resource,content:await(0,s.FO)(r.content),compress:r.compress});const e=r.finish;e&&h.push((()=>e(r.resource)))}if(c.length||y.length){const{addOrUpdateResources:e}=await Promise.resolve().then(r.bind(r,68611));await e(t.portalItem,c,"add",a),await e(t.portalItem,y,"update",a)}if(h.forEach((e=>e())),0===d.length)return l;const f=await(0,n.UO)(d);if((0,n.k_)(a),f.length>0)throw new o.Z("save:resources","Failed to save one or more resources",{errors:f});return l}async function u(e,t,r){if(!e||!t.portalItem)return;const o=[];for(const n of e){const e=t.portalItem.resourceFromPath(n);o.push(e.portalItem.removeResource(e,r))}await(0,n.as)(o)}},76990:function(e,t,r){r.d(t,{w:function(){return s}});var o=r(51366),n=r(70375),i=r(99522);function s(e){if(o.default.apiKey&&(0,i.r)(e.portal.url))throw new n.Z("save-api-key-utils:api-key-not-supported",`Saving is not supported on ${e.portal.url} when using an api key`)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3190.c1fcd2982ad00e241df8.js b/docs/sentinel1-explorer/3190.c1fcd2982ad00e241df8.js new file mode 100644 index 00000000..798f57af --- /dev/null +++ b/docs/sentinel1-explorer/3190.c1fcd2982ad00e241df8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3190],{35914:function(e,t,r){r.d(t,{$z:function(){return n},KF:function(){return c},LE:function(){return o},mi:function(){return f}});var s=r(86098);function f(e){if((0,s.kJ)(e)){if(e.length(t=t&&0===e,r=r&&e===s,!t&&!r))),t?o(e.length):r?c(e.length):(0,s.kJ)(e)||e.BYTES_PER_ELEMENT!==Uint16Array.BYTES_PER_ELEMENT?function(e){let t=!0;for(const r of e){if(r>=65536)return(0,s.kJ)(e)?new Uint32Array(e):e;r>=256&&(t=!1)}return t?new Uint8Array(e):new Uint16Array(e)}(e):e}function n(e){return e<=s.c8?new Array(e):e<=65536?new Uint16Array(e):new Uint32Array(e)}let u=(()=>{const e=new Uint32Array(131072);for(let t=0;t{const e=new Uint16Array(65536);for(let t=0;tu.length){const t=Math.max(2*u.length,e);u=new Uint32Array(t);for(let e=0;eh.length){const t=Math.max(2*h.length,e);h=new Uint8Array(t)}return new Uint8Array(h.buffer,0,e)}},81936:function(e,t,r){r.d(t,{ly:function(){return p},oS:function(){return m},o7:function(){return k},Jj:function(){return K},Hz:function(){return F},gK:function(){return B},ey:function(){return b},bj:function(){return T},O1:function(){return E},av:function(){return x},Nu:function(){return U},D_:function(){return S},Eu:function(){return d},q6:function(){return A},or:function(){return J},wA:function(){return j},Vs:function(){return v},TS:function(){return M},qt:function(){return N},xA:function(){return w},ct:function(){return l},fP:function(){return g},n1:function(){return $},PP:function(){return q},P_:function(){return I},mw:function(){return C},G5:function(){return R},ne:function(){return L},ek:function(){return a},Cd:function(){return O},zO:function(){return z},TN:function(){return D},ir:function(){return V},v6:function(){return P},hu:function(){return Y},mc:function(){return _}});class s{constructor(e,t,r=0,s,f){this.TypedArrayConstructor=e,this.elementCount=9;const n=this.TypedArrayConstructor;void 0===s&&(s=9*n.BYTES_PER_ELEMENT);const u=0===t.byteLength?0:r;this.typedBuffer=null==f?new n(t,u):new n(t,u,(f-r)/n.BYTES_PER_ELEMENT),this.typedBufferStride=s/n.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(e,t,r=this.count-t){const s=this.typedBuffer.byteOffset+t*this.stride;return new e(this.buffer,s,this.stride,s+r*this.stride)}getMat(e,t){let r=e*this.typedBufferStride;for(let e=0;e<9;e++)t[e]=this.typedBuffer[r++];return t}setMat(e,t){let r=e*this.typedBufferStride;for(let e=0;e<9;e++)this.typedBuffer[r++]=t[e]}get(e,t){return this.typedBuffer[e*this.typedBufferStride+t]}set(e,t,r){this.typedBuffer[e*this.typedBufferStride+t]=r}copyFrom(e,t,r){const s=this.typedBuffer,f=t.typedBuffer;let n=e*this.typedBufferStride,u=r*t.typedBufferStride;for(let e=0;e<9;++e)s[n++]=f[u++]}get buffer(){return this.typedBuffer.buffer}}s.ElementCount=9;class f{constructor(e,t,r=0,s,f){this.TypedArrayConstructor=e,this.elementCount=16;const n=this.TypedArrayConstructor;void 0===s&&(s=16*n.BYTES_PER_ELEMENT);const u=0===t.byteLength?0:r;this.typedBuffer=null==f?new n(t,u):new n(t,u,(f-r)/n.BYTES_PER_ELEMENT),this.typedBufferStride=s/n.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(e,t,r=this.count-t){const s=this.typedBuffer.byteOffset+t*this.stride;return new e(this.buffer,s,this.stride,s+r*this.stride)}getMat(e,t){let r=e*this.typedBufferStride;for(let e=0;e<16;e++)t[e]=this.typedBuffer[r++];return t}setMat(e,t){let r=e*this.typedBufferStride;for(let e=0;e<16;e++)this.typedBuffer[r++]=t[e]}get(e,t){return this.typedBuffer[e*this.typedBufferStride+t]}set(e,t,r){this.typedBuffer[e*this.typedBufferStride+t]=r}copyFrom(e,t,r){const s=this.typedBuffer,f=t.typedBuffer;let n=e*this.typedBufferStride,u=r*t.typedBufferStride;for(let e=0;e<16;++e)s[n++]=f[u++]}get buffer(){return this.typedBuffer.buffer}}f.ElementCount=16;class n{constructor(e,t,r=0,s,f){this.TypedArrayConstructor=e,this.elementCount=1;const n=this.TypedArrayConstructor;void 0===s&&(s=n.BYTES_PER_ELEMENT);const u=0===t.byteLength?0:r;this.typedBuffer=null==f?new n(t,u):new n(t,u,(f-r)/n.BYTES_PER_ELEMENT),this.stride=s,this.typedBufferStride=s/n.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride)}sliceBuffer(e,t,r=this.count-t){const s=this.typedBuffer.byteOffset+t*this.stride;return new e(this.buffer,s,this.stride,s+r*this.stride)}get(e){return this.typedBuffer[e*this.typedBufferStride]}set(e,t){this.typedBuffer[e*this.typedBufferStride]=t}get buffer(){return this.typedBuffer.buffer}}n.ElementCount=1;var u=r(36531);class i{constructor(e,t,r=0,s,f){this.TypedArrayConstructor=e,this.elementCount=2;const n=this.TypedArrayConstructor;void 0===s&&(s=2*n.BYTES_PER_ELEMENT);const u=0===t.byteLength?0:r;this.typedBuffer=null==f?new n(t,u):new n(t,u,(f-r)/n.BYTES_PER_ELEMENT),this.typedBufferStride=s/n.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(e,t,r=this.count-t){const s=this.typedBuffer.byteOffset+t*this.stride;return new e(this.buffer,s,this.stride,s+r*this.stride)}getVec(e,t){return e*=this.typedBufferStride,(0,u.t8)(t,this.typedBuffer[e],this.typedBuffer[e+1])}setVec(e,t){e*=this.typedBufferStride,this.typedBuffer[e++]=t[0],this.typedBuffer[e]=t[1]}get(e,t){return this.typedBuffer[e*this.typedBufferStride+t]}set(e,t,r){this.typedBuffer[e*this.typedBufferStride+t]=r}setValues(e,t,r){e*=this.typedBufferStride,this.typedBuffer[e++]=t,this.typedBuffer[e]=r}copyFrom(e,t,r){const s=this.typedBuffer,f=t.typedBuffer;let n=e*this.typedBufferStride,u=r*t.typedBufferStride;s[n++]=f[u++],s[n]=f[u]}get buffer(){return this.typedBuffer.buffer}}i.ElementCount=2;var y=r(86717);class c{constructor(e,t,r=0,s,f){this.TypedArrayConstructor=e,this.elementCount=3;const n=this.TypedArrayConstructor;void 0===s&&(s=3*n.BYTES_PER_ELEMENT);const u=0===t.byteLength?0:r;this.typedBuffer=null==f?new n(t,u):new n(t,u,(f-r)/n.BYTES_PER_ELEMENT),this.typedBufferStride=s/n.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(e,t,r=this.count-t){const s=this.typedBuffer.byteOffset+t*this.stride;return new e(this.buffer,s,this.stride,s+r*this.stride)}getVec(e,t){return e*=this.typedBufferStride,(0,y.s)(t,this.typedBuffer[e],this.typedBuffer[e+1],this.typedBuffer[e+2])}setVec(e,t){e*=this.typedBufferStride,this.typedBuffer[e++]=t[0],this.typedBuffer[e++]=t[1],this.typedBuffer[e]=t[2]}get(e,t){return this.typedBuffer[e*this.typedBufferStride+t]}set(e,t,r){this.typedBuffer[e*this.typedBufferStride+t]=r}setValues(e,t,r,s){e*=this.typedBufferStride,this.typedBuffer[e++]=t,this.typedBuffer[e++]=r,this.typedBuffer[e]=s}copyFrom(e,t,r){const s=this.typedBuffer,f=t.typedBuffer;let n=e*this.typedBufferStride,u=r*t.typedBufferStride;s[n++]=f[u++],s[n++]=f[u++],s[n]=f[u]}get buffer(){return this.typedBuffer.buffer}}c.ElementCount=3;var h=r(56999);class o{constructor(e,t,r=0,s,f){this.TypedArrayConstructor=e,this.start=r,this.elementCount=4;const n=this.TypedArrayConstructor;void 0===s&&(s=4*n.BYTES_PER_ELEMENT);const u=0===t.byteLength?0:r;this.typedBuffer=null==f?new n(t,u):new n(t,u,(f-r)/n.BYTES_PER_ELEMENT),this.typedBufferStride=s/n.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(e,t,r=this.count-t){const s=this.typedBuffer.byteOffset+t*this.stride;return new e(this.buffer,s,this.stride,s+r*this.stride)}getVec(e,t){return e*=this.typedBufferStride,(0,h.s)(t,this.typedBuffer[e++],this.typedBuffer[e++],this.typedBuffer[e++],this.typedBuffer[e])}setVec(e,t){e*=this.typedBufferStride,this.typedBuffer[e++]=t[0],this.typedBuffer[e++]=t[1],this.typedBuffer[e++]=t[2],this.typedBuffer[e]=t[3]}get(e,t){return this.typedBuffer[e*this.typedBufferStride+t]}set(e,t,r){this.typedBuffer[e*this.typedBufferStride+t]=r}setValues(e,t,r,s,f){e*=this.typedBufferStride,this.typedBuffer[e++]=t,this.typedBuffer[e++]=r,this.typedBuffer[e++]=s,this.typedBuffer[e]=f}copyFrom(e,t,r){const s=this.typedBuffer,f=t.typedBuffer;let n=e*this.typedBufferStride,u=r*t.typedBufferStride;s[n++]=f[u++],s[n++]=f[u++],s[n++]=f[u++],s[n]=f[u]}get buffer(){return this.typedBuffer.buffer}}o.ElementCount=4;class p extends n{constructor(e,t=0,r,s){super(Float32Array,e,t,r,s),this.elementType="f32"}static fromTypedArray(e,t){return new p(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}p.ElementType="f32";class d extends i{constructor(e,t=0,r,s){super(Float32Array,e,t,r,s),this.elementType="f32"}slice(e,t){return this.sliceBuffer(d,e,t)}static fromTypedArray(e,t){return new d(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}d.ElementType="f32";class l extends c{constructor(e,t=0,r,s){super(Float32Array,e,t,r,s),this.elementType="f32"}slice(e,t){return this.sliceBuffer(l,e,t)}static fromTypedArray(e,t){return new l(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}l.ElementType="f32";class a extends o{constructor(e,t=0,r,s){super(Float32Array,e,t,r,s),this.elementType="f32"}slice(e,t){return this.sliceBuffer(a,e,t)}static fromTypedArray(e,t){return new a(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}a.ElementType="f32";class B extends s{constructor(e,t=0,r,s){super(Float32Array,e,t,r,s),this.elementType="f32"}slice(e,t){return this.sliceBuffer(B,e,t)}static fromTypedArray(e,t){return new B(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}B.ElementType="f32";class b extends s{constructor(e,t=0,r,s){super(Float64Array,e,t,r,s),this.elementType="f64"}slice(e,t){return this.sliceBuffer(b,e,t)}static fromTypedArray(e,t){return new b(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}b.ElementType="f64";class T extends f{constructor(e,t=0,r,s){super(Float32Array,e,t,r,s),this.elementType="f32"}slice(e,t){return this.sliceBuffer(T,e,t)}static fromTypedArray(e,t){return new T(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}T.ElementType="f32";class E extends f{constructor(e,t=0,r,s){super(Float64Array,e,t,r,s),this.elementType="f64"}slice(e,t){return this.sliceBuffer(E,e,t)}static fromTypedArray(e,t){return new E(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}E.ElementType="f64";class m extends n{constructor(e,t=0,r,s){super(Float64Array,e,t,r,s),this.elementType="f64"}slice(e,t){return this.sliceBuffer(m,e,t)}static fromTypedArray(e,t){return new m(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}m.ElementType="f64";class A extends i{constructor(e,t=0,r,s){super(Float64Array,e,t,r,s),this.elementType="f64"}slice(e,t){return this.sliceBuffer(A,e,t)}static fromTypedArray(e,t){return new A(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}A.ElementType="f64";class g extends c{constructor(e,t=0,r,s){super(Float64Array,e,t,r,s),this.elementType="f64"}slice(e,t){return this.sliceBuffer(g,e,t)}static fromTypedArray(e,t){return new g(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}g.ElementType="f64";class O extends o{constructor(e,t=0,r,s){super(Float64Array,e,t,r,s),this.elementType="f64"}slice(e,t){return this.sliceBuffer(O,e,t)}static fromTypedArray(e,t){return new O(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}O.ElementType="f64";class S extends n{constructor(e,t=0,r,s){super(Uint8Array,e,t,r,s),this.elementType="u8"}slice(e,t){return this.sliceBuffer(S,e,t)}static fromTypedArray(e,t){return new S(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}S.ElementType="u8";class w extends i{constructor(e,t=0,r,s){super(Uint8Array,e,t,r,s),this.elementType="u8"}slice(e,t){return this.sliceBuffer(w,e,t)}static fromTypedArray(e,t){return new w(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}w.ElementType="u8";class L extends c{constructor(e,t=0,r,s){super(Uint8Array,e,t,r,s),this.elementType="u8"}slice(e,t){return this.sliceBuffer(L,e,t)}static fromTypedArray(e,t){return new L(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}L.ElementType="u8";class _ extends o{constructor(e,t=0,r,s){super(Uint8Array,e,t,r,s),this.elementType="u8"}slice(e,t){return this.sliceBuffer(_,e,t)}static fromTypedArray(e,t){return new _(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}_.ElementType="u8";class x extends n{constructor(e,t=0,r,s){super(Uint16Array,e,t,r,s),this.elementType="u16"}slice(e,t){return this.sliceBuffer(x,e,t)}static fromTypedArray(e,t){return new x(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}x.ElementType="u16";class M extends i{constructor(e,t=0,r,s){super(Uint16Array,e,t,r,s),this.elementType="u16"}slice(e,t){return this.sliceBuffer(M,e,t)}static fromTypedArray(e,t){return new M(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}M.ElementType="u16";class C extends c{constructor(e,t=0,r,s){super(Uint16Array,e,t,r,s),this.elementType="u16"}slice(e,t){return this.sliceBuffer(C,e,t)}static fromTypedArray(e,t){return new C(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}C.ElementType="u16";class P extends o{constructor(e,t=0,r,s){super(Uint16Array,e,t,r,s),this.elementType="u16"}slice(e,t){return this.sliceBuffer(P,e,t)}static fromTypedArray(e,t){return new P(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}P.ElementType="u16";class U extends n{constructor(e,t=0,r,s){super(Uint32Array,e,t,r,s),this.elementType="u32"}slice(e,t){return this.sliceBuffer(U,e,t)}static fromTypedArray(e,t){return new U(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}U.ElementType="u32";class N extends i{constructor(e,t=0,r,s){super(Uint32Array,e,t,r,s),this.elementType="u32"}slice(e,t){return this.sliceBuffer(N,e,t)}static fromTypedArray(e,t){return new N(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}N.ElementType="u32";class R extends c{constructor(e,t=0,r,s){super(Uint32Array,e,t,r,s),this.elementType="u32"}slice(e,t){return this.sliceBuffer(R,e,t)}static fromTypedArray(e,t){return new R(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}R.ElementType="u32";class Y extends o{constructor(e,t=0,r,s){super(Uint32Array,e,t,r,s),this.elementType="u32"}slice(e,t){return this.sliceBuffer(Y,e,t)}static fromTypedArray(e,t){return new Y(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}Y.ElementType="u32";class F extends n{constructor(e,t=0,r,s){super(Int8Array,e,t,r,s),this.elementType="i8"}slice(e,t){return this.sliceBuffer(F,e,t)}static fromTypedArray(e,t){return new F(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}F.ElementType="i8";class v extends i{constructor(e,t=0,r,s){super(Int8Array,e,t,r,s),this.elementType="i8"}slice(e,t){return this.sliceBuffer(v,e,t)}static fromTypedArray(e,t){return new v(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}v.ElementType="i8";class I extends c{constructor(e,t=0,r,s){super(Int8Array,e,t,r,s),this.elementType="i8"}slice(e,t){return this.sliceBuffer(I,e,t)}static fromTypedArray(e,t){return new I(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}I.ElementType="i8";class V extends o{constructor(e,t=0,r,s){super(Int8Array,e,t,r,s),this.elementType="i8"}slice(e,t){return this.sliceBuffer(V,e,t)}static fromTypedArray(e,t){return new V(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}V.ElementType="i8";class k extends n{constructor(e,t=0,r,s){super(Int16Array,e,t,r,s),this.elementType="i16"}slice(e,t){return this.sliceBuffer(k,e,t)}static fromTypedArray(e,t){return new k(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}k.ElementType="i16";class J extends i{constructor(e,t=0,r,s){super(Int16Array,e,t,r,s),this.elementType="i16"}slice(e,t){return this.sliceBuffer(J,e,t)}static fromTypedArray(e,t){return new J(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}J.ElementType="i16";class $ extends c{constructor(e,t=0,r,s){super(Int16Array,e,t,r,s),this.elementType="i16"}slice(e,t){return this.sliceBuffer($,e,t)}static fromTypedArray(e,t){return new $(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}$.ElementType="i16";class z extends o{constructor(e,t=0,r,s){super(Int16Array,e,t,r,s),this.elementType="i16"}slice(e,t){return this.sliceBuffer(z,e,t)}static fromTypedArray(e,t){return new z(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}z.ElementType="i16";class K extends n{constructor(e,t=0,r,s){super(Int32Array,e,t,r,s),this.elementType="i32"}slice(e,t){return this.sliceBuffer(K,e,t)}static fromTypedArray(e,t){return new K(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}K.ElementType="i32";class j extends i{constructor(e,t=0,r,s){super(Int32Array,e,t,r,s),this.elementType="i32"}slice(e,t){return this.sliceBuffer(j,e,t)}static fromTypedArray(e,t){return new j(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}j.ElementType="i32";class q extends c{constructor(e,t=0,r,s){super(Int32Array,e,t,r,s),this.elementType="i32"}slice(e,t){return this.sliceBuffer(q,e,t)}static fromTypedArray(e,t){return new q(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}q.ElementType="i32";class D extends o{constructor(e,t=0,r,s){super(Int32Array,e,t,r,s),this.elementType="i32"}slice(e,t){return this.sliceBuffer(D,e,t)}static fromTypedArray(e,t){return new D(e.buffer,e.byteOffset,t,e.byteOffset+e.byteLength)}}D.ElementType="i32"},15095:function(e,t,r){r.d(t,{hu:function(){return f},yK:function(){return n}});r(84164),r(56999);(0,r(52721).Ue)();class s{constructor(e){this.message=e}toString(){return`AssertException: ${this.message}`}}function f(e,t){if(!e){t=t||"Assertion";const e=new Error(t).stack;throw new s(`${t} at ${e}`)}}function n(e,t,r,s){let f,n=(r[0]-e[0])/t[0],u=(s[0]-e[0])/t[0];n>u&&(f=n,n=u,u=f);let i=(r[1]-e[1])/t[1],y=(s[1]-e[1])/t[1];if(i>y&&(f=i,i=y,y=f),n>y||i>u)return!1;i>n&&(n=i),yh&&(f=c,c=h,h=f),!(n>h||c>u||(h=r.length||(r[n]=i,this.dirtyStart=Math.min(this.dirtyStart,s),this.dirtyEnd=Math.max(this.dirtyEnd,s))}getData(e,t){if(null==this.data)return null;const i=(0,o.jL)(e)*this.texelSize+t;return!this.data||i>=this.data.length?null:this.data[i]}getTexture(e){return this._texture??this._initTexture(e)}getFBO(e,t=0){if(!this._fbos[t]){const i=0===t?this.getTexture(e):this._textureDesc;this._fbos[t]=new d.X(e,i)}return this._fbos[t]}get hasDirty(){const e=this.dirtyStart;return this.dirtyEnd>=e}updateTexture(e,t){try{const t=this.dirtyStart,i=this.dirtyEnd;if(!this.hasDirty)return;(0,r.Z)("esri-2d-update-debug"),this._resetRange();const a=this.data.buffer,l=this.getTexture(e),o=4,u=(t-t%this.size)/this.size,d=(i-i%this.size)/this.size,p=u,c=this.size,y=d,g=u*this.size*o,_=(c+y*this.size)*o-g,m=(0,h.UK)(this.pixelType),f=new m(a,g*m.BYTES_PER_ELEMENT,_),b=this.size,v=y-p+1;if(v>this.size)return void n.Z.getLogger("esri.views.2d.engine.webgl.AttributeStoreView").error(new s.Z("mapview-webgl","Out-of-bounds index when updating AttributeData"));l.updateData(0,0,p,b,v,f)}catch(e){}}update(e){const{data:t,start:i,end:s}=e;if(null!=t&&null!=this.data){const s=this.data,r=i*this.texelSize;for(let i=0;inull!=e?new y(e,this.size,t):null));else for(let e=0;e{(0,r.Z)("esri-2d-update-debug")})),this._version=e.version,this._pendingAttributeUpdates.push({inner:e,resolver:t}),(0,r.Z)("esri-2d-update-debug")}get currentEpoch(){return this._epoch}update(){if(this._locked)return;const e=this._pendingAttributeUpdates;this._pendingAttributeUpdates=[];for(const{inner:t,resolver:i}of e){const{blockData:e,initArgs:s,sendUpdateEpoch:n,version:a}=t;(0,r.Z)("esri-2d-update-debug"),this._version=a,this._epoch=n,null!=s&&this._initialize(s);const l=this._data;for(let t=0;te.destroy())),this.removeAllChildren(),this.attributeView.destroy()}doRender(e){e.context.capabilities.enable("textureFloat"),super.doRender(e)}createRenderParams(e){const t=super.createRenderParams(e);return t.attributeView=this.attributeView,t.instanceStore=this._instanceStore,t.statisticsByLevel=this._statisticsByLevel,t}}},70179:function(e,t,i){i.d(t,{Z:function(){return h}});var s=i(39994),r=i(38716),n=i(10994),a=i(22598),l=i(27946);const o=(e,t)=>e.key.level-t.key.level!=0?e.key.level-t.key.level:e.key.row-t.key.row!=0?e.key.row-t.key.row:e.key.col-t.key.col;class h extends n.Z{constructor(e){super(),this._tileInfoView=e}renderChildren(e){this.sortChildren(o),this.setStencilReference(e),super.renderChildren(e)}createRenderParams(e){const{state:t}=e,i=super.createRenderParams(e);return i.requiredLevel=this._tileInfoView.getClosestInfoForScale(t.scale).level,i.displayLevel=this._tileInfoView.tileInfo.scaleToZoom(t.scale),i}prepareRenderPasses(e){const t=super.prepareRenderPasses(e);return t.push(e.registerRenderPass({name:"stencil",brushes:[a.Z],drawPhase:r.jx.DEBUG|r.jx.MAP|r.jx.HIGHLIGHT|r.jx.LABEL,target:()=>this.getStencilTarget()})),(0,s.Z)("esri-tiles-debug")&&t.push(e.registerRenderPass({name:"tileInfo",brushes:[l.Z],drawPhase:r.jx.DEBUG,target:()=>this.children})),t}getStencilTarget(){return this.children}setStencilReference(e){let t=1;for(const e of this.children)e.stencilRef=t++}}},16699:function(e,t,i){i.d(t,{o:function(){return r}});var s=i(77206);class r{constructor(e,t,i,s,r){this._instanceId=e,this.techniqueRef=t,this._meshWriterName=i,this._input=s,this.optionalAttributes=r}get instanceId(){return(0,s.G)(this._instanceId)}createMeshInfo(e){return{id:this._instanceId,meshWriterName:this._meshWriterName,options:e,optionalAttributes:this.optionalAttributes}}getInput(){return this._input}setInput(e){this._input=e}}},66878:function(e,t,i){i.d(t,{y:function(){return b}});var s=i(36663),r=i(6865),n=i(58811),a=i(70375),l=i(76868),o=i(81977),h=(i(39994),i(13802),i(4157),i(40266)),u=i(68577),d=i(10530),p=i(98114),c=i(55755),y=i(88723),g=i(96294);let _=class extends g.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,s._)([(0,o.Cb)({type:[[[Number]]],json:{write:!0}})],_.prototype,"path",void 0),_=(0,s._)([(0,h.j)("esri.views.layers.support.Path")],_);const m=_,f=r.Z.ofType({key:"type",base:null,typeMap:{rect:c.Z,path:m,geometry:y.Z}}),b=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new f,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new a.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new d.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,l.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),l.tX),(0,l.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),l.tX),(0,l.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),l.tX),(0,l.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),l.tX),(0,l.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),l.tX),(0,l.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),l.tX),(0,l.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),l.tX),(0,l.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),l.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:i,maxScale:s}=t;return(0,u.o2)(e,i,s)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,i=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),i&&(e.outsideScaleRange=i),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,s._)([(0,o.Cb)()],t.prototype,"attached",void 0),(0,s._)([(0,o.Cb)({type:f,set(e){const t=(0,n.Z)(e,this._get("clips"),f);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,s._)([(0,o.Cb)()],t.prototype,"container",void 0),(0,s._)([(0,o.Cb)()],t.prototype,"moving",void 0),(0,s._)([(0,o.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,s._)([(0,o.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,s._)([(0,o.Cb)()],t.prototype,"updateRequested",void 0),(0,s._)([(0,o.Cb)()],t.prototype,"updateSuspended",null),(0,s._)([(0,o.Cb)()],t.prototype,"updating",null),(0,s._)([(0,o.Cb)()],t.prototype,"view",void 0),(0,s._)([(0,o.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,s._)([(0,o.Cb)({type:p.Z})],t.prototype,"highlightOptions",void 0),t=(0,s._)([(0,h.j)("esri.views.2d.layers.LayerView2D")],t),t}},93194:function(e,t,i){i.r(t),i.d(t,{default:function(){return w}});var s=i(36663),r=i(30936),n=i(80085),a=i(61681),l=i(76868),o=i(81977),h=(i(39994),i(13802),i(4157),i(40266)),u=i(45857),d=i(41151),p=i(82064);let c=class extends((0,d.J)(p.wq)){constructor(e){super(e),this.frameCenter=null,this.frameOutline=null,this.lineOfSight=null,this.sensorLocation=null,this.sensorTrail=null}};(0,s._)([(0,o.Cb)({type:Boolean})],c.prototype,"frameCenter",void 0),(0,s._)([(0,o.Cb)({type:Boolean})],c.prototype,"frameOutline",void 0),(0,s._)([(0,o.Cb)({type:Boolean})],c.prototype,"lineOfSight",void 0),(0,s._)([(0,o.Cb)({type:Boolean})],c.prototype,"sensorLocation",void 0),(0,s._)([(0,o.Cb)({type:Boolean})],c.prototype,"sensorTrail",void 0),c=(0,s._)([(0,h.j)("esri.layers.support.TelemetryDisplay")],c);const y=c;var g=i(66878),_=i(68114),m=i(18133),f=i(26216);const b=new r.Z([255,127,0]);let v=class extends((0,g.y)(f.Z)){constructor(){super(...arguments),this._graphicsLayer=new u.Z,this._frameOutlineGraphic=new n.Z({symbol:{type:"simple-fill",outline:{type:"simple-line",color:b}}}),this._sensorTrailGraphic=new n.Z({symbol:{type:"simple-line",color:b}}),this._lineOfSightGraphic=new n.Z({symbol:{type:"simple-line",color:b}}),this._sensorLocationGraphic=new n.Z({symbol:{type:"simple-marker",color:b}}),this._frameCenterGraphic=new n.Z({symbol:{type:"simple-marker",color:b}}),this.layer=null,this.symbolColor=b,this.visibleTelemetryElements=null}destroy(){this._graphicsLayer=(0,a.SC)(this._graphicsLayer)}initialize(){this.addHandles((0,l.YP)((()=>this.symbolColor),(()=>{this._frameOutlineGraphic.symbol.outline.color=this.symbolColor,this._sensorTrailGraphic.symbol.color=this.symbolColor,this._lineOfSightGraphic.symbol.color=this.symbolColor,this._sensorLocationGraphic.symbol.color=this.symbolColor,this._frameCenterGraphic.symbol.color=this.symbolColor}),l.nn)),this._graphicsLayer.graphics.addMany([this._frameOutlineGraphic,this._sensorTrailGraphic,this._lineOfSightGraphic,this._sensorLocationGraphic,this._frameCenterGraphic]),this.visibleTelemetryElements=new y({frameCenter:this.layer.telemetryDisplay?.frameCenter??!0,frameOutline:this.layer.telemetryDisplay?.frameOutline??!0,lineOfSight:this.layer.telemetryDisplay?.lineOfSight??!0,sensorLocation:this.layer.telemetryDisplay?.sensorLocation??!0,sensorTrail:this.layer.telemetryDisplay?.sensorTrail??!0})}attach(){this.graphicsView=new m.Z({requestUpdateCallback:()=>this.requestUpdate(),view:this.view,graphics:this._graphicsLayer.graphics,container:new _.Z(this.view.featuresTilingScheme)}),this.container.addChild(this.graphicsView.container),this.addAttachHandles(this._graphicsLayer.on("graphic-update",this.graphicsView.graphicUpdateHandler)),this.addAttachHandles([(0,l.YP)((()=>[this.layer.telemetryDisplay?.frameCenter,this.layer.telemetryDisplay?.frameOutline,this.layer.telemetryDisplay?.sensorLocation,this.layer.telemetryDisplay?.sensorTrail,this.layer.telemetryDisplay?.lineOfSight]),(()=>this._updateVisibleTelemetryElements()),l.nn),(0,l.YP)((()=>[this.layer.telemetry,this.visibleTelemetryElements?.frameCenter,this.visibleTelemetryElements?.frameOutline,this.visibleTelemetryElements?.sensorLocation,this.visibleTelemetryElements?.sensorTrail,this.visibleTelemetryElements?.lineOfSight]),(()=>this._updateGraphicGeometries()),l.nn)])}detach(){this.container.removeAllChildren(),this.graphicsView=(0,a.SC)(this.graphicsView)}supportsSpatialReference(e){return!0}moveStart(){}moveEnd(){}viewChange(){this.graphicsView.viewChange()}update(e){this.graphicsView.processUpdate(e)}isUpdating(){return!this.graphicsView||this.graphicsView.updating}_updateVisibleTelemetryElements(){this.visibleTelemetryElements&&this.layer.telemetryDisplay&&(this.visibleTelemetryElements.frameCenter=this.layer.telemetryDisplay.frameCenter,this.visibleTelemetryElements.frameOutline=this.layer.telemetryDisplay.frameOutline,this.visibleTelemetryElements.lineOfSight=this.layer.telemetryDisplay.lineOfSight,this.visibleTelemetryElements.sensorLocation=this.layer.telemetryDisplay.sensorLocation,this.visibleTelemetryElements.sensorTrail=this.layer.telemetryDisplay.sensorTrail)}_updateGraphicGeometries(){const{telemetry:e}=this.layer,{visibleTelemetryElements:t}=this;e&&t&&(t.frameOutline&&e.frameOutline?this._frameOutlineGraphic.geometry=this.layer.telemetry.frameOutline:this._frameOutlineGraphic.geometry=null,t.sensorTrail&&e.sensorTrail?this._sensorTrailGraphic.geometry=this.layer.telemetry.sensorTrail:this._sensorTrailGraphic.geometry=null,t.lineOfSight&&e.lineOfSight?this._lineOfSightGraphic.geometry=this.layer.telemetry.lineOfSight:this._lineOfSightGraphic.geometry=null,t.sensorLocation&&e.sensorLocation?this._sensorLocationGraphic.geometry=this.layer.telemetry.sensorLocation:this._sensorLocationGraphic.geometry=null,t.frameCenter&&e.frameCenter?this._frameCenterGraphic.geometry=this.layer.telemetry.frameCenter:this._frameCenterGraphic.geometry=null)}};(0,s._)([(0,o.Cb)()],v.prototype,"graphicsView",void 0),(0,s._)([(0,o.Cb)()],v.prototype,"layer",void 0),(0,s._)([(0,o.Cb)()],v.prototype,"symbolColor",void 0),(0,s._)([(0,o.Cb)({type:y})],v.prototype,"visibleTelemetryElements",void 0),v=(0,s._)([(0,h.j)("esri.views.2d.layers.VideoLayerView2D")],v);const w=v},81110:function(e,t,i){i.d(t,{K:function(){return R}});var s=i(61681),r=i(24778),n=i(38716),a=i(16699),l=i(56144),o=i(77206);let h=0;function u(e,t,i){return new a.o((0,o.W)(h++),e,e.meshWriter.name,t,i)}const d={geometry:{visualVariableColor:null,visualVariableOpacity:null,visualVariableSizeMinMaxValue:null,visualVariableSizeScaleStops:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null,visualVariableRotation:null}};class p{constructor(){this.instances={fill:u(l.k2.fill,d,{zoomRange:!0}),marker:u(l.k2.marker,d,{zoomRange:!0}),line:u(l.k2.line,d,{zoomRange:!0}),text:u(l.k2.text,d,{zoomRange:!0,referenceSymbol:!1,clipAngle:!1}),complexFill:u(l.k2.complexFill,d,{zoomRange:!0}),texturedLine:u(l.k2.texturedLine,d,{zoomRange:!0})},this._instancesById=Object.values(this.instances).reduce(((e,t)=>(e.set(t.instanceId,t),e)),new Map)}getInstance(e){return this._instancesById.get(e)}}var c=i(46332),y=i(38642),g=i(45867),_=i(17703),m=i(29927),f=i(51118),b=i(64429),v=i(78951),w=i(91907),x=i(29620);const S=Math.PI/180;class T extends f.s{constructor(e){super(),this._program=null,this._vao=null,this._vertexBuffer=null,this._indexBuffer=null,this._dvsMat3=(0,y.Ue)(),this._localOrigin={x:0,y:0},this._getBounds=e}destroy(){this._vao&&(this._vao.dispose(),this._vao=null,this._vertexBuffer=null,this._indexBuffer=null),this._program=(0,s.M2)(this._program)}doRender(e){const{context:t}=e,i=this._getBounds();if(i.length<1)return;this._createShaderProgram(t),this._updateMatricesAndLocalOrigin(e),this._updateBufferData(t,i),t.setBlendingEnabled(!0),t.setDepthTestEnabled(!1),t.setStencilWriteMask(0),t.setStencilTestEnabled(!1),t.setBlendFunction(w.zi.ONE,w.zi.ONE_MINUS_SRC_ALPHA),t.setColorMask(!0,!0,!0,!0);const s=this._program;t.bindVAO(this._vao),t.useProgram(s),s.setUniformMatrix3fv("u_dvsMat3",this._dvsMat3),t.gl.lineWidth(1),t.drawElements(w.MX.LINES,8*i.length,w.g.UNSIGNED_INT,0),t.bindVAO()}_createTransforms(){return{displayViewScreenMat3:(0,y.Ue)()}}_createShaderProgram(e){if(this._program)return;this._program=e.programCache.acquire("precision highp float;\n uniform mat3 u_dvsMat3;\n\n attribute vec2 a_position;\n\n void main() {\n mediump vec3 pos = u_dvsMat3 * vec3(a_position, 1.0);\n gl_Position = vec4(pos.xy, 0.0, 1.0);\n }","precision mediump float;\n void main() {\n gl_FragColor = vec4(0.75, 0.0, 0.0, 0.75);\n }",C().attributes)}_updateMatricesAndLocalOrigin(e){const{state:t}=e,{displayMat3:i,size:s,resolution:r,pixelRatio:n,rotation:a,viewpoint:l}=t,o=S*a,{x:h,y:u}=l.targetGeometry,d=(0,m.or)(h,t.spatialReference);this._localOrigin.x=d,this._localOrigin.y=u;const p=n*s[0],y=n*s[1],f=r*p,b=r*y,v=(0,c.yR)(this._dvsMat3);(0,c.Jp)(v,v,i),(0,c.Iu)(v,v,(0,g.al)(p/2,y/2)),(0,c.bA)(v,v,(0,_.al)(s[0]/f,-y/b,1)),(0,c.U1)(v,v,-o)}_updateBufferData(e,t){const{x:i,y:s}=this._localOrigin,r=8*t.length,n=new Float32Array(r),a=new Uint32Array(8*t.length);let l=0,o=0;for(const e of t)e&&(n[2*l]=e[0]-i,n[2*l+1]=e[1]-s,n[2*l+2]=e[0]-i,n[2*l+3]=e[3]-s,n[2*l+4]=e[2]-i,n[2*l+5]=e[3]-s,n[2*l+6]=e[2]-i,n[2*l+7]=e[1]-s,a[o]=l+0,a[o+1]=l+3,a[o+2]=l+3,a[o+3]=l+2,a[o+4]=l+2,a[o+5]=l+1,a[o+6]=l+1,a[o+7]=l+0,l+=4,o+=8);if(this._vertexBuffer?this._vertexBuffer.setData(n.buffer):this._vertexBuffer=v.f.createVertex(e,w.l1.DYNAMIC_DRAW,n.buffer),this._indexBuffer?this._indexBuffer.setData(a):this._indexBuffer=v.f.createIndex(e,w.l1.DYNAMIC_DRAW,a),!this._vao){const t=C();this._vao=new x.U(e,t.attributes,t.bufferLayouts,{geometry:this._vertexBuffer},this._indexBuffer)}}}const C=()=>(0,b.cM)("bounds",{geometry:[{location:0,name:"a_position",count:2,type:w.g.FLOAT}]});class R extends r.b{constructor(e){super(e),this._instanceStore=new p,this.checkHighlight=()=>!0}destroy(){super.destroy(),this._boundsRenderer=(0,s.SC)(this._boundsRenderer)}get instanceStore(){return this._instanceStore}enableRenderingBounds(e){this._boundsRenderer=new T(e),this.requestRender()}get hasHighlight(){return this.checkHighlight()}onTileData(e,t){e.onMessage(t),this.contains(e)||this.addChild(e),this.requestRender()}_renderChildren(e,t){e.selection=t;for(const t of this.children){if(!t.visible)continue;const i=t.getDisplayList(e.drawPhase,this._instanceStore,n.gl.STRICT_ORDER);i?.render(e)}}}},68114:function(e,t,i){i.d(t,{Z:function(){return a}});var s=i(38716),r=i(81110),n=i(41214);class a extends r.K{renderChildren(e){for(const t of this.children)t.setTransform(e.state);if(super.renderChildren(e),this.attributeView.update(),this.children.some((e=>e.hasData))){switch(e.drawPhase){case s.jx.MAP:this._renderChildren(e,s.Xq.All);break;case s.jx.HIGHLIGHT:this.hasHighlight&&this._renderHighlight(e)}this._boundsRenderer&&this._boundsRenderer.doRender(e)}}_renderHighlight(e){(0,n.P9)(e,!1,(e=>{this._renderChildren(e,s.Xq.Highlight)}))}}},26216:function(e,t,i){i.d(t,{Z:function(){return y}});var s=i(36663),r=i(74396),n=i(31355),a=i(86618),l=i(13802),o=i(61681),h=i(64189),u=i(81977),d=(i(39994),i(4157),i(40266)),p=i(98940);let c=class extends((0,a.IG)((0,h.v)(n.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new p.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";l.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,o.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,s._)([(0,u.Cb)()],c.prototype,"fullOpacity",null),(0,s._)([(0,u.Cb)()],c.prototype,"layer",void 0),(0,s._)([(0,u.Cb)()],c.prototype,"parent",void 0),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"suspended",null),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"suspendInfo",null),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"legendEnabled",null),(0,s._)([(0,u.Cb)({type:Boolean,readOnly:!0})],c.prototype,"updating",null),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"updatingProgress",null),(0,s._)([(0,u.Cb)()],c.prototype,"visible",null),(0,s._)([(0,u.Cb)()],c.prototype,"view",void 0),c=(0,s._)([(0,d.j)("esri.views.layers.LayerView")],c);const y=c},88723:function(e,t,i){i.d(t,{Z:function(){return y}});var s,r=i(36663),n=(i(91957),i(81977)),a=(i(39994),i(13802),i(4157),i(40266)),l=i(20031),o=i(53736),h=i(96294),u=i(91772),d=i(89542);const p={base:l.Z,key:"type",typeMap:{extent:u.Z,polygon:d.Z}};let c=s=class extends h.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new s({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,n.Cb)({types:p,json:{read:o.im,write:!0}})],c.prototype,"geometry",void 0),c=s=(0,r._)([(0,a.j)("esri.views.layers.support.Geometry")],c);const y=c}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3206.968d5d4921a832aa64b3.js b/docs/sentinel1-explorer/3206.968d5d4921a832aa64b3.js new file mode 100644 index 00000000..7a894cc2 --- /dev/null +++ b/docs/sentinel1-explorer/3206.968d5d4921a832aa64b3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3206,9859],{33206:function(e,t,l){l.r(t),l.d(t,{default:function(){return w}});var r=l(36663),o=(l(91957),l(81977)),s=(l(39994),l(13802),l(4157),l(40266)),n=l(67666),i=l(89859),a=l(13054),p=l(81590),u=l(53110),c=l(14685),y=l(91772);let d=class extends i.default{constructor(...e){super(...e),this.portalItem=null,this.isReference=null,this.tileInfo=new p.Z({size:[256,256],dpi:96,format:"png8",compressionQuality:0,origin:new n.Z({x:-20037508.342787,y:20037508.342787,spatialReference:c.Z.WebMercator}),spatialReference:c.Z.WebMercator,lods:[new a.Z({level:0,scale:591657527.591555,resolution:156543.033928}),new a.Z({level:1,scale:295828763.795777,resolution:78271.5169639999}),new a.Z({level:2,scale:147914381.897889,resolution:39135.7584820001}),new a.Z({level:3,scale:73957190.948944,resolution:19567.8792409999}),new a.Z({level:4,scale:36978595.474472,resolution:9783.93962049996}),new a.Z({level:5,scale:18489297.737236,resolution:4891.96981024998}),new a.Z({level:6,scale:9244648.868618,resolution:2445.98490512499}),new a.Z({level:7,scale:4622324.434309,resolution:1222.99245256249}),new a.Z({level:8,scale:2311162.217155,resolution:611.49622628138}),new a.Z({level:9,scale:1155581.108577,resolution:305.748113140558}),new a.Z({level:10,scale:577790.554289,resolution:152.874056570411}),new a.Z({level:11,scale:288895.277144,resolution:76.4370282850732}),new a.Z({level:12,scale:144447.638572,resolution:38.2185141425366}),new a.Z({level:13,scale:72223.819286,resolution:19.1092570712683}),new a.Z({level:14,scale:36111.909643,resolution:9.55462853563415}),new a.Z({level:15,scale:18055.954822,resolution:4.77731426794937}),new a.Z({level:16,scale:9027.977411,resolution:2.38865713397468}),new a.Z({level:17,scale:4513.988705,resolution:1.19432856685505}),new a.Z({level:18,scale:2256.994353,resolution:.597164283559817}),new a.Z({level:19,scale:1128.497176,resolution:.298582141647617})]}),this.subDomains=["a","b","c"],this.fullExtent=new y.Z(-20037508.342787,-20037508.34278,20037508.34278,20037508.342787,c.Z.WebMercator),this.urlTemplate="https://{subDomain}.tile.openstreetmap.org/{level}/{col}/{row}.png",this.operationalLayerType="OpenStreetMap",this.type="open-street-map",this.copyright="Map data © OpenStreetMap contributors, CC-BY-SA"}get refreshInterval(){return 0}};(0,r._)([(0,o.Cb)({type:u.default,json:{read:!1,write:!1,origins:{"web-document":{read:!1,write:!1}}}})],d.prototype,"portalItem",void 0),(0,r._)([(0,o.Cb)({type:Boolean,json:{read:!1,write:!1}})],d.prototype,"isReference",void 0),(0,r._)([(0,o.Cb)({type:Number,readOnly:!0,json:{read:!1,write:!1,origins:{"web-document":{read:!1,write:!1}}}})],d.prototype,"refreshInterval",null),(0,r._)([(0,o.Cb)({type:p.Z,json:{write:!1}})],d.prototype,"tileInfo",void 0),(0,r._)([(0,o.Cb)({type:["show","hide"]})],d.prototype,"listMode",void 0),(0,r._)([(0,o.Cb)({readOnly:!0,json:{read:!1,write:!1}})],d.prototype,"subDomains",void 0),(0,r._)([(0,o.Cb)({readOnly:!0,json:{read:!1,write:!1},nonNullable:!0})],d.prototype,"fullExtent",void 0),(0,r._)([(0,o.Cb)({readOnly:!0,json:{read:!1,write:!1}})],d.prototype,"urlTemplate",void 0),(0,r._)([(0,o.Cb)({type:["OpenStreetMap"]})],d.prototype,"operationalLayerType",void 0),(0,r._)([(0,o.Cb)({json:{read:!1}})],d.prototype,"type",void 0),(0,r._)([(0,o.Cb)({json:{read:!1,write:!1}})],d.prototype,"copyright",void 0),(0,r._)([(0,o.Cb)({json:{read:!1,write:!1}})],d.prototype,"wmtsInfo",void 0),d=(0,r._)([(0,s.j)("esri.layers.OpenStreetMapLayer")],d);const w=d},89859:function(e,t,l){l.r(t),l.d(t,{default:function(){return I}});var r,o=l(36663),s=(l(91957),l(66341)),n=l(70375),i=l(15842),a=l(21130),p=l(3466),u=l(81977),c=(l(39994),l(13802),l(4157),l(34248)),y=l(40266),d=l(39835),w=l(38481),v=l(27668),h=l(43330),m=l(18241),b=l(12478),f=l(95874),Z=l(4452),g=l(13054),_=l(81590),C=l(14790),T=l(91772),j=l(14685),R=l(67666);let S=r=class extends((0,v.h)((0,b.Q)((0,f.M)((0,h.q)((0,m.I)((0,i.R)(w.Z))))))){constructor(...e){super(...e),this.copyright="",this.fullExtent=new T.Z(-20037508.342787,-20037508.34278,20037508.34278,20037508.342787,j.Z.WebMercator),this.legendEnabled=!1,this.isReference=null,this.popupEnabled=!1,this.spatialReference=j.Z.WebMercator,this.subDomains=null,this.tileInfo=new _.Z({size:[256,256],dpi:96,format:"png8",compressionQuality:0,origin:new R.Z({x:-20037508.342787,y:20037508.342787,spatialReference:j.Z.WebMercator}),spatialReference:j.Z.WebMercator,lods:[new g.Z({level:0,scale:591657527.591555,resolution:156543.033928}),new g.Z({level:1,scale:295828763.795777,resolution:78271.5169639999}),new g.Z({level:2,scale:147914381.897889,resolution:39135.7584820001}),new g.Z({level:3,scale:73957190.948944,resolution:19567.8792409999}),new g.Z({level:4,scale:36978595.474472,resolution:9783.93962049996}),new g.Z({level:5,scale:18489297.737236,resolution:4891.96981024998}),new g.Z({level:6,scale:9244648.868618,resolution:2445.98490512499}),new g.Z({level:7,scale:4622324.434309,resolution:1222.99245256249}),new g.Z({level:8,scale:2311162.217155,resolution:611.49622628138}),new g.Z({level:9,scale:1155581.108577,resolution:305.748113140558}),new g.Z({level:10,scale:577790.554289,resolution:152.874056570411}),new g.Z({level:11,scale:288895.277144,resolution:76.4370282850732}),new g.Z({level:12,scale:144447.638572,resolution:38.2185141425366}),new g.Z({level:13,scale:72223.819286,resolution:19.1092570712683}),new g.Z({level:14,scale:36111.909643,resolution:9.55462853563415}),new g.Z({level:15,scale:18055.954822,resolution:4.77731426794937}),new g.Z({level:16,scale:9027.977411,resolution:2.38865713397468}),new g.Z({level:17,scale:4513.988705,resolution:1.19432856685505}),new g.Z({level:18,scale:2256.994353,resolution:.597164283559817}),new g.Z({level:19,scale:1128.497176,resolution:.298582141647617}),new g.Z({level:20,scale:564.248588,resolution:.14929107082380833}),new g.Z({level:21,scale:282.124294,resolution:.07464553541190416}),new g.Z({level:22,scale:141.062147,resolution:.03732276770595208}),new g.Z({level:23,scale:70.5310735,resolution:.01866138385297604})]}),this.type="web-tile",this.urlTemplate=null,this.wmtsInfo=null}normalizeCtorArgs(e,t){return"string"==typeof e?{urlTemplate:e,...t}:e}load(e){const t=this.loadFromPortal({supportedTypes:["WMTS"]},e).then((()=>{let e="";if(this.urlTemplate)if(this.spatialReference.equals(this.tileInfo.spatialReference)){const t=new p.R9(this.urlTemplate);!(this.subDomains&&this.subDomains.length>0)&&t.authority?.includes("{subDomain}")&&(e="is missing 'subDomains' property")}else e="spatialReference must match tileInfo.spatialReference";else e="is missing the required 'urlTemplate' property value";if(e)throw new n.Z("web-tile-layer:load",`WebTileLayer (title: '${this.title}', id: '${this.id}') ${e}`)}));return this.addResolvingPromise(t),Promise.resolve(this)}get levelValues(){const e=[];if(!this.tileInfo)return null;for(const t of this.tileInfo.lods)e[t.level]=t.levelValue||t.level;return e}readSpatialReference(e,t){return e||j.Z.fromJSON(t.fullExtent?.spatialReference)}get tileServers(){if(!this.urlTemplate)return null;const e=[],{urlTemplate:t,subDomains:l}=this,r=new p.R9(t),o=r.scheme?r.scheme+"://":"//",s=o+r.authority+"/",n=r.authority;if(n?.includes("{subDomain}")){if(l&&l.length>0&&n.split(".").length>1)for(const t of l)e.push(o+n.replaceAll(/\{subDomain\}/gi,t)+"/")}else e.push(s);return e.map(p.xs)}get urlPath(){if(!this.urlTemplate)return null;const e=this.urlTemplate,t=new p.R9(e),l=(t.scheme?t.scheme+"://":"//")+t.authority+"/";return e.substring(l.length)}readUrlTemplate(e,t){return e||t.templateUrl}writeUrlTemplate(e,t){(0,p.oC)(e)&&(e="https:"+e),e&&(e=e.replaceAll(/\{z\}/gi,"{level}").replaceAll(/\{x\}/gi,"{col}").replaceAll(/\{y\}/gi,"{row}"),e=(0,p.Fv)(e)),t.templateUrl=e}fetchTile(e,t,l,r={}){const{signal:o}=r,n=this.getTileUrl(e,t,l),i={responseType:"image",signal:o,query:{...this.refreshParameters}};return(0,s.Z)(n,i).then((e=>e.data))}async fetchImageBitmapTile(e,t,l,o={}){const{signal:n}=o;if(this.fetchTile!==r.prototype.fetchTile){const r=await this.fetchTile(e,t,l,o);return(0,Z.V)(r,e,t,l,n)}const i=this.getTileUrl(e,t,l),a={responseType:"blob",signal:n,query:{...this.refreshParameters}},{data:p}=await(0,s.Z)(i,a);return(0,Z.V)(p,e,t,l,n)}getTileUrl(e,t,l){const{levelValues:r,tileServers:o,urlPath:s}=this;if(!r||!o||!s)return"";const n=r[e];return o[t%o.length]+(0,a.gx)(s,{level:n,z:n,col:l,x:l,row:t,y:t})}};(0,o._)([(0,u.Cb)({type:String,value:"",json:{write:!0}})],S.prototype,"copyright",void 0),(0,o._)([(0,u.Cb)({type:T.Z,json:{write:!0},nonNullable:!0})],S.prototype,"fullExtent",void 0),(0,o._)([(0,u.Cb)({readOnly:!0,json:{read:!1,write:!1}})],S.prototype,"legendEnabled",void 0),(0,o._)([(0,u.Cb)({type:["show","hide"]})],S.prototype,"listMode",void 0),(0,o._)([(0,u.Cb)({json:{read:!0,write:!0}})],S.prototype,"blendMode",void 0),(0,o._)([(0,u.Cb)()],S.prototype,"levelValues",null),(0,o._)([(0,u.Cb)({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],S.prototype,"isReference",void 0),(0,o._)([(0,u.Cb)({type:["WebTiledLayer"],value:"WebTiledLayer"})],S.prototype,"operationalLayerType",void 0),(0,o._)([(0,u.Cb)({readOnly:!0,json:{read:!1,write:!1}})],S.prototype,"popupEnabled",void 0),(0,o._)([(0,u.Cb)({type:j.Z})],S.prototype,"spatialReference",void 0),(0,o._)([(0,c.r)("spatialReference",["spatialReference","fullExtent.spatialReference"])],S.prototype,"readSpatialReference",null),(0,o._)([(0,u.Cb)({type:[String],json:{write:!0}})],S.prototype,"subDomains",void 0),(0,o._)([(0,u.Cb)({type:_.Z,json:{write:!0}})],S.prototype,"tileInfo",void 0),(0,o._)([(0,u.Cb)({readOnly:!0})],S.prototype,"tileServers",null),(0,o._)([(0,u.Cb)({json:{read:!1}})],S.prototype,"type",void 0),(0,o._)([(0,u.Cb)()],S.prototype,"urlPath",null),(0,o._)([(0,u.Cb)({type:String,json:{origins:{"portal-item":{read:{source:"url"}}}}})],S.prototype,"urlTemplate",void 0),(0,o._)([(0,c.r)("urlTemplate",["urlTemplate","templateUrl"])],S.prototype,"readUrlTemplate",null),(0,o._)([(0,d.c)("urlTemplate",{templateUrl:{type:String}})],S.prototype,"writeUrlTemplate",null),(0,o._)([(0,u.Cb)({type:C.B,json:{write:!0}})],S.prototype,"wmtsInfo",void 0),S=r=(0,o._)([(0,y.j)("esri.layers.WebTileLayer")],S);const I=S},14790:function(e,t,l){l.d(t,{B:function(){return p}});var r,o=l(36663),s=l(82064),n=l(67134),i=l(81977),a=(l(39994),l(13802),l(40266));let p=r=class extends s.wq{constructor(e){super(e)}clone(){return new r({customLayerParameters:(0,n.d9)(this.customLayerParameters),customParameters:(0,n.d9)(this.customParameters),layerIdentifier:this.layerIdentifier,tileMatrixSet:this.tileMatrixSet,url:this.url})}};(0,o._)([(0,i.Cb)({json:{type:Object,write:!0}})],p.prototype,"customLayerParameters",void 0),(0,o._)([(0,i.Cb)({json:{type:Object,write:!0}})],p.prototype,"customParameters",void 0),(0,o._)([(0,i.Cb)({type:String,json:{write:!0}})],p.prototype,"layerIdentifier",void 0),(0,o._)([(0,i.Cb)({type:String,json:{write:!0}})],p.prototype,"tileMatrixSet",void 0),(0,o._)([(0,i.Cb)({type:String,json:{write:!0}})],p.prototype,"url",void 0),p=r=(0,o._)([(0,a.j)("esri.layer.support.WMTSLayerInfo")],p)}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3261.8f0a5d6be50d374b3039.js b/docs/sentinel1-explorer/3261.8f0a5d6be50d374b3039.js new file mode 100644 index 00000000..ba08919f --- /dev/null +++ b/docs/sentinel1-explorer/3261.8f0a5d6be50d374b3039.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3261],{23261:function(e,t,a){a.d(t,{Ey:function(){return A},applyEdits:function(){return v},aw:function(){return w},uploadAssets:function(){return O}});var r=a(80085),n=a(6865),s=a(70375),i=a(67134),o=a(13802),d=a(78668),l=a(3466),u=a(12173),p=a(29927),c=a(35925),h=a(15801),f=a(14845),y=a(13449),m=a(54957);function g(e){return null!=e?.applyEdits}function b(e){return"object"==typeof e&&null!=e&&"objectId"in e&&!!e.objectId}function w(e){return e.every(b)}function F(e){return"object"==typeof e&&null!=e&&"globalId"in e&&!!e.globalId}function A(e){return e.every(F)}async function v(e,t,a,r={}){let l;const p="gdbVersion"in e?e.gdbVersion:null,c=r.gdbVersion??p;if((0,h.lQ)(e)&&e.url)l=(0,h.jF)(e.url,e.layerId,c,"original-and-current-features"===r.returnServiceEditsOption);else{l=(0,d.hh)(),l.promise.then((t=>{(t.addedFeatures.length||t.updatedFeatures.length||t.deletedFeatures.length||t.addedAttachments.length||t.updatedAttachments.length||t.deletedAttachments.length)&&e.emit("edits",t)}));const t={result:l.promise};e.emit("apply-edits",t)}try{const{results:d,edits:p}=await async function(e,t,a,r){if(await e.load(),!g(t))throw new s.Z(`${e.type}-layer:no-editing-support`,"Layer source does not support applyEdits capability",{layer:e});if(!(0,m.ln)(e))throw new s.Z(`${e.type}-layer:editing-disabled`,"Editing is disabled for layer",{layer:e});const{edits:i,options:d}=await async function(e,t,a){const r=(0,m.S1)(e),i=t&&(t.addFeatures||t.updateFeatures||t.deleteFeatures),d=t&&(t.addAttachments||t.updateAttachments||t.deleteAttachments),l=null!=e.infoFor3D;if(function(e,t,a,r,n,i){if(!e||!r&&!n)throw new s.Z(`${i}:missing-parameters`,"'addFeatures', 'updateFeatures', 'deleteFeatures', 'addAttachments', 'updateAttachments' or 'deleteAttachments' parameter is required");if(!t.editing.supportsGlobalId&&a?.globalIdUsed)throw new s.Z(`${i}:invalid-parameter`,"This layer does not support 'globalIdUsed' parameter. See: 'capabilities.editing.supportsGlobalId'");if(!t.editing.supportsGlobalId&&n)throw new s.Z(`${i}:invalid-parameter`,"'addAttachments', 'updateAttachments' and 'deleteAttachments' are applicable only if the layer supports global ids. See: 'capabilities.editing.supportsGlobalId'");if(!a?.globalIdUsed&&n)throw new s.Z(`${i}:invalid-parameter`,"When 'addAttachments', 'updateAttachments' or 'deleteAttachments' is specified, globalIdUsed should be set to true")}(t,r,a,!!i,!!d,`${e.type}-layer`),!r.data.isVersioned&&a?.gdbVersion)throw new s.Z(`${e.type}-layer:invalid-parameter`,"'gdbVersion' is applicable only if the layer supports versioned data. See: 'capabilities.data.isVersioned'");if(!r.editing.supportsRollbackOnFailure&&a?.rollbackOnFailureEnabled)throw new s.Z(`${e.type}-layer:invalid-parameter`,"This layer does not support 'rollbackOnFailureEnabled' parameter. See: 'capabilities.editing.supportsRollbackOnFailure'");const p={...a};if(null!=p.rollbackOnFailureEnabled||r.editing.supportsRollbackOnFailure||(p.rollbackOnFailureEnabled=!0),p.rollbackOnFailureEnabled||"original-and-current-features"!==p.returnServiceEditsOption||(!1===p.rollbackOnFailureEnabled&&o.Z.getLogger("esri.layers.graphics.editingSupport").warn(`${e.type}-layer:invalid-parameter`,"'original-and-current-features' is valid for 'returnServiceEditsOption' only when 'rollBackOnFailure' is true, but 'rollBackOnFailure' was set to false. 'rollBackOnFailure' has been overwritten and set to true."),p.rollbackOnFailureEnabled=!0),!r.editing.supportsReturnServiceEditsInSourceSpatialReference&&p.returnServiceEditsInSourceSR)throw new s.Z(`${e.type}-layer:invalid-parameter`,"This layer does not support 'returnServiceEditsInSourceSR' parameter. See: 'capabilities.editing.supportsReturnServiceEditsInSourceSpatialReference'");if(p.returnServiceEditsInSourceSR&&"original-and-current-features"!==p.returnServiceEditsOption)throw new s.Z(`${e.type}-layer:invalid-parameter`,"'returnServiceEditsInSourceSR' is valid only when 'returnServiceEditsOption' is set to 'original-and-current-features'");const c=function(e,t,a){const r=function(e){return{addFeatures:Array.from(e?.addFeatures??[]),updateFeatures:Array.from(e?.updateFeatures??[]),deleteFeatures:e&&n.Z.isCollection(e.deleteFeatures)?e.deleteFeatures.toArray():e.deleteFeatures||[],addAttachments:e.addAttachments||[],updateAttachments:e.updateAttachments||[],deleteAttachments:e.deleteAttachments||[]}}(e);if(r.addFeatures?.length&&!t.operations.supportsAdd)throw new s.Z(`${a}:unsupported-operation`,"Layer does not support adding features.");if(r.updateFeatures?.length&&!t.operations.supportsUpdate)throw new s.Z(`${a}:unsupported-operation`,"Layer does not support updating features.");if(r.deleteFeatures?.length&&!t.operations.supportsDelete)throw new s.Z(`${a}:unsupported-operation`,"Layer does not support deleting features.");return r.addFeatures=r.addFeatures.map(Z),r.updateFeatures=r.updateFeatures.map(Z),r.addAssetFeatures=[],r}(t,r,`${e.type}-layer`),h=a?.globalIdUsed||l,f=e.fields.filter((e=>"big-integer"===e.type||"oid"===e.type&&(e.length||0)>=8));if(h){const{globalIdField:t}=e;if(null==t)throw new s.Z(`${e.type}-layer:invalid-parameter`,"Layer does not specify a global id field.");c.addFeatures.forEach((e=>function(e,t){const{attributes:a}=e;null==a[t]&&(a[t]=(0,u.zS)())}(e,t)))}return c.addFeatures.forEach((t=>function(e,t,a,r){I(e,t,a,r),$(e,t)}(t,e,h,f))),c.updateFeatures.forEach((t=>function(e,t,a,r){I(e,t,a,r),$(e,t);const n=(0,m.S1)(t);if("geometry"in e&&null!=e.geometry&&!n?.editing.supportsGeometryUpdate)throw new s.Z(`${t.type}-layer:unsupported-operation`,"Layer does not support geometry updates.")}(t,e,h,f))),c.deleteFeatures.forEach((t=>function(e,t,a,r){I(e,t,a,r)}(t,e,h,f))),c.addAttachments.forEach((t=>S(t,e))),c.updateAttachments.forEach((t=>S(t,e))),l&&await async function(e,t){if(null==t.infoFor3D)return;const{infoFor3D:a}=t,r=(0,y.S0)("model/gltf-binary",a.supportedFormats)??(0,y.Ow)("glb",a.supportedFormats);if(!r||!a.editFormats.includes(r))throw new s.Z(`${t.type}-layer:binary-gltf-asset-not-supported`,"3DObjectFeatureLayer requires binary glTF (.glb) support for updating mesh geometry.");e.addAssetFeatures??=[];const{addAssetFeatures:n}=e;for(const t of e.addFeatures??[])R(t)&&n.push(t);for(const t of e.updateFeatures??[])R(t)&&n.push(t)}(c,e),{edits:await E(c),options:p}}(e,a,r);return i.addFeatures?.length||i.updateFeatures?.length||i.deleteFeatures?.length||i.addAttachments?.length||i.updateAttachments?.length||i.deleteAttachments?.length?{edits:i,results:await t.applyEdits(i,d)}:{edits:i,results:{addFeatureResults:[],updateFeatureResults:[],deleteFeatureResults:[],addAttachmentResults:[],updateAttachmentResults:[],deleteAttachmentResults:[]}}}(e,t,a,r),c=e=>e.filter((e=>!e.error)).map(i.d9),h={edits:p,addedFeatures:c(d.addFeatureResults),updatedFeatures:c(d.updateFeatureResults),deletedFeatures:c(d.deleteFeatureResults),addedAttachments:c(d.addAttachmentResults),updatedAttachments:c(d.updateAttachmentResults),deletedAttachments:c(d.deleteAttachmentResults),exceededTransferLimit:!1,historicMoment:d.editMoment?new Date(d.editMoment):null,globalIdToObjectId:r.globalIdToObjectId};return d.editedFeatureResults?.length&&(h.editedFeatures=d.editedFeatureResults),l.resolve(h),d}catch(e){throw l.reject(e),e}}function I(e,t,a,r){if(a){if("attributes"in e&&!e.attributes[t.globalIdField])throw new s.Z(`${t.type}-layer:invalid-parameter`,`Feature should have '${t.globalIdField}' when 'globalIdUsed' is true`);if(!("attributes"in e)&&!e.globalId)throw new s.Z(`${t.type}-layer:invalid-parameter`,"`'globalId' of the feature should be passed when 'globalIdUsed' is true")}if(r.length&&"attributes"in e)for(const a of r){const r=e.attributes[a.name];if(void 0!==r&&!(0,f.d2)(a,r))throw new s.Z(`${t.type}-layer:invalid-parameter`,`Big-integer field '${a.name}' of the feature must be less than ${Number.MAX_SAFE_INTEGER}`,{feature:e})}if("geometry"in e&&null!=e.geometry){if(e.geometry.hasZ&&!1===t.capabilities?.data.supportsZ)throw new s.Z(`${t.type}-layer:z-unsupported`,"Layer does not support z values while feature has z values.");if(e.geometry.hasM&&!1===t.capabilities?.data.supportsM)throw new s.Z(`${t.type}-layer:m-unsupported`,"Layer does not support m values while feature has m values.")}}function $(e,t){if("geometry"in e&&"mesh"===e.geometry?.type&&null!=t.infoFor3D&&null!=t.spatialReference){const{geometry:a}=e,{spatialReference:r,vertexSpace:n}=a,i=t.spatialReference,o="local"===n.type,d=(0,c.sT)(i),l=(0,c.fS)(i,r),u=l||(0,c.oR)(i)&&((0,c.oR)(r)||(0,c.sS)(r));if(!(o&&d&&u||!o&&!d&&l))throw new s.Z(`${t.type}-layer:mesh-unsupported`,`Uploading a mesh with a ${n.type} vertex space and a spatial reference wkid:${r.wkid} to a layer with a spatial reference wkid:${i.wkid} is not supported.`)}}function S(e,t){const{feature:a,attachment:r}=e;if(!a||"attributes"in a&&!a.attributes[t.globalIdField])throw new s.Z(`${t.type}-layer:invalid-parameter`,"Attachment should have reference to a feature with 'globalId'");if(!("attributes"in a)&&!a.globalId)throw new s.Z(`${t.type}-layer:invalid-parameter`,"Attachment should have reference to 'globalId' of the parent feature");if(!r.globalId)throw new s.Z(`${t.type}-layer:invalid-parameter`,"Attachment should have 'globalId'");if(!r.data&&!r.uploadId)throw new s.Z(`${t.type}-layer:invalid-parameter`,"Attachment should have 'data' or 'uploadId'");if(!(r.data instanceof File&&r.data.name||r.name))throw new s.Z(`${t.type}-layer:invalid-parameter`,"'name' is required when attachment is specified as Base64 encoded string using 'data'");if(!t.capabilities?.editing.supportsUploadWithItemId&&r.uploadId)throw new s.Z(`${t.type}-layer:invalid-parameter`,"This layer does not support 'uploadId' parameter. See: 'capabilities.editing.supportsUploadWithItemId'");if("string"==typeof r.data){const e=(0,l.sJ)(r.data);if(e&&!e.isBase64)throw new s.Z(`${t.type}-layer:invalid-parameter`,"Attachment 'data' should be a Blob, File or Base64 encoded string")}}async function E(e){const t=e.addFeatures??[],a=e.updateFeatures??[],r=t.concat(a).map((e=>e.geometry)),n=await(0,p.aX)(r),s=t.length,i=a.length;return n.slice(0,s).forEach(((e,a)=>t[a].geometry=e)),n.slice(s,s+i).forEach(((e,t)=>a[t].geometry=e)),e}function Z(e){const t=new r.Z;return e.attributes||(e.attributes={}),t.geometry=e.geometry,t.attributes=e.attributes,t}function R(e){return"mesh"===e?.geometry?.type}function O(e,t,a,r){if(!g(t))throw new s.Z(`${e.type}-layer:no-editing-support`,"Layer source does not support applyEdits capability",{layer:e});if(!t.uploadAssets)throw new s.Z(`${e.type}-layer:no-asset-upload-support`,"Layer source does not support uploadAssets capability",{layer:e});return t.uploadAssets(a,r)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3295.72a88e86fc62214cabb4.js b/docs/sentinel1-explorer/3295.72a88e86fc62214cabb4.js new file mode 100644 index 00000000..a69753b6 --- /dev/null +++ b/docs/sentinel1-explorer/3295.72a88e86fc62214cabb4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3295],{43295:function(e,r,t){t.r(r),t.d(r,{l:function(){return l}});var n,a,i,o=t(58340),u={exports:{}};n=u,a="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,i=function(e={}){var r,t,n=e;n.ready=new Promise(((e,n)=>{r=e,t=n}));var i=Object.assign({},n),o="./this.program",u=!0,s="";"undefined"!=typeof document&&document.currentScript&&(s=document.currentScript.src),a&&(s=a),s=0!==s.indexOf("blob:")?s.substr(0,s.replace(/[?#].*/,"").lastIndexOf("/")+1):"",n.print;var l,c,f=n.printErr||void 0;Object.assign(n,i),i=null,n.arguments&&n.arguments,n.thisProgram&&(o=n.thisProgram),n.quit&&n.quit,n.wasmBinary&&(l=n.wasmBinary),"object"!=typeof WebAssembly&&S("no native wasm support detected");var d,h,p,v,m,g,y,w,_=!1;function b(){var e=c.buffer;n.HEAP8=d=new Int8Array(e),n.HEAP16=p=new Int16Array(e),n.HEAPU8=h=new Uint8Array(e),n.HEAPU16=v=new Uint16Array(e),n.HEAP32=m=new Int32Array(e),n.HEAPU32=g=new Uint32Array(e),n.HEAPF32=y=new Float32Array(e),n.HEAPF64=w=new Float64Array(e)}var A=[],T=[],C=[];function F(e){A.unshift(e)}function W(e){C.unshift(e)}var E=0,P=null;function S(e){n.onAbort&&n.onAbort(e),f(e="Aborted("+e+")"),_=!0,e+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(e);throw t(r),r}var x,O=e=>e.startsWith("data:application/octet-stream;base64,");function j(e){if(e==x&&l)return new Uint8Array(l);throw"both async and sync fetching of the wasm failed"}function D(e,r,t){return function(e){return!l&&u&&"function"==typeof fetch?fetch(e,{credentials:"same-origin"}).then((r=>{if(!r.ok)throw"failed to load wasm binary file at '"+e+"'";return r.arrayBuffer()})).catch((()=>j(e))):Promise.resolve().then((()=>j(e)))}(e).then((e=>WebAssembly.instantiate(e,r))).then((e=>e)).then(t,(e=>{f(`failed to asynchronously prepare wasm: ${e}`),S(e)}))}O(x="lyr3DMain.wasm")||(x=function(e){return n.locateFile?n.locateFile(e,s):s+e}(x));var M=e=>{for(;e.length>0;)e.shift()(n)};function R(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){g[this.ptr+4>>2]=e},this.get_type=function(){return g[this.ptr+4>>2]},this.set_destructor=function(e){g[this.ptr+8>>2]=e},this.get_destructor=function(){return g[this.ptr+8>>2]},this.set_caught=function(e){e=e?1:0,d[this.ptr+12>>0]=e},this.get_caught=function(){return 0!=d[this.ptr+12>>0]},this.set_rethrown=function(e){e=e?1:0,d[this.ptr+13>>0]=e},this.get_rethrown=function(){return 0!=d[this.ptr+13>>0]},this.init=function(e,r){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(r)},this.set_adjusted_ptr=function(e){g[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return g[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Ze(this.get_type()))return g[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}n.noExitRuntime;var k={},$=e=>{for(;e.length;){var r=e.pop();e.pop()(r)}};function I(e){return this.fromWireType(m[e>>2])}var U,Y,H,V={},z={},B={},L=e=>{throw new U(e)},N=(e,r,t)=>{function n(r){var n=t(r);n.length!==e.length&&L("Mismatched type converter count");for(var a=0;a{z.hasOwnProperty(e)?a[r]=z[e]:(i.push(e),V.hasOwnProperty(e)||(V[e]=[]),V[e].push((()=>{a[r]=z[e],++o===i.length&&n(a)})))})),0===i.length&&n(a)},G={},q=e=>{for(var r="",t=e;h[t];)r+=Y[h[t++]];return r},J=e=>{throw new H(e)};function X(e,r,t={}){if(!("argPackAdvance"in r))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(e,r,t={}){var n=r.name;if(e||J(`type "${n}" must have a positive integer typeid pointer`),z.hasOwnProperty(e)){if(t.ignoreDuplicateRegistrations)return;J(`Cannot register type '${n}' twice`)}if(z[e]=r,delete B[e],V.hasOwnProperty(e)){var a=V[e];delete V[e],a.forEach((e=>e()))}}(e,r,t)}var Z=8;function K(){this.allocated=[void 0],this.freelist=[]}var Q=new K,ee=e=>{e>=Q.reserved&&0==--Q.get(e).refcount&&Q.free(e)},re=()=>{for(var e=0,r=Q.reserved;r(e||J("Cannot use deleted val. handle = "+e),Q.get(e).value),ne=e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Q.allocate({refcount:1,value:e})}},ae=(e,r)=>{switch(r){case 4:return function(e){return this.fromWireType(y[e>>2])};case 8:return function(e){return this.fromWireType(w[e>>3])};default:throw new TypeError(`invalid float width (${r}): ${e}`)}},ie=e=>{if(void 0===e)return"_unknown";var r=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return r>=48&&r<=57?`_${e}`:e};var oe,ue=(e,r,t)=>{if(void 0===e[r].overloadTable){var n=e[r];e[r]=function(){return e[r].overloadTable.hasOwnProperty(arguments.length)||J(`Function '${t}' called with an invalid number of arguments (${arguments.length}) - expects one of (${e[r].overloadTable})!`),e[r].overloadTable[arguments.length].apply(this,arguments)},e[r].overloadTable=[],e[r].overloadTable[n.argCount]=n}},se=(e,r,t)=>{n.hasOwnProperty(e)?((void 0===t||void 0!==n[e].overloadTable&&void 0!==n[e].overloadTable[t])&&J(`Cannot register public name '${e}' twice`),ue(n,e,e),n.hasOwnProperty(t)&&J(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),n[e].overloadTable[t]=r):(n[e]=r,void 0!==t&&(n[e].numArguments=t))},le=(e,r,t)=>{n.hasOwnProperty(e)||L("Replacing nonexistant public symbol"),void 0!==n[e].overloadTable&&void 0!==t?n[e].overloadTable[t]=r:(n[e]=r,n[e].argCount=t)},ce=[],fe=e=>{var r=ce[e];return r||(e>=ce.length&&(ce.length=e+1),ce[e]=r=oe.get(e)),r},de=(e,r,t)=>e.includes("j")?((e,r,t)=>{var a=n["dynCall_"+e];return t&&t.length?a.apply(null,[r].concat(t)):a.call(null,r)})(e,r,t):fe(r).apply(null,t),he=(e,r)=>{var t=(e=q(e)).includes("j")?((e,r)=>{var t=[];return function(){return t.length=0,Object.assign(t,arguments),de(e,r,t)}})(e,r):fe(r);return"function"!=typeof t&&J(`unknown function pointer with signature ${e}: ${r}`),t};var pe,ve=e=>{var r=Je(e),t=q(r);return Ge(r),t},me=e=>{const r=(e=e.trim()).indexOf("(");return-1!==r?(function(e,r){e||S(r)}(")"==e[e.length-1],"Parentheses for argument names should match."),e.substr(0,r)):e},ge=(e,r,t)=>{switch(r){case 1:return t?e=>d[e>>0]:e=>h[e>>0];case 2:return t?e=>p[e>>1]:e=>v[e>>1];case 4:return t?e=>m[e>>2]:e=>g[e>>2];default:throw new TypeError(`invalid integer width (${r}): ${e}`)}};function ye(e){return this.fromWireType(g[e>>2])}var we=(e,r,t,n)=>{if(!(n>0))return 0;for(var a=t,i=t+n-1,o=0;o=55296&&u<=57343&&(u=65536+((1023&u)<<10)|1023&e.charCodeAt(++o)),u<=127){if(t>=i)break;r[t++]=u}else if(u<=2047){if(t+1>=i)break;r[t++]=192|u>>6,r[t++]=128|63&u}else if(u<=65535){if(t+2>=i)break;r[t++]=224|u>>12,r[t++]=128|u>>6&63,r[t++]=128|63&u}else{if(t+3>=i)break;r[t++]=240|u>>18,r[t++]=128|u>>12&63,r[t++]=128|u>>6&63,r[t++]=128|63&u}}return r[t]=0,t-a},_e=e=>{for(var r=0,t=0;t=55296&&n<=57343?(r+=4,++t):r+=3}return r},be="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,Ae=(e,r)=>e?((e,r,t)=>{for(var n=r+t,a=r;e[a]&&!(a>=n);)++a;if(a-r>16&&e.buffer&&be)return be.decode(e.subarray(r,a));for(var i="";r>10,56320|1023&l)}}else i+=String.fromCharCode((31&o)<<6|u)}else i+=String.fromCharCode(o)}return i})(h,e,r):"",Te="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,Ce=(e,r)=>{for(var t=e,n=t>>1,a=n+r/2;!(n>=a)&&v[n];)++n;if((t=n<<1)-e>32&&Te)return Te.decode(h.subarray(e,t));for(var i="",o=0;!(o>=r/2);++o){var u=p[e+2*o>>1];if(0==u)break;i+=String.fromCharCode(u)}return i},Fe=(e,r,t)=>{if(void 0===t&&(t=2147483647),t<2)return 0;for(var n=r,a=(t-=2)<2*e.length?t/2:e.length,i=0;i>1]=o,r+=2}return p[r>>1]=0,r-n},We=e=>2*e.length,Ee=(e,r)=>{for(var t=0,n="";!(t>=r/4);){var a=m[e+4*t>>2];if(0==a)break;if(++t,a>=65536){var i=a-65536;n+=String.fromCharCode(55296|i>>10,56320|1023&i)}else n+=String.fromCharCode(a)}return n},Pe=(e,r,t)=>{if(void 0===t&&(t=2147483647),t<4)return 0;for(var n=r,a=n+t-4,i=0;i=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++i)),m[r>>2]=o,(r+=4)+4>a)break}return m[r>>2]=0,r-n},Se=e=>{for(var r=0,t=0;t=55296&&n<=57343&&++t,r+=4}return r},xe={},Oe=e=>{var r=(e-c.buffer.byteLength+65535)/65536;try{return c.grow(r),b(),1}catch(e){}},je={},De=()=>{if(!De.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:o||"./this.program"};for(var r in je)void 0===je[r]?delete e[r]:e[r]=je[r];var t=[];for(var r in e)t.push(`${r}=${e[r]}`);De.strings=t}return De.strings},Me=e=>e%4==0&&(e%100!=0||e%400==0),Re=[31,29,31,30,31,30,31,31,30,31,30,31],ke=[31,28,31,30,31,30,31,31,30,31,30,31];var $e,Ie=(e,r)=>{d.set(e,r)},Ue=(e,r,t,n)=>{var a=g[n+40>>2],i={tm_sec:m[n>>2],tm_min:m[n+4>>2],tm_hour:m[n+8>>2],tm_mday:m[n+12>>2],tm_mon:m[n+16>>2],tm_year:m[n+20>>2],tm_wday:m[n+24>>2],tm_yday:m[n+28>>2],tm_isdst:m[n+32>>2],tm_gmtoff:m[n+36>>2],tm_zone:a?Ae(a):""},o=Ae(t),u={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var s in u)o=o.replace(new RegExp(s,"g"),u[s]);var l=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],c=["January","February","March","April","May","June","July","August","September","October","November","December"];function f(e,r,t){for(var n="number"==typeof e?e.toString():e||"";n.length0?1:0}var n;return 0===(n=t(e.getFullYear()-r.getFullYear()))&&0===(n=t(e.getMonth()-r.getMonth()))&&(n=t(e.getDate()-r.getDate())),n}function p(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function v(e){var r=((e,r)=>{for(var t=new Date(e.getTime());r>0;){var n=Me(t.getFullYear()),a=t.getMonth(),i=(n?Re:ke)[a];if(!(r>i-t.getDate()))return t.setDate(t.getDate()+r),t;r-=i-t.getDate()+1,t.setDate(1),a<11?t.setMonth(a+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return t})(new Date(e.tm_year+1900,0,1),e.tm_yday),t=new Date(r.getFullYear(),0,4),n=new Date(r.getFullYear()+1,0,4),a=p(t),i=p(n);return h(a,r)<=0?h(i,r)<=0?r.getFullYear()+1:r.getFullYear():r.getFullYear()-1}var y={"%a":e=>l[e.tm_wday].substring(0,3),"%A":e=>l[e.tm_wday],"%b":e=>c[e.tm_mon].substring(0,3),"%B":e=>c[e.tm_mon],"%C":e=>d((e.tm_year+1900)/100|0,2),"%d":e=>d(e.tm_mday,2),"%e":e=>f(e.tm_mday,2," "),"%g":e=>v(e).toString().substring(2),"%G":e=>v(e),"%H":e=>d(e.tm_hour,2),"%I":e=>{var r=e.tm_hour;return 0==r?r=12:r>12&&(r-=12),d(r,2)},"%j":e=>d(e.tm_mday+((e,r)=>{for(var t=0,n=0;n<=r;t+=e[n++]);return t})(Me(e.tm_year+1900)?Re:ke,e.tm_mon-1),3),"%m":e=>d(e.tm_mon+1,2),"%M":e=>d(e.tm_min,2),"%n":()=>"\n","%p":e=>e.tm_hour>=0&&e.tm_hour<12?"AM":"PM","%S":e=>d(e.tm_sec,2),"%t":()=>"\t","%u":e=>e.tm_wday||7,"%U":e=>{var r=e.tm_yday+7-e.tm_wday;return d(Math.floor(r/7),2)},"%V":e=>{var r=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&r++,r){if(53==r){var t=(e.tm_wday+371-e.tm_yday)%7;4==t||3==t&&Me(e.tm_year)||(r=1)}}else{r=52;var n=(e.tm_wday+7-e.tm_yday-1)%7;(4==n||5==n&&Me(e.tm_year%400-1))&&r++}return d(r,2)},"%w":e=>e.tm_wday,"%W":e=>{var r=e.tm_yday+7-(e.tm_wday+6)%7;return d(Math.floor(r/7),2)},"%y":e=>(e.tm_year+1900).toString().substring(2),"%Y":e=>e.tm_year+1900,"%z":e=>{var r=e.tm_gmtoff,t=r>=0;return r=(r=Math.abs(r)/60)/60*100+r%60,(t?"+":"-")+String("0000"+r).slice(-4)},"%Z":e=>e.tm_zone,"%%":()=>"%"};for(var s in o=o.replace(/%%/g,"\0\0"),y)o.includes(s)&&(o=o.replace(new RegExp(s,"g"),y[s](i)));var w=function(e,r,t){var n=t>0?t:_e(e)+1,a=new Array(n),i=we(e,a,0,a.length);return r&&(a.length=i),a}(o=o.replace(/\0\0/g,"%"),!1);return w.length>r?0:(Ie(w,e),w.length-1)},Ye=(e,r)=>{e<128?r.push(e):r.push(e%128|128,e>>7)},He=(e,r)=>{if("function"==typeof WebAssembly.Function)return new WebAssembly.Function((e=>{for(var r={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},t={parameters:[],results:"v"==e[0]?[]:[r[e[0]]]},n=1;n{var t=e.slice(0,1),n=e.slice(1),a={i:127,p:127,j:126,f:125,d:124,e:111};r.push(96),Ye(n.length,r);for(var i=0;i($e||($e=new WeakMap,((e,r)=>{if($e)for(var t=e;t{oe.set(e,r),ce[e]=oe.get(e)};U=n.InternalError=class extends Error{constructor(e){super(e),this.name="InternalError"}},(()=>{for(var e=new Array(256),r=0;r<256;++r)e[r]=String.fromCharCode(r);Y=e})(),H=n.BindingError=class extends Error{constructor(e){super(e),this.name="BindingError"}},Object.assign(K.prototype,{get(e){return this.allocated[e]},has(e){return void 0!==this.allocated[e]},allocate(e){var r=this.freelist.pop()||this.allocated.length;return this.allocated[r]=e,r},free(e){this.allocated[e]=void 0,this.freelist.push(e)}}),Q.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Q.reserved=Q.allocated.length,n.count_emval_handles=re,pe=n.UnboundTypeError=((e,r)=>{var t=function(e,r){return{[e=ie(e)]:function(){return r.apply(this,arguments)}}[e]}(r,(function(e){this.name=r,this.message=e;var t=new Error(e).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},t})(Error,"UnboundTypeError");var Le={m:(e,r,t)=>{throw new R(e).init(r,t),e},k:e=>{var r=k[e];delete k[e];var t=r.elements,n=t.length,a=t.map((e=>e.getterReturnType)).concat(t.map((e=>e.setterArgumentType))),i=r.rawConstructor,o=r.rawDestructor;N([e],a,(function(e){return t.forEach(((r,t)=>{var a=e[t],i=r.getter,o=r.getterContext,u=e[t+n],s=r.setter,l=r.setterContext;r.read=e=>a.fromWireType(i(o,e)),r.write=(e,r)=>{var t=[];s(l,e,u.toWireType(t,r)),$(t)}})),[{name:r.name,fromWireType:e=>{for(var r=new Array(n),a=0;a{if(n!==a.length)throw new TypeError(`Incorrect number of tuple elements for ${r.name}: expected=${n}, actual=${a.length}`);for(var u=i(),s=0;s{var r=G[e];delete G[e];var t=r.rawConstructor,n=r.rawDestructor,a=r.fields,i=a.map((e=>e.getterReturnType)).concat(a.map((e=>e.setterArgumentType)));N([e],i,(e=>{var i={};return a.forEach(((r,t)=>{var n=r.fieldName,o=e[t],u=r.getter,s=r.getterContext,l=e[t+a.length],c=r.setter,f=r.setterContext;i[n]={read:e=>o.fromWireType(u(s,e)),write:(e,r)=>{var t=[];c(f,e,l.toWireType(t,r)),$(t)}}})),[{name:r.name,fromWireType:e=>{var r={};for(var t in i)r[t]=i[t].read(e);return n(e),r},toWireType:(e,r)=>{for(var a in i)if(!(a in r))throw new TypeError(`Missing field: "${a}"`);var o=t();for(a in i)i[a].write(o,r[a]);return null!==e&&e.push(n,o),o},argPackAdvance:Z,readValueFromPointer:I,destructorFunction:n}]}))},u:(e,r,t,n,a)=>{},B:(e,r,t,n)=>{X(e,{name:r=q(r),fromWireType:function(e){return!!e},toWireType:function(e,r){return r?t:n},argPackAdvance:Z,readValueFromPointer:function(e){return this.fromWireType(h[e])},destructorFunction:null})},A:(e,r)=>{X(e,{name:r=q(r),fromWireType:e=>{var r=te(e);return ee(e),r},toWireType:(e,r)=>ne(r),argPackAdvance:Z,readValueFromPointer:I,destructorFunction:null})},r:(e,r,t)=>{X(e,{name:r=q(r),fromWireType:e=>e,toWireType:(e,r)=>r,argPackAdvance:Z,readValueFromPointer:ae(r,t),destructorFunction:null})},c:(e,r,t,n,a,i,o)=>{var u=((e,r)=>{for(var t=[],n=0;n>2]);return t})(r,t);e=q(e),e=me(e),a=he(n,a),se(e,(function(){((e,r)=>{var t=[],n={};throw r.forEach((function e(r){n[r]||z[r]||(B[r]?B[r].forEach(e):(t.push(r),n[r]=!0))})),new pe(`${e}: `+t.map(ve).join([", "]))})(`Cannot call ${e} due to unbound types`,u)}),r-1),N([],u,(function(t){var n=[t[0],null].concat(t.slice(1));return le(e,function(e,r,t,n,a,i){var o=r.length;o<2&&J("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var u=null!==r[1]&&null!==t,s=!1,l=1;l{r=q(r);var i=e=>e;if(0===n){var o=32-8*t;i=e=>e<>>o}var u=r.includes("unsigned");X(e,{name:r,fromWireType:i,toWireType:u?function(e,r){return this.name,r>>>0}:function(e,r){return this.name,r},argPackAdvance:Z,readValueFromPointer:ge(r,t,0!==n),destructorFunction:null})},b:(e,r,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][r];function a(e){var r=g[e>>2],t=g[e+4>>2];return new n(d.buffer,t,r)}X(e,{name:t=q(t),fromWireType:a,argPackAdvance:Z,readValueFromPointer:a},{ignoreDuplicateRegistrations:!0})},q:(e,r)=>{var t="std::string"===(r=q(r));X(e,{name:r,fromWireType(e){var r,n=g[e>>2],a=e+4;if(t)for(var i=a,o=0;o<=n;++o){var u=a+o;if(o==n||0==h[u]){var s=Ae(i,u-i);void 0===r?r=s:(r+=String.fromCharCode(0),r+=s),i=u+1}}else{var l=new Array(n);for(o=0;o>2]=n,t&&a)((e,r,t)=>{we(e,h,r,t)})(r,o,n+1);else if(a)for(var u=0;u255&&(Ge(o),J("String has UTF-16 code units that do not fit in 8 bits")),h[o+u]=s}else for(u=0;u{var n,a,i,o,u;t=q(t),2===r?(n=Ce,a=Fe,o=We,i=()=>v,u=1):4===r&&(n=Ee,a=Pe,o=Se,i=()=>g,u=2),X(e,{name:t,fromWireType:e=>{for(var t,a=g[e>>2],o=i(),s=e+4,l=0;l<=a;++l){var c=e+4+l*r;if(l==a||0==o[c>>u]){var f=n(s,c-s);void 0===t?t=f:(t+=String.fromCharCode(0),t+=f),s=c+r}}return Ge(e),t},toWireType:(e,n)=>{"string"!=typeof n&&J(`Cannot pass non-string to C++ string type ${t}`);var i=o(n),s=qe(4+i+r);return g[s>>2]=i>>u,a(n,s+4,i+r),null!==e&&e.push(Ge,s),s},argPackAdvance:Z,readValueFromPointer:I,destructorFunction(e){Ge(e)}})},l:(e,r,t,n,a,i)=>{k[e]={name:q(r),rawConstructor:he(t,n),rawDestructor:he(a,i),elements:[]}},d:(e,r,t,n,a,i,o,u,s)=>{k[e].elements.push({getterReturnType:r,getter:he(t,n),getterContext:a,setterArgumentType:i,setter:he(o,u),setterContext:s})},t:(e,r,t,n,a,i)=>{G[e]={name:q(r),rawConstructor:he(t,n),rawDestructor:he(a,i),fields:[]}},i:(e,r,t,n,a,i,o,u,s,l)=>{G[e].fields.push({fieldName:q(r),getterReturnType:t,getter:he(n,a),getterContext:i,setterArgumentType:o,setter:he(u,s),setterContext:l})},C:(e,r)=>{X(e,{isVoid:!0,name:r=q(r),argPackAdvance:0,fromWireType:()=>{},toWireType:(e,r)=>{}})},a:ee,n:e=>{e>4&&(Q.get(e).refcount+=1)},D:()=>ne([]),h:e=>ne((e=>{var r=xe[e];return void 0===r?q(e):r})(e)),j:()=>ne({}),e:(e,r,t)=>{e=te(e),r=te(r),t=te(t),e[r]=t},g:(e,r)=>{var t=(e=((e,r)=>{var t=z[e];return void 0===t&&J(r+" has unknown type "+ve(e)),t})(e,"_emval_take_value")).readValueFromPointer(r);return ne(t)},p:()=>{S("")},z:(e,r,t)=>h.copyWithin(e,r,r+t),y:e=>{var r=h.length,t=2147483648;if((e>>>=0)>t)return!1;for(var n=(e,r)=>e+(r-e%r)%r,a=1;a<=4;a*=2){var i=r*(1+.2/a);i=Math.min(i,e+100663296);var o=Math.min(t,n(Math.max(e,i),65536));if(Oe(o))return!0}return!1},w:(e,r)=>{var t=0;return De().forEach(((n,a)=>{var i=r+t;g[e+4*a>>2]=i,((e,r)=>{for(var t=0;t>0]=e.charCodeAt(t);d[r>>0]=0})(n,i),t+=n.length+1})),0},x:(e,r)=>{var t=De();g[e>>2]=t.length;var n=0;return t.forEach((e=>n+=e.length+1)),g[r>>2]=n,0},v:(e,r,t,n,a)=>Ue(e,r,t,n)},Ne=function(){var e={a:Le};function r(e,r){return Ne=e.exports,c=Ne.E,b(),oe=Ne.G,function(e){T.unshift(e)}(Ne.F),function(e){if(E--,n.monitorRunDependencies&&n.monitorRunDependencies(E),0==E&&P){var r=P;P=null,r()}}(),Ne}if(E++,n.monitorRunDependencies&&n.monitorRunDependencies(E),n.instantiateWasm)try{return n.instantiateWasm(e,r)}catch(e){f(`Module.instantiateWasm callback failed with error: ${e}`),t(e)}return function(e,r,t,n){return e||"function"!=typeof WebAssembly.instantiateStreaming||O(r)||"function"!=typeof fetch?D(r,t,n):fetch(r,{credentials:"same-origin"}).then((e=>WebAssembly.instantiateStreaming(e,t).then(n,(function(e){return f(`wasm streaming compile failed: ${e}`),f("falling back to ArrayBuffer instantiation"),D(r,t,n)}))))}(l,x,e,(function(e){r(e.instance)})).catch(t),{}}(),Ge=n._free=e=>(Ge=n._free=Ne.H)(e),qe=n._malloc=e=>(qe=n._malloc=Ne.I)(e),Je=e=>(Je=Ne.J)(e);n.__embind_initialize_bindings=()=>(n.__embind_initialize_bindings=Ne.K)();var Xe,Ze=e=>(Ze=Ne.L)(e);function Ke(){function e(){Xe||(Xe=!0,n.calledRun=!0,_||(M(T),r(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),function(){if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)W(n.postRun.shift());M(C)}()))}E>0||(function(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)F(n.preRun.shift());M(A)}(),E>0||(n.setStatus?(n.setStatus("Running..."),setTimeout((function(){setTimeout((function(){n.setStatus("")}),1),e()}),1)):e()))}if(n.dynCall_viji=(e,r,t,a,i)=>(n.dynCall_viji=Ne.M)(e,r,t,a,i),n.dynCall_ji=(e,r)=>(n.dynCall_ji=Ne.N)(e,r),n.dynCall_viijii=(e,r,t,a,i,o,u)=>(n.dynCall_viijii=Ne.O)(e,r,t,a,i,o,u),n.dynCall_iiiiij=(e,r,t,a,i,o,u)=>(n.dynCall_iiiiij=Ne.P)(e,r,t,a,i,o,u),n.dynCall_iiiiijj=(e,r,t,a,i,o,u,s,l)=>(n.dynCall_iiiiijj=Ne.Q)(e,r,t,a,i,o,u,s,l),n.dynCall_iiiiiijj=(e,r,t,a,i,o,u,s,l,c)=>(n.dynCall_iiiiiijj=Ne.R)(e,r,t,a,i,o,u,s,l,c),n.addFunction=(e,r)=>{var t=Ve(e);if(t)return t;var n=(()=>{if(ze.length)return ze.pop();try{oe.grow(1)}catch(e){if(!(e instanceof RangeError))throw e;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return oe.length-1})();try{Be(n,e)}catch(t){if(!(t instanceof TypeError))throw t;var a=He(e,r);Be(n,a)}return $e.set(e,n),n},n.UTF8ToString=Ae,P=function e(){Xe||Ke(),Xe||(P=e)},n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Ke(),e.ready},n.exports=i;const s=(0,o.g)(u.exports),l=Object.freeze(Object.defineProperty({__proto__:null,default:s},Symbol.toStringTag,{value:"Module"}))}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3296.a74d99fe8f11188a8cdb.js b/docs/sentinel1-explorer/3296.a74d99fe8f11188a8cdb.js new file mode 100644 index 00000000..7ec8cc17 --- /dev/null +++ b/docs/sentinel1-explorer/3296.a74d99fe8f11188a8cdb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3296,8923],{4279:function(n,t,e){e.d(t,{A:function(){return E},B:function(){return T},C:function(){return A},D:function(){return L},E:function(){return b},F:function(){return V},G:function(){return H},H:function(){return I},I:function(){return _},J:function(){return j},K:function(){return C},L:function(){return k},M:function(){return q},N:function(){return B},a:function(){return c},b:function(){return f},c:function(){return o},d:function(){return s},e:function(){return u},f:function(){return a},g:function(){return J},h:function(){return l},i:function(){return h},j:function(){return g},k:function(){return x},l:function(){return v},m:function(){return y},n:function(){return M},o:function(){return m},p:function(){return w},q:function(){return z},r:function(){return G},s:function(){return N},t:function(){return p},u:function(){return R},v:function(){return S},w:function(){return d},x:function(){return D},y:function(){return P},z:function(){return Z}});var r=e(89067),i=e(61107);function u(n){return r.G.extendedSpatialReferenceInfo(n)}function o(n,t,e){return r.G.clip(i.N,n,t,e)}function c(n,t,e){return r.G.cut(i.N,n,t,e)}function f(n,t,e){return r.G.contains(i.N,n,t,e)}function s(n,t,e){return r.G.crosses(i.N,n,t,e)}function a(n,t,e,u){return r.G.distance(i.N,n,t,e,u)}function l(n,t,e){return r.G.equals(i.N,n,t,e)}function h(n,t,e){return r.G.intersects(i.N,n,t,e)}function p(n,t,e){return r.G.touches(i.N,n,t,e)}function d(n,t,e){return r.G.within(i.N,n,t,e)}function g(n,t,e){return r.G.disjoint(i.N,n,t,e)}function m(n,t,e){return r.G.overlaps(i.N,n,t,e)}function G(n,t,e,u){return r.G.relate(i.N,n,t,e,u)}function x(n,t){return r.G.isSimple(i.N,n,t)}function N(n,t){return r.G.simplify(i.N,n,t)}function v(n,t,e=!1){return r.G.convexHull(i.N,n,t,e)}function y(n,t,e){return r.G.difference(i.N,n,t,e)}function M(n,t,e){return r.G.symmetricDifference(i.N,n,t,e)}function w(n,t,e){return r.G.intersect(i.N,n,t,e)}function R(n,t,e=null){return r.G.union(i.N,n,t,e)}function z(n,t,e,u,o,c,f){return r.G.offset(i.N,n,t,e,u,o,c,f)}function S(n,t,e,u,o=!1){return r.G.buffer(i.N,n,t,e,u,o)}function D(n,t,e,u,o,c,f){return r.G.geodesicBuffer(i.N,n,t,e,u,o,c,f)}function P(n,t,e,u=!0){return r.G.nearestCoordinate(i.N,n,t,e,u)}function Z(n,t,e){return r.G.nearestVertex(i.N,n,t,e)}function E(n,t,e,u,o){return r.G.nearestVertices(i.N,n,t,e,u,o)}function T(n,t,e,i){if(null==t||null==i)throw new Error("Illegal Argument Exception");const u=r.G.rotate(t,e,i);return u.spatialReference=n,u}function A(n,t,e){if(null==t||null==e)throw new Error("Illegal Argument Exception");const i=r.G.flipHorizontal(t,e);return i.spatialReference=n,i}function L(n,t,e){if(null==t||null==e)throw new Error("Illegal Argument Exception");const i=r.G.flipVertical(t,e);return i.spatialReference=n,i}function b(n,t,e,u,o){return r.G.generalize(i.N,n,t,e,u,o)}function V(n,t,e,u){return r.G.densify(i.N,n,t,e,u)}function H(n,t,e,u,o=0){return r.G.geodesicDensify(i.N,n,t,e,u,o)}function I(n,t,e){return r.G.planarArea(i.N,n,t,e)}function _(n,t,e){return r.G.planarLength(i.N,n,t,e)}function j(n,t,e,u){return r.G.geodesicArea(i.N,n,t,e,u)}function C(n,t,e,u){return r.G.geodesicLength(i.N,n,t,e,u)}function k(n,t,e){return null==t||null==e?[]:r.G.intersectLinesToPoints(i.N,n,t,e)}function q(n,t){r.G.changeDefaultSpatialReferenceTolerance(n,t)}function B(n){r.G.clearDefaultSpatialReferenceTolerance(n)}const J=Object.freeze(Object.defineProperty({__proto__:null,buffer:S,changeDefaultSpatialReferenceTolerance:q,clearDefaultSpatialReferenceTolerance:B,clip:o,contains:f,convexHull:v,crosses:s,cut:c,densify:V,difference:y,disjoint:g,distance:a,equals:l,extendedSpatialReferenceInfo:u,flipHorizontal:A,flipVertical:L,generalize:b,geodesicArea:j,geodesicBuffer:D,geodesicDensify:H,geodesicLength:C,intersect:w,intersectLinesToPoints:k,intersects:h,isSimple:x,nearestCoordinate:P,nearestVertex:Z,nearestVertices:E,offset:z,overlaps:m,planarArea:I,planarLength:_,relate:G,rotate:T,simplify:N,symmetricDifference:M,touches:p,union:R,within:d},Symbol.toStringTag,{value:"Module"}))},61107:function(n,t,e){e.d(t,{N:function(){return r}});const r={convertToGEGeometry:function(n,t){return null==t?null:n.convertJSONToGeometry(t)},exportPoint:function(n,t,e){const r=new i(n.getPointX(t),n.getPointY(t),e),u=n.hasZ(t),o=n.hasM(t);return u&&(r.z=n.getPointZ(t)),o&&(r.m=n.getPointM(t)),r},exportPolygon:function(n,t,e){return new u(n.exportPaths(t),e,n.hasZ(t),n.hasM(t))},exportPolyline:function(n,t,e){return new o(n.exportPaths(t),e,n.hasZ(t),n.hasM(t))},exportMultipoint:function(n,t,e){return new c(n.exportPoints(t),e,n.hasZ(t),n.hasM(t))},exportExtent:function(n,t,e){const r=n.hasZ(t),i=n.hasM(t),u=new f(n.getXMin(t),n.getYMin(t),n.getXMax(t),n.getYMax(t),e);if(r){const e=n.getZExtent(t);u.zmin=e.vmin,u.zmax=e.vmax}if(i){const e=n.getMExtent(t);u.mmin=e.vmin,u.mmax=e.vmax}return u}};class i{constructor(n,t,e){this.x=n,this.y=t,this.spatialReference=e,this.z=void 0,this.m=void 0}}class u{constructor(n,t,e,r){this.rings=n,this.spatialReference=t,this.hasZ=void 0,this.hasM=void 0,e&&(this.hasZ=e),r&&(this.hasM=r)}}class o{constructor(n,t,e,r){this.paths=n,this.spatialReference=t,this.hasZ=void 0,this.hasM=void 0,e&&(this.hasZ=e),r&&(this.hasM=r)}}class c{constructor(n,t,e,r){this.points=n,this.spatialReference=t,this.hasZ=void 0,this.hasM=void 0,e&&(this.hasZ=e),r&&(this.hasM=r)}}class f{constructor(n,t,e,r,i){this.xmin=n,this.ymin=t,this.xmax=e,this.ymax=r,this.spatialReference=i,this.zmin=void 0,this.zmax=void 0,this.mmin=void 0,this.mmax=void 0}}},8923:function(n,t,e){e.r(t),e.d(t,{buffer:function(){return r.v},changeDefaultSpatialReferenceTolerance:function(){return r.M},clearDefaultSpatialReferenceTolerance:function(){return r.N},clip:function(){return r.c},contains:function(){return r.b},convexHull:function(){return r.l},crosses:function(){return r.d},cut:function(){return r.a},densify:function(){return r.F},difference:function(){return r.m},disjoint:function(){return r.j},distance:function(){return r.f},equals:function(){return r.h},extendedSpatialReferenceInfo:function(){return r.e},flipHorizontal:function(){return r.C},flipVertical:function(){return r.D},generalize:function(){return r.E},geodesicArea:function(){return r.J},geodesicBuffer:function(){return r.x},geodesicDensify:function(){return r.G},geodesicLength:function(){return r.K},intersect:function(){return r.p},intersectLinesToPoints:function(){return r.L},intersects:function(){return r.i},isSimple:function(){return r.k},nearestCoordinate:function(){return r.y},nearestVertex:function(){return r.z},nearestVertices:function(){return r.A},offset:function(){return r.q},overlaps:function(){return r.o},planarArea:function(){return r.H},planarLength:function(){return r.I},relate:function(){return r.r},rotate:function(){return r.B},simplify:function(){return r.s},symmetricDifference:function(){return r.n},touches:function(){return r.t},union:function(){return r.u},within:function(){return r.w}});e(89067),e(61107);var r=e(4279)}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/332.e2c7801fdd6b21190d1b.js b/docs/sentinel1-explorer/332.e2c7801fdd6b21190d1b.js new file mode 100644 index 00000000..0e25e510 --- /dev/null +++ b/docs/sentinel1-explorer/332.e2c7801fdd6b21190d1b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[332],{12348:function(t,e,i){i.d(e,{Z:function(){return n}});class n{constructor(t){this.size=0,this._start=0,this.maxSize=t,this._buffer=new Array(t)}get entries(){return this._buffer}enqueue(t){if(this.size===this.maxSize){const e=this._buffer[this._start];return this._buffer[this._start]=t,this._start=(this._start+1)%this.maxSize,e}return this._buffer[(this._start+this.size++)%this.maxSize]=t,null}dequeue(){if(0===this.size)return null;const t=this._buffer[this._start];return this._buffer[this._start]=null,this.size--,this._start=(this._start+1)%this.maxSize,t}peek(){return 0===this.size?null:this._buffer[this._start]}find(t){if(0===this.size)return null;for(const e of this._buffer)if(null!=e&&t(e))return e;return null}clear(t){let e=this.dequeue();for(;null!=e;)t&&t(e),e=this.dequeue()}}},73534:function(t,e,i){i.d(e,{I:function(){return s},v:function(){return o}});var n=i(19431);function s(t,e,i=0){const s=(0,n.uZ)(t,0,l);for(let t=0;t<4;t++)e[i+t]=Math.floor(256*h(s*r[t]))}function o(t,e=0){let i=0;for(let n=0;n<4;n++)i+=t[e+n]*a[n];return i}const r=[1,256,65536,16777216],a=[1/256,1/65536,1/16777216,1/4294967296],l=o(new Uint8ClampedArray([255,255,255,255]));function h(t){return t-Math.floor(t)}},70187:function(t,e,i){i.d(e,{Q:function(){return g}});var n=i(36663),s=i(74396),o=(i(70375),i(39994)),r=(i(13802),i(81977)),a=(i(4157),i(40266)),l=i(14266),h=i(19431),u=i(63483);class c{constructor(t,e,i){this._debugMap=new Map,this._width=t*i,this._height=e*i,this._pixelRatio=i;const n=Math.ceil(this._width/1),s=Math.ceil(this._height/1);this._cols=n,this._rows=s,this._cells=u.p.create(n*s)}insertMetrics(t){this._markMetrics(t)}hasCollision(t){let e=0;for(const{computedX:i,computedY:n,width:s,height:o}of t.bounds){const t=(s+l.gj)*this._pixelRatio,r=(o+l.gj)*this._pixelRatio;switch(this._collide(i,n,t,r)){case 2:return 2;case 1:e++}}return e===t.bounds.length?1:0}getCellId(t,e){return t+e*this._cols}has(t){return this._cells.has(t)}hasRange(t,e){return this._cells.hasRange(t,e)}set(t){this._cells.set(t)}setRange(t,e){this._cells.setRange(t,e)}_collide(t,e,i,n){const s=t-i/2,o=e-n/2,r=s+i,a=o+n;if(r<0||a<0||s>this._width||o>this._height)return 1;const l=(0,h.uZ)(Math.floor(s/1),0,this._cols),u=(0,h.uZ)(Math.floor(o/1),0,this._rows),c=(0,h.uZ)(Math.ceil(r/1),0,this._cols),d=(0,h.uZ)(Math.ceil(a/1),0,this._rows);for(let t=u;t<=d;t++)for(let e=l;e<=c;e++){const i=this.getCellId(e,t);if(this.has(i))return 2}return 0}_mark(t,e,i,n,s){const o=t-i/2,r=e-n/2,a=o+i,l=r+n,u=(0,h.uZ)(Math.floor(o/1),0,this._cols),c=(0,h.uZ)(Math.floor(r/1),0,this._rows),d=(0,h.uZ)(Math.ceil(a/1),0,this._cols),_=(0,h.uZ)(Math.ceil(l/1),0,this._rows);for(let t=c;t<=_;t++)for(let e=u;e<=d;e++){const i=this.getCellId(e,t);this._debugMap.set(i,s),this.set(i)}return!1}_markMetrics(t){for(const{computedX:e,computedY:i,width:n,height:s}of t.bounds){const o=(n+l.gj)*this._pixelRatio,r=(s+l.gj)*this._pixelRatio;this._mark(e,i,o,r,t.entityTexel)}}}const d=254,_=255;function m(t,e){const i=t.children.slice();i.sort(((t,e)=>t.tileAge-e.tileAge)),i.forEach((t=>{null!=t.labelMetrics&&t.isReady&&e(t,t.labelMetrics)}))}function p(t,e){return(!t.minScale||t.minScale>=e)&&(!t.maxScale||t.maxScale<=e)}class f{run(t,e,i,n){const s=[];for(let e=t.length-1;e>=0;e--){const i=t[e];i.labelingCollisionInfos?.length&&s.push(...i.labelingCollisionInfos)}(0,o.Z)("esri-2d-update-debug")&&s.length,this._transformMetrics(s),this._runCollision(s,e,i,n);for(const t of s)t.container.requestRender()}_runCollision(t,e,i,n){const[s,o]=e.state.size,r=new c(s,o,e.pixelRatio);for(const{container:e,deconflictionEnabled:s,visible:o}of t){const t=e.attributeView;s?o?(this._prepare(e),this._collideVisible(r,e,i,n),this._collideInvisible(r,e)):m(e,((e,i)=>{for(const e of i)t.setLabelMinZoom(e.entityTexel,_)})):m(e,((e,n)=>{for(const e of n)p(e,i)?(t.setLabelMinZoom(e.entityTexel,0),o&&r.insertMetrics(e)):t.setLabelMinZoom(e.entityTexel,d)}))}}_isFiltered(t,e,i){const n=e.getFilterFlags(t),s=!i.hasFilter||!!(n&l.g3),o=null==i.featureEffect||i.featureEffect.excludedLabelsVisible||!!(n&l.kU);return!(s&&o)}_prepare(t){const e=t.attributeView,i=new Set;m(t,((n,s)=>{for(const n of s){const s=n.entityTexel;i.has(s)||(i.add(s),this._isFiltered(s,e,t.layerView)?e.setLabelMinZoom(s,d):0!==e.getLabelMinZoom(s)?e.setLabelMinZoom(s,_):e.setLabelMinZoom(s,0))}}))}_collideVisible(t,e,i,n){const s=e.attributeView,o=new Set;m(e,((e,r)=>{for(let a=0;a{for(let e=0;e{const o=e.attributeView,r=t.transforms.labelMat2d;r[4]=Math.round(r[4]),r[5]=Math.round(r[5]);const a="polyline"===i;for(const t of s){const{entityTexel:e,anchorX:i,anchorY:s}=t;let l=t.referenceBounds?.size??0;const h=n[0];if(null!=h){const t=h(o.getVVSize(e));l=isNaN(t)||null==t||t===1/0?l:t}const u=t.directionX*(l/2),c=t.directionY*(l/2);for(const e of t.bounds){let t=i,n=s;if(a){let i=t+e.x+u,s=n+e.y+c;i=r[0]*i+r[2]*s+r[4],s=r[1]*i+r[3]*s+r[5],e.computedX=Math.floor(i),e.computedY=Math.floor(s)}else{t=r[0]*i+r[2]*s+r[4],n=r[1]*i+r[3]*s+r[5];const o=t+e.x+u,a=n+e.y+c;e.computedX=o,e.computedY=a}}}}))}}let g=class extends s.Z{constructor(t){super(t),this._lastUpdate=0,this.collisionEngine=new f,this.lastUpdateId=-1,this.updateRequested=!1,this.view=null}get updating(){return(0,o.Z)("esri-2d-log-updating"),this.updateRequested}update(t){const e=performance.now();e-this._lastUpdate>=32?(this._lastUpdate=e,this.doUpdate(t)):this.requestUpdate()}viewChange(){this.requestUpdate()}requestUpdate(){this.updateRequested||(this.updateRequested=!0,this.view?.requestUpdate())}processUpdate(t){this.updateRequested&&(this.updateRequested=!1,this.update(t))}doUpdate(t){const e=this.view;if(e)try{const i=t.state.scale,n=e.featuresTilingScheme.getClosestInfoForScale(i).level;this.collisionEngine.run(e.allLayerViews.items,t,i,n)}catch(t){}}};(0,n._)([(0,r.Cb)()],g.prototype,"updateRequested",void 0),(0,n._)([(0,r.Cb)()],g.prototype,"updating",null),(0,n._)([(0,r.Cb)()],g.prototype,"view",void 0),g=(0,n._)([(0,a.j)("esri.views.2d.LabelManager")],g)},43405:function(t,e,i){var n,s,o;i.d(e,{Fr:function(){return o},_K:function(){return s},al:function(){return n}}),function(t){t[t.FILL=1]="FILL",t[t.LINE=2]="LINE",t[t.SYMBOL=3]="SYMBOL",t[t.CIRCLE=4]="CIRCLE"}(n||(n={})),function(t){t[t.BACKGROUND=0]="BACKGROUND",t[t.FILL=1]="FILL",t[t.OUTLINE=2]="OUTLINE",t[t.LINE=3]="LINE",t[t.ICON=4]="ICON",t[t.CIRCLE=5]="CIRCLE",t[t.TEXT=6]="TEXT",t[t.TILEINFO=7]="TILEINFO"}(s||(s={})),function(t){t[t.PAINTER_CHANGED=0]="PAINTER_CHANGED",t[t.LAYOUT_CHANGED=1]="LAYOUT_CHANGED",t[t.LAYER_CHANGED=2]="LAYER_CHANGED",t[t.LAYER_REMOVED=3]="LAYER_REMOVED",t[t.SPRITES_CHANGED=4]="SPRITES_CHANGED"}(o||(o={}))},54689:function(t,e,i){i.d(e,{Q:function(){return l}});var n=i(12348),s=i(31355),o=i(39994),r=i(33679);const a=(0,o.Z)("esri-2d-profiler");class l{constructor(t,e){if(this._events=new s.Z,this._entries=new Map,this._timings=new n.Z(10),this._currentContainer=null,this._currentPass=null,this._currentBrush=null,this._currentSummary=null,!a)return;this._ext=(0,r.mO)(t.gl,{}),this._debugOutput=e;const i=t.gl;if(!this.enableCommandLogging)return;let o;for(o in i)if("function"==typeof i[o]){const t=i[o],e=o.includes("draw");i[o]=(...n)=>(this._events.emit("command",{container:this._currentContainer,pass:this._currentPass,brush:this._currentBrush,method:o,args:n,isDrawCommand:e}),this._currentSummary&&(this._currentSummary.commands++,e&&this._currentSummary.drawCommands++),t.apply(i,n))}}get enableCommandLogging(){return!("object"==typeof a&&a.disableCommands)}recordContainerStart(t){a&&(this._currentContainer=t)}recordContainerEnd(){a&&(this._currentContainer=null)}recordPassStart(t){a&&(this._currentPass=t,this._initSummary())}recordPassEnd(){a&&(this._currentPass=null,this._emitSummary())}recordBrushStart(t){a&&(this._currentBrush=t)}recordBrushEnd(){a&&(this._currentBrush=null)}recordStart(t){if(a&&null!=this._ext){if(this._entries.has(t)){const e=this._entries.get(t),i=this._ext.resultAvailable(e.query),n=this._ext.disjoint();if(i&&!n){const t=this._ext.getResult(e.query)/1e6;let i=0;if(null!=this._timings.enqueue(t)){const t=this._timings.entries,e=t.length;let n=0;for(const e of t)n+=e;i=n/e}const n=t.toFixed(2),s=i?i.toFixed(2):"--";this.enableCommandLogging,this._debugOutput.innerHTML=`${n} (${s})`}for(const t of e.handles)t.remove();this._ext.deleteQuery(e.query),this._entries.delete(t)}const e={name:t,query:this._ext.createQuery(),commands:[],commandsLen:0,drawCommands:0,summaries:[],handles:[]};this.enableCommandLogging&&(e.handles.push(this._events.on("command",(t=>{e.commandsLen++,e.commands.push(t),t.isDrawCommand&&e.drawCommands++}))),e.handles.push(this._events.on("summary",(t=>{e.summaries.push(t)})))),this._ext.beginTimeElapsed(e.query),this._entries.set(t,e)}}recordEnd(t){a&&null!=this._ext&&this._entries.has(t)&&this._ext.endTimeElapsed()}_initSummary(){this.enableCommandLogging&&(this._currentSummary={container:this._currentContainer,pass:this._currentPass,drawCommands:0,commands:0})}_emitSummary(){this.enableCommandLogging&&this._currentSummary&&this._events.emit("summary",this._currentSummary)}}},58536:function(t,e,i){i.d(e,{Q:function(){return s}});var n=i(74580);const s={shaders:{vertexShader:(0,n.w)("bitBlit/bitBlit.vert"),fragmentShader:(0,n.w)("bitBlit/bitBlit.frag")},attributes:new Map([["a_pos",0],["a_tex",1]])}},41028:function(t,e,i){i.d(e,{C:function(){return s},y:function(){return o}});var n=i(74580);const s={shaders:{vertexShader:(0,n.w)("highlight/textured.vert"),fragmentShader:(0,n.w)("highlight/highlight.frag")},attributes:new Map([["a_position",0],["a_texcoord",1]])},o={shaders:{vertexShader:(0,n.w)("highlight/textured.vert"),fragmentShader:(0,n.w)("highlight/blur.frag")},attributes:new Map([["a_position",0],["a_texcoord",1]])}},82729:function(t,e,i){i.d(e,{F:function(){return r},c:function(){return o}});var n=i(74580),s=i(84172);const o={shaders:{vertexShader:(0,n.w)("magnifier/magnifier.vert"),fragmentShader:(0,n.w)("magnifier/magnifier.frag")},attributes:new Map([["a_pos",0]])};function r(t){return(0,s.H)(t,o)}},24204:function(t,e,i){i.d(e,{H:function(){return s}});var n=i(74580);const s={shaders:{vertexShader:(0,n.w)("stencil/stencil.vert"),fragmentShader:(0,n.w)("stencil/stencil.frag")},attributes:new Map([["a_pos",0]])}},98863:function(t,e,i){i.d(e,{Z:function(){return X}});var n=i(36663),s=i(99054),o=i(74396),r=i(61681),a=i(81977),l=(i(39994),i(13802),i(4157),i(40266)),h=i(67666),u=i(69050),c=i(95550),d=i(28691);const _="esri-zoom-box",m={container:`${_}__container`,overlay:`${_}__overlay`,background:`${_}__overlay-background`,box:`${_}__outline`},p="Shift",f="Ctrl";let g=class extends o.Z{constructor(t){super(t),this._container=null,this._overlay=null,this._backgroundShape=null,this._boxShape=null,this._box={x:0,y:0,width:0,height:0},this._rafId=null,this._redraw=this._redraw.bind(this)}destroy(){this.view=null}set view(t){this.removeAllHandles(),this._destroyOverlay(),this._set("view",t),t&&this.addHandles([t.on("drag",[p],(t=>this._handleDrag(t,1)),d.f.INTERNAL),t.on("drag",[p,f],(t=>this._handleDrag(t,-1)),d.f.INTERNAL)])}_start(){this._createContainer(),this._createOverlay(),this.navigation.begin()}_update(t,e,i,n){this._box.x=t,this._box.y=e,this._box.width=i,this._box.height=n,this._rafId||(this._rafId=requestAnimationFrame(this._redraw))}_end(t,e,i,n,s){const o=this.view,r=o.toMap((0,c.vW)(t+.5*i,e+.5*n));let a=Math.max(i/o.width,n/o.height);-1===s&&(a=1/a),this._destroyOverlay(),this.navigation.end(),o.goTo({center:r,scale:o.scale*a})}_updateBox(t,e,i,n){const s=this._boxShape;s.setAttributeNS(null,"x",""+t),s.setAttributeNS(null,"y",""+e),s.setAttributeNS(null,"width",""+i),s.setAttributeNS(null,"height",""+n),s.setAttributeNS(null,"class",m.box)}_updateBackground(t,e,i,n){this._backgroundShape.setAttributeNS(null,"d",this._toSVGPath(t,e,i,n,this.view.width,this.view.height))}_createContainer(){const t=document.createElement("div");t.className=m.container,this.view.root.appendChild(t),this._container=t}_createOverlay(){const t=this.view.width,e=this.view.height,i=document.createElementNS("http://www.w3.org/2000/svg","path");i.setAttributeNS(null,"d","M 0 0 L "+t+" 0 L "+t+" "+e+" L 0 "+e+" Z"),i.setAttributeNS(null,"class",m.background);const n=document.createElementNS("http://www.w3.org/2000/svg","rect"),s=document.createElementNS("http://www.w3.org/2000/svg","svg");s.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),s.setAttributeNS(null,"class",m.overlay),s.appendChild(i),s.appendChild(n),this._container.appendChild(s),this._backgroundShape=i,this._boxShape=n,this._overlay=s}_destroyOverlay(){this._container&&this._container.parentNode&&this._container.parentNode.removeChild(this._container),this._container=this._backgroundShape=this._boxShape=this._overlay=null}_toSVGPath(t,e,i,n,s,o){const r=t+i,a=e+n;return"M 0 0 L "+s+" 0 L "+s+" "+o+" L 0 "+o+" ZM "+t+" "+e+" L "+t+" "+a+" L "+r+" "+a+" L "+r+" "+e+" Z"}_handleDrag(t,e){const i=t.x,n=t.y,s=t.origin.x,o=t.origin.y;let r,a,l,h;switch(i>s?(r=s,l=i-s):(r=i,l=s-i),n>o?(a=o,h=n-o):(a=n,h=o-n),t.action){case"start":this._start();break;case"update":this._update(r,a,l,h);break;case"end":this._end(r,a,l,h,e)}t.stopPropagation()}_redraw(){if(!this._rafId)return;if(this._rafId=null,!this._overlay)return;const{x:t,y:e,width:i,height:n}=this._box;this._updateBox(t,e,i,n),this._updateBackground(t,e,i,n),this._rafId=requestAnimationFrame(this._redraw)}};(0,n._)([(0,a.Cb)()],g.prototype,"navigation",void 0),(0,n._)([(0,a.Cb)()],g.prototype,"view",null),g=(0,n._)([(0,l.j)("esri.views.2d.navigation.ZoomBox")],g);const v=g;i(91957);var w=i(76868),b=i(86717),T=i(81095);class y{constructor(t){this._gain=t,this.lastValue=void 0,this.filteredDelta=void 0}update(t){if(this.hasLastValue()){const e=this.computeDelta(t);this._updateDelta(e)}this.lastValue=t}reset(){this.lastValue=void 0,this.filteredDelta=void 0}hasLastValue(){return void 0!==this.lastValue}hasFilteredDelta(){return void 0!==this.filteredDelta}computeDelta(t){return void 0===this.lastValue?NaN:t-this.lastValue}_updateDelta(t){void 0!==this.filteredDelta?this.filteredDelta=(1-this._gain)*this.filteredDelta+this._gain*t:this.filteredDelta=t}}class M{constructor(t,e,i){this._initialVelocity=t,this._stopVelocity=e,this._friction=i,this._duration=Math.abs(Math.log(Math.abs(this._initialVelocity)/this._stopVelocity)/Math.log(1-this._friction))}get duration(){return this._duration}isFinished(t){return t>this.duration}get friction(){return this._friction}value(t){return this.valueFromInitialVelocity(this._initialVelocity,t)}valueDelta(t,e){const i=this.value(t);return this.value(t+e)-i}valueFromInitialVelocity(t,e){e=Math.min(e,this.duration);const i=1-this.friction;return t*(i**e-1)/Math.log(i)}}class E extends M{constructor(t,e,i,n,s){super(t,e,i),this._sceneVelocity=n,this.direction=s}value(t){return super.valueFromInitialVelocity(this._sceneVelocity,t)}}class C{constructor(t=300,e=12,i=.84){this._minimumInitialVelocity=t,this._stopVelocity=e,this._friction=i,this.enabled=!0,this._time=new y(.6),this._screen=[new y(.4),new y(.4)],this._scene=[new y(.6),new y(.6),new y(.6)],this._tmpDirection=(0,T.Ue)()}add(t,e,i){if(this.enabled){if(this._time.hasLastValue()&&this._time.computeDelta(i)<.015)return;this._screen[0].update(t[0]),this._screen[1].update(t[1]),this._scene[0].update(e[0]),this._scene[1].update(e[1]),this._scene[2].update(e[2]),this._time.update(i)}}reset(){this._screen[0].reset(),this._screen[1].reset(),this._scene[0].reset(),this._scene[1].reset(),this._scene[2].reset(),this._time.reset()}evaluateMomentum(){if(!this.enabled||!this._screen[0].hasFilteredDelta()||!this._time.hasFilteredDelta())return null;const t=this._screen[0].filteredDelta,e=this._screen[1].filteredDelta,i=null==t||null==e?0:Math.sqrt(t*t+e*e),n=this._time.filteredDelta,s=null==n||null==i?0:i/n;return Math.abs(s)0&&(0,b.h)(this._tmpDirection,this._tmpDirection,1/n);const s=this._time.filteredDelta;return new E(t,e,i,null==s?0:n/s,this._tmpDirection)}}let S=class extends o.Z{constructor(t){super(t),this.animationTime=0,this.momentumEstimator=new C(500,6,.92),this.momentum=null,this.tmpMomentum=(0,T.Ue)(),this.momentumFinished=!1,this.viewpoint=new s.Z({targetGeometry:new h.Z,scale:0,rotation:0}),this._previousDrag=null,(0,w.gx)((()=>this.momentumFinished),(()=>this.navigation.stop()))}begin(t,e){this.navigation.begin(),this.momentumEstimator.reset(),this.addToEstimator(e),this._previousDrag=e}update(t,e){this.addToEstimator(e);let i=e.center.x,n=e.center.y;const s=this._previousDrag;i=s?s.center.x-i:-i,n=s?n-s.center.y:n,t.viewpoint=(0,u.Rx)(this.viewpoint,t.viewpoint,[i||0,n||0]),this._previousDrag=e}end(t,e){this.addToEstimator(e);const i=t.navigation.momentumEnabled;this.momentum=i?this.momentumEstimator.evaluateMomentum():null,this.animationTime=0,this.momentum&&this.onAnimationUpdate(t),this._previousDrag=null,this.navigation.end()}addToEstimator(t){const e=t.center.x,i=t.center.y,n=(0,c.s1)(-e,i),s=(0,T.al)(-e,i,0);this.momentumEstimator.add(n,s,.001*t.timestamp)}onAnimationUpdate(t){this.navigation.animationManager?.animateContinous(t.viewpoint,((e,i)=>{const{momentum:n,animationTime:s,tmpMomentum:o}=this,r=.001*i;if(!(this.momentumFinished=!n||n.isFinished(s))){const i=n.valueDelta(s,r);(0,b.h)(o,n.direction,i),(0,u.Rx)(e,e,o),t.constraints.constrainByGeometry(e)}this.animationTime+=r}))}stopMomentumNavigation(){this.momentum&&(this.momentumEstimator.reset(),this.momentum=null,this.navigation.stop())}};(0,n._)([(0,a.Cb)()],S.prototype,"momentumFinished",void 0),(0,n._)([(0,a.Cb)()],S.prototype,"viewpoint",void 0),(0,n._)([(0,a.Cb)()],S.prototype,"navigation",void 0),S=(0,n._)([(0,l.j)("esri.views.2d.navigation.actions.Pan")],S);const I=S;var x=i(36531),D=i(84164),A=i(19431);class O{constructor(t=2.5,e=.01,i=.95,n=12){this._minimumInitialVelocity=t,this._stopVelocity=e,this._friction=i,this._maxVelocity=n,this.enabled=!0,this.value=new y(.8),this.time=new y(.3)}add(t,e){if(this.enabled&&null!=e){if(this.time.hasLastValue()){if(this.time.computeDelta(e)<.01)return;if(this.value.hasFilteredDelta()){const e=this.value.computeDelta(t);this.value.filteredDelta*e<0&&this.value.reset()}}this.time.update(e),this.value.update(t)}}reset(){this.value.reset(),this.time.reset()}evaluateMomentum(){if(!this.enabled||!this.value.hasFilteredDelta()||!this.time.hasFilteredDelta())return null;let t=this.value.filteredDelta/this.time.filteredDelta;return t=(0,A.uZ)(t,-this._maxVelocity,this._maxVelocity),Math.abs(t)Math.PI;)e-=2*Math.PI;for(;e<-Math.PI;)e+=2*Math.PI;t=i+e}super.add(t,e)}}class R extends M{constructor(t,e,i){super(t,e,i)}value(t){const e=super.value(t);return Math.exp(e)}valueDelta(t,e){const i=super.value(t),n=super.value(t+e)-i;return Math.exp(n)}}class N extends O{constructor(t=2.5,e=.01,i=.95,n=12){super(t,e,i,n)}add(t,e){super.add(Math.log(t),e)}createMomentum(t,e,i){return new R(t,e,i)}}let z=class extends o.Z{constructor(t){super(t),this._animationTime=0,this._momentumFinished=!1,this._previousAngle=0,this._previousRadius=0,this._previousCenter=null,this._rotationMomentumEstimator=new L(.6,.15,.95),this._rotationDirection=1,this._startAngle=0,this._startRadius=0,this._updateTimestamp=null,this._zoomDirection=1,this._zoomMomentumEstimator=new N,this._zoomOnly=null,this.zoomMomentum=null,this.rotateMomentum=null,this.viewpoint=new s.Z({targetGeometry:new h.Z,scale:0,rotation:0}),this.addHandles((0,w.gx)((()=>this._momentumFinished),(()=>this.navigation.stop())))}begin(t,e){this.navigation.begin(),this._rotationMomentumEstimator.reset(),this._zoomMomentumEstimator.reset(),this._zoomOnly=null,this._previousAngle=this._startAngle=e.angle,this._previousRadius=this._startRadius=e.radius,this._previousCenter=e.center,this._updateTimestamp=null,t.constraints.rotationEnabled&&this.addToRotateEstimator(0,e.timestamp),this.addToZoomEstimator(e,1)}update(t,e){null===this._updateTimestamp&&(this._updateTimestamp=e.timestamp);const i=e.angle,n=e.radius,s=e.center,o=Math.abs(180*(i-this._startAngle)/Math.PI),r=Math.abs(n-this._startRadius),a=this._startRadius/n;if(this._previousRadius&&this._previousCenter){const l=n/this._previousRadius;let h=180*(i-this._previousAngle)/Math.PI;this._rotationDirection=h>=0?1:-1,this._zoomDirection=l>=1?1:-1,t.constraints.rotationEnabled?(null===this._zoomOnly&&e.timestamp-this._updateTimestamp>200&&(this._zoomOnly=r-o>0),null===this._zoomOnly||this._zoomOnly?h=0:this.addToRotateEstimator(i-this._startAngle,e.timestamp)):h=0,this.addToZoomEstimator(e,a),this.navigation.setViewpoint([s.x,s.y],1/l,h,[this._previousCenter.x-s.x,s.y-this._previousCenter.y])}this._previousAngle=i,this._previousRadius=n,this._previousCenter=s}end(t){this.rotateMomentum=this._rotationMomentumEstimator.evaluateMomentum(),this.zoomMomentum=this._zoomMomentumEstimator.evaluateMomentum(),this._animationTime=0,(this.rotateMomentum||this.zoomMomentum)&&this.onAnimationUpdate(t),this.navigation.end()}addToRotateEstimator(t,e){this._rotationMomentumEstimator.add(t,.001*e)}addToZoomEstimator(t,e){this._zoomMomentumEstimator.add(e,.001*t.timestamp)}canZoomIn(t){const e=t.scale,i=t.constraints.effectiveMaxScale;return 0===i||e>i}canZoomOut(t){const e=t.scale,i=t.constraints.effectiveMinScale;return 0===i||e{const n=!this.canZoomIn(t)&&this._zoomDirection>1||!this.canZoomOut(t)&&this._zoomDirection<1,s=!this.rotateMomentum||this.rotateMomentum.isFinished(this._animationTime),o=n||!this.zoomMomentum||this.zoomMomentum.isFinished(this._animationTime),r=.001*i;if(this._momentumFinished=s&&o,!this._momentumFinished){const i=this.rotateMomentum?Math.abs(this.rotateMomentum.valueDelta(this._animationTime,r))*this._rotationDirection*180/Math.PI:0;let n=this.zoomMomentum?Math.abs(this.zoomMomentum.valueDelta(this._animationTime,r)):1;const s=(0,D.Ue)(),o=(0,D.Ue)();if(this._previousCenter){(0,x.t8)(s,this._previousCenter.x,this._previousCenter.y),(0,u.Dq)(o,t.size,t.padding),(0,x.IH)(s,s,o);const{constraints:r,scale:a}=t,l=a*n;n<1&&!r.canZoomInTo(l)?(n=a/r.effectiveMaxScale,this.zoomMomentum=null,this.rotateMomentum=null):n>1&&!r.canZoomOutTo(l)&&(n=a/r.effectiveMinScale,this.zoomMomentum=null,this.rotateMomentum=null),(0,u.UZ)(e,t.viewpoint,n,i,s,t.size),t.constraints.constrainByGeometry(e)}}this._animationTime+=r}))}stopMomentumNavigation(){(this.rotateMomentum||this.zoomMomentum)&&(this.rotateMomentum&&(this._rotationMomentumEstimator.reset(),this.rotateMomentum=null),this.zoomMomentum&&(this._zoomMomentumEstimator.reset(),this.zoomMomentum=null),this.navigation.stop())}};(0,n._)([(0,a.Cb)()],z.prototype,"_momentumFinished",void 0),(0,n._)([(0,a.Cb)()],z.prototype,"viewpoint",void 0),(0,n._)([(0,a.Cb)()],z.prototype,"navigation",void 0),z=(0,n._)([(0,l.j)("esri.views.2d.navigation.actions.Pinch")],z);const B=z,U=(0,D.Ue)(),V=(0,D.Ue)();let P=class extends o.Z{constructor(t){super(t),this._previousCenter=(0,D.Ue)(),this.viewpoint=new s.Z({targetGeometry:new h.Z,scale:0,rotation:0})}begin(t,e){this.navigation.begin(),(0,x.t8)(this._previousCenter,e.center.x,e.center.y)}update(t,e){const{state:{size:i,padding:n}}=t;(0,x.t8)(U,e.center.x,e.center.y),(0,u.ni)(V,i,n),t.viewpoint=(0,u.$H)(this.viewpoint,t.state.paddedViewState.viewpoint,(0,u.dI)(V,this._previousCenter,U)),(0,x.JG)(this._previousCenter,U)}end(){this.navigation.end()}};(0,n._)([(0,a.Cb)()],P.prototype,"viewpoint",void 0),(0,n._)([(0,a.Cb)()],P.prototype,"navigation",void 0),P=(0,n._)([(0,l.j)("esri.views.2d.actions.Rotate")],P);const F=P,Z=10,k=new s.Z({targetGeometry:new h.Z}),W=[0,0];let G=class extends o.Z{constructor(t){super(t),this._endTimer=null,this._lastEventTimestamp=null,this.animationManager=null,this.interacting=!1}initialize(){this.pan=new I({navigation:this}),this.rotate=new F({navigation:this}),this.pinch=new B({navigation:this}),this.zoomBox=new v({view:this.view,navigation:this})}destroy(){this.pan=(0,r.SC)(this.pan),this.rotate=(0,r.SC)(this.rotate),this.pinch=(0,r.SC)(this.pinch),this.zoomBox=(0,r.SC)(this.zoomBox),this.animationManager=null}begin(){this.stop(),this._set("interacting",!0)}end(){this._lastEventTimestamp=performance.now(),this._startTimer(250)}async zoom(t,e=this._getDefaultAnchor()){if(this.begin(),this.view.constraints.snapToZoom&&this.view.constraints.effectiveLODs)return t<1?this.zoomIn(e):this.zoomOut(e);this.setViewpoint(e,t,0,[0,0])}async zoomIn(t){const e=this.view,i=e.constraints.snapToNextScale(e.scale);return this._zoomToScale(i,t)}async zoomOut(t){const e=this.view,i=e.constraints.snapToPreviousScale(e.scale);return this._zoomToScale(i,t)}setViewpoint(t,e,i,n){this.begin(),this.view.stateManager.state.viewpoint=this._scaleRotateTranslateViewpoint(this.view.viewpoint,t,e,i,n),this.end()}setViewpointImmediate(t,e=0,i=[0,0],n=this._getDefaultAnchor()){this.view.stateManager.state.viewpoint=this._scaleRotateTranslateViewpoint(this.view.viewpoint,n,t,e,i)}continousRotateClockwise(){const t=this.view.viewpoint;this.animationManager?.animateContinous(t,(t=>{(0,u.$H)(t,t,-1)}))}continousRotateCounterclockwise(){const t=this.view.viewpoint;this.animationManager?.animateContinous(t,(t=>{(0,u.$H)(t,t,1)}))}resetRotation(){this.view.constraints.rotationEnabled&&(this.view.rotation=0)}continousPanLeft(){this._continuousPan([-10,0])}continousPanRight(){this._continuousPan([Z,0])}continousPanUp(){this._continuousPan([0,Z])}continousPanDown(){this._continuousPan([0,-10])}continuousPanVector({x:t,y:e}){this._continuousPan([t*Z,e*Z])}stop(){this.pan.stopMomentumNavigation(),this.animationManager?.stop(),this.end(),null!==this._endTimer&&(clearTimeout(this._endTimer),this._endTimer=null,this._set("interacting",!1))}_continuousPan(t){const e=this.view.viewpoint;this.animationManager?.animateContinous(e,(e=>{(0,u.Rx)(e,e,t),this.view.constraints.constrainByGeometry(e)}))}_startTimer(t){return null!==this._endTimer||(this._endTimer=setTimeout((()=>{this._endTimer=null;const t=performance.now()-(this._lastEventTimestamp??0);t<250?this._endTimer=this._startTimer(t):this._set("interacting",!1)}),t)),this._endTimer}_getDefaultAnchor(){const{size:t,padding:{left:e,right:i,top:n,bottom:s}}=this.view;return W[0]=.5*(t[0]-i+e),W[1]=.5*(t[1]-s+n),W}async _zoomToScale(t,e=this._getDefaultAnchor()){const{view:i}=this,{constraints:n,scale:s,viewpoint:o,size:r,padding:a}=i,l=n.canZoomInTo(t),h=n.canZoomOutTo(t);if(!(ts&&!h))return(0,u.gG)(k,o,t/s,0,e,r,a),n.constrainByGeometry(k),i.goTo(k,{animate:!0,pickClosestTarget:!1})}_scaleRotateTranslateViewpoint(t,e,i,n,s){const{view:o}=this,{size:r,padding:a,constraints:l,scale:h,viewpoint:c}=o,d=h*i,_=l.canZoomInTo(d),m=l.canZoomOutTo(d);return(i<1&&!_||i>1&&!m)&&(i=1),(0,u.Rx)(c,c,s),(0,u.gG)(t,c,i,n,e,r,a),l.constrainByGeometry(t)}};(0,n._)([(0,a.Cb)()],G.prototype,"animationManager",void 0),(0,n._)([(0,a.Cb)({type:Boolean,readOnly:!0})],G.prototype,"interacting",void 0),(0,n._)([(0,a.Cb)()],G.prototype,"pan",void 0),(0,n._)([(0,a.Cb)()],G.prototype,"pinch",void 0),(0,n._)([(0,a.Cb)()],G.prototype,"rotate",void 0),(0,n._)([(0,a.Cb)()],G.prototype,"view",void 0),(0,n._)([(0,a.Cb)()],G.prototype,"zoomBox",void 0),G=(0,n._)([(0,l.j)("esri.views.2d.navigation.MapViewNavigation")],G);const X=G},23410:function(t,e,i){i.d(e,{H:function(){return s},K:function(){return n}});const n=class{};function s(t,...e){let i="";for(let n=0;nt.createQuery()),(e=>{t.deleteQuery(e),s=!1}),(e=>t.getQueryParameter(e,t.QUERY_RESULT_AVAILABLE)),(e=>t.getQueryParameter(e,t.QUERY_RESULT)),(()=>t.getParameter(i.GPU_DISJOINT_EXT)),(e=>{s||(s=!0,t.beginQuery(i.TIME_ELAPSED_EXT,e))}),(()=>{t.endQuery(i.TIME_ELAPSED_EXT),s=!1}),(t=>i.queryCounterEXT(t,i.TIMESTAMP_EXT)),(()=>t.getQuery(i.TIMESTAMP_EXT,i.QUERY_COUNTER_BITS_EXT))):(i=t.getExtension("EXT_disjoint_timer_query"),i?new n((()=>i.createQueryEXT()),(t=>{i.deleteQueryEXT(t),s=!1}),(t=>i.getQueryObjectEXT(t,i.QUERY_RESULT_AVAILABLE_EXT)),(t=>i.getQueryObjectEXT(t,i.QUERY_RESULT_EXT)),(()=>t.getParameter(i.GPU_DISJOINT_EXT)),(t=>{s||(s=!0,i.beginQueryEXT(i.TIME_ELAPSED_EXT,t))}),(()=>{i.endQueryEXT(i.TIME_ELAPSED_EXT),s=!1}),(t=>i.queryCounterEXT(t,i.TIMESTAMP_EXT)),(()=>i.getQueryEXT(i.TIMESTAMP_EXT,i.QUERY_COUNTER_BITS_EXT))):null)}},17346:function(t,e,i){i.d(e,{BK:function(){return c},LZ:function(){return u},if:function(){return o},jp:function(){return W},sm:function(){return T},wK:function(){return r},zp:function(){return h}});var n=i(70984),s=i(91907);function o(t,e,i=s.db.ADD,n=[0,0,0,0]){return{srcRgb:t,srcAlpha:t,dstRgb:e,dstAlpha:e,opRgb:i,opAlpha:i,color:{r:n[0],g:n[1],b:n[2],a:n[3]}}}function r(t,e,i,n,o=s.db.ADD,r=s.db.ADD,a=[0,0,0,0]){return{srcRgb:t,srcAlpha:e,dstRgb:i,dstAlpha:n,opRgb:o,opAlpha:r,color:{r:a[0],g:a[1],b:a[2],a:a[3]}}}const a={face:s.LR.BACK,mode:s.Wf.CCW},l={face:s.LR.FRONT,mode:s.Wf.CCW},h=t=>t===n.Vr.Back?a:t===n.Vr.Front?l:null,u={zNear:0,zFar:1},c={r:!0,g:!0,b:!0,a:!0};function d(t){return E.intern(t)}function _(t){return S.intern(t)}function m(t){return x.intern(t)}function p(t){return A.intern(t)}function f(t){return L.intern(t)}function g(t){return N.intern(t)}function v(t){return B.intern(t)}function w(t){return V.intern(t)}function b(t){return F.intern(t)}function T(t){return k.intern(t)}class y{constructor(t,e){this._makeKey=t,this._makeRef=e,this._interns=new Map}intern(t){if(!t)return null;const e=this._makeKey(t),i=this._interns;return i.has(e)||i.set(e,this._makeRef(t)),i.get(e)??null}}function M(t){return"["+t.join(",")+"]"}const E=new y(C,(t=>({__tag:"Blending",...t})));function C(t){return t?M([t.srcRgb,t.srcAlpha,t.dstRgb,t.dstAlpha,t.opRgb,t.opAlpha,t.color.r,t.color.g,t.color.b,t.color.a]):null}const S=new y(I,(t=>({__tag:"Culling",...t})));function I(t){return t?M([t.face,t.mode]):null}const x=new y(D,(t=>({__tag:"PolygonOffset",...t})));function D(t){return t?M([t.factor,t.units]):null}const A=new y(O,(t=>({__tag:"DepthTest",...t})));function O(t){return t?M([t.func]):null}const L=new y(R,(t=>({__tag:"StencilTest",...t})));function R(t){return t?M([t.function.func,t.function.ref,t.function.mask,t.operation.fail,t.operation.zFail,t.operation.zPass]):null}const N=new y(z,(t=>({__tag:"DepthWrite",...t})));function z(t){return t?M([t.zNear,t.zFar]):null}const B=new y(U,(t=>({__tag:"ColorWrite",...t})));function U(t){return t?M([t.r,t.g,t.b,t.a]):null}const V=new y(P,(t=>({__tag:"StencilWrite",...t})));function P(t){return t?M([t.mask]):null}const F=new y(Z,(t=>({__tag:"DrawBuffers",...t})));function Z(t){return t?M(t.buffers):null}const k=new y((function(t){return t?M([C(t.blending),I(t.culling),D(t.polygonOffset),O(t.depthTest),R(t.stencilTest),z(t.depthWrite),U(t.colorWrite),P(t.stencilWrite),Z(t.drawBuffers)]):null}),(t=>({blending:d(t.blending),culling:_(t.culling),polygonOffset:m(t.polygonOffset),depthTest:p(t.depthTest),stencilTest:f(t.stencilTest),depthWrite:g(t.depthWrite),colorWrite:v(t.colorWrite),stencilWrite:w(t.stencilWrite),drawBuffers:b(t.drawBuffers)})));class W{constructor(t){this._pipelineInvalid=!0,this._blendingInvalid=!0,this._cullingInvalid=!0,this._polygonOffsetInvalid=!0,this._depthTestInvalid=!0,this._stencilTestInvalid=!0,this._depthWriteInvalid=!0,this._colorWriteInvalid=!0,this._stencilWriteInvalid=!0,this._drawBuffersInvalid=!0,this._stateSetters=t}setPipeline(t){(this._pipelineInvalid||t!==this._pipeline)&&(this._setBlending(t.blending),this._setCulling(t.culling),this._setPolygonOffset(t.polygonOffset),this._setDepthTest(t.depthTest),this._setStencilTest(t.stencilTest),this._setDepthWrite(t.depthWrite),this._setColorWrite(t.colorWrite),this._setStencilWrite(t.stencilWrite),this._setDrawBuffers(t.drawBuffers),this._pipeline=t),this._pipelineInvalid=!1}invalidateBlending(){this._blendingInvalid=!0,this._pipelineInvalid=!0}invalidateCulling(){this._cullingInvalid=!0,this._pipelineInvalid=!0}invalidatePolygonOffset(){this._polygonOffsetInvalid=!0,this._pipelineInvalid=!0}invalidateDepthTest(){this._depthTestInvalid=!0,this._pipelineInvalid=!0}invalidateStencilTest(){this._stencilTestInvalid=!0,this._pipelineInvalid=!0}invalidateDepthWrite(){this._depthWriteInvalid=!0,this._pipelineInvalid=!0}invalidateColorWrite(){this._colorWriteInvalid=!0,this._pipelineInvalid=!0}invalidateStencilWrite(){this._stencilTestInvalid=!0,this._pipelineInvalid=!0}invalidateDrawBuffers(){this._drawBuffersInvalid=!0,this._pipelineInvalid=!0}_setBlending(t){this._blending=this._setSubState(t,this._blending,this._blendingInvalid,this._stateSetters.setBlending),this._blendingInvalid=!1}_setCulling(t){this._culling=this._setSubState(t,this._culling,this._cullingInvalid,this._stateSetters.setCulling),this._cullingInvalid=!1}_setPolygonOffset(t){this._polygonOffset=this._setSubState(t,this._polygonOffset,this._polygonOffsetInvalid,this._stateSetters.setPolygonOffset),this._polygonOffsetInvalid=!1}_setDepthTest(t){this._depthTest=this._setSubState(t,this._depthTest,this._depthTestInvalid,this._stateSetters.setDepthTest),this._depthTestInvalid=!1}_setStencilTest(t){this._stencilTest=this._setSubState(t,this._stencilTest,this._stencilTestInvalid,this._stateSetters.setStencilTest),this._stencilTestInvalid=!1}_setDepthWrite(t){this._depthWrite=this._setSubState(t,this._depthWrite,this._depthWriteInvalid,this._stateSetters.setDepthWrite),this._depthWriteInvalid=!1}_setColorWrite(t){this._colorWrite=this._setSubState(t,this._colorWrite,this._colorWriteInvalid,this._stateSetters.setColorWrite),this._colorWriteInvalid=!1}_setStencilWrite(t){this._stencilWrite=this._setSubState(t,this._stencilWrite,this._stencilWriteInvalid,this._stateSetters.setStencilWrite),this._stencilTestInvalid=!1}_setDrawBuffers(t){this._drawBuffers=this._setSubState(t,this._drawBuffers,this._drawBuffersInvalid,this._stateSetters.setDrawBuffers),this._drawBuffersInvalid=!1}_setSubState(t,e,i,n){return(i||t!==e)&&(n(t),this._pipelineInvalid=!0),t}}},61581:function(t,e,i){i.d(e,{d:function(){return c}});var n=i(27894),s=i(78951),o=i(91907),r=i(18567),a=i(71449),l=i(80479),h=i(29620),u=i(31873);class c extends u.G{constructor(t){super(),this._rctx=t;this._program=t.programCache.acquire("\n precision highp float;\n\n attribute vec2 a_pos;\n varying vec2 v_uv;\n\n void main() {\n v_uv = a_pos;\n gl_Position = vec4(a_pos * 2.0 - 1.0, 0.0, 1.0);\n }\n ","\n precision highp float;\n\n varying vec2 v_uv;\n\n uniform sampler2D u_texture;\n\n void main() {\n gl_FragColor = texture2D(u_texture, v_uv);\n }\n ",new Map([["a_pos",0]]))}dispose(){super.dispose()}_test(t){const e=this._rctx;if(!e.gl)return t.dispose(),!0;const i=new l.X(1);i.wrapMode=o.e8.CLAMP_TO_EDGE,i.samplingMode=o.cw.NEAREST;const u=new r.X(e,i),c=s.f.createVertex(e,o.l1.STATIC_DRAW,new Uint16Array([0,0,1,0,0,1,1,1])),_=new h.U(e,new Map([["a_pos",0]]),n.cD,{geometry:c}),m=new l.X;m.samplingMode=o.cw.LINEAR,m.wrapMode=o.e8.CLAMP_TO_EDGE;const p=new a.x(e,m,d);e.useProgram(t),e.bindTexture(p,0),t.setUniform1i("u_texture",0);const f=e.getBoundFramebufferObject(),{x:g,y:v,width:w,height:b}=e.getViewport();e.bindFramebuffer(u),e.setViewport(0,0,1,1),e.setClearColor(0,0,0,0),e.setBlendingEnabled(!1),e.clearSafe(o.lk.COLOR_BUFFER_BIT),e.bindVAO(_),e.drawArrays(o.MX.TRIANGLE_STRIP,0,4);const T=new Uint8Array(4);return u.readPixels(0,0,1,1,o.VI.RGBA,o.Br.UNSIGNED_BYTE,T),_.dispose(),u.dispose(),p.dispose(),e.setViewport(g,v,w,b),e.bindFramebuffer(f),255!==T[0]}}const d=new Image;d.src="data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='5' height='5' version='1.1' viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='5' height='5' fill='%23f00' fill-opacity='.5'/%3E%3C/svg%3E%0A",d.width=5,d.height=5,d.decode()}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3399.8d7464162d75fe8583c1.js b/docs/sentinel1-explorer/3399.8d7464162d75fe8583c1.js new file mode 100644 index 00000000..2337198f --- /dev/null +++ b/docs/sentinel1-explorer/3399.8d7464162d75fe8583c1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3399],{63399:function(e,a,r){r.r(a),r.d(a,{default:function(){return o}});const o={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - dd MMM",_date_hour:"HH:mm",_date_hour_full:"HH:mm - dd MMM",_date_day:"dd MMM",_date_day_full:"dd MMM",_date_week:"ww",_date_week_full:"dd MMM",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_second:"ss",_duration_minute:"mm",_duration_hour:"hh",_duration_day:"dd",_duration_week:"ww",_duration_month:"MM",_duration_year:"yyyy",_era_ad:"DC",_era_bc:"AC",A:"",P:"",AM:"",PM:"","A.M.":"","P.M.":"",January:"Janeiro",February:"Fevereiro",March:"Março",April:"Abril",May:"Maio",June:"Junho",July:"Julho",August:"Agosto",September:"Setembro",October:"Outubro",November:"Novembro",December:"Dezembro",Jan:"Jan",Feb:"Fev",Mar:"Mar",Apr:"Abr","May(short)":"Mai",Jun:"Jun",Jul:"Jul",Aug:"Ago",Sep:"Set",Oct:"Out",Nov:"Nov",Dec:"Dez",Sunday:"Domingo",Monday:"Segunda-feira",Tuesday:"Terça-feira",Wednesday:"Quarta-feira",Thursday:"Quinta-feira",Friday:"Sexta-feira",Saturday:"Sábado",Sun:"Dom",Mon:"Seg",Tue:"Ter",Wed:"Qua",Thu:"Qui",Fri:"Sex",Sat:"Sáb",_dateOrd:function(e){return"º"},"Zoom Out":"Reduzir Zoom",Play:"Play",Stop:"Parar",Legend:"Legenda","Press ENTER to toggle":"Clique, toque ou pressione ENTER para alternar",Loading:"Carregando",Home:"Início",Chart:"Gráfico","Serial chart":"Gráfico Serial","X/Y chart":"Gráfico XY","Pie chart":"Gráfico de Pizza","Gauge chart":"Gráfico Indicador","Radar chart":"Gráfico de Radar","Sankey diagram":"Diagrama Sankey","Chord diagram":"Diagram Chord","Flow diagram":"Diagrama Flow","TreeMap chart":"Gráfico de Mapa de Árvore",Series:"Séries","Candlestick Series":"Séries do Candlestick","Column Series":"Séries de Colunas","Line Series":"Séries de Linhas","Pie Slice Series":"Séries de Fatias de Pizza","X/Y Series":"Séries de XY",Map:"Mapa","Press ENTER to zoom in":"Pressione ENTER para aumentar o zoom","Press ENTER to zoom out":"Pressione ENTER para diminuir o zoom","Use arrow keys to zoom in and out":"Use as setas para diminuir ou aumentar o zoom","Use plus and minus keys on your keyboard to zoom in and out":"Use as teclas mais ou menos no seu teclado para diminuir ou aumentar o zoom",Export:"Exportar",Image:"Imagem",Data:"Dados",Print:"Imprimir","Press ENTER to open":"Clique, toque ou pressione ENTER para abrir","Press ENTER to print.":"Clique, toque ou pressione ENTER para imprimir","Press ENTER to export as %1.":"Clique, toque ou pressione ENTER para exportar como %1.","(Press ESC to close this message)":"(Pressione ESC para fechar esta mensagem)","Image Export Complete":"A exportação da imagem foi completada","Export operation took longer than expected. Something might have gone wrong.":"A exportação da imagem demorou mais do que o experado. Algo deve ter dado errado.","Saved from":"Salvo de",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"Use TAB para selecionar os botões ou setas para a direita ou esquerda para mudar a seleção","Use left and right arrows to move selection":"Use as setas para a esquerda ou direita para mover a seleção","Use left and right arrows to move left selection":"Use as setas para a esquerda ou direita para mover a seleção da esquerda","Use left and right arrows to move right selection":"Use as setas para a esquerda ou direita para mover a seleção da direita","Use TAB select grip buttons or up and down arrows to change selection":"Use TAB para selecionar os botões ou setas para cima ou para baixo para mudar a seleção","Use up and down arrows to move selection":"Use as setas para cima ou para baixo para mover a seleção","Use up and down arrows to move lower selection":"Use as setas para cima ou para baixo para mover a seleção de baixo","Use up and down arrows to move upper selection":"Use as setas para cima ou para baixo para mover a seleção de cima","From %1 to %2":"De %1 até %2","From %1":"De %1","To %1":"Até %1","No parser available for file: %1":"Nenhum interpretador está disponível para este arquivo: %1","Error parsing file: %1":"Erro ao analizar o arquivo: %1","Unable to load file: %1":"O arquivo não pôde ser carregado: %1","Invalid date":"Data inválida"}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3433.0822bc5eefeb6794812a.js b/docs/sentinel1-explorer/3433.0822bc5eefeb6794812a.js new file mode 100644 index 00000000..870951f5 --- /dev/null +++ b/docs/sentinel1-explorer/3433.0822bc5eefeb6794812a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3433],{53433:function(e,_,r){r.r(_),r.d(_,{default:function(){return d}});const d={_decimalSeparator:".",_thousandSeparator:",",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"西暦",_era_bc:"紀元前",A:"午前",P:"午後",AM:"午前",PM:"午後","A.M.":"午前","P.M.":"午後",January:"1月",February:"2月",March:"3月",April:"4月",May:"5月",June:"6月",July:"7月",August:"8月",September:"9月",October:"10月",November:"11月",December:"12月",Jan:"1月",Feb:"2月",Mar:"3月",Apr:"4月","May(short)":"5月",Jun:"6月",Jul:"7月",Aug:"8月",Sep:"9月",Oct:"10月",Nov:"11月",Dec:"12月",Sunday:"日曜日",Monday:"月曜日",Tuesday:"火曜日",Wednesday:"水曜日",Thursday:"木曜日",Friday:"金曜日",Saturday:"土曜日",Sun:"日",Mon:"月",Tue:"火",Wed:"水",Thu:"木",Fri:"金",Sat:"土",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"ズーム",Play:"再生",Stop:"停止",Legend:"凡例","Press ENTER to toggle":"",Loading:"読み込んでいます",Home:"ホーム",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"印刷",Image:"イメージ",Data:"データ",Print:"印刷","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"始点 %1 終点 %2","From %1":"始点 %1","To %1":"終点 %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3449.970f8f9e45bd00bb034b.js b/docs/sentinel1-explorer/3449.970f8f9e45bd00bb034b.js new file mode 100644 index 00000000..c56f55d4 --- /dev/null +++ b/docs/sentinel1-explorer/3449.970f8f9e45bd00bb034b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3449],{56144:function(e,t,i){i.d(t,{k2:function(){return Ye},IG:function(){return $e},W4:function(){return je}});var s=i(14266),r=i(32676),o=i(38716);class a{constructor(e){this.registryName=e,this.postProcessingEnabled=!1,this.overrideStencilRef=null,this.drawPhase=o.jx.MAP|o.jx.HITTEST|o.jx.HIGHLIGHT|o.jx.DEBUG,this.symbologyPlane=o.mH.FILL}startup(){}shutdown(e){}postProcess(e,t){}}var n=i(36663),l=i(89168),u=i(77524),c=i(72691),p=i(61505);class d extends l.Pz{}(0,n._)([(0,l.xh)(0,u.Sg)],d.prototype,"pos",void 0);class h extends c.fz{}class f extends l.oo{}(0,n._)([(0,l.e5)(u.bv)],f.prototype,"dotSize",void 0);class m extends l.oo{}(0,n._)([(0,l.e5)(u.Eg)],m.prototype,"locations",void 0),(0,n._)([(0,l.e5)(u.bv)],m.prototype,"pixelRatio",void 0),(0,n._)([(0,l.e5)(u.bv)],m.prototype,"tileZoomFactor",void 0);class v extends l.ri{vertex(e){const t=new u.Tu(1,0,0,0,-1,0,0,1,1).multiply(new u.AO(e.pos.xy.divide(s.i9),1)),i=(0,u.ig)(this.draw.locations,t.xy),r=(0,u.Fp)(this.instance.dotSize.divide(2),new u.bv(1));let o=new u.bv(0);o=o.add((0,u.Nb)(i.a,new u.bv(1e-6)).multiply(2));let a=r.add(this.instance.dotSize);const n=this.view.displayViewScreenMat3.multiply(new u.AO(e.pos.add(.5),1)),l=new u.T8(n.xy,o,1),c=this.instance.dotSize.divide(a),p=new u.bv(-1).divide(r.divide(a));return a=a.multiply(this.draw.pixelRatio.multiply(this.draw.tileZoomFactor)),{glPosition:l,glPointSize:a,color:i,ratio:c,invEdgeRatio:p}}fragment(e){const t=(0,u.kE)(e.glPointCoord.subtract(.5)).multiply(2),i=(0,u.CW)(new u.bv(0),new u.bv(1),e.invEdgeRatio.multiply(t.subtract(e.ratio)).add(1)),s=new l.Qt;return s.glFragColor=e.color.multiply(i),s}}(0,n._)([(0,l.e5)(f)],v.prototype,"instance",void 0),(0,n._)([(0,l.e5)(m)],v.prototype,"draw",void 0),(0,n._)([(0,l.e5)(p.C)],v.prototype,"view",void 0),(0,n._)([(0,n.a)(0,(0,l.qH)(d))],v.prototype,"vertex",null),(0,n._)([(0,n.a)(0,(0,l.qH)(h))],v.prototype,"fragment",null);var y=i(24306),b=i(22070);class g extends c.HN{}(0,n._)([(0,l.xh)(3,u.bv)],g.prototype,"inverseArea",void 0);class x extends c.fz{}class w extends l.oo{}(0,n._)([(0,l.e5)(u.v8.ofType(u.T8,2))],w.prototype,"isActive",void 0),(0,n._)([(0,l.e5)(u.v8.ofType(u.T8,8))],w.prototype,"colors",void 0),(0,n._)([(0,l.e5)(u.bv)],w.prototype,"dotValue",void 0);class S extends l.oo{}(0,n._)([(0,l.e5)(u.Eg)],S.prototype,"dotTexture0",void 0),(0,n._)([(0,l.e5)(u.Eg)],S.prototype,"dotTexture1",void 0),(0,n._)([(0,l.e5)(u.bv)],S.prototype,"tileZoomFactor",void 0),(0,n._)([(0,l.e5)(u.bv)],S.prototype,"pixelRatio",void 0),(0,n._)([(0,l.e5)(u.bv)],S.prototype,"tileDotsOverArea",void 0);class _ extends c.Ie{_dotThreshold(e,t,i){return e.divide(t).divide(i)}vertex(e){const t=new u.Tu(2/s.i9,0,0,0,-2/s.i9,0,-1,1,1).multiply(new u.AO(e.pos,1)),i=this.clip(e.id),r=new u.T8(t.xy,i,1),o=this.storage.getVVData(e.id).multiply(this.instance.isActive.get(0)).multiply(e.inverseArea),a=this.storage.getDataDrivenData0(e.id).multiply(this.instance.isActive.get(1)).multiply(e.inverseArea),n=this.draw.tileZoomFactor.multiply(s.i9).divide(this.draw.pixelRatio),l=this._dotThreshold(o,this.instance.dotValue,this.draw.tileDotsOverArea),c=this._dotThreshold(a,this.instance.dotValue,this.draw.tileDotsOverArea),p=e.pos.add(.5).divide(n);return{glPosition:r,color:new u.T8(0,0,0,0),textureCoords:p,thresholds0:l,thresholds1:c}}fragment(e){const t=new l.Qt,i=(0,u.ig)(this.draw.dotTexture0,e.textureCoords),s=(0,u.ig)(this.draw.dotTexture1,e.textureCoords),r=e.thresholds0.subtract(i),o=e.thresholds1.subtract(s);let a;const n=u.yb.fromColumns(this.instance.colors[0],this.instance.colors[1],this.instance.colors[2],this.instance.colors[3]),c=u.yb.fromColumns(this.instance.colors[4],this.instance.colors[5],this.instance.colors[6],this.instance.colors[7]);if(this.blending){const e=(0,u.Nb)(new u.bv(0),r),t=(0,u.Nb)(new u.bv(0),o),i=(0,u.AK)(e,r).add((0,u.AK)(t,o)),s=(0,u.Nb)(i,new u.bv(0)),l=new u.bv(1).subtract(s),p=i.add(s),d=r.multiply(e).divide(p),h=o.multiply(t).divide(p),f=n.multiply(d).add(c.multiply(h));a=l.multiply(f)}else{const e=(0,u.Fp)((0,b.X3)(r),(0,b.X3)(o)),t=(0,u.Nb)(e,new u.bv(0)),i=new u.bv(1).subtract(t),s=(0,u.Nb)(e,r),l=(0,u.Nb)(e,o),p=n.multiply(s).add(c.multiply(l));a=i.multiply(p)}return t.glFragColor=a,t}hittest(e){return(0,y.Oz)(this.hittestRequest)}}(0,n._)([l.Ou],_.prototype,"blending",void 0),(0,n._)([(0,l.e5)(w)],_.prototype,"instance",void 0),(0,n._)([(0,l.e5)(S)],_.prototype,"draw",void 0),(0,n._)([(0,n.a)(0,(0,l.qH)(g))],_.prototype,"vertex",null),(0,n._)([(0,n.a)(0,(0,l.qH)(c.fz))],_.prototype,"fragment",null);var V=i(4157),z=i(91907);const T={[z.g.BYTE]:1,[z.g.UNSIGNED_BYTE]:1,[z.g.SHORT]:2,[z.g.UNSIGNED_SHORT]:2,[z.g.INT]:4,[z.g.UNSIGNED_INT]:4,[z.g.FLOAT]:4};var F=i(78951),M=i(29620),O=i(41163);class A{constructor(e,t){this._boundPart=null;const i=[];for(const s of t.vertex){const t=F.f.createVertex(e,z.l1.STATIC_DRAW,s);i.push(t)}const s=[];for(const i of t.index||[]){const t=F.f.createIndex(e,z.l1.STATIC_DRAW,i);s.push(t)}this.groups=[];for(const r of t.groups){let o;if(null!=r.index){if(!t.index)throw new Error("No index data.");const{BYTES_PER_ELEMENT:e}=t.index[r.index];2===e?o=z.g.UNSIGNED_SHORT:4===e&&(o=z.g.UNSIGNED_INT)}const a=null!=r.index?s[r.index]:null,n=new Map,l={},u={};for(const e of r.attributes){const{name:t,count:s,type:r,offset:o,normalized:a,divisor:c,stride:p,vertex:d,location:h}=e,f=`vertex-buffer-${d}`;let m=l[f];m||(m=l[f]=[]);const v=new O.G(t,s,r,o,p,a,c);m.push(v),n.set(t,h),u[f]=i[d]}const c=new M.U(e,n,l,u,a);this.groups.push({...r,vertexArray:c,locations:n,layout:l,indexing:o})}this.parts=t.parts}bind(e,t){this._boundPart=t;const{group:i}=this.parts[this._boundPart],{vertexArray:s}=this.groups[i];e.bindVAO(s)}draw(e){if(null==this._boundPart)throw new Error("Mesh.bind() has not been called.");const{start:t,count:i}=this.parts[this._boundPart],{group:s}=this.parts[this._boundPart],{indexing:r,primitive:o}=this.groups[s];r?e.drawElements(o,i,r,t*T[r]):e.drawArrays(o,t,i)}unbind(e){this._boundPart=null,e.bindVAO(null)}destroy(){for(const{vertexArray:e}of this.groups)e.dispose()}}var P=i(12441);class I extends A{static create(e,t){const i=[];let{stride:s,hash:r}=t.layout;if(null==s){s=0;for(const{count:e,type:i,offset:r}of t.layout.attributes){if(null!=r)throw new Error("Stride cannot be computed automatically when attribute offsets are supplied explicitly.");s+=e*T[i]}}let o=0,a=0;for(const{count:e,name:r,offset:n,type:l,normalized:u}of t.layout.attributes){null!=n&&(a=n);const t={name:r,location:o,vertex:0,count:e,type:l,offset:a,stride:s,divisor:0,normalized:null!=u&&u};i.push(t),o++,a+=e*T[l]}const n={attributes:i,primitive:t.primitive};null!=t.index&&(n.index=0);let{count:l}=t;if(null==l&&(l=t.index?t.index.length:t.vertex.byteLength/s,Math.floor(l)!==l))throw new Error(`The byte length of vertex data must be an exact multiple of the stride, which is ${s}.`);const u={start:0,count:l,group:0,primitive:t.primitive},c={vertex:[t.vertex],parts:[u],groups:[n]};return null!=t.index&&(c.index=[t.index]),null==r&&(r=(0,P.ig)(i)),new I(e,c,{hash:r,attributes:i,stride:s})}constructor(e,t,i){super(e,t),this.layout=i}bind(e,t=0){super.bind(e,t)}}var C=i(18567),R=i(37165),E=i(56109),D=i(71449),H=i(80479);class L{constructor(){this._dotTextureSize=0,this._dotTextures=null,this._dotMesh=null}destroy(){this._disposeTextures(),this._dotFBO&&this._dotFBO.dispose(),this._dotMesh&&this._dotMesh.destroy()}getFBO(e){if(null==this._dotFBO){const t=s.i9,i=s.i9,r=new H.X(t,i);r.samplingMode=z.cw.NEAREST,r.wrapMode=z.e8.CLAMP_TO_EDGE;const o=new R.r(e,new E.Y(z.Tg.DEPTH_STENCIL,t,i));this._dotFBO=new C.X(e,r,o)}return this._dotFBO}getDotDensityMesh(e){if(null==this._dotMesh){const t=s.i9,i=t*t,r=2,o=new Int16Array(i*r);for(let e=0;e{const t=this._getNormalizedAngle(e).multiply(he.nF),i=(0,u.O$)(t),s=(0,u.mC)(t);return new u.yb(s,i,0,0,i.multiply(new u.bv(-1)),s,0,0,0,0,1,0,0,0,0,1)}))}getVVRotationMat3(e){return(0,u.KJ)((0,b.In)(e),u.Tu.identity(),(()=>{const t=this._getNormalizedAngle(e).multiply(he.nF),i=(0,u.O$)(t),s=(0,u.mC)(t);return new u.Tu(s,i,0,i.multiply(new u.bv(-1)),s,0,0,0,1)}))}_getNormalizedAngle(e){const t=(0,u.ln)(this.rotationType,new u.bv(he.MO.Arithmatic));return(0,u.KJ)(t,new u.bv(90).subtract(e),e)}}(0,n._)([(0,l.e5)(u.bv)],ye.prototype,"rotationType",void 0);var be=i(7486),ge=i(80952),xe=i(98435),we=i(81116),Se=i(10165);class _e extends c.HN{}(0,n._)([(0,l.xh)(3,u.T8)],_e.prototype,"color",void 0),(0,n._)([(0,l.xh)(4,u.Sg)],_e.prototype,"offset",void 0),(0,n._)([(0,l.xh)(5,u.Sg)],_e.prototype,"textureUV",void 0),(0,n._)([(0,l.xh)(6,u.bv)],_e.prototype,"fontSize",void 0),(0,n._)([(0,l.xh)(7,u.bv)],_e.prototype,"referenceSize",void 0),(0,n._)([(0,l.xh)(8,u.bv)],_e.prototype,"haloFontSize",void 0),(0,n._)([(0,l.xh)(9,u.T8)],_e.prototype,"haloColor",void 0),(0,n._)([(0,l.xh)(10,u.Sg)],_e.prototype,"zoomRange",void 0),(0,n._)([(0,l.xh)(11,u.bv)],_e.prototype,"clipAngle",void 0),(0,n._)([(0,l.xh)(12,u.T8)],_e.prototype,"referenceSymbol",void 0);class Ve extends l.yu{}(0,n._)([(0,l.xh)(13,u.Sg)],Ve.prototype,"offsetNextVertex1",void 0),(0,n._)([(0,l.xh)(14,u.Sg)],Ve.prototype,"offsetNextVertex2",void 0);class ze extends c.fz{}class Te extends c.Ie{constructor(){super(...arguments),this.computeAttributes={offset:["offsetNextVertex1","offsetNextVertex2"]},this.isHaloPass=!1,this.isBackgroundPass=!1,this.isLabel=!1}clipLabel(e,t,i){const r=t.multiply(1.4173228346456692),o=(0,u.Wn)(this.view.rotation.subtract(r)),a=(0,u.VV)(new u.bv(360).subtract(o),o);let n=new u.bv(0);const l=(0,u.GW)(this.view.currentZoom.multiply(s.JS)).divide(s.JS),c=e.x,p=e.y,d=new u.bv(1).subtract((0,u.Nb)(c,l)).multiply(2),h=(0,u.Nb)(new u.bv(90),a).multiply(2),f=new u.bv(2).multiply(new u.bv(1).subtract((0,u.Nb)(l,p)));return n=n.add(i.multiply(d)),n=n.add(i.multiply(h)),n=n.add(f),n}vertex(e,t){const i=(0,b.qD)(e.bitset,he.mL),r=new u.bv(1).subtract(i);let o=e.fontSize,a=o.divide(he.V_);const n=this.isHaloPass?e.haloColor:this._getVertexColor(e),l=this.isLabel?n.multiply(this.storage.getAnimationValue(e.id)):n,c=this.view.displayViewScreenMat3.multiply(new u.AO(e.pos,1));let p=e.offset,d=new u.bv(1),h=u.Tu.identity();if(this.isLabel){if(!e.referenceSymbol)throw new Error("InternalError: Optional attribute 'referenceSymbol' expected for labels");const t=e.referenceSymbol,i=t.xy,r=t.z,o=this._unpackDirection(t.w),a=(0,Se.Vm)(this,e.id,r).divide(2),n=o.multiply(a.add(s.gj));p=p.add(i).add(n)}else d=(0,Se.Vm)(this,e.id,e.referenceSize).divide(e.referenceSize),o=o.multiply(d),a=a.multiply(d),p=p.multiply(d),h=(0,Se.H8)(this,e.id),p=h.multiply(new u.AO(p,0)).xy;const f=(0,b.qD)(e.bitset,he.$r),m=this._getViewRotationMatrix(f).multiply(new u.AO(p,0));let v=this.isLabel?this.clipLabel(e.zoomRange,e.clipAngle,f):this.clip(e.id,e.zoomRange);v=this.isBackgroundPass?v.add(r.multiply(2)):v.add(i.multiply(2));const y=new u.T8(c.xy.add(m.xy),v,1),g=e.textureUV.divide(this.mosaicInfo.size);let x=new u.bv(0);return this.isHaloPass&&(x=e.haloFontSize.divide(a).divide(he.Ke)),{glPosition:y,color:l,size:a,textureUV:g,antialiasingWidth:new u.bv(.105*he.V_).divide(o).divide(this.view.pixelRatio),haloDistanceOffset:x,...this.maybeRunHittest(e,t,{vvSizeAdjustment:d,vvRotation:h})}}_getViewRotationMatrix(e){const t=this.view.displayViewMat3,i=this.view.displayMat3,s=new u.bv(1).subtract(e);return t.multiply(e).add(i.multiply(s))}fragment(e){const t=new u.bv(2/8),i=new u.bv(1).subtract(t),s=(0,u.ig)(this.mosaicInfo.texture,e.textureUV).a;let r=i.subtract(e.haloDistanceOffset);this.highlight&&(r=r.divide(2));const o=e.antialiasingWidth,a=(0,u.CW)(r.subtract(o),r.add(o),s);return this.getFragmentOutput(e.color.multiply(a),e)}hittest(e,t,{vvSizeAdjustment:i,vvRotation:s}){const r=s.multiply(new u.AO(e.offset.multiply(i),0)),o=s.multiply(new u.AO(t.offsetNextVertex1.multiply(i),0)),a=s.multiply(new u.AO(t.offsetNextVertex2.multiply(i),0)),{viewMat3:n,tileMat3:l}=this.view,c=n.multiply(l).multiply(new u.AO(e.pos,1)),p=c.add(l.multiply(r)).xy,d=c.add(l.multiply(o)).xy,h=c.add(l.multiply(a)).xy;return(0,y.P0)(this.hittestRequest.position,p.xy,d.xy,h.xy)}_unpackDirection(e){const t=new u.J7(e),i=(0,u.Dg)(t,new u.J7(2)),s=(0,u.hx)(t,new u.J7(3));return new u.Sg(new u.bv(i).subtract(1),new u.bv(s).subtract(1))}_getVertexColor(e){let t=e.color;if(this.visualVariableColor){const i=this.storage.getColorValue(e.id);t=this.visualVariableColor.getColor(i,e.color,new u.tW(!1))}if(this.visualVariableOpacity){const i=this.storage.getOpacityValue(e.id),s=this.visualVariableOpacity.getOpacity(i);t=t.multiply(s)}return t}}(0,n._)([(0,l.Kw)(me.W)],Te.prototype,"visualVariableColor",void 0),(0,n._)([(0,l.Kw)(ve.V)],Te.prototype,"visualVariableOpacity",void 0),(0,n._)([(0,l.Kw)(ye)],Te.prototype,"visualVariableRotation",void 0),(0,n._)([(0,l.Kw)(be.k)],Te.prototype,"visualVariableSizeMinMaxValue",void 0),(0,n._)([(0,l.Kw)(ge.U)],Te.prototype,"visualVariableSizeScaleStops",void 0),(0,n._)([(0,l.Kw)(xe.W)],Te.prototype,"visualVariableSizeStops",void 0),(0,n._)([(0,l.Kw)(we.V)],Te.prototype,"visualVariableSizeUnitValue",void 0),(0,n._)([(0,l.e5)(fe.N)],Te.prototype,"mosaicInfo",void 0),(0,n._)([l.Ou],Te.prototype,"isHaloPass",void 0),(0,n._)([l.Ou],Te.prototype,"isBackgroundPass",void 0),(0,n._)([l.Ou],Te.prototype,"isLabel",void 0),(0,n._)([(0,n.a)(0,(0,l.qH)(_e)),(0,n.a)(1,(0,l.qH)(Ve))],Te.prototype,"vertex",null),(0,n._)([(0,n.a)(0,(0,l.qH)(ze))],Te.prototype,"fragment",null);var Fe=i(19722);var Me=i(13952);class Oe extends Fe.tp{}(0,n._)([(0,l.xh)(9,u.bv)],Oe.prototype,"accumulatedDistance",void 0),(0,n._)([(0,l.xh)(10,u.Sg)],Oe.prototype,"segmentDirection",void 0),(0,n._)([(0,l.xh)(11,u.T8)],Oe.prototype,"tlbr",void 0);class Ae extends Fe.fc{}class Pe extends Fe.Pf{_getLineWidthRatio(e,t){const i=new u.bv(Me.v),s=(0,b.qD)(e.bitset,he.Wq);return s.multiply((0,u.Fp)(t,new u.bv(.25))).add(new u.bv(1).subtract(s)).divide(i)}_getSDFAlpha(e){const{halfWidth:t,normal:i,tlbr:s,patternSize:r,accumulatedDistance:o,lineWidthRatio:a}=e,n=r.x.multiply(new u.bv(2)).multiply(a),l=(0,u.ZI)(o.divide(n)),c=new u.bv(.25).multiply(i.y).add(new u.bv(.5)),p=(0,u.CD)(s.xy,s.zw,new u.Sg(l,c)),d=(0,b.JH)((0,u.ig)(this.mosaicInfo.texture,p)).subtract(new u.bv(.5)).multiply(t),h=(0,u.uZ)(new u.bv(.5).subtract(d),new u.bv(0),new u.bv(1));return new u.T8(h)}_getPatternColor(e){const{halfWidth:t,normal:i,color:s,accumulatedDistance:r,patternSize:o,sampleAlphaOnly:a,tlbr:n}=e,l=o.y.multiply(new u.bv(2).multiply(t).divide(o.x)),c=(0,u.ZI)(r.divide(l)),p=new u.bv(.5).multiply(i.y).add(new u.bv(.5)),d=(0,u.CD)(n.xy,n.zw,new u.Sg(p,c));let h=(0,u.ig)(this.mosaicInfo.texture,d);return null!=this.visualVariableColor&&(h=(0,u.KJ)((0,u.tS)(a,new u.bv(.5)),new u.T8(s.a),s)),h}vertex(e,t){const{segmentDirection:i,tlbr:s,bitset:r}=e,o=(0,Fe.uY)(this,e),a=e.accumulatedDistance.divide(this.view.displayZoomFactor).add((0,u.AK)(i,o.scaledOffset)),n=new u.Sg(s.z.subtract(s.x),s.w.subtract(s.y)),l=s.divide(this.mosaicInfo.size.xyxy),c=(0,b.qD)(r,he.B7),p=(0,b.qD)(r,he.GS),d=(0,u.KJ)((0,u.tS)(c,new u.bv(.5)),this._getLineWidthRatio(e,o.scaledHalfWidth),new u.bv(1));return{...o,tlbr:l,patternSize:n,accumulatedDistance:a,isSDF:c,sampleAlphaOnly:p,lineWidthRatio:d,...this.maybeRunHittest(e,t,o.halfWidth)}}fragment(e){const{color:t,opacity:i,isSDF:s}=e,r=(0,Fe.Wc)(e,this.antialiasingControls.blur),o=(0,u.KJ)((0,u.tS)(s,new u.bv(.5)),this._getSDFAlpha(e),this._getPatternColor(e)),a=t.multiply(i).multiply(r).multiply(o);return this.getFragmentOutput(a,e)}}(0,n._)([(0,l.e5)(fe.N)],Pe.prototype,"mosaicInfo",void 0),(0,n._)([(0,n.a)(0,(0,l.qH)(Oe)),(0,n.a)(1,(0,l.qH)(c.RS))],Pe.prototype,"vertex",null);var Ie=i(70080);class Ce extends c.HN{}(0,n._)([(0,l.xh)(3,u.T8)],Ce.prototype,"color",void 0),(0,n._)([(0,l.xh)(4,u.T8)],Ce.prototype,"outlineColor",void 0),(0,n._)([(0,l.xh)(5,u.Sg)],Ce.prototype,"offset",void 0),(0,n._)([(0,l.xh)(6,u.Sg)],Ce.prototype,"textureUV",void 0),(0,n._)([(0,l.xh)(7,u.T8)],Ce.prototype,"sizing",void 0),(0,n._)([(0,l.xh)(8,u.bv)],Ce.prototype,"placementAngle",void 0),(0,n._)([(0,l.xh)(9,u.bv)],Ce.prototype,"sizeRatio",void 0),(0,n._)([(0,l.xh)(10,u.Sg)],Ce.prototype,"zoomRange",void 0);class Re extends l.yu{}(0,n._)([(0,l.xh)(12,u.Sg)],Re.prototype,"offsetNextVertex1",void 0),(0,n._)([(0,l.xh)(13,u.Sg)],Re.prototype,"offsetNextVertex2",void 0),(0,n._)([(0,l.xh)(14,u.Sg)],Re.prototype,"textureUVNextVertex1",void 0),(0,n._)([(0,l.xh)(15,u.Sg)],Re.prototype,"textureUVNextVertex2",void 0);class Ee extends c.fz{}function De(e,t,i,s){return t.multiply(e.x).add(i.multiply(e.y)).add(s.multiply(e.z))}function He(e){return e.multiply(e).divide(128)}class Le extends c.Ie{constructor(){super(...arguments),this.computeAttributes={offset:["offsetNextVertex1","offsetNextVertex2"],textureUV:["textureUVNextVertex1","textureUVNextVertex2"]}}vertex(e,t){const i=He(e.sizing.x),s=He(e.sizing.y),r=He(e.sizing.z),o=e.placementAngle,a=(0,b.qD)(e.bitset,Ie.m.bitset.isSDF),n=(0,b.qD)(e.bitset,Ie.m.bitset.isMapAligned),l=(0,b.qD)(e.bitset,Ie.m.bitset.scaleSymbolsProportionally),c=(0,b.h7)(e.bitset,Ie.m.bitset.colorLocked),p=(0,Se.sY)(this,e.id),d=(0,Se.Zt)(this,e.id,e.color,c).multiply(p),h=this.view.displayViewScreenMat3.multiply(new u.AO(e.pos.xy,1)),f=(0,Se.Vm)(this,e.id,r).divide(r),m=i.multiply(f),v=e.offset.xy.multiply(f);let y=s.multiply(l.multiply(f.subtract(1)).add(1));y=(0,u.VV)(y,(0,u.Fp)(m.subtract(.99),new u.bv(0)));const g=(0,u.Fp)(y,new u.bv(1)),x=(0,u.VV)(y,new u.bv(1)),w=u.Tu.fromRotation(o.multiply(he.e4)),S=(0,Se.H8)(this,e.id),_=this._getViewRotationMatrix(n).multiply(S).multiply(w).multiply(new u.AO(v.xy,0)),V=this.clip(e.id,e.zoomRange),z=new u.T8(h.xy.add(_.xy),V,1),T=e.textureUV.divide(this.mosaicInfo.size),F=e.outlineColor.multiply(x),M=(0,b.qD)(e.bitset,Ie.m.bitset.overrideOutlineColor),O=e.sizeRatio.multiply(m).multiply(.5);return{glPosition:z,color:d,textureUV:T,outlineColor:F,outlineSize:g,distanceToPx:O,isSDF:a,overrideOutlineColor:M,...this.maybeRunHittest(e,t,{pos:e.pos,size:m,sizeCorrection:f,isMapAligned:n,outlineSize:g,distanceToPx:O,isSDF:a})}}fragment(e){const t=this._getColor(e.textureUV,e);return this.getFragmentOutput(t,e)}hittest(e,t,i){return(0,u.KJ)((0,u.Qj)(i.size,this.hittestRequest.smallSymbolSizeThreshold),this._hittestSmallMarker(e,t,i),this._hittestMarker(e,t,i))}_getViewRotationMatrix(e){const t=this.view.displayViewMat3,i=this.view.displayMat3,s=new u.bv(1).subtract(e);return t.multiply(e).add(i.multiply(s))}_getViewScreenMatrix(e){const t=this.view.viewMat3.multiply(this.view.tileMat3),i=this.view.tileMat3,s=new u.bv(1).subtract(e);return t.multiply(e).add(i.multiply(s))}_getColor(e,t){return(0,u.KJ)((0,u.ln)(t.isSDF,new u.bv(1)),this._getSDFColor(e,t),this._getSpriteColor(e,t))}_getSpriteColor(e,t){return(0,u.ig)(this.mosaicInfo.texture,e).multiply(t.color)}_getSDFColor(e,t){const i=(0,u.ig)(this.mosaicInfo.texture,e),s=new u.bv(.5).subtract((0,b.JH)(i)).multiply(t.distanceToPx).multiply(he.nU),r=(0,u.uZ)(new u.bv(.5).subtract(s),new u.bv(0),new u.bv(1)),o=t.color.multiply(r);let a=t.outlineSize;this.highlight&&(a=(0,u.Fp)(a,t.overrideOutlineColor.multiply(4)));const n=a.multiply(.5),l=(0,u.Wn)(s).subtract(n),c=(0,u.uZ)(new u.bv(.5).subtract(l),new u.bv(0),new u.bv(1)),p=(0,u.CD)(t.outlineColor,t.color,t.overrideOutlineColor).multiply(c);return new u.bv(1).subtract(p.a).multiply(o).add(p)}_hittestSmallMarker(e,t,i){const{position:s,distance:r,smallSymbolDistance:o}=this.hittestRequest,a=r.subtract(o),{viewMat3:n,tileMat3:l}=this.view,c=n.multiply(l).multiply(new u.AO(i.pos,1)).xy,p=i.size.multiply(.5);return(0,u.TE)(c,s).subtract(p).add(a)}_hittestMarker(e,t,i){const{pos:s,size:r,sizeCorrection:o,isMapAligned:a,outlineSize:n,isSDF:l,distanceToPx:c}=i,p=new u.AO(e.offset.multiply(o),0),d=new u.AO(t.offsetNextVertex1.multiply(o),0),h=new u.AO(t.offsetNextVertex2.multiply(o),0),{viewMat3:f,tileMat3:m}=this.view,v=f.multiply(m).multiply(new u.AO(s,1)),b=this._getViewScreenMatrix(a),g=v.add(b.multiply(p)).xy,x=v.add(b.multiply(d)).xy,w=v.add(b.multiply(h)).xy,S=this.hittestRequest.position,_=this.hittestRequest.distance,V=(0,y.hF)(S.add(new u.Sg((0,u.tk)(_),(0,u.tk)(_))),g,x,w),z=(0,y.hF)(S.add(new u.Sg(0,(0,u.tk)(_))),g,x,w),T=(0,y.hF)(S.add(new u.Sg(_,(0,u.tk)(_))),g,x,w),F=(0,y.hF)(S.add(new u.Sg((0,u.tk)(_),0)),g,x,w),M=(0,y.hF)(S,g,x,w),O=(0,y.hF)(S.add(new u.Sg(_,0)),g,x,w),A=(0,y.hF)(S.add(new u.Sg((0,u.tk)(_),_)),g,x,w),P=(0,y.hF)(S.add(new u.Sg(0,_)),g,x,w),I=(0,y.hF)(S.add(new u.Sg(_,_)),g,x,w),C=e.textureUV.divide(this.mosaicInfo.size),R=t.textureUVNextVertex1.divide(this.mosaicInfo.size),E=t.textureUVNextVertex2.divide(this.mosaicInfo.size),D={color:new u.T8(1),outlineColor:new u.T8(1),overrideOutlineColor:new u.bv(1),outlineSize:n,distanceToPx:c,isSDF:l};let H=new u.bv(0);return H=H.add((0,y.lD)(V).multiply(this._getColor(De(V,C,R,E),D).a)),H=H.add((0,y.lD)(z).multiply(this._getColor(De(z,C,R,E),D).a)),H=H.add((0,y.lD)(T).multiply(this._getColor(De(T,C,R,E),D).a)),H=H.add((0,y.lD)(F).multiply(this._getColor(De(F,C,R,E),D).a)),H=H.add((0,y.lD)(M).multiply(this._getColor(De(M,C,R,E),D).a)),H=H.add((0,y.lD)(O).multiply(this._getColor(De(O,C,R,E),D).a)),H=H.add((0,y.lD)(A).multiply(this._getColor(De(A,C,R,E),D).a)),H=H.add((0,y.lD)(P).multiply(this._getColor(De(P,C,R,E),D).a)),H=H.add((0,y.lD)(I).multiply(this._getColor(De(I,C,R,E),D).a)),(0,u.Nb)(H,new u.bv(.05)).multiply((0,y.Oz)(this.hittestRequest))}}(0,n._)([(0,l.Kw)(me.W)],Le.prototype,"visualVariableColor",void 0),(0,n._)([(0,l.Kw)(ve.V)],Le.prototype,"visualVariableOpacity",void 0),(0,n._)([(0,l.Kw)(ye)],Le.prototype,"visualVariableRotation",void 0),(0,n._)([(0,l.Kw)(be.k)],Le.prototype,"visualVariableSizeMinMaxValue",void 0),(0,n._)([(0,l.Kw)(ge.U)],Le.prototype,"visualVariableSizeScaleStops",void 0),(0,n._)([(0,l.Kw)(xe.W)],Le.prototype,"visualVariableSizeStops",void 0),(0,n._)([(0,l.Kw)(we.V)],Le.prototype,"visualVariableSizeUnitValue",void 0),(0,n._)([(0,l.e5)(fe.N)],Le.prototype,"mosaicInfo",void 0),(0,n._)([(0,n.a)(0,(0,l.qH)(Ce)),(0,n.a)(1,(0,l.qH)(Re))],Le.prototype,"vertex",null),(0,n._)([(0,n.a)(0,(0,l.qH)(Ee))],Le.prototype,"fragment",null);var Be=i(21130),ke=i(6664);class Ue{constructor(){this.computeAttributes={}}get locationsMap(){const e=new Map;for(const t in this.locations)e.set(t,this.locations[t].index);return e}get optionPropertyKeys(){if(!this._optionPropertyKeys){const e=new Set(Object.keys(this.options));this._optionPropertyKeys=e}return this._optionPropertyKeys}get _transformFeedbackBindings(){return[]}get locationInfo(){if(!this._locationInfo){const e=this.locationsMap,t=Array.from(e.entries()).map((([e,t])=>`${e}.${t}`)).join("."),i=(0,Be.hP)(t);this._locationInfo={hash:i,locations:e}}return this._locationInfo}get renamedLocationsMap(){const e=new Map;for(const[t,i]of this.locationsMap.entries())e.set("a_"+t,i);return e}getShaderKey(e,t,i){const s=Object.keys(i).filter((e=>i[e])).map((e=>`${e}_${i[e].toString()}`)).join("."),r=Object.keys(t).filter((e=>this.optionPropertyKeys.has(e))).join(".");return`${e.hash}.${s}.${r}`}getProgram(e,t,i,s){let r="",o="";for(const e in i)if(i[e]){const t="boolean"==typeof i[e]?`#define ${e}\n`:`#define ${e} ${i[e]}\n`;r+=t,o+=t}return r+=this.vertexShader,o+=this.fragmentShader,new ke.X(r,o,this.renamedLocationsMap,this.locationInfo,this._getUniformBindings(t),this._transformFeedbackBindings)}_getUniformBindings(e){const t=[];for(const e in this.required){const i=this.required[e];t.push({uniformHydrated:null,shaderModulePath:e,uniformName:e,uniformType:i.type,uniformArrayElementType:Ne(i),uniformArrayLength:We(i)})}for(const i in e){const s=this.options[i];if(e[i])for(const e in s){const r=s[e];t.push({uniformHydrated:null,shaderModulePath:`${i}.${e}`,uniformName:e,uniformType:r.type,uniformArrayElementType:Ne(r),uniformArrayLength:We(r)})}}return t}}const Ne=e=>"array"===e.type?e.elementType?.type:void 0,We=e=>"array"===e.type?e.size:void 0;var qe=i(74580);const Ge={hittestDist:u.bv,hittestPos:u.Sg},Ke={filterFlags:u.Eg,animation:u.Eg,visualVariableData:u.Eg,dataDriven0:u.Eg,dataDriven1:u.Eg,dataDriven2:u.Eg,gpgpu:u.Eg,size:u.bv},Xe={displayViewScreenMat3:u.Tu,displayViewMat3:u.Tu,displayMat3:u.Tu,viewMat3:u.Tu,tileMat3:u.Tu,displayZoomFactor:u.bv,requiredZoomFactor:u.bv,tileOffset:u.Sg,currentScale:u.bv,currentZoom:u.bv,metersPerSRUnit:u.bv};class Ze extends Ue{constructor(){super(...arguments),this.vertexShader=(0,qe.w)("materials/pie/pie.vert"),this.fragmentShader=(0,qe.w)("materials/pie/pie.frag"),this.required={...Ke,...Xe,outlineWidth:u.bv,colors:u.v8,defaultColor:u.T8,othersColor:u.T8,outlineColor:u.T8,donutRatio:u.bv,sectorThreshold:u.bv},this.options={hittestUniforms:Ge,visualVariableSizeMinMaxValue:{minMaxValueAndSize:u.T8},visualVariableSizeScaleStops:{sizes:{...u.v8.ofType(u.bv,8),type:"array",elementType:u.bv,size:8},values:{...u.v8.ofType(u.bv,8),type:"array",elementType:u.bv,size:8}},visualVariableSizeStops:{sizes:{...u.v8.ofType(u.bv,8),type:"array",elementType:u.bv,size:8},values:{...u.v8.ofType(u.bv,8),type:"array",elementType:u.bv,size:8}},visualVariableSizeUnitValue:{unitValueToPixelsRatio:u.bv},visualVariableOpacity:{opacities:{...u.v8.ofType(u.bv,8),type:"array",elementType:u.bv,size:8},opacityValues:{...u.v8.ofType(u.bv,8),type:"array",elementType:u.bv,size:8}}},this.locations={pos:{index:0,type:u.Sg},id:{index:1,type:u.AO},bitset:{index:2,type:u.bv},offset:{index:3,type:u.Sg},texCoords:{index:4,type:u.Sg},size:{index:5,type:u.Sg},referenceSize:{index:6,type:u.bv},zoomRange:{index:7,type:u.Sg}},this.defines={VV_SIZE_MIN_MAX_VALUE:"boolean",VV_SIZE_SCALE_STOPS:"boolean",VV_SIZE_FIELD_STOPS:"boolean",VV_SIZE_UNIT_VALUE:"boolean",VV_OPACITY:"boolean",HITTEST:"boolean",numberOfFields:"number",highlight:"boolean",inside:"boolean",outside:"boolean"}}setNumberOfFields(e){this.required.colors={...u.v8.ofType(u.T8,e),type:"array",elementType:u.T8,size:e}}}const Ye={fill:new class extends a{constructor(){super(...arguments),this.meshWriter=B.U.FillMeshWriter,this.shaders={geometry:new k.C}}render(e,t){const{context:i,painter:s}=e;s.setShader({shader:this.shaders.geometry,uniforms:{...(0,r.vY)(e,t.target,t.instance.getInput().geometry),...(0,r.l5)(e,t.target)},defines:(0,r.rO)(e),optionalAttributes:t.instance.optionalAttributes,useComputeBuffer:(0,r.VF)(e)}),s.setPipelineState((0,r.H6)(e)),s.submitDraw(i,t)}}("fill"),patternFill:new class extends a{constructor(){super(...arguments),this.meshWriter=B.U.PatternFillMeshWriter,this.shaders={geometry:new G.lA}}render(e,t){const{context:i,painter:s}=e;s.setShader({shader:this.shaders.geometry,uniforms:{...(0,r.vY)(e,t.target,t.instance.getInput().geometry),...(0,r.l5)(e,t.target),mosaicInfo:s.textureManager.getMosaicInfo(i,t.textureKey),localTileOffset:(0,r.wb)(t.target)},defines:{...(0,r.rO)(e)},optionalAttributes:t.instance.optionalAttributes,useComputeBuffer:(0,r.VF)(e)}),s.setPipelineState((0,r.H6)(e)),s.submitDraw(i,t)}}("patternFill"),complexFill:new class extends a{constructor(){super(...arguments),this.meshWriter=B.U.ComplexFillMeshWriter,this.shaders={geometry:new U.LU}}render(e,t){const{context:i,painter:s}=e;s.setShader({shader:this.shaders.geometry,uniforms:{...(0,r.vY)(e,t.target,t.instance.getInput().geometry),...(0,r.l5)(e,t.target),mosaicInfo:s.textureManager.getMosaicInfo(i,t.textureKey),localTileOffset:(0,r.wb)(t.target)},defines:{...(0,r.rO)(e)},optionalAttributes:t.instance.optionalAttributes,useComputeBuffer:(0,r.VF)(e)}),s.setPipelineState((0,r.H6)(e)),s.submitDraw(i,t)}}("complexFill"),outlineFill:new class extends a{constructor(){super(...arguments),this.meshWriter=B.U.OutlineFillMeshWriter,this.shaders={geometry:new q.py}}render(e,t){const{context:i,painter:s,pixelRatio:o}=e;s.setShader({shader:this.shaders.geometry,uniforms:{...(0,r.vY)(e,t.target,t.instance.getInput().geometry),...(0,r.l5)(e,t.target),antialiasingControls:N(o)},defines:{...(0,r.rO)(e)},optionalAttributes:t.instance.optionalAttributes,useComputeBuffer:(0,r.VF)(e)}),s.setPipelineState((0,r.H6)(e)),s.submitDraw(i,t)}}("outlineFill"),patternOutlineFill:new class extends a{constructor(){super(...arguments),this.meshWriter=B.U.PatternOutlineFillMeshWriter,this.shaders={geometry:new K.Zd}}render(e,t){const{context:i,painter:s,pixelRatio:o}=e;s.setShader({shader:this.shaders.geometry,uniforms:{...(0,r.vY)(e,t.target,t.instance.getInput().geometry),...(0,r.l5)(e,t.target),antialiasingControls:N(o),mosaicInfo:s.textureManager.getMosaicInfo(i,t.textureKey),localTileOffset:(0,r.wb)(t.target)},defines:{...(0,r.rO)(e)},optionalAttributes:t.instance.optionalAttributes,useComputeBuffer:(0,r.VF)(e)}),s.setPipelineState((0,r.H6)(e)),s.submitDraw(i,t)}}("patternOutlineFill"),complexOutlineFill:new class extends a{constructor(){super(...arguments),this.meshWriter=B.U.ComplexOutlineFillMeshWriter,this.shaders={geometry:new W.Nz}}render(e,t){const{context:i,painter:s,pixelRatio:o}=e;s.setShader({shader:this.shaders.geometry,uniforms:{...(0,r.vY)(e,t.target,t.instance.getInput().geometry),...(0,r.l5)(e,t.target),antialiasingControls:N(o),mosaicInfo:s.textureManager.getMosaicInfo(i,t.textureKey),localTileOffset:(0,r.wb)(t.target)},defines:{...(0,r.rO)(e)},optionalAttributes:t.instance.optionalAttributes,useComputeBuffer:(0,r.VF)(e)}),s.setPipelineState((0,r.H6)(e)),s.submitDraw(i,t)}}("complexOutlineFill"),marker:new class extends a{constructor(){super(...arguments),this.meshWriter=B.U.MarkerMeshWriter,this.shaders={geometry:new Le},this.symbologyPlane=o.mH.MARKER}render(e,t){const{context:i,painter:s}=e;s.setShader({shader:this.shaders.geometry,uniforms:{...(0,r.vY)(e,t.target,t.instance.getInput().geometry),...(0,r.l5)(e,t.target),mosaicInfo:s.textureManager.getMosaicInfo(i,t.textureKey,!0)},defines:{...(0,r.rO)(e)},optionalAttributes:t.instance.optionalAttributes,useComputeBuffer:(0,r.VF)(e)}),s.setPipelineState((0,r.H6)(e)),s.submitDraw(i,t)}}("marker"),pieChart:new class extends a{constructor(){super(...arguments),this.meshWriter=B.U.PieChartMeshWriter,this.shaders={geometry:new Ze},this.symbologyPlane=o.mH.MARKER}render(e,t){const{context:i,painter:s}=e,{instance:o,target:a}=t,n=this.shaders.geometry,l=o.getInput(),u=l.numberOfFields,c=(0,r.VF)(e),p=(0,r.l5)(e,a),d=(0,r.rO)(e);n.setNumberOfFields(u),s.setShader({shader:n,uniforms:{...(0,r.vY)(e,t.target,l.geometry),...p.storage,...p.view,hittestUniforms:p.hittestRequest?{hittestDist:p.hittestRequest?.distance,hittestPos:p.hittestRequest?.position}:null},defines:{VV_SIZE_MIN_MAX_VALUE:!!l.geometry.visualVariableSizeMinMaxValue,VV_SIZE_SCALE_STOPS:!!l.geometry.visualVariableSizeScaleStops,VV_SIZE_FIELD_STOPS:!!l.geometry.visualVariableSizeStops,VV_SIZE_UNIT_VALUE:!!l.geometry.visualVariableSizeUnitValue,VV_OPACITY:!!l.geometry.visualVariableOpacity,HITTEST:c,highlight:p.highlight?1:0,...d,numberOfFields:u},optionalAttributes:{},useComputeBuffer:c}),s.setPipelineState((0,r.H6)(e)),s.submitDraw(i,t)}}("pieChart"),line:new class extends a{constructor(){super(...arguments),this.meshWriter=B.U.LineMeshWriter,this.shaders={geometry:new Fe.Pf},this.symbologyPlane=o.mH.LINE}render(e,t){const{context:i,painter:s,pixelRatio:o}=e;s.setShader({shader:this.shaders.geometry,uniforms:{...(0,r.vY)(e,t.target,t.instance.getInput().geometry),...(0,r.l5)(e,t.target),antialiasingControls:N(o)},defines:{...(0,r.rO)(e)},optionalAttributes:t.instance.optionalAttributes,useComputeBuffer:(0,r.VF)(e)}),s.setPipelineState((0,r.H6)(e)),s.submitDraw(i,t)}}("line"),texturedLine:new class extends a{constructor(){super(...arguments),this.meshWriter=B.U.TexturedLineMeshWriter,this.shaders={geometry:new Pe},this.symbologyPlane=o.mH.LINE}render(e,t){const{context:i,painter:s,pixelRatio:o}=e;s.setShader({shader:this.shaders.geometry,uniforms:{...(0,r.vY)(e,t.target,t.instance.getInput().geometry),...(0,r.l5)(e,t.target),antialiasingControls:N(o),mosaicInfo:s.textureManager.getMosaicInfo(i,t.textureKey)},defines:{...(0,r.rO)(e)},optionalAttributes:t.instance.optionalAttributes,useComputeBuffer:(0,r.VF)(e)}),s.setPipelineState((0,r.H6)(e)),s.submitDraw(i,t)}}("texturedLine"),text:new class extends a{constructor(){super(...arguments),this.meshWriter=B.U.TextMeshWriter,this.shaders={geometry:new Te},this.symbologyPlane=o.mH.TEXT}render(e,t){const{context:i,painter:s}=e,o=(0,r.rO)(e),a={shader:this.shaders.geometry,uniforms:{...(0,r.vY)(e,t.target,t.instance.getInput().geometry),...(0,r.l5)(e,t.target),mosaicInfo:s.textureManager.getMosaicInfo(i,t.textureKey)},defines:{...o,isHaloPass:!1,isBackgroundPass:!0,isLabel:!1},optionalAttributes:t.instance.optionalAttributes,useComputeBuffer:(0,r.VF)(e)};s.setShader(a),s.setPipelineState((0,r.H6)(e)),s.submitDraw(i,t),s.setShader({...a,defines:{...o,isHaloPass:!0,isBackgroundPass:!1,isLabel:!1}}),s.submitDraw(i,t),s.setShader({...a,defines:{...o,isHaloPass:!1,isBackgroundPass:!1,isLabel:!1}}),s.submitDraw(i,t)}}("text"),label:new class extends a{constructor(){super(...arguments),this.meshWriter=B.U.LabelMeshWriter,this.shaders={geometry:new Te},this.drawPhase=o.jx.LABEL|o.jx.LABEL_ALPHA,this.symbologyPlane=o.mH.TEXT}render(e,t){const{context:i,painter:s}=e,o=(0,r.rO)(e),a={...(0,r.H6)(e)},n={shader:this.shaders.geometry,uniforms:{...(0,r.vY)(e,t.target,t.instance.getInput().geometry),...(0,r.l5)(e,t.target),mosaicInfo:s.textureManager.getMosaicInfo(i,t.textureKey)},defines:{...o,isHaloPass:!1,isBackgroundPass:!0,isLabel:!0},optionalAttributes:t.instance.optionalAttributes,useComputeBuffer:!1};s.setShader(n),s.setPipelineState(a),s.submitDraw(i,t),s.setShader({...n,defines:{...o,isHaloPass:!0,isBackgroundPass:!1,isLabel:!0}}),s.setPipelineState(a),s.submitDraw(i,t),s.setShader({...n,defines:{...o,isHaloPass:!1,isBackgroundPass:!1,isLabel:!0}}),s.setPipelineState(a),s.submitDraw(i,t)}}("label"),heatmap:new class extends a{constructor(){super(...arguments),this.meshWriter=B.U.HeatmapMeshWriter,this.shaders={accumulate:new ie,resolve:new ne},this.postProcessingEnabled=!0,this._isBound=!1,this._resources=new Map,this.overrideStencilRef=le}shutdown(e){super.shutdown(e),this._resources.get(e)?.destroy(),this._resources.delete(e),this._prevFBO=null,this._unbind()}render(e,t){const{context:i,painter:s,state:o}=e,a=t.instance.getInput(),{isFieldActive:n}=a,l=this._getOrCreateResourcesRecord(i),u=l.loadQualityProfile(i);if((0,r.il)(e))return;(0,r.VF)(e)||this._bind(e,l,a),s.setShader({shader:this.shaders.accumulate,uniforms:{...(0,r.l5)(e,t.target),kernelControls:{radius:de(a,o),isFieldActive:n?1:0}},defines:{...(0,r.rO)(e),...u.defines},optionalAttributes:t.instance.optionalAttributes,useComputeBuffer:(0,r.VF)(e)});const c=(0,r.VF)(e)?ce:ue;s.setPipelineState(c),s.submitDraw(i,t)}postProcess(e,t){if((0,r.VF)(e)||(0,r.il)(e))return;const{context:i,painter:s}=e,o=this._resources.get(i);if(null==this._prevFBO||null==this._prevViewport||!o?.initialized)return;const{defines:a}=o.loadQualityProfile(i),{minDensity:n,maxDensity:l,radius:u}=t.getInput(),c=o.accumulateFramebuffer,p=o.resolveGradientTexture;s.setShader({shader:this.shaders.resolve,uniforms:{accumulatedDensity:{texture:{unit:8,texture:c.colorTexture},minAndInvRange:[n,1/(l-n)],normalization:3/(u*u*Math.PI)},gradient:{texture:{unit:9,texture:p}}},defines:a,optionalAttributes:{},useComputeBuffer:!1}),i.bindFramebuffer(this._prevFBO),i.setViewport(0,0,this._prevViewport.width,this._prevViewport.height),i.bindTexture(c.colorTexture,8),i.bindTexture(p,9),s.setPipelineState(pe),s.submitDrawQuad(i),this._unbind()}_getOrCreateResourcesRecord(e){let t=this._resources.get(e);return null==t&&(t=new $,this._resources.set(e,t)),t}_unbind(){this._prevFBO=null,this._prevViewport=null,this._isBound=!1}_bind(e,t,i){if(this._isBound)return;const{context:s,state:r,pixelRatio:o}=e,a=s.getBoundFramebufferObject(),n=s.getViewport();this._prevFBO=a,this._prevViewport=n;const{gradient:l,gradientHash:u}=i;t.ensureResolveGradientTexture(s,u,l);const{width:c,height:p}=n,d=function(e,t){const i=t>1.5?.25:.5;return e<1/(2*i)?1:i}(de(i,r),o),h=c*d,f=p*d,m=t.ensureAccumulateFBO(s,h,f);s.blitFramebuffer(a,m,0,0,a.width,a.height,0,0,m.width,m.height,z.lk.STENCIL_BUFFER_BIT,z.cw.NEAREST),s.bindFramebuffer(m),s.setViewport(0,0,m.width,m.height),s.setColorMask(!0,!0,!0,!0),s.setClearColor(0,0,0,0),s.clear(z.lk.COLOR_BUFFER_BIT),this._isBound=!0}}("heatmap"),dotDensity:new class extends a{constructor(){super(...arguments),this.shaders={polygon:new _,point:new v,fill:new k.C},this.meshWriter=B.U.DotDensityMeshWriter,this._resources=new Map}render(e,t){(0,r.il)(e)||(0,r.VF)(e)?this._renderPolygons(e,t):this._renderDotDensity(e,t)}_renderPolygons(e,t){const{context:i,painter:s}=e;s.setShader({shader:this.shaders.fill,uniforms:{...(0,r.l5)(e,t.target),visualVariableColor:null,visualVariableOpacity:null},defines:{...(0,r.rO)(e)},optionalAttributes:{zoomRange:!1},useComputeBuffer:(0,r.VF)(e)}),s.setPipelineState((0,r.H6)(e)),s.submitDraw(i,t)}_renderDotDensity(e,t){const{context:i,painter:o,requiredLevel:a}=e,n=t.instance.getInput(),l=this._getOrCreateResourcesRecord(i),u=l.getDotDensityTextures(i,s.i9,n.seed),c=1/2**(a-t.target.key.level),p=s.i9,d=p*window.devicePixelRatio*p*window.devicePixelRatio,h=1/c*(1/c),f=n.dotScale?e.state.scale/n.dotScale:1,m=n.dotValue*f*h;o.setShader({shader:this.shaders.polygon,uniforms:{...(0,r.l5)(e,t.target),instance:{isActive:n.isActive,colors:n.colors,dotValue:Math.max(1,m)},draw:{dotTexture0:{unit:s.Of,texture:u[0]},dotTexture1:{unit:s.vk,texture:u[1]},tileZoomFactor:c,pixelRatio:window.devicePixelRatio,tileDotsOverArea:d/(s.i9*window.devicePixelRatio*s.i9*window.devicePixelRatio)}},defines:{...(0,r.rO)(e),blending:n.blending},optionalAttributes:{},useComputeBuffer:!1}),o.setPipelineState((0,r.H6)(e));const v=i.getViewport();i.setViewport(0,0,s.i9,s.i9);const y=i.getBoundFramebufferObject(),b=l.getFBO(i);i.bindFramebuffer(b),i.setClearColor(0,0,0,0),o.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},depth:!1,stencil:!1}),o.updatePipelineState(i),i.clear(z.lk.COLOR_BUFFER_BIT),o.submitDraw(i,t),i.bindFramebuffer(y),i.setViewport(v.x,v.y,v.width,v.height);const g=l.getFBO(i).colorTexture;o.setShader({shader:this.shaders.point,uniforms:{view:(0,r.yF)(e,t.target),instance:{dotSize:n.dotSize},draw:{locations:{unit:s.Of,texture:g},tileZoomFactor:1,pixelRatio:window.devicePixelRatio}},defines:{...(0,r.rO)(e)},optionalAttributes:{},useComputeBuffer:!1}),o.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},depth:!1,stencil:!1}),o.submitDrawMesh(i,l.getDotDensityMesh(i))}shutdown(e){super.shutdown(e),this._resources.get(e)?.destroy(),this._resources.delete(e)}_getOrCreateResourcesRecord(e){let t=this._resources.get(e);return null==t&&(t=new L,this._resources.set(e,t)),t}}("dotDensity")};function je(){for(const e in Ye)Ye[e].startup()}function $e(e){for(const t in Ye)Ye[t].shutdown(e)}},54746:function(e,t,i){i.d(t,{$F:function(){return n},vZ:function(){return c}});var s=i(7753),r=i(38716),o=i(54680),a=i(35119);function n(e,t){return{type:"simple",filters:t,capabilities:{maxTextureSize:(0,a.h)().maxTextureSize},bindings:u(e)}}function l(e){switch(e){case"opacity":return r.CU.OPACITY;case"color":return r.CU.COLOR;case"rotation":return r.CU.ROTATION;case"size":return r.CU.SIZE;default:return null}}function u(e){if(!e)return[];switch(e.type){case"simple":case"class-breaks":case"unique-value":case"dictionary":return c(e);case"dot-density":return function(e){const t=[];for(const i of e.attributes)t.push({binding:t.length,expression:i.valueExpression,field:i.field});return t}(e);case"pie-chart":return function(e){const t=c(e);let i=4;for(const s of e.attributes)t.push({binding:i++,expression:s.valueExpression,field:s.field});return t}(e);case"heatmap":return function({valueExpression:e,field:t}){return e||t?[{binding:0,expression:e,field:t}]:[]}(e)}}function c(e){return"visualVariables"in e&&e.visualVariables?.length?(0,o.t)(e.visualVariables).map((e=>function(e){switch(e.type){case"size":return function(e){return"$view.scale"===e.valueExpression?null:{binding:l(e.type),field:e.field,normalizationField:e.normalizationField,expression:e.valueExpression,valueRepresentation:e.valueRepresentation}}(e);case"color":case"opacity":return function(e){return{binding:l(e.type),field:e.field,normalizationField:e.normalizationField,expression:e.valueExpression}}(e);case"rotation":return function(e){return{binding:l(e.type),expression:e.valueExpression,field:e.field}}(e)}}(e))).filter(s.pC):[]}},47684:function(e,t,i){i.d(t,{Jh:function(){return x},Sc:function(){return S},XS:function(){return w}});var s=i(95550),r=i(17321),o=i(6923),a=i(14266),n=i(44255),l=i(10402),u=i(54680);const c=1.25,p=128,d=128;function h(e){if(!e.stops?.length)return null;const t=e.stops.sort(((e,t)=>e.value-t.value)),i=(0,l.Q)(t,8),s=i.map((({value:e})=>e)),r=i.map((({color:e})=>(0,l.n)(e)));return{values:s,colors:r}}function f(e){if(!e.stops?.length)return null;const t=e.stops.sort(((e,t)=>e.value-t.value)),i=(0,l.Q)(t,8);return{opacityValues:i.map((({value:e})=>e)),opacities:i.map((({opacity:e})=>e))}}function m(e){return{rotationType:"geographic"===e.rotationType?n.MO.Geographic:n.MO.Arithmatic}}function v(e){if(!e.stops?.length)return null;if(e.stops.some((e=>e.useMaxValue||e.useMinValue)))return(t,i)=>{const r=t.statisticsByLevel.get(i.key.level),o=e.stops.map((t=>({value:t.useMaxValue?r?.get(e.field)?.maxValue??0:t.useMinValue?r?.get(e.field)?.minValue??0:t.value,size:t.size?(0,s.F2)(t.size):a.k9}))).sort(((e,t)=>e.value-t.value)),n=(0,l.Q)(o,8);return{values:n.map((({value:e})=>e)),sizes:n.map((({size:e})=>e))}};const t=e.stops.sort(((e,t)=>e.value-t.value)),i=(0,l.Q)(t,8);return{values:i.map((({value:e})=>e)),sizes:i.map((({size:e})=>(0,s.F2)(e)))}}function y(e){return t=>{const{state:i}=t;return{unitValueToPixelsRatio:(0,r.c9)(i.spatialReference)/o.a[e.valueUnit]/i.resolution}}}function b(e,t){const i=t.length;if(e{const n=e.state.scale,l=(0,s.F2)(b(n,r.stops)),u=(0,s.F2)(b(n,o.stops));return{minMaxValueAndSize:[t,i,l,u]}};if("object"==typeof r||"object"==typeof o)throw new Error("InternalError: Found a partial VisualVariableSizeMinMaxValue");return{minMaxValueAndSize:[t,i,(0,s.F2)(r),(0,s.F2)(o)]}}const x={visualVariableColor:null,visualVariableOpacity:null,visualVariableRotation:null,visualVariableSizeStops:null,visualVariableSizeScaleStops:null,visualVariableSizeOutlineScaleStops:null,visualVariableSizeUnitValue:null,visualVariableSizeMinMaxValue:null};function w(e,t=d,i=c){if(e.visualVariableSizeMinMaxValue)return e.visualVariableSizeMinMaxValue instanceof Function?p:Math.max(e.visualVariableSizeMinMaxValue.minMaxValueAndSize[3]*i,t);if(e.visualVariableSizeScaleStops){if(e.visualVariableSizeScaleStops instanceof Function)return p;const s=e.visualVariableSizeScaleStops.sizes;return Math.max(s[s.length-1]*i,t)}if(e.visualVariableSizeStops){if(e.visualVariableSizeStops instanceof Function)return p;const s=e.visualVariableSizeStops.sizes;return Math.max(s[s.length-1]*i,t)}return e.visualVariableSizeUnitValue?2*p:0}function S(e){const t={...x};if(!e||!("visualVariables"in e)||!e.visualVariables)return t;for(const i of(0,u.t)(e.visualVariables))switch(i.type){case"color":t.visualVariableColor=h(i);break;case"opacity":t.visualVariableOpacity=f(i);break;case"rotation":t.visualVariableRotation=m(i);break;case"size":switch(_(i)){case"field-stops":t.visualVariableSizeStops=v(i);break;case"scale-stops":"outline"===i.target?t.visualVariableSizeOutlineScaleStops=v(i):t.visualVariableSizeScaleStops=v(i);break;case"min-max":t.visualVariableSizeMinMaxValue=g(i);break;case"unit-value":t.visualVariableSizeUnitValue=y(i)}}return t}function _(e){if("number"==typeof e.minDataValue&&"number"==typeof e.maxDataValue&&null!=e.minSize&&null!=e.maxSize)return"min-max";if((e.expression&&"view.scale"===e.expression||e.valueExpression&&"$view.scale"===e.valueExpression)&&Array.isArray(e.stops))return"scale-stops";if((null!=e.field||e.expression&&"view.scale"!==e.expression||e.valueExpression&&"$view.scale"!==e.valueExpression)&&(Array.isArray(e.stops)||"levels"in e&&e.levels))return"field-stops";if((null!=e.field||e.expression&&"view.scale"!==e.expression||e.valueExpression&&"$view.scale"!==e.valueExpression)&&null!=e.valueUnit)return"unit-value";throw new Error("InternalError: Found unknown sizeVV type")}},10402:function(e,t,i){function s(e,t){const i=e.slice(0,t),s=t-i.length;for(let e=0;er.Z.getLogger("esri.views.2d.layers.features.support.rendererUtils");function c(e){return e.map((e=>function(e){return("size"===e.type||"color"===e.type||"opacity"===e.type)&&null!=e.stops}(e)?function(e){return e.stops=function(e,t){return t.length<=n?t:(u().warn(`Found ${t.length} Visual Variable stops, but MapView only supports ${n}. Displayed stops will be simplified.`),t.length>2*n?function(e,t){const[i,...s]=t,r=s.pop(),a=s[0].value,n=s[s.length-1].value,u=(n-a)/l,c=[];for(let i=a;i=s[r].value;)r++;const a=s[r],n=t[r-1],l=i-n.value,u=a.value===n.value?1:l/(a.value-n.value);if("color"===e){const e=s[r],o=t[r-1],a=e.color.clone();a.r=p(o.color.r,a.r,u),a.g=p(o.color.g,a.g,u),a.b=p(o.color.b,a.b,u),a.a=p(o.color.a,a.a,u),c.push({value:i,color:a,label:e.label})}else if("size"===e){const e=s[r],a=t[r-1],n=(0,o.t_)(e.size),l=p((0,o.t_)(a.size),n,u);c.push({value:i,size:l,label:e.label})}else{const e=s[r],o=p(t[r-1].opacity,e.opacity,u);c.push({value:i,opacity:o,label:e.label})}}return[i,...c,r]}(e,t):function(e){const[t,...i]=e,s=i.pop();for(;i.length>l;){let e=0,t=0;for(let s=1;st&&(t=a,e=s)}i.splice(e,1)}return[t,...i,s]}(t))}(e.type,e.stops??[]),e}(e.clone()):e))}function p(e,t,i){return(1-i)*e+i*t}function d(e){if(!e)return!0;switch(e.type){case"dot-density":break;case"heatmap":if(!function(){const{supportsColorBufferFloat:e,supportsColorBufferFloatBlend:t,supportsColorBufferHalfFloat:i}=(0,a.h)();return e&&t||i}()){const e=(0,a.h)(),t=["supportsColorBufferFloat","supportsColorBufferFloatBlend","supportsColorBufferHalfFloat"].filter((t=>!e[t])).join(", ");return u().errorOnce(new s.Z("webgl-missing-extension",`Missing WebGL2 requirements for Heatmap: ${t}`)),!1}}return!0}},43610:function(e,t,i){i.d(t,{Z:function(){return u}});var s=i(89370),r=i(99542);function o(e){return e.some((e=>e.globalId))}function a(e){return e.filter((e=>!e.error)).map((e=>e.objectId??e.globalId)).filter((e=>null!=e))}function n(e,t){const i=new Set(e);for(const e of t.values())i.add(e);return i}function l(e,t){const i=new Set(e);for(const e of t.values())i.delete(e);return i}class u{constructor(e){this.updateTracking=new s.x({debugName:"FeatureCommandQueue"}),this._hasGlobalIds=!1,this._queueProcessor=new r.e({concurrency:1,process:e.process})}destroy(){this.updateTracking.destroy(),this._queueProcessor.destroy(),this.clear()}clear(){this._queueProcessor.clear()}async push(e){return this.updateTracking.addPromise(this._doPush(e))}async _doPush(e){const t=this._queueProcessor,i=t.last(),s=[];switch(e.type){case"update":if(i?.type===e.type)return;s.push(t.push(e));break;case"edit":{const r="processed-edit"===i?.type?i:null;r&&t.popLast();const o=this._mergeEdits(r,e);for(const e of o)e&&s.push(t.push(e));break}}await Promise.all(s)}_mergeEdits(e,t){const{addedFeatures:i,deletedFeatures:s,updatedFeatures:r}=t.edits;if(this._hasGlobalIds=this._hasGlobalIds||o(i)||o(r)||o(s),this._hasGlobalIds)return[e,{type:"processed-edit",edits:{addOrModified:[...i,...r],removed:s}}];const u=new Set(a(e?.edits.addOrModified??[])),c=new Set(a(e?.edits.removed??[])),p=new Set([...a(i),...a(r)]),d=new Set(a(s));return[{type:"processed-edit",edits:{addOrModified:Array.from(n(l(u,d),p)).map((e=>({objectId:e}))),removed:Array.from(n(l(c,p),d)).map((e=>({objectId:e})))}}]}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3483.3667288446f8ba2de747.js b/docs/sentinel1-explorer/3483.3667288446f8ba2de747.js new file mode 100644 index 00000000..5a221a64 --- /dev/null +++ b/docs/sentinel1-explorer/3483.3667288446f8ba2de747.js @@ -0,0 +1,2 @@ +/*! For license information please see 3483.3667288446f8ba2de747.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3483],{83483:function(t,e,i){i.r(e),i.d(e,{CalciteFlow:function(){return h},defineCustomElement:function(){return f}});var n=i(77210),o=i(85545),r=i(16265);const s="frame",a="frame--advancing",c="frame--retreating",l=(0,n.GH)(class extends n.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.itemMutationObserver=(0,o.c)("mutation",(()=>this.updateFlowProps())),this.getFlowDirection=(t,e)=>t&&e>1||t>1?e{const{customItemSelectors:t,el:e,items:i}=this,n=Array.from(e.querySelectorAll("calcite-flow-item"+(t?`,${t}`:""))).filter((t=>t.closest("calcite-flow")===e)),o=i.length,r=n.length,s=n[r-1],a=n[r-2];if(r&&s&&n.forEach((t=>{t.showBackButton=t===s&&r>1,t.hidden=t!==s})),a&&(a.menuOpen=!1),this.items=n,o!==r){const t=this.getFlowDirection(o,r);this.itemCount=r,this.flowDirection=t}},this.customItemSelectors=void 0,this.flowDirection=null,this.itemCount=0,this.items=[]}async back(){const{items:t}=this,e=t[t.length-1];if(!e)return;const i=e.beforeBack?e.beforeBack:()=>Promise.resolve();try{await i.call(e)}catch(t){return}return e.remove(),e}async setFocus(){await(0,r.c)(this);const{items:t}=this,e=t[t.length-1];return e?.setFocus()}connectedCallback(){this.itemMutationObserver?.observe(this.el,{childList:!0,subtree:!0}),this.updateFlowProps()}async componentWillLoad(){(0,r.s)(this)}componentDidLoad(){(0,r.a)(this)}disconnectedCallback(){this.itemMutationObserver?.disconnect()}async handleItemBackClick(t){if(!t.defaultPrevented)return await this.back(),this.setFocus()}render(){const{flowDirection:t}=this,e={[s]:!0,[a]:"advancing"===t,[c]:"retreating"===t};return(0,n.h)("div",{class:e},(0,n.h)("slot",null))}get el(){return this}static get style(){return":host{box-sizing:border-box;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2);font-size:var(--calcite-font-size--1)}:host *{box-sizing:border-box}:host{position:relative;display:flex;inline-size:100%;flex:1 1 auto;align-items:stretch;overflow:hidden;background-color:transparent}:host .frame{position:relative;margin:0px;display:flex;inline-size:100%;flex:1 1 auto;flex-direction:column;align-items:stretch;padding:0px}:host ::slotted(calcite-flow-item),:host ::slotted(calcite-panel){block-size:100%}:host ::slotted(.calcite-match-height:last-child){display:flex;flex:1 1 auto;overflow:hidden}:host .frame--advancing{animation:calcite-frame-advance var(--calcite-animation-timing)}:host .frame--retreating{animation:calcite-frame-retreat var(--calcite-animation-timing)}@keyframes calcite-frame-advance{0%{--tw-bg-opacity:0.5;transform:translate3d(50px, 0, 0)}100%{--tw-bg-opacity:1;transform:translate3d(0, 0, 0)}}@keyframes calcite-frame-retreat{0%{--tw-bg-opacity:0.5;transform:translate3d(-50px, 0, 0)}100%{--tw-bg-opacity:1;transform:translate3d(0, 0, 0)}}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-flow",{customItemSelectors:[1,"custom-item-selectors"],flowDirection:[32],itemCount:[32],items:[32],back:[64],setFocus:[64]},[[0,"calciteFlowItemBack","handleItemBackClick"]]]);function u(){if("undefined"==typeof customElements)return;["calcite-flow"].forEach((t=>{if("calcite-flow"===t)customElements.get(t)||customElements.define(t,l)}))}u();const h=l,f=u},16265:function(t,e,i){i.d(e,{a:function(){return a},c:function(){return c},s:function(){return s}});var n=i(77210);const o=new WeakMap,r=new WeakMap;function s(t){r.set(t,new Promise((e=>o.set(t,e))))}function a(t){o.get(t)()}async function c(t){if(await function(t){return r.get(t)}(t),n.Z5.isBrowser)return(0,n.xE)(t),new Promise((t=>requestAnimationFrame((()=>t()))))}},85545:function(t,e,i){i.d(e,{c:function(){return o}});var n=i(77210);function o(t,e,i){if(!n.Z5.isBrowser)return;const o=function(t){class e extends window.MutationObserver{constructor(t){super(t),this.observedEntry=[],this.callback=t}observe(t,e){return this.observedEntry.push({target:t,options:e}),super.observe(t,e)}unobserve(t){const e=this.observedEntry.filter((e=>e.target!==t));this.observedEntry=[],this.callback(super.takeRecords(),this),this.disconnect(),e.forEach((t=>this.observe(t.target,t.options)))}}return"intersection"===t?window.IntersectionObserver:"mutation"===t?e:window.ResizeObserver}(t);return new o(e,i)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3483.3667288446f8ba2de747.js.LICENSE.txt b/docs/sentinel1-explorer/3483.3667288446f8ba2de747.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/3483.3667288446f8ba2de747.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/3549.034aa8b9417d4375bc8c.js b/docs/sentinel1-explorer/3549.034aa8b9417d4375bc8c.js new file mode 100644 index 00000000..a1e4fe5f --- /dev/null +++ b/docs/sentinel1-explorer/3549.034aa8b9417d4375bc8c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3549],{53549:function(e,t,n){n.r(t),n.d(t,{executeScript:function(){return Y},extend:function(){return W},functionHelper:function(){return _}});var r=n(32070),a=n(93674),o=n(19249),i=n(7182),l=n(94634),s=n(30359),c=n(94837),u=n(61125),f=n(33556),w=n(56101),p=n(73041),d=n(32200),h=n(63038),g=n(47154),m=n(36054),y=n(20031),v=n(14685);function b(e){return e&&"function"==typeof e.then}const V=100;async function S(e,t){const n=[];for(let r=0;r{const n={spatialReference:this.context.spatialReference,console:this.context.console,lrucache:this.context.lrucache,timeZone:this.context.timeZone??null,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,localScope:{},depthCounter:{depth:e.depthCounter+1},globalScope:this.context.globalScope};if(n.depthCounter.depth>64)throw new i.aV(e,i.rH.MaximumCallDepth,null);return K(this.definition,n,t,null)}}call(e,t){return C(e,t,((n,r,a)=>{const o={spatialReference:e.spatialReference,services:e.services,console:e.console,libraryResolver:e.libraryResolver,exports:e.exports,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,localScope:{},abortSignal:e.abortSignal,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1}};if(o.depthCounter.depth>64)throw new i.aV(e,i.rH.MaximumCallDepth,t);return K(this.definition,o,a,t)}))}marshalledCall(e,t,n,r){return r(e,t,(async(a,o,i)=>{const l={spatialReference:e.spatialReference,globalScope:n.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,abortSignal:e.abortSignal,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,localScope:{}};return i=i.map((t=>!(0,c.i)(t)||t instanceof s.Vg?t:(0,s.aq)(t,e,r))),(0,s.aq)(await K(this.definition,l,i,t),n,r)}))}}class B extends r.P{constructor(e){super(e)}async global(e){const t=this.executingContext.globalScope[e.toLowerCase()];if(t.valueset||(t.value=await I(this.executingContext,t.node),t.valueset=!0),(0,c.i)(t.value)&&!(t.value instanceof s.Vg)){const e=new s.Vg;e.fn=t.value,e.parameterEvaluator=C,e.context=this.executingContext,t.value=e}return t.value}setGlobal(e,t){if((0,c.i)(t))throw new i.aV(null,i.rH.AssignModuleFunction,null);this.executingContext.globalScope[e.toLowerCase()]={value:t,valueset:!0,node:null}}hasGlobal(e){return void 0===this.executingContext.exports[e]&&(e=e.toLowerCase()),void 0!==this.executingContext.exports[e]}async loadModule(e){let t=e.spatialReference;null==t&&(t=new v.Z({wkid:102100})),this.moduleScope=T({},e.customfunctions,e.timeZone),this.executingContext={spatialReference:t,services:e.services,libraryResolver:new a.s(e.libraryResolver._moduleSingletons,this.source.syntax.loadedModules),exports:{},abortSignal:void 0===e.abortSignal||null===e.abortSignal?{aborted:!1}:e.abortSignal,globalScope:this.moduleScope,console:e.console??U,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,localScope:null,depthCounter:{depth:1}},await I(this.executingContext,this.source.syntax)}}async function C(e,t,n){if(!0===t.preparsed){const r=n(e,null,t.arguments);return b(r),r}const r=n(e,t,await S(e,t));return b(r),r}async function I(e,t,n){if(t.breakpoint&&!0!==n){const n=t.breakpoint();return await n,I(e,t,!0)}try{switch(t?.type){case"VariableDeclarator":return await async function(e,t){let n=null;if(n=null===t.init?null:await I(e,t.init),null!==e.localScope){if(n===c.B&&(n=null),"Identifier"!==t.id.type)throw new i.aV(e,i.rH.InvalidIdentifier,t);const r=t.id.name.toLowerCase();return null!=e.localScope&&(e.localScope[r]={value:n,valueset:!0,node:t.init}),c.B}if("Identifier"!==t.id.type)throw new i.aV(e,i.rH.InvalidIdentifier,t);const r=t.id.name.toLowerCase();return n===c.B&&(n=null),e.globalScope[r]={value:n,valueset:!0,node:t.init},c.B}(e,t);case"ImportDeclaration":return await async function(e,t){const n=t.specifiers[0].local.name.toLowerCase(),r=e.libraryResolver.loadLibrary(n);let a=null;return e.libraryResolver._moduleSingletons?.has(r.uri)?a=e.libraryResolver._moduleSingletons.get(r.uri):(a=new B(r),await a.loadModule(e),e.libraryResolver._moduleSingletons?.set(r.uri,a)),e.globalScope[n]={value:a,valueset:!0,node:t},c.B}(e,t);case"ExportNamedDeclaration":return await async function(e,t){if(await I(e,t.declaration),"FunctionDeclaration"===t.declaration.type)e.exports[t.declaration.id.name.toLowerCase()]="function";else if("VariableDeclaration"===t.declaration.type)for(const n of t.declaration.declarations)e.exports[n.id.name.toLowerCase()]="variable";return c.B}(e,t);case"VariableDeclaration":return await N(e,t,0);case"BlockStatement":case"Program":return await async function(e,t){return L(e,t,0)}(e,t);case"FunctionDeclaration":return await async function(e,t){const n=t.id.name.toLowerCase();return e.globalScope[n]={valueset:!0,node:null,value:new H(t,e)},c.B}(e,t);case"ReturnStatement":return await async function(e,t){if(null===t.argument)return new c.z(c.B);const n=await I(e,t.argument);return new c.z(n)}(e,t);case"IfStatement":return await async function(e,t){const n=await I(e,t.test);if(!0===n)return I(e,t.consequent);if(!1===n)return null!==t.alternate?I(e,t.alternate):c.B;throw new i.aV(e,i.rH.BooleanConditionRequired,t)}(e,t);case"ExpressionStatement":return await async function(e,t){if("AssignmentExpression"===t.expression.type)return I(e,t.expression);if("CallExpression"===t.expression.type){const n=await I(e,t.expression);return n===c.B?c.B:new c.A(n)}const n=await I(e,t.expression);return n===c.B?c.B:new c.A(n)}(e,t);case"UpdateExpression":return await async function(e,t){const n=t.argument;if("MemberExpression"===n.type){const r={t:null},a=await I(e,n.object);let l=null;r.t=a,!0===n.computed?l=await I(e,n.property):"Identifier"===n.property.type&&(l=n.property.name);const s=r.t;let u;if((0,c.o)(s)){if(!(0,c.b)(l))throw new i.aV(e,i.rH.ArrayAccessorMustBeNumber,t);if(l<0&&(l=s.length+l),l<0||l>=s.length)throw new i.aV(e,i.rH.OutOfBounds,t);u=(0,c.g)(s[l]),s[l]="++"===t.operator?u+1:u-1}else if(s instanceof o.Z){if(!1===(0,c.c)(l))throw new i.aV(e,i.rH.KeyAccessorMustBeString,t);if(!0!==s.hasField(l))throw new i.aV(e,i.rH.FieldNotFound,t,{key:l});u=(0,c.g)(s.field(l)),s.setField(l,"++"===t.operator?u+1:u-1)}else if(s instanceof B){if(!1===(0,c.c)(l))throw new i.aV(e,i.rH.ModuleAccessorMustBeString,t);if(!0!==s.hasGlobal(l))throw new i.aV(e,i.rH.ModuleExportNotFound,t);u=(0,c.g)(await s.global(l)),s.setGlobal(l,"++"===t.operator?u+1:u-1)}else{if(!(0,c.r)(s))throw(0,c.q)(s)?new i.aV(e,i.rH.Immutable,t):new i.aV(e,i.rH.InvalidParameter,t);if(!1===(0,c.c)(l))throw new i.aV(e,i.rH.KeyAccessorMustBeString,t);if(!0!==s.hasField(l))throw new i.aV(e,i.rH.FieldNotFound,t,{key:l});u=(0,c.g)(s.field(l)),s.setField(l,"++"===t.operator?u+1:u-1)}return!1===t.prefix?u:"++"===t.operator?u+1:u-1}const r="Identifier"===t.argument.type?t.argument.name.toLowerCase():"";if(!r)throw new i.aV(e,i.rH.InvalidIdentifier,t);let a;if(null!=e.localScope&&void 0!==e.localScope[r])return a=(0,c.g)(e.localScope[r].value),e.localScope[r]={value:"++"===t.operator?a+1:a-1,valueset:!0,node:t},!1===t.prefix?a:"++"===t.operator?a+1:a-1;if(void 0!==e.globalScope[r])return a=(0,c.g)(e.globalScope[r].value),e.globalScope[r]={value:"++"===t.operator?a+1:a-1,valueset:!0,node:t},!1===t.prefix?a:"++"===t.operator?a+1:a-1;throw new i.aV(e,i.rH.InvalidIdentifier,t)}(e,t);case"AssignmentExpression":return await async function(e,t){const n=t.left;if("MemberExpression"===n.type){const r=await I(e,n.object);let a=null;if(!0===n.computed)a=await I(e,n.property);else{if("Identifier"!==n.property.type)throw new i.aV(e,i.rH.InvalidIdentifier,t);a=n.property.name}const l=await I(e,t.right);if((0,c.o)(r)){if(!(0,c.b)(a))throw new i.aV(e,i.rH.ArrayAccessorMustBeNumber,t);if(a<0&&(a=r.length+a),a<0||a>r.length)throw new i.aV(e,i.rH.OutOfBounds,t);if(a===r.length){if("="!==t.operator)throw new i.aV(e,i.rH.OutOfBounds,t);r[a]=O(l,t.operator,r[a],t,e)}else r[a]=O(l,t.operator,r[a],t,e)}else if(r instanceof o.Z){if(!1===(0,c.c)(a))throw new i.aV(e,i.rH.KeyAccessorMustBeString,t);if(!0===r.hasField(a))r.setField(a,O(l,t.operator,r.field(a),t,e));else{if("="!==t.operator)throw new i.aV(e,i.rH.FieldNotFound,t,{key:a});r.setField(a,O(l,t.operator,null,t,e))}}else if(r instanceof B){if(!1===(0,c.c)(a))throw new i.aV(e,i.rH.KeyAccessorMustBeString,t);if(!0!==r.hasGlobal(a))throw new i.aV(e,i.rH.ModuleExportNotFound,t);r.setGlobal(a,O(l,t.operator,await r.global(a),t,e))}else{if(!(0,c.r)(r))throw(0,c.q)(r)?new i.aV(e,i.rH.Immutable,t):new i.aV(e,i.rH.InvalidParameter,t);if(!1===(0,c.c)(a))throw new i.aV(e,i.rH.KeyAccessorMustBeString,t);if(!0===r.hasField(a))r.setField(a,O(l,t.operator,r.field(a),t,e));else{if("="!==t.operator)throw new i.aV(e,i.rH.FieldNotFound,t,{key:a});r.setField(a,O(l,t.operator,null,t,e))}}return c.B}const r=n.name.toLowerCase();if(null!=e.localScope&&void 0!==e.localScope[r]){const n=await I(e,t.right);return e.localScope[r]={value:O(n,t.operator,e.localScope[r].value,t,e),valueset:!0,node:t.right},c.B}if(void 0!==e.globalScope[r]){const n=await I(e,t.right);return e.globalScope[r]={value:O(n,t.operator,e.globalScope[r].value,t,e),valueset:!0,node:t.right},c.B}throw new i.aV(e,i.rH.InvalidIdentifier,t)}(e,t);case"ForStatement":return await function(e,t){try{return null!==t.init?I(e,t.init).then((()=>new Promise(((n,r)=>{A(e,t,{testResult:!0,lastAction:c.B},(e=>{n(e)}),(e=>{r(e)}),0)})))):new Promise(((n,r)=>{A(e,t,{testResult:!0,lastAction:c.B},(e=>{n(e)}),(e=>{r(e)}),0)}))}catch(e){return Promise.reject(e)}}(e,t);case"WhileStatement":return await async function(e,t){const n={testResult:!0,lastAction:c.B};if(n.testResult=await I(e,t.test),!1===n.testResult)return c.B;if(!0!==n.testResult)throw new i.aV(e,i.rH.BooleanConditionRequired,t);for(;!0===n.testResult&&(n.lastAction=await I(e,t.body),n.lastAction!==c.C)&&!(n.lastAction instanceof c.z);)if(n.testResult=await I(e,t.test),!0!==n.testResult&&!1!==n.testResult)throw new i.aV(e,i.rH.BooleanConditionRequired,t);return n.lastAction instanceof c.z?n.lastAction:c.B}(e,t);case"ForInStatement":return await async function(e,t){return new Promise(((n,r)=>{I(e,t.right).then((a=>{try{let l=null;l="VariableDeclaration"===t.left.type?I(e,t.left):Promise.resolve(),l.then((()=>{try{let l="";if("VariableDeclaration"===t.left.type){const e=t.left.declarations[0].id;"Identifier"===e.type&&(l=e.name)}else"Identifier"===t.left.type&&(l=t.left.name);if(!l)throw new i.aV(e,i.rH.InvalidIdentifier,t);l=l.toLowerCase();let s=null;if(null!=e.localScope&&void 0!==e.localScope[l]&&(s=e.localScope[l]),null===s&&void 0!==e.globalScope[l]&&(s=e.globalScope[l]),null===s)return void r(new i.aV(e,i.rH.InvalidIdentifier,t));(0,c.o)(a)||(0,c.c)(a)?k(e,t,a,{reject:r,resolve:n},s):(0,c.q)(a)?function(e,t,n,r,a,o){try{if(void 0===o&&(o="i"),0===n.length)return void r.resolve(c.B);M(e,t,n,a,0,o,(e=>{r.resolve(e)}),(e=>{r.reject(e)}),0)}catch(e){r.reject(e)}}(e,t,a,{reject:r,resolve:n},s):a instanceof o.Z||(0,c.r)(a)?function(e,t,n,r,a){try{k(e,t,n.keys(),r,a,"k")}catch(e){r.reject(e)}}(e,t,a,{reject:r,resolve:n},s):(0,c.u)(a)?Z(a.iterator(e.abortSignal),e,t,a,s,(e=>{n(e)}),(e=>{r(e)}),0):k(e,t,[],{reject:r,resolve:n},s)}catch(e){r(e)}}),r)}catch(e){r(e)}}),r)}))}(e,t);case"BreakStatement":return c.C;case"EmptyStatement":return c.B;case"ContinueStatement":return c.D;case"TemplateElement":return await async function(e,t){return t.value?t.value.cooked:""}(0,t);case"TemplateLiteral":return await async function(e,t){const n=[];for(let r=0;r=n.length||r<0)throw new i.aV(e,i.rH.OutOfBounds,t);return n[r]}throw new i.aV(e,i.rH.InvalidMemberAccessKey,t)}if((0,c.q)(n)){if((0,c.b)(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length()+r),r>=n.length()||r<0)throw new i.aV(e,i.rH.OutOfBounds,t);return n.get(r)}throw new i.aV(e,i.rH.InvalidMemberAccessKey,t)}if((0,c.c)(n)){if((0,c.b)(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length+r),r>=n.length||r<0)throw new i.aV(e,i.rH.OutOfBounds,t);return n[r]}throw new i.aV(e,i.rH.InvalidMemberAccessKey,t)}throw new i.aV(e,i.rH.InvalidMemberAccessKey,t)}(e,t);case"Literal":return t.value;case"CallExpression":return await async function(e,t){if("MemberExpression"===t.callee.type){const n=await I(e,t.callee.object);if(!(n instanceof B))throw new i.aV(e,i.rH.FunctionNotFound,t);const r=!1===t.callee.computed?t.callee.property.name:await I(e,t.callee.property);if(!n.hasGlobal(r))throw new i.aV(e,i.rH.FunctionNotFound,t);const a=await n.global(r);if(!(0,c.i)(a))throw new i.aV(e,i.rH.CallNonFunction,t);return a.call(e,t)}if("Identifier"!==t.callee.type)throw new i.aV(e,i.rH.FunctionNotFound,t);if(null!=e.localScope&&void 0!==e.localScope[t.callee.name.toLowerCase()]){const n=e.localScope[t.callee.name.toLowerCase()];if((0,c.i)(n.value))return n.value.call(e,t);throw new i.aV(e,i.rH.CallNonFunction,t)}if(void 0!==e.globalScope[t.callee.name.toLowerCase()]){const n=e.globalScope[t.callee.name.toLowerCase()];if((0,c.i)(n.value))return n.value.call(e,t);throw new i.aV(e,i.rH.CallNonFunction,t)}throw new i.aV(e,i.rH.FunctionNotFound,t)}(e,t);case"UnaryExpression":return await async function(e,t){const n=await I(e,t.argument);if((0,c.a)(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*(0,c.g)(n);if("+"===t.operator)return 1*(0,c.g)(n);if("~"===t.operator)return~(0,c.g)(n);throw new i.aV(e,i.rH.UnsupportedUnaryOperator,t)}if("-"===t.operator)return-1*(0,c.g)(n);if("+"===t.operator)return 1*(0,c.g)(n);if("~"===t.operator)return~(0,c.g)(n);throw new i.aV(e,i.rH.UnsupportedUnaryOperator,t)}(e,t);case"BinaryExpression":return await async function(e,t){const n=[];n[0]=await I(e,t.left),n[1]=await I(e,t.right);const r=n[0],a=n[1];switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return(0,c.G)((0,c.g)(r),(0,c.g)(a),t.operator);case"==":return(0,c.F)(r,a);case"!=":return!(0,c.F)(r,a);case"<":case">":case"<=":case">=":return(0,c.E)(r,a,t.operator);case"+":return(0,c.c)(r)||(0,c.c)(a)?(0,c.j)(r)+(0,c.j)(a):(0,c.g)(r)+(0,c.g)(a);case"-":return(0,c.g)(r)-(0,c.g)(a);case"*":return(0,c.g)(r)*(0,c.g)(a);case"/":return(0,c.g)(r)/(0,c.g)(a);case"%":return(0,c.g)(r)%(0,c.g)(a);default:throw new i.aV(e,i.rH.UnsupportedOperator,t)}}(e,t);case"LogicalExpression":return await async function(e,t){const n=await I(e,t.left);let r=null;if(!(0,c.a)(n))throw new i.aV(e,i.rH.LogicalExpressionOnlyBoolean,t);switch(t.operator){case"||":if(!0===n)return n;if(r=await I(e,t.right),(0,c.a)(r))return r;throw new i.aV(e,i.rH.LogicExpressionOrAnd,t);case"&&":if(!1===n)return n;if(r=await I(e,t.right),(0,c.a)(r))return r;throw new i.aV(e,i.rH.LogicExpressionOrAnd,t);default:throw new i.aV(e,i.rH.LogicExpressionOrAnd,t)}}(e,t);case"ArrayExpression":return await async function(e,t){const n=[];for(let r=0;r{try{!0===n.testResult?++o>V?(o=0,setTimeout((()=>{A(e,t,n,r,a,o)}),0)):A(e,t,n,r,a,o):n.lastAction instanceof c.z?r(n.lastAction):r(c.B)}catch(e){a(e)}}),(e=>{a(e)}))}catch(e){a(e)}}function R(e,t,n,r,a,o,i,l,s,u){try{if(r<=o)return void l(c.B);a.value="k"===i?n[o]:o,I(e,t.body).then((f=>{try{f instanceof c.z?l(f):f===c.C?l(c.B):++u>V?(u=0,setTimeout((()=>{R(e,t,n,r,a,o+1,i,l,s,u)}),0)):R(e,t,n,r,a,o+1,i,l,s,u)}catch(e){s(e)}}),(e=>{s(e)}))}catch(e){s(e)}}function M(e,t,n,r,a,o,i,l,s){try{if(n.length()<=a)return void i(c.B);r.value="k"===o?n.get(a):a,I(e,t.body).then((u=>{u instanceof c.z?i(u):u===c.C?i(c.B):++s>V?(s=0,setTimeout((()=>{M(e,t,n,r,a+1,o,i,l,s)}),0)):M(e,t,n,r,a+1,o,i,l,s)}),(e=>{l(e)}))}catch(e){l(e)}}function k(e,t,n,r,a,o){try{if(void 0===o&&(o="i"),0===n.length)return void r.resolve(c.B);R(e,t,n,n.length,a,0,o,(e=>{r.resolve(e)}),(e=>{r.reject(e)}),0)}catch(e){r.reject(e)}}function Z(e,t,n,r,a,o,i,s){try{e.next().then((u=>{try{if(null===u)o(c.B);else{const f=l.Z.createFromGraphicLikeObject(u.geometry,u.attributes,r,t.timeZone);f._underlyingGraphic=u,a.value=f,I(t,n.body).then((l=>{try{l===c.C?o(c.B):l instanceof c.z?o(l):++s>V?(s=0,setTimeout((()=>{Z(e,t,n,r,a,o,i,s)}),0)):Z(e,t,n,r,a,o,i,s)}catch(e){i(e)}}),(e=>{i(e)}))}}catch(e){i(e)}}),(e=>{i(e)}))}catch(e){i(e)}}function O(e,t,n,r,a){switch(t){case"=":return e===c.B?null:e;case"/=":return(0,c.g)(n)/(0,c.g)(e);case"*=":return(0,c.g)(n)*(0,c.g)(e);case"-=":return(0,c.g)(n)-(0,c.g)(e);case"+=":return(0,c.c)(n)||(0,c.c)(e)?(0,c.j)(n)+(0,c.j)(e):(0,c.g)(n)+(0,c.g)(e);case"%=":return(0,c.g)(n)%(0,c.g)(e);default:throw new i.aV(a,i.rH.UnsupportedOperator,r)}}async function L(e,t,n){if(n>=t.body.length)return c.B;const r=await I(e,t.body[n]);return r instanceof c.z||r===c.C||r===c.D||n===t.body.length-1?r:L(e,t,n+1)}async function N(e,t,n){return n>=t.declarations.length||(await I(e,t.declarations[n]),n===t.declarations.length-1||await N(e,t,n+1)),c.B}async function E(e,t){const n=t.name.toLowerCase();if(null!=e.localScope&&void 0!==e.localScope[n]){const t=e.localScope[n];if(!0===t.valueset)return t.value;if(null!==t.d)return t.d;t.d=I(e,t.node);const r=await t.d;return t.value=r,t.valueset=!0,r}if(void 0!==e.globalScope[n]){const t=e.globalScope[n];if(!0===t.valueset)return t.value;if(null!==t.d)return t.d;t.d=I(e,t.node);const r=await t.d;return t.value=r,t.valueset=!0,r}throw new i.aV(e,i.rH.InvalidIdentifier,t)}function j(e,t,n){if((0,c.i)(e))throw new i.aV(t,i.rH.NoFunctionInTemplateLiteral,n);return e}const q={};async function P(e,t,n,r){const a=await I(e,t.arguments[n]);if((0,c.F)(a,r))return I(e,t.arguments[n+1]);const o=t.arguments.length-n;return 1===o?I(e,t.arguments[n]):2===o?null:3===o?I(e,t.arguments[n+2]):P(e,t,n+2,r)}async function D(e,t,n,r){if(!0===r)return I(e,t.arguments[n+1]);if(3==t.arguments.length-n)return I(e,t.arguments[n+2]);const a=await I(e,t.arguments[n+2]);if(!1===(0,c.a)(a))throw new i.aV(e,i.rH.ModuleExportNotFound,t.arguments[n+2]);return D(e,t,n+2,a)}async function K(e,t,n,r){const a=e.body;if(n.length!==e.params.length)throw new i.aV(t,i.rH.WrongNumberOfParameters,null);for(let r=0;r=r.minParams&&t<=r.maxParams}const f={min:{minParams:1,maxParams:1,evaluate:e=>v(e[0],"min")},max:{minParams:1,maxParams:1,evaluate:e=>v(e[0],"max")},avg:{minParams:1,maxParams:1,evaluate:e=>d(e[0])},sum:{minParams:1,maxParams:1,evaluate:e=>function(e){if(null===e)return null;let t=0;for(let r=0;rfunction(e){if(null===e)return null;const t=h(e);return null===t?null:Math.sqrt(t)}(e[0])},count:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:e[0].length},var:{minParams:1,maxParams:1,evaluate:e=>h(e[0])}};function d(e){if(null===e)return null;let t=0,r=0;for(let n=0;n=e)&&(r=a,n=e)}return r}function h(e){if(null===e)return null;if(0===(e=e.filter((e=>null!==e))).length)return null;const t=d(e);if(null===t)return null;let r=0;for(const n of e){if(!p(n))throw new a.eS(a.f.InvalidValueForAggregateFunction);r+=(t-n)**2}return r/(e.length-1)}class m{constructor(){this.op="+",this.day=0,this.second=0,this.hour=0,this.month=0,this.year=0,this.minute=0,this.millis=0}static _fixDefaults(e){if(null!==e.precision||null!==e.secondary)throw new a.eS(a.f.PrimarySecondaryQualifiers)}static _parseSecondsComponent(e,t){if(t.includes(".")){const r=t.split(".");e.second=parseFloat(r[0]),e.millis=parseInt(r[1],10)}else e.second=parseFloat(t)}static createFromMilliseconds(e){const t=new m;return t.second=e/1e3,t}static createFromValueAndQualifier(e,t,r){let n=null;const i=new m;if(i.op="-"===r?"-":"+","interval-period"===t.type){m._fixDefaults(t);const r=new RegExp("^[0-9]{1,}$");if("year"===t.period||"month"===t.period)throw new a.eS(a.f.YearMonthIntervals);if("second"===t.period){if(!/^[0-9]{1,}([.]{1}[0-9]{1,}){0,1}$/.test(e))throw new a.eS(a.f.IllegalInterval);m._parseSecondsComponent(i,e)}else{if(!r.test(e))throw new a.eS(a.f.IllegalInterval);i[t.period]=parseFloat(e)}}else{if(m._fixDefaults(t.start),m._fixDefaults(t.end),"year"===t.start.period||"month"===t.start.period||"year"===t.end.period||"month"===t.end.period)throw new a.eS(a.f.YearMonthIntervals);switch(t.start.period){case"day":switch(t.end.period){case"hour":if(n=new RegExp("^[0-9]{1,} [0-9]{1,}$"),!n.test(e))throw new a.eS(a.f.IllegalInterval);i[t.start.period]=parseFloat(e.split(" ")[0]),i[t.end.period]=parseFloat(e.split(" ")[1]);break;case"minute":if(n=new RegExp("^[0-9]{1,} [0-9]{1,2}:[0-9]{1,}$"),!n.test(e))throw new a.eS(a.f.IllegalInterval);{i[t.start.period]=parseFloat(e.split(" ")[0]);const r=e.split(" ")[1].split(":");i.hour=parseFloat(r[0]),i.minute=parseFloat(r[1])}break;case"second":if(n=new RegExp("^[0-9]{1,} [0-9]{1,2}:[0-9]{1,2}:[0-9]{1,}([.]{1}[0-9]{1,}){0,1}$"),!n.test(e))throw new a.eS(a.f.IllegalInterval);{i[t.start.period]=parseFloat(e.split(" ")[0]);const r=e.split(" ")[1].split(":");i.hour=parseFloat(r[0]),i.minute=parseFloat(r[1]),m._parseSecondsComponent(i,r[2])}break;default:throw new a.eS(a.f.IllegalInterval)}break;case"hour":switch(t.end.period){case"minute":if(n=new RegExp("^[0-9]{1,}:[0-9]{1,}$"),!n.test(e))throw new a.eS(a.f.IllegalInterval);i.hour=parseFloat(e.split(":")[0]),i.minute=parseFloat(e.split(":")[1]);break;case"second":if(n=new RegExp("^[0-9]{1,}:[0-9]{1,2}:[0-9]{1,}([.]{1}[0-9]{1,}){0,1}$"),!n.test(e))throw new a.eS(a.f.IllegalInterval);{const t=e.split(":");i.hour=parseFloat(t[0]),i.minute=parseFloat(t[1]),m._parseSecondsComponent(i,t[2])}break;default:throw new a.eS(a.f.IllegalInterval)}break;case"minute":if("second"!==t.end.period)throw new a.eS(a.f.IllegalInterval);if(n=new RegExp("^[0-9]{1,}:[0-9]{1,}([.]{1}[0-9]{1,}){0,1}$"),!n.test(e))throw new a.eS(a.f.IllegalInterval);{const t=e.split(":");i.minute=parseFloat(t[0]),m._parseSecondsComponent(i,t[1])}break;default:throw new a.eS(a.f.IllegalInterval)}}return i}valueInMilliseconds(){return("-"===this.op?-1:1)*(this.millis+1e3*this.second+60*this.minute*1e3+60*this.hour*60*1e3+24*this.day*60*60*1e3+this.month*(365/12)*24*60*60*1e3+365*this.year*24*60*60*1e3)}}var w=r(46576);const I=/^(\d{1,2}):(\d{1,2}):(\d{1,2})$/,S=/^(\d{1,2}):(\d{1,2})$/,g=/^(\d{1,2}):(\d{1,2}):(\d{1,2}).([0-9]+)$/,y=/^(\d{4})-(\d{1,2})-(\d{1,2})$/,T=/^(\d{4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})(\.[0-9]+)?$/,N=/^(\d{4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})(\.[0-9]+)?[ ]{0,1}(\+|\-)(\d{1,2}):(\d{1,2})$/,O=/^(\d{4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2})?[ ]{0,1}(\+|\-)(\d{1,2}):(\d{1,2})$/,C=/^(\d{4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2})$/;function x(e,t){if(t instanceof l.ld)return t===w.yV.instance?l.ou.fromMillis(e.getTime(),{zone:w.yV.instance}):l.ou.fromJSDate(e,{zone:t});switch(t){case"system":case"local":case null:return l.ou.fromJSDate(e);default:return"unknown"===t?.toLowerCase()?l.ou.fromMillis(e.getTime(),{zone:w.yV.instance}):l.ou.fromJSDate(e,{zone:t})}}function b(e){return"number"==typeof e}function A(e){return"string"==typeof e||e instanceof String}function M(e){return e instanceof m}function E(e){return e instanceof Date}function F(e){return e instanceof l.ou}function D(e){return e instanceof o.u}function _(e){return e instanceof s.n}function P(e){return e instanceof u.H}function L(e){let t=I.exec(e);if(null!==t){const[,e,r,n]=t,i=s.n.fromParts(parseInt(e,10),parseInt(r,10),parseInt(n,10),0);if(null!==i)return i;throw new a.eS(a.f.InvalidTime)}if(t=S.exec(e),null!==t){const[,e,r]=t,n=s.n.fromParts(parseInt(e,10),parseInt(r,10),0,0);if(null!==n)return n;throw new a.eS(a.f.InvalidTime)}if(t=g.exec(e),null!==t){const[,e,r,n,i]=t,o=s.n.fromParts(parseInt(e,10),parseInt(r,10),parseInt(n,10),parseInt(i,10));if(null!==o)return o;throw new a.eS(a.f.InvalidTime)}throw new a.eS(a.f.InvalidTime)}function R(e,t,r=!1){let n=T.exec(e);if(null!==n){const[,e,r,i,o,u,s,c]=n,f=l.ou.fromObject({year:parseInt(e,10),month:parseInt(r,10),day:parseInt(i,10),hour:parseInt(o,10),minute:parseInt(u,10),second:parseInt(s,10),millisecond:c?parseInt(c.replace(".",""),10):0},{zone:(0,w.L9)(t)});if(!1===f.isValid)throw new a.eS(a.f.InvalidTimeStamp);return f}if(n=N.exec(e),null!==n){const[,e,t,r,i,o,s,l,c,f,d]=n,p=u.H.fromParts(parseInt(e,10),parseInt(t,10),parseInt(r,10),parseInt(i,10),parseInt(o,10),parseInt(s,10),l?parseInt(l.replace(".",""),10):0,"-"===c,parseInt(f,10),parseInt(d,10));if(!1===p.isValid)throw new a.eS(a.f.InvalidTimeStamp);return p}if(n=O.exec(e),null!==n){const[,e,t,r,i,o,s,l,c]=n,f=u.H.fromParts(parseInt(e,10),parseInt(t,10),parseInt(r,10),parseInt(i,10),parseInt(o,10),0,0,"-"===s,parseInt(l,10),parseInt(c,10));if(!1===f.isValid)throw new a.eS(a.f.InvalidTimeStamp);return f}if(n=C.exec(e),null!==n){const[,e,r,i,o,u]=n,s=l.ou.fromObject({year:parseInt(e,10),month:parseInt(r,10),day:parseInt(i,10),hour:parseInt(o,10),minute:parseInt(u,10),second:0},{zone:(0,w.L9)(t)});if(!1===s.isValid)throw new a.eS(a.f.InvalidTimeStamp);return s}if(n=y.exec(e),null!==n){const[,e,r,i]=n,o=l.ou.fromObject({year:parseInt(e,10),month:parseInt(r,10),day:parseInt(i,10),hour:0,minute:0,second:0},{zone:(0,w.L9)(t)});if(!1===o.isValid)throw new a.eS(a.f.InvalidTimeStamp);return o}throw new a.eS(a.f.InvalidTimeStamp)}function U(e,t){const r=y.exec(e);if(null===r)try{return R(e,t)}catch{throw new a.eS(a.f.InvalidDate)}const[,n,i,u]=r,s=o.u.fromParts(parseInt(n,10),parseInt(i,10),parseInt(u,10));if(null===s)throw new a.eS(a.f.InvalidDate);return s}var V=r(21130);const J=321408e5,$=26784e5,H=864e5,k=36e5,Z=6e4;function z(e){return!!F(e)||!!P(e)}function q(e){if(F(e))return e.toMillis();if(D(e))return e.toNumber();if(P(e))return e.toMilliseconds();throw new a.eS(a.f.InvalidDataType)}function Y(e,t,r,n){if(null==e||null==t)return null;if(b(e)){if(b(t))return B(e,t,r);if(A(t))return function(e,t,r){const n=parseFloat(t);if(!isNaN(n))return B(e,n,r);const a=e.toString();switch(r){case"<>":return a!==t;case"=":return a===t;case">":return a>t;case"<":return a=":return a>=t;case"<=":return a<=t}}(e,t,r);if(F(i=t)||D(i)||P(i)||_(i))throw new a.eS(a.f.InvalidOperator);if(D(t))throw new a.eS(a.f.InvalidOperator)}else if(A(e)){if(b(t))return function(e,t,r){const n=parseFloat(e);if(!isNaN(n))return B(n,t,r);const a=t.toString();switch(r){case"<>":return e!==a;case"=":return e===a;case">":return e>a;case"<":return e=":return e>=a;case"<=":return e<=a}}(e,t,r);if(A(t))return function(e,t,r){switch(r){case"<>":return e!==t;case"=":return e===t;case">":return e>t;case"<":return e=":return e>=t;case"<=":return e<=t}}(e,t,r);if(F(t))throw new a.eS(a.f.InvalidOperator);if(D(t))throw new a.eS(a.f.InvalidOperator);if(_(t))throw new a.eS(a.f.InvalidOperator);if(P(t))throw new a.eS(a.f.InvalidOperator)}else if(F(e)){if(z(t)){if(e instanceof l.ou&&(0,w.A4)(e.zone)){if(t instanceof l.ou&&!1===(0,w.A4)(t.zone))return Q(e,t,r);if(t instanceof u.H)return Q(e,t,r)}else if(t instanceof l.ou&&(0,w.A4)(t.zone)){if(e instanceof l.ou&&!1===(0,w.A4)(e.zone))return Q(e,t,r);if(e instanceof u.H)return Q(e,t,r)}return B(q(e),q(t),r)}if(A(t))throw new a.eS(a.f.InvalidOperator);if(D(t))return function(e,t,r){const n=t.toDateTimeLuxon(e.zone);return B((e=e.startOf("day")).toMillis(),n.toMillis(),r)}(e,t,r);if(_(t))throw new a.eS(a.f.InvalidOperator);if(b(t))throw new a.eS(a.f.InvalidOperator)}else if(D(e)){if(P(t))return function(e,t,r){const n=e.toDateTimeLuxon(t.toDateTime().zone);return t=t.startOfDay(),B(n.toMillis(),t.toMilliseconds(),r)}(e,t,r);if(F(t))return function(e,t,r){const n=e.toDateTimeLuxon(t.zone);return t=t.startOf("day"),B(n.toMillis(),t.toMillis(),r)}(e,t,r);if(A(t))throw new a.eS(a.f.InvalidOperator);if(D(t))return B(e.toNumber(),t.toNumber(),r);if(_(t))throw new a.eS(a.f.InvalidOperator);if(b(t))throw new a.eS(a.f.InvalidOperator)}else if(_(e)){if(_(t))return B(e.toNumber(),t.toNumber(),r);if(A(t))throw new a.eS(a.f.InvalidOperator);if(b(t))throw new a.eS(a.f.InvalidOperator);if(D(t))throw new a.eS(a.f.InvalidOperator);if(z(t))throw new a.eS(a.f.InvalidOperator)}else if(P(e)){if(z(t))return t instanceof l.ou&&(0,w.A4)(t.zone)?Q(e,t,r):B(q(e),q(t),r);if(A(t))throw new a.eS(a.f.InvalidOperator);if(D(t))return function(e,t,r){const n=t.toDateTimeLuxon(e.toDateTime().zone);return B((e=e.startOfDay()).toMilliseconds(),n.toMillis(),r)}(e,t,r);if(_(t))throw new a.eS(a.f.InvalidOperator);if(b(t))throw new a.eS(a.f.InvalidOperator)}var i;switch(r){case"<>":return e!==t;case"=":return e===t;case">":return e>t;case"<":return e=":return e>=t;case"<=":return e<=t}}function B(e,t,r){switch(r){case"<>":return e!==t;case"=":return e===t;case">":return e>t;case"<":return e=":return e>=t;case"<=":return e<=t}}function Q(e,t,r){e instanceof u.H&&(e=e.toDateTime()),t instanceof u.H&&(t=t.toDateTime());const n=j(e),a=j(t);switch(r){case"<>":return n!==a;case"=":return n===a;case">":return n>a;case"<":return n=":return n>=a;case"<=":return n<=a}}function j(e){return e.year*J+e.month*$+e.day*H+e.hour*k+e.minute*Z+1e3*e.second+e.millisecond}function G(e,t,r){const n=ee[e.toLowerCase()];if(null==n)throw new a.eS(a.f.FunctionNotRecognized);if(t.lengthn.maxParams)throw new a.eS(a.f.InvalidParameterCount,{name:e.toUpperCase()});return n.evaluate(t,r)}function W(e){return"string"==typeof e||e instanceof String}function K(e){return!(E(e)||D(e)||F(e)||_(e)||P(e))}function X(e){return D(e)||_(e)?e.toString():P(e)?e.toSQLValue():F(e)?0===e.millisecond?e.toFormat("yyyy-LL-dd HH:mm:ss"):e.toSQL({includeOffset:!1}):E(e)?X(l.ou.fromJSDate(e)):e.toString()}const ee={extract:{minParams:2,maxParams:2,evaluate:([e,t])=>{if(null==t)return null;if(E(t))switch(e.toUpperCase()){case"SECOND":return t.getSeconds();case"MINUTE":return t.getMinutes();case"HOUR":return t.getHours();case"DAY":return t.getDate();case"MONTH":return t.getMonth()+1;case"YEAR":return t.getFullYear();case"TIMEZONE_HOUR":case"TIMEZONE_MINUTE":return 0}else if(F(t))switch(e.toUpperCase()){case"SECOND":return t.second;case"MINUTE":return t.minute;case"HOUR":return t.hour;case"DAY":return t.day;case"MONTH":return t.month;case"YEAR":return t.year;case"TIMEZONE_HOUR":case"TIMEZONE_MINUTE":throw new a.eS(a.f.InvalidFunctionParameters,{function:"EXTRACT"})}else if(D(t))switch(e.toUpperCase()){case"DAY":return t.day;case"MONTH":return t.month;case"YEAR":return t.year;case"TIMEZONE_HOUR":case"TIMEZONE_MINUTE":throw new a.eS(a.f.InvalidFunctionParameters,{function:"EXTRACT"})}else if(_(t))switch(e.toUpperCase()){case"SECOND":return t.second;case"MINUTE":return t.minute;case"HOUR":return t.hour}else if(P(t))switch(e.toUpperCase()){case"SECOND":return t.second;case"MINUTE":return t.minute;case"HOUR":return t.hour;case"DAY":return t.day;case"MONTH":return t.month;case"YEAR":return t.year;case"TIMEZONE_HOUR":return t.timezoneOffsetHour;case"TIMEZONE_MINUTE":return t.timezoneOffsetMinutes}throw new a.eS(a.f.InvalidFunctionParameters,{function:"EXTRACT"})}},substring:{minParams:2,maxParams:3,evaluate:e=>{if(2===e.length){const[t,r]=e;return null==t||null==r?null:t.toString().substring(r-1)}if(3===e.length){const[t,r,n]=e;return null==t||null==r||null==n?null:n<=0?"":t.toString().substring(r-1,r+n-1)}}},position:{minParams:2,maxParams:2,evaluate:([e,t])=>null==e||null==t?null:t.indexOf(e)+1},trim:{minParams:2,maxParams:3,evaluate:e=>{const t=3===e.length,r=t?e[1]:" ",n=t?e[2]:e[1];if(null==r||null==n)return null;const i=`(${(0,V.Qs)(r)})`;switch(e[0]){case"BOTH":return n.replaceAll(new RegExp(`^${i}*|${i}*$`,"g"),"");case"LEADING":return n.replaceAll(new RegExp(`^${i}*`,"g"),"");case"TRAILING":return n.replaceAll(new RegExp(`${i}*$`,"g"),"")}throw new a.eS(a.f.InvalidFunctionParameters,{function:"TRIM"})}},abs:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.abs(e[0])},ceiling:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.ceil(e[0])},floor:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.floor(e[0])},log:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.log(e[0])},log10:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.log(e[0])*Math.LOG10E},sin:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.sin(e[0])},cos:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.cos(e[0])},tan:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.tan(e[0])},asin:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.asin(e[0])},acos:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.acos(e[0])},atan:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.atan(e[0])},sign:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:e[0]>0?1:e[1]<0?-1:0},power:{minParams:2,maxParams:2,evaluate:e=>null==e[0]||null==e[1]?null:e[0]**e[1]},mod:{minParams:2,maxParams:2,evaluate:e=>null==e[0]||null==e[1]?null:e[0]%e[1]},round:{minParams:1,maxParams:2,evaluate:e=>{const t=e[0],r=2===e.length?10**e[1]:1;return null==t?null:Math.round(t*r)/r}},truncate:{minParams:1,maxParams:2,evaluate:e=>null==e[0]?null:1===e.length?parseInt(e[0].toFixed(0),10):parseFloat(e[0].toFixed(e[1]))},char_length:{minParams:1,maxParams:1,evaluate:e=>W(e[0])?e[0].length:0},concat:{minParams:1,maxParams:1/0,evaluate:e=>{let t="";for(let r=0;rnull==e[0]?null:e[0].toString().toLowerCase()},upper:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:e[0].toString().toUpperCase()},coalesce:{minParams:1,maxParams:1/0,evaluate:e=>{for(const t of e)if(null!==t)return t;return null}},cosh:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.cosh(e[0])},sinh:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.sinh(e[0])},tanh:{minParams:1,maxParams:1,evaluate:e=>null==e[0]?null:Math.tanh(e[0])},nullif:{minParams:2,maxParams:2,evaluate:(e,t)=>Y(e[0],e[1],"=")?null:e[0]},cast:{minParams:2,maxParams:2,evaluate:(e,t)=>{const r=e[0],n=e[1];if(null===r)return null;switch(n.type){case"integer":{if(!K(r))throw new a.eS(a.f.CannotCastValue);const e=parseInt(r,10);if(isNaN(e))throw new a.eS(a.f.CannotCastValue);return e}case"smallint":{if(!K(r))throw new a.eS(a.f.CannotCastValue);const e=parseInt(r,10);if(isNaN(e))throw new a.eS(a.f.CannotCastValue);if(e>32767||e<-32767)throw new a.eS(a.f.CannotCastValue);return e}case"float":case"real":{if(!K(r))throw new a.eS(a.f.CannotCastValue);const e=parseFloat(r);if(isNaN(e))throw new a.eS(a.f.CannotCastValue);return e}case"time":return function(e){if(E(e))return s.n.fromDateJS(e);if(F(e))return s.n.fromDateTime(e);if(D(e))throw new a.eS(a.f.CannotCastValue);if(_(e))return e;if(P(e))return s.n.fromSqlTimeStampOffset(e);if(W(e))return L(e);throw new a.eS(a.f.CannotCastValue)}(r);case"date":return function(e){if(E(e))return o.u.fromDateJS(e);if(F(e))return o.u.fromParts(e.year,e.month,e.day);if(D(e))return e;if(_(e))throw new a.eS(a.f.CannotCastValue);if(P(e)&&null===o.u.fromParts(e.year,e.month,e.day))throw new a.eS(a.f.CannotCastValue);if(W(e)){const t=o.u.fromReader(e);if(null!==t&&t.isValid)return t}throw new a.eS(a.f.CannotCastValue)}(r);case"timestamp":return function(e,t,r){if(E(e))return x(e,t);if(F(e))return e;if(D(e))return e.toDateTimeLuxon("unknown");if(_(e))throw new a.eS(a.f.CannotCastValue);if(P(e))return e;if(W(e))return R(e,"unknown",r);throw new a.eS(a.f.CannotCastValue)}(r,t,!0===n.withtimezone);case"varchar":{const e=X(r);if(e.length>n.size)throw new a.eS(a.f.CannotCastValue);return e}default:throw new a.eS(a.f.InvalidDataType)}}}};function te(e,t,r,n){if("||"===e)return G("concat",[t,r],n);if(null===t||null===r)return null;if(b(t)){if(b(r))return re(t,r,e);if(M(r))return function(e,t,r){switch(r){case"+":return m.createFromMilliseconds(e+t.valueInMilliseconds());case"-":return m.createFromMilliseconds(e-t.valueInMilliseconds());case"*":return m.createFromMilliseconds(e*t.valueInMilliseconds());case"/":return m.createFromMilliseconds(e/t.valueInMilliseconds())}throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(_(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(D(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(P(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(F(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(A(r))return function(e,t,r){const n=parseFloat(t);if(isNaN(n))throw new a.eS(a.f.InvalidOperator);return re(e,n,r)}(t,r,e);throw new a.eS(a.f.InvalidOperator)}if(D(t)){if(b(r))return function(e,t,r){const n=1e3*t*24*60*60;switch(r){case"+":return e.plus("milliseconds",n);case"-":return e.plus("milliseconds",-1*n)}throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(M(r))return function(e,t,r){switch(r){case"+":return e.plus("milliseconds",t.valueInMilliseconds());case"-":return e.plus("milliseconds",-1*t.valueInMilliseconds())}throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(_(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(D(r))return function(e,t,r){if("-"===r)return e.toDateTimeLuxon("UTC").diff(t.toDateTimeLuxon("UTC")).as("days");throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(P(r))return function(e,t,r){if("-"===r)return e.toDateTimeLuxon(t.toDateTime().zone).diff(t.toDateTime()).as("days");throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(F(r))return function(e,t,r){if("-"===r)return e.toDateTimeLuxon(t.zone).diff(t).as("days");throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(A(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();throw new a.eS(a.f.InvalidOperator)}if(_(t)){if(b(r))return function(e,t,r){const n=1e3*t*24*60*60;switch(r){case"+":return e.plus("milliseconds",n);case"-":return e.plus("milliseconds",-1*n)}throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(M(r))return function(e,t,r){switch(r){case"+":return e.plus("milliseconds",t.valueInMilliseconds());case"-":return e.plus("milliseconds",-1*t.valueInMilliseconds())}throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(_(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(D(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(P(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(F(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(A(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();throw new a.eS(a.f.InvalidOperator)}if(M(t)){if(b(r))return function(e,t,r){switch(r){case"+":return m.createFromMilliseconds(e.valueInMilliseconds()+t);case"-":return m.createFromMilliseconds(e.valueInMilliseconds()-t);case"*":return m.createFromMilliseconds(e.valueInMilliseconds()*t);case"/":return m.createFromMilliseconds(e.valueInMilliseconds()/t)}throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(M(r))return function(e,t,r){switch(r){case"+":return m.createFromMilliseconds(e.valueInMilliseconds()+t.valueInMilliseconds());case"-":return m.createFromMilliseconds(e.valueInMilliseconds()-t.valueInMilliseconds());case"*":return m.createFromMilliseconds(e.valueInMilliseconds()*t.valueInMilliseconds());case"/":return m.createFromMilliseconds(e.valueInMilliseconds()/t.valueInMilliseconds())}throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(_(r))return function(e,t,r){if("+"===r)return t.plus("milliseconds",e.valueInMilliseconds());throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(D(r))return function(e,t,r){if("+"===r)return t.plus("milliseconds",e.valueInMilliseconds());throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(P(r))return function(e,t,r){if("+"===r)return t.addMilliseconds(e.valueInMilliseconds());throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(F(r))return function(e,t,r){switch(r){case"+":return t.plus({milliseconds:e.valueInMilliseconds()});case"-":return e.valueInMilliseconds()-t.toMillis()}throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(A(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();throw new a.eS(a.f.InvalidOperator)}if(F(t)){if(b(r))return function(e,t,r){const n=1e3*t*24*60*60;switch(r){case"+":return e.plus({milliseconds:n});case"-":return e.minus({milliseconds:n})}throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(M(r))return function(e,t,r){switch(r){case"+":return e.plus({milliseconds:t.valueInMilliseconds()});case"-":return e.minus({milliseconds:t.valueInMilliseconds()})}throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(_(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(D(r))return function(e,t,r){if("-"===r)return e.diff(t.toDateTimeLuxon(e.zone)).as("days");throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(P(r))return function(e,t,r){if("-"===r)return e.diff(t.toDateTime()).as("days");throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(F(r))return function(e,t,r){if("-"===r)return e.diff(t).as("days");throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(A(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();throw new a.eS(a.f.InvalidOperator)}if(P(t)){if(b(r))return function(e,t,r){const n=1e3*t*24*60*60;switch(r){case"+":return e.addMilliseconds(n);case"-":return e.addMilliseconds(-1*n)}throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(M(r))return function(e,t,r){switch(r){case"+":return e.addMilliseconds(t.valueInMilliseconds());case"-":return e.addMilliseconds(-1*t.valueInMilliseconds())}throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(_(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(D(r))return function(e,t,r){if("-"===r)return e.toDateTime().diff(t.toDateTimeLuxon(e.toDateTime().zone)).as("days");throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(P(r))return function(e,t,r){if("-"===r)return e.toDateTime().diff(t.toDateTime()).as("days");throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(F(r))return function(e,t,r){if("-"===r)return e.toDateTime().diff(t).as("days");throw new a.eS(a.f.InvalidOperator)}(t,r,e);if(A(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();throw new a.eS(a.f.InvalidOperator)}if(A(t)){if(b(r))return function(e,t,r){const n=parseFloat(e);if(isNaN(n))throw new a.eS(a.f.InvalidOperator);return re(n,t,r)}(t,r,e);if(M(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(_(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(D(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(P(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(F(r))return function(e,t,r){throw new a.eS(a.f.InvalidOperator)}();if(A(r))return function(e,t,r){if("+"===r)return e+t;throw new a.eS(a.f.InvalidOperator)}(t,r,e);throw new a.eS(a.f.InvalidOperator)}throw new a.eS(a.f.InvalidOperator)}function re(e,t,r){switch(r){case"+":return e+t;case"-":return e-t;case"*":return e*t;case"/":return e/t}throw new a.eS(a.f.InvalidOperator)}r(58340);var ne,ae,ie={exports:{}};ae=function(){function e(t,r,n,a){var i=Error.call(this,t);return Object.setPrototypeOf&&Object.setPrototypeOf(i,e.prototype),i.expected=r,i.found=n,i.location=a,i.name="SyntaxError",i}function t(e,t,r){return r=r||" ",e.length>t?e:(t-=e.length,e+(r+=r.repeat(t)).slice(0,t))}return function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(e,Error),e.prototype.format=function(e){var r="Error: "+this.message;if(this.location){var n,a=null;for(n=0;n0){for(t=1,r=1;t=",f=">",d="<=",p="<>",v="<",h="!=",m="+",w="-",I="||",S="*",g="/",y="@",T="'",N="N'",O="''",C=".",x="null",b="true",A="false",M="in",E="is",F="like",D="escape",_="not",P="and",L="or",R="between",U="from",V="for",J="substring",$="extract",H="trim",k="position",Z="timestamp",z="date",q="time",Y="leading",B="trailing",Q="both",j="cast",G="as",W="integer",K="smallint",X="float",ee="real",te="varchar",re="to",ne="interval",ae="year",ie="timezone_hour",oe="timezone_minute",ue="month",se="day",le="hour",ce="minute",fe="second",de="case",pe="end",ve="when",he="then",me="else",we=",",Ie="(",Se=")",ge="`",ye=/^[A-Za-z_\x80-\uFFFF]/,Te=/^[A-Za-z0-9_]/,Ne=/^[A-Za-z0-9_.\x80-\uFFFF]/,Oe=/^["]/,Ce=/^[^']/,xe=/^[0-9]/,be=/^[eE]/,Ae=/^[+\-]/,Me=/^[ \t\n\r]/,Ee=/^[^`]/,Fe=La("!",!1),De=La("=",!1),_e=La(">=",!1),Pe=La(">",!1),Le=La("<=",!1),Re=La("<>",!1),Ue=La("<",!1),Ve=La("!=",!1),Je=La("+",!1),$e=La("-",!1),He=La("||",!1),ke=La("*",!1),Ze=La("/",!1),ze=Ra([["A","Z"],["a","z"],"_",["€","￿"]],!1,!1),qe=Ra([["A","Z"],["a","z"],["0","9"],"_"],!1,!1),Ye=Ra([["A","Z"],["a","z"],["0","9"],"_",".",["€","￿"]],!1,!1),Be=Ra(['"'],!1,!1),Qe=La("@",!1),je=La("'",!1),Ge=La("N'",!1),We=La("''",!1),Ke=Ra(["'"],!0,!1),Xe=La(".",!1),et=Ra([["0","9"]],!1,!1),tt=Ra(["e","E"],!1,!1),rt=Ra(["+","-"],!1,!1),nt=La("NULL",!0),at=La("TRUE",!0),it=La("FALSE",!0),ot=La("IN",!0),ut=La("IS",!0),st=La("LIKE",!0),lt=La("ESCAPE",!0),ct=La("NOT",!0),ft=La("AND",!0),dt=La("OR",!0),pt=La("BETWEEN",!0),vt=La("FROM",!0),ht=La("FOR",!0),mt=La("SUBSTRING",!0),wt=La("EXTRACT",!0),It=La("TRIM",!0),St=La("POSITION",!0),gt=La("TIMESTAMP",!0),yt=La("DATE",!0),Tt=La("TIME",!0),Nt=La("LEADING",!0),Ot=La("TRAILING",!0),Ct=La("BOTH",!0),xt=La("CAST",!0),bt=La("AS",!0),At=La("INTEGER",!0),Mt=La("SMALLINT",!0),Et=La("FLOAT",!0),Ft=La("REAL",!0),Dt=La("VARCHAR",!0),_t=La("TO",!0),Pt=La("INTERVAL",!0),Lt=La("YEAR",!0),Rt=La("TIMEZONE_HOUR",!0),Ut=La("TIMEZONE_MINUTE",!0),Vt=La("MONTH",!0),Jt=La("DAY",!0),$t=La("HOUR",!0),Ht=La("MINUTE",!0),kt=La("SECOND",!0),Zt=La("CASE",!0),zt=La("END",!0),qt=La("WHEN",!0),Yt=La("THEN",!0),Bt=La("ELSE",!0),Qt=La(",",!1),jt=La("(",!1),Gt=La(")",!1),Wt=Ra([" ","\t","\n","\r"],!1,!1),Kt=La("`",!1),Xt=Ra(["`"],!0,!1),er=function(e){return e},tr=function(e,t){var r={type:"expression-list"},n=function(e,t,r){return function(e,t){for(var r=[e],n=0;nFa&&(Fa=Aa,Da=[]),Da.push(e))}function $a(t,r){return new e(t,null,null,r)}function Ha(){var e,t;return e=Aa,go(),(t=Za())!==a?(go(),Ma=e,e=er(t)):(Aa=e,e=a),e}function ka(){var e,t,r,n,i,o,u,s;if(e=Aa,(t=Za())!==a){for(r=[],n=Aa,i=go(),(o=wo())!==a?(u=go(),(s=Za())!==a?n=i=[i,o,u,s]:(Aa=n,n=a)):(Aa=n,n=a);n!==a;)r.push(n),n=Aa,i=go(),(o=wo())!==a?(u=go(),(s=Za())!==a?n=i=[i,o,u,s]:(Aa=n,n=a)):(Aa=n,n=a);Ma=e,e=tr(t,r)}else Aa=e,e=a;return e}function Za(){var e,t,r,n,i,o,u,s;if(e=Aa,(t=za())!==a){for(r=[],n=Aa,i=go(),(o=Pi())!==a?(u=go(),(s=za())!==a?n=i=[i,o,u,s]:(Aa=n,n=a)):(Aa=n,n=a);n!==a;)r.push(n),n=Aa,i=go(),(o=Pi())!==a?(u=go(),(s=za())!==a?n=i=[i,o,u,s]:(Aa=n,n=a)):(Aa=n,n=a);Ma=e,e=rr(t,r)}else Aa=e,e=a;return e}function za(){var e,t,r,n,i,o,u,s;if(e=Aa,(t=qa())!==a){for(r=[],n=Aa,i=go(),(o=_i())!==a?(u=go(),(s=qa())!==a?n=i=[i,o,u,s]:(Aa=n,n=a)):(Aa=n,n=a);n!==a;)r.push(n),n=Aa,i=go(),(o=_i())!==a?(u=go(),(s=qa())!==a?n=i=[i,o,u,s]:(Aa=n,n=a)):(Aa=n,n=a);Ma=e,e=nr(t,r)}else Aa=e,e=a;return e}function qa(){var e,r,n,i,o;return e=Aa,(r=Di())===a&&(r=Aa,33===t.charCodeAt(Aa)?(n=s,Aa++):(n=a,0===_a&&Ja(Fe)),n!==a?(i=Aa,_a++,61===t.charCodeAt(Aa)?(o=l,Aa++):(o=a,0===_a&&Ja(De)),_a--,o===a?i=void 0:(Aa=i,i=a),i!==a?r=n=[n,i]:(Aa=r,r=a)):(Aa=r,r=a)),r!==a?(n=go(),(i=qa())!==a?(Ma=e,e=ar(i)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=function(){var e,t,r;return e=Aa,(t=ja())!==a?(go(),(r=function(){var e;return(e=function(){var e,t,r,n,i,o,u;if(e=Aa,t=[],r=Aa,n=go(),(i=Ya())!==a?(o=go(),(u=ja())!==a?r=n=[n,i,o,u]:(Aa=r,r=a)):(Aa=r,r=a),r!==a)for(;r!==a;)t.push(r),r=Aa,n=go(),(i=Ya())!==a?(o=go(),(u=ja())!==a?r=n=[n,i,o,u]:(Aa=r,r=a)):(Aa=r,r=a);else t=a;return t!==a&&(Ma=e,t=or(t)),t}())===a&&(e=function(){var e,t,r,n;return e=Aa,(t=Qa())!==a?(go(),(r=Io())!==a?(go(),(n=ka())!==a?(go(),So()!==a?(Ma=e,e=hr(t,n)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=Aa,(t=Qa())!==a?(go(),(r=Io())!==a?(go(),(n=So())!==a?(Ma=e,e=mr(t)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=Aa,(t=Qa())!==a?(go(),(r=ui())!==a?(Ma=e,e=wr(t,r)):(Aa=e,e=a)):(Aa=e,e=a))),e}())===a&&(e=function(){var e,t,r,n,i,o;return e=Aa,(t=Di())!==a?(go(),(r=Li())!==a?(go(),(n=ja())!==a?(go(),(i=_i())!==a?(go(),(o=ja())!==a?(Ma=e,e=lr(r,n,o)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=Aa,(t=Li())!==a?(go(),(r=ja())!==a?(go(),(n=_i())!==a?(go(),(i=ja())!==a?(Ma=e,e=cr(t,r,i)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)),e}())===a&&(e=function(){var e,t,r,n;return e=Aa,(t=Mi())!==a?(go(),(r=Di())!==a?(go(),(n=ja())!==a?(Ma=e,e=ur(t,n)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=Aa,(t=Mi())!==a?(go(),(r=ja())!==a?(Ma=e,e=sr(t,r)):(Aa=e,e=a)):(Aa=e,e=a)),e}())===a&&(e=function(){var e,t,r,n;return e=Aa,(t=Ba())!==a?(go(),(r=vi())!==a?(go(),Fi()!==a?(go(),(n=hi())!==a?(Ma=e,e=pr(t,r,n)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=Aa,(t=Ba())!==a?(go(),(r=vi())!==a?(Ma=e,e=vr(t,r)):(Aa=e,e=a)):(Aa=e,e=a)),e}()),e}())===a&&(r=null),Ma=e,e=ir(t,r)):(Aa=e,e=a),e}()),e}function Ya(){var e;return t.substr(Aa,2)===c?(e=c,Aa+=2):(e=a,0===_a&&Ja(_e)),e===a&&(62===t.charCodeAt(Aa)?(e=f,Aa++):(e=a,0===_a&&Ja(Pe)),e===a&&(t.substr(Aa,2)===d?(e=d,Aa+=2):(e=a,0===_a&&Ja(Le)),e===a&&(t.substr(Aa,2)===p?(e=p,Aa+=2):(e=a,0===_a&&Ja(Re)),e===a&&(60===t.charCodeAt(Aa)?(e=v,Aa++):(e=a,0===_a&&Ja(Ue)),e===a&&(61===t.charCodeAt(Aa)?(e=l,Aa++):(e=a,0===_a&&Ja(De)),e===a&&(t.substr(Aa,2)===h?(e=h,Aa+=2):(e=a,0===_a&&Ja(Ve)))))))),e}function Ba(){var e,t,r,n,i;return e=Aa,t=Aa,(r=Di())!==a?(n=go(),(i=Ei())!==a?t=r=[r,n,i]:(Aa=t,t=a)):(Aa=t,t=a),t!==a&&(Ma=e,t=fr(t)),(e=t)===a&&(e=Ei()),e}function Qa(){var e,t,r,n,i;return e=Aa,t=Aa,(r=Di())!==a?(n=go(),(i=Ai())!==a?t=r=[r,n,i]:(Aa=t,t=a)):(Aa=t,t=a),t!==a&&(Ma=e,t=dr(t)),(e=t)===a&&(e=Ai()),e}function ja(){var e,t,r,n,i,o,u,s;if(e=Aa,(t=Wa())!==a){for(r=[],n=Aa,i=go(),(o=Ga())!==a?(u=go(),(s=Wa())!==a?n=i=[i,o,u,s]:(Aa=n,n=a)):(Aa=n,n=a);n!==a;)r.push(n),n=Aa,i=go(),(o=Ga())!==a?(u=go(),(s=Wa())!==a?n=i=[i,o,u,s]:(Aa=n,n=a)):(Aa=n,n=a);Ma=e,e=Ir(t,r)}else Aa=e,e=a;return e}function Ga(){var e;return 43===t.charCodeAt(Aa)?(e=m,Aa++):(e=a,0===_a&&Ja(Je)),e===a&&(45===t.charCodeAt(Aa)?(e=w,Aa++):(e=a,0===_a&&Ja($e)),e===a&&(t.substr(Aa,2)===I?(e=I,Aa+=2):(e=a,0===_a&&Ja(He)))),e}function Wa(){var e,t,r,n,i,o,u,s;if(e=Aa,(t=Xa())!==a){for(r=[],n=Aa,i=go(),(o=Ka())!==a?(u=go(),(s=Xa())!==a?n=i=[i,o,u,s]:(Aa=n,n=a)):(Aa=n,n=a);n!==a;)r.push(n),n=Aa,i=go(),(o=Ka())!==a?(u=go(),(s=Xa())!==a?n=i=[i,o,u,s]:(Aa=n,n=a)):(Aa=n,n=a);Ma=e,e=Sr(t,r)}else Aa=e,e=a;return e}function Ka(){var e;return 42===t.charCodeAt(Aa)?(e=S,Aa++):(e=a,0===_a&&Ja(ke)),e===a&&(47===t.charCodeAt(Aa)?(e=g,Aa++):(e=a,0===_a&&Ja(Ze))),e}function Xa(){var e,t;return(e=function(){var e;return(e=hi())===a&&(e=function(){var e,t,r,n;return e=Aa,(t=function(){var e,t,r,n;return e=Aa,(t=Si())!==a&&(r=gi())!==a&&(n=yi())!==a?(Ma=e,e=Mn(t,r,n)):(Aa=e,e=a),e===a&&(e=Aa,(t=Si())!==a&&(r=gi())!==a?(Ma=e,e=En(t,r)):(Aa=e,e=a),e===a&&(e=Aa,(t=Si())!==a&&(r=yi())!==a?(Ma=e,e=Fn(t,r)):(Aa=e,e=a),e===a&&(e=Aa,(t=Si())!==a&&(Ma=e,t=Dn(t)),e=t))),e}())!==a?(r=Aa,_a++,n=ti(),_a--,n===a?r=void 0:(Aa=r,r=a),r!==a?(Ma=e,e=An(t)):(Aa=e,e=a)):(Aa=e,e=a),e}())===a&&(e=function(){var e,t;return e=Aa,(t=xi())!==a&&(Ma=e,t=wn()),(e=t)===a&&(e=Aa,(t=bi())!==a&&(Ma=e,t=In()),e=t),e}())===a&&(e=function(){var e,t;return e=Aa,(t=Ci())!==a&&(Ma=e,t=mn()),t}())===a&&(e=function(){var e,t;return e=Aa,Zi()!==a?(go(),(t=vi())!==a?(Ma=e,e=hn(t)):(Aa=e,e=a)):(Aa=e,e=a),e}())===a&&(e=function(){var e,t;return e=Aa,ki()!==a?(go(),(t=vi())!==a?(Ma=e,e=qr(t)):(Aa=e,e=a)):(Aa=e,e=a),e}())===a&&(e=li())===a&&(e=function(){var e,t;return e=Aa,zi()!==a?(go(),(t=vi())!==a?(Ma=e,e=Yr(t)):(Aa=e,e=a)):(Aa=e,e=a),e}()),e}())===a&&(e=function(){var e,t,r;return e=Aa,Ji()!==a?(go(),Io()!==a?(go(),(t=function(){var e;return(e=no())===a&&(e=oo())===a&&(e=uo())===a&&(e=so())===a&&(e=lo())===a&&(e=co())===a&&(e=ao())===a&&(e=io()),e}())!==a?(go(),Ri()!==a?(go(),(r=Za())!==a?(go(),So()!==a?(Ma=e,e=Er(t,r)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e}())===a&&(e=function(){var e,t,r,n,i,o,u;return e=Aa,Vi()!==a?(go(),Io()!==a?(go(),(t=Za())!==a?(go(),Ri()!==a?(go(),(r=Za())!==a?(go(),n=Aa,(i=Ui())!==a?(o=go(),(u=Za())!==a?n=i=[i,o,u,go()]:(Aa=n,n=a)):(Aa=n,n=a),n===a&&(n=null),(i=So())!==a?(Ma=e,e=Fr(t,r,n)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e}())===a&&(e=function(){var e,t,r,n;return e=Aa,$i()!==a?(go(),Io()!==a?(go(),(t=si())===a&&(t=null),go(),(r=Za())!==a?(go(),Ri()!==a?(go(),(n=Za())!==a?(go(),So()!==a?(Ma=e,e=Hr(t,r,n)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=Aa,$i()!==a?(go(),Io()!==a?(go(),(t=si())===a&&(t=null),go(),(r=Za())!==a?(go(),So()!==a?(Ma=e,e=kr(t,r)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)),e}())===a&&(e=function(){var e,t,r;return e=Aa,Hi()!==a?(go(),Io()!==a?(go(),(t=Za())!==a?(go(),Ai()!==a?(go(),(r=Za())!==a?(go(),So()!==a?(Ma=e,e=Zr(t,r)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e}())===a&&(e=function(){var e,t,r;return e=Aa,Qi()!==a?(go(),Io()!==a?(go(),(t=Za())!==a?(go(),ji()!==a?(go(),(r=function(){var e,t,r;return e=Aa,(t=Gi())!==a&&(Ma=e,t=_r()),(e=t)===a&&(e=Aa,(t=Wi())!==a&&(Ma=e,t=Pr()),(e=t)===a&&(e=Aa,(t=Ki())!==a&&(Ma=e,t=Lr()),(e=t)===a&&(e=Aa,(t=Xi())!==a&&(Ma=e,t=Rr()),(e=t)===a&&(e=Aa,(t=Zi())!==a&&(Ma=e,t=Ur()),(e=t)===a&&(e=Aa,(t=ki())!==a&&(Ma=e,t=Vr()),(e=t)===a&&(e=Aa,(t=zi())!==a&&(Ma=e,t=Jr()),(e=t)===a&&(e=Aa,(t=eo())!==a?(go(),Io()!==a?(go(),(r=Ti())!==a?(go(),So()!==a?(Ma=e,e=$r(r)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)))))))),e}())!==a?(go(),So()!==a?(Ma=e,e=Dr(t,r)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e}())===a&&(e=function(){var e,t,r;return e=Aa,(t=To())!==a?(go(),Io()!==a?(go(),(r=ka())===a&&(r=null),go(),So()!==a?(Ma=e,e=zr(t,r)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e}())===a&&(e=function(){var e;return(e=function(){var e,t,r,n,i;if(e=Aa,fo()!==a)if(go(),(t=Za())!==a){for(go(),r=[],n=wi();n!==a;)r.push(n),n=wi();n=go(),(i=po())!==a?(Ma=e,e=yn(t,r)):(Aa=e,e=a)}else Aa=e,e=a;else Aa=e,e=a;if(e===a)if(e=Aa,fo()!==a)if(go(),(t=Za())!==a){for(go(),r=[],n=wi();n!==a;)r.push(n),n=wi();n=go(),(i=Ii())!==a?(go(),po()!==a?(Ma=e,e=Tn(t,r,i)):(Aa=e,e=a)):(Aa=e,e=a)}else Aa=e,e=a;else Aa=e,e=a;return e}())===a&&(e=function(){var e,t,r,n;if(e=Aa,fo()!==a){for(go(),t=[],r=mi();r!==a;)t.push(r),r=mi();r=go(),(n=po())!==a?(Ma=e,e=Nn(t)):(Aa=e,e=a)}else Aa=e,e=a;if(e===a)if(e=Aa,fo()!==a){for(go(),t=[],r=mi();r!==a;)t.push(r),r=mi();r=go(),(n=Ii())!==a?(go(),po()!==a?(Ma=e,e=On(t,n)):(Aa=e,e=a)):(Aa=e,e=a)}else Aa=e,e=a;return e}()),e}())===a&&(e=function(){var e,t;return e=Aa,(t=function(){var e,t;return e=Aa,(t=function(){var e,t,r,n;if(e=Aa,(t=ti())!==a){for(r=[],n=ni();n!==a;)r.push(n),n=ni();Ma=e,e=Or(t,r)}else Aa=e,e=a;return e}())!==a&&(Ma=e,t=Nr(t)),t}())!==a&&(Ma=e,t=yr(t)),(e=t)===a&&(e=Aa,(t=function(){var e,t;return e=Aa,oi()!==a?(t=function(){var e,t,r;for(e=Aa,t=[],r=ai();r!==a;)t.push(r),r=ai();return Ma=e,br(t)}(),oi()!==a?(Ma=e,e=xr(t)):(Aa=e,e=a)):(Aa=e,e=a),e}())!==a&&(Ma=e,t=Tr(t)),e=t),e}())===a&&(e=ui())===a&&(e=Aa,Io()!==a?(go(),(t=Za())!==a?(go(),So()!==a?(Ma=e,e=gr(t)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)),e}function ei(){var e,t,r,n;if(e=Aa,(t=ti())!==a){for(r=[],n=ri();n!==a;)r.push(n),n=ri();Ma=e,e=Cr(t,r)}else Aa=e,e=a;return e}function ti(){var e;return ye.test(t.charAt(Aa))?(e=t.charAt(Aa),Aa++):(e=a,0===_a&&Ja(ze)),e}function ri(){var e;return Te.test(t.charAt(Aa))?(e=t.charAt(Aa),Aa++):(e=a,0===_a&&Ja(qe)),e}function ni(){var e;return Ne.test(t.charAt(Aa))?(e=t.charAt(Aa),Aa++):(e=a,0===_a&&Ja(Ye)),e}function ai(){var e;return(e=ii())===a&&(e=function(){var e;return e=Aa,oi()!==a&&oi()!==a?(Ma=e,e=Ar()):(Aa=e,e=a),e}()),e}function ii(){var e;return Ne.test(t.charAt(Aa))?(e=t.charAt(Aa),Aa++):(e=a,0===_a&&Ja(Ye)),e}function oi(){var e;return Oe.test(t.charAt(Aa))?(e=t.charAt(Aa),Aa++):(e=a,0===_a&&Ja(Be)),e}function ui(){var e,r,n,i;return e=Aa,r=Aa,64===t.charCodeAt(Aa)?(n=y,Aa++):(n=a,0===_a&&Ja(Qe)),n!==a&&(i=ei())!==a?r=n=[n,i]:(Aa=r,r=a),r!==a&&(Ma=e,r=Mr(r)),r}function si(){var e;return(e=qi())===a&&(e=Yi())===a&&(e=Bi()),e}function li(){var e,r,n,i;return e=Aa,ro()!==a?(go(),45===t.charCodeAt(Aa)?(r=w,Aa++):(r=a,0===_a&&Ja($e)),r===a&&(43===t.charCodeAt(Aa)?(r=m,Aa++):(r=a,0===_a&&Ja(Je))),r!==a?(go(),(n=vi())!==a?(go(),(i=ci())!==a?(Ma=e,e=Br(r,n,i)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=Aa,ro()!==a?(go(),(r=vi())!==a?(go(),(n=ci())!==a?(Ma=e,e=Qr(r,n)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)),e}function ci(){var e,t,r;return e=Aa,(t=function(){var e,t,r;return e=Aa,(t=fi())!==a?(go(),Io()!==a?(go(),(r=pi())!==a?(go(),So()!==a?(Ma=e,e=Gr(t,r)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=Aa,(t=fi())!==a&&(Ma=e,t=Wr(t)),e=t),e}())!==a?(go(),to()!==a?(go(),(r=function(){var e,t,r,n;return e=Aa,(t=fi())!==a&&(Ma=e,t=Kr(t)),(e=t)===a&&(e=Aa,(t=co())!==a?(go(),Io()!==a?(go(),(r=pi())!==a?(go(),wo()!==a?(go(),(n=di())!==a?(go(),So()!==a?(Ma=e,e=Xr(r,n)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=Aa,(t=co())!==a?(go(),Io()!==a?(go(),(r=pi())!==a?(go(),So()!==a?(Ma=e,e=en(r)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=Aa,(t=co())!==a&&(Ma=e,t=tn()),e=t))),e}())!==a?(Ma=e,e=jr(t,r)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=function(){var e,t,r,n;return e=Aa,(t=fi())!==a?(go(),Io()!==a?(go(),(r=di())!==a?(go(),So()!==a?(Ma=e,e=rn(t,r)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=Aa,(t=fi())!==a&&(Ma=e,t=nn(t)),(e=t)===a&&(e=Aa,(t=co())!==a?(go(),Io()!==a?(go(),(r=pi())!==a?(go(),wo()!==a?(go(),(n=di())!==a?(go(),So()!==a?(Ma=e,e=an(r,n)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=Aa,(t=co())!==a?(go(),Io()!==a?(go(),(r=di())!==a?(go(),So()!==a?(Ma=e,e=on(r)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e===a&&(e=Aa,(t=co())!==a&&(Ma=e,t=un()),e=t)))),e}()),e}function fi(){var e,t;return e=Aa,(t=uo())!==a&&(Ma=e,t=sn()),(e=t)===a&&(e=Aa,(t=so())!==a&&(Ma=e,t=ln()),(e=t)===a&&(e=Aa,(t=lo())!==a&&(Ma=e,t=cn()),(e=t)===a&&(e=Aa,(t=oo())!==a&&(Ma=e,t=fn()),(e=t)===a&&(e=Aa,(t=no())!==a&&(Ma=e,t=dn()),e=t)))),e}function di(){var e,t;return e=Aa,(t=Ti())!==a&&(Ma=e,t=pn(t)),t}function pi(){var e,t;return e=Aa,(t=Ti())!==a&&(Ma=e,t=vn(t)),t}function vi(){var e;return(e=hi())===a&&(e=ui()),e}function hi(){var e,r,n,i,o;if(e=Aa,39===t.charCodeAt(Aa)?(r=T,Aa++):(r=a,0===_a&&Ja(je)),r===a&&(t.substr(Aa,2)===N?(r=N,Aa+=2):(r=a,0===_a&&Ja(Ge))),r!==a){for(n=[],i=Aa,t.substr(Aa,2)===O?(o=O,Aa+=2):(o=a,0===_a&&Ja(We)),o!==a&&(Ma=i,o=Sn()),(i=o)===a&&(Ce.test(t.charAt(Aa))?(i=t.charAt(Aa),Aa++):(i=a,0===_a&&Ja(Ke)));i!==a;)n.push(i),i=Aa,t.substr(Aa,2)===O?(o=O,Aa+=2):(o=a,0===_a&&Ja(We)),o!==a&&(Ma=i,o=Sn()),(i=o)===a&&(Ce.test(t.charAt(Aa))?(i=t.charAt(Aa),Aa++):(i=a,0===_a&&Ja(Ke)));39===t.charCodeAt(Aa)?(i=T,Aa++):(i=a,0===_a&&Ja(je)),i!==a?(Ma=e,e=gn(n)):(Aa=e,e=a)}else Aa=e,e=a;return e}function mi(){var e,t,r;return e=Aa,vo()!==a?(go(),(t=Za())!==a?(go(),ho()!==a?(go(),(r=Za())!==a?(Ma=e,e=Cn(t,r)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e}function wi(){var e,t,r;return e=Aa,vo()!==a?(go(),(t=Za())!==a?(go(),ho()!==a?(go(),(r=Za())!==a?(Ma=e,e=xn(t,r)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a)):(Aa=e,e=a),e}function Ii(){var e,t;return e=Aa,mo()!==a?(go(),(t=Za())!==a?(Ma=e,e=bn(t)):(Aa=e,e=a)):(Aa=e,e=a),e}function Si(){var e,r,n;return(e=Ti())===a&&(e=Aa,45===t.charCodeAt(Aa)?(r=w,Aa++):(r=a,0===_a&&Ja($e)),r===a&&(43===t.charCodeAt(Aa)?(r=m,Aa++):(r=a,0===_a&&Ja(Je))),r!==a&&(n=Ti())!==a?(Ma=e,e=_n(r,n)):(Aa=e,e=a)),e}function gi(){var e,r,n;return e=Aa,46===t.charCodeAt(Aa)?(r=C,Aa++):(r=a,0===_a&&Ja(Xe)),r!==a?((n=Ti())===a&&(n=null),Ma=e,e=Pn(n)):(Aa=e,e=a),e}function yi(){var e,t,r;return e=Aa,(t=Oi())!==a&&(r=Ti())!==a?(Ma=e,e=Ln(t,r)):(Aa=e,e=a),e}function Ti(){var e,t,r;if(e=Aa,t=[],(r=Ni())!==a)for(;r!==a;)t.push(r),r=Ni();else t=a;return t!==a&&(Ma=e,t=Rn(t)),t}function Ni(){var e;return xe.test(t.charAt(Aa))?(e=t.charAt(Aa),Aa++):(e=a,0===_a&&Ja(et)),e}function Oi(){var e,r,n;return e=Aa,be.test(t.charAt(Aa))?(r=t.charAt(Aa),Aa++):(r=a,0===_a&&Ja(tt)),r!==a?(Ae.test(t.charAt(Aa))?(n=t.charAt(Aa),Aa++):(n=a,0===_a&&Ja(rt)),n===a&&(n=null),Ma=e,e=Un(r,n)):(Aa=e,e=a),e}function Ci(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===x?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(nt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?e=r=[r,n]:(Aa=e,e=a)):(Aa=e,e=a),e}function xi(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===b?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(at)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?e=r=[r,n]:(Aa=e,e=a)):(Aa=e,e=a),e}function bi(){var e,r,n,i;return e=Aa,t.substr(Aa,5).toLowerCase()===A?(r=t.substr(Aa,5),Aa+=5):(r=a,0===_a&&Ja(it)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?e=r=[r,n]:(Aa=e,e=a)):(Aa=e,e=a),e}function Ai(){var e,r,n,i;return e=Aa,t.substr(Aa,2).toLowerCase()===M?(r=t.substr(Aa,2),Aa+=2):(r=a,0===_a&&Ja(ot)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Vn()):(Aa=e,e=a)):(Aa=e,e=a),e}function Mi(){var e,r,n,i;return e=Aa,t.substr(Aa,2).toLowerCase()===E?(r=t.substr(Aa,2),Aa+=2):(r=a,0===_a&&Ja(ut)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Jn()):(Aa=e,e=a)):(Aa=e,e=a),e}function Ei(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===F?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(st)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=$n()):(Aa=e,e=a)):(Aa=e,e=a),e}function Fi(){var e,r,n,i;return e=Aa,t.substr(Aa,6).toLowerCase()===D?(r=t.substr(Aa,6),Aa+=6):(r=a,0===_a&&Ja(lt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Hn()):(Aa=e,e=a)):(Aa=e,e=a),e}function Di(){var e,r,n,i;return e=Aa,t.substr(Aa,3).toLowerCase()===_?(r=t.substr(Aa,3),Aa+=3):(r=a,0===_a&&Ja(ct)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=kn()):(Aa=e,e=a)):(Aa=e,e=a),e}function _i(){var e,r,n,i;return e=Aa,t.substr(Aa,3).toLowerCase()===P?(r=t.substr(Aa,3),Aa+=3):(r=a,0===_a&&Ja(ft)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Zn()):(Aa=e,e=a)):(Aa=e,e=a),e}function Pi(){var e,r,n,i;return e=Aa,t.substr(Aa,2).toLowerCase()===L?(r=t.substr(Aa,2),Aa+=2):(r=a,0===_a&&Ja(dt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=zn()):(Aa=e,e=a)):(Aa=e,e=a),e}function Li(){var e,r,n,i;return e=Aa,t.substr(Aa,7).toLowerCase()===R?(r=t.substr(Aa,7),Aa+=7):(r=a,0===_a&&Ja(pt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=qn()):(Aa=e,e=a)):(Aa=e,e=a),e}function Ri(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===U?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(vt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Yn()):(Aa=e,e=a)):(Aa=e,e=a),e}function Ui(){var e,r,n,i;return e=Aa,t.substr(Aa,3).toLowerCase()===V?(r=t.substr(Aa,3),Aa+=3):(r=a,0===_a&&Ja(ht)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Bn()):(Aa=e,e=a)):(Aa=e,e=a),e}function Vi(){var e,r,n,i;return e=Aa,t.substr(Aa,9).toLowerCase()===J?(r=t.substr(Aa,9),Aa+=9):(r=a,0===_a&&Ja(mt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Qn()):(Aa=e,e=a)):(Aa=e,e=a),e}function Ji(){var e,r,n,i;return e=Aa,t.substr(Aa,7).toLowerCase()===$?(r=t.substr(Aa,7),Aa+=7):(r=a,0===_a&&Ja(wt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=jn()):(Aa=e,e=a)):(Aa=e,e=a),e}function $i(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===H?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(It)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Gn()):(Aa=e,e=a)):(Aa=e,e=a),e}function Hi(){var e,r,n,i;return e=Aa,t.substr(Aa,8).toLowerCase()===k?(r=t.substr(Aa,8),Aa+=8):(r=a,0===_a&&Ja(St)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Wn()):(Aa=e,e=a)):(Aa=e,e=a),e}function ki(){var e,r,n,i;return e=Aa,t.substr(Aa,9).toLowerCase()===Z?(r=t.substr(Aa,9),Aa+=9):(r=a,0===_a&&Ja(gt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Kn()):(Aa=e,e=a)):(Aa=e,e=a),e}function Zi(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===z?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(yt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Xn()):(Aa=e,e=a)):(Aa=e,e=a),e}function zi(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===q?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(Tt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=ea()):(Aa=e,e=a)):(Aa=e,e=a),e}function qi(){var e,r,n,i;return e=Aa,t.substr(Aa,7).toLowerCase()===Y?(r=t.substr(Aa,7),Aa+=7):(r=a,0===_a&&Ja(Nt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=ta()):(Aa=e,e=a)):(Aa=e,e=a),e}function Yi(){var e,r,n,i;return e=Aa,t.substr(Aa,8).toLowerCase()===B?(r=t.substr(Aa,8),Aa+=8):(r=a,0===_a&&Ja(Ot)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=ra()):(Aa=e,e=a)):(Aa=e,e=a),e}function Bi(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===Q?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(Ct)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=na()):(Aa=e,e=a)):(Aa=e,e=a),e}function Qi(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===j?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(xt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=aa()):(Aa=e,e=a)):(Aa=e,e=a),e}function ji(){var e,r,n,i;return e=Aa,t.substr(Aa,2).toLowerCase()===G?(r=t.substr(Aa,2),Aa+=2):(r=a,0===_a&&Ja(bt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=ia()):(Aa=e,e=a)):(Aa=e,e=a),e}function Gi(){var e,r,n,i;return e=Aa,t.substr(Aa,7).toLowerCase()===W?(r=t.substr(Aa,7),Aa+=7):(r=a,0===_a&&Ja(At)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=oa()):(Aa=e,e=a)):(Aa=e,e=a),e}function Wi(){var e,r,n,i;return e=Aa,t.substr(Aa,8).toLowerCase()===K?(r=t.substr(Aa,8),Aa+=8):(r=a,0===_a&&Ja(Mt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=ua()):(Aa=e,e=a)):(Aa=e,e=a),e}function Ki(){var e,r,n,i;return e=Aa,t.substr(Aa,5).toLowerCase()===X?(r=t.substr(Aa,5),Aa+=5):(r=a,0===_a&&Ja(Et)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=sa()):(Aa=e,e=a)):(Aa=e,e=a),e}function Xi(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===ee?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(Ft)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=la()):(Aa=e,e=a)):(Aa=e,e=a),e}function eo(){var e,r,n,i;return e=Aa,t.substr(Aa,7).toLowerCase()===te?(r=t.substr(Aa,7),Aa+=7):(r=a,0===_a&&Ja(Dt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=ca()):(Aa=e,e=a)):(Aa=e,e=a),e}function to(){var e,r,n,i;return e=Aa,t.substr(Aa,2).toLowerCase()===re?(r=t.substr(Aa,2),Aa+=2):(r=a,0===_a&&Ja(_t)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=fa()):(Aa=e,e=a)):(Aa=e,e=a),e}function ro(){var e,r,n,i;return e=Aa,t.substr(Aa,8).toLowerCase()===ne?(r=t.substr(Aa,8),Aa+=8):(r=a,0===_a&&Ja(Pt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=da()):(Aa=e,e=a)):(Aa=e,e=a),e}function no(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===ae?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(Lt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=pa()):(Aa=e,e=a)):(Aa=e,e=a),e}function ao(){var e,r,n,i;return e=Aa,t.substr(Aa,13).toLowerCase()===ie?(r=t.substr(Aa,13),Aa+=13):(r=a,0===_a&&Ja(Rt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=va()):(Aa=e,e=a)):(Aa=e,e=a),e}function io(){var e,r,n,i;return e=Aa,t.substr(Aa,15).toLowerCase()===oe?(r=t.substr(Aa,15),Aa+=15):(r=a,0===_a&&Ja(Ut)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=ha()):(Aa=e,e=a)):(Aa=e,e=a),e}function oo(){var e,r,n,i;return e=Aa,t.substr(Aa,5).toLowerCase()===ue?(r=t.substr(Aa,5),Aa+=5):(r=a,0===_a&&Ja(Vt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=ma()):(Aa=e,e=a)):(Aa=e,e=a),e}function uo(){var e,r,n,i;return e=Aa,t.substr(Aa,3).toLowerCase()===se?(r=t.substr(Aa,3),Aa+=3):(r=a,0===_a&&Ja(Jt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=wa()):(Aa=e,e=a)):(Aa=e,e=a),e}function so(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===le?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja($t)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Ia()):(Aa=e,e=a)):(Aa=e,e=a),e}function lo(){var e,r,n,i;return e=Aa,t.substr(Aa,6).toLowerCase()===ce?(r=t.substr(Aa,6),Aa+=6):(r=a,0===_a&&Ja(Ht)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Sa()):(Aa=e,e=a)):(Aa=e,e=a),e}function co(){var e,r,n,i;return e=Aa,t.substr(Aa,6).toLowerCase()===fe?(r=t.substr(Aa,6),Aa+=6):(r=a,0===_a&&Ja(kt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=ga()):(Aa=e,e=a)):(Aa=e,e=a),e}function fo(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===de?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(Zt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=ya()):(Aa=e,e=a)):(Aa=e,e=a),e}function po(){var e,r,n,i;return e=Aa,t.substr(Aa,3).toLowerCase()===pe?(r=t.substr(Aa,3),Aa+=3):(r=a,0===_a&&Ja(zt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Ta()):(Aa=e,e=a)):(Aa=e,e=a),e}function vo(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===ve?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(qt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Na()):(Aa=e,e=a)):(Aa=e,e=a),e}function ho(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===he?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(Yt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Oa()):(Aa=e,e=a)):(Aa=e,e=a),e}function mo(){var e,r,n,i;return e=Aa,t.substr(Aa,4).toLowerCase()===me?(r=t.substr(Aa,4),Aa+=4):(r=a,0===_a&&Ja(Bt)),r!==a?(n=Aa,_a++,i=ri(),_a--,i===a?n=void 0:(Aa=n,n=a),n!==a?(Ma=e,e=Ca()):(Aa=e,e=a)):(Aa=e,e=a),e}function wo(){var e;return 44===t.charCodeAt(Aa)?(e=we,Aa++):(e=a,0===_a&&Ja(Qt)),e}function Io(){var e;return 40===t.charCodeAt(Aa)?(e=Ie,Aa++):(e=a,0===_a&&Ja(jt)),e}function So(){var e;return 41===t.charCodeAt(Aa)?(e=Se,Aa++):(e=a,0===_a&&Ja(Gt)),e}function go(){var e,t;for(e=[],t=yo();t!==a;)e.push(t),t=yo();return e}function yo(){var e;return Me.test(t.charAt(Aa))?(e=t.charAt(Aa),Aa++):(e=a,0===_a&&Ja(Wt)),e}function To(){var e,r,n,i;if(e=Aa,(r=ei())!==a&&(Ma=e,r=xa(r)),(e=r)===a)if(e=Aa,96===t.charCodeAt(Aa)?(r=ge,Aa++):(r=a,0===_a&&Ja(Kt)),r!==a){if(n=[],Ee.test(t.charAt(Aa))?(i=t.charAt(Aa),Aa++):(i=a,0===_a&&Ja(Xt)),i!==a)for(;i!==a;)n.push(i),Ee.test(t.charAt(Aa))?(i=t.charAt(Aa),Aa++):(i=a,0===_a&&Ja(Xt));else n=a;n!==a?(96===t.charCodeAt(Aa)?(i=ge,Aa++):(i=a,0===_a&&Ja(Kt)),i!==a?(Ma=e,e=ba(n)):(Aa=e,e=a)):(Aa=e,e=a)}else Aa=e,e=a;return e}function No(e,t,r,n){var a={type:"binary-expression",operator:e,left:t,right:r};return void 0!==n&&(a.escape=n),a}function Oo(e,t){for(var r=e,n=0;n=")&&Y(e,t[1],"<=")}static notbetween(e,t,r){return null==e||null==t[0]||null==t[1]?null:Y(e,t[0],"<")||Y(e,t[1],">")}static ternaryNot(e){return pe(e)}static ternaryAnd(e,t){return ve(e,t)}static ternaryOr(e,t){return he(e,t)}}class ce{constructor(e,t,r="UTC"){this.fieldsIndex=t,this.timeZone=r,this.parameters={},this._hasDateFunctions=void 0,this.parseTree=ue.parse(e);const{isStandardized:n,isAggregate:a,referencedFieldNames:i}=this._extractExpressionInfo(t);this._referencedFieldNames=i,this.isStandardized=n,this.isAggregate=a}static convertValueToStorageFormat(e,t=null){if(null===t)return E(e)?e.getTime():F(e)?e.toMillis():P(e)?e.toStorageFormat():_(e)?e.toStorageString():D(e)?e.toStorageFormat():e;switch(t){case"date":return E(e)?e.getTime():F(e)?e.toMillis():P(e)?e.toMilliseconds():D(e)?e.toNumber():e;case"date-only":return E(e)?o.u.fromDateJS(e).toString():P(e)?o.u.fromSqlTimeStampOffset(e).toString():F(e)?o.u.fromDateTime(e).toString():e;case"time-only":return E(e)?s.n.fromDateJS(e).toStorageString():F(e)?s.n.fromDateTime(e).toStorageString():P(e)?s.n.fromSqlTimeStampOffset(e).toStorageString():_(e)?e.toStorageString():e;case"timestamp-offset":if(E(e))return u.H.fromJSDate(e).toStorageFormat();if(F(e))return u.H.fromDateTime(e).toStorageFormat();if(P(e))return e.toStorageFormat()}return e}static create(e,t,r="UTC"){return new ce(e,t,r)}get fieldNames(){return this._referencedFieldNames}testSet(e,t=ye){return!!this._evaluateNode(this.parseTree,null,t,e)}calculateValue(e,t=ye){const r=this._evaluateNode(this.parseTree,e,t,null);return r instanceof m?r.valueInMilliseconds()/864e5:r}calculateValueCompiled(e,t=ye){return null!=this.parseTree._compiledVersion?this.parseTree._compiledVersion(e,this.parameters,t,this.fieldsIndex,this.timeZone):(0,i.Z)("esri-csp-restrictions")?this.calculateValue(e,t):(this._compileMe(),this.parseTree._compiledVersion(e,this.parameters,t,this.fieldsIndex,this.timeZone))}testFeature(e,t=ye){return!!this._evaluateNode(this.parseTree,e,t,null)}testFeatureCompiled(e,t=ye){return null!=this.parseTree._compiledVersion?!!this.parseTree._compiledVersion(e,this.parameters,t,this.fieldsIndex,this.timeZone):(0,i.Z)("esri-csp-restrictions")?this.testFeature(e,t):(this._compileMe(),!!this.parseTree._compiledVersion(e,this.parameters,t,this.fieldsIndex,this.timeZone))}get hasDateFunctions(){return null!=this._hasDateFunctions||(this._hasDateFunctions=!1,this._visitAll(this.parseTree,(e=>{"current-time"===e.type?this._hasDateFunctions=!0:"function"===e.type&&(this._hasDateFunctions=this._hasDateFunctions||se.has(e.name.toLowerCase()))}))),this._hasDateFunctions}getFunctions(){const e=new Set;return this._visitAll(this.parseTree,(t=>{"function"===t.type&&e.add(t.name.toLowerCase())})),Array.from(e)}getExpressions(){const e=new Map;return this._visitAll(this.parseTree,(t=>{if("function"===t.type){const r=t.name.toLowerCase(),n=t.args.value[0];if("column-reference"===n.type){const t=n.column,a=`${r}-${t}`;e.has(a)||e.set(a,{aggregateType:r,field:t})}}})),[...e.values()]}getVariables(){const e=new Set;return this._visitAll(this.parseTree,(t=>{"parameter"===t.type&&e.add(t.value.toLowerCase())})),Array.from(e)}_compileMe(){const e="return this.convertInterval("+this.evaluateNodeToJavaScript(this.parseTree)+")";this.parseTree._compiledVersion=new Function("feature","lookups","attributeAdapter","fieldsIndex","timeZone",e).bind(le)}_extractExpressionInfo(e){const t=[],r=new Set;let n=!0,a=!1;return this._visitAll(this.parseTree,(i=>{switch(i.type){case"column-reference":{const n=e?.get(i.column);let a,o;n?a=o=n.name??"":(o=i.column,a=o.toLowerCase()),r.has(a)||(r.add(a),t.push(o)),i.column=o;break}case"function":{const{name:e,args:t}=i,r=t.value.length;n&&(n=function(e,t){const r=ee[e.toLowerCase()];return null!=r&&t>=r.minParams&&t<=r.maxParams}(e,r)),!1===a&&(a=c(e,r));break}}})),{referencedFieldNames:Array.from(t),isStandardized:n,isAggregate:a}}_visitAll(e,t){if(null!=e)switch(t(e),e.type){case"when-clause":this._visitAll(e.operand,t),this._visitAll(e.value,t);break;case"case-expression":for(const r of e.clauses)this._visitAll(r,t);"simple"===e.format&&this._visitAll(e.operand,t),null!==e.else&&this._visitAll(e.else,t);break;case"expression-list":for(const r of e.value)this._visitAll(r,t);break;case"unary-expression":this._visitAll(e.expr,t);break;case"binary-expression":this._visitAll(e.left,t),this._visitAll(e.right,t);break;case"function":this._visitAll(e.args,t)}}evaluateNodeToJavaScript(e){switch(e.type){case"interval":return"this.makeSqlInterval("+this.evaluateNodeToJavaScript(e.value)+", "+JSON.stringify(e.qualifier)+","+JSON.stringify(e.op)+")";case"case-expression":{let t="";if("simple"===e.format){const r=this.evaluateNodeToJavaScript(e.operand);t="( ";for(let n=0;n=",this.timeZone)&&Y(n,a[1],"<=",this.timeZone)}case"NOTBETWEEN":{const n=this._evaluateNode(e.left,t,r,i),a=this._evaluateNode(e.right,t,r,i);return null==n||null==a[0]||null==a[1]?null:Y(n,a[0],"<",this.timeZone)||Y(n,a[1],">",this.timeZone)}case"LIKE":return Se(this._evaluateNode(e.left,t,r,i),this._evaluateNode(e.right,t,r,i),e.escape);case"NOT LIKE":return pe(Se(this._evaluateNode(e.left,t,r,i),this._evaluateNode(e.right,t,r,i),e.escape));case"<>":case"<":case">":case">=":case"<=":case"=":return Y(this._evaluateNode(e.left,t,r,i),this._evaluateNode(e.right,t,r,i),e.operator,this.timeZone);case"-":case"+":case"*":case"/":case"||":return te(e.operator,this._evaluateNode(e.left,t,r,i),this._evaluateNode(e.right,t,r,i),this.timeZone)}case"null":case"boolean":case"string":case"number":return e.value;case"date":return e.parsedValue??=U(e.value,"unknown"),e.parsedValue;case"timestamp":return e.parsedValue??=R(e.value,"unknown"),e.parsedValue;case"time":return L(e.value);case"current-time":return"date"===e.mode?o.u.fromNow(this.timeZone):x(new Date,this.timeZone);case"column-reference":return ge(t,e.column,this.fieldsIndex,r);case"data-type":return e.value;case"function":{if(this.isAggregate&&c(e.name,e.args.value.length)){const t=[];for(const n of e.args?.value||[]){const e=[];for(const t of i||[])e.push(this._evaluateNode(n,t,r,null));t.push(e)}return function(e,t){const r=f[e.toLowerCase()];if(null==r)throw new a.eS(a.f.FunctionNotRecognized);if(t.lengthr.maxParams)throw new a.eS(a.f.InvalidParameterCount,{name:e.toUpperCase()});return r.evaluate(t)}(e.name,t)}const n=this._evaluateNode(e.args,t,r,i);return G(e.name,n,this.timeZone)}}throw new a.eS(a.f.UnsupportedSyntax,{node:e.type})}}function fe(e){return!0===e}function de(e){return Array.isArray(e)?e:[e]}function pe(e){return null!==e?!0!==e:null}function ve(e,t){return null!=e&&null!=t?!0===e&&!0===t:!1!==e&&!1!==t&&null}function he(e,t){return null!=e&&null!=t?!0===e||!0===t:!0===e||!0===t||null}function me(e,t){if(null==e)return null;let r=!1;for(const n of t)if(null==n)r=null;else if(e===n){r=!0;break}return r}const we="-[]/{}()*+?.\\^$|";var Ie;function Se(e,t,r){return null==e?null:function(e,t){const r=t;let n="",a=Ie.Normal;for(let t=0;t(function(e){return e&&"object"==typeof e.attributes}(e)?e.attributes:e)[t]}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3711.e3337a3b4f8ee1783a9a.js b/docs/sentinel1-explorer/3711.e3337a3b4f8ee1783a9a.js new file mode 100644 index 00000000..c0ed09c0 --- /dev/null +++ b/docs/sentinel1-explorer/3711.e3337a3b4f8ee1783a9a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3711],{50240:function(e,t,i){i.d(t,{C:function(){return s}});var a=i(3027);class s extends a.E{_afterNew(){super._afterNewApplyThemes(),this._dirty.colors=!1}_beforeChanged(){this.isDirty("colors")&&this.reset()}generateColors(){this.setPrivate("currentPass",this.getPrivate("currentPass",0)+1);const e=this.getPrivate("currentPass"),t=this.get("colors",[this.get("baseColor",a.C.fromHex(16711680))]);this.getPrivate("numColors")||this.setPrivate("numColors",t.length);const i=this.getPrivate("numColors"),s=this.get("passOptions"),r=this.get("reuse");for(let n=0;n1;)r-=1;let l=i.s+(s.saturation||0)*e;l>1&&(l=1),l<0&&(l=0);let o=i.l+(s.lightness||0)*e;for(;o>1;)o-=1;t.push(a.C.fromHSL(r,l,o))}}getIndex(e){const t=this.get("colors",[]),i=this.get("saturation");return e>=t.length?(this.generateColors(),this.getIndex(e)):null!=i?a.C.saturate(t[e],i):t[e]}next(){let e=this.getPrivate("currentStep",this.get("startIndex",0));return this.setPrivate("currentStep",e+this.get("step",1)),this.getIndex(e)}reset(){this.setPrivate("currentStep",this.get("startIndex",0)),this.setPrivate("currentPass",0)}}Object.defineProperty(s,"className",{enumerable:!0,configurable:!0,writable:!0,value:"ColorSet"}),Object.defineProperty(s,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:a.E.classNames.concat([s.className])})},97876:function(e,t,i){i.d(t,{D:function(){return r},s:function(){return s}});var a=i(3027);function s(e,t,i,a){e.set(t,i.get(a)),i.on(a,(i=>{e.set(t,i)}))}class r extends a.T{setupDefaultRules(){super.setupDefaultRules();const e=this._root.language,t=this._root.interfaceColors,i=this._root.horizontalLayout,r=this._root.verticalLayout,n=this.rule.bind(this);n("InterfaceColors").setAll({stroke:a.C.fromHex(15066597),fill:a.C.fromHex(15987699),primaryButton:a.C.fromHex(6788316),primaryButtonHover:a.C.fromHex(6779356),primaryButtonDown:a.C.fromHex(6872182),primaryButtonActive:a.C.fromHex(6872182),primaryButtonText:a.C.fromHex(16777215),primaryButtonStroke:a.C.fromHex(16777215),secondaryButton:a.C.fromHex(14277081),secondaryButtonHover:a.C.fromHex(10724259),secondaryButtonDown:a.C.fromHex(9276813),secondaryButtonActive:a.C.fromHex(15132390),secondaryButtonText:a.C.fromHex(0),secondaryButtonStroke:a.C.fromHex(16777215),grid:a.C.fromHex(0),background:a.C.fromHex(16777215),alternativeBackground:a.C.fromHex(0),text:a.C.fromHex(0),alternativeText:a.C.fromHex(16777215),disabled:a.C.fromHex(11382189),positive:a.C.fromHex(5288704),negative:a.C.fromHex(11730944)});{const e=n("ColorSet");e.setAll({passOptions:{hue:.05,saturation:0,lightness:0},colors:[a.C.fromHex(6797276)],step:1,reuse:!1,startIndex:0}),e.setPrivate("currentStep",0),e.setPrivate("currentPass",0)}n("Entity").setAll({stateAnimationDuration:0,stateAnimationEasing:(0,a.o)(a.c)}),n("Component").setAll({interpolationDuration:0,interpolationEasing:(0,a.o)(a.c)}),n("Sprite").setAll({visible:!0,scale:1,opacity:1,rotation:0,position:"relative",tooltipX:a.p,tooltipY:a.p,tooltipPosition:"fixed",isMeasured:!0}),n("Sprite").states.create("default",{visible:!0,opacity:1}),n("Container").setAll({interactiveChildren:!0,setStateOnChildren:!1}),n("Graphics").setAll({strokeWidth:1}),n("Chart").setAll({width:a.a,height:a.a,interactiveChildren:!1}),n("ZoomableContainer").setAll({width:a.a,height:a.a,wheelable:!0,pinchZoom:!0,maxZoomLevel:32,minZoomLevel:1,zoomStep:2,animationEasing:(0,a.o)(a.c),animationDuration:600}),n("Sprite",["horizontal","center"]).setAll({centerX:a.p,x:a.p}),n("Sprite",["vertical","center"]).setAll({centerY:a.p,y:a.p}),n("Container",["horizontal","layout"]).setAll({layout:i}),n("Container",["vertical","layout"]).setAll({layout:r}),n("Pattern").setAll({repetition:"repeat",width:50,height:50,rotation:0,fillOpacity:1}),n("LinePattern").setAll({gap:6,colorOpacity:1,width:49,height:49}),n("RectanglePattern").setAll({gap:6,checkered:!1,centered:!0,maxWidth:5,maxHeight:5,width:48,height:48,strokeWidth:0}),n("CirclePattern").setAll({gap:5,checkered:!1,centered:!1,radius:3,strokeWidth:0,width:45,height:45}),n("GrainPattern").setAll({width:200,height:200,colors:[a.C.fromHex(0)],size:1,horizontalGap:0,verticalGap:0,density:1,minOpacity:0,maxOpacity:.2}),n("LinearGradient").setAll({rotation:90}),n("Legend").setAll({fillField:"fill",strokeField:"stroke",nameField:"name",layout:a.G.new(this._root,{}),layer:30,clickTarget:"itemContainer"}),n("Container",["legend","item","itemcontainer"]).setAll({paddingLeft:5,paddingRight:5,paddingBottom:5,paddingTop:5,layout:i,setStateOnChildren:!0,interactiveChildren:!1,ariaChecked:!0,focusable:!0,ariaLabel:e.translate("Press ENTER to toggle"),role:"checkbox"});{const e=n("Rectangle",["legend","item","background"]);e.setAll({fillOpacity:0}),s(e,"fill",t,"background")}n("Container",["legend","marker"]).setAll({setStateOnChildren:!0,centerY:a.p,paddingLeft:0,paddingRight:0,paddingBottom:0,paddingTop:0,width:18,height:18}),n("RoundedRectangle",["legend","marker","rectangle"]).setAll({width:a.a,height:a.a,cornerRadiusBL:3,cornerRadiusTL:3,cornerRadiusBR:3,cornerRadiusTR:3});{const e=n("RoundedRectangle",["legend","marker","rectangle"]).states.create("disabled",{});s(e,"fill",t,"disabled"),s(e,"stroke",t,"disabled")}n("Label",["legend","label"]).setAll({centerY:a.p,marginLeft:5,paddingRight:0,paddingLeft:0,paddingTop:0,paddingBottom:0,populateText:!0}),s(n("Label",["legend","label"]).states.create("disabled",{}),"fill",t,"disabled"),n("Label",["legend","value","label"]).setAll({centerY:a.p,marginLeft:5,paddingRight:0,paddingLeft:0,paddingTop:0,paddingBottom:0,width:50,centerX:a.a,populateText:!0}),s(n("Label",["legend","value","label"]).states.create("disabled",{}),"fill",t,"disabled"),n("HeatLegend").setAll({stepCount:1}),n("RoundedRectangle",["heatlegend","marker"]).setAll({cornerRadiusTR:0,cornerRadiusBR:0,cornerRadiusTL:0,cornerRadiusBL:0}),n("RoundedRectangle",["vertical","heatlegend","marker"]).setAll({height:a.a,width:15}),n("RoundedRectangle",["horizontal","heatlegend","marker"]).setAll({width:a.a,height:15}),n("HeatLegend",["vertical"]).setAll({height:a.a}),n("HeatLegend",["horizontal"]).setAll({width:a.a}),n("Label",["heatlegend","start"]).setAll({paddingLeft:5,paddingRight:5,paddingTop:5,paddingBottom:5}),n("Label",["heatlegend","end"]).setAll({paddingLeft:5,paddingRight:5,paddingTop:5,paddingBottom:5});{const e=n("Label");e.setAll({paddingTop:8,paddingBottom:8,paddingLeft:10,paddingRight:10,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',fontSize:"1em",populateText:!1}),s(e,"fill",t,"text")}n("RadialLabel").setAll({textType:"regular",centerY:a.p,centerX:a.p,inside:!1,radius:0,baseRadius:a.a,orientation:"auto",textAlign:"center"}),n("RoundedRectangle").setAll({cornerRadiusTL:8,cornerRadiusBL:8,cornerRadiusTR:8,cornerRadiusBR:8}),n("PointedRectangle").setAll({pointerBaseWidth:15,pointerLength:10,cornerRadius:8}),n("Slice").setAll({shiftRadius:0,dRadius:0,dInnerRadius:0});{const e=n("Tick");e.setAll({strokeOpacity:.15,isMeasured:!1,length:4.5,position:"absolute",crisp:!0}),s(e,"stroke",t,"grid")}n("Bullet").setAll({locationX:.5,locationY:.5}),n("Tooltip").setAll({position:"absolute",getFillFromSprite:!0,getStrokeFromSprite:!1,autoTextColor:!0,paddingTop:9,paddingBottom:8,paddingLeft:10,paddingRight:10,marginBottom:5,pointerOrientation:"vertical",centerX:a.p,centerY:a.p,animationEasing:(0,a.o)(a.c),exportable:!1}),n("Polygon").setAll({animationEasing:(0,a.o)(a.c)}),n("PointedRectangle",["tooltip","background"]).setAll({strokeOpacity:.9,cornerRadius:4,pointerLength:4,pointerBaseWidth:8,fillOpacity:.9,stroke:a.C.fromHex(16777215)});{const e=n("Label",["tooltip"]);e.setAll({role:"tooltip",populateText:!0,paddingRight:0,paddingTop:0,paddingLeft:0,paddingBottom:0}),s(e,"fill",t,"alternativeText")}n("Button").setAll({paddingTop:8,paddingBottom:8,paddingLeft:10,paddingRight:10,interactive:!0,layout:i,interactiveChildren:!1,setStateOnChildren:!0,focusable:!0}),n("Button").states.create("hover",{}),n("Button").states.create("down",{stateAnimationDuration:0}),n("Button").states.create("active",{});{const e=n("RoundedRectangle",["button","background"]);s(e,"fill",t,"primaryButton"),s(e,"stroke",t,"primaryButtonStroke")}s(n("RoundedRectangle",["button","background"]).states.create("hover",{}),"fill",t,"primaryButtonHover"),s(n("RoundedRectangle",["button","background"]).states.create("down",{stateAnimationDuration:0}),"fill",t,"primaryButtonDown"),s(n("RoundedRectangle",["button","background"]).states.create("active",{}),"fill",t,"primaryButtonActive"),s(n("Graphics",["button","icon"]),"stroke",t,"primaryButtonText"),s(n("Label",["button"]),"fill",t,"primaryButtonText"),n("Button",["zoom"]).setAll({paddingTop:18,paddingBottom:18,paddingLeft:12,paddingRight:12,centerX:46,centerY:-10,y:0,x:a.a,role:"button",ariaLabel:e.translate("Zoom Out"),layer:30});{const e=n("RoundedRectangle",["background","button","zoom"]);e.setAll({cornerRadiusBL:40,cornerRadiusBR:40,cornerRadiusTL:40,cornerRadiusTR:40}),s(e,"fill",t,"primaryButton")}s(n("RoundedRectangle",["background","button","zoom"]).states.create("hover",{}),"fill",t,"primaryButtonHover"),s(n("RoundedRectangle",["background","button","zoom"]).states.create("down",{stateAnimationDuration:0}),"fill",t,"primaryButtonDown");{const e=n("Graphics",["icon","button","zoom"]);e.setAll({crisp:!0,strokeOpacity:.7,draw:e=>{e.moveTo(0,0),e.lineTo(12,0)}}),s(e,"stroke",t,"primaryButtonText")}n("Button",["resize"]).setAll({paddingTop:9,paddingBottom:9,paddingLeft:13,paddingRight:13,draggable:!0,centerX:a.p,centerY:a.p,position:"absolute",role:"slider",ariaValueMin:"0",ariaValueMax:"100",ariaLabel:e.translate("Use up and down arrows to move selection")});{const e=n("RoundedRectangle",["background","resize","button"]);e.setAll({cornerRadiusBL:40,cornerRadiusBR:40,cornerRadiusTL:40,cornerRadiusTR:40}),s(e,"fill",t,"secondaryButton"),s(e,"stroke",t,"secondaryButtonStroke")}s(n("RoundedRectangle",["background","resize","button"]).states.create("hover",{}),"fill",t,"secondaryButtonHover"),s(n("RoundedRectangle",["background","resize","button"]).states.create("down",{stateAnimationDuration:0}),"fill",t,"secondaryButtonDown");{const e=n("Graphics",["resize","button","icon"]);e.setAll({interactive:!1,crisp:!0,strokeOpacity:.5,draw:e=>{e.moveTo(0,.5),e.lineTo(0,12.5),e.moveTo(4,.5),e.lineTo(4,12.5)}}),s(e,"stroke",t,"secondaryButtonText")}n("Button",["resize","vertical"]).setAll({rotation:90,cursorOverStyle:"ns-resize"}),n("Button",["resize","horizontal"]).setAll({cursorOverStyle:"ew-resize"}),n("Button",["play"]).setAll({paddingTop:13,paddingBottom:13,paddingLeft:14,paddingRight:14,ariaLabel:e.translate("Play"),toggleKey:"active"});{const e=n("RoundedRectangle",["play","background"]);e.setAll({strokeOpacity:.5,cornerRadiusBL:100,cornerRadiusBR:100,cornerRadiusTL:100,cornerRadiusTR:100}),s(e,"fill",t,"primaryButton")}{const e=n("Graphics",["play","icon"]);e.setAll({stateAnimationDuration:0,dx:1,draw:e=>{e.moveTo(0,-5),e.lineTo(8,0),e.lineTo(0,5),e.lineTo(0,-5)}}),s(e,"fill",t,"primaryButtonText")}n("Graphics",["play","icon"]).states.create("default",{stateAnimationDuration:0}),n("Graphics",["play","icon"]).states.create("active",{stateAnimationDuration:0,draw:e=>{e.moveTo(-4,-5),e.lineTo(-1,-5),e.lineTo(-1,5),e.lineTo(-4,5),e.lineTo(-4,-5),e.moveTo(4,-5),e.lineTo(1,-5),e.lineTo(1,5),e.lineTo(4,5),e.lineTo(4,-5)}}),n("Button",["switch"]).setAll({paddingTop:4,paddingBottom:4,paddingLeft:4,paddingRight:4,ariaLabel:e.translate("Press ENTER to toggle"),toggleKey:"active",width:40,height:24,layout:null});{const e=n("RoundedRectangle",["switch","background"]);e.setAll({strokeOpacity:.5,cornerRadiusBL:100,cornerRadiusBR:100,cornerRadiusTL:100,cornerRadiusTR:100}),s(e,"fill",t,"primaryButton")}{const e=n("Circle",["switch","icon"]);e.setAll({radius:8,centerY:0,centerX:0,dx:0}),s(e,"fill",t,"primaryButtonText")}n("Graphics",["switch","icon"]).states.create("active",{dx:16}),n("Scrollbar").setAll({start:0,end:1,layer:30,animationEasing:(0,a.o)(a.c)}),n("Scrollbar",["vertical"]).setAll({marginRight:13,marginLeft:13,minWidth:12,height:a.a}),n("Scrollbar",["horizontal"]).setAll({marginTop:13,marginBottom:13,minHeight:12,width:a.a}),this.rule("Button",["scrollbar"]).setAll({exportable:!1});{const e=n("RoundedRectangle",["scrollbar","main","background"]);e.setAll({cornerRadiusTL:8,cornerRadiusBL:8,cornerRadiusTR:8,cornerRadiusBR:8,fillOpacity:.8}),s(e,"fill",t,"fill")}{const e=n("RoundedRectangle",["scrollbar","thumb"]);e.setAll({role:"slider",ariaLive:"polite",position:"absolute",draggable:!0}),s(e,"fill",t,"secondaryButton")}s(n("RoundedRectangle",["scrollbar","thumb"]).states.create("hover",{}),"fill",t,"secondaryButtonHover"),s(n("RoundedRectangle",["scrollbar","thumb"]).states.create("down",{stateAnimationDuration:0}),"fill",t,"secondaryButtonDown"),n("RoundedRectangle",["scrollbar","thumb","vertical"]).setAll({x:a.p,width:a.a,centerX:a.p,ariaLabel:e.translate("Use up and down arrows to move selection")}),n("RoundedRectangle",["scrollbar","thumb","horizontal"]).setAll({y:a.p,centerY:a.p,height:a.a,ariaLabel:e.translate("Use left and right arrows to move selection")});{const e=n("PointedRectangle",["axis","tooltip","background"]);e.setAll({cornerRadius:0}),s(e,"fill",t,"alternativeBackground")}n("Label",["axis","tooltip"]).setAll({role:void 0}),n("Label",["axis","tooltip","y"]).setAll({textAlign:"right"}),n("Label",["axis","tooltip","y","opposite"]).setAll({textAlign:"left"}),n("Label",["axis","tooltip","x"]).setAll({textAlign:"center"}),n("Tooltip",["categoryaxis"]).setAll({labelText:"{category}"}),n("Star").setAll({spikes:5,innerRadius:5,radius:10}),n("Tooltip",["stock"]).setAll({paddingTop:6,paddingBottom:5,paddingLeft:7,paddingRight:7}),n("PointedRectangle",["tooltip","stock","axis"]).setAll({pointerLength:0,pointerBaseWidth:0,cornerRadius:3}),n("Label",["tooltip","stock"]).setAll({fontSize:"0.8em"}),n("SpriteResizer").setAll({rotationStep:10}),n("Container",["resizer","grip"]).states.create("hover",{});{const e=n("RoundedRectangle",["resizer","grip"]);e.setAll({strokeOpacity:.7,strokeWidth:1,fillOpacity:1,width:12,height:12}),s(e,"fill",t,"background"),s(e,"stroke",t,"alternativeBackground")}{const e=n("RoundedRectangle",["resizer","grip","outline"]);e.setAll({strokeOpacity:0,fillOpacity:0,width:20,height:20}),e.states.create("hover",{fillOpacity:.3}),s(e,"fill",t,"alternativeBackground")}n("RoundedRectangle",["resizer","grip","left"]).setAll({cornerRadiusBL:0,cornerRadiusBR:0,cornerRadiusTL:0,cornerRadiusTR:0}),n("RoundedRectangle",["resizer","grip","right"]).setAll({cornerRadiusBL:0,cornerRadiusBR:0,cornerRadiusTL:0,cornerRadiusTR:0});{const e=n("Rectangle",["resizer","rectangle"]);e.setAll({strokeDasharray:[2,2],strokeOpacity:.5,strokeWidth:1}),s(e,"stroke",t,"alternativeBackground")}n("Graphics",["button","plus","icon"]).setAll({x:a.p,y:a.p,draw:e=>{e.moveTo(-4,0),e.lineTo(4,0),e.moveTo(0,-4),e.lineTo(0,4)}}),n("Graphics",["button","minus","icon"]).setAll({x:a.p,y:a.p,draw:e=>{e.moveTo(-4,0),e.lineTo(4,0)}}),n("Graphics",["button","home","icon"]).setAll({x:a.p,y:a.p,svgPath:"M 8 -1 L 6 -1 L 6 7 L 2 7 L 2 1 L -2 1 L -2 7 L -6 7 L -6 -1 L -8 -1 L 0 -9 L 8 -1 Z M 8 -1"}),n("Button",["zoomtools"]).setAll({marginTop:1,marginBottom:2}),n("ZoomTools").setAll({x:a.a,centerX:a.a,y:a.a,centerY:a.a,paddingRight:10,paddingBottom:10})}}},97722:function(e,t,i){i.d(t,{C:function(){return l},D:function(){return n},S:function(){return k},T:function(){return C},a:function(){return u},c:function(){return m},r:function(){return h},w:function(){return R}});var a=i(36663),s=i(3027);class r extends s.F{constructor(){super(...arguments),Object.defineProperty(this,"processor",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}incrementRef(){}decrementRef(){}_onPush(e){this.processor&&this.processor.processRow(e),super._onPush(e)}_onInsertIndex(e,t){this.processor&&this.processor.processRow(t),super._onInsertIndex(e,t)}_onSetIndex(e,t,i){this.processor&&this.processor.processRow(i),super._onSetIndex(e,t,i)}}class n extends s.S{constructor(e,t,i){super(i),Object.defineProperty(this,"component",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dataContext",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"bullets",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"open",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"close",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.dataContext=t,this.component=e,this._settings.visible=!0,this._checkDirty()}markDirty(){this.component.markDirtyValues(this)}_startAnimation(){this.component._root._addAnimation(this)}_animationTime(){return this.component._root.animationTime}_dispose(){this.component&&this.component.disposeDataItem(this),super._dispose()}show(e){this.setRaw("visible",!0),this.component&&this.component.showDataItem(this,e)}hide(e){this.setRaw("visible",!1),this.component&&this.component.hideDataItem(this,e)}isHidden(){return!this.get("visible")}}class l extends s.g{constructor(){super(...arguments),Object.defineProperty(this,"_data",{enumerable:!0,configurable:!0,writable:!0,value:new r}),Object.defineProperty(this,"_dataItems",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_mainDataItems",{enumerable:!0,configurable:!0,writable:!0,value:this._dataItems}),Object.defineProperty(this,"valueFields",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"fields",{enumerable:!0,configurable:!0,writable:!0,value:["id"]}),Object.defineProperty(this,"_valueFields",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_valueFieldsF",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_fields",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_fieldsF",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_valuesDirty",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_dataChanged",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_dataGrouped",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"inited",{enumerable:!0,configurable:!0,writable:!0,value:!1})}set data(e){e.incrementRef(),this._data.decrementRef(),this._data=e}get data(){return this._data}_dispose(){super._dispose(),this._data.decrementRef()}_onDataClear(){}_afterNew(){super._afterNew(),this._data.incrementRef(),this._updateFields(),this._disposers.push(this.data.events.onAll((e=>{const t=this._mainDataItems;if(this.markDirtyValues(),this._markDirtyGroup(),this._dataChanged=!0,"clear"===e.type)(0,s.i)(t,(e=>{e.dispose()})),t.length=0,this._onDataClear();else if("push"===e.type){const i=new n(this,e.newValue,this._makeDataItem(e.newValue));t.push(i),this.processDataItem(i)}else if("setIndex"===e.type){const i=t[e.index],a=this._makeDataItem(e.newValue);i.bullets&&0==i.bullets.length&&(i.bullets=void 0),(0,s.H)(a).forEach((e=>{i.animate({key:e,to:a[e],duration:this.get("interpolationDuration",0),easing:this.get("interpolationEasing")})})),i.dataContext=e.newValue}else if("insertIndex"===e.type){const i=new n(this,e.newValue,this._makeDataItem(e.newValue));t.splice(e.index,0,i),this.processDataItem(i)}else if("removeIndex"===e.type)t[e.index].dispose(),t.splice(e.index,1);else{if("moveIndex"!==e.type)throw new Error("Unknown IStreamEvent type");{const i=t[e.oldIndex];t.splice(e.oldIndex,1),t.splice(e.newIndex,0,i)}}this._afterDataChange()})))}_updateFields(){this.valueFields&&(this._valueFields=[],this._valueFieldsF={},(0,s.i)(this.valueFields,(e=>{this.get(e+"Field")&&(this._valueFields.push(e),this._valueFieldsF[e]={fieldKey:e+"Field",workingKey:e+"Working"})}))),this.fields&&(this._fields=[],this._fieldsF={},(0,s.i)(this.fields,(e=>{this.get(e+"Field")&&(this._fields.push(e),this._fieldsF[e]=e+"Field")})))}get dataItems(){return this._dataItems}processDataItem(e){}_makeDataItem(e){const t={};return this._valueFields&&(0,s.i)(this._valueFields,(i=>{const a=this.get(this._valueFieldsF[i].fieldKey);t[i]=e[a],t[this._valueFieldsF[i].workingKey]=t[i]})),this._fields&&(0,s.i)(this._fields,(i=>{const a=this.get(this._fieldsF[i]);t[i]=e[a]})),t}makeDataItem(e){let t=new n(this,void 0,e);return this.processDataItem(t),t}pushDataItem(e){const t=this.makeDataItem(e);return this._mainDataItems.push(t),t}disposeDataItem(e){}showDataItem(e,t){return(0,a.b)(this,void 0,void 0,(function*(){e.set("visible",!0)}))}hideDataItem(e,t){return(0,a.b)(this,void 0,void 0,(function*(){e.set("visible",!1)}))}_clearDirty(){super._clearDirty(),this._valuesDirty=!1}_afterDataChange(){}_afterChanged(){if(super._afterChanged(),this._dataChanged){const e="datavalidated";this.events.isEnabled(e)&&this.events.dispatch(e,{type:e,target:this}),this._dataChanged=!1}this.inited=!0}markDirtyValues(e){this.markDirty(),this._valuesDirty=!0}_markDirtyGroup(){this._dataGrouped=!1}markDirtySize(){this._sizeDirty=!0,this.markDirty()}}Object.defineProperty(l,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Component"}),Object.defineProperty(l,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.g.classNames.concat([l.className])});let o={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:2629742400,year:31536e6};function d(e,t){return null==t&&(t=1),o[e]*t}function h(e,t,i,a,r,n,l){if(!l||r){let l=0;switch(r||"millisecond"==t||(l=e.getTimezoneOffset(),e.setUTCMinutes(e.getUTCMinutes()-l)),t){case"day":let t=e.getUTCDate();if(i>1){if(n){n=h(n,"day",1);let t=e.getTime()-n.getTime(),a=Math.floor(t/d("day")/i),s=d("day",a*i);e.setTime(n.getTime()+s-l*d("minute"))}}else e.setUTCDate(t);e.setUTCHours(0,0,0,0);break;case"second":let r=e.getUTCSeconds();i>1&&(r=Math.floor(r/i)*i),e.setUTCSeconds(r,0);break;case"millisecond":if(1==i)return e;let o=e.getUTCMilliseconds();o=Math.floor(o/i)*i,e.setUTCMilliseconds(o);break;case"hour":let u=e.getUTCHours();i>1&&(u=Math.floor(u/i)*i),e.setUTCHours(u,0,0,0);break;case"minute":let c=e.getUTCMinutes();i>1&&(c=Math.floor(c/i)*i),e.setUTCMinutes(c,0,0);break;case"month":let p=e.getUTCMonth();i>1&&(p=Math.floor(p/i)*i),e.setUTCMonth(p,1),e.setUTCHours(0,0,0,0);break;case"year":let g=e.getUTCFullYear();i>1&&(g=Math.floor(g/i)*i),e.setUTCFullYear(g,0,1),e.setUTCHours(0,0,0,0);break;case"week":let m=e.getUTCDate(),f=e.getUTCDay();(0,s.k)(a)||(a=1),m=f>=a?m-f+a:m-(7+f)+a,e.setUTCDate(m),e.setUTCHours(0,0,0,0)}if(!r&&"millisecond"!=t&&(e.setUTCMinutes(e.getUTCMinutes()+l),"day"==t||"week"==t||"month"==t||"year"==t)){let t=e.getTimezoneOffset();if(t!=l){let i=t-l;e.setUTCMinutes(e.getUTCMinutes()+i)}}return e}{if(isNaN(e.getTime()))return e;let o=l.offsetUTC(e),u=e.getTimezoneOffset(),c=l.parseDate(e),p=c.year,g=c.month,m=c.day,f=c.hour,b=c.minute,y=c.second,v=c.millisecond,_=c.weekday,w=o-u;switch(t){case"day":if(i>1&&n){n=h(n,"day",1,a,r,void 0,l);let t=e.getTime()-n.getTime(),s=Math.floor(t/d("day")/i),o=d("day",s*i);e.setTime(n.getTime()+o),c=l.parseDate(e),p=c.year,g=c.month,m=c.day}f=0,b=w,y=0,v=0;break;case"second":b+=w,i>1&&(y=Math.floor(y/i)*i),v=0;break;case"millisecond":b+=w,i>1&&(v=Math.floor(v/i)*i);break;case"hour":i>1&&(f=Math.floor(f/i)*i),b=w,y=0,v=0;break;case"minute":i>1&&(b=Math.floor(b/i)*i),b+=w,y=0,v=0;break;case"month":i>1&&(g=Math.floor(g/i)*i),m=1,f=0,b=w,y=0,v=0;break;case"year":i>1&&(p=Math.floor(p/i)*i),g=0,m=1,f=0,b=w,y=0,v=0;break;case"week":(0,s.k)(a)||(a=1),m=_>=a?m-_+a:m-(7+_)+a,f=0,b=w,y=0,v=0}let R=(e=new Date(p,g,m,f,b,y,v)).getTimezoneOffset(),x=l.offsetUTC(e)-R;return x!=w&&e.setTime(e.getTime()+6e4*(x-w)),e}}class u extends l{constructor(){super(...arguments),Object.defineProperty(this,"_aggregatesCalculated",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_selectionAggregatesCalculated",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_dataProcessed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_psi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_pei",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"chart",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"bullets",{enumerable:!0,configurable:!0,writable:!0,value:new s.F}),Object.defineProperty(this,"bulletsContainer",{enumerable:!0,configurable:!0,writable:!0,value:s.g.new(this._root,{width:s.a,height:s.a,position:"absolute"})})}_afterNew(){this.valueFields.push("value","customValue"),super._afterNew(),this.setPrivate("customData",{}),this._disposers.push(this.bullets.events.onAll((e=>{if("clear"===e.type)this._handleBullets(this.dataItems);else if("push"===e.type)this._handleBullets(this.dataItems);else if("setIndex"===e.type)this._handleBullets(this.dataItems);else if("insertIndex"===e.type)this._handleBullets(this.dataItems);else if("removeIndex"===e.type)this._handleBullets(this.dataItems);else{if("moveIndex"!==e.type)throw new Error("Unknown IListEvent type");this._handleBullets(this.dataItems)}})))}_dispose(){this.bulletsContainer.dispose(),super._dispose()}startIndex(){let e=this.dataItems.length;return Math.min(this.getPrivate("startIndex",0),e)}endIndex(){let e=this.dataItems.length;return Math.min(this.getPrivate("endIndex",e),e)}_handleBullets(e){(0,s.i)(e,(e=>{const t=e.bullets;t&&((0,s.i)(t,(e=>{e.dispose()})),e.bullets=void 0)})),this.markDirtyValues()}getDataItemById(e){return(0,s.I)(this.dataItems,(t=>t.get("id")==e))}_makeBullets(e){this._shouldMakeBullet(e)&&(e.bullets=[],this.bullets.each((t=>{this._makeBullet(e,t)})))}_shouldMakeBullet(e){return!0}_makeBullet(e,t,i){const a=t(this._root,this,e);return a&&(a._index=i,this._makeBulletReal(e,a)),a}_makeBulletReal(e,t){let i=t.get("sprite");i&&(i._setDataItem(e),i.setRaw("position","absolute"),this.bulletsContainer.children.push(i)),t.series=this,e.bullets.push(t)}addBullet(e,t){e.bullets||(e.bullets=[]),t&&this._makeBulletReal(e,t)}_clearDirty(){super._clearDirty(),this._aggregatesCalculated=!1,this._selectionAggregatesCalculated=!1}_prepareChildren(){super._prepareChildren();let e=this.startIndex(),t=this.endIndex();if(this.isDirty("name")&&this.updateLegendValue(),this.isDirty("heatRules")&&(this._valuesDirty=!0),this.isPrivateDirty("baseValueSeries")){const e=this.getPrivate("baseValueSeries");e&&this._disposers.push(e.onPrivate("startIndex",(()=>{this.markDirtyValues()})))}if(this.get("calculateAggregates")&&(this._valuesDirty&&!this._dataProcessed&&(this._aggregatesCalculated||(this._calculateAggregates(0,this.dataItems.length),this._aggregatesCalculated=!0,0!=e&&(this._psi=void 0))),this._psi==e&&this._pei==t&&!this.isPrivateDirty("adjustedStartIndex")||this._selectionAggregatesCalculated||(0===e&&t===this.dataItems.length&&this._aggregatesCalculated||this._calculateAggregates(e,t),this._selectionAggregatesCalculated=!0)),this.isDirty("tooltip")){let e=this.get("tooltip");e&&(e.hide(0),e.set("tooltipTarget",this))}if(this.isDirty("fill")||this.isDirty("stroke")){let e;const t=this.get("legendDataItem");if(t&&(e=t.get("markerRectangle"),e&&this.isVisible())){if(this.isDirty("stroke")){let t=this.get("stroke");e.set("stroke",t)}if(this.isDirty("fill")){let t=this.get("fill");e.set("fill",t)}}this.updateLegendMarker(void 0)}if(this.bullets.length>0){let e=this.startIndex(),t=this.endIndex();t{a[e]=0,r[e]=0,n[e]=0})),(0,s.i)(i,(i=>{let s=i+"Change",p=i+"ChangePercent",g=i+"ChangePrevious",m=i+"ChangePreviousPercent",f=i+"ChangeSelection",b=i+"ChangeSelectionPercent",y="valueY";"valueX"!=i&&"openValueX"!=i&&"lowValueX"!=i&&"highValueX"!=i||(y="valueX");const v=this.getPrivate("baseValueSeries"),_=this.getPrivate("adjustedStartIndex",e);for(let w=_;w_||null==l[i])&&(l[i]=_),(o[i]<_||null==o[i])&&(o[i]=_),h[i]=_,null==d[i]&&(d[i]=_,c[i]=_,v&&(d[y]=v._getBase(y))),0===e&&(t.setRaw(s,_-d[y]),t.setRaw(p,(_-d[y])/d[y]*100)),t.setRaw(g,_-c[y]),t.setRaw(m,(_-c[y])/c[y]*100),t.setRaw(f,_-d[y]),t.setRaw(b,(_-d[y])/d[y]*100),c[i]=_)}if(t0&&e--,delete c[i];for(let t=e;t<_;t++){const e=this.dataItems[t];let a=e.get(i);null==c[i]&&(c[i]=a),null!=a&&(e.setRaw(g,a-c[y]),e.setRaw(m,(a-c[y])/c[y]*100),e.setRaw(f,a-d[y]),e.setRaw(b,(a-d[y])/d[y]*100),c[i]=a)}})),(0,s.i)(i,(e=>{this.setPrivate(e+"AverageSelection",u[e]),this.setPrivate(e+"CountSelection",n[e]),this.setPrivate(e+"SumSelection",a[e]),this.setPrivate(e+"AbsoluteSumSelection",r[e]),this.setPrivate(e+"LowSelection",l[e]),this.setPrivate(e+"HighSelection",o[e]),this.setPrivate(e+"OpenSelection",d[e]),this.setPrivate(e+"CloseSelection",h[e])})),0===e&&t===this.dataItems.length&&(0,s.i)(i,(e=>{this.setPrivate(e+"Average",u[e]),this.setPrivate(e+"Count",n[e]),this.setPrivate(e+"Sum",a[e]),this.setPrivate(e+"AbsoluteSum",r[e]),this.setPrivate(e+"Low",l[e]),this.setPrivate(e+"High",o[e]),this.setPrivate(e+"Open",d[e]),this.setPrivate(e+"Close",h[e])}))}_updateChildren(){super._updateChildren(),this._psi=this.startIndex(),this._pei=this.endIndex(),this.isDirty("visible")&&this.bulletsContainer.set("visible",this.get("visible"));const e=this.get("heatRules");if(this._valuesDirty&&e&&e.length>0&&(0,s.i)(e,(e=>{const t=e.minValue||this.getPrivate(e.dataField+"Low")||0,i=e.maxValue||this.getPrivate(e.dataField+"High")||0;(0,s.i)(e.target._entities,(a=>{const r=a.dataItem.get(e.dataField);if((0,s.k)(r))if(e.customFunction)e.customFunction.call(this,a,t,i,r);else{let n,l;n=e.logarithmic?(Math.log(r)*Math.LOG10E-Math.log(t)*Math.LOG10E)/(Math.log(i)*Math.LOG10E-Math.log(t)*Math.LOG10E):(r-t)/(i-t),!(0,s.k)(r)||(0,s.k)(n)&&Math.abs(n)!=1/0||(n=.5),(0,s.k)(e.min)?l=e.min+(e.max-e.min)*n:e.min instanceof s.C?l=s.C.interpolate(n,e.min,e.max):e.min instanceof s.P&&(l=(0,s.J)(n,e.min,e.max)),a.set(e.key,l);const o=a.states;if(o){const t=o.lookup("default");t&&t.set(e.key,l)}}else{e.neutral&&a.set(e.key,e.neutral);const t=a.states;if(t){const i=t.lookup("default");i&&i.set(e.key,e.neutral)}}}))})),this.get("visible")){let e=this.dataItems.length,t=this.startIndex(),i=this.endIndex();i0&&t--;for(let e=0;e{this._positionBullet(e);const t=e.get("sprite");e.get("dynamic")&&(t&&(t._markDirtyKey("fill"),t.markDirtySize()),t instanceof s.g&&t.walkChildren((e=>{e._markDirtyKey("fill"),e.markDirtySize(),e instanceof s.L&&e.text.markDirtyText()}))),t instanceof s.L&&t.get("populateText")&&t.text.markDirtyText()}))}_hideBullets(e){e.bullets&&(0,s.i)(e.bullets,(e=>{let t=e.get("sprite");t&&t.setPrivate("visible",!1)}))}_positionBullet(e){}_placeBulletsContainer(e){e.bulletsContainer.children.moveValue(this.bulletsContainer)}_removeBulletsContainer(){const e=this.bulletsContainer;e.parent&&e.parent.children.removeValue(e)}disposeDataItem(e){const t=e.bullets;t&&(0,s.i)(t,(e=>{e.dispose()}))}_getItemReaderLabel(){return""}showDataItem(e,t){const i=Object.create(null,{showDataItem:{get:()=>super.showDataItem}});return(0,a.b)(this,void 0,void 0,(function*(){const a=[i.showDataItem.call(this,e,t)],r=e.bullets;r&&(0,s.i)(r,(e=>{const i=e.get("sprite");i&&a.push(i.show(t))})),yield Promise.all(a)}))}hideDataItem(e,t){const i=Object.create(null,{hideDataItem:{get:()=>super.hideDataItem}});return(0,a.b)(this,void 0,void 0,(function*(){const a=[i.hideDataItem.call(this,e,t)],r=e.bullets;r&&(0,s.i)(r,(e=>{const i=e.get("sprite");i&&a.push(i.hide(t))})),yield Promise.all(a)}))}_sequencedShowHide(e,t){return(0,a.b)(this,void 0,void 0,(function*(){if(this.get("sequencedInterpolation"))if((0,s.k)(t)||(t=this.get("interpolationDuration",0)),t>0){const i=this.startIndex(),r=this.endIndex();yield Promise.all((0,s.K)(this.dataItems,((s,n)=>(0,a.b)(this,void 0,void 0,(function*(){let a=t||0;(nr+10)&&(a=0);let l=this.get("sequencedDelay",0)+a/(r-i);yield function(e){return new Promise(((t,i)=>{setTimeout(t,e)}))}(l*(n-i)),e?yield this.showDataItem(s,a):yield this.hideDataItem(s,a)})))))}else yield Promise.all((0,s.K)(this.dataItems,(t=>e?this.showDataItem(t,0):this.hideDataItem(t,0))))}))}updateLegendValue(e){if(e){const t=e.get("legendDataItem");if(t){const i=t.get("valueLabel");if(i){const t=i.text;let a="";i._setDataItem(e),a=this.get("legendValueText",t.get("text","")),i.set("text",a),t.markDirtyText()}const a=t.get("label");if(a){const t=a.text;let i="";a._setDataItem(e),i=this.get("legendLabelText",t.get("text","")),a.set("text",i),t.markDirtyText()}}}}updateLegendMarker(e){}_onHide(){super._onHide();const e=this.getTooltip();e&&e.hide()}hoverDataItem(e){}unhoverDataItem(e){}_getBase(e){const t=this.dataItems[this.startIndex()];return t?t.get(e):0}}function c(e,t){for(let i=0,a=t.length;i0){let t=a[0];if(t.length>0){let i=t[0];e.moveTo(i.x,i.y);for(let t=0,i=a.length;t0){let t=e[0];this._display.moveTo(t.x,t.y),c(this._display,[[e]])}else if(t)c(this._display,t);else if(!this.get("draw")){let e=this.width(),t=this.height();this._display.moveTo(0,0),this._display.lineTo(e,t)}}}}function m(e){return function(){return e}}Object.defineProperty(g,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Line"}),Object.defineProperty(g,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.e.classNames.concat([g.className])});const f=Math.PI,b=2*f,y=1e-6,v=b-y;function _(e){this._+=e[0];for(let t=1,i=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return _;const i=10**t;return function(e){this._+=e[0];for(let t=1,a=e.length;ty)if(Math.abs(h*l-o*d)>y&&s){let c=i-r,p=a-n,g=l*l+o*o,m=c*c+p*p,b=Math.sqrt(g),v=Math.sqrt(u),_=s*Math.tan((f-Math.acos((g+u-m)/(2*b*v)))/2),w=_/v,R=_/b;Math.abs(w-1)>y&&this._append`L${e+w*d},${t+w*h}`,this._append`A${s},${s},0,0,${+(h*c>d*p)},${this._x1=e+R*l},${this._y1=t+R*o}`}else this._append`L${this._x1=e},${this._y1=t}`}arc(e,t,i,a,s,r){if(e=+e,t=+t,r=!!r,(i=+i)<0)throw new Error(`negative radius: ${i}`);let n=i*Math.cos(a),l=i*Math.sin(a),o=e+n,d=t+l,h=1^r,u=r?a-s:s-a;null===this._x1?this._append`M${o},${d}`:(Math.abs(this._x1-o)>y||Math.abs(this._y1-d)>y)&&this._append`L${o},${d}`,i&&(u<0&&(u=u%b+b),u>v?this._append`A${i},${i},0,1,${h},${e-n},${t-l}A${i},${i},0,1,${h},${this._x1=o},${this._y1=d}`:u>y&&this._append`A${i},${i},0,${+(u>=f)},${h},${this._x1=e+i*Math.cos(s)},${this._y1=t+i*Math.sin(s)}`)}rect(e,t,i,a){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${i=+i}v${+a}h${-i}Z`}toString(){return this._}}function R(e){let t=3;return e.digits=function(i){if(!arguments.length)return t;if(null==i)t=null;else{const e=Math.floor(i);if(!(e>=0))throw new RangeError(`invalid digits: ${i}`);t=e}return e},()=>new w(t)}class x extends s.g{constructor(){super(...arguments),Object.defineProperty(this,"chartContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(s.g.new(this._root,{width:s.a,height:s.a,interactiveChildren:!1}))}),Object.defineProperty(this,"bulletsContainer",{enumerable:!0,configurable:!0,writable:!0,value:s.g.new(this._root,{interactiveChildren:!1,isMeasured:!1,position:"absolute",width:s.a,height:s.a})})}}Object.defineProperty(x,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Chart"}),Object.defineProperty(x,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.g.classNames.concat([x.className])});class k extends x{constructor(){super(...arguments),Object.defineProperty(this,"seriesContainer",{enumerable:!0,configurable:!0,writable:!0,value:s.g.new(this._root,{width:s.a,height:s.a,isMeasured:!1})}),Object.defineProperty(this,"series",{enumerable:!0,configurable:!0,writable:!0,value:new s.N})}_afterNew(){super._afterNew(),this._disposers.push(this.series);const e=this.seriesContainer.children;this._disposers.push(this.series.events.onAll((t=>{if("clear"===t.type){(0,s.i)(t.oldValues,(e=>{this._removeSeries(e)}));const e=this.get("colors");e&&e.reset()}else if("push"===t.type)e.moveValue(t.newValue),this._processSeries(t.newValue);else if("setIndex"===t.type)e.setIndex(t.index,t.newValue),this._processSeries(t.newValue);else if("insertIndex"===t.type)e.insertIndex(t.index,t.newValue),this._processSeries(t.newValue);else if("removeIndex"===t.type)this._removeSeries(t.oldValue);else{if("moveIndex"!==t.type)throw new Error("Unknown IListEvent type");e.moveValue(t.value,t.newIndex),this._processSeries(t.value)}})))}_processSeries(e){e.chart=this,e._placeBulletsContainer(this)}_removeSeries(e){e.isDisposed()||(this.seriesContainer.children.removeValue(e),e._removeBulletsContainer())}}Object.defineProperty(k,"className",{enumerable:!0,configurable:!0,writable:!0,value:"SerialChart"}),Object.defineProperty(k,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:x.classNames.concat([k.className])});class C extends g{}Object.defineProperty(C,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Tick"}),Object.defineProperty(C,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:g.classNames.concat([C.className])})}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3714.2e706eb2a8771d5d4f99.js b/docs/sentinel1-explorer/3714.2e706eb2a8771d5d4f99.js new file mode 100644 index 00000000..878612c9 --- /dev/null +++ b/docs/sentinel1-explorer/3714.2e706eb2a8771d5d4f99.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3714],{53714:function(e,t,s){s.r(t),s.d(t,{execute:function(){return r}});var a=s(70375);function r(e,t){let s=t.responseType;s?"array-buffer"!==s&&"blob"!==s&&"json"!==s&&"native"!==s&&"native-request-init"!==s&&"text"!==s&&(s="text"):s="json",t.responseType=s;const r=t.signal;return delete t.signal,globalThis.invokeStaticMessage("request",{url:e,options:t},{signal:r}).then((async n=>{let o,i,u,l,c;if(n.data)if(n.data instanceof ArrayBuffer){if(!("json"!==s&&"text"!==s&&"blob"!==s||(o=new Blob([n.data]),"json"!==s&&"text"!==s||(l=await o.text(),"json"!==s)))){try{i=JSON.parse(l||null)}catch(s){const r={...s,url:e,requestOptions:t};throw new a.Z("request:server",s.message,r)}if(i.error){const s={...i.error,url:e,requestOptions:t};throw new a.Z("request:server",i.error.message,s)}}}else"native"===s&&(n.data.signal=r,u=await fetch(n.data.url,n.data),n.httpStatus=u.status);switch(s){case"blob":c=o;break;case"json":c=i;break;case"native":c=u;break;case"text":c=l;break;default:c=n.data}return{data:c,httpStatus:n.httpStatus,requestOptions:t,ssl:n.ssl,url:e}}))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/372.27e70715ac8323ea406c.js b/docs/sentinel1-explorer/372.27e70715ac8323ea406c.js new file mode 100644 index 00000000..e4a52a9f --- /dev/null +++ b/docs/sentinel1-explorer/372.27e70715ac8323ea406c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[372],{78053:function(e,t,s){s.d(t,{Qn:function(){return h},iG:function(){return l}});var r,n=s(21130),a=s(46576),i=s(17126);(r||(r={})).TimeZoneNotRecognized="TimeZoneNotRecognized";const o={[r.TimeZoneNotRecognized]:"Timezone identifier has not been recognized."};class c extends Error{constructor(e,t){super((0,n.gx)(o[e],t)),this.declaredRootClass="esri.arcade.arcadedate.dateerror",Error.captureStackTrace&&Error.captureStackTrace(this,c)}}function u(e,t,s){return es?e-s:0}function m(e,t,s){return es?s:e}class l{constructor(e){this._date=e,this.declaredRootClass="esri.arcade.arcadedate"}static fromParts(e=0,t=1,s=1,r=0,n=0,a=0,o=0,c){if(isNaN(e)||isNaN(t)||isNaN(s)||isNaN(r)||isNaN(n)||isNaN(a)||isNaN(o))return null;const d=i.ou.local(e,t).daysInMonth;let f=i.ou.fromObject({day:m(s,1,d),year:e,month:m(t,1,12),hour:m(r,0,23),minute:m(n,0,59),second:m(a,0,59),millisecond:m(o,0,999)},{zone:h(c)});return f=f.plus({months:u(t,1,12),days:u(s,1,d),hours:u(r,0,23),minutes:u(n,0,59),seconds:u(a,0,59),milliseconds:u(o,0,999)}),new l(f)}static get systemTimeZoneCanonicalName(){return Intl.DateTimeFormat().resolvedOptions().timeZone??"system"}static arcadeDateAndZoneToArcadeDate(e,t){const s=h(t);return e.isUnknownTimeZone||s===a.yV.instance?l.fromParts(e.year,e.monthJS+1,e.day,e.hour,e.minute,e.second,e.millisecond,s):new l(e._date.setZone(s))}static dateJSToArcadeDate(e){return new l(i.ou.fromJSDate(e,{zone:"system"}))}static dateJSAndZoneToArcadeDate(e,t="system"){const s=h(t);return new l(i.ou.fromJSDate(e,{zone:s}))}static unknownEpochToArcadeDate(e){return new l(i.ou.fromMillis(e,{zone:a.yV.instance}))}static unknownDateJSToArcadeDate(e){return new l(i.ou.fromMillis(e.getTime(),{zone:a.yV.instance}))}static epochToArcadeDate(e,t="system"){const s=h(t);return new l(i.ou.fromMillis(e,{zone:s}))}static dateTimeToArcadeDate(e){return new l(e)}clone(){return new l(this._date)}changeTimeZone(e){const t=h(e);return l.dateTimeToArcadeDate(this._date.setZone(t))}static dateTimeAndZoneToArcadeDate(e,t){const s=h(t);return e.zone===a.yV.instance||s===a.yV.instance?l.fromParts(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond,s):new l(e.setZone(s))}static nowToArcadeDate(e){const t=h(e);return new l(i.ou.fromJSDate(new Date,{zone:t}))}static nowUTCToArcadeDate(){return new l(i.ou.utc())}get isSystem(){return"system"===this.timeZone||this.timeZone===l.systemTimeZoneCanonicalName}equals(e){return this.isSystem&&e.isSystem?this.toNumber()===e.toNumber():this.isUnknownTimeZone===e.isUnknownTimeZone&&this._date.equals(e._date)}get isUnknownTimeZone(){return this._date.zone===a.yV.instance}get isValid(){return this._date.isValid}get hour(){return this._date.hour}get second(){return this._date.second}get day(){return this._date.day}get dayOfWeekISO(){return this._date.weekday}get dayOfWeekJS(){let e=this._date.weekday;return e>6&&(e=0),e}get millisecond(){return this._date.millisecond}get monthISO(){return this._date.month}get weekISO(){return this._date.weekNumber}get yearISO(){return this._date.weekYear}get monthJS(){return this._date.month-1}get year(){return this._date.year}get minute(){return this._date.minute}get zone(){return this._date.zone}get timeZoneOffset(){return this.isUnknownTimeZone?0:this._date.offset}get timeZone(){if(this.isUnknownTimeZone)return"unknown";if("system"===this._date.zone.type)return"system";const e=this.zone;return"fixed"===e.type?0===e.fixed?"UTC":e.formatOffset(0,"short"):e.name}stringify(){return JSON.stringify(this.toJSDate())}plus(e){return new l(this._date.plus(e))}diff(e,t="milliseconds"){return this._date.diff(e._date,t)[t]}toISODate(){return this._date.toISODate()}toISOString(e){return e?this._date.toISO({suppressMilliseconds:!0,includeOffset:!this.isUnknownTimeZone}):this._date.toISO({includeOffset:!this.isUnknownTimeZone})}toISOTime(e,t){return this._date.toISOTime({suppressMilliseconds:e,includeOffset:t&&!this.isUnknownTimeZone})}toFormat(e,t){return this.isUnknownTimeZone&&(e=e.replaceAll("Z","")),this._date.toFormat(e,t)}toJSDate(){return this._date.toJSDate()}toSQLValue(){return this._date.toFormat("yyyy-LL-dd HH:mm:ss")}toSQLWithKeyword(){return`timestamp '${this.toSQLValue()}'`}toDateTime(){return this._date}toNumber(){return this._date.toMillis()}getTime(){return this._date.toMillis()}toUTC(){return new l(this._date.toUTC())}toLocal(){return new l(this._date.toLocal())}toString(){return this.toISOString(!0)}static fromReaderAsTimeStampOffset(e){if(!e)return null;const t=i.ou.fromISO(e,{setZone:!0});return new l(t)}}function h(e,t=!0){if(e instanceof i.ld)return e;if("system"===e.toLowerCase())return"system";if("utc"===e.toLowerCase())return"UTC";if("unknown"===e.toLowerCase())return a.yV.instance;if(/^[\+\-]?[0-9]{1,2}([:][0-9]{2})?$/.test(e)){const t=i.Qf.parseSpecifier("UTC"+(e.startsWith("+")||e.startsWith("-")?"":"+")+e);if(t)return t}const s=i.vF.create(e);if(!s.isValid){if(t)throw new c(r.TimeZoneNotRecognized);return null}return s}},4080:function(e,t,s){s.d(t,{EI:function(){return n},Lz:function(){return i},SV:function(){return a},U:function(){return c},r1:function(){return o}});var r=s(91772);function n(e){if(null==e)return null;if("number"==typeof e)return e;let t=e.toLowerCase();switch(t=t.replaceAll(/\s/g,""),t=t.replaceAll("-",""),t){case"meters":case"meter":case"m":case"squaremeters":case"squaremeter":return 109404;case"miles":case"mile":case"squaremile":case"squaremiles":return 109439;case"kilometers":case"kilometer":case"squarekilometers":case"squarekilometer":case"km":return 109414;case"acres":case"acre":case"ac":return 109402;case"hectares":case"hectare":case"ha":return 109401;case"yard":case"yd":case"yards":case"squareyards":case"squareyard":return 109442;case"feet":case"ft":case"foot":case"squarefeet":case"squarefoot":return 109405;case"nmi":case"nauticalmile":case"nauticalmiles":case"squarenauticalmile":case"squarenauticalmiles":return 109409}return null}function a(e){if(null==e)return null;switch(e.type){case"polygon":case"multipoint":case"polyline":return e.extent;case"point":return new r.Z({xmin:e.x,ymin:e.y,xmax:e.x,ymax:e.y,spatialReference:e.spatialReference});case"extent":return e}return null}function i(e){if(null==e)return null;if("number"==typeof e)return e;let t=e.toLowerCase();switch(t=t.replaceAll(/\s/g,""),t=t.replaceAll("-",""),t){case"meters":case"meter":case"m":case"squaremeters":case"squaremeter":return 9001;case"miles":case"mile":case"squaremile":case"squaremiles":return 9093;case"kilometers":case"kilometer":case"squarekilometers":case"squarekilometer":case"km":return 9036;case"yard":case"yd":case"yards":case"squareyards":case"squareyard":return 9096;case"feet":case"ft":case"foot":case"squarefeet":case"squarefoot":return 9002;case"nmi":case"nauticalmile":case"nauticalmiles":case"squarenauticalmile":case"squarenauticalmiles":return 9030}return null}function o(e){if(null==e)return null;const t=e.clone();return void 0!==e.cache._geVersion&&(t.cache._geVersion=e.cache._geVersion),t}function c(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}},19980:function(e,t,s){s.d(t,{u:function(){return o}});var r=s(78053),n=s(8108),a=s(17126);function i(e){e=e.replaceAll(/LTS|LT|LL?L?L?|l{1,4}/g,"[$&]");let t="";const s=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;for(const r of e.match(s)||[])switch(r){case"D":t+="d";break;case"DD":t+="dd";break;case"DDD":t+="o";break;case"d":t+="c";break;case"ddd":t+="ccc";break;case"dddd":t+="cccc";break;case"M":t+="L";break;case"MM":t+="LL";break;case"MMM":t+="LLL";break;case"MMMM":t+="LLLL";break;case"YY":t+="yy";break;case"Y":case"YYYY":t+="yyyy";break;case"Q":t+="q";break;case"X":case"x":t+=r;break;default:r.length>=2&&"["===r.slice(0,1)&&"]"===r.slice(-1)?t+=`'${r.slice(1,-1)}'`:t+=`'${r}'`}return t}class o{constructor(e,t,s){this._year=e,this._month=t,this._day=s,this.declaredRootClass="esri.core.sql.dateonly"}get month(){return this._month}get monthJS(){return this._month-1}get year(){return this._year}get day(){return this._day}get isValid(){return this.toDateTime("unknown").isValid}equals(e){return e instanceof o&&e.day===this.day&&e.month===this.month&&e.year===this.year}clone(){return new o(this._year,this._month,this._day)}toDateTime(e){return a.ou.fromObject({day:this.day,month:this.month,year:this.year},{zone:(0,r.Qn)(e)})}toDateTimeLuxon(e){return a.ou.fromObject({day:this.day,month:this.month,year:this.year},{zone:(0,r.Qn)(e)})}toString(){return`${this.year.toString().padStart(4,"0")}-${this.month.toString().padStart(2,"0")}-${this.day.toString().padStart(2,"0")}`}toFormat(e=null,t=!0){if(null===e||""===e)return this.toString();if(t&&(e=i(e)),!e)return"";const s=this.toDateTime("unknown");return r.iG.dateTimeToArcadeDate(s).toFormat(e,{locale:(0,n.Kd)(),numberingSystem:"latn"})}toArcadeDate(){const e=this.toDateTime("unknown");return r.iG.dateTimeToArcadeDate(e)}toNumber(){return this.toDateTime("unknown").toMillis()}toJSDate(){return this.toDateTime("unknown").toJSDate()}toStorageFormat(){return this.toFormat("yyyy-LL-dd",!1)}toSQLValue(){return this.toFormat("yyyy-LL-dd",!1)}toSQLWithKeyword(){return"date '"+this.toFormat("yyyy-LL-dd",!1)+"'"}plus(e,t){return o.fromDateTime(this.toUTCDateTime().plus({[e]:t}))}toUTCDateTime(){return a.ou.utc(this.year,this.month,this.day,0,0,0,0)}difference(e,t){switch(t.toLowerCase()){case"days":case"day":case"d":return this.toUTCDateTime().diff(e.toUTCDateTime(),"days").days;case"months":case"month":return this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months;case"minutes":case"minute":case"m":return"M"===t?this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months:this.toUTCDateTime().diff(e.toUTCDateTime(),"minutes").minutes;case"seconds":case"second":case"s":return this.toUTCDateTime().diff(e.toUTCDateTime(),"seconds").seconds;case"milliseconds":case"millisecond":case"ms":default:return this.toUTCDateTime().diff(e.toUTCDateTime(),"milliseconds").milliseconds;case"hours":case"hour":case"h":return this.toUTCDateTime().diff(e.toUTCDateTime(),"hours").hours;case"years":case"year":case"y":return this.toUTCDateTime().diff(e.toUTCDateTime(),"years").years}}static fromMilliseconds(e){const t=a.ou.fromMillis(e,{zone:a.Qf.utcInstance});return t.isValid?o.fromParts(t.year,t.month,t.day):null}static fromSeconds(e){const t=a.ou.fromSeconds(e,{zone:a.Qf.utcInstance});return t.isValid?o.fromParts(t.year,t.month,t.day):null}static fromReader(e){if(!e)return null;const t=e.split("-");return 3!==t.length?null:new o(parseInt(t[0],10),parseInt(t[1],10),parseInt(t[2],10))}static fromParts(e,t,s){const r=new o(e,t,s);return!1===r.isValid?null:r}static fromDateJS(e){return o.fromParts(e.getFullYear(),e.getMonth()+1,e.getDay())}static fromDateTime(e){return o.fromParts(e.year,e.month,e.day)}static fromSqlTimeStampOffset(e){return this.fromDateTime(e.toDateTime())}static fromString(e,t=null){if(""===e)return null;if(null===e)return null;const s=[];if(t)(t=i(t))&&s.push(t);else if(null===t||""===t){const t=a.ou.fromISO(e,{setZone:!0});return t.isValid?o.fromParts(t.year,t.month,t.day):null}for(const r of s){const s=a.ou.fromFormat(e,t??r);if(s.isValid)return new o(s.year,s.month,s.day)}return null}static fromNow(e="system"){const t=a.ou.fromJSDate(new Date).setZone((0,r.Qn)(e));return new o(t.year,t.month,t.day)}}},62717:function(e,t,s){s.d(t,{n:function(){return o}});var r=s(4080),n=s(8108),a=s(17126);function i(e){if(!e)return"";const t=/(a|A|hh?|HH?|mm?|ss?|SSS|S|.)/g;let s="";for(const r of e.match(t)||[])switch(r){case"SSS":case"m":case"mm":case"h":case"hh":case"H":case"HH":case"s":case"ss":s+=r;break;case"A":case"a":s+="a";break;default:s+=`'${r}'`}return s}class o{constructor(e,t,s,r){this._hour=e,this._minute=t,this._second=s,this._millisecond=r,this.declaredRootClass="esri.core.sql.timeonly"}get hour(){return this._hour}get minute(){return this._minute}get second(){return this._second}get millisecond(){return this._millisecond}equals(e){return e instanceof o&&e.hour===this.hour&&e.minute===this.minute&&e.second===this.second&&e.millisecond===this.millisecond}clone(){return new o(this.hour,this.minute,this.second,this.millisecond)}isValid(){return(0,r.U)(this.hour)&&(0,r.U)(this.minute)&&(0,r.U)(this.second)&&(0,r.U)(this.millisecond)&&this.hour>=0&&this.hour<24&&this.minute>=0&&this.minute<60&&this.second>=0&&this.second<60&&this.millisecond>=0&&this.millisecond<1e3}toString(){return`${this.hour.toString().padStart(2,"0")}:${this.minute.toString().padStart(2,"0")}:${this.second.toString().padStart(2,"0")}`+(this.millisecond>0?"."+this.millisecond.toString().padStart(3,"0"):"")}toSQLValue(){return this.toString()}toSQLWithKeyword(){return`time '${this.hour.toString().padStart(2,"0")}:${this.minute.toString().padStart(2,"0")}:${this.second.toString().padStart(2,"0")}${this.millisecond>0?"."+this.millisecond.toString().padStart(3,"0"):""}'`}toStorageString(){return`${this.hour.toString().padStart(2,"0")}:${this.minute.toString().padStart(2,"0")}:${this.second.toString().padStart(2,"0")}`}toFormat(e=null){return null===e||""===e?this.toString():(e=i(e))?a.ou.local(1970,1,1,this._hour,this._minute,this._second,this._millisecond).toFormat(e,{locale:(0,n.Kd)(),numberingSystem:"latn"}):""}toNumber(){return this.millisecond+1e3*this.second+1e3*this.minute*60+60*this.hour*60*1e3}static fromParts(e,t,s,r){const n=new o(e,t,s,r);return n.isValid()?n:null}static fromReader(e){if(!e)return null;const t=e.split(":");return 3!==t.length?null:new o(parseInt(t[0],10),parseInt(t[1],10),parseInt(t[2],10),0)}static fromMilliseconds(e){if(e>864e5||e<0)return null;const t=Math.floor(e/1e3%60),s=Math.floor(e/6e4%60),r=Math.floor(e/36e5%24),n=Math.floor(e%1e3);return new o(r,s,t,n)}static fromDateJS(e){return new o(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}static fromDateTime(e){return new o(e.hour,e.minute,e.second,e.millisecond)}static fromSqlTimeStampOffset(e){return this.fromDateTime(e.toDateTime())}static fromString(e,t=null){if(""===e)return null;if(null===e)return null;const s=[];t?(t=i(t))&&s.push(t):null!==t&&""!==t||(s.push("HH:mm:ss"),s.push("HH:mm:ss.SSS"),s.push("hh:mm:ss a"),s.push("hh:mm:ss.SSS a"),s.push("HH:mm"),s.push("hh:mm a"),s.push("H:mm"),s.push("h:mm a"),s.push("H:mm:ss"),s.push("h:mm:ss a"),s.push("H:mm:ss.SSS"),s.push("h:mm:ss.SSS a"));for(const t of s){const s=a.ou.fromFormat(e,t);if(s.isValid)return new o(s.hour,s.minute,s.second,s.millisecond)}return null}plus(e,t){switch(e){case"days":case"years":case"months":return this.clone();case"hours":case"minutes":case"seconds":case"milliseconds":return o.fromDateTime(this.toUTCDateTime().plus({[e]:t}))}return null}toUTCDateTime(){return a.ou.utc(1970,1,1,this.hour,this.minute,this.second,this.millisecond)}difference(e,t){switch(t.toLowerCase()){case"days":case"day":case"d":return this.toUTCDateTime().diff(e.toUTCDateTime(),"days").days;case"months":case"month":return this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months;case"minutes":case"minute":case"m":return"M"===t?this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months:this.toUTCDateTime().diff(e.toUTCDateTime(),"minutes").minutes;case"seconds":case"second":case"s":return this.toUTCDateTime().diff(e.toUTCDateTime(),"seconds").seconds;case"milliseconds":case"millisecond":case"ms":default:return this.toUTCDateTime().diff(e.toUTCDateTime(),"milliseconds").milliseconds;case"hours":case"hour":case"h":return this.toUTCDateTime().diff(e.toUTCDateTime(),"hours").hours;case"years":case"year":case"y":return this.toUTCDateTime().diff(e.toUTCDateTime(),"years").years}}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3734.fda0c0d38f780736f626.js b/docs/sentinel1-explorer/3734.fda0c0d38f780736f626.js new file mode 100644 index 00000000..cc12b3d8 --- /dev/null +++ b/docs/sentinel1-explorer/3734.fda0c0d38f780736f626.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3734],{23734:function(t,e,n){n.r(e),n.d(e,{executeForTopExtents:function(){return s}});n(91957);var r=n(84238),o=n(46960),u=n(12621),i=n(91772);async function s(t,e,n){const s=(0,r.en)(t),l=await(0,o.m5)(s,u.Z.from(e),{...n}),a=l.data.extent;return!a||isNaN(a.xmin)||isNaN(a.ymin)||isNaN(a.xmax)||isNaN(a.ymax)?{count:l.data.count,extent:null}:{count:l.data.count,extent:i.Z.fromJSON(a)}}},46960:function(t,e,n){n.d(e,{IJ:function(){return d},m5:function(){return m},vB:function(){return f},w7:function(){return p}});var r=n(66341),o=n(3466),u=n(53736),i=n(29927),s=n(35925),l=n(27707),a=n(13097);const y="Layer does not support extent calculation.";function c(t,e){const n=t.geometry,r=t.toJSON(),o=r;if(null!=n&&(o.geometry=JSON.stringify(n),o.geometryType=(0,u.Ji)(n),o.inSR=(0,s.B9)(n.spatialReference)),r.topFilter?.groupByFields&&(o.topFilter.groupByFields=r.topFilter.groupByFields.join(",")),r.topFilter?.orderByFields&&(o.topFilter.orderByFields=r.topFilter.orderByFields.join(",")),r.topFilter&&(o.topFilter=JSON.stringify(o.topFilter)),r.objectIds&&(o.objectIds=r.objectIds.join(",")),r.orderByFields&&(o.orderByFields=r.orderByFields.join(",")),r.outFields&&!(e?.returnCountOnly||e?.returnExtentOnly||e?.returnIdsOnly)?r.outFields.includes("*")?o.outFields="*":o.outFields=r.outFields.join(","):delete o.outFields,r.outSR?o.outSR=(0,s.B9)(r.outSR):n&&r.returnGeometry&&(o.outSR=o.inSR),r.returnGeometry&&delete r.returnGeometry,r.timeExtent){const t=r.timeExtent,{start:e,end:n}=t;null==e&&null==n||(o.time=e===n?e:`${e??"null"},${n??"null"}`),delete r.timeExtent}return o}async function d(t,e,n,r){const o=await F(t,e,"json",r);return(0,a.p)(e,n,o.data),o}async function p(t,e,n){return null!=e.timeExtent&&e.timeExtent.isEmpty?{data:{objectIds:[]}}:F(t,e,"json",n,{returnIdsOnly:!0})}async function m(t,e,n){return null!=e.timeExtent&&e.timeExtent.isEmpty?{data:{count:0,extent:null}}:F(t,e,"json",n,{returnExtentOnly:!0,returnCountOnly:!0}).then((t=>{const e=t.data;if(e.hasOwnProperty("extent"))return t;if(e.features)throw new Error(y);if(e.hasOwnProperty("count"))throw new Error(y);return t}))}function f(t,e,n){return null!=e.timeExtent&&e.timeExtent.isEmpty?Promise.resolve({data:{count:0}}):F(t,e,"json",n,{returnIdsOnly:!0,returnCountOnly:!0})}function F(t,e,n,u={},s={}){const a="string"==typeof t?(0,o.mN)(t):t,y=e.geometry?[e.geometry]:[];return u.responseType="pbf"===n?"array-buffer":"json",(0,i.aX)(y,null,u).then((t=>{const i=t?.[0];null!=i&&((e=e.clone()).geometry=i);const y=(0,l.A)({...a.query,f:n,...s,...c(e,s)});return(0,r.Z)((0,o.v_)(a.path,"queryTopFeatures"),{...u,query:{...y,...u.query}})}))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3805.a9057d5ba64e662ac46c.js b/docs/sentinel1-explorer/3805.a9057d5ba64e662ac46c.js new file mode 100644 index 00000000..92c19c9f --- /dev/null +++ b/docs/sentinel1-explorer/3805.a9057d5ba64e662ac46c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3805],{3805:function(e,n,t){t.r(n),t.d(n,{classBreaks:function(){return r},heatmapStatistics:function(){return s},histogram:function(){return u},summaryStatistics:function(){return o},uniqueValues:function(){return l}});var i=t(8638),a=t(76432);async function o(e){const{attribute:n,features:t}=e,{normalizationType:o,normalizationField:l,minValue:r,maxValue:u,fieldType:s}=n,m=await(0,i.do)({field:n.field,valueExpression:n.valueExpression,normalizationType:o,normalizationField:l,normalizationTotal:n.normalizationTotal,viewInfoParams:n.viewInfoParams,timeZone:n.timeZone,fieldInfos:n.fieldInfos},t),f=(0,a.S5)({normalizationType:o,normalizationField:l,minValue:r,maxValue:u}),c={value:.5,fieldType:s},d="esriFieldTypeString"===s?(0,a.H0)({values:m,supportsNullCount:f,percentileParams:c}):(0,a.i5)({values:m,minValue:r,maxValue:u,useSampleStdDev:!o,supportsNullCount:f,percentileParams:c});return(0,a.F_)(d,"esriFieldTypeDate"===s)}async function l(e){const{attribute:n,features:t}=e,o=await(0,i.do)({field:n.field,field2:n.field2,field3:n.field3,fieldDelimiter:n.fieldDelimiter,valueExpression:n.valueExpression,viewInfoParams:n.viewInfoParams,timeZone:n.timeZone,fieldInfos:n.fieldInfos},t,!1),l=(0,a.eT)(o);return(0,a.Qm)(l,n.domains,n.returnAllCodedValues,n.fieldDelimiter)}async function r(e){const{attribute:n,features:t}=e,{field:o,normalizationType:l,normalizationField:r,normalizationTotal:u,classificationMethod:s}=n,m=await(0,i.do)({field:o,valueExpression:n.valueExpression,normalizationType:l,normalizationField:r,normalizationTotal:u,viewInfoParams:n.viewInfoParams,timeZone:n.timeZone,fieldInfos:n.fieldInfos},t),f=(0,a.G2)(m,{field:o,normalizationType:l,normalizationField:r,normalizationTotal:u,classificationMethod:s,standardDeviationInterval:n.standardDeviationInterval,numClasses:n.numClasses,minValue:n.minValue,maxValue:n.maxValue});return(0,a.DL)(f,s)}async function u(e){const{attribute:n,features:t}=e,{field:o,normalizationType:l,normalizationField:r,normalizationTotal:u,classificationMethod:s}=n,m=await(0,i.do)({field:o,valueExpression:n.valueExpression,normalizationType:l,normalizationField:r,normalizationTotal:u,viewInfoParams:n.viewInfoParams,timeZone:n.timeZone,fieldInfos:n.fieldInfos},t);return(0,a.oF)(m,{field:o,normalizationType:l,normalizationField:r,normalizationTotal:u,classificationMethod:s,standardDeviationInterval:n.standardDeviationInterval,numBins:n.numBins,minValue:n.minValue,maxValue:n.maxValue})}async function s(e){const{attribute:n,features:t}=e,{field:a,radius:o,transform:l,spatialReference:r}=n,u=n.size??[0,0],s=(0,i.gq)(t??[],l,r,u);return(0,i.qQ)(s,o??void 0,a,u[0],u[1])}},8638:function(e,n,t){t.d(n,{do:function(){return g},gq:function(){return y},qQ:function(){return T},yO:function(){return h}});t(91957),t(70375);var i=t(95550),a=t(807),o=t(14685),l=t(7505),r=t(35925),u=t(14845),s=t(94672),m=t(44415),f=t(76432),c=t(30879),d=t(67666);let p=null;const v=/^(?([0-1][0-9])|([2][0-3])):(?[0-5][0-9])(:(?[0-5][0-9]))?([.](?\d+))?$/;function y(e,n,t,i){const a=(0,r.MP)(t)?(0,r.C5)(t):null,o=a?Math.round((a.valid[1]-a.valid[0])/n.scale[0]):null;return e.map((e=>{const t=new d.Z(e.geometry);return(0,l.RF)(n,t,t,t.hasZ,t.hasM),e.geometry=a?function(e,n,t){return e.x<0?e.x+=n:e.x>t&&(e.x-=n),e}(t,o??0,i[0]):t,e}))}function T(e,n=18,t,a,o){const l=new Float64Array(a*o);n=Math.round((0,i.F2)(n));let r=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY;const m=(0,s.wx)(t);for(const{geometry:t,attributes:i}of e){const{x:e,y:f}=t,c=Math.max(0,e-n),d=Math.max(0,f-n),p=Math.min(o,f+n),v=Math.min(a,e+n),y=+m(i);for(let t=d;te.name.toLowerCase()===i.toLowerCase())),y=!!v&&(0,u.sX)(v),T=!!v&&(0,m.a8)(v),g=e.valueExpression,x=e.normalizationType,I=e.normalizationField,z=e.normalizationTotal,F=[],V=e.viewInfoParams;let b=null,w=null;if(g){if(!p){const{arcadeUtils:e}=await(0,c.LC)();p=e}p.hasGeometryOperations(g)&&await p.enableGeometryOperations(),b=p.createFunction(g),w=V?p.getViewInfo({viewingMode:V.viewingMode,scale:V.scale,spatialReference:new o.Z(V.spatialReference)}):null}const D=e.fieldInfos,N=n[0]&&"declaredClass"in n[0]&&"esri.Graphic"===n[0].declaredClass||!D?null:{fields:D};return n.forEach((e=>{const n=e.attributes;let o;if(g){const n=N?{...e,layer:N}:e,t=p.createExecContext(n,w,d);o=p.executeFunction(b,t)}else n&&(o=n[i],a?(o=`${(0,f.wk)(o)}${r}${(0,f.wk)(n[a])}`,l&&(o=`${o}${r}${(0,f.wk)(n[l])}`)):"string"==typeof o&&t&&(T?o=o?new Date(o).getTime():null:y&&(o=o?h(o):null)));if(x&&"number"==typeof o&&isFinite(o)){const e=n&&parseFloat(n[I]);o=(0,f.fk)(o,x,e,z)}F.push(o)})),F}},44415:function(e,n,t){t.d(n,{$8:function(){return r},a8:function(){return l}});var i=t(72057),a=t(14845),o=(t(30879),t(64573),t(72559));new Set(["integer","small-integer"]);function l(e){return(0,a.y2)(e)||(0,a.UQ)(e)||(0,a.ig)(e)}function r(e,n){const{format:t,timeZoneOptions:a,fieldType:l}=n??{};let r,u;if(a&&({timeZone:r,timeZoneName:u}=(0,o.Np)(a.layerTimeZone,a.datesInUnknownTimezone,a.viewTimeZone,(0,i.Ze)(t||"short-date-short-time"),l)),"string"==typeof e&&isNaN(Date.parse("time-only"===l?`1970-01-01T${e}Z`:e)))return e;switch(l){case"date-only":{const n=(0,i.Ze)(t||"short-date");return"string"==typeof e?(0,i.o8)(e,{...n}):(0,i.p6)(e,{...n,timeZone:o.pt})}case"time-only":{const n=(0,i.Ze)(t||"short-time");return"string"==typeof e?(0,i.LJ)(e,n):(0,i.p6)(e,{...n,timeZone:o.pt})}case"timestamp-offset":{if(!r&&"string"==typeof e&&new Date(e).toISOString()!==e)return e;const n=t||a?(0,i.Ze)(t||"short-date-short-time"):void 0,o=n?{...n,timeZone:r,timeZoneName:u}:void 0;return"string"==typeof e?(0,i.i$)(e,o):(0,i.p6)(e,o)}default:{const n=t||a?(0,i.Ze)(t||"short-date-short-time"):void 0;return(0,i.p6)("string"==typeof e?new Date(e):e,n?{...n,timeZone:r,timeZoneName:u}:void 0)}}}},76432:function(e,n,t){t.d(n,{DL:function(){return q},F_:function(){return S},G2:function(){return $},H0:function(){return y},Lq:function(){return g},Qm:function(){return E},S5:function(){return v},XL:function(){return h},eT:function(){return C},fk:function(){return P},i5:function(){return T},oF:function(){return L},wk:function(){return p}});var i=t(82392),a=t(22595);const o="",l="equal-interval",r=1,u=5,s=10,m=/\s*(\+|-)?((\d+(\.\d+)?)|(\.\d+))\s*/gi,f=new Set(["esriFieldTypeDate","esriFieldTypeInteger","esriFieldTypeSmallInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeLong","esriFieldTypeOID","esriFieldTypeBigInteger"]),c=new Set(["esriFieldTypeTimeOnly","esriFieldTypeDateOnly"]),d=["min","max","avg","stddev","count","sum","variance","nullcount","median"];function p(e){return null==e||"string"==typeof e&&!e?o:e}function v(e){const n=null!=e.normalizationField||null!=e.normalizationType,t=null!=e.minValue||null!=e.maxValue,i=!!e.sqlExpression&&e.supportsSQLExpression;return!n&&!t&&!i}function y(e){const n=e.returnDistinct?[...new Set(e.values)]:e.values,t=n.filter((e=>null!=e)).sort(),i=t.length,a={count:i,min:t[0],max:t[i-1]};return e.supportsNullCount&&(a.nullcount=n.length-i),e.percentileParams&&(a.median=h(n,e.percentileParams)),a}function T(e){const{values:n,useSampleStdDev:t,supportsNullCount:i}=e;let a=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,l=null,r=null,u=null,s=null,m=0;const f=null==e.minValue?-1/0:e.minValue,c=null==e.maxValue?1/0:e.maxValue;for(const e of n)Number.isFinite(e)?e>=f&&e<=c&&(l=null===l?e:l+e,a=Math.min(a,e),o=Math.max(o,e),m++):"string"==typeof e&&m++;if(m&&null!=l){r=l/m;let e=0;for(const t of n)Number.isFinite(t)&&t>=f&&t<=c&&(e+=(t-r)**2);s=t?m>1?e/(m-1):0:m>0?e/m:0,u=Math.sqrt(s)}else a=null,o=null;const d={avg:r,count:m,max:o,min:a,stddev:u,sum:l,variance:s};return i&&(d.nullcount=n.length-m),e.percentileParams&&(d.median=h(n,e.percentileParams)),d}function h(e,n){const{fieldType:t,value:i,orderBy:a,isDiscrete:o}=n,l=g(t,"desc"===a);if(0===(e=[...e].filter((e=>null!=e)).sort(((e,n)=>l(e,n)))).length)return null;if(i<=0)return e[0];if(i>=1)return e[e.length-1];const r=(e.length-1)*i,u=Math.floor(r),s=u+1,m=r%1,f=e[u],c=e[s];return s>=e.length||o||"string"==typeof f||"string"==typeof c?f:f*(1-m)+c*m}function g(e,n){if(e){if(f.has(e))return M(n);if(c.has(e))return w(n,!1);if("esriFieldTypeTimestampOffset"===e)return function(e){return e?F:z}(n);const t=w(n,!0);if("esriFieldTypeString"===e)return t;if("esriFieldTypeGUID"===e||"esriFieldTypeGlobalID"===e)return(e,n)=>t(Z(e),Z(n))}const t=n?1:-1,i=M(n),a=w(n,!0);return(e,n)=>"number"==typeof e&&"number"==typeof n?i(e,n):"string"==typeof e&&"string"==typeof n?a(e,n):t}const x=(e,n)=>null==e?null==n?0:1:null==n?-1:null,I=(e,n)=>null==e?null==n?0:-1:null==n?1:null;const z=(e,n)=>I(e,n)??(e===n?0:new Date(e).getTime()-new Date(n).getTime()),F=(e,n)=>x(e,n)??(e===n?0:new Date(n).getTime()-new Date(e).getTime());const V=(e,n)=>I(e,n)??(e===n?0:ex(e,n)??(e===n?0:e{const i=t(e,n);return null!=i?i:(e=e.toUpperCase())>(n=n.toUpperCase())?-1:e{const i=t(e,n);return null!=i?i:(e=e.toUpperCase())<(n=n.toUpperCase())?-1:e>n?1:0}}const D=(e,n)=>x(e,n)??n-e,N=(e,n)=>I(e,n)??e-n;function M(e){return e?D:N}function Z(e){return e.substr(24,12)+e.substr(19,4)+e.substr(16,2)+e.substr(14,2)+e.substr(11,2)+e.substr(9,2)+e.substr(6,2)+e.substr(4,2)+e.substr(2,2)+e.substr(0,2)}function S(e,n){let t;for(t in e)d.includes(t)&&(Number.isFinite(e[t])||(e[t]=null));return n?(["avg","stddev","variance"].forEach((n=>{null!=e[n]&&(e[n]=Math.ceil(e[n]??0))})),e):e}function C(e){const n={};for(let t of e)(null==t||"string"==typeof t&&""===t.trim())&&(t=null),null==n[t]?n[t]={count:1,data:t}:n[t].count++;return{count:n}}function k(e){return"coded-value"!==e?.type?[]:e.codedValues.map((e=>e.code))}function E(e,n,t,i){const a=e.count,o=[];if(t&&n){const e=[],t=k(n[0]);for(const a of t)if(n[1]){const t=k(n[1]);for(const o of t)if(n[2]){const t=k(n[2]);for(const n of t)e.push(`${p(a)}${i}${p(o)}${i}${p(n)}`)}else e.push(`${p(a)}${i}${p(o)}`)}else e.push(a);for(const n of e)a.hasOwnProperty(n)||(a[n]={data:n,count:0})}for(const e in a){const n=a[e];o.push({value:n.data,count:n.count,label:n.label})}return{uniqueValueInfos:o}}function P(e,n,t,i){let a=null;switch(n){case"log":0!==e&&(a=Math.log(e)*Math.LOG10E);break;case"percent-of-total":Number.isFinite(i)&&0!==i&&(a=e/i*100);break;case"field":Number.isFinite(t)&&0!==t&&(a=e/t);break;case"natural-log":e>0&&(a=Math.log(e));break;case"square-root":e>0&&(a=e**.5)}return a}function $(e,n){const t=O({field:n.field,normalizationType:n.normalizationType,normalizationField:n.normalizationField,classificationMethod:n.classificationMethod,standardDeviationInterval:n.standardDeviationInterval,breakCount:n.numClasses||u});return e=function(e,n,t){const i=n??-1/0,a=t??1/0;return e.filter((e=>Number.isFinite(e)&&e>=i&&e<=a))}(e,n.minValue,n.maxValue),(0,a.k)({definition:t,values:e,normalizationTotal:n.normalizationTotal})}function O(e){const{breakCount:n,field:t,normalizationField:a,normalizationType:o}=e,u=e.classificationMethod||l,s="standard-deviation"===u?e.standardDeviationInterval||r:void 0;return new i.Z({breakCount:n,classificationField:t,classificationMethod:u,normalizationField:"field"===o?a:void 0,normalizationType:o,standardDeviationInterval:s})}function q(e,n){let t=e.classBreaks;const i=t.length,a=t[0]?.minValue,o=t[i-1]?.maxValue,l="standard-deviation"===n,r=m;return t=t.map((e=>{const n=e.label,t={minValue:e.minValue,maxValue:e.maxValue,label:n};if(l&&n){const e=n.match(r),i=e?.map((e=>+e.trim()))??[];2===i.length?(t.minStdDev=i[0],t.maxStdDev=i[1],i[0]<0&&i[1]>0&&(t.hasAvg=!0)):1===i.length&&(n.includes("<")?(t.minStdDev=null,t.maxStdDev=i[0]):n.includes(">")&&(t.minStdDev=i[0],t.maxStdDev=null))}return t})),{minValue:a,maxValue:o,classBreakInfos:t,normalizationTotal:e.normalizationTotal}}function L(e,n){const t=G(e,n);if(null==t.min&&null==t.max)return{bins:[],minValue:t.min,maxValue:t.max,normalizationTotal:n.normalizationTotal};const i=t.intervals,a=t.min??0,o=t.max??0,l=i.map(((e,n)=>({minValue:i[n][0],maxValue:i[n][1],count:0})));for(const n of e)if(null!=n&&n>=a&&n<=o){const e=_(i,n);e>-1&&l[e].count++}return{bins:l,minValue:a,maxValue:o,normalizationTotal:n.normalizationTotal}}function G(e,n){const{field:t,classificationMethod:i,standardDeviationInterval:a,normalizationType:o,normalizationField:l,normalizationTotal:r,minValue:u,maxValue:m}=n,f=n.numBins||s;let c=null,d=null,p=null;if(i&&"equal-interval"!==i||o){const{classBreaks:n}=$(e,{field:t,normalizationType:o,normalizationField:l,normalizationTotal:r,classificationMethod:i,standardDeviationInterval:a,minValue:u,maxValue:m,numClasses:f});c=n[0].minValue,d=n[n.length-1].maxValue,p=n.map((e=>[e.minValue,e.maxValue]))}else{if(null!=u&&null!=m)c=u,d=m;else{const n=T({values:e,minValue:u,maxValue:m,useSampleStdDev:!o,supportsNullCount:v({normalizationType:o,normalizationField:l,minValue:u,maxValue:m})});c=n.min??null,d=n.max??null}p=function(e,n,t){const i=(n-e)/t,a=[];let o,l=e;for(let e=1;e<=t;e++)o=l+i,o=Number(o.toFixed(16)),a.push([l,e===t?n:o]),l=o;return a}(c??0,d??0,f)}return{min:c,max:d,intervals:p}}function _(e,n){let t=-1;for(let i=e.length-1;i>=0;i--)if(n>=e[i][0]){t=i;break}return t}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3814.9d0c5c3c75621bcb4a81.js b/docs/sentinel1-explorer/3814.9d0c5c3c75621bcb4a81.js new file mode 100644 index 00000000..1a833dfa --- /dev/null +++ b/docs/sentinel1-explorer/3814.9d0c5c3c75621bcb4a81.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3814],{43814:function(e,a,o){o.r(a),o.d(a,{default:function(){return r}});const r={_decimalSeparator:".",_thousandSeparator:",",_percentPrefix:null,_percentSuffix:"%",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"hh:mm:ss a",_date_second_full:"hh:mm:ss a",_date_minute:"hh:mm a",_date_minute_full:"hh:mm a - MMM dd, yyyy",_date_hour:"hh:mm a",_date_hour_full:"hh:mm a - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_second:"ss",_duration_minute:"mm",_duration_hour:"hh",_duration_day:"dd",_duration_week:"ww",_duration_month:"MM",_duration_year:"yyyy",_era_ad:"AD",_era_bc:"BC",A:"",P:"",AM:"",PM:"","A.M.":"","P.M.":"",January:"",February:"",March:"",April:"",May:"",June:"",July:"",August:"",September:"",October:"",November:"",December:"",Jan:"",Feb:"",Mar:"",Apr:"","May(short)":"May",Jun:"",Jul:"",Aug:"",Sep:"",Oct:"",Nov:"",Dec:"",Sunday:"",Monday:"",Tuesday:"",Wednesday:"",Thursday:"",Friday:"",Saturday:"",Sun:"",Mon:"",Tue:"",Wed:"",Thu:"",Fri:"",Sat:"",_dateOrd:function(e){let a="th";if(e<11||e>13)switch(e%10){case 1:a="st";break;case 2:a="nd";break;case 3:a="rd"}return a},Play:"",Stop:"","Zoom Out":"",Legend:"","Press ENTER to toggle":"",Loading:"",Home:"",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Chord diagram":"","Flow diagram":"","TreeMap chart":"",Series:"","Candlestick Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"",Image:"",Data:"",Print:"","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"","From %1":"","To %1":"","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3822.8763352f30e46e3b0011.js b/docs/sentinel1-explorer/3822.8763352f30e46e3b0011.js new file mode 100644 index 00000000..dcebf2e5 --- /dev/null +++ b/docs/sentinel1-explorer/3822.8763352f30e46e3b0011.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3822],{33822:function(e,t,i){i.r(t),i.d(t,{default:function(){return d}});var s=i(36663),r=i(6865),a=i(81977),n=(i(39994),i(13802),i(4157),i(40266)),o=i(66878),l=i(26216);let p=class extends((0,o.y)(l.Z)){constructor(){super(...arguments),this.layerViews=new r.Z}get dynamicGroupLayerView(){return this.layerViews.find((e=>e.layer===this.layer?.dynamicGroupLayer))}get footprintLayerView(){return this.layerViews.find((e=>e.layer===this.layer?.footprintLayer))}update(e){}moveStart(){}viewChange(){}moveEnd(){}attach(){this.addAttachHandles([this._updatingHandles.addOnCollectionChange((()=>this.layerViews),(()=>this._updateStageChildren()),{initial:!0})])}detach(){this.container.removeAllChildren()}isUpdating(){return this.layerViews.some((e=>e.updating))}_updateStageChildren(){this.container.removeAllChildren(),this.layerViews.forEach(((e,t)=>this.container.addChildAt(e.container,t)))}};(0,s._)([(0,a.Cb)()],p.prototype,"dynamicGroupLayerView",null),(0,s._)([(0,a.Cb)()],p.prototype,"footprintLayerView",null),(0,s._)([(0,a.Cb)()],p.prototype,"layerViews",void 0),p=(0,s._)([(0,n.j)("esri.views.2d.layers.CatalogLayerView2D")],p);const d=p},66878:function(e,t,i){i.d(t,{y:function(){return w}});var s=i(36663),r=i(6865),a=i(58811),n=i(70375),o=i(76868),l=i(81977),p=(i(39994),i(13802),i(4157),i(40266)),d=i(68577),h=i(10530),u=i(98114),c=i(55755),y=i(88723),v=i(96294);let g=class extends v.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,s._)([(0,l.Cb)({type:[[[Number]]],json:{write:!0}})],g.prototype,"path",void 0),g=(0,s._)([(0,p.j)("esri.views.layers.support.Path")],g);const f=g,b=r.Z.ofType({key:"type",base:null,typeMap:{rect:c.Z,path:f,geometry:y.Z}}),w=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new b,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new n.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new h.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,o.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),o.tX),(0,o.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),o.tX),(0,o.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),o.tX),(0,o.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),o.tX),(0,o.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),o.tX),(0,o.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),o.tX),(0,o.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),o.tX),(0,o.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),o.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:i,maxScale:s}=t;return(0,d.o2)(e,i,s)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,i=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),i&&(e.outsideScaleRange=i),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,s._)([(0,l.Cb)()],t.prototype,"attached",void 0),(0,s._)([(0,l.Cb)({type:b,set(e){const t=(0,a.Z)(e,this._get("clips"),b);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"container",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"moving",void 0),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"updateRequested",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"updateSuspended",null),(0,s._)([(0,l.Cb)()],t.prototype,"updating",null),(0,s._)([(0,l.Cb)()],t.prototype,"view",void 0),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,s._)([(0,l.Cb)({type:u.Z})],t.prototype,"highlightOptions",void 0),t=(0,s._)([(0,p.j)("esri.views.2d.layers.LayerView2D")],t),t}},26216:function(e,t,i){i.d(t,{Z:function(){return y}});var s=i(36663),r=i(74396),a=i(31355),n=i(86618),o=i(13802),l=i(61681),p=i(64189),d=i(81977),h=(i(39994),i(4157),i(40266)),u=i(98940);let c=class extends((0,n.IG)((0,p.v)(a.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new u.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";o.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,l.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,s._)([(0,d.Cb)()],c.prototype,"fullOpacity",null),(0,s._)([(0,d.Cb)()],c.prototype,"layer",void 0),(0,s._)([(0,d.Cb)()],c.prototype,"parent",void 0),(0,s._)([(0,d.Cb)({readOnly:!0})],c.prototype,"suspended",null),(0,s._)([(0,d.Cb)({readOnly:!0})],c.prototype,"suspendInfo",null),(0,s._)([(0,d.Cb)({readOnly:!0})],c.prototype,"legendEnabled",null),(0,s._)([(0,d.Cb)({type:Boolean,readOnly:!0})],c.prototype,"updating",null),(0,s._)([(0,d.Cb)({readOnly:!0})],c.prototype,"updatingProgress",null),(0,s._)([(0,d.Cb)()],c.prototype,"visible",null),(0,s._)([(0,d.Cb)()],c.prototype,"view",void 0),c=(0,s._)([(0,h.j)("esri.views.layers.LayerView")],c);const y=c},88723:function(e,t,i){i.d(t,{Z:function(){return y}});var s,r=i(36663),a=(i(91957),i(81977)),n=(i(39994),i(13802),i(4157),i(40266)),o=i(20031),l=i(53736),p=i(96294),d=i(91772),h=i(89542);const u={base:o.Z,key:"type",typeMap:{extent:d.Z,polygon:h.Z}};let c=s=class extends p.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new s({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,a.Cb)({types:u,json:{read:l.im,write:!0}})],c.prototype,"geometry",void 0),c=s=(0,r._)([(0,n.j)("esri.views.layers.support.Geometry")],c);const y=c}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3860.2e5fe30ec90233f89924.js b/docs/sentinel1-explorer/3860.2e5fe30ec90233f89924.js new file mode 100644 index 00000000..ed33928f --- /dev/null +++ b/docs/sentinel1-explorer/3860.2e5fe30ec90233f89924.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3860],{24778:function(e,t,i){i.d(t,{b:function(){return f}});var s=i(70375),r=i(39994),n=i(13802),a=i(78668),o=i(14266),h=i(88013),l=i(64429),u=i(91907),d=i(18567),p=i(71449),c=i(80479);class y{constructor(e,t,i){this._texture=null,this._lastTexture=null,this._fbos={},this.texelSize=4;const{buffer:s,pixelType:r,textureOnly:n}=e,a=(0,l.UK)(r);this.blockIndex=i,this.pixelType=r,this.size=t,this.textureOnly=n,n||(this.data=new a(s)),this._resetRange()}destroy(){this._texture?.dispose();for(const e in this._fbos){const t=this._fbos[e];t&&("0"===e&&t.detachColorTexture(),t.dispose()),this._fbos[e]=null}this._texture=null}get _textureDesc(){const e=new c.X;return e.wrapMode=u.e8.CLAMP_TO_EDGE,e.samplingMode=u.cw.NEAREST,e.dataType=this.pixelType,e.width=this.size,e.height=this.size,e}setData(e,t,i){const s=(0,h.jL)(e),r=this.data,n=s*this.texelSize+t;!r||n>=r.length||(r[n]=i,this.dirtyStart=Math.min(this.dirtyStart,s),this.dirtyEnd=Math.max(this.dirtyEnd,s))}getData(e,t){if(null==this.data)return null;const i=(0,h.jL)(e)*this.texelSize+t;return!this.data||i>=this.data.length?null:this.data[i]}getTexture(e){return this._texture??this._initTexture(e)}getFBO(e,t=0){if(!this._fbos[t]){const i=0===t?this.getTexture(e):this._textureDesc;this._fbos[t]=new d.X(e,i)}return this._fbos[t]}get hasDirty(){const e=this.dirtyStart;return this.dirtyEnd>=e}updateTexture(e,t){try{const t=this.dirtyStart,i=this.dirtyEnd;if(!this.hasDirty)return;(0,r.Z)("esri-2d-update-debug"),this._resetRange();const a=this.data.buffer,o=this.getTexture(e),h=4,u=(t-t%this.size)/this.size,d=(i-i%this.size)/this.size,p=u,c=this.size,y=d,g=u*this.size*h,_=(c+y*this.size)*h-g,f=(0,l.UK)(this.pixelType),b=new f(a,g*f.BYTES_PER_ELEMENT,_),v=this.size,w=y-p+1;if(w>this.size)return void n.Z.getLogger("esri.views.2d.engine.webgl.AttributeStoreView").error(new s.Z("mapview-webgl","Out-of-bounds index when updating AttributeData"));o.updateData(0,0,p,v,w,b)}catch(e){}}update(e){const{data:t,start:i,end:s}=e;if(null!=t&&null!=this.data){const s=this.data,r=i*this.texelSize;for(let i=0;inull!=e?new y(e,this.size,t):null));else for(let e=0;e{(0,r.Z)("esri-2d-update-debug")})),this._version=e.version,this._pendingAttributeUpdates.push({inner:e,resolver:t}),(0,r.Z)("esri-2d-update-debug")}get currentEpoch(){return this._epoch}update(){if(this._locked)return;const e=this._pendingAttributeUpdates;this._pendingAttributeUpdates=[];for(const{inner:t,resolver:i}of e){const{blockData:e,initArgs:s,sendUpdateEpoch:n,version:a}=t;(0,r.Z)("esri-2d-update-debug"),this._version=a,this._epoch=n,null!=s&&this._initialize(s);const o=this._data;for(let t=0;te.destroy())),this.removeAllChildren(),this.attributeView.destroy()}doRender(e){e.context.capabilities.enable("textureFloat"),super.doRender(e)}createRenderParams(e){const t=super.createRenderParams(e);return t.attributeView=this.attributeView,t.instanceStore=this._instanceStore,t.statisticsByLevel=this._statisticsByLevel,t}}},70179:function(e,t,i){i.d(t,{Z:function(){return l}});var s=i(39994),r=i(38716),n=i(10994),a=i(22598),o=i(27946);const h=(e,t)=>e.key.level-t.key.level!=0?e.key.level-t.key.level:e.key.row-t.key.row!=0?e.key.row-t.key.row:e.key.col-t.key.col;class l extends n.Z{constructor(e){super(),this._tileInfoView=e}renderChildren(e){this.sortChildren(h),this.setStencilReference(e),super.renderChildren(e)}createRenderParams(e){const{state:t}=e,i=super.createRenderParams(e);return i.requiredLevel=this._tileInfoView.getClosestInfoForScale(t.scale).level,i.displayLevel=this._tileInfoView.tileInfo.scaleToZoom(t.scale),i}prepareRenderPasses(e){const t=super.prepareRenderPasses(e);return t.push(e.registerRenderPass({name:"stencil",brushes:[a.Z],drawPhase:r.jx.DEBUG|r.jx.MAP|r.jx.HIGHLIGHT|r.jx.LABEL,target:()=>this.getStencilTarget()})),(0,s.Z)("esri-tiles-debug")&&t.push(e.registerRenderPass({name:"tileInfo",brushes:[o.Z],drawPhase:r.jx.DEBUG,target:()=>this.children})),t}getStencilTarget(){return this.children}setStencilReference(e){let t=1;for(const e of this.children)e.stencilRef=t++}}},16699:function(e,t,i){i.d(t,{o:function(){return r}});var s=i(77206);class r{constructor(e,t,i,s,r){this._instanceId=e,this.techniqueRef=t,this._meshWriterName=i,this._input=s,this.optionalAttributes=r}get instanceId(){return(0,s.G)(this._instanceId)}createMeshInfo(e){return{id:this._instanceId,meshWriterName:this._meshWriterName,options:e,optionalAttributes:this.optionalAttributes}}getInput(){return this._input}setInput(e){this._input=e}}},66878:function(e,t,i){i.d(t,{y:function(){return v}});var s=i(36663),r=i(6865),n=i(58811),a=i(70375),o=i(76868),h=i(81977),l=(i(39994),i(13802),i(4157),i(40266)),u=i(68577),d=i(10530),p=i(98114),c=i(55755),y=i(88723),g=i(96294);let _=class extends g.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,s._)([(0,h.Cb)({type:[[[Number]]],json:{write:!0}})],_.prototype,"path",void 0),_=(0,s._)([(0,l.j)("esri.views.layers.support.Path")],_);const f=_,b=r.Z.ofType({key:"type",base:null,typeMap:{rect:c.Z,path:f,geometry:y.Z}}),v=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new b,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new a.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new d.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,o.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),o.tX),(0,o.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),o.tX),(0,o.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),o.tX),(0,o.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),o.tX),(0,o.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),o.tX),(0,o.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),o.tX),(0,o.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),o.tX),(0,o.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),o.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:i,maxScale:s}=t;return(0,u.o2)(e,i,s)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,i=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),i&&(e.outsideScaleRange=i),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,s._)([(0,h.Cb)()],t.prototype,"attached",void 0),(0,s._)([(0,h.Cb)({type:b,set(e){const t=(0,n.Z)(e,this._get("clips"),b);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"container",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"moving",void 0),(0,s._)([(0,h.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,s._)([(0,h.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"updateRequested",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"updateSuspended",null),(0,s._)([(0,h.Cb)()],t.prototype,"updating",null),(0,s._)([(0,h.Cb)()],t.prototype,"view",void 0),(0,s._)([(0,h.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,s._)([(0,h.Cb)({type:p.Z})],t.prototype,"highlightOptions",void 0),t=(0,s._)([(0,l.j)("esri.views.2d.layers.LayerView2D")],t),t}},91792:function(e,t,i){i.d(t,{i:function(){return r}});var s=i(26991);class r{constructor(){this._idToCounters=new Map}get empty(){return 0===this._idToCounters.size}addReason(e,t){for(const i of e){let e=this._idToCounters.get(i);e||(e=new Map,this._idToCounters.set(i,e)),e.set(t,(e.get(t)||0)+1)}}deleteReason(e,t){for(const i of e){const e=this._idToCounters.get(i);if(!e)continue;let s=e.get(t);if(null==s)return;s--,s>0?e.set(t,s):e.delete(t),0===e.size&&this._idToCounters.delete(i)}}getHighestReason(e){const t=this._idToCounters.get(e);if(!t)return null;let i=null;for(const e of s.Oo)t.get(e)&&(i=e);return i||null}ids(){return this._idToCounters.keys()}}},26216:function(e,t,i){i.d(t,{Z:function(){return y}});var s=i(36663),r=i(74396),n=i(31355),a=i(86618),o=i(13802),h=i(61681),l=i(64189),u=i(81977),d=(i(39994),i(4157),i(40266)),p=i(98940);let c=class extends((0,a.IG)((0,l.v)(n.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new p.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";o.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,h.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,s._)([(0,u.Cb)()],c.prototype,"fullOpacity",null),(0,s._)([(0,u.Cb)()],c.prototype,"layer",void 0),(0,s._)([(0,u.Cb)()],c.prototype,"parent",void 0),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"suspended",null),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"suspendInfo",null),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"legendEnabled",null),(0,s._)([(0,u.Cb)({type:Boolean,readOnly:!0})],c.prototype,"updating",null),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"updatingProgress",null),(0,s._)([(0,u.Cb)()],c.prototype,"visible",null),(0,s._)([(0,u.Cb)()],c.prototype,"view",void 0),c=(0,s._)([(0,d.j)("esri.views.layers.LayerView")],c);const y=c},88723:function(e,t,i){i.d(t,{Z:function(){return y}});var s,r=i(36663),n=(i(91957),i(81977)),a=(i(39994),i(13802),i(4157),i(40266)),o=i(20031),h=i(53736),l=i(96294),u=i(91772),d=i(89542);const p={base:o.Z,key:"type",typeMap:{extent:u.Z,polygon:d.Z}};let c=s=class extends l.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new s({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,n.Cb)({types:p,json:{read:h.im,write:!0}})],c.prototype,"geometry",void 0),c=s=(0,r._)([(0,a.j)("esri.views.layers.support.Geometry")],c);const y=c}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3912.1a17db0fafc909ab661b.js b/docs/sentinel1-explorer/3912.1a17db0fafc909ab661b.js new file mode 100644 index 00000000..7371f252 --- /dev/null +++ b/docs/sentinel1-explorer/3912.1a17db0fafc909ab661b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3912],{63912:function(e,s,i){i.r(s),i.d(s,{default:function(){return l}});var t=i(36663),r=i(39994),a=i(76868),n=(i(13802),i(4157),i(70375),i(40266)),u=i(15881);let d=class extends u.default{initialize(){this.addHandles([(0,a.YP)((()=>this.view.scale),(()=>this._update()),a.nn)],"constructor")}isUpdating(){const e=this.layer.sublayers.some((e=>null!=e.renderer)),s=this._commandsQueue.updateTracking.updating,i=null!=this._updatingRequiredFieldsPromise,t=!this._worker,a=this.dataUpdating,n=e&&(s||i||t||a);return(0,r.Z)("esri-2d-log-updating"),n}};d=(0,t._)([(0,n.j)("esri.views.2d.layers.SubtypeGroupLayerView2D")],d);const l=d}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3963.25fd225f3b8d416004a0.js b/docs/sentinel1-explorer/3963.25fd225f3b8d416004a0.js new file mode 100644 index 00000000..4635e15f --- /dev/null +++ b/docs/sentinel1-explorer/3963.25fd225f3b8d416004a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3963],{66318:function(e,t,n){function r(e){return null!=a(e)||null!=i(e)}function o(e){return u.test(e)}function s(e){return a(e)??i(e)}function i(e){const t=new Date(e);return function(e,t){if(Number.isNaN(e.getTime()))return!1;let n=!0;if(p&&/\d+\W*$/.test(t)){const e=t.match(/[a-zA-Z]{2,}/);if(e){let t=!1,r=0;for(;!t&&r<=e.length;)t=!l.test(e[r]),r++;n=!t}}return n}(t,e)?Number.isNaN(t.getTime())?null:t.getTime()-6e4*t.getTimezoneOffset():null}function a(e){const t=u.exec(e);if(!t?.groups)return null;const n=t.groups,r=+n.year,o=+n.month-1,s=+n.day,i=+(n.hours??"0"),a=+(n.minutes??"0"),l=+(n.seconds??"0");if(i>23)return null;if(a>59)return null;if(l>59)return null;const p=n.ms??"0",c=p?+p.padEnd(3,"0").substring(0,3):0;let d;if(n.isUTC||!n.offsetSign)d=Date.UTC(r,o,s,i,a,l,c);else{const e=+n.offsetHours,t=+n.offsetMinutes;d=6e4*("+"===n.offsetSign?-1:1)*(60*e+t)+Date.UTC(r,o,s,i,a,l,c)}return Number.isNaN(d)?null:d}n.d(t,{mu:function(){return o},of:function(){return r},sG:function(){return s}});const u=/^(?:(?-?\d{4,})-(?\d{2})-(?\d{2}))(?:T(?\d{2}):(?\d{2}):(?\d{2})(?:\.(?\d+))?)?(?:(?Z)|(?:(?\+|-)(?\d{2}):(?\d{2})))?$/;const l=/^((jan(uary)?)|(feb(ruary)?)|(mar(ch)?)|(apr(il)?)|(may)|(jun(e)?)|(jul(y)?)|(aug(ust)?)|(sep(tember)?)|(oct(ober)?)|(nov(ember)?)|(dec(ember)?)|(am)|(pm)|(gmt)|(utc))$/i,p=!Number.isNaN(new Date("technology 10").getTime())},53963:function(e,t,n){n.r(t),n.d(t,{default:function(){return $}});var r=n(36663),o=(n(91957),n(80020)),s=(n(86004),n(55565),n(16192),n(71297),n(878),n(22836),n(50172),n(72043),n(72506),n(54021)),i=n(15842),a=n(81977),u=(n(39994),n(13802),n(4157),n(40266)),l=n(59659),p=n(38481),c=n(70375),d=n(68309),f=n(53237),y=n(51211),m=n(14685);let g=class extends d.Z{constructor(){super(...arguments),this.featureDefinition=null,this.type="ogc-feature"}load(e){return this.addResolvingPromise(this._loadOGCServices(this.layer,e)),this.when()}getSource(){const{featureDefinition:{collection:e,layerDefinition:t,spatialReference:n,supportedCrs:r},layer:{apiKey:o,customParameters:s,effectiveMaxRecordCount:i}}=this;return{type:"ogc-source",collection:e,layerDefinition:t,maxRecordCount:i,queryParameters:{apiKey:o,customParameters:s},spatialReference:n,supportedCrs:r}}queryExtent(e,t={}){return null}queryFeatureCount(e,t={}){return null}queryFeatures(e,t={}){return this.queryFeaturesJSON(e,t).then((e=>y.Z.fromJSON(e)))}queryFeaturesJSON(e,t={}){const n=this.getSource();return this.load(t).then((()=>(0,f.yN)(n,e,t)))}queryObjectIds(e,t={}){return null}serviceSupportsSpatialReference(e){return!(!e.isWGS84&&!e.isWebMercator&&!this.featureDefinition.supportedCrs[e.wkid])}_conformsToType(e,t){const n=new RegExp(`^${t}$`,"i");return e.conformsTo.some((e=>n.test(e)))??!1}_getCapabilities(e,t){return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:e},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{maxRecordCount:t,maxRecordCountFactor:void 0,standardMaxRecordCount:void 0,supportsCacheHint:!1,supportsCentroid:!1,supportsDisjointSpatialRelationship:!1,supportsDistance:!1,supportsDistinct:!1,supportsExtent:!1,supportsFormatPBF:!1,supportsGeometryProperties:!1,supportsHavingClause:!1,supportsHistoricMoment:!1,supportsMaxRecordCountFactor:!1,supportsOrderBy:!1,supportsPagination:!1,supportsPercentileStatistics:!1,supportsQuantization:!1,supportsQuantizationEditMode:!1,supportsQueryByAnonymous:!1,supportsQueryByOthers:!1,supportsQueryGeometry:!1,supportsResultType:!1,supportsStandardizedQueriesOnly:!1,supportsTopFeaturesQuery:!1,supportsStatistics:!1,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsDefaultSpatialReference:!1,supportsFullTextSearch:!1,supportsCompactGeometry:!1,supportsSqlExpression:!1,tileMaxRecordCount:void 0},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}_getMaxRecordCount(e){const t=e?.components?.parameters;return t?.limit?.schema?.maximum??t?.limitFeatures?.schema?.maximum}_getStorageSpatialReference(e){const t=e.storageCrs??f.$9,n=(0,f.d)(t);return null==n?m.Z.WGS84:new m.Z({wkid:n})}_getSupportedSpatialReferences(e,t){const n="#/crs",r=e.crs??[f.$9],o=r.includes(n)?r.filter((e=>e!==n)).concat(t.crs??[]):r,s=/^http:\/\/www\.opengis.net\/def\/crs\/epsg\/.*\/3785$/i;return o.filter((e=>!s.test(e)))}async _loadOGCServices(e,t){const n=null!=t?t.signal:null,{apiKey:r,collectionId:o,customParameters:s,fields:i,geometryType:a,hasZ:u,objectIdField:p,timeInfo:d,url:y}=e,m={fields:i?.map((e=>e.toJSON())),geometryType:l.P.toJSON(a),hasZ:u??!1,objectIdField:p,timeInfo:d?.toJSON()},g={apiKey:r,customParameters:s,signal:n},h=await(0,f.gp)(y,g),[b,w]=await Promise.all([(0,f.G4)(h,g),(0,f.j)(h,g)]);if(!this._conformsToType(b,"http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson"))throw new c.Z("ogc-feature-layer:no-geojson-support","Server does not support geojson");const S=w.collections.find((({id:e})=>e===o));if(!S)throw new c.Z("ogc-feature-layer:collection-not-found","Server does not contain the named collection");const C=this._conformsToType(b,"http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30")?await(0,f.eS)(h,g):null,v=await(0,f.w9)(S,m,g),F=this._getMaxRecordCount(C),I=this._getCapabilities(v.hasZ,F),T=this._getStorageSpatialReference(S).toJSON(),j=this._getSupportedSpatialReferences(S,w),x=new RegExp(`^${f.Lu}`,"i"),P={};for(const e of j){const t=(0,f.d)(e);null!=t&&(P[t]||(P[t]=e.replace(x,"")))}this.featureDefinition={capabilities:I,collection:S,layerDefinition:v,spatialReference:T,supportedCrs:P}}};(0,r._)([(0,a.Cb)()],g.prototype,"featureDefinition",void 0),(0,r._)([(0,a.Cb)({constructOnly:!0})],g.prototype,"layer",void 0),(0,r._)([(0,a.Cb)()],g.prototype,"type",void 0),g=(0,r._)([(0,u.j)("esri.layers.graphics.sources.OGCFeatureSource")],g);var h=n(91223),b=n(27668),w=n(63989),S=n(22368),C=n(82733),v=n(43330),F=n(91610),I=n(18241),T=n(12478),j=n(95874),x=n(2030),P=n(51599),R=n(18160),Z=n(12512),_=n(89076),O=n(14845),D=n(26732),G=n(49341),N=n(14136),k=n(10171),M=n(91772);const q=(0,_.v)();let A=class extends((0,h.V)((0,w.N)((0,C.M)((0,S.b)((0,b.h)((0,F.c)((0,x.n)((0,j.M)((0,v.q)((0,I.I)((0,T.Q)((0,i.R)(p.Z))))))))))))){constructor(e){super(e),this.capabilities=null,this.collectionId=null,this.copyright=null,this.description=null,this.displayField=null,this.elevationInfo=null,this.fields=null,this.fieldsIndex=null,this.fullExtent=null,this.geometryType=null,this.hasZ=void 0,this.labelingInfo=null,this.labelsVisible=!0,this.legendEnabled=!0,this.maxRecordCount=null,this.objectIdField=null,this.operationalLayerType="OGCFeatureLayer",this.popupEnabled=!0,this.popupTemplate=null,this.screenSizePerspectiveEnabled=!0,this.source=new g({layer:this}),this.spatialReference=null,this.title=null,this.type="ogc-feature",this.typeIdField=null,this.types=null,this.url=null}destroy(){this.source?.destroy()}load(e){return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["OGCFeatureServer"]},e).then((()=>this._fetchService(e)))),this.when()}get defaultPopupTemplate(){return this.createPopupTemplate()}get effectiveMaxRecordCount(){return this.maxRecordCount??this.capabilities?.query.maxRecordCount??5e3}get isTable(){return this.loaded&&null==this.geometryType}set renderer(e){(0,O.YN)(e,this.fieldsIndex),this._set("renderer",e)}on(e,t){return super.on(e,t)}createPopupTemplate(e){return(0,k.eZ)(this,e)}createQuery(){return new N.Z}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){let n,r=!1;const o=t?.feature?.attributes,s=this.typeIdField&&o?.[this.typeIdField];return null!=s&&this.types&&(r=this.types.some((t=>t.id==s&&(n=t.domains?.[e],"inherited"===n?.type&&(n=this._getLayerDomain(e)),!0)))),r||n||(n=this._getLayerDomain(e)),n}queryFeatures(e,t){return this.load().then((()=>this.source.queryFeatures(N.Z.from(e)||this.createQuery(),t))).then((e=>(e?.features?.forEach((e=>{e.layer=e.sourceLayer=this})),e)))}serviceSupportsSpatialReference(e){return this.source?.serviceSupportsSpatialReference(e)??!1}async _fetchService(e){await this.source.load(e),this.read(this.source.featureDefinition,{origin:"service"}),(0,O.YN)(this.renderer,this.fieldsIndex),(0,O.UF)(this.timeInfo,this.fieldsIndex)}_getLayerDomain(e){if(!this.fields)return null;for(const t of this.fields)if(t.name===e&&t.domain)return t.domain;return null}};(0,r._)([(0,a.Cb)({readOnly:!0,json:{origins:{service:{read:!0}}}})],A.prototype,"capabilities",void 0),(0,r._)([(0,a.Cb)({type:String,json:{write:!0}})],A.prototype,"collectionId",void 0),(0,r._)([(0,a.Cb)({type:String})],A.prototype,"copyright",void 0),(0,r._)([(0,a.Cb)({readOnly:!0})],A.prototype,"defaultPopupTemplate",null),(0,r._)([(0,a.Cb)({readOnly:!0,type:String,json:{origins:{service:{name:"collection.description"}}}})],A.prototype,"description",void 0),(0,r._)([(0,a.Cb)({type:String})],A.prototype,"displayField",void 0),(0,r._)([(0,a.Cb)({type:Number})],A.prototype,"effectiveMaxRecordCount",null),(0,r._)([(0,a.Cb)(P.PV)],A.prototype,"elevationInfo",void 0),(0,r._)([(0,a.Cb)({type:[Z.Z],json:{origins:{service:{name:"layerDefinition.fields"}}}})],A.prototype,"fields",void 0),(0,r._)([(0,a.Cb)(q.fieldsIndex)],A.prototype,"fieldsIndex",void 0),(0,r._)([(0,a.Cb)({readOnly:!0,type:M.Z,json:{origins:{service:{name:"layerDefinition.extent"}}}})],A.prototype,"fullExtent",void 0),(0,r._)([(0,a.Cb)({type:l.M.apiValues,json:{origins:{service:{name:"layerDefinition.geometryType",read:{reader:l.M.read}}}}})],A.prototype,"geometryType",void 0),(0,r._)([(0,a.Cb)({type:Boolean,json:{origins:{service:{name:"layerDefinition.hasZ"}}}})],A.prototype,"hasZ",void 0),(0,r._)([(0,a.Cb)({type:Boolean,readOnly:!0})],A.prototype,"isTable",null),(0,r._)([(0,a.Cb)({type:[D.Z],json:{origins:{"web-document":{name:"layerDefinition.drawingInfo.labelingInfo",read:{reader:G.r},write:!0}}}})],A.prototype,"labelingInfo",void 0),(0,r._)([(0,a.Cb)(P.iR)],A.prototype,"labelsVisible",void 0),(0,r._)([(0,a.Cb)(P.rn)],A.prototype,"legendEnabled",void 0),(0,r._)([(0,a.Cb)({type:Number})],A.prototype,"maxRecordCount",void 0),(0,r._)([(0,a.Cb)({type:String,json:{origins:{service:{name:"layerDefinition.objectIdField"}}}})],A.prototype,"objectIdField",void 0),(0,r._)([(0,a.Cb)({type:["OGCFeatureLayer"]})],A.prototype,"operationalLayerType",void 0),(0,r._)([(0,a.Cb)(P.C_)],A.prototype,"popupEnabled",void 0),(0,r._)([(0,a.Cb)({type:o.Z,json:{name:"popupInfo",write:!0}})],A.prototype,"popupTemplate",void 0),(0,r._)([(0,a.Cb)({types:s.A,json:{origins:{service:{name:"layerDefinition.drawingInfo.renderer",write:!1},"web-scene":{types:s.o,name:"layerDefinition.drawingInfo.renderer",write:!0}},name:"layerDefinition.drawingInfo.renderer",write:!0}})],A.prototype,"renderer",null),(0,r._)([(0,a.Cb)(P.YI)],A.prototype,"screenSizePerspectiveEnabled",void 0),(0,r._)([(0,a.Cb)({readOnly:!0})],A.prototype,"source",void 0),(0,r._)([(0,a.Cb)({readOnly:!0,type:m.Z,json:{origins:{service:{read:!0}}}})],A.prototype,"spatialReference",void 0),(0,r._)([(0,a.Cb)({type:String,json:{write:{enabled:!0,ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"collection.title"}}}})],A.prototype,"title",void 0),(0,r._)([(0,a.Cb)({readOnly:!0,json:{read:!1}})],A.prototype,"type",void 0),(0,r._)([(0,a.Cb)({type:String,readOnly:!0})],A.prototype,"typeIdField",void 0),(0,r._)([(0,a.Cb)({type:[R.Z]})],A.prototype,"types",void 0),(0,r._)([(0,a.Cb)(P.HQ)],A.prototype,"url",void 0),A=(0,r._)([(0,u.j)("esri.layers.OGCFeatureLayer")],A);const $=A},10287:function(e,t,n){n.d(t,{g:function(){return r}});const r={supportsStatistics:!0,supportsPercentileStatistics:!0,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsCentroid:!0,supportsCacheHint:!1,supportsDistance:!0,supportsDistinct:!0,supportsExtent:!0,supportsGeometryProperties:!1,supportsHavingClause:!0,supportsOrderBy:!0,supportsPagination:!0,supportsQuantization:!0,supportsQuantizationEditMode:!1,supportsQueryGeometry:!0,supportsResultType:!1,supportsSqlExpression:!0,supportsMaxRecordCountFactor:!1,supportsStandardizedQueriesOnly:!0,supportsTopFeaturesQuery:!1,supportsQueryByAnonymous:!0,supportsQueryByOthers:!0,supportsHistoricMoment:!1,supportsFormatPBF:!1,supportsDisjointSpatialRelationship:!0,supportsDefaultSpatialReference:!1,supportsFullTextSearch:!1,supportsCompactGeometry:!1,maxRecordCountFactor:void 0,maxRecordCount:void 0,standardMaxRecordCount:void 0,tileMaxRecordCount:void 0}},61957:function(e,t,n){n.d(t,{O3:function(){return F},lG:function(){return T},my:function(){return I},q9:function(){return p}});var r=n(66318),o=n(70375),s=n(35925),i=n(59958),a=n(15540),u=n(14845);const l={LineString:"esriGeometryPolyline",MultiLineString:"esriGeometryPolyline",MultiPoint:"esriGeometryMultipoint",Point:"esriGeometryPoint",Polygon:"esriGeometryPolygon",MultiPolygon:"esriGeometryPolygon"};function p(e){return l[e]}function*c(e){switch(e.type){case"Feature":yield e;break;case"FeatureCollection":for(const t of e.features)t&&(yield t)}}function*d(e){if(e)switch(e.type){case"Point":yield e.coordinates;break;case"LineString":case"MultiPoint":yield*e.coordinates;break;case"MultiLineString":case"Polygon":for(const t of e.coordinates)yield*t;break;case"MultiPolygon":for(const t of e.coordinates)for(const e of t)yield*e}}function f(e){for(const t of e)if(t.length>2)return!0;return!1}function y(e){let t=0;for(let n=0;n=0;r--)C(e,t[r],n);e.lengths.push(t.length)}function C(e,t,n){const[r,o,s]=t;e.coords.push(r,o),n.hasZ&&e.coords.push(s||0)}function v(e){switch(typeof e){case"string":return(0,r.mu)(e)?"esriFieldTypeDate":"esriFieldTypeString";case"number":return"esriFieldTypeDouble";default:return"unknown"}}function F(e,t=4326){if(!e)throw new o.Z("geojson-layer:empty","GeoJSON data is empty");if("Feature"!==e.type&&"FeatureCollection"!==e.type)throw new o.Z("geojson-layer:unsupported-geojson-object","missing or not supported GeoJSON object type",{data:e});const{crs:n}=e;if(!n)return;const r="string"==typeof n?n:"name"===n.type?n.properties.name:"EPSG"===n.type?n.properties.code:null,i=(0,s.oR)({wkid:t})?new RegExp(".*(CRS84H?|4326)$","i"):new RegExp(`.*(${t})$`,"i");if(!r||!i.test(r))throw new o.Z("geojson:unsupported-crs","unsupported GeoJSON 'crs' member",{crs:n})}function I(e,t={}){const n=[],r=new Set,o=new Set;let s,i=!1,a=null,l=!1,{geometryType:y=null}=t,m=!1;for(const t of c(e)){const{geometry:e,properties:c,id:g}=t;if((!e||(y||(y=p(e.type)),p(e.type)===y))&&(i||(i=f(d(e))),l||(l=null!=g,l&&(s=typeof g,c&&(a=Object.keys(c).filter((e=>c[e]===g))))),c&&a&&l&&null!=g&&(a.length>1?a=a.filter((e=>c[e]===g)):1===a.length&&(a=c[a[0]]===g?a:[])),!m&&c)){let e=!0;for(const t in c){if(r.has(t))continue;const s=c[t];if(null==s){e=!1,o.add(t);continue}const i=v(s);if("unknown"===i){o.add(t);continue}o.delete(t),r.add(t);const a=(0,u.q6)(t);a&&n.push({name:a,alias:t,type:i})}m=e}}const g=(0,u.q6)(1===a?.length&&a[0]||null)??void 0;if(g)for(const e of n)if(e.name===g&&(0,u.H7)(e)){e.type="esriFieldTypeOID";break}return{fields:n,geometryType:y,hasZ:i,objectIdFieldName:g,objectIdFieldType:s,unknownFields:Array.from(o)}}function T(e,t){return Array.from(function*(e,t={}){const{geometryType:n,objectIdField:r}=t;for(const o of e){const{geometry:e,properties:s,id:u}=o;if(e&&p(e.type)!==n)continue;const l=s||{};let c;r&&(c=l[r],null==u||c||(l[r]=c=u));const d=new i.u_(e?g(new a.Z,e,t):null,l,null,c??void 0);yield d}}(c(e),t))}},40400:function(e,t,n){n.d(t,{Dm:function(){return p},Hq:function(){return c},MS:function(){return d},bU:function(){return a}});var r=n(39994),o=n(67134),s=n(10287),i=n(86094);function a(e){return{renderer:{type:"simple",symbol:"esriGeometryPoint"===e||"esriGeometryMultipoint"===e?i.I4:"esriGeometryPolyline"===e?i.ET:i.lF}}}const u=/^[_$a-zA-Z][_$a-zA-Z0-9]*$/;let l=1;function p(e,t){if((0,r.Z)("esri-csp-restrictions"))return()=>({[t]:null,...e});try{let n=`this.${t} = null;`;for(const t in e)n+=`this${u.test(t)?`.${t}`:`["${t}"]`} = ${JSON.stringify(e[t])};`;const r=new Function(`\n return class AttributesClass$${l++} {\n constructor() {\n ${n};\n }\n }\n `)();return()=>new r}catch(n){return()=>({[t]:null,...e})}}function c(e={}){return[{name:"New Feature",description:"",prototype:{attributes:(0,o.d9)(e)}}]}function d(e,t){return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:e},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:t,supportsDelete:t,supportsEditing:t,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:t,supportsExceedsLimitStatistics:!0,supportsAsyncConvert3D:!1},query:s.g,queryRelated:{supportsCount:!0,supportsOrderBy:!0,supportsPagination:!0,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsGeometryUpdate:t,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}},24366:function(e,t,n){n.d(t,{O0:function(){return d},av:function(){return u},b:function(){return g},d1:function(){return p},og:function(){return m}});var r=n(66318),o=n(35925),s=n(14845);class i{constructor(){this.code=null,this.description=null}}class a{constructor(e){this.error=new i,this.globalId=null,this.objectId=null,this.success=!1,this.uniqueId=null,this.error.description=e}}function u(e){return new a(e)}class l{constructor(e){this.globalId=null,this.success=!0,this.objectId=this.uniqueId=e}}function p(e){return new l(e)}const c=new Set;function d(e,t,n,r=!1){c.clear();for(const o in n){const i=e.get(o);if(!i)continue;const a=f(i,n[o]);if(c.add(i.name),i&&(r||i.editable)){const e=(0,s.Qc)(i,a);if(e)return u((0,s.vP)(e,i,a));t[i.name]=a}}for(const t of e?.requiredFields??[])if(!c.has(t.name))return u(`missing required field "${t.name}"`);return null}function f(e,t){let n=t;return(0,s.H7)(e)&&"string"==typeof t?n=parseFloat(t):(0,s.qN)(e)&&null!=t&&"string"!=typeof t?n=String(t):(0,s.y2)(e)&&"string"==typeof t&&(n=(0,r.sG)(t)),(0,s.Pz)(n)}let y;function m(e,t){if(!e||!(0,o.JY)(t))return e;if("rings"in e||"paths"in e){if(null==y)throw new TypeError("geometry engine not loaded");return y.simplify(t,e)}return e}async function g(e,t){!(0,o.JY)(e)||"esriGeometryPolygon"!==t&&"esriGeometryPolyline"!==t||await async function(){return null==y&&(y=await Promise.all([n.e(9067),n.e(3296)]).then(n.bind(n,8923))),y}()}},53237:function(e,t,n){n.d(t,{$9:function(){return v},G4:function(){return x},Lu:function(){return C},WW:function(){return O},d:function(){return Z},eS:function(){return R},gp:function(){return P},j:function(){return j},w9:function(){return T},yN:function(){return _}});n(91957);var r=n(66341),o=n(70375),s=n(13802),i=n(3466),a=n(35925),u=n(39536),l=n(12065),p=n(61619),c=n(61957),d=n(40400),f=n(24366),y=n(28790),m=n(86349),g=n(72559),h=n(14685);const b=()=>s.Z.getLogger("esri.layers.ogc.ogcFeatureUtils"),w="startindex",S=new Set([w,"offset"]),C="http://www.opengis.net/def/crs/",v=`${C}OGC/1.3/CRS84`;var F,I;async function T(e,t,n={},s=5){const{links:a}=e,u=M(a,"items",F.geojson)||M(a,"http://www.opengis.net/def/rel/ogc/1.0/items",F.geojson);if(null==u)throw new o.Z("ogc-feature-layer:missing-items-page","Missing items url");const{apiKey:l,customParameters:p,signal:f}=n,h=(0,i.hF)(u.href,e.landingPage.url),S={limit:s,...p,token:l},C=(0,i.fl)(h,S),v={accept:F.geojson},{data:I}=await(0,r.Z)(C,{signal:f,headers:v}),T=q(C,s,I.links)??w;(0,c.O3)(I);const j=(0,c.my)(I,{geometryType:t.geometryType}),x=t.fields||j.fields||[],P=null!=t.hasZ?t.hasZ:j.hasZ,R=j.geometryType,Z=t.objectIdField||j.objectIdFieldName||"OBJECTID";let _=t.timeInfo;const O=x.find((({name:e})=>e===Z));if(O)O.editable=!1,O.nullable=!1;else{if(!j.objectIdFieldType)throw new o.Z("ogc-feature-layer:missing-feature-id","Collection geojson require a feature id as a unique identifier");x.unshift({name:Z,alias:Z,type:"number"===j.objectIdFieldType?"esriFieldTypeOID":"esriFieldTypeString",editable:!1,nullable:!1})}if(Z!==j.objectIdFieldName){const e=x.find((({name:e})=>e===j.objectIdFieldName));e&&(e.type="esriFieldTypeInteger")}x===j.fields&&j.unknownFields.length>0&&b().warn({name:"ogc-feature-layer:unknown-field-types",message:"Some fields types couldn't be inferred from the features and were dropped",details:{unknownFields:j.unknownFields}});for(const e of x){if(null==e.name&&(e.name=e.alias),null==e.alias&&(e.alias=e.name),"esriFieldTypeOID"!==e.type&&"esriFieldTypeGlobalID"!==e.type&&(e.editable=null==e.editable||!!e.editable,e.nullable=null==e.nullable||!!e.nullable),!e.name)throw new o.Z("ogc-feature-layer:invalid-field-name","field name is missing",{field:e});if(!m.v.jsonValues.includes(e.type))throw new o.Z("ogc-feature-layer:invalid-field-type",`invalid type for field "${e.name}"`,{field:e})}if(_){const e=new y.Z(x);if(_.startTimeField){const t=e.get(_.startTimeField);t?(_.startTimeField=t.name,t.type="esriFieldTypeDate"):_.startTimeField=null}if(_.endTimeField){const t=e.get(_.endTimeField);t?(_.endTimeField=t.name,t.type="esriFieldTypeDate"):_.endTimeField=null}if(_.trackIdField){const t=e.get(_.trackIdField);t?_.trackIdField=t.name:(_.trackIdField=null,b().warn({name:"ogc-feature-layer:invalid-timeInfo-trackIdField",message:"trackIdField is missing",details:{timeInfo:_}}))}_.timeReference||={timeZoneIANA:g.pt},_.startTimeField||_.endTimeField||(b().warn({name:"ogc-feature-layer:invalid-timeInfo",message:"startTimeField and endTimeField are missing",details:{timeInfo:_}}),_=null)}return{drawingInfo:R?(0,d.bU)(R):null,extent:k(e),geometryType:R,fields:x,hasZ:!!P,objectIdField:Z,paginationParameter:T,timeInfo:_}}async function j(e,t={}){const{links:n,url:s}=e,a=M(n,"data",F.json)||M(n,"http://www.opengis.net/def/rel/ogc/1.0/data",F.json);if(null==a)throw new o.Z("ogc-feature-layer:missing-collections-page","Missing collections url");const{apiKey:u,customParameters:l,signal:p}=t,c=(0,i.hF)(a.href,s),{data:d}=await(0,r.Z)(c,{signal:p,headers:{accept:F.json},query:{...l,token:u}});for(const t of d.collections)t.landingPage=e;return d}async function x(e,t={}){const{links:n,url:s}=e,a=M(n,"conformance",F.json)||M(n,"http://www.opengis.net/def/rel/ogc/1.0/conformance",F.json);if(null==a)throw new o.Z("ogc-feature-layer:missing-conformance-page","Missing conformance url");const{apiKey:u,customParameters:l,signal:p}=t,c=(0,i.hF)(a.href,s),{data:d}=await(0,r.Z)(c,{signal:p,headers:{accept:F.json},query:{...l,token:u}});return d}async function P(e,t={}){const{apiKey:n,customParameters:o,signal:s}=t,{data:i}=await(0,r.Z)(e,{signal:s,headers:{accept:F.json},query:{...o,token:n}});return i.url=e,i}async function R(e,t={}){const{links:n,url:o}=e,s=M(n,"service-desc",F.openapi);if(null==s)return b().warn("ogc-feature-layer:missing-openapi-page","The OGC API-Features server does not have an OpenAPI page."),null;const{apiKey:a,customParameters:u,signal:l}=t,p=(0,i.hF)(s.href,o),{data:c}=await(0,r.Z)(p,{signal:l,headers:{accept:F.openapi},query:{...u,token:a}});return c}function Z(e){const t=/^http:\/\/www\.opengis.net\/def\/crs\/(?.*)\/(?.*)\/(?.*)$/i.exec(e),n=t?.groups;if(!n)return null;const{authority:r,code:o}=n;switch(r.toLowerCase()){case"ogc":switch(o.toLowerCase()){case"crs27":return h.Z.GCS_NAD_1927.wkid;case"crs83":return 4269;case"crs84":case"crs84h":return h.Z.WGS84.wkid;default:return null}case"esri":case"epsg":{const e=Number.parseInt(o,10);return Number.isNaN(e)?null:e}default:return null}}async function _(e,t,n){const r=await O(e,t,n);return(0,l.cn)(r)}async function O(e,t,n){const{collection:{links:s,landingPage:{url:d}},layerDefinition:m,maxRecordCount:g,queryParameters:{apiKey:b,customParameters:w},spatialReference:S,supportedCrs:C}=e,v=M(s,"items",F.geojson)||M(s,"http://www.opengis.net/def/rel/ogc/1.0/items",F.geojson);if(null==v)throw new o.Z("ogc-feature-layer:missing-items-page","Missing items url");const{geometry:I,num:T,start:j,timeExtent:x,where:P}=t;if(t.objectIds)throw new o.Z("ogc-feature-layer:query-by-objectids-not-supported","Queries with object ids are not supported");const R=h.Z.fromJSON(S),Z=t.outSpatialReference??R,_=Z.isWGS84?null:D(Z,C),O=N(I,C),G=function(e){if(null==e)return null;const{start:t,end:n}=e;return`${null!=t?t.toISOString():".."}/${null!=n?n.toISOString():".."}`}(x),k=null!=(V=P)&&V&&"1=1"!==V?V:null,q=T??(null==j?g:10),A=0===j?void 0:j,{fields:$,geometryType:E,hasZ:Q,objectIdField:L,paginationParameter:H}=m,B=(0,i.hF)(v.href,d),{data:U}=await(0,r.Z)(B,{...n,query:{...w,...O,crs:_,datetime:G,query:k,limit:q,[H]:A,token:b},headers:{accept:F.geojson}}),W=(0,c.lG)(U,{geometryType:E,hasZ:Q,objectIdField:L}),z=W.length===q&&!!M(U.links??[],"next",F.geojson),J=new y.Z($);var V;for(const e of W){const t={};(0,f.O0)(J,t,e.attributes),t[L]=e.attributes[L],e.attributes=t}if(!_&&Z.isWebMercator)for(const e of W)if(null!=e.geometry&&null!=E){const t=(0,l.di)(e.geometry,E,Q,!1);t.spatialReference=h.Z.WGS84,e.geometry=(0,l.GH)((0,u.iV)(t,Z))}for(const e of W)e.objectId=e.attributes[L];const K=_||!_&&Z.isWebMercator?Z.toJSON():a.YU,Y=new p.Z;return Y.exceededTransferLimit=z,Y.features=W,Y.fields=$,Y.geometryType=E,Y.hasZ=Q,Y.objectIdFieldName=L,Y.spatialReference=K,Y}function D(e,t){const{isWebMercator:n,wkid:r}=e;if(!r)return null;const o=n?t[3857]??t[102100]??t[102113]??t[900913]:t[e.wkid];return o?`${C}${o}`:null}function G(e){if(null==e)return"";const{xmin:t,ymin:n,xmax:r,ymax:o}=e;return`${t},${n},${r},${o}`}function N(e,t){if(!function(e){return null!=e&&"extent"===e.type}(e))return null;const{spatialReference:n}=e;if(!n||n.isWGS84)return{bbox:G(e)};const r=D(n,t);return null!=r?{bbox:G(e),"bbox-crs":r}:n.isWebMercator?{bbox:G((0,u.iV)(e,h.Z.WGS84))}:null}function k(e){const t=e.extent?.spatial;if(!t)return null;const n=t.bbox[0],r=4===n.length,[o,s]=n,i=r?void 0:n[2];return{xmin:o,ymin:s,xmax:r?n[2]:n[3],ymax:r?n[3]:n[4],zmin:i,zmax:r?void 0:n[5],spatialReference:h.Z.WGS84.toJSON()}}function M(e,t,n){return e.find((({rel:e,type:r})=>e===t&&r===n))??e.find((({rel:e,type:n})=>e===t&&!n))}function q(e,t,n){if(!n)return;const r=M(n,"next",F.geojson),o=(0,i.mN)(r?.href)?.query;if(!o)return;const s=(0,i.mN)(e).query,a=Object.keys(s??{}),u=Object.entries(o).filter((([e])=>!a.includes(e))).find((([e,n])=>S.has(e.toLowerCase())&&Number.parseInt(n,10)===t)),l=u?.[0];return l}(I=F||(F={})).json="application/json",I.geojson="application/geo+json",I.openapi="application/vnd.oai.openapi+json;version=3.0"}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3970.7530ef75cb680dd2c3e3.js b/docs/sentinel1-explorer/3970.7530ef75cb680dd2c3e3.js new file mode 100644 index 00000000..2fff4a6e --- /dev/null +++ b/docs/sentinel1-explorer/3970.7530ef75cb680dd2c3e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3970],{13295:function(e,t,i){i.d(t,{DE:function(){return a},EQ:function(){return l},Yc:function(){return u},co:function(){return s},nY:function(){return o},pQ:function(){return n}});var r=i(55065);function a(e,t){if(null==e)return null;const i={},a=new RegExp(`^${t}`,"i");for(const o of Object.keys(e))if(a.test(o)){const a=o.substring(t.length);i[r.Ul.fromJSON(a)]=e[o]}return i}function o(e,t,i){if(null!=e){t.attributes||(t.attributes={});for(const a in e){const o=r.Ul.toJSON(a);t.attributes[`${i}${o}`]=e[a]}}}function l(e){const t={};for(const i of Object.keys(e)){const a=i;t[r.Ul.fromJSON(a)]=e[i]}return t}function s(e){const t={};for(const i of Object.keys(e)){const a=i;t[r.Ul.toJSON(a)]=e[i]}return t}function n(e,t){return null==e||null==t?null:Math.round((e-t)/6e4)}function u(e){const t=e.toJSON(),i=t;return i.accumulateAttributeNames&&=t.accumulateAttributeNames?.join(),i.attributeParameterValues&&=JSON.stringify(t.attributeParameterValues),i.barriers&&=JSON.stringify(t.barriers),i.outSR&&=t.outSR?.wkid,i.overrides&&=JSON.stringify(t.overrides),i.polygonBarriers&&=JSON.stringify(t.polygonBarriers),i.polylineBarriers&&=JSON.stringify(t.polylineBarriers),i.restrictionAttributeNames&&=t.restrictionAttributeNames?.join(),i.stops&&=JSON.stringify(t.stops),i.travelMode&&=JSON.stringify(t.travelMode),i}},51801:function(e,t,i){i.d(t,{Z:function(){return y}});var r,a=i(36663),o=i(80085),l=i(80020),s=i(4905),n=i(41151),u=i(82064),p=i(81977),d=(i(39994),i(13802),i(4157),i(40266)),m=i(90819),b=i(55065);let c=r=class extends((0,n.J)(u.wq)){constructor(e){super(e),this.directionLineType=null,this.directionPointId=null,this.distance=null,this.duration=null,this.fromLevel=null,this.geometry=null,this.objectId=null,this.popupTemplate=null,this.symbol=null,this.toLevel=null,this.type="direction-line"}static fromGraphic(e){return new r({directionLineType:b.td.fromJSON(e.attributes.DirectionLineType),directionPointId:e.attributes.DirectionPointID,distance:e.attributes.Meters,duration:e.attributes.Minutes,fromLevel:e.attributes.FromLevel??null,geometry:e.geometry,objectId:e.attributes.ObjectID??e.attributes.__OBJECTID,popupTemplate:e.popupTemplate,symbol:e.symbol,toLevel:e.attributes.ToLevel??null})}toGraphic(){const e={ObjectID:this.objectId,DirectionLineType:null!=this.directionLineType?b.td.toJSON(this.directionLineType):null,DirectionPointID:this.directionPointId,Meters:this.distance,Minutes:this.duration};return null!=this.fromLevel&&(e.FromLevel=this.fromLevel),null!=this.toLevel&&(e.ToLevel=this.toLevel),new o.Z({geometry:this.geometry,attributes:e,symbol:this.symbol,popupTemplate:this.popupTemplate})}};c.fields=[{name:"ObjectID",alias:"ObjectID",type:"esriFieldTypeOID",editable:!1,nullable:!1,domain:null},{name:"DirectionLineType",alias:"Line Type",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0,domain:{type:"codedValue",name:"esriDirectionsLineType",codedValues:[{name:"Unknown",code:0},{name:"Segment",code:1},{name:"Maneuver Segment",code:2},{name:"Restriction violation",code:3},{name:"Scale cost barrier crossing",code:4},{name:"Heavy Traffic",code:5},{name:"Slow Traffic",code:6},{name:"Moderate Traffic",code:7}]}},{name:"DirectionPointID",alias:"Direction Point ID",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!1},{name:"FromLevel",alias:"Start from 3D Level",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!1},{name:"Meters",alias:"Length in Meters",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!0},{name:"Minutes",alias:"Duration in Minutes",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!0},{name:"ToLevel",alias:"End at 3D Level",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!1}],c.popupInfo={title:"Direction Lines",fieldInfos:[{fieldName:"DirectionLineType",label:"Line Type",isEditable:!1,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"Meters",label:"Length in Meters",isEditable:!1,tooltip:"",visible:!0,format:{places:2,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"Minutes",label:"Duration in Minutes",isEditable:!1,tooltip:"",visible:!0,format:{places:2,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"DirectionPointID",label:"Direction Point ID",isEditable:!1,tooltip:"",visible:!0,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"FromLevel",label:"Start from 3D Level",isEditable:!1,tooltip:"",visible:!1,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"ToLevel",label:"End at 3D Level",isEditable:!1,tooltip:"",visible:!1,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"}],description:null,showAttachments:!1,mediaInfos:[]},(0,a._)([(0,p.Cb)({type:b.td.apiValues,json:{read:{source:"attributes.DirectionLineType",reader:b.td.read}}})],c.prototype,"directionLineType",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.DirectionPointID"}}})],c.prototype,"directionPointId",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.Meters"}}})],c.prototype,"distance",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.Minutes"}}})],c.prototype,"duration",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.FromLevel"}}})],c.prototype,"fromLevel",void 0),(0,a._)([(0,p.Cb)({type:m.Z})],c.prototype,"geometry",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.ObjectID"}}})],c.prototype,"objectId",void 0),(0,a._)([(0,p.Cb)({type:l.Z})],c.prototype,"popupTemplate",void 0),(0,a._)([(0,p.Cb)({types:s.LB})],c.prototype,"symbol",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.ToLevel"}}})],c.prototype,"toLevel",void 0),(0,a._)([(0,p.Cb)({readOnly:!0,json:{read:!1}})],c.prototype,"type",void 0),c=r=(0,a._)([(0,d.j)("esri.rest.support.DirectionLine")],c);const y=c},45340:function(e,t,i){i.d(t,{Z:function(){return T}});var r,a=i(36663),o=i(80085),l=i(80020),s=i(4905),n=i(41151),u=i(82064),p=i(81977),d=(i(39994),i(13802),i(4157),i(34248)),m=i(40266),b=i(67666),c=i(55065);let y=r=class extends((0,n.J)(u.wq)){constructor(e){super(e),this.alternateName=null,this.arrivalTime=null,this.arrivalTimeOffset=null,this.azimuth=null,this.branchName=null,this.directionPointType=null,this.displayText=null,this.exitName=null,this.geometry=null,this.intersectingName=null,this.level=null,this.name=null,this.objectId=null,this.popupTemplate=null,this.sequence=null,this.shortVoiceInstruction=null,this.stopId=null,this.symbol=null,this.towardName=null,this.type="direction-point",this.voiceInstruction=null}readArrivalTime(e,t){return null!=t.attributes.ArrivalTime?new Date(t.attributes.ArrivalTime):null}static fromGraphic(e){return new r({alternateName:e.attributes.AlternateName??null,arrivalTime:null!=e.attributes.ArrivalTime?new Date(e.attributes.ArrivalTime):null,arrivalTimeOffset:e.attributes.ArrivalUTCOffset??null,azimuth:e.attributes.Azimuth??null,branchName:e.attributes.BranchName??null,directionPointType:c.cW.fromJSON(e.attributes.DirectionPointType),displayText:e.attributes.DisplayText??null,exitName:e.attributes.ExitName??null,geometry:e.geometry,intersectingName:e.attributes.IntersectingName??null,level:e.attributes.Level??null,name:e.attributes.Name??null,objectId:e.attributes.ObjectID??e.attributes.__OBJECTID,popupTemplate:e.popupTemplate,sequence:e.attributes.Sequence,shortVoiceInstruction:e.attributes.ShortVoiceInstruction??null,stopId:e.attributes.StopID??null,symbol:e.symbol,towardName:e.attributes.TowardName??null,voiceInstruction:e.attributes.VoiceInstruction??null})}toGraphic(){const e={ObjectID:this.objectId,DirectionPointType:null!=this.directionPointType?c.cW.toJSON(this.directionPointType):null,Sequence:this.sequence,StopID:this.stopId};return null!=this.alternateName&&(e.AlternateName=this.alternateName),null!=this.arrivalTime&&(e.ArrivalTime=this.arrivalTime.getTime()),null!=this.arrivalTimeOffset&&(e.ArrivalUTCOffset=this.arrivalTimeOffset),null!=this.azimuth&&(e.Azimuth=this.azimuth),null!=this.branchName&&(e.BranchName=this.branchName),null!=this.displayText&&(e.DisplayText=this.displayText),null!=this.exitName&&(e.ExitName=this.exitName),null!=this.intersectingName&&(e.IntersectingName=this.intersectingName),null!=this.level&&(e.Level=this.level),null!=this.name&&(e.Name=this.name),null!=this.shortVoiceInstruction&&(e.ShortVoiceInstruction=this.shortVoiceInstruction),null!=this.towardName&&(e.TowardName=this.towardName),null!=this.voiceInstruction&&(e.VoiceInstruction=this.voiceInstruction),new o.Z({geometry:this.geometry,attributes:e,symbol:this.symbol,popupTemplate:this.popupTemplate})}};y.fields=[{name:"ObjectID",alias:"ObjectID",type:"esriFieldTypeOID",editable:!1,nullable:!1,domain:null},{name:"AlternateName",alias:"Alternative Feature Name",type:"esriFieldTypeString",length:2048,editable:!0,nullable:!0,visible:!0,domain:null},{name:"ArrivalTime",alias:"Maneuver Starts at",type:"esriFieldTypeDate",length:36,editable:!0,nullable:!0,visible:!0},{name:"ArrivalUTCOffset",alias:"Offset from UTC in Minutes",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0},{name:"Azimuth",alias:"Azimuth",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!0},{name:"BranchName",alias:"Signpost Branch Name",type:"esriFieldTypeString",length:2048,editable:!0,nullable:!0,visible:!0,domain:null},{name:"DirectionPointType",alias:"Directions Item Type",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0,domain:{type:"codedValue",name:"esriDirectionPointType",codedValues:[{name:"Unknown",code:0},{name:"",code:1},{name:"Arrive at stop",code:50},{name:"Depart at stop",code:51},{name:"Go straight",code:52},{name:"Take ferry",code:100},{name:"Take off ferry",code:101},{name:"Keep center at fork",code:102},{name:"Take roundabout",code:103},{name:"Make U-Turn",code:104},{name:"Pass the door",code:150},{name:"Take stairs",code:151},{name:"",code:152},{name:"Take escalator",code:153},{name:"Take pedestrian ramp",code:154},{name:"Keep left at fork",code:200},{name:"Ramp left",code:201},{name:"Take left-handed roundabout",code:202},{name:"Make left-handed U-Turn",code:203},{name:"Bear left",code:204},{name:"Turn left",code:205},{name:"Make sharp left",code:206},{name:"Turn left, followed by turn left",code:207},{name:"Turn left, followed by turn right",code:208},{name:"Keep right at fork",code:300},{name:"Ramp right",code:301},{name:"Take right-handed roundabout",code:302},{name:"Make right-handed U-Turn",code:303},{name:"Bear right",code:304},{name:"Turn right",code:305},{name:"Make sharp right",code:306},{name:"Turn right, followed by turn left",code:307},{name:"Turn right, followed by turn right",code:308},{name:"Indicates up direction of elevator",code:400},{name:"Indicates up direction of escalator",code:401},{name:"Take up-stairs",code:402},{name:"Indicates down direction of elevator",code:500},{name:"Indicates down direction of escalator",code:501},{name:"Take down-stairs",code:502},{name:"General event",code:1e3},{name:"Landmark",code:1001},{name:"Time zone change",code:1002},{name:"Heavy traffic segment",code:1003},{name:"Scale cost barrier crossing",code:1004},{name:"Administrative Border crossing",code:1005},{name:"Restriction violation",code:1006}]}},{name:"DisplayText",alias:"Text to Display",type:"esriFieldTypeString",length:2048,editable:!0,nullable:!0,visible:!0,domain:null},{name:"ExitName",alias:"Highway Exit Name",type:"esriFieldTypeString",length:2048,editable:!0,nullable:!0,visible:!0,domain:null},{name:"IntersectingName",alias:"Intersecting Feature Name",type:"esriFieldTypeString",length:2048,editable:!0,nullable:!0,visible:!0,domain:null},{name:"Level",alias:"3D Logical Level",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0},{name:"Name",alias:"Primary Feature Name",type:"esriFieldTypeString",length:2048,editable:!0,nullable:!0,visible:!0,domain:null},{name:"Sequence",alias:"Sequence",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0},{name:"ShortVoiceInstruction",alias:"Voice Instruction",type:"esriFieldTypeString",length:2048,editable:!0,nullable:!0,visible:!0,domain:null},{name:"StopID",alias:"Stop ID",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0},{name:"TowardName",alias:"Signpost Toward Name",type:"esriFieldTypeString",length:2048,editable:!0,nullable:!0,visible:!0,domain:null},{name:"VoiceInstruction",alias:"Voice Full Instruction",type:"esriFieldTypeString",length:2048,editable:!0,nullable:!0,visible:!0,domain:null}],y.popupInfo={title:"{DisplayText}",fieldInfos:[{fieldName:"DirectionPointType",label:"Directions Item Type",isEditable:!1,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"DisplayText",label:"Text to Display",isEditable:!1,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"Sequence",label:"Sequence",isEditable:!1,tooltip:"",visible:!0,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"StopID",label:"Stop ID",isEditable:!1,tooltip:"",visible:!0,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"ArrivalTime",label:"Maneuver Starts at",isEditable:!0,tooltip:"",visible:!0,format:{dateFormat:"shortDateShortTime24"},stringFieldOption:"textbox"},{fieldName:"ArrivalUTCOffset",label:"Offset from UTC in Minutes",isEditable:!1,tooltip:"",visible:!0,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"Azimuth",label:"Azimuth",isEditable:!1,tooltip:"",visible:!1,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"Name",label:"Primary Feature Name",isEditable:!1,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"AlternateName",label:"Alternative Feature Name",isEditable:!1,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"ExitName",label:"Highway Exit Name",isEditable:!1,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"IntersectingName",label:"Intersecting Feature Name",isEditable:!1,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"BranchName",label:"Signpost Branch Name",isEditable:!1,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"TowardName",label:"Signpost Toward Name",isEditable:!1,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"ShortVoiceInstruction",label:"Voice Instruction",isEditable:!1,tooltip:"",visible:!1,stringFieldOption:"textbox"},{fieldName:"VoiceInstruction",label:"Voice Full Instruction",isEditable:!1,tooltip:"",visible:!1,stringFieldOption:"textbox"}],description:null,showAttachments:!1,mediaInfos:[]},(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.AlternateName"}}})],y.prototype,"alternateName",void 0),(0,a._)([(0,p.Cb)()],y.prototype,"arrivalTime",void 0),(0,a._)([(0,d.r)("arrivalTime",["attributes.ArrivalTime"])],y.prototype,"readArrivalTime",null),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.ArrivalUTCOffset"}}})],y.prototype,"arrivalTimeOffset",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.Azimuth"}}})],y.prototype,"azimuth",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.BranchName"}}})],y.prototype,"branchName",void 0),(0,a._)([(0,p.Cb)({type:c.cW.apiValues,json:{read:{source:"attributes.DirectionPointType",reader:c.cW.read}}})],y.prototype,"directionPointType",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.DisplayText"}}})],y.prototype,"displayText",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.ExitName"}}})],y.prototype,"exitName",void 0),(0,a._)([(0,p.Cb)({type:b.Z})],y.prototype,"geometry",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.IntersectingName"}}})],y.prototype,"intersectingName",void 0),(0,a._)([(0,p.Cb)()],y.prototype,"level",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.Name"}}})],y.prototype,"name",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.ObjectID"}}})],y.prototype,"objectId",void 0),(0,a._)([(0,p.Cb)({type:l.Z})],y.prototype,"popupTemplate",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.Sequence"}}})],y.prototype,"sequence",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.ShortVoiceInstruction"}}})],y.prototype,"shortVoiceInstruction",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.StopID"}}})],y.prototype,"stopId",void 0),(0,a._)([(0,p.Cb)({types:s.LB})],y.prototype,"symbol",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.TowardName"}}})],y.prototype,"towardName",void 0),(0,a._)([(0,p.Cb)({readOnly:!0,json:{read:!1}})],y.prototype,"type",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.VoiceInstruction"}}})],y.prototype,"voiceInstruction",void 0),y=r=(0,a._)([(0,m.j)("esri.rest.support.DirectionPoint")],y);const T=y},6199:function(e,t,i){i.d(t,{Z:function(){return h}});var r,a=i(36663),o=i(80085),l=i(80020),s=i(4905),n=i(41151),u=i(82064),p=i(81977),d=(i(39994),i(13802),i(4157),i(34248)),m=i(40266),b=i(39835),c=i(67666),y=i(13295),T=i(55065);let v=r=class extends((0,n.J)(u.wq)){constructor(e){super(e),this.addedCost=null,this.barrierType=null,this.costs=null,this.curbApproach=null,this.fullEdge=null,this.geometry=null,this.name=null,this.objectId=null,this.popupTemplate=null,this.sideOfEdge=null,this.sourceId=null,this.sourceOid=null,this.status=null,this.symbol=null,this.type="point-barrier"}readCosts(e,t){return(0,y.DE)(t.attributes,"Attr_")}writeCosts(e,t){(0,y.nY)(e,t,"Attr_")}static fromGraphic(e){return new r({addedCost:e.attributes.AddedCost??null,barrierType:null!=e.attributes.BarrierType?T.oi.fromJSON(e.attributes.BarrierType):null,costs:null!=e.attributes.Costs?(0,y.EQ)(JSON.parse(e.attributes.Costs)):null,curbApproach:null!=e.attributes.CurbApproach?T.W7.fromJSON(e.attributes.CurbApproach):null,fullEdge:null!=e.attributes.FullEdge?T.Dd.fromJSON(e.attributes.FullEdge):null,geometry:e.geometry,name:e.attributes.Name??null,objectId:e.attributes.ObjectID??e.attributes.__OBJECTID,popupTemplate:e.popupTemplate,status:null!=e.attributes.Status?T.SS.fromJSON(e.attributes.Status):null,symbol:e.symbol})}toGraphic(){const e={ObjectID:this.objectId,AddedCost:this.addedCost,BarrierType:null!=this.barrierType?T.oi.toJSON(this.barrierType):null,Costs:null!=this.costs?JSON.stringify((0,y.co)(this.costs)):null,CurbApproach:null!=this.curbApproach?T.W7.toJSON(this.curbApproach):null,FullEdge:null!=this.fullEdge?T.Dd.toJSON(this.fullEdge):null,Name:this.name,Status:null!=this.status?T.SS.toJSON(this.status):null};return new o.Z({geometry:this.geometry,attributes:e,symbol:this.symbol,popupTemplate:this.popupTemplate})}};v.fields=[{name:"ObjectID",alias:"ObjectID",type:"esriFieldTypeOID",editable:!1,nullable:!1,domain:null},{name:"AddedCost",alias:"Added Cost",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!0,domain:null},{name:"BarrierType",alias:"Barrier Type",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0,domain:{type:"codedValue",name:"esriNABarrierType",codedValues:[{name:"Restriction",code:0},{name:"Scaled Cost",code:1},{name:"Added Cost",code:2}]}},{name:"Costs",alias:"Costs",type:"esriFieldTypeString",length:1048576,editable:!0,nullable:!0,visible:!1,domain:null},{name:"CurbApproach",alias:"Curb Approach",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!1,domain:{type:"codedValue",name:"esriNACurbApproachType",codedValues:[{name:"Either side",code:0},{name:"From the right",code:1},{name:"From the left",code:2},{name:"Depart in the same direction",code:3}]}},{name:"FullEdge",alias:"Full Edge",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0,domain:{type:"codedValue",name:"esriNAIntYesNo",codedValues:[{name:"No",code:0},{name:"Yes",code:1}]}},{name:"Name",alias:"Name",type:"esriFieldTypeString",length:255,editable:!0,nullable:!0,visible:!0},{name:"Status",alias:"Status",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0,domain:{type:"codedValue",name:"esriNAObjectStatus",codedValues:[{name:"OK",code:0},{name:"Not Located on Network",code:1},{name:"Network Unbuilt",code:2},{name:"Prohibited Street",code:3},{name:"Invalid Field Values",code:4},{name:"Cannot Reach",code:5},{name:"Time Window Violation",code:6}]}}],v.popupInfo={title:"Point Barriers",fieldInfos:[{fieldName:"Name",label:"Name",isEditable:!0,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"BarrierType",label:"Barrier Type",isEditable:!0,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"AddedCost",label:"Added Cost",isEditable:!0,tooltip:"",visible:!0,format:{places:3,digitSeparator:!0},stringFieldOption:"textbox"}],description:null,showAttachments:!1,mediaInfos:[]},(0,a._)([(0,p.Cb)()],v.prototype,"addedCost",void 0),(0,a._)([(0,p.Cb)({type:T.oi.apiValues,json:{name:"attributes.BarrierType",read:{reader:T.oi.read},write:{writer:T.oi.write}}})],v.prototype,"barrierType",void 0),(0,a._)([(0,p.Cb)()],v.prototype,"costs",void 0),(0,a._)([(0,d.r)("costs",["attributes"])],v.prototype,"readCosts",null),(0,a._)([(0,b.c)("costs")],v.prototype,"writeCosts",null),(0,a._)([(0,p.Cb)({constructOnly:!0,type:T.W7.apiValues,json:{read:{source:"attributes.CurbApproach",reader:T.W7.read}}})],v.prototype,"curbApproach",void 0),(0,a._)([(0,p.Cb)({type:T.Dd.apiValues,json:{name:"attributes.FullEdge",read:{reader:T.Dd.read},write:{writer:T.Dd.write}}})],v.prototype,"fullEdge",void 0),(0,a._)([(0,p.Cb)({type:c.Z,json:{write:!0}})],v.prototype,"geometry",void 0),(0,a._)([(0,p.Cb)({json:{name:"attributes.Name"}})],v.prototype,"name",void 0),(0,a._)([(0,p.Cb)({json:{name:"attributes.ObjectID"}})],v.prototype,"objectId",void 0),(0,a._)([(0,p.Cb)({type:l.Z})],v.prototype,"popupTemplate",void 0),(0,a._)([(0,p.Cb)({type:T.BW.apiValues,json:{read:{source:"attributes.SideOfEdge",reader:T.BW.read}}})],v.prototype,"sideOfEdge",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.SourceID"}}})],v.prototype,"sourceId",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.SourceOID"}}})],v.prototype,"sourceOid",void 0),(0,a._)([(0,p.Cb)({type:T.SS.apiValues,json:{read:{source:"attributes.Status",reader:T.SS.read}}})],v.prototype,"status",void 0),(0,a._)([(0,p.Cb)({types:s.LB})],v.prototype,"symbol",void 0),(0,a._)([(0,p.Cb)({readOnly:!0,json:{read:!1}})],v.prototype,"type",void 0),v=r=(0,a._)([(0,m.j)("esri.rest.support.PointBarrier")],v);const h=v},52182:function(e,t,i){i.d(t,{Z:function(){return h}});var r,a=i(36663),o=i(80085),l=i(80020),s=i(4905),n=i(41151),u=i(82064),p=i(81977),d=(i(39994),i(13802),i(4157),i(34248)),m=i(40266),b=i(39835),c=i(89542),y=i(13295),T=i(55065);let v=r=class extends((0,n.J)(u.wq)){constructor(e){super(e),this.barrierType=null,this.costs=null,this.geometry=null,this.name=null,this.objectId=null,this.popupTemplate=null,this.scaleFactor=null,this.symbol=null,this.type="polygon-barrier"}readCosts(e,t){return(0,y.DE)(t.attributes,"Attr_")}writeCosts(e,t){(0,y.nY)(e,t,"Attr_")}static fromGraphic(e){return new r({barrierType:null!=e.attributes.BarrierType?T.oi.fromJSON(e.attributes.BarrierType):null,costs:null!=e.attributes.Costs?(0,y.EQ)(JSON.parse(e.attributes.Costs)):null,geometry:e.geometry,name:e.attributes.Name??null,objectId:e.attributes.ObjectID??e.attributes.__OBJECTID,popupTemplate:e.popupTemplate,scaleFactor:e.attributes.ScaleFactor??null,symbol:e.symbol})}toGraphic(){const e={ObjectID:this.objectId,BarrierType:null!=this.barrierType?T.oi.toJSON(this.barrierType):null,Costs:null!=this.costs?JSON.stringify((0,y.co)(this.costs)):null,Name:this.name??null,ScaleFactor:this.scaleFactor??null};return new o.Z({geometry:this.geometry,attributes:e,symbol:this.symbol,popupTemplate:this.popupTemplate})}};v.fields=[{name:"ObjectID",alias:"ObjectID",type:"esriFieldTypeOID",editable:!1,nullable:!1,domain:null},{name:"BarrierType",alias:"Barrier Type",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0,domain:{type:"codedValue",name:"esriNABarrierType",codedValues:[{name:"Restriction",code:0},{name:"Scaled Cost",code:1},{name:"Added Cost",code:2}]}},{name:"Costs",alias:"Costs",type:"esriFieldTypeString",length:1048576,editable:!0,nullable:!0,visible:!1,domain:null},{name:"Name",alias:"Name",type:"esriFieldTypeString",length:255,editable:!0,nullable:!0,visible:!0},{name:"ScaleFactor",alias:"Scale Factor",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!0}],v.popupInfo={title:"Polygon Barriers",fieldInfos:[{fieldName:"Name",label:"Name",isEditable:!0,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"BarrierType",label:"Barrier Type",isEditable:!0,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"ScaleFactor",isEditable:!0,tooltip:"",visible:!0,format:{places:3,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"Costs",label:"Costs",isEditable:!0,tooltip:"",visible:!1,stringFieldOption:"textbox"}],description:null,showAttachments:!1,mediaInfos:[]},(0,a._)([(0,p.Cb)({type:T.oi.apiValues,json:{name:"attributes.BarrierType",read:{reader:T.oi.read},write:{writer:T.oi.write}}})],v.prototype,"barrierType",void 0),(0,a._)([(0,p.Cb)()],v.prototype,"costs",void 0),(0,a._)([(0,d.r)("costs",["attributes"])],v.prototype,"readCosts",null),(0,a._)([(0,b.c)("costs")],v.prototype,"writeCosts",null),(0,a._)([(0,p.Cb)({type:c.Z,json:{write:!0}})],v.prototype,"geometry",void 0),(0,a._)([(0,p.Cb)({json:{name:"attributes.Name"}})],v.prototype,"name",void 0),(0,a._)([(0,p.Cb)({json:{name:"attributes.ObjectID"}})],v.prototype,"objectId",void 0),(0,a._)([(0,p.Cb)({type:l.Z})],v.prototype,"popupTemplate",void 0),(0,a._)([(0,p.Cb)()],v.prototype,"scaleFactor",void 0),(0,a._)([(0,p.Cb)({types:s.LB})],v.prototype,"symbol",void 0),(0,a._)([(0,p.Cb)({readOnly:!0,json:{read:!1}})],v.prototype,"type",void 0),v=r=(0,a._)([(0,m.j)("esri.rest.support.PolygonBarrier")],v);const h=v},79259:function(e,t,i){i.d(t,{Z:function(){return v}});var r,a=i(36663),o=i(80085),l=i(80020),s=i(4905),n=i(41151),u=i(82064),p=i(81977),d=(i(39994),i(13802),i(4157),i(34248)),m=i(40266),b=i(90819),c=i(13295),y=i(55065);let T=r=class extends((0,n.J)(u.wq)){constructor(e){super(e),this.barrierType=null,this.costs=null,this.geometry=null,this.name=null,this.objectId=null,this.popupTemplate=null,this.scaleFactor=null,this.symbol=null,this.type="polyline-barrier"}readCosts(e,t){return(0,c.DE)(t.attributes,"Attr_")}static fromGraphic(e){return new r({barrierType:null!=e.attributes.BarrierType?y.oi.fromJSON(e.attributes.BarrierType):null,costs:null!=e.attributes.Costs?(0,c.EQ)(JSON.parse(e.attributes.Costs)):null,geometry:e.geometry,name:e.attributes.Name??null,objectId:e.attributes.ObjectID??e.attributes.__OBJECTID,popupTemplate:e.popupTemplate,scaleFactor:e.attributes.ScaleFactor??null,symbol:e.symbol})}toGraphic(){const e={ObjectID:this.objectId,BarrierType:null!=this.barrierType?y.oi.toJSON(this.barrierType):null,Costs:null!=this.costs?JSON.stringify((0,c.co)(this.costs)):null,Name:this.name,ScaleFactor:this.scaleFactor};return new o.Z({geometry:this.geometry,attributes:e,symbol:this.symbol,popupTemplate:this.popupTemplate})}};T.fields=[{name:"ObjectID",alias:"ObjectID",type:"esriFieldTypeOID",editable:!1,nullable:!1,domain:null},{name:"BarrierType",alias:"Barrier Type",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0,domain:{type:"codedValue",name:"esriNABarrierType",codedValues:[{name:"Restriction",code:0},{name:"Scaled Cost",code:1},{name:"Added Cost",code:2}]}},{name:"Costs",alias:"Costs",type:"esriFieldTypeString",length:1048576,editable:!0,nullable:!0,visible:!1,domain:null},{name:"Name",alias:"Name",type:"esriFieldTypeString",length:255,editable:!0,nullable:!0,visible:!0},{name:"ScaleFactor",alias:"Scale Factor",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!0}],T.popupInfo={title:"Line Barriers",fieldInfos:[{fieldName:"Name",label:"Name",isEditable:!0,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"BarrierType",label:"Barrier Type",isEditable:!0,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"ScaleFactor",isEditable:!0,tooltip:"",visible:!0,format:{places:3,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"Costs",label:"Costs",isEditable:!0,tooltip:"",visible:!1,stringFieldOption:"textbox"}],description:null,showAttachments:!1,mediaInfos:[]},(0,a._)([(0,p.Cb)({type:y.oi.apiValues,json:{read:{source:"attributes.BarrierType",reader:y.oi.read}}})],T.prototype,"barrierType",void 0),(0,a._)([(0,p.Cb)()],T.prototype,"costs",void 0),(0,a._)([(0,d.r)("costs",["attributes"])],T.prototype,"readCosts",null),(0,a._)([(0,p.Cb)({type:b.Z,json:{write:!0}})],T.prototype,"geometry",void 0),(0,a._)([(0,p.Cb)({json:{name:"attributes.Name"}})],T.prototype,"name",void 0),(0,a._)([(0,p.Cb)({json:{name:"attributes.ObjectID"}})],T.prototype,"objectId",void 0),(0,a._)([(0,p.Cb)({type:l.Z})],T.prototype,"popupTemplate",void 0),(0,a._)([(0,p.Cb)()],T.prototype,"scaleFactor",void 0),(0,a._)([(0,p.Cb)({types:s.LB})],T.prototype,"symbol",void 0),(0,a._)([(0,p.Cb)({readOnly:!0,json:{read:!1}})],T.prototype,"type",void 0),T=r=(0,a._)([(0,m.j)("esri.rest.support.PolylineBarrier")],T);const v=T},92524:function(e,t,i){i.d(t,{Z:function(){return v}});var r,a=i(36663),o=i(80085),l=i(80020),s=i(4905),n=i(41151),u=i(82064),p=i(81977),d=(i(39994),i(13802),i(4157),i(34248)),m=i(40266),b=i(90819),c=i(13295),y=i(59700);let T=r=class extends((0,n.J)(u.wq)){constructor(e){super(e),this.analysisSettings=null,this.endTime=null,this.endTimeOffset=null,this.firstStopId=null,this.geometry=null,this.lastStopId=null,this.messages=null,this.name=null,this.objectId=null,this.popupTemplate=null,this.startTime=null,this.startTimeOffset=null,this.stopCount=null,this.symbol=null,this.totalCosts=null,this.totalDistance=null,this.totalDuration=null,this.totalLateDuration=null,this.totalViolations=null,this.totalWait=null,this.totalWaitDuration=null,this.type="route-info",this.version="1.0.0"}readEndTime(e,t){return null!=t.attributes.EndTimeUTC?new Date(t.attributes.EndTimeUTC):null}readEndTimeOffset(e,t){return(0,c.pQ)(t.attributes.EndTime,t.attributes.EndTimeUTC)}readStartTime(e,t){return null!=t.attributes.StartTimeUTC?new Date(t.attributes.StartTimeUTC):null}readStartTimeOffset(e,t){return(0,c.pQ)(t.attributes.StartTime,t.attributes.StartTimeUTC)}readTotalCosts(e,t){return(0,c.DE)(t.attributes,"Total_")}readTotalViolations(e,t){return(0,c.DE)(t.attributes,"TotalViolation_")}readTotalWait(e,t){return(0,c.DE)(t.attributes,"TotalWait_")}static fromGraphic(e){return new r({analysisSettings:null!=e.attributes.AnalysisSettings?y.Z.fromJSON(JSON.parse(e.attributes.AnalysisSettings)):null,endTime:null!=e.attributes.EndTime?new Date(e.attributes.EndTime):null,endTimeOffset:e.attributes.EndUTCOffset??null,geometry:e.geometry,messages:null!=e.attributes.Messages?JSON.parse(e.attributes.Messages):null,name:e.attributes.RouteName,objectId:e.attributes.ObjectID??e.attributes.__OBJECTID,popupTemplate:e.popupTemplate,startTime:null!=e.attributes.StartTime?new Date(e.attributes.StartTime):null,startTimeOffset:e.attributes.StartUTCOffset??null,symbol:e.symbol,totalCosts:null!=e.attributes.TotalCosts?(0,c.EQ)(JSON.parse(e.attributes.TotalCosts)):null,totalDistance:e.attributes.TotalMeters??null,totalDuration:e.attributes.TotalMinutes??null,totalLateDuration:e.attributes.TotalLateMinutes??null,totalWaitDuration:e.attributes.TotalWaitMinutes??null,version:e.attributes.Version})}toGraphic(){const e={ObjectID:this.objectId,AnalysisSettings:null!=this.analysisSettings?JSON.stringify(this.analysisSettings.toJSON()):null,EndTime:null!=this.endTime?this.endTime.getTime():null,EndUTCOffset:this.endTimeOffset,Messages:null!=this.messages?JSON.stringify(this.messages):null,RouteName:this.name,StartTime:null!=this.startTime?this.startTime.getTime():null,StartUTCOffset:this.startTimeOffset,TotalCosts:null!=this.totalCosts?JSON.stringify((0,c.co)(this.totalCosts)):null,TotalLateMinutes:this.totalLateDuration,TotalMeters:this.totalDistance,TotalMinutes:this.totalDuration,TotalWaitMinutes:this.totalWaitDuration,Version:this.version};return new o.Z({geometry:this.geometry,attributes:e,symbol:this.symbol,popupTemplate:this.popupTemplate})}};T.fields=[{name:"ObjectID",alias:"ObjectID",type:"esriFieldTypeOID",editable:!1,nullable:!1,domain:null},{name:"AnalysisSettings",alias:"Analysis Settings",type:"esriFieldTypeString",length:1048576,editable:!0,nullable:!0,visible:!1,domain:null},{name:"EndTime",alias:"End Time",type:"esriFieldTypeDate",length:36,editable:!0,nullable:!0,visible:!0},{name:"EndUTCOffset",alias:"End Time: Offset from UTC in Minutes",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0},{name:"Messages",alias:"Analysis Messages",type:"esriFieldTypeString",length:1048576,editable:!0,nullable:!0,visible:!1,domain:null},{name:"RouteName",alias:"Route Name",type:"esriFieldTypeString",length:1024,editable:!0,nullable:!0,visible:!0,domain:null},{name:"StartTime",alias:"Start Time",type:"esriFieldTypeDate",length:36,editable:!0,nullable:!0,visible:!0},{name:"StartUTCOffset",alias:"Start Time: Offset from UTC in Minutes",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0},{name:"TotalCosts",alias:"Total Costs",type:"esriFieldTypeString",length:1048576,editable:!0,nullable:!0,visible:!1,domain:null},{name:"TotalLateMinutes",alias:"Total Late Minutes",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!1},{name:"TotalMeters",alias:"Total Meters",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!0},{name:"TotalMinutes",alias:"Total Minutes",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!0},{name:"TotalWaitMinutes",alias:"Total Wait Minutes",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!1},{name:"Version",alias:"Version",type:"esriFieldTypeString",length:16,editable:!0,nullable:!0,visible:!0,domain:null}],T.popupInfo={title:"Route Details",fieldInfos:[{fieldName:"RouteName",label:"Route Name",isEditable:!1,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"TotalMinutes",label:"Total Minutes",isEditable:!1,tooltip:"",visible:!0,format:{places:2,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"TotalMeters",label:"Total Meters",isEditable:!1,tooltip:"",visible:!0,format:{places:2,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"TotalLateMinutes",label:"Total Late Minutes",isEditable:!1,tooltip:"",visible:!1,format:{places:2,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"TotalWaitMinutes",label:"Total Wait Minutes",isEditable:!1,tooltip:"",visible:!1,format:{places:2,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"TotalCosts",label:"Total Costs",isEditable:!1,tooltip:"",visible:!1,stringFieldOption:"textbox"},{fieldName:"StartTime",label:"Start Time",isEditable:!1,tooltip:"",visible:!0,format:{dateFormat:"shortDateShortTime24"},stringFieldOption:"textbox"},{fieldName:"StartUTCOffset",label:"Start Time: Offset from UTC in Minutes",isEditable:!1,tooltip:"",visible:!0,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"EndTime",label:"End Time",isEditable:!1,tooltip:"",visible:!0,format:{dateFormat:"shortDateShortTime24"},stringFieldOption:"textbox"},{fieldName:"EndUTCOffset",label:"End Time: Offset from UTC in Minutes",isEditable:!1,tooltip:"",visible:!0,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"Messages",label:"Analysis Messages",isEditable:!1,tooltip:"",visible:!1,stringFieldOption:"textbox"},{fieldName:"AnalysisSettings",isEditable:!1,tooltip:"",visible:!1,stringFieldOption:"textbox"},{fieldName:"Version",label:"Version",isEditable:!1,tooltip:"",visible:!0,stringFieldOption:"textbox"}],description:null,showAttachments:!1,mediaInfos:[]},(0,a._)([(0,p.Cb)()],T.prototype,"analysisSettings",void 0),(0,a._)([(0,p.Cb)()],T.prototype,"endTime",void 0),(0,a._)([(0,d.r)("endTime",["attributes.EndTimeUTC"])],T.prototype,"readEndTime",null),(0,a._)([(0,p.Cb)()],T.prototype,"endTimeOffset",void 0),(0,a._)([(0,d.r)("endTimeOffset",["attributes.EndTime","attributes.EndTimeUTC"])],T.prototype,"readEndTimeOffset",null),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.FirstStopID"}}})],T.prototype,"firstStopId",void 0),(0,a._)([(0,p.Cb)({type:b.Z})],T.prototype,"geometry",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.LastStopID"}}})],T.prototype,"lastStopId",void 0),(0,a._)([(0,p.Cb)()],T.prototype,"messages",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.Name"}}})],T.prototype,"name",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.ObjectID"}}})],T.prototype,"objectId",void 0),(0,a._)([(0,p.Cb)({type:l.Z})],T.prototype,"popupTemplate",void 0),(0,a._)([(0,p.Cb)()],T.prototype,"startTime",void 0),(0,a._)([(0,d.r)("startTime",["attributes.StartTimeUTC"])],T.prototype,"readStartTime",null),(0,a._)([(0,p.Cb)()],T.prototype,"startTimeOffset",void 0),(0,a._)([(0,d.r)("startTimeOffset",["attributes.StartTime","attributes.StartTimeUTC"])],T.prototype,"readStartTimeOffset",null),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.StopCount"}}})],T.prototype,"stopCount",void 0),(0,a._)([(0,p.Cb)({types:s.LB})],T.prototype,"symbol",void 0),(0,a._)([(0,p.Cb)()],T.prototype,"totalCosts",void 0),(0,a._)([(0,d.r)("totalCosts",["attributes"])],T.prototype,"readTotalCosts",null),(0,a._)([(0,p.Cb)()],T.prototype,"totalDistance",void 0),(0,a._)([(0,p.Cb)()],T.prototype,"totalDuration",void 0),(0,a._)([(0,p.Cb)()],T.prototype,"totalLateDuration",void 0),(0,a._)([(0,p.Cb)()],T.prototype,"totalViolations",void 0),(0,a._)([(0,d.r)("totalViolations",["attributes"])],T.prototype,"readTotalViolations",null),(0,a._)([(0,p.Cb)()],T.prototype,"totalWait",void 0),(0,a._)([(0,d.r)("totalWait",["attributes"])],T.prototype,"readTotalWait",null),(0,a._)([(0,p.Cb)()],T.prototype,"totalWaitDuration",void 0),(0,a._)([(0,p.Cb)({readOnly:!0,json:{read:!1}})],T.prototype,"type",void 0),(0,a._)([(0,p.Cb)()],T.prototype,"version",void 0),T=r=(0,a._)([(0,m.j)("esri.rest.support.RouteInfo")],T);const v=T},59700:function(e,t,i){i.d(t,{Z:function(){return m}});var r=i(36663),a=i(82064),o=i(81977),l=(i(39994),i(13802),i(4157),i(34248)),s=i(40266),n=i(39835),u=i(55065),p=i(23688);let d=class extends a.wq{constructor(e){super(e),this.accumulateAttributes=null,this.directionsLanguage=null,this.findBestSequence=null,this.preserveFirstStop=null,this.preserveLastStop=null,this.startTimeIsUTC=null,this.timeWindowsAreUTC=null,this.travelMode=null}readAccumulateAttributes(e){return null==e?null:e.map((e=>u.Ul.fromJSON(e)))}writeAccumulateAttributes(e,t,i){e?.length&&(t[i]=e.map((e=>u.Ul.toJSON(e))))}};(0,r._)([(0,o.Cb)({type:[String],json:{name:"accumulateAttributeNames",write:!0}})],d.prototype,"accumulateAttributes",void 0),(0,r._)([(0,l.r)("accumulateAttributes")],d.prototype,"readAccumulateAttributes",null),(0,r._)([(0,n.c)("accumulateAttributes")],d.prototype,"writeAccumulateAttributes",null),(0,r._)([(0,o.Cb)({type:String,json:{write:!0}})],d.prototype,"directionsLanguage",void 0),(0,r._)([(0,o.Cb)({type:Boolean,json:{write:!0}})],d.prototype,"findBestSequence",void 0),(0,r._)([(0,o.Cb)({type:Boolean,json:{write:!0}})],d.prototype,"preserveFirstStop",void 0),(0,r._)([(0,o.Cb)({type:Boolean,json:{write:!0}})],d.prototype,"preserveLastStop",void 0),(0,r._)([(0,o.Cb)({type:Boolean,json:{write:!0}})],d.prototype,"startTimeIsUTC",void 0),(0,r._)([(0,o.Cb)({type:Boolean,json:{write:!0}})],d.prototype,"timeWindowsAreUTC",void 0),(0,r._)([(0,o.Cb)({type:p.Z,json:{write:!0}})],d.prototype,"travelMode",void 0),d=(0,r._)([(0,s.j)("esri.layers.support.RouteSettings")],d);const m=d},76045:function(e,t,i){i.d(t,{Z:function(){return h}});var r,a=i(36663),o=i(80085),l=i(80020),s=i(4905),n=i(41151),u=i(82064),p=i(81977),d=(i(39994),i(13802),i(4157),i(34248)),m=i(40266),b=i(39835),c=i(67666),y=i(13295),T=i(55065);let v=r=class extends((0,n.J)(u.wq)){constructor(e){super(e),this.arriveCurbApproach=null,this.arriveTime=null,this.arriveTimeOffset=null,this.bearing=null,this.bearingTol=null,this.cumulativeCosts=null,this.cumulativeDistance=null,this.cumulativeDuration=null,this.curbApproach=null,this.departCurbApproach=null,this.departTime=null,this.departTimeOffset=null,this.distanceToNetworkInMeters=null,this.geometry=null,this.lateDuration=null,this.locationType=null,this.name=null,this.navLatency=null,this.objectId=null,this.popupTemplate=null,this.posAlong=null,this.routeName=null,this.serviceCosts=null,this.serviceDistance=null,this.serviceDuration=null,this.sequence=null,this.sideOfEdge=null,this.snapX=null,this.snapY=null,this.snapZ=null,this.sourceId=null,this.sourceOid=null,this.status=null,this.symbol=null,this.timeWindowEnd=null,this.timeWindowEndOffset=null,this.timeWindowStart=null,this.timeWindowStartOffset=null,this.type="stop",this.violations=null,this.waitDuration=null,this.wait=null}readArriveTimeOffset(e,t){return(0,y.pQ)(t.attributes.ArriveTime,t.attributes.ArriveTimeUTC)}readCumulativeCosts(e,t){return(0,y.DE)(t.attributes,"Cumul_")}readDepartTimeOffset(e,t){return(0,y.pQ)(t.attributes.DepartTime,t.attributes.DepartTimeUTC)}readServiceCosts(e,t){return(0,y.DE)(t.attributes,"Attr_")}writeServiceCosts(e,t){(0,y.nY)(e,t,"Attr_")}writeTimeWindowEnd(e,t){null!=e&&(t.attributes||(t.attributes={}),t.attributes.TimeWindowEnd=e.getTime())}writeTimeWindowStart(e,t){null!=e&&(t.attributes||(t.attributes={}),t.attributes.TimeWindowStart=e.getTime())}readViolations(e,t){return(0,y.DE)(t.attributes,"Violation_")}readWait(e,t){return(0,y.DE)(t.attributes,"Wait_")}static fromGraphic(e){return new r({arriveCurbApproach:null!=e.attributes.ArrivalCurbApproach?T.W7.fromJSON(e.attributes.ArrivalCurbApproach):null,arriveTime:null!=e.attributes.ArrivalTime?new Date(e.attributes.ArrivalTime):null,arriveTimeOffset:e.attributes.ArrivalUTCOffset,cumulativeCosts:null!=e.attributes.CumulativeCosts?(0,y.EQ)(JSON.parse(e.attributes.CumulativeCosts)):null,cumulativeDistance:e.attributes.CumulativeMeters??null,cumulativeDuration:e.attributes.CumulativeMinutes??null,curbApproach:null!=e.attributes.CurbApproach?T.W7.fromJSON(e.attributes.CurbApproach):null,departCurbApproach:null!=e.attributes.DepartureCurbApproach?T.W7.fromJSON(e.attributes.DepartureCurbApproach):null,departTime:null!=e.attributes.DepartureTime?new Date(e.attributes.DepartureTime):null,departTimeOffset:e.attributes.DepartureUTCOffset??null,geometry:e.geometry,lateDuration:e.attributes.LateMinutes??null,locationType:null!=e.attributes.LocationType?T.yP.fromJSON(e.attributes.LocationType):null,name:e.attributes.Name,objectId:e.attributes.ObjectID??e.attributes.__OBJECTID,popupTemplate:e.popupTemplate,routeName:e.attributes.RouteName,sequence:e.attributes.Sequence??null,serviceCosts:null!=e.attributes.ServiceCosts?(0,y.EQ)(JSON.parse(e.attributes.ServiceCosts)):null,serviceDistance:e.attributes.ServiceMeters??null,serviceDuration:e.attributes.ServiceMinutes??null,status:null!=e.attributes.Status?T.SS.fromJSON(e.attributes.Status):null,symbol:e.symbol,timeWindowEnd:null!=e.attributes.TimeWindowEnd?new Date(e.attributes.TimeWindowEnd):null,timeWindowEndOffset:e.attributes.TimeWindowEndUTCOffset??null,timeWindowStart:null!=e.attributes.TimeWindowStart?new Date(e.attributes.TimeWindowStart):null,timeWindowStartOffset:e.attributes.TimeWindowStartUTCOffset??null,waitDuration:e.attributes.WaitMinutes??null})}toGraphic(){const e={ObjectID:this.objectId,ArrivalCurbApproach:null!=this.arriveCurbApproach?T.W7.toJSON(this.arriveCurbApproach):null,ArrivalTime:null!=this.arriveTime?this.arriveTime.getTime():null,ArrivalUTCOffset:this.arriveTimeOffset,CumulativeCosts:null!=this.cumulativeCosts?JSON.stringify((0,y.co)(this.cumulativeCosts)):null,CumulativeMeters:this.cumulativeDistance,CumulativeMinutes:this.cumulativeDuration,CurbApproach:null!=this.curbApproach?T.W7.toJSON(this.curbApproach):null,DepartureCurbApproach:null!=this.departCurbApproach?T.W7.toJSON(this.departCurbApproach):null,DepartureTime:null!=this.departTime?this.departTime.getTime():null,DepartureUTCOffset:this.departTimeOffset,LateMinutes:this.lateDuration,LocationType:null!=this.locationType?T.yP.toJSON(this.locationType):null,Name:this.name,RouteName:this.routeName,Sequence:this.sequence,ServiceCosts:null!=this.serviceCosts?JSON.stringify((0,y.co)(this.serviceCosts)):null,ServiceMeters:this.serviceDistance,ServiceMinutes:this.serviceDuration,Status:null!=this.status?T.SS.toJSON(this.status):null,TimeWindowEnd:null!=this.timeWindowEnd?this.timeWindowEnd.getTime():null,TimeWindowEndUTCOffset:this.timeWindowEndOffset??this.arriveTimeOffset,TimeWindowStart:null!=this.timeWindowStart?this.timeWindowStart.getTime():null,TimeWindowStartUTCOffset:this.timeWindowStartOffset??this.arriveTimeOffset,WaitMinutes:this.waitDuration};return new o.Z({geometry:this.geometry,attributes:e,symbol:this.symbol,popupTemplate:this.popupTemplate})}};v.fields=[{name:"ObjectID",alias:"ObjectID",type:"esriFieldTypeOID",editable:!1,nullable:!1,domain:null},{name:"ArrivalCurbApproach",alias:"Arrival Curb Approach",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0,domain:{type:"codedValue",name:"esriNACurbApproachType",codedValues:[{name:"Either side",code:0},{name:"From the right",code:1},{name:"From the left",code:2},{name:"Depart in the same direction",code:3}]}},{name:"ArrivalTime",alias:"Arrival Time",type:"esriFieldTypeDate",length:36,editable:!0,nullable:!0,visible:!0},{name:"ArrivalUTCOffset",alias:"Arrival Time: Offset from UTC in Minutes",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0},{name:"CumulativeCosts",alias:"Cumulative Costs",type:"esriFieldTypeString",length:1048576,editable:!0,nullable:!0,visible:!1,domain:null},{name:"CumulativeMeters",alias:"Cumulative Meters",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!0},{name:"CumulativeMinutes",alias:"Cumulative Minutes",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!0},{name:"CurbApproach",alias:"Curb Approach",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!1,domain:{type:"codedValue",name:"esriNACurbApproachType",codedValues:[{name:"Either side",code:0},{name:"From the right",code:1},{name:"From the left",code:2},{name:"Depart in the same direction",code:3}]}},{name:"DepartureCurbApproach",alias:"Departure Curb Approach",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0,domain:{type:"codedValue",name:"esriNACurbApproachType",codedValues:[{name:"Either side",code:0},{name:"From the right",code:1},{name:"From the left",code:2},{name:"Depart in the same direction",code:3}]}},{name:"DepartureTime",alias:"Departure Time",type:"esriFieldTypeDate",length:36,editable:!0,nullable:!0,visible:!0},{name:"DepartureUTCOffset",alias:"Departure Time: Offset from UTC in Minutes",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0},{name:"LateMinutes",alias:"Minutes Late",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!1},{name:"LocationType",alias:"Location Type",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0,domain:{type:"codedValue",name:"esriNALocationType",codedValues:[{name:"Stop",code:0},{name:"Waypoint",code:1}]}},{name:"Name",alias:"Name",type:"esriFieldTypeString",length:255,editable:!0,nullable:!0,visible:!0},{name:"RouteName",alias:"Route Name",type:"esriFieldTypeString",length:255,editable:!0,nullable:!0,visible:!0},{name:"Sequence",alias:"Sequence",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0},{name:"ServiceCosts",alias:"Service Costs",type:"esriFieldTypeString",length:1048576,editable:!0,nullable:!0,visible:!1,domain:null},{name:"ServiceMeters",alias:"Service Meters",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!1},{name:"ServiceMinutes",alias:"Service Minutes",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!1},{name:"Status",alias:"Status",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0,domain:{type:"codedValue",name:"esriNAObjectStatus",codedValues:[{name:"OK",code:0},{name:"Not Located on Network",code:1},{name:"Network Unbuilt",code:2},{name:"Prohibited Street",code:3},{name:"Invalid Field Values",code:4},{name:"Cannot Reach",code:5},{name:"Time Window Violation",code:6}]}},{name:"TimeWindowEnd",alias:"Time Window End",type:"esriFieldTypeDate",length:36,editable:!0,nullable:!0,visible:!1},{name:"TimeWindowEndUTCOffset",alias:"Time Window End: Offset from UTC in Minutes",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0},{name:"TimeWindowStart",alias:"Time Window Start",type:"esriFieldTypeDate",length:36,editable:!0,nullable:!0,visible:!1},{name:"TimeWindowStartUTCOffset",alias:"Time Window Start: Offset from UTC in Minutes",type:"esriFieldTypeInteger",editable:!0,nullable:!0,visible:!0},{name:"WaitMinutes",alias:"Minutes Early",type:"esriFieldTypeDouble",editable:!0,nullable:!0,visible:!1}],v.popupInfo={title:"{Name}",fieldInfos:[{fieldName:"Name",label:"Name",isEditable:!0,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"RouteName",label:"Route Name",isEditable:!0,tooltip:"",visible:!0,stringFieldOption:"textbox"},{fieldName:"Sequence",label:"Sequence",isEditable:!1,tooltip:"",visible:!0,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"ArrivalTime",label:"Arrival Time",isEditable:!0,tooltip:"",visible:!0,format:{dateFormat:"shortDateShortTime24"},stringFieldOption:"textbox"},{fieldName:"ArrivalUTCOffset",label:"Arrival Time: Offset from UTC in Minutes",isEditable:!1,tooltip:"",visible:!0,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"DepartureTime",label:"Departure Time",isEditable:!0,tooltip:"",visible:!0,format:{dateFormat:"shortDateShortTime24"},stringFieldOption:"textbox"},{fieldName:"DepartureUTCOffset",label:"Departure Time: Offset from UTC in Minutes",isEditable:!1,tooltip:"",visible:!0,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"CurbApproach",label:"Curb Approach",isEditable:!0,tooltip:"",visible:!1,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"ArrivalCurbApproach",label:"Arrival Curb Approach",isEditable:!1,tooltip:"",visible:!0,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"DepartureCurbApproach",label:"Departure Curb Approach",isEditable:!1,tooltip:"",visible:!0,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"Status",label:"Status",isEditable:!1,tooltip:"",visible:!0,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"LocationType",label:"Location Type",isEditable:!1,tooltip:"",visible:!0,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"TimeWindowStart",label:"Time Window Start",isEditable:!0,tooltip:"",visible:!1,format:{dateFormat:"shortDateShortTime24"},stringFieldOption:"textbox"},{fieldName:"TimeWindowStartUTCOffset",label:"Time Window Start: Offset from UTC in Minutes",isEditable:!1,tooltip:"",visible:!1,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"TimeWindowEnd",label:"Time Window End",isEditable:!0,tooltip:"",visible:!1,format:{dateFormat:"shortDateShortTime24"},stringFieldOption:"textbox"},{fieldName:"TimeWindowEndUTCOffset",label:"Time Window End: Offset from UTC in Minutes",isEditable:!1,tooltip:"",visible:!1,format:{places:0,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"ServiceMinutes",label:"Service Minutes",isEditable:!0,tooltip:"",visible:!1,format:{places:2,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"ServiceMeters",label:"Service Meters",isEditable:!0,tooltip:"",visible:!1,format:{places:2,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"ServiceCosts",label:"Service Costs",isEditable:!0,tooltip:"",visible:!1,stringFieldOption:"textbox"},{fieldName:"CumulativeMinutes",label:"Cumulative Minutes",isEditable:!1,tooltip:"",visible:!0,format:{places:2,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"CumulativeMeters",label:"Cumulative Meters",isEditable:!1,tooltip:"",visible:!0,format:{places:2,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"CumulativeCosts",label:"Cumulative Costs",isEditable:!0,tooltip:"",visible:!1,stringFieldOption:"textbox"},{fieldName:"LateMinutes",label:"Minutes Late",isEditable:!1,tooltip:"",visible:!1,format:{places:2,digitSeparator:!0},stringFieldOption:"textbox"},{fieldName:"WaitMinutes",label:"Minutes Early",isEditable:!1,tooltip:"",visible:!1,format:{places:2,digitSeparator:!0},stringFieldOption:"textbox"}],description:null,showAttachments:!1,mediaInfos:[]},(0,a._)([(0,p.Cb)({type:T.W7.apiValues,json:{read:{source:"attributes.ArrivalCurbApproach",reader:T.W7.read}}})],v.prototype,"arriveCurbApproach",void 0),(0,a._)([(0,p.Cb)({type:Date,json:{read:{source:"attributes.ArriveTimeUTC"}}})],v.prototype,"arriveTime",void 0),(0,a._)([(0,p.Cb)()],v.prototype,"arriveTimeOffset",void 0),(0,a._)([(0,d.r)("arriveTimeOffset",["attributes.ArriveTime","attributes.ArriveTimeUTC"])],v.prototype,"readArriveTimeOffset",null),(0,a._)([(0,p.Cb)({json:{name:"attributes.Bearing",read:!1,write:!0}})],v.prototype,"bearing",void 0),(0,a._)([(0,p.Cb)({json:{name:"attributes.BearingTol",read:!1,write:!0}})],v.prototype,"bearingTol",void 0),(0,a._)([(0,p.Cb)()],v.prototype,"cumulativeCosts",void 0),(0,a._)([(0,d.r)("cumulativeCosts",["attributes"])],v.prototype,"readCumulativeCosts",null),(0,a._)([(0,p.Cb)()],v.prototype,"cumulativeDistance",void 0),(0,a._)([(0,p.Cb)()],v.prototype,"cumulativeDuration",void 0),(0,a._)([(0,p.Cb)({type:T.W7.apiValues,json:{name:"attributes.CurbApproach",read:{reader:T.W7.read},write:{writer:T.W7.write}}})],v.prototype,"curbApproach",void 0),(0,a._)([(0,p.Cb)({type:T.W7.apiValues,json:{read:{source:"attributes.DepartCurbApproach",reader:T.W7.read}}})],v.prototype,"departCurbApproach",void 0),(0,a._)([(0,p.Cb)({type:Date,json:{read:{source:"attributes.DepartTimeUTC"}}})],v.prototype,"departTime",void 0),(0,a._)([(0,p.Cb)()],v.prototype,"departTimeOffset",void 0),(0,a._)([(0,d.r)("departTimeOffset",["attributes.DepartTime","attributes.DepartTimeUTC"])],v.prototype,"readDepartTimeOffset",null),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.DistanceToNetworkInMeters"}}})],v.prototype,"distanceToNetworkInMeters",void 0),(0,a._)([(0,p.Cb)({type:c.Z,json:{write:!0}})],v.prototype,"geometry",void 0),(0,a._)([(0,p.Cb)()],v.prototype,"lateDuration",void 0),(0,a._)([(0,p.Cb)({type:T.yP.apiValues,json:{name:"attributes.LocationType",read:{reader:T.yP.read},write:{writer:T.yP.write}}})],v.prototype,"locationType",void 0),(0,a._)([(0,p.Cb)({json:{name:"attributes.Name"}})],v.prototype,"name",void 0),(0,a._)([(0,p.Cb)({json:{name:"attributes.NavLatency",read:!1,write:!0}})],v.prototype,"navLatency",void 0),(0,a._)([(0,p.Cb)({json:{name:"attributes.ObjectID"}})],v.prototype,"objectId",void 0),(0,a._)([(0,p.Cb)({type:l.Z})],v.prototype,"popupTemplate",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.PosAlong"}}})],v.prototype,"posAlong",void 0),(0,a._)([(0,p.Cb)({json:{name:"attributes.RouteName"}})],v.prototype,"routeName",void 0),(0,a._)([(0,p.Cb)()],v.prototype,"serviceCosts",void 0),(0,a._)([(0,d.r)("serviceCosts",["attributes"])],v.prototype,"readServiceCosts",null),(0,a._)([(0,b.c)("serviceCosts")],v.prototype,"writeServiceCosts",null),(0,a._)([(0,p.Cb)()],v.prototype,"serviceDistance",void 0),(0,a._)([(0,p.Cb)()],v.prototype,"serviceDuration",void 0),(0,a._)([(0,p.Cb)({json:{name:"attributes.Sequence"}})],v.prototype,"sequence",void 0),(0,a._)([(0,p.Cb)({type:T.BW.apiValues,json:{read:{source:"attributes.SideOfEdge",reader:T.BW.read}}})],v.prototype,"sideOfEdge",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.SnapX"}}})],v.prototype,"snapX",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.SnapY"}}})],v.prototype,"snapY",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.SnapZ"}}})],v.prototype,"snapZ",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.SourceID"}}})],v.prototype,"sourceId",void 0),(0,a._)([(0,p.Cb)({json:{read:{source:"attributes.SourceOID"}}})],v.prototype,"sourceOid",void 0),(0,a._)([(0,p.Cb)({type:T.SS.apiValues,json:{read:{source:"attributes.Status",reader:T.SS.read}}})],v.prototype,"status",void 0),(0,a._)([(0,p.Cb)({types:s.LB})],v.prototype,"symbol",void 0),(0,a._)([(0,p.Cb)({type:Date,json:{name:"attributes.TimeWindowEnd"}})],v.prototype,"timeWindowEnd",void 0),(0,a._)([(0,b.c)("timeWindowEnd")],v.prototype,"writeTimeWindowEnd",null),(0,a._)([(0,p.Cb)()],v.prototype,"timeWindowEndOffset",void 0),(0,a._)([(0,p.Cb)({type:Date,json:{name:"attributes.TimeWindowStart"}})],v.prototype,"timeWindowStart",void 0),(0,a._)([(0,b.c)("timeWindowStart")],v.prototype,"writeTimeWindowStart",null),(0,a._)([(0,p.Cb)()],v.prototype,"timeWindowStartOffset",void 0),(0,a._)([(0,p.Cb)({readOnly:!0,json:{read:!1}})],v.prototype,"type",void 0),(0,a._)([(0,p.Cb)()],v.prototype,"violations",void 0),(0,a._)([(0,d.r)("violations",["attributes"])],v.prototype,"readViolations",null),(0,a._)([(0,p.Cb)()],v.prototype,"waitDuration",void 0),(0,a._)([(0,p.Cb)()],v.prototype,"wait",void 0),(0,a._)([(0,d.r)("wait",["attributes"])],v.prototype,"readWait",null),v=r=(0,a._)([(0,m.j)("esri.rest.support.Stop")],v);const h=v},23688:function(e,t,i){i.d(t,{Z:function(){return b}});var r=i(36663),a=i(41151),o=i(82064),l=i(81977),s=(i(39994),i(13802),i(4157),i(79438)),n=i(34248),u=i(40266),p=i(39835),d=i(55065);let m=class extends((0,a.J)(o.wq)){constructor(e){super(e),this.attributeParameterValues=null,this.description=null,this.distanceAttributeName=null,this.id=null,this.impedanceAttributeName=null,this.name=null,this.restrictionAttributeNames=null,this.simplificationTolerance=null,this.simplificationToleranceUnits=null,this.timeAttributeName=null,this.type=null,this.useHierarchy=null,this.uturnAtJunctions=null}readId(e,t){return t.id??t.itemId??null}readRestrictionAttributes(e,t){const{restrictionAttributeNames:i}=t;return null==i?null:i.map((e=>d.kL.fromJSON(e)))}writeRestrictionAttributes(e,t,i){null!=e&&(t[i]=e.map((e=>d.kL.toJSON(e))))}};(0,r._)([(0,l.Cb)({type:[Object],json:{write:!0}})],m.prototype,"attributeParameterValues",void 0),(0,r._)([(0,l.Cb)({type:String,json:{write:!0}})],m.prototype,"description",void 0),(0,r._)([(0,s.J)(d.D$,{ignoreUnknown:!1})],m.prototype,"distanceAttributeName",void 0),(0,r._)([(0,l.Cb)({type:String,json:{write:!0}})],m.prototype,"id",void 0),(0,r._)([(0,n.r)("id",["id","itemId"])],m.prototype,"readId",null),(0,r._)([(0,s.J)(d.Ul,{ignoreUnknown:!1})],m.prototype,"impedanceAttributeName",void 0),(0,r._)([(0,l.Cb)({type:String,json:{write:!0}})],m.prototype,"name",void 0),(0,r._)([(0,l.Cb)({type:[String],json:{write:!0}})],m.prototype,"restrictionAttributeNames",void 0),(0,r._)([(0,n.r)("restrictionAttributeNames")],m.prototype,"readRestrictionAttributes",null),(0,r._)([(0,p.c)("restrictionAttributeNames")],m.prototype,"writeRestrictionAttributes",null),(0,r._)([(0,l.Cb)({type:Number,json:{write:{allowNull:!0}}})],m.prototype,"simplificationTolerance",void 0),(0,r._)([(0,s.J)(d.q$)],m.prototype,"simplificationToleranceUnits",void 0),(0,r._)([(0,s.J)(d.ZI,{ignoreUnknown:!1})],m.prototype,"timeAttributeName",void 0),(0,r._)([(0,s.J)(d.DJ)],m.prototype,"type",void 0),(0,r._)([(0,l.Cb)({type:Boolean,json:{write:!0}})],m.prototype,"useHierarchy",void 0),(0,r._)([(0,s.J)(d.ip)],m.prototype,"uturnAtJunctions",void 0),m=(0,r._)([(0,u.j)("esri.rest.support.TravelMode")],m);const b=m},55065:function(e,t,i){i.d(t,{$7:function(){return s},BW:function(){return c},D$:function(){return g},DJ:function(){return p},Dd:function(){return T},E2:function(){return A},GX:function(){return o},KA:function(){return D},Ks:function(){return w},S7:function(){return O},SS:function(){return b},Ul:function(){return S},W7:function(){return d},WP:function(){return f},ZI:function(){return C},cW:function(){return v},dg:function(){return l},ip:function(){return u},kL:function(){return N},no:function(){return n},oi:function(){return y},q$:function(){return a},td:function(){return h},yP:function(){return m}});var r=i(25709);const a=(0,r.w)()({esriCentimeters:"centimeters",esriDecimalDegrees:"decimal-degrees",esriDecimeters:"decimeters",esriFeet:"feet",esriInches:"inches",esriKilometers:"kilometers",esriMeters:"meters",esriMiles:"miles",esriMillimeters:"millimeters",esriNauticalMiles:"nautical-miles",esriPoints:"points",esriUnknownUnits:"unknown",esriYards:"yards"}),o=(0,r.w)()({esriNAUCentimeters:"centimeters",esriNAUDecimalDegrees:"decimal-degrees",esriNAUDecimeters:"decimeters",esriNAUFeet:"feet",esriNAUInches:"inches",esriNAUKilometers:"kilometers",esriNAUMeters:"meters",esriNAUMiles:"miles",esriNAUMillimeters:"millimeters",esriNAUNauticalMiles:"nautical-miles",esriNAUPoints:"points",esriNAUYards:"yards"}),l=((0,r.w)()({esriNAUDays:"days",esriNAUHours:"hours",esriNAUMinutes:"minutes",esriNAUSeconds:"seconds"}),(0,r.w)()({esriNAUCentimeters:"centimeters",esriNAUDecimalDegrees:"decimal-degrees",esriNAUDecimeters:"decimeters",esriNAUFeet:"feet",esriNAUInches:"inches",esriNAUKilometers:"kilometers",esriNAUMeters:"meters",esriNAUMiles:"miles",esriNAUMillimeters:"millimeters",esriNAUNauticalMiles:"nautical-miles",esriNAUPoints:"points",esriNAUYards:"yards",esriNAUDays:"days",esriNAUHours:"hours",esriNAUMinutes:"minutes",esriNAUSeconds:"seconds",esriNAUKilometersPerHour:"kilometers-per-hour",esriNAUMilesPerHour:"miles-per-hour",esriNAUUnknown:"unknown"})),s=(0,r.w)()({esriDOTComplete:"complete",esriDOTCompleteNoEvents:"complete-no-events",esriDOTFeatureSets:"featuresets",esriDOTInstructionsOnly:"instructions-only",esriDOTStandard:"standard",esriDOTSummaryOnly:"summary-only"}),n=(0,r.w)()({esriNAOutputLineNone:"none",esriNAOutputLineStraight:"straight",esriNAOutputLineTrueShape:"true-shape",esriNAOutputLineTrueShapeWithMeasure:"true-shape-with-measure"}),u=((0,r.w)()({esriNAOutputPolygonNone:"none",esriNAOutputPolygonSimplified:"simplified",esriNAOutputPolygonDetailed:"detailed"}),(0,r.w)()({esriNFSBAllowBacktrack:"allow-backtrack",esriNFSBAtDeadEndsOnly:"at-dead-ends-only",esriNFSBNoBacktrack:"no-backtrack",esriNFSBAtDeadEndsAndIntersections:"at-dead-ends-and-intersections"})),p=((0,r.w)()({esriNATravelDirectionFromFacility:"from-facility",esriNATravelDirectionToFacility:"to-facility"}),(0,r.w)()({esriNATimeOfDayNotUsed:"not-used",esriNATimeOfDayUseAsStartTime:"start",esriNATimeOfDayUseAsEndTime:"end"}),(0,r.w)()({AUTOMOBILE:"automobile",TRUCK:"truck",WALK:"walk",OTHER:"other"})),d=(0,r.w)()({0:"either-side-of-vehicle",1:"right-side-of-vehicle",2:"left-side-of-vehicle",3:"no-u-turn"},{useNumericKeys:!0}),m=(0,r.w)()({0:"stop",1:"waypoint",2:"break"},{useNumericKeys:!0}),b=(0,r.w)()({0:"ok",1:"not-located",2:"network-element-not-located",3:"element-not-traversable",4:"invalid-field-values",5:"not-reached",6:"time-window-violation",7:"not-located-on-closest"},{useNumericKeys:!0}),c=(0,r.w)()({1:"right",2:"left"},{useNumericKeys:!0}),y=(0,r.w)()({0:"restriction",1:"scaled-cost",2:"added-cost"},{useNumericKeys:!0}),T=(0,r.w)()({0:"permit",1:"restrict"},{useNumericKeys:!0}),v=(0,r.w)()({1:"header",50:"arrive",51:"depart",52:"straight",100:"on-ferry",101:"off-ferry",102:"central-fork",103:"roundabout",104:"u-turn",150:"door",151:"stairs",152:"elevator",153:"escalator",154:"pedestrian-ramp",200:"left-fork",201:"left-ramp",202:"clockwise-roundabout",203:"left-handed-u-turn",204:"bear-left",205:"left-turn",206:"sharp-left",207:"left-turn-and-immediate-left-turn",208:"left-turn-and-immediate-right-turn",300:"right-fork",301:"right-ramp",302:"counter-clockwise-roundabout",303:"right-handed-u-turn",304:"bear-right",305:"right-turn",306:"sharp-right",307:"right-turn-and-immediate-left-turn",308:"right-turn-and-immediate-right-turn",400:"up-elevator",401:"up-escalator",402:"up-stairs",500:"down-elevator",501:"down-escalator",502:"down-stairs",1e3:"general-event",1001:"landmark",1002:"time-zone-change",1003:"traffic-event",1004:"scaled-cost-barrier-event",1005:"boundary-crossing",1006:"restriction-violation",1007:"lane"},{useNumericKeys:!0}),h=(0,r.w)()({0:"unknown",1:"segment",2:"maneuver-segment",3:"restriction-violation",4:"scaled-cost-barrier",5:"heavy-traffic",6:"slow-traffic",7:"moderate-traffic"},{useNumericKeys:!0}),f=(0,r.w)()({"NA Campus":"campus","NA Desktop":"desktop","NA Navigation":"navigation"}),g=(0,r.w)()({Kilometers:"kilometers",Miles:"miles",Meters:"meters"},{ignoreUnknown:!1}),C=(0,r.w)()({Minutes:"minutes",TimeAt1KPH:"time-at-1-kph",TravelTime:"travel-time",TruckMinutes:"truck-minutes",TruckTravelTime:"truck-travel-time",WalkTime:"walk-time"},{ignoreUnknown:!1}),S=(0,r.w)()({Kilometers:"kilometers",Miles:"miles",Meters:"meters",Minutes:"minutes",TimeAt1KPH:"time-at-1-kph",TravelTime:"travel-time",TruckMinutes:"truck-minutes",TruckTravelTime:"truck-travel-time",WalkTime:"walk-time"},{ignoreUnknown:!1}),N=(0,r.w)()({"Any Hazmat Prohibited":"any-hazmat-prohibited","Avoid Carpool Roads":"avoid-carpool-roads","Avoid Express Lanes":"avoid-express-lanes","Avoid Ferries":"avoid-ferries","Avoid Gates":"avoid-gates","Avoid Limited Access Roads":"avoid-limited-access-roads","Avoid Private Roads":"avoid-private-roads","Avoid Roads Unsuitable for Pedestrians":"avoid-roads-unsuitable-for-pedestrians","Avoid Stairways":"avoid-stairways","Avoid Toll Roads":"avoid-toll-roads","Avoid Toll Roads for Trucks":"avoid-toll-roads-for-trucks","Avoid Truck Restricted Roads":"avoid-truck-restricted-roads","Avoid Unpaved Roads":"avoid-unpaved-roads","Axle Count Restriction":"axle-count-restriction","Driving a Bus":"driving-a-bus","Driving a Taxi":"driving-a-taxi","Driving a Truck":"driving-a-truck","Driving an Automobile":"driving-an-automobile","Driving an Emergency Vehicle":"driving-an-emergency-vehicle","Height Restriction":"height-restriction","Kingpin to Rear Axle Length Restriction":"kingpin-to-rear-axle-length-restriction","Length Restriction":"length-restriction","Preferred for Pedestrians":"preferred-for-pedestrians","Riding a Motorcycle":"riding-a-motorcycle","Roads Under Construction Prohibited":"roads-under-construction-prohibited","Semi or Tractor with One or More Trailers Prohibited":"semi-or-tractor-with-one-or-more-trailers-prohibited","Single Axle Vehicles Prohibited":"single-axle-vehicles-prohibited","Tandem Axle Vehicles Prohibited":"tandem-axle-vehicles-prohibited","Through Traffic Prohibited":"through-traffic-prohibited","Truck with Trailers Restriction":"truck-with-trailers-restriction","Use Preferred Hazmat Routes":"use-preferred-hazmat-routes","Use Preferred Truck Routes":"use-preferred-truck-routes",Walking:"walking","Weight Restriction":"weight-restriction"},{ignoreUnknown:!1}),O=(0,r.w)()({esriSpatialRelIntersects:"intersects",esriSpatialRelContains:"contains",esriSpatialRelCrosses:"crosses",esriSpatialRelEnvelopeIntersects:"envelope-intersects",esriSpatialRelIndexIntersects:"index-intersects",esriSpatialRelOverlaps:"overlaps",esriSpatialRelTouches:"touches",esriSpatialRelWithin:"within",esriSpatialRelRelation:"relation"}),D=(0,r.w)()({esriGeometryPoint:"point",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryEnvelope:"envelope",esriGeometryMultipoint:"multipoint"}),A=(0,r.w)()({esriNAUTCost:"cost",esriNAUTDescriptor:"descriptor",esriNAUTRestriction:"restriction",esriNAUTHierarchy:"hierarchy"}),w=(0,r.w)()({esriDSTAltName:"alt-name",esriDSTArrive:"arrive",esriDSTBranch:"branch",esriDSTCrossStreet:"cross-street",esriDSTCumulativeLength:"cumulative-length",esriDSTDepart:"depart",esriDSTEstimatedArrivalTime:"estimated-arrival-time",esriDSTExit:"exit",esriDSTGeneral:"general",esriDSTLength:"length",esriDSTServiceTime:"service-time",esriDSTStreetName:"street-name",esriDSTSummary:"summary",esriDSTTime:"time",esriDSTTimeWindow:"time-window",esriDSTToward:"toward",esriDSTViolationTime:"violation-time",esriDSTWaitTime:"wait-time"})}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/3989.1f11203a27f832003c23.js b/docs/sentinel1-explorer/3989.1f11203a27f832003c23.js new file mode 100644 index 00000000..5307d324 --- /dev/null +++ b/docs/sentinel1-explorer/3989.1f11203a27f832003c23.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[3989],{38958:function(t,e,n){n.d(e,{b:function(){return u},j:function(){return c}});var r=n(36567),i=n(39994);const s=128e3;let o=null,a=null;async function c(){return o||(o=async function(){const t=(0,i.Z)("esri-csp-restrictions")?await n.e(2394).then(n.bind(n,42394)).then((t=>t.l)):await n.e(7981).then(n.bind(n,87981)).then((t=>t.l));a=await t.default({locateFile:t=>(0,r.V)(`esri/core/libs/libtess/${t}`)})}()),o}function u(t,e){const n=Math.max(t.length,s);return a.triangulate(t,e,n)}},13952:function(t,e,n){n.d(e,{L:function(){return i},v:function(){return r}});const r=15.5,i=1024},29882:function(t,e,n){n.d(e,{j:function(){return c}});var r=n(25245),i=n(47349),s=n(24262),o=n(20270),a=n(95215);class c{static executeEffects(t,e,n,r){const i=(0,a.Tg)(t);let c=new s.z(e);for(const e of t){const t=(0,o.h)(e);t&&(c=t.execute(c,e,1.3333333333333333,n,r,i))}return c}static applyEffects(t,e,n){if(!t)return e;const c=(0,a.Tg)(t);let u,l=new s.z(r.z.fromJSONCIM(e));for(const e of t){const t=(0,o.h)(e);t&&(l=t.execute(l,e,1,null,n,c))}const h=[];let d=null;for(;u=l.next();)h.push(...(0,i.M)(u)),d=u.geometryType;return 0===h.length||null===d?null:"esriGeometryPolygon"===d?{rings:h}:{paths:h}}}},88013:function(t,e,n){n.d(e,{Ht:function(){return r},QS:function(){return o},jL:function(){return s}});const r=8388607,i=8388608,s=t=>t&r;function o(t,e){return((e?i:0)|t)>>>0}},54475:function(t,e,n){n.d(e,{z:function(){return f}});var r=n(25609),i=n(14266);function s(t,e){return t.x===e.x&&t.y===e.y}function o(t){if(!t)return;const e=t.length;if(e<=1)return;let n=0;for(let r=1;rn){i=!0;const t=(n-r)/h;h=n-r,a=(1-t)*s+t*a,c=(1-t)*o+t*c,--e}const d=this._writeVertex(s,o,0,0,u,l,l,-u,0,-1,r),p=this._writeVertex(s,o,0,0,u,l,-l,u,0,1,r);r+=h;const f=this._writeVertex(a,c,0,0,u,l,l,-u,0,-1,r),y=this._writeVertex(a,c,0,0,u,l,-l,u,0,1,r);this._writeTriangle(d,p,f),this._writeTriangle(p,f,y),s=a,o=c}}_tessellate(t,e){const n=t[0],i=t[t.length-1],o=s(n,i),f=o?3:2;if(t.length{const o=L(S,T,z,E,n,r,t,e,i,s,B);return O>=0&&R>=0&&o>=0&&A(O,R,o),O=R,R=o,o};o&&(w=t[t.length-2],I.x=i.x-w.x,I.y=i.y-w.y,V=h(I),I.x/=V,I.y/=V);let W=!1;for(let e=0;eC&&(W=!0)),W){const n=(C-B)/M;M=C-B,w={x:(1-n)*w.x+n*t[e].x,y:(1-n)*w.y+n*t[e].y},--e}else w=t[e];S=w.x,T=w.y;const n=e<=0&&!W,i=e===t.length-1;if(n||(B+=M),P=i?o?t[1]:null:t[e+1],P?(I.x=P.x-S,I.y=P.y-T,V=h(I),I.x/=V,I.y/=V):(I.x=void 0,I.y=void 0),!o){if(n){c(N,I),z=N.x,E=N.y,x===r.RL.SQUARE&&($(-I.y-I.x,I.x-I.y,I.x,I.y,0,-1),$(I.y-I.x,-I.x-I.y,I.x,I.y,0,1)),x===r.RL.ROUND&&($(-I.y-I.x,I.x-I.y,I.x,I.y,-1,-1),$(I.y-I.x,-I.x-I.y,I.x,I.y,-1,1)),x!==r.RL.ROUND&&x!==r.RL.BUTT||($(-I.y,I.x,I.x,I.y,0,-1),$(I.y,-I.x,I.x,I.y,0,1));continue}if(i){a(N,k),z=N.x,E=N.y,x!==r.RL.ROUND&&x!==r.RL.BUTT||($(k.y,-k.x,-k.x,-k.y,0,-1),$(-k.y,k.x,-k.x,-k.y,0,1)),x===r.RL.SQUARE&&($(k.y-k.x,-k.x-k.y,-k.x,-k.y,0,-1),$(-k.y-k.x,k.x-k.y,-k.x,-k.y,0,1)),x===r.RL.ROUND&&($(k.y-k.x,-k.x-k.y,-k.x,-k.y,1,-1),$(-k.y-k.x,k.x-k.y,-k.x,-k.y,1,1));continue}}let s,f,L=(H=I,-((G=k).x*H.y-G.y*H.x));if(Math.abs(L)<.01)d(k,I)>0?(N.x=k.x,N.y=k.y,L=1,s=Number.MAX_VALUE,f=!0):(c(N,I),L=1,s=1,f=!1);else{N.x=(k.x+I.x)/L,N.y=(k.y+I.y)/L,s=h(N);const t=(s-1)*v*y;f=s>4||t>M&&t>V}z=N.x,E=N.y;let A=m;switch(m){case r.AH.BEVEL:s<1.05&&(A=r.AH.MITER);break;case r.AH.ROUND:s<_&&(A=r.AH.MITER);break;case r.AH.MITER:s>g&&(A=r.AH.BEVEL)}switch(A){case r.AH.MITER:if($(N.x,N.y,-k.x,-k.y,0,-1),$(-N.x,-N.y,-k.x,-k.y,0,1),i)break;if(b){const t=W?0:B;O=this._writeVertex(S,T,z,E,I.x,I.y,N.x,N.y,0,-1,t),R=this._writeVertex(S,T,z,E,I.x,I.y,-N.x,-N.y,0,1,t)}break;case r.AH.BEVEL:{const t=L<0;let e,n,r,s;if(t){const t=O;O=R,R=t,e=D,n=F}else e=F,n=D;if(f)r=t?c(this._innerPrev,k):a(this._innerPrev,k),s=t?a(this._innerNext,I):c(this._innerNext,I);else{const e=t?l(this._inner,N):u(this._inner,N);r=e,s=e}const o=t?a(this._bevelStart,k):c(this._bevelStart,k);$(r.x,r.y,-k.x,-k.y,e.x,e.y);const h=$(o.x,o.y,-k.x,-k.y,n.x,n.y);if(i)break;const d=t?c(this._bevelEnd,I):a(this._bevelEnd,I);if(f){const t=this._writeVertex(S,T,z,E,-k.x,-k.y,0,0,0,0,B);O=this._writeVertex(S,T,z,E,I.x,I.y,s.x,s.y,e.x,e.y,B),R=this._writeVertex(S,T,z,E,I.x,I.y,d.x,d.y,n.x,n.y,B),this._writeTriangle(h,t,R)}else{if(b){const t=this._bevelMiddle;t.x=(o.x+d.x)/2,t.y=(o.y+d.y)/2,p(U,t,-k.x,-k.y),$(t.x,t.y,-k.x,-k.y,U.x,U.y),p(U,t,I.x,I.y),O=this._writeVertex(S,T,z,E,I.x,I.y,t.x,t.y,U.x,U.y,B),R=this._writeVertex(S,T,z,E,I.x,I.y,s.x,s.y,e.x,e.y,B)}else{const t=O;O=R,R=t}$(d.x,d.y,I.x,I.y,n.x,n.y)}if(t){const t=O;O=R,R=t}break}case r.AH.ROUND:{const t=L<0;let e,n;if(t){const t=O;O=R,R=t,e=D,n=F}else e=F,n=D;const r=t?l(this._inner,N):u(this._inner,N);let o,h;f?(o=t?c(this._innerPrev,k):a(this._innerPrev,k),h=t?a(this._innerNext,I):c(this._innerNext,I)):(o=r,h=r);const y=t?a(this._roundStart,k):c(this._roundStart,k),x=t?c(this._roundEnd,I):a(this._roundEnd,I),m=$(o.x,o.y,-k.x,-k.y,e.x,e.y),g=$(y.x,y.y,-k.x,-k.y,n.x,n.y);if(i)break;const _=this._writeVertex(S,T,z,E,-k.x,-k.y,0,0,0,0,B);f||this._writeTriangle(O,R,_);const v=l(this._outer,r),w=this._writeVertex(S,T,z,E,I.x,I.y,x.x,x.y,n.x,n.y,B);let P,M;const V=s>2;if(V){let e;s!==Number.MAX_VALUE?(v.x/=s,v.y/=s,e=d(k,v),e=(s*(e*e-1)+1)/e):e=-1,P=t?a(this._startBreak,k):c(this._startBreak,k),P.x+=k.x*e,P.y+=k.y*e,M=t?c(this._endBreak,I):a(this._endBreak,I),M.x+=I.x*e,M.y+=I.y*e}p(U,v,-k.x,-k.y);const C=this._writeVertex(S,T,z,E,-k.x,-k.y,v.x,v.y,U.x,U.y,B);p(U,v,I.x,I.y);const A=b?this._writeVertex(S,T,z,E,I.x,I.y,v.x,v.y,U.x,U.y,B):C,W=_,G=b?this._writeVertex(S,T,z,E,I.x,I.y,0,0,0,0,B):_;let H=-1,Y=-1;if(V&&(p(U,P,-k.x,-k.y),H=this._writeVertex(S,T,z,E,-k.x,-k.y,P.x,P.y,U.x,U.y,B),p(U,M,I.x,I.y),Y=this._writeVertex(S,T,z,E,I.x,I.y,M.x,M.y,U.x,U.y,B)),b?V?(this._writeTriangle(W,g,H),this._writeTriangle(W,H,C),this._writeTriangle(G,A,Y),this._writeTriangle(G,Y,w)):(this._writeTriangle(W,g,C),this._writeTriangle(G,A,w)):V?(this._writeTriangle(_,g,H),this._writeTriangle(_,H,Y),this._writeTriangle(_,Y,w)):(this._writeTriangle(_,g,C),this._writeTriangle(_,A,w)),f?(O=this._writeVertex(S,T,z,E,I.x,I.y,h.x,h.y,e.x,e.y,B),R=w):(O=b?this._writeVertex(S,T,z,E,I.x,I.y,h.x,h.y,e.x,e.y,B):m,this._writeTriangle(O,G,w),R=w),t){const t=O;O=R,R=t}break}}}var G,H}}},89168:function(t,e,n){n.d(e,{yu:function(){return C},XB:function(){return B},Qt:function(){return L},ri:function(){return $},oo:function(){return A},Pz:function(){return R},Ou:function(){return U},qH:function(){return E},xh:function(){return z},Kw:function(){return F},e5:function(){return D}});var r=n(36663),i=n(7753),s=n(13802),o=n(21130),a=n(70375),c=n(40017),u=n(15095);const l=()=>s.Z.getLogger("esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder");class h{constructor(){this._includedModules=new Map}include(t,e){if(this._includedModules.has(t)){const n=this._includedModules.get(t);if(n!==e){l().error("Trying to include shader module multiple times with different sets of options.");const e=new Set;for(const r of Object.keys(n))n[r]!==t[r]&&e.add(r);for(const r of Object.keys(t))n[r]!==t[r]&&e.add(r);e.forEach((t=>{}))}}else this._includedModules.set(t,e),t(this.builder,e)}}class d extends h{constructor(){super(...arguments),this.vertex=new y,this.fragment=new y,this.attributes=new x,this.varyings=new m,this.extensions=new g,this.constants=new _}get fragmentUniforms(){return this.fragment.uniforms.entries}get builder(){return this}generate(t,e=!0){const n=this.extensions.generateSource(t),r=this.attributes.generateSource(t),i=this.varyings.generateSource(t),s="vertex"===t?this.vertex:this.fragment,o=s.uniforms.generateSource(),a=s.code.generateSource(),c="vertex"===t?v:function(t=!0){return`#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n precision highp sampler2D;\n#else\n precision mediump float;\n precision mediump sampler2D;\n#endif\n${t?"out vec4 fragColor;":""}\n`}(e),u=this.constants.generateSource().concat(s.constants.generateSource());return`${e?"#version 300 es":""}\n${n.join("\n")}\n${c}\n${u.join("\n")}\n${o.join("\n")}\n${r.join("\n")}\n${i.join("\n")}\n${a.join("\n")}`}generateBindPass(t){const e=new Map;this.vertex.uniforms.entries.forEach((t=>{const n=t.bind[c.P.Pass];n&&e.set(t.name,n)})),this.fragment.uniforms.entries.forEach((t=>{const n=t.bind[c.P.Pass];n&&e.set(t.name,n)}));const n=Array.from(e.values()),r=n.length;return(e,i)=>{for(let s=0;s{const n=t.bind[c.P.Draw];n&&e.set(t.name,n)})),this.fragment.uniforms.entries.forEach((t=>{const n=t.bind[c.P.Draw];n&&e.set(t.name,n)}));const n=Array.from(e.values()),r=n.length;return(e,i,s)=>{for(let o=0;onull!=t.arraySize?`uniform ${t.type} ${t.name}[${t.arraySize}];`:`uniform ${t.type} ${t.name};`))}get entries(){return Array.from(this._entries.values())}}class f{constructor(){this._entries=new Array}add(t){this._entries.push(t)}generateSource(){return this._entries}}class y extends h{constructor(){super(...arguments),this.uniforms=new p,this.code=new f,this.constants=new _}get builder(){return this}}class x{constructor(){this._entries=new Array}add(t,e){this._entries.push([t,e])}generateSource(t){return"fragment"===t?[]:this._entries.map((t=>`in ${t[1]} ${t[0]};`))}}class m{constructor(){this._entries=new Map}add(t,e){this._entries.has(t)&&(0,u.hu)(this._entries.get(t)===e),this._entries.set(t,e)}generateSource(t){const e=new Array;return this._entries.forEach(((n,r)=>e.push("vertex"===t?`out ${n} ${r};`:`in ${n} ${r};`))),e}}class g{constructor(){this._entries=new Set}add(t){this._entries.add(t)}generateSource(t){const e="vertex"===t?g.ALLOWLIST_VERTEX:g.ALLOWLIST_FRAGMENT;return Array.from(this._entries).filter((t=>e.includes(t))).map((t=>`#extension ${t} : enable`))}}g.ALLOWLIST_FRAGMENT=["GL_EXT_shader_texture_lod","GL_OES_standard_derivatives"],g.ALLOWLIST_VERTEX=[];class _{constructor(){this._entries=new Set}add(t,e,n){let r="ERROR_CONSTRUCTOR_STRING";switch(e){case"float":r=_._numberToFloatStr(n);break;case"int":r=_._numberToIntStr(n);break;case"bool":r=n.toString();break;case"vec2":r=`vec2(${_._numberToFloatStr(n[0])}, ${_._numberToFloatStr(n[1])})`;break;case"vec3":r=`vec3(${_._numberToFloatStr(n[0])}, ${_._numberToFloatStr(n[1])}, ${_._numberToFloatStr(n[2])})`;break;case"vec4":r=`vec4(${_._numberToFloatStr(n[0])}, ${_._numberToFloatStr(n[1])}, ${_._numberToFloatStr(n[2])}, ${_._numberToFloatStr(n[3])})`;break;case"ivec2":r=`ivec2(${_._numberToIntStr(n[0])}, ${_._numberToIntStr(n[1])})`;break;case"ivec3":r=`ivec3(${_._numberToIntStr(n[0])}, ${_._numberToIntStr(n[1])}, ${_._numberToIntStr(n[2])})`;break;case"ivec4":r=`ivec4(${_._numberToIntStr(n[0])}, ${_._numberToIntStr(n[1])}, ${_._numberToIntStr(n[2])}, ${_._numberToIntStr(n[3])})`;break;case"mat2":case"mat3":case"mat4":r=`${e}(${Array.prototype.map.call(n,(t=>_._numberToFloatStr(t))).join(", ")})`}return this._entries.add(`const ${e} ${t} = ${r};`),this}static _numberToIntStr(t){return t.toFixed(0)}static _numberToFloatStr(t){return Number.isInteger(t)?t.toFixed(1):t.toString()}generateSource(){return Array.from(this._entries)}}const v="precision highp float;\nprecision highp sampler2D;";var b=n(77524);function w(t,e,n){const r=e.split("\n");for(const e of r)if(e.trim().length){{let e="";null!=n&&(e+=`/*id:${n??"000"}*/ `),t.body+=e.padEnd(14)}t.body+=" ".repeat(t.indent)+e+"\n"}}class S{write(t){for(const e of t.rootOutputNodes())t.shouldPruneOutputNode(e)||(e.variableName=this._write(t,e.node));return t}_createVarName(t,e){let n="";return"boolean"!=typeof e&&"number"!=typeof e&&e.debugInfo.name&&(n=`${e.debugInfo.name}_`),`${n}v${t.varCount++}`}_write(t,e,n=!1){if("number"==typeof e)return e.toString();if("boolean"==typeof e)return e.toString();let r=t.getEmit(e);if(r)return r;switch(e.shaderType){case"scope-node":r=this._writeScopeNode(t,e);break;case"primitive-node":r=this._writePrimitveNode(t,e,n);break;case"function-node":r=this._writeFunctionNode(t,e);break;case"property-access-node":r=this._writePropertyAccessNode(t,e);break;case"text-node":r=e.text;break;case"block-node":r=this._writeBlockNode(t,e);break;case"condition-node":r=this._writeConditionNode(t,e)}return t.setEmit(e,r),r}_writeScopeNode(t,e){const n=new e.child.constructor;n.setDebugName(e.debugInfo.name);const r=this._write(t,n,!0);return w(t,`{ /*ScopeStart: ${e.uid} ${e.debugInfo.name}*/`),t.indent+=2,w(t,`${r} = ${this._write(t,e.child)};`),t.indent-=2,w(t,`} /*ScopeEnd: ${e.uid} ${e.debugInfo.name}*/`),r}_writeConditionNode(t,e){const n=new e.ifTrue.constructor,r=this._write(t,n,!0);w(t,`if (${this._write(t,e.condition)}) {`),t.indent+=2;const i=t.createSubgraphContext(),s=this._write(i,e.ifTrue);if(t.body+=i.body,s&&w(t,`${r} = ${s};`),t.indent-=2,w(t,"}"),e.ifFalse){w(t,"else {"),t.indent+=2;const n=t.createSubgraphContext(),i=this._write(n,e.ifFalse);t.body+=n.body,i&&w(t,`${r} = ${i};`),t.indent-=2,w(t,"}")}return r}_writeBlockNode(t,e){const{captureList:n,generator:r,returnType:i}=e,s={};for(const e in n){if(!n[e])continue;const r=this._write(t,n[e]);s[e]=r}const o=new i,a=this._write(t,o,!0);if(s.out=a,e.subgraph){const n=t.createSubgraphContext(),r=this._write(n,e.subgraph.child),i=n.body;s.subgraph={varName:r,body:i}}const c=r(s);return w(t,"{\n"),t.indent+=2,w(t,c),t.indent-=2,w(t,"}\n"),a}_writePropertyAccessNode(t,e){const n=this._write(t,e.target);return"string"==typeof e.property&&e.property.includes("[")?`${n}${e.property}`:"string"!=typeof e.property?`${n}[${this._write(t,e.property)}]`:`${n}.${e.property}`}_writeFunctionNode(t,e){const n=e.returnType.type;if(e.isInfix){const[r,i]=e.children.map((e=>this._write(t,e))),s=this._createVarName(t,e);return w(t,`${n.padEnd(5)} ${s} = ${r} ${e.token} ${i};`,e.uid),s}const r=e.children.map((e=>this._write(t,e))).join(", "),i=this._createVarName(t,e);return w(t,`${n.padEnd(5)} ${i} = ${e.token}(${r});`,e.uid),i}_writePrimitveNode(t,e,n=!1){const r=t.getInput(e);if(r)return r.isUsed=!0,r.variableName;const i=1===e.children.length&&e.children[0]?.type===e.type;if(e.isImplicit||i)return this._write(t,e.children[0]);const s=this._createVarName(t,e);if(n)return w(t,`${e.type.padEnd(5)} ${s};`,e.uid),s;const o=!e.debugInfo.name&&!e.isMutable;if(o&&"float"===e.type&&"number"==typeof e.children[0])return Number.isInteger(e.children[0])?e.children[0].toFixed(1):e.children[0].toString();if(o&&"int"===e.type&&"number"==typeof e.children[0]&&Number.isInteger(e.children[0]))return e.children[0].toString();const a=e.children.map((e=>this._write(t,e))).join(", ");return"array"===e.type?(w(t,`${e.type.padEnd(5)} ${s} = [${a}];`,e.uid),s):o?`${e.type}(${a})`:(w(t,`${e.type.padEnd(5)} ${s} = ${e.type}(${a});`,e.uid),s)}}var T=n(67304);class P{constructor(t,e,n){this.variableName=t,this.variableInputType=e,this.node=n,this.type="shader-input",this.isUsed=!1}clone(){return new P(this.variableName,this.variableInputType,(0,T.UV)(this.node))}}class k{constructor(t,e,n){this.outVariableName=t,this.outVariableType=e,this.node=n,this.type="shader-output"}clone(){const t=new k(this.outVariableName,this.outVariableType,(0,T.UV)(this.node));return t.variableName=this.variableName,t}}class I{static createVertex(t,e,n,r,i,s){const o=[];for(const e in t){const r=t[e],i=n.get(e);i?o.push(new P(i,"builtin",r)):o.push(new P("a_"+e,"attribute",r))}for(const t of r){const e=t.uniformHydrated;o.push(new P(t.uniformName,"uniform",e))}const a=[];for(const t in e){const n=e[t];"glPosition"===t?a.push(new k("gl_Position","builtin",n)):"glPointSize"===t?a.push(new k("gl_PointSize","builtin",n)):a.push(new k("v_"+t,"varying",n))}return new I(o,a,i,s)}static createFragment(t,e,n,r,i,s){const o=[],a=Array.from(i.rootOutputNodes());for(const e in t){const r=t[e],i=n.get(e);if(i){o.push(new P(i,"builtin",r));continue}const s=a.find((t=>t.node===r));s&&o.push(new P(s.outVariableName,s.outVariableType,r))}for(const t of r){const e=t.uniformHydrated;o.push(new P(t.uniformName,"uniform",e))}const c=[];for(const t in e){const r=e[t],i=n.get(t);if("discard"===t)c.push(new k(null,"discard",r));else{if(!i)throw new Error(`Member ${t} in shader fragment output shoule be tagged as builtin`);c.push(new k(i,"builtin",r))}}return new I(o,c,s)}constructor(t,e,n,r){this.type="shader-graph-context",this.indent=0,this.body="",this.varCount=0,this._inputShaderTypesByNodeUid=new Map,this._nodeEmitMap=new Map;for(const e of t)this._inputShaderTypesByNodeUid.set(e.node.uid,e);this._outputShaderTypes=e,this._transformFeedbackBindings=n,this._transformFeedbackNames=new Set(n.map((t=>"v_"+t.propertyKey))),this._usedInFragmentShader=r}shouldPruneOutputNode(t){return!!this._usedInFragmentShader&&"builtin"!==t.outVariableType&&!this._transformFeedbackNames.has(t.outVariableName)&&!this._usedInFragmentShader.has(t.node.uid)}setEmit(t,e){this._nodeEmitMap.set(t.uid,e)}getEmit(t){return this._nodeEmitMap.get(t.uid)}inputs(){return this._inputShaderTypesByNodeUid.values()}getInput(t){return this._inputShaderTypesByNodeUid.get(t.uid)}*rootOutputNodes(){for(const t of this._outputShaderTypes)yield t}*nodes(){const t=[];for(const e of this._outputShaderTypes.values())t.push(e.node);for(;t.length;){const e=t.pop();"number"!=typeof e&&"boolean"!=typeof e&&t.push(...e.children.filter(Boolean)),yield e}}*nodesOfTypeOrFunction(){for(const t of this.nodes())"number"!=typeof t&&"boolean"!=typeof t&&(yield t)}createSubgraphContext(){const t=this.clone();return t.body="",t.indent=this.indent+2,t._nodeEmitMap=new Map(this._nodeEmitMap),t}clone(){const t=new I([],this._outputShaderTypes,this._transformFeedbackBindings,this._usedInFragmentShader);return t._inputShaderTypesByNodeUid=this._inputShaderTypesByNodeUid,t.indent=this.indent,t.body=this.body,t.varCount=this.varCount,t._nodeEmitMap=this._nodeEmitMap,t}insertVertexShader(t){t.vertex.code.add(""),this._insertInputs(t,"vertex"),t.vertex.code.add(""),t.vertex.code.add("// OUTPUTS: "),t.vertex.code.add("// --------------------------------------------------------- ");for(const e of this.rootOutputNodes()){const n="builtin"===e.outVariableType;this.shouldPruneOutputNode(e)||(n?t.vertex.code.add(`// ${e.outVariableType.padEnd(7)} ${e.node.type.padEnd(9)} ${e.outVariableName};`):t.vertex.code.add(`${e.outVariableType.padEnd(10)} ${e.node.type.padEnd(9)} ${e.outVariableName};`))}t.vertex.code.add(""),t.vertex.code.add("void main() {"),t.vertex.code.add(" "+this.body.split("\n").join("\n "));for(const e of this.rootOutputNodes())this.shouldPruneOutputNode(e)||t.vertex.code.add(` ${e.outVariableName} = ${e.variableName};`);t.vertex.code.add("}")}insertFragmentShader(t){this._insertInputs(t,"fragment"),t.fragment.code.add(""),t.fragment.code.add("void main() {"),t.fragment.code.add(" "+this.body.split("\n").join("\n "));for(const e of this.rootOutputNodes())"discard"===e.outVariableType?(t.fragment.code.add(" // TODO: Should ensure codegen for discard appears first in fragment shader"),t.fragment.code.add(` if (${e.variableName}) {`),t.fragment.code.add(" discard;"),t.fragment.code.add(" }"),t.fragment.code.add(" ")):t.fragment.code.add(` ${e.outVariableName} = ${e.variableName};`);t.fragment.code.add("}")}_insertInputs(t,e){t[e].code.add("// INPUTS: "),t[e].code.add("// --------------------------------------------------------- ");for(const n of this.inputs())n.isUsed&&"builtin"!==n.variableInputType&&("array"===n.node.type?t[e].code.add(`${n.variableInputType.padEnd(10)} ${n.node.elementType.type.padEnd(9)} ${n.variableName}[${n.node.size}];`):t[e].code.add(`${n.variableInputType.padEnd(10)} ${n.node.type.padEnd(9)} ${n.variableName};`))}}var M=n(6664);function V(t){return new t}function N(t,e,n){const r=t.constructor[e]??[];t.constructor.hasOwnProperty(e)||Object.defineProperty(t.constructor,e,{value:r.slice()}),t.constructor[e].push(n)}function z(t,e){return(n,r)=>{N(n,"locations",{typeCtor:e,propertyKey:r,parameterIndex:null,index:t})}}const E=t=>(e,n,r)=>{N(e,"inputs",{inputCtor:t,propertyKey:n,parameterIndex:r})},D=t=>(e,n)=>{N(e,"uniforms",{typeCtor:t,propertyKey:n})},F=t=>(e,n)=>{N(e,"options",{typeCtor:t,propertyKey:n})},U=(t,e)=>{N(t,"defines",{propertyKey:e})};const O=(t,e)=>(n,r)=>{n.constructor.builtins.push({builtin:t,propertyKey:r,typeCtor:e})};class R{}R.builtins=[],(0,r._)([O("gl_VertexID",b.J7)],R.prototype,"glVertexID",void 0);class C{}class B{}B.builtins=[],(0,r._)([O("gl_FragCoord",b.T8)],B.prototype,"glFragCoord",void 0),(0,r._)([O("gl_PointCoord",b.Sg)],B.prototype,"glPointCoord",void 0);class L{}(0,r._)([(t=>(e,n)=>{N(e,"builtins",{builtin:t,propertyKey:n})})("gl_FragColor")],L.prototype,"glFragColor",void 0);class A{constructor(){this.type="uniform-group"}get _uniforms(){return this.constructor.uniforms??[]}}class ${constructor(){this.logShader=!1,this.computeAttributes={}}get vertexInput(){const t=(0,i.dF)(this._shaderModuleClass.inputs,(t=>"vertex"===t.propertyKey&&0===t.parameterIndex));if(!t)throw new Error("Unable to find vertex input parameter");return t}get computeInput(){return(0,i.dF)(this._shaderModuleClass.inputs,(t=>"vertex"===t.propertyKey&&1===t.parameterIndex))}get fragmentInput(){const t=(0,i.dF)(this._shaderModuleClass.inputs,(t=>"fragment"===t.propertyKey));if(!t)throw new Error("Unable to find fragment input parameter");return t}get transformFeedbackBindings(){return this.fragmentInput.inputCtor.transformFeedbackBindings??[]}get locations(){return[...this.vertexInput.inputCtor.locations,...this.computeInput?.inputCtor.locations??[]]}get locationsMap(){const t=new Map,e=new Set;for(const n of this.locations)e.has(n.index)?s.Z.getLogger("esri.views.2d.engine.webgl.shaderGraph.GraphShaderModule").warnOnce("mapview-rendering",`Unable to assigned attribute ${n.propertyKey} to ${n.index}. Index already in use`,{locationsMap:t}):(t.set(n.propertyKey,n.index),e.add(n.index));return t}get locationInfo(){if(!this._locationInfo){const t=this.locationsMap,e=Array.from(t.entries()).map((([t,e])=>`${t}.${e}`)).join("."),n=(0,o.hP)(e);this._locationInfo={hash:n,locations:t}}return this._locationInfo}get renamedLocationsMap(){const t=new Map;for(const e of this.locations)t.set("a_"+e.propertyKey,e.index);return t}get optionPropertyKeys(){if(!this._optionPropertyKeys){const t=new Set;for(const e of this._options)t.add(e.propertyKey);this._optionPropertyKeys=t}return this._optionPropertyKeys}get _shaderModuleClass(){return this.constructor}get _defines(){return this._shaderModuleClass.defines??[]}get _options(){return this._shaderModuleClass.options??[]}get _uniforms(){return this._shaderModuleClass.uniforms??[]}getProgram(t,e,n,r){try{const{vertex:i,fragment:s,uniformBindings:o}=this._generateShaders(t,e,n,r);return new M.X(i,s,this.renamedLocationsMap,this.locationInfo,o,this.transformFeedbackBindings)}catch(t){return new M.X("","",this.renamedLocationsMap,this.locationInfo,[],this.transformFeedbackBindings)}}getDebugUniformClassInfo(t){const e=this._options.find((e=>e.propertyKey===t));if(e)return{type:"option",className:e.typeCtor};const n=this._uniforms.find((e=>e.propertyKey===t));if(!n)throw new Error(`Unable to find uniform class type for property: ${t}`);return{type:"required",className:n.typeCtor}}getShaderKey(t,e,n,r){const i=Object.keys(n).map((t=>`${t}.${n[t]}`)).join("."),s=Object.keys(r).map((t=>`${t}.${r[t]}`)).join("."),o=Object.keys(e).filter((t=>this.optionPropertyKeys.has(t)&&e[t])).join(".");return`${this.constructor.name}.${t.hash}.${i}.${s}.${o}`}_generateShaders(t,e,n,r){const i=[];this._setDefines(n),this._setOptionalUniforms(i,e),this._setRequiredUniforms(i);const s=this._hydrateVertexInput(r),o=this._injectPackPrecisionFactor(s,t),a=this._hydrateComputeInput(),c=a&&this._injectPackPrecisionFactor(a,t),u=this.vertex(o,c),l=this._hydrateFragmentInput(u),h=this.fragment(l),d=new Set;for(const t in h){const e=h[t];(0,T.Q0)(d,e)}const p=this._getVertexInputBuiltins(),f=I.createVertex({...s,...a},u,p,i,this.transformFeedbackBindings,d);(new S).write(f);const y=this._getFragmentInputBuiltins(h);y.set("glPointCoord","gl_PointCoord");const x=I.createFragment(l,h,y,i,f,this.transformFeedbackBindings);(new S).write(x);const m=this._createShaderBuilder(f,x),g=m.generate("vertex",!1),_=m.generate("fragment",!1);return this.logShader,{vertex:g,fragment:_,uniformBindings:i}}_setDefines(t){for(const e in t)this[e]=t[e]}_setOptionalUniforms(t,e){for(const n of this._options)e[n.propertyKey]?this[n.propertyKey]=this._hydrateUniformGroup(t,n):this[n.propertyKey]=null}_setRequiredUniforms(t){for(const e of this._uniforms)this[e.propertyKey]=this._hydrateUniformGroup(t,e)}_hydrateUniformGroup(t,e){const n=new(0,e.typeCtor);for(const r of n._uniforms??[]){const i=V(r.typeCtor),s=`u_${e.propertyKey}_${r.propertyKey}`,o=i.type,a=[e.propertyKey,r.propertyKey].join(".");if("type"in r.typeCtor&&"array"===r.typeCtor.type){const e=i;t.push({shaderModulePath:a,uniformName:s,uniformType:o,uniformArrayLength:e.size,uniformArrayElementType:e.elementType.type,uniformHydrated:i})}else t.push({shaderModulePath:a,uniformName:s,uniformType:o,uniformHydrated:i});n[r.propertyKey]=i}return n}_hydrateVertexInput(t){const e=this.vertexInput.inputCtor,n=e.locations.reduce(((e,n)=>!1===t[n.propertyKey]?e:{...e,[n.propertyKey]:V(n.typeCtor)}),{});for(const{propertyKey:t,typeCtor:r}of e.builtins){const e=V(r);n[t]=e}return n}_hydrateComputeInput(){return null==this.computeInput?null:this.computeInput.inputCtor.locations.reduce(((t,e)=>({...t,[e.propertyKey]:V(e.typeCtor)})),{})}_injectPackPrecisionFactor(t,e){const n={};for(const r in t){const i=t[r],s=e.attributes.find((t=>t.name===r));if(s?.packPrecisionFactor){if("float"!==i.type&&"vec2"!==i.type&&"vec3"!==i.type&&"vec4"!==i.type)throw new Error(`InternalError: packPrecisionFactor requires GenType, but found ${i.type}`);n[r]=i.divide(new b.bv(s.packPrecisionFactor))}else n[r]=i}return n}_hydrateFragmentInput(t){const e={};for(const n in t)e[n]=t[n];for(const{propertyKey:t,typeCtor:n}of B.builtins){const r=V(n);e[t]=r}return e}_getVertexInputBuiltins(){const t=this.vertexInput.inputCtor,e=new Map;for(const{builtin:n,propertyKey:r}of t.builtins)e.set(r,n);return e}_getFragmentInputBuiltins(t){const e=t.constructor,n=new Map;for(const t of e.builtins??[])n.set(t.propertyKey,t.builtin);return n}_createShaderBuilder(t,e){const n=new d;return this._insertDebugInfo(n),t.insertVertexShader(n),e.insertFragmentShader(n),n}_insertDebugInfo(t){t.vertex.code.add("// DEFINES: "),t.vertex.code.add("// --------------------------------------------------------- ");for(const e of this._defines)this[e.propertyKey]?t.vertex.code.add(`// ${e.propertyKey}: true`):t.vertex.code.add(`// ${e.propertyKey}: false`);t.vertex.code.add(""),t.vertex.code.add("// OPTIONS: "),t.vertex.code.add("// --------------------------------------------------------- ");for(const e of this._options)this[e.propertyKey]?t.vertex.code.add(`// ${e.propertyKey}: true`):t.vertex.code.add(`// ${e.propertyKey}: false`)}}},67304:function(t,e,n){function r(t,e){const n=[];for(n.push(e);n.length;){const e=n.pop();if("object"==typeof e&&!t.has(e.uid)){t.add(e.uid);for(const t of e.children)n.push(t)}}}n.d(e,{Q0:function(){return r},UV:function(){return s},Yo:function(){return u},Ys:function(){return h},br:function(){return a},h9:function(){return o},lJ:function(){return l},rK:function(){return c}});class i{constructor(){this.uid=i.NodeCount++,this._debugName=null,this._isMutable=!1,this.isImplicit=!1}get isMutable(){return this._isMutable}setMutable(){return this._isMutable=!0,this}setDebugName(t){return t=function(t){return t.split(" ").map(((t,e)=>e>0?t.charAt(0).toUpperCase()+t.slice(1):t)).join("")}(t),this._debugName=t,this.isImplicit&&this.children[0]instanceof i&&this.children[0].setDebugName(t),this}get debugInfo(){return{name:this._debugName??""}}cloneInto(t){t._debugName=this._debugName,t._isMutable=this._isMutable,t.isImplicit=this.isImplicit,t.uid=this.uid}}function s(t){return"object"==typeof t?t.clone():t}i.NodeCount=0;class o extends i{constructor(){super(...arguments),this.shaderType="primitive-node"}}class a extends i{constructor(t){super(),this.child=t,this.shaderType="scope-node"}get children(){return[this.child]}clone(){const t=new a(s(this.child));return this.cloneInto(t),t}}class c extends i{constructor(t,e,n){super(),this.property=t,this.target=e,this.returnType=n,this.shaderType="property-access-node"}get children(){const t=[this.target];return"string"!=typeof this.property&&t.push(this.property),t}clone(){const t=new c(this.property,s(this.target),this.returnType);return this.cloneInto(t),t}}class u extends i{constructor(t,e,n){super(),this.condition=t,this.ifTrue=e,this.ifFalse=n,this.shaderType="condition-node"}get children(){return[this.condition,this.ifTrue,this.ifFalse]}clone(){const t=s(this.ifTrue),e=this.ifFalse?s(this.ifFalse):null,n=new u(this.condition,t,e);return this.cloneInto(n),n}}class l extends i{constructor(t,e,n,r){super(),this.captureList=t,this.returnType=e,this.generator=r,this.shaderType="block-node",n&&(this.subgraph=new a(n))}get children(){return Object.keys(this.captureList).map((t=>this.captureList[t])).concat(this.subgraph??[])}clone(){const t={};for(const e in this.captureList)t[e]=s(this.captureList[e]);const e=new l(t,this.returnType,this.subgraph?s(this.subgraph.child):this.subgraph,this.generator);return this.cloneInto(e),e}}class h extends i{constructor(t,e,n,r,i,s=!1){super(),this.token=t,this._children=e,this.isInfix=n,this.isPropertyAccess=r,this.returnType=i,this.isTernary=s,this.shaderType="function-node"}get children(){return this._children}clone(){const t=new h(this.token,this._children.map(s),this.isInfix,this.isPropertyAccess,this.returnType,this.isTernary);return this.cloneInto(t),t}}},77524:function(t,e,n){n.d(e,{AK:function(){return kt},AO:function(){return k},CD:function(){return Et},CW:function(){return Rt},Dg:function(){return lt},Eg:function(){return S},Fp:function(){return Nt},Fv:function(){return Ft},GW:function(){return It},Iz:function(){return ft},J7:function(){return R},K4:function(){return K},KJ:function(){return it},Nb:function(){return Ct},O$:function(){return Ot},Qj:function(){return pt},R3:function(){return Z},Sg:function(){return P},T8:function(){return I},TE:function(){return Pt},Tu:function(){return $},VV:function(){return zt},Wn:function(){return _t},ZI:function(){return Mt},bv:function(){return T},cs:function(){return at},e$:function(){return H},ff:function(){return Ut},fz:function(){return Y},hx:function(){return ht},ig:function(){return Bt},kE:function(){return Vt},ln:function(){return dt},mC:function(){return Tt},mD:function(){return wt},or:function(){return mt},r7:function(){return xt},tS:function(){return yt},tW:function(){return E},tk:function(){return nt},uZ:function(){return St},v8:function(){return w},vh:function(){return q},wO:function(){return X},wQ:function(){return Dt},wV:function(){return st},xD:function(){return gt},yb:function(){return W}});var r,i,s,o,a,c,u,l,h,d,p,f,y,x,m=n(36663),g=n(67304);function _(t){return new Proxy(t,{get(e,n){if("constructor"===n)return new Proxy(e.constructor,{construct:(t,e,n)=>_(new t(...e))});if(n in e)return e[n];if("string"==typeof n){const e=function(t){const e=[["float","vec2","vec3","vec4"],["int","ivec2","ivec3","ivec4"],["uint","uvec2","uvec3","uvec4"],["bool","bvec2","bvec3","bvec4"]];for(const n of e)if(n.includes(t))return n.map((t=>G[t]));throw new Error("Unable to find type family")}(t.type);return j(t,n,e[n.length-1])}}})}function v(t){return new Proxy(t,{construct:(t,e,n)=>_(new t(...e))})}class b extends Error{}let w=r=class extends g.h9{constructor(t,e){super(),this.elementType=t,this.size=e,this.children=[],this.type="array"}clone(){const t=new r(this.elementType,this.size);return super.cloneInto(t),t}get(t){if("number"==typeof t){const e=new R(t);return e.isImplicit=!0,j(this,e,this.elementType.constructor)}return j(this,t,this.elementType.constructor)}last(){return this.get(this.size-1)}first(){return this.get(0)}findIndex(t,e,n){return function(t,e,n=0,r=t.size){const i=new R(n).setMutable().setDebugName("FindIndexIterator"),s=e(t.get(i)).setDebugName("FindIndexPredicate"),o=rt({iter:i},R,s,(({out:t,iter:e,subgraph:n})=>`\n${t} = -1;\n\nfor (; ${e} < ${r}; ${e}++) {\n\n${n.body}\n\n if (${n.varName}) {\n ${t} = ${e};\n break;\n }\n\n}\n`)).setDebugName("FindIndexBlock");return o}(this,t,e,n)}glslFindIndex(t,e,n){return function(t,e,n=0,r=t.size){const i=rt({array:t},R,null,(({out:t,array:i})=>`\n${t} = -1;\nfor (int i = ${n}; i < ${r}; i++) {\n bool condition;\n ${e({array:i,i:"i",out:"condition"})}\n if (condition) {\n ${t} = i;\n break;\n }\n}\n`)).setDebugName("GlslFindIndexBlock");return i}(this,t,e,n)}static ofType(t,e){const n={construct:(n,i)=>new r(new t,e)};return new Proxy(r,n)}};w.type="array",w=r=(0,m._)([function(t){return new Proxy(t,{construct:(t,e,n)=>function(t){return new Proxy(t,{get(e,n){if(n in e)return e[n];if("string"==typeof n){const e=parseInt(n,10);if(!isNaN(e))return j(t,`[${e}]`,t.elementType.constructor)}}})}(new t(...e))})}],w);class S extends g.h9{constructor(){super(...arguments),this.type="sampler2D",this.children=[]}clone(){const t=new S;return t.children=this.children.map(g.UV),super.cloneInto(t),t}}S.type="sampler2D";class T extends g.h9{constructor(t){super(),this.type="float",this.children=[t]}clone(){const t=new T((0,g.UV)(this.children[0]));return super.cloneInto(t),t}multiply(t){return ot(this,"number"==typeof t?U(t,T):t)}divide(t){return at(this,"number"==typeof t?U(t,T):t)}add(t){return ct(this,"number"==typeof t?U(t,T):t)}subtract(t){return ut(this,"number"==typeof t?U(t,T):t)}}T.type="float";let P=i=class extends g.h9{constructor(t,e){super(),this.type="vec2",this.children=[t,e].filter((t=>null!=t))}clone(){const t=new i((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]));return super.cloneInto(t),t}get 0(){return j(this,"[0]",T)}get 1(){return j(this,"[1]",T)}get 2(){throw new b}get 3(){throw new b}multiply(t){return ot(this,"number"==typeof t?U(t,T):t)}divide(t){return at(this,"number"==typeof t?U(t,T):t)}add(t){return ct(this,"number"==typeof t?U(t,T):t)}subtract(t){return ut(this,"number"==typeof t?U(t,T):t)}};P.type="vec2",P=i=(0,m._)([v],P);let k=s=class extends g.h9{constructor(t,e,n){super(),this.type="vec3",this.children=[t,e,n].filter((t=>null!=t))}get 0(){return j(this,"[0]",T)}get 1(){return j(this,"[1]",T)}get 2(){return j(this,"[2]",T)}get 3(){throw new b}clone(){const t=new s((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]),(0,g.UV)(this.children[2]));return super.cloneInto(t),t}multiply(t){return ot(this,"number"==typeof t?U(t,T):t)}divide(t){return at(this,"number"==typeof t?U(t,T):t)}add(t){return ct(this,"number"==typeof t?U(t,T):t)}subtract(t){return ut(this,"number"==typeof t?U(t,T):t)}};k.type="vec3",k=s=(0,m._)([v],k);let I=o=class extends g.h9{constructor(t,e,n,r){super(),this.type="vec4",this.children=[t,e,n,r].filter((t=>null!=t))}clone(){const t=new o((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]),(0,g.UV)(this.children[2]),(0,g.UV)(this.children[3]));return super.cloneInto(t),t}get 0(){return j(this,"[0]",T)}get 1(){return j(this,"[1]",T)}get 2(){return j(this,"[2]",T)}get 3(){return j(this,"[3]",T)}multiply(t){return ot(this,"number"==typeof t?U(t,T):t)}divide(t){return at(this,"number"==typeof t?U(t,T):t)}add(t){return ct(this,"number"==typeof t?U(t,T):t)}subtract(t){return ut(this,"number"==typeof t?U(t,T):t)}};I.type="vec4",I=o=(0,m._)([v],I);let M=a=class extends g.h9{constructor(t){super(),this.type="uint",this.children=[t]}clone(){const t=new a((0,g.UV)(this.children[0]));return super.cloneInto(t),t}};M.type="uint",M=a=(0,m._)([v],M);let V=c=class extends g.h9{constructor(t,e){super(),this.type="uvec2",this.children=[t,e].filter((t=>null!=t))}clone(){const t=new c((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]));return super.cloneInto(t),t}};V.type="uvec2",V=c=(0,m._)([v],V);let N=u=class extends g.h9{constructor(t,e,n){super(),this.type="uvec3",this.children=[t,e,n].filter((t=>null!=t))}clone(){const t=new u((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]),(0,g.UV)(this.children[2]));return super.cloneInto(t),t}};N.type="uvec3",N=u=(0,m._)([v],N);let z=l=class extends g.h9{constructor(t,e,n,r){super(),this.type="uvec4",this.children=[t,e,n,r].filter((t=>null!=t))}clone(){const t=new l((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]),(0,g.UV)(this.children[2]),(0,g.UV)(this.children[3]));return super.cloneInto(t),t}};z.type="uvec4",z=l=(0,m._)([v],z);class E extends g.h9{constructor(t){super(),this.type="bool",this.children=[t]}and(t){return gt(this,t)}or(t){return mt(this,t)}clone(){const t=new E((0,g.UV)(this.children[0]));return super.cloneInto(t),t}}E.type="bool";let D=h=class extends g.h9{constructor(t,e){super(),this.type="bvec2",this.children=[t,e].filter((t=>null!=t))}all(){return vt(this)}any(){return bt(this)}clone(){const t=new h((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]));return super.cloneInto(t),t}};D.type="bvec2",D=h=(0,m._)([v],D);let F=d=class extends g.h9{constructor(t,e,n){super(),this.type="bvec3",this.children=[t,e,n].filter((t=>null!=t))}all(){return vt(this)}any(){return bt(this)}clone(){const t=new d((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]),(0,g.UV)(this.children[2]));return super.cloneInto(t),t}};function U(t,e){return"number"==typeof t?new e(t):t}F.type="bvec3",F=d=(0,m._)([v],F);let O=p=class extends g.h9{constructor(t,e,n,r){super(),this.type="bvec4",this.children=[t,e,n,r].filter((t=>null!=t))}all(){return vt(this)}any(){return bt(this)}clone(){const t=new p((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]),(0,g.UV)(this.children[2]),(0,g.UV)(this.children[3]));return super.cloneInto(t),t}};O.type="bvec4",O=p=(0,m._)([v],O);class R extends g.h9{constructor(t){super(),this.type="int",this.children=[t]}multiply(t){return ot(this,U(t,R))}add(t){return ct(this,U(t,R))}subtract(t){return ut(this,U(t,R))}divide(t){return at(this,U(t,R))}clone(){const t=new R((0,g.UV)(this.children[0]));return super.cloneInto(t),t}}R.type="int";let C=f=class extends g.h9{constructor(t,e){super(),this.type="ivec2",this.children=[t,e].filter((t=>null!=t))}clone(){const t=new f((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]));return super.cloneInto(t),t}};C.type="ivec2",C=f=(0,m._)([v],C);let B=y=class extends g.h9{constructor(t,e,n){super(),this.type="ivec3",this.children=[t,e,n].filter((t=>null!=t))}clone(){const t=new y((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]),(0,g.UV)(this.children[2]));return super.cloneInto(t),t}};B.type="ivec3",B=y=(0,m._)([v],B);let L=x=class extends g.h9{constructor(t,e,n,r){super(),this.type="ivec4",this.children=[t,e,n,r].filter((t=>null!=t))}clone(){const t=new x((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]),(0,g.UV)(this.children[2]),(0,g.UV)(this.children[3]));return super.cloneInto(t),t}};L.type="ivec4",L=x=(0,m._)([v],L);class A extends g.h9{constructor(t,e,n,r){super(),this.type="mat2",this.children=[t,e,n,r]}clone(){const t=new A((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]),(0,g.UV)(this.children[2]),(0,g.UV)(this.children[3]));return super.cloneInto(t),t}}A.type="mat2";class $ extends g.h9{static identity(){return new $(1,0,0,0,1,0,0,0,1)}static fromRotation(t){const e=Ot(t),n=Tt(t);return new $(n,e,0,nt(e),n,0,0,0,1)}constructor(t,e,n,r,i,s,o,a,c){super(),this.type="mat3",this.children=[t,e,n,r,i,s,o,a,c]}add(t){return ct(this,t)}multiply(t){return ot(this,t)}clone(){const t=new $((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]),(0,g.UV)(this.children[2]),(0,g.UV)(this.children[3]),(0,g.UV)(this.children[4]),(0,g.UV)(this.children[5]),(0,g.UV)(this.children[6]),(0,g.UV)(this.children[7]),(0,g.UV)(this.children[8]));return super.cloneInto(t),t}}$.type="mat3";class W extends g.h9{static identity(){return new W(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)}constructor(t,e,n,r,i,s,o,a,c,u,l,h,d,p,f,y){super(),this.type="mat4",this.children=[t,e,n,r,i,s,o,a,c,u,l,h,d,p,f,y]}static fromColumns(t,e,n,r){return new W(t.x,t.y,t.z,t.w,e.x,e.y,e.z,e.w,n.x,n.y,n.z,n.w,r.x,r.y,r.z,r.w)}multiply(t){return ot(this,t)}clone(){const t=new W((0,g.UV)(this.children[0]),(0,g.UV)(this.children[1]),(0,g.UV)(this.children[2]),(0,g.UV)(this.children[3]),(0,g.UV)(this.children[4]),(0,g.UV)(this.children[5]),(0,g.UV)(this.children[6]),(0,g.UV)(this.children[7]),(0,g.UV)(this.children[8]),(0,g.UV)(this.children[9]),(0,g.UV)(this.children[10]),(0,g.UV)(this.children[11]),(0,g.UV)(this.children[12]),(0,g.UV)(this.children[13]),(0,g.UV)(this.children[14]),(0,g.UV)(this.children[15]));return super.cloneInto(t),t}}W.type="mat4";const G={float:T,vec2:P,vec3:k,vec4:I,int:R,ivec2:C,ivec3:B,ivec4:L,uint:M,uvec2:V,uvec3:N,uvec4:z,bool:E,bvec2:D,bvec3:F,bvec4:O},H=(...t)=>new R(...t),Y=(...t)=>new T(...t),K=(...t)=>new P(...t),Z=(...t)=>new k(...t),q=(...t)=>new I(...t),X=(...t)=>new $(...t);function j(t,e,n){const r=new n(new g.rK(e,t,n));return r.isImplicit=!0,r}function Q(t,e,n,r=null){if(r){const i=new r,s=new r(new g.Ys(t,[e,n],!0,!1,i));return s.isImplicit=!0,s}if("float"===e.type||"int"===e.type){const r=new n.constructor(new g.Ys(t,[e,n],!0,!1,n.constructor));return r.isImplicit=!0,r}if(("mat2"===e.type||"mat3"===e.type||"mat4"===e.type)&&"float"!==n.type){const r=new n.constructor(new g.Ys(t,[e,n],!0,!1,n.constructor));return r.isImplicit=!0,r}const i=new e.constructor(new g.Ys(t,[e,n],!0,!1,e.constructor));return i.isImplicit=!0,i}function J(t,e,n=e.constructor){const r=new n(new g.Ys(t,[e],!1,!1,n));return r.isImplicit=!0,r}function tt(t,e,n,r=e.constructor){const i=new r(new g.Ys(t,[e,n],!1,!1,r));return i.isImplicit=!0,i}function et(t,e,n,r,i=e.constructor){const s=new i(new g.Ys(t,[e,n,r],!1,!1,i));return s.isImplicit=!0,s}function nt(t){return ot(t,Y(-1))}function rt(t,e,n,r){return new e(new g.lJ(t,e,n,r))}function it(t,e,n){const r="function"==typeof e?e():e,i="function"==typeof n?n():n,s=new r.constructor(new g.Yo(t,r,i));return s.isImplicit=!0,s}function st(...t){const e=t.map((([t,e])=>"function"==typeof e?[t,e()]:[t,e])),n=e[0][1].constructor,r=e.findIndex((t=>!0===t[0]));if(-1===r)throw new Error("A cond must have a fallthrough case with `true`/; ");const i=e.slice(0,r),s=e[r][1],o=new n(i.reduceRight(((t,e)=>it(e[0],e[1],t)),s));return o.isImplicit=!0,o}function ot(t,e){return Q("*",t,e)}function at(t,e){return Q("/",t,e)}function ct(t,e){return Q("+",t,e)}function ut(t,e){return Q("-",t,e)}function lt(t,e){return Q(">>",t,e)}function ht(t,e){return Q("&",t,e)}function dt(t,e){return Q("==",t,e,E)}function pt(t,e){return Q("<",t,e,E)}function ft(t,e){return Q("<=",t,e,E)}function yt(t,e){return Q(">",t,e,E)}function xt(t,e){return Q(">=",t,e,E)}function mt(...t){return t.length<=1?t[0]:t.slice(1).reduce(((t,e)=>function(t,e){return Q("||",t,e,E)}(t,e)),t[0])}function gt(...t){return t.length<=1?t[0]:t.slice(1).reduce(((t,e)=>function(t,e){return Q("&&",t,e,E)}(t,e)),t[0])}function _t(t){return J("abs",t)}function vt(t){return J("all",t,E)}function bt(t){return J("any",t,E)}function wt(t){return J("ceil",t)}function St(t,e,n){return et("clamp",t,e,n,t.constructor)}function Tt(t){return J("cos",t)}function Pt(t,e){return tt("distance",t,e,T)}function kt(t,e){return tt("dot",t,e,T)}function It(t){return J("floor",t)}function Mt(t){return J("fract",t)}function Vt(t){return J("length",t,T)}function Nt(t,e){return tt("max",t,e)}function zt(t,e){return tt("min",t,e)}function Et(t,e,n){return et("mix",t,e,n)}function Dt(t,e){return tt("mod",t,e)}function Ft(t){return J("normalize",t)}function Ut(t){return"bool"===t.type?J("!",t):J("not",t)}function Ot(t){return J("sin",t)}function Rt(t,e,n){return et("smoothstep",t,e,n)}function Ct(t,e){return tt("step",t,e,e.constructor)}function Bt(t,e){return tt("texture2D",t,e,I)}},70080:function(t,e,n){n.d(e,{m:function(){return r}});const r={bitset:{isSDF:0,isMapAligned:1,scaleSymbolsProportionally:2,overrideOutlineColor:3,colorLocked:4}}},21606:function(t,e,n){n.d(e,{U:function(){return Oe}});var r=n(39994),i=n(38958),s=(n(5992),n(82584)),o=n(15540),a=n(14266);function c(t,e,n,r,i,s,o){D=0;const a=(r-n)*s,c=i&&i.length,l=c?(i[0]-n)*s:a;let d,p,f,y,x,g=u(e,n,r,0,l,s,!0);if(g&&g.next!==g.prev){if(c&&(g=m(e,n,r,i,g,s)),a>80*s){d=f=e[0+n*s],p=y=e[1+n*s];for(let t=s;t0)for(let n=r;n=r;n-=s)a=f(n+e*s,t[n+e*s],t[n+1+e*s],a);return a&&P(a,a.next)&&(y(a),a=a.next),a}function l(t,e=t){if(!t)return t;let n,r=t;do{if(n=!1,r.steiner||!P(r,r.next)&&0!==v(r.prev,r,r.next))r=r.next;else{if(y(r),r=e=r.prev,r===r.next)break;n=!0}}while(n||r!==e);return e}function h(t,e,n,r,i,s,o,a){if(!t)return;!a&&s&&(t=_(t,r,i,s));let c=t;for(;t.prev!==t.next;){const u=t.prev,f=t.next;if(s?p(t,r,i,s):d(t))e.push(u.index/n+o),e.push(t.index/n+o),e.push(f.index/n+o),y(t),t=f.next,c=f.next;else if((t=f)===c){a?1===a?h(t=I(t,e,n,o),e,n,r,i,s,o,2):2===a&&M(t,e,n,r,i,s,o):h(l(t),e,n,r,i,s,o,1);break}}}function d(t){const e=t.prev,n=t,r=t.next;if(v(e,n,r)>=0)return!1;let i=t.next.next;const s=i;let o=0;for(;i!==t.prev&&(0===o||i!==s);){if(o++,w(e.x,e.y,n.x,n.y,r.x,r.y,i.x,i.y)&&v(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function p(t,e,n,r){const i=t.prev,s=t,o=t.next;if(v(i,s,o)>=0)return!1;const a=i.xs.x?i.x>o.x?i.x:o.x:s.x>o.x?s.x:o.x,l=i.y>s.y?i.y>o.y?i.y:o.y:s.y>o.y?s.y:o.y,h=T(a,c,e,n,r),d=T(u,l,e,n,r);let p=t.prevZ,f=t.nextZ;for(;p&&p.z>=h&&f&&f.z<=d;){if(p!==t.prev&&p!==t.next&&w(i.x,i.y,s.x,s.y,o.x,o.y,p.x,p.y)&&v(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,f!==t.prev&&f!==t.next&&w(i.x,i.y,s.x,s.y,o.x,o.y,f.x,f.y)&&v(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(;p&&p.z>=h;){if(p!==t.prev&&p!==t.next&&w(i.x,i.y,s.x,s.y,o.x,o.y,p.x,p.y)&&v(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;f&&f.z<=d;){if(f!==t.prev&&f!==t.next&&w(i.x,i.y,s.x,s.y,o.x,o.y,f.x,f.y)&&v(f.prev,f,f.next)>=0)return!1;f=f.nextZ}return!0}function f(t,e,n,r){const i=z.create(t,e,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function y(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function x(t){let e=t,n=t;do{(e.x=n.next.y&&n.next.y!==n.y){const t=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=r&&t>o){if(o=t,t===r){if(i===n.y)return n;if(i===n.next.y)return n.next}s=n.x=n.x&&n.x>=c&&r!==n.x&&w(is.x)&&S(n,t)&&(s=n,h=l)),n=n.next;return s}(t,e);if(!n)return e;const r=N(n,t);return l(r,r.next),l(n,n.next)}function _(t,e,n,r){let i;for(;i!==t;i=i.next){if(i=i||t,null===i.z&&(i.z=T(i.x,i.y,e,n,r)),i.prev.next!==i||i.next.prev!==i)return i.prev.next=i,i.next.prev=i,_(t,e,n,r);i.prevZ=i.prev,i.nextZ=i.next}return t.prevZ.nextZ=null,t.prevZ=null,function(t){let e,n=1;for(;;){let r,i=t;t=null,e=null;let s=0;for(;i;){s++,r=i;let o=0;for(;o0||a>0&&r;){let n;0===o?(n=r,r=r.nextZ,a--):0!==a&&r?i.z<=r.z?(n=i,i=i.nextZ,o--):(n=r,r=r.nextZ,a--):(n=i,i=i.nextZ,o--),e?e.nextZ=n:t=n,n.prevZ=e,e=n}i=r}if(e.nextZ=null,n*=2,s<2)return t}}(t)}function v(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function b(t,e,n,r){return!!(P(t,e)&&P(n,r)||P(t,r)&&P(n,e))||v(t,e,n)>0!=v(t,e,r)>0&&v(n,r,t)>0!=v(n,r,e)>0}function w(t,e,n,r,i,s,o,a){return(i-o)*(e-a)-(t-o)*(s-a)>=0&&(t-o)*(r-a)-(n-o)*(e-a)>=0&&(n-o)*(s-a)-(i-o)*(r-a)>=0}function S(t,e){return v(t.prev,t,t.next)<0?v(t,e,t.next)>=0&&v(t,t.prev,e)>=0:v(t,e,t.prev)<0||v(t,t.next,e)<0}function T(t,e,n,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-r)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function P(t,e){return t.x===e.x&&t.y===e.y}function k(t,e){return t.x-e.x}function I(t,e,n,r){let i=t;do{const s=i.prev,o=i.next.next;!P(s,o)&&b(s,i,i.next,o)&&S(s,o)&&S(o,s)&&(e.push(s.index/n+r),e.push(i.index/n+r),e.push(o.index/n+r),y(i),y(i.next),i=t=o),i=i.next}while(i!==t);return i}function M(t,e,n,r,i,s,o){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.index!==t.index&&V(a,t)){let c=N(a,t);return a=l(a,a.next),c=l(c,c.next),h(a,e,n,r,i,s,o,0),void h(c,e,n,r,i,s,o,0)}t=t.next}a=a.next}while(a!==t)}function V(t,e){return t.next.index!==e.index&&t.prev.index!==e.index&&!function(t,e){let n=t;do{if(n.index!==t.index&&n.next.index!==t.index&&n.index!==e.index&&n.next.index!==e.index&&b(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&S(t,e)&&S(e,t)&&function(t,e){let n=t,r=!1;const i=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&i<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==t);return r}(t,e)}function N(t,e){const n=z.create(t.index,t.x,t.y),r=z.create(e.index,e.x,e.y),i=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=i,i.prev=n,r.next=n,n.prev=r,s.next=r,r.prev=s,r}class z{constructor(){this.index=0,this.x=0,this.y=0,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}static create(t,e,n){const r=Dn||on)return!0}r+=s}return!1}(t,-128,a.i9+128))return t;F.setPixelMargin(e),F.reset(s.Vl.Polygon);let n=0;for(let e=0;e({name:t.name,count:t.count,offset:t.offset,type:t.type,packPrecisionFactor:t.packPrecisionFactor,normalized:t.normalized??!1})));this._attributeLayout={attributes:e,hash:t,stride:this.stride}}return this._attributeLayout}}var Z=n(91683);class q{static fromVertexSpec(t,e){const n=K.fromVertexSpec(t,e);return new q(n)}constructor(t){this._spec=t,this._packed=new Uint8Array(this._spec.stride*this._spec.packVertexCount),this._packedU32View=new Uint32Array(this._packed.buffer),this._dataView=new DataView(this._packed.buffer)}get attributeLayout(){return this._spec.attributeLayout}get stride(){return this._spec.stride}writeVertex(t,e,n,r,i,s){for(let t=0;tthis.vertexSpec.createComputedParams(t)}get _vertexPack(){if(!this._cachedVertexPack){const t=q.fromVertexSpec(this.vertexSpec,this._optionalAttributes);this._evaluator.hasDynamicProperties||t.pack(this._evaluator.evaluatedMeshParams,this._viewParams),this._cachedVertexPack=t}return this._cachedVertexPack}get evaluatedMeshParams(){return this._evaluator.evaluatedMeshParams}get hasEffects(){return!!this.evaluatedMeshParams.effects}get instanceId(){return this._instanceId}get attributeLayout(){return this._vertexPack.attributeLayout}setReferences(t){this._references=t}getBoundsInfo(){return null}getTileInfo(){return this._viewParams.tileInfo}async loadDependencies(){(function(t){if(!t)return!1;for(const e of t)switch(e.effect.type){case"CIMGeometricEffectBuffer":case"CIMGeometricEffectOffset":case"CIMGeometricEffectDonut":return!0}return!1})(this._evaluator.inputMeshParams.params.effects?.effectInfos)&&await async function(){A=await Promise.all([n.e(9067),n.e(3296)]).then(n.bind(n,8923))}()}enqueueRequest(t,e,n){this._evaluator.hasDynamicProperties&&this._evaluator.enqueueRequest(t,e,n)}write(t,e,n,r,i){this.ensurePacked(e,n,r);const s=this.evaluatedMeshParams.effects;if(!s||0===s.length)return void this._write(t,n,void 0,i);const o=n.readGeometryForDisplay()?.clone();if(!o)return;const a=B.z.fromOptimizedCIM(o,n.geometryType),c=$();a.invertY();const u=t.id||"",l=L.j.executeEffects(s,a,u,c);let h;for(;h=l.next();)h.invertY(),this._write(t,n,h,i)}ensurePacked(t,e,n){if(!this._evaluator.hasDynamicProperties)return;const r=this._evaluator.evaluateMeshParams(t,e,n);this._vertexPack.pack(r,this._viewParams)}_writeVertex(t,e,n,r,i){const s=this.evaluatedMeshParams;this._vertexPack.writeVertex(t,e,n,r,s,i)}}const j=(0,r.Z)("featurelayer-fast-triangulation-enabled");class Q extends X{async loadDependencies(){await Promise.all([super.loadDependencies(),(0,i.j)()])}_write(t,e,n){const r=n?.asOptimized()??e.readGeometryForDisplay(),i=this._clip(r);i&&(t.recordStart(this.instanceId,this.attributeLayout),this._writeGeometry(t,e,i),t.recordEnd())}_clip(t){if(!t)return null;return C(t,this.hasEffects?256:8)}_writeGeometry(t,e,n){const r=n.maxLength>100,s=[],o=this.createTesselationParams(e);if(!r&&j&&function(t,e){const{coords:n,lengths:r,hasIndeterminateRingOrder:i}=e,s=t;if(i)return!1;let o=0;for(let t=0;t0))break;a+=s,u.push(o+i),i+=t}const l=s.length;c(s,n,o,o+i,u,2,0);const h=R(s,n,l,s.length,0),d=Math.abs(a);if(Math.abs((h-d)/Math.max(1e-7,d))>1e-5)return s.length=0,!1;t=e,o+=i}return!0}(s,n))return void(s.length&&this._writeVertices(t,e,n.coords,o,s));const a=function(t){const{coords:e,lengths:n}=t,{buffer:r}=(0,i.b)(e,n);return r}(n);this._writeVertices(t,e,a,o)}_writeVertices(t,e,n,r,i){const s=e.getDisplayId(),o=t.vertexCount(),a=this.hasEffects;let c=0;if(i)for(const e of i){const i=n[2*e],o=n[2*e+1];a&&t.recordBounds(i,o,0,0),this._writeVertex(t,s,i,o,r),c++}else for(let e=0;et,attributes:{id:{type:H.g.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:H.g.UNSIGNED_BYTE,count:1},pos:{type:H.g.SHORT,count:2,pack:"position",packPrecisionFactor:10},inverseArea:{type:H.g.FLOAT,count:1,packTessellation:({inverseArea:t})=>t}}};var tt=n(95550),et=n(93944),nt=n(30936),rt=n(70375),it=n(13802),st=n(25609);function ot(t,e){return[!!t?.minScale&&e.scaleToZoom(t.minScale)||0,!!t?.maxScale&&e.scaleToZoom(t.maxScale)||100]}function at(t){return 1<t,attributes:{id:{type:H.g.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:H.g.UNSIGNED_BYTE,count:1},pos:{type:H.g.SHORT,count:2,pack:"position",packPrecisionFactor:10},zoomRange:{type:H.g.SHORT,count:2,packPrecisionFactor:a.JS,pack:({scaleInfo:t},{tileInfo:e})=>ot(t,e)},color:{type:H.g.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:t})=>ut(t)}}};class ft extends Q{constructor(){super(...arguments),this.vertexSpec=pt}createTesselationParams(t){return null}}const yt={createComputedParams:t=>t,attributes:{...pt.attributes,tlbr:{count:4,type:H.g.UNSIGNED_SHORT,pack:({sprite:t})=>{const{rect:e,width:n,height:r}=t,i=e.x+a.s4,s=e.y+a.s4;return[i,s,i+n,s+r]}},inverseRasterizationScale:{count:1,type:H.g.BYTE,packPrecisionFactor:16,pack:({sprite:t})=>1/t.rasterizationScale}}};class xt extends ft{constructor(){super(...arguments),this.vertexSpec=yt}_write(t,e,n){const r=n?.asOptimized()??e.readGeometryForDisplay(),i=this._clip(r);if(!i)return;const s=this.evaluatedMeshParams.sprite?.textureBinding;t.recordStart(this.instanceId,this.attributeLayout,s),this._writeGeometry(t,e,i),t.recordEnd()}}var mt=n(44255);function gt(t){const{sprite:e,aspectRatio:n,scaleProportionally:r}=t,i=(0,tt.F2)(t.height),s=i>0?i:e.height;let o=i*n;return o<=0?o=e.width:r&&(o*=e.width/e.height),{width:o,height:s}}function _t(t){const{applyRandomOffset:e,sampleAlphaOnly:n}=t,{width:r,height:i}=gt(t);return ct([[mt.Ux,e],[mt.GS,n],[mt.i6,rt,attributes:{...yt.attributes,bitset:{count:1,type:H.g.UNSIGNED_BYTE,pack:_t},width:{count:1,type:H.g.UNSIGNED_SHORT,pack:vt},height:{count:1,type:H.g.UNSIGNED_SHORT,pack:bt},offset:{count:2,type:H.g.SHORT,pack:({offsetX:t,offsetY:e})=>[(0,tt.F2)(t),-(0,tt.F2)(e)]},scale:{count:2,type:H.g.UNSIGNED_BYTE,packPrecisionFactor:16,pack:({scaleX:t,scaleY:e})=>[t,e]},angle:{count:1,type:H.g.UNSIGNED_BYTE,pack:({angle:t})=>(0,et.s5)(t)}}};var St=n(54475);class Tt{constructor(){this.extrusionOffsetX=0,this.extrusionOffsetY=0,this.normalX=0,this.normalY=0,this.directionX=0,this.directionY=0,this.distance=0}}const Pt={createComputedParams:t=>t,attributes:{id:{type:H.g.UNSIGNED_BYTE,count:3,pack:"id"},pos:{type:H.g.SHORT,count:2,pack:"position",packPrecisionFactor:10},bitset:{type:H.g.UNSIGNED_BYTE,count:1},zoomRange:{type:H.g.SHORT,count:2,packPrecisionFactor:a.JS,pack:({scaleInfo:t},{tileInfo:e})=>ot(t,e)},color:{type:H.g.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:t})=>ut(t)},offset:{type:H.g.BYTE,count:2,packPrecisionFactor:16,packTessellation:({extrusionOffsetX:t,extrusionOffsetY:e})=>[ht(t,16),ht(e,16)]},normal:{type:H.g.BYTE,count:2,packPrecisionFactor:16,packTessellation:({normalX:t,normalY:e})=>[ht(t,16),ht(e,16)]},halfWidth:{type:H.g.UNSIGNED_SHORT,count:1,packPrecisionFactor:16,pack:({width:t})=>dt((0,tt.F2)(.5*t),16)},referenceHalfWidth:{type:H.g.UNSIGNED_SHORT,count:1,packPrecisionFactor:16,pack:({referenceWidth:t})=>dt((0,tt.F2)(.5*t),16)}}};class kt{constructor(){this.id=0,this.bitset=0,this.indexCount=0,this.vertexCount=0,this.vertexFrom=0,this.vertexBounds=0}}class It extends X{constructor(t,e,n,r){super(t,e,n,r),this.vertexSpec=Pt,this._currentWrite=new kt,this._tessellationOptions={halfWidth:0,pixelCoordRatio:1,offset:0,wrapDistance:65535,textured:!1},this._tessParams=new Tt,this._initializeTessellator()}writeLineVertices(t,e,n){const r=this._getLines(e);null!=r&&this._writeVertices(t,n,r)}_initializeTessellator(){this._lineTessellator=new St.z(this._writeTesselatedVertex.bind(this),this._writeTriangle.bind(this),!0)}_write(t,e,n){const r=n??B.z.fromFeatureSetReaderCIM(e);r&&this._writeGeometry(t,e,r)}_writeGeometry(t,e,n,r){t.recordStart(this.instanceId,this.attributeLayout,r),this.writeLineVertices(t,n,e),t.recordEnd()}_getLines(t){return function(t,e){U.setPixelMargin(e);const n=U,r=-e,i=a.i9+e;let o=[],c=!1;if(!t.nextPath())return null;let u=!0;for(;u;){t.seekPathStart();const e=[];if(!t.pathSize)return null;n.reset(s.Vl.LineString),t.nextPoint();let a=t.x,l=t.y;if(c)n.moveTo(a,l);else{if(ai||li){c=!0;continue}e.push({x:a,y:l})}let h=!1;for(;t.nextPoint();)if(a=t.x,l=t.y,c)n.lineTo(a,l);else{if(ai||li){h=!0;break}e.push({x:a,y:l})}if(h)c=!0;else{if(c){const t=n.resultWithStarts();if(t)for(const e of t)o.push(e)}else o.push({line:e,start:0});u=t.nextPath(),c=!1}}return o=o.filter((t=>t.line.length>1)),0===o.length?null:o}(t,(0,G.b8)(this.evaluatedMeshParams))}_writeVertices(t,e,n){const{_currentWrite:r,_tessellationOptions:i,evaluatedMeshParams:s}=this,{width:o,capType:c,joinType:u,miterLimit:l,hasSizeVV:h}=s,d=(0,tt.F2)(.5*o);i.halfWidth=d,i.capType=function(t){switch(t){case"butt":case st.kP.Butt:return st.RL.BUTT;case"round":case st.kP.Round:return st.RL.ROUND;case"square":case st.kP.Square:return st.RL.SQUARE}}(c),i.joinType=function(t){switch(t){case"bevel":case st.r4.Bevel:return st.AH.BEVEL;case"miter":case st.r4.Miter:return st.AH.MITER;case"round":case st.r4.Round:return st.AH.ROUND}}(u),i.miterLimit=l;const p=!h;r.out=t,r.id=e.getDisplayId(),r.vertexCount=0,r.indexCount=0,r.vertexFrom=t.vertexCount(),r.vertexBounds=p&&dt,attributes:{...Pt.attributes,bitset:{type:H.g.UNSIGNED_BYTE,count:1,pack:t=>0},color:{type:H.g.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:t})=>ut(t)}}},Vt={createComputedParams:t=>t,attributes:{...Pt.attributes,bitset:{type:H.g.UNSIGNED_BYTE,count:1,pack:t=>ct([[mt.WD,!0]])},color:{type:H.g.UNSIGNED_BYTE,count:4,normalized:!0,pack:({outlineColor:t})=>ut(t)}}};class Nt extends It{constructor(){super(...arguments),this.vertexSpec=Vt}}class zt extends ft{constructor(t,e,n,r){super(t,e,n,r),this.vertexSpec=Mt,this._lineMeshWriter=this._createOutlineWriter(t,e,n,r)}_createOutlineWriter(t,e,n,r){return new Nt(t,e,n,r)}_write(t,e,n){const r=n?.asOptimized()??e.readGeometryForDisplay(),i=this._clip(r);i&&(t.recordStart(this.instanceId,this.attributeLayout),this._writeGeometry(t,e,i),this._lineMeshWriter.writeLineVertices(t,B.z.fromOptimizedCIM(i,"esriGeometryPolyline"),e),t.recordEnd())}_clip(t){return t?C(t,(0,G.b8)(this.evaluatedMeshParams)):null}ensurePacked(t,e,n){super.ensurePacked(t,e,n),this._lineMeshWriter.ensurePacked(t,e,n)}enqueueRequest(t,e,n){super.enqueueRequest(t,e,n),this._lineMeshWriter.enqueueRequest(t,e,n)}async loadDependencies(){await Promise.all([super.loadDependencies(),this._lineMeshWriter.loadDependencies()])}}var Et=n(10063);const Dt=wt.attributes,Ft=Vt.attributes,Ut={createComputedParams:t=>t,attributes:{id:Dt.id,pos:Dt.pos,zoomRange:Dt.zoomRange,tlbr:Dt.tlbr,angle:Dt.angle,color:Dt.color,bitset:{type:H.g.UNSIGNED_BYTE,count:1,pack:t=>_t(t)},aux1:{count:1,type:H.g.UNSIGNED_SHORT,pack:t=>vt(t)},aux2:{count:1,type:H.g.UNSIGNED_SHORT,pack:t=>bt(t)},aux3:{count:2,type:H.g.SHORT,pack:({offsetX:t,offsetY:e})=>[(0,tt.F2)(t),(0,tt.F2)(e)]},aux4:{count:2,type:H.g.UNSIGNED_BYTE,pack:({scaleX:t,scaleY:e})=>[t*Et.$1,e*Et.$1]}}},Ot={createComputedParams:t=>t,attributes:{id:Dt.id,pos:Dt.pos,zoomRange:Dt.zoomRange,tlbr:Dt.tlbr,angle:Dt.angle,color:Ft.color,bitset:{type:H.g.UNSIGNED_BYTE,count:1,pack:t=>ct([[mt.WD,!0]])},aux1:{count:1,type:H.g.UNSIGNED_SHORT,pack:t=>(0,tt.F2)(.5*t.width)*Et.$1},aux2:{count:1,type:H.g.UNSIGNED_SHORT,pack:t=>(0,tt.F2)(.5*t.referenceWidth)*Et.$1},aux3:{count:2,type:H.g.SHORT,packTessellation:({extrusionOffsetX:t,extrusionOffsetY:e})=>[t*Et.$1,e*Et.$1]},aux4:{count:2,type:H.g.UNSIGNED_BYTE,packTessellation:({normalX:t,normalY:e})=>[t*Et.$1+Et.NS,e*Et.$1+Et.NS]}}};class Rt extends Nt{constructor(){super(...arguments),this.vertexSpec=Ot}}const Ct={createComputedParams:t=>t,attributes:{...yt.attributes,...Mt.attributes}},Bt={createComputedParams:t=>t,attributes:{...yt.attributes,...Vt.attributes}};class Lt extends Nt{constructor(){super(...arguments),this.vertexSpec=Bt}}const At={createComputedParams:t=>t,attributes:{pos:{type:H.g.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:H.g.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:H.g.UNSIGNED_BYTE,count:1},offset:{type:H.g.BYTE,count:2,packAlternating:{count:4,pack:()=>[[-1,-1],[1,-1],[-1,1],[1,1]]}}}};var $t=n(86114),Wt=n(76231),Gt=n(43056),Ht=n(31090),Yt=n(88013),Kt=n(31067),Zt=n(14771),qt=n(13952);function Xt(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function jt(t,e){return Math.sqrt(t*t+e*e)}function Qt(t){const e=jt(t[0],t[1]);t[0]/=e,t[1]/=e}function Jt(t,e){return jt(t[0]-e[0],t[1]-e[1])}function te(t){return t.length-1}function ee(t){let e=0;for(let n=0;nt._index||this._index===t._index&&this._distance>=t._distance}get _segment(){return this._segments[this._index+1]}get angle(){const t=this.dy,e=(0*t+-1*-this.dx)/(1*this.length);let n=Math.acos(e);return t>0&&(n=2*Math.PI-n),n}get xStart(){return this._xStart}get yStart(){return this._yStart}get x(){return this.xStart+this.distance*this.dx}get y(){return this.yStart+this.distance*this.dy}get dx(){return this._segment[0]}get dy(){return this._segment[1]}get xMidpoint(){return this.xStart+.5*this.dx}get yMidpoint(){return this.yStart+.5*this.dy}get xEnd(){return this.xStart+this.dx}get yEnd(){return this.yStart+this.dy}get length(){const{dx:t,dy:e}=this;return Math.sqrt(t*t+e*e)}get remainingLength(){return this.length*(1-this._distance)}get backwardLength(){return this.length*this._distance}get distance(){return this._distance}get done(){return this._done}hasPrev(){return this._index-1>=0}hasNext(){return this._index+1t)return this._seekBackwards(t-r);r+=this.length}return this._distance=0,e?this:null}seek(t,e=!1){if(t<0)return this._seekBackwards(Math.abs(t),e);if(t<=this.remainingLength)return this._distance=(this.backwardLength+t)/this.length,this;let n=this.remainingLength;for(;this.next();){if(n+this.length>t)return this.seek(t-n,e);n+=this.length}return this._distance=1,e?this:null}}function ie(t,e,n,r=!0){const i=ee(t),s=re.create(t),o=i/2;if(!r)return s.seek(o),void(Math.abs(s.x)=0&&!(i[r+1]i[s]+l);o++){const r=l-i[o-1]+i[s],h=i[o]-i[o-1],d=i[o]-i[s]1){const t=(0,le.yl)(i,r,!1,e,n,o);this.fontSize=Math.min(t.size,96),this.postAngle=t.rotation,this.offsetX=t.offsetX,this.offsetY=t.offsetY}s&&(this.fontSize*=s,this.offsetX*=s,this.offsetY*=s)}}const de=[4,4],pe=[16,4],fe={topLeft:pe,topRight:pe,bottomLeft:pe,bottomRight:pe},ye=[4,2],xe=[4,6],me={topLeft:ye,topRight:ye,bottomLeft:xe,bottomRight:xe},ge={topLeft:ye,topRight:xe,bottomLeft:ye,bottomRight:xe},_e={topLeft:xe,topRight:xe,bottomLeft:de,bottomRight:de},ve={topLeft:de,topRight:de,bottomLeft:xe,bottomRight:xe},be={topLeft:xe,topRight:de,bottomLeft:xe,bottomRight:de},we={topLeft:de,topRight:xe,bottomLeft:de,bottomRight:xe},Se={createComputedParams:t=>t,attributes:{pos:{type:H.g.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:H.g.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:H.g.UNSIGNED_BYTE,count:1,packTessellation:({isBackground:t,mapAligned:e})=>ct([[mt.mL,t],[mt.$r,!!e]])},zoomRange:{type:H.g.UNSIGNED_SHORT,count:2,packPrecisionFactor:a.JS,packTessellation:({minZoom:t,maxZoom:e})=>[t||0,e||28]},offset:{type:H.g.SHORT,count:2,packPrecisionFactor:8,packAlternating:{count:4,packTessellation:({offsets:t})=>{const{bottomLeft:e,bottomRight:n,topLeft:r,topRight:i}=t;return[r,i,e,n]}}},textureUV:{type:H.g.SHORT,count:2,packPrecisionFactor:4,packAlternating:{count:4,packTessellation:({texcoords:t})=>{const{bottomLeft:e,bottomRight:n,topLeft:r,topRight:i}=t;return[r,i,e,n]}}},color:{type:H.g.UNSIGNED_BYTE,count:4,normalized:!0,packTessellation:({color:t})=>t},fontSize:{type:H.g.UNSIGNED_SHORT,count:1,packPrecisionFactor:4,packTessellation:({fontSize:t})=>(0,tt.F2)(t)},referenceSize:{type:H.g.UNSIGNED_BYTE,count:1,packPrecisionFactor:4,packTessellation:({fontSize:t},{referenceSize:e})=>(0,tt.F2)(e??t)},haloColor:{type:H.g.UNSIGNED_BYTE,count:4,normalized:!0,pack:({haloColor:t})=>ut(t)},haloFontSize:{type:H.g.UNSIGNED_SHORT,count:1,packPrecisionFactor:4,pack:({haloFontSize:t})=>(0,tt.F2)(t)},clipAngle:{type:H.g.UNSIGNED_BYTE,count:1,packTessellation:({clipAngle:t})=>Pe(t||0)},referenceSymbol:{type:H.g.BYTE,count:4,packPrecisionFactor:1,packTessellation:(t,e)=>{if(!t.referenceBounds)return[0,0,0,0];const n=(0,Ht.g)(e.horizontalAlignment),r=(0,Ht.tf)(e.verticalAlignment),{offsetX:i,offsetY:s,size:o}=t.referenceBounds;return[(0,tt.F2)(i),-(0,tt.F2)(s),(0,tt.F2)(o),n+1<<2|r+1]}}}};class Te extends X{constructor(){super(...arguments),this.vertexSpec=Se,this._textMeshParamsPropsInitialized=!1}ensurePacked(t,e,n){super.ensurePacked(t,e,n),this._textMeshParamsPropsInitialized&&!this._evaluator.hasDynamicProperties||(this._textMeshTransformProps=new he(this.evaluatedMeshParams),this._textMeshParamsPropsInitialized=!0)}_write(t,e,n){const r=this._getShaping();if(!r)return;const i=e.getDisplayId();if(null!=this.evaluatedMeshParams.placement)return this._writePlacedTextMarkers(t,e,r,n);if(n&&n.nextPath())return n.nextPoint(),this._writeGlyphs(t,i,n.x,n.y,r,0);if("esriGeometryPolygon"===e.geometryType){const n=e.readCentroidForDisplay();if(!n)return;const[s,o]=n.coords;return this._writeGlyphs(t,i,s,o,r,0)}if("esriGeometryMultipoint"===e.geometryType){const n=e.readGeometryForDisplay();return void n?.forEachVertex(((e,n)=>this._writeGlyphs(t,i,e,n,r,0)))}const s=e.readXForDisplay(),o=e.readYForDisplay();return this._writeGlyphs(t,i,s,o,r,0)}_writePlacedTextMarkers(t,e,n,r){const i=r??B.z.fromFeatureSetReaderCIM(e);if(!i)return;const s=ce.getPlacement(i,-1,this.evaluatedMeshParams.placement,(0,tt.F2)(1),t.id,$());if(!s)return;const o=e.getDisplayId();let a=s.next();for(;null!=a;){const e=a.tx,r=-a.ty,i=-a.getAngle();this._writeGlyphs(t,o,e,r,n,i),a=s.next()}}_getShaping(){const t=this._textMeshTransformProps,e=this.evaluatedMeshParams;if(!e.glyphs?.glyphs.length)return null;const n=Math.round((0,tt.F2)(t.fontSize)),r=(0,tt.F2)(t.offsetX),i=(0,tt.F2)(t.offsetY),s=(0,oe.uZ)((0,tt.F2)(e.lineWidth),32,512),o=a.uk*(0,oe.uZ)(e.lineHeightRatio,.25,4);return(0,ue.Nr)(e.glyphs,{scale:n/a.iD,angle:t.postAngle,xOffset:r,yOffset:i,horizontalAlignment:e.horizontalAlignment,verticalAlignment:e.verticalAlignment,maxLineWidth:s,lineHeight:o,decoration:e.decoration,borderLineSizePx:(0,tt.F2)(e.boxBorderLineSize),hasBackground:!!e.boxBackgroundColor,useCIMAngleBehavior:e.useCIMAngleBehavior})}_writeGlyphs(t,e,n,r,i,s,o,a){const c=this.evaluatedMeshParams,u=this._textMeshTransformProps,l=u.fontSize,h=(0,tt.F2)(u.offsetX),d=(0,tt.F2)(u.offsetY),[p,f]=ot(c.scaleInfo,this.getTileInfo());0!==s&&i.setRotation(s);const y=i.bounds,x=n+y.x+h,m=r+y.y-d,g=2*(c.minPixelBuffer?c.minPixelBuffer/l:1),_=Math.max(y.width,y.height)*g;i.textBox&&(t.recordStart(this.instanceId,this.attributeLayout,i.glyphs[0].textureBinding),t.recordBounds(x,m,_,_),this._writeTextBox(t,e,n,r,i.textBox,o,a),t.recordEnd());for(const s of i.glyphs){t.recordStart(this.instanceId,this.attributeLayout,s.textureBinding),t.recordBounds(x,m,_,_);const{texcoords:i,offsets:u}=s;this._writeQuad(t,e,n,r,{texcoords:i,offsets:u,fontSize:l,color:ut(c.color),isBackground:!1,referenceBounds:o,minZoom:p,maxZoom:f,...a}),t.recordEnd()}0!==s&&i.setRotation(-s)}_writeTextBox(t,e,n,r,i,s,o){const a=this.evaluatedMeshParams,{fontSize:c}=this._textMeshTransformProps,{boxBackgroundColor:u,boxBorderLineColor:l}=a,h={isBackground:!0,fontSize:c,referenceBounds:s,...o};u&&(this._writeQuad(t,e,n,r,{texcoords:fe,offsets:i.main,color:ut(u),...h}),l||(this._writeQuad(t,e,n,r,{texcoords:_e,offsets:i.top,color:ut(u),...h}),this._writeQuad(t,e,n,r,{texcoords:ve,offsets:i.bot,color:ut(u),...h}),this._writeQuad(t,e,n,r,{texcoords:be,offsets:i.left,color:ut(u),...h}),this._writeQuad(t,e,n,r,{texcoords:we,offsets:i.right,color:ut(u),...h}))),l&&(this._writeQuad(t,e,n,r,{texcoords:me,offsets:i.top,color:ut(l),...h}),this._writeQuad(t,e,n,r,{texcoords:me,offsets:i.bot,color:ut(l),...h}),this._writeQuad(t,e,n,r,{texcoords:ge,offsets:i.left,color:ut(l),...h}),this._writeQuad(t,e,n,r,{texcoords:ge,offsets:i.right,color:ut(l),...h}))}_writeQuad(t,e,n,r,i){const s=t.vertexCount();this._writeVertex(t,e,n,r,i),t.indexWrite(s+0),t.indexWrite(s+1),t.indexWrite(s+2),t.indexWrite(s+1),t.indexWrite(s+3),t.indexWrite(s+2)}}const Pe=t=>Math.round(t*(254/360)),ke=(0,$t.HP)((t=>{let e=0;if(0===t)return 1/0;for(;!(t%2);)e++,t/=2;return e}));const Ie={createComputedParams:t=>t,attributes:{...Pt.attributes,bitset:{type:H.g.UNSIGNED_BYTE,count:1,pack:({shouldSampleAlphaOnly:t,shouldScaleDash:e,isSDF:n})=>ct([[mt.GS,t],[mt.Wq,e],[mt.B7,n]])},tlbr:{type:H.g.UNSIGNED_SHORT,count:4,pack:({sprite:t})=>{const{rect:e,width:n,height:r}=t,i=e.x+a.s4,s=e.y+a.s4;return[i,s,i+n,s+r]}},accumulatedDistance:{type:H.g.UNSIGNED_SHORT,count:1,packTessellation:({distance:t})=>t},segmentDirection:{type:H.g.BYTE,count:2,packPrecisionFactor:16,packTessellation:({directionX:t,directionY:e})=>[t,e]}}};var Me=n(36531);class Ve{static from(t){return"width"in t?this.fromSimpleMeshParams(t):this.fromComplexMeshParams(t)}static fromSimpleMeshParams(t){const e=new Ve(t.sprite,t.color,t.outlineColor,t.minPixelBuffer,t.placement,t.scaleInfo,t.effects),{type:n,width:r,height:i,angle:s,alignment:o,outlineSize:a,referenceSize:c,sprite:u,overrideOutlineColor:l}=t;e.rawWidth=(0,tt.F2)(r),e.rawHeight=(0,tt.F2)(i),e.angle=s,e.alignment=o,e.outlineSize=(0,tt.F2)(a),e.referenceSize=(0,tt.F2)(c),e.overrideOutlineColor=l,e.offsetX=(0,tt.F2)(t.offsetX),e.offsetY=(0,tt.F2)(t.offsetY),"simple"!==n||u.sdf||(e.rawWidth=u.width,e.rawHeight=u.height);return e.sizeRatio=u.sdf?2:1,e._computeSize(t,!1),e}static fromComplexMeshParams(t){const e=new Ve(t.sprite,t.color,t.outlineColor,t.minPixelBuffer,t.placement,t.scaleInfo,t.effects);let{alignment:n,transforms:r,size:i,scaleX:s,anchorX:o,anchorY:a,angle:c,colorLocked:u,frameHeight:l,widthRatio:h,offsetX:d,offsetY:p,outlineSize:f,referenceSize:y,scaleFactor:x,sizeRatio:m,isAbsoluteAnchorPoint:g,rotateClockwise:_,scaleSymbolsProportionally:v,sprite:b}=t;if(r&&r.infos.length>0){const t=(0,le.yl)(i,c,_,d,p,r);i=t.size,c=t.rotation,d=t.offsetX,p=t.offsetY,_=!1}x&&(i*=x,d*=x,p*=x);const w=s*(b.width/b.height);e.alignment=n,e.rawHeight=(0,tt.F2)(i),e.rawWidth=e.rawHeight*w,e.referenceSize=(0,tt.F2)(y),e.sizeRatio=m,e.angle=c,e.rotateClockwise=_,e.anchorX=o,e.anchorY=a,e.offsetX=(0,tt.F2)(d),e.offsetY=(0,tt.F2)(p),g&&i&&(b.sdf?e.anchorX=o/(i*h):e.anchorX=o/(i*w),e.anchorY=a/i);const S=v&&l?i/l:1;return e.outlineSize=0===f||isNaN(f)?0:(0,tt.F2)(f)*S,e.scaleSymbolsProportionally=v,e.colorLocked=u,e._computeSize(t,!0),e}constructor(t,e,n,r,i,s,o){this.sprite=t,this.color=e,this.outlineColor=n,this.minPixelBuffer=r,this.placement=i,this.scaleInfo=s,this.effects=o,this.rawWidth=0,this.rawHeight=0,this.angle=0,this.outlineSize=0,this.referenceSize=0,this.sizeRatio=1,this.alignment=st.v2.SCREEN,this.scaleSymbolsProportionally=!1,this.overrideOutlineColor=!1,this.colorLocked=!1,this.anchorX=0,this.anchorY=0,this.computedWidth=0,this.computedHeight=0,this.texXmin=0,this.texYmin=0,this.texXmax=0,this.texYmax=0,this.offsetX=0,this.offsetY=0,this.rotateClockwise=!0}get boundsInfo(){return{size:Math.max(this.computedHeight,this.computedWidth),offsetX:this.offsetX,offsetY:this.offsetY}}_computeSize(t,e){const{sprite:n,hasSizeVV:r}=t,i=!!n.sdf,{rawWidth:s,rawHeight:o,sizeRatio:c,outlineSize:u}=this,l=s*c,h=o*c;if(i&&!r){const t=e&&s>o?l:s,n=o,r=u+2;this.computedWidth=Math.min(t+r,l),this.computedHeight=Math.min(n+r,h)}else this.computedWidth=l,this.computedHeight=h;const d=i?a.qu/Math.max(l,h):1,p=.5*(l-this.computedWidth)*d,f=.5*(h-this.computedHeight)*d,y=n.rect.x+a.s4+p,x=n.rect.y+a.s4+f,m=y+n.width-2*p,g=x+n.height-2*f;this.texXmin=Math.floor(y),this.texYmin=Math.floor(x),this.texXmax=Math.ceil(m),this.texYmax=Math.ceil(g),this.computedWidth*=(this.texXmax-this.texXmin)/(m-y),this.computedHeight*=(this.texYmax-this.texYmin)/(g-x),this.anchorX*=l/this.computedWidth,this.anchorY*=h/this.computedHeight}}var Ne=n(70080);const ze=3.14159265359/180,Ee=128/Math.PI;function De(t){return function(t,e){return t%=e,Math.abs(t>=0?t:t+e)}(t*Ee,256)}const Fe={createComputedParams:t=>Ve.from(t),attributes:{pos:{type:H.g.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:H.g.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:H.g.UNSIGNED_BYTE,count:1,pack:({sprite:t,alignment:e,scaleSymbolsProportionally:n,overrideOutlineColor:r,colorLocked:i})=>{let s=0;return t.sdf&&(s|=at(Ne.m.bitset.isSDF)),e===st.v2.MAP&&(s|=at(Ne.m.bitset.isMapAligned)),n&&(s|=at(Ne.m.bitset.scaleSymbolsProportionally)),r&&(s|=at(Ne.m.bitset.overrideOutlineColor)),i&&(s|=at(Ne.m.bitset.colorLocked)),s}},zoomRange:{type:H.g.SHORT,count:2,packPrecisionFactor:a.JS,pack:({scaleInfo:t},{tileInfo:e})=>ot(t,e)},offset:{type:H.g.SHORT,count:2,packPrecisionFactor:4,packAlternating:{count:4,pack:({angle:t,computedWidth:e,computedHeight:n,anchorX:r,anchorY:i,offsetX:s,offsetY:o,rotateClockwise:a})=>{const c=function(t,e,n,r,i=!1){const s=(0,Gt.Ue)(),o=i?1:-1;return t?(0,Wt.Us)(s,o*ze*t):(0,Wt.yR)(s),(e||n)&&(0,Wt.Iu)(s,s,[e,-n]),r&&(0,Wt.U1)(s,s,o*ze*-r),s}(0,s,o,-t,a),u=-(.5+r)*e,l=-(.5-i)*n,h=[u,l],d=[u+e,l],p=[u,l+n],f=[u+e,l+n];return(0,Me.iu)(h,h,c),(0,Me.iu)(d,d,c),(0,Me.iu)(p,p,c),(0,Me.iu)(f,f,c),[h,d,p,f]}}},textureUV:{type:H.g.SHORT,count:2,packPrecisionFactor:4,packAlternating:{count:4,pack:({texXmax:t,texXmin:e,texYmax:n,texYmin:r})=>[[e,r],[t,r],[e,n],[t,n]]}},color:{type:H.g.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:t})=>ut(t)},outlineColor:{type:H.g.UNSIGNED_BYTE,count:4,normalized:!0,pack:({outlineColor:t})=>ut(t)},sizing:{type:H.g.UNSIGNED_BYTE,count:4,pack:({rawWidth:t,rawHeight:e,outlineSize:n,referenceSize:r})=>[lt(Math.max(t,e),128),lt(n,128),lt(r,128),0]},placementAngle:{type:H.g.UNSIGNED_BYTE,count:1,packTessellation:({placementAngle:t})=>De(t)},sizeRatio:{type:H.g.UNSIGNED_SHORT,count:1,packPrecisionFactor:64,pack:({sizeRatio:t})=>t}}};const Ue={createComputedParams:t=>t,attributes:{pos:{type:H.g.SHORT,count:2,packPrecisionFactor:10,pack:"position"},id:{type:H.g.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:H.g.UNSIGNED_BYTE,count:1,pack:t=>0},offset:{type:H.g.SHORT,count:2,packPrecisionFactor:16,packAlternating:{count:4,pack:({size:t})=>{const e=(0,tt.F2)(t),n=-e/2,r=-e/2;return[[n,r],[n+e,r],[n,r+e],[n+e,r+e]]}}},texCoords:{type:H.g.SHORT,count:2,packPrecisionFactor:4,packAlternating:{count:4,pack:()=>[[0,1],[1,1],[0,0],[1,0]]}},size:{type:H.g.UNSIGNED_BYTE,count:2,pack:({size:t})=>[t,t]},referenceSize:{type:H.g.UNSIGNED_BYTE,count:1,pack:({size:t})=>(0,tt.F2)(t)},zoomRange:{type:H.g.UNSIGNED_BYTE,count:2,pack:({scaleInfo:t},{tileInfo:e})=>ot(t,e)}}};const Oe=function(t){const e={};for(const n in t){const r={name:n,constructor:t[n]};e[n]=r}return e}({FillMeshWriter:ft,DotDensityMeshWriter:class extends Q{constructor(){super(...arguments),this.vertexSpec=J}createTesselationParams(t){return{inverseArea:1/t.readGeometryArea()}}},ComplexFillMeshWriter:class extends xt{constructor(){super(...arguments),this.vertexSpec=wt}},PatternFillMeshWriter:xt,OutlineFillMeshWriter:zt,PatternOutlineFillMeshWriter:class extends zt{constructor(){super(...arguments),this.vertexSpec=Ct}_createOutlineWriter(t,e,n,r){return new Lt(t,e,n,r)}_write(t,e,n){const r=n?.asOptimized()??e.readGeometryForDisplay(),i=this._clip(r);if(!i)return;const s=this.evaluatedMeshParams.sprite?.textureBinding;t.recordStart(this.instanceId,this.attributeLayout,s),this._writeGeometry(t,e,i),this._lineMeshWriter.writeLineVertices(t,B.z.fromOptimizedCIM(i,"esriGeometryPolyline"),e),t.recordEnd()}ensurePacked(t,e,n){super.ensurePacked(t,e,n),this._lineMeshWriter.ensurePacked(t,e,n)}enqueueRequest(t,e,n){super.enqueueRequest(t,e,n),this._lineMeshWriter.enqueueRequest(t,e,n)}async loadDependencies(){await Promise.all([super.loadDependencies(),this._lineMeshWriter.loadDependencies()])}},ComplexOutlineFillMeshWriter:class extends zt{constructor(){super(...arguments),this.vertexSpec=Ut}_createOutlineWriter(t,e,n,r){return new Rt(t,e,n,r)}_write(t,e,n){const r=n?.asOptimized()??e.readGeometryForDisplay(),i=this._clip(r);if(!i)return;const s=this.evaluatedMeshParams.sprite?.textureBinding;t.recordStart(this.instanceId,this.attributeLayout,s),this._writeGeometry(t,e,i),this._lineMeshWriter.writeLineVertices(t,B.z.fromOptimizedCIM(i,"esriGeometryPolyline"),e),t.recordEnd()}ensurePacked(t,e,n){super.ensurePacked(t,e,n),this._lineMeshWriter.ensurePacked(t,e,n)}enqueueRequest(t,e,n){super.enqueueRequest(t,e,n),this._lineMeshWriter.enqueueRequest(t,e,n)}async loadDependencies(){await Promise.all([super.loadDependencies(),this._lineMeshWriter.loadDependencies()])}},MarkerMeshWriter:class extends X{constructor(){super(...arguments),this.vertexSpec=Fe}getBoundsInfo(){return this.evaluatedMeshParams.boundsInfo}_write(t,e,n){const r=this.evaluatedMeshParams.sprite?.textureBinding,i=e.getDisplayId();t.recordStart(this.instanceId,this.attributeLayout,r);const s=this.evaluatedMeshParams.minPixelBuffer,o=Math.max(this.evaluatedMeshParams.computedWidth,s),a=Math.max(this.evaluatedMeshParams.computedHeight,s),c=this.evaluatedMeshParams.offsetX,u=-this.evaluatedMeshParams.offsetY;if(null!=this.evaluatedMeshParams.placement)this._writePlacedMarkers(t,e,n,o,a);else if(n&&n.nextPath()){n.nextPoint();const e=n.x,r=n.y;t.recordBounds(e+c,r+u,o,a),this._writeQuad(t,i,e,r)}else if("esriGeometryPolygon"===e.geometryType){const n=e.readCentroidForDisplay();if(!n)return;const[r,s]=n.coords;t.recordBounds(r+c,s+u,o,a),this._writeQuad(t,i,r,s)}else if("esriGeometryPoint"===e.geometryType){const n=e.readXForDisplay(),r=e.readYForDisplay();t.recordBounds(n+c,r+u,o,a),this._writeQuad(t,i,n,r)}else{const n=e.readGeometryForDisplay();n?.forEachVertex(((e,n)=>{t.recordBounds(e+c,n+u,o,a),Math.abs(e)>qt.L||Math.abs(n)>qt.L||this._writeQuad(t,i,e,n)}))}t.recordEnd()}_writePlacedMarkers(t,e,n,r,i){const s=n??B.z.fromFeatureSetReaderCIM(e)?.clone();if(!s)return;const o=ce.getPlacement(s,-1,this.evaluatedMeshParams.placement,(0,tt.F2)(1),t.id,$());if(!o)return;const a=e.getDisplayId();let c=o.next();const u=this.evaluatedMeshParams.offsetX,l=-this.evaluatedMeshParams.offsetY;for(;null!=c;){const e=c.tx,n=-c.ty;if(Math.abs(e)>qt.L||Math.abs(n)>qt.L){c=o.next();continue}const s=-c.getAngle();t.recordBounds(e+u,n+l,r,i),this._writeQuad(t,a,e,n,s),c=o.next()}}_writeQuad(t,e,n,r,i){const s=t.vertexCount(),o=null==i?null:{placementAngle:i};this._writeVertex(t,e,n,r,o),t.indexWrite(s+0),t.indexWrite(s+1),t.indexWrite(s+2),t.indexWrite(s+1),t.indexWrite(s+3),t.indexWrite(s+2)}},PieChartMeshWriter:class extends X{constructor(){super(...arguments),this.vertexSpec=Ue}_write(t,e){const n=e.getDisplayId(),r=this.evaluatedMeshParams.minPixelBuffer,i=Math.max((0,tt.F2)(this.evaluatedMeshParams.size),r);let s,o;if("esriGeometryPoint"===e.geometryType)s=e.readXForDisplay(),o=e.readYForDisplay();else{const t=e.readCentroidForDisplay();if(!t)return;s=t?.coords[0],o=t?.coords[1]}t.recordStart(this.instanceId,this.attributeLayout),t.recordBounds(s,o,i,i);const a=t.vertexCount();this._writeVertex(t,n,s,o),t.indexWrite(a+0),t.indexWrite(a+1),t.indexWrite(a+2),t.indexWrite(a+1),t.indexWrite(a+3),t.indexWrite(a+2),t.recordEnd()}},TextMeshWriter:Te,LineMeshWriter:It,TexturedLineMeshWriter:class extends It{constructor(t,e,n,r){super(t,e,n,r),this.vertexSpec=Ie,this._tessellationOptions.textured=!0}_write(t,e,n){const r=n??B.z.fromFeatureSetReaderCIM(e);if(!r)return;const{sprite:i}=this.evaluatedMeshParams;this._writeGeometry(t,e,r,i?.textureBinding)}},HeatmapMeshWriter:class extends X{constructor(){super(...arguments),this.vertexSpec=At}_write(t,e){t.recordStart(this.instanceId,this.attributeLayout);const n=e.getDisplayId();if("esriGeometryPoint"===e.geometryType){const r=e.readXForDisplay(),i=e.readYForDisplay();this._writeQuad(t,n,r,i)}else if("esriGeometryMultipoint"===e.geometryType){const r=e.readGeometryForDisplay();r?.forEachVertex(((e,r)=>{e>=0&&e<=512&&r>=0&&r<=512&&this._writeQuad(t,n,e,r)}))}t.recordEnd()}_writeQuad(t,e,n,r){const i=t.vertexCount();this._writeVertex(t,e,n,r),t.indexWrite(i+0),t.indexWrite(i+1),t.indexWrite(i+2),t.indexWrite(i+1),t.indexWrite(i+3),t.indexWrite(i+2)}},LabelMeshWriter:class extends Te{constructor(){super(...arguments),this._zoomLevel=0}_write(t,e,n,r){if(this._zoomLevel=r||0,null!=n)throw new Error("InternalError: EffectGeometry not support for LabelMeshWriter");switch(e.geometryType){case"esriGeometryPoint":{const n=e.readXForDisplay(),r=e.readYForDisplay();return this._writePoint(t,n,r,e)}case"esriGeometryEnvelope":case"esriGeometryPolygon":case"esriGeometryMultipoint":{const n=e.readCentroidForDisplay();if(!n)return;const[r,i]=n.coords;return this._writePoint(t,r,i,e)}case"esriGeometryPolyline":{const n=e.readLegacyGeometryForDisplay();this._writeLines(t,e,n)}}}_writePoint(t,e,n,r){const i=this._getShaping();if(!i)return;let s=this._getPointReferenceBounds();s||(s={offsetX:0,offsetY:0,size:0});const o=i.boundsT,a=(0,Ht.kH)(this.evaluatedMeshParams.horizontalAlignment),c=(0,Ht.b7)(this.evaluatedMeshParams.verticalAlignment),u=this.evaluatedMeshParams.scaleInfo?.maxScale??0,l=this.evaluatedMeshParams.scaleInfo?.minScale??0,h=(0,Yt.jL)(r.getDisplayId());t.metricStart(new Zt.O(h,e,n,a,c,u,l,s)),t.metricBoxWrite(o),this._writeGlyphs(t,r.getDisplayId(),e,n,i,0,s),t.metricEnd()}_getPointReferenceBounds(){if(!this._references)return null;for(const t of this._references){const e=t.getBoundsInfo();if(e)return e}return null}_writeLines(t,e,n){const{repeatLabel:r,scaleInfo:i}=this.evaluatedMeshParams,s=this.evaluatedMeshParams.repeatLabelDistance||128,o=this._getShaping();if(!o)return;this._current={out:t,id:e.getDisplayId(),shaping:o,zoomRange:ot(i,this.getTileInfo()),referenceBounds:this._getPointReferenceBounds()||{offsetX:0,offsetY:0,size:0}};const a=function(t,e){const n=e;for(let e=0;e0&&(a||c)){const a=Math.max(e,s[0],0),c=Math.min(28,s[1]),u=(0,Wt.Us)((0,Gt.Ue)(),-t.angle),[d,p]=i.shapeBackground(u),f={minZoom:a,maxZoom:c,clipAngle:l,mapAligned:!0,isLineLabel:!0};n.recordStart(this.instanceId,this.attributeLayout,i.glyphs[0].textureBinding),this._writeTextBox(n,r,t.x,t.y,p,o,f),n.recordEnd(),f.clipAngle=h,n.recordStart(this.instanceId,this.attributeLayout,i.glyphs[0].textureBinding),this._writeTextBox(n,r,t.x,t.y,p,o,f),n.recordEnd()}const d=(0,Yt.jL)(r),p=this.evaluatedMeshParams.scaleInfo?.maxScale??0,f=this.evaluatedMeshParams.scaleInfo?.minScale??0;n.metricStart(new Zt.O(d,t.x,t.y,0,0,p,f,null)),this._placeFirst(u,e,1,l,!0),this._placeFirst(u,e,0,h,!0),n.metricEnd()}_placeBack(t,e,n,r,i,s){const o=t.clone();let a=t.backwardLength+0;for(;o.prev()&&!(a>=r);)this._placeOnSegment(o,e,a,n,-1,i,s),a+=o.length+0}_placeForward(t,e,n,r,i,s){const o=t.clone();let a=t.remainingLength+0;for(;o.next()&&!(a>=r);)this._placeOnSegment(o,e,a,n,1,i,s),a+=o.length+0}_placeFirst(t,e,n,r,i=!1){const s=t,{out:o,id:a,shaping:c,zoomRange:u,referenceBounds:l}=this._current,h=c.glyphs;for(const d of h){const h=d.x>c.bounds.x?n:1-n,p=h*t.remainingLength+(1-h)*t.backwardLength,f=Math.abs(d.x+d.width/2-c.bounds.x),y=Math.max(0,this._zoomLevel+Math.log2(f/(p+0))),x=Math.max(e,i?0:y);d.maxZoom=Math.min(u[1],28),d.angle=t.angle+(1-n)*Math.PI,d.minZoom=Math.max(u[0],x),this._writeLineGlyph(o,a,s.x,s.y,c.bounds,d,r,l,!0),n&&this._isVisible(d.minZoom,d.maxZoom)&&o.metricBoxWrite(d.bounds)}}_placeOnSegment(t,e,n,r,i,s,o){const{out:a,id:c,shaping:u,referenceBounds:l}=this._current,h=u.glyphs,d=t.dx/t.length,p=t.dy/t.length,f={x:t.x+n*-i*d,y:t.y+n*-i*p};for(const d of h){const h=d.x>u.bounds.x?s:1-s;if(!(h&&1===i||!h&&-1===i))continue;const p=Math.abs(d.x+d.width/2-u.bounds.x),y=Math.max(0,this._zoomLevel+Math.log2(p/n)-.1),x=Math.max(r,this._zoomLevel+Math.log2(p/(n+t.length+0)));if(0!==y&&(d.angle=t.angle+(1-s)*Math.PI,d.minZoom=x,d.maxZoom=y,this._writeLineGlyph(a,c,f.x,f.y,u.bounds,d,o,l,!0),s&&this._isVisible(d.minZoom,d.maxZoom))){const n=d.bounds,r=t.x-e.x,i=t.y-e.y,s=new Kt.Z(n.center[0]+r,n.center[1]+i,n.width,n.height);a.metricBoxWrite(s)}}}_writeLineGlyph(t,e,n,r,i,s,o,a,c){const u=n+i.x,l=r+i.y,h=2*(this.evaluatedMeshParams.minPixelBuffer?this.evaluatedMeshParams.minPixelBuffer/this._textMeshTransformProps.fontSize:1),d=Math.max(i.width,i.height)*h;t.recordStart(this.instanceId,this.attributeLayout,s.textureBinding),t.recordBounds(u,l,d,d);const{texcoords:p,offsets:f}=s,y=this._textMeshTransformProps.fontSize;this._writeQuad(t,e,n,r,{texcoords:p,offsets:f,fontSize:y,color:ut(this.evaluatedMeshParams.color),isBackground:!1,referenceBounds:a,minZoom:Math.max(this._current.zoomRange[0],s.minZoom),maxZoom:Math.min(this._current.zoomRange[1],s.maxZoom),clipAngle:o,mapAligned:c,isLineLabel:!0}),t.recordEnd()}_isVisible(t,e){const n=this._zoomLevel;return t<=n&&n<=e}}})},77206:function(t,e,n){function r(t){return t}function i(t){return t}n.d(e,{G:function(){return r},W:function(){return i}})},72691:function(t,e,n){n.d(e,{Ie:function(){return x},RS:function(){return f},fz:function(){return y},HN:function(){return p}});var r=n(36663),i=n(26991),s=n(89168),o=n(77524),a=n(39994),c=n(22070);class u extends s.oo{getVisualVariableData(t){if(!this._vvData){const e=this.getAttributeDataCoords(t);this._vvData=(0,o.ig)(this.visualVariableData,e).setDebugName("storage2")}return this._vvData}getAttributeDataCoords(t){if(!this._uv){const e=(0,c.Wv)(t),n=this.size,r=(0,o.e$)(e.x),i=(0,o.e$)(e.y).multiply((0,o.e$)(256)),s=(0,o.e$)(e.z).multiply((0,o.e$)(256)).multiply((0,o.e$)(256)),a=(0,o.fz)(r.add(i).add(s)),u=(0,o.wQ)(a,n),l=a.subtract(u).divide(n);this._uv=new o.Sg(u,l).add(.5).divide(n)}return this._uv}getFilterData(t){const e=this.getAttributeDataCoords(t);return(0,o.ig)(this.filterFlags,e).setDebugName("storage0")}getAnimationData(t){const e=this.getAttributeDataCoords(t);return(0,o.ig)(this.animation,e).setDebugName("storage1")}getVVData(t){return this.getVisualVariableData(t)}getDataDrivenData0(t){const e=this.getAttributeDataCoords(t);return(0,o.ig)(this.dataDriven0,e).setDebugName("storage30")}getDataDrivenData1(t){const e=this.getAttributeDataCoords(t);return(0,o.ig)(this.dataDriven1,e).setDebugName("storage31")}getDataDrivenData2(t){const e=this.getAttributeDataCoords(t);return(0,o.ig)(this.dataDriven2,e).setDebugName("storage32")}getGPGPUData(t){const e=this.getAttributeDataCoords(t);return(0,o.ig)(this.gpgpu,e).setDebugName("storage4")}getFilterFlags(t){return(0,a.Z)("webgl-ignores-sampler-precision")?(0,o.mD)(this.getFilterData(t).x.multiply((0,o.fz)(255))):this.getFilterData(t).x.multiply((0,o.fz)(255))}getAnimationValue(t){return this.getAnimationData(t).x}getSizeValue(t){return this.getVisualVariableData(t).x}getColorValue(t){return this.getVisualVariableData(t).y}getOpacityValue(t){return this.getVisualVariableData(t).z}getRotationValue(t){return this.getVisualVariableData(t).w}}(0,r._)([(0,s.e5)(o.Eg)],u.prototype,"filterFlags",void 0),(0,r._)([(0,s.e5)(o.Eg)],u.prototype,"animation",void 0),(0,r._)([(0,s.e5)(o.Eg)],u.prototype,"gpgpu",void 0),(0,r._)([(0,s.e5)(o.Eg)],u.prototype,"visualVariableData",void 0),(0,r._)([(0,s.e5)(o.Eg)],u.prototype,"dataDriven0",void 0),(0,r._)([(0,s.e5)(o.Eg)],u.prototype,"dataDriven1",void 0),(0,r._)([(0,s.e5)(o.Eg)],u.prototype,"dataDriven2",void 0),(0,r._)([(0,s.e5)(o.bv)],u.prototype,"size",void 0);class l extends s.oo{}(0,r._)([(0,s.e5)(o.bv)],l.prototype,"activeReasons",void 0),(0,r._)([(0,s.e5)(o.bv)],l.prototype,"highlightAll",void 0);class h extends s.oo{}(0,r._)([(0,s.e5)(o.Sg)],h.prototype,"position",void 0),(0,r._)([(0,s.e5)(o.bv)],h.prototype,"distance",void 0),(0,r._)([(0,s.e5)(o.bv)],h.prototype,"smallSymbolDistance",void 0),(0,r._)([(0,s.e5)(o.bv)],h.prototype,"smallSymbolSizeThreshold",void 0);var d=n(61505);class p extends s.Pz{}(0,r._)([(0,s.xh)(0,o.AO)],p.prototype,"id",void 0),(0,r._)([(0,s.xh)(1,o.bv)],p.prototype,"bitset",void 0),(0,r._)([(0,s.xh)(2,o.Sg)],p.prototype,"pos",void 0);class f extends s.yu{}(0,r._)([(0,s.xh)(14,o.Sg)],f.prototype,"nextPos1",void 0),(0,r._)([(0,s.xh)(15,o.Sg)],f.prototype,"nextPos2",void 0);class y extends s.XB{}class x extends s.ri{clip(t,e){let n=new o.bv(0);const r=this.storage.getFilterFlags(t);if(n=n.add((0,o.fz)(2).multiply((0,o.fz)(1).subtract((0,c.bG)(r,0)))),this.inside?n=n.add((0,o.fz)(2).multiply((0,o.fz)(1).subtract((0,c.bG)(r,1)))):this.outside?n=n.add((0,o.fz)(2).multiply((0,c.bG)(r,1))):this.highlight&&(n=n.add((0,o.fz)(2).multiply((0,o.fz)(1).subtract(this._checkHighlight(r))))),null!=e){const t=new o.bv(1).subtract((0,o.Nb)(e.x,this.view.currentZoom)),r=(0,o.Nb)(e.y,this.view.currentZoom);n=n.add(new o.bv(2).multiply(t.add(r)))}return n}getFragmentOutput(t,e,n=new o.bv(1/255)){const r=new s.Qt;return r.glFragColor=this._maybeWriteHittest(e)??this._maybeHighlight(t,n)??t,r}_maybeHighlight(t,e){return this.highlight?new o.T8(t.rgb,(0,o.Nb)(e,t.a)):null}_checkHighlight(t){let e=this._checkHighlightBit(t,0);for(let n=1;n{const e=this.values.findIndex((e=>(0,s.tS)(e,t))),n=this.values.get(e),r=e.subtract(1),i=this.values.get(r),o=t.subtract(i).divide(n.subtract(i));return(0,s.CD)(this.colors.get(r),this.colors.get(e),o)}])}}(0,r._)([(0,i.e5)(s.v8.ofType(s.T8,8))],a.prototype,"colors",void 0),(0,r._)([(0,i.e5)(s.v8.ofType(s.bv,8))],a.prototype,"values",void 0)},57879:function(t,e,n){n.d(e,{V:function(){return a}});var r=n(36663),i=n(89168),s=n(77524),o=n(22070);class a extends i.oo{getOpacity(t){return(0,s.wV)([(0,o.In)(t),new s.bv(1)],[(0,s.Iz)(t,this.opacityValues.first()),this.opacities.first()],[(0,s.r7)(t,this.opacityValues.last()),this.opacities.last()],[!0,()=>{const e=this.opacityValues.findIndex((e=>(0,s.tS)(e,t))),n=this.opacityValues.get(e),r=e.subtract(1),i=this.opacityValues.get(r),o=t.subtract(i).divide(n.subtract(i));return(0,s.CD)(this.opacities.get(r),this.opacities.get(e),o)}])}}(0,r._)([(0,i.e5)(s.v8.ofType(s.bv,8))],a.prototype,"opacities",void 0),(0,r._)([(0,i.e5)(s.v8.ofType(s.bv,8))],a.prototype,"opacityValues",void 0)},7486:function(t,e,n){n.d(e,{k:function(){return a}});var r=n(36663),i=n(89168),s=n(77524),o=n(22070);class a extends i.oo{getSize(t,e){const n=this.minMaxValueAndSize.xy,r=this.minMaxValueAndSize.zw;return(0,s.KJ)((0,o.In)(t),e,(()=>{const e=t.subtract(n.x).divide(n.y.subtract(n.x)),i=(0,s.uZ)(e,new s.bv(0),new s.bv(1));return r.x.add(i.multiply(r.y.subtract(r.x)))}))}}(0,r._)([(0,i.e5)(s.T8)],a.prototype,"minMaxValueAndSize",void 0)},80952:function(t,e,n){n.d(e,{U:function(){return o}});var r=n(36663),i=n(89168),s=n(77524);class o extends i.oo{getSizeForViewScale(t){return(0,s.wV)([(0,s.Iz)(t,this.values.first()),this.sizes.first()],[(0,s.r7)(t,this.values.last()),this.sizes.last()],[!0,()=>{const e=this.values.findIndex((e=>(0,s.tS)(e,t))),n=this.values.get(e),r=e.subtract(1),i=this.values.get(r),o=t.subtract(i).divide(n.subtract(i));return(0,s.CD)(this.sizes.get(r),this.sizes.get(e),o)}])}}(0,r._)([(0,i.e5)(s.v8.ofType(s.bv,8))],o.prototype,"sizes",void 0),(0,r._)([(0,i.e5)(s.v8.ofType(s.bv,8))],o.prototype,"values",void 0)},98435:function(t,e,n){n.d(e,{W:function(){return a}});var r=n(36663),i=n(89168),s=n(77524),o=n(22070);class a extends i.oo{getSize(t,e){const n=(0,s.wV)([(0,o.In)(t),e],[(0,s.Iz)(t,this.values.first()),this.sizes.first()],[(0,s.r7)(t,this.values.last()),this.sizes.last()],[!0,()=>{const e=this.values.findIndex((e=>(0,s.tS)(e,t))),n=this.values.get(e),r=e.subtract(1),i=this.values.get(r),o=t.subtract(i).divide(n.subtract(i));return(0,s.CD)(this.sizes.get(r),this.sizes.get(e),o)}]);return(0,s.KJ)((0,o.In)(n),e,n)}}(0,r._)([(0,i.e5)(s.v8.ofType(s.bv,8))],a.prototype,"sizes",void 0),(0,r._)([(0,i.e5)(s.v8.ofType(s.bv,8))],a.prototype,"values",void 0)},81116:function(t,e,n){n.d(e,{V:function(){return a}});var r=n(36663),i=n(89168),s=n(77524),o=n(22070);class a extends i.oo{getSize(t,e){return(0,s.KJ)((0,o.In)(t),e,t.multiply(this.unitValueToPixelsRatio))}}(0,r._)([(0,i.e5)(s.bv)],a.prototype,"unitValueToPixelsRatio",void 0)},44255:function(t,e,n){var r;n.d(e,{$r:function(){return w},Ay:function(){return a},B7:function(){return v},GS:function(){return f},Ho:function(){return h},Ke:function(){return l},MO:function(){return r},T5:function(){return d},Ux:function(){return x},V_:function(){return u},WD:function(){return y},Wq:function(){return _},ad:function(){return S},e4:function(){return s},i6:function(){return g},k9:function(){return p},mL:function(){return b},nF:function(){return i},nU:function(){return o},oy:function(){return m},xp:function(){return c}}),function(t){t[t.Geographic=0]="Geographic",t[t.Arithmatic=1]="Arithmatic"}(r||(r={}));const i=3.14159265359/180,s=3.14159265359/128,o=1,a=1.1,c=1,u=24,l=8,h=1e-5,d=.05,p=1e-30,f=4,y=0,x=2,m=5,g=6,_=2,v=3,b=0,w=3,S=16777216},24306:function(t,e,n){n.d(e,{CC:function(){return d},Oz:function(){return h},P0:function(){return l},XM:function(){return p},bA:function(){return o},hF:function(){return c},lD:function(){return a}});var r=n(77524),i=n(44255),s=n(22070);function o(t,e,n){const i=n.subtract(e),s=(a=t.subtract(e),c=i,(0,r.AK)(a,(0,r.Fv)(c))),o=(0,r.uZ)(s.divide((0,r.kE)(i)),new r.bv(0),new r.bv(1));var a,c;return(0,r.TE)(t,e.add(o.multiply(n.subtract(e))))}function a(t){const e=(0,r.Wn)(t);return(0,r.Nb)(e.x.add(e.y).add(e.z),new r.bv(1.05))}function c(t,e,n,i){const s=new r.Tu(n.x.multiply(i.y).subtract(i.x.multiply(n.y)),i.x.multiply(e.y).subtract(e.x.multiply(i.y)),e.x.multiply(n.y).subtract(n.x.multiply(e.y)),n.y.subtract(i.y),i.y.subtract(e.y),e.y.subtract(n.y),i.x.subtract(n.x),e.x.subtract(i.x),n.x.subtract(e.x)),o=e.x.multiply(n.y.subtract(i.y)),a=n.x.multiply(i.y.subtract(e.y)),c=i.x.multiply(e.y.subtract(n.y)),u=o.add(a).add(c);return new r.bv(1).divide(u).multiply(s.multiply(new r.AO(1,t)))}function u(t,e,n,i){return(0,r.ln)(a(c(t,e,n,i)),new r.bv(1))}function l(t,e,n,a){const c=n.subtract(e),l=a.subtract(e),h=(0,s.xQ)(c,l),d=(0,r.xD)((0,r.Qj)(h,new r.bv(i.T5)),(0,r.tS)(h,new r.bv(-i.T5)));return(0,r.wV)([(0,r.xD)((0,r.ff)(d),u(t.xy,e,n,a)),new r.bv(-1)],[!0,()=>{const i=o(t,e,n),s=o(t,n,a),c=o(t,a,e);return(0,r.VV)((0,r.VV)(i,s),c)}])}function h(t){return t.distance.add(1)}function d(t,e,n){const{viewMat3:i,tileMat3:s}=t.view,o=i.multiply(s),a=o.multiply(new r.AO(e.pos,1)),c=o.multiply(new r.AO(n.nextPos1,1)),u=o.multiply(new r.AO(n.nextPos2,1));return l(t.hittestRequest.position,a.xy,c.xy,u.xy)}function p(t,e,n){return(0,r.TE)(t,n).subtract(e)}},22070:function(t,e,n){n.d(e,{In:function(){return a},JH:function(){return y},TN:function(){return o},Wv:function(){return f},X3:function(){return x},bG:function(){return d},h7:function(){return h},hG:function(){return p},pK:function(){return u},qD:function(){return l},xQ:function(){return c}});var r=n(26991),i=n(77524),s=n(44255);function o(t){const e=(0,i.fz)(12.9898),n=(0,i.fz)(78.233),r=(0,i.fz)(43758.5453),s=(0,i.AK)(t,(0,i.K4)(e,n)),o=(0,i.wQ)(s,(0,i.fz)(3.14));return(0,i.ZI)((0,i.O$)(o).multiply(r))}function a(t){return(0,i.ln)(t,(0,i.fz)(s.k9))}function c(t,e){return t.x.multiply(e.y).subtract(e.x.multiply(t.y))}function u(t){return t.multiply(2).subtract(1)}function l(t,e){const n=(0,i.fz)(2**e);return(0,i.wQ)((0,i.GW)(t.divide(n)),(0,i.fz)(2))}function h(t,e){return(0,i.tS)(l(t,e),(0,i.fz)(.5))}function d(t,e){return l(t,e+r.Oo.length)}function p(t,e){return l(t,e)}function f(t){const e=l(t.z,7),n=(0,i.fz)(1).subtract(e),r=t.xyz.subtract((0,i.R3)(0,0,(0,i.fz)(128)));return n.multiply(t).add(e.multiply(r))}function y(t){const e=(0,i.vh)(255/256,255/65536,255/16777216,255/4294967296);return(0,i.AK)(t,e)}function x(t){return(0,i.Fp)((0,i.Fp)((0,i.Fp)(t.x,t.y),t.z),t.w)}},10165:function(t,e,n){n.d(e,{H8:function(){return c},Vm:function(){return s},Zt:function(){return o},lA:function(){return i},sY:function(){return a}});var r=n(77524);function i(t){return null!=t.visualVariableSizeMinMaxValue||null!=t.visualVariableSizeScaleStops||null!=t.visualVariableSizeStops||null!=t.visualVariableSizeUnitValue}function s(t,e,n){if(i(t)){const r=t.storage.getSizeValue(e);return t.visualVariableSizeMinMaxValue?.getSize(r,n)??t.visualVariableSizeScaleStops?.getSizeForViewScale(t.view.currentScale)??t.visualVariableSizeStops?.getSize(r,n)??t.visualVariableSizeUnitValue?.getSize(r,n)}return n}function o(t,e,n,i=new r.tW(!1)){if(null==t.visualVariableColor)return n;const s=t.storage.getColorValue(e);return t.visualVariableColor.getColor(s,n,i)}function a(t,e){if(null==t.visualVariableOpacity)return new r.bv(1);const n=t.storage.getOpacityValue(e);return t.visualVariableOpacity.getOpacity(n)}function c(t,e){if(null==t.visualVariableRotation)return r.Tu.identity();const n=t.storage.getRotationValue(e);return t.visualVariableRotation.getVVRotationMat3(n)}},6664:function(t,e,n){n.d(e,{X:function(){return u}});var r=n(70375),i=n(13802),s=n(86745),o=(n(4157),n(39994),n(6174),n(91907),n(18567),n(69609)),a=(n(43106),n(71449),n(64429));function c(t,e,n){const s=e.length;if(s!==n){const o=new r.Z("Invalid Uniform",`Invalid length, expected ${n} but got ${s}`,{uniformName:t,values:e});i.Z.getLogger("esri.views.2d.engine.webgl.shaderGraph.typed.TypedShaderProgram").errorOnce(o)}}class u{constructor(t,e,n,r,i,s){this._program=null,this._vao=null,this._temporaryTextures=[],this.vertexShader=t,this.fragmentShader=e,this._locations=n,this._locationInfo=r,this._uniformBindings=i,this._transformFeedbackBindings=s}destroy(){this._program&&this._program.dispose(),this.cleanupTemporaryTextures()}get locations(){return this._locations}get locationInfo(){return this._locationInfo}setUniforms(t){this._uniforms=t}cleanupTemporaryTextures(){for(const t of this._temporaryTextures)t.dispose();this._temporaryTextures=[]}bind(t){const e=this._uniforms;if(!this._program){const e=new Map;for(const[t,n]of this._locations)e.set(t,n);const n=[];for(const t of this._transformFeedbackBindings??[]){const{index:e,propertyKey:r}=t;n[e]=`v_${r}`}this._program=new o.$(t,this.vertexShader,this.fragmentShader,e,new Map,n)}const n=this._program;t.useProgram(n);for(const r of this._uniformBindings){const{shaderModulePath:i,uniformName:o,uniformType:u,uniformArrayLength:l}=r,h=(0,s.hS)(i,e);if(null==h){if("sampler2D"===u)continue;throw new Error(`Failed to find uniform value for ${i}`)}switch("array"===u?r.uniformArrayElementType:u){case"sampler2D":{const{unit:e,texture:r}=h;if(n.setUniform1i(o,e),"type"in r)t.bindTexture(r,e);else{const n=(0,a.cU)(t,r.descriptor,r.data);t.bindTexture(n,e)}break}case"int":if(!l){n.setUniform1i(o,h);break}c(r.uniformName,h,l),n.setUniform1iv(o,h);break;case"float":if(!l){n.setUniform1f(o,h);break}c(r.uniformName,h,l),n.setUniform1fv(o,h);break;case"vec2":if(!l){n.setUniform2f(o,h[0],h[1]);break}c(r.uniformName,h,l),n.setUniform2fv(o,h.flat());break;case"vec3":if(!l){n.setUniform3f(o,h[0],h[1],h[2]);break}c(r.uniformName,h,l),n.setUniform3fv(o,h.flat());break;case"vec4":if(!l){n.setUniform4f(o,h[0],h[1],h[2],h[3]);break}c(r.uniformName,h,l),n.setUniform4fv(o,h.flat());break;case"mat3":n.setUniformMatrix3fv(o,h.flat());break;case"mat4":n.setUniformMatrix4fv(o,h.flat());break;default:throw new Error(`Unable to set uniform for type ${u}`)}}}}},89370:function(t,e,n){n.d(e,{x:function(){return h}});var r=n(36663),i=n(74396),s=n(39994),o=n(20230),a=n(76868),c=n(81977),u=(n(13802),n(4157),n(40266)),l=n(98940);let h=class extends i.Z{constructor(t){super(t),this.debugName="",this._updatingHandles=new l.R,this._idToUpdatingState=new o.Z}get updating(){const t=this._updatingHandles.updating||Array.from(this._idToUpdatingState.values()).some((t=>t));if((0,s.Z)("esri-2d-log-updating")){Array.from(this._idToUpdatingState.entries()).map((([t,e])=>`-> ${t}: ${e}`)).join("\n")}return t}addUpdateTracking(t,e){const n=(0,a.YP)((()=>e.updating),(e=>this._idToUpdatingState.set(t,e)),{sync:!0});this.addHandles(n)}addPromise(t){return this._updatingHandles.addPromise(t)}};(0,r._)([(0,c.Cb)({constructOnly:!0})],h.prototype,"debugName",void 0),(0,r._)([(0,c.Cb)({readOnly:!0})],h.prototype,"updating",null),h=(0,r._)([(0,u.j)("esri.view.2d.layers.support.UpdateTracking2D")],h)},40017:function(t,e,n){var r;n.d(e,{P:function(){return r}}),function(t){t[t.Pass=0]="Pass",t[t.Draw=1]="Draw"}(r||(r={}))},15095:function(t,e,n){n.d(e,{hu:function(){return i},yK:function(){return s}});n(84164),n(56999);(0,n(52721).Ue)();class r{constructor(t){this.message=t}toString(){return`AssertException: ${this.message}`}}function i(t,e){if(!t){e=e||"Assertion";const t=new Error(e).stack;throw new r(`${e} at ${t}`)}}function s(t,e,n,r){let i,s=(n[0]-t[0])/e[0],o=(r[0]-t[0])/e[0];s>o&&(i=s,s=o,o=i);let a=(n[1]-t[1])/e[1],c=(r[1]-t[1])/e[1];if(a>c&&(i=a,a=c,c=i),s>c||a>o)return!1;a>s&&(s=a),cl&&(i=u,u=l,l=i),!(s>l||u>o||(l13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"התמקד",Play:"נגן",Stop:"עצור",Legend:"מקרא","Press ENTER to toggle":"",Loading:"טעינה",Home:"דף הבית",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"הדפס",Image:"תמונה",Data:"נתונים",Print:"הדפס","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"מ %1 עד %2","From %1":"מ %1","To %1":"עד %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4070.bbbdc0865bbb1046aa6c.js b/docs/sentinel1-explorer/4070.bbbdc0865bbb1046aa6c.js new file mode 100644 index 00000000..2ceb13c4 --- /dev/null +++ b/docs/sentinel1-explorer/4070.bbbdc0865bbb1046aa6c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4070],{24778:function(t,e,i){i.d(e,{b:function(){return x}});var s=i(70375),r=i(39994),a=i(13802),n=i(78668),o=i(14266),h=i(88013),l=i(64429),u=i(91907),d=i(18567),c=i(71449),p=i(80479);class g{constructor(t,e,i){this._texture=null,this._lastTexture=null,this._fbos={},this.texelSize=4;const{buffer:s,pixelType:r,textureOnly:a}=t,n=(0,l.UK)(r);this.blockIndex=i,this.pixelType=r,this.size=e,this.textureOnly=a,a||(this.data=new n(s)),this._resetRange()}destroy(){this._texture?.dispose();for(const t in this._fbos){const e=this._fbos[t];e&&("0"===t&&e.detachColorTexture(),e.dispose()),this._fbos[t]=null}this._texture=null}get _textureDesc(){const t=new p.X;return t.wrapMode=u.e8.CLAMP_TO_EDGE,t.samplingMode=u.cw.NEAREST,t.dataType=this.pixelType,t.width=this.size,t.height=this.size,t}setData(t,e,i){const s=(0,h.jL)(t),r=this.data,a=s*this.texelSize+e;!r||a>=r.length||(r[a]=i,this.dirtyStart=Math.min(this.dirtyStart,s),this.dirtyEnd=Math.max(this.dirtyEnd,s))}getData(t,e){if(null==this.data)return null;const i=(0,h.jL)(t)*this.texelSize+e;return!this.data||i>=this.data.length?null:this.data[i]}getTexture(t){return this._texture??this._initTexture(t)}getFBO(t,e=0){if(!this._fbos[e]){const i=0===e?this.getTexture(t):this._textureDesc;this._fbos[e]=new d.X(t,i)}return this._fbos[e]}get hasDirty(){const t=this.dirtyStart;return this.dirtyEnd>=t}updateTexture(t,e){try{const e=this.dirtyStart,i=this.dirtyEnd;if(!this.hasDirty)return;(0,r.Z)("esri-2d-update-debug"),this._resetRange();const n=this.data.buffer,o=this.getTexture(t),h=4,u=(e-e%this.size)/this.size,d=(i-i%this.size)/this.size,c=u,p=this.size,g=d,_=u*this.size*h,y=(p+g*this.size)*h-_,x=(0,l.UK)(this.pixelType),m=new x(n,_*x.BYTES_PER_ELEMENT,y),f=this.size,w=g-c+1;if(w>this.size)return void a.Z.getLogger("esri.views.2d.engine.webgl.AttributeStoreView").error(new s.Z("mapview-webgl","Out-of-bounds index when updating AttributeData"));o.updateData(0,0,c,f,w,m)}catch(t){}}update(t){const{data:e,start:i,end:s}=t;if(null!=e&&null!=this.data){const s=this.data,r=i*this.texelSize;for(let i=0;inull!=t?new g(t,this.size,e):null));else for(let t=0;t{(0,r.Z)("esri-2d-update-debug")})),this._version=t.version,this._pendingAttributeUpdates.push({inner:t,resolver:e}),(0,r.Z)("esri-2d-update-debug")}get currentEpoch(){return this._epoch}update(){if(this._locked)return;const t=this._pendingAttributeUpdates;this._pendingAttributeUpdates=[];for(const{inner:e,resolver:i}of t){const{blockData:t,initArgs:s,sendUpdateEpoch:a,version:n}=e;(0,r.Z)("esri-2d-update-debug"),this._version=n,this._epoch=a,null!=s&&this._initialize(s);const o=this._data;for(let e=0;et.destroy())),this.removeAllChildren(),this.attributeView.destroy()}doRender(t){t.context.capabilities.enable("textureFloat"),super.doRender(t)}createRenderParams(t){const e=super.createRenderParams(t);return e.attributeView=this.attributeView,e.instanceStore=this._instanceStore,e.statisticsByLevel=this._statisticsByLevel,e}}},16699:function(t,e,i){i.d(e,{o:function(){return r}});var s=i(77206);class r{constructor(t,e,i,s,r){this._instanceId=t,this.techniqueRef=e,this._meshWriterName=i,this._input=s,this.optionalAttributes=r}get instanceId(){return(0,s.G)(this._instanceId)}createMeshInfo(t){return{id:this._instanceId,meshWriterName:this._meshWriterName,options:t,optionalAttributes:this.optionalAttributes}}getInput(){return this._input}setInput(t){this._input=t}}},94070:function(t,e,i){i.r(e),i.d(e,{default:function(){return K}});var s=i(36663),r=i(80085),a=i(6865),n=i(23148),o=i(39994),h=i(76868),l=i(81977),u=i(13802),d=(i(4157),i(40266)),c=i(94449),p=i(91203),g=i(66878),_=i(18133),y=i(14945),x=i(74396),m=i(78668),f=i(31329),w=i(12688),b=i(10530),v=i(7349),D=i(23134);let R=class extends x.Z{constructor(){super(...arguments),this.attached=!1,this.container=new b.W,this.updateRequested=!1,this.type="imagery",this._bitmapView=new w.c}destroy(){this.attached&&(this.detach(),this.attached=!1),this.updateRequested=!1}get updating(){return!this.attached||this.isUpdating()}update(t){this.strategy.update(t).catch((t=>{(0,m.D_)(t)||u.Z.getLogger(this).error(t)}))}hitTest(t){return new r.Z({attributes:{},geometry:t.clone(),layer:this.layer})}attach(){this.container.addChild(this._bitmapView);const t=this.layer.version>=10,e=this.layer.version>=10.1?this.layer.imageMaxHeight:2048,i=this.layer.version>=10.1?this.layer.imageMaxWidth:2048;this.strategy=new D.Z({container:this._bitmapView,imageNormalizationSupported:t,imageMaxHeight:e,imageMaxWidth:i,fetchSource:this._fetchImage.bind(this),requestUpdate:()=>this.requestUpdate()})}detach(){this.strategy.destroy(),this._bitmapView.removeAllChildren(),this.container.removeAllChildren(),this.updateRequested=!1}redraw(){this.strategy.updateExports((async t=>{const{source:e}=t;if(!e||e instanceof ImageBitmap)return;const i=await this.layer.applyRenderer({extent:e.extent,pixelBlock:e.originalPixelBlock??e.pixelBlock});e.filter=t=>this.layer.pixelFilter?this.layer.applyFilter(t):{...i,extent:e.extent}})).catch((t=>{(0,m.D_)(t)||u.Z.getLogger(this).error(t)}))}requestUpdate(){this.updateRequested||(this.updateRequested=!0,this.view.requestUpdate())}isUpdating(){return this.strategy.updating||this.updateRequested}getPixelData(){if(this.updating)return null;const t=this.strategy.bitmaps;if(1===t.length&&t[0].source)return{extent:t[0].source.extent,pixelBlock:t[0].source.originalPixelBlock};if(t.length>1){const e=this.view.extent,i=t.map((t=>t.source)).filter((t=>t.extent&&t.extent.intersects(e))).map((t=>({extent:t.extent,pixelBlock:t.originalPixelBlock}))),s=(0,f.Kh)(i,e);return null!=s?{extent:s.extent,pixelBlock:s.pixelBlock}:null}return null}async _fetchImage(t,e,i,s){(s=s||{}).timeExtent=this.timeExtent,s.requestAsImageElement=!0,s.returnImageBitmap=!0;const r=await this.layer.fetchImage(t,e,i,s);if(r.imageBitmap)return r.imageBitmap;const a=await this.layer.applyRenderer(r.pixelData,{signal:s.signal}),n=new v.Z(a.pixelBlock,a.extent?.clone(),r.pixelData.pixelBlock);return n.filter=t=>this.layer.applyFilter(t),n}};(0,s._)([(0,l.Cb)()],R.prototype,"attached",void 0),(0,s._)([(0,l.Cb)()],R.prototype,"container",void 0),(0,s._)([(0,l.Cb)()],R.prototype,"layer",void 0),(0,s._)([(0,l.Cb)()],R.prototype,"strategy",void 0),(0,s._)([(0,l.Cb)()],R.prototype,"timeExtent",void 0),(0,s._)([(0,l.Cb)()],R.prototype,"view",void 0),(0,s._)([(0,l.Cb)()],R.prototype,"updateRequested",void 0),(0,s._)([(0,l.Cb)()],R.prototype,"updating",null),(0,s._)([(0,l.Cb)()],R.prototype,"type",void 0),R=(0,s._)([(0,d.j)("esri.views.2d.layers.imagery.ImageryView2D")],R);const S=R;var T=i(66341),P=i(91772),E=i(35925),z=i(18486),C=i(7928),V=i(79195),B=i(38716),A=i(10994);class k extends A.Z{constructor(){super(...arguments),this.symbolTypes=["triangle"]}prepareRenderPasses(t){const e=t.registerRenderPass({name:"imagery (vf)",brushes:[V.Z],target:()=>this.children,drawPhase:B.jx.MAP});return[...super.prepareRenderPasses(t),e]}doRender(t){this.visible&&t.drawPhase===B.jx.MAP&&this.symbolTypes.forEach((e=>{t.renderPass=e,super.doRender(t)}))}}var M=i(84557);let Z=class extends x.Z{constructor(t){super(t),this._loading=null,this.update=(0,m.Ds)(((t,e)=>this._update(t,e).catch((t=>{(0,m.D_)(t)||u.Z.getLogger(this).error(t)}))))}get updating(){return!!this._loading}redraw(t){if(!this.container.children.length)return;const e=this.container.children[0];e.symbolizerParameters=t,e.invalidateVAO(),this.container.symbolTypes="wind_speed"===t.style?["scalar","triangle"]:"simple_scalar"===t.style?["scalar"]:["triangle"],this.container.requestRender()}async _update(t,e,i){if(!t.stationary)return;const{extent:s,spatialReference:r}=t.state,a=new P.Z({xmin:s.xmin,ymin:s.ymin,xmax:s.xmax,ymax:s.ymax,spatialReference:r}),[n,o]=t.state.size;this._loading=this.fetchPixels(a,n,o,i);const h=await this._loading;this._addToDisplay(h,e,t.state),this._loading=null}_addToDisplay(t,e,i){if(null==t.pixelBlock)return this.container.children.forEach((t=>t.destroy())),void this.container.removeAllChildren();const{extent:s,pixelBlock:r}=t,a=new M.F(r);a.offset=[0,0],a.symbolizerParameters=e,a.rawPixelData=t,a.invalidateVAO(),a.x=s.xmin,a.y=s.ymax,a.pixelRatio=i.pixelRatio,a.rotation=i.rotation,a.resolution=i.resolution,a.width=r.width*e.symbolTileSize,a.height=r.height*e.symbolTileSize,this.container.children.forEach((t=>t.destroy())),this.container.removeAllChildren(),this.container.symbolTypes="wind_speed"===e.style?["scalar","triangle"]:"simple_scalar"===e.style?["scalar"]:["triangle"],this.container.addChild(a)}};(0,s._)([(0,l.Cb)()],Z.prototype,"fetchPixels",void 0),(0,s._)([(0,l.Cb)()],Z.prototype,"container",void 0),(0,s._)([(0,l.Cb)()],Z.prototype,"_loading",void 0),(0,s._)([(0,l.Cb)()],Z.prototype,"updating",null),Z=(0,s._)([(0,d.j)("esri.views.2d.layers.imagery.ImageryVFStrategy")],Z);const I=Z;let U=class extends x.Z{constructor(){super(...arguments),this.attached=!1,this.container=new k,this.type="imageryVF",this._dataParameters={exportParametersVersion:0,bbox:"",symbolTileSize:0,time:""},this._fetchpixels=async(t,e,i,s)=>{const r=await this._projectFullExtentPromise,{symbolTileSize:a}=this.layer.renderer,{extent:n,width:o,height:h}=(0,C.BH)(t,e,i,a,r);if(null!=r&&!r.intersects(t))return{extent:n,pixelBlock:null};const l={bbox:`${n.xmin}, ${n.ymin}, ${n.xmax}, ${n.ymax}`,exportParametersVersion:this.layer.exportImageServiceParameters.version,symbolTileSize:a,time:JSON.stringify(this.timeExtent||"")};if(this._canReuseVectorFieldData(l)){const t=this.getPixelData();if(null!=t&&`${t.extent.xmin}, ${t.extent.ymin}, ${t.extent.xmax}, ${t.extent.ymax}`===l.bbox)return t}const{pixelData:u}=await this.layer.fetchImage(n,o,h,{timeExtent:this.timeExtent,requestAsImageElement:!1,signal:s});this._dataParameters=l;const d=u?.pixelBlock;return null==d?{extent:n,pixelBlock:null}:{extent:n,pixelBlock:"vector-uv"===this.layer.rasterInfo.dataType?(0,C.KC)(d,"vector-uv"):d}}}get updating(){return!this.attached||this._strategy.updating}attach(){this._projectFullExtentPromise=this._getProjectedFullExtent(this.view.spatialReference),this._strategy=new I({container:this.container,fetchPixels:this._fetchpixels}),this.addHandles((0,h.YP)((()=>this.layer.renderer),(t=>this._updateSymbolizerParams(t)),h.tX),"attach")}detach(){this._strategy.destroy(),this.container.children.forEach((t=>t.destroy())),this.container.removeAllChildren(),this.removeHandles("attach"),this._strategy=this.container=this._projectFullExtentPromise=null}getPixelData(){const t=this.container.children[0]?.rawPixelData;if(this.updating||!t)return null;const{extent:e,pixelBlock:i}=t;return{extent:e,pixelBlock:i}}hitTest(t){return new r.Z({attributes:{},geometry:t.clone(),layer:this.layer})}update(t){this._strategy.update(t,this._symbolizerParams).catch((t=>{(0,m.D_)(t)||u.Z.getLogger(this).error(t)}))}redraw(){const{renderer:t}=this.layer;t&&(this._updateSymbolizerParams(t),this._strategy.redraw(this._symbolizerParams))}_canReuseVectorFieldData(t){const e=this._dataParameters.exportParametersVersion===t.exportParametersVersion,i=this._dataParameters.time===t.time,s=this._dataParameters.symbolTileSize===t.symbolTileSize,r=this._dataParameters.bbox===t.bbox;return e&&i&&s&&r}async _getProjectedFullExtent(t){try{return(0,z.tB)(this.layer.fullExtent,t)}catch(e){try{const e=(await(0,T.Z)(this.layer.url,{query:{option:"footprints",outSR:(0,E.B9)(t),f:"json"}})).data.featureCollection.layers[0].layerDefinition.extent;return e?P.Z.fromJSON(e):null}catch{return null}}}_updateSymbolizerParams(t){"vector-field"===t.type&&(this._symbolizerParams=this.layer.symbolizer.generateWebGLParameters({pixelBlock:null}))}};(0,s._)([(0,l.Cb)()],U.prototype,"attached",void 0),(0,s._)([(0,l.Cb)()],U.prototype,"container",void 0),(0,s._)([(0,l.Cb)()],U.prototype,"layer",void 0),(0,s._)([(0,l.Cb)()],U.prototype,"timeExtent",void 0),(0,s._)([(0,l.Cb)()],U.prototype,"type",void 0),(0,s._)([(0,l.Cb)()],U.prototype,"view",void 0),(0,s._)([(0,l.Cb)()],U.prototype,"updating",null),U=(0,s._)([(0,d.j)("esri.views.2d.layers.imagery.VectorFieldView2D")],U);const F=U;var q=i(70375),O=i(67666),L=i(51599),N=i(14136),j=i(59439);const H=t=>{let e=class extends t{constructor(){super(...arguments),this.view=null}async fetchPopupFeaturesAtLocation(t,e){const{layer:i}=this;if(!t)throw new q.Z("imagerylayerview:fetchPopupFeatures","Nothing to fetch without area",{layer:i});const{popupEnabled:s}=i,r=(0,j.V5)(i,e);if(!s||null==r)throw new q.Z("imagerylayerview:fetchPopupFeatures","Missing required popupTemplate or popupEnabled",{popupEnabled:s,popupTemplate:r});const a=await r.getRequiredFields();(0,m.k_)(e);const n=new N.Z;n.timeExtent=this.timeExtent,n.geometry=t,n.outFields=a,n.outSpatialReference=t.spatialReference;const{resolution:o,spatialReference:h}=this.view,l="2d"===this.view.type?new O.Z(o,o,h):new O.Z(.5*o,.5*o,h),{returnTopmostRaster:u,showNoDataRecords:d}=r.layerOptions||{returnTopmostRaster:!0,showNoDataRecords:!1},c={returnDomainValues:!0,returnTopmostRaster:u,pixelSize:l,showNoDataRecords:d,signal:e?.signal};return i.queryVisibleRasters(n,c).then((t=>t))}canResume(){return!!super.canResume()&&!this.timeExtent?.isEmpty}};return(0,s._)([(0,l.Cb)()],e.prototype,"layer",void 0),(0,s._)([(0,l.Cb)()],e.prototype,"suspended",void 0),(0,s._)([(0,l.Cb)(L.qG)],e.prototype,"timeExtent",void 0),(0,s._)([(0,l.Cb)()],e.prototype,"view",void 0),e=(0,s._)([(0,d.j)("esri.views.layers.ImageryLayerView")],e),e};var G=i(26216),W=i(55068);let Y=class extends(H((0,W.Z)((0,g.y)(G.Z)))){constructor(){super(...arguments),this._exportImageVersion=-1,this._highlightGraphics=new c.J,this._highlightView=void 0,this.layer=null,this.subview=null}get pixelData(){const{subview:t}=this;return this.updating||!t?null:"getPixelData"in t?t.getPixelData():null}update(t){this.subview?.update(t)}attach(){this.layer.increaseRasterJobHandlerUsage(),this._setSubView(),this.view&&(this._highlightView=new _.Z({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new y.Z(this.view.featuresTilingScheme)}),this.container.addChild(this._highlightView.container)),this.addAttachHandles([(0,h.YP)((()=>this.layer.exportImageServiceParameters.version),(t=>{t&&this._exportImageVersion!==t&&(this._exportImageVersion=t,this.requestUpdate())}),h.Z_),(0,h.YP)((()=>this.timeExtent),(t=>{const{subview:e}=this;e&&(e.timeExtent=t,"redraw"in e?this.requestUpdate():e.redrawOrRefetch())}),h.Z_),this.layer.on("redraw",(()=>{const{subview:t}=this;t&&("redraw"in t?t.redraw():t.redrawOrRefetch())})),(0,h.YP)((()=>this.layer.renderer),(()=>this._setSubView()))])}detach(){this.layer.decreaseRasterJobHandlerUsage(),this.container.removeAllChildren(),this._detachSubview(this.subview),this.subview?.destroy(),this.subview=null,this._highlightView?.destroy(),this._exportImageVersion=-1}moveStart(){}viewChange(){}moveEnd(){this.requestUpdate()}highlight(t,e){if(!((Array.isArray(t)?t[0]:a.Z.isCollection(t)?t.at(0):t)instanceof r.Z))return(0,n.kB)();let i=[];return Array.isArray(t)||a.Z.isCollection(t)?i=t.map((t=>t.clone())):t instanceof r.Z&&(i=[t.clone()]),this._highlightGraphics.addMany(i),(0,n.kB)((()=>this._highlightGraphics.removeMany(i)))}async doRefresh(){this.requestUpdate()}isUpdating(){const t=!this.subview||this.subview.updating||!!this._highlightView?.updating;return(0,o.Z)("esri-2d-log-updating"),t}_setSubView(){if(!this.view)return;const t=this.layer.renderer?.type;let e="imagery";if("vector-field"===t?e="imageryVF":"flow"===t&&(e="flow"),this.subview){const{type:t}=this.subview;if(t===e)return this._attachSubview(this.subview),void("flow"===t?this.subview.redrawOrRefetch():"imagery"===t&&"lerc"===this.layer.format?this.subview.redraw():this.requestUpdate());this._detachSubview(this.subview),this.subview?.destroy()}this.subview="imagery"===e?new S({layer:this.layer,view:this.view,timeExtent:this.timeExtent}):"imageryVF"===e?new F({layer:this.layer,view:this.view,timeExtent:this.timeExtent}):new p.Z({layer:this.layer,layerView:this}),this._attachSubview(this.subview),this.requestUpdate()}_attachSubview(t){t&&!t.attached&&(t.attach(),t.attached=!0,this.container.addChildAt(t.container,0))}_detachSubview(t){t?.attached&&(this.container.removeChild(t.container),t.detach(),t.attached=!1)}};(0,s._)([(0,l.Cb)()],Y.prototype,"pixelData",null),(0,s._)([(0,l.Cb)()],Y.prototype,"subview",void 0),Y=(0,s._)([(0,d.j)("esri.views.2d.layers.ImageryLayerView2D")],Y);const K=Y},81110:function(t,e,i){i.d(e,{K:function(){return T}});var s=i(61681),r=i(24778),a=i(38716),n=i(16699),o=i(56144),h=i(77206);let l=0;function u(t,e,i){return new n.o((0,h.W)(l++),t,t.meshWriter.name,e,i)}const d={geometry:{visualVariableColor:null,visualVariableOpacity:null,visualVariableSizeMinMaxValue:null,visualVariableSizeScaleStops:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null,visualVariableRotation:null}};class c{constructor(){this.instances={fill:u(o.k2.fill,d,{zoomRange:!0}),marker:u(o.k2.marker,d,{zoomRange:!0}),line:u(o.k2.line,d,{zoomRange:!0}),text:u(o.k2.text,d,{zoomRange:!0,referenceSymbol:!1,clipAngle:!1}),complexFill:u(o.k2.complexFill,d,{zoomRange:!0}),texturedLine:u(o.k2.texturedLine,d,{zoomRange:!0})},this._instancesById=Object.values(this.instances).reduce(((t,e)=>(t.set(e.instanceId,e),t)),new Map)}getInstance(t){return this._instancesById.get(t)}}var p=i(46332),g=i(38642),_=i(45867),y=i(17703),x=i(29927),m=i(51118),f=i(64429),w=i(78951),b=i(91907),v=i(29620);const D=Math.PI/180;class R extends m.s{constructor(t){super(),this._program=null,this._vao=null,this._vertexBuffer=null,this._indexBuffer=null,this._dvsMat3=(0,g.Ue)(),this._localOrigin={x:0,y:0},this._getBounds=t}destroy(){this._vao&&(this._vao.dispose(),this._vao=null,this._vertexBuffer=null,this._indexBuffer=null),this._program=(0,s.M2)(this._program)}doRender(t){const{context:e}=t,i=this._getBounds();if(i.length<1)return;this._createShaderProgram(e),this._updateMatricesAndLocalOrigin(t),this._updateBufferData(e,i),e.setBlendingEnabled(!0),e.setDepthTestEnabled(!1),e.setStencilWriteMask(0),e.setStencilTestEnabled(!1),e.setBlendFunction(b.zi.ONE,b.zi.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0);const s=this._program;e.bindVAO(this._vao),e.useProgram(s),s.setUniformMatrix3fv("u_dvsMat3",this._dvsMat3),e.gl.lineWidth(1),e.drawElements(b.MX.LINES,8*i.length,b.g.UNSIGNED_INT,0),e.bindVAO()}_createTransforms(){return{displayViewScreenMat3:(0,g.Ue)()}}_createShaderProgram(t){if(this._program)return;this._program=t.programCache.acquire("precision highp float;\n uniform mat3 u_dvsMat3;\n\n attribute vec2 a_position;\n\n void main() {\n mediump vec3 pos = u_dvsMat3 * vec3(a_position, 1.0);\n gl_Position = vec4(pos.xy, 0.0, 1.0);\n }","precision mediump float;\n void main() {\n gl_FragColor = vec4(0.75, 0.0, 0.0, 0.75);\n }",S().attributes)}_updateMatricesAndLocalOrigin(t){const{state:e}=t,{displayMat3:i,size:s,resolution:r,pixelRatio:a,rotation:n,viewpoint:o}=e,h=D*n,{x:l,y:u}=o.targetGeometry,d=(0,x.or)(l,e.spatialReference);this._localOrigin.x=d,this._localOrigin.y=u;const c=a*s[0],g=a*s[1],m=r*c,f=r*g,w=(0,p.yR)(this._dvsMat3);(0,p.Jp)(w,w,i),(0,p.Iu)(w,w,(0,_.al)(c/2,g/2)),(0,p.bA)(w,w,(0,y.al)(s[0]/m,-g/f,1)),(0,p.U1)(w,w,-h)}_updateBufferData(t,e){const{x:i,y:s}=this._localOrigin,r=8*e.length,a=new Float32Array(r),n=new Uint32Array(8*e.length);let o=0,h=0;for(const t of e)t&&(a[2*o]=t[0]-i,a[2*o+1]=t[1]-s,a[2*o+2]=t[0]-i,a[2*o+3]=t[3]-s,a[2*o+4]=t[2]-i,a[2*o+5]=t[3]-s,a[2*o+6]=t[2]-i,a[2*o+7]=t[1]-s,n[h]=o+0,n[h+1]=o+3,n[h+2]=o+3,n[h+3]=o+2,n[h+4]=o+2,n[h+5]=o+1,n[h+6]=o+1,n[h+7]=o+0,o+=4,h+=8);if(this._vertexBuffer?this._vertexBuffer.setData(a.buffer):this._vertexBuffer=w.f.createVertex(t,b.l1.DYNAMIC_DRAW,a.buffer),this._indexBuffer?this._indexBuffer.setData(n):this._indexBuffer=w.f.createIndex(t,b.l1.DYNAMIC_DRAW,n),!this._vao){const e=S();this._vao=new v.U(t,e.attributes,e.bufferLayouts,{geometry:this._vertexBuffer},this._indexBuffer)}}}const S=()=>(0,f.cM)("bounds",{geometry:[{location:0,name:"a_position",count:2,type:b.g.FLOAT}]});class T extends r.b{constructor(t){super(t),this._instanceStore=new c,this.checkHighlight=()=>!0}destroy(){super.destroy(),this._boundsRenderer=(0,s.SC)(this._boundsRenderer)}get instanceStore(){return this._instanceStore}enableRenderingBounds(t){this._boundsRenderer=new R(t),this.requestRender()}get hasHighlight(){return this.checkHighlight()}onTileData(t,e){t.onMessage(e),this.contains(t)||this.addChild(t),this.requestRender()}_renderChildren(t,e){t.selection=e;for(const e of this.children){if(!e.visible)continue;const i=e.getDisplayList(t.drawPhase,this._instanceStore,a.gl.STRICT_ORDER);i?.render(t)}}}},14945:function(t,e,i){i.d(e,{Z:function(){return l}});var s=i(36663),r=(i(13802),i(39994),i(4157),i(70375),i(40266)),a=i(38716),n=i(81110),o=i(41214);let h=class extends n.K{get hasHighlight(){return this.children.some((t=>t.hasData))}renderChildren(t){this.attributeView.update(),t.drawPhase===a.jx.HIGHLIGHT&&this.children.some((t=>t.hasData))&&(super.renderChildren(t),t.context.setColorMask(!0,!0,!0,!0),(0,o.P9)(t,!0,(t=>{this._renderChildren(t,a.Xq.All)})))}};h=(0,s._)([(0,r.j)("esri.views.2d.layers.support.HighlightGraphicContainer")],h);const l=h}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/412.ea8fd621d7cb3e4d3dc1.js b/docs/sentinel1-explorer/412.ea8fd621d7cb3e4d3dc1.js new file mode 100644 index 00000000..afc7e206 --- /dev/null +++ b/docs/sentinel1-explorer/412.ea8fd621d7cb3e4d3dc1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[412],{20412:function(e,a,r){r.r(a),r.d(a,{default:function(){return i}});const i={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - dd MMM",_date_hour:"HH:mm",_date_hour_full:"HH:mm - dd MMM",_date_day:"dd MMM",_date_day_full:"dd MMM",_date_week:"ww",_date_week_full:"dd MMM",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"HH:mm:ss SSS",_duration_millisecond_day:"d'g' mm:ss SSS",_duration_millisecond_week:"d'g' mm:ss SSS",_duration_millisecond_month:"M'm' dd'g' mm:ss SSS",_duration_millisecond_year:"y'a' MM'm' dd'g' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'g' hh:mm:ss",_duration_second_week:"d'g' hh:mm:ss",_duration_second_month:"M'm' dd'g' hh:mm:ss",_duration_second_year:"y'a' MM'm' dd'g' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'g' hh:mm",_duration_minute_week:"d'g' hh:mm",_duration_minute_month:"M'm' dd'g' hh:mm",_duration_minute_year:"y'a' MM'm' dd'g' hh:mm",_duration_hour:"hh'o'",_duration_hour_day:"d'g' hh'o'",_duration_hour_week:"d'g' hh'o'",_duration_hour_month:"M'm' dd'g' hh'o'",_duration_hour_year:"y'a' MM'm' dd'g' hh'o'",_duration_day:"d'g'",_duration_day_week:"d'g'",_duration_day_month:"M'm' dd'g'",_duration_day_year:"y'a' MM'm' dd'g'",_duration_week:"w's'",_duration_week_month:"w's'",_duration_week_year:"w's'",_duration_month:"M'm'",_duration_month_year:"y'a' MM'm'",_duration_year:"y'a'",_era_ad:"A.C.",_era_bc:"D.C.",A:"",P:"",AM:"",PM:"","A.M.":"","P.M.":"",January:"Gennaio",February:"Febbraio",March:"Marzo",April:"Aprile",May:"Maggio",June:"Giugno",July:"Luglio",August:"Agosto",September:"Settembre",October:"Ottobre",November:"Novembre",December:"Dicembre",Jan:"Gen",Feb:"Feb",Mar:"Mar",Apr:"Apr","May(short)":"Mag",Jun:"Giu",Jul:"Lug",Aug:"Ago",Sep:"Set",Oct:"Ott",Nov:"Nov",Dec:"Dic",Sunday:"Domenica",Monday:"Lunedì",Tuesday:"Martedì",Wednesday:"Mercoledì",Thursday:"Giovedì",Friday:"Venerdì",Saturday:"Sabato",Sun:"Dom",Mon:"Lun",Tue:"Mar",Wed:"Mer",Thu:"Gio",Fri:"Ven",Sat:"Sab",_dateOrd:function(e){return e+"°"},"Zoom Out":"Riduci zoom",Play:"Avvia",Stop:"Ferma",Legend:"Legenda","Press ENTER to toggle":"Clicca, tappa o premi ENTER per attivare",Loading:"Caricamento",Home:"Home",Chart:"Grafico","Serial chart":"Grafico combinato","X/Y chart":"Grafico X/Y","Pie chart":"Grafico a torta","Gauge chart":"Diagramma di livello","Radar chart":"Grafico radar","Sankey diagram":"Diagramma di Sankey","Flow diagram":"Diagramma di flusso","Chord diagram":"Diagramma a corda","TreeMap chart":"Mappa ad albero","Sliced chart":"Grafico a fette",Series:"Serie","Candlestick Series":"Serie a candele","OHLC Series":"Serie OHLC","Column Series":"Serie a colonne","Line Series":"Serie a linee","Pie Slice Series":"Serie a fetta di torta","Funnel Series":"Serie ad imbuto","Pyramid Series":"Serie a piramide","X/Y Series":"Serie X/Y",Map:"Mappa","Press ENTER to zoom in":"Premi ENTER per ingrandire","Press ENTER to zoom out":"Premi ENTER per ridurre","Use arrow keys to zoom in and out":"Usa le frecce per ingrandire e ridurre","Use plus and minus keys on your keyboard to zoom in and out":"Utilizza i tasti più e meno sulla tastiera per ingrandire e ridurre",Export:"Esporta",Image:"Immagine",Data:"Dati",Print:"Stampa","Press ENTER to open":"Clicca, tappa o premi ENTER per aprire","Press ENTER to print.":"Clicca, tappa o premi ENTER per stampare.","Press ENTER to export as %1.":"Clicca, tappa o premi ENTER per esportare come %1.","(Press ESC to close this message)":"(Premere ESC per chiudere questo messaggio)","Image Export Complete":"Esportazione immagine completata","Export operation took longer than expected. Something might have gone wrong.":"L'operazione di esportazione ha richiesto più tempo del previsto. Potrebbe esserci qualche problema.","Saved from":"Salvato da",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"Utilizzare TAB per selezionare i punti di ancoraggio o i tasti freccia sinistra e destra per modificare la selezione","Use left and right arrows to move selection":"Utilizzare le frecce sinistra e destra per spostare la selezione","Use left and right arrows to move left selection":"Utilizzare frecce destra e sinistra per spostare la selezione sinistra","Use left and right arrows to move right selection":"Utilizzare frecce destra e sinistra per spostare la selezione destra","Use TAB select grip buttons or up and down arrows to change selection":"Utilizzare TAB per selezionare i punti di ancoraggio o premere le frecce su e giù per modificare la selezione","Use up and down arrows to move selection":"Utilizzare le frecce su e giù per spostare la selezione","Use up and down arrows to move lower selection":"Utilizzare le frecce su e giù per spostare la selezione inferiore","Use up and down arrows to move upper selection":"Utilizzare le frecce su e giù per spostare la selezione superiore","From %1 to %2":"Da %1 a %2","From %1":"Da %1","To %1":"a %1","No parser available for file: %1":"Nessun parser disponibile per il file: %1","Error parsing file: %1":"Errore durante l'analisi del file: %1","Unable to load file: %1":"Impossibile caricare il file: %1","Invalid date":"Data non valida"}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4121.a5e845d166c9373580a5.js b/docs/sentinel1-explorer/4121.a5e845d166c9373580a5.js new file mode 100644 index 00000000..c88b119a --- /dev/null +++ b/docs/sentinel1-explorer/4121.a5e845d166c9373580a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4121],{44121:function(e,t,s){s.r(t),s.d(t,{default:function(){return ct}});var r=s(36663),i=s(13802),a=s(78668),n=s(76868),o=s(81977),l=(s(39994),s(4157),s(40266)),u=s(76386),c=s(91203),h=s(66878),d=s(24568),p=s(69050),m=s(61681),f=s(46332),g=s(38642),_=s(45867),y=s(51118),b=s(91907),x=s(10054);const v={bandCount:3,outMin:0,outMax:1,minCutOff:[0,0,0],maxCutOff:[255,255,255],factor:[1/255,1/255,1/255],useGamma:!1,gamma:[1,1,1],gammaCorrection:[1,1,1],colormap:null,colormapOffset:null,stretchType:"none",type:"stretch"};class w extends y.s{constructor(e=null,t=null,s=null){super(),this._textureInvalidated=!0,this._colormapTextureInvalidated=!0,this._rasterTexture=null,this._rasterTextureBandIds=null,this._transformGridTexture=null,this._colormapTexture=null,this._colormap=null,this._supportsBilinearTexture=!0,this._processedTexture=null,this.functionTextures=[],this.projected=!1,this.stencilRef=0,this.coordScale=[1,1],this._processed=!1,this._symbolizerParameters=null,this.height=null,this.isRendereredSource=!1,this.pixelRatio=1,this.resolution=0,this.rotation=0,this._source=null,this.rawPixelData=null,this._suspended=!1,this._bandIds=null,this._interpolation=null,this._transformGrid=null,this.width=null,this.x=0,this.y=0,this.source=e,this.transformGrid=t,this.interpolation=s}destroy(){this._disposeTextures()}get processedTexture(){return this._processedTexture}set processedTexture(e){this._processedTexture!==e&&(this._disposeTextures(!0),this._processedTexture=e)}get rasterTexture(){return this._rasterTexture}set rasterTexture(e){this._rasterTexture!==e&&(this._rasterTexture?.dispose(),this._rasterTexture=e),null==e&&(this.projected=!1)}get processed(){return this._processed}set processed(e){this._processed=e,e||((0,m.M2)(this.processedTexture),this.invalidateTexture())}get symbolizerParameters(){return this._symbolizerParameters||v}set symbolizerParameters(e){this._symbolizerParameters!==e&&(this._symbolizerParameters=e,this._colormapTextureInvalidated=!0,this.commonUniforms=null)}get source(){return this._source}set source(e){this._source!==e&&(this._source=e,this._rasterTexture&&(this._rasterTexture.dispose(),this._rasterTexture=null,this._rasterTextureBandIds=null),this.commonUniforms=null,this.projected=!1,this.invalidateTexture())}get suspended(){return this._suspended}set suspended(e){this._suspended&&!e&&this.stage&&(this.ready(),this.requestRender()),this._suspended=e}get bandIds(){return this._bandIds}set bandIds(e){this._bandIds=e,this._isBandIdsChanged(e)&&(this.projected=!1,this.invalidateTexture())}get interpolation(){return this._interpolation||"nearest"}set interpolation(e){this._interpolation=e,this._rasterTexture&&this._rasterTexture.setSamplingMode("bilinear"===this._getTextureSamplingMethod(e||"nearest")?b.cw.LINEAR:b.cw.NEAREST)}get transformGrid(){return this._transformGrid}set transformGrid(e){this._transformGrid!==e&&(this._transformGrid=e,this._transformGridTexture=(0,m.M2)(this._transformGridTexture))}invalidateTexture(){this._textureInvalidated||(this._textureInvalidated=!0,this.requestRender())}getRasterTextureSize(e=!1){const t=e||this.projected;return[t?this.width:this.source?.width||this.width,t?this.height:this.source?.height||this.height]}getRasterCellSize(){const e=this.rawPixelData?.srcPixelSize,{projected:t,resolution:s}=this;return e&&!t?[e.x,e.y]:[s,s]}_createTransforms(){return{displayViewScreenMat3:(0,g.Ue)()}}setTransform(e){const t=(0,f.yR)(this.transforms.displayViewScreenMat3),[s,r]=e.toScreenNoRotation([0,0],[this.x,this.y]),i=this.resolution/this.pixelRatio/e.resolution,a=i*this.width,n=i*this.height,o=Math.PI*this.rotation/180;(0,f.Iu)(t,t,(0,_.al)(s,r)),(0,f.Iu)(t,t,(0,_.al)(a/2,n/2)),(0,f.U1)(t,t,-o),(0,f.Iu)(t,t,(0,_.al)(-a/2,-n/2)),(0,f.ex)(t,t,(0,_.al)(a,n)),(0,f.Jp)(this.transforms.displayViewScreenMat3,e.displayViewMat3,t)}getTextures({forProcessing:e=!1,useProcessedTexture:t=!1}={}){const s=t?this._processedTexture??this._rasterTexture:this._rasterTexture,r=[],i=[];return s?(this._transformGridTexture&&!this.projected&&(i.push(this._transformGridTexture),r.push("u_transformGrid")),t?(i.push(s),r.push("u_image"),this._colormapTexture&&(i.push(this._colormapTexture),r.push("u_colormap")),{names:r,textures:i}):(i.push(s),r.push("u_image"),this._colormapTexture&&!e&&(i.push(this._colormapTexture),r.push("u_colormap")),{names:r,textures:i})):{names:r,textures:i}}onAttach(){this.invalidateTexture()}onDetach(){this.invalidateTexture()}updateTexture({context:e}){if(!this.stage)return void this._disposeTextures();const t=this._isValidSource(this.source);t&&this._colormapTextureInvalidated&&(this._colormapTextureInvalidated=!1,this._updateColormapTexture(e)),this._textureInvalidated&&(this._textureInvalidated=!1,this._createOrDestroyRasterTexture(e),this._rasterTexture&&(t?this.transformGrid&&!this._transformGridTexture&&(this._transformGridTexture=(0,x.Br)(e,this.transformGrid)):this._rasterTexture.setData(null)),this.suspended||(this.ready(),this.requestRender()))}updateProcessedTexture(){const{functionTextures:e}=this;0!==e.length&&(this.processedTexture=e.shift(),e.forEach((e=>e?.dispose())),e.length=0)}_createOrDestroyRasterTexture(e){const t=this.source?.extractBands(this.bandIds);if(!this._isValidSource(t))return void(this._rasterTexture&&(this._rasterTexture.dispose(),this._rasterTextureBandIds=null,this._rasterTexture=null));const s=!this._isBandIdsChanged(this.bandIds);if(this._rasterTexture){if(s)return;this._rasterTexture.dispose(),this._rasterTextureBandIds=null,this._rasterTexture=null}this._supportsBilinearTexture=!!e.capabilities.textureFloat?.textureFloatLinear;const r=this._getTextureSamplingMethod(this.interpolation),i=this.isRendereredSource;this._rasterTexture=(0,x.s9)(e,t,r,i),this.projected=!1,this._processed=!1,this._rasterTextureBandIds=this.bandIds?[...this.bandIds]:null}_isBandIdsChanged(e){const t=this._rasterTextureBandIds;return!(null==t&&null==e||t&&e&&t.join("")===e.join(""))}_isValidSource(e){return null!=e&&e.pixels?.length>0}_getTextureSamplingMethod(e){const{type:t}=this.symbolizerParameters,s="lut"===t||"hillshade"===t||"stretch"===t&&1===this.symbolizerParameters.bandCount;return!this._supportsBilinearTexture||s||"bilinear"!==e&&"cubic"!==e?"nearest":"bilinear"}_updateColormapTexture(e){const t=this._colormap,s=this.symbolizerParameters.colormap;return s?t?s.length!==t.length||s.some(((e,s)=>e!==t[s]))?(this._colormapTexture&&(this._colormapTexture.dispose(),this._colormapTexture=null),this._colormapTexture=(0,x.iC)(e,s),void(this._colormap=s)):void 0:(this._colormapTexture=(0,x.iC)(e,s),void(this._colormap=s)):(this._colormapTexture&&(this._colormapTexture.dispose(),this._colormapTexture=null),void(this._colormap=null))}_disposeTextures(e=!1){!this._transformGridTexture||e&&!this.projected||(this._transformGridTexture.dispose(),this._transformGridTexture=null),!e&&this._colormapTexture&&(this._colormapTexture.dispose(),this._colormapTexture=null,this._colormap=null,this._colormapTextureInvalidated=!0),!e&&this._rasterTexture&&(this._rasterTexture.dispose(),this._rasterTexture=null,this._rasterTextureBandIds=null),this._processedTexture&&(this._processedTexture.dispose(),this._processedTexture=null)}}function T(e){const t=[];return e&&(t.push("applyProjection"),1===e.spacing[0]&&t.push("lookupProjection")),t}function P(e,t,s){const r=!s.capabilities.textureFloat?.textureFloatLinear,i=[];return"cubic"===e?i.push("bicubic"):"bilinear"===e&&(t?(i.push("bilinear"),i.push("nnedge")):r&&i.push("bilinear")),i}const S={vsPath:"raster/common",fsPath:"raster/lut",attributes:new Map([["a_position",0],["a_texcoord",1]])};const R={createProgram:function(e,t,s){const r=s?[]:T(t.transformGrid);return{defines:r,program:e.painter.materialManager.getProgram(S,r)}},bindTextureAndUniforms:function(e,t,s,r,i=!1){const{names:a,textures:n}=s.getTextures({useProcessedTexture:i});(0,x.RA)(e.context,t,a,n),(0,x.N9)(t,r,s.commonUniforms),t.setUniformMatrix3fv("u_dvsMat3",s.transforms.displayViewScreenMat3);const{colormap:o,colormapOffset:l}=s.symbolizerParameters,u=(0,x.Ue)(o,l);(0,x.N9)(t,r,u)}},C={vsPath:"raster/common",fsPath:"raster/hillshade",attributes:new Map([["a_position",0],["a_texcoord",1]])};const I={createProgram:function(e,t,s){const{colormap:r}=t.symbolizerParameters,i=[...s?[]:T(t.transformGrid),...P(t.interpolation,!0,e.context)];return null!=r&&i.push("applyColormap"),{defines:i,program:e.painter.materialManager.getProgram(C,i)}},bindTextureAndUniforms:function(e,t,s,r,i=!1){const{names:a,textures:n}=s.getTextures({useProcessedTexture:i});(0,x.RA)(e.context,t,a,n),(0,x.N9)(t,r,s.commonUniforms),t.setUniformMatrix3fv("u_dvsMat3",s.transforms.displayViewScreenMat3);const o=s.symbolizerParameters,{colormap:l,colormapOffset:u}=o;if(null!=l){const e=(0,x.Ue)(l,u);(0,x.N9)(t,r,e)}const c=(0,x.Fm)(o);(0,x.N9)(t,r,c)}},U={vsPath:"raster/common",fsPath:"raster/stretch",attributes:new Map([["a_position",0],["a_texcoord",1]])};const F={createProgram:function(e,t,s){const{colormap:r,bandCount:i}=t.symbolizerParameters,a=[...s?[]:T(t.transformGrid),...P(t.interpolation,1===i,e.context)];return t.isRendereredSource&&!s?a.push("noop"):null!=r&&a.push("applyColormap"),{defines:a,program:e.painter.materialManager.getProgram(U,a)}},bindTextureAndUniforms:function(e,t,s,r,i=!1){const{names:a,textures:n}=s.getTextures({useProcessedTexture:i});(0,x.RA)(e.context,t,a,n),(0,x.N9)(t,r,s.commonUniforms),t.setUniformMatrix3fv("u_dvsMat3",s.transforms.displayViewScreenMat3);const o=s.symbolizerParameters,{colormap:l,colormapOffset:u}=o;if(null!=l){const e=(0,x.Ue)(l,u);(0,x.N9)(t,r,e)}const c=(0,x.xW)(o);(0,x.N9)(t,r,c)}},M=new Map;M.set("lut",R),M.set("hillshade",I),M.set("stretch",F);const z=[1,1],V=[2,0,0,0,2,0,-1,-1,0];function A(e,t,s){const{context:r,rasterFunction:i,hasBranches:a}=e,{raster:n}=i.parameters,o=a?n?.id??-1:0,l=s.functionTextures[o]??s.rasterTexture;(0,x.RA)(r,t,["u_image"],[l])}function O(e,t,s){const{rasters:r}=e.rasterFunction.parameters;if(!r)return;if(r.length<2)return A(e,t,s);const i=r.filter((e=>"Constant"!==e.name)).map((e=>null!=e.id&&"Identity"!==e.name?s.functionTextures[e.id]:s.rasterTexture));if((0,x.RA)(e.context,t,["u_image","u_image1","u_image2"].slice(0,i.length),i),i.length!==r.length)if(2===r.length){const e=r.findIndex((e=>"Constant"===e.name)),s=0===e?[0,1,0,1,0,0,0,0,0]:[1,0,0,0,1,0,0,0,0],{value:i}=r[e].parameters;t.setUniform1f("u_image1Const",i),t.setUniformMatrix3fv("u_imageSwap",s)}else if(3===r.length){const e=[];if(r.forEach(((t,s)=>"Constant"===t.name&&e.push(s))),1===e.length){const{value:s}=r[e[0]].parameters;t.setUniform1f("u_image1Const",s);const i=0===e[0]?[0,1,0,0,0,1,1,0,0]:1===e[0]?[1,0,0,0,0,1,0,1,0]:[1,0,0,0,1,0,0,0,1];t.setUniformMatrix3fv("u_imageSwap",i)}else if(2===e.length){const{value:s}=r[e[0]].parameters;t.setUniform1f("u_image1Const",s);const{value:i}=r[e[1]].parameters;t.setUniform1f("u_image2Const",i);const a=r.findIndex((e=>"Constant"!==e.name)),n=0===a?[1,0,0,0,1,0,0,0,1]:1===a?[0,1,0,1,0,0,0,0,1]:[0,0,1,1,0,0,0,1,0];t.setUniformMatrix3fv("u_imageSwap",n)}}}function L(e){e.setUniform2fv("u_coordScale",z),e.setUniformMatrix3fv("u_dvsMat3",V)}const B={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/aspect",attributes:new Map([["a_position",0],["a_texcoord",1]])};const E={createProgram:function(e,t){return e.painter.materialManager.getProgram(B,[])},bindTextureAndUniforms:function(e,t,s){A(e,t,s),L(t);const r=s.getRasterTextureSize();t.setUniform2fv("u_srcImageSize",r);const i=s.getRasterCellSize();t.setUniform2fv("u_cellSize",i)}},G={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/bandarithmetic",attributes:new Map([["a_position",0],["a_texcoord",1]])};const k={createProgram:function(e,t){const{painter:s,rasterFunction:r}=e,{indexType:i}=r.parameters;return s.materialManager.getProgram(G,[i])},bindTextureAndUniforms:function(e,t,s){A(e,t,s),L(t);const{bandIndexMat3:r}=e.rasterFunction.parameters;t.setUniformMatrix3fv("u_bandIndexMat3",r)}},D={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/compositeband",attributes:new Map([["a_position",0],["a_texcoord",1]])};const q={createProgram:function(e,t){const s=e.rasterFunction.parameters.rasters.filter((e=>"Constant"===e.name)),r=[];return s.length&&(r.push("oneConstant"),2===s.length&&r.push("twoConstant")),e.painter.materialManager.getProgram(D,r)},bindTextureAndUniforms:function(e,t,s){O(e,t,s),L(t)}},j={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/contrast",attributes:new Map([["a_position",0],["a_texcoord",1]])};const Z={createProgram:function(e,t){return e.painter.materialManager.getProgram(j,[])},bindTextureAndUniforms:function(e,t,s){A(e,t,s),L(t);const{contrastOffset:r,brightnessOffset:i}=e.rasterFunction.parameters;t.setUniform1f("u_contrastOffset",r),t.setUniform1f("u_brightnessOffset",i)}},N={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/convolution",attributes:new Map([["a_position",0],["a_texcoord",1]])};const W={createProgram:function(e,t){const{painter:s,rasterFunction:r}=e,{kernelRows:i,kernelCols:a}=r.parameters,n=[{name:"rows",value:i},{name:"cols",value:a}];return s.materialManager.getProgram(N,n)},bindTextureAndUniforms:function(e,t,s){A(e,t,s),L(t),t.setUniform2fv("u_srcImageSize",[s.width,s.height]);const{kernel:r,clampRange:i}=e.rasterFunction.parameters;t.setUniform1fv("u_kernel",r),t.setUniform2fv("u_clampRange",i)}},H={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/curvature",attributes:new Map([["a_position",0],["a_texcoord",1]])};const Q={createProgram:function(e,t){const{painter:s,rasterFunction:r}=e,{curvatureType:i}=r.parameters,a=[i];return s.materialManager.getProgram(H,a)},bindTextureAndUniforms:function(e,t,s){A(e,t,s),L(t);const r=s.getRasterTextureSize();t.setUniform2fv("u_srcImageSize",r);const{zFactor:i}=e.rasterFunction.parameters,a=s.getRasterCellSize();t.setUniform1f("u_zlFactor",200*i/a[0]/a[1])}},Y={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/extractband",attributes:new Map([["a_position",0],["a_texcoord",1]])};const X={createProgram:function(e,t){return e.painter.materialManager.getProgram(Y,[])},bindTextureAndUniforms:function(e,t,s){A(e,t,s),L(t);const{bandIndexMat3:r}=e.rasterFunction.parameters;t.setUniformMatrix3fv("u_bandIndexMat3",r)}},J={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/focalstatistics",attributes:new Map([["a_position",0],["a_texcoord",1]])};const K={createProgram:function(e,t){const{painter:s,rasterFunction:r}=e,{kernelRows:i,kernelCols:a,fillNoDataOnly:n,statisticsType:o}=r.parameters,l=[{name:"rows",value:i},{name:"cols",value:a},o];return n&&l.push("fill"),s.materialManager.getProgram(J,l)},bindTextureAndUniforms:function(e,t,s){A(e,t,s),L(t),t.setUniform2fv("u_srcImageSize",[s.width,s.height]);const{clampRange:r}=e.rasterFunction.parameters;t.setUniform2fv("u_clampRange",r)}},$={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/grayscale",attributes:new Map([["a_position",0],["a_texcoord",1]])};const ee={createProgram:function(e,t){return e.painter.materialManager.getProgram($,[])},bindTextureAndUniforms:function(e,t,s){A(e,t,s),L(t);const{weights:r}=e.rasterFunction.parameters;t.setUniform3fv("u_weights",r)}},te={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/local",attributes:new Map([["a_position",0],["a_texcoord",1]])};const se={createProgram:function(e){const{painter:t,rasterFunction:s}=e,{imageCount:r,operationName:i,rasters:a,isOutputRounded:n}=s.parameters,o=[i.toLowerCase()];2===r&&o.push("twoImages");const l=a.filter((e=>"Constant"===e.name));return l.length&&(o.push("oneConstant"),2===l.length&&o.push("twoConstant")),n&&o.push("roundOutput"),t.materialManager.getProgram(te,o)},bindTextureAndUniforms:function(e,t,s){O(e,t,s),L(t);const{domainRange:r}=e.rasterFunction.parameters;t.setUniform2fv("u_domainRange",r)}},re={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/mask",attributes:new Map([["a_position",0],["a_texcoord",1]])};const ie={createProgram:function(e,t){const{painter:s,rasterFunction:r}=e,i=r.parameters.bandCount>1?["multiBand"]:[];return s.materialManager.getProgram(re,i)},bindTextureAndUniforms:function(e,t,s){A(e,t,s),L(t);const{includedRanges:r,noDataValues:i}=e.rasterFunction.parameters;t.setUniform1fv("u_includedRanges",r),t.setUniform1fv("u_noDataValues",i)}},ae={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/ndvi",attributes:new Map([["a_position",0],["a_texcoord",1]])};const ne={createProgram:function(e,t){const{painter:s,rasterFunction:r}=e,i=r.parameters.scaled?["scaled"]:[];return s.materialManager.getProgram(ae,i)},bindTextureAndUniforms:function(e,t,s){A(e,t,s),L(t);const{bandIndexMat3:r}=e.rasterFunction.parameters;t.setUniformMatrix3fv("u_bandIndexMat3",r)}},oe={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/remap",attributes:new Map([["a_position",0],["a_texcoord",1]])};const le={createProgram:function(e,t){return e.painter.materialManager.getProgram(oe,[])},bindTextureAndUniforms:function(e,t,s){A(e,t,s),L(t);const{noDataRanges:r,rangeMaps:i,allowUnmatched:a,clampRange:n}=e.rasterFunction.parameters;t.setUniform1fv("u_noDataRanges",r),t.setUniform1fv("u_rangeMaps",i),t.setUniform1f("u_unmatchMask",a?1:0),t.setUniform2fv("u_clampRange",n)}};var ue=s(84164);const ce={vsPath:"raster/common",fsPath:"raster/reproject",attributes:new Map([["a_position",0],["a_texcoord",1]])};const he={createProgram:function(e,t){const{painter:s}=e,r=[],{interpolation:i,transformGrid:a}=t,n=e.rasterFunction?.parameters;return"cubic"===i?r.push("bicubic"):"bilinear"===i&&(r.push("bilinear"),n?.requireNNEdge&&r.push("nnedge")),a&&(r.push("applyProjection"),1===a.spacing[0]&&r.push("lookupProjection")),s.materialManager.getProgram(ce,r)},bindTextureAndUniforms:function(e,t,s){const{names:r,textures:i}=s.getTextures({forProcessing:!0});(0,x.RA)(e.context,t,r,i),t.setUniform1f("u_scale",1),t.setUniform2fv("u_offset",[0,0]),t.setUniform2fv("u_coordScale",[1,1]),t.setUniformMatrix3fv("u_dvsMat3",[2,0,0,0,2,0,-1,-1,0]),t.setUniform1i("u_flipY",0),t.setUniform1f("u_opacity",1);const{width:a,height:n,source:o,transformGrid:l}=s;t.setUniform2fv("u_srcImageSize",[o.width,o.height]),t.setUniform2fv("u_targetImageSize",[a,n]),t.setUniform2fv("u_transformSpacing",l?l.spacing:ue.AG),t.setUniform2fv("u_transformGridSize",l?l.size:ue.AG)}},de={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/slope",attributes:new Map([["a_position",0],["a_texcoord",1]])};const pe={createProgram:function(e,t){const{painter:s,rasterFunction:r}=e,{slopeType:i}=r.parameters,a="percent-rise"===i?["percentRise"]:[];return s.materialManager.getProgram(de,a)},bindTextureAndUniforms:function(e,t,s){A(e,t,s),L(t);const r=s.getRasterTextureSize();t.setUniform2fv("u_srcImageSize",r);const i=s.getRasterCellSize();t.setUniform2fv("u_cellSize",i);const{zFactor:a,slopeType:n,pixelSizePower:o,pixelSizeFactor:l}=e.rasterFunction.parameters;t.setUniform1f("u_zFactor",a),t.setUniform1f("u_pixelSizePower","adjusted"===n?o:0),t.setUniform1f("u_pixelSizeFactor","adjusted"===n?l:0)}},me={vsPath:"raster/rfx/vs",fsPath:"raster/rfx/stretch",attributes:new Map([["a_position",0],["a_texcoord",1]])};const fe={createProgram:function(e,t){const{useGamma:s,bandCount:r,isOutputRounded:i}=e.rasterFunction.parameters,a=[];return s&&a.push("useGamma"),r>1&&a.push("multiBand"),i&&a.push("roundOutput"),e.painter.materialManager.getProgram(me,a)},bindTextureAndUniforms:function(e,t,s){A(e,t,s),L(t);const{width:r,height:i}=s,a=e.rasterFunction.parameters;t.setUniform2fv("u_srcImageSize",[r,i]),t.setUniform1f("u_minOutput",a.outMin),t.setUniform1f("u_maxOutput",a.outMax),t.setUniform1fv("u_factor",a.factor),t.setUniform1fv("u_minCutOff",a.minCutOff),t.setUniform1fv("u_maxCutOff",a.maxCutOff),t.setUniform1fv("u_gamma",a.gamma),t.setUniform1fv("u_gammaCorrection",a.gammaCorrection)}};var ge=s(71449),_e=s(80479);const ye=new Map;function be(e,t){const s=new _e.X;return s.width=e,s.height=t,s.internalFormat=b.lP.RGBA32F,s.samplingMode=b.cw.NEAREST,s.dataType=b.Br.FLOAT,s.isImmutable=!0,s.wrapMode=b.e8.CLAMP_TO_EDGE,s}function xe(e,t,s,r){const i=e.rasterFunction.name.toLowerCase(),a="reproject"===i?he:function(e){return ye.get(e.toLowerCase())}(i);if(null==a)return;const n=function(e,t,s,r){const{context:i,requestRender:a,allowDelayedRender:n}=e,o=r.createProgram(e,s);return n&&null!=a&&!o.compiled?(a(),null):(i.bindFramebuffer(t),i.setViewport(0,0,t.width,t.height),i.useProgram(o),o)}(e,s,r,a);if(!n)return;a.bindTextureAndUniforms(e,n,r);const{interpolation:o}=r;"reproject"===i&&(r.interpolation="nearest"),t.draw();const[l,u]=r.getRasterTextureSize("reproject"===i),c=be(l,u),h=new ge.x(e.context,c);if(s.copyToTexture(0,0,l,u,0,0,h),"reproject"===i)r.rasterTexture=h,r.projected=!0,r.interpolation=o;else{const t=e.hasBranches?e.rasterFunction.id:0;r.functionTextures[t]=h}}ye.set("arithmetic",se),ye.set("aspect",E),ye.set("bandarithmetic",k),ye.set("compositeband",q),ye.set("convolution",W),ye.set("contrastbrightness",Z),ye.set("curvature",Q),ye.set("extractband",X),ye.set("statistics",K),ye.set("grayscale",ee),ye.set("local",se),ye.set("mask",ie),ye.set("ndvi",ne),ye.set("remap",le),ye.set("slope",pe),ye.set("stretch",fe);var ve=s(14266),we=s(86424),Te=s(29316),Pe=s(18567);class Se extends Te.Z{constructor(){super(...arguments),this.name="raster",this._quad=null,this._rendererUniformInfos=new Map,this._fbo=null}dispose(){(0,m.M2)(this._quad),(0,m.M2)(this._fbo)}prepareState(e){const{context:t,renderPass:s}=e,r="raster"===s;t.setBlendingEnabled(!r),t.setBlendFunctionSeparate(b.zi.ONE,b.zi.ONE_MINUS_SRC_ALPHA,b.zi.ONE,b.zi.ONE_MINUS_SRC_ALPHA),t.setColorMask(!0,!0,!0,!0),t.setStencilWriteMask(0),t.setStencilTestEnabled(!r)}draw(e,t){if(!function(e){return null!=e.source}(t)||t.suspended)return;const{renderPass:s}=e;if("raster-bitmap"!==s)return"raster"===s?this._process(e,t):void this._drawBitmap(e,t,!0);this._drawBitmap(e,t)}_process(e,t){const{rasterFunction:s}=e,r="Reproject"===s.name;if(!(r?!t.rasterTexture||!t.projected:!t.processed))return;const{timeline:i,context:a}=e;i.begin(this.name);const n=a.getBoundFramebufferObject(),o=a.getViewport();r||(t.processedTexture=(0,m.M2)(t.processedTexture)),a.setStencilFunction(b.wb.EQUAL,t.stencilRef,255),t.updateTexture(e),this._initQuad(a);const[l,u]=t.getRasterTextureSize(r),{isStandardRasterTileSize:c,fbo:h}=this._getRasterFBO(a,l,u);xe(e,this._quad,h,t),c||h.dispose(),a.bindFramebuffer(n),a.setViewport(o.x,o.y,o.width,o.height),i.end(this.name)}_drawBitmap(e,t,s=!1){const{timeline:r,context:i}=e;if(r.begin(this.name),i.setStencilFunction(b.wb.EQUAL,t.stencilRef,255),t.updateTexture(e),s&&!t.processedTexture){if(t.updateProcessedTexture(),!t.processedTexture)return void r.end(this.name);t.processed=!0}this._initBitmapCommonUniforms(t);const a=t.symbolizerParameters.type,n=function(e){return M.get(e)}(a),{requestRender:o,allowDelayedRender:l}=e,{defines:u,program:c}=n.createProgram(e,t,t.projected&&s);if(l&&null!=o&&!c.compiled)return void o();i.useProgram(c);const h=this._getUniformInfos(a,i,c,u);this._quad||(this._quad=new we.Z(i,[0,0,1,0,0,1,1,1])),n.bindTextureAndUniforms(e,c,t,h,s),this._quad.draw(),r.end(this.name)}_initBitmapCommonUniforms(e){if(!e.commonUniforms){const t=(0,x.zS)(1,[0,0]),{transformGrid:s,width:r,height:i}=e,a=(0,x.Tc)(s,[r,i],[e.source.width,e.source.height],1,!1);e.commonUniforms={...t,...a,u_coordScale:e.coordScale}}}_getRasterFBO(e,t,s){const r=t===ve.i9&&s===ve.i9;return r?(this._fbo||(this._fbo=this._createNewFBO(e,t,s)),{isStandardRasterTileSize:r,fbo:this._fbo}):{isStandardRasterTileSize:r,fbo:this._createNewFBO(e,t,s)}}_createNewFBO(e,t,s){const r=be(t,s);return new Pe.X(e,r)}_initQuad(e){this._quad||(this._quad=new we.Z(e,[0,0,1,0,0,1,1,1]))}_getUniformInfos(e,t,s,r){const i=r.length>0?e+"-"+r.join("-"):e;if(this._rendererUniformInfos.has(i))return this._rendererUniformInfos.get(i);const a=(0,x.v)(t,s);return this._rendererUniformInfos.set(i,a),a}}var Re=s(27954);class Ce extends Re.I{constructor(e,t,s,r,i,a,n=null){super(e,t,s,r,i,a),this.bitmap=null,this.bitmap=new w(n,null,null),this.bitmap.coordScale=[i,a],this.bitmap.once("isReady",(()=>this.ready()))}destroy(){super.destroy(),this.bitmap.destroy(),this.bitmap=null,this.stage=null}set stencilRef(e){this.bitmap.stencilRef=e}get stencilRef(){return this.bitmap.stencilRef}setTransform(e){super.setTransform(e),this.bitmap.transforms.displayViewScreenMat3=this.transforms.displayViewScreenMat3}_createTransforms(){return{displayViewScreenMat3:(0,g.Ue)(),tileMat3:(0,g.Ue)()}}onAttach(){this.bitmap.stage=this.stage}onDetach(){this.bitmap.stage=null}}var Ie=s(38716),Ue=s(70179);class Fe extends Ue.Z{constructor(){super(...arguments),this.isCustomTilingScheme=!1}createTile(e){const t=this._getTileBounds(e),[s,r]=this._tileInfoView.tileInfo.size,i=this._tileInfoView.getTileResolution(e.level);return new Ce(e,i,t[0],t[3],s,r)}prepareRenderPasses(e){const t=e.registerRenderPass({name:"imagery (tile)",brushes:[Se],target:()=>this.children.map((e=>e.bitmap)),drawPhase:Ie.jx.MAP});return[...super.prepareRenderPasses(e),t]}doRender(e){if(!this.visible||e.drawPhase!==Ie.jx.MAP)return;const{rasterFunctionChain:t}=this;if(!t)return e.renderPass="raster-bitmap",void super.doRender(e);if(!t.hasFocalFunction){const[s,r]=this._tileInfoView.tileInfo.size;e.renderPass="raster",e.rasterFunction={name:"Reproject",parameters:{targetImageSize:[s,r],requireNNEdge:t.isSourceSingleBand},pixelType:"f32",id:0,isNoopProcess:!1},super.doRender(e)}if(t?.functions.length){const{functions:s,hasBranches:r}=t;for(let t=0;t{const t=this._rasterFunctionState;if(e.reprocess&&(await this._updatingHandles.addPromise(this.layer.updateRasterFunction()),this.updateRasterFunctionParameters()),!this.previousLOD||this.layerView.suspended)return;const s=this._rasterFunctionState,{type:r}=this;return e.refetch||"raster"!==r&&e.reprocess||"cpu"===s||"cpu"===t?this._updatingHandles.addPromise(this.doRefresh()):this._updatingHandles.addPromise(this._redrawImage(e.signal))}))}destroy(){this._updatingHandles.destroy()}get useWebGLForProcessing(){return this._get("useWebGLForProcessing")??!0}set useWebGLForProcessing(e){this._set("useWebGLForProcessing",e)}get useProgressiveUpdate(){return this._get("useProgressiveUpdate")??!0}set useProgressiveUpdate(e){if(this._tileStrategy&&this.useProgressiveUpdate!==e){this._tileStrategy.destroy(),this.container.removeAllChildren();const t=this._getCacheSize(e);this._tileStrategy=new ke.Z({cachePolicy:"purge",acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),cacheSize:t,tileInfoView:this._tileInfoView}),this._set("useProgressiveUpdate",e),this.layerView.requestUpdate()}}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume();const{extent:t,resolution:s,scale:r}=e.state,i=this._tileInfoView.getClosestInfoForScale(r);if(this.layer.raster){if(!this.useProgressiveUpdate||this._needBlockCacheUpdate){const e=this._srcResolutions[i.level],r=t.toJSON?t:qe.Z.fromJSON(t);(0,Le.Vx)(this._blockCacheRegistryUrl,this._blockCacheRegistryId,r,s,e,this.layer.raster.ioConfig.sampling)}this._needBlockCacheUpdate=!1,this.previousLOD?.level!==i.level&&(this.previousLOD=i,null==this._symbolizerParams||this.layerView.hasTilingEffects||this._updateSymbolizerParams(),this._tileStrategy.updateCacheSize(0))}}moveEnd(){!this.layerView.hasTilingEffects&&this.useProgressiveUpdate||(this._abortController&&this._abortController.abort(),this._abortController=new AbortController,0===this._fetchQueue.length&&this._redrawImage(this._abortController.signal).then((()=>{this._globalUpdateRequested=!1,this.layerView.requestUpdate()})));const e=this._getCacheSize(this.useProgressiveUpdate);this._tileStrategy.updateCacheSize(e),this.layerView.requestUpdate()}get updating(){return this._globalUpdateRequested||this._updatingHandles?.updating}attach(){const e=(0,De.h)();this._maxIndexedColormapSize=4*(e.maxTextureSize||4096),this._initializeTileInfo(),this._tileInfoView=new Ee.Z(this.layerView.tileInfo,this.layerView.fullExtent);const t=this._computeFetchConcurrency();this._fetchQueue=new Ge.Z({tileInfoView:this._tileInfoView,concurrency:t,process:(e,t)=>this._fetchTile(e,t)});const s=this._getCacheSize(this.useProgressiveUpdate);this._tileStrategy=new ke.Z({cachePolicy:"purge",acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),cacheSize:s,tileInfoView:this._tileInfoView}),this._updateBlockCacheRegistry()}detach(){this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._fetchQueue=this._tileStrategy=this._tileInfoView=null,(0,Le.ET)(this._blockCacheRegistryUrl,this._blockCacheRegistryId),this._blockCacheRegistryUrl=this._blockCacheRegistryId=null}acquireTile(e){const t=this.container.createTile(e);return this._updatingHandles.addPromise(this._enqueueTileFetch(t)),this.layerView.requestUpdate(),this._needBlockCacheUpdate=!0,this._globalUpdateRequested=this.layerView.hasTilingEffects||!this.useProgressiveUpdate,t}releaseTile(e){this._fetchQueue.abort(e.key.id),this.container.removeChild(e),e.once("detach",(()=>{e.destroy(),this.layerView.requestUpdate()})),this.layerView.requestUpdate()}createEmptyTilePixelBlock(e=null){const t=null==e||e.join(",")===this._tileInfoView.tileInfo.size.join(",");if(t&&null!=this._emptyTilePixelBlock)return this._emptyTilePixelBlock;e=e||this._tileInfoView.tileInfo.size;const[s,r]=e,i=new Ae.Z({width:s,height:r,pixels:[new Uint8Array(s*r)],mask:new Uint8Array(s*r),pixelType:"u8"});return t&&(this._emptyTilePixelBlock=i),i}_getBandIds(){if(!("rasterFunctionChain"in this.container)||!this.container.rasterFunctionChain)return this.layer.bandIds;const{bandIds:e,raster:t}=this.layer,s="rasterFunction"in t?t.rasterFunction.rawInputBandIds:null;return e?.length&&s?.length&&1!==t.rasterInfo.bandCount?e.map((e=>s[Math.min(e,s.length-1)])):e||s}updateRasterFunctionParameters(){}_fetchTile(e,t){const s=null!=t?t.signal:null,r=this.canUseWebGLForProcessing(),{layerView:i}=this,{tileInfo:a}=i,n=!a.isWrappable&&null!=(0,Be.ut)(i.view.spatialReference),o=r&&this.layer.raster.hasUniqueSourceStorageInfo,l={allowPartialFill:!0,datumTransformation:i.datumTransformation,interpolation:r?"nearest":this.layer.interpolation,registryId:this._blockCacheRegistryId,requestRawData:o,skipRasterFunction:"raster"===this.type&&null!=this.container.rasterFunctionChain,signal:s,srcResolution:this._srcResolutions[e.level],timeExtent:i.timeExtent,tileInfo:a,disableWrapAround:n};return this.fetchTile(e,l)}_getCacheSize(e){return e?40:0}_initializeTileInfo(){const{layerView:e}=this,t=e.view.spatialReference;if(this._canUseLayerLODs()){const{origin:s,lods:r}=this.layer.tileInfo,i=r.map((({scale:e})=>e)),a=Oe.Z.create({spatialReference:t,size:ve.i9,scales:i,origin:s});return e.set("tileInfo",a),void(this._srcResolutions=r.map((({resolution:e})=>({x:e,y:e}))))}const{scales:s,srcResolutions:r,isCustomTilingScheme:i}=(0,Be.vF)(this.layer.serviceRasterInfo,t,{tileSize:ve.i9,alignGlobalDatasetWithAGOL:!0,limitToSrcResolution:!1}),a=Oe.Z.create({spatialReference:t,size:ve.i9,scales:s}),n=0===a.origin.x,{xmin:o,ymax:l}=e.fullExtent;(n||i&&a.origin.x>o)&&(a.origin=new Ve.Z({x:o,y:l,spatialReference:t})),this._isCustomTilingScheme=i,e.set("tileInfo",a),this._srcResolutions=r??[]}_canUseLayerLODs(){const{layer:e,layerView:t}=this;if("Map"!==e.raster.tileType)return!1;const{lods:s}=e.tileInfo,r=t.view.constraints?.effectiveLODs;return r?.length===s.length&&r.every((({scale:e},t)=>Math.abs(e-s[t].scale)<.001))}_computeFetchConcurrency(){const{blockBoundary:e}=this.layer.serviceRasterInfo.storageInfo,t=e[e.length-1];return(t.maxCol-t.minCol+1)*(t.maxRow-t.minRow+1)>64?2:10}async _enqueueTileFetch(e,t){if(!this._fetchQueue.has(e.key.id)){try{const t=await this._fetchQueue.push(e.key),s=this._getBandIds();let r=!this.useProgressiveUpdate||this.layerView.hasTilingEffects&&!this._globalSymbolizerParams;if(this._globalUpdateRequested&&!this.layerView.moving&&0===this._fetchQueue.length){r=!1;try{await this._redrawImage(this._abortController?.signal)}catch(e){(0,a.D_)(e)&&i.Z.getLogger(this).error(e)}this._globalUpdateRequested=!1}!this.canUseWebGLForProcessing()&&"rasterVF"!==this.type||this.layerView.hasTilingEffects||null!=this._symbolizerParams||this._updateSymbolizerParams();const n=this._tileInfoView.getTileCoords(je,e.key),o=this._tileInfoView.getTileResolution(e.key);await this.updateTileSource(e,{source:t,symbolizerParams:this._symbolizerParams,globalSymbolizerParams:this._globalSymbolizerParams,suspended:r,bandIds:s,coords:n,resolution:o}),e.once("attach",(()=>this.layerView.requestUpdate())),this.container.addChild(e)}catch(e){(0,a.D_)(e)||i.Z.getLogger(this).error(e)}this.layerView.requestUpdate()}}async _redrawImage(e){if(0===this.container.children.length)return;await this.layer.updateRenderer(),this.layerView.hasTilingEffects?await this._updateGlobalSymbolizerParams(e):(this._updateSymbolizerParams(),this._globalSymbolizerParams=null);const t=this.container.children.map((async e=>this.updateTileSymbolizerParameters(e,{local:this._symbolizerParams,global:this._globalSymbolizerParams})));await Promise.allSettled(t),this.container.requestRender()}async _updateGlobalSymbolizerParams(e){const t={srcResolution:this._srcResolutions[this.previousLOD.level],registryId:this._blockCacheRegistryId,signal:e},s=await this.layer.fetchPixels(this.layerView.view.extent,this.layerView.view.width,this.layerView.view.height,t);if(!s?.pixelBlock)return;const{resolution:r}=this.previousLOD,i=this._getBandIds(),a=this.layer.symbolizer.generateWebGLParameters({pixelBlock:s.pixelBlock.extractBands(i),isGCS:this.layerView.view.spatialReference.isGeographic,resolution:{x:r,y:r},bandIds:i});!this.canUseWebGLForProcessing()&&a&&"stretch"===a.type&&this.layer.renderer&&"raster-stretch"===this.layer.renderer.type&&(a.factor=a.factor.map((e=>255*e)),a.outMin=Math.round(255*a.outMin),a.outMax=Math.round(255*a.outMax)),this._globalSymbolizerParams=a}_updateSymbolizerParams(){const{resolution:e}=this.previousLOD,t=this._getBandIds();this._symbolizerParams=this.layer.symbolizer.generateWebGLParameters({pixelBlock:null,isGCS:this.layerView.view.spatialReference.isGeographic,resolution:{x:e,y:e},bandIds:t})}_updateBlockCacheRegistry(e=!1){const{layer:t,layerView:s}=this,{raster:r}=t,{multidimensionalDefinition:i}=t.normalizeRasterFetchOptions({multidimensionalDefinition:t.multidimensionalDefinition,timeExtent:s.timeExtent}),a=r.rasterInfo.multidimensionalInfo?r.getSliceIndex(i):null,n=(0,Le.Rq)(r.rasterId,a);if(n!==this._blockCacheRegistryUrl){if(null!=this._blockCacheRegistryUrl&&(0,Le.ET)(this._blockCacheRegistryUrl,this._blockCacheRegistryId),this._blockCacheRegistryId=(0,Le.z2)(n,r.rasterInfo),e){const{view:e}=s,t=this._tileInfoView.getClosestInfoForScale(e.scale),i=this._srcResolutions[t.level];(0,Le.Vx)(n,this._blockCacheRegistryId,e.extent,e.resolution,i,r.ioConfig.sampling)}this._blockCacheRegistryUrl=n}}async doRefresh(){if(!this.attached||!this.previousLOD||this.layerView.suspended)return;await this.layer.updateRenderer(),this.layerView.hasTilingEffects||this._updateSymbolizerParams(),this._updateBlockCacheRegistry(!0),this._fetchQueue.reset();const e=[];this._globalUpdateRequested=this.layerView.hasTilingEffects||!this.useProgressiveUpdate,this._tileStrategy.refresh((t=>e.push(this._enqueueTileFetch(t)))),await this._updatingHandles.addPromise(Promise.allSettled(e))}};(0,r._)([(0,o.Cb)()],Ze.prototype,"_globalUpdateRequested",void 0),(0,r._)([(0,o.Cb)()],Ze.prototype,"attached",void 0),(0,r._)([(0,o.Cb)()],Ze.prototype,"container",void 0),(0,r._)([(0,o.Cb)()],Ze.prototype,"layer",void 0),(0,r._)([(0,o.Cb)()],Ze.prototype,"layerView",void 0),(0,r._)([(0,o.Cb)()],Ze.prototype,"type",void 0),(0,r._)([(0,o.Cb)()],Ze.prototype,"useWebGLForProcessing",null),(0,r._)([(0,o.Cb)()],Ze.prototype,"useProgressiveUpdate",null),(0,r._)([(0,o.Cb)()],Ze.prototype,"timeExtent",void 0),(0,r._)([(0,o.Cb)()],Ze.prototype,"updating",null),Ze=(0,r._)([(0,l.j)("esri.views.2d.layers.imagery.BaseImageryTileSubView2D")],Ze);var Ne=s(41214),We=s(88723);let He=class extends Ze{constructor(){super(...arguments),this.type="raster"}attach(){super.attach(),this.container=new Fe(this._tileInfoView),this.container.isCustomTilingScheme=this._isCustomTilingScheme,this.updateRasterFunctionParameters()}detach(){super.detach(),this.container.removeAllChildren(),this.container=null}canUseWebGLForProcessing(){const{symbolizer:e}=this.layer,t=e.lookup?.colormapLut?.indexedColormap,s=t&&t.length>this._maxIndexedColormapSize;return this.useWebGLForProcessing&&e.canRenderInWebGL&&!s&&!("majority"===this.layer.interpolation&&(0,Ne.JV)(this.layer))}fetchTile(e,t){return this.layer.fetchTile(e.level,e.row,e.col,t)}updateRasterFunctionParameters(){const{clips:e,view:t}=this.layerView;null!=this._geometry&&e.remove(this._geometry);const{raster:s,type:r}=this.layer;if("Function"===s.datasetFormat){const r=s.getClippingGeometry(t.spatialReference);if(r){const t=new We.Z({geometry:r});e.add(t),this._geometry=t}}const{container:i}=this;if("Function"!==s.datasetFormat||"wcs"===r)return i.rasterFunctionChain=null,i.children.forEach((e=>{const{bitmap:t}=e;t&&(t.suspended=!0,t.processed=!1,t.projected&&(t.invalidateTexture(),t.rasterTexture=null))})),void(this._rasterFunctionState="na");const a=this._rasterFunctionState,{rasterFunction:n,primaryRasters:o}=s,l=n.supportsGPU&&(!o||o.rasters.length<=1),u=l?n.flatWebGLFunctionChain:null,{renderer:c}=this.layer,h=!l||!u?.functions.length||"raster-stretch"===c?.type&&c.dynamicRangeAdjustment||!this.canUseWebGLForProcessing();i.rasterFunctionChain=h?null:u;const d=null==n?"na":i.rasterFunctionChain?"gpu":"cpu";i.children.forEach((e=>{const{bitmap:t}=e;t&&(t.suspended=a!==d,t.processed=!1,t.processedTexture=null)})),this._rasterFunctionState=d}async updateTileSource(e,t){const s=this._getBandIds(),r=this._getLayerInterpolation(),i=this.canUseWebGLForProcessing(),{source:a,globalSymbolizerParams:n,suspended:o,coords:l,resolution:u}=t,c=this.layerView.hasTilingEffects?n:t.symbolizerParams,{bitmap:h}=e;if([h.x,h.y]=l,h.resolution=u,null!=a?.pixelBlock){const e={extent:a.extent,pixelBlock:a.pixelBlock,srcPixelSize:a.srcTilePixelSize};if(h.rawPixelData=e,i)h.source=a.pixelBlock,h.isRendereredSource=!1;else{const t=await this.layer.applyRenderer(e,"stretch"===n?.type?n:void 0);h.source=t,h.isRendereredSource=!0}h.symbolizerParameters=i?c:null,h.transformGrid=i?a.transformGrid:null}else{const e=this.createEmptyTilePixelBlock();h.source=e,h.symbolizerParameters=i?c:null,h.transformGrid=null}h.bandIds=i?s:null,h.width=this._tileInfoView.tileInfo.size[0],h.height=this._tileInfoView.tileInfo.size[1],h.interpolation=r,h.suspended=o,h.invalidateTexture()}async updateTileSymbolizerParameters(e,t){const{local:s,global:r}=t,i=this._getBandIds(),a=this._getLayerInterpolation(),n=this.canUseWebGLForProcessing(),{bitmap:o}=e,{rawPixelData:l}=o;n||null==l?(o.isRendereredSource&&null!=l&&(o.source=l.pixelBlock),o.isRendereredSource=!1):(o.source=await this.layer.applyRenderer(l,"stretch"===r?.type?r:void 0),o.isRendereredSource=!0),o.symbolizerParameters=n?this.layerView.hasTilingEffects?r:s:null,o.bandIds=n?i:null,o.interpolation=a,o.suspended=!1}_getLayerInterpolation(){const{interpolation:e,renderer:t}=this.layer;if(!t)return e;const s=t.type;return"raster-colormap"===s||"unique-value"===s||"class-breaks"===s?"nearest":"raster-stretch"===t.type&&null!=t.colorRamp?"bilinear"===e||"cubic"===e?"bilinear":"nearest":e}};(0,r._)([(0,o.Cb)()],He.prototype,"container",void 0),(0,r._)([(0,o.Cb)()],He.prototype,"layer",void 0),(0,r._)([(0,o.Cb)()],He.prototype,"type",void 0),He=(0,r._)([(0,l.j)("esri.views.2d.layers.imagery.ImageryTileView2D")],He);const Qe=He;var Ye=s(7928),Xe=s(79195),Je=s(84557);class Ke extends Re.I{constructor(e,t,s,r,i,a,n=null){super(e,t,s,r,i,a),this.tileData=new Je.F(n),this.tileData.coordScale=[i,a],this.tileData.once("isReady",(()=>this.ready()))}destroy(){super.destroy(),this.tileData.destroy(),this.tileData=null,this.stage=null}set stencilRef(e){this.tileData.stencilRef=e}get stencilRef(){return this.tileData.stencilRef}_createTransforms(){return{displayViewScreenMat3:(0,g.Ue)(),tileMat3:(0,g.Ue)()}}setTransform(e){super.setTransform(e);const t=this.resolution/(e.resolution*e.pixelRatio),s=this.transforms.tileMat3,[r,i]=this.tileData.offset,a=[this.x+r*this.resolution,this.y-i*this.resolution],[n,o]=e.toScreenNoRotation([0,0],a),{symbolTileSize:l}=this.tileData.symbolizerParameters,u=Math.round((this.width-this.tileData.offset[0])/l)*l,c=Math.round((this.height-this.tileData.offset[1])/l)*l,h=u/this.rangeX*t,d=c/this.rangeY*t;(0,f.t8)(s,h,0,0,0,d,0,n,o,1),(0,f.Jp)(this.transforms.displayViewScreenMat3,e.displayViewMat3,s),this.tileData.transforms.displayViewScreenMat3=this.transforms.displayViewScreenMat3}onAttach(){this.tileData.stage=this.stage}onDetach(){this.tileData.stage=null}}class $e extends Ue.Z{constructor(){super(...arguments),this.isCustomTilingScheme=!1,this.symbolTypes=["triangle"]}createTile(e){const t=this._tileInfoView.getTileBounds((0,d.Ue)(),e),[s,r]=this._tileInfoView.tileInfo.size,i=this._tileInfoView.getTileResolution(e.level);return new Ke(e,i,t[0],t[3],s,r)}prepareRenderPasses(e){const t=e.registerRenderPass({name:"imagery (vf tile)",brushes:[Xe.Z],target:()=>this.children.map((e=>e.tileData)),drawPhase:Ie.jx.MAP});return[...super.prepareRenderPasses(e),t]}doRender(e){this.visible&&e.drawPhase===Ie.jx.MAP&&this.symbolTypes.forEach((t=>{e.renderPass=t,super.doRender(e)}))}}let et=class extends Ze{constructor(){super(...arguments),this._handle=null,this.type="rasterVF"}canUseWebGLForProcessing(){return!1}async fetchTile(e,t){t={...t,interpolation:"nearest",requestProjectedLocalDirections:!0};const s=await this.layer.fetchTile(e.level,e.row,e.col,t);return"vector-magdir"===this.layer.serviceRasterInfo.dataType&&s?.pixelBlock&&(s.pixelBlock=await this.layer.convertVectorFieldData(s.pixelBlock,t)),s}updateTileSource(e,t){const s=t.symbolizerParams,{tileData:r}=e;r.key=e.key,r.width=this._tileInfoView.tileInfo.size[0],r.height=this._tileInfoView.tileInfo.size[1];const{symbolTileSize:i}=s,{source:a}=t;if(r.offset=this._getTileSymbolOffset(r.key,i),null!=a?.pixelBlock){const e={extent:a.extent,pixelBlock:a.pixelBlock};r.rawPixelData=e,r.symbolizerParameters=s,r.source=this._sampleVectorFieldData(a.pixelBlock,s,r.offset)}else{const e=[Math.round((this._tileInfoView.tileInfo.size[0]-r.offset[0])/i),Math.round((this._tileInfoView.tileInfo.size[1]-r.offset[1])/i)],t=this.createEmptyTilePixelBlock(e);r.source=t,r.symbolizerParameters=s}return r.invalidateVAO(),Promise.resolve()}updateTileSymbolizerParameters(e,t){const s=t.local,{symbolTileSize:r}=s,{tileData:i}=e;i.offset=this._getTileSymbolOffset(i.key,r);const a=i.symbolizerParameters.symbolTileSize;i.symbolizerParameters=s;const n=i.rawPixelData?.pixelBlock;return null!=n&&a!==r&&(i.source=this._sampleVectorFieldData(n,i.symbolizerParameters,i.offset)),Promise.resolve()}attach(){super.attach(),this.container=new $e(this._tileInfoView),this.container.isCustomTilingScheme=this._isCustomTilingScheme,this._updateSymbolType(this.layer.renderer),this._handle=(0,n.YP)((()=>this.layer.renderer),(e=>this._updateSymbolType(e)))}detach(){super.detach(),this.container.removeAllChildren(),this._handle?.remove(),this._handle=null,this.container=null}_getTileSymbolOffset(e,t){const s=e.col*this._tileInfoView.tileInfo.size[0]%t,r=e.row*this._tileInfoView.tileInfo.size[1]%t;return[s>t/2?t-s:-s,r>t/2?t-r:-r]}_sampleVectorFieldData(e,t,s){const{symbolTileSize:r}=t;return(0,Ye.nb)(e,"vector-uv",r,s)}_updateSymbolType(e){"vector-field"===e.type&&(this.container.symbolTypes="wind-barb"===e.style?["scalar","triangle"]:"simple-scalar"===e.style?["scalar"]:["triangle"])}};(0,r._)([(0,o.Cb)()],et.prototype,"container",void 0),(0,r._)([(0,o.Cb)()],et.prototype,"layer",void 0),(0,r._)([(0,o.Cb)()],et.prototype,"type",void 0),et=(0,r._)([(0,l.j)("esri.views.2d.layers.imagery.VectorFieldTileView2D")],et);const tt=et;var st=s(80085),rt=s(70375),it=s(51599),at=s(59439);const nt=e=>{let t=class extends e{constructor(){super(...arguments),this._rasterFieldPrefix="Raster.",this.layer=null,this.view=null,this.tileInfo=null}get fullExtent(){return this._getfullExtent()}_getfullExtent(){return(0,Be.lK)(this.layer.serviceRasterInfo,this.view.spatialReference)}get hasTilingEffects(){return!!(this.layer.renderer&&"dynamicRangeAdjustment"in this.layer.renderer&&this.layer.renderer.dynamicRangeAdjustment)}get datumTransformation(){return(0,Be._D)(this.layer.fullExtent,this.view.spatialReference,!0)}supportsSpatialReference(e){return!!(0,Be.lK)(this.layer.serviceRasterInfo,e)}async fetchPopupFeaturesAtLocation(e,t){const{layer:s}=this;if(!e)throw new rt.Z("imageryTileLayerView:fetchPopupFeatures","Nothing to fetch without area",{layer:s});const{popupEnabled:r}=s,i=(0,at.V5)(s,t);if(!r||null==i)throw new rt.Z("imageryTileLayerView:fetchPopupFeatures","Missing required popupTemplate or popupEnabled",{popupEnabled:r,popupTemplate:i});const a=[],{value:n,magdirValue:o,processedValue:l}=await s.identify(e,{timeExtent:this.timeExtent,signal:t?.signal});let u="";if(n&&n.length){u="imagery-tile"===s.type&&s.hasStandardTime()&&null!=n[0]?n.map((e=>s.getStandardTimeValue(e))).join(", "):n.join(", ");const e={ObjectId:0},t="Raster.ServicePixelValue";e[t]="imagery-tile"===s.type&&"Function"===s.raster.datasetFormat?l?.join(", "):u,e[t+".Raw"]=u;const r=s.serviceRasterInfo.attributeTable;if(null!=r){const{fields:t,features:s}=r,i=t.find((({name:e})=>"value"===e.toLowerCase())),a=i?s.find((e=>String(e.attributes[i.name])===u)):null;if(a)for(const t in a.attributes)a.attributes.hasOwnProperty(t)&&(e[this._rasterFieldPrefix+t]=a.attributes[t])}const i=s.serviceRasterInfo.dataType;"vector-magdir"!==i&&"vector-uv"!==i||(e["Raster.Magnitude"]=o?.[0],e["Raster.Direction"]=o?.[1]);const c=new st.Z(this.fullExtent.clone(),null,e);c.layer=s,c.sourceLayer=c.layer,a.push(c)}return a}};return(0,r._)([(0,o.Cb)()],t.prototype,"layer",void 0),(0,r._)([(0,o.Cb)(it.qG)],t.prototype,"timeExtent",void 0),(0,r._)([(0,o.Cb)()],t.prototype,"view",void 0),(0,r._)([(0,o.Cb)()],t.prototype,"fullExtent",null),(0,r._)([(0,o.Cb)()],t.prototype,"tileInfo",void 0),(0,r._)([(0,o.Cb)({readOnly:!0})],t.prototype,"hasTilingEffects",null),(0,r._)([(0,o.Cb)()],t.prototype,"datumTransformation",null),t=(0,r._)([(0,l.j)("esri.views.layers.ImageryTileLayerView")],t),t};var ot=s(26216),lt=s(55068);let ut=class extends(nt((0,lt.Z)((0,h.y)(ot.Z)))){constructor(){super(...arguments),this._useWebGLForProcessing=!0,this._useProgressiveUpdate=!0,this.subview=null}get useWebGLForProcessing(){return this._useWebGLForProcessing}set useWebGLForProcessing(e){this._useWebGLForProcessing=e,this.subview&&"useWebGLForProcessing"in this.subview&&(this.subview.useWebGLForProcessing=e)}get useProgressiveUpdate(){return this._useWebGLForProcessing}set useProgressiveUpdate(e){this._useProgressiveUpdate=e,this.subview&&"useProgressiveUpdate"in this.subview&&(this.subview.useProgressiveUpdate=e)}get displayParameters(){const{layer:e}=this,t=this._get("displayParameters");return e.renderer?{bandIds:e.bandIds,renderer:e.renderer,interpolation:e.interpolation,multidimensionalDefinition:e.multidimensionalDefinition,rasterFunction:"imagery-tile"===e.type?e.rasterFunction:null}:t}update(e){this.subview?.update(e),this.notifyChange("updating")}isUpdating(){return!this.subview||this.subview.updating}attach(){this.layer.increaseRasterJobHandlerUsage(),this._updateSubview(),this.addAttachHandles([(0,n.YP)((()=>this.displayParameters),((e,t)=>{const s=e.interpolation!==t?.interpolation&&("majority"===e.interpolation||"majority"===t?.interpolation)&&(0,Ne.JV)(this.layer),r=e.renderer!==t?.renderer&&this._getSubviewType(t?.renderer)!==this._getSubviewType(e.renderer);r&&this._updateSubview();const n=e.multidimensionalDefinition!==t?.multidimensionalDefinition,o=e.rasterFunction!==t?.rasterFunction,l=o&&!this._useWebGLForProcessing,u=n||s||r||l;this.subview.redrawOrRefetch({refetch:u,reprocess:o}).catch((e=>{(0,a.D_)(e)||i.Z.getLogger(this).error(e)})),this.notifyChange("updating")})),(0,n.YP)((()=>this.layer.multidimensionalSubset??null),((e,t)=>{const{multidimensionalDefinition:s}=this.layer;null!=s&&(0,u.nb)(s,e)!==(0,u.nb)(s,t)&&(this.subview.redrawOrRefetch({refetch:!0}).catch((e=>{(0,a.D_)(e)||i.Z.getLogger(this).error(e)})),this.notifyChange("updating"))}),n.Z_),(0,n.YP)((()=>this.timeExtent),(()=>{this.subview.timeExtent=this.timeExtent,this.subview.redrawOrRefetch({refetch:!0}).catch((e=>{(0,a.D_)(e)||i.Z.getLogger(this).error(e)}))}),n.nn)])}detach(){this.layer.decreaseRasterJobHandlerUsage(),this._detachSubview(this.subview),this.subview?.destroy(),this.subview=null}moveStart(){this.requestUpdate()}viewChange(){this.requestUpdate()}moveEnd(){this.subview.moveEnd()}doRefresh(){return this.subview?this.subview.doRefresh():Promise.resolve()}_updateSubview(){const{renderer:e}=this.layer;if(!e)return;const t=this._getSubviewType(e);if(this.subview){if(this.subview.type===t)return void this._attachSubview(this.subview);this._detachSubview(this.subview),this.subview?.destroy(),this.subview=null}const{layer:s}=this;let r;if(r="rasterVF"===t?new tt({layer:s,layerView:this}):"flow"===t?new c.Z({layer:s,layerView:this}):new Qe({layer:s,layerView:this}),"useWebGLForProcessing"in r&&(r.useWebGLForProcessing=this._useWebGLForProcessing),"useProgressiveUpdate"in r&&(r.useProgressiveUpdate=this._useProgressiveUpdate),"previousLOD"in r){const{subview:e}=this;r.previousLOD=e&&"previousLOD"in e?e.previousLOD:null}this._attachSubview(r),this.subview=r,this.requestUpdate()}_attachSubview(e){e&&!e.attached&&(e.attach(),e.attached=!0,this.container.addChildAt(e.container,0))}_detachSubview(e){e?.attached&&(this.container.removeChild(e.container),e.detach(),e.attached=!1)}_getSubviewType(e){const t=e?.type;return"vector-field"===t?"rasterVF":"flow"===t?"flow":"raster"}};(0,r._)([(0,o.Cb)()],ut.prototype,"subview",void 0),(0,r._)([(0,o.Cb)()],ut.prototype,"useWebGLForProcessing",null),(0,r._)([(0,o.Cb)()],ut.prototype,"useProgressiveUpdate",null),(0,r._)([(0,o.Cb)({readOnly:!0})],ut.prototype,"displayParameters",null),ut=(0,r._)([(0,l.j)("esri.views.2d.layers.ImageryTileLayerView2D")],ut);const ct=ut},66878:function(e,t,s){s.d(t,{y:function(){return b}});var r=s(36663),i=s(6865),a=s(58811),n=s(70375),o=s(76868),l=s(81977),u=(s(39994),s(13802),s(4157),s(40266)),c=s(68577),h=s(10530),d=s(98114),p=s(55755),m=s(88723),f=s(96294);let g=class extends f.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,r._)([(0,l.Cb)({type:[[[Number]]],json:{write:!0}})],g.prototype,"path",void 0),g=(0,r._)([(0,u.j)("esri.views.layers.support.Path")],g);const _=g,y=i.Z.ofType({key:"type",base:null,typeMap:{rect:p.Z,path:_,geometry:m.Z}}),b=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new y,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new n.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new h.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,o.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),o.tX),(0,o.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),o.tX),(0,o.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),o.tX),(0,o.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),o.tX),(0,o.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),o.tX),(0,o.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),o.tX),(0,o.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),o.tX),(0,o.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),o.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:s,maxScale:r}=t;return(0,c.o2)(e,s,r)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,s=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),s&&(e.outsideScaleRange=s),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,r._)([(0,l.Cb)()],t.prototype,"attached",void 0),(0,r._)([(0,l.Cb)({type:y,set(e){const t=(0,a.Z)(e,this._get("clips"),y);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,r._)([(0,l.Cb)()],t.prototype,"container",void 0),(0,r._)([(0,l.Cb)()],t.prototype,"moving",void 0),(0,r._)([(0,l.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,r._)([(0,l.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,r._)([(0,l.Cb)()],t.prototype,"updateRequested",void 0),(0,r._)([(0,l.Cb)()],t.prototype,"updateSuspended",null),(0,r._)([(0,l.Cb)()],t.prototype,"updating",null),(0,r._)([(0,l.Cb)()],t.prototype,"view",void 0),(0,r._)([(0,l.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,r._)([(0,l.Cb)({type:d.Z})],t.prototype,"highlightOptions",void 0),t=(0,r._)([(0,u.j)("esri.views.2d.layers.LayerView2D")],t),t}},26216:function(e,t,s){s.d(t,{Z:function(){return m}});var r=s(36663),i=s(74396),a=s(31355),n=s(86618),o=s(13802),l=s(61681),u=s(64189),c=s(81977),h=(s(39994),s(4157),s(40266)),d=s(98940);let p=class extends((0,n.IG)((0,u.v)(a.Z.EventedMixin(i.Z)))){constructor(e){super(e),this._updatingHandles=new d.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",s=this.layer?.title||"no title";o.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${s}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,l.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,r._)([(0,c.Cb)()],p.prototype,"fullOpacity",null),(0,r._)([(0,c.Cb)()],p.prototype,"layer",void 0),(0,r._)([(0,c.Cb)()],p.prototype,"parent",void 0),(0,r._)([(0,c.Cb)({readOnly:!0})],p.prototype,"suspended",null),(0,r._)([(0,c.Cb)({readOnly:!0})],p.prototype,"suspendInfo",null),(0,r._)([(0,c.Cb)({readOnly:!0})],p.prototype,"legendEnabled",null),(0,r._)([(0,c.Cb)({type:Boolean,readOnly:!0})],p.prototype,"updating",null),(0,r._)([(0,c.Cb)({readOnly:!0})],p.prototype,"updatingProgress",null),(0,r._)([(0,c.Cb)()],p.prototype,"visible",null),(0,r._)([(0,c.Cb)()],p.prototype,"view",void 0),p=(0,r._)([(0,h.j)("esri.views.layers.LayerView")],p);const m=p},55068:function(e,t,s){s.d(t,{Z:function(){return l}});var r=s(36663),i=s(13802),a=s(78668),n=s(76868),o=(s(39994),s(4157),s(70375),s(40266));const l=e=>{let t=class extends e{initialize(){this.addHandles((0,n.on)((()=>this.layer),"refresh",(e=>{this.doRefresh(e.dataChanged).catch((e=>{(0,a.D_)(e)||i.Z.getLogger(this).error(e)}))})),"RefreshableLayerView")}};return t=(0,r._)([(0,o.j)("esri.layers.mixins.RefreshableLayerView")],t),t}},88723:function(e,t,s){s.d(t,{Z:function(){return m}});var r,i=s(36663),a=(s(91957),s(81977)),n=(s(39994),s(13802),s(4157),s(40266)),o=s(20031),l=s(53736),u=s(96294),c=s(91772),h=s(89542);const d={base:o.Z,key:"type",typeMap:{extent:c.Z,polygon:h.Z}};let p=r=class extends u.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new r({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,i._)([(0,a.Cb)({types:d,json:{read:l.im,write:!0}})],p.prototype,"geometry",void 0),p=r=(0,i._)([(0,n.j)("esri.views.layers.support.Geometry")],p);const m=p},10054:function(e,t,s){s.d(t,{Br:function(){return l},Fm:function(){return m},N9:function(){return g},RA:function(){return _},Tc:function(){return c},Ue:function(){return h},iC:function(){return u},s9:function(){return o},v:function(){return f},xW:function(){return p},zS:function(){return d}});var r=s(84164),i=s(91907),a=s(71449),n=s(80479);function o(e,t,s="nearest",r=!1){const o=!(r&&"u8"===t.pixelType),l=o?i.Br.FLOAT:i.Br.UNSIGNED_BYTE,u=null==t.pixels||0===t.pixels.length?null:o?t.getAsRGBAFloat():t.getAsRGBA(),c=e.capabilities.textureFloat?.textureFloatLinear,h=new n.X;return h.width=t.width,h.height=t.height,h.internalFormat=o?i.lP.RGBA32F:i.VI.RGBA,h.samplingMode=!c||"bilinear"!==s&&"cubic"!==s?i.cw.NEAREST:i.cw.LINEAR,h.dataType=l,h.wrapMode=i.e8.CLAMP_TO_EDGE,new a.x(e,h,u)}function l(e,t){const{spacing:s,offsets:r,coefficients:o,size:[l,u]}=t,c=s[0]>1,h=new n.X;h.width=c?4*l:l,h.height=u,h.internalFormat=i.lP.RGBA32F,h.dataType=i.Br.FLOAT,h.samplingMode=i.cw.NEAREST,h.wrapMode=i.e8.CLAMP_TO_EDGE;const d=new Float32Array(c?l*u*16:2*r.length);if(c&&null!=o)for(let e=0,t=0;e{const a=t.get(r)||t.get(r+"[0]");a&&function(e,t,s,r){if(null===r||null==s)return!1;const{info:a}=r;switch(a.type){case i.Se.FLOAT:a.size>1?e.setUniform1fv(t,s):e.setUniform1f(t,s);break;case i.Se.FLOAT_VEC2:e.setUniform2fv(t,s);break;case i.Se.FLOAT_VEC3:e.setUniform3fv(t,s);break;case i.Se.FLOAT_VEC4:e.setUniform4fv(t,s);break;case i.Se.FLOAT_MAT3:e.setUniformMatrix3fv(t,s);break;case i.Se.FLOAT_MAT4:e.setUniformMatrix4fv(t,s);break;case i.Se.INT:a.size>1?e.setUniform1iv(t,s):e.setUniform1i(t,s);break;case i.Se.BOOL:e.setUniform1i(t,s?1:0);break;case i.Se.INT_VEC2:case i.Se.BOOL_VEC2:e.setUniform2iv(t,s);break;case i.Se.INT_VEC3:case i.Se.BOOL_VEC3:e.setUniform3iv(t,s);break;case i.Se.INT_VEC4:case i.Se.BOOL_VEC4:e.setUniform4iv(t,s);break;default:return!1}}(e,r,s[r],a)}))}function _(e,t,s,r){s.length===r.length&&(r.some((e=>null==e))||s.some((e=>null==e))||s.forEach(((s,i)=>{t.setUniform1i(s,i),e.bindTexture(r[i],i)})))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4168.2d26b88f8b7ba5db3b63.js b/docs/sentinel1-explorer/4168.2d26b88f8b7ba5db3b63.js new file mode 100644 index 00000000..b7dbaf9f --- /dev/null +++ b/docs/sentinel1-explorer/4168.2d26b88f8b7ba5db3b63.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4168],{4168:function(e,r,u){u.r(r),u.d(r,{build:function(){return n.b},getRadius:function(){return n.g}});u(36531),u(84164),u(55208),u(31227),u(77334),u(93072),u(24603),u(23410),u(3961),u(15176);var n=u(91800)}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4287.bd12634bb15599263706.js b/docs/sentinel1-explorer/4287.bd12634bb15599263706.js new file mode 100644 index 00000000..86bcc7f8 --- /dev/null +++ b/docs/sentinel1-explorer/4287.bd12634bb15599263706.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4287],{84287:function(e,_,r){r.r(_),r.d(_,{default:function(){return d}});const d={_decimalSeparator:".",_thousandSeparator:",",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"ค.ศ.",_era_bc:"ก่อน ค.ศ.",A:"a",P:"p",AM:"ก่อนเที่ยง",PM:"หลังเที่ยง","A.M.":"ก่อนเที่ยง","P.M.":"หลังเที่ยง",January:"มกราคม",February:"กุมภาพันธ์",March:"มีนาคม",April:"เมษายน",May:"พฤษภาคม",June:"มิถุนายน",July:"กรกฎาคม",August:"สิงหาคม",September:"กันยายน",October:"ตุลาคม",November:"พฤศจิกายน",December:"ธันวาคม",Jan:"ม.ค.",Feb:"ก.พ.",Mar:"มี.ค.",Apr:"เม.ย.","May(short)":"พ.ค.",Jun:"มิ.ย.",Jul:"ก.ค.",Aug:"ส.ค.",Sep:"ก.ย.",Oct:"ต.ค.",Nov:"พ.ย.",Dec:"ธ.ค.",Sunday:"วันอาทิตย์",Monday:"วันจันทร์",Tuesday:"วันอังคาร",Wednesday:"วันพุธ",Thursday:"วันพฤหัสบดี",Friday:"วันศุกร์",Saturday:"วันเสาร์",Sun:"อา.",Mon:"จ.",Tue:"อ.",Wed:"พ.",Thu:"พฤ.",Fri:"ศ.",Sat:"ส.",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"ขยาย",Play:"เล่น",Stop:"หยุด",Legend:"คำอธิบายสัญลักษณ์","Press ENTER to toggle":"",Loading:"กำลังโหลด",Home:"หน้าหลัก",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"พิมพ์",Image:"รูปภาพ",Data:"ข้อมูล",Print:"พิมพ์","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"จาก %1 ถึง %2","From %1":"จาก %1","To %1":"ถึง %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4323.d7b03b6d1976aa6abe9e.js b/docs/sentinel1-explorer/4323.d7b03b6d1976aa6abe9e.js new file mode 100644 index 00000000..f9f92e9c --- /dev/null +++ b/docs/sentinel1-explorer/4323.d7b03b6d1976aa6abe9e.js @@ -0,0 +1,2 @@ +/*! For license information please see 4323.d7b03b6d1976aa6abe9e.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4323],{44323:function(e,a,i){i.r(a),i.d(a,{CalciteLoader:function(){return r},defineCustomElement:function(){return n}});var t=i(92708);const r=t.L,n=t.d},96472:function(e,a,i){i.d(a,{g:function(){return t}});const t=()=>[2,1,1,1,3].map((e=>{let a="";for(let i=0;i{if("calcite-loader"===e)customElements.get(e)||customElements.define(e,n)}))}o()}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4323.d7b03b6d1976aa6abe9e.js.LICENSE.txt b/docs/sentinel1-explorer/4323.d7b03b6d1976aa6abe9e.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/4323.d7b03b6d1976aa6abe9e.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/4325.3b152c5d6a9042aa58ed.js b/docs/sentinel1-explorer/4325.3b152c5d6a9042aa58ed.js new file mode 100644 index 00000000..4a2785ef --- /dev/null +++ b/docs/sentinel1-explorer/4325.3b152c5d6a9042aa58ed.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4325],{74325:function(e,t,r){r.d(t,{isAnimatedPNG:function(){return c},parseApng:function(){return h}});var n,i=r(58340),s=r(78668),a=r(12928),o={exports:{}};n=function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}return r.m=e,r.c=t,r.p="",r(0)}([function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.isNotPNG=function(e){return e===s},t.isNotAPNG=function(e){return e===a},t.default=function(e){var t=new Uint8Array(e);if(Array.prototype.some.call(o,(function(e,r){return e!==t[r]})))return s;var r=!1;if(u(t,(function(e){return!(r="acTL"===e)})),!r)return a;var n=[],h=[],f=null,m=null,v=0,d=new i.APNG;if(u(t,(function(e,t,r,s){var a=new DataView(t.buffer);switch(e){case"IHDR":f=t.subarray(r+8,r+8+s),d.width=a.getUint32(r+8),d.height=a.getUint32(r+12);break;case"acTL":d.numPlays=a.getUint32(r+8+4);break;case"fcTL":m&&(d.frames.push(m),v++),(m=new i.Frame).width=a.getUint32(r+8+4),m.height=a.getUint32(r+8+8),m.left=a.getUint32(r+8+12),m.top=a.getUint32(r+8+16);var o=a.getUint16(r+8+20),u=a.getUint16(r+8+22);0===u&&(u=100),m.delay=1e3*o/u,m.delay<=10&&(m.delay=100),d.playTime+=m.delay,m.disposeOp=a.getUint8(r+8+24),m.blendOp=a.getUint8(r+8+25),m.dataParts=[],0===v&&2===m.disposeOp&&(m.disposeOp=1);break;case"fdAT":m&&m.dataParts.push(t.subarray(r+8+4,r+8+s));break;case"IDAT":m&&m.dataParts.push(t.subarray(r+8,r+8+s));break;case"IEND":h.push(l(t,r,12+s));break;default:n.push(l(t,r,12+s))}})),m&&d.frames.push(m),0==d.frames.length)return a;var _=new Blob(n),g=new Blob(h);return d.frames.forEach((function(e){var t=[];t.push(o),f.set(p(e.width),0),f.set(p(e.height),4),t.push(c("IHDR",f)),t.push(_),e.dataParts.forEach((function(e){return t.push(c("IDAT",e))})),t.push(g),e.imageData=new Blob(t,{type:"image/png"}),delete e.dataParts,t=null})),d};var n=function(e){return e&&e.__esModule?e:{default:e}}(r(1)),i=r(2);var s=new Error("Not a PNG"),a=new Error("Not an animated PNG");var o=new Uint8Array([137,80,78,71,13,10,26,10]);function u(e,t){var r=new DataView(e.buffer),n=8,i=void 0,s=void 0,a=void 0;do{s=r.getUint32(n),a=t(i=h(e,n+4,4),e,n,s),n+=12+s}while(!1!==a&&"IEND"!=i&&n>>24&255,e>>>16&255,e>>>8&255,255&e])}},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=-1,i=t,s=t+(arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length-t);i>>8^r[255&(n^e[i])];return-1^n};for(var r=new Uint32Array(256),n=0;n<256;n++){for(var i=n,s=0;s<8;s++)i=0!=(1&i)?3988292384^i>>>1:i>>>1;r[n]=i}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.Frame=t.APNG=void 0;var n=function(){function e(e,t){for(var r=0;r1&&void 0!==arguments[1]&&arguments[1];return this.createImages().then((function(){return new i.default(t,e,r)}))}}]),e}(),t.Frame=function(){function e(){s(this,e),this.left=0,this.top=0,this.width=0,this.height=0,this.delay=0,this.disposeOp=0,this.blendOp=0,this.imageData=null,this.imageElement=null}return n(e,[{key:"createImage",value:function(){var e=this;return this.imageElement?Promise.resolve():new Promise((function(t,r){var n=URL.createObjectURL(e.imageData);e.imageElement=document.createElement("img"),e.imageElement.onload=function(){URL.revokeObjectURL(n),t()},e.imageElement.onerror=function(){URL.revokeObjectURL(n),e.imageElement=null,r(new Error("Image creation error"))},e.imageElement.src=n}))}}]),e}()},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;r=this._apng.numPlays&&(this._ended=!0,this._paused=!0)),this._prevFrame&&1==this._prevFrame.disposeOp?this.context.clearRect(this._prevFrame.left,this._prevFrame.top,this._prevFrame.width,this._prevFrame.height):this._prevFrame&&2==this._prevFrame.disposeOp&&this.context.putImageData(this._prevFrameData,this._prevFrame.left,this._prevFrame.top);var e=this.currentFrame;this._prevFrame=e,this._prevFrameData=null,2==e.disposeOp&&(this._prevFrameData=this.context.getImageData(e.left,e.top,e.width,e.height)),0==e.blendOp&&this.context.clearRect(e.left,e.top,e.width,e.height),this.context.drawImage(e.imageElement,e.left,e.top),this.emit("frame",this._currentFrameNumber),this._ended&&this.emit("end")}},{key:"play",value:function(){var e=this;this.emit("play"),this._ended&&this.stop(),this._paused=!1;var t=performance.now()+this.currentFrame.delay/this.playbackRate;requestAnimationFrame((function r(n){if(!e._ended&&!e._paused){if(n>=t){for(;n-t>=e._apng.playTime/e.playbackRate;)t+=e._apng.playTime/e.playbackRate,e._numPlays++;do{e.renderNextFrame(),t+=e.currentFrame.delay/e.playbackRate}while(!e._ended&&n>t)}requestAnimationFrame(r)}}))}},{key:"pause",value:function(){this._paused||(this.emit("pause"),this._paused=!0)}},{key:"stop",value:function(){this.emit("stop"),this._numPlays=0,this._ended=!1,this._paused=!0,this._currentFrameNumber=-1,this.context.clearRect(0,0,this._apng.width,this._apng.height),this.renderNextFrame()}},{key:"currentFrameNumber",get:function(){return this._currentFrameNumber}},{key:"currentFrame",get:function(){return this._apng.frames[this._currentFrameNumber]}},{key:"paused",get:function(){return this._paused}},{key:"ended",get:function(){return this._ended}}]),t}(function(e){return e&&e.__esModule?e:{default:e}}(r(4)).default);t.default=i},function(e,t){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(e){return"function"==typeof e}function i(e){return"object"==typeof e&&null!==e}function s(e){return void 0===e}e.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!function(e){return"number"==typeof e}(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,r,a,o,u,h;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}if(s(r=this._events[e]))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:o=Array.prototype.slice.call(arguments,1),r.apply(this,o)}else if(i(r))for(o=Array.prototype.slice.call(arguments,1),a=(h=r.slice()).length,u=0;u0&&this._events[e].length>a&&(this._events[e].warned=!0,console.trace),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){if(!n(t))throw TypeError("listener must be a function");var r=!1;function i(){this.removeListener(e,i),r||(r=!0,t.apply(this,arguments))}return i.listener=t,this.on(e,i),this},r.prototype.removeListener=function(e,t){var r,s,a,o;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(a=(r=this._events[e]).length,s=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(r)){for(o=a;o-- >0;)if(r[o]===t||r[o].listener&&r[o].listener===t){s=o;break}if(s<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(s,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n(r=this._events[e]))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){return this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(n(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}}])},o.exports=n();const u=(0,i.g)(o.exports);async function h(e,t){const r=u(e);if(r instanceof Error)throw r;await r.createImages(),(0,s.k_)(t);const{frames:n,width:i,height:o}=r,h=document.createElement("canvas");h.width=i,h.height=o;const l=h.getContext("2d",{willReadFrequently:!0}),c=[],p=[];let f=0;for(const e of n){const t=(0,a.HA)(e.delay||100);p.push(t),f+=t;const r=e.imageElement;0===e.blendOp?l.globalCompositeOperation="copy":l.globalCompositeOperation="source-over";const n=2===e.disposeOp?l.getImageData(e.left,e.top,e.width,e.height):void 0;l.drawImage(r,e.left,e.top);const s=l.getImageData(0,0,i,o);c.push(s),0===e.disposeOp||(1===e.disposeOp?l.clearRect(e.left,e.top,e.width,e.height):2===e.disposeOp&&l.putImageData(n,e.left,e.top))}return{frameCount:n.length,duration:f,frameDurations:p,getFrame:e=>c[e],width:i,height:o}}const l=[137,80,78,71,13,10,26,10];function c(e){if(!function(e){const t=new Uint8Array(e);return!l.some(((e,r)=>e!==t[r]))}(e))return!1;const t=new DataView(e),r=new Uint8Array(e);let n,i=8;do{const e=t.getUint32(i);if(n=String.fromCharCode.apply(String,Array.prototype.slice.call(r.subarray(i+4,i+8))),"acTL"===n)return!0;i+=12+e}while("IEND"!==n&&inew Array(e).fill(t,0,e))))}function h(e){return e.reduce(((e,t)=>e.concat(Array.isArray(t)?h(t):t)),[])}const w=[0,1,2,3].concat(...p([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function x(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.build_tree=function(n){const i=e.dyn_tree,a=e.stat_desc.static_tree,o=e.stat_desc.elems;let c,l,d,f=-1;for(n.heap_len=0,n.heap_max=s,c=0;c=1;c--)n.pqdownheap(i,c);d=o;do{c=n.heap[1],n.heap[1]=n.heap[n.heap_len--],n.pqdownheap(i,1),l=n.heap[1],n.heap[--n.heap_max]=c,n.heap[--n.heap_max]=l,i[2*d]=i[2*c]+i[2*l],n.depth[d]=Math.max(n.depth[c],n.depth[l])+1,i[2*c+1]=i[2*l+1]=d,n.heap[1]=d++,n.pqdownheap(i,1)}while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],function(t){const n=e.dyn_tree,i=e.stat_desc.static_tree,a=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,c=e.stat_desc.max_length;let l,d,f,u,m,p,h=0;for(u=0;u<=r;u++)t.bl_count[u]=0;for(n[2*t.heap[t.heap_max]+1]=0,l=t.heap_max+1;lc&&(u=c,h++),n[2*d+1]=u,d>e.max_code||(t.bl_count[u]++,m=0,d>=o&&(m=a[d-o]),p=n[2*d],t.opt_len+=p*(u+m),i&&(t.static_len+=p*(i[2*d+1]+m)));if(0!==h){do{for(u=c-1;0===t.bl_count[u];)u--;t.bl_count[u]--,t.bl_count[u+1]+=2,t.bl_count[c]--,h-=2}while(h>0);for(u=c;0!==u;u--)for(d=t.bl_count[u];0!==d;)f=t.heap[--l],f>e.max_code||(n[2*f+1]!=u&&(t.opt_len+=(u-n[2*f+1])*n[2*f],n[2*f+1]=u),d--)}}(n),function(e,n,i){const s=[];let a,o,c,l=0;for(a=1;a<=r;a++)s[a]=l=l+i[a-1]<<1;for(o=0;o<=n;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))}(i,e.max_code,n.bl_count)}}function g(e,t,n,r,i){const s=this;s.static_tree=e,s.extra_bits=t,s.extra_base=n,s.elems=r,s.max_length=i}x._length_code=[0,1,2,3,4,5,6,7].concat(...p([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),x.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],x.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],x.d_code=function(e){return e<256?w[e]:w[256+(e>>>7)]},x.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],x.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],x.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const v=p([[144,8],[112,9],[24,7],[8,8]]);g.static_ltree=h([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,v[t]])));const b=p([[30,5]]);g.static_dtree=h([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,b[t]]))),g.static_l_desc=new g(g.static_ltree,x.extra_lbits,257,286,r),g.static_d_desc=new g(g.static_dtree,x.extra_dbits,0,30,r),g.static_bl_desc=new g(null,x.extra_blbits,0,19,7);function _(e,t,n,r,i){const s=this;s.good_length=e,s.max_lazy=t,s.nice_length=n,s.max_chain=r,s.func=i}const y=[new _(0,0,0,0,0),new _(4,4,8,4,1),new _(4,5,16,8,1),new _(4,6,32,32,1),new _(4,4,16,16,2),new _(8,16,32,32,2),new _(8,16,128,128,2),new _(8,32,128,256,2),new _(32,128,258,1024,2),new _(32,258,258,4096,2)],k=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],S=113,z=666,A=258,C=262;function W(e,t,n,r){const i=e[2*t],s=e[2*n];return i>>8&255)}function fe(e,t){let n;const r=t;ae>16-r?(n=e,se|=n<>>16-ae,ae+=r-16):(se|=e<=8&&(le(255&se),se>>>=8,ae-=8)}function he(t,n){let r,s,a;if(e.dist_buf[ne]=t,e.lc_buf[ne]=255&n,ne++,0===t?X[2*n]++:(re++,t--,X[2*(x._length_code[n]+i+1)]++,J[2*x.d_code(t)]++),0==(8191&ne)&&N>2){for(r=8*ne,s=I-F,a=0;a<30;a++)r+=J[2*a]*(5+x.extra_dbits[a]);if(r>>>=3,re8?de(se):ae>0&&le(255&se),se=0,ae=0}function ge(t,n,r){fe(0+(r?1:0),3),function(t,n,r){xe(),ie=8,r&&(de(n),de(~n)),e.pending_buf.set(v.subarray(t,t+n),e.pending),e.pending+=n}(t,n,!0)}function ve(t,n,r){let i,s,a=0;N>0?(Q.build_tree(e),$.build_tree(e),a=function(){let t;for(ce(X,Q.max_code),ce(J,$.max_code),ee.build_tree(e),t=18;t>=3&&0===Y[2*x.bl_order[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(),i=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=i&&(i=s)):i=s=n+5,n+4<=i&&-1!=t?ge(t,n,r):s==i?(fe(2+(r?1:0),3),we(g.static_ltree,g.static_dtree)):(fe(4+(r?1:0),3),function(e,t,n){let r;for(fe(e-257,5),fe(t-1,5),fe(n-4,4),r=0;r=0?F:-1,I-F,e),F=I,t.flush_pending()}function _e(){let e,n,r,i;do{if(i=b-R-I,0===i&&0===I&&0===R)i=p;else if(-1==i)i--;else if(I>=p+p-C){v.set(v.subarray(p,p+p),0),M-=p,I-=p,F-=p,e=U,r=e;do{n=65535&j[--r],j[r]=n>=p?n-p:0}while(0!=--e);e=p,r=e;do{n=65535&_[--r],_[r]=n>=p?n-p:0}while(0!=--e);i+=p}if(0===t.avail_in)return;e=t.read_buf(v,I+R,i),R+=e,R>=3&&(q=255&v[I],q=(q<p-C?I-(p-C):0;let o=Z;const c=w,l=I+A;let d=v[i+s-1],f=v[i+s];H>=G&&(r>>=2),o>R&&(o=R);do{if(t=e,v[t+s]==f&&v[t+s-1]==d&&v[t]==v[i]&&v[++t]==v[i+1]){i+=2,t++;do{}while(v[++i]==v[++t]&&v[++i]==v[++t]&&v[++i]==v[++t]&&v[++i]==v[++t]&&v[++i]==v[++t]&&v[++i]==v[++t]&&v[++i]==v[++t]&&v[++i]==v[++t]&&is){if(M=e,s=n,n>=o)break;d=v[i+s-1],f=v[i+s]}}}while((e=65535&_[e&c])>a&&0!=--r);return s<=R?s:R}function ke(t){return t.total_in=t.total_out=0,t.msg=null,e.pending=0,e.pending_out=0,n=S,s=c,Q.dyn_tree=X,Q.stat_desc=g.static_l_desc,$.dyn_tree=J,$.stat_desc=g.static_d_desc,ee.dyn_tree=Y,ee.stat_desc=g.static_bl_desc,se=0,ae=0,ie=8,oe(),function(){b=2*p,j[U-1]=0;for(let e=0;e9||8!=s||i<9||i>15||n<0||n>9||c<0||c>2?u:(t.dstate=e,h=i,p=1<9||n<0||n>2?u:(y[N].func!=y[t].func&&0!==e.total_in&&(r=e.deflate(1)),N!=t&&(N=t,B=y[N].max_lazy,G=y[N].good_length,Z=y[N].nice_length,V=y[N].max_chain),K=n,r)},e.deflateSetDictionary=function(e,t,r){let i,s=r,a=0;if(!t||42!=n)return u;if(s<3)return d;for(s>p-C&&(s=p-C,a=r-s),v.set(t.subarray(a,a+s),0),I=s,F=s,q=255&v[0],q=(q<l||o<0)return u;if(!i.next_out||!i.next_in&&0!==i.avail_in||n==z&&o!=l)return i.msg=k[2-u],u;if(0===i.avail_out)return i.msg=k[7],m;var V;if(t=i,W=s,s=o,42==n&&(b=8+(h-8<<4)<<8,A=(N-1&255)>>1,A>3&&(A=3),b|=A<<6,0!==I&&(b|=32),b+=31-b%31,n=S,le((V=b)>>8&255),le(255&V)),0!==e.pending){if(t.flush_pending(),0===t.avail_out)return s=-1,d}else if(0===t.avail_in&&o<=W&&o!=l)return t.msg=k[7],m;if(n==z&&0!==t.avail_in)return i.msg=k[7],m;if(0!==t.avail_in||0!==R||o!=c&&n!=z){switch(D=-1,y[N].func){case 0:D=function(e){let n,i=65535;for(i>r-5&&(i=r-5);;){if(R<=1){if(_e(),0===R&&e==c)return 0;if(0===R)break}if(I+=R,R=0,n=F+i,(0===I||I>=n)&&(R=I-n,I=n,be(!1),0===t.avail_out))return 0;if(I-F>=p-C&&(be(!1),0===t.avail_out))return 0}return be(e==l),0===t.avail_out?e==l?2:0:e==l?3:1}(o);break;case 1:D=function(e){let n,r=0;for(;;){if(R=3&&(q=(q<=3)if(n=he(I-M,T-3),R-=T,T<=B&&R>=3){T--;do{I++,q=(q<=3&&(q=(q<4096)&&(T=2)),H>=3&&T<=H){r=I+R-3,n=he(I-1-O,H-3),R-=H-1,H-=2;do{++I<=r&&(q=(q<n&&(i=n),0===i?0:(r.avail_in-=i,e.set(r.next_in.subarray(r.next_in_index,r.next_in_index+i),t),r.next_in_index+=i,r.total_in+=i,i)},flush_pending(){const e=this;let t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),0!==t&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,0===e.dstate.pending&&(e.dstate.pending_out=0))}};const U=0,D=1,L=-2,E=-3,F=-4,T=-5,O=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],P=1440,I=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],M=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],R=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],H=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],V=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],B=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],N=15;function K(){let e,t,n,r,i,s;function a(e,t,a,o,c,l,d,f,u,m,p){let h,w,x,g,v,b,_,y,k,S,z,A,C,W,j;S=0,v=a;do{n[e[t+S]]++,S++,v--}while(0!==v);if(n[0]==a)return d[0]=-1,f[0]=0,U;for(y=f[0],b=1;b<=N&&0===n[b];b++);for(_=b,yv&&(y=v),f[0]=y,W=1<A+y;){if(g++,A+=y,j=x-A,j=j>y?y:j,(w=1<<(b=_-A))>h+1&&(w-=h+1,C=_,bP)return E;i[g]=z=m[0],m[0]+=j,0!==g?(s[g]=v,r[0]=b,r[1]=y,b=v>>>A-y,r[2]=z-i[g-1]-b,u.set(r,3*(i[g-1]+b))):d[0]=z}for(r[1]=_-A,S>=a?r[0]=192:p[S]>>A;b>>=1)v^=b;for(v^=b,k=(1<257?(m==E?u.msg="oversubscribed distance tree":m==T?(u.msg="incomplete distance tree",m=E):m!=F&&(u.msg="empty distance tree with lengths",m=E),m):U)}}K.inflate_trees_fixed=function(e,t,n,r){return e[0]=9,t[0]=5,n[0]=I,r[0]=M,U};const G=0,Z=1,X=2,J=3,Y=4,Q=5,$=6,ee=7,te=8,ne=9;function re(){const e=this;let t,n,r,i,s=0,a=0,o=0,c=0,l=0,d=0,f=0,u=0,m=0,p=0;function h(e,t,n,r,i,s,a,o){let c,l,d,f,u,m,p,h,w,x,g,v,b,_,y,k;p=o.next_in_index,h=o.avail_in,u=a.bitb,m=a.bitk,w=a.write,x=w>=l[k+1],m-=l[k+1],0!=(16&f)){for(f&=15,b=l[k+2]+(u&O[f]),u>>=f,m-=f;m<15;)h--,u|=(255&o.read_byte(p++))<>=l[k+1],m-=l[k+1],0!=(16&f)){for(f&=15;m>=f,m-=f,x-=b,w>=_)y=w-_,w-y>0&&2>w-y?(a.win[w++]=a.win[y++],a.win[w++]=a.win[y++],b-=2):(a.win.set(a.win.subarray(y,y+2),w),w+=2,y+=2,b-=2);else{y=w-_;do{y+=a.end}while(y<0);if(f=a.end-y,b>f){if(b-=f,w-y>0&&f>w-y)do{a.win[w++]=a.win[y++]}while(0!=--f);else a.win.set(a.win.subarray(y,y+f),w),w+=f,y+=f,f=0;y=0}}if(w-y>0&&b>w-y)do{a.win[w++]=a.win[y++]}while(0!=--b);else a.win.set(a.win.subarray(y,y+b),w),w+=b,y+=b,b=0;break}if(0!=(64&f))return o.msg="invalid distance code",b=o.avail_in-h,b=m>>3>3:b,h+=b,p-=b,m-=b<<3,a.bitb=u,a.bitk=m,o.avail_in=h,o.total_in+=p-o.next_in_index,o.next_in_index=p,a.write=w,E;c+=l[k+2],c+=u&O[f],k=3*(d+c),f=l[k]}break}if(0!=(64&f))return 0!=(32&f)?(b=o.avail_in-h,b=m>>3>3:b,h+=b,p-=b,m-=b<<3,a.bitb=u,a.bitk=m,o.avail_in=h,o.total_in+=p-o.next_in_index,o.next_in_index=p,a.write=w,D):(o.msg="invalid literal/length code",b=o.avail_in-h,b=m>>3>3:b,h+=b,p-=b,m-=b<<3,a.bitb=u,a.bitk=m,o.avail_in=h,o.total_in+=p-o.next_in_index,o.next_in_index=p,a.write=w,E);if(c+=l[k+2],c+=u&O[f],k=3*(d+c),0===(f=l[k])){u>>=l[k+1],m-=l[k+1],a.win[w++]=l[k+2],x--;break}}else u>>=l[k+1],m-=l[k+1],a.win[w++]=l[k+2],x--}while(x>=258&&h>=10);return b=o.avail_in-h,b=m>>3>3:b,h+=b,p-=b,m-=b<<3,a.bitb=u,a.bitk=m,o.avail_in=h,o.total_in+=p-o.next_in_index,o.next_in_index=p,a.write=w,U}e.init=function(e,s,a,o,c,l){t=G,f=e,u=s,r=a,m=o,i=c,p=l,n=null},e.proc=function(e,w,x){let g,v,b,_,y,k,S,z=0,A=0,C=0;for(C=w.next_in_index,_=w.avail_in,z=e.bitb,A=e.bitk,y=e.write,k=y=258&&_>=10&&(e.bitb=z,e.bitk=A,w.avail_in=_,w.total_in+=C-w.next_in_index,w.next_in_index=C,e.write=y,x=h(f,u,r,m,i,p,e,w),C=w.next_in_index,_=w.avail_in,z=e.bitb,A=e.bitk,y=e.write,k=y>>=n[v+1],A-=n[v+1],b=n[v],0===b){c=n[v+2],t=$;break}if(0!=(16&b)){l=15&b,s=n[v+2],t=X;break}if(0==(64&b)){o=b,a=v/3+n[v+2];break}if(0!=(32&b)){t=ee;break}return t=ne,w.msg="invalid literal/length code",x=E,e.bitb=z,e.bitk=A,w.avail_in=_,w.total_in+=C-w.next_in_index,w.next_in_index=C,e.write=y,e.inflate_flush(w,x);case X:for(g=l;A>=g,A-=g,o=u,n=i,a=p,t=J;case J:for(g=o;A>=n[v+1],A-=n[v+1],b=n[v],0!=(16&b)){l=15&b,d=n[v+2],t=Y;break}if(0==(64&b)){o=b,a=v/3+n[v+2];break}return t=ne,w.msg="invalid distance code",x=E,e.bitb=z,e.bitk=A,w.avail_in=_,w.total_in+=C-w.next_in_index,w.next_in_index=C,e.write=y,e.inflate_flush(w,x);case Y:for(g=l;A>=g,A-=g,t=Q;case Q:for(S=y-d;S<0;)S+=e.end;for(;0!==s;){if(0===k&&(y==e.end&&0!==e.read&&(y=0,k=y7&&(A-=8,_++,C--),e.write=y,x=e.inflate_flush(w,x),y=e.write,k=ye.avail_out&&(r=e.avail_out),0!==r&&t==T&&(t=U),e.avail_out-=r,e.total_out+=r,e.next_out.set(n.win.subarray(s,s+r),i),i+=r,s+=r,s==n.end&&(s=0,n.write==n.end&&(n.write=0),r=n.write-s,r>e.avail_out&&(r=e.avail_out),0!==r&&t==T&&(t=U),e.avail_out-=r,e.total_out+=r,e.next_out.set(n.win.subarray(s,s+r),i),i+=r,s+=r),e.next_out_index=i,n.read=s,t},n.proc=function(e,t){let p,h,w,x,g,v,b,_;for(x=e.next_in_index,g=e.avail_in,h=n.bitb,w=n.bitk,v=n.write,b=v>>1){case 0:h>>>=3,w-=3,p=7&w,h>>>=p,w-=p,i=ae;break;case 1:y=[],k=[],S=[[]],z=[[]],K.inflate_trees_fixed(y,k,S,z),d.init(y[0],k[0],S[0],0,z[0],0),h>>>=3,w-=3,i=fe;break;case 2:h>>>=3,w-=3,i=ce;break;case 3:return h>>>=3,w-=3,i=pe,e.msg="invalid block type",t=E,n.bitb=h,n.bitk=w,e.avail_in=g,e.total_in+=x-e.next_in_index,e.next_in_index=x,n.write=v,n.inflate_flush(e,t)}break;case ae:for(;w<32;){if(0===g)return n.bitb=h,n.bitk=w,e.avail_in=g,e.total_in+=x-e.next_in_index,e.next_in_index=x,n.write=v,n.inflate_flush(e,t);t=U,g--,h|=(255&e.read_byte(x++))<>>16&65535)!=(65535&h))return i=pe,e.msg="invalid stored block lengths",t=E,n.bitb=h,n.bitk=w,e.avail_in=g,e.total_in+=x-e.next_in_index,e.next_in_index=x,n.write=v,n.inflate_flush(e,t);s=65535&h,h=w=0,i=0!==s?oe:0!==f?ue:se;break;case oe:if(0===g)return n.bitb=h,n.bitk=w,e.avail_in=g,e.total_in+=x-e.next_in_index,e.next_in_index=x,n.write=v,n.inflate_flush(e,t);if(0===b&&(v==n.end&&0!==n.read&&(v=0,b=vg&&(p=g),p>b&&(p=b),n.win.set(e.read_buf(x,p),v),x+=p,g-=p,v+=p,b-=p,0!=(s-=p))break;i=0!==f?ue:se;break;case ce:for(;w<14;){if(0===g)return n.bitb=h,n.bitk=w,e.avail_in=g,e.total_in+=x-e.next_in_index,e.next_in_index=x,n.write=v,n.inflate_flush(e,t);t=U,g--,h|=(255&e.read_byte(x++))<29||(p>>5&31)>29)return i=pe,e.msg="too many length or distance symbols",t=E,n.bitb=h,n.bitk=w,e.avail_in=g,e.total_in+=x-e.next_in_index,e.next_in_index=x,n.write=v,n.inflate_flush(e,t);if(p=258+(31&p)+(p>>5&31),!r||r.length>>=14,w-=14,o=0,i=le;case le:for(;o<4+(a>>>10);){for(;w<3;){if(0===g)return n.bitb=h,n.bitk=w,e.avail_in=g,e.total_in+=x-e.next_in_index,e.next_in_index=x,n.write=v,n.inflate_flush(e,t);t=U,g--,h|=(255&e.read_byte(x++))<>>=3,w-=3}for(;o<19;)r[ie[o++]]=0;if(c[0]=7,p=m.inflate_trees_bits(r,c,l,u,e),p!=U)return(t=p)==E&&(r=null,i=pe),n.bitb=h,n.bitk=w,e.avail_in=g,e.total_in+=x-e.next_in_index,e.next_in_index=x,n.write=v,n.inflate_flush(e,t);o=0,i=de;case de:for(;p=a,!(o>=258+(31&p)+(p>>5&31));){let s,d;for(p=c[0];w>>=p,w-=p,r[o++]=d;else{for(_=18==d?7:d-14,s=18==d?11:3;w>>=p,w-=p,s+=h&O[_],h>>>=_,w-=_,_=o,p=a,_+s>258+(31&p)+(p>>5&31)||16==d&&_<1)return r=null,i=pe,e.msg="invalid bit length repeat",t=E,n.bitb=h,n.bitk=w,e.avail_in=g,e.total_in+=x-e.next_in_index,e.next_in_index=x,n.write=v,n.inflate_flush(e,t);d=16==d?r[_-1]:0;do{r[_++]=d}while(0!=--s);o=_}}if(l[0]=-1,A=[],C=[],W=[],j=[],A[0]=9,C[0]=6,p=a,p=m.inflate_trees_dynamic(257+(31&p),1+(p>>5&31),r,A,C,W,j,u,e),p!=U)return p==E&&(r=null,i=pe),t=p,n.bitb=h,n.bitk=w,e.avail_in=g,e.total_in+=x-e.next_in_index,e.next_in_index=x,n.write=v,n.inflate_flush(e,t);d.init(A[0],C[0],u,W[0],u,j[0]),i=fe;case fe:if(n.bitb=h,n.bitk=w,e.avail_in=g,e.total_in+=x-e.next_in_index,e.next_in_index=x,n.write=v,(t=d.proc(n,e,t))!=D)return n.inflate_flush(e,t);if(t=U,d.free(e),x=e.next_in_index,g=e.avail_in,h=n.bitb,w=n.bitk,v=n.write,b=v15?(e.inflateEnd(n),L):(e.wbits=r,n.istate.blocks=new he(n,1<>4)>i.wbits){i.mode=we,e.msg="invalid win size",i.marker=5;break}i.mode=1;case 1:if(0===e.avail_in)return n;if(n=t,e.avail_in--,e.total_in++,r=255&e.read_byte(e.next_in_index++),((i.method<<8)+r)%31!=0){i.mode=we,e.msg="incorrect header check",i.marker=5;break}if(0==(32&r)){i.mode=7;break}i.mode=2;case 2:if(0===e.avail_in)return n;n=t,e.avail_in--,e.total_in++,i.need=(255&e.read_byte(e.next_in_index++))<<24&4278190080,i.mode=3;case 3:if(0===e.avail_in)return n;n=t,e.avail_in--,e.total_in++,i.need+=(255&e.read_byte(e.next_in_index++))<<16&16711680,i.mode=4;case 4:if(0===e.avail_in)return n;n=t,e.avail_in--,e.total_in++,i.need+=(255&e.read_byte(e.next_in_index++))<<8&65280,i.mode=5;case 5:return 0===e.avail_in?n:(n=t,e.avail_in--,e.total_in++,i.need+=255&e.read_byte(e.next_in_index++),i.mode=6,2);case 6:return i.mode=we,e.msg="need dictionary",i.marker=0,L;case 7:if(n=i.blocks.proc(e,n),n==E){i.mode=we,i.marker=0;break}if(n==U&&(n=t),n!=D)return n;n=t,i.blocks.reset(e,i.was),i.mode=12;case 12:return e.avail_in=0,D;case we:return E;default:return L}},e.inflateSetDictionary=function(e,t,n){let r=0,i=n;if(!e||!e.istate||6!=e.istate.mode)return L;const s=e.istate;return i>=1<{const e={};for(const t of Object.keys(et))for(const n of Object.keys(et[t])){const r=et[t][n];if("string"==typeof r)e[r]=t+"/"+n;else for(let i=0;i>>1^3988292384:t>>>=1;tt[e]=t}class nt{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,r=0|e.length;n>>8^tt[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class rt extends TransformStream{constructor(){let e;const t=new nt;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function it(e){if(typeof TextEncoder==Ve){e=unescape(encodeURIComponent(e));const t=new Uint8Array(e.length);for(let n=0;n0&&t&&(e[n-1]=st.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial(e,t,n){return 32===e?t:(n?0|t:t<<32-e)+1099511627776*e},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let i=0;i>>t),n=e[i]<<32-t;const i=e.length?e[e.length-1]:0,s=st.getPartial(i);return r.push(st.partial(t+s&31,t+s>32?n:r.pop(),1)),r}},at={bytes:{fromBits(e){const t=st.bitLength(e)/8,n=new Uint8Array(t);let r;for(let i=0;i>>24,r<<=8;return n},toBits(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const s=new Uint32Array(n);let a=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);e<=i;e+=t.blockSize)t._block(s.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),t}finalize(){const e=this;let t=e._buffer;const n=e._h;t=st.concat(t,[st.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,r){return e<=19?t&n|~t&r:e<=39?t^n^r:e<=59?t&n|t&r|n&r:e<=79?t^n^r:void 0}_S(e,t){return t<>>32-e}_block(e){const t=this,n=t._h,r=Array(80);for(let t=0;t<16;t++)r[t]=e[t];let i=n[0],s=n[1],a=n[2],o=n[3],c=n[4];for(let e=0;e<=79;e++){e>=16&&(r[e]=t._S(1,r[e-3]^r[e-8]^r[e-14]^r[e-16]));const n=t._S(5,i)+t._f(e,s,a,o)+c+r[e]+t._key[Math.floor(e/20)]|0;c=o,o=a,a=t._S(30,s),s=i,i=n}n[0]=n[0]+i|0,n[1]=n[1]+s|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+c|0}}},ct={aes:class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],i=e.length;let s,a,o,c=1;if(4!==i&&6!==i&&8!==i)throw new Error("invalid aes key size");for(t._key=[a=e.slice(0),o=[]],s=i;s<4*i+28;s++){let e=a[s-1];(s%i==0||8===i&&s%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],s%i==0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),a[s]=a[s-i]^e}for(let e=0;s;e++,s--){const t=a[3&e?s:s-4];o[e]=s<=4||e<4?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],r=t[4],i=[],s=[];let a,o,c,l;for(let e=0;e<256;e++)s[(i[e]=e<<1^283*(e>>7))^e]=e;for(let d=a=0;!n[d];d^=o||1,a=s[a]||1){let s=a^a<<1^a<<2^a<<3^a<<4;s=s>>8^255&s^99,n[d]=s,r[s]=d,l=i[c=i[o=i[d]]];let f=16843009*l^65537*c^257*o^16843008*d,u=257*i[s]^16843008*s;for(let n=0;n<4;n++)e[n][d]=u=u<<24^u>>>8,t[n][s]=f=f<<24^f>>>8}for(let n=0;n<5;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw new Error("invalid aes block size");const n=this._key[t],r=n.length/4-2,i=[0,0,0,0],s=this._tables[t],a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];let f,u,m,p=e[0]^n[0],h=e[t?3:1]^n[1],w=e[2]^n[2],x=e[t?1:3]^n[3],g=4;for(let e=0;e>>24]^o[h>>16&255]^c[w>>8&255]^l[255&x]^n[g],u=a[h>>>24]^o[w>>16&255]^c[x>>8&255]^l[255&p]^n[g+1],m=a[w>>>24]^o[x>>16&255]^c[p>>8&255]^l[255&h]^n[g+2],x=a[x>>>24]^o[p>>16&255]^c[h>>8&255]^l[255&w]^n[g+3],g+=4,p=f,h=u,w=m;for(let e=0;e<4;e++)i[t?3&-e:e]=d[p>>>24]<<24^d[h>>16&255]<<16^d[w>>8&255]<<8^d[255&x]^n[g++],f=p,p=h,h=w,w=x,x=f;return i}}},lt={getRandomValues(e){const t=new Uint32Array(e.buffer),n=e=>{let t=987654321;const n=4294967295;return function(){t=36969*(65535&t)+(t>>16)&n;return(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let r,i=0;i>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let r;if(!(r=t.length))return[];const i=st.bitLength(t);for(let i=0;i>5)<<2;let s,a,o,c,l;const d=new ArrayBuffer(i),f=new DataView(d);let u=0;const m=st;for(t=at.bytes.toBits(t),l=1;u<(i||1);l++){for(s=a=e.encrypt(m.concat(t,[l])),o=1;oi&&(e=(new n).update(e).finalize());for(let t=0;tthis.resolveReady=e)),password:Mt(e,t),signed:n,strength:r-1,pending:new Uint8Array})},async transform(e,t){const n=this,{password:r,strength:s,resolveReady:a,ready:o}=n;r?(await async function(e,t,n,r){const i=await It(e,t,n,Ht(r,0,kt[t])),s=Ht(r,kt[t]);if(i[0]!=s[0]||i[1]!=s[1])throw new Error(mt)}(n,s,r,Ht(e,0,kt[s]+2)),e=Ht(e,kt[s]+2),i?t.error(new Error(ht)):a()):await o;const c=new Uint8Array(e.length-zt-(e.length-zt)%xt);t.enqueue(Pt(n,e,c,0,zt,!0))},async flush(e){const{signed:t,ctr:n,hmac:r,pending:i,ready:s}=this;if(r&&n){await s;const a=Ht(i,0,i.length-zt),o=Ht(i,i.length-zt);let c=new Uint8Array;if(a.length){const e=Bt(qt,a);r.update(e);const t=n.update(e);c=Vt(qt,t)}if(t){const e=Ht(Vt(qt,r.digest()),0,zt);for(let t=0;tthis.resolveReady=e)),password:Mt(e,t),strength:n-1,pending:new Uint8Array})},async transform(e,t){const n=this,{password:r,strength:i,resolveReady:s,ready:a}=n;let o=new Uint8Array;r?(o=await async function(e,t,n){const r=wt(new Uint8Array(kt[t])),i=await It(e,t,n,r);return Rt(r,i)}(n,i,r),s()):await a;const c=new Uint8Array(o.length+e.length-e.length%xt);c.set(o,0),t.enqueue(Pt(n,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:n,pending:i,ready:s}=this;if(n&&t){await s;let a=new Uint8Array;if(i.length){const e=t.update(Bt(qt,i));n.update(e),a=Vt(qt,e)}r.signature=Vt(qt,n.digest()).slice(0,zt),e.enqueue(Rt(a,r.signature))}}}),r=this}}function Pt(e,t,n,r,i,s){const{ctr:a,hmac:o,pending:c}=e,l=t.length-i;let d;for(c.length&&(t=Rt(c,t),n=function(e,t){if(t&&t>e.length){const n=e;(e=new Uint8Array(t)).set(n,0)}return e}(n,l-l%xt)),d=0;d<=l-xt;d+=xt){const e=Bt(qt,Ht(t,d,d+xt));s&&o.update(e);const i=a.update(e);s||o.update(i),n.set(Vt(qt,i),d+r)}return e.pending=Ht(t,d),n}async function It(e,t,n,r){e.password=null;const i=await async function(e,t,n,r,i){if(!Et)return ft.importKey(t);try{return await Wt.importKey(e,t,n,r,i)}catch(e){return Et=!1,ft.importKey(t)}}(gt,n,bt,!1,yt),s=await async function(e,t,n){if(!Ft)return ft.pbkdf2(t,e.salt,_t.iterations,n);try{return await Wt.deriveBits(e,t,n)}catch(r){return Ft=!1,ft.pbkdf2(t,e.salt,_t.iterations,n)}}(Object.assign({salt:r},_t),i,8*(2*St[t]+2)),a=new Uint8Array(s),o=Bt(qt,Ht(a,0,St[t])),c=Bt(qt,Ht(a,St[t],2*St[t])),l=Ht(a,2*St[t]);return Object.assign(e,{keys:{key:o,authentication:c,passwordVerification:l},ctr:new Dt(new Ut(o),Array.from(At)),hmac:new Lt(c)}),l}function Mt(e,t){return t===He?it(e):t}function Rt(e,t){let n=e;return e.length+t.length&&(n=new Uint8Array(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function Ht(e,t,n){return e.subarray(t,n)}function Vt(e,t){return e.fromBits(t)}function Bt(e,t){return e.toBits(t)}const Nt=12;class Kt extends TransformStream{constructor({password:e,passwordVerification:t,checkPasswordOnly:n}){super({start(){Object.assign(this,{password:e,passwordVerification:t}),Jt(this,e)},transform(e,t){const r=this;if(r.password){const t=Zt(r,e.subarray(0,Nt));if(r.password=null,t[11]!=r.passwordVerification)throw new Error(mt);e=e.subarray(Nt)}n?t.error(new Error(ht)):t.enqueue(Zt(r,e))}})}}class Gt extends TransformStream{constructor({password:e,passwordVerification:t}){super({start(){Object.assign(this,{password:e,passwordVerification:t}),Jt(this,e)},transform(e,t){const n=this;let r,i;if(n.password){n.password=null;const t=wt(new Uint8Array(Nt));t[11]=n.passwordVerification,r=new Uint8Array(e.length+t.length),r.set(Xt(n,t),0),i=Nt}else r=new Uint8Array(e.length),i=0;r.set(Xt(n,e),i),t.enqueue(r)}})}}function Zt(e,t){const n=new Uint8Array(t.length);for(let r=0;r>>24]),i=~e.crcKey2.get(),e.keys=[n,r,i]}function Qt(e){const t=2|e.keys[2];return $t(Math.imul(t,1^t)>>>8)}function $t(e){return 255&e}function en(e){return 4294967295&e}const tn="deflate-raw";class nn extends TransformStream{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:i,encrypted:s,useCompressionStream:a,zipCrypto:o,signed:c,level:l}=e,d=this;let f,u,m=sn(super.readable);s&&!o||!c||(f=new rt,m=cn(m,f)),i&&(m=on(m,a,{level:l,chunkSize:t},r,n)),s&&(o?m=cn(m,new Gt(e)):(u=new Ot(e),m=cn(m,u))),an(d,m,(()=>{let e;s&&!o&&(e=u.signature),s&&!o||!c||(e=new DataView(f.value.buffer).getUint32(0)),d.signature=e}))}}class rn extends TransformStream{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:s,signed:a,signature:o,compressed:c,useCompressionStream:l}=e;let d,f,u=sn(super.readable);s&&(i?u=cn(u,new Kt(e)):(f=new Tt(e),u=cn(u,f))),c&&(u=on(u,l,{chunkSize:t},r,n)),s&&!i||!a||(d=new rt,u=cn(u,d)),an(this,u,(()=>{if((!s||i)&&a){const e=new DataView(d.value.buffer);if(o!=e.getUint32(0,!1))throw new Error(pt)}}))}}function sn(e){return cn(e,new TransformStream({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function an(e,t,n){t=cn(t,new TransformStream({flush:n})),Object.defineProperty(e,"readable",{get(){return t}})}function on(e,t,n,r,i){try{e=cn(e,new(t&&r?r:i)(tn,n))}catch(r){if(!t)return e;try{e=cn(e,new i(tn,n))}catch(t){return e}}return e}function cn(e,t){return e.pipeThrough(t)}const ln="message",dn="start",fn="pull",un="data",mn="ack",pn="close",hn="deflate",wn="inflate";class xn extends TransformStream{constructor(e,t){super({});const n=this,{codecType:r}=e;let i;r.startsWith(hn)?i=nn:r.startsWith(wn)&&(i=rn);let s=0,a=0;const o=new i(e,t),c=super.readable,l=new TransformStream({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){Object.assign(n,{inputSize:a})}}),d=new TransformStream({transform(e,t){e&&e.length&&(s+=e.length,t.enqueue(e))},flush(){const{signature:e}=o;Object.assign(n,{signature:e,outputSize:s,inputSize:a})}});Object.defineProperty(n,"readable",{get(){return c.pipeThrough(l).pipeThrough(o).pipeThrough(d)}})}}class gn extends TransformStream{constructor(e){let t;super({transform:function n(r,i){if(t){const e=new Uint8Array(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(i.enqueue(r.slice(0,e)),n(r.slice(e),i)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}let vn=typeof Worker!=Ve;class bn{constructor(e,{readable:t,writable:n},{options:r,config:i,streamOptions:s,useWebWorkers:a,transferStreams:o,scripts:c},l){const{signal:d}=s;return Object.assign(e,{busy:!0,readable:t.pipeThrough(new gn(i.chunkSize)).pipeThrough(new _n(t,s),{signal:d}),writable:n,options:Object.assign({},r),scripts:c,transferStreams:o,terminate(){return new Promise((t=>{const{worker:n,busy:r}=e;n?(r?e.resolveTerminated=t:(n.terminate(),t()),e.interface=null):t()}))},onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,l(e)}}),(a&&vn?Sn:kn)(e,i)}}class _n extends TransformStream{constructor(e,{onstart:t,onprogress:n,size:r,onend:i}){let s=0;super({async start(){t&&await yn(t,r)},async transform(e,t){s+=e.length,n&&await yn(n,s,r),t.enqueue(e)},async flush(){e.size=s,i&&await yn(i,s)}})}}async function yn(e,...t){try{await e(...t)}catch(e){}}function kn(e,t){return{run:()=>async function({options:e,readable:t,writable:n,onTaskFinished:r},i){try{const r=new xn(e,i);await t.pipeThrough(r).pipeTo(n,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:a,outputSize:o}=r;return{signature:s,inputSize:a,outputSize:o}}finally{r()}}(e,t)}}function Sn(e,t){const{baseURL:n,chunkSize:r}=t;if(!e.interface){let i;try{i=function(e,t,n){const r={type:"module"};let i,s;typeof e==Be&&(e=e());try{i=new URL(e,t)}catch(t){i=e}if(zn)try{s=new Worker(i)}catch(e){zn=!1,s=new Worker(i,r)}else s=new Worker(i,r);return s.addEventListener(ln,(e=>async function({data:e},t){const{type:n,value:r,messageId:i,result:s,error:a}=e,{reader:o,writer:c,resolveResult:l,rejectResult:d,onTaskFinished:f}=t;try{if(a){const{message:e,stack:t,code:n,name:r}=a,i=new Error(e);Object.assign(i,{stack:t,code:n,name:r}),u(i)}else{if(n==fn){const{value:e,done:n}=await o.read();Cn({type:un,value:e,done:n,messageId:i},t)}n==un&&(await c.ready,await c.write(new Uint8Array(r)),Cn({type:mn,messageId:i},t)),n==pn&&u(null,s)}}catch(a){Cn({type:pn,messageId:i},t),u(a)}function u(e,t){e?d(e):l(t),c&&c.releaseLock(),f()}}(e,n))),s}(e.scripts[0],n,e)}catch(n){return vn=!1,kn(e,t)}Object.assign(e,{worker:i,interface:{run:()=>async function(e,t){let n,r;const i=new Promise(((e,t)=>{n=e,r=t}));Object.assign(e,{reader:null,writer:null,resolveResult:n,rejectResult:r,result:i});const{readable:s,options:a,scripts:o}=e,{writable:c,closed:l}=function(e){let t;const n=new Promise((e=>t=e)),r=new WritableStream({async write(t){const n=e.getWriter();await n.ready,await n.write(t),n.releaseLock()},close(){t()},abort(t){return e.getWriter().abort(t)}});return{writable:r,closed:n}}(e.writable),d=Cn({type:dn,scripts:o.slice(1),options:a,config:t,readable:s,writable:c},e);d||Object.assign(e,{reader:s.getReader(),writer:c.getWriter()});const f=await i;try{await c.getWriter().close()}catch(e){}return await l,f}(e,{chunkSize:r})}})}return e.interface}let zn=!0,An=!0;function Cn(e,{worker:t,writer:n,onTaskFinished:r,transferStreams:i}){try{let{value:n,readable:r,writable:s}=e;const a=[];if(n&&(n.byteLength!e.busy));if(n)return Dn(n),new bn(n,e,t,p);if(Wn.lengthjn.push({resolve:n,stream:e,workerOptions:t})))}()).run();function p(e){if(jn.length){const[{resolve:t,stream:n,workerOptions:r}]=jn.splice(0,1);t(new bn(e,n,r,p))}else e.worker?(Dn(e),function(e,t){const{config:n}=t,{terminateWorkerTimeout:r}=n;Number.isFinite(r)&&r>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout((async()=>{Wn=Wn.filter((t=>t!=e));try{await e.terminate()}catch(e){}}),r))}(e,t)):Wn=Wn.filter((t=>t!=e))}}function Dn(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Ln=65536,En="writable";class Fn{constructor(){this.size=0}init(){this.initialized=!0}}class Tn extends Fn{get readable(){const e=this,{chunkSize:t=Ln}=e,n=new ReadableStream({start(){this.chunkOffset=0},async pull(r){const{offset:i=0,size:s,diskNumberStart:a}=n,{chunkOffset:o}=this;r.enqueue(await Bn(e,i+o,Math.min(t,s-o),a)),o+t>s?r.close():this.chunkOffset+=t}});return n}}class On extends Tn{constructor(e){super(),Object.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const n=this,r=e+t,i=e||rt&&(s=s.slice(e,r)),new Uint8Array(s)}}class Pn extends Fn{constructor(e){super();const t=new TransformStream,n=[];e&&n.push(["Content-Type",e]),Object.defineProperty(this,En,{get(){return t.writable}}),this.blob=new Response(t.readable,{headers:n}).blob()}getData(){return this.blob}}class In extends Tn{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await Promise.all(t.map((async(n,r)=>{await n.init(),r!=t.length-1&&(e.lastDiskOffset+=n.size),e.size+=n.size}))),super.init()}async readUint8Array(e,t,n=0){const r=this,{readers:i}=this;let s,a=n;-1==a&&(a=i.length-1);let o=e;for(;o>=i[a].size;)o-=i[a].size,a++;const c=i[a],l=c.size;if(o+t<=l)s=await Bn(c,o,t);else{const i=l-o;s=new Uint8Array(t),s.set(await Bn(c,o,i)),s.set(await r.readUint8Array(e+i,t-i,n),i)}return r.lastDiskNumber=Math.max(a,r.lastDiskNumber),s}}class Mn extends Fn{constructor(e,t=4294967295){super();const n=this;let r,i,s;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const a=new WritableStream({async write(t){const{availableSize:a}=n;if(s)t.length>=a?(await o(t.slice(0,a)),await c(),n.diskOffset+=r.size,n.diskNumber++,s=null,await this.write(t.slice(a))):await o(t);else{const{value:a,done:o}=await e.next();if(o&&!a)throw new Error("Writer iterator completed too soon");r=a,r.size=0,r.maxSize&&(n.maxSize=r.maxSize),n.availableSize=n.maxSize,await Rn(r),i=a.writable,s=i.getWriter(),await this.write(t)}},async close(){await s.ready,await c()}});async function o(e){const t=e.length;t&&(await s.ready,await s.write(e),r.size+=t,n.size+=t,n.availableSize-=t)}async function c(){i.size=r.size,await s.close()}Object.defineProperty(n,En,{get(){return a}})}}async function Rn(e,t){if(!e.init||e.initialized)return Promise.resolve();await e.init(t)}function Hn(e){return Array.isArray(e)&&(e=new In(e)),e instanceof ReadableStream&&(e={readable:e}),e}function Vn(e){e.writable===He&&typeof e.next==Be&&(e=new Mn(e)),e instanceof WritableStream&&(e={writable:e});const{writable:t}=e;return t.size===He&&(t.size=0),e instanceof Mn||Object.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}function Bn(e,t,n,r){return e.readUint8Array(t,n,r)}const Nn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),Kn=256==Nn.length;function Gn(e,t){return t&&"cp437"==t.trim().toLowerCase()?function(e){if(Kn){let t="";for(let n=0;nthis[t]=e[t]))}}const pr="File format is not recognized",hr="Zip64 extra field not found",wr="Compression method not supported",xr="Split zip file",gr="utf-8",vr="cp437",br=[[Qn,be],[$n,be],[er,be],[tr,_e]],_r={[_e]:{getValue:Dr,bytes:4},[be]:{getValue:Lr,bytes:8}};class yr{constructor(e,t={}){Object.assign(this,{reader:Hn(e),options:t,config:Je()})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:r}=t;if(await Rn(n),n.size!==He&&n.readUint8Array||(n=new On(await new Response(n.readable).blob()),await Rn(n)),n.size=0;e--)if(a[e]==s[0]&&a[e+1]==s[1]&&a[e+2]==s[2]&&a[e+3]==s[3])return{offset:i+e,buffer:a.slice(e,e+r).buffer}}}(n,We,n.size,Ue,16*_e);if(!i){throw Dr(Er(await Bn(n,0,4)))==Ae?new Error(xr):new Error("End of central directory not found")}const s=Er(i);let a=Dr(s,12),o=Dr(s,16);const c=i.offset,l=Ur(s,20),d=c+Ue+l;let f=Ur(s,4);const u=n.lastDiskNumber||0;let m=Ur(s,6),p=Ur(s,8),h=0,w=0;if(o==be||a==be||p==_e||m==_e){const e=Er(await Bn(n,i.offset-20,20));if(Dr(e,0)!=qe)throw new Error("End of Zip64 central directory not found");o=Lr(e,8);let t=await Bn(n,o,56,-1),r=Er(t);const s=i.offset-20-56;if(Dr(r,0)!=je&&o!=s){const e=o;o=s,h=o-e,t=await Bn(n,o,56,-1),r=Er(t)}if(Dr(r,0)!=je)throw new Error("End of Zip64 central directory locator not found");f==_e&&(f=Dr(r,16)),m==_e&&(m=Dr(r,20)),p==_e&&(p=Lr(r,32)),a==be&&(a=Lr(r,40)),o-=a}if(o>=n.size&&(h=n.size-o-a-Ue,o=n.size-a-Ue),u!=f)throw new Error(xr);if(o<0)throw new Error(pr);let x=0,g=await Bn(n,o,a,m),v=Er(g);if(a){const e=i.offset-a;if(Dr(v,x)!=Ce&&o!=e){const t=o;o=e,h+=o-t,g=await Bn(n,o,a,m),v=Er(g)}}const b=i.offset-o-(n.lastDiskOffset||0);if(a!=b&&b>=0&&(a=b,g=await Bn(n,o,a,m),v=Er(g)),o<0||o>=n.size)throw new Error(pr);const _=Cr(t,e,"filenameEncoding"),y=Cr(t,e,"commentEncoding");for(let i=0;is.getData(e,q,t),x=b;const{onprogress:U}=e;if(U)try{await U(i+1,p,new mr(s))}catch(e){}yield q}const k=Cr(t,e,"extractPrependedData"),S=Cr(t,e,"extractAppendedData");return k&&(t.prependedData=w>0?await Bn(n,0,w):new Uint8Array),t.comment=l?await Bn(n,c+Ue,l):new Uint8Array,S&&(t.appendedData=d>>8&255:f>>>24&255),signature:f,compressed:0!=c,encrypted:v,useWebWorkers:Cr(r,n,"useWebWorkers"),useCompressionStream:Cr(r,n,"useCompressionStream"),transferStreams:Cr(r,n,"transferStreams"),checkPasswordOnly:z},config:l,streamOptions:{signal:S,size:y,onstart:C,onprogress:W,onend:j}};let U=0;try{({outputSize:U}=await Un({readable:k,writable:A},q))}catch(e){if(!z||e.message!=ht)throw e}finally{const e=Cr(r,n,"preventClose");A.size+=U,e||A.locked||await A.getWriter().close()}return z?He:e.getData?e.getData():A}}function Sr(e,t,n){const r=e.rawBitFlag=Ur(t,n+2),i=(r&Pe)==Pe,s=Dr(t,n+6);Object.assign(e,{encrypted:i,version:Ur(t,n),bitFlag:{level:(6&r)>>1,dataDescriptor:(r&Ie)==Ie,languageEncodingFlag:(r&Me)==Me},rawLastModDate:s,lastModDate:Wr(s),filenameLength:Ur(t,n+22),extraFieldLength:Ur(t,n+24)})}async function zr(e,t,n,r,i){const{rawExtraField:s}=t,a=t.extraField=new Map,o=Er(new Uint8Array(s));let c=0;try{for(;ct[e]==n));for(let i=0,s=0;i=5&&(s.push(nr),a.push(rr));let o=1;s.forEach(((n,i)=>{if(e.data.length>=o+4){const s=Dr(r,o);t[n]=e[n]=new Date(1e3*s);const c=a[i];e[c]=s}o+=4}))}(h,t,i),t.extraFieldExtendedTimestamp=h);const w=a.get(Oe);w&&(t.extraFieldUSDZ=w)}async function Ar(e,t,n,r,i){const s=Er(e.data),a=new nt;a.append(i[n]);const o=Er(new Uint8Array(4));o.setUint32(0,a.get(),!0);const c=Dr(s,1);Object.assign(e,{version:qr(s,0),[t]:Gn(e.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&c==Dr(o,0)}),e.valid&&(r[t]=e[t],r[t+"UTF8"]=!0)}function Cr(e,t,n){return t[n]===He?e.options[n]:t[n]}function Wr(e){const t=(4294901760&e)>>16,n=65535&e;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}catch(e){}}function jr(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function qr(e,t){return e.getUint8(t)}function Ur(e,t){return e.getUint16(t,!0)}function Dr(e,t){return e.getUint32(t,!0)}function Lr(e,t){return Number(e.getBigUint64(t,!0))}function Er(e){return new DataView(e.buffer)}new Uint8Array([7,0,2,0,65,69,3,0,0]);let Fr;try{Fr="file:///C:/Users/jinn8566/Documents/Projects/imagery-explorer-apps-private/node_modules/@zip.js/zip.js/lib/zip-fs.js"}catch(e){}Qe({baseURL:Fr}),function(e){const t=()=>URL.createObjectURL(new Blob(['const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self,k=void 0,v="undefined",S="function";class z{constructor(e){return class extends p{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const C=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;C[e]=t}class x{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^C[255&(t^e[n])];this.t=t}get(){return~this.t}}class A extends p{constructor(){let e;const t=new x;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new i(4);new l(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const _={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=_.i(n);return 32===r?e.concat(t):_.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+_.i(n)},u(e,t){if(32*e.length0&&t&&(e[n-1]=_.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=_.i(s);return r.push(_.h(t+i&31,t+i>32?n:r.pop(),1)),r}},I={p:{m(e){const t=_.l(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},g(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.I(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}P(){const e=this;let t=e.C;const n=e.S;t=_.concat(t,[_.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e.A/4294967296)),t.push(0|e.A);t.length;)e.I(t.splice(0,16));return e.reset(),n}D(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}V(e,t){return t<>>32-e}I(t){const n=this,s=n.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.V(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.V(5,o)+n.D(e,c,f,a)+l+i[e]+n.v[r.floor(e/20)]|0;l=a,a=f,f=n.V(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}},D={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;inew V.R(I.p.g(e)),B(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,u;const w=new ArrayBuffer(i),h=new l(w);let d=0;const p=_;for(t=I.p.g(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;ad&&fs&&(e=(new n).update(e).P());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.U[0].update(r[0]),t.U[1].update(r[1]),t.K=new n(t.U[0])}reset(){const e=this;e.K=new e.M(e.U[0]),e.N=!1}update(e){this.N=!0,this.K.update(e)}digest(){const e=this,t=e.K.P(),n=new e.M(e.U[1]).update(t).P();return e.reset(),n}encrypt(e){if(this.N)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},R=typeof h!=v&&typeof h.getRandomValues==S,B="Invalid password",E="Invalid signature",M="zipjs-abort-check-password";function U(e){return R?h.getRandomValues(e):D.getRandomValues(e)}const K=16,N={name:"PBKDF2"},O=t.assign({hash:{name:"HMAC"}},N),T=t.assign({iterations:1e3,hash:{name:"SHA-1"}},N),W=["deriveBits"],j=[8,12,16],H=[16,24,32],L=10,F=[0,0,0,0],q=typeof h!=v,G=q&&h.subtle,J=q&&typeof G!=v,Q=I.p,X=class{constructor(e){const t=this;t.O=[[[],[],[],[],[]],[[],[],[],[],[]]],t.O[0][0][0]||t.T();const n=t.O[0][4],r=t.O[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.v=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.W(e,0)}decrypt(e){return this.W(e,1)}T(){const e=this.O[0],t=this.O[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}W(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.v[t],r=n.length/4-2,i=[0,0,0,0],o=this.O[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},Y=class{constructor(e,t){this.j=e,this.H=t,this.L=t}reset(){this.L=this.H}update(e){return this.F(this.j,e,this.L)}q(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}G(e){0===(e[0]=this.q(e[0]))&&(e[1]=this.q(e[1]))}F(e,t,n){let r;if(!(r=t.length))return[];const s=_.l(t);for(let s=0;r>s;s+=4){this.G(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return _.u(t,s)}},Z=V.R;let $=q&&J&&typeof G.importKey==S,ee=q&&J&&typeof G.deriveBits==S;class te extends p{constructor({password:e,rawPassword:n,signed:r,encryptionStrength:o,checkPasswordOnly:c}){super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:ie(e,n),signed:r,X:o-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:o,J:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await se(e,t,n,ce(r,0,j[t])),o=ce(r,j[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(B)})(n,o,r,ce(e,0,j[o]+2)),e=ce(e,j[o]+2),c?t.error(new s(M)):f()):await a;const l=new i(e.length-L-(e.length-L)%K);t.enqueue(re(n,e,l,0,L,!0))},async flush(e){const{signed:t,Y:n,Z:r,pending:o,ready:c}=this;if(r&&n){await c;const f=ce(o,0,o.length-L),a=ce(o,o.length-L);let l=new i;if(f.length){const e=ae(Q,f);r.update(e);const t=n.update(e);l=fe(Q,t)}if(t){const e=ce(fe(Q,r.digest()),0,L);for(let t=0;L>t;t++)if(e[t]!=a[t])throw new s(E)}e.enqueue(l)}}})}}class ne extends p{constructor({password:e,rawPassword:n,encryptionStrength:r}){let s;super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:ie(e,n),X:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:s,J:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=U(new i(j[t]));return oe(r,await se(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%K);a.set(f,0),t.enqueue(re(n,e,a,f.length,0))},async flush(e){const{Y:t,Z:n,pending:r,ready:o}=this;if(n&&t){await o;let c=new i;if(r.length){const e=t.update(ae(Q,r));n.update(e),c=fe(Q,e)}s.signature=fe(Q,n.digest()).slice(0,L),e.enqueue(oe(c,s.signature))}}}),s=this}}function re(e,t,n,r,s,o){const{Y:c,Z:f,pending:a}=e,l=t.length-s;let u;for(a.length&&(t=oe(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,l-l%K)),u=0;l-K>=u;u+=K){const e=ae(Q,ce(t,u,u+K));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(fe(Q,s),u+r)}return e.pending=ce(t,u),n}async function se(n,r,s,o){n.password=null;const c=await(async(e,t,n,r,s)=>{if(!$)return V.importKey(t);try{return await G.importKey("raw",t,n,!1,s)}catch(e){return $=!1,V.importKey(t)}})(0,s,O,0,W),f=await(async(e,t,n)=>{if(!ee)return V.B(t,e.salt,T.iterations,n);try{return await G.deriveBits(e,t,n)}catch(r){return ee=!1,V.B(t,e.salt,T.iterations,n)}})(t.assign({salt:o},T),c,8*(2*H[r]+2)),a=new i(f),l=ae(Q,ce(a,0,H[r])),u=ae(Q,ce(a,H[r],2*H[r])),w=ce(a,2*H[r]);return t.assign(n,{keys:{key:l,$:u,passwordVerification:w},Y:new Y(new X(l),e.from(F)),Z:new Z(u)}),w}function ie(e,t){return t===k?(e=>{if(typeof w==v){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n>>24]),i=~e.te.get(),e.keys=[n,s,i]}function ye(e){const t=2|e.keys[2];return me(r.imul(t,1^t)>>>8)}function me(e){return 255&e}function be(e){return 4294967295&e}const ge="deflate-raw";class ke extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,u=this;let w,h,d=Se(super.readable);i&&!c||!f||(w=new A,d=xe(d,w)),s&&(d=Ce(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=xe(d,new ue(e)):(h=new ne(e),d=xe(d,h))),ze(u,d,(()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=new l(w.value.buffer).getUint32(0)),u.signature=e}))}}class ve extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:u}=e;let w,h,d=Se(super.readable);o&&(i?d=xe(d,new le(e)):(h=new te(e),d=xe(d,h))),a&&(d=Ce(d,u,{chunkSize:t},r,n)),o&&!i||!c||(w=new A,d=xe(d,w)),ze(this,d,(()=>{if((!o||i)&&c){const e=new l(w.value.buffer);if(f!=e.getUint32(0,!1))throw new s(E)}}))}}function Se(e){return xe(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ze(e,n,r){n=xe(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Ce(e,t,n,r,s){try{e=xe(e,new(t&&r?r:s)(ge,n))}catch(r){if(!t)return e;try{e=xe(e,new s(ge,n))}catch(t){return e}}return e}function xe(e,t){return e.pipeThrough(t)}const Ae="data",_e="close";class Ie extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=ke:s.startsWith("inflate")&&(i=ve);let o=0,c=0;const f=new i(e,n),a=super.readable,l=new p({transform(e,t){e&&e.length&&(c+=e.length,t.enqueue(e))},flush(){t.assign(r,{inputSize:c})}}),u=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){const{signature:e}=f;t.assign(r,{signature:e,outputSize:o,inputSize:c})}});t.defineProperty(r,"readable",{get:()=>a.pipeThrough(l).pipeThrough(f).pipeThrough(u)})}}class Pe extends p{constructor(e){let t;super({transform:function n(r,s){if(t){const e=new i(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(s.enqueue(r.slice(0,e)),n(r.slice(e),s)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}const De=new a,Ve=new a;let Re,Be=0,Ee=!0;async function Me(e){try{const{options:t,scripts:r,config:s}=e;if(r&&r.length)try{Ee?importScripts.apply(k,r):await Ue(r)}catch(e){Ee=!1,await Ue(r)}self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new z(self.Deflate)),self.Inflate&&(s.DecompressionStream=new z(self.Inflate));const i={highWaterMark:1},o=e.readable||new y({async pull(e){const t=new u((e=>De.set(Be,e)));Ke({type:"pull",messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new u((e=>t=e));Ve.set(Be,t),Ke({type:Ae,value:e,messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new Ie(t,s);Re=new AbortController;const{signal:a}=Re;await o.pipeThrough(f).pipeThrough(new Pe(s.chunkSize)).pipeTo(c,{signal:a,preventClose:!0,preventAbort:!0});try{await c.getWriter().close()}catch(e){}const{signature:l,inputSize:w,outputSize:h}=f;Ke({type:_e,result:{signature:l,inputSize:w,outputSize:h}})}catch(e){Ne(e)}}async function Ue(e){for(const t of e)await import(t)}function Ke(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Ne(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:i}=e;d({error:{message:t,stack:n,code:r,name:i}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&Me(e),t==Ae){const e=De.get(n);De.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ve.get(n);Ve.delete(n),e()}t==_e&&Re.abort()}catch(e){Ne(e)}}));const Oe=-2;function Te(t){return We(t.map((([t,n])=>new e(t).fill(n,0,t))))}function We(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?We(n):n)),[])}const je=[0,1,2,3].concat(...Te([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function He(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.ne=n=>{const s=e.re,i=e.ie.se,o=e.ie.oe;let c,f,a,l=-1;for(n.ce=0,n.fe=573,c=0;o>c;c++)0!==s[2*c]?(n.ae[++n.ce]=l=c,n.le[c]=0):s[2*c+1]=0;for(;2>n.ce;)a=n.ae[++n.ce]=2>l?++l:0,s[2*a]=1,n.le[a]=0,n.ue--,i&&(n.we-=i[2*a+1]);for(e.he=l,c=r.floor(n.ce/2);c>=1;c--)n.de(s,c);a=o;do{c=n.ae[1],n.ae[1]=n.ae[n.ce--],n.de(s,1),f=n.ae[1],n.ae[--n.fe]=c,n.ae[--n.fe]=f,s[2*a]=s[2*c]+s[2*f],n.le[a]=r.max(n.le[c],n.le[f])+1,s[2*c+1]=s[2*f+1]=a,n.ae[1]=a++,n.de(s,1)}while(n.ce>=2);n.ae[--n.fe]=n.ae[1],(t=>{const n=e.re,r=e.ie.se,s=e.ie.pe,i=e.ie.ye,o=e.ie.me;let c,f,a,l,u,w,h=0;for(l=0;15>=l;l++)t.be[l]=0;for(n[2*t.ae[t.fe]+1]=0,c=t.fe+1;573>c;c++)f=t.ae[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.he||(t.be[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.ue+=w*(l+u),r&&(t.we+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.be[l];)l--;t.be[l]--,t.be[l+1]+=2,t.be[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.be[l];0!==f;)a=t.ae[--c],a>e.he||(n[2*a+1]!=l&&(t.ue+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.he,n.be)}}function Le(e,t,n,r,s){const i=this;i.se=e,i.pe=t,i.ye=n,i.oe=r,i.me=s}He.ge=[0,1,2,3,4,5,6,7].concat(...Te([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),He.ke=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],He.ve=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],He.Se=e=>256>e?je[e]:je[256+(e>>>7)],He.ze=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],He.Ce=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],He.xe=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],He.Ae=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Fe=Te([[144,8],[112,9],[24,7],[8,8]]);Le._e=We([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,Fe[t]])));const qe=Te([[30,5]]);function Ge(e,t,n,r,s){const i=this;i.Ie=e,i.Pe=t,i.De=n,i.Ve=r,i.Re=s}Le.Be=We([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,qe[t]]))),Le.Ee=new Le(Le._e,He.ze,257,286,15),Le.Me=new Le(Le.Be,He.Ce,0,30,15),Le.Ue=new Le(null,He.xe,0,19,7);const Je=[new Ge(0,0,0,0,0),new Ge(4,4,8,4,1),new Ge(4,5,16,8,1),new Ge(4,6,32,32,1),new Ge(4,4,16,16,2),new Ge(8,16,32,32,2),new Ge(8,16,128,128,2),new Ge(8,32,128,256,2),new Ge(32,128,258,1024,2),new Ge(32,258,258,4096,2)],Qe=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Xe=113,Ye=666,Ze=262;function $e(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function et(){const e=this;let t,n,s,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z,C,x,A,_,I,P,D,V,R,B,E,M,U;const K=new He,N=new He,O=new He;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)U[2*t]=0;E[512]=1,e.ue=e.we=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++ii?U[2*n]+=i:0!==n?(n!=r&&U[2*n]++,U[32]++):i>10?U[36]++:U[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ke[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<>>16-F,F+=r-16):(L|=e<=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,U)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,U),o--),Y(16,U),X(o-3,2)):o>10?(Y(18,U),X(o-11,7)):(Y(17,U),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Ne[W]=t,e.Oe[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(He.ge[n]+256+1)]++,M[2*He.Se(t)]++),0==(8191&W)&&D>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+He.Ce[o]);if(s>>>=3,jc);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ke.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;D>0?(K.ne(e),N.ne(e),o=(()=>{let t;for(G(E,K.he),G(M,N.he),O.ne(e),t=18;t>=3&&0===U[2*He.Ae[t]+1];t--);return e.ue+=14+3*(t+1),t})(),s=e.ue+3+7>>>3,i=e.we+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(Le._e,Le.Be)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(U[2*He.Ae[r]+1],3);Z(E,e-1),Z(M,t-1)})(K.he+1,N.he+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.Te()}function ie(){let e,n,r,s;do{if(s=w-A-C,0===s&&0===C&&0===A)s=f;else if(-1==s)s--;else if(C>=f+f-Ze){u.set(u.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--e);s+=f}if(0===t.We)return;e=t.je(u,C+A,s),A+=e,3>A||(p=255&u[C],p=(p<A&&0!==t.We)}function oe(e){let t,n,r=I,s=C,i=_;const o=C>f-Ze?C-(f-Ze):0;let c=B;const a=l,w=C+258;let d=u[s+i-1],p=u[s+i];R>_||(r>>=2),c>A&&(c=A);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!=--r);return i>A?A:i}e.le=[],e.be=[],e.ae=[],E=[],M=[],U=[],e.de=(t,n)=>{const r=e.ae,s=r[n];let i=n<<1;for(;i<=e.ce&&(i(W||(W=8),j||(j=8),G||(G=0),t.Le=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?Oe:(t.Fe=e,a=x,f=1<(t.qe=t.Ge=0,t.Le=null,e.pending=0,e.Je=0,n=Xe,c=0,K.re=E,K.ie=Le.Ee,N.re=M,N.ie=Le.Me,O.re=U,O.ie=Le.Ue,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve,C=0,k=0,A=0,v=_=2,z=0,p=0})(),0))(t))),e.Qe=()=>42!=n&&n!=Xe&&n!=Ye?Oe:(e.Oe=null,e.Ne=null,e.Ke=null,d=null,h=null,u=null,e.Fe=null,n==Xe?-3:0),e.Xe=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?Oe:(Je[D].Re!=Je[t].Re&&0!==e.qe&&(r=e.Ye(1)),D!=t&&(D=t,P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve),V=n,r)},e.Ze=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return Oe;if(3>i)return 0;for(i>f-Ze&&(i=f-Ze,o=r-i),u.set(t.subarray(o,o+i),0),C=i,k=i,p=255&u[0],p=(p<=s;s++)p=(p<{let o,w,m,I,R;if(i>4||0>i)return Oe;if(!r.$e||!r.et&&0!==r.We||n==Ye&&4!=i)return r.Le=Qe[4],Oe;if(0===r.tt)return r.Le=Qe[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(D-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=Xe,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.Te(),0===t.tt)return c=-1,0}else if(0===t.We&&I>=i&&4!=i)return t.Le=Qe[7],-5;if(n==Ye&&0!==t.We)return r.Le=Qe[7],-5;if(0!==t.We||0!==A||0!=i&&n!=Ye){switch(R=-1,Je[D].Re){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=A){if(ie(),0===A&&0==e)return 0;if(0===A)break}if(C+=A,A=0,n=k+r,(0===C||C>=n)&&(A=C-n,C=n,se(!1),0===t.tt))return 0;if(C-k>=f-Ze&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<f-Ze||2!=V&&(v=oe(r)),3>v)n=ee(0,255&u[C]),A--,C++;else if(n=ee(C-x,v-3),A-=v,v>P||3>A)C+=v,v=0,p=255&u[C],p=(p<{let n,r,s=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<_&&f-Ze>=(C-s&65535)&&(2!=V&&(v=oe(s)),5>=v&&(1==V||3==v&&C-x>4096)&&(v=2)),3>_||v>_)if(0!==z){if(n=ee(0,255&u[C-1]),n&&se(!1),C++,A--,0===t.tt)return 0}else z=1,C++,A--;else{r=C+A-3,n=ee(C-1-S,_-3),A-=_-1,_-=2;do{++C>r||(p=(p<1+H+10-F&&(X(2,3),Y(256,Le._e),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.Te(),0===t.tt)return c=-1,0}}return 4!=i?0:1}}function tt(){const e=this;e.nt=0,e.rt=0,e.We=0,e.qe=0,e.tt=0,e.Ge=0}function nt(e){const t=new tt,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.He(f),t.$e=c,this.append=(e,r)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,o=t.Ye(0),0!=o)throw new s("deflating: "+t.Le);t.rt&&(t.rt==n?w.push(new i(c)):w.push(c.subarray(0,t.rt))),u+=t.rt,r&&t.nt>0&&t.nt!=a&&(r(t.nt),a=t.nt)}while(t.We>0||0===t.tt);return w.length>1?(f=new i(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]?new i(w[0]):new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.rt=0,t.tt=n,e=t.Ye(4),1!=e&&0!=e)throw new s("deflating: "+t.Le);n-t.tt>0&&a.push(c.slice(0,t.rt)),f+=t.rt}while(t.We>0||0===t.tt);return t.Qe(),r=new i(f),a.forEach((e=>{r.set(e,o),o+=e.length})),r}}tt.prototype={He(e,t){const n=this;return n.Fe=new et,t||(t=15),n.Fe.He(n,e,t)},Ye(e){const t=this;return t.Fe?t.Fe.Ye(t,e):Oe},Qe(){const e=this;if(!e.Fe)return Oe;const t=e.Fe.Qe();return e.Fe=null,t},Xe(e,t){const n=this;return n.Fe?n.Fe.Xe(n,e,t):Oe},Ze(e,t){const n=this;return n.Fe?n.Fe.Ze(n,e,t):Oe},je(e,t,n){const r=this;let s=r.We;return s>n&&(s=n),0===s?0:(r.We-=s,e.set(r.et.subarray(r.nt,r.nt+s),t),r.nt+=s,r.qe+=s,s)},Te(){const e=this;let t=e.Fe.pending;t>e.tt&&(t=e.tt),0!==t&&(e.$e.set(e.Fe.Ke.subarray(e.Fe.Je,e.Fe.Je+t),e.rt),e.rt+=t,e.Fe.Je+=t,e.Ge+=t,e.tt-=t,e.Fe.pending-=t,0===e.Fe.pending&&(e.Fe.Je=0))}};const rt=-2,st=-3,it=-5,ot=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],ct=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],ft=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],at=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],lt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],ut=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],wt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function ht(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,A,_,I,P;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,0;for(S=u[0],k=1;15>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=15;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,I=1<k;k++,I<<=1)if(0>(I-=n[k]))return st;if(0>(I-=n[g]))return st;for(n[g]+=I,i[1]=k=0,C=1,_=2;0!=--g;)i[_]=k+=n[C],_++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g=v;v++)for(p=n[v];0!=p--;){for(;v>A+S;){if(b++,A+=S,P=m-A,P=P>S?S:P,(y=1<<(k=v-A))>p+1&&(y-=p+1,_=v,P>k))for(;++kn[++_];)y-=n[_];if(P=1<1440)return st;s[b]=x=h[0],h[0]+=P,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>A-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=x}for(r[1]=v-A,o>C?d[C]d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<>>A;P>k;k+=y)w.set(r,3*(x+k));for(k=1<>>=1)g^=k;for(g^=k,z=(1<c;c++)t[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.st=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==st?f.Le="oversubscribed dynamic bit lengths tree":a!=it&&0!==r[0]||(f.Le="incomplete dynamic bit lengths tree",a=st),a},this.it=(n,r,s,i,f,a,l,u,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,at,lt,a,i,u,e,t),0!=h||0===i[0]?(h==st?w.Le="oversubscribed literal/length tree":-4!=h&&(w.Le="incomplete literal/length tree",h=st),h):(c(288),h=o(s,n,r,0,ut,wt,l,f,u,e,t),0!=h||0===f[0]&&n>257?(h==st?w.Le="oversubscribed distance tree":h==it?(w.Le="incomplete distance tree",h=st):-4!=h&&(w.Le="empty distance tree with lengths",h=st),h):0)}}function dt(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z;d=c.nt,p=c.We,w=o.ot,h=o.ct,y=o.write,m=yh;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15,k=a[z+2]+(w&ot[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15;u>h;)p--,w|=(255&c.ft(d++))<>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--u);else o.lt.set(o.lt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.lt[y++]=o.lt[S++],o.lt[y++]=o.lt[S++],k-=2):(o.lt.set(o.lt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--k);else o.lt.set(o.lt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(0!=(64&u))return c.Le="invalid distance code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st;f+=a[z+2],f+=w&ot[u],z=3*(l+f),u=a[z]}break}if(0!=(64&u))return 0!=(32&u)?(k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,1):(c.Le="invalid literal/length code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st);if(f+=a[z+2],f+=w&ot[u],z=3*(l+f),0===(u=a[z])){w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,0}e.init=(e,i,o,c,f,a)=>{t=0,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.ut=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,A=0,_=0;for(_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=S=258&&v>=10&&(e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,m=p(u,w,r,h,s,d,e,y),_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=SA;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>>=n[g+1],A-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(0!=(16&k)){a=15&k,i=n[g+2],t=2;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}if(0!=(32&k)){t=7;break}return t=9,y.Le="invalid literal/length code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 2:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=b,A-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=n[g+1],A-=n[g+1],k=n[g],0!=(16&k)){a=15&k,l=n[g+2],t=4;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Le="invalid distance code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 4:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=b,A-=b,t=5;case 5:for(C=S-l;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S7&&(A-=8,v++,_--),e.write=S,m=e.wt(y,m),S=e.write,z=S{}}ht.dt=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=ct,r[0]=ft,0);const pt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function yt(e,t){const n=this;let r,s=0,o=0,c=0,a=0;const l=[0],u=[0],w=new dt;let h=0,d=new f(4320);const p=new ht;n.ct=0,n.ot=0,n.lt=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==s&&w.ht(e),s=0,n.ct=0,n.ot=0,n.read=n.write=0},n.reset(e,null),n.wt=(e,t)=>{let r,s,i;return s=e.rt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r),e.rt=s,n.read=i,t},n.ut=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=gy;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=1;break;case 1:S=[],z=[],C=[[]],x=[[]],ht.dt(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=6;break;case 2:f>>>=3,y-=3,s=3;break;case 3:return f>>>=3,y-=3,s=9,e.Le="invalid block type",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>16&65535)!=(65535&f))return s=9,e.Le="invalid stored block lengths",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);o=65535&f,f=y=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=gb&&(i=b),i>k&&(i=k),n.lt.set(e.je(m,i),g),m+=i,b-=i,g+=i,k-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<29||(i>>5&31)>29)return s=9,e.Le="too many length or distance symbols",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.lengthv;v++)r[v]=0;f>>>=14,y-=14,a=0,s=4;case 4:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=3,y-=3}for(;19>a;)r[pt[a++]]=0;if(l[0]=7,i=p.st(r,l,u,d,e),0!=i)return(t=i)==st&&(r=null,s=9),n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);a=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=l[0];i>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=i,y-=i,o+=f&ot[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,e.Le="invalid bit length repeat",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,A=[],_=[],I=[],P=[],A[0]=9,_[0]=6,i=c,i=p.it(257+(31&i),1+(i>>5&31),r,A,_,I,P,d,e),0!=i)return i==st&&(r=null,s=9),t=i,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w.init(A[0],_[0],d,I[0],d,P[0]),s=6;case 6:if(n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,1!=(t=w.ut(n,e,t)))return n.wt(e,t);if(t=0,w.ht(e),m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g{n.reset(e,null),n.lt=null,d=null},n.yt=(e,t,r)=>{n.lt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.bt=()=>1==s?1:0}const mt=13,bt=[0,0,255,255];function gt(){const e=this;function t(e){return e&&e.gt?(e.qe=e.Ge=0,e.Le=null,e.gt.mode=7,e.gt.kt.reset(e,null),0):rt}e.mode=0,e.method=0,e.vt=[0],e.St=0,e.marker=0,e.zt=0,e.Ct=t=>(e.kt&&e.kt.ht(t),e.kt=null,0),e.xt=(n,r)=>(n.Le=null,e.kt=null,8>r||r>15?(e.Ct(n),rt):(e.zt=r,n.gt.kt=new yt(n,1<{let n,r;if(!e||!e.gt||!e.et)return rt;const s=e.gt;for(t=4==t?it:0,n=it;;)switch(s.mode){case 0:if(0===e.We)return n;if(n=t,e.We--,e.qe++,8!=(15&(s.method=e.ft(e.nt++)))){s.mode=mt,e.Le="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.zt){s.mode=mt,e.Le="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.We)return n;if(n=t,e.We--,e.qe++,r=255&e.ft(e.nt++),((s.method<<8)+r)%31!=0){s.mode=mt,e.Le="incorrect header check",s.marker=5;break}if(0==(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St=(255&e.ft(e.nt++))<<24&4278190080,s.mode=3;case 3:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<16&16711680,s.mode=4;case 4:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<8&65280,s.mode=5;case 5:return 0===e.We?n:(n=t,e.We--,e.qe++,s.St+=255&e.ft(e.nt++),s.mode=6,2);case 6:return s.mode=mt,e.Le="need dictionary",s.marker=0,rt;case 7:if(n=s.kt.ut(e,n),n==st){s.mode=mt,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.kt.reset(e,s.vt),s.mode=12;case 12:return e.We=0,1;case mt:return st;default:return rt}},e._t=(e,t,n)=>{let r=0,s=n;if(!e||!e.gt||6!=e.gt.mode)return rt;const i=e.gt;return s<1<{let n,r,s,i,o;if(!e||!e.gt)return rt;const c=e.gt;if(c.mode!=mt&&(c.mode=mt,c.marker=0),0===(n=e.We))return it;for(r=e.nt,s=c.marker;0!==n&&4>s;)e.ft(r)==bt[s]?s++:s=0!==e.ft(r)?0:4-s,r++,n--;return e.qe+=r-e.nt,e.nt=r,e.We=n,c.marker=s,4!=s?st:(i=e.qe,o=e.Ge,t(e),e.qe=i,e.Ge=o,c.mode=7,0)},e.Pt=e=>e&&e.gt&&e.gt.kt?e.gt.kt.bt():rt}function kt(){}function vt(e){const t=new kt,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.xt(),t.$e=o,this.append=(e,r)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,0!==t.We||c||(t.nt=0,c=!0),a=t.At(0),c&&a===it){if(0!==t.We)throw new s("inflating: bad input")}else if(0!==a&&1!==a)throw new s("inflating: "+t.Le);if((c||1===a)&&t.We===e.length)throw new s("inflating: bad input");t.rt&&(t.rt===n?f.push(new i(o)):f.push(o.subarray(0,t.rt))),h+=t.rt,r&&t.nt>0&&t.nt!=u&&(r(t.nt),u=t.nt)}while(t.We>0||0===t.tt);return f.length>1?(l=new i(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]?new i(f[0]):new i,l}},this.flush=()=>{t.Ct()}}kt.prototype={xt(e){const t=this;return t.gt=new gt,e||(e=15),t.gt.xt(t,e)},At(e){const t=this;return t.gt?t.gt.At(t,e):rt},Ct(){const e=this;if(!e.gt)return rt;const t=e.gt.Ct(e);return e.gt=null,t},It(){const e=this;return e.gt?e.gt.It(e):rt},_t(e,t){const n=this;return n.gt?n.gt._t(n,e,t):rt},ft(e){return this.et[e]},je(e,t){return this.et.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=nt,self.Inflate=vt};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}})}(Qe),Qe({Deflate:function(e){const t=new q,n=(r=e&&e.chunkSize?e.chunkSize:65536)+5*(Math.floor(r/16383)+1);var r;const i=c,s=new Uint8Array(n);let a=e?e.level:o;void 0===a&&(a=o),t.deflateInit(a),t.next_out=s,this.append=function(e,r){let a,o,c=0,l=0,f=0;const u=[];if(e.length){t.next_in_index=0,t.next_in=e,t.avail_in=e.length;do{if(t.next_out_index=0,t.avail_out=n,a=t.deflate(i),a!=d)throw new Error("deflating: "+t.msg);t.next_out_index&&(t.next_out_index==n?u.push(new Uint8Array(s)):u.push(s.subarray(0,t.next_out_index))),f+=t.next_out_index,r&&t.next_in_index>0&&t.next_in_index!=c&&(r(t.next_in_index),c=t.next_in_index)}while(t.avail_in>0||0===t.avail_out);return u.length>1?(o=new Uint8Array(f),u.forEach((function(e){o.set(e,l),l+=e.length}))):o=u[0]?new Uint8Array(u[0]):new Uint8Array,o}},this.flush=function(){let e,r,i=0,a=0;const o=[];do{if(t.next_out_index=0,t.avail_out=n,e=t.deflate(l),e!=f&&e!=d)throw new Error("deflating: "+t.msg);n-t.avail_out>0&&o.push(s.slice(0,t.next_out_index)),a+=t.next_out_index}while(t.avail_in>0||0===t.avail_out);return t.deflateEnd(),r=new Uint8Array(a),o.forEach((function(e){r.set(e,i),i+=e.length})),r}},Inflate:function(e){const t=new ve,n=e&&e.chunkSize?Math.floor(2*e.chunkSize):131072,r=new Uint8Array(n);let i=!1;t.inflateInit(),t.next_out=r,this.append=function(e,s){const a=[];let o,c,l=0,d=0,f=0;if(0!==e.length){t.next_in_index=0,t.next_in=e,t.avail_in=e.length;do{if(t.next_out_index=0,t.avail_out=n,0!==t.avail_in||i||(t.next_in_index=0,i=!0),o=t.inflate(0),i&&o===T){if(0!==t.avail_in)throw new Error("inflating: bad input")}else if(o!==U&&o!==D)throw new Error("inflating: "+t.msg);if((i||o===D)&&t.avail_in===e.length)throw new Error("inflating: bad input");t.next_out_index&&(t.next_out_index===n?a.push(new Uint8Array(r)):a.push(r.subarray(0,t.next_out_index))),f+=t.next_out_index,s&&t.next_in_index>0&&t.next_in_index!=l&&(s(t.next_in_index),l=t.next_in_index)}while(t.avail_in>0||0===t.avail_out);return a.length>1?(c=new Uint8Array(f),a.forEach((function(e){c.set(e,d),d+=e.length}))):c=a[0]?new Uint8Array(a[0]):new Uint8Array,c}},this.flush=function(){t.inflateEnd()}}})}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/436.bdfd9656acd410b1b5f0.js b/docs/sentinel1-explorer/436.bdfd9656acd410b1b5f0.js new file mode 100644 index 00000000..4bc8fd7f --- /dev/null +++ b/docs/sentinel1-explorer/436.bdfd9656acd410b1b5f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[436],{30436:function(e,t,i){i.r(t),i.d(t,{default:function(){return y}});var s=i(36663),r=i(6865),a=i(13802),n=i(78668),o=i(76868),l=i(84684),d=(i(39994),i(4157),i(70375),i(40266)),p=i(66878),h=i(26216);const u=Symbol();let c=class extends((0,p.y)(h.Z)){constructor(){super(...arguments),this.layerViews=new r.Z,this._debouncedUpdate=(0,n.Ds)((async()=>{const{layer:e,parent:{footprintLayerView:t}}=this;let i=[];if(t){const s=this._createQuery(),{features:r}=await t.queryFeatures(s);this.suspended||(i=r.map((t=>e.acquireLayer(t))))}this.removeHandles(u),this.addHandles(i,u)}))}attach(){this.addAttachHandles([this._updatingHandles.addOnCollectionChange((()=>this.layerViews),(()=>this._updateStageChildren()),{initial:!0}),(0,o.gx)((()=>!1===this.parent.footprintLayerView?.dataUpdating),(()=>this._updateLayers())),(0,o.YP)((()=>[this.layer.maximumVisibleSublayers,this.suspended,this.parent.footprintLayerView?.filter]),(()=>this._updateLayers()))])}detach(){this.container.removeAllChildren(),this.removeHandles(u)}update(e){}moveStart(){}viewChange(){}moveEnd(){}isUpdating(){return this.layerViews.some((e=>e.updating))}_updateStageChildren(){this.container.removeAllChildren(),this.layerViews.forEach(((e,t)=>this.container.addChildAt(e.container,t)))}_updateLayers(){this.suspended?this.removeHandles(u):this._updatingHandles.addPromise(this._debouncedUpdate().catch((e=>{a.Z.getLogger(this).error(e)})))}_createQuery(){const{parent:{footprintLayerView:e},layer:{maximumVisibleSublayers:t,parent:{itemTypeField:i,itemSourceField:s,objectIdField:r,orderBy:a}}}=this,n=`${i} <> 'Scene Service'`,o=e.createQuery();o.returnGeometry=!1,o.num=t,o.outFields=[r,s],o.where=(0,l._)(o.where,n);const d=a?.find((e=>e.field&&!e.valueExpression));return d?.field&&(o.orderByFields=[`${d.field} ${"descending"===d.order?"DESC":"ASC"}`]),o}};c=(0,s._)([(0,d.j)("esri.views.2d.layers.CatalogDynamicGroupLayerView2D")],c);const y=c},66878:function(e,t,i){i.d(t,{y:function(){return m}});var s=i(36663),r=i(6865),a=i(58811),n=i(70375),o=i(76868),l=i(81977),d=(i(39994),i(13802),i(4157),i(40266)),p=i(68577),h=i(10530),u=i(98114),c=i(55755),y=i(88723),g=i(96294);let v=class extends g.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,s._)([(0,l.Cb)({type:[[[Number]]],json:{write:!0}})],v.prototype,"path",void 0),v=(0,s._)([(0,d.j)("esri.views.layers.support.Path")],v);const f=v,b=r.Z.ofType({key:"type",base:null,typeMap:{rect:c.Z,path:f,geometry:y.Z}}),m=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new b,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new n.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new h.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,o.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),o.tX),(0,o.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),o.tX),(0,o.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),o.tX),(0,o.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),o.tX),(0,o.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),o.tX),(0,o.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),o.tX),(0,o.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),o.tX),(0,o.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),o.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:i,maxScale:s}=t;return(0,p.o2)(e,i,s)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,i=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),i&&(e.outsideScaleRange=i),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,s._)([(0,l.Cb)()],t.prototype,"attached",void 0),(0,s._)([(0,l.Cb)({type:b,set(e){const t=(0,a.Z)(e,this._get("clips"),b);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"container",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"moving",void 0),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"updateRequested",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"updateSuspended",null),(0,s._)([(0,l.Cb)()],t.prototype,"updating",null),(0,s._)([(0,l.Cb)()],t.prototype,"view",void 0),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,s._)([(0,l.Cb)({type:u.Z})],t.prototype,"highlightOptions",void 0),t=(0,s._)([(0,d.j)("esri.views.2d.layers.LayerView2D")],t),t}},26216:function(e,t,i){i.d(t,{Z:function(){return y}});var s=i(36663),r=i(74396),a=i(31355),n=i(86618),o=i(13802),l=i(61681),d=i(64189),p=i(81977),h=(i(39994),i(4157),i(40266)),u=i(98940);let c=class extends((0,n.IG)((0,d.v)(a.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new u.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";o.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,l.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,s._)([(0,p.Cb)()],c.prototype,"fullOpacity",null),(0,s._)([(0,p.Cb)()],c.prototype,"layer",void 0),(0,s._)([(0,p.Cb)()],c.prototype,"parent",void 0),(0,s._)([(0,p.Cb)({readOnly:!0})],c.prototype,"suspended",null),(0,s._)([(0,p.Cb)({readOnly:!0})],c.prototype,"suspendInfo",null),(0,s._)([(0,p.Cb)({readOnly:!0})],c.prototype,"legendEnabled",null),(0,s._)([(0,p.Cb)({type:Boolean,readOnly:!0})],c.prototype,"updating",null),(0,s._)([(0,p.Cb)({readOnly:!0})],c.prototype,"updatingProgress",null),(0,s._)([(0,p.Cb)()],c.prototype,"visible",null),(0,s._)([(0,p.Cb)()],c.prototype,"view",void 0),c=(0,s._)([(0,h.j)("esri.views.layers.LayerView")],c);const y=c},88723:function(e,t,i){i.d(t,{Z:function(){return y}});var s,r=i(36663),a=(i(91957),i(81977)),n=(i(39994),i(13802),i(4157),i(40266)),o=i(20031),l=i(53736),d=i(96294),p=i(91772),h=i(89542);const u={base:o.Z,key:"type",typeMap:{extent:p.Z,polygon:h.Z}};let c=s=class extends d.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new s({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,a.Cb)({types:u,json:{read:l.im,write:!0}})],c.prototype,"geometry",void 0),c=s=(0,r._)([(0,n.j)("esri.views.layers.support.Geometry")],c);const y=c}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4372.e4ab29d41fbbb9a73d89.js b/docs/sentinel1-explorer/4372.e4ab29d41fbbb9a73d89.js new file mode 100644 index 00000000..6d5af56e --- /dev/null +++ b/docs/sentinel1-explorer/4372.e4ab29d41fbbb9a73d89.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4372],{14372:function(e,t,i){i.r(t),i.d(t,{default:function(){return v}});var s=i(36663),r=i(80085),n=i(7753),a=i(6865),h=i(23148),o=i(61681),l=i(81977),c=(i(39994),i(13802),i(40266)),u=i(26991),d=i(66878),g=i(68114),p=i(18133),_=i(91792),f=i(26216);let m=class extends((0,d.y)(f.Z)){constructor(){super(...arguments),this._highlightCounter=new _.i}attach(){this.graphicsView=new p.Z({requestUpdateCallback:()=>this.requestUpdate(),view:this.view,graphics:this.layer.graphics,container:new g.Z(this.view.featuresTilingScheme),layerId:this.layer.id}),this.container.addChild(this.graphicsView.container),this.addAttachHandles(this.layer.on("graphic-update",this.graphicsView.graphicUpdateHandler)),this._updateHighlight()}detach(){this.container.removeAllChildren(),this.graphicsView=(0,o.SC)(this.graphicsView)}async hitTest(e){return this.graphicsView?this.graphicsView.hitTest(e).map((t=>({type:"graphic",graphic:t,mapPoint:e,layer:this.layer}))):null}queryGraphics(){return Promise.resolve(this.graphicsView.graphics)}update(e){this.graphicsView.processUpdate(e)}moveStart(){}viewChange(){this.graphicsView.viewChange()}moveEnd(){}isUpdating(){return!this.graphicsView||this.graphicsView.updating}highlight(e,t="highlight"){let i;"number"==typeof e?i=[e]:e instanceof r.Z?i=[e.uid]:Array.isArray(e)&&e.length>0?i="number"==typeof e[0]?e:e.map((e=>e&&e.uid)):a.Z.isCollection(e)&&e.length>0&&(i=e.map((e=>e&&e.uid)).toArray());const s=i?.filter(n.pC);return s?.length?(this._addHighlight(s,t),(0,h.kB)((()=>this._removeHighlight(s,t)))):(0,h.kB)()}_addHighlight(e,t){this._highlightCounter.addReason(e,t),this._updateHighlight()}_removeHighlight(e,t){this._highlightCounter.deleteReason(e,t),this._updateHighlight()}_updateHighlight(){const e=[];for(const t of this._highlightCounter.ids()){const i=this._highlightCounter.getHighestReason(t),s=(0,u.ck)(i);e.push({objectId:t,highlightFlags:s})}this.graphicsView?.setHighlight(e)}};(0,s._)([(0,l.Cb)()],m.prototype,"graphicsView",void 0),m=(0,s._)([(0,c.j)("esri.views.2d.layers.GraphicsLayerView2D")],m);const v=m},81110:function(e,t,i){i.d(t,{K:function(){return S}});var s=i(61681),r=i(24778),n=i(38716),a=i(16699),h=i(56144),o=i(77206);let l=0;function c(e,t,i){return new a.o((0,o.W)(l++),e,e.meshWriter.name,t,i)}const u={geometry:{visualVariableColor:null,visualVariableOpacity:null,visualVariableSizeMinMaxValue:null,visualVariableSizeScaleStops:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null,visualVariableRotation:null}};class d{constructor(){this.instances={fill:c(h.k2.fill,u,{zoomRange:!0}),marker:c(h.k2.marker,u,{zoomRange:!0}),line:c(h.k2.line,u,{zoomRange:!0}),text:c(h.k2.text,u,{zoomRange:!0,referenceSymbol:!1,clipAngle:!1}),complexFill:c(h.k2.complexFill,u,{zoomRange:!0}),texturedLine:c(h.k2.texturedLine,u,{zoomRange:!0})},this._instancesById=Object.values(this.instances).reduce(((e,t)=>(e.set(t.instanceId,t),e)),new Map)}getInstance(e){return this._instancesById.get(e)}}var g=i(46332),p=i(38642),_=i(45867),f=i(17703),m=i(29927),v=i(51118),y=i(64429),w=i(78951),b=i(91907),x=i(29620);const C=Math.PI/180;class R extends v.s{constructor(e){super(),this._program=null,this._vao=null,this._vertexBuffer=null,this._indexBuffer=null,this._dvsMat3=(0,p.Ue)(),this._localOrigin={x:0,y:0},this._getBounds=e}destroy(){this._vao&&(this._vao.dispose(),this._vao=null,this._vertexBuffer=null,this._indexBuffer=null),this._program=(0,s.M2)(this._program)}doRender(e){const{context:t}=e,i=this._getBounds();if(i.length<1)return;this._createShaderProgram(t),this._updateMatricesAndLocalOrigin(e),this._updateBufferData(t,i),t.setBlendingEnabled(!0),t.setDepthTestEnabled(!1),t.setStencilWriteMask(0),t.setStencilTestEnabled(!1),t.setBlendFunction(b.zi.ONE,b.zi.ONE_MINUS_SRC_ALPHA),t.setColorMask(!0,!0,!0,!0);const s=this._program;t.bindVAO(this._vao),t.useProgram(s),s.setUniformMatrix3fv("u_dvsMat3",this._dvsMat3),t.gl.lineWidth(1),t.drawElements(b.MX.LINES,8*i.length,b.g.UNSIGNED_INT,0),t.bindVAO()}_createTransforms(){return{displayViewScreenMat3:(0,p.Ue)()}}_createShaderProgram(e){if(this._program)return;this._program=e.programCache.acquire("precision highp float;\n uniform mat3 u_dvsMat3;\n\n attribute vec2 a_position;\n\n void main() {\n mediump vec3 pos = u_dvsMat3 * vec3(a_position, 1.0);\n gl_Position = vec4(pos.xy, 0.0, 1.0);\n }","precision mediump float;\n void main() {\n gl_FragColor = vec4(0.75, 0.0, 0.0, 0.75);\n }",V().attributes)}_updateMatricesAndLocalOrigin(e){const{state:t}=e,{displayMat3:i,size:s,resolution:r,pixelRatio:n,rotation:a,viewpoint:h}=t,o=C*a,{x:l,y:c}=h.targetGeometry,u=(0,m.or)(l,t.spatialReference);this._localOrigin.x=u,this._localOrigin.y=c;const d=n*s[0],p=n*s[1],v=r*d,y=r*p,w=(0,g.yR)(this._dvsMat3);(0,g.Jp)(w,w,i),(0,g.Iu)(w,w,(0,_.al)(d/2,p/2)),(0,g.bA)(w,w,(0,f.al)(s[0]/v,-p/y,1)),(0,g.U1)(w,w,-o)}_updateBufferData(e,t){const{x:i,y:s}=this._localOrigin,r=8*t.length,n=new Float32Array(r),a=new Uint32Array(8*t.length);let h=0,o=0;for(const e of t)e&&(n[2*h]=e[0]-i,n[2*h+1]=e[1]-s,n[2*h+2]=e[0]-i,n[2*h+3]=e[3]-s,n[2*h+4]=e[2]-i,n[2*h+5]=e[3]-s,n[2*h+6]=e[2]-i,n[2*h+7]=e[1]-s,a[o]=h+0,a[o+1]=h+3,a[o+2]=h+3,a[o+3]=h+2,a[o+4]=h+2,a[o+5]=h+1,a[o+6]=h+1,a[o+7]=h+0,h+=4,o+=8);if(this._vertexBuffer?this._vertexBuffer.setData(n.buffer):this._vertexBuffer=w.f.createVertex(e,b.l1.DYNAMIC_DRAW,n.buffer),this._indexBuffer?this._indexBuffer.setData(a):this._indexBuffer=w.f.createIndex(e,b.l1.DYNAMIC_DRAW,a),!this._vao){const t=V();this._vao=new x.U(e,t.attributes,t.bufferLayouts,{geometry:this._vertexBuffer},this._indexBuffer)}}}const V=()=>(0,y.cM)("bounds",{geometry:[{location:0,name:"a_position",count:2,type:b.g.FLOAT}]});class S extends r.b{constructor(e){super(e),this._instanceStore=new d,this.checkHighlight=()=>!0}destroy(){super.destroy(),this._boundsRenderer=(0,s.SC)(this._boundsRenderer)}get instanceStore(){return this._instanceStore}enableRenderingBounds(e){this._boundsRenderer=new R(e),this.requestRender()}get hasHighlight(){return this.checkHighlight()}onTileData(e,t){e.onMessage(t),this.contains(e)||this.addChild(e),this.requestRender()}_renderChildren(e,t){e.selection=t;for(const t of this.children){if(!t.visible)continue;const i=t.getDisplayList(e.drawPhase,this._instanceStore,n.gl.STRICT_ORDER);i?.render(e)}}}},68114:function(e,t,i){i.d(t,{Z:function(){return a}});var s=i(38716),r=i(81110),n=i(41214);class a extends r.K{renderChildren(e){for(const t of this.children)t.setTransform(e.state);if(super.renderChildren(e),this.attributeView.update(),this.children.some((e=>e.hasData))){switch(e.drawPhase){case s.jx.MAP:this._renderChildren(e,s.Xq.All);break;case s.jx.HIGHLIGHT:this.hasHighlight&&this._renderHighlight(e)}this._boundsRenderer&&this._boundsRenderer.doRender(e)}}_renderHighlight(e){(0,n.P9)(e,!1,(e=>{this._renderChildren(e,s.Xq.Highlight)}))}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4417.6f29920b5c8b093cec09.js b/docs/sentinel1-explorer/4417.6f29920b5c8b093cec09.js new file mode 100644 index 00000000..fc6fbe27 --- /dev/null +++ b/docs/sentinel1-explorer/4417.6f29920b5c8b093cec09.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4417],{84417:function(e,t,o){o.r(t),o.d(t,{default:function(){return F}});var r=o(36663),i=o(51366),s=o(66341),l=(o(4905),o(15842)),n=o(78668),a=o(3466),y=o(81977),p=(o(39994),o(13802),o(4157),o(34248)),u=o(40266),d=o(91772),h=o(35925),c=o(38481),S=o(27668),m=o(43330),f=o(18241),g=o(12478),v=o(95874),b=o(51599),C=o(18251),_=o(15498),k=o(86036),G=o(1759),w=o(43411);const x=["atom","xml"],R={base:C.Z,key:"type",typeMap:{"simple-line":_.Z},errorContext:"symbol"},Z={base:C.Z,key:"type",typeMap:{"picture-marker":k.Z,"simple-marker":G.Z},errorContext:"symbol"},P={base:C.Z,key:"type",typeMap:{"simple-fill":w.Z},errorContext:"symbol"};let j=class extends((0,S.h)((0,g.Q)((0,m.q)((0,f.I)((0,v.M)((0,l.R)(c.Z))))))){constructor(...e){super(...e),this.description=null,this.fullExtent=null,this.legendEnabled=!0,this.lineSymbol=null,this.pointSymbol=null,this.polygonSymbol=null,this.operationalLayerType="GeoRSS",this.url=null,this.type="geo-rss"}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}readFeatureCollections(e,t){return t.featureCollection.layers.forEach((e=>{const t=e.layerDefinition.drawingInfo.renderer.symbol;t&&"esriSFS"===t.type&&t.outline?.style.includes("esriSFS")&&(t.outline.style="esriSLSSolid")})),t.featureCollection.layers}get hasPoints(){return this._hasGeometry("esriGeometryPoint")}get hasPolylines(){return this._hasGeometry("esriGeometryPolyline")}get hasPolygons(){return this._hasGeometry("esriGeometryPolygon")}get title(){const e=this._get("title");return e&&"defaults"!==this.originOf("title")?e:this.url?(0,a.vt)(this.url,x)||"GeoRSS":e||""}set title(e){this._set("title",e)}load(e){const t=null!=e?e.signal:null;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Map Service","Feature Service","Feature Collection","Scene Service"]},e).catch(n.r9).then((()=>this._fetchService(t))).then((e=>{this.read(e,{origin:"service"})}))),Promise.resolve(this)}async hasDataChanged(){const e=await this._fetchService();return this.read(e,{origin:"service",ignoreDefaults:!0}),!0}async _fetchService(e){const t=this.spatialReference,{data:o}=await(0,s.Z)(i.default.geoRSSServiceUrl,{query:{url:this.url,refresh:!!this.loaded||void 0,outSR:(0,h.oR)(t)?void 0:t.wkid??JSON.stringify(t)},signal:e});return o}_hasGeometry(e){return this.featureCollections?.some((t=>t.featureSet?.geometryType===e&&t.featureSet.features?.length>0))??!1}};(0,r._)([(0,y.Cb)()],j.prototype,"description",void 0),(0,r._)([(0,y.Cb)()],j.prototype,"featureCollections",void 0),(0,r._)([(0,p.r)("service","featureCollections",["featureCollection.layers"])],j.prototype,"readFeatureCollections",null),(0,r._)([(0,y.Cb)({type:d.Z,json:{name:"lookAtExtent"}})],j.prototype,"fullExtent",void 0),(0,r._)([(0,y.Cb)(b.id)],j.prototype,"id",void 0),(0,r._)([(0,y.Cb)(b.rn)],j.prototype,"legendEnabled",void 0),(0,r._)([(0,y.Cb)({types:R,json:{write:!0}})],j.prototype,"lineSymbol",void 0),(0,r._)([(0,y.Cb)({type:["show","hide"]})],j.prototype,"listMode",void 0),(0,r._)([(0,y.Cb)({types:Z,json:{write:!0}})],j.prototype,"pointSymbol",void 0),(0,r._)([(0,y.Cb)({types:P,json:{write:!0}})],j.prototype,"polygonSymbol",void 0),(0,r._)([(0,y.Cb)({type:["GeoRSS"]})],j.prototype,"operationalLayerType",void 0),(0,r._)([(0,y.Cb)(b.HQ)],j.prototype,"url",void 0),(0,r._)([(0,y.Cb)({json:{origins:{service:{read:{source:"name",reader:e=>e||void 0}}}}})],j.prototype,"title",null),(0,r._)([(0,y.Cb)({readOnly:!0,json:{read:!1},value:"geo-rss"})],j.prototype,"type",void 0),j=(0,r._)([(0,u.j)("esri.layers.GeoRSSLayer")],j);const F=j}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/442.709a2819b79e6ce60e84.js b/docs/sentinel1-explorer/442.709a2819b79e6ce60e84.js new file mode 100644 index 00000000..50b0ff27 --- /dev/null +++ b/docs/sentinel1-explorer/442.709a2819b79e6ce60e84.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[442],{97992:function(e,t,n){n.d(t,{Z:function(){return c}});var i=n(36663),s=n(74396),o=n(7753),r=n(41151),l=n(86618),p=n(82064),a=n(81977),u=(n(39994),n(13802),n(40266));let y=0,d=class extends((0,p.eC)((0,r.J)((0,l.IG)(s.Z)))){constructor(e){super(e),this.id=`${Date.now().toString(16)}-analysis-${y++}`,this.title=null}get parent(){return this._get("parent")}set parent(e){const t=this.parent;if(null!=t)switch(t.type){case"line-of-sight":case"dimension":t.releaseAnalysis(this);break;case"2d":case"3d":t.analyses.includes(this)&&t.analyses.remove(this)}this._set("parent",e)}get isEditable(){return this.requiredPropertiesForEditing.every(o.pC)}};(0,i._)([(0,a.Cb)({type:String,constructOnly:!0,clonable:!1})],d.prototype,"id",void 0),(0,i._)([(0,a.Cb)({type:String})],d.prototype,"title",void 0),(0,i._)([(0,a.Cb)({clonable:!1,value:null})],d.prototype,"parent",null),(0,i._)([(0,a.Cb)({readOnly:!0})],d.prototype,"isEditable",null),d=(0,i._)([(0,u.j)("esri.analysis.Analysis")],d);const c=d},10442:function(e,t,n){n.r(t),n.d(t,{default:function(){return E}});var i=n(36663),s=n(97992),o=n(30936),r=n(41151),l=n(82064),p=n(95550),a=n(81977),u=n(7283),y=(n(4157),n(39994),n(40266));let d=class extends((0,l.eC)(r.j)){constructor(e){super(e),this.type="simple",this.color=new o.Z("black"),this.lineSize=2,this.fontSize=10,this.textColor=new o.Z("black"),this.textBackgroundColor=new o.Z([255,255,255,.6])}};(0,i._)([(0,a.Cb)({type:["simple"],readOnly:!0,json:{write:{isRequired:!0}}})],d.prototype,"type",void 0),(0,i._)([(0,a.Cb)({type:o.Z,nonNullable:!0,json:{type:[u.z8],write:{isRequired:!0}}})],d.prototype,"color",void 0),(0,i._)([(0,a.Cb)({type:Number,cast:p.t_,nonNullable:!0,range:{min:(0,p.Wz)(1)},json:{write:{isRequired:!0}}})],d.prototype,"lineSize",void 0),(0,i._)([(0,a.Cb)({type:Number,cast:p.t_,nonNullable:!0,json:{write:{isRequired:!0}}})],d.prototype,"fontSize",void 0),(0,i._)([(0,a.Cb)({type:o.Z,nonNullable:!0,json:{type:[u.z8],write:{isRequired:!0}}})],d.prototype,"textColor",void 0),(0,i._)([(0,a.Cb)({type:o.Z,nonNullable:!0,json:{type:[u.z8],write:{isRequired:!0}}})],d.prototype,"textBackgroundColor",void 0),d=(0,i._)([(0,y.j)("esri.analysis.DimensionSimpleStyle")],d);const c=d;var h;n(91957);!function(e){e.Horizontal="horizontal",e.Vertical="vertical",e.Direct="direct"}(h||(h={}));const b=[h.Horizontal,h.Vertical,h.Direct];var m=n(16068),_=n(69236),g=n(67666);let C=class extends((0,l.eC)(r.j)){constructor(e){super(e),this.type="length",this.startPoint=null,this.endPoint=null,this.measureType=h.Direct,this.offset=0,this.orientation=0}};(0,i._)([(0,a.Cb)({type:["length"],json:{write:{isRequired:!0}}})],C.prototype,"type",void 0),(0,i._)([(0,a.Cb)({type:g.Z,json:{write:!0}})],C.prototype,"startPoint",void 0),(0,i._)([(0,a.Cb)({type:g.Z,json:{write:!0}})],C.prototype,"endPoint",void 0),(0,i._)([(0,a.Cb)({type:b,nonNullable:!0,json:{write:{isRequired:!0}}})],C.prototype,"measureType",void 0),(0,i._)([(0,a.Cb)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}})],C.prototype,"offset",void 0),(0,i._)([(0,a.Cb)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),(0,_.p)((e=>m.BV.normalize((0,u.q9)(e),0,!0)))],C.prototype,"orientation",void 0),C=(0,i._)([(0,y.j)("esri.analysis.LengthDimension")],C);const f=C;var w=n(6865),v=n(58811),x=n(76868),P=(n(13802),n(91772)),j=n(28105);const R=w.Z.ofType(f);let N=class extends s.Z{constructor(e){super(e),this.type="dimension",this.style=new c,this.extent=null}initialize(){this.addHandles((0,x.YP)((()=>this._computeExtent()),(e=>{null==e?.pending&&this._set("extent",null!=e?e.extent:null)}),x.tX))}get dimensions(){return this._get("dimensions")||new R}set dimensions(e){this._set("dimensions",(0,v.Z)(e,this.dimensions,R))}get spatialReference(){for(const e of this.dimensions){if(null!=e.startPoint)return e.startPoint.spatialReference;if(null!=e.endPoint)return e.endPoint.spatialReference}return null}get requiredPropertiesForEditing(){return this.dimensions.reduce(((e,t)=>(e.push(t.startPoint,t.endPoint),e)),[])}async waitComputeExtent(){const e=this._computeExtent();return null!=e?e.pending:Promise.resolve()}_computeExtent(){const e=this.spatialReference;if(null==e)return{pending:null,extent:null};const t=[];for(const e of this.dimensions)null!=e.startPoint&&t.push(e.startPoint),null!=e.endPoint&&t.push(e.endPoint);const n=(0,j.projectOrLoadMany)(t,e);if(null!=n.pending)return{pending:n.pending,extent:null};let i=null;return null!=n.geometries&&(i=n.geometries.reduce(((e,t)=>null==e?null!=t?P.Z.fromPoint(t):null:null!=t?e.union(P.Z.fromPoint(t)):e),null)),{pending:null,extent:i}}clear(){this.dimensions.removeAll()}};(0,i._)([(0,a.Cb)({type:["dimension"]})],N.prototype,"type",void 0),(0,i._)([(0,a.Cb)({cast:v.R,type:R,nonNullable:!0})],N.prototype,"dimensions",null),(0,i._)([(0,a.Cb)({readOnly:!0})],N.prototype,"spatialReference",null),(0,i._)([(0,a.Cb)({types:{key:"type",base:null,typeMap:{simple:c}},nonNullable:!0})],N.prototype,"style",void 0),(0,i._)([(0,a.Cb)({value:null,readOnly:!0})],N.prototype,"extent",void 0),(0,i._)([(0,a.Cb)({readOnly:!0})],N.prototype,"requiredPropertiesForEditing",null),N=(0,i._)([(0,y.j)("esri.analysis.DimensionAnalysis")],N);const Z=N;var O=n(15842),q=n(39835),z=n(38481),S=n(43330);let D=class extends((0,S.q)((0,O.R)(z.Z))){constructor(e){if(super(e),this.type="dimension",this.operationalLayerType="ArcGISDimensionLayer",this.source=new Z,this.opacity=1,e){const{source:t,style:n}=e;t&&n&&(t.style=n)}}initialize(){this.addHandles([(0,x.YP)((()=>this.source),((e,t)=>{null!=t&&t.parent===this&&(t.parent=null),null!=e&&(e.parent=this)}),x.tX)])}async load(){return this.addResolvingPromise(this.source.waitComputeExtent()),this}get spatialReference(){return this.source.spatialReference}get style(){return this.source.style}set style(e){this.source.style=e}get fullExtent(){return this.source.extent}releaseAnalysis(e){this.source===e&&(this.source=new Z)}get analysis(){return this.source}set analysis(e){this.source=e}get dimensions(){return this.source.dimensions}set dimensions(e){this.source.dimensions=e}writeDimensions(e,t,n,i){t.dimensions=e.filter((({startPoint:e,endPoint:t})=>null!=e&&null!=t)).map((e=>e.toJSON(i))).toJSON()}};(0,i._)([(0,a.Cb)({json:{read:!1},readOnly:!0})],D.prototype,"type",void 0),(0,i._)([(0,a.Cb)({type:["ArcGISDimensionLayer"]})],D.prototype,"operationalLayerType",void 0),(0,i._)([(0,a.Cb)({nonNullable:!0})],D.prototype,"source",void 0),(0,i._)([(0,a.Cb)({readOnly:!0})],D.prototype,"spatialReference",null),(0,i._)([(0,a.Cb)({types:{key:"type",base:null,typeMap:{simple:c}},json:{write:{ignoreOrigin:!0}}})],D.prototype,"style",null),(0,i._)([(0,a.Cb)({readOnly:!0})],D.prototype,"fullExtent",null),(0,i._)([(0,a.Cb)({readOnly:!0,json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}}})],D.prototype,"opacity",void 0),(0,i._)([(0,a.Cb)({type:["show","hide"]})],D.prototype,"listMode",void 0),(0,i._)([(0,a.Cb)({type:w.Z.ofType(f),json:{write:{ignoreOrigin:!0},origins:{"web-scene":{write:{ignoreOrigin:!0}}}}})],D.prototype,"dimensions",null),(0,i._)([(0,q.c)("web-scene","dimensions")],D.prototype,"writeDimensions",null),D=(0,i._)([(0,y.j)("esri.layers.DimensionLayer")],D);const E=D}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4420.c057f987c0769397f49e.js b/docs/sentinel1-explorer/4420.c057f987c0769397f49e.js new file mode 100644 index 00000000..00874b99 --- /dev/null +++ b/docs/sentinel1-explorer/4420.c057f987c0769397f49e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4420],{66318:function(e,t,r){function n(e){return null!=a(e)||null!=s(e)}function o(e){return u.test(e)}function i(e){return a(e)??s(e)}function s(e){const t=new Date(e);return function(e,t){if(Number.isNaN(e.getTime()))return!1;let r=!0;if(p&&/\d+\W*$/.test(t)){const e=t.match(/[a-zA-Z]{2,}/);if(e){let t=!1,n=0;for(;!t&&n<=e.length;)t=!l.test(e[n]),n++;r=!t}}return r}(t,e)?Number.isNaN(t.getTime())?null:t.getTime()-6e4*t.getTimezoneOffset():null}function a(e){const t=u.exec(e);if(!t?.groups)return null;const r=t.groups,n=+r.year,o=+r.month-1,i=+r.day,s=+(r.hours??"0"),a=+(r.minutes??"0"),l=+(r.seconds??"0");if(s>23)return null;if(a>59)return null;if(l>59)return null;const p=r.ms??"0",c=p?+p.padEnd(3,"0").substring(0,3):0;let d;if(r.isUTC||!r.offsetSign)d=Date.UTC(n,o,i,s,a,l,c);else{const e=+r.offsetHours,t=+r.offsetMinutes;d=6e4*("+"===r.offsetSign?-1:1)*(60*e+t)+Date.UTC(n,o,i,s,a,l,c)}return Number.isNaN(d)?null:d}r.d(t,{mu:function(){return o},of:function(){return n},sG:function(){return i}});const u=/^(?:(?-?\d{4,})-(?\d{2})-(?\d{2}))(?:T(?\d{2}):(?\d{2}):(?\d{2})(?:\.(?\d+))?)?(?:(?Z)|(?:(?\+|-)(?\d{2}):(?\d{2})))?$/;const l=/^((jan(uary)?)|(feb(ruary)?)|(mar(ch)?)|(apr(il)?)|(may)|(jun(e)?)|(jul(y)?)|(aug(ust)?)|(sep(tember)?)|(oct(ober)?)|(nov(ember)?)|(dec(ember)?)|(am)|(pm)|(gmt)|(utc))$/i,p=!Number.isNaN(new Date("technology 10").getTime())},84420:function(e,t,r){r.r(t),r.d(t,{default:function(){return V}});var n=r(36663),o=(r(91957),r(80020)),i=(r(86004),r(55565),r(16192),r(71297),r(878),r(22836),r(50172),r(72043),r(72506),r(54021)),s=r(15842),a=r(86745),u=r(3466),l=r(81977),p=r(7283),c=(r(4157),r(39994)),d=r(40266),y=r(39835),f=r(59659),m=r(38481),g=r(70375),h=r(68309),w=r(13802),b=r(78668),C=r(62517),F=r(40400),S=r(28727),T=r(51211),v=r(72559),x=r(91772);let R=class extends h.Z{constructor(){super(...arguments),this._connection=null,this._workerHandler=null,this.capabilities=(0,F.MS)(!1,!1),this.type="wfs",this.refresh=(0,b.Ds)((async()=>{await this.load();const e={customParameters:this.layer.customParameters,maxRecordCount:this.layer.maxRecordCount,maxTotalRecordCount:this.layer.maxTotalRecordCount,maxPageCount:this.layer.maxPageCount},{extent:t}=await this._workerHandler.refresh(e);return t&&(this.sourceJSON.extent=t),{dataChanged:!0,updates:{extent:this.sourceJSON.extent}}}))}load(e){const t=null!=e?e.signal:null;return this.addResolvingPromise(this._startWorker({signal:t})),Promise.resolve(this)}destroy(){this._connection?.close(),this._connection=null,this._workerHandler=null}async openPorts(){return await this.load(),this._connection.openPorts()}async queryFeatures(e,t={}){const r=await this.queryFeaturesJSON(e,t);return T.Z.fromJSON(r)}async queryFeaturesJSON(e,t={}){return await this.load(t),this._workerHandler.queryFeatures(e?e.toJSON():void 0,t)}async queryFeatureCount(e,t={}){return await this.load(t),this._workerHandler.queryFeatureCount(e?e.toJSON():void 0,t)}async queryObjectIds(e,t={}){return await this.load(t),this._workerHandler.queryObjectIds(e?e.toJSON():void 0,t)}async queryExtent(e,t={}){await this.load(t);const r=await this._workerHandler.queryExtent(e?e.toJSON():void 0,t);return{count:r.count,extent:x.Z.fromJSON(r.extent)}}async querySnapping(e,t={}){return await this.load(t),this._workerHandler.querySnapping(e,t)}async _createLoadOptions(e){const{url:t,customParameters:r,name:n,namespaceUri:o,fields:i,geometryType:s,maxRecordCount:a,maxPageCount:u,maxTotalRecordCount:l,swapXY:p}=this.layer,c="defaults"===this.layer.originOf("spatialReference")?void 0:this.layer.spatialReference;if(!t)throw new g.Z("wfs-layer:missing-url","WFSLayer must be created with a url");this.wfsCapabilities||(this.wfsCapabilities=await(0,S.FU)(t,{customParameters:r,...e}));const d=["fields","geometryType","name","namespaceUri","swapXY"].some((e=>null==this.layer[e])),y=d?await(0,S.be)(this.wfsCapabilities,n,o,{spatialReference:c,customParameters:r,signal:e?.signal}):{...(0,S.eB)(i??[]),geometryType:s,name:n,namespaceUri:o,spatialReference:c,swapXY:p},m=(0,S.ft)(this.wfsCapabilities.readFeatureTypes(),y.name,y.namespaceUri),h=f.M.toJSON(y.geometryType),{operations:w}=this.wfsCapabilities,b=w.GetFeature.url,C=w.GetFeature.outputFormat;return{customParameters:r,featureType:m,fields:y.fields?.map((e=>e.toJSON()))??[],geometryField:y.geometryField,geometryType:h,getFeatureUrl:b,getFeatureOutputFormat:C,maxRecordCount:a,maxPageCount:u,maxTotalRecordCount:l,objectIdField:y.objectIdField,spatialReference:y.spatialReference?.toJSON(),swapXY:!!y.swapXY}}async _startWorker(e){const[t,r]=await(0,b.as)([this._createLoadOptions(e),(0,C.bA)("WFSSourceWorker",{...e,strategy:(0,c.Z)("feature-layers-workers")?"dedicated":"local",registryTarget:this})]),n=t.error||r.error||null,o=r.value||null;if(n)throw o&&o.close(),n;const i=t.value;this._connection=r.value,this._workerHandler=this._connection.createInvokeProxy();const s=await this._workerHandler.load(i,e);for(const e of s.warnings)w.Z.getLogger(this.layer).warn("#load()",`${e.message} (title: '${this.layer.title||"no title"}', id: '${this.layer.id??"no id"}')`,{warning:e});this.sourceJSON={dateFieldsTimeReference:{timeZoneIANA:v.pt},extent:s.extent,fields:i.fields,geometryType:i.geometryType,objectIdField:i.objectIdField,geometryField:i.geometryField,drawingInfo:(0,F.bU)(i.geometryType),name:i.featureType.title,wfsInfo:{name:i.featureType.name,featureUrl:i.getFeatureUrl,maxFeatures:i.maxRecordCount,swapXY:i.swapXY,supportedSpatialReferences:i.featureType.supportedSpatialReferences,version:"2.0.0",wfsNamespace:i.featureType.namespaceUri}}}};(0,n._)([(0,l.Cb)()],R.prototype,"capabilities",void 0),(0,n._)([(0,l.Cb)({constructOnly:!0})],R.prototype,"layer",void 0),(0,n._)([(0,l.Cb)()],R.prototype,"sourceJSON",void 0),(0,n._)([(0,l.Cb)()],R.prototype,"type",void 0),(0,n._)([(0,l.Cb)()],R.prototype,"wfsCapabilities",void 0),R=(0,n._)([(0,d.j)("esri.layers.graphics.sources.WFSSource")],R);var P,_=r(27668),O=r(63989),E=r(22368),I=r(82733),N=r(43330),k=r(91610),Z=r(18241),j=r(12478),A=r(95874),U=r(2030),G=r(51599),q=r(12512),D=r(89076),M=r(14845),$=r(26732),H=r(49341),L=r(14136),W=r(10171),Y=r(14685);const Q=(0,D.v)();let J=P=class extends((0,k.c)((0,O.N)((0,I.M)((0,E.b)((0,_.h)((0,U.n)((0,j.Q)((0,A.M)((0,N.q)((0,Z.I)((0,s.R)(m.Z)))))))))))){static fromWFSLayerInfo(e){const{customParameters:t,fields:r,geometryField:n,geometryType:o,name:i,namespaceUri:s,objectIdField:a,spatialReference:u,swapXY:l,url:p,wfsCapabilities:c}=e;return new P({customParameters:t,fields:r,geometryField:n,geometryType:o,name:i,namespaceUri:s,objectIdField:a,spatialReference:u,swapXY:l,url:p,wfsCapabilities:c})}constructor(e){super(e),this.copyright=null,this.customParameters=null,this.dateFieldsTimeZone=null,this.definitionExpression=null,this.displayField=null,this.elevationInfo=null,this.featureUrl=void 0,this.fields=null,this.fieldsIndex=null,this.fullExtent=null,this.geometryType=null,this.labelsVisible=!0,this.labelingInfo=null,this.legendEnabled=!0,this.objectIdField=null,this.operationalLayerType="WFS",this.maxRecordCount=3e3,this.maxPageCount=10,this.maxTotalRecordCount=2e5,this.mode=0,this.name=null,this.namespaceUri=null,this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.screenSizePerspectiveEnabled=!0,this.source=new R({layer:this}),this.spatialReference=Y.Z.WGS84,this.spatialReferences=[4326],this.swapXY=void 0,this.title="WFS",this.type="wfs",this.url=null,this.version=void 0}destroy(){this.source?.destroy()}load(e){return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["WFS"]},e).then((()=>this.source.load(e))).then((()=>{this.read(this.source.sourceJSON,{origin:"service",url:this.parsedUrl}),this.revert(["objectIdField","fields","timeInfo","spatialReference","name","namespaceUri"],"service"),(0,M.YN)(this.renderer,this.fieldsIndex),(0,M.UF)(this.timeInfo,this.fieldsIndex)}))),Promise.resolve(this)}get capabilities(){return this.source?.capabilities}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("capabilities"),(this._get("createQueryVersion")||0)+1}get defaultPopupTemplate(){return this.createPopupTemplate()}writeFields(e,t,r){const n=e.filter((e=>e.name!==S.u2));this.geometryField&&n.unshift(new q.Z({name:this.geometryField,alias:this.geometryField,type:"geometry"})),(0,a.RB)(r,n.map((e=>e.toJSON())),t)}get parsedUrl(){return(0,u.mN)(this.url)}set renderer(e){(0,M.YN)(e,this.fieldsIndex),this._set("renderer",e)}get wfsCapabilities(){return this.source?.wfsCapabilities}set wfsCapabilities(e){this.source&&(this.source.wfsCapabilities=e)}createPopupTemplate(e){return(0,W.eZ)(this,e)}createQuery(){const e=new L.Z;e.returnGeometry=!0,e.outFields=["*"],e.where=this.definitionExpression||"1=1";const{timeOffset:t,timeExtent:r}=this;return e.timeExtent=null!=t&&null!=r?r.offset(-t.value,t.unit):r||null,e}getFieldDomain(e,t){return this.getField(e)?.domain}getField(e){return this.fieldsIndex?.get(e)}queryFeatures(e,t){return this.load().then((()=>this.source.queryFeatures(L.Z.from(e)||this.createQuery(),t))).then((e=>{if(e?.features)for(const t of e.features)t.layer=t.sourceLayer=this;return e}))}queryObjectIds(e,t){return this.load().then((()=>this.source.queryObjectIds(L.Z.from(e)||this.createQuery(),t)))}queryFeatureCount(e,t){return this.load().then((()=>this.source.queryFeatureCount(L.Z.from(e)||this.createQuery(),t)))}queryExtent(e,t){return this.load().then((()=>this.source.queryExtent(L.Z.from(e)||this.createQuery(),t)))}async hasDataChanged(){try{const{dataChanged:e,updates:t}=await this.source.refresh();return null!=t&&this.read(t,{origin:"service",url:this.parsedUrl,ignoreDefaults:!0}),e}catch{}return!1}};(0,n._)([(0,l.Cb)({readOnly:!0})],J.prototype,"capabilities",null),(0,n._)([(0,l.Cb)({type:String})],J.prototype,"copyright",void 0),(0,n._)([(0,l.Cb)({readOnly:!0})],J.prototype,"createQueryVersion",null),(0,n._)([(0,l.Cb)({json:{name:"wfsInfo.customParameters",write:{overridePolicy:e=>({enabled:!!(e&&Object.keys(e).length>0),ignoreOrigin:!0})}}})],J.prototype,"customParameters",void 0),(0,n._)([(0,l.Cb)((0,v.mi)("dateFieldsTimeReference"))],J.prototype,"dateFieldsTimeZone",void 0),(0,n._)([(0,l.Cb)({readOnly:!0})],J.prototype,"defaultPopupTemplate",null),(0,n._)([(0,l.Cb)({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],J.prototype,"definitionExpression",void 0),(0,n._)([(0,l.Cb)({type:String})],J.prototype,"displayField",void 0),(0,n._)([(0,l.Cb)(G.PV)],J.prototype,"elevationInfo",void 0),(0,n._)([(0,l.Cb)({type:String,readOnly:!0,json:{name:"wfsInfo.featureUrl",write:{ignoreOrigin:!0,isRequired:!0}}})],J.prototype,"featureUrl",void 0),(0,n._)([(0,l.Cb)({type:[q.Z],json:{name:"layerDefinition.fields",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"fields"}}}})],J.prototype,"fields",void 0),(0,n._)([(0,y.c)("fields")],J.prototype,"writeFields",null),(0,n._)([(0,l.Cb)(Q.fieldsIndex)],J.prototype,"fieldsIndex",void 0),(0,n._)([(0,l.Cb)({type:x.Z,json:{name:"extent"}})],J.prototype,"fullExtent",void 0),(0,n._)([(0,l.Cb)()],J.prototype,"geometryField",void 0),(0,n._)([(0,l.Cb)({type:String,json:{read:{source:"layerDefinition.geometryType",reader:f.M.read},write:{target:"layerDefinition.geometryType",writer:f.M.write,ignoreOrigin:!0},origins:{service:{read:f.M.read}}}})],J.prototype,"geometryType",void 0),(0,n._)([(0,l.Cb)({type:String})],J.prototype,"id",void 0),(0,n._)([(0,l.Cb)(G.iR)],J.prototype,"labelsVisible",void 0),(0,n._)([(0,l.Cb)({type:[$.Z],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:{reader:H.r},write:!0}})],J.prototype,"labelingInfo",void 0),(0,n._)([(0,l.Cb)(G.rn)],J.prototype,"legendEnabled",void 0),(0,n._)([(0,l.Cb)({type:["show","hide"]})],J.prototype,"listMode",void 0),(0,n._)([(0,l.Cb)({type:String})],J.prototype,"objectIdField",void 0),(0,n._)([(0,l.Cb)({type:["WFS"]})],J.prototype,"operationalLayerType",void 0),(0,n._)([(0,l.Cb)({type:p.z8,json:{name:"wfsInfo.maxFeatures",write:{ignoreOrigin:!0,isRequired:!0}}})],J.prototype,"maxRecordCount",void 0),(0,n._)([(0,l.Cb)({type:p.z8})],J.prototype,"maxPageCount",void 0),(0,n._)([(0,l.Cb)({type:p.z8})],J.prototype,"maxTotalRecordCount",void 0),(0,n._)([(0,l.Cb)({type:[0],readOnly:!0,json:{origins:{"web-map":{write:{ignoreOrigin:!0,isRequired:!0}}}}})],J.prototype,"mode",void 0),(0,n._)([(0,l.Cb)({type:String,json:{name:"wfsInfo.name",write:{ignoreOrigin:!0,isRequired:!0}}})],J.prototype,"name",void 0),(0,n._)([(0,l.Cb)({type:String,json:{name:"wfsInfo.wfsNamespace",write:{ignoreOrigin:!0,isRequired:!0}}})],J.prototype,"namespaceUri",void 0),(0,n._)([(0,l.Cb)(G.bT)],J.prototype,"opacity",void 0),(0,n._)([(0,l.Cb)(Q.outFields)],J.prototype,"outFields",void 0),(0,n._)([(0,l.Cb)({readOnly:!0})],J.prototype,"parsedUrl",null),(0,n._)([(0,l.Cb)(G.C_)],J.prototype,"popupEnabled",void 0),(0,n._)([(0,l.Cb)({type:o.Z,json:{name:"popupInfo",write:!0}})],J.prototype,"popupTemplate",void 0),(0,n._)([(0,l.Cb)({types:i.A,json:{origins:{service:{name:"drawingInfo.renderer"},"web-scene":{types:i.o,name:"layerDefinition.drawingInfo.renderer",write:!0}},name:"layerDefinition.drawingInfo.renderer",write:{ignoreOrigin:!0}}})],J.prototype,"renderer",null),(0,n._)([(0,l.Cb)(G.YI)],J.prototype,"screenSizePerspectiveEnabled",void 0),(0,n._)([(0,l.Cb)({readOnly:!0})],J.prototype,"source",void 0),(0,n._)([(0,l.Cb)({type:Y.Z,json:{name:"layerDefinition.spatialReference",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"extent.spatialReference"}}}})],J.prototype,"spatialReference",void 0),(0,n._)([(0,l.Cb)({readOnly:!0,type:[p.z8],json:{name:"wfsInfo.supportedSpatialReferences",write:{ignoreOrigin:!0,isRequired:!0}}})],J.prototype,"spatialReferences",void 0),(0,n._)([(0,l.Cb)({type:Boolean,value:!1,json:{name:"wfsInfo.swapXY",write:{ignoreOrigin:!0,isRequired:!0}}})],J.prototype,"swapXY",void 0),(0,n._)([(0,l.Cb)({json:{write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"name"}}}})],J.prototype,"title",void 0),(0,n._)([(0,l.Cb)({json:{read:!1},readOnly:!0})],J.prototype,"type",void 0),(0,n._)([(0,l.Cb)(G.HQ)],J.prototype,"url",void 0),(0,n._)([(0,l.Cb)({type:String,readOnly:!0,json:{name:"wfsInfo.version",write:{ignoreOrigin:!0,isRequired:!0}}})],J.prototype,"version",void 0),(0,n._)([(0,l.Cb)()],J.prototype,"wfsCapabilities",null),J=P=(0,n._)([(0,d.j)("esri.layers.WFSLayer")],J);const V=J},10287:function(e,t,r){r.d(t,{g:function(){return n}});const n={supportsStatistics:!0,supportsPercentileStatistics:!0,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsCentroid:!0,supportsCacheHint:!1,supportsDistance:!0,supportsDistinct:!0,supportsExtent:!0,supportsGeometryProperties:!1,supportsHavingClause:!0,supportsOrderBy:!0,supportsPagination:!0,supportsQuantization:!0,supportsQuantizationEditMode:!1,supportsQueryGeometry:!0,supportsResultType:!1,supportsSqlExpression:!0,supportsMaxRecordCountFactor:!1,supportsStandardizedQueriesOnly:!0,supportsTopFeaturesQuery:!1,supportsQueryByAnonymous:!0,supportsQueryByOthers:!0,supportsHistoricMoment:!1,supportsFormatPBF:!1,supportsDisjointSpatialRelationship:!0,supportsDefaultSpatialReference:!1,supportsFullTextSearch:!1,supportsCompactGeometry:!1,maxRecordCountFactor:void 0,maxRecordCount:void 0,standardMaxRecordCount:void 0,tileMaxRecordCount:void 0}},61957:function(e,t,r){r.d(t,{O3:function(){return T},lG:function(){return x},my:function(){return v},q9:function(){return p}});var n=r(66318),o=r(70375),i=r(35925),s=r(59958),a=r(15540),u=r(14845);const l={LineString:"esriGeometryPolyline",MultiLineString:"esriGeometryPolyline",MultiPoint:"esriGeometryMultipoint",Point:"esriGeometryPoint",Polygon:"esriGeometryPolygon",MultiPolygon:"esriGeometryPolygon"};function p(e){return l[e]}function*c(e){switch(e.type){case"Feature":yield e;break;case"FeatureCollection":for(const t of e.features)t&&(yield t)}}function*d(e){if(e)switch(e.type){case"Point":yield e.coordinates;break;case"LineString":case"MultiPoint":yield*e.coordinates;break;case"MultiLineString":case"Polygon":for(const t of e.coordinates)yield*t;break;case"MultiPolygon":for(const t of e.coordinates)for(const e of t)yield*e}}function y(e){for(const t of e)if(t.length>2)return!0;return!1}function f(e){let t=0;for(let r=0;r=0;n--)F(e,t[n],r);e.lengths.push(t.length)}function F(e,t,r){const[n,o,i]=t;e.coords.push(n,o),r.hasZ&&e.coords.push(i||0)}function S(e){switch(typeof e){case"string":return(0,n.mu)(e)?"esriFieldTypeDate":"esriFieldTypeString";case"number":return"esriFieldTypeDouble";default:return"unknown"}}function T(e,t=4326){if(!e)throw new o.Z("geojson-layer:empty","GeoJSON data is empty");if("Feature"!==e.type&&"FeatureCollection"!==e.type)throw new o.Z("geojson-layer:unsupported-geojson-object","missing or not supported GeoJSON object type",{data:e});const{crs:r}=e;if(!r)return;const n="string"==typeof r?r:"name"===r.type?r.properties.name:"EPSG"===r.type?r.properties.code:null,s=(0,i.oR)({wkid:t})?new RegExp(".*(CRS84H?|4326)$","i"):new RegExp(`.*(${t})$`,"i");if(!n||!s.test(n))throw new o.Z("geojson:unsupported-crs","unsupported GeoJSON 'crs' member",{crs:r})}function v(e,t={}){const r=[],n=new Set,o=new Set;let i,s=!1,a=null,l=!1,{geometryType:f=null}=t,m=!1;for(const t of c(e)){const{geometry:e,properties:c,id:g}=t;if((!e||(f||(f=p(e.type)),p(e.type)===f))&&(s||(s=y(d(e))),l||(l=null!=g,l&&(i=typeof g,c&&(a=Object.keys(c).filter((e=>c[e]===g))))),c&&a&&l&&null!=g&&(a.length>1?a=a.filter((e=>c[e]===g)):1===a.length&&(a=c[a[0]]===g?a:[])),!m&&c)){let e=!0;for(const t in c){if(n.has(t))continue;const i=c[t];if(null==i){e=!1,o.add(t);continue}const s=S(i);if("unknown"===s){o.add(t);continue}o.delete(t),n.add(t);const a=(0,u.q6)(t);a&&r.push({name:a,alias:t,type:s})}m=e}}const g=(0,u.q6)(1===a?.length&&a[0]||null)??void 0;if(g)for(const e of r)if(e.name===g&&(0,u.H7)(e)){e.type="esriFieldTypeOID";break}return{fields:r,geometryType:f,hasZ:s,objectIdFieldName:g,objectIdFieldType:i,unknownFields:Array.from(o)}}function x(e,t){return Array.from(function*(e,t={}){const{geometryType:r,objectIdField:n}=t;for(const o of e){const{geometry:e,properties:i,id:u}=o;if(e&&p(e.type)!==r)continue;const l=i||{};let c;n&&(c=l[n],null==u||c||(l[n]=c=u));const d=new s.u_(e?g(new a.Z,e,t):null,l,null,c??void 0);yield d}}(c(e),t))}},40400:function(e,t,r){r.d(t,{Dm:function(){return p},Hq:function(){return c},MS:function(){return d},bU:function(){return a}});var n=r(39994),o=r(67134),i=r(10287),s=r(86094);function a(e){return{renderer:{type:"simple",symbol:"esriGeometryPoint"===e||"esriGeometryMultipoint"===e?s.I4:"esriGeometryPolyline"===e?s.ET:s.lF}}}const u=/^[_$a-zA-Z][_$a-zA-Z0-9]*$/;let l=1;function p(e,t){if((0,n.Z)("esri-csp-restrictions"))return()=>({[t]:null,...e});try{let r=`this.${t} = null;`;for(const t in e)r+=`this${u.test(t)?`.${t}`:`["${t}"]`} = ${JSON.stringify(e[t])};`;const n=new Function(`\n return class AttributesClass$${l++} {\n constructor() {\n ${r};\n }\n }\n `)();return()=>new n}catch(r){return()=>({[t]:null,...e})}}function c(e={}){return[{name:"New Feature",description:"",prototype:{attributes:(0,o.d9)(e)}}]}function d(e,t){return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:e},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:t,supportsDelete:t,supportsEditing:t,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:t,supportsExceedsLimitStatistics:!0,supportsAsyncConvert3D:!1},query:i.g,queryRelated:{supportsCount:!0,supportsOrderBy:!0,supportsPagination:!0,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsGeometryUpdate:t,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}},28727:function(e,t,r){r.d(t,{Bm:function(){return M},FU:function(){return E},be:function(){return A},bx:function(){return H},eB:function(){return U},fU:function(){return Q},ft:function(){return j},u2:function(){return b}});r(91957);var n=r(66341),o=r(70375),i=r(99118),s=r(3466),a=r(28105),u=r(35925),l=r(59659),p=r(61957),c=r(94477),d=r(20692),y=r(12512),f=r(14845),m=r(14685),g=r(91772);const h="xlink:href",w="2.0.0",b="__esri_wfs_id__",C="wfs-layer:getWFSLayerTypeInfo-error",F="wfs-layer:empty-service",S="wfs-layer:feature-type-not-found",T="wfs-layer:geojson-not-supported",v="wfs-layer:kvp-encoding-not-supported",x="wfs-layer:malformed-json",R="wfs-layer:unknown-geometry-type",P="wfs-layer:unknown-field-type",_="wfs-layer:unsupported-spatial-reference",O="wfs-layer:unsupported-wfs-version";async function E(e,t){const r=function(e){const t=L(e);(function(e){const t=e.firstElementChild?.getAttribute("version");if(t&&t!==w)throw new o.Z(O,`Unsupported WFS version ${t}. Supported version: ${w}`)})(t),Y(t);const r=t.firstElementChild,n=(0,i.Fs)(function(e){return(0,c.H)(e,{FeatureTypeList:{FeatureType:e=>{const t={typeName:"undefined:undefined",name:"",title:"",description:"",extent:null,namespacePrefix:"",namespaceUri:"",defaultSpatialReference:4326,supportedSpatialReferences:[]},r=new Set;return(0,c.h)(e,{Name:e=>{const{name:r,prefix:n}=W(e.textContent);t.typeName=`${n}:${r}`,t.name=r,t.namespacePrefix=n,t.namespaceUri=e.lookupNamespaceURI(n)},Abstract:e=>{t.description=e.textContent},Title:e=>{t.title=e.textContent},WGS84BoundingBox:e=>{t.extent=function(e){let t,r,n,o;for(const i of e.children)switch(i.localName){case"LowerCorner":[t,r]=i.textContent.split(" ").map((e=>Number.parseFloat(e)));break;case"UpperCorner":[n,o]=i.textContent.split(" ").map((e=>Number.parseFloat(e)))}return{xmin:t,ymin:r,xmax:n,ymax:o,spatialReference:u.YU}}(e)},DefaultCRS:e=>{const n=Z(e);n&&(t.defaultSpatialReference=n,r.add(n))},OtherCRS:e=>{const t=Z(e);t&&r.add(t)}}),t.title||(t.title=t.name),r.add(4326),t.supportedSpatialReferences.push(...r),t}}})}(r));return{operations:k(r),get featureTypes(){return Array.from(n())},readFeatureTypes:n}}((await(0,n.Z)(e,{responseType:"text",query:{SERVICE:"WFS",REQUEST:"GetCapabilities",VERSION:w,...t?.customParameters},signal:t?.signal})).data);return function(e,t){(0,s.$U)(e)&&((0,s.D6)(e,t.operations.DescribeFeatureType.url,!0)&&(t.operations.DescribeFeatureType.url=(0,s.hO)(t.operations.DescribeFeatureType.url)),(0,s.D6)(e,t.operations.GetFeature.url,!0)&&(t.operations.GetFeature.url=(0,s.hO)(t.operations.GetFeature.url)))}(e,r),r}const I=["json","application/json","geojson","application/json; subtype=geojson","application/geo+json"];function N(e){for(const t of I){const r=e.findIndex((e=>e.toLowerCase()===t));if(r>=0)return e[r]}return null}function k(e){let t=!1;const r={GetCapabilities:{url:""},DescribeFeatureType:{url:""},GetFeature:{url:"",outputFormat:null,supportsPagination:!1}},n=[],i=[];if((0,c.h)(e,{OperationsMetadata:{Parameter:e=>{if("outputFormat"===e.getAttribute("name"))return{AllowedValues:{Value:({textContent:e})=>{e&&n.push(e)}}}},Operation:e=>{switch(e.getAttribute("name")){case"GetCapabilities":return{DCP:{HTTP:{Get:e=>{r.GetCapabilities.url=e.getAttribute(h)}}}};case"DescribeFeatureType":return{DCP:{HTTP:{Get:e=>{r.DescribeFeatureType.url=e.getAttribute(h)}}}};case"GetFeature":return{DCP:{HTTP:{Get:e=>{r.GetFeature.url=e.getAttribute(h)}}},Parameter:e=>{if("outputFormat"===e.getAttribute("name"))return{AllowedValues:{Value:({textContent:e})=>{e&&i.push(e)}}}}}}},Constraint:e=>{switch(e.getAttribute("name")){case"KVPEncoding":return{DefaultValue:e=>{t="true"===e.textContent.toLowerCase()}};case"ImplementsResultPaging":return{DefaultValue:e=>{r.GetFeature.supportsPagination="true"===e.textContent.toLowerCase()}}}}}}),r.GetFeature.outputFormat=N(i)??N(n),!t)throw new o.Z(v,"WFS service doesn't support key/value pair (KVP) encoding");if(null==r.GetFeature.outputFormat)throw new o.Z(T,"WFS service doesn't support GeoJSON output format");return r}function Z(e){const t=parseInt(e.textContent?.match(/(?\d+$)/i)?.groups?.wkid??"",10);if(!Number.isNaN(t))return t}function j(e,t,r){return(0,i.sE)(e,(e=>r?e.name===t&&e.namespaceUri===r:e.typeName===t||e.name===t))}async function A(e,t,r,n={}){const{featureType:i,extent:s}=await async function(e,t,r,n={}){const i=e.readFeatureTypes(),s=t?j(i,t,r):i.next().value,{spatialReference:l=new m.Z({wkid:s?.defaultSpatialReference})}=n;if(null==s)throw t?new o.Z(S,`The type '${t}' could not be found in the service`):new o.Z(F,"The service is empty");let p=new g.Z({...s.extent,spatialReference:m.Z.WGS84});if(!(0,u.fS)(p.spatialReference,l))try{await(0,a.initializeProjection)(p.spatialReference,l,void 0,n),p=(0,a.project)(p,l)}catch{throw new o.Z(_,"Projection not supported")}return{extent:p,spatialReference:l,featureType:s}}(e,t,r,n),{spatialReference:l}=Q(e.operations.GetFeature.url,i,n.spatialReference),{fields:p,geometryType:c,swapXY:d,objectIdField:y,geometryField:f}=await async function(e,t,r,n={}){const{typeName:i}=t,[s,a]=await Promise.allSettled([q(e.operations.DescribeFeatureType.url,i,n),G(e,i,r,n)]),u=e=>new o.Z(C,`An error occurred while getting info about the feature type '${i}'`,{error:e});if("rejected"===s.status)throw u(s.reason);if("rejected"===a.status)throw u(a.reason);const{fields:l,errors:p}=s.value??{},c=s.value?.geometryType||a.value?.geometryType,d=a.value?.swapXY??!1;if(null==c)throw new o.Z(R,`The geometry type could not be determined for type '${i}`,{typeName:i,geometryType:c,fields:l,errors:p});return{...U(l??[]),geometryType:c,swapXY:d}}(e,i,l,n);return{url:e.operations.GetCapabilities.url,name:i.name,namespaceUri:i.namespaceUri,fields:p,geometryField:f,geometryType:c,objectIdField:y,spatialReference:n.spatialReference??new m.Z({wkid:i.defaultSpatialReference}),extent:s,swapXY:d,wfsCapabilities:e,customParameters:n.customParameters}}function U(e){const t=e.find((e=>"geometry"===e.type));let r=e.find((e=>"oid"===e.type));return e=e.filter((e=>"geometry"!==e.type)),r||(r=new y.Z({name:b,type:"oid",alias:b}),e.unshift(r)),{geometryField:t?.name??null,objectIdField:r.name,fields:e}}async function G(e,t,r,o={}){let i,s=!1;const[a,u]=await Promise.all([M(e.operations.GetFeature.url,t,r,e.operations.GetFeature.outputFormat,{...o,count:1}),(0,n.Z)(e.operations.GetFeature.url,{responseType:"text",query:$(t,r,void 0,{...o,count:1}),signal:o?.signal})]),c="FeatureCollection"===a.type&&a.features[0]?.geometry;if(c){let e;switch(i=l.M.fromJSON((0,p.q9)(c.type)),c.type){case"Point":e=c.coordinates;break;case"LineString":case"MultiPoint":e=c.coordinates[0];break;case"MultiLineString":case"Polygon":e=c.coordinates[0][0];break;case"MultiPolygon":e=c.coordinates[0][0][0]}const t=/<[^>]*pos[^>]*> *(-?\d+(?:\.\d+)?) (-?\d+(?:\.\d+)?)/.exec(u.data);if(t){const r=e[0].toFixed(3),n=e[1].toFixed(3),o=parseFloat(t[1]).toFixed(3);r===parseFloat(t[2]).toFixed(3)&&n===o&&(s=!0)}}return{geometryType:i,swapXY:s}}async function q(e,t,r){return function(e,t){const{name:r}=W(e),n=L(t);Y(n);const s=(0,i.sE)((0,c.H)(n.firstElementChild,{element:e=>e}),(e=>e.getAttribute("name")===r));if(null!=s){const e=s.getAttribute("type"),t=e?(0,i.sE)((0,c.H)(n.firstElementChild,{complexType:e=>e}),(t=>t.getAttribute("name")===W(e).name)):(0,i.sE)((0,c.H)(s,{complexType:e=>e}),(()=>!0));if(t)return function(e){const t=[],r=[];let n;const i=(0,c.H)(e,{complexContent:{extension:{sequence:{element:e=>e}}}});for(const s of i){const i=s.getAttribute("name");if(!i)continue;let a,u;if(s.hasAttribute("type")?a=W(s.getAttribute("type")).name:(0,c.h)(s,{simpleType:{restriction:e=>(a=W(e.getAttribute("base")).name,{maxLength:e=>{u=+e.getAttribute("value")}})}}),!a)continue;const l="true"===s.getAttribute("nillable");let p=!1;switch(a.toLowerCase()){case"integer":case"nonpositiveinteger":case"negativeinteger":case"long":case"int":case"short":case"byte":case"nonnegativeinteger":case"unsignedlong":case"unsignedint":case"unsignedshort":case"unsignedbyte":case"positiveinteger":r.push(new y.Z({name:i,alias:i,type:"integer",nullable:l,length:(0,f.ZR)("integer")}));break;case"float":case"double":case"decimal":r.push(new y.Z({name:i,alias:i,type:"double",nullable:l,length:(0,f.ZR)("double")}));break;case"boolean":case"string":case"gyearmonth":case"gyear":case"gmonthday":case"gday":case"gmonth":case"anyuri":case"qname":case"notation":case"normalizedstring":case"token":case"language":case"idrefs":case"entities":case"nmtoken":case"nmtokens":case"name":case"ncname":case"id":case"idref":case"entity":case"duration":case"time":r.push(new y.Z({name:i,alias:i,type:"string",nullable:l,length:u??(0,f.ZR)("string")}));break;case"datetime":case"date":r.push(new y.Z({name:i,alias:i,type:"date",nullable:l,length:u??(0,f.ZR)("date")}));break;case"pointpropertytype":n="point",p=!0;break;case"multipointpropertytype":n="multipoint",p=!0;break;case"curvepropertytype":case"multicurvepropertytype":case"multilinestringpropertytype":n="polyline",p=!0;break;case"surfacepropertytype":case"multisurfacepropertytype":case"multipolygonpropertytype":n="polygon",p=!0;break;case"geometrypropertytype":case"multigeometrypropertytype":p=!0,t.push(new o.Z(R,`geometry type '${a}' is not supported`,{type:(new XMLSerializer).serializeToString(e)}));break;default:t.push(new o.Z(P,`Unknown field type '${a}'`,{type:(new XMLSerializer).serializeToString(e)}))}p&&r.push(new y.Z({name:i,alias:i,type:"geometry",nullable:l}))}for(const e of r)if("integer"===e.type&&!e.nullable&&D.has(e.name.toLowerCase())){e.type="oid";break}return{geometryType:n,fields:r,errors:t}}(t)}throw new o.Z(S,`Type '${e}' not found in document`,{document:(new XMLSerializer).serializeToString(n)})}(t,(await(0,n.Z)(e,{responseType:"text",query:{SERVICE:"WFS",REQUEST:"DescribeFeatureType",VERSION:w,TYPENAME:t,TYPENAMES:t,...r?.customParameters},signal:r?.signal})).data)}const D=new Set(["objectid","fid"]);async function M(e,t,r,i,s){let{data:a}=await(0,n.Z)(e,{responseType:"text",query:$(t,r,i,s),signal:s?.signal});a=a.replaceAll(/": +(-?\d+),(\d+)(,)?/g,'": $1.$2$3');try{return JSON.parse(a)}catch(e){throw new o.Z(x,"Error while parsing the response",{response:a,error:e})}}function $(e,t,r,n){const o="number"==typeof t?t:t.wkid;return{SERVICE:"WFS",REQUEST:"GetFeature",VERSION:w,TYPENAMES:e,OUTPUTFORMAT:r,SRSNAME:"EPSG:"+o,STARTINDEX:n?.startIndex,COUNT:n?.count,...n?.customParameters}}async function H(e,t,r){const o=await(0,n.Z)(e,{responseType:"text",query:{SERVICE:"WFS",REQUEST:"GetFeature",VERSION:w,TYPENAMES:t,RESULTTYPE:"hits",...r?.customParameters},signal:r?.signal}),i=/numberMatched=["'](?\d+)["']/gi.exec(o.data);if(i?.groups)return+i.groups.numberMatched}function L(e){return(new DOMParser).parseFromString(e.trim(),"text/xml")}function W(e){const[t,r]=e.split(":");return{prefix:r?t:"",name:r??t}}function Y(e){let t="",r="";if((0,c.h)(e.firstElementChild,{Exception:e=>(t=e.getAttribute("exceptionCode"),{ExceptionText:e=>{r=e.textContent}})}),t)throw new o.Z(`wfs-layer:${t}`,r)}function Q(e,t,r){const n={wkid:t.defaultSpatialReference},o=null!=r?.wkid?{wkid:r.wkid}:n;return{spatialReference:o,getFeatureSpatialReference:(0,d.B5)(e)||o.wkid&&t.supportedSpatialReferences.includes(o.wkid)?{wkid:o.wkid}:{wkid:t.defaultSpatialReference}}}},94477:function(e,t,r){function n(e,t){if(e&&t)for(const r of e.children)if(r.localName in t){const e=t[r.localName];if("function"==typeof e){const t=e(r);t&&n(r,t)}else n(r,e)}}function*o(e,t){for(const r of e.children)if(r.localName in t){const e=t[r.localName];"function"==typeof e?yield e(r):yield*o(r,e)}}r.d(t,{H:function(){return o},h:function(){return n}})}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4512.a5f45bc32f61a1d6e2fe.js b/docs/sentinel1-explorer/4512.a5f45bc32f61a1d6e2fe.js new file mode 100644 index 00000000..8a74ddb0 --- /dev/null +++ b/docs/sentinel1-explorer/4512.a5f45bc32f61a1d6e2fe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4512,8611],{50516:function(e,t,r){r.d(t,{D:function(){return a}});var n=r(71760);function a(e){e?.writtenProperties&&e.writtenProperties.forEach((({target:e,propName:t,newOrigin:r})=>{(0,n.l)(e)&&r&&e.originOf(t)!==r&&e.updateOrigin(t,r)}))}},71760:function(e,t,r){function n(e){return e&&"getAtOrigin"in e&&"originOf"in e}r.d(t,{l:function(){return n}})},14512:function(e,t,r){r.d(t,{save:function(){return h},saveAs:function(){return w}});var n=r(21011),a=r(84513),o=r(31370),s=r(83415);const i="Media Layer",c="media-layer-save",u="media-layer-save-as",p=["media-layer:unsupported-source"];function l(e){return{isValid:"media"===e.type,errorMessage:"Layer.type should be 'media'"}}function f(e){return(0,a.Y)(e,"portal-item",!0)}function d(e){return e.layerJSON}async function m(e,t){const{title:r,fullExtent:n}=e;t.title||=r,t.extent=n?await(0,o.$o)(n):null,(0,o.ck)(t,o.hz.METADATA)}async function h(e,t){return(0,n.a1)({layer:e,itemType:i,validateLayer:l,createJSONContext:e=>f(e),createItemData:d,errorNamePrefix:c,supplementalUnsupportedErrors:p,saveResources:(t,r)=>(0,s.H)(e.resourceReferences,r)},t)}async function w(e,t,r){return(0,n.po)({layer:e,itemType:i,validateLayer:l,createJSONContext:e=>f(e),createItemData:d,errorNamePrefix:u,supplementalUnsupportedErrors:p,newItem:t,setItemProperties:m,saveResources:(t,r)=>(0,s.H)(e.resourceReferences,r)},r)}},21011:function(e,t,r){r.d(t,{DC:function(){return l},Nw:function(){return v},UY:function(){return g},V3:function(){return y},Ym:function(){return h},a1:function(){return O},jX:function(){return I},po:function(){return x},uT:function(){return w},xG:function(){return d}});var n=r(70375),a=r(50516),o=r(93968),s=r(53110),i=r(84513),c=r(31370),u=r(76990),p=r(60629);function l(e,t,r){const a=r(e);if(!a.isValid)throw new n.Z(`${t}:invalid-parameters`,a.errorMessage,{layer:e})}async function f(e){const{layer:t,errorNamePrefix:r,validateLayer:n}=e;await t.load(),l(t,r,n)}function d(e,t){return`Layer (title: ${e.title}, id: ${e.id}) of type '${e.declaredClass}' ${t}`}function m(e){const{item:t,errorNamePrefix:r,layer:a,validateItem:o}=e;if((0,u.w)(t),function(e){const{item:t,itemType:r,additionalItemType:a,errorNamePrefix:o,layer:s}=e,i=[r];if(a&&i.push(a),!i.includes(t.type)){const e=i.map((e=>`'${e}'`)).join(", ");throw new n.Z(`${o}:portal-item-wrong-type`,`Portal item type should be one of: "${e}"`,{item:t,layer:s})}}(e),o){const e=o(t);if(!e.isValid)throw new n.Z(`${r}:invalid-parameters`,e.errorMessage,{layer:a})}}function h(e){const{layer:t,errorNamePrefix:r}=e,{portalItem:a}=t;if(!a)throw new n.Z(`${r}:portal-item-not-set`,d(t,"requires the portalItem property to be set"));if(!a.loaded)throw new n.Z(`${r}:portal-item-not-loaded`,d(t,"cannot be saved to a portal item that does not exist or is inaccessible"));m({...e,item:a})}function w(e){const{newItem:t,itemType:r}=e;let n=s.default.from(t);return n.id&&(n=n.clone(),n.id=null),n.type??=r,n.portal??=o.Z.getDefault(),m({...e,item:n}),n}function y(e){return(0,i.Y)(e,"portal-item")}async function v(e,t,r){"beforeSave"in e&&"function"==typeof e.beforeSave&&await e.beforeSave();const n=e.write({},t);return await Promise.all(t.resources?.pendingOperations??[]),(0,p.z)(t,{errorName:"layer-write:unsupported"},r),n}function g(e){(0,c.qj)(e,c.hz.JSAPI),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}async function I(e,t,r){const n=e.portal;await n.signIn(),await(n.user?.addItem({item:e,data:t,folder:r?.folder}))}async function O(e,t){const{layer:r,createItemData:n,createJSONContext:o,saveResources:s,supplementalUnsupportedErrors:i}=e;await f(e),h(e);const c=r.portalItem,u=o?o(c):y(c),p=await v(r,u,{...t,supplementalUnsupportedErrors:i}),l=await n({layer:r,layerJSON:p},c);return g(c),await c.update({data:l}),(0,a.D)(u),await(s?.(c,u)),c}async function x(e,t){const{layer:r,createItemData:n,createJSONContext:o,setItemProperties:s,saveResources:i,supplementalUnsupportedErrors:c}=e;await f(e);const u=w(e),p=o?o(u):y(u),l=await v(r,p,{...t,supplementalUnsupportedErrors:c}),d=await n({layer:r,layerJSON:l},u);return await s(r,u),g(u),await I(u,d,t),r.portalItem=u,(0,a.D)(p),await(i?.(u,p)),u}},68611:function(e,t,r){r.d(t,{FO:function(){return f},W7:function(){return d},addOrUpdateResources:function(){return i},fetchResources:function(){return s},removeAllResources:function(){return u},removeResource:function(){return c}});var n=r(66341),a=r(70375),o=r(3466);async function s(e,t={},r){await e.load(r);const n=(0,o.v_)(e.itemUrl,"resources"),{start:a=1,num:s=10,sortOrder:i="asc",sortField:c="resource"}=t,u={query:{start:a,num:s,sortOrder:i,sortField:c,token:e.apiKey},signal:r?.signal},p=await e.portal.request(n,u);return{total:p.total,nextStart:p.nextStart,resources:p.resources.map((({created:t,size:r,resource:n})=>({created:new Date(t),size:r,resource:e.resourceFromPath(n)})))}}async function i(e,t,r,n){const s=new Map;for(const{resource:e,content:n,compress:o,access:i}of t){if(!e.hasPath())throw new a.Z(`portal-item-resource-${r}:invalid-path`,"Resource does not have a valid path");const[t,c]=p(e.path),u=`${t}/${o??""}/${i??""}`;s.has(u)||s.set(u,{prefix:t,compress:o,access:i,files:[]}),s.get(u).files.push({fileName:c,content:n})}await e.load(n);const i=(0,o.v_)(e.userItemUrl,"add"===r?"addResources":"updateResources");for(const{prefix:t,compress:r,access:a,files:o}of s.values()){const s=25;for(let c=0;ce.resource.path))),p=new Set,l=[];u.forEach((t=>{c.delete(t),e.paths.push(t)}));const f=[],d=[],m=[];for(const r of t.resources.toUpdate)if(c.delete(r.resource.path),u.has(r.resource.path)||p.has(r.resource.path)){const{resource:t,content:n,finish:a}=r,i=(0,s.W7)(t,(0,o.DO)());e.paths.push(i.path),f.push({resource:i,content:await(0,s.FO)(n),compress:r.compress}),a&&m.push((()=>a(i)))}else{e.paths.push(r.resource.path),d.push({resource:r.resource,content:await(0,s.FO)(r.content),compress:r.compress});const t=r.finish;t&&m.push((()=>t(r.resource))),p.add(r.resource.path)}for(const r of t.resources.toAdd)if(e.paths.push(r.resource.path),c.has(r.resource.path))c.delete(r.resource.path);else{f.push({resource:r.resource,content:await(0,s.FO)(r.content),compress:r.compress});const e=r.finish;e&&m.push((()=>e(r.resource)))}if(f.length||d.length){const{addOrUpdateResources:e}=await Promise.resolve().then(r.bind(r,68611));await e(t.portalItem,f,"add",i),await e(t.portalItem,d,"update",i)}if(m.forEach((e=>e())),0===l.length)return c;const h=await(0,a.UO)(l);if((0,a.k_)(i),h.length>0)throw new n.Z("save:resources","Failed to save one or more resources",{errors:h});return c}async function p(e,t,r){if(!e||!t.portalItem)return;const n=[];for(const a of e){const e=t.portalItem.resourceFromPath(a);n.push(e.portalItem.removeResource(e,r))}await(0,a.as)(n)}},76990:function(e,t,r){r.d(t,{w:function(){return s}});var n=r(51366),a=r(70375),o=r(99522);function s(e){if(n.default.apiKey&&(0,o.r)(e.portal.url))throw new a.Z("save-api-key-utils:api-key-not-supported",`Saving is not supported on ${e.portal.url} when using an api key`)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4568.804d4d397361029e8359.js b/docs/sentinel1-explorer/4568.804d4d397361029e8359.js new file mode 100644 index 00000000..594a0871 --- /dev/null +++ b/docs/sentinel1-explorer/4568.804d4d397361029e8359.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4568],{86602:function(e,t,i){i.d(t,{JZ:function(){return c},RL:function(){return p},eY:function(){return y}});var s=i(78668),r=i(46332),n=i(38642),a=i(45867),l=i(51118),h=i(7349),o=i(91907),u=i(71449),d=i(80479);function c(e){return e&&"render"in e}function p(e){const t=document.createElement("canvas");return t.width=e.width,t.height=e.height,e.render(t.getContext("2d")),t}class y extends l.s{constructor(e=null,t=!1){super(),this.blendFunction="standard",this._sourceWidth=0,this._sourceHeight=0,this._textureInvalidated=!1,this._texture=null,this.stencilRef=0,this.coordScale=[1,1],this._height=void 0,this.pixelRatio=1,this.resolution=0,this.rotation=0,this._source=null,this._width=void 0,this.x=0,this.y=0,this.immutable=t,this.source=e,this.requestRender=this.requestRender.bind(this)}destroy(){this._texture&&(this._texture.dispose(),this._texture=null),null!=this._uploadStatus&&(this._uploadStatus.controller.abort(),this._uploadStatus=null)}get isSourceScaled(){return this.width!==this._sourceWidth||this.height!==this._sourceHeight}get height(){return void 0!==this._height?this._height:this._sourceHeight}set height(e){this._height=e}get source(){return this._source}set source(e){null==e&&null==this._source||(this._source=e,this.invalidateTexture(),this.requestRender())}get width(){return void 0!==this._width?this._width:this._sourceWidth}set width(e){this._width=e}beforeRender(e){super.beforeRender(e),this.updateTexture(e)}async setSourceAsync(e,t){null!=this._uploadStatus&&this._uploadStatus.controller.abort();const i=new AbortController,r=(0,s.hh)();return(0,s.$F)(t,(()=>i.abort())),(0,s.$F)(i,(e=>r.reject(e))),this._uploadStatus={controller:i,resolver:r},this.source=e,r.promise}invalidateTexture(){this._textureInvalidated||(this._textureInvalidated=!0,this._source instanceof HTMLImageElement?(this._sourceHeight=this._source.naturalHeight,this._sourceWidth=this._source.naturalWidth):this._source&&(this._sourceHeight=this._source.height,this._sourceWidth=this._source.width))}updateTransitionProperties(e,t){e>=64&&(this.fadeTransitionEnabled=!1,this.inFadeTransition=!1),super.updateTransitionProperties(e,t)}setTransform(e){const t=(0,r.yR)(this.transforms.displayViewScreenMat3),[i,s]=e.toScreenNoRotation([0,0],[this.x,this.y]),n=this.resolution/this.pixelRatio/e.resolution,l=n*this.width,h=n*this.height,o=Math.PI*this.rotation/180;(0,r.Iu)(t,t,(0,a.al)(i,s)),(0,r.Iu)(t,t,(0,a.al)(l/2,h/2)),(0,r.U1)(t,t,-o),(0,r.Iu)(t,t,(0,a.al)(-l/2,-h/2)),(0,r.ex)(t,t,(0,a.al)(l,h)),(0,r.Jp)(this.transforms.displayViewScreenMat3,e.displayViewMat3,t)}setSamplingProfile(e){this._texture&&(e.mips&&!this._texture.descriptor.hasMipmap&&this._texture.generateMipmap(),this._texture.setSamplingMode(e.samplingMode))}bind(e,t){this._texture&&e.bindTexture(this._texture,t)}async updateTexture({context:e,painter:t}){if(!this._textureInvalidated)return;if(this._textureInvalidated=!1,this._texture||(this._texture=this._createTexture(e)),!this.source)return void this._texture.setData(null);this._texture.resize(this._sourceWidth,this._sourceHeight);const i=function(e){return c(e)?e instanceof h.Z?e.getRenderedRasterPixels()?.renderedRasterPixels:p(e):e}(this.source);try{if(null!=this._uploadStatus){const{controller:e,resolver:s}=this._uploadStatus,r={signal:e.signal},{width:n,height:a}=this,l=this._texture,h=t.textureUploadManager;await h.enqueueTextureUpdate({data:i,texture:l,width:n,height:a},r),s.resolve(),this._uploadStatus=null}else this._texture.setData(i);this.ready()}catch(e){(0,s.H9)(e)}}onDetach(){this.destroy()}_createTransforms(){return{displayViewScreenMat3:(0,n.Ue)()}}_createTexture(e){const t=this.immutable,i=new d.X;return i.internalFormat=t?o.lP.RGBA8:o.VI.RGBA,i.wrapMode=o.e8.CLAMP_TO_EDGE,i.isImmutable=t,i.width=this._sourceWidth,i.height=this._sourceHeight,new u.x(e,i)}}},7349:function(e,t,i){i.d(t,{Z:function(){return s}});class s{constructor(e,t,i){this.pixelBlock=e,this.extent=t,this.originalPixelBlock=i}get width(){return null!=this.pixelBlock?this.pixelBlock.width:0}get height(){return null!=this.pixelBlock?this.pixelBlock.height:0}render(e){const t=this.pixelBlock;if(null==t)return;const i=this.filter({extent:this.extent,pixelBlock:this.originalPixelBlock??t});if(null==i.pixelBlock)return;i.pixelBlock.maskIsAlpha&&(i.pixelBlock.premultiplyAlpha=!0);const s=i.pixelBlock.getAsRGBA(),r=e.createImageData(i.pixelBlock.width,i.pixelBlock.height);r.data.set(s),e.putImageData(r,0,0)}getRenderedRasterPixels(){const e=this.filter({extent:this.extent,pixelBlock:this.pixelBlock});return null==e.pixelBlock?null:(e.pixelBlock.maskIsAlpha&&(e.pixelBlock.premultiplyAlpha=!0),{width:e.pixelBlock.width,height:e.pixelBlock.height,renderedRasterPixels:new Uint8Array(e.pixelBlock.getAsRGBA().buffer)})}}},70179:function(e,t,i){i.d(t,{Z:function(){return o}});var s=i(39994),r=i(38716),n=i(10994),a=i(22598),l=i(27946);const h=(e,t)=>e.key.level-t.key.level!=0?e.key.level-t.key.level:e.key.row-t.key.row!=0?e.key.row-t.key.row:e.key.col-t.key.col;class o extends n.Z{constructor(e){super(),this._tileInfoView=e}renderChildren(e){this.sortChildren(h),this.setStencilReference(e),super.renderChildren(e)}createRenderParams(e){const{state:t}=e,i=super.createRenderParams(e);return i.requiredLevel=this._tileInfoView.getClosestInfoForScale(t.scale).level,i.displayLevel=this._tileInfoView.tileInfo.scaleToZoom(t.scale),i}prepareRenderPasses(e){const t=super.prepareRenderPasses(e);return t.push(e.registerRenderPass({name:"stencil",brushes:[a.Z],drawPhase:r.jx.DEBUG|r.jx.MAP|r.jx.HIGHLIGHT|r.jx.LABEL,target:()=>this.getStencilTarget()})),(0,s.Z)("esri-tiles-debug")&&t.push(e.registerRenderPass({name:"tileInfo",brushes:[l.Z],drawPhase:r.jx.DEBUG,target:()=>this.children})),t}getStencilTarget(){return this.children}setStencilReference(e){let t=1;for(const e of this.children)e.stencilRef=t++}}},38553:function(e,t,i){i.d(t,{Y:function(){return y}});var s=i(36663),r=(i(13802),i(39994),i(4157),i(70375),i(40266)),n=i(24568),a=i(38642),l=i(86602),h=i(27954);class o extends h.I{constructor(e,t,i,s,r,n,a=null){super(e,t,i,s,r,n),this.bitmap=new l.eY(a),this.bitmap.coordScale=[r,n],this.bitmap.once("isReady",(()=>this.ready()))}destroy(){super.destroy(),this.bitmap.destroy()}beforeRender(e){this.bitmap.beforeRender(e),super.beforeRender(e)}afterRender(e){this.bitmap.afterRender(e),super.afterRender(e)}set stencilRef(e){this.bitmap.stencilRef=e}get stencilRef(){return this.bitmap.stencilRef}_createTransforms(){return{displayViewScreenMat3:(0,a.Ue)(),tileMat3:(0,a.Ue)()}}setTransform(e){super.setTransform(e),this.bitmap.transforms.displayViewScreenMat3=this.transforms.displayViewScreenMat3}onAttach(){this.bitmap.stage=this.stage}onDetach(){this.bitmap&&(this.bitmap.stage=null)}}var u=i(98831),d=i(38716),c=i(70179);class p extends c.Z{get requiresDedicatedFBO(){return this.children.some((e=>"additive"===e.bitmap.blendFunction))}createTile(e){const t=this._tileInfoView.getTileBounds((0,n.Ue)(),e),i=this._tileInfoView.getTileResolution(e.level),[s,r]=this._tileInfoView.tileInfo.size;return new o(e,i,t[0],t[3],s,r)}prepareRenderPasses(e){const t=e.registerRenderPass({name:"bitmap (tile)",brushes:[u.U.bitmap],target:()=>this.children.map((e=>e.bitmap)),drawPhase:d.jx.MAP});return[...super.prepareRenderPasses(e),t]}doRender(e){this.visible&&e.drawPhase===d.jx.MAP&&super.doRender(e)}}const y=e=>{let t=class extends e{attach(){this.view.timeline.record(`${this.layer.title} (BitmapTileLayer) Attach`),this._bitmapView=new p(this._tileInfoView),this.container.addChild(this._bitmapView)}detach(){this.container.removeChild(this._bitmapView),this._bitmapView?.removeAllChildren(),this._bitmapView=null}};return t=(0,s._)([(0,r.j)("esri.views.2d.layers.BitmapTileLayerView2D")],t),t}},66878:function(e,t,i){i.d(t,{y:function(){return w}});var s=i(36663),r=i(6865),n=i(58811),a=i(70375),l=i(76868),h=i(81977),o=(i(39994),i(13802),i(4157),i(40266)),u=i(68577),d=i(10530),c=i(98114),p=i(55755),y=i(88723),f=i(96294);let g=class extends f.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,s._)([(0,h.Cb)({type:[[[Number]]],json:{write:!0}})],g.prototype,"path",void 0),g=(0,s._)([(0,o.j)("esri.views.layers.support.Path")],g);const _=g,m=r.Z.ofType({key:"type",base:null,typeMap:{rect:p.Z,path:_,geometry:y.Z}}),w=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new m,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new a.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new d.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,l.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),l.tX),(0,l.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),l.tX),(0,l.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),l.tX),(0,l.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),l.tX),(0,l.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),l.tX),(0,l.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),l.tX),(0,l.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),l.tX),(0,l.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),l.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:i,maxScale:s}=t;return(0,u.o2)(e,i,s)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,i=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),i&&(e.outsideScaleRange=i),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,s._)([(0,h.Cb)()],t.prototype,"attached",void 0),(0,s._)([(0,h.Cb)({type:m,set(e){const t=(0,n.Z)(e,this._get("clips"),m);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"container",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"moving",void 0),(0,s._)([(0,h.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,s._)([(0,h.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"updateRequested",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"updateSuspended",null),(0,s._)([(0,h.Cb)()],t.prototype,"updating",null),(0,s._)([(0,h.Cb)()],t.prototype,"view",void 0),(0,s._)([(0,h.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,s._)([(0,h.Cb)({type:c.Z})],t.prototype,"highlightOptions",void 0),t=(0,s._)([(0,o.j)("esri.views.2d.layers.LayerView2D")],t),t}},84568:function(e,t,i){i.r(t),i.d(t,{default:function(){return b}});var s=i(36663),r=i(13802),n=i(78668),a=i(81977),l=(i(39994),i(4157),i(40266)),h=i(35925),o=i(38553),u=i(66878),d=i(2144),c=i(64970),p=i(87241),y=i(17224),f=i(23656),g=i(26216),_=i(55068);const m=new Set([102113,102100,3857,3785,900913]),w=[0,0];let v=class extends((0,_.Z)((0,o.Y)((0,u.y)(g.Z)))){constructor(){super(...arguments),this._tileStrategy=null,this._fetchQueue=null,this.layer=null}get tileMatrixSet(){const e=this._getTileMatrixSetBySpatialReference(this.layer.activeLayer);return e?(e.id!==this.layer.activeLayer.tileMatrixSetId&&(this.layer.activeLayer.tileMatrixSetId=e.id),e):null}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume()}attach(){const e=this.tileMatrixSet?.tileInfo;e&&(this._tileInfoView=new c.Z(e),this._fetchQueue=new y.Z({tileInfoView:this._tileInfoView,concurrency:16,process:(e,t)=>this.fetchTile(e,t)}),this._tileStrategy=new f.Z({cachePolicy:"keep",resampling:!0,acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView}),this.addAttachHandles(this._updatingHandles.add((()=>[this.layer?.activeLayer?.styleId,this.tileMatrixSet]),(()=>this.doRefresh()))),super.attach())}detach(){super.detach(),this._tileStrategy?.destroy(),this._fetchQueue?.destroy(),this._fetchQueue=this._tileStrategy=this._tileInfoView=null}moveStart(){this.requestUpdate()}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return this.layer.activeLayer.tileMatrixSets?.some((t=>(0,h.fS)(t.tileInfo?.spatialReference,e)))??!1}async doRefresh(){if(this.attached){if(this.suspended)return this._tileStrategy.clear(),void this.requestUpdate();this._fetchQueue.reset(),this._tileStrategy.refresh((e=>this._updatingHandles.addPromise(this._enqueueTileFetch(e))))}}acquireTile(e){const t=this._bitmapView.createTile(e),i=t.bitmap;return[i.x,i.y]=this._tileInfoView.getTileCoords(w,t.key),i.resolution=this._tileInfoView.getTileResolution(t.key),[i.width,i.height]=this._tileInfoView.tileInfo.size,this._updatingHandles.addPromise(this._enqueueTileFetch(t)),this._bitmapView.addChild(t),this.requestUpdate(),t}releaseTile(e){this._fetchQueue.abort(e.key.id),this._bitmapView.removeChild(e),e.once("detach",(()=>e.destroy())),this.requestUpdate()}async fetchTile(e,t={}){const i="tilemapCache"in this.layer?this.layer.tilemapCache:null,{signal:s,resamplingLevel:r=0}=t;if(!i)return this._fetchImage(e,s);const a=new p.Z(0,0,0,0);let l;try{await i.fetchAvailabilityUpsample(e.level,e.row,e.col,a,{signal:s}),l=await this._fetchImage(a,s)}catch(i){if((0,n.D_)(i))throw i;if(r<3){const i=this._tileInfoView.getTileParentId(e.id);if(i){const s=new p.Z(i),n=await this.fetchTile(s,{...t,resamplingLevel:r+1});return(0,d.i)(this._tileInfoView,n,s,e)}}throw i}return(0,d.i)(this._tileInfoView,l,a,e)}canResume(){const e=super.canResume();return e?null!==this.tileMatrixSet:e}async _enqueueTileFetch(e){if(!this._fetchQueue.has(e.key.id)){try{const t=await this._fetchQueue.push(e.key);e.bitmap.source=t,e.bitmap.width=this._tileInfoView.tileInfo.size[0],e.bitmap.height=this._tileInfoView.tileInfo.size[1],e.once("attach",(()=>this.requestUpdate()))}catch(e){(0,n.D_)(e)||r.Z.getLogger(this).error(e)}this.requestUpdate()}}async _fetchImage(e,t){return this.layer.fetchImageBitmapTile(e.level,e.row,e.col,{signal:t})}_getTileMatrixSetBySpatialReference(e){const t=this.view.spatialReference;if(!e.tileMatrixSets)return null;let i=e.tileMatrixSets.find((e=>(0,h.fS)(e.tileInfo?.spatialReference,t)));return!i&&t.isWebMercator&&(i=e.tileMatrixSets.find((e=>m.has(e.tileInfo?.spatialReference.wkid??-1)))),i}};(0,s._)([(0,a.Cb)({readOnly:!0})],v.prototype,"tileMatrixSet",null),v=(0,s._)([(0,l.j)("esri.views.2d.layers.WMTSLayerView2D")],v);const b=v},2144:function(e,t,i){function s(e,t,i,s){if(i.level===s.level)return t;const n=e.tileInfo.size,a=e.getTileResolution(i.level),l=e.getTileResolution(s.level);let h=e.getLODInfoAt(s.level);const o=h.getXForColumn(s.col),u=h.getYForRow(s.row);h=e.getLODInfoAt(i.level);const d=h.getXForColumn(i.col),c=h.getYForRow(i.row),p=function(e){return e instanceof HTMLImageElement?e.naturalWidth:e.width}(t)/n[0],y=function(e){return e instanceof HTMLImageElement?e.naturalHeight:e.height}(t)/n[1],f=Math.round(p*((o-d)/a)),g=Math.round(y*(-(u-c)/a)),_=Math.round(p*n[0]*(l/a)),m=Math.round(y*n[1]*(l/a)),w=r(n);return w.getContext("2d").drawImage(t,f,g,_,m,0,0,n[0],n[1]),w}function r(e){const t=document.createElement("canvas");return[t.width,t.height]=e,t}i.d(t,{V:function(){return r},i:function(){return s}})},26216:function(e,t,i){i.d(t,{Z:function(){return y}});var s=i(36663),r=i(74396),n=i(31355),a=i(86618),l=i(13802),h=i(61681),o=i(64189),u=i(81977),d=(i(39994),i(4157),i(40266)),c=i(98940);let p=class extends((0,a.IG)((0,o.v)(n.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new c.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";l.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,h.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,s._)([(0,u.Cb)()],p.prototype,"fullOpacity",null),(0,s._)([(0,u.Cb)()],p.prototype,"layer",void 0),(0,s._)([(0,u.Cb)()],p.prototype,"parent",void 0),(0,s._)([(0,u.Cb)({readOnly:!0})],p.prototype,"suspended",null),(0,s._)([(0,u.Cb)({readOnly:!0})],p.prototype,"suspendInfo",null),(0,s._)([(0,u.Cb)({readOnly:!0})],p.prototype,"legendEnabled",null),(0,s._)([(0,u.Cb)({type:Boolean,readOnly:!0})],p.prototype,"updating",null),(0,s._)([(0,u.Cb)({readOnly:!0})],p.prototype,"updatingProgress",null),(0,s._)([(0,u.Cb)()],p.prototype,"visible",null),(0,s._)([(0,u.Cb)()],p.prototype,"view",void 0),p=(0,s._)([(0,d.j)("esri.views.layers.LayerView")],p);const y=p},55068:function(e,t,i){i.d(t,{Z:function(){return h}});var s=i(36663),r=i(13802),n=i(78668),a=i(76868),l=(i(39994),i(4157),i(70375),i(40266));const h=e=>{let t=class extends e{initialize(){this.addHandles((0,a.on)((()=>this.layer),"refresh",(e=>{this.doRefresh(e.dataChanged).catch((e=>{(0,n.D_)(e)||r.Z.getLogger(this).error(e)}))})),"RefreshableLayerView")}};return t=(0,s._)([(0,l.j)("esri.layers.mixins.RefreshableLayerView")],t),t}},88723:function(e,t,i){i.d(t,{Z:function(){return y}});var s,r=i(36663),n=(i(91957),i(81977)),a=(i(39994),i(13802),i(4157),i(40266)),l=i(20031),h=i(53736),o=i(96294),u=i(91772),d=i(89542);const c={base:l.Z,key:"type",typeMap:{extent:u.Z,polygon:d.Z}};let p=s=class extends o.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new s({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,n.Cb)({types:c,json:{read:h.im,write:!0}})],p.prototype,"geometry",void 0),p=s=(0,r._)([(0,a.j)("esri.views.layers.support.Geometry")],p);const y=p}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4575.66324b7676620702ab27.js b/docs/sentinel1-explorer/4575.66324b7676620702ab27.js new file mode 100644 index 00000000..35180ee2 --- /dev/null +++ b/docs/sentinel1-explorer/4575.66324b7676620702ab27.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4575],{64575:function(e,t,n){n.r(t),n.d(t,{registerFunctions:function(){return R}});var r=n(51366),o=(n(91957),n(58780)),i=n(19249),a=n(7182),s=n(94837),u=n(86727),l=n(20031),p=n(28105),c=n(39536),f=n(93968),d=n(53110),h=n(94466),y=n(99606),w=n(76512),g=n(29197),m=n(78755),v=n(70206),b=n(41268),Z=n(14685);let _=null;async function S(e,t){const r=new d.default({portal:e,id:t});return await r.load(),null===_&&(_=await n.e(1350).then(n.bind(n,41350))),await _.fetchKnowledgeGraph(r.url)}function j(e,t,n,r,o){if(null===e)return null;if((0,s.c)(e)||(0,s.b)(e))return e;if((0,s.k)(e))return e.toJSDate();if((0,s.k)(e))return e.toJSDate();if((0,s.m)(e))return e.toStorageFormat();if((0,s.n)(e))return e.toStorageString();if((0,s.v)(e)){const i={};for(const a of e.keys())i[a]=j(e.field(a),t,n,r,o),i[a]instanceof l.Z&&o.push({container:i,indexer:a});return i}if((0,s.o)(e)){const i=e.map((e=>j(e,t,n,r,o)));for(let e=0;ex(e,t))):e instanceof y.Z?{graphTypeName:e.typeName,id:e.id,graphType:"entity",properties:G(e.properties,t)}:e instanceof g.Z?{graphType:"object",properties:G(e.properties,t)}:e instanceof v.Z?{graphTypeName:e.typeName,id:e.id,graphType:"relationship",originId:e.originId??null,destinationId:e.destinationId??null,properties:G(e.properties,t)}:e instanceof m.Z?{graphType:"path",path:e.path?e.path.map((e=>x(e,t))):null}:(0,s.p)(e)?function(e,t){if(!e)return e;if(e.spatialReference.isWGS84&&t.spatialReference.isWebMercator)return(0,c.$)(e);if(e.spatialReference.equals(t.spatialReference))return e;throw new a.aV(t,a.rH.WrongSpatialReference,null)}(e,t):(0,s.c)(e)||(0,s.b)(e)||(0,s.a7)(e)?e:null}function R(e){"async"===e.mode&&(e.functions.knowledgegraphbyportalitem=function(t,n){return e.standardFunctionAsync(t,n,((e,r,i)=>{if((0,s.H)(i,2,2,t,n),null===i[0])throw new a.aV(t,a.rH.PortalRequired,n);if(i[0]instanceof o.Z){const e=(0,s.j)(i[1]);let n=null;return n=t.services?.portal?t.services.portal:f.Z.getDefault(),S((0,u._)(i[0],n),e)}if(!1===(0,s.c)(i[0]))throw new a.aV(t,a.rH.InvalidParameter,n);const l=(0,s.j)(i[0]);return S(t.services?.portal??f.Z.getDefault(),l)}))},e.signatures.push({name:"knowledgegraphbyportalitem",min:2,max:2}),e.functions.querygraph=function(t,o){return e.standardFunctionAsync(t,o,(async(e,u,l)=>{(0,s.H)(l,2,4,t,o);const c=l[0];if(!(0,s.w)(c))throw new a.aV(t,a.rH.InvalidParameter,o);const f=l[1];if(!(0,s.c)(f))throw new a.aV(t,a.rH.InvalidParameter,o);null===_&&(_=await n.e(1350).then(n.bind(n,41350)));let d=null;const y=(0,s.K)(l[2],null);if(!(y instanceof i.Z||null===y))throw new a.aV(t,a.rH.InvalidParameter,o);if(y){let e=[];d=j(y,!0,!1,t,e),e=e.filter((e=>!e.container[e.indexer].spatialReference.isWGS84)),e.length>0&&await async function(e){const t=r.default.geometryServiceUrl??"";if(!t){(0,p.isLoaded)()||await(0,p.load)();for(const t of e)t.container[t.indexer]=(0,p.project)(t.container[t.indexer],Z.Z.WGS84);return}const n=e.map((e=>e.container[e.indexer])),o=new b.Z({geometries:n,outSpatialReference:Z.Z.WGS84}),i=await(0,h.i)(t,o);for(let t=0;t11.2&&(g.outputSpatialReference=t.spatialReference);const m=(await _.executeQueryStreaming(c,g)).resultRowsStream.getReader(),v=[];try{for(;;){const{done:e,value:n}=await m.read();if(e)break;if((0,s.o)(n))for(const e of n)v.push(x(e,t));else{const e=[];for(const r of n)e.push(x(n[r],t));v.push(e)}}}catch(e){throw e}return i.Z.convertJsonToArcade(v,(0,s.N)(t),!1,!0)}))},e.signatures.push({name:"querygraph",min:2,max:4}))}},86727:function(e,t,n){n.d(t,{_:function(){return o}});var r=n(93968);function o(e,t){return null===e?t:new r.Z({url:e.field("url")})}},99606:function(e,t,n){n.d(t,{Z:function(){return l}});var r=n(36663),o=(n(91957),n(81977)),i=(n(39994),n(13802),n(4157),n(40266)),a=n(63055),s=n(67666);let u=class extends a.Z{constructor(e){super(e),this.layoutGeometry=null}};(0,r._)([(0,o.Cb)({type:s.Z,json:{write:!0}})],u.prototype,"layoutGeometry",void 0),u=(0,r._)([(0,i.j)("esri.rest.knowledgeGraph.Entity")],u);const l=u},63055:function(e,t,n){n.d(t,{Z:function(){return u}});var r=n(36663),o=n(81977),i=(n(39994),n(13802),n(4157),n(40266)),a=n(60915);let s=class extends a.Z{constructor(e){super(e),this.typeName=null,this.id=null}};(0,r._)([(0,o.Cb)({type:String,json:{write:!0}})],s.prototype,"typeName",void 0),(0,r._)([(0,o.Cb)({type:String,json:{write:!0}})],s.prototype,"id",void 0),s=(0,r._)([(0,i.j)("esri.rest.knowledgeGraph.GraphNamedObject")],s);const u=s},60915:function(e,t,n){n.d(t,{Z:function(){return u}});var r=n(36663),o=n(82064),i=n(81977),a=(n(39994),n(13802),n(4157),n(40266));let s=class extends o.wq{constructor(e){super(e),this.properties=null}};(0,r._)([(0,i.Cb)({json:{write:!0}})],s.prototype,"properties",void 0),s=(0,r._)([(0,a.j)("esri.rest.knowledgeGraph.GraphObject")],s);const u=s},76512:function(e,t,n){n.d(t,{Z:function(){return p}});var r=n(36663),o=n(81977),i=(n(39994),n(13802),n(4157),n(40266)),a=n(74396);let s=class extends a.Z{constructor(e){super(e),this.openCypherQuery=""}};(0,r._)([(0,o.Cb)()],s.prototype,"openCypherQuery",void 0),s=(0,r._)([(0,i.j)("esri.rest.knowledgeGraph.GraphQuery")],s);const u=s;let l=class extends u{constructor(e){super(e),this.bindParameters=null,this.bindGeometryQuantizationParameters=null,this.outputQuantizationParameters=null,this.outputSpatialReference=null}};(0,r._)([(0,o.Cb)()],l.prototype,"bindParameters",void 0),(0,r._)([(0,o.Cb)()],l.prototype,"bindGeometryQuantizationParameters",void 0),(0,r._)([(0,o.Cb)()],l.prototype,"outputQuantizationParameters",void 0),(0,r._)([(0,o.Cb)()],l.prototype,"outputSpatialReference",void 0),l=(0,r._)([(0,i.j)("esri.rest.knowledgeGraph.GraphQueryStreaming")],l);const p=l},29197:function(e,t,n){n.d(t,{Z:function(){return s}});var r=n(36663),o=(n(13802),n(39994),n(4157),n(70375),n(40266)),i=n(60915);let a=class extends i.Z{constructor(e){super(e)}};a=(0,r._)([(0,o.j)("esri.rest.knowledgeGraph.ObjectValue")],a);const s=a},78755:function(e,t,n){n.d(t,{Z:function(){return l}});var r=n(36663),o=n(82064),i=n(81977),a=(n(39994),n(13802),n(4157),n(40266)),s=n(60915);let u=class extends o.wq{constructor(e){super(e),this.path=null}};(0,r._)([(0,i.Cb)({type:[s.Z],json:{write:!0}})],u.prototype,"path",void 0),u=(0,r._)([(0,a.j)("esri.rest.knowledgeGraph.Path")],u);const l=u},70206:function(e,t,n){n.d(t,{Z:function(){return l}});var r=n(36663),o=(n(91957),n(81977)),i=(n(39994),n(13802),n(4157),n(40266)),a=n(63055),s=n(90819);let u=class extends a.Z{constructor(e){super(e),this.originId=null,this.destinationId=null,this.layoutGeometry=null}};(0,r._)([(0,o.Cb)({type:String,json:{write:!0}})],u.prototype,"originId",void 0),(0,r._)([(0,o.Cb)({type:String,json:{write:!0}})],u.prototype,"destinationId",void 0),(0,r._)([(0,o.Cb)({type:s.Z,json:{write:!0}})],u.prototype,"layoutGeometry",void 0),u=(0,r._)([(0,i.j)("esri.rest.Relationship.Relationship")],u);const l=u}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4578.9f1a1054c5900a3f7914.js b/docs/sentinel1-explorer/4578.9f1a1054c5900a3f7914.js new file mode 100644 index 00000000..44bde9c9 --- /dev/null +++ b/docs/sentinel1-explorer/4578.9f1a1054c5900a3f7914.js @@ -0,0 +1,2 @@ +/*! For license information please see 4578.9f1a1054c5900a3f7914.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4578],{4578:function(e,t,n){n.r(t),n.d(t,{CalciteList:function(){return Kn},defineCustomElement:function(){return Vn}});var i=n(77210),a=n(79145),o=n(64426),r=n(85545),l=n(22562);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function p(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var g=p(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),m=p(/Edge/i),v=p(/firefox/i),b=p(/safari/i)&&!p(/chrome/i)&&!p(/android/i),y=p(/iP(ad|od|hone)/i),E=p(/chrome/i)&&p(/android/i),w={capture:!1,passive:!1};function S(e,t,n){e.addEventListener(t,n,!g&&w)}function x(e,t,n){e.removeEventListener(t,n,!g&&w)}function C(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function I(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function _(e,t,n,i){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&C(e,t):C(e,t))||i&&e===n)return e;if(e===n)break}while(e=I(e))}return null}var D,k=/\s+/g;function A(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var i=(" "+e.className+" ").replace(k," ").replace(" "+t+" "," ");e.className=(i+(n?" "+t:"")).replace(k," ")}}function T(e,t,n){var i=e&&e.style;if(i){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in i||-1!==t.indexOf("webkit")||(t="-webkit-"+t),i[t]=n+("string"==typeof n?"":"px")}}function L(e,t){var n="";if("string"==typeof e)n=e;else do{var i=T(e,"transform");i&&"none"!==i&&(n=i+" "+n)}while(!t&&(e=e.parentNode));var a=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return a&&new a(n)}function O(e,t,n){if(e){var i=e.getElementsByTagName(t),a=0,o=i.length;if(n)for(;a=o:a<=o))return i;if(i===F())break;i=B(i,!1)}return!1}function N(e,t,n,i){for(var a=0,o=0,r=e.children;o2&&void 0!==arguments[2]?arguments[2]:{},i=n.evt,a=f(n,Z);V.pluginEvent.bind(We)(e,t,c({dragEl:ee,parentEl:te,ghostEl:ne,rootEl:ie,nextEl:ae,lastDownEl:oe,cloneEl:re,cloneHidden:le,dragStarted:Ee,putSortable:fe,activeSortable:We.active,originalEvent:i,oldIndex:se,oldDraggableIndex:de,newIndex:ce,newDraggableIndex:he,hideGhostForTarget:He,unhideGhostForTarget:Be,cloneNowHidden:function(){le=!0},cloneNowShown:function(){le=!1},dispatchSortableEvent:function(e){J({sortable:t,name:e,originalEvent:i})}},a))};function J(e){!function(e){var t=e.sortable,n=e.rootEl,i=e.name,a=e.targetEl,o=e.cloneEl,r=e.toEl,l=e.fromEl,s=e.oldIndex,d=e.newIndex,h=e.oldDraggableIndex,u=e.newDraggableIndex,f=e.originalEvent,p=e.putSortable,v=e.extraEventProperties;if(t=t||n&&n[U]){var b,y=t.options,E="on"+i.charAt(0).toUpperCase()+i.substr(1);!window.CustomEvent||g||m?(b=document.createEvent("Event")).initEvent(i,!0,!0):b=new CustomEvent(i,{bubbles:!0,cancelable:!0}),b.to=r||n,b.from=l||n,b.item=a||n,b.clone=o,b.oldIndex=s,b.newIndex=d,b.oldDraggableIndex=h,b.newDraggableIndex=u,b.originalEvent=f,b.pullMode=p?p.lastPutMode:void 0;var w=c(c({},v),V.getEventProperties(i,t));for(var S in w)b[S]=w[S];n&&n.dispatchEvent(b),y[E]&&y[E].call(t,b)}}(c({putSortable:fe,cloneEl:re,targetEl:ee,rootEl:ie,oldIndex:se,oldDraggableIndex:de,newIndex:ce,newDraggableIndex:he},e))}var ee,te,ne,ie,ae,oe,re,le,se,ce,de,he,ue,fe,pe,ge,me,ve,be,ye,Ee,we,Se,xe,Ce,Ie=!1,_e=!1,De=[],ke=!1,Ae=!1,Te=[],Le=!1,Oe=[],Fe="undefined"!=typeof document,Me=y,Pe=m||g?"cssFloat":"float",ze=Fe&&!E&&!y&&"draggable"in document.createElement("div"),Ne=function(){if(Fe){if(g)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),je=function(e,t){var n=T(e),i=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),a=N(e,0,t),o=N(e,1,t),r=a&&T(a),l=o&&T(o),s=r&&parseInt(r.marginLeft)+parseInt(r.marginRight)+M(a).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+M(o).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(a&&r.float&&"none"!==r.float){var d="left"===r.float?"left":"right";return!o||"both"!==l.clear&&l.clear!==d?"horizontal":"vertical"}return a&&("block"===r.display||"flex"===r.display||"table"===r.display||"grid"===r.display||s>=i&&"none"===n[Pe]||o&&"none"===n[Pe]&&s+c>i)?"vertical":"horizontal"},Re=function(e){function t(e,n){return function(i,a,o,r){var l=i.options.group.name&&a.options.group.name&&i.options.group.name===a.options.group.name;if(null==e&&(n||l))return!0;if(null==e||!1===e)return!1;if(n&&"clone"===e)return e;if("function"==typeof e)return t(e(i,a,o,r),n)(i,a,o,r);var s=(n?i:a).options.group.name;return!0===e||"string"==typeof e&&e===s||e.join&&e.indexOf(s)>-1}}var n={},i=e.group;i&&"object"==d(i)||(i={name:i}),n.name=i.name,n.checkPull=t(i.pull,!0),n.checkPut=t(i.put),n.revertClone=i.revertClone,e.group=n},He=function(){!Ne&&ne&&T(ne,"display","none")},Be=function(){!Ne&&ne&&T(ne,"display","")};Fe&&!E&&document.addEventListener("click",(function(e){if(_e)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),_e=!1,!1}),!0);var Xe=function(e){if(ee){e=e.touches?e.touches[0]:e;var t=(a=e.clientX,o=e.clientY,De.some((function(e){var t=e[U].options.emptyInsertThreshold;if(t&&!j(e)){var n=M(e),i=a>=n.left-t&&a<=n.right+t,l=o>=n.top-t&&o<=n.bottom+t;return i&&l?r=e:void 0}})),r);if(t){var n={};for(var i in e)e.hasOwnProperty(i)&&(n[i]=e[i]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[U]._onDragOver(n)}}var a,o,r},Ye=function(e){ee&&ee.parentNode[U]._isOutsideThisEl(e.target)};function We(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=u({},t),e[U]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return je(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==We.supportPointer&&"PointerEvent"in window&&!b,emptyInsertThreshold:5};for(var i in V.initializePlugins(this,e,n),n)!(i in t)&&(t[i]=n[i]);for(var a in Re(t),this)"_"===a.charAt(0)&&"function"==typeof this[a]&&(this[a]=this[a].bind(this));this.nativeDraggable=!t.forceFallback&&ze,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?S(e,"pointerdown",this._onTapStart):(S(e,"mousedown",this._onTapStart),S(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(S(e,"dragover",this),S(e,"dragenter",this)),De.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),u(this,q())}function Ge(e,t,n,i,a,o,r,l){var s,c,d=e[U],h=d.options.onMove;return!window.CustomEvent||g||m?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=t,s.from=e,s.dragged=n,s.draggedRect=i,s.related=a||t,s.relatedRect=o||M(t),s.willInsertAfter=l,s.originalEvent=r,e.dispatchEvent(s),h&&(c=h.call(d,s,r)),c}function Ue(e){e.draggable=!1}function qe(){Le=!1}function $e(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,i=0;n--;)i+=t.charCodeAt(n);return i.toString(36)}function Ke(e){return setTimeout(e,0)}function Ve(e){return clearTimeout(e)}We.prototype={constructor:We,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(we=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,ee):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,i=this.options,a=i.preventOnFilter,o=e.type,r=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,l=(r||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=i.filter;if(function(e){Oe.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var i=t[n];i.checked&&Oe.push(i)}}(n),!ee&&!(/mousedown|pointerdown/.test(o)&&0!==e.button||i.disabled)&&!s.isContentEditable&&(this.nativeDraggable||!b||!l||"SELECT"!==l.tagName.toUpperCase())&&!((l=_(l,i.draggable,n,!1))&&l.animated||oe===l)){if(se=R(l),de=R(l,i.draggable),"function"==typeof c){if(c.call(this,e,l,this))return J({sortable:t,rootEl:s,name:"filter",targetEl:l,toEl:n,fromEl:n}),Q("filter",t,{evt:e}),void(a&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(",").some((function(i){if(i=_(s,i.trim(),n,!1))return J({sortable:t,rootEl:i,name:"filter",targetEl:l,fromEl:n,toEl:n}),Q("filter",t,{evt:e}),!0}))))return void(a&&e.cancelable&&e.preventDefault());i.handle&&!_(s,i.handle,n,!1)||this._prepareDragStart(e,r,l)}}},_prepareDragStart:function(e,t,n){var i,a=this,o=a.el,r=a.options,l=o.ownerDocument;if(n&&!ee&&n.parentNode===o){var s=M(n);if(ie=o,te=(ee=n).parentNode,ae=ee.nextSibling,oe=n,ue=r.group,We.dragged=ee,pe={target:ee,clientX:(t||e).clientX,clientY:(t||e).clientY},be=pe.clientX-s.left,ye=pe.clientY-s.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,ee.style["will-change"]="all",i=function(){Q("delayEnded",a,{evt:e}),We.eventCanceled?a._onDrop():(a._disableDelayedDragEvents(),!v&&a.nativeDraggable&&(ee.draggable=!0),a._triggerDragStart(e,t),J({sortable:a,name:"choose",originalEvent:e}),A(ee,r.chosenClass,!0))},r.ignore.split(",").forEach((function(e){O(ee,e.trim(),Ue)})),S(l,"dragover",Xe),S(l,"mousemove",Xe),S(l,"touchmove",Xe),S(l,"mouseup",a._onDrop),S(l,"touchend",a._onDrop),S(l,"touchcancel",a._onDrop),v&&this.nativeDraggable&&(this.options.touchStartThreshold=4,ee.draggable=!0),Q("delayStart",this,{evt:e}),!r.delay||r.delayOnTouchOnly&&!t||this.nativeDraggable&&(m||g))i();else{if(We.eventCanceled)return void this._onDrop();S(l,"mouseup",a._disableDelayedDrag),S(l,"touchend",a._disableDelayedDrag),S(l,"touchcancel",a._disableDelayedDrag),S(l,"mousemove",a._delayedDragTouchMoveHandler),S(l,"touchmove",a._delayedDragTouchMoveHandler),r.supportPointer&&S(l,"pointermove",a._delayedDragTouchMoveHandler),a._dragStartTimer=setTimeout(i,r.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){ee&&Ue(ee),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;x(e,"mouseup",this._disableDelayedDrag),x(e,"touchend",this._disableDelayedDrag),x(e,"touchcancel",this._disableDelayedDrag),x(e,"mousemove",this._delayedDragTouchMoveHandler),x(e,"touchmove",this._delayedDragTouchMoveHandler),x(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?S(document,"pointermove",this._onTouchMove):S(document,t?"touchmove":"mousemove",this._onTouchMove):(S(ee,"dragend",this),S(ie,"dragstart",this._onDragStart));try{document.selection?Ke((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(Ie=!1,ie&&ee){Q("dragStarted",this,{evt:t}),this.nativeDraggable&&S(document,"dragover",Ye);var n=this.options;!e&&A(ee,n.dragClass,!1),A(ee,n.ghostClass,!0),We.active=this,e&&this._appendGhost(),J({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(ge){this._lastX=ge.clientX,this._lastY=ge.clientY,He();for(var e=document.elementFromPoint(ge.clientX,ge.clientY),t=e;e&&e.shadowRoot;){const n=(e=e.shadowRoot.elementFromPoint(ge.clientX,ge.clientY)).getRootNode().host;if(n&&(e=n),e===t)break;t=e}if(ee.parentNode[U]._isOutsideThisEl(e),t)do{if(t[U]){if(t[U]._onDragOver({clientX:ge.clientX,clientY:ge.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Be()}},_onTouchMove:function(e){if(pe){var t=this.options,n=t.fallbackTolerance,i=t.fallbackOffset,a=e.touches?e.touches[0]:e,o=ne&&L(ne,!0),r=ne&&o&&o.a,l=ne&&o&&o.d,s=Me&&Ce&&H(Ce),c=(a.clientX-pe.clientX+i.x)/(r||1)+(s?s[0]-Te[0]:0)/(r||1),d=(a.clientY-pe.clientY+i.y)/(l||1)+(s?s[1]-Te[1]:0)/(l||1);if(!We.active&&!Ie){if(n&&Math.max(Math.abs(a.clientX-this._lastX),Math.abs(a.clientY-this._lastY))a.right+o||e.clientY>i.bottom&&e.clientX>i.left:e.clientY>a.bottom+o||e.clientX>i.right&&e.clientY>i.top}(e,a,this)&&!m.animated){if(m===ee)return B(!1);if(m&&o===e.target&&(r=m),r&&(n=M(r)),!1!==Ge(ie,o,ee,t,r,n,e,!!r))return H(),m&&m.nextSibling?o.insertBefore(ee,m.nextSibling):o.appendChild(ee),te=o,X(),B(!0)}else if(m&&function(e,t,n){var i=M(N(n.el,0,n.options,!0)),a=P(n.el),o=10;return t?e.clientXd+c*o/2:sh-xe)return-Se}else if(s>d+c*(1-a)/2&&sh-c*o/2))return s>d+c/2?1:-1;return 0}(e,r,n,a,S?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,Ae,we===r),0!==b){var D=R(ee);do{D-=b,E=te.children[D]}while(E&&("none"===T(E,"display")||E===ne))}if(0===b||E===r)return B(!1);we=r,Se=b;var k=r.nextElementSibling,L=!1,O=Ge(ie,o,ee,t,r,n,e,L=1===b);if(!1!==O)return 1!==O&&-1!==O||(L=1===O),Le=!0,setTimeout(qe,30),H(),L&&!k?o.appendChild(ee):r.parentNode.insertBefore(ee,L?k:r),C&&W(C,0,I-C.scrollTop),te=ee.parentNode,void 0===y||Ae||(xe=Math.abs(y-M(r)[x])),X(),B(!0)}if(o.contains(ee))return B(!1)}return!1}function F(l,s){Q(l,p,c({evt:e,isOwner:h,axis:a?"vertical":"horizontal",revert:i,dragRect:t,targetRect:n,canSort:u,fromSortable:f,target:r,completed:B,onMove:function(n,i){return Ge(ie,o,ee,t,n,M(n),e,i)},changed:X},s))}function H(){F("dragOverAnimationCapture"),p.captureAnimationState(),p!==f&&f.captureAnimationState()}function B(t){return F("dragOverCompleted",{insertion:t}),t&&(h?d._hideClone():d._showClone(p),p!==f&&(A(ee,fe?fe.options.ghostClass:d.options.ghostClass,!1),A(ee,l.ghostClass,!0)),fe!==p&&p!==We.active?fe=p:p===We.active&&fe&&(fe=null),f===p&&(p._ignoreWhileAnimating=r),p.animateAll((function(){F("dragOverAnimationComplete"),p._ignoreWhileAnimating=null})),p!==f&&(f.animateAll(),f._ignoreWhileAnimating=null)),(r===ee&&!ee.animated||r===o&&!r.animated)&&(we=null),l.dragoverBubble||e.rootEl||r===document||(ee.parentNode[U]._isOutsideThisEl(e.target),!t&&Xe(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),g=!0}function X(){ce=R(ee),he=R(ee,l.draggable),J({sortable:p,name:"change",toEl:o,newIndex:ce,newDraggableIndex:he,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){x(document,"mousemove",this._onTouchMove),x(document,"touchmove",this._onTouchMove),x(document,"pointermove",this._onTouchMove),x(document,"dragover",Xe),x(document,"mousemove",Xe),x(document,"touchmove",Xe)},_offUpEvents:function(){var e=this.el.ownerDocument;x(e,"mouseup",this._onDrop),x(e,"touchend",this._onDrop),x(e,"pointerup",this._onDrop),x(e,"touchcancel",this._onDrop),x(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;ce=R(ee),he=R(ee,n.draggable),Q("drop",this,{evt:e}),te=ee&&ee.parentNode,ce=R(ee),he=R(ee,n.draggable),We.eventCanceled||(Ie=!1,Ae=!1,ke=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Ve(this.cloneId),Ve(this._dragStartId),this.nativeDraggable&&(x(document,"drop",this),x(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),b&&T(document.body,"user-select",""),T(ee,"transform",""),e&&(Ee&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),ne&&ne.parentNode&&ne.parentNode.removeChild(ne),(ie===te||fe&&"clone"!==fe.lastPutMode)&&re&&re.parentNode&&re.parentNode.removeChild(re),ee&&(this.nativeDraggable&&x(ee,"dragend",this),Ue(ee),ee.style["will-change"]="",Ee&&!Ie&&A(ee,fe?fe.options.ghostClass:this.options.ghostClass,!1),A(ee,this.options.chosenClass,!1),J({sortable:this,name:"unchoose",toEl:te,newIndex:null,newDraggableIndex:null,originalEvent:e}),ie!==te?(ce>=0&&(J({rootEl:te,name:"add",toEl:te,fromEl:ie,originalEvent:e}),J({sortable:this,name:"remove",toEl:te,originalEvent:e}),J({rootEl:te,name:"sort",toEl:te,fromEl:ie,originalEvent:e}),J({sortable:this,name:"sort",toEl:te,originalEvent:e})),fe&&fe.save()):ce!==se&&ce>=0&&(J({sortable:this,name:"update",toEl:te,originalEvent:e}),J({sortable:this,name:"sort",toEl:te,originalEvent:e})),We.active&&(null!=ce&&-1!==ce||(ce=se,he=de),J({sortable:this,name:"end",toEl:te,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){Q("nulling",this),ie=ee=te=ne=ae=re=oe=le=pe=ge=Ee=ce=he=se=de=we=Se=fe=ue=We.dragged=We.ghost=We.clone=We.active=null,Oe.forEach((function(e){e.checked=!0})),Oe.length=me=ve=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":ee&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move");e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,i=0,a=n.length,o=this.options;ie.canPull({toEl:t.el,fromEl:n.el,dragEl:i,newIndex:a,oldIndex:o})},...!!e.canPut&&{put:(t,n,i,{newIndex:a,oldIndex:o})=>e.canPut({toEl:t.el,fromEl:n.el,dragEl:i,newIndex:a,oldIndex:o})}}},handle:n,filter:"[drag-disabled]",onStart:({from:t,item:n,to:i,newIndex:a,oldIndex:o})=>{gt.active=!0,Array.from(ht).forEach((e=>e.onGlobalDragStart())),e.onDragStart({fromEl:t,dragEl:n,toEl:i,newIndex:a,oldIndex:o})},onEnd:({from:t,item:n,to:i,newIndex:a,oldIndex:o})=>{gt.active=!1,Array.from(ht).forEach((e=>e.onGlobalDragEnd())),e.onDragEnd({fromEl:t,dragEl:n,toEl:i,newIndex:a,oldIndex:o})},onSort:({from:t,item:n,to:i,newIndex:a,oldIndex:o})=>{e.onDragSort({fromEl:t,dragEl:n,toEl:i,newIndex:a,oldIndex:o})}})}function pt(e){ht.delete(e),e.sortable?.destroy(),e.sortable=null}const gt={active:!1};function mt(e){return e.dragEnabled&>.active}const vt="container",bt="actions-start",yt="content-start",Et="content",wt="content-end",St="actions-end",xt="actions-start",Ct="content-start",It="content-end",_t="actions-end",Dt=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.handleActionsStartSlotChange=e=>{this.hasActionsStart=(0,a.d)(e)},this.handleActionsEndSlotChange=e=>{this.hasActionsEnd=(0,a.d)(e)},this.handleContentStartSlotChange=e=>{this.hasContentStart=(0,a.d)(e)},this.handleContentEndSlotChange=e=>{this.hasContentEnd=(0,a.d)(e)},this.disabled=!1,this.hasActionsStart=!1,this.hasActionsEnd=!1,this.hasContentStart=!1,this.hasContentEnd=!1}renderActionsStart(){const{hasActionsStart:e}=this;return(0,i.h)("div",{class:bt,hidden:!e,key:"actions-start-container"},(0,i.h)("slot",{name:xt,onSlotchange:this.handleActionsStartSlotChange}))}renderActionsEnd(){const{hasActionsEnd:e}=this;return(0,i.h)("div",{class:St,hidden:!e,key:"actions-end-container"},(0,i.h)("slot",{name:_t,onSlotchange:this.handleActionsEndSlotChange}))}renderContentStart(){const{hasContentStart:e}=this;return(0,i.h)("div",{class:yt,hidden:!e},(0,i.h)("slot",{name:Ct,onSlotchange:this.handleContentStartSlotChange}))}renderDefaultContent(){return(0,i.h)("div",{class:Et},(0,i.h)("slot",null))}renderContentEnd(){const{hasContentEnd:e}=this;return(0,i.h)("div",{class:wt,hidden:!e},(0,i.h)("slot",{name:It,onSlotchange:this.handleContentEndSlotChange}))}render(){return(0,i.h)(i.AA,null,(0,i.h)("div",{class:vt},this.renderActionsStart(),this.renderContentStart(),this.renderDefaultContent(),this.renderContentEnd(),this.renderActionsEnd()))}static get style(){return":host([disabled]) .content{cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) .content *,:host([disabled]) .content ::slotted(*){pointer-events:none}:host{display:flex;flex:1 1 0%;flex-direction:column}.container{display:flex;flex:1 1 auto;align-items:stretch;font-family:var(--calcite-sans-family);font-weight:var(--calcite-font-weight-normal);color:var(--calcite-color-text-2)}.content{display:flex;flex:1 1 auto;flex-direction:column;justify-content:center;font-size:var(--calcite-font-size--2);line-height:1.375;padding-inline:var(--calcite-stack-padding-inline, 0.75rem);padding-block:var(--calcite-stack-padding-block, 0.5rem)}.content-start{justify-content:flex-start}.content-end{justify-content:flex-end}.content-start,.content-end{flex:0 1 auto}.actions-start,.actions-end,.content-start,.content-end{display:flex;align-items:center}.content-start ::slotted(calcite-icon),.content-end ::slotted(calcite-icon){margin-inline:0.75rem;align-self:center}.actions-start ::slotted(calcite-action),.actions-start ::slotted(calcite-action-menu),.actions-start ::slotted(calcite-handle),.actions-start ::slotted(calcite-dropdown),.actions-end ::slotted(calcite-action),.actions-end ::slotted(calcite-action-menu),.actions-end ::slotted(calcite-handle),.actions-end ::slotted(calcite-dropdown){align-self:stretch;color:inherit}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-stack",{disabled:[516],hasActionsStart:[32],hasActionsEnd:[32],hasContentStart:[32],hasContentEnd:[32]}]);function kt(){if("undefined"==typeof customElements)return;["calcite-stack"].forEach((e=>{if("calcite-stack"===e)customElements.get(e)||customElements.define(e,Dt)}))}kt();var At=n(16265),Tt=n(53801),Lt=n(19417),Ot=n(52971);var Ft=Array.isArray,Mt=1/0,Pt=Ot.S?Ot.S.prototype:void 0,zt=Pt?Pt.toString:void 0;function Nt(e){if("string"==typeof e)return e;if(Ft(e))return function(e,t){for(var n=-1,i=null==e?0:e.length,a=Array(i);++n-1&&e%1==0&&e-1&&e%1==0&&e<=Ut}function $t(e){return null!=e&&qt(e.length)&&!function(e){if(!(0,Ot.i)(e))return!1;var t=(0,Ot.b)(e);return t==Ht||t==Bt||t==Rt||t==Xt}(e)}var Kt=Object.prototype;function Vt(e){return(0,Ot.c)(e)&&"[object Arguments]"==(0,Ot.b)(e)}var Zt=Object.prototype,Qt=Zt.hasOwnProperty,Jt=Zt.propertyIsEnumerable,en=Vt(function(){return arguments}())?Vt:function(e){return(0,Ot.c)(e)&&Qt.call(e,"callee")&&!Jt.call(e,"callee")};var tn="object"==typeof exports&&exports&&!exports.nodeType&&exports,nn=tn&&"object"==typeof module&&module&&!module.nodeType&&module,an=nn&&nn.exports===tn?Ot.r.Buffer:void 0,on=(an?an.isBuffer:void 0)||function(){return!1},rn={};rn["[object Float32Array]"]=rn["[object Float64Array]"]=rn["[object Int8Array]"]=rn["[object Int16Array]"]=rn["[object Int32Array]"]=rn["[object Uint8Array]"]=rn["[object Uint8ClampedArray]"]=rn["[object Uint16Array]"]=rn["[object Uint32Array]"]=!0,rn["[object Arguments]"]=rn["[object Array]"]=rn["[object ArrayBuffer]"]=rn["[object Boolean]"]=rn["[object DataView]"]=rn["[object Date]"]=rn["[object Error]"]=rn["[object Function]"]=rn["[object Map]"]=rn["[object Number]"]=rn["[object Object]"]=rn["[object RegExp]"]=rn["[object Set]"]=rn["[object String]"]=rn["[object WeakMap]"]=!1;var ln,sn="object"==typeof exports&&exports&&!exports.nodeType&&exports,cn=sn&&"object"==typeof module&&module&&!module.nodeType&&module,dn=cn&&cn.exports===sn&&Ot.f.process,hn=function(){try{var e=cn&&cn.require&&cn.require("util").types;return e||dn&&dn.binding&&dn.binding("util")}catch(e){}}(),un=hn&&hn.isTypedArray,fn=un?(ln=un,function(e){return ln(e)}):function(e){return(0,Ot.c)(e)&&qt(e.length)&&!!rn[(0,Ot.b)(e)]},pn=Object.prototype.hasOwnProperty;function gn(e,t){var n=Ft(e),i=!n&&en(e),a=!n&&!i&&on(e),o=!n&&!i&&!a&&fn(e),r=n||i||a||o,l=r?function(e,t){for(var n=-1,i=Array(e);++n{const n=xn(t),i=new RegExp(n,"i");e.length;const a=(e,t)=>{if(e?.constant||e?.filterDisabled)return!0;let n=!1;return Cn(e,(e=>{"function"!=typeof e&&null!=e&&(Array.isArray(e)||"object"==typeof e&&null!==e?a(e,t)&&(n=!0):t.test(e)&&(n=!0))})),n};return e.filter((e=>a(e,i)))};var _n=n(44586),Dn=n(70069),kn=n(81838),An=n(12964);const Tn="container",Ln="search",On=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.calciteFilterChange=(0,i.yM)(this,"calciteFilterChange",6),this.filterDebounced=(0,Ot.d)(((e,t=!1,n)=>this.items.length&&this.updateFiltered(In(this.items,e),t,n)),250),this.inputHandler=e=>{const t=e.target;this.value=t.value,this.filterDebounced(t.value,!0)},this.keyDownHandler=e=>{"Escape"===e.key&&(this.clear(),e.preventDefault()),"Enter"===e.key&&e.preventDefault()},this.clear=()=>{this.value="",this.filterDebounced("",!0),this.setFocus()},this.items=[],this.disabled=!1,this.filteredItems=[],this.placeholder=void 0,this.scale="m",this.value="",this.messages=void 0,this.messageOverrides=void 0,this.effectiveLocale=void 0,this.defaultMessages=void 0}watchItemsHandler(){this.filterDebounced(this.value)}onMessagesChange(){}valueHandler(e){this.filterDebounced(e)}effectiveLocaleChange(){(0,Tt.u)(this,this.effectiveLocale)}async componentWillLoad(){(0,At.s)(this),this.items.length&&this.updateFiltered(In(this.items,this.value)),await(0,Tt.s)(this)}connectedCallback(){(0,o.c)(this),(0,Lt.c)(this),(0,Tt.c)(this)}componentDidRender(){(0,o.u)(this)}disconnectedCallback(){(0,o.d)(this),(0,Lt.d)(this),(0,Tt.d)(this),this.filterDebounced.cancel()}componentDidLoad(){(0,At.a)(this)}async filter(e=this.value){return new Promise((t=>{this.value=e,this.filterDebounced(e,!1,t)}))}async setFocus(){await(0,At.c)(this),this.el?.focus()}updateFiltered(e,t=!1,n){this.filteredItems=e,t&&this.calciteFilterChange.emit(),n?.()}render(){const{disabled:e,scale:t}=this;return(0,i.h)(o.I,{disabled:e},(0,i.h)("div",{class:Tn},(0,i.h)("label",null,(0,i.h)("calcite-input",{clearable:!0,disabled:e,icon:Ln,label:this.messages.label,messageOverrides:{clear:this.messages.clear},onCalciteInputInput:this.inputHandler,onKeyDown:this.keyDownHandler,placeholder:this.placeholder,scale:t,type:"text",value:this.value,ref:e=>{this.textInput=e}}))))}static get delegatesFocus(){return!0}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{items:["watchItemsHandler"],messageOverrides:["onMessagesChange"],value:["valueHandler"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host{box-sizing:border-box;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2);font-size:var(--calcite-font-size--1)}:host *{box-sizing:border-box}:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:flex;inline-size:100%}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.container{display:flex;inline-size:100%;padding:0.5rem}label{position:relative;margin-inline:0.25rem;margin-block:0px;display:flex;inline-size:100%;align-items:center;overflow:hidden}input[type=text]{margin-block-end:0.25rem;inline-size:100%;border-style:none;background-color:transparent;padding-block:0.25rem;font-family:inherit;font-size:var(--calcite-font-size--2);line-height:1rem;color:var(--calcite-color-text-1);padding-inline-end:0.25rem;padding-inline-start:1.5rem;transition:padding var(--calcite-animation-timing), box-shadow var(--calcite-animation-timing)}input[type=text]::-ms-clear{display:none}calcite-input{inline-size:100%}.search-icon{position:absolute;display:flex;color:var(--calcite-color-text-2);inset-inline-start:0;transition:inset-inline-start var(--calcite-animation-timing), inset-inline-end var(--calcite-animation-timing), opacity var(--calcite-animation-timing)}input[type=text]:focus{border-color:var(--calcite-color-brand);outline:2px solid transparent;outline-offset:2px;padding-inline:0.25rem}input[type=text]:focus~.search-icon{inset-inline-start:calc(1rem * -1);opacity:0}.clear-button{display:flex;cursor:pointer;align-items:center;border-width:0px;background-color:transparent;color:var(--calcite-color-text-2)}.clear-button:hover,.clear-button:focus{color:var(--calcite-color-text-1)}:host([hidden]){display:none}[hidden]{display:none}"}},[17,"calcite-filter",{items:[16],disabled:[516],filteredItems:[1040],placeholder:[1],scale:[513],value:[1025],messages:[1040],messageOverrides:[1040],effectiveLocale:[32],defaultMessages:[32],filter:[64],setFocus:[64]},void 0,{items:["watchItemsHandler"],messageOverrides:["onMessagesChange"],value:["valueHandler"],effectiveLocale:["effectiveLocaleChange"]}]);function Fn(){if("undefined"==typeof customElements)return;["calcite-filter","calcite-icon","calcite-input","calcite-input-message","calcite-progress"].forEach((e=>{switch(e){case"calcite-filter":customElements.get(e)||customElements.define(e,On);break;case"calcite-icon":customElements.get(e)||(0,_n.d)();break;case"calcite-input":customElements.get(e)||(0,Dn.d)();break;case"calcite-input-message":customElements.get(e)||(0,kn.d)();break;case"calcite-progress":customElements.get(e)||(0,An.d)()}}))}Fn();var Mn=n(92708),Pn=n(45067);const zn="container",Nn="table",jn="scrim",Rn="stack",Hn="table-container",Bn="sticky-pos",Xn="assistive-text",Yn="filter-no-results",Wn="filter-actions-start",Gn="filter-actions-end",Un="calcite-list-item",qn=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.calciteListChange=(0,i.yM)(this,"calciteListChange",6),this.calciteListDragEnd=(0,i.yM)(this,"calciteListDragEnd",6),this.calciteListDragStart=(0,i.yM)(this,"calciteListDragStart",6),this.calciteListFilter=(0,i.yM)(this,"calciteListFilter",6),this.calciteListOrderChange=(0,i.yM)(this,"calciteListOrderChange",6),this.calciteInternalListDefaultSlotChange=(0,i.yM)(this,"calciteInternalListDefaultSlotChange",6),this.dragSelector=Un,this.focusableItems=[],this.handleSelector="calcite-handle",this.listItems=[],this.mutationObserver=(0,r.c)("mutation",(()=>this.updateListItems())),this.visibleItems=[],this.handleDefaultSlotChange=e=>{(0,l.u)((0,l.g)(e.target)),this.parentListEl&&this.calciteInternalListDefaultSlotChange.emit()},this.handleFilterActionsStartSlotChange=e=>{this.hasFilterActionsStart=(0,a.d)(e)},this.handleFilterActionsEndSlotChange=e=>{this.hasFilterActionsEnd=(0,a.d)(e)},this.handleFilterNoResultsSlotChange=e=>{this.hasFilterNoResults=(0,a.d)(e)},this.setActiveListItem=()=>{const{focusableItems:e}=this;e.some((e=>e.active))||e[0]&&(e[0].active=!0)},this.updateSelectedItems=(e=!1)=>{this.selectedItems=this.visibleItems.filter((e=>e.selected)),e&&this.calciteListChange.emit()},this.updateFilteredItems=(e=!1)=>{const{visibleItems:t,filteredData:n,filterText:i}=this,a=n.map((e=>e.value)),o=t?.filter((e=>t.every((t=>t===e||!e.contains(t))))),r=t.filter((e=>!i||a.includes(e.value)))||[],l=new WeakSet;o.forEach((e=>this.filterElements({el:e,filteredItems:r,visibleParents:l}))),r.length>0&&this.findAncestorOfFirstFilteredItem(r),this.filteredItems=r,e&&this.calciteListFilter.emit()},this.setFilterEl=e=>{this.filterEl=e,this.performFilter()},this.handleFilterChange=e=>{e.stopPropagation();const{value:t}=e.currentTarget;this.filterText=t,this.updateFilteredData(!0)},this.getItemData=()=>this.listItems.map((e=>({label:e.label,description:e.description,metadata:e.metadata,value:e.value}))),this.updateListItems=(0,Ot.d)(((e=!1)=>{const{selectionAppearance:t,selectionMode:n,dragEnabled:i}=this;if(this.parentListEl){return this.queryListItems(!0).forEach((e=>{e.dragHandle=i})),void this.setUpSorting()}const a=this.queryListItems();a.forEach((e=>{e.selectionAppearance=t,e.selectionMode=n}));this.queryListItems(!0).forEach((e=>{e.dragHandle=i})),this.listItems=a,this.filterEnabled&&(this.dataForFilter=this.getItemData(),this.filterEl&&(this.filterEl.items=this.dataForFilter)),this.visibleItems=this.listItems.filter((e=>!e.closed&&!e.hidden)),this.updateFilteredItems(e),this.focusableItems=this.filteredItems.filter((e=>!e.disabled)),this.setActiveListItem(),this.updateSelectedItems(e),this.setUpSorting()}),0),this.queryListItems=(e=!1)=>Array.from(this.el.querySelectorAll(e?":scope > calcite-list-item":Un)),this.focusRow=e=>{const{focusableItems:t}=this;e&&(t.forEach((t=>t.active=t===e)),e.setFocus())},this.isNavigable=e=>{const t=e.parentElement?.closest(Un);return!t||t.open&&this.isNavigable(t)},this.handleListKeydown=e=>{if(e.defaultPrevented||this.parentListEl)return;const{key:t}=e,n=this.focusableItems.filter((e=>this.isNavigable(e))),i=n.findIndex((e=>e.active));if("ArrowDown"===t){e.preventDefault();const t=e.target===this.filterEl?0:i+1;n[t]&&this.focusRow(n[t])}else if("ArrowUp"===t){if(e.preventDefault(),0===i&&this.filterEnabled)return void this.filterEl?.setFocus();const t=i-1;n[t]&&this.focusRow(n[t])}else if("Home"===t){e.preventDefault();const t=n[0];t&&this.focusRow(t)}else if("End"===t){e.preventDefault();const t=n[n.length-1];t&&this.focusRow(t)}},this.findAncestorOfFirstFilteredItem=e=>{this.ancestorOfFirstFilteredItem?.removeAttribute("data-filter"),e.forEach((e=>{e.removeAttribute("data-filter")})),this.ancestorOfFirstFilteredItem=this.getTopLevelAncestorItemElement(e[0]),e[0].setAttribute("data-filter","0"),this.ancestorOfFirstFilteredItem?.setAttribute("data-filter","0")},this.getTopLevelAncestorItemElement=e=>{let t=e.parentElement.closest(Un);for(;t;){const e=t.parentElement.closest(Un);if(!e)return t;t=e}return null},this.disabled=!1,this.canPull=void 0,this.canPut=void 0,this.dragEnabled=!1,this.group=void 0,this.filterEnabled=!1,this.filteredItems=[],this.filteredData=[],this.filterPlaceholder=void 0,this.filterText=void 0,this.label=void 0,this.loading=!1,this.messageOverrides=void 0,this.messages=void 0,this.numberingSystem=void 0,this.openable=!1,this.selectedItems=[],this.selectionMode="none",this.selectionAppearance="icon",this.effectiveLocale="",this.defaultMessages=void 0,this.assistiveText=void 0,this.dataForFilter=[],this.hasFilterActionsEnd=!1,this.hasFilterActionsStart=!1,this.hasFilterNoResults=!1}async handleFilterTextChange(){this.performFilter()}onMessagesChange(){}handleListItemChange(){this.updateListItems()}handleCalciteInternalFocusPreviousItem(e){if(this.parentListEl)return;e.stopPropagation();const{focusableItems:t}=this,n=t.findIndex((e=>e.active))-1;t[n]&&this.focusRow(t[n])}handleCalciteInternalListItemActive(e){if(this.parentListEl)return;e.stopPropagation();const t=e.target,{listItems:n}=this;n.forEach((e=>{e.active=e===t}))}handleCalciteListItemSelect(){this.parentListEl||this.updateSelectedItems(!0)}handleCalciteInternalAssistiveTextChange(e){this.assistiveText=e.detail.message,e.stopPropagation()}handleCalciteHandleNudge(e){this.parentListEl||this.handleNudgeEvent(e)}handleCalciteInternalListItemSelect(e){if(this.parentListEl)return;e.stopPropagation();const t=e.target,{listItems:n,selectionMode:i}=this;!t.selected||"single"!==i&&"single-persist"!==i||n.forEach((e=>e.selected=e===t)),this.updateSelectedItems()}handleCalciteInternalListItemSelectMultiple(e){if(this.parentListEl)return;e.stopPropagation();const{target:t,detail:n}=e,{focusableItems:i,lastSelectedInfo:a}=this,o=t;if(n.selectMultiple&&a){const e=i.indexOf(o),t=i.indexOf(a.selectedItem),n=Math.min(t,e),r=Math.max(t,e);i.slice(n,r+1).forEach((e=>e.selected=a.selected))}else this.lastSelectedInfo={selectedItem:o,selected:o.selected}}handleCalciteInternalListItemChange(e){this.parentListEl||(e.stopPropagation(),this.updateListItems())}handleCalciteInternalListItemGroupDefaultSlotChange(e){e.stopPropagation()}connectedCallback(){mt(this)||((0,Tt.c)(this),this.connectObserver(),this.updateListItems(),this.setUpSorting(),(0,o.c)(this),this.setParentList())}async componentWillLoad(){(0,At.s)(this),await(0,Tt.s)(this)}componentDidRender(){(0,o.u)(this)}componentDidLoad(){(0,At.a)(this)}disconnectedCallback(){mt(this)||(this.disconnectObserver(),pt(this),(0,o.d)(this),(0,Tt.d)(this))}effectiveLocaleChange(){(0,Tt.u)(this,this.effectiveLocale)}async setFocus(){return await(0,At.c)(this),this.filterEnabled?this.filterEl?.setFocus():this.focusableItems.find((e=>e.active))?.setFocus()}render(){const{loading:e,label:t,disabled:n,dataForFilter:r,filterEnabled:s,filterPlaceholder:c,filterText:d,filteredItems:h,hasFilterActionsStart:u,hasFilterActionsEnd:f,hasFilterNoResults:p}=this;return(0,i.h)(o.I,{disabled:this.disabled},(0,i.h)("div",{class:zn},this.dragEnabled?(0,i.h)("span",{"aria-live":"assertive",class:Xn},this.assistiveText):null,this.renderItemAriaLive(),e?(0,i.h)("calcite-scrim",{class:jn,loading:e}):null,(0,i.h)("table",{"aria-busy":(0,a.t)(e),"aria-label":t||"",class:Nn,onKeyDown:this.handleListKeydown,role:"treegrid"},s||u||f?(0,i.h)("thead",null,(0,i.h)("tr",{class:{[Bn]:!0}},(0,i.h)("th",{colSpan:l.M},(0,i.h)("calcite-stack",{class:Rn},(0,i.h)("slot",{name:Wn,onSlotchange:this.handleFilterActionsStartSlotChange,slot:xt}),(0,i.h)("calcite-filter",{"aria-label":c,disabled:n,items:r,onCalciteFilterChange:this.handleFilterChange,placeholder:c,value:d,ref:this.setFilterEl}),(0,i.h)("slot",{name:Gn,onSlotchange:this.handleFilterActionsEndSlotChange,slot:_t}))))):null,(0,i.h)("tbody",{class:Hn},(0,i.h)("slot",{onSlotchange:this.handleDefaultSlotChange}))),(0,i.h)("div",{"aria-live":"polite","data-test-id":"no-results-container",hidden:!(p&&s&&d&&!h.length)},(0,i.h)("slot",{name:Yn,onSlotchange:this.handleFilterNoResultsSlotChange}))))}renderItemAriaLive(){const{messages:e,filteredItems:t,parentListEl:n,effectiveLocale:a,numberingSystem:o,filterEnabled:r,filterText:l,filteredData:s}=this;return Lt.n.numberFormatOptions={locale:a,numberingSystem:o},n?null:(0,i.h)("div",{"aria-live":"polite",class:Xn},r&&l&&s?.length?(0,i.h)("div",{key:"aria-filter-enabled"},e.filterEnabled):null,(0,i.h)("div",{key:"aria-item-count"},e.total.replace("{count}",Lt.n.localize(t.length.toString()))),t.length?(0,i.h)("ol",{key:"aria-item-list"},t.map((e=>(0,i.h)("li",null,e.label)))):null)}connectObserver(){this.mutationObserver?.observe(this.el,{childList:!0,subtree:!0})}disconnectObserver(){this.mutationObserver?.disconnect()}setUpSorting(){const{dragEnabled:e}=this;e&&ft(this)}onGlobalDragStart(){this.disconnectObserver()}onGlobalDragEnd(){this.connectObserver()}onDragEnd(e){this.calciteListDragEnd.emit(e)}onDragStart(e){this.calciteListDragStart.emit(e)}onDragSort(e){this.setParentList(),this.updateListItems(),this.calciteListOrderChange.emit(e)}setParentList(){this.parentListEl=this.el.parentElement?.closest("calcite-list")}filterElements({el:e,filteredItems:t,visibleParents:n}){const i=!n.has(e)&&!t.includes(e);e.filterHidden=i;const a=e.parentElement.closest("calcite-list-item-group, calcite-list-item");a&&(i||n.add(a),this.filterElements({el:a,filteredItems:t,visibleParents:n}))}updateFilteredData(e=!1){const{filterEl:t}=this;t&&(t.filteredItems&&(this.filteredData=t.filteredItems),this.updateListItems(e))}async performFilter(){const{filterEl:e,filterText:t}=this;e&&(e.value=t,await e.filter(t),this.updateFilteredData())}handleNudgeEvent(e){const{handleSelector:t,dragSelector:n}=this,{direction:i}=e.detail,a=e.composedPath(),o=a.find((e=>e?.tagName&&e.matches(t))),r=a.find((e=>e?.tagName&&e.matches(n))),l=r?.parentElement;if(!l)return;const{filteredItems:s}=this,c=s.filter((e=>e.parentElement===l)),d=c.length-1,h=c.indexOf(r);let u;u="up"===i?0===h?d:h-1:h===d?0:h+1,this.disconnectObserver(),o.blurUnselectDisabled=!0;const f="up"===i&&u!==d||"down"===i&&0===u?c[u]:c[u].nextSibling;l.insertBefore(r,f),this.updateListItems(),this.connectObserver(),this.calciteListOrderChange.emit({dragEl:r,fromEl:l,toEl:l,newIndex:u,oldIndex:h}),o.setFocus().then((()=>o.blurUnselectDisabled=!1))}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{filterText:["handleFilterTextChange"],messageOverrides:["onMessagesChange"],filterEnabled:["handleListItemChange"],group:["handleListItemChange"],dragEnabled:["handleListItemChange"],selectionMode:["handleListItemChange"],selectionAppearance:["handleListItemChange"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:block}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.container{position:relative}.table-container{box-sizing:border-box;display:flex;inline-size:100%;flex-direction:column;background-color:transparent}.table-container *{box-sizing:border-box}.table{inline-size:100%;border-collapse:collapse}.stack{--calcite-stack-padding-inline:0;--calcite-stack-padding-block:0}::slotted(calcite-list-item){--tw-shadow:0 -1px 0 var(--calcite-color-border-3);--tw-shadow-colored:0 -1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);margin-block-start:1px}::slotted(calcite-list-item:first-of-type){--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}::slotted(calcite-list-item[data-filter]){--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);margin-block-start:0px}.sticky-pos{position:sticky;inset-block-start:0px;z-index:var(--calcite-z-index-sticky);background-color:var(--calcite-color-foreground-1)}.sticky-pos th{padding:0px}.assistive-text{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-list",{disabled:[516],canPull:[16],canPut:[16],dragEnabled:[516,"drag-enabled"],group:[513],filterEnabled:[516,"filter-enabled"],filteredItems:[1040],filteredData:[1040],filterPlaceholder:[513,"filter-placeholder"],filterText:[1537,"filter-text"],label:[1],loading:[516],messageOverrides:[1040],messages:[1040],numberingSystem:[1,"numbering-system"],openable:[4],selectedItems:[1040],selectionMode:[513,"selection-mode"],selectionAppearance:[513,"selection-appearance"],effectiveLocale:[32],defaultMessages:[32],assistiveText:[32],dataForFilter:[32],hasFilterActionsEnd:[32],hasFilterActionsStart:[32],hasFilterNoResults:[32],setFocus:[64]},[[0,"calciteInternalFocusPreviousItem","handleCalciteInternalFocusPreviousItem"],[0,"calciteInternalListItemActive","handleCalciteInternalListItemActive"],[0,"calciteListItemSelect","handleCalciteListItemSelect"],[0,"calciteInternalAssistiveTextChange","handleCalciteInternalAssistiveTextChange"],[0,"calciteHandleNudge","handleCalciteHandleNudge"],[0,"calciteInternalListItemSelect","handleCalciteInternalListItemSelect"],[0,"calciteInternalListItemSelectMultiple","handleCalciteInternalListItemSelectMultiple"],[0,"calciteInternalListItemChange","handleCalciteInternalListItemChange"],[0,"calciteInternalListItemGroupDefaultSlotChange","handleCalciteInternalListItemGroupDefaultSlotChange"]],{filterText:["handleFilterTextChange"],messageOverrides:["onMessagesChange"],filterEnabled:["handleListItemChange"],group:["handleListItemChange"],dragEnabled:["handleListItemChange"],selectionMode:["handleListItemChange"],selectionAppearance:["handleListItemChange"],effectiveLocale:["effectiveLocaleChange"]}]);function $n(){if("undefined"==typeof customElements)return;["calcite-list","calcite-filter","calcite-icon","calcite-input","calcite-input-message","calcite-loader","calcite-progress","calcite-scrim","calcite-stack"].forEach((e=>{switch(e){case"calcite-list":customElements.get(e)||customElements.define(e,qn);break;case"calcite-filter":customElements.get(e)||Fn();break;case"calcite-icon":customElements.get(e)||(0,_n.d)();break;case"calcite-input":customElements.get(e)||(0,Dn.d)();break;case"calcite-input-message":customElements.get(e)||(0,kn.d)();break;case"calcite-loader":customElements.get(e)||(0,Mn.d)();break;case"calcite-progress":customElements.get(e)||(0,An.d)();break;case"calcite-scrim":customElements.get(e)||(0,Pn.d)();break;case"calcite-stack":customElements.get(e)||kt()}}))}$n();const Kn=qn,Vn=$n},52971:function(e,t,n){n.d(t,{S:function(){return r},a:function(){return b},b:function(){return g},c:function(){return m},d:function(){return F},f:function(){return i},i:function(){return S},r:function(){return o}});var i="object"==typeof global&&global&&global.Object===Object&&global,a="object"==typeof self&&self&&self.Object===Object&&self,o=i||a||Function("return this")(),r=o.Symbol,l=Object.prototype,s=l.hasOwnProperty,c=l.toString,d=r?r.toStringTag:void 0;var h=Object.prototype.toString;var u="[object Null]",f="[object Undefined]",p=r?r.toStringTag:void 0;function g(e){return null==e?void 0===e?f:u:p&&p in Object(e)?function(e){var t=s.call(e,d),n=e[d];try{e[d]=void 0;var i=!0}catch(e){}var a=c.call(e);return i&&(t?e[d]=n:delete e[d]),a}(e):function(e){return h.call(e)}(e)}function m(e){return null!=e&&"object"==typeof e}var v="[object Symbol]";function b(e){return"symbol"==typeof e||m(e)&&g(e)==v}var y=/\s/;var E=/^\s+/;function w(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&y.test(e.charAt(t)););return t}(e)+1).replace(E,""):e}function S(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var x=NaN,C=/^[-+]0x[0-9a-f]+$/i,I=/^0b[01]+$/i,_=/^0o[0-7]+$/i,D=parseInt;function k(e){if("number"==typeof e)return e;if(b(e))return x;if(S(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=S(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=w(e);var n=I.test(e);return n||_.test(e)?D(e.slice(2),n?2:8):C.test(e)?x:+e}var A=function(){return o.Date.now()},T="Expected a function",L=Math.max,O=Math.min;function F(e,t,n){var i,a,o,r,l,s,c=0,d=!1,h=!1,u=!0;if("function"!=typeof e)throw new TypeError(T);function f(t){var n=i,o=a;return i=a=void 0,c=t,r=e.apply(o,n)}function p(e){var n=e-s;return void 0===s||n>=t||n<0||h&&e-c>=o}function g(){var e=A();if(p(e))return m(e);l=setTimeout(g,function(e){var n=t-(e-s);return h?O(n,o-(e-c)):n}(e))}function m(e){return l=void 0,u&&i?f(e):(i=a=void 0,r)}function v(){var e=A(),n=p(e);if(i=arguments,a=this,s=e,n){if(void 0===l)return function(e){return c=e,l=setTimeout(g,t),d?f(e):r}(s);if(h)return clearTimeout(l),l=setTimeout(g,t),f(s)}return void 0===l&&(l=setTimeout(g,t)),r}return t=k(t)||0,S(n)&&(d=!!n.leading,o=(h="maxWait"in n)?L(k(n.maxWait)||0,t):o,u="trailing"in n?!!n.trailing:u),v.cancel=function(){void 0!==l&&clearTimeout(l),c=0,i=s=a=l=void 0},v.flush=function(){return void 0===l?r:m(A())},v}},92708:function(e,t,n){n.d(t,{L:function(){return o},d:function(){return r}});var i=n(77210),a=n(96472);const o=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.inline=!1,this.label=void 0,this.scale="m",this.type=void 0,this.value=0,this.text=""}render(){const{el:e,inline:t,label:n,scale:o,text:r,type:l,value:s}=this,c=e.id||(0,a.g)(),d=t?this.getInlineSize(o):this.getSize(o),h=.45*d,u=`0 0 ${d} ${d}`,f="determinate"===l,p=2*h*Math.PI,g=s/100*p,m=p-g,v=Math.floor(s),b={"aria-valuenow":v,"aria-valuemin":0,"aria-valuemax":100,complete:100===v},y={r:h,cx:d/2,cy:d/2},E={"stroke-dasharray":`${g} ${m}`};return(0,i.h)(i.AA,{"aria-label":n,id:c,role:"progressbar",...f?b:{}},(0,i.h)("div",{class:"loader__svgs"},(0,i.h)("svg",{"aria-hidden":"true",class:"loader__svg loader__svg--1",viewBox:u},(0,i.h)("circle",{...y})),(0,i.h)("svg",{"aria-hidden":"true",class:"loader__svg loader__svg--2",viewBox:u},(0,i.h)("circle",{...y})),(0,i.h)("svg",{"aria-hidden":"true",class:"loader__svg loader__svg--3",viewBox:u,...f?{style:E}:{}},(0,i.h)("circle",{...y}))),r&&(0,i.h)("div",{class:"loader__text"},r),f&&(0,i.h)("div",{class:"loader__percentage"},s))}getSize(e){return{s:32,m:56,l:80}[e]}getInlineSize(e){return{s:12,m:16,l:20}[e]}get el(){return this}static get style(){return'@charset "UTF-8";@media (prefers-reduced-motion: reduce){:root{--calcite-internal-duration-factor:0}}:host{position:relative;margin-inline:auto;display:none;align-items:center;justify-content:center;opacity:1;min-block-size:var(--calcite-loader-size);font-size:var(--calcite-loader-font-size);stroke:var(--calcite-color-brand);stroke-width:3;fill:none;transform:scale(1, 1);animation:loader-color-shift calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 2 / var(--calcite-internal-duration-factor)) alternate-reverse infinite linear;padding-block:var(--calcite-loader-padding, 4rem);will-change:contents}:host([scale=s]){--calcite-loader-font-size:var(--calcite-font-size--2);--calcite-loader-size:2rem;--calcite-loader-size-inline:0.75rem}:host([scale=m]){--calcite-loader-font-size:var(--calcite-font-size-0);--calcite-loader-size:4rem;--calcite-loader-size-inline:1rem}:host([scale=l]){--calcite-loader-font-size:var(--calcite-font-size-2);--calcite-loader-size:6rem;--calcite-loader-size-inline:1.5rem}:host([no-padding]){padding-block:0px}:host{display:flex}.loader__text{display:block;text-align:center;font-size:var(--calcite-font-size--2);line-height:1rem;color:var(--calcite-color-text-1);margin-block-start:calc(var(--calcite-loader-size) + 1.5rem)}.loader__percentage{position:absolute;display:block;text-align:center;color:var(--calcite-color-text-1);font-size:var(--calcite-loader-font-size);inline-size:var(--calcite-loader-size);inset-inline-start:50%;margin-inline-start:calc(var(--calcite-loader-size) / 2 * -1);line-height:0.25;transform:scale(1, 1)}.loader__svgs{position:absolute;overflow:visible;opacity:1;inline-size:var(--calcite-loader-size);block-size:var(--calcite-loader-size);inset-inline-start:50%;margin-inline-start:calc(var(--calcite-loader-size) / 2 * -1);animation-iteration-count:infinite;animation-timing-function:linear;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 6.66 / var(--calcite-internal-duration-factor));animation-name:loader-clockwise}.loader__svg{position:absolute;inset-block-start:0px;transform-origin:center;overflow:visible;inset-inline-start:0;inline-size:var(--calcite-loader-size);block-size:var(--calcite-loader-size);animation-iteration-count:infinite;animation-timing-function:linear}@supports (display: grid){.loader__svg--1{animation-name:loader-offset-1}.loader__svg--2{animation-name:loader-offset-2}.loader__svg--3{animation-name:loader-offset-3}}:host([type=determinate]){animation:none;stroke:var(--calcite-color-border-3)}:host([type=determinate]) .loader__svgs{animation:none}:host([type=determinate]) .loader__svg--3{animation:none;stroke:var(--calcite-color-brand);stroke-dasharray:150.79632;transform:rotate(-90deg);transition:all var(--calcite-internal-animation-timing-fast) linear}:host([inline]){position:relative;margin:0px;animation:none;stroke:currentColor;stroke-width:2;padding-block:0px;block-size:var(--calcite-loader-size-inline);min-block-size:var(--calcite-loader-size-inline);inline-size:var(--calcite-loader-size-inline);margin-inline-end:calc(var(--calcite-loader-size-inline) * 0.5);vertical-align:calc(var(--calcite-loader-size-inline) * -1 * 0.2)}:host([inline]) .loader__svgs{inset-block-start:0px;margin:0px;inset-inline-start:0;inline-size:var(--calcite-loader-size-inline);block-size:var(--calcite-loader-size-inline)}:host([inline]) .loader__svg{inline-size:var(--calcite-loader-size-inline);block-size:var(--calcite-loader-size-inline)}:host([complete]){opacity:0;transform:scale(0.75, 0.75);transform-origin:center;transition:opacity var(--calcite-internal-animation-timing-medium) linear 1000ms, transform var(--calcite-internal-animation-timing-medium) linear 1000ms}:host([complete]) .loader__svgs{opacity:0;transform:scale(0.75, 0.75);transform-origin:center;transition:opacity calc(180ms * var(--calcite-internal-duration-factor)) linear 800ms, transform calc(180ms * var(--calcite-internal-duration-factor)) linear 800ms}:host([complete]) .loader__percentage{color:var(--calcite-color-brand);transform:scale(1.05, 1.05);transform-origin:center;transition:color var(--calcite-internal-animation-timing-medium) linear, transform var(--calcite-internal-animation-timing-medium) linear}.loader__svg--1{stroke-dasharray:27.9252444444 139.6262222222;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 4.8 / var(--calcite-internal-duration-factor))}@keyframes loader-offset-1{0%{stroke-dasharray:27.9252444444 251.3272;stroke-dashoffset:0}50%{stroke-dasharray:139.6262222222 139.6262222222;stroke-dashoffset:-83.7757333333}100%{stroke-dasharray:27.9252444444 251.3272;stroke-dashoffset:-279.2524444444}}.loader__svg--2{stroke-dasharray:55.8504888889 139.6262222222;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 6.4 / var(--calcite-internal-duration-factor))}@keyframes loader-offset-2{0%{stroke-dasharray:55.8504888889 223.4019555556;stroke-dashoffset:0}50%{stroke-dasharray:139.6262222222 139.6262222222;stroke-dashoffset:-97.7383555556}100%{stroke-dasharray:55.8504888889 223.4019555556;stroke-dashoffset:-279.2524444444}}.loader__svg--3{stroke-dasharray:13.9626222222 139.6262222222;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 7.734 / var(--calcite-internal-duration-factor))}@keyframes loader-offset-3{0%{stroke-dasharray:13.9626222222 265.2898222222;stroke-dashoffset:0}50%{stroke-dasharray:139.6262222222 139.6262222222;stroke-dashoffset:-76.7944222222}100%{stroke-dasharray:13.9626222222 265.2898222222;stroke-dashoffset:-279.2524444444}}@keyframes loader-color-shift{0%{stroke:var(--calcite-color-brand)}33%{stroke:var(--calcite-color-brand-press)}66%{stroke:var(--calcite-color-brand-hover)}100%{stroke:var(--calcite-color-brand)}}@keyframes loader-clockwise{100%{transform:rotate(360deg)}}:host([hidden]){display:none}[hidden]{display:none}'}},[1,"calcite-loader",{inline:[516],label:[1],scale:[513],type:[513],value:[2],text:[1]}]);function r(){if("undefined"==typeof customElements)return;["calcite-loader"].forEach((e=>{if("calcite-loader"===e)customElements.get(e)||customElements.define(e,o)}))}r()},45067:function(e,t,n){n.d(t,{d:function(){return p}});var i=n(77210),a=n(19417),o=n(53801),r=n(85545),l=n(79145),s=n(92708);const c="scrim",d="content",h=72,u=480,f=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.resizeObserver=(0,r.c)("resize",(()=>this.handleResize())),this.handleDefaultSlotChange=e=>{this.hasContent=(0,l.r)(e)},this.storeLoaderEl=e=>{this.loaderEl=e,this.handleResize()},this.loading=!1,this.messages=void 0,this.messageOverrides=void 0,this.loaderScale=void 0,this.defaultMessages=void 0,this.effectiveLocale="",this.hasContent=!1}onMessagesChange(){}effectiveLocaleChange(){(0,o.u)(this,this.effectiveLocale)}connectedCallback(){(0,a.c)(this),(0,o.c)(this),this.resizeObserver?.observe(this.el)}async componentWillLoad(){await(0,o.s)(this)}disconnectedCallback(){(0,a.d)(this),(0,o.d)(this),this.resizeObserver?.disconnect()}render(){const{hasContent:e,loading:t,messages:n}=this;return(0,i.h)("div",{class:c},t?(0,i.h)("calcite-loader",{label:n.loading,scale:this.loaderScale,ref:this.storeLoaderEl}):null,(0,i.h)("div",{class:d,hidden:!e},(0,i.h)("slot",{onSlotchange:this.handleDefaultSlotChange})))}getScale(e){return e=u?"l":"m"}handleResize(){const{loaderEl:e,el:t}=this;e&&(this.loaderScale=this.getScale(Math.min(t.clientHeight,t.clientWidth)??0))}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host{--calcite-scrim-background:var(--calcite-color-transparent-scrim);position:absolute;inset:0px;z-index:var(--calcite-z-index-overlay);display:flex;block-size:100%;inline-size:100%;flex-direction:column;align-items:stretch}@keyframes calcite-scrim-fade-in{0%{--tw-bg-opacity:0}100%{--tw-text-opacity:1}}.scrim{position:absolute;inset:0px;display:flex;flex-direction:column;align-content:center;align-items:center;justify-content:center;overflow:hidden;animation:calcite-scrim-fade-in var(--calcite-internal-animation-timing-medium) ease-in-out;background-color:var(--calcite-scrim-background, var(--calcite-color-transparent-scrim))}.content{padding:1rem}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-scrim",{loading:[516],messages:[1040],messageOverrides:[1040],loaderScale:[32],defaultMessages:[32],effectiveLocale:[32],hasContent:[32]},void 0,{messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}]);function p(){if("undefined"==typeof customElements)return;["calcite-scrim","calcite-loader"].forEach((e=>{switch(e){case"calcite-scrim":customElements.get(e)||customElements.define(e,f);break;case"calcite-loader":customElements.get(e)||(0,s.d)()}}))}p()},22562:function(e,t,n){n.d(t,{C:function(){return a},I:function(){return l},M:function(){return r},S:function(){return o},a:function(){return s},b:function(){return g},c:function(){return u},g:function(){return f},u:function(){return p}});var i=n(77210);const a={container:"container",containerHover:"container--hover",containerBorder:"container--border",containerBorderSelected:"container--border-selected",containerBorderUnselected:"container--border-unselected",contentContainer:"content-container",contentContainerSelectable:"content-container--selectable",contentContainerHasCenterContent:"content-container--has-center-content",nestedContainer:"nested-container",nestedContainerHidden:"nested-container--hidden",content:"content",customContent:"custom-content",actionsStart:"actions-start",contentStart:"content-start",label:"label",description:"description",contentEnd:"content-end",contentBottom:"content-bottom",actionsEnd:"actions-end",selectionContainer:"selection-container",selectionContainerSingle:"selection-container--single",openContainer:"open-container",dragContainer:"drag-container"},o={actionsStart:"actions-start",contentStart:"content-start",content:"content",contentBottom:"content-bottom",contentEnd:"content-end",actionsEnd:"actions-end"},r=0,l={selectedMultiple:"check-square-f",selectedSingle:"bullet-point-large",unselectedMultiple:"square",unselectedSingle:"bullet-point-large",closedLTR:"chevron-right",closedRTL:"chevron-left",open:"chevron-down",blank:"blank",close:"x"},s="data-test-active",c="calcite-list",d="calcite-list-item-group",h="calcite-list-item";function u(e){return Array.from(e.assignedElements({flatten:!0}).filter((e=>e.matches(c))))}function f(e){const t=e.assignedElements({flatten:!0}),n=t.filter((e=>e?.matches(d))).map((e=>Array.from(e.querySelectorAll(h)))).reduce(((e,t)=>[...e,...t]),[]),i=t.filter((e=>e?.matches(h)));return[...t.filter((e=>e?.matches(c))).map((e=>Array.from(e.querySelectorAll(h)))).reduce(((e,t)=>[...e,...t]),[]),...n,...i]}function p(e){e.forEach((t=>{t.setPosition=e.indexOf(t)+1,t.setSize=e.length}))}function g(e,t=!1){if(!i.Z5.isBrowser)return 0;const n=t?"ancestor::calcite-list-item | ancestor::calcite-list-item-group":"ancestor::calcite-list-item";return document.evaluate(n,e,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotLength}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4578.9f1a1054c5900a3f7914.js.LICENSE.txt b/docs/sentinel1-explorer/4578.9f1a1054c5900a3f7914.js.LICENSE.txt new file mode 100644 index 00000000..535de4a0 --- /dev/null +++ b/docs/sentinel1-explorer/4578.9f1a1054c5900a3f7914.js.LICENSE.txt @@ -0,0 +1,12 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ + +/**! + * Sortable 1.15.1 + * @author RubaXa + * @author owenm + * @license MIT + */ diff --git a/docs/sentinel1-explorer/4630.16abd854c09672c706c9.js b/docs/sentinel1-explorer/4630.16abd854c09672c706c9.js new file mode 100644 index 00000000..ecd41304 --- /dev/null +++ b/docs/sentinel1-explorer/4630.16abd854c09672c706c9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4630],{19480:function(t,e,n){n.d(e,{x:function(){return o}});var r=n(66581);class o{constructor(t){this._allocator=t,this._items=[],this._itemsPtr=0,this._grow()}get(){return 0===this._itemsPtr&&(0,r.Y)((()=>this._reset())),this._itemsPtr===this._items.length&&this._grow(),this._items[this._itemsPtr++]}_reset(){const t=Math.min(3*Math.max(8,this._itemsPtr),this._itemsPtr+3*s);this._items.length=Math.min(t,this._items.length),this._itemsPtr=0}_grow(){for(let t=0;t(0,i.bn)()?(t[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r):(t[0]=1,t[1]=0,t[2]=0),n}function l(t,e,n){const r=e[0],o=e[1],s=e[2],i=e[3],u=n[0],c=n[1],a=n[2],f=n[3];return t[0]=r*f+i*u+o*a-s*c,t[1]=o*f+i*c+s*u-r*a,t[2]=s*f+i*a+r*c-o*u,t[3]=i*f-r*u-o*c-s*a,t}function E(t,e,n,r){const o=e[0],s=e[1],u=e[2],c=e[3];let a,f,l,E,h,M=n[0],I=n[1],T=n[2],N=n[3];return f=o*M+s*I+u*T+c*N,f<0&&(f=-f,M=-M,I=-I,T=-T,N=-N),1-f>(0,i.bn)()?(a=Math.acos(f),l=Math.sin(a),E=Math.sin((1-r)*a)/l,h=Math.sin(r*a)/l):(E=1-r,h=r),t[0]=E*o+h*M,t[1]=E*s+h*I,t[2]=E*u+h*T,t[3]=E*c+h*N,t}function h(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function M(t,e){const n=e[0]+e[4]+e[8];let r;if(n>0)r=Math.sqrt(n+1),t[3]=.5*r,r=.5/r,t[0]=(e[5]-e[7])*r,t[1]=(e[6]-e[2])*r,t[2]=(e[1]-e[3])*r;else{let n=0;e[4]>e[0]&&(n=1),e[8]>e[3*n+n]&&(n=2);const o=(n+1)%3,s=(n+2)%3;r=Math.sqrt(e[3*n+n]-e[3*o+o]-e[3*s+s]+1),t[n]=.5*r,r=.5/r,t[3]=(e[3*o+s]-e[3*s+o])*r,t[o]=(e[3*o+n]+e[3*n+o])*r,t[s]=(e[3*s+n]+e[3*n+s])*r}return t}function I(t,e,n,r){const o=.5*Math.PI/180;e*=o,n*=o,r*=o;const s=Math.sin(e),i=Math.cos(e),u=Math.sin(n),c=Math.cos(n),a=Math.sin(r),f=Math.cos(r);return t[0]=s*c*f-i*u*a,t[1]=i*u*f+s*c*a,t[2]=i*c*a-s*u*f,t[3]=i*c*f+s*u*a,t}const T=c.c,N=c.s,A=c.f,O=l,m=c.b,p=c.g,S=c.l,R=c.i,d=R,_=c.j,L=_,P=c.n,C=c.a,g=c.e;const U=(0,s.Ue)(),F=(0,s.al)(1,0,0),y=(0,s.al)(0,1,0);const D=(0,o.Ue)(),w=(0,o.Ue)();const b=(0,r.Ue)();Object.freeze(Object.defineProperty({__proto__:null,add:A,calculateW:function(t,e){const n=e[0],r=e[1],o=e[2];return t[0]=n,t[1]=r,t[2]=o,t[3]=Math.sqrt(Math.abs(1-n*n-r*r-o*o)),t},conjugate:h,copy:T,dot:p,equals:g,exactEquals:C,fromEuler:I,fromMat3:M,getAxisAngle:f,identity:function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},invert:function(t,e){const n=e[0],r=e[1],o=e[2],s=e[3],i=n*n+r*r+o*o+s*s,u=i?1/i:0;return t[0]=-n*u,t[1]=-r*u,t[2]=-o*u,t[3]=s*u,t},len:d,length:R,lerp:S,mul:O,multiply:l,normalize:P,random:function(t){const e=i.FD,n=e(),r=e(),o=e(),s=Math.sqrt(1-n),u=Math.sqrt(n);return t[0]=s*Math.sin(2*Math.PI*r),t[1]=s*Math.cos(2*Math.PI*r),t[2]=u*Math.sin(2*Math.PI*o),t[3]=u*Math.cos(2*Math.PI*o),t},rotateX:function(t,e,n){n*=.5;const r=e[0],o=e[1],s=e[2],i=e[3],u=Math.sin(n),c=Math.cos(n);return t[0]=r*c+i*u,t[1]=o*c+s*u,t[2]=s*c-o*u,t[3]=i*c-r*u,t},rotateY:function(t,e,n){n*=.5;const r=e[0],o=e[1],s=e[2],i=e[3],u=Math.sin(n),c=Math.cos(n);return t[0]=r*c-s*u,t[1]=o*c+i*u,t[2]=s*c+r*u,t[3]=i*c-o*u,t},rotateZ:function(t,e,n){n*=.5;const r=e[0],o=e[1],s=e[2],i=e[3],u=Math.sin(n),c=Math.cos(n);return t[0]=r*c+o*u,t[1]=o*c-r*u,t[2]=s*c+i*u,t[3]=i*c-s*u,t},rotationTo:function(t,e,n){const r=(0,u.k)(e,n);return r<-.999999?((0,u.b)(U,F,e),(0,u.H)(U)<1e-6&&(0,u.b)(U,y,e),(0,u.n)(U,U),a(t,U,Math.PI),t):r>.999999?(t[0]=0,t[1]=0,t[2]=0,t[3]=1,t):((0,u.b)(U,e,n),t[0]=U[0],t[1]=U[1],t[2]=U[2],t[3]=1+r,P(t,t))},scale:m,set:N,setAxes:function(t,e,n,r){const o=b;return o[0]=n[0],o[3]=n[1],o[6]=n[2],o[1]=r[0],o[4]=r[1],o[7]=r[2],o[2]=-e[0],o[5]=-e[1],o[8]=-e[2],P(t,M(t,o))},setAxisAngle:a,slerp:E,sqlerp:function(t,e,n,r,o,s){return E(D,e,o,s),E(w,n,r,s),E(t,D,w,2*s*(1-s)),t},sqrLen:L,squaredLength:_,str:function(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}},Symbol.toStringTag,{value:"Module"}))},43176:function(t,e,n){n.d(e,{B:function(){return a}});var r=n(19431),o=n(32114),s=n(81095);function i(t,e,n){const r=Math.sin(t),o=Math.cos(t),s=Math.sin(e),i=Math.cos(e),u=n;return u[0]=-r,u[4]=-s*o,u[8]=i*o,u[12]=0,u[1]=o,u[5]=-s*r,u[9]=i*r,u[13]=0,u[2]=0,u[6]=i,u[10]=s,u[14]=0,u[3]=0,u[7]=0,u[11]=0,u[15]=1,u}var u=n(19508),c=n(35925);function a(t,e,n,r){if(null==t||null==r)return!1;const s=(0,u.eT)(t,u.Jz),a=(0,u.eT)(r,u.sp);if(s===a&&!f(a)&&(s!==u.Ej.UNKNOWN||(0,c.fS)(t,r)))return(0,o.vc)(n,e),!0;if(f(a)){const t=u.rf[s][u.Ej.LON_LAT],r=u.rf[u.Ej.LON_LAT][a];return null!=t&&null!=r&&(t(e,0,E,0),r(E,0,h,0),i(l*E[0],l*E[1],n),n[12]=h[0],n[13]=h[1],n[14]=h[2],!0)}if((a===u.Ej.WEB_MERCATOR||a===u.Ej.PLATE_CARREE||a===u.Ej.WGS84)&&(s===u.Ej.WGS84||s===u.Ej.CGCS2000&&a===u.Ej.PLATE_CARREE||s===u.Ej.SPHERICAL_ECEF||s===u.Ej.WEB_MERCATOR)){const t=u.rf[s][u.Ej.LON_LAT],r=u.rf[u.Ej.LON_LAT][a];return null!=t&&null!=r&&(t(e,0,E,0),r(E,0,h,0),s===u.Ej.SPHERICAL_ECEF?function(t,e,n){i(t,e,n),(0,o.p4)(n,n)}(l*E[0],l*E[1],n):(0,o.yR)(n),n[12]=h[0],n[13]=h[1],n[14]=h[2],!0)}return!1}function f(t){return t===u.Ej.SPHERICAL_ECEF||t===u.Ej.SPHERICAL_MARS_PCPF||t===u.Ej.SPHERICAL_MOON_PCPF}const l=(0,r.Vl)(1),E=(0,s.Ue)(),h=(0,s.Ue)()},57022:function(t,e,n){n.d(e,{K:function(){return i}});var r=n(81095),o=n(28105),s=n(22349);function i(t,e,n,r){if((0,o.canProjectWithoutEngine)(t.spatialReference,n)){u[0]=t.x,u[1]=t.y;const o=t.z;return u[2]=o??r??0,(0,s.projectBuffer)(u,t.spatialReference,0,e,n,0,1)}const i=(0,o.tryProjectWithZConversion)(t,n);return!!i&&(e[0]=i?.x,e[1]=i?.y,e[2]=i?.z??r??0,!0)}const u=(0,r.Ue)()},61170:function(t,e,n){n.d(e,{rS:function(){return a}});var r=n(69442),o=n(14685),s=n(35925);const i=new o.Z(r.kU),u=new o.Z(r.JL),c=new o.Z(r.mM);new o.Z(r.pn);function a(t){const e=f.get(t);if(e)return e;let n=i;if(t)if(t===u)n=u;else if(t===c)n=c;else{const e=t.wkid,r=t.latestWkid;if(null!=e||null!=r)(0,s.o$)(e)||(0,s.o$)(r)?n=u:((0,s.ME)(e)||(0,s.ME)(r))&&(n=c);else{const e=t.wkt2??t.wkt;if(e){const t=e.toUpperCase();t===l?n=u:t===E&&(n=c)}}}return f.set(t,n),n}const f=new Map,l=u.wkt.toUpperCase(),E=c.wkt.toUpperCase()},39050:function(t,e,n){n.d(e,{oq:function(){return A},Er:function(){return O},JG:function(){return u},Ue:function(){return i},zu:function(){return l},zk:function(){return f},st:function(){return c},jH:function(){return m}});n(19431);var r=n(86717),o=n(81095),s=n(56999);n(5700),n(68817);(0,o.Ue)(),(0,o.Ue)(),(0,o.Ue)(),(0,o.Ue)(),(0,o.Ue)();function i(t=p){return[t[0],t[1],t[2],t[3]]}s.a,s.e;function u(t,e){return a(e[0],e[1],e[2],e[3],t)}function c(t){return t}function a(t,e,n,r,o=i()){return o[0]=t,o[1]=e,o[2]=n,o[3]=r,o}function f(t,e,n,r=i()){const o=n[0]-e[0],s=n[1]-e[1],u=n[2]-e[2],c=t[0]-e[0],a=t[1]-e[1],f=t[2]-e[2],l=s*f-u*a,E=u*c-o*f,h=o*a-s*c,M=l*l+E*E+h*h,I=Math.abs(M-1)>1e-5&&M>1e-12?1/Math.sqrt(M):1;return r[0]=l*I,r[1]=E*I,r[2]=h*I,r[3]=-(r[0]*t[0]+r[1]*t[1]+r[2]*t[2]),r}function l(t,e,n,o=0,s=Math.floor(n*(1/3)),i=Math.floor(n*(2/3))){if(n<3)return!1;e(h,o);let u=s,c=!1;for(;u=0)return!1;if(n>-1e-6&&n<1e-6)return o>0;if((o<0||n<0)&&!(o<0&&n<0))return!0;const s=o/n;return n>0?se.c0&&(e.c0=s),e.c0<=e.c1}function O(t,e){const n=(0,r.k)(t,e.ray.direction),o=-m(t,e.ray.origin);if(n>-1e-6&&n<1e-6)return o>0;const s=o/n;return n>0?se.c0&&(e.c0=s),e.c0<=e.c1}function m(t,e){return(0,r.k)(t,e)+t[3]}const p=[0,0,1,0];var S,R;(R=S||(S={}))[R.NONE=0]="NONE",R[R.CLAMP=1]="CLAMP",R[R.INFINITE_MIN=4]="INFINITE_MIN",R[R.INFINITE_MAX=8]="INFINITE_MAX";S.INFINITE_MIN,S.INFINITE_MAX,S.INFINITE_MAX},5700:function(t,e,n){n.d(e,{EU:function(){return u},SR:function(){return i}});var r=n(19431),o=n(86717),s=n(81095);function i(t,e){return(0,o.k)(t,e)/(0,o.l)(t)}function u(t,e){const n=(0,o.k)(t,e)/((0,o.l)(t)*(0,o.l)(e));return-(0,r.ZF)(n)}(0,s.Ue)(),(0,s.Ue)()},68817:function(t,e,n){n.d(e,{MP:function(){return h},vD:function(){return M},WM:function(){return l},o6:function(){return E}});var r=n(66581),o=n(3965),s=n(3308),i=n(96303),u=n(84164),c=n(81095),a=n(52721);class f{constructor(t){this._create=t,this._items=new Array,this._itemsPtr=0}get(){return 0===this._itemsPtr&&(0,r.Y)((()=>this._reset())),this._itemsPtr>=this._items.length&&this._items.push(this._create()),this._items[this._itemsPtr++]}_reset(){const t=2*this._itemsPtr;this._items.length>t&&(this._items.length=t),this._itemsPtr=0}static createVec2f64(){return new f(u.Ue)}static createVec3f64(){return new f(c.Ue)}static createVec4f64(){return new f(a.Ue)}static createMat3f64(){return new f(o.Ue)}static createMat4f64(){return new f(s.Ue)}static createQuatf64(){return new f(i.Ue)}get test(){return{length:this._items.length}}}f.createVec2f64();const l=f.createVec3f64(),E=f.createVec4f64(),h=(f.createMat3f64(),f.createMat4f64()),M=f.createQuatf64()},84095:function(t,e,n){n.r(e),n.d(e,{assetMapFromAssetMapsJSON:function(){return O},extractMesh:function(){return T},meshFeatureSetFromJSON:function(){return I}});var r=n(80085),o=n(13802),s=n(86114),i=n(91772),u=n(97518),c=n(67666),a=n(14685),f=n(68403),l=n(57450),E=n(13449),h=n(51211);const M=()=>o.Z.getLogger("esri.rest.support.meshFeatureSet");function I(t,e,n){const o=n.features;n.features=[],delete n.geometryType;const s=h.Z.fromJSON(n);if(s.geometryType="mesh",!n.assetMaps)return s;const i=O(e,n.assetMaps),u=t.sourceSpatialReference??a.Z.WGS84,c=n.globalIdFieldName,{outFields:f}=t,l=null!=f&&f.length>0?(E=f.includes("*")?null:new Set(f),({attributes:t})=>{if(!t)return{};if(!E)return t;for(const e in t)E.has(e)||delete t[e];return t}):()=>({});var E;for(const t of o){const n=T(t,c,u,e,i);null!=n&&s.features.push(new r.Z({geometry:n,attributes:l(t)}))}return s}function T(t,e,n,r,o){const s=t.attributes[e],a=o.get(s);if(null==a)return M().error("mesh-feature-set:asset-not-found","Service returned a feature which was not found in the asset map",t),null;if(!t.geometry)return M().error("mesh-feature-set:no-geometry","Service returned a feature without geometry",t),null;const E=function({attributes:t},e,{transformFieldRoles:n}){const r=t[n.originX],o=t[n.originY],s=t[n.originZ];return new c.Z({x:r,y:o,z:s,spatialReference:e})}(t,n,r),h=i.Z.fromJSON(t.geometry);h.spatialReference=n;const I=function(t,{transformFieldRoles:e}){return new f.Z({translation:[t[e.translationX],-t[e.translationZ],t[e.translationY]],rotationAxis:[t[e.rotationX],-t[e.rotationZ],t[e.rotationY]],rotationAngle:t[e.rotationDeg],scale:[t[e.scaleX],t[e.scaleZ],t[e.scaleY]]})}(t.attributes,r),T=n.isGeographic?"local":"georeferenced",A=function(t){const e=Array.from(t.files.values()),n=new Array;for(const t of e){if(t.status!==N.COMPLETED)return null;const e=new Array;for(const n of t.parts){if(!n)return null;e.push(new l.LL(n.url,n.hash))}n.push(new l.CP(t.name,t.mimeType,e))}return n}(a);return A?u.Z.createWithExternalSource(E,A,{extent:h,transform:I,vertexSpace:T}):u.Z.createIncomplete(E,{extent:h,transform:I,vertexSpace:T})}var N,A;function O(t,e){const n=new Map;for(const r of e){const e=r.parentGlobalId;if(null==e)continue;const o=r.assetName,i=r.assetType,u=r.assetHash,c=r.assetURL,a=r.conversionStatus,f=r.seqNo,l=(0,E.d1)(i,t.supportedFormats);if(!l){M().error("mesh-feature-set:unknown-format",`Service returned an asset of type ${i}, but it does not list it as a supported type`);continue}const h=(0,s.s1)(n,e,(()=>({files:new Map})));(0,s.s1)(h.files,o,(()=>({name:o,type:i,mimeType:l,status:m(a),parts:[]}))).parts[f]={hash:u,url:c}}return n}function m(t){switch(t){case"COMPLETED":case"SUBMITTED":return N.COMPLETED;case"INPROGRESS":return N.PENDING;default:return N.FAILED}}(A=N||(N={}))[A.FAILED=0]="FAILED",A[A.PENDING=1]="PENDING",A[A.COMPLETED=2]="COMPLETED"},85799:function(t,e,n){n.d(e,{U:function(){return r},a:function(){return o}});class r{constructor(t,e,n=e){this.data=t,this.size=e,this.stride=n}}class o extends r{constructor(t,e,n,r=!1,o=n){super(t,n,o),this.indices=e,this.exclusive=r}}},21414:function(t,e,n){var r;n.d(e,{T:function(){return r}}),function(t){t.POSITION="position",t.NORMAL="normal",t.NORMALCOMPRESSED="normalCompressed",t.UV0="uv0",t.COLOR="color",t.SYMBOLCOLOR="symbolColor",t.SIZE="size",t.TANGENT="tangent",t.OFFSET="offset",t.PERSPECTIVEDIVIDE="perspectiveDivide",t.CENTEROFFSETANDDISTANCE="centerOffsetAndDistance",t.LENGTH="length",t.PREVPOSITION="prevPosition",t.NEXTPOSITION="nextPosition",t.SUBDIVISIONFACTOR="subdivisionFactor",t.COLORFEATUREATTRIBUTE="colorFeatureAttribute",t.SIZEFEATUREATTRIBUTE="sizeFeatureAttribute",t.OPACITYFEATUREATTRIBUTE="opacityFeatureAttribute",t.DISTANCETOSTART="distanceToStart",t.UVMAPSPACE="uvMapSpace",t.BOUNDINGRECT="boundingRect",t.UVREGION="uvRegion",t.PROFILERIGHT="profileRight",t.PROFILEUP="profileUp",t.PROFILEVERTEXANDNORMAL="profileVertexAndNormal",t.FEATUREVALUE="featureValue",t.INSTANCEMODELORIGINHI="instanceModelOriginHi",t.INSTANCEMODELORIGINLO="instanceModelOriginLo",t.INSTANCEMODEL="instanceModel",t.INSTANCEMODELNORMAL="instanceModelNormal",t.INSTANCECOLOR="instanceColor",t.INSTANCEFEATUREATTRIBUTE="instanceFeatureAttribute",t.LOCALTRANSFORM="localTransform",t.GLOBALTRANSFORM="globalTransform",t.BOUNDINGSPHERE="boundingSphere",t.MODELORIGIN="modelOrigin",t.MODELSCALEFACTORS="modelScaleFactors",t.FEATUREATTRIBUTE="featureAttribute",t.STATE="state",t.LODLEVEL="lodLevel",t.POSITION0="position0",t.POSITION1="position1",t.NORMAL2COMPRESSED="normal2Compressed",t.COMPONENTINDEX="componentIndex",t.VARIANTOFFSET="variantOffset",t.VARIANTSTROKE="variantStroke",t.VARIANTEXTENSION="variantExtension",t.SIDENESS="sideness",t.START="start",t.END="end",t.UP="up",t.EXTRUDE="extrude",t.OBJECTANDLAYERIDCOLOR="objectAndLayerIdColor",t.INSTANCEOBJECTANDLAYERIDCOLOR="instanceObjectAndLayerIdColor"}(r||(r={}))}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4669.5a6d1e46cf3fc8f7d1e3.js b/docs/sentinel1-explorer/4669.5a6d1e46cf3fc8f7d1e3.js new file mode 100644 index 00000000..c2a17334 --- /dev/null +++ b/docs/sentinel1-explorer/4669.5a6d1e46cf3fc8f7d1e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4669],{54669:function(e,_,r){r.r(_),r.d(_,{default:function(){return d}});const d={_decimalSeparator:",",_thousandSeparator:" ",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"i. sz.",_era_bc:"i. e.",A:"de.",P:"du.",AM:"de.",PM:"du.","A.M.":"de.","P.M.":"du.",January:"január",February:"február",March:"március",April:"április",May:"május",June:"június",July:"július",August:"augusztus",September:"szeptember",October:"október",November:"november",December:"december",Jan:"jan.",Feb:"febr.",Mar:"márc.",Apr:"ápr.","May(short)":"máj.",Jun:"jún.",Jul:"júl.",Aug:"aug.",Sep:"szept.",Oct:"okt.",Nov:"nov.",Dec:"dec.",Sunday:"vasárnap",Monday:"hétfő",Tuesday:"kedd",Wednesday:"szerda",Thursday:"csütörtök",Friday:"péntek",Saturday:"szombat",Sun:"V",Mon:"H",Tue:"K",Wed:"Sze",Thu:"Cs",Fri:"P",Sat:"Szo",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Nagyítás/kicsinyítés",Play:"Lejátszás",Stop:"Megálló",Legend:"Jelmagyarázat","Press ENTER to toggle":"",Loading:"Betöltés",Home:"Kezdőlap",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Nyomtatás",Image:"Kép",Data:"Adatok",Print:"Nyomtatás","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Ettől %1 eddig %2","From %1":"Ettől %1","To %1":"Eddig %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4682.0ddfeaf1f46550a00aaa.js b/docs/sentinel1-explorer/4682.0ddfeaf1f46550a00aaa.js new file mode 100644 index 00000000..22f0422f --- /dev/null +++ b/docs/sentinel1-explorer/4682.0ddfeaf1f46550a00aaa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4682],{54682:function(_,E,T){T.r(E),T.d(E,{loadGLTFMesh:function(){return m}});var R=T(30936),A=T(66341),n=T(86114),e=T(19431),t=T(46332),N=T(3965),r=T(81095),S=T(52721),C=T(77727),o=T(1680),O=T(28201),I=T(29952),u=T(124),L=T(81936),M=T(6766),c=T(88589),D=T(90331);Object.freeze(Object.defineProperty({__proto__:null,copy:function(_,E,T){const R=_.typedBuffer,A=_.typedBufferStride,n=E.typedBuffer,e=E.typedBufferStride,t=T?T.count:E.count;let N=(T?.dstIndex??0)*A,r=(T?.srcIndex??0)*e;for(let _=0;_{const n=E?.(_)??_,e="image"===T?"image":"binary"===T?"array-buffer":"json";return(await(0,A.Z)(n,{responseType:e,signal:null!=R?R.signal:null})).data}}:null}(T)),t=(await(0,l.Q)(n,E,T,!0)).model,N=t.lods.shift(),C=new Map,L=new Map;t.textures.forEach(((_,E)=>C.set(E,function(_){return new O.Z({data:((0,a.$A)(_.data),_.data),wrap:X(_.parameters.wrap)})}(_)))),t.materials.forEach(((_,E)=>L.set(E,function(_,E){const T=new R.Z(function(_,E){return(0,S.al)(b(_[0]),b(_[1]),b(_[2]),E)}(_.color,_.opacity)),A=_.emissiveFactor?new R.Z(function(_){return(0,r.al)(b(_[0]),b(_[1]),b(_[2]))}(_.emissiveFactor)):null,n=_=>_?new I.Z({scale:_.scale?[_.scale[0],_.scale[1]]:[1,1],rotation:(0,e.BV)(_.rotation??0),offset:_.offset?[_.offset[0],_.offset[1]]:[0,0]}):null;return new o.Z({color:T,colorTexture:E.get(_.textureColor),normalTexture:E.get(_.textureNormal),emissiveColor:A,emissiveTexture:E.get(_.textureEmissive),occlusionTexture:E.get(_.textureOcclusion),alphaMode:Y(_.alphaMode),alphaCutoff:_.alphaCutoff,doubleSided:_.doubleSided,metallic:_.metallicFactor,roughness:_.roughnessFactor,metallicRoughnessTexture:E.get(_.textureMetallicRoughness),colorTextureTransform:n(_.colorTextureTransform),normalTextureTransform:n(_.normalTextureTransform),occlusionTextureTransform:n(_.occlusionTextureTransform),emissiveTextureTransform:n(_.emissiveTextureTransform),metallicRoughnessTextureTransform:n(_.metallicRoughnessTextureTransform)})}(_,C))));const M=x(N);for(const _ of M.parts)V(M,_,L);const{position:c,normal:D,tangent:f,color:i,texCoord0:P}=M.vertexAttributes,G={position:c.typedBuffer,normal:null!=D?D.typedBuffer:null,tangent:null!=f?f.typedBuffer:null,uv:null!=P?P.typedBuffer:null,color:null!=i?i.typedBuffer:null},s=(0,U.w1)(G,_,T);return{transform:s.transform,vertexSpace:s.vertexSpace,components:M.components,spatialReference:_.spatialReference,vertexAttributes:new u.Q({position:s.vertexAttributes.position,normal:s.vertexAttributes.normal,tangent:s.vertexAttributes.tangent,color:G.color,uv:G.uv})}}function d(_,E){if(null==_)return"-";const T=_.typedBuffer;return`${(0,n.s1)(E,T.buffer,(()=>E.size))}/${T.byteOffset}/${T.byteLength}`}function p(_){return null!=_?_.toString():"-"}function x(_){let E=0;const T={color:!1,tangent:!1,normal:!1,texCoord0:!1},R=new Map,A=new Map,e=[];for(const t of _.parts){const{attributes:{position:_,normal:N,color:r,tangent:S,texCoord0:C}}=t,o=`\n ${d(_,R)}/\n ${d(N,R)}/\n ${d(r,R)}/\n ${d(S,R)}/\n ${d(C,R)}/\n ${p(t.transform)}\n `;let O=!1;const I=(0,n.s1)(A,o,(()=>(O=!0,{start:E,length:_.count})));O&&(E+=_.count),N&&(T.normal=!0),r&&(T.color=!0),S&&(T.tangent=!0),C&&(T.texCoord0=!0),e.push({gltf:t,writeVertices:O,region:I})}return{vertexAttributes:{position:G(L.fP,E),normal:T.normal?G(L.ct,E):null,tangent:T.tangent?G(L.ek,E):null,color:T.color?G(L.mc,E):null,texCoord0:T.texCoord0?G(L.Eu,E):null},parts:e,components:[]}}function V(_,E,T){E.writeVertices&&function(_,E){const{position:T,normal:R,tangent:A,color:n,texCoord0:r}=_.vertexAttributes,S=E.region.start,{attributes:C,transform:o}=E.gltf,O=C.position.count;if((0,M.d)(T.slice(S,O),C.position,o),null!=C.normal&&null!=R){const _=(0,t.XL)((0,N.Ue)(),o),E=R.slice(S,O);(0,M.c)(E,C.normal,_),(0,e.oc)(_)&&(0,M.e)(E,E)}else null!=R&&(0,i.f)(R,0,0,1,{dstIndex:S,count:O});if(null!=C.tangent&&null!=A){const _=(0,t.XL)((0,N.Ue)(),o),E=A.slice(S,O);(0,c.a)(E,C.tangent,_),(0,e.oc)(_)&&(0,c.n)(E,E)}else null!=A&&(0,P.f)(A,0,0,1,1,{dstIndex:S,count:O});if(null!=C.texCoord0&&null!=r?(0,f.a)(r.slice(S,O),C.texCoord0):null!=r&&(0,f.f)(r,0,0,{dstIndex:S,count:O}),null!=C.color&&null!=n){const _=C.color,E=n.slice(S,O);if(4===_.elementCount)_ instanceof L.ek?(0,c.b)(E,_,255):_ instanceof L.mc?(0,P.a)(E,_):_ instanceof L.v6&&(0,c.b)(E,_,1/256);else{(0,P.f)(E,255,255,255,255);const T=L.ne.fromTypedArray(E.typedBuffer,E.typedBufferStride);_ instanceof L.ct?(0,M.f)(T,_,255):_ instanceof L.ne?(0,i.a)(T,_):_ instanceof L.mw&&(0,M.f)(T,_,1/256)}}else null!=n&&(0,P.f)(n.slice(S,O),255,255,255,255)}(_,E);const{indices:R,attributes:A,primitiveType:n,material:r}=E.gltf;let S=(0,s.p)(R||A.position.count,n);const o=E.region.start;if(o){const _=new Uint32Array(S);for(let E=0;Et.code===e))}function se(e,t){let r=null;switch(t.geometryType){case"esriGeometryPoint":case"esriGeometryMultipoint":r="point";break;case"esriGeometryPolyline":r="line";break;case"esriGeometryPolygon":case"esriGeometryMultiPatch":r="polygon";break;default:t.type,r=null}const i={},n=ne(e,t);if(null!=n){const{defaultValues:e}=n;for(const t in e)i[t]=e[t]}return i[t.subtypeField]=e,new H.Z({name:"New Feature",drawingTool:r,prototype:{attributes:i}})}const oe="esri.layers.support.SubtypeSublayer";let ae=class extends((0,l.R)((0,n.J)((0,D.IG)(k.Z)))){constructor(e){super(e),this.charts=null,this.editingEnabled=!0,this.fieldOverrides=null,this.fieldsIndex=null,this.formTemplate=null,this.id=`${Date.now().toString(16)}-subtype-sublayer-${te++}`,this.type="subtype-sublayer",this.labelsVisible=!0,this.labelingInfo=null,this.layerType="ArcGISFeatureLayer",this.legendEnabled=!0,this.listMode="show",this.minScale=0,this.maxScale=0,this.opacity=1,this.parent=null,this.popupEnabled=!0,this.popupTemplate=null,this.subtypeCode=null,this.templates=null,this.title=null,this.visible=!0}load(e){return(0,L.YN)(this.renderer,this.fieldsIndex),Promise.resolve(this)}get capabilities(){return this.parent?.capabilities}get effectiveCapabilities(){return this.parent?.effectiveCapabilities}get effectiveEditingEnabled(){const{parent:e}=this;return e?e.effectiveEditingEnabled&&this.editingEnabled:this.editingEnabled}get elevationInfo(){return this.parent?.elevationInfo}writeFieldOverrides(e,t,r){const{fields:i,parent:n}=this;let s;if(i){s=[];let e=0;i.forEach((({name:t,alias:r,editable:i,visible:o})=>{if(!o)return;const a=n?.fields?.find((e=>e.name===t));if(!a)return;const l={name:t};let u=!1;r!==a.alias&&(l.alias=r,u=!0),i!==a.editable&&(l.editable=i,u=!0),s.push(l),u&&e++})),0===e&&s.length===i.length&&(s=null)}else s=(0,$.d9)(e);s?.length&&(0,N.RB)(r,s,t)}get fields(){const{parent:e,fieldOverrides:t,subtypeCode:r}=this,i=e?.fields;if(!e||!i?.length)return null;const{subtypes:n,subtypeField:s}=e,o=n?.find((e=>e.code===r)),a=o?.defaultValues,l=o?.domains,u=[];for(const e of i){const i=e.clone(),{name:n}=i,o=t?.find((e=>e.name===n));if(i.visible=!t||!!o,o){const{alias:e,editable:t}=o;e&&(i.alias=e),!1===t&&(i.editable=!1)}const p=a?.[n]??null;i.defaultValue=n===s?r:p;const d=l?.[n]??null;i.domain=n===s?null:d?"inherited"===d.type?i.domain:d.clone():null,u.push(i)}return u}get floorInfo(){return this.parent?.floorInfo}get geometryType(){return this.parent?.geometryType}get effectiveScaleRange(){const{minScale:e,maxScale:t}=this;return{minScale:e,maxScale:t}}get objectIdField(){return this.parent||h.Z.getLogger(oe).error(ue("objectIdField")),this.parent?.objectIdField}get defaultPopupTemplate(){return this.createPopupTemplate()}set renderer(e){(0,L.YN)(e,this.fieldsIndex),this._override("renderer",e)}get renderer(){if(this._isOverridden("renderer"))return this._get("renderer");const{parent:e}=this;return e&&!e.isTable&&"mesh"!==e.geometryType?function(e){return new R.Z({symbol:ie(e)})}(e.geometryType):null}readRendererFromService(e,t,r){if("Table"===t.type)return null;const i=t.drawingInfo?.renderer,n=ee(i,t,r);let s;const{subtypeCode:o}=this;if(null!=o&&function(e,t){return!(!t||"unique-value"!==e?.type||"string"!=typeof e.field||e.field.toLowerCase()!==t.toLowerCase()||e.field2||e.field3||e.valueExpression)}(n,t.subtypeField)){const e=n.uniqueValueInfos?.find((({value:e})=>(e="number"==typeof e?String(e):e)===String(o)));e&&(s=new R.Z({symbol:e.symbol}))}else"simple"!==n?.type||n.visualVariables?.length||(s=n);return s}readRenderer(e,t,r){const i=t?.layerDefinition?.drawingInfo?.renderer;if(!i)return;const n=i.visualVariables?.some((e=>"rotationInfo"!==e.type));return n?void 0:ee(i,t,r)||void 0}get spatialReference(){return this.parent?.spatialReference}get subtypeField(){return this.parent?.subtypeField}readTemplatesFromService(e,t){return[se(this.subtypeCode,t)]}readTitleFromService(e,t){const r=ne(this.subtypeCode,t);return null!=r?r.name:null}get url(){return this.parent?.url}get userHasUpdateItemPrivileges(){return!!this.parent?.userHasUpdateItemPrivileges}async addAttachment(e,t){const{parent:r}=this;if(!r)throw ue("addAttachment");if(e.getAttribute(r.subtypeField)!==this.subtypeCode)throw new o.Z("subtype-sublayer:addAttachment","The feature provided does not belong to this SubtypeSublayer");return r.addAttachment(e,t)}async updateAttachment(e,t,r){const{parent:i}=this;if(!i)throw ue("updateAttachment");if(e.getAttribute(i.subtypeField)!==this.subtypeCode)throw new o.Z("subtype-sublayer:updateAttachment","The feature provided does not belong to this SubtypeSublayer");return i.updateAttachment(e,t,r)}async deleteAttachments(e,t){const{parent:r}=this;if(!r)throw ue("deleteAttachments");if(e.getAttribute(r.subtypeField)!==this.subtypeCode)throw new o.Z("subtype-sublayer:deleteAttachments","The feature provided does not belong to this SubtypeSublayer");return r.deleteAttachments(e,t)}async applyEdits(e,t){if(!this.parent)throw ue("applyEdits");return this.parent.applyEdits(e,t)}createPopupTemplate(e){let t=this;const{parent:r,fields:i,title:n}=this;if(r){const{displayField:e,editFieldsInfo:s,objectIdField:o}=r;t={displayField:e,editFieldsInfo:s,fields:i,objectIdField:o,title:n}}return(0,z.eZ)(t,e)}createQuery(){if(!this.parent)throw ue("createQuery");const e=(0,A.rP)(this.parent),t=`${this.parent.subtypeField}=${this.subtypeCode}`;return e.where=(0,d._)(t,this.parent.definitionExpression),e}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e){return this._getLayerDomain(e)}async queryAttachments(e,t){const r=await this.load();if(!r.parent)throw ue("queryAttachments");const i=e.clone();return i.where=le(i.where,r.parent.subtypeField,r.subtypeCode),r.parent.queryAttachments(e,t)}async queryFeatures(e,t){const r=await this.load();if(!r.parent)throw ue("queryFeatures");const i=Y.Z.from(e)??r.createQuery();return null!=e&&(i.where=le(i.where,r.parent.subtypeField,r.subtypeCode)),r.parent.queryFeatures(i,t)}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}};(0,i._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],ae.prototype,"capabilities",null),(0,i._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],ae.prototype,"effectiveCapabilities",null),(0,i._)([(0,c.Cb)({json:{write:{ignoreOrigin:!0}}})],ae.prototype,"charts",void 0),(0,i._)([(0,c.Cb)({type:Boolean,nonNullable:!0,json:{name:"enableEditing",write:{ignoreOrigin:!0}}})],ae.prototype,"editingEnabled",void 0),(0,i._)([(0,c.Cb)({type:Boolean,readOnly:!0})],ae.prototype,"effectiveEditingEnabled",null),(0,i._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],ae.prototype,"elevationInfo",null),(0,i._)([(0,c.Cb)({json:{name:"layerDefinition.fieldOverrides",origins:{service:{read:!1}},write:{ignoreOrigin:!0,allowNull:!0}}})],ae.prototype,"fieldOverrides",void 0),(0,i._)([(0,M.c)("fieldOverrides")],ae.prototype,"writeFieldOverrides",null),(0,i._)([(0,c.Cb)({...W.fields,readOnly:!0,json:{read:!1}})],ae.prototype,"fields",null),(0,i._)([(0,c.Cb)(W.fieldsIndex)],ae.prototype,"fieldsIndex",void 0),(0,i._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],ae.prototype,"floorInfo",null),(0,i._)([(0,c.Cb)({type:Q.Z,json:{name:"formInfo",write:{ignoreOrigin:!0}}})],ae.prototype,"formTemplate",void 0),(0,i._)([(0,c.Cb)({type:String,clonable:!1,readOnly:!0,json:{origins:{service:{read:!1},"portal-item":{read:!1}},write:{ignoreOrigin:!0}}})],ae.prototype,"id",void 0),(0,i._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],ae.prototype,"geometryType",null),(0,i._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],ae.prototype,"type",void 0),(0,i._)([(0,c.Cb)(re((0,$.d9)(x.iR)))],ae.prototype,"labelsVisible",void 0),(0,i._)([(0,c.Cb)({type:[J.Z],json:{name:"layerDefinition.drawingInfo.labelingInfo",origins:{service:{read:!1}},read:{reader:B.r},write:{ignoreOrigin:!0}}})],ae.prototype,"labelingInfo",void 0),(0,i._)([(0,c.Cb)({type:["ArcGISFeatureLayer"],readOnly:!0,json:{read:!1,write:{ignoreOrigin:!0}}})],ae.prototype,"layerType",void 0),(0,i._)([(0,c.Cb)(re((0,$.d9)(x.rn)))],ae.prototype,"legendEnabled",void 0),(0,i._)([(0,c.Cb)({type:["show","hide"]})],ae.prototype,"listMode",void 0),(0,i._)([(0,c.Cb)((()=>{const e=(0,$.d9)(x.rO);return e.json.origins.service.read=!1,re(e)})())],ae.prototype,"minScale",void 0),(0,i._)([(0,c.Cb)((()=>{const e=(0,$.d9)(x.u1);return e.json.origins.service.read=!1,re(e)})())],ae.prototype,"maxScale",void 0),(0,i._)([(0,c.Cb)({readOnly:!0})],ae.prototype,"effectiveScaleRange",null),(0,i._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],ae.prototype,"objectIdField",null),(0,i._)([(0,c.Cb)({type:Number,range:{min:0,max:1},nonNullable:!0,json:{write:{ignoreOrigin:!0}}})],ae.prototype,"opacity",void 0),(0,i._)([(0,c.Cb)({clonable:!1})],ae.prototype,"parent",void 0),(0,i._)([(0,c.Cb)(re((0,$.d9)(x.C_)))],ae.prototype,"popupEnabled",void 0),(0,i._)([(0,c.Cb)({type:P.Z,json:{name:"popupInfo",write:{ignoreOrigin:!0}}})],ae.prototype,"popupTemplate",void 0),(0,i._)([(0,c.Cb)({readOnly:!0})],ae.prototype,"defaultPopupTemplate",null),(0,i._)([(0,c.Cb)({types:X,json:{write:{target:"layerDefinition.drawingInfo.renderer",ignoreOrigin:!0}}})],ae.prototype,"renderer",null),(0,i._)([(0,b.r)("service","renderer",["drawingInfo.renderer","subtypeField","type"])],ae.prototype,"readRendererFromService",null),(0,i._)([(0,b.r)("renderer",["layerDefinition.drawingInfo.renderer"])],ae.prototype,"readRenderer",null),(0,i._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],ae.prototype,"spatialReference",null),(0,i._)([(0,c.Cb)({type:Number,json:{origins:{service:{read:!1}},write:{ignoreOrigin:!0}}})],ae.prototype,"subtypeCode",void 0),(0,i._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],ae.prototype,"subtypeField",null),(0,i._)([(0,c.Cb)({type:[H.Z],json:{name:"layerDefinition.templates",write:{ignoreOrigin:!0}}})],ae.prototype,"templates",void 0),(0,i._)([(0,b.r)("service","templates",["geometryType","subtypeField","subtypes","type"])],ae.prototype,"readTemplatesFromService",null),(0,i._)([(0,c.Cb)({type:String,json:{write:{ignoreOrigin:!0}}})],ae.prototype,"title",void 0),(0,i._)([(0,b.r)("service","title",["subtypes"])],ae.prototype,"readTitleFromService",null),(0,i._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],ae.prototype,"url",null),(0,i._)([(0,c.Cb)({readOnly:!0})],ae.prototype,"userHasUpdateItemPrivileges",null),(0,i._)([(0,c.Cb)({type:Boolean,nonNullable:!0,json:{name:"visibility",write:{ignoreOrigin:!0}}})],ae.prototype,"visible",void 0),ae=(0,i._)([(0,f.j)(oe)],ae);const le=(e,t,r)=>{const i=new RegExp(`${t}\\s*=\\s*\\d+`),n=`${t}=${r}`,s=e??"";return i.test(s)?s.replace(i,n):(0,d._)(n,s)},ue=e=>new o.Z(`This sublayer must have a parent SubtypeGroupLayer in order to use ${e}`),pe=ae;var de=r(23756),ye=r(76912),ce=r(48498);const he="SubtypeGroupLayer";function be(e,t){return new o.Z("layer:unsupported",`Layer (${e.title}, ${e.id}) of type '${e.declaredClass}' ${t}`,{layer:e})}const fe=(0,Z.v)();let ge=class extends((0,F.B)((0,C.o1)((0,w.h)((0,E.n)((0,j.M)((0,O.Q)((0,v.Y)((0,S.q)((0,I.I)((0,l.R)((0,_.N)((0,m.V)((0,n.J)(g.Z)))))))))))))){constructor(...e){super(...e),this._sublayerLookup=new Map,this.fields=null,this.fieldsIndex=null,this.outFields=null,this.sublayers=new(s.Z.ofType(pe)),this.timeInfo=null,this.title="Layer",this.type="subtype-group",this._debouncedSaveOperations=(0,u.Ds)((async(e,t,i)=>{const{save:n,saveAs:s}=await r.e(8015).then(r.bind(r,8015));switch(e){case ce.x.SAVE:return n(this,t);case ce.x.SAVE_AS:return s(this,i,t)}})),this.addHandles((0,p.YP)((()=>this.sublayers),((e,t)=>this._handleSublayersChange(e,t)),p.Z_))}destroy(){this.source?.destroy()}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=null!=e?e.signal:null,r=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(u.r9).then((async()=>{if(!this.url)throw new o.Z("subtype-grouplayer:missing-url-or-source","SubtypeGroupLayer must be created with either a url or a portal item");if(null==this.layerId)throw new o.Z("subtype-grouplayer:missing-layerid","layerId is required for a SubtypeGroupLayer created with url");return this._initLayerProperties(await this.createGraphicsSource(t))})).then((()=>(0,A.nU)(this,"load",e)));return this.addResolvingPromise(r),Promise.resolve(this)}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")??0)+1}get editingEnabled(){return this.loaded&&null!=this.capabilities&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}get effectiveEditingEnabled(){return(0,A.sX)(this)}get parsedUrl(){const e=(0,y.mN)(this.url);return null!=e&&null!=this.layerId&&(e.path=(0,y.v_)(e.path,this.layerId.toString())),e}set source(e){this._get("source")!==e&&this._set("source",e)}readTitleFromService(e,{name:t}){return this.url?(0,T.a7)(this.url,t):t}async addAttachment(e,t){return(0,A.JD)(this,e,t,he)}async updateAttachment(e,t,r){return(0,A.Y5)(this,e,t,r,he)}async applyEdits(e,t){return(0,A.Jj)(this,e,t)}on(e,t){return super.on(e,t)}async createGraphicsSource(e){const{default:t}=await(0,u.Hl)(r.e(7676).then(r.bind(r,87676)),e);return new t({layer:this}).load({signal:e})}createQuery(){const e=(0,A.rP)(this),t=this.sublayers.map((e=>e.subtypeCode));return e.where=(0,d._)(`${this.subtypeField} IN (${t.join(",")})`,this.definitionExpression),e}async deleteAttachments(e,t){return(0,A.FV)(this,e,t,he)}async fetchRecomputedExtents(e){return(0,A.Ci)(this,e,he)}findSublayerForFeature(e){const t=this.fieldsIndex.get(this.subtypeField),r=e.attributes[t.name];return this.findSublayerForSubtypeCode(r)}findSublayerForSubtypeCode(e){return this._sublayerLookup.get(e)}getFieldDomain(e,t){return this._getLayerDomain(e)}getField(e){return this.fieldsIndex.get(e)}loadAll(){return(0,a.G)(this,(e=>{e(this.sublayers)}))}async queryAttachments(e,t){return(0,A.SU)(this,e,t,he)}async queryFeatures(e,t){const r=await this.load(),i=Y.Z.from(e)??r.createQuery(),n=i.outFields??[];n.includes(this.subtypeField)||(n.push(this.subtypeField),i.outFields=n);const s=await r.source.queryFeatures(i,t);if(s?.features)for(const e of s.features)e.layer=e.sourceLayer=this.findSublayerForFeature(e);return s}async queryObjectIds(e,t){return(0,A.tD)(this,e,t,he)}async queryFeatureCount(e,t){return(0,A.VG)(this,e,t,he)}async queryExtent(e,t){return(0,A.KE)(this,e,t,he)}async queryRelatedFeatures(e,t){return(0,A.kp)(this,e,t,he)}async queryRelatedFeaturesCount(e,t){return(0,A.C9)(this,e,t,he)}async save(e){return this._debouncedSaveOperations(ce.x.SAVE,e)}async saveAs(e,t){return this._debouncedSaveOperations(ce.x.SAVE_AS,t,e)}write(e,t){const{origin:r,layerContainerType:i,messages:n}=t;if(this.isTable){if("web-scene"===r||"web-map"===r&&"tables"!==i)return n?.push(be(this,"using a table source cannot be written to web scenes and web maps")),null}else if(this.loaded&&"web-map"===r&&"tables"===i)return n?.push(be(this,"using a non-table source cannot be written to tables in web maps")),null;return this.sublayers?.length?super.write(e,t):(n?.push(new o.Z("web-document-write:invalid-property",`Layer (${this.title}, ${this.id}) of type '${this.declaredClass}' has invalid value for 'sublayers' property. 'sublayers' collection should contain at least one sublayer`,{layer:this})),null)}serviceSupportsSpatialReference(e){return!!this.loaded&&(0,ye.D)(this,e)}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}async _initLayerProperties(e){this._set("source",e);const{sourceJSON:t}=e;if(t&&(this.sourceJSON=t,this.read(t,{origin:"service",url:this.parsedUrl})),this.isTable)throw new o.Z("subtype-grouplayer:unsupported-source","SubtypeGroupLayer cannot be created using a layer with table source");if(!this.subtypes?.length)throw new o.Z("subtype-grouplayer:missing-subtypes","SubtypeGroupLayer must be created using a layer with subtypes");this._verifyFields(),(0,L.UF)(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return(0,A.gG)(this)}_verifyFields(){const e=this.parsedUrl?.path??"undefined";this.objectIdField,this.isTable||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some((e=>"geometry"===e.type))}_handleSublayersChange(e,t){t&&(t.forEach((e=>{e.parent=null})),this.removeHandles("sublayers-owner"),this._sublayerLookup.clear()),e&&(e.forEach((e=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)})),this.addHandles([e.on("after-add",(({item:e})=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)})),e.on("after-remove",(({item:e})=>{e.parent=null,this._sublayerLookup.delete(e.subtypeCode)}))],"sublayers-owner"))}};(0,i._)([(0,c.Cb)({readOnly:!0})],ge.prototype,"createQueryVersion",null),(0,i._)([(0,c.Cb)({readOnly:!0})],ge.prototype,"editingEnabled",null),(0,i._)([(0,c.Cb)({readOnly:!0})],ge.prototype,"effectiveEditingEnabled",null),(0,i._)([(0,c.Cb)({...fe.fields,readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],ge.prototype,"fields",void 0),(0,i._)([(0,c.Cb)(fe.fieldsIndex)],ge.prototype,"fieldsIndex",void 0),(0,i._)([(0,c.Cb)(x.id)],ge.prototype,"id",void 0),(0,i._)([(0,c.Cb)({type:["show","hide","hide-children"],json:{origins:{"portal-item":{read:!1,write:!1}}}})],ge.prototype,"listMode",void 0),(0,i._)([(0,c.Cb)({value:"SubtypeGroupLayer",type:["SubtypeGroupLayer"],json:{origins:{"portal-item":{name:"layerType",write:{enabled:!0,ignoreOrigin:!0}}}}})],ge.prototype,"operationalLayerType",void 0),(0,i._)([(0,c.Cb)(fe.outFields)],ge.prototype,"outFields",void 0),(0,i._)([(0,c.Cb)({readOnly:!0})],ge.prototype,"parsedUrl",null),(0,i._)([(0,c.Cb)({clonable:!1})],ge.prototype,"source",null),(0,i._)([(0,c.Cb)({type:s.Z.ofType(pe),json:{origins:{service:{read:{source:"subtypes",reader:(e,t,r)=>{const i=e.map((({code:e})=>{const i=new pe({subtypeCode:e});return i.read(t,r),i}));return new(s.Z.ofType(pe))(i)}}}},name:"layers",write:{ignoreOrigin:!0}}})],ge.prototype,"sublayers",void 0),(0,i._)([(0,c.Cb)({type:de.Z})],ge.prototype,"timeInfo",void 0),(0,i._)([(0,c.Cb)({json:{origins:{"portal-item":{write:{enabled:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}}}})],ge.prototype,"title",void 0),(0,i._)([(0,b.r)("service","title",["name"])],ge.prototype,"readTitleFromService",null),(0,i._)([(0,c.Cb)({json:{read:!1}})],ge.prototype,"type",void 0),ge=(0,i._)([(0,f.j)("esri.layers.SubtypeGroupLayer")],ge);const me=ge}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4832.6cadad9596b67dc0977b.js b/docs/sentinel1-explorer/4832.6cadad9596b67dc0977b.js new file mode 100644 index 00000000..01f02f27 --- /dev/null +++ b/docs/sentinel1-explorer/4832.6cadad9596b67dc0977b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4832],{91917:function(t,e,n){n.d(e,{a:function(){return O},b:function(){return b},c:function(){return g},f:function(){return E},g:function(){return M},j:function(){return F},n:function(){return B}});n(39994);var r=n(13802),i=n(19431),o=n(32114),s=n(86717),c=n(81095),u=n(56999),a=n(52721),h=n(40201),d=n(19546),l=n(97537),f=n(5700),_=n(68817);const m=g();function g(){return(0,a.Ue)()}const T=u.e,p=u.e;function O(t,e){return(0,u.c)(e,t)}function b(t){return t[3]}function M(t){return t}function E(t,e,n,r){return(0,a.al)(t,e,n,r)}function N(t,e,n){if(null==e)return!1;if(!A(t,e,R))return!1;let{t0:r,t1:i}=R;if((r<0||i0)&&(r=i),r<0)return!1;if(n){const{origin:t,direction:i}=e;n[0]=t[0]+i[0]*r,n[1]=t[1]+i[1]*r,n[2]=t[2]+i[2]*r}return!0}const R={t0:0,t1:0};function A(t,e,n){const{origin:r,direction:i}=e,o=S;o[0]=r[0]-t[0],o[1]=r[1]-t[1],o[2]=r[2]-t[2];const s=i[0]*i[0]+i[1]*i[1]+i[2]*i[2];if(0===s)return!1;const c=2*(i[0]*o[0]+i[1]*o[1]+i[2]*o[2]),u=c*c-4*s*(o[0]*o[0]+o[1]*o[1]+o[2]*o[2]-t[3]*t[3]);if(u<0)return!1;const a=Math.sqrt(u);return n.t0=(-c-a)/(2*s),n.t1=(-c+a)/(2*s),!0}const S=(0,c.Ue)();function F(t,e){return N(t,e,null)}function x(t,e,n){const r=_.WM.get(),i=_.MP.get();(0,s.b)(r,e.origin,e.direction);const c=b(t);(0,s.b)(n,r,e.origin),(0,s.h)(n,n,1/(0,s.l)(n)*c);const u=I(t,e.origin),a=(0,f.EU)(e.origin,n);return(0,o.Us)(i,a+u,r),(0,s.e)(n,n,i),n}function j(t,e,n){const r=(0,s.f)(_.WM.get(),e,t),i=(0,s.h)(_.WM.get(),r,t[3]/(0,s.l)(r));return(0,s.g)(n,i,t)}function I(t,e){const n=(0,s.f)(_.WM.get(),e,t),r=(0,s.l)(n),o=b(t),c=o+Math.abs(o-r);return(0,i.ZF)(o/c)}const P=(0,c.Ue)();function U(t,e,n,r){const o=(0,s.f)(P,e,t);switch(n){case d.R.X:{const t=(0,i.jE)(o,P)[2];return(0,s.s)(r,-Math.sin(t),Math.cos(t),0)}case d.R.Y:{const t=(0,i.jE)(o,P),e=t[1],n=t[2],c=Math.sin(e);return(0,s.s)(r,-c*Math.cos(n),-c*Math.sin(n),Math.cos(e))}case d.R.Z:return(0,s.n)(r,o);default:return}}function v(t,e){const n=(0,s.f)(w,e,t);return(0,s.l)(n)-t[3]}function B(t,e){const n=(0,s.a)(t,e),r=b(t);return n<=r*r}const w=(0,c.Ue)(),y=g();Object.freeze(Object.defineProperty({__proto__:null,NullSphere:m,altitudeAt:v,angleToSilhouette:I,axisAt:U,clear:function(t){t[0]=t[1]=t[2]=t[3]=0},closestPoint:function(t,e,n){return N(t,e,n)?n:((0,l.JI)(e,t,n),j(t,n,n))},closestPointOnSilhouette:x,containsPoint:B,copy:O,create:g,distanceToSilhouette:function(t,e){const n=(0,s.f)(_.WM.get(),e,t),r=(0,s.p)(n),i=t[3]*t[3];return Math.sqrt(Math.abs(r-i))},elevate:function(t,e,n){return t!==n&&(n[0]=t[0],n[1]=t[1],n[2]=t[2]),n[3]=t[3]+e,n},equals:p,exactEquals:T,fromCenterAndRadius:function(t,e){return(0,a.al)(t[0],t[1],t[2],e)},fromRadius:function(t,e){return t[0]=t[1]=t[2]=0,t[3]=e,t},fromValues:E,getCenter:M,getRadius:b,intersectLine:function(t,e,n){const r=(0,l.zk)(e,n);if(!A(t,r,R))return[];const{origin:i,direction:o}=r,{t0:u,t1:a}=R,d=e=>{const n=(0,c.Ue)();return(0,s.r)(n,i,o,e),j(t,n,n)};return Math.abs(u-a)<(0,h.bn)()?[d(u)]:[d(u),d(a)]},intersectRay:N,intersectRayClosestSilhouette:function(t,e,n){if(N(t,e,n))return n;const r=x(t,e,_.WM.get());return(0,s.g)(n,e.origin,(0,s.h)(_.WM.get(),e.direction,(0,s.q)(e.origin,r)/(0,s.l)(e.direction))),n},intersectsRay:F,projectPoint:j,setAltitudeAt:function(t,e,n,r){const i=v(t,e),o=U(t,e,d.R.Z,w),c=(0,s.h)(w,o,n-i);return(0,s.g)(r,e,c)},setExtent:function(t,e,n){return r.Z.getLogger("esri.geometry.support.sphere").error("sphere.setExtent is not yet supported"),t!==n&&O(t,n),n},tmpSphere:y,union:function(t,e,n=(0,a.Ue)()){const r=(0,s.q)(t,e),i=t[3],o=e[3];return r+othis._reset())),this._itemsPtr===this._items.length&&this._grow(),this._items[this._itemsPtr++]}_reset(){const t=Math.min(3*Math.max(8,this._itemsPtr),this._itemsPtr+3*o);this._items.length=Math.min(t,this._items.length),this._itemsPtr=0}_grow(){for(let t=0;tu()))},39050:function(t,e,n){n.d(e,{oq:function(){return p},Er:function(){return O},JG:function(){return c},Ue:function(){return s},zu:function(){return d},zk:function(){return h},st:function(){return u},jH:function(){return b}});n(19431);var r=n(86717),i=n(81095),o=n(56999);n(5700),n(68817);(0,i.Ue)(),(0,i.Ue)(),(0,i.Ue)(),(0,i.Ue)(),(0,i.Ue)();function s(t=M){return[t[0],t[1],t[2],t[3]]}o.a,o.e;function c(t,e){return a(e[0],e[1],e[2],e[3],t)}function u(t){return t}function a(t,e,n,r,i=s()){return i[0]=t,i[1]=e,i[2]=n,i[3]=r,i}function h(t,e,n,r=s()){const i=n[0]-e[0],o=n[1]-e[1],c=n[2]-e[2],u=t[0]-e[0],a=t[1]-e[1],h=t[2]-e[2],d=o*h-c*a,l=c*u-i*h,f=i*a-o*u,_=d*d+l*l+f*f,m=Math.abs(_-1)>1e-5&&_>1e-12?1/Math.sqrt(_):1;return r[0]=d*m,r[1]=l*m,r[2]=f*m,r[3]=-(r[0]*t[0]+r[1]*t[1]+r[2]*t[2]),r}function d(t,e,n,i=0,o=Math.floor(n*(1/3)),s=Math.floor(n*(2/3))){if(n<3)return!1;e(f,i);let c=o,u=!1;for(;c=0)return!1;if(n>-1e-6&&n<1e-6)return i>0;if((i<0||n<0)&&!(i<0&&n<0))return!0;const o=i/n;return n>0?oe.c0&&(e.c0=o),e.c0<=e.c1}function O(t,e){const n=(0,r.k)(t,e.ray.direction),i=-b(t,e.ray.origin);if(n>-1e-6&&n<1e-6)return i>0;const o=i/n;return n>0?oe.c0&&(e.c0=o),e.c0<=e.c1}function b(t,e){return(0,r.k)(t,e)+t[3]}const M=[0,0,1,0];var E,N;(N=E||(E={}))[N.NONE=0]="NONE",N[N.CLAMP=1]="CLAMP",N[N.INFINITE_MIN=4]="INFINITE_MIN",N[N.INFINITE_MAX=8]="INFINITE_MAX";E.INFINITE_MIN,E.INFINITE_MAX,E.INFINITE_MAX},97537:function(t,e,n){n.d(e,{JG:function(){return a},JI:function(){return l},Ue:function(){return s},al:function(){return d},re:function(){return u},zk:function(){return h}});n(7753);var r=n(19480),i=n(86717),o=n(81095);n(68817);function s(t){return t?c((0,o.d9)(t.origin),(0,o.d9)(t.direction)):c((0,o.Ue)(),(0,o.Ue)())}function c(t,e){return{origin:t,direction:e}}function u(t,e){const n=f.get();return n.origin=t,n.direction=e,n}function a(t,e=s()){return d(t.origin,t.direction,e)}function h(t,e,n=s()){return(0,i.c)(n.origin,t),(0,i.f)(n.direction,e,t),n}function d(t,e,n=s()){return(0,i.c)(n.origin,t),(0,i.c)(n.direction,e),n}function l(t,e,n){const r=(0,i.k)(t.direction,(0,i.f)(n,e,t.origin));return(0,i.g)(n,t.origin,(0,i.h)(n,t.direction,r)),n}const f=new r.x((()=>s()))},5700:function(t,e,n){n.d(e,{EU:function(){return c},SR:function(){return s}});var r=n(19431),i=n(86717),o=n(81095);function s(t,e){return(0,i.k)(t,e)/(0,i.l)(t)}function c(t,e){const n=(0,i.k)(t,e)/((0,i.l)(t)*(0,i.l)(e));return-(0,r.ZF)(n)}(0,o.Ue)(),(0,o.Ue)()},68817:function(t,e,n){n.d(e,{MP:function(){return f},vD:function(){return _},WM:function(){return d},o6:function(){return l}});var r=n(66581),i=n(3965),o=n(3308),s=n(96303),c=n(84164),u=n(81095),a=n(52721);class h{constructor(t){this._create=t,this._items=new Array,this._itemsPtr=0}get(){return 0===this._itemsPtr&&(0,r.Y)((()=>this._reset())),this._itemsPtr>=this._items.length&&this._items.push(this._create()),this._items[this._itemsPtr++]}_reset(){const t=2*this._itemsPtr;this._items.length>t&&(this._items.length=t),this._itemsPtr=0}static createVec2f64(){return new h(c.Ue)}static createVec3f64(){return new h(u.Ue)}static createVec4f64(){return new h(a.Ue)}static createMat3f64(){return new h(i.Ue)}static createMat4f64(){return new h(o.Ue)}static createQuatf64(){return new h(s.Ue)}get test(){return{length:this._items.length}}}h.createVec2f64();const d=h.createVec3f64(),l=h.createVec4f64(),f=(h.createMat3f64(),h.createMat4f64()),_=h.createQuatf64()},64832:function(t,e,n){n.r(e),n.d(e,{default:function(){return Q}});var r=n(36663),i=n(78668),o=(n(13802),n(39994),n(4157),n(70375),n(40266)),s=n(86717),c=n(81095),u=n(56215),a=n(91917),h=n(34596),d=n(17135),l=n(19480),f=(n(32114),n(56999),n(52721)),_=n(97537);function m(t){return t?{ray:(0,_.Ue)(t.ray),c0:t.c0,c1:t.c1}:{ray:(0,_.Ue)(),c0:0,c1:Number.MAX_VALUE}}new l.x((()=>m()));var g,T;n(39050),n(68817);function p(t,e){for(let n=0;n=e[3])return!1}return!0}!function(t){t[t.LEFT=0]="LEFT",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.TOP=3]="TOP",t[t.NEAR=4]="NEAR",t[t.FAR=5]="FAR"}(g||(g={})),function(t){t[t.NEAR_BOTTOM_LEFT=0]="NEAR_BOTTOM_LEFT",t[t.NEAR_BOTTOM_RIGHT=1]="NEAR_BOTTOM_RIGHT",t[t.NEAR_TOP_RIGHT=2]="NEAR_TOP_RIGHT",t[t.NEAR_TOP_LEFT=3]="NEAR_TOP_LEFT",t[t.FAR_BOTTOM_LEFT=4]="FAR_BOTTOM_LEFT",t[t.FAR_BOTTOM_RIGHT=5]="FAR_BOTTOM_RIGHT",t[t.FAR_TOP_RIGHT=6]="FAR_TOP_RIGHT",t[t.FAR_TOP_LEFT=7]="FAR_TOP_LEFT"}(T||(T={}));T.FAR_BOTTOM_RIGHT,T.NEAR_BOTTOM_RIGHT,T.NEAR_BOTTOM_LEFT,T.FAR_BOTTOM_LEFT,T.NEAR_BOTTOM_LEFT,T.NEAR_BOTTOM_RIGHT,T.NEAR_TOP_RIGHT,T.NEAR_TOP_LEFT,T.FAR_BOTTOM_RIGHT,T.FAR_BOTTOM_LEFT,T.FAR_TOP_LEFT,T.FAR_TOP_RIGHT,T.NEAR_BOTTOM_RIGHT,T.FAR_BOTTOM_RIGHT,T.FAR_TOP_RIGHT,T.NEAR_TOP_RIGHT,T.FAR_BOTTOM_LEFT,T.NEAR_BOTTOM_LEFT,T.NEAR_TOP_LEFT,T.FAR_TOP_LEFT,T.FAR_TOP_LEFT,T.NEAR_TOP_LEFT,T.NEAR_TOP_RIGHT,T.FAR_TOP_RIGHT;const O=6;(0,f.al)(-1,-1,-1,1),(0,f.al)(1,-1,-1,1),(0,f.al)(1,1,-1,1),(0,f.al)(-1,1,-1,1),(0,f.al)(-1,-1,1,1),(0,f.al)(1,-1,1,1),(0,f.al)(1,1,1,1),(0,f.al)(-1,1,1,1),new l.x(m),(0,c.Ue)(),(0,c.Ue)(),(0,c.Ue)(),(0,c.Ue)(),(0,c.Ue)(),(0,c.Ue)(),(0,c.Ue)(),(0,c.Ue)();var b,M,E=n(15095);class N{get bounds(){return this._root.bounds}get halfSize(){return this._root.halfSize}get root(){return this._root.node}get maximumObjectsPerNode(){return this._maximumObjectsPerNode}get maximumDepth(){return this._maximumDepth}get objectCount(){return this._objectCount}constructor(t,e){this.objectToBoundingSphere=t,this._maximumObjectsPerNode=10,this._maximumDepth=20,this._degenerateObjects=new Set,this._root=new R,this._objectCount=0,e&&(void 0!==e.maximumObjectsPerNode&&(this._maximumObjectsPerNode=e.maximumObjectsPerNode),void 0!==e.maximumDepth&&(this._maximumDepth=e.maximumDepth))}destroy(){this._degenerateObjects.clear(),R.clearPool(),w[0]=null,k.prune(),W.prune()}add(t,e=t.length){this._objectCount+=e,this._grow(t,e);const n=R.acquire();for(let r=0;r{if(!this._intersectsNode(r,t))return!1;const e=t.node;return e.terminals.forAll((t=>{this._intersectsObject(r,t)&&n(t)})),null!==e.residents&&e.residents.forAll((t=>{this._intersectsObject(r,t)&&n(t)})),!0}))}forEachAlongRayWithVerticalOffset(t,e,n,r){const i=(0,_.re)(t,e);this._forEachNode(this._root,(t=>{if(!this._intersectsNodeWithOffset(i,t,r))return!1;const e=t.node;return e.terminals.forAll((t=>{this._intersectsObjectWithOffset(i,t,r)&&n(t)})),null!==e.residents&&e.residents.forAll((t=>{this._intersectsObjectWithOffset(i,t,r)&&n(t)})),!0}))}forEach(t){this._forEachNode(this._root,(e=>{const n=e.node;return n.terminals.forAll(t),null!==n.residents&&n.residents.forAll(t),!0})),this._degenerateObjects.forEach(t)}forEachDegenerateObject(t){this._degenerateObjects.forEach(t)}findClosest(t,e,n,r=(()=>!0),i=1/0){let o=1/0,c=1/0,u=null;const h=j(t,e),d=s=>{if(--i,!r(s))return;const h=this.objectToBoundingSphere(s);if(!p(n,h))return;const d=I(t,e,(0,a.g)(h)),l=d-h[3],f=d+h[3];l{if(i<=0||!p(n,r.bounds))return!1;if((0,s.h)(z,h,r.halfSize),(0,s.g)(z,z,(0,a.g)(r.bounds)),I(t,e,z)>c)return!1;const o=r.node;return o.terminals.forAll((t=>d(t))),null!==o.residents&&o.residents.forAll((t=>d(t))),!0}),t,e),u}forEachInDepthRange(t,e,n,r,i,o,c){let u=-1/0,h=1/0;const d={setRange:t=>{n===N.DepthOrder.FRONT_TO_BACK?(u=Math.max(u,t.near),h=Math.min(h,t.far)):(u=Math.max(u,-t.far),h=Math.min(h,-t.near))}};d.setRange(r);const l=I(e,n,t),f=j(e,n),_=j(e,-n),m=t=>{if(!c(t))return;const r=this.objectToBoundingSphere(t),s=(0,a.g)(r),f=I(e,n,s)-l,_=f-r[3],m=f+r[3];_>h||m{if(!p(o,t.bounds))return!1;if((0,s.h)(z,f,t.halfSize),(0,s.g)(z,z,(0,a.g)(t.bounds)),I(e,n,z)-l>h)return!1;if((0,s.h)(z,_,t.halfSize),(0,s.g)(z,z,(0,a.g)(t.bounds)),I(e,n,z)-lm(t))),null!==r.residents&&r.residents.forAll((t=>m(t))),!0}),e,n)}forEachNode(t){this._forEachNode(this._root,(e=>t(e.node,e.bounds,e.halfSize,e.depth)))}forEachNeighbor(t,e){const n=(0,a.b)(e),r=(0,a.g)(e),i=e=>{const i=this.objectToBoundingSphere(e),o=(0,a.b)(i),c=n+o;return!((0,s.a)((0,a.g)(i),r)-c*c<=0)||t(e)};let o=!0;const c=t=>{o&&(o=i(t))};this._forEachNode(this._root,(t=>{const e=(0,a.b)(t.bounds),i=n+e;if((0,s.a)((0,a.g)(t.bounds),r)-i*i>0)return!1;const u=t.node;return u.terminals.forAll(c),o&&null!==u.residents&&u.residents.forAll(c),o})),o&&this.forEachDegenerateObject(c)}_intersectsNode(t,e){return F((0,a.g)(e.bounds),2*-e.halfSize,L),F((0,a.g)(e.bounds),2*e.halfSize,C),(0,E.yK)(t.origin,t.direction,L,C)}_intersectsNodeWithOffset(t,e,n){return F((0,a.g)(e.bounds),2*-e.halfSize,L),F((0,a.g)(e.bounds),2*e.halfSize,C),n.applyToMinMax(L,C),(0,E.yK)(t.origin,t.direction,L,C)}_intersectsObject(t,e){const n=this.objectToBoundingSphere(e);return!(n[3]>0)||(0,a.j)(n,t)}_intersectsObjectWithOffset(t,e,n){const r=this.objectToBoundingSphere(e);return!(r[3]>0)||(0,a.j)(n.applyToBoundingSphere(r),t)}_forEachNode(t,e){let n=R.acquire().init(t);const r=[n];for(;0!==r.length;){if(n=r.pop(),e(n)&&!n.isLeaf())for(let t=0;tt.distance-e.distance));for(let t=0;t<8;++t)n[t]=W.data[t].index}(n,r,Z);0!==o.length;){if(i=o.pop(),e(i)&&!i.isLeaf())for(let t=7;t>=0;--t){const e=Z[t];i.node.children[e]&&o.push(R.acquire().init(i).advance(e))}R.release(i)}}_remove(t,e,n){k.clear();const r=n.advanceTo(e,((t,e)=>{k.push(t.node),k.push(e)}))?n.node.terminals:n.node.residents;if(r.removeUnordered(t),0===r.length)for(let t=k.length-2;t>=0;t-=2){const e=k.data[t],n=k.data[t+1];if(!this._purge(e,n))break}}_nodeIsEmpty(t){if(0!==t.terminals.length)return!1;if(null!==t.residents)return 0===t.residents.length;for(let e=0;e=0&&(t.children[e]=null),!!this._nodeIsEmpty(t)&&(null===t.residents&&(t.residents=new d.Z({shrink:!0})),!0)}_add(t,e){e.advanceTo(this.objectToBoundingSphere(t))?e.node.terminals.push(t):(e.node.residents.push(t),e.node.residents.length>this._maximumObjectsPerNode&&e.depththis.objectToBoundingSphere(t)),H),P(H[3])&&!this._fitsInsideTree(H)))if(this._nodeIsEmpty(this._root.node))(0,a.a)(H,this._root.bounds),this._root.halfSize=1.25*this._root.bounds[3],this._root.updateBoundsRadiusFromHalfSize();else{const t=this._rootBoundsForRootAsSubNode(H);this._placingRootViolatesMaxDepth(t)?this._rebuildTree(H,t):this._growRootAsSubNode(t),R.release(t)}}_rebuildTree(t,e){(0,s.c)((0,a.g)(G),(0,a.g)(e.bounds)),G[3]=e.halfSize,x([t,G],2,(t=>t),V);const n=R.acquire().init(this._root);this._root.initFrom(null,V,V[3]),this._root.increaseHalfSize(1.25),this._forEachNode(n,(t=>(this.add(t.node.terminals.data,t.node.terminals.length),null!==t.node.residents&&this.add(t.node.residents.data,t.node.residents.length),!0))),R.release(n)}_placingRootViolatesMaxDepth(t){const e=Math.log(t.halfSize/this._root.halfSize)*Math.LOG2E;let n=0;return this._forEachNode(this._root,(t=>(n=Math.max(n,t.depth),n+e<=this._maximumDepth))),n+e>this._maximumDepth}_rootBoundsForRootAsSubNode(t){const e=t[3],n=t;let r=-1/0;const i=this._root.bounds,o=this._root.halfSize;for(let t=0;t<3;t++){const s=i[t]-o-(n[t]-e),c=n[t]+e-(i[t]+o),u=Math.max(0,Math.ceil(s/(2*o))),a=Math.max(0,Math.ceil(c/(2*o)))+1,h=2**Math.ceil(Math.log(u+a)*Math.LOG2E);r=Math.max(r,h),q[t].min=u,q[t].max=a}for(let t=0;t<3;t++){let e=q[t].min,n=q[t].max;const s=(r-(e+n))/2;e+=Math.ceil(s),n+=Math.floor(s);const c=i[t]-o-e*o*2;y[t]=c+(n+e)*o}const s=r*o;return y[3]=s*B,R.acquire().initFrom(null,y,s,0)}_growRootAsSubNode(t){const e=this._root.node;(0,s.c)((0,a.g)(H),(0,a.g)(this._root.bounds)),H[3]=this._root.halfSize,this._root.init(t),t.advanceTo(H,null,!0),t.node.children=e.children,t.node.residents=e.residents,t.node.terminals=e.terminals}_shrink(){for(;;){const t=this._findShrinkIndex();if(-1===t)break;this._root.advance(t),this._root.depth=0}}_findShrinkIndex(){if(0!==this._root.node.terminals.length||this._root.isLeaf())return-1;let t=null;const e=this._root.node.children;let n=0,r=0;for(;r=e[0]-n&&t[0]<=e[0]+n&&t[1]>=e[1]-n&&t[1]<=e[1]+n&&t[2]>=e[2]-n&&t[2]<=e[2]+n}toJSON(){const{maximumDepth:t,maximumObjectsPerNode:e,_objectCount:n}=this,r=this._nodeToJSON(this._root.node);return{maximumDepth:t,maximumObjectsPerNode:e,objectCount:n,root:{bounds:this._root.bounds,halfSize:this._root.halfSize,depth:this._root.depth,node:r}}}_nodeToJSON(t){const e=t.children.map((t=>t?this._nodeToJSON(t):null)),n=t.residents?.map((t=>this.objectToBoundingSphere(t))),r=t.terminals?.map((t=>this.objectToBoundingSphere(t)));return{children:e,residents:n,terminals:r}}static fromJSON(t){const e=new N((t=>t),{maximumDepth:t.maximumDepth,maximumObjectsPerNode:t.maximumObjectsPerNode});return e._objectCount=t.objectCount,e._root.initFrom(t.root.node,t.root.bounds,t.root.halfSize,t.root.depth),e}}class R{constructor(){this.bounds=(0,a.c)(),this.halfSize=0,this.initFrom(null,null,0,0)}init(t){return this.initFrom(t.node,t.bounds,t.halfSize,t.depth)}initFrom(t,e,n,r=this.depth){return this.node=null!=t?t:R.createEmptyNode(),e&&(0,a.a)(e,this.bounds),this.halfSize=n,this.depth=r,this}increaseHalfSize(t){this.halfSize*=t,this.updateBoundsRadiusFromHalfSize()}updateBoundsRadiusFromHalfSize(){this.bounds[3]=this.halfSize*B}advance(t){let e=this.node.children[t];e||(e=R.createEmptyNode(),this.node.children[t]=e),this.node=e,this.halfSize/=2,this.depth++;const n=U[t];return this.bounds[0]+=n[0]*this.halfSize,this.bounds[1]+=n[1]*this.halfSize,this.bounds[2]+=n[2]*this.halfSize,this.updateBoundsRadiusFromHalfSize(),this}advanceTo(t,e,n=!1){for(;;){if(this.isTerminalFor(t))return e&&e(this,-1),!0;if(this.isLeaf()){if(!n)return e&&e(this,-1),!1;this.node.residents=null}const r=this._childIndex(t);e&&e(this,r),this.advance(r)}}isLeaf(){return null!=this.node.residents}isTerminalFor(t){return t[3]>this.halfSize/2}_childIndex(t){const e=this.bounds;return(e[0]0}R._pool=new h.Z(R),b=N||(N={}),(M=b.DepthOrder||(b.DepthOrder={}))[M.FRONT_TO_BACK=1]="FRONT_TO_BACK",M[M.BACK_TO_FRONT=-1]="BACK_TO_FRONT";const U=[(0,c.al)(-1,-1,-1),(0,c.al)(1,-1,-1),(0,c.al)(-1,1,-1),(0,c.al)(1,1,-1),(0,c.al)(-1,-1,1),(0,c.al)(1,-1,1),(0,c.al)(-1,1,1),(0,c.al)(1,1,1)],v=[(0,c.al)(-1,-1,-1),(0,c.al)(-1,-1,1),(0,c.al)(-1,1,-1),(0,c.al)(-1,1,1),(0,c.al)(1,-1,-1),(0,c.al)(1,-1,1),(0,c.al)(1,1,-1),(0,c.al)(1,1,1)],B=Math.sqrt(3),w=[null];const y=(0,a.c)(),z=(0,c.Ue)(),L=(0,c.Ue)(),C=(0,c.Ue)(),k=new d.Z,D=(0,a.c)(),H=(0,a.c)(),G=(0,a.c)(),V=(0,a.c)(),q=[{min:0,max:0},{min:0,max:0},{min:0,max:0}],W=new d.Z,Z=[0,0,0,0,0,0,0,0],J=N;var K=n(62229);function X(t,e,n){const r=(0,a.c)(),i=(0,a.g)(r);return(0,s.r)(i,i,t,.5),(0,s.r)(i,i,e,.5),r[3]=(0,s.q)(i,t),(0,s.g)(i,i,n),r}let Y=class{constructor(){this._idToComponent=new Map,this._components=new J((t=>t.bounds)),this._edges=new J((t=>t.bounds)),this._tmpLineSegment=(0,u.Ue)(),this._tmpP1=(0,c.Ue)(),this._tmpP2=(0,c.Ue)(),this._tmpP3=(0,c.Ue)(),this.remoteClient=null}async fetchCandidates(t,e){await Promise.resolve(),(0,i.k_)(e),await this._ensureEdgeLocations(t,e);const n=[];return this._edges.forEachNeighbor((e=>(this._addCandidates(t,e,n),n.length<1e3)),t.bounds),{result:{candidates:n}}}async _ensureEdgeLocations(t,e){const n=[];if(this._components.forEachNeighbor((t=>{if(null==t.info){const{id:e,uid:r}=t;n.push({id:e,uid:r})}return!0}),t.bounds),!n.length)return;const r={components:n},i=await this.remoteClient.invoke("fetchAllEdgeLocations",r,e??{});for(const t of i.components)this._setFetchEdgeLocations(t)}async add(t){const e=new $(t.id,t.bounds);return this._idToComponent.set(e.id,e),this._components.add([e]),{result:{}}}async remove(t){const e=this._idToComponent.get(t.id);if(e){const t=[];this._edges.forEachNeighbor((n=>(n.component===e&&t.push(n),!0)),e.bounds),this._edges.remove(t),this._components.remove([e]),this._idToComponent.delete(e.id)}return{result:{}}}_setFetchEdgeLocations(t){const e=this._idToComponent.get(t.id);if(null==e||t.uid!==e.uid)return;const n=K.n_.createView(t.locations),r=new Array(n.count),i=(0,c.Ue)(),o=(0,c.Ue)();for(let s=0;s{(0,i.Os)((()=>{const e=this.resourceInfo&&(this.resourceInfo.layerType||this.resourceInfo.type);let t="Unsupported layer type";e&&(t+=" "+e),r(new o.Z("layer:unsupported-layer-type",t,{layerType:e}))}))})))}read(e,r){const t={resourceInfo:e};null!=e.id&&(t.id=e.id),null!=e.title&&(t.title=e.title),super.read(t,r)}write(e,r){return Object.assign(e||{},this.resourceInfo,{id:this.id})}};(0,s._)([(0,p.Cb)({readOnly:!0})],d.prototype,"resourceInfo",void 0),(0,s._)([(0,p.Cb)({type:["show","hide"]})],d.prototype,"listMode",void 0),(0,s._)([(0,p.Cb)({type:Boolean,readOnly:!1})],d.prototype,"persistenceEnabled",void 0),(0,s._)([(0,p.Cb)({json:{read:!1},readOnly:!0,value:"unsupported"})],d.prototype,"type",void 0),d=(0,s._)([(0,l.j)("esri.layers.UnsupportedLayer")],d);const y=d}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4868.03034afda09e3904853d.js b/docs/sentinel1-explorer/4868.03034afda09e3904853d.js new file mode 100644 index 00000000..24011539 --- /dev/null +++ b/docs/sentinel1-explorer/4868.03034afda09e3904853d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4868,372],{78053:function(e,t,n){n.d(t,{Qn:function(){return h},iG:function(){return m}});var r,s=n(21130),i=n(46576),o=n(17126);(r||(r={})).TimeZoneNotRecognized="TimeZoneNotRecognized";const a={[r.TimeZoneNotRecognized]:"Timezone identifier has not been recognized."};class u extends Error{constructor(e,t){super((0,s.gx)(a[e],t)),this.declaredRootClass="esri.arcade.arcadedate.dateerror",Error.captureStackTrace&&Error.captureStackTrace(this,u)}}function c(e,t,n){return en?e-n:0}function l(e,t,n){return en?n:e}class m{constructor(e){this._date=e,this.declaredRootClass="esri.arcade.arcadedate"}static fromParts(e=0,t=1,n=1,r=0,s=0,i=0,a=0,u){if(isNaN(e)||isNaN(t)||isNaN(n)||isNaN(r)||isNaN(s)||isNaN(i)||isNaN(a))return null;const f=o.ou.local(e,t).daysInMonth;let d=o.ou.fromObject({day:l(n,1,f),year:e,month:l(t,1,12),hour:l(r,0,23),minute:l(s,0,59),second:l(i,0,59),millisecond:l(a,0,999)},{zone:h(u)});return d=d.plus({months:c(t,1,12),days:c(n,1,f),hours:c(r,0,23),minutes:c(s,0,59),seconds:c(i,0,59),milliseconds:c(a,0,999)}),new m(d)}static get systemTimeZoneCanonicalName(){return Intl.DateTimeFormat().resolvedOptions().timeZone??"system"}static arcadeDateAndZoneToArcadeDate(e,t){const n=h(t);return e.isUnknownTimeZone||n===i.yV.instance?m.fromParts(e.year,e.monthJS+1,e.day,e.hour,e.minute,e.second,e.millisecond,n):new m(e._date.setZone(n))}static dateJSToArcadeDate(e){return new m(o.ou.fromJSDate(e,{zone:"system"}))}static dateJSAndZoneToArcadeDate(e,t="system"){const n=h(t);return new m(o.ou.fromJSDate(e,{zone:n}))}static unknownEpochToArcadeDate(e){return new m(o.ou.fromMillis(e,{zone:i.yV.instance}))}static unknownDateJSToArcadeDate(e){return new m(o.ou.fromMillis(e.getTime(),{zone:i.yV.instance}))}static epochToArcadeDate(e,t="system"){const n=h(t);return new m(o.ou.fromMillis(e,{zone:n}))}static dateTimeToArcadeDate(e){return new m(e)}clone(){return new m(this._date)}changeTimeZone(e){const t=h(e);return m.dateTimeToArcadeDate(this._date.setZone(t))}static dateTimeAndZoneToArcadeDate(e,t){const n=h(t);return e.zone===i.yV.instance||n===i.yV.instance?m.fromParts(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond,n):new m(e.setZone(n))}static nowToArcadeDate(e){const t=h(e);return new m(o.ou.fromJSDate(new Date,{zone:t}))}static nowUTCToArcadeDate(){return new m(o.ou.utc())}get isSystem(){return"system"===this.timeZone||this.timeZone===m.systemTimeZoneCanonicalName}equals(e){return this.isSystem&&e.isSystem?this.toNumber()===e.toNumber():this.isUnknownTimeZone===e.isUnknownTimeZone&&this._date.equals(e._date)}get isUnknownTimeZone(){return this._date.zone===i.yV.instance}get isValid(){return this._date.isValid}get hour(){return this._date.hour}get second(){return this._date.second}get day(){return this._date.day}get dayOfWeekISO(){return this._date.weekday}get dayOfWeekJS(){let e=this._date.weekday;return e>6&&(e=0),e}get millisecond(){return this._date.millisecond}get monthISO(){return this._date.month}get weekISO(){return this._date.weekNumber}get yearISO(){return this._date.weekYear}get monthJS(){return this._date.month-1}get year(){return this._date.year}get minute(){return this._date.minute}get zone(){return this._date.zone}get timeZoneOffset(){return this.isUnknownTimeZone?0:this._date.offset}get timeZone(){if(this.isUnknownTimeZone)return"unknown";if("system"===this._date.zone.type)return"system";const e=this.zone;return"fixed"===e.type?0===e.fixed?"UTC":e.formatOffset(0,"short"):e.name}stringify(){return JSON.stringify(this.toJSDate())}plus(e){return new m(this._date.plus(e))}diff(e,t="milliseconds"){return this._date.diff(e._date,t)[t]}toISODate(){return this._date.toISODate()}toISOString(e){return e?this._date.toISO({suppressMilliseconds:!0,includeOffset:!this.isUnknownTimeZone}):this._date.toISO({includeOffset:!this.isUnknownTimeZone})}toISOTime(e,t){return this._date.toISOTime({suppressMilliseconds:e,includeOffset:t&&!this.isUnknownTimeZone})}toFormat(e,t){return this.isUnknownTimeZone&&(e=e.replaceAll("Z","")),this._date.toFormat(e,t)}toJSDate(){return this._date.toJSDate()}toSQLValue(){return this._date.toFormat("yyyy-LL-dd HH:mm:ss")}toSQLWithKeyword(){return`timestamp '${this.toSQLValue()}'`}toDateTime(){return this._date}toNumber(){return this._date.toMillis()}getTime(){return this._date.toMillis()}toUTC(){return new m(this._date.toUTC())}toLocal(){return new m(this._date.toLocal())}toString(){return this.toISOString(!0)}static fromReaderAsTimeStampOffset(e){if(!e)return null;const t=o.ou.fromISO(e,{setZone:!0});return new m(t)}}function h(e,t=!0){if(e instanceof o.ld)return e;if("system"===e.toLowerCase())return"system";if("utc"===e.toLowerCase())return"UTC";if("unknown"===e.toLowerCase())return i.yV.instance;if(/^[\+\-]?[0-9]{1,2}([:][0-9]{2})?$/.test(e)){const t=o.Qf.parseSpecifier("UTC"+(e.startsWith("+")||e.startsWith("-")?"":"+")+e);if(t)return t}const n=o.vF.create(e);if(!n.isValid){if(t)throw new u(r.TimeZoneNotRecognized);return null}return n}},4080:function(e,t,n){n.d(t,{EI:function(){return s},Lz:function(){return o},SV:function(){return i},U:function(){return u},r1:function(){return a}});var r=n(91772);function s(e){if(null==e)return null;if("number"==typeof e)return e;let t=e.toLowerCase();switch(t=t.replaceAll(/\s/g,""),t=t.replaceAll("-",""),t){case"meters":case"meter":case"m":case"squaremeters":case"squaremeter":return 109404;case"miles":case"mile":case"squaremile":case"squaremiles":return 109439;case"kilometers":case"kilometer":case"squarekilometers":case"squarekilometer":case"km":return 109414;case"acres":case"acre":case"ac":return 109402;case"hectares":case"hectare":case"ha":return 109401;case"yard":case"yd":case"yards":case"squareyards":case"squareyard":return 109442;case"feet":case"ft":case"foot":case"squarefeet":case"squarefoot":return 109405;case"nmi":case"nauticalmile":case"nauticalmiles":case"squarenauticalmile":case"squarenauticalmiles":return 109409}return null}function i(e){if(null==e)return null;switch(e.type){case"polygon":case"multipoint":case"polyline":return e.extent;case"point":return new r.Z({xmin:e.x,ymin:e.y,xmax:e.x,ymax:e.y,spatialReference:e.spatialReference});case"extent":return e}return null}function o(e){if(null==e)return null;if("number"==typeof e)return e;let t=e.toLowerCase();switch(t=t.replaceAll(/\s/g,""),t=t.replaceAll("-",""),t){case"meters":case"meter":case"m":case"squaremeters":case"squaremeter":return 9001;case"miles":case"mile":case"squaremile":case"squaremiles":return 9093;case"kilometers":case"kilometer":case"squarekilometers":case"squarekilometer":case"km":return 9036;case"yard":case"yd":case"yards":case"squareyards":case"squareyard":return 9096;case"feet":case"ft":case"foot":case"squarefeet":case"squarefoot":return 9002;case"nmi":case"nauticalmile":case"nauticalmiles":case"squarenauticalmile":case"squarenauticalmiles":return 9030}return null}function a(e){if(null==e)return null;const t=e.clone();return void 0!==e.cache._geVersion&&(t.cache._geVersion=e.cache._geVersion),t}function u(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}},19980:function(e,t,n){n.d(t,{u:function(){return a}});var r=n(78053),s=n(8108),i=n(17126);function o(e){e=e.replaceAll(/LTS|LT|LL?L?L?|l{1,4}/g,"[$&]");let t="";const n=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;for(const r of e.match(n)||[])switch(r){case"D":t+="d";break;case"DD":t+="dd";break;case"DDD":t+="o";break;case"d":t+="c";break;case"ddd":t+="ccc";break;case"dddd":t+="cccc";break;case"M":t+="L";break;case"MM":t+="LL";break;case"MMM":t+="LLL";break;case"MMMM":t+="LLLL";break;case"YY":t+="yy";break;case"Y":case"YYYY":t+="yyyy";break;case"Q":t+="q";break;case"X":case"x":t+=r;break;default:r.length>=2&&"["===r.slice(0,1)&&"]"===r.slice(-1)?t+=`'${r.slice(1,-1)}'`:t+=`'${r}'`}return t}class a{constructor(e,t,n){this._year=e,this._month=t,this._day=n,this.declaredRootClass="esri.core.sql.dateonly"}get month(){return this._month}get monthJS(){return this._month-1}get year(){return this._year}get day(){return this._day}get isValid(){return this.toDateTime("unknown").isValid}equals(e){return e instanceof a&&e.day===this.day&&e.month===this.month&&e.year===this.year}clone(){return new a(this._year,this._month,this._day)}toDateTime(e){return i.ou.fromObject({day:this.day,month:this.month,year:this.year},{zone:(0,r.Qn)(e)})}toDateTimeLuxon(e){return i.ou.fromObject({day:this.day,month:this.month,year:this.year},{zone:(0,r.Qn)(e)})}toString(){return`${this.year.toString().padStart(4,"0")}-${this.month.toString().padStart(2,"0")}-${this.day.toString().padStart(2,"0")}`}toFormat(e=null,t=!0){if(null===e||""===e)return this.toString();if(t&&(e=o(e)),!e)return"";const n=this.toDateTime("unknown");return r.iG.dateTimeToArcadeDate(n).toFormat(e,{locale:(0,s.Kd)(),numberingSystem:"latn"})}toArcadeDate(){const e=this.toDateTime("unknown");return r.iG.dateTimeToArcadeDate(e)}toNumber(){return this.toDateTime("unknown").toMillis()}toJSDate(){return this.toDateTime("unknown").toJSDate()}toStorageFormat(){return this.toFormat("yyyy-LL-dd",!1)}toSQLValue(){return this.toFormat("yyyy-LL-dd",!1)}toSQLWithKeyword(){return"date '"+this.toFormat("yyyy-LL-dd",!1)+"'"}plus(e,t){return a.fromDateTime(this.toUTCDateTime().plus({[e]:t}))}toUTCDateTime(){return i.ou.utc(this.year,this.month,this.day,0,0,0,0)}difference(e,t){switch(t.toLowerCase()){case"days":case"day":case"d":return this.toUTCDateTime().diff(e.toUTCDateTime(),"days").days;case"months":case"month":return this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months;case"minutes":case"minute":case"m":return"M"===t?this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months:this.toUTCDateTime().diff(e.toUTCDateTime(),"minutes").minutes;case"seconds":case"second":case"s":return this.toUTCDateTime().diff(e.toUTCDateTime(),"seconds").seconds;case"milliseconds":case"millisecond":case"ms":default:return this.toUTCDateTime().diff(e.toUTCDateTime(),"milliseconds").milliseconds;case"hours":case"hour":case"h":return this.toUTCDateTime().diff(e.toUTCDateTime(),"hours").hours;case"years":case"year":case"y":return this.toUTCDateTime().diff(e.toUTCDateTime(),"years").years}}static fromMilliseconds(e){const t=i.ou.fromMillis(e,{zone:i.Qf.utcInstance});return t.isValid?a.fromParts(t.year,t.month,t.day):null}static fromSeconds(e){const t=i.ou.fromSeconds(e,{zone:i.Qf.utcInstance});return t.isValid?a.fromParts(t.year,t.month,t.day):null}static fromReader(e){if(!e)return null;const t=e.split("-");return 3!==t.length?null:new a(parseInt(t[0],10),parseInt(t[1],10),parseInt(t[2],10))}static fromParts(e,t,n){const r=new a(e,t,n);return!1===r.isValid?null:r}static fromDateJS(e){return a.fromParts(e.getFullYear(),e.getMonth()+1,e.getDay())}static fromDateTime(e){return a.fromParts(e.year,e.month,e.day)}static fromSqlTimeStampOffset(e){return this.fromDateTime(e.toDateTime())}static fromString(e,t=null){if(""===e)return null;if(null===e)return null;const n=[];if(t)(t=o(t))&&n.push(t);else if(null===t||""===t){const t=i.ou.fromISO(e,{setZone:!0});return t.isValid?a.fromParts(t.year,t.month,t.day):null}for(const r of n){const n=i.ou.fromFormat(e,t??r);if(n.isValid)return new a(n.year,n.month,n.day)}return null}static fromNow(e="system"){const t=i.ou.fromJSDate(new Date).setZone((0,r.Qn)(e));return new a(t.year,t.month,t.day)}}},62717:function(e,t,n){n.d(t,{n:function(){return a}});var r=n(4080),s=n(8108),i=n(17126);function o(e){if(!e)return"";const t=/(a|A|hh?|HH?|mm?|ss?|SSS|S|.)/g;let n="";for(const r of e.match(t)||[])switch(r){case"SSS":case"m":case"mm":case"h":case"hh":case"H":case"HH":case"s":case"ss":n+=r;break;case"A":case"a":n+="a";break;default:n+=`'${r}'`}return n}class a{constructor(e,t,n,r){this._hour=e,this._minute=t,this._second=n,this._millisecond=r,this.declaredRootClass="esri.core.sql.timeonly"}get hour(){return this._hour}get minute(){return this._minute}get second(){return this._second}get millisecond(){return this._millisecond}equals(e){return e instanceof a&&e.hour===this.hour&&e.minute===this.minute&&e.second===this.second&&e.millisecond===this.millisecond}clone(){return new a(this.hour,this.minute,this.second,this.millisecond)}isValid(){return(0,r.U)(this.hour)&&(0,r.U)(this.minute)&&(0,r.U)(this.second)&&(0,r.U)(this.millisecond)&&this.hour>=0&&this.hour<24&&this.minute>=0&&this.minute<60&&this.second>=0&&this.second<60&&this.millisecond>=0&&this.millisecond<1e3}toString(){return`${this.hour.toString().padStart(2,"0")}:${this.minute.toString().padStart(2,"0")}:${this.second.toString().padStart(2,"0")}`+(this.millisecond>0?"."+this.millisecond.toString().padStart(3,"0"):"")}toSQLValue(){return this.toString()}toSQLWithKeyword(){return`time '${this.hour.toString().padStart(2,"0")}:${this.minute.toString().padStart(2,"0")}:${this.second.toString().padStart(2,"0")}${this.millisecond>0?"."+this.millisecond.toString().padStart(3,"0"):""}'`}toStorageString(){return`${this.hour.toString().padStart(2,"0")}:${this.minute.toString().padStart(2,"0")}:${this.second.toString().padStart(2,"0")}`}toFormat(e=null){return null===e||""===e?this.toString():(e=o(e))?i.ou.local(1970,1,1,this._hour,this._minute,this._second,this._millisecond).toFormat(e,{locale:(0,s.Kd)(),numberingSystem:"latn"}):""}toNumber(){return this.millisecond+1e3*this.second+1e3*this.minute*60+60*this.hour*60*1e3}static fromParts(e,t,n,r){const s=new a(e,t,n,r);return s.isValid()?s:null}static fromReader(e){if(!e)return null;const t=e.split(":");return 3!==t.length?null:new a(parseInt(t[0],10),parseInt(t[1],10),parseInt(t[2],10),0)}static fromMilliseconds(e){if(e>864e5||e<0)return null;const t=Math.floor(e/1e3%60),n=Math.floor(e/6e4%60),r=Math.floor(e/36e5%24),s=Math.floor(e%1e3);return new a(r,n,t,s)}static fromDateJS(e){return new a(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}static fromDateTime(e){return new a(e.hour,e.minute,e.second,e.millisecond)}static fromSqlTimeStampOffset(e){return this.fromDateTime(e.toDateTime())}static fromString(e,t=null){if(""===e)return null;if(null===e)return null;const n=[];t?(t=o(t))&&n.push(t):null!==t&&""!==t||(n.push("HH:mm:ss"),n.push("HH:mm:ss.SSS"),n.push("hh:mm:ss a"),n.push("hh:mm:ss.SSS a"),n.push("HH:mm"),n.push("hh:mm a"),n.push("H:mm"),n.push("h:mm a"),n.push("H:mm:ss"),n.push("h:mm:ss a"),n.push("H:mm:ss.SSS"),n.push("h:mm:ss.SSS a"));for(const t of n){const n=i.ou.fromFormat(e,t);if(n.isValid)return new a(n.hour,n.minute,n.second,n.millisecond)}return null}plus(e,t){switch(e){case"days":case"years":case"months":return this.clone();case"hours":case"minutes":case"seconds":case"milliseconds":return a.fromDateTime(this.toUTCDateTime().plus({[e]:t}))}return null}toUTCDateTime(){return i.ou.utc(1970,1,1,this.hour,this.minute,this.second,this.millisecond)}difference(e,t){switch(t.toLowerCase()){case"days":case"day":case"d":return this.toUTCDateTime().diff(e.toUTCDateTime(),"days").days;case"months":case"month":return this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months;case"minutes":case"minute":case"m":return"M"===t?this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months:this.toUTCDateTime().diff(e.toUTCDateTime(),"minutes").minutes;case"seconds":case"second":case"s":return this.toUTCDateTime().diff(e.toUTCDateTime(),"seconds").seconds;case"milliseconds":case"millisecond":case"ms":default:return this.toUTCDateTime().diff(e.toUTCDateTime(),"milliseconds").milliseconds;case"hours":case"hour":case"h":return this.toUTCDateTime().diff(e.toUTCDateTime(),"hours").hours;case"years":case"year":case"y":return this.toUTCDateTime().diff(e.toUTCDateTime(),"years").years}}}},61107:function(e,t,n){n.d(t,{N:function(){return r}});const r={convertToGEGeometry:function(e,t){return null==t?null:e.convertJSONToGeometry(t)},exportPoint:function(e,t,n){const r=new s(e.getPointX(t),e.getPointY(t),n),i=e.hasZ(t),o=e.hasM(t);return i&&(r.z=e.getPointZ(t)),o&&(r.m=e.getPointM(t)),r},exportPolygon:function(e,t,n){return new i(e.exportPaths(t),n,e.hasZ(t),e.hasM(t))},exportPolyline:function(e,t,n){return new o(e.exportPaths(t),n,e.hasZ(t),e.hasM(t))},exportMultipoint:function(e,t,n){return new a(e.exportPoints(t),n,e.hasZ(t),e.hasM(t))},exportExtent:function(e,t,n){const r=e.hasZ(t),s=e.hasM(t),i=new u(e.getXMin(t),e.getYMin(t),e.getXMax(t),e.getYMax(t),n);if(r){const n=e.getZExtent(t);i.zmin=n.vmin,i.zmax=n.vmax}if(s){const n=e.getMExtent(t);i.mmin=n.vmin,i.mmax=n.vmax}return i}};class s{constructor(e,t,n){this.x=e,this.y=t,this.spatialReference=n,this.z=void 0,this.m=void 0}}class i{constructor(e,t,n,r){this.rings=e,this.spatialReference=t,this.hasZ=void 0,this.hasM=void 0,n&&(this.hasZ=n),r&&(this.hasM=r)}}class o{constructor(e,t,n,r){this.paths=e,this.spatialReference=t,this.hasZ=void 0,this.hasM=void 0,n&&(this.hasZ=n),r&&(this.hasM=r)}}class a{constructor(e,t,n,r){this.points=e,this.spatialReference=t,this.hasZ=void 0,this.hasM=void 0,n&&(this.hasZ=n),r&&(this.hasM=r)}}class u{constructor(e,t,n,r,s){this.xmin=e,this.ymin=t,this.xmax=n,this.ymax=r,this.spatialReference=s,this.zmin=void 0,this.zmax=void 0,this.mmin=void 0,this.mmax=void 0}}},33480:function(e,t,n){function r(e,t){return e?t?4:3:t?3:2}function s(e,t,n,s){if(!t?.lengths.length)return null;e.lengths.length&&(e.lengths.length=0),e.coords.length&&(e.coords.length=0);const a=e.coords,u=[],c=n?[Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY]:[Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY],{lengths:l,coords:m}=t,h=r(n,s);let f=0;for(const e of l){const t=i(c,m,f,e,n,s);t&&u.push(t),f+=e*h}if(u.sort(((e,t)=>{let r=e[2]-t[2];return 0===r&&n&&(r=e[4]-t[4]),r})),u.length){let e=6*u[0][2];a[0]=u[0][0]/e,a[1]=u[0][1]/e,n&&(e=6*u[0][4],a[2]=0!==e?u[0][3]/e:0),(a[0]c[1]||a[1]c[3]||n&&(a[2]c[5]))&&(a.length=0)}if(!a.length){const e=t.lengths[0]?o(m,0,l[0],n,s):null;if(!e)return null;a[0]=e[0],a[1]=e[1],n&&e.length>2&&(a[2]=e[2])}return e}function i(e,t,n,s,i,o){const a=r(i,o);let u=n,c=n+a,l=0,m=0,h=0,f=0,d=0;for(let n=0,r=s-1;ne[1]&&(e[1]=n),re[3]&&(e[3]=r),i&&(se[5]&&(e[5]=s))}if(f>0&&(f*=-1),d>0&&(d*=-1),!f)return null;const y=[l,m,.5*f];return i&&(y[3]=h,y[4]=.5*d),y}function o(e,t,n,s,i){const o=r(s,i);let m=t,h=t+o,f=0,d=0,y=0,p=0;for(let t=0,r=n-1;t0?s?[d/f,y/f,p/f]:[d/f,y/f]:n>0?s?[e[t],e[t+1],e[t+2]]:[e[t],e[t+1]]:null}function a(e,t,n,r){const s=n-e,i=r-t;return Math.sqrt(s*s+i*i)}function u(e,t,n,r,s,i){const o=r-e,a=s-t,u=i-n;return Math.sqrt(o*o+a*a+u*u)}function c(e,t,n,r){return[e+.5*(n-e),t+.5*(r-t)]}function l(e,t,n,r,s,i){return[e+.5*(r-e),t+.5*(s-t),n+.5*(i-n)]}n.d(t,{Y:function(){return s}})},28098:function(e,t,n){n.d(t,{EG:function(){return c},Op:function(){return l},S2:function(){return m}});var r=n(12065),s=n(15540);const i=new s.Z,o=new s.Z,a=new s.Z,u={esriGeometryPoint:r.fQ,esriGeometryPolyline:r.J6,esriGeometryPolygon:r.eG,esriGeometryMultipoint:r.Iv};function c(e,t,n,s=e.hasZ,i=e.hasM){if(null==t)return null;const o=e.hasZ&&s,u=e.hasM&&i;if(n){const c=(0,r.Nh)(a,t,e.hasZ,e.hasM,"esriGeometryPoint",n,s,i);return(0,r.fQ)(c,o,u)}return(0,r.fQ)(t,o,u)}function l(e,t,n,s,c,l,m=t,h=n){const f=t&&m,d=n&&h,y=null!=s?"coords"in s?s:s.geometry:null;if(null==y)return null;if(c){let s=(0,r.zj)(o,y,t,n,e,c,m,h);return l&&(s=(0,r.Nh)(a,s,f,d,e,l)),u[e]?.(s,f,d)??null}if(l){const s=(0,r.Nh)(a,y,t,n,e,l,m,h);return u[e]?.(s,f,d)??null}return(0,r.hY)(i,y,t,n,m,h),u[e]?.(i,f,d)??null}function m(e){return e&&h in e?JSON.parse(JSON.stringify(e,f)):e}const h="_geVersion",f=(e,t)=>e!==h?t:void 0},66069:function(e,t,n){n.d(t,{_W:function(){return f},iV:function(){return p},oj:function(){return T}});var r=n(7753),s=n(78668),i=n(28105),o=n(61107),a=n(35925),u=n(39536);const c=[0,0];function l(e,t){if(!t)return null;if("x"in t){const n={x:0,y:0};return[n.x,n.y]=e(t.x,t.y,c),null!=t.z&&(n.z=t.z),null!=t.m&&(n.m=t.m),n}if("xmin"in t){const n={xmin:0,ymin:0,xmax:0,ymax:0};return[n.xmin,n.ymin]=e(t.xmin,t.ymin,c),[n.xmax,n.ymax]=e(t.xmax,t.ymax,c),t.hasZ&&(n.zmin=t.zmin,n.zmax=t.zmax,n.hasZ=!0),t.hasM&&(n.mmin=t.mmin,n.mmax=t.mmax,n.hasM=!0),n}return"rings"in t?{rings:m(t.rings,e),hasM:t.hasM,hasZ:t.hasZ}:"paths"in t?{paths:m(t.paths,e),hasM:t.hasM,hasZ:t.hasZ}:"points"in t?{points:h(t.points,e),hasM:t.hasM,hasZ:t.hasZ}:null}function m(e,t){const n=[];for(const r of e)n.push(h(r,t));return n}function h(e,t){const n=[];for(const r of e){const e=t(r[0],r[1],[0,0]);n.push(e),r.length>2&&e.push(r[2]),r.length>3&&e.push(r[3])}return n}async function f(e,t){if(!e||!t)return;const n=Array.isArray(e)?e.map((e=>null!=e.geometry?e.geometry.spatialReference:null)).filter(r.pC):[e];await(0,i.initializeProjection)(n.map((e=>({source:e,dest:t}))))}const d=l.bind(null,u.hG),y=l.bind(null,u.R6);function p(e,t,n,r){if(!e)return e;if(n||(n=t,t=e.spatialReference),!(0,a.JY)(t)||!(0,a.JY)(n)||(0,a.fS)(t,n))return e;if((0,u.Q8)(t,n)){const t=(0,a.sS)(n)?d(e):y(e);return t.spatialReference=n,t}return(0,i.projectMany)(o.N,[e],t,n,null,r)[0]}const S=new class{constructor(){this._jobs=[],this._timer=null,this._process=this._process.bind(this)}async push(e,t,n,r){if(!e?.length||!t||!n||(0,a.fS)(t,n))return e;const i={geometries:e,inSpatialReference:t,outSpatialReference:n,geographicTransformation:r,resolve:(0,s.hh)()};return this._jobs.push(i),this._timer??=setTimeout(this._process,10),i.resolve.promise}_process(){this._timer=null;const e=this._jobs.shift();if(!e)return;const{geometries:t,inSpatialReference:n,outSpatialReference:r,resolve:s,geographicTransformation:c}=e;(0,u.Q8)(n,r)?(0,a.sS)(r)?s(t.map(d)):s(t.map(y)):s((0,i.projectMany)(o.N,t,n,r,c,null)),this._jobs.length>0&&(this._timer=setTimeout(this._process,10))}};function T(e,t,n,r){return S.push(e,t,n,r)}},13717:function(e,t,n){n.d(t,{Ti:function(){return h},Up:function(){return f},j6:function(){return d}});var r=n(25709),s=n(17321),i=n(28105),o=n(50842),a=n(53736),u=n(29927),c=n(35925),l=n(66069);const m=new r.X({esriSRUnit_Meter:"meters",esriSRUnit_Kilometer:"kilometers",esriSRUnit_Foot:"feet",esriSRUnit_StatuteMile:"miles",esriSRUnit_NauticalMile:"nautical-miles",esriSRUnit_USNauticalMile:"us-nautical-miles"}),h=Object.freeze({});async function f(e,t,n){const{outFields:r,orderByFields:s,groupByFieldsForStatistics:i,outStatistics:o}=e;if(r)for(let e=0;e(0,l.iV)(i,c.YU)));return(await async function(){return(await Promise.all([n.e(9067),n.e(8923)]).then(n.bind(n,8923))).geodesicBuffer}())(u.spatialReference,u,t,a)}(e);if(e.distance=0,e.units=null,"esriSpatialRelEnvelopeIntersects"===e.spatialRel){const{spatialReference:t}=e.geometry;f=(0,o.aO)(f),f.spatialReference=t}if(f){await(0,l._W)(f.spatialReference,r),f=function(e,t){const n=e.spatialReference;return y(e,t)&&(0,a.YX)(e)?{spatialReference:n,rings:[[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]]}:e}(f,r);const t=(await(0,u.aX)((0,a.im)(f)))[0];if(null==t)throw h;const n="quantizationParameters"in e&&e.quantizationParameters?.tolerance||"maxAllowableOffset"in e&&e.maxAllowableOffset||0,s=n&&y(f,r)?{densificationStep:8*n}:void 0,i=t.toJSON(),o=(0,l.iV)(i,i.spatialReference,r,s);if(!o)throw h;o.spatialReference=r,e.geometry=o}return e}function y(e,t){if(!e)return!1;const n=e.spatialReference;return((0,a.YX)(e)||(0,a.oU)(e)||(0,a.l9)(e))&&!(0,c.fS)(n,t)&&!(0,i.canProjectWithoutEngine)(n,t)}},20592:function(e,t,n){n.d(t,{hN:function(){return _},P0:function(){return w},cW:function(){return g}});var r=n(70375),s=n(27127),i=n(68668);var o=n(53736),a=n(35925);function u(e,t){return e?t?4:3:t?3:2}function c(e,t,n,r,s,i){const o=u(s,i),{coords:a,lengths:c}=r;if(!c)return!1;for(let r=0,s=0;r=o||h=o)&&s+(o-l)/(h-l)*(m-s)function(e,t,n,r){return l(e,t,n,r.coords[0],r.coords[1])}(e,!1,!1,t)))}if((0,o.oU)(t)&&"esriGeometryMultipoint"===r){const n=(0,h.Uy)(new f.Z,t,!1,!1);if("esriSpatialRelContains"===e)return Promise.resolve((e=>c(n,!1,!1,e,a,u)))}if((0,o.YX)(t)&&"esriGeometryPoint"===r&&("esriSpatialRelIntersects"===e||"esriSpatialRelContains"===e))return Promise.resolve((e=>(0,s.aV)(t,(0,d.Op)(r,a,u,e))));if((0,o.YX)(t)&&"esriGeometryMultipoint"===r&&"esriSpatialRelContains"===e)return Promise.resolve((e=>(0,s.lQ)(t,(0,d.Op)(r,a,u,e))));if((0,o.YX)(t)&&"esriSpatialRelIntersects"===e){const e=function(e){return"mesh"===e?i.h_:(0,i.IY)(e)}(r);return Promise.resolve((n=>e(t,(0,d.Op)(r,a,u,n))))}return Promise.all([n.e(9067),n.e(8923)]).then(n.bind(n,8923)).then((n=>{const s=n[S[e]].bind(null,t.spatialReference,t);return e=>s((0,d.Op)(r,a,u,e))}))}async function w(e,t,n){const{spatialRel:s,geometry:i}=e;if(i){if(!function(e){return null!=e&&!0===T.spatialRelationship[e]}(s))throw new r.Z(p,"Unsupported query spatial relationship",{query:e});if((0,a.JY)(i.spatialReference)&&(0,a.JY)(n)){if(!function(e){return null!=e&&!0===T.queryGeometry[(0,o.Ji)(e)]}(i))throw new r.Z(p,"Unsupported query geometry type",{query:e});if(!function(e){return null!=e&&!0===T.layerGeometry[e]}(t))throw new r.Z(p,"Unsupported layer geometry type",{query:e});if(e.outSR)return(0,y._W)(e.geometry?.spatialReference,e.outSR)}}}function _(e){if((0,o.YX)(e))return!0;if((0,o.oU)(e)){for(const t of e.rings){if(5!==t.length)return!1;if(t[0][0]!==t[1][0]||t[0][0]!==t[4][0]||t[2][0]!==t[3][0]||t[0][1]!==t[3][1]||t[0][1]!==t[4][1]||t[1][1]!==t[2][1])return!1}return!0}return!1}},53316:function(e,t,n){async function r(e,t){if(!e)return null;const n=t.featureAdapter,{startTimeField:r,endTimeField:s}=e;let i=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY;if(r&&s)await t.forEach((e=>{const t=n.getAttribute(e,r),a=n.getAttribute(e,s);null==t||isNaN(t)||(i=Math.min(i,t)),null==a||isNaN(a)||(o=Math.max(o,a))}));else{const e=r||s;await t.forEach((t=>{const r=n.getAttribute(t,e);null==r||isNaN(r)||(i=Math.min(i,r),o=Math.max(o,r))}))}return{start:i,end:o}}function s(e,t,n){if(!t||!e)return null;const{startTimeField:r,endTimeField:s}=e;if(!r&&!s)return null;const{start:i,end:o}=t;if(null===i&&null===o)return null;if(void 0===i&&void 0===o)return()=>!1;const a=n.getAttributeAsTimestamp?.bind(n)??n.getAttribute.bind(n);return r&&s?function(e,t,n,r,s){return null!=r&&null!=s?i=>{const o=e(i,t),a=e(i,n);return(null==o||o<=s)&&(null==a||a>=r)}:null!=r?t=>{const s=e(t,n);return null==s||s>=r}:null!=s?n=>{const r=e(n,t);return null==r||r<=s}:void 0}(a,r,s,i,o):function(e,t,n,r){return null!=n&&null!=r&&n===r?r=>e(r,t)===n:null!=n&&null!=r?s=>{const i=e(s,t);return null!=i&&i>=n&&i<=r}:null!=n?r=>{const s=e(r,t);return null!=s&&s>=n}:null!=r?n=>{const s=e(n,t);return null!=s&&s<=r}:void 0}(a,r||s,i,o)}n.d(t,{R:function(){return r},y:function(){return s}})}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4892.801456edde926ecbef77.js b/docs/sentinel1-explorer/4892.801456edde926ecbef77.js new file mode 100644 index 00000000..d8d1eaa9 --- /dev/null +++ b/docs/sentinel1-explorer/4892.801456edde926ecbef77.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4892],{19849:function(e,n,t){t.d(n,{Z:function(){return o}});var i=t(69079),r=t(8955);class o{constructor(){this._resourceMap=new Map,this._inFlightResourceMap=new Map,this.geometryEngine=null,this.geometryEnginePromise=null}destroy(){this._inFlightResourceMap.clear(),this._resourceMap.clear()}getResource(e){return this._resourceMap.get(e)??null}async fetchResource(e,n){const t=this._resourceMap.get(e);if(t)return{width:t.width,height:t.height};let i=this._inFlightResourceMap.get(e);return i?i.then((e=>({width:e.width,height:e.height}))):(i=(0,r.n$)(e,n),this._inFlightResourceMap.set(e,i),i.then((n=>(this._inFlightResourceMap.delete(e),this._resourceMap.set(e,n),{width:n.width,height:n.height})),(()=>({width:0,height:0}))))}deleteResource(e){this._inFlightResourceMap.delete(e),this._resourceMap.delete(e)}loadFont(e){return(0,i.mx)(e)}}},25609:function(e,n,t){var i,r,o,u,a,l,c,s,h,f,d,g,p,m,y,C,M,S,R,w,T,P,x,B,D,F,b,v,L,O,N,A,E,W,I,U,_,k,H,G,z,J,Z,Y,q,V,X,$,K,j,Q,ee,ne,te,ie,re,oe,ue,ae,le,ce;t.d(n,{$y:function(){return P},AH:function(){return r},CS:function(){return X},DD:function(){return s},Dd:function(){return L},Em:function(){return T},JS:function(){return q},Ky:function(){return h},Lh:function(){return $},Qb:function(){return oe},RL:function(){return i},RS:function(){return ae},TF:function(){return w},Tx:function(){return a},UR:function(){return M},UX:function(){return re},bj:function(){return V},eZ:function(){return c},id:function(){return D},kP:function(){return U},of:function(){return d},r4:function(){return G},sj:function(){return _},v2:function(){return o},zQ:function(){return v},zV:function(){return C}}),function(e){e[e.BUTT=0]="BUTT",e[e.ROUND=1]="ROUND",e[e.SQUARE=2]="SQUARE",e[e.UNKNOWN=4]="UNKNOWN"}(i||(i={})),function(e){e[e.BEVEL=0]="BEVEL",e[e.ROUND=1]="ROUND",e[e.MITER=2]="MITER",e[e.UNKNOWN=4]="UNKNOWN"}(r||(r={})),function(e){e[e.SCREEN=0]="SCREEN",e[e.MAP=1]="MAP"}(o||(o={})),function(e){e[e.Tint=0]="Tint",e[e.Ignore=1]="Ignore",e[e.Multiply=99]="Multiply"}(u||(u={})),function(e){e.Both="Both",e.JustBegin="JustBegin",e.JustEnd="JustEnd",e.None="None"}(a||(a={})),function(e){e[e.Mosaic=0]="Mosaic",e[e.Centered=1]="Centered"}(l||(l={})),function(e){e[e.Normal=0]="Normal",e[e.Superscript=1]="Superscript",e[e.Subscript=2]="Subscript"}(c||(c={})),function(e){e[e.MSSymbol=0]="MSSymbol",e[e.Unicode=1]="Unicode"}(s||(s={})),function(e){e[e.Unspecified=0]="Unspecified",e[e.TrueType=1]="TrueType",e[e.PSOpenType=2]="PSOpenType",e[e.TTOpenType=3]="TTOpenType",e[e.Type1=4]="Type1"}(h||(h={})),function(e){e[e.Display=0]="Display",e[e.Map=1]="Map"}(f||(f={})),function(e){e.None="None",e.Loop="Loop",e.Oscillate="Oscillate"}(d||(d={})),function(e){e[e.Z=0]="Z",e[e.X=1]="X",e[e.Y=2]="Y"}(g||(g={})),function(e){e[e.XYZ=0]="XYZ",e[e.ZXY=1]="ZXY",e[e.YXZ=2]="YXZ"}(p||(p={})),function(e){e[e.Rectangle=0]="Rectangle",e[e.RoundedRectangle=1]="RoundedRectangle",e[e.Oval=2]="Oval"}(m||(m={})),function(e){e[e.None=0]="None",e[e.Alpha=1]="Alpha",e[e.Screen=2]="Screen",e[e.Multiply=3]="Multiply",e[e.Add=4]="Add"}(y||(y={})),function(e){e[e.TTB=0]="TTB",e[e.RTL=1]="RTL",e[e.BTT=2]="BTT"}(C||(C={})),function(e){e[e.None=0]="None",e[e.SignPost=1]="SignPost",e[e.FaceNearPlane=2]="FaceNearPlane"}(M||(M={})),function(e){e[e.Float=0]="Float",e[e.String=1]="String",e[e.Boolean=2]="Boolean"}(S||(S={})),function(e){e[e.Intersect=0]="Intersect",e[e.Subtract=1]="Subtract"}(R||(R={})),function(e){e.OpenEnded="OpenEnded",e.Block="Block",e.Crossed="Crossed"}(w||(w={})),function(e){e.FullGeometry="FullGeometry",e.PerpendicularFromFirstSegment="PerpendicularFromFirstSegment",e.ReversedFirstSegment="ReversedFirstSegment",e.PerpendicularToSecondSegment="PerpendicularToSecondSegment",e.SecondSegmentWithTicks="SecondSegmentWithTicks",e.DoublePerpendicular="DoublePerpendicular",e.OppositeToFirstSegment="OppositeToFirstSegment",e.TriplePerpendicular="TriplePerpendicular",e.HalfCircleFirstSegment="HalfCircleFirstSegment",e.HalfCircleSecondSegment="HalfCircleSecondSegment",e.HalfCircleExtended="HalfCircleExtended",e.OpenCircle="OpenCircle",e.CoverageEdgesWithTicks="CoverageEdgesWithTicks",e.GapExtentWithDoubleTicks="GapExtentWithDoubleTicks",e.GapExtentMidline="GapExtentMidline",e.Chevron="Chevron",e.PerpendicularWithArc="PerpendicularWithArc",e.ClosedHalfCircle="ClosedHalfCircle",e.TripleParallelExtended="TripleParallelExtended",e.ParallelWithTicks="ParallelWithTicks",e.Parallel="Parallel",e.PerpendicularToFirstSegment="PerpendicularToFirstSegment",e.ParallelOffset="ParallelOffset",e.OffsetOpposite="OffsetOpposite",e.OffsetSame="OffsetSame",e.CircleWithArc="CircleWithArc",e.DoubleJog="DoubleJog",e.PerpendicularOffset="PerpendicularOffset",e.LineExcludingLastSegment="LineExcludingLastSegment",e.MultivertexArrow="MultivertexArrow",e.CrossedArrow="CrossedArrow",e.ChevronArrow="ChevronArrow",e.ChevronArrowOffset="ChevronArrowOffset",e.PartialFirstSegment="PartialFirstSegment",e.Arch="Arch",e.CurvedParallelTicks="CurvedParallelTicks",e.Arc90Degrees="Arc90Degrees"}(T||(T={})),function(e){e.Mitered="Mitered",e.Bevelled="Bevelled",e.Rounded="Rounded",e.Square="Square",e.TrueBuffer="TrueBuffer"}(P||(P={})),function(e){e.ClosePath="ClosePath",e.ConvexHull="ConvexHull",e.RectangularBox="RectangularBox"}(x||(x={})),function(e){e.BeginningOfLine="BeginningOfLine",e.EndOfLine="EndOfLine"}(B||(B={})),function(e){e.Mitered="Mitered",e.Bevelled="Bevelled",e.Rounded="Rounded",e.Square="Square"}(D||(D={})),function(e){e.Fast="Fast",e.Accurate="Accurate"}(F||(F={})),function(e){e.BeginningOfLine="BeginningOfLine",e.EndOfLine="EndOfLine"}(b||(b={})),function(e){e.Sinus="Sinus",e.Square="Square",e.Triangle="Triangle",e.Random="Random"}(v||(v={})),function(e){e[e.None=0]="None",e[e.Default=1]="Default",e[e.Force=2]="Force"}(L||(L={})),function(e){e[e.Buffered=0]="Buffered",e[e.Left=1]="Left",e[e.Right=2]="Right",e[e.AlongLine=3]="AlongLine"}(O||(O={})),function(e){e[e.Linear=0]="Linear",e[e.Rectangular=1]="Rectangular",e[e.Circular=2]="Circular",e[e.Buffered=3]="Buffered"}(N||(N={})),function(e){e[e.Discrete=0]="Discrete",e[e.Continuous=1]="Continuous"}(A||(A={})),function(e){e[e.AcrossLine=0]="AcrossLine",e[e.AloneLine=1]="AloneLine"}(E||(E={})),function(e){e[e.Left=0]="Left",e[e.Right=1]="Right",e[e.Center=2]="Center",e[e.Justify=3]="Justify"}(W||(W={})),function(e){e[e.Base=0]="Base",e[e.MidPoint=1]="MidPoint",e[e.ThreePoint=2]="ThreePoint",e[e.FourPoint=3]="FourPoint",e[e.Underline=4]="Underline",e[e.CircularCW=5]="CircularCW",e[e.CircularCCW=6]="CircularCCW"}(I||(I={})),function(e){e.Butt="Butt",e.Round="Round",e.Square="Square"}(U||(U={})),function(e){e.NoConstraint="NoConstraint",e.HalfPattern="HalfPattern",e.HalfGap="HalfGap",e.FullPattern="FullPattern",e.FullGap="FullGap",e.Custom="Custom"}(_||(_={})),function(e){e[e.None=-1]="None",e[e.Custom=0]="Custom",e[e.Circle=1]="Circle",e[e.OpenArrow=2]="OpenArrow",e[e.ClosedArrow=3]="ClosedArrow",e[e.Diamond=4]="Diamond"}(k||(k={})),function(e){e[e.ExtraLeading=0]="ExtraLeading",e[e.Multiple=1]="Multiple",e[e.Exact=2]="Exact"}(H||(H={})),function(e){e.Bevel="Bevel",e.Round="Round",e.Miter="Miter"}(G||(G={})),function(e){e[e.Default=0]="Default",e[e.String=1]="String",e[e.Numeric=2]="Numeric"}(z||(z={})),function(e){e[e.InsidePolygon=0]="InsidePolygon",e[e.PolygonCenter=1]="PolygonCenter",e[e.RandomlyInsidePolygon=2]="RandomlyInsidePolygon"}(J||(J={})),function(e){e[e.Tint=0]="Tint",e[e.Replace=1]="Replace",e[e.Multiply=2]="Multiply"}(Z||(Z={})),function(e){e[e.ClipAtBoundary=0]="ClipAtBoundary",e[e.RemoveIfCenterOutsideBoundary=1]="RemoveIfCenterOutsideBoundary",e[e.DoNotTouchBoundary=2]="DoNotTouchBoundary",e[e.DoNotClip=3]="DoNotClip"}(Y||(Y={})),function(e){e.NoConstraint="NoConstraint",e.WithMarkers="WithMarkers",e.WithFullGap="WithFullGap",e.WithHalfGap="WithHalfGap",e.Custom="Custom"}(q||(q={})),function(e){e.Fixed="Fixed",e.Random="Random",e.RandomFixedQuantity="RandomFixedQuantity"}(V||(V={})),function(e){e.LineMiddle="LineMiddle",e.LineBeginning="LineBeginning",e.LineEnd="LineEnd",e.SegmentMidpoint="SegmentMidpoint"}(X||(X={})),function(e){e.OnPolygon="OnPolygon",e.CenterOfMass="CenterOfMass",e.BoundingBoxCenter="BoundingBoxCenter"}($||($={})),function(e){e[e.Low=0]="Low",e[e.Medium=1]="Medium",e[e.High=2]="High"}(K||(K={})),function(e){e[e.MarkerCenter=0]="MarkerCenter",e[e.MarkerBounds=1]="MarkerBounds"}(j||(j={})),function(e){e[e.None=0]="None",e[e.PropUniform=1]="PropUniform",e[e.PropNonuniform=2]="PropNonuniform",e[e.DifUniform=3]="DifUniform",e[e.DifNonuniform=4]="DifNonuniform"}(Q||(Q={})),function(e){e.Tube="Tube",e.Strip="Strip",e.Wall="Wall"}(ee||(ee={})),function(e){e[e.Random=0]="Random",e[e.Increasing=1]="Increasing",e[e.Decreasing=2]="Decreasing",e[e.IncreasingThenDecreasing=3]="IncreasingThenDecreasing"}(ne||(ne={})),function(e){e[e.Relative=0]="Relative",e[e.Absolute=1]="Absolute"}(te||(te={})),function(e){e[e.Normal=0]="Normal",e[e.LowerCase=1]="LowerCase",e[e.Allcaps=2]="Allcaps"}(ie||(ie={})),function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(re||(re={})),function(e){e.Draft="Draft",e.Picture="Picture",e.Text="Text"}(oe||(oe={})),function(e){e[e.Top=0]="Top",e[e.Center=1]="Center",e[e.Baseline=2]="Baseline",e[e.Bottom=3]="Bottom"}(ue||(ue={})),function(e){e[e.Right=0]="Right",e[e.Upright=1]="Upright"}(ae||(ae={})),function(e){e[e.Small=0]="Small",e[e.Medium=1]="Medium",e[e.Large=2]="Large"}(le||(le={})),function(e){e[e.Calm=0]="Calm",e[e.Rippled=1]="Rippled",e[e.Slight=2]="Slight",e[e.Moderate=3]="Moderate"}(ce||(ce={}))},48024:function(e,n,t){t.d(n,{previewCIMSymbol:function(){return C}});var i=t(95550),r=t(95215),o=t(19849),u=t(31014),a=t(98591),l=t(60789);function c(e,n,t,i){const r=-n/2+1,o=n/2-1,u=t/2-1,a=-t/2+1;switch(e){case"esriGeometryPoint":return{x:0,y:0};case"esriGeometryPolyline":return{paths:[[[r,0],[0,0],[o,0]]]};default:return"legend"===i?{rings:[[[r,u],[o,0],[o,a],[r,a],[r,u]]]}:{rings:[[[r,u],[o,u],[o,a],[r,a],[r,u]]]}}}var s=t(83773),h=t(5840);const f=new class{constructor(e){this._spatialReference=e,this._imageDataCanvas=null,this._cimResourceManager=new o.Z}get _canvas(){return this._imageDataCanvas||(this._imageDataCanvas=document.createElement("canvas")),this._imageDataCanvas}get resourceManager(){return this._cimResourceManager}async rasterizeCIMSymbolAsync(e,n,t,i,o,u,s,h,f){if(!e)return null;const{data:d}=e;if(!d||"CIMSymbolReference"!==d.type||!d.symbol)return null;const{symbol:g}=d;u||(u=(0,l.JW)(g));const p=await a.E.resolveSymbolOverrides(d,n,this._spatialReference,o,u,s,h),m=this._cimResourceManager,y=[];r.B$.fetchResources(p,m,y),r.B$.fetchFonts(p,m,y),y.length>0&&await Promise.all(y);const{width:C,height:M}=t,S=c(u,C,M,i),R=r.B$.getEnvelope(p,S,m);if(!R)return null;let w=1,T=0,P=0;switch(g.type){case"CIMPointSymbol":case"CIMTextSymbol":{let e=1;R.width>C&&(e=C/R.width);let n=1;R.height>M&&(n=M/R.height),"preview"===i&&(R.widthM)&&(w=M/R.height),P=R.y+R.height/2;const e=R.x*w+C/2,n=(R.x+R.width)*w+C/2,{paths:t}=S;t[0][0][0]-=e/w,t[0][2][0]-=(n-C)/w}break;case"CIMPolygonSymbol":{T=R.x+R.width/2,P=R.y+R.height/2;const e=R.x*w+C/2,n=(R.x+R.width)*w+C/2,t=R.y*w+M/2,i=(R.y+R.height)*w+M/2,{rings:r}=S;e<0&&(r[0][0][0]-=e,r[0][3][0]-=e,r[0][4][0]-=e),t<0&&(r[0][0][1]+=t,r[0][1][1]+=t,r[0][4][1]+=t),n>C&&(r[0][1][0]-=n-C,r[0][2][0]-=n-C),i>M&&(r[0][2][1]+=i-M,r[0][3][1]+=i-M)}}const x={type:"cim",data:{type:"CIMSymbolReference",symbol:p}};return this.rasterize(x,C,M,T,P,w,u,1,S)}rasterize(e,n,t,i,r,o,a,s=0,h=null){const{data:f}=e;if(!f||"CIMSymbolReference"!==f.type||!f.symbol)return null;const{symbol:d}=f,g=this._canvas,p=1.3333333333333333*(window.devicePixelRatio||1);g.width=n*p,g.height=t*p,a||(a=(0,l.JW)(d)),h||(h=c(a,n,t,"legend")),g.width+=2*s,g.height+=2*s;const m=g.getContext("2d",{willReadFrequently:!0}),y=u.zA.createIdentity();return y.translate(-i,-r),y.scale(o*p,-o*p),y.translate(n*p/2+s,t*p/2+s),m.clearRect(0,0,g.width,g.height),new u.cD(m,this._cimResourceManager,y,!0).drawSymbol(d,h),m.getImageData(0,0,g.width,g.height)}}(null),d=(0,i.Wz)(s.b_.size),g=(0,i.Wz)(s.b_.maxSize),p=(0,i.Wz)(s.b_.lineWidth),m=1;async function y(e,n,t){const i=n?.size;let o=null!=i&&"object"==typeof i&&"width"in i?i.width:i,u=null!=i&&"object"==typeof i&&"height"in i?i.height:i;if(null==o||null==u)if("esriGeometryPolygon"===t)o=d,u=d;else{const i=await async function(e,n,t){const{feature:i,fieldMap:o,viewParams:u}=n.cimOptions||n,l=await a.E.resolveSymbolOverrides(e.data,i,null,o,t,null,u);if(!l)return null;(e=e.clone()).data={type:"CIMSymbolReference",symbol:l},e.data.primitiveOverrides=void 0;const c=[];return r.B$.fetchResources(l,f.resourceManager,c),r.B$.fetchFonts(l,f.resourceManager,c),c.length>0&&await Promise.all(c),r.B$.getEnvelope(l,null,f.resourceManager)}(e,n,t);i&&(o=i.width,u=i.height),"esriGeometryPolyline"===t&&(o=p),o=null!=o&&isFinite(o)?Math.min(o,g):d,u=null!=u&&isFinite(u)?Math.max(Math.min(u,g),m):d}return"legend"===n.style&&"esriGeometryPolyline"===t&&(o=p),{width:o,height:u}}async function C(e,n={}){const{node:t,opacity:r,symbolConfig:o}=n,u=null!=o&&"object"==typeof o&&"isSquareFill"in o&&o.isSquareFill,a=n.cimOptions||n,c=a.geometryType||(0,l.JW)(e?.data?.symbol),s=await y(e,n,c),{feature:d,fieldMap:g}=a,p=u||"esriGeometryPolygon"!==c?"preview":"legend",m=await f.rasterizeCIMSymbolAsync(e,d,s,p,g,c,null,a.viewParams,a.allowScalingUp);if(!m)return null;const{width:C,height:M}=m,S=document.createElement("canvas");S.width=C,S.height=M,S.getContext("2d").putImageData(m,0,0);const R=(0,i.F2)(s.width),w=(0,i.F2)(s.height),T=new Image(R,w);T.src=S.toDataURL(),T.ariaLabel=n.ariaLabel??null,T.alt=n.ariaLabel??"",null!=r&&(T.style.opacity=`${r}`);let P=T;if(null!=n.effectView){const e={shape:{type:"image",x:0,y:0,width:R,height:w,src:T.src},fill:null,stroke:null,offset:[0,0]};P=(0,h.wh)([[e]],[R,w],{effectView:n.effectView,ariaLabel:n.ariaLabel})}return t&&P&&t.appendChild(P),P}},31067:function(e,n,t){t.d(n,{Z:function(){return r}});var i=t(45867);class r{constructor(e,n,t,r){this.computedX=0,this.computedY=0,this.center=(0,i.al)(e,n),this.centerT=(0,i.Ue)(),this.halfWidth=t/2,this.halfHeight=r/2,this.width=t,this.height=r}get x(){return this.center[0]}get y(){return this.center[1]}get blX(){return this.center[0]+this.halfWidth}get blY(){return this.center[1]+this.halfHeight}get trX(){return this.center[0]-this.halfWidth}get trY(){return this.center[1]-this.halfHeight}get xmin(){return this.x-this.halfWidth}get xmax(){return this.x+this.halfWidth}get ymin(){return this.y-this.halfHeight}get ymax(){return this.y+this.halfHeight}set x(e){this.center[0]=e}set y(e){this.center[1]=e}clone(){return new r(this.x,this.y,this.width,this.height)}serialize(e){return e.writeF32(this.center[0]),e.writeF32(this.center[1]),e.push(this.width),e.push(this.height),e}findCollisionDelta(e,n=4){const t=Math.abs(e.centerT[0]-this.centerT[0]),i=Math.abs(e.centerT[1]-this.centerT[1]),r=(e.halfWidth+this.halfWidth+n)/t,o=(e.halfHeight+this.halfHeight+n)/i,u=Math.min(r,o);return Math.log2(u)}extend(e){const n=Math.min(this.xmin,e.xmin),t=Math.min(this.ymin,e.ymin),i=Math.max(this.xmax,e.xmax)-n,r=Math.max(this.ymax,e.ymax)-t,o=n+i/2,u=t+r/2;this.width=i,this.height=r,this.halfWidth=i/2,this.halfHeight=r/2,this.x=o,this.y=u}static deserialize(e){const n=e.readF32(),t=e.readF32(),i=e.readInt32(),o=e.readInt32();return new r(n,t,i,o)}}},14266:function(e,n,t){t.d(n,{BZ:function(){return H},FM:function(){return W},GV:function(){return Z},Ib:function(){return g},J1:function(){return z},JS:function(){return I},KA:function(){return U},Kg:function(){return o},Kt:function(){return f},Ly:function(){return M},NG:function(){return k},NY:function(){return p},Of:function(){return P},Pp:function(){return l},Sf:function(){return T},Uz:function(){return _},Vo:function(){return N},Zt:function(){return w},_8:function(){return Y},_E:function(){return O},ad:function(){return a},bm:function(){return y},ce:function(){return S},cz:function(){return R},dD:function(){return L},do:function(){return b},g3:function(){return D},gj:function(){return h},i9:function(){return r},iD:function(){return s},j1:function(){return C},k9:function(){return i},kU:function(){return F},l3:function(){return J},nY:function(){return v},nn:function(){return G},oh:function(){return u},qu:function(){return E},s4:function(){return A},uk:function(){return c},vk:function(){return x},wJ:function(){return d},wi:function(){return B},zZ:function(){return m}});const i=1e-30,r=512,o=128,u=511,a=16777216,l=8,c=29,s=24,h=4,f=0,d=0,g=0,p=1,m=2,y=3,C=4,M=5,S=6,R=12,w=5,T=6,P=5,x=6;var B;!function(e){e[e.FilterFlags=0]="FilterFlags",e[e.Animation=1]="Animation",e[e.GPGPU=2]="GPGPU",e[e.VV=3]="VV",e[e.DD0=4]="DD0",e[e.DD1=5]="DD1",e[e.DD2=6]="DD2"}(B||(B={}));const D=8,F=D<<1,b=1.05,v=1,L=5,O=6,N=1.15,A=2,E=128-2*A,W=2,I=10,U=1024,_=128,k=4,H=1,G=1<<20,z=.75,J=10,Z=.75,Y=256}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4950.e55f107e3b030ac9062c.js b/docs/sentinel1-explorer/4950.e55f107e3b030ac9062c.js new file mode 100644 index 00000000..e8fe113d --- /dev/null +++ b/docs/sentinel1-explorer/4950.e55f107e3b030ac9062c.js @@ -0,0 +1,2 @@ +/*! For license information please see 4950.e55f107e3b030ac9062c.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[4950],{74950:function(t,e,n){n.r(e),n.d(e,{CalciteListItemGroup:function(){return d},defineCustomElement:function(){return u}});var i=n(77210),o=n(64426),r=n(22562);const c="container",a="heading",l=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.calciteInternalListItemGroupDefaultSlotChange=(0,i.yM)(this,"calciteInternalListItemGroupDefaultSlotChange",6),this.handleDefaultSlotChange=()=>{this.calciteInternalListItemGroupDefaultSlotChange.emit()},this.disabled=!1,this.filterHidden=!1,this.heading=void 0,this.visualLevel=null}connectedCallback(){const{el:t}=this;this.visualLevel=(0,r.b)(t,!0),(0,o.c)(this)}componentDidRender(){(0,o.u)(this)}disconnectedCallback(){(0,o.d)(this)}render(){const{disabled:t,heading:e,visualLevel:n}=this;return(0,i.h)(i.AA,null,(0,i.h)(o.I,{disabled:t},(0,i.h)("tr",{class:c,style:{"--calcite-list-item-spacing-indent-multiplier":`${n}`}},(0,i.h)("td",{class:a,colSpan:r.M},e)),(0,i.h)("slot",{onSlotchange:this.handleDefaultSlotChange})))}get el(){return this}static get style(){return":host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:flex;flex-direction:column;background-color:var(--calcite-color-foreground-1);--calcite-list-item-spacing-indent:1rem}:host([filter-hidden]){display:none}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.container{margin:0px;display:flex;flex:1 1 0%;background-color:var(--calcite-color-foreground-2);padding:0.75rem;font-family:var(--calcite-sans-family);font-size:var(--calcite-font-size--1);font-weight:var(--calcite-font-weight-bold);color:var(--calcite-color-text-2)}.heading{padding-inline-start:calc(var(--calcite-list-item-spacing-indent) * var(--calcite-list-item-spacing-indent-multiplier))}::slotted(calcite-list-item){--tw-shadow:0 -1px 0 var(--calcite-color-border-3);--tw-shadow-colored:0 -1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);margin-block-start:1px}::slotted(calcite-list-item:nth-child(1 of :not([hidden]))){--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);margin-block-start:0px}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-list-item-group",{disabled:[516],filterHidden:[516,"filter-hidden"],heading:[513],visualLevel:[32]}]);function s(){if("undefined"==typeof customElements)return;["calcite-list-item-group"].forEach((t=>{if("calcite-list-item-group"===t)customElements.get(t)||customElements.define(t,l)}))}s();const d=l,u=s},64426:function(t,e,n){n.d(e,{I:function(){return w},c:function(){return g},d:function(){return v},u:function(){return u}});var i=n(77210);const o=/firefox/i.test(function(){if(!i.Z5.isBrowser)return"";const t=navigator.userAgentData;return t?.brands?t.brands.map((({brand:t,version:e})=>`${t}/${e}`)).join(" "):navigator.userAgent}()),r=o?new WeakMap:null;function c(){const{disabled:t}=this;t||HTMLElement.prototype.click.call(this)}function a(t){const e=t.target;if(o&&!r.get(e))return;const{disabled:n}=e;n&&t.preventDefault()}const l=["mousedown","mouseup","click"];function s(t){const e=t.target;o&&!r.get(e)||e.disabled&&(t.stopImmediatePropagation(),t.preventDefault())}const d={capture:!0};function u(t){if(t.disabled)return t.el.setAttribute("aria-disabled","true"),t.el.contains(document.activeElement)&&document.activeElement.blur(),void f(t);m(t),t.el.removeAttribute("aria-disabled")}function f(t){if(t.el.click=c,o){const e=function(t){return t.el.parentElement||t.el}(t),n=r.get(t.el);return n!==e&&(p(n),r.set(t.el,e)),void h(r.get(t.el))}h(t.el)}function h(t){t&&(t.addEventListener("pointerdown",a,d),l.forEach((e=>t.addEventListener(e,s,d))))}function m(t){if(delete t.el.click,o)return p(r.get(t.el)),void r.delete(t.el);p(t.el)}function p(t){t&&(t.removeEventListener("pointerdown",a,d),l.forEach((e=>t.removeEventListener(e,s,d))))}function g(t){t.disabled&&o&&f(t)}function v(t){o&&m(t)}const b={container:"interaction-container"};function w({disabled:t},e){return(0,i.h)("div",{class:b.container,inert:t},...e)}},22562:function(t,e,n){n.d(e,{C:function(){return o},I:function(){return a},M:function(){return c},S:function(){return r},a:function(){return l},b:function(){return p},c:function(){return f},g:function(){return h},u:function(){return m}});var i=n(77210);const o={container:"container",containerHover:"container--hover",containerBorder:"container--border",containerBorderSelected:"container--border-selected",containerBorderUnselected:"container--border-unselected",contentContainer:"content-container",contentContainerSelectable:"content-container--selectable",contentContainerHasCenterContent:"content-container--has-center-content",nestedContainer:"nested-container",nestedContainerHidden:"nested-container--hidden",content:"content",customContent:"custom-content",actionsStart:"actions-start",contentStart:"content-start",label:"label",description:"description",contentEnd:"content-end",contentBottom:"content-bottom",actionsEnd:"actions-end",selectionContainer:"selection-container",selectionContainerSingle:"selection-container--single",openContainer:"open-container",dragContainer:"drag-container"},r={actionsStart:"actions-start",contentStart:"content-start",content:"content",contentBottom:"content-bottom",contentEnd:"content-end",actionsEnd:"actions-end"},c=0,a={selectedMultiple:"check-square-f",selectedSingle:"bullet-point-large",unselectedMultiple:"square",unselectedSingle:"bullet-point-large",closedLTR:"chevron-right",closedRTL:"chevron-left",open:"chevron-down",blank:"blank",close:"x"},l="data-test-active",s="calcite-list",d="calcite-list-item-group",u="calcite-list-item";function f(t){return Array.from(t.assignedElements({flatten:!0}).filter((t=>t.matches(s))))}function h(t){const e=t.assignedElements({flatten:!0}),n=e.filter((t=>t?.matches(d))).map((t=>Array.from(t.querySelectorAll(u)))).reduce(((t,e)=>[...t,...e]),[]),i=e.filter((t=>t?.matches(u)));return[...e.filter((t=>t?.matches(s))).map((t=>Array.from(t.querySelectorAll(u)))).reduce(((t,e)=>[...t,...e]),[]),...n,...i]}function m(t){t.forEach((e=>{e.setPosition=t.indexOf(e)+1,e.setSize=t.length}))}function p(t,e=!1){if(!i.Z5.isBrowser)return 0;const n=e?"ancestor::calcite-list-item | ancestor::calcite-list-item-group":"ancestor::calcite-list-item";return document.evaluate(n,t,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotLength}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/4950.e55f107e3b030ac9062c.js.LICENSE.txt b/docs/sentinel1-explorer/4950.e55f107e3b030ac9062c.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/4950.e55f107e3b030ac9062c.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/5007.7b2144e90bca19e6150d.js b/docs/sentinel1-explorer/5007.7b2144e90bca19e6150d.js new file mode 100644 index 00000000..63a32d22 --- /dev/null +++ b/docs/sentinel1-explorer/5007.7b2144e90bca19e6150d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5007],{15007:function(e,t,n){n.r(t),n.d(t,{registerFunctions:function(){return v}});var a=n(78053),i=n(58780),r=n(19249),s=n(7182),l=n(94634),o=n(33455),u=n(88009),f=n(58830),c=n(94837),d=n(86727),m=n(45712),y=n(62700),h=n(2441),p=n(81273),w=n(40581),g=n(20155),F=n(7429),I=n(68673),D=n(62294),T=n(45573),b=n(78668),E=n(23709),x=n(12926),C=n(12512),N=n(93968);async function H(e,t,n){const a=e.getVariables();if(a.length>0){const i=[];for(let e=0;e{if((0,c.H)(l,1,2,t,n),(0,c.n)(l[0]))return"Unknown";if((0,c.m)(l[0]))return"Unknown";if((0,c.u)(l[0])){if(await l[0].load(),1===l.length||null===l[1])return l[0].datesInUnknownTimezone?$("unknown"):$(l[0].dateFieldsTimeZone);if(!(l[1]instanceof r.Z)||!1===l[1].hasField("type"))throw new s.aV(t,s.rH.InvalidParameter,n);const e=l[1].field("type");if(!1===(0,c.c)(e))throw new s.aV(t,s.rH.InvalidParameter,n);switch((0,c.j)(e).toLowerCase()){case"preferredtimezone":return $(l[0].preferredTimeZone);case"editfieldsinfo":return $(l[0].editFieldsInfo?.timeZone??null);case"timeinfo":return $(l[0].timeInfo?.timeZone??null);case"field":if(l[1].hasField("fieldname")&&(0,c.c)(l[1].field("fieldname")))return $(l[0].fieldTimeZone((0,c.j)(l[1].field("fieldname"))))}throw new s.aV(t,s.rH.InvalidParameter,n)}const o=(0,c.l)(l[0],(0,c.N)(t));if(null===o)return null;const u=o.timeZone;return"system"===u?a.iG.systemTimeZoneCanonicalName:"utc"===u.toLowerCase()?"UTC":"unknown"===u.toLowerCase()?"Unknown":u}))},e.functions.sqltimestamp=function(t,n){return e.standardFunctionAsync(t,n,(async(e,a,i)=>{(0,c.H)(i,1,3,t,n);const r=i[0];if((0,c.k)(r)){if(1===i.length)return r.toSQLWithKeyword();if(2===i.length)return r.changeTimeZone((0,c.j)(i[1])).toSQLWithKeyword();throw new s.aV(t,s.rH.InvalidParameter,n)}if((0,c.m)(r))return r.toSQLWithKeyword();if((0,c.u)(r)){if(3!==i.length)throw new s.aV(t,s.rH.InvalidParameter,n);await r.load();const e=(0,c.j)(i[1]);if((0,c.m)(i[2]))return i[2].toSQLWithKeyword();if(!1===(0,c.k)(i[2]))throw new s.aV(t,s.rH.InvalidParameter,n);const a=r.fieldTimeZone(e);return null===a?i[2].toSQLWithKeyword():i[2].changeTimeZone(a).toSQLWithKeyword()}throw new s.aV(t,s.rH.InvalidParameter,n)}))},e.signatures.push({name:"sqltimestamp",min:2,max:4}),e.functions.featuresetbyid=function(t,n){return e.standardFunctionAsync(t,n,((e,a,i)=>{if((0,c.H)(i,2,4,t,n),i[0]instanceof o.Z){const e=(0,c.j)(i[1]);let a=(0,c.K)(i[2],null);const r=(0,c.h)((0,c.K)(i[3],!0));if(null===a&&(a=["*"]),!1===(0,c.o)(a))throw new s.aV(t,s.rH.InvalidParameter,n);return i[0].featureSetById(e,r,a)}throw new s.aV(t,s.rH.InvalidParameter,n)}))},e.signatures.push({name:"featuresetbyid",min:2,max:4}),e.functions.getfeatureset=function(t,n){return e.standardFunctionAsync(t,n,((e,a,i)=>{if((0,c.H)(i,1,2,t,n),(0,c.r)(i[0])){let e=(0,c.K)(i[1],"datasource");return null===e&&(e="datasource"),e=(0,c.j)(e).toLowerCase(),(0,u.convertToFeatureSet)(i[0].fullSchema(),e,t.lrucache,t.interceptor,t.spatialReference)}throw new s.aV(t,s.rH.InvalidParameter,n)}))},e.signatures.push({name:"getfeatureset",min:1,max:2}),e.functions.featuresetbyportalitem=function(t,n){return e.standardFunctionAsync(t,n,((e,a,r)=>{if((0,c.H)(r,2,5,t,n),null===r[0])throw new s.aV(t,s.rH.PortalRequired,n);if(r[0]instanceof i.Z){const e=(0,c.j)(r[1]),a=(0,c.j)(r[2]);let i=(0,c.K)(r[3],null);const l=(0,c.h)((0,c.K)(r[4],!0));if(null===i&&(i=["*"]),!1===(0,c.o)(i))throw new s.aV(t,s.rH.InvalidParameter,n);let o=null;return o=t.services?.portal?t.services.portal:N.Z.getDefault(),o=(0,d._)(r[0],o),(0,u.constructFeatureSetFromPortalItem)(e,a,t.spatialReference,i,l,o,t.lrucache,t.interceptor)}if(!1===(0,c.c)(r[0]))throw new s.aV(t,s.rH.PortalRequired,n);const l=(0,c.j)(r[0]),o=(0,c.j)(r[1]);let f=(0,c.K)(r[2],null);const m=(0,c.h)((0,c.K)(r[3],!0));if(null===f&&(f=["*"]),!1===(0,c.o)(f))throw new s.aV(t,s.rH.InvalidParameter,n);return(0,u.constructFeatureSetFromPortalItem)(l,o,t.spatialReference,f,m,t.services?.portal??N.Z.getDefault(),t.lrucache,t.interceptor)}))},e.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),e.functions.featuresetbyname=function(t,n){return e.standardFunctionAsync(t,n,((e,a,i)=>{if((0,c.H)(i,2,4,t,n),i[0]instanceof o.Z){const e=(0,c.j)(i[1]);let a=(0,c.K)(i[2],null);const r=(0,c.h)((0,c.K)(i[3],!0));if(null===a&&(a=["*"]),!1===(0,c.o)(a))throw new s.aV(t,s.rH.InvalidParameter,n);return i[0].featureSetByName(e,r,a)}throw new s.aV(t,s.rH.InvalidParameter,n)}))},e.signatures.push({name:"featuresetbyname",min:2,max:4}),e.functions.featureset=function(t,n){return e.standardFunction(t,n,((e,a,i)=>{(0,c.H)(i,1,1,t,n);let l=i[0];const o={layerDefinition:{geometryType:"",objectIdField:"",hasM:!1,hasZ:!1,globalIdField:"",typeIdField:"",fields:[]},featureSet:{geometryType:"",features:[]}};if((0,c.c)(l))l=JSON.parse(l),void 0!==l.layerDefinition?(o.layerDefinition=l.layerDefinition,o.featureSet=l.featureSet,l.layerDefinition.spatialReference&&(o.layerDefinition.spatialReference=l.layerDefinition.spatialReference)):(o.featureSet.features=l.features,o.featureSet.geometryType=l.geometryType,o.layerDefinition.geometryType=o.featureSet.geometryType,o.layerDefinition.objectIdField=l.objectIdFieldName??"",o.layerDefinition.typeIdField=l.typeIdFieldName,o.layerDefinition.globalIdField=l.globalIdFieldName,o.layerDefinition.fields=l.fields,l.spatialReference&&(o.layerDefinition.spatialReference=l.spatialReference));else{if(!(i[0]instanceof r.Z))throw new s.aV(t,s.rH.InvalidParameter,n);{l=JSON.parse(i[0].castToText(!0));const e=S(l,"layerdefinition");if(null!==e){o.layerDefinition.geometryType=S(e,"geometrytype",""),o.featureSet.geometryType=o.layerDefinition.geometryType,o.layerDefinition.globalIdField=S(e,"globalidfield",""),o.layerDefinition.objectIdField=S(e,"objectidfield",""),o.layerDefinition.typeIdField=S(e,"typeidfield",""),o.layerDefinition.hasZ=!0===S(e,"hasz",!1),o.layerDefinition.hasM=!0===S(e,"hasm",!1);const t=S(e,"spatialreference",null);t&&(o.layerDefinition.spatialReference=Z(t));for(const t of S(e,"fields",[])){const e={name:S(t,"name",""),alias:S(t,"alias",""),type:S(t,"type",""),nullable:S(t,"nullable",!0),editable:S(t,"editable",!0),length:S(t,"length",null),domain:A(S(t,"domain"))};o.layerDefinition.fields.push(e)}const n=S(l,"featureset",null);if(n){const e={};for(const t of o.layerDefinition.fields)e[t.name.toLowerCase()]=t.name;for(const t of S(n,"features",[])){const n={},a=S(t,"attributes",{});for(const t in a)n[e[t.toLowerCase()]]=a[t];o.featureSet.features.push({attributes:n,geometry:L(S(t,"geometry",null))})}}}else{o.layerDefinition.hasZ=!0===S(l,"hasz",!1),o.layerDefinition.hasM=!0===S(l,"hasm",!1),o.layerDefinition.geometryType=S(l,"geometrytype",""),o.featureSet.geometryType=o.layerDefinition.geometryType,o.layerDefinition.objectIdField=S(l,"objectidfieldname",""),o.layerDefinition.typeIdField=S(l,"typeidfieldname","");const e=S(l,"spatialreference",null);e&&(o.layerDefinition.spatialReference=Z(e));let t=S(l,"fields",null);if((0,c.o)(t))for(const e of t){const t={name:S(e,"name",""),alias:S(e,"alias",""),type:S(e,"type",""),nullable:S(e,"nullable",!0),editable:S(e,"editable",!0),length:S(e,"length",null),domain:A(S(e,"domain"))};o.layerDefinition.fields.push(t)}else t=null,o.layerDefinition.fields=t;const n={};for(const e of o.layerDefinition.fields)n[e.name.toLowerCase()]=e.name;let a=S(l,"features",null);if((0,c.o)(a))for(const e of a){const t={},a=S(e,"attributes",{});for(const e in a)t[n[e.toLowerCase()]]=a[e];o.featureSet.features.push({attributes:t,geometry:L(S(e,"geometry",null))})}else a=null,o.featureSet.features=a}}}if(!1===function(e){return!!e.layerDefinition&&!!e.featureSet&&!1!==function(e,t){for(const n of t)if(n===e)return!0;return!1}(e.layerDefinition.geometryType,["",null,"esriGeometryNull","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&!1!==(0,c.o)(e.layerDefinition.fields)&&!1!==(0,c.o)(e.featureSet.features)}(o))throw new s.aV(t,s.rH.InvalidParameter,n);return o.layerDefinition.geometryType||(o.layerDefinition.geometryType="esriGeometryNull"),g.Z.create(o,t.spatialReference)}))},e.signatures.push({name:"featureset",min:1,max:1}),e.functions.filter=function(t,n){return e.standardFunctionAsync(t,n,(async(a,i,r)=>{if((0,c.H)(r,2,2,t,n),(0,c.o)(r[0])||(0,c.q)(r[0])){const e=[];let a=r[0];a instanceof f.Z&&(a=a.toArray());let i=null;if(!(0,c.i)(r[1]))throw new s.aV(t,s.rH.InvalidParameter,n);i=r[1].createFunction(t);for(const t of a){const n=i(t);(0,b.y8)(n)?!0===await n&&e.push(t):!0===n&&e.push(t)}return e}if((0,c.u)(r[0])){const n=await r[0].load(),a=E.WhereClause.create(r[1],n.getFieldsIndex(),n.dateFieldsTimeZoneDefaultUTC),i=a.getVariables();if(i.length>0){const n=[];for(let a=0;a{if((0,c.H)(i,2,2,t,n),(0,c.u)(i[0])){const e=new F.Z(i[1]);return new h.Z({parentfeatureset:i[0],orderbyclause:e})}throw new s.aV(t,s.rH.InvalidParameter,n)}))},e.signatures.push({name:"orderby",min:2,max:2}),e.functions.top=function(t,n){return e.standardFunctionAsync(t,n,(async(e,a,i)=>{if((0,c.H)(i,2,2,t,n),(0,c.u)(i[0]))return new p.Z({parentfeatureset:i[0],topnum:i[1]});if((0,c.o)(i[0]))return(0,c.g)(i[1])>=i[0].length?i[0].slice(0):i[0].slice(0,(0,c.g)(i[1]));if((0,c.q)(i[0]))return(0,c.g)(i[1])>=i[0].length()?i[0].slice(0):i[0].slice(0,(0,c.g)(i[1]));throw new s.aV(t,s.rH.InvalidParameter,n)}))},e.signatures.push({name:"top",min:2,max:2}),e.functions.first=function(t,n){return e.standardFunctionAsync(t,n,(async(e,a,i)=>{if((0,c.H)(i,1,1,t,n),(0,c.u)(i[0])){const n=await i[0].first(e.abortSignal);if(null!==n){const e=l.Z.createFromGraphicLikeObject(n.geometry,n.attributes,i[0],t.timeZone);return e._underlyingGraphic=n,e}return n}return(0,c.o)(i[0])?0===i[0].length?null:i[0][0]:(0,c.q)(i[0])?0===i[0].length()?null:i[0].get(0):null}))},e.signatures.push({name:"first",min:1,max:1}),e.functions.attachments=function(t,n){return e.standardFunctionAsync(t,n,(async(e,a,i)=>{(0,c.H)(i,1,2,t,n);const l={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(i.length>1)if(i[1]instanceof r.Z){if(i[1].hasField("minsize")&&(l.minsize=(0,c.g)(i[1].field("minsize"))),i[1].hasField("metadata")&&(l.returnMetadata=(0,c.h)(i[1].field("metadata"))),i[1].hasField("maxsize")&&(l.maxsize=(0,c.g)(i[1].field("maxsize"))),i[1].hasField("types")){const e=(0,c.a3)(i[1].field("types"),!1);e.length>0&&(l.types=e)}}else if(null!==i[1])throw new s.aV(t,s.rH.InvalidParameter,n);if((0,c.r)(i[0])){let e=i[0]._layer;return e instanceof x.default&&(e=(0,u.constructFeatureSet)(e,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)),null===e||!1===(0,c.u)(e)?[]:(await e.load(),e.queryAttachments(i[0].field(e.objectIdField),l.minsize,l.maxsize,l.types,l.returnMetadata))}if(null===i[0])return[];throw new s.aV(t,s.rH.InvalidParameter,n)}))},e.signatures.push({name:"attachments",min:1,max:2}),e.functions.featuresetbyrelationshipname=function(t,n){return e.standardFunctionAsync(t,n,(async(e,a,i)=>{(0,c.H)(i,2,4,t,n);const r=i[0],l=(0,c.j)(i[1]);let o=(0,c.K)(i[2],null);const f=(0,c.h)((0,c.K)(i[3],!0));if(null===o&&(o=["*"]),!1===(0,c.o)(o))throw new s.aV(t,s.rH.InvalidParameter,n);if(null===i[0])return null;if(!(0,c.r)(i[0]))throw new s.aV(t,s.rH.InvalidParameter,n);let d=r._layer;if(d instanceof x.default&&(d=(0,u.constructFeatureSet)(d,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)),null===d)return null;if(!1===(0,c.u)(d))return null;d=await d.load();const m=d.relationshipMetaData().filter((e=>e.name===l));if(0===m.length)return null;if(void 0!==m[0].relationshipTableId&&null!==m[0].relationshipTableId&&m[0].relationshipTableId>-1)return(0,u.constructFeatureSetFromRelationship)(d,m[0],r.field(d.objectIdField),d.spatialReference,o,f,t.lrucache,t.interceptor);let y=d.serviceUrl();if(!y)return null;y="/"===y.charAt(y.length-1)?y+m[0].relatedTableId.toString():y+"/"+m[0].relatedTableId.toString();const h=await(0,u.constructFeatureSetFromUrl)(y,d.spatialReference,o,f,t.lrucache,t.interceptor);await h.load();let p=h.relationshipMetaData();if(p=p.filter((e=>e.id===m[0].id)),!1===r.hasField(m[0].keyField)||null===r.field(m[0].keyField)){const e=await d.getFeatureByObjectId(r.field(d.objectIdField),[m[0].keyField]);if(e){const t=E.WhereClause.create(p[0].keyField+"= @id",h.getFieldsIndex(),h.dateFieldsTimeZoneDefaultUTC);return t.parameters={id:e.attributes[m[0].keyField]},h.filter(t)}return new w.Z({parentfeatureset:h})}const g=E.WhereClause.create(p[0].keyField+"= @id",h.getFieldsIndex(),h.dateFieldsTimeZoneDefaultUTC);return g.parameters={id:r.field(m[0].keyField)},h.filter(g)}))},e.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),e.functions.featuresetbyassociation=function(t,n){return e.standardFunctionAsync(t,n,(async(e,a,i)=>{(0,c.H)(i,2,3,t,n);const r=i[0],l=(0,c.j)((0,c.K)(i[1],"")).toLowerCase(),o=(0,c.c)(i[2])?(0,c.j)(i[2]):null;if(null===i[0])return null;if(!(0,c.r)(i[0]))throw new s.aV(t,s.rH.InvalidParameter,n);let f=r._layer;if(f instanceof x.default&&(f=(0,u.constructFeatureSet)(f,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)),null===f)return null;if(!1===(0,c.u)(f))return null;await f.load();const d=f.serviceUrl(),y=await(0,u.constructAssociationMetaDataFeatureSetFromUrl)(d,t.spatialReference);let h=null,p=null,w=!1;if(null!==o&&""!==o&&void 0!==o){for(const e of y.terminals)e.terminalName===o&&(p=e.terminalId);null===p&&(w=!0)}const g=y.associations.getFieldsIndex(),F=g.get("TOGLOBALID").name,D=g.get("FROMGLOBALID").name,T=g.get("TOTERMINALID").name,b=g.get("FROMTERMINALID").name,N=g.get("FROMNETWORKSOURCEID").name,H=g.get("TONETWORKSOURCEID").name,S=g.get("ASSOCIATIONTYPE").name,A=g.get("ISCONTENTVISIBLE").name,Z=g.get("OBJECTID").name;for(const e of f.fields)if("global-id"===e.type){h=r.field(e.name);break}let L=null,$=new m.yN(new C.Z({name:"percentalong",alias:"percentalong",type:"double"}),E.WhereClause.create("0",y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC)),v=new m.yN(new C.Z({name:"side",alias:"side",type:"string"}),E.WhereClause.create("''",y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC));const P="globalid",V="globalId",W={};for(const e in y.lkp)W[e]=y.lkp[e].sourceId;const k=new m.TO(new C.Z({name:"classname",alias:"classname",type:"string"}),null,W);let U="";switch(l){case"midspan":{U=`((${F}='${h}') OR ( ${D}='${h}')) AND (${S} IN (5))`,k.codefield=E.WhereClause.create(`CASE WHEN (${F}='${h}') THEN ${N} ELSE ${H} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC);const e=(0,I.JW)(m.Xx.findField(y.associations.fields,D));e.name=P,e.alias=P,L=new m.yN(e,E.WhereClause.create(`CASE WHEN (${D}='${h}') THEN ${F} ELSE ${D} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC)),$=y.unVersion>=4?new m.$X(m.Xx.findField(y.associations.fields,g.get("PERCENTALONG").name)):new m.yN(new C.Z({name:"percentalong",alias:"percentalong",type:"double"}),E.WhereClause.create("0",y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC));break}case"junctionedge":{U=`((${F}='${h}') OR ( ${D}='${h}')) AND (${S} IN (4,6))`,k.codefield=E.WhereClause.create(`CASE WHEN (${F}='${h}') THEN ${N} ELSE ${H} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC);const e=(0,I.JW)(m.Xx.findField(y.associations.fields,D));e.name=P,e.alias=P,L=new m.yN(e,E.WhereClause.create(`CASE WHEN (${D}='${h}') THEN ${F} ELSE ${D} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC)),v=new m.yN(new C.Z({name:"side",alias:"side",type:"string"}),E.WhereClause.create(`CASE WHEN (${S}=4) THEN 'from' ELSE 'to' END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC));break}case"connected":{let e=`${F}='@T'`,t=`${D}='@T'`;null!==p&&(e+=` AND ${T}=@A`,t+=` AND ${b}=@A`),U="(("+e+") OR ("+t+"))",U=(0,c.T)(U,"@T",h??""),e=(0,c.T)(e,"@T",h??""),null!==p&&(e=(0,c.T)(e,"@A",p.toString()),U=(0,c.T)(U,"@A",p.toString())),k.codefield=E.WhereClause.create("CASE WHEN "+e+` THEN ${N} ELSE ${H} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC);const n=(0,I.JW)(m.Xx.findField(y.associations.fields,D));n.name=P,n.alias=P,L=new m.yN(n,E.WhereClause.create("CASE WHEN "+e+` THEN ${D} ELSE ${F} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC));break}case"container":U=`${F}='${h}' AND ${S} = 2`,null!==p&&(U+=` AND ${T} = `+p.toString()),k.codefield=N,U="( "+U+" )",L=new m.QP(m.Xx.findField(y.associations.fields,D),P,P);break;case"content":U=`(${D}='${h}' AND ${S} = 2)`,null!==p&&(U+=` AND ${b} = `+p.toString()),k.codefield=H,U="( "+U+" )",L=new m.QP(m.Xx.findField(y.associations.fields,F),P,P);break;case"structure":U=`(${F}='${h}' AND ${S} = 3)`,null!==p&&(U+=` AND ${T} = `+p.toString()),k.codefield=N,U="( "+U+" )",L=new m.QP(m.Xx.findField(y.associations.fields,D),P,V);break;case"attached":U=`(${D}='${h}' AND ${S} = 3)`,null!==p&&(U+=` AND ${b} = `+p.toString()),k.codefield=H,U="( "+U+" )",L=new m.QP(m.Xx.findField(y.associations.fields,F),P,V);break;default:throw new s.aV(t,s.rH.InvalidParameter,n)}return w&&(U="1 <> 1"),new m.Xx({parentfeatureset:y.associations,adaptedFields:[new m.$X(m.Xx.findField(y.associations.fields,Z)),new m.$X(m.Xx.findField(y.associations.fields,A)),L,v,k,$],extraFilter:U?E.WhereClause.create(U,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC):null})}))},e.signatures.push({name:"featuresetbyassociation",min:2,max:6}),e.functions.groupby=function(t,n){return e.standardFunctionAsync(t,n,(async(a,i,l)=>{if((0,c.H)(l,3,3,t,n),!(0,c.u)(l[0]))throw new s.aV(t,s.rH.InvalidParameter,n);const o=await l[0].load(),u=[],f=[];let d=!1,m=[];if((0,c.c)(l[1]))m.push(l[1]);else if(l[1]instanceof r.Z)m.push(l[1]);else if((0,c.o)(l[1]))m=l[1];else{if(!(0,c.q)(l[1]))throw new s.aV(t,s.rH.InvalidParameter,n);m=l[1].toArray()}for(const e of m)if((0,c.c)(e)){const t=E.WhereClause.create((0,c.j)(e),o.getFieldsIndex(),o.dateFieldsTimeZoneDefaultUTC),n=!0===(0,D.y5)(t)?(0,c.j)(e):"%%%%FIELDNAME";u.push({name:n,expression:t}),"%%%%FIELDNAME"===n&&(d=!0)}else{if(!(e instanceof r.Z))throw new s.aV(t,s.rH.InvalidParameter,n);{const a=e.hasField("name")?e.field("name"):"%%%%FIELDNAME",i=e.hasField("expression")?e.field("expression"):"";if("%%%%FIELDNAME"===a&&(d=!0),!a)throw new s.aV(t,s.rH.InvalidParameter,n);u.push({name:a,expression:E.WhereClause.create(i||a,o.getFieldsIndex(),o.dateFieldsTimeZoneDefaultUTC)})}}if(m=[],(0,c.c)(l[2]))m.push(l[2]);else if((0,c.o)(l[2]))m=l[2];else if((0,c.q)(l[2]))m=l[2].toArray();else{if(!(l[2]instanceof r.Z))throw new s.aV(t,s.rH.InvalidParameter,n);m.push(l[2])}for(const e of m){if(!(e instanceof r.Z))throw new s.aV(t,s.rH.InvalidParameter,n);{const a=e.hasField("name")?e.field("name"):"",i=e.hasField("statistic")?e.field("statistic"):"",r=e.hasField("expression")?e.field("expression"):"";if(!a||!i||!r)throw new s.aV(t,s.rH.InvalidParameter,n);f.push({name:a,statistic:i.toLowerCase(),expression:E.WhereClause.create(r,o.getFieldsIndex(),o.dateFieldsTimeZoneDefaultUTC)})}}if(d){const e={};for(const t of o.fields)e[t.name.toLowerCase()]=1;for(const t of u)"%%%%FIELDNAME"!==t.name&&(e[t.name.toLowerCase()]=1);for(const t of f)"%%%%FIELDNAME"!==t.name&&(e[t.name.toLowerCase()]=1);let t=0;for(const n of u)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const n of u)await H(n.expression,e,t);for(const n of f)await H(n.expression,e,t);return l[0].groupby(u,f)}))},e.signatures.push({name:"groupby",min:3,max:3}),e.functions.distinct=function(t,n){return e.standardFunctionAsync(t,n,(async(a,i,l)=>{if((0,c.u)(l[0])){(0,c.H)(l,2,2,t,n);const a=await l[0].load(),i=[];let o=[];if((0,c.c)(l[1]))o.push(l[1]);else if(l[1]instanceof r.Z)o.push(l[1]);else if((0,c.o)(l[1]))o=l[1];else{if(!(0,c.q)(l[1]))throw new s.aV(t,s.rH.InvalidParameter,n);o=l[1].toArray()}let u=!1;for(const e of o)if((0,c.c)(e)){const t=E.WhereClause.create((0,c.j)(e),a.getFieldsIndex(),a.dateFieldsTimeZoneDefaultUTC),n=!0===(0,D.y5)(t)?(0,c.j)(e):"%%%%FIELDNAME";i.push({name:n,expression:t}),"%%%%FIELDNAME"===n&&(u=!0)}else{if(!(e instanceof r.Z))throw new s.aV(t,s.rH.InvalidParameter,n);{const r=e.hasField("name")?e.field("name"):"%%%%FIELDNAME",l=e.hasField("expression")?e.field("expression"):"";if("%%%%FIELDNAME"===r&&(u=!0),!r)throw new s.aV(t,s.rH.InvalidParameter,n);i.push({name:r,expression:E.WhereClause.create(l||r,a.getFieldsIndex(),a.dateFieldsTimeZoneDefaultUTC)})}}if(u){const e={};for(const t of a.fields)e[t.name.toLowerCase()]=1;for(const t of i)"%%%%FIELDNAME"!==t.name&&(e[t.name.toLowerCase()]=1);let t=0;for(const n of i)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const n of i)await H(n.expression,e,t);return l[0].groupby(i,[])}return function(e,t,n,a){if(1===a.length){if((0,c.o)(a[0]))return(0,T.t)(e,a[0],-1);if((0,c.q)(a[0]))return(0,T.t)(e,a[0].toArray(),-1)}return(0,T.t)(e,a,-1)}("distinct",0,0,l)}))}),e.functions.getfeaturesetinfo=function(t,n){return e.standardFunctionAsync(t,n,(async(e,a,i)=>{if((0,c.H)(i,1,1,t,n),!(0,c.u)(i[0]))return null;const s=await i[0].getFeatureSetInfo();return s?r.Z.convertObjectToArcadeDictionary({layerId:s.layerId,layerName:s.layerName,itemId:s.itemId,serviceLayerUrl:s.serviceLayerUrl,webMapLayerId:s.webMapLayerId??null,webMapLayerTitle:s.webMapLayerTitle??null,className:null,objectClassId:null},(0,c.N)(t),!1,!1):null}))},e.signatures.push({name:"getfeaturesetinfo",min:1,max:1}),e.functions.filterbysubtypecode=function(t,n){return e.standardFunctionAsync(t,n,(async(e,a,i)=>{if((0,c.H)(i,2,2,t,n),(0,c.u)(i[0])){const e=await i[0].load(),a=i[1];if(!(0,c.O)(a))throw new s.aV(t,s.rH.InvalidParameter,n);if(e.subtypeField){const t=E.WhereClause.create(`${e.subtypeField}= ${i[1]}`,e.getFieldsIndex(),e.dateFieldsTimeZoneDefaultUTC);return new y.Z({parentfeatureset:i[0],whereclause:t})}if(null===e.typeIdField||""===e.typeIdField)throw new s.aV(t,s.rH.FeatureSetDoesNotHaveSubtypes,n);const r=E.WhereClause.create(`${e.typeIdField}= ${i[1]}`,e.getFieldsIndex(),e.dateFieldsTimeZoneDefaultUTC);return new y.Z({parentfeatureset:i[0],whereclause:r})}throw new s.aV(t,s.rH.InvalidParameter,n)}))},e.signatures.push({name:"filterbysubtypecode",min:2,max:2})}},86727:function(e,t,n){n.d(t,{_:function(){return i}});var a=n(93968);function i(e,t){return null===e?t:new a.Z({url:e.field("url")})}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5009.3125db46ece0fdb909bf.js b/docs/sentinel1-explorer/5009.3125db46ece0fdb909bf.js new file mode 100644 index 00000000..4d045ad7 --- /dev/null +++ b/docs/sentinel1-explorer/5009.3125db46ece0fdb909bf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5009],{35009:function(e,t,n){n.d(t,{previewWebStyleSymbol:function(){return r}});var i=n(66341),h=n(95550),a=n(83773),l=n(59672);function r(e,t,n){const r=e.thumbnail&&e.thumbnail.url;return r?(0,i.Z)(r,{responseType:"image"}).then((e=>{const t=function(e,t){const n=!/\\.svg$/i.test(e.src)&&t&&t.disableUpsampling,i=Math.max(e.width,e.height);let l=null!=t?.maxSize?(0,h.F2)(t.maxSize):a.b_.maxSize;n&&(l=Math.min(i,l));const r="number"==typeof t?.size?t?.size:null,s=Math.min(l,null!=r?(0,h.F2)(r):i);if(s!==i){const t=0!==e.width&&0!==e.height?e.width/e.height:1;t>=1?(e.width=s,e.height=s/t):(e.width=s*t,e.height=s)}return e}(e.data,n);return n?.node?(n.node.appendChild(t),n.node):t})):(0,l.Q8)(e).then((e=>e?t(e,n):null))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5027.0bd38c8543c99dece676.js b/docs/sentinel1-explorer/5027.0bd38c8543c99dece676.js new file mode 100644 index 00000000..a05792df --- /dev/null +++ b/docs/sentinel1-explorer/5027.0bd38c8543c99dece676.js @@ -0,0 +1,2 @@ +/*! For license information please see 5027.0bd38c8543c99dece676.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5027],{95027:function(e,n,r){r.r(n),r.d(n,{CalciteInput:function(){return u},defineCustomElement:function(){return p}});var t=r(70069);const u=t.I,p=t.d}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5027.0bd38c8543c99dece676.js.LICENSE.txt b/docs/sentinel1-explorer/5027.0bd38c8543c99dece676.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/5027.0bd38c8543c99dece676.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/5048.893fe04d03a08ef6d2fc.js b/docs/sentinel1-explorer/5048.893fe04d03a08ef6d2fc.js new file mode 100644 index 00000000..6722ecac --- /dev/null +++ b/docs/sentinel1-explorer/5048.893fe04d03a08ef6d2fc.js @@ -0,0 +1,2 @@ +/*! For license information please see 5048.893fe04d03a08ef6d2fc.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5048],{25048:function(t,e,a){a.r(e),a.d(e,{CalciteButton:function(){return O},defineCustomElement:function(){return S}});var n=a(77210),o=a(89055),r=a(64426),i=a(81629),c=a(16265),l=a(19417),s=a(85545),d=a(90326),h=a(53801),u=a(79145),p=a(44586),b=a(92708);const v="calcite-button--loader",g="content",f="content--slotted",m="icon",k="icon--start",x="icon--end",w="loading-in",y="loading-out",z="icon-start-empty",_="icon-end-empty",C="button-padding",E="button-padding--shrunk",L=(0,n.GH)(class extends n.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.mutationObserver=(0,s.c)("mutation",(()=>this.updateHasContent())),this.resizeObserver=(0,s.c)("resize",(()=>this.setTooltipText())),this.handleClick=()=>{const{type:t}=this;this.href||("submit"===t?(0,o.s)(this):"reset"===t&&(0,o.r)(this))},this.setTooltipText=()=>{const{contentEl:t}=this;t&&(this.tooltipText=t.offsetWidth{this.childEl=t,t&&this.resizeObserver?.observe(t)},this.alignment="center",this.appearance="solid",this.label=void 0,this.kind="brand",this.disabled=!1,this.form=void 0,this.href=void 0,this.iconEnd=void 0,this.iconFlipRtl=void 0,this.iconStart=void 0,this.loading=!1,this.name=void 0,this.rel=void 0,this.round=!1,this.scale="m",this.splitChild=!1,this.target=void 0,this.type="button",this.width="auto",this.messages=void 0,this.messageOverrides=void 0,this.hasContent=!1,this.hasLoader=!1,this.effectiveLocale="",this.defaultMessages=void 0,this.tooltipText=void 0}handleGlobalAttributesChanged(){(0,n.xE)(this)}loadingChanged(t,e){t&&!e&&(this.hasLoader=!0),!t&&e&&window.setTimeout((()=>{this.hasLoader=!1}),300)}onMessagesChange(){}async connectedCallback(){(0,r.c)(this),(0,l.c)(this),(0,h.c)(this),this.hasLoader=this.loading,this.setupTextContentObserver(),(0,i.c)(this),this.formEl=(0,o.f)(this)}disconnectedCallback(){this.mutationObserver?.disconnect(),(0,r.d)(this),(0,i.d)(this),(0,l.d)(this),(0,h.d)(this),this.resizeObserver?.disconnect(),this.formEl=null}async componentWillLoad(){(0,c.s)(this),n.Z5.isBrowser&&(this.updateHasContent(),await(0,h.s)(this))}componentDidLoad(){(0,c.a)(this),this.setTooltipText()}componentDidRender(){(0,r.u)(this)}render(){const t=this.href?"a":"button",e=t,a=this.hasLoader?(0,n.h)("div",{class:v},(0,n.h)("calcite-loader",{class:this.loading?w:y,inline:!0,label:this.messages.loading,scale:"l"===this.scale?"m":"s"})):null,o=!this.iconStart&&!this.iconEnd,c=(0,n.h)("calcite-icon",{class:{[m]:!0,[k]:!0},flipRtl:"start"===this.iconFlipRtl||"both"===this.iconFlipRtl,icon:this.iconStart,scale:(0,d.g)(this.scale)}),l=(0,n.h)("calcite-icon",{class:{[m]:!0,[x]:!0},flipRtl:"end"===this.iconFlipRtl||"both"===this.iconFlipRtl,icon:this.iconEnd,scale:(0,d.g)(this.scale)}),s=(0,n.h)("span",{class:g,ref:t=>this.contentEl=t},(0,n.h)("slot",null));return(0,n.h)(r.I,{disabled:this.disabled},(0,n.h)(e,{"aria-disabled":"a"===t?(0,u.t)(this.disabled||this.loading):null,"aria-expanded":this.el.getAttribute("aria-expanded"),"aria-label":this.loading?this.messages.loading:(0,i.g)(this),"aria-live":"polite",class:{[C]:o,[E]:!o,[f]:this.hasContent,[z]:!this.iconStart,[_]:!this.iconEnd},disabled:"button"===t?this.disabled||this.loading:null,href:"a"===t&&this.href,name:"button"===t&&this.name,onClick:this.handleClick,rel:"a"===t&&this.rel,tabIndex:this.disabled?-1:null,target:"a"===t&&this.target,title:this.tooltipText,type:"button"===t&&this.type,ref:this.setChildEl},a,this.iconStart?c:null,this.hasContent?s:null,this.iconEnd?l:null))}async setFocus(){await(0,c.c)(this),this.childEl?.focus()}effectiveLocaleChange(){(0,h.u)(this,this.effectiveLocale)}updateHasContent(){const t=this.el.textContent.trim().length>0||this.el.childNodes.length>0;this.hasContent=1===this.el.childNodes.length&&"#text"===this.el.childNodes[0]?.nodeName?this.el.textContent?.trim().length>0:t}setupTextContentObserver(){this.mutationObserver?.observe(this.el,{childList:!0,subtree:!0})}onLabelClick(){this.handleClick(),this.setFocus()}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{"aria-expanded":["handleGlobalAttributesChanged"],loading:["loadingChanged"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:inline-block;inline-size:auto;vertical-align:middle}:host([round]){border-radius:50px}:host([round]) a,:host([round]) button{border-radius:50px}:host button,:host a{outline-color:transparent}:host button:focus,:host a:focus{outline:2px solid var(--calcite-ui-focus-color, var(--calcite-color-brand-hover, var(--calcite--color-brand)));outline-offset:calc(\n 2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-offset-invert-focus),\n 1\n )\n )\n )}:host button,:host a{--calcite-button-content-margin-internal:0.5rem;--calcite-button-padding-x-internal:7px;--calcite-button-padding-y-internal:3px;padding-block:var(--calcite-button-padding-y-internal);padding-inline:var(--calcite-button-padding-x-internal);position:relative;box-sizing:border-box;display:flex;block-size:100%;inline-size:100%;cursor:pointer;-webkit-user-select:none;user-select:none;appearance:none;align-items:center;justify-content:center;border-radius:0px;border-style:none;text-align:center;font-family:inherit;font-weight:var(--calcite-font-weight-normal);text-decoration-line:none;transition:color var(--calcite-animation-timing) ease-in-out, background-color var(--calcite-animation-timing) ease-in-out, box-shadow var(--calcite-animation-timing) ease-in-out, outline-color var(--calcite-internal-animation-timing-fast) ease-in-out}:host button:hover,:host a:hover{text-decoration-line:none}:host button span,:host a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content{margin-inline:var(--calcite-button-content-margin-internal)}.icon-start-empty .content{margin-inline-start:unset}.icon-end-empty .content{margin-inline-end:unset}:host([scale=m]) button,:host([scale=m]) a{--calcite-button-content-margin-internal:0.75rem}:host([scale=l]) button,:host([scale=l]) a{--calcite-button-content-margin-internal:1rem}:host([width=auto]){inline-size:auto}:host([width=half]){inline-size:50%}:host([width=full]){inline-size:100%}:host([alignment=center]:not([width=auto])) a,:host([alignment=center]:not([width=auto])) button{justify-content:center}:host([alignment=start]:not([width=auto])) a,:host([alignment=start]:not([width=auto])) button{justify-content:flex-start}:host([alignment=end]:not([width=auto])) a,:host([alignment=end]:not([width=auto])) button{justify-content:flex-end}:host([alignment*=space-between]:not([width=auto])) a,:host([alignment*=space-between]:not([width=auto])) button{justify-content:space-between}:host([alignment=icon-start-space-between]:not([width=auto])) .icon--start{margin-inline-end:auto}:host([alignment=icon-start-space-between]:not([width=auto])) a,:host([alignment=icon-start-space-between]:not([width=auto])) button{text-align:unset}:host([alignment=icon-end-space-between]:not([width=auto])) .icon--end{margin-inline-start:auto}:host([alignment=icon-end-space-between]:not([width=auto])) a,:host([alignment=icon-end-space-between]:not([width=auto])) button{text-align:unset}:host([alignment=center]) a:not(.content--slotted) .icon--start+.icon--end,:host([alignment=center]) button:not(.content--slotted) .icon--start+.icon--end{margin-inline-start:var(--calcite-button-content-margin-internal)}.icon{position:relative;margin:0px;display:inline-flex;font-weight:var(--calcite-font-weight-normal);line-height:inherit}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}@keyframes loader-in{0%{inline-size:0;opacity:0;transform:scale(0.5)}100%{inline-size:1em;opacity:1;transform:scale(1)}}@keyframes loader-out{0%{inline-size:1em;opacity:1;transform:scale(1)}100%{inline-size:0;opacity:0;transform:scale(0.5)}}.calcite-button--loader{display:flex}.calcite-button--loader calcite-loader{margin:0px;transition:inline-size var(--calcite-internal-animation-timing-slow) ease-in-out, opacity var(--calcite-internal-animation-timing-slow) ease-in-out, transform var(--calcite-internal-animation-timing-slow) ease-in-out}.calcite-button--loader calcite-loader.loading-in{animation-name:loader-in;animation-duration:var(--calcite-internal-animation-timing-slow)}.calcite-button--loader calcite-loader.loading-out{animation-name:loader-out;animation-duration:var(--calcite-internal-animation-timing-slow)}:host([loading]) button.content--slotted .calcite-button--loader calcite-loader,:host([loading]) a.content--slotted .calcite-button--loader calcite-loader{margin-inline-end:var(--calcite-button-content-margin-internal)}:host([loading]) button:not(.content--slotted) .icon--start,:host([loading]) button:not(.content--slotted) .icon--end,:host([loading]) a:not(.content--slotted) .icon--start,:host([loading]) a:not(.content--slotted) .icon--end{display:none}:host([appearance]) button,:host([appearance]) a{border-width:1px;border-style:solid;border-color:transparent}:host([kind=brand]) button,:host([kind=brand]) a{background-color:var(--calcite-color-brand);color:var(--calcite-color-text-inverse)}:host([kind=brand]) button:hover,:host([kind=brand]) button:focus,:host([kind=brand]) a:hover,:host([kind=brand]) a:focus{background-color:var(--calcite-color-brand-hover)}:host([kind=brand]) button:active,:host([kind=brand]) a:active{background-color:var(--calcite-color-brand-press)}:host([kind=brand]) button calcite-loader,:host([kind=brand]) a calcite-loader{color:var(--calcite-color-text-inverse)}:host([kind=danger]) button,:host([kind=danger]) a{background-color:var(--calcite-color-status-danger);color:var(--calcite-color-text-inverse)}:host([kind=danger]) button:hover,:host([kind=danger]) button:focus,:host([kind=danger]) a:hover,:host([kind=danger]) a:focus{background-color:var(--calcite-color-status-danger-hover)}:host([kind=danger]) button:active,:host([kind=danger]) a:active{background-color:var(--calcite-color-status-danger-press)}:host([kind=danger]) button calcite-loader,:host([kind=danger]) a calcite-loader{color:var(--calcite-color-text-inverse)}:host([kind=neutral]) button,:host([kind=neutral]) a{background-color:var(--calcite-color-foreground-3);color:var(--calcite-color-text-1)}:host([kind=neutral]) button:hover,:host([kind=neutral]) button:focus,:host([kind=neutral]) a:hover,:host([kind=neutral]) a:focus{background-color:var(--calcite-color-foreground-2)}:host([kind=neutral]) button:active,:host([kind=neutral]) a:active{background-color:var(--calcite-color-foreground-1)}:host([kind=neutral]) button calcite-loader,:host([kind=neutral]) a calcite-loader{color:var(--calcite-color-text-1)}:host([kind=inverse]) button,:host([kind=inverse]) a{color:var(--calcite-color-text-inverse);background-color:var(--calcite-color-inverse)}:host([kind=inverse]) button:hover,:host([kind=inverse]) button:focus,:host([kind=inverse]) a:hover,:host([kind=inverse]) a:focus{background-color:var(--calcite-color-inverse-hover)}:host([kind=inverse]) button:active,:host([kind=inverse]) a:active{background-color:var(--calcite-color-inverse-press)}:host([kind=inverse]) button calcite-loader,:host([kind=inverse]) a calcite-loader{color:var(--calcite-color-text-inverse)}:host([appearance=outline-fill]) button,:host([appearance=outline-fill]) a{border-width:1px;border-style:solid;background-color:var(--calcite-color-foreground-1);box-shadow:inset 0 0 0 1px transparent}:host([appearance=outline-fill][kind=brand]) button,:host([appearance=outline-fill][kind=brand]) a{border-color:var(--calcite-color-brand);background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-brand)}:host([appearance=outline-fill][kind=brand]) button:hover,:host([appearance=outline-fill][kind=brand]) a:hover{border-color:var(--calcite-color-brand-hover);color:var(--calcite-color-brand-hover);box-shadow:inset 0 0 0 1px var(--calcite-color-brand-hover)}:host([appearance=outline-fill][kind=brand]) button:focus,:host([appearance=outline-fill][kind=brand]) a:focus{border-color:var(--calcite-color-brand);color:var(--calcite-color-brand);box-shadow:inset 0 0 0 2px var(--calcite-color-brand)}:host([appearance=outline-fill][kind=brand]) button:active,:host([appearance=outline-fill][kind=brand]) a:active{border-color:var(--calcite-color-brand-press);color:var(--calcite-color-brand-press);box-shadow:inset 0 0 0 2px var(--calcite-color-brand-press)}:host([appearance=outline-fill][kind=brand]) button calcite-loader,:host([appearance=outline-fill][kind=brand]) a calcite-loader{color:var(--calcite-color-brand)}:host([appearance=outline-fill][kind=danger]) button,:host([appearance=outline-fill][kind=danger]) a{border-color:var(--calcite-color-status-danger);background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-status-danger)}:host([appearance=outline-fill][kind=danger]) button:hover,:host([appearance=outline-fill][kind=danger]) a:hover{border-color:var(--calcite-color-status-danger-hover);color:var(--calcite-color-status-danger-hover);box-shadow:inset 0 0 0 1px var(--calcite-color-status-danger-hover)}:host([appearance=outline-fill][kind=danger]) button:focus,:host([appearance=outline-fill][kind=danger]) a:focus{border-color:var(--calcite-color-status-danger);color:var(--calcite-color-status-danger);box-shadow:inset 0 0 0 2px var(--calcite-color-status-danger)}:host([appearance=outline-fill][kind=danger]) button:active,:host([appearance=outline-fill][kind=danger]) a:active{border-color:var(--calcite-color-status-danger-press);color:var(--calcite-color-status-danger-press);box-shadow:inset 0 0 0 2px var(--calcite-color-status-danger-press)}:host([appearance=outline-fill][kind=danger]) button calcite-loader,:host([appearance=outline-fill][kind=danger]) a calcite-loader{color:var(--calcite-color-status-danger)}:host([appearance=outline-fill][kind=neutral]) button,:host([appearance=outline-fill][kind=neutral]) a{background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-1);border-color:var(--calcite-color-border-1)}:host([appearance=outline-fill][kind=neutral]) button:hover,:host([appearance=outline-fill][kind=neutral]) a:hover{box-shadow:inset 0 0 0 1px var(--calcite-color-foreground-3)}:host([appearance=outline-fill][kind=neutral]) button:focus,:host([appearance=outline-fill][kind=neutral]) a:focus{box-shadow:inset 0 0 0 2px var(--calcite-color-foreground-3)}:host([appearance=outline-fill][kind=neutral]) button:active,:host([appearance=outline-fill][kind=neutral]) a:active{box-shadow:inset 0 0 0 2px var(--calcite-color-foreground-3)}:host([appearance=outline-fill][kind=neutral]) button calcite-loader,:host([appearance=outline-fill][kind=neutral]) a calcite-loader{color:var(--calcite-color-text-1)}:host([appearance=outline-fill][kind=inverse]) button,:host([appearance=outline-fill][kind=inverse]) a{background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-1);border-color:var(--calcite-color-inverse)}:host([appearance=outline-fill][kind=inverse]) button:hover,:host([appearance=outline-fill][kind=inverse]) a:hover{border-color:var(--calcite-color-inverse-hover);box-shadow:inset 0 0 0 1px var(--calcite-color-inverse-hover)}:host([appearance=outline-fill][kind=inverse]) button:focus,:host([appearance=outline-fill][kind=inverse]) a:focus{border-color:var(--calcite-color-inverse);box-shadow:inset 0 0 0 2px var(--calcite-color-inverse)}:host([appearance=outline-fill][kind=inverse]) button:active,:host([appearance=outline-fill][kind=inverse]) a:active{border-color:var(--calcite-color-inverse-press);box-shadow:inset 0 0 0 2px var(--calcite-color-inverse-press)}:host([appearance=outline-fill][kind=inverse]) button calcite-loader,:host([appearance=outline-fill][kind=inverse]) a calcite-loader{color:var(--calcite-color-text-1)}:host([appearance=outline]) button,:host([appearance=outline]) a{border-width:1px;border-style:solid;background-color:transparent;box-shadow:inset 0 0 0 1px transparent}:host([appearance=outline][kind=brand]) button,:host([appearance=outline][kind=brand]) a{border-color:var(--calcite-color-brand);background-color:transparent;color:var(--calcite-color-brand)}:host([appearance=outline][kind=brand]) button:hover,:host([appearance=outline][kind=brand]) a:hover{border-color:var(--calcite-color-brand-hover);color:var(--calcite-color-brand-hover);box-shadow:inset 0 0 0 1px var(--calcite-color-brand-hover)}:host([appearance=outline][kind=brand]) button:focus,:host([appearance=outline][kind=brand]) a:focus{border-color:var(--calcite-color-brand);color:var(--calcite-color-brand);box-shadow:inset 0 0 0 2px var(--calcite-color-brand)}:host([appearance=outline][kind=brand]) button:active,:host([appearance=outline][kind=brand]) a:active{border-color:var(--calcite-color-brand-press);color:var(--calcite-color-brand-press);box-shadow:inset 0 0 0 2px var(--calcite-color-brand-press)}:host([appearance=outline][kind=brand]) button calcite-loader,:host([appearance=outline][kind=brand]) a calcite-loader{color:var(--calcite-color-brand)}:host([appearance=outline][kind=danger]) button,:host([appearance=outline][kind=danger]) a{border-color:var(--calcite-color-status-danger);background-color:transparent;color:var(--calcite-color-status-danger)}:host([appearance=outline][kind=danger]) button:hover,:host([appearance=outline][kind=danger]) a:hover{border-color:var(--calcite-color-status-danger-hover);color:var(--calcite-color-status-danger-hover);box-shadow:inset 0 0 0 1px var(--calcite-color-status-danger-hover)}:host([appearance=outline][kind=danger]) button:focus,:host([appearance=outline][kind=danger]) a:focus{border-color:var(--calcite-color-status-danger);color:var(--calcite-color-status-danger);box-shadow:inset 0 0 0 2px var(--calcite-color-status-danger)}:host([appearance=outline][kind=danger]) button:active,:host([appearance=outline][kind=danger]) a:active{border-color:var(--calcite-color-status-danger-press);color:var(--calcite-color-status-danger-press);box-shadow:inset 0 0 0 2px var(--calcite-color-status-danger-press)}:host([appearance=outline][kind=danger]) button calcite-loader,:host([appearance=outline][kind=danger]) a calcite-loader{color:var(--calcite-color-status-danger)}:host([appearance=outline][kind=neutral]) button,:host([appearance=outline][kind=neutral]) a{background-color:transparent;color:var(--calcite-color-text-1);border-color:var(--calcite-color-border-1)}:host([appearance=outline][kind=neutral]) button:hover,:host([appearance=outline][kind=neutral]) a:hover{box-shadow:inset 0 0 0 1px var(--calcite-color-foreground-3)}:host([appearance=outline][kind=neutral]) button:focus,:host([appearance=outline][kind=neutral]) a:focus{box-shadow:inset 0 0 0 2px var(--calcite-color-foreground-3)}:host([appearance=outline][kind=neutral]) button:active,:host([appearance=outline][kind=neutral]) a:active{box-shadow:inset 0 0 0 2px var(--calcite-color-foreground-3)}:host([appearance=outline][kind=neutral]) button calcite-loader,:host([appearance=outline][kind=neutral]) a calcite-loader{color:var(--calcite-color-text-1)}:host([appearance=outline][kind=inverse]) button,:host([appearance=outline][kind=inverse]) a{background-color:transparent;color:var(--calcite-color-text-1);border-color:var(--calcite-color-inverse)}:host([appearance=outline][kind=inverse]) button:hover,:host([appearance=outline][kind=inverse]) a:hover{border-color:var(--calcite-color-inverse-hover);box-shadow:inset 0 0 0 1px var(--calcite-color-inverse-hover)}:host([appearance=outline][kind=inverse]) button:focus,:host([appearance=outline][kind=inverse]) a:focus{border-color:var(--calcite-color-inverse);box-shadow:inset 0 0 0 2px var(--calcite-color-inverse)}:host([appearance=outline][kind=inverse]) button:active,:host([appearance=outline][kind=inverse]) a:active{border-color:var(--calcite-color-inverse-press);box-shadow:inset 0 0 0 2px var(--calcite-color-inverse-press)}:host([appearance=outline][kind=inverse]) button calcite-loader,:host([appearance=outline][kind=inverse]) a calcite-loader{color:var(--calcite-color-text-1)}:host([appearance=outline-fill][split-child=primary]) button,:host([appearance=outline][split-child=primary]) button{border-inline-end-width:0;border-inline-start-width:1px}:host([appearance=outline-fill][split-child=secondary]) button,:host([appearance=outline][split-child=secondary]) button{border-inline-start-width:0;border-inline-end-width:1px}:host([appearance=transparent]:not(.enable-editing-button)) button,:host([appearance=transparent]:not(.enable-editing-button)) a{background-color:transparent}:host([appearance=transparent]:not(.enable-editing-button)) button:hover,:host([appearance=transparent]:not(.enable-editing-button)) button:focus,:host([appearance=transparent]:not(.enable-editing-button)) a:hover,:host([appearance=transparent]:not(.enable-editing-button)) a:focus{background-color:var(--calcite-color-transparent-hover)}:host([appearance=transparent]:not(.enable-editing-button)) button:active,:host([appearance=transparent]:not(.enable-editing-button)) a:active{background-color:var(--calcite-color-transparent-press)}:host([appearance=transparent][kind=brand]) button,:host([appearance=transparent][kind=brand]) a{color:var(--calcite-color-brand)}:host([appearance=transparent][kind=brand]) button:hover,:host([appearance=transparent][kind=brand]) a:hover{color:var(--calcite-color-brand-hover)}:host([appearance=transparent][kind=brand]) button:focus,:host([appearance=transparent][kind=brand]) a:focus{color:var(--calcite-color-brand)}:host([appearance=transparent][kind=brand]) button:active,:host([appearance=transparent][kind=brand]) a:active{color:var(--calcite-color-brand-press)}:host([appearance=transparent][kind=brand]) button calcite-loader,:host([appearance=transparent][kind=brand]) a calcite-loader{color:var(--calcite-color-brand)}:host([appearance=transparent][kind=danger]) button,:host([appearance=transparent][kind=danger]) a{color:var(--calcite-color-status-danger)}:host([appearance=transparent][kind=danger]) button:hover,:host([appearance=transparent][kind=danger]) a:hover{color:var(--calcite-color-status-danger-hover)}:host([appearance=transparent][kind=danger]) button:focus,:host([appearance=transparent][kind=danger]) a:focus{color:var(--calcite-color-status-danger)}:host([appearance=transparent][kind=danger]) button:active,:host([appearance=transparent][kind=danger]) a:active{color:var(--calcite-color-status-danger-press)}:host([appearance=transparent][kind=danger]) button calcite-loader,:host([appearance=transparent][kind=danger]) a calcite-loader{color:var(--calcite-color-status-danger)}:host([appearance=transparent][kind=neutral]:not(.cancel-editing-button)) button,:host([appearance=transparent][kind=neutral]:not(.cancel-editing-button)) a,:host([appearance=transparent][kind=neutral]:not(.cancel-editing-button)) calcite-loader{color:var(--calcite-color-text-1)}:host([appearance=transparent][kind=neutral].cancel-editing-button) button{border-block-start-width:1px;border-block-end-width:1px;color:var(--calcite-color-text-3);border-block-start-color:var(--calcite-color-border-input);border-block-end-color:var(--calcite-color-border-input);border-block-style:solid}:host([appearance=transparent][kind=neutral].cancel-editing-button) button:not(.content--slotted){--calcite-button-padding-y-internal:0}:host([appearance=transparent][kind=neutral].cancel-editing-button) button:hover{color:var(--calcite-color-text-1)}:host([appearance=transparent][kind=neutral].enable-editing-button) button{background-color:transparent}:host(.confirm-changes-button) button:focus,:host(.cancel-editing-button) button:focus,:host(.enable-editing-button) button:focus{outline-offset:-2px}:host([appearance=transparent][kind=inverse]) button,:host([appearance=transparent][kind=inverse]) a,:host([appearance=transparent][kind=inverse]) calcite-loader{color:var(--calcite-color-text-inverse)}:host([scale=s]) button.content--slotted,:host([scale=s]) a.content--slotted{font-size:var(--calcite-font-size--2);line-height:1rem}:host([scale=s][appearance=transparent]) button.content--slotted,:host([scale=s][appearance=transparent]) a.content--slotted{--calcite-button-padding-x-internal:0.5rem}:host([scale=s]) button,:host([scale=s]) a{--calcite-button-padding-y-internal:3px}:host([scale=m]) button.content--slotted,:host([scale=m]) a.content--slotted{--calcite-button-padding-x-internal:11px;font-size:var(--calcite-font-size--1);line-height:1rem}:host([scale=m]) button,:host([scale=m]) a{--calcite-button-padding-y-internal:7px}:host([scale=m][appearance=transparent]) button.content--slotted,:host([scale=m][appearance=transparent]) a.content--slotted{--calcite-button-padding-x-internal:0.75rem}:host([scale=l]) button.content--slotted,:host([scale=l]) a.content--slotted{--calcite-button-padding-x-internal:15px;font-size:var(--calcite-font-size-0);line-height:1.25rem}:host([scale=l]) .button-padding{--calcite-button-padding-x-internal:1rem;--calcite-button-padding-y-internal:11px}:host([scale=l]) .button-padding--shrunk{--calcite-button-padding-y-internal:9px}:host([scale=s]) button:not(.content--slotted),:host([scale=s]) a:not(.content--slotted){--calcite-button-padding-x-internal:0.125rem;--calcite-button-padding-y-internal:3px;inline-size:1.5rem;font-size:var(--calcite-font-size-0);line-height:1.25rem;min-block-size:1.5rem}:host([scale=m]) button:not(.content--slotted),:host([scale=m]) a:not(.content--slotted){--calcite-button-padding-x-internal:0.125rem;--calcite-button-padding-y-internal:7px;inline-size:2rem;font-size:var(--calcite-font-size-0);line-height:1.25rem;min-block-size:2rem}:host([scale=l]) button:not(.content--slotted),:host([scale=l]) a:not(.content--slotted){--calcite-button-padding-x-internal:0.125rem;--calcite-button-padding-y-internal:9px;inline-size:2.75rem;font-size:var(--calcite-font-size-0);line-height:1.25rem;min-block-size:2.75rem}:host([scale=l][appearance=transparent]) button:not(.content--slotted),:host([scale=l][appearance=transparent]) a:not(.content--slotted){--calcite-button-padding-y-internal:0.625rem}:host([scale=s][icon-start][icon-end]) button:not(.content--slotted),:host([scale=s][icon-start][icon-end]) a:not(.content--slotted){--calcite-button-padding-x-internal:23px;block-size:1.5rem;font-size:var(--calcite-font-size-0);line-height:1.25rem}:host([scale=s][icon-start][icon-end][appearance=transparent]) button:not(.content--slotted),:host([scale=s][icon-start][icon-end][appearance=transparent]) a:not(.content--slotted){--calcite-button-padding-x-internal:1.5rem}:host([scale=m][icon-start][icon-end]) button:not(.content--slotted),:host([scale=m][icon-start][icon-end]) a:not(.content--slotted){--calcite-button-padding-x-internal:2rem;block-size:2rem;font-size:var(--calcite-font-size-0);line-height:1.25rem}:host([scale=m][icon-start][icon-end][appearance=transparent]) button:not(.content--slotted),:host([scale=m][icon-start][icon-end][appearance=transparent]) a:not(.content--slotted){--calcite-button-padding-x-internal:33px}:host([scale=l][icon-start][icon-end]) button:not(.content--slotted),:host([scale=l][icon-start][icon-end]) a:not(.content--slotted){--calcite-button-padding-x-internal:43px;block-size:2.75rem;font-size:var(--calcite-font-size-0);line-height:1.25rem}:host([scale=l][icon-start][icon-end]) button:not(.content--slotted) .icon--start+.icon--end,:host([scale=l][icon-start][icon-end]) a:not(.content--slotted) .icon--start+.icon--end{margin-inline-start:1rem}:host([scale=l][icon-start][icon-end][appearance=transparent]) button:not(.content--slotted),:host([scale=l][icon-start][icon-end][appearance=transparent]) a:not(.content--slotted){--calcite-button-padding-x-internal:2.75rem}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-button",{alignment:[513],appearance:[513],label:[1],kind:[513],disabled:[516],form:[513],href:[513],iconEnd:[513,"icon-end"],iconFlipRtl:[513,"icon-flip-rtl"],iconStart:[513,"icon-start"],loading:[516],name:[513],rel:[513],round:[516],scale:[513],splitChild:[520,"split-child"],target:[513],type:[513],width:[513],messages:[1040],messageOverrides:[1040],hasContent:[32],hasLoader:[32],effectiveLocale:[32],defaultMessages:[32],tooltipText:[32],setFocus:[64]},void 0,{"aria-expanded":["handleGlobalAttributesChanged"],loading:["loadingChanged"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}]);function T(){if("undefined"==typeof customElements)return;["calcite-button","calcite-icon","calcite-loader"].forEach((t=>{switch(t){case"calcite-button":customElements.get(t)||customElements.define(t,L);break;case"calcite-icon":customElements.get(t)||(0,p.d)();break;case"calcite-loader":customElements.get(t)||(0,b.d)()}}))}T();const O=L,S=T},92708:function(t,e,a){a.d(e,{L:function(){return r},d:function(){return i}});var n=a(77210),o=a(96472);const r=(0,n.GH)(class extends n.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.inline=!1,this.label=void 0,this.scale="m",this.type=void 0,this.value=0,this.text=""}render(){const{el:t,inline:e,label:a,scale:r,text:i,type:c,value:l}=this,s=t.id||(0,o.g)(),d=e?this.getInlineSize(r):this.getSize(r),h=.45*d,u=`0 0 ${d} ${d}`,p="determinate"===c,b=2*h*Math.PI,v=l/100*b,g=b-v,f=Math.floor(l),m={"aria-valuenow":f,"aria-valuemin":0,"aria-valuemax":100,complete:100===f},k={r:h,cx:d/2,cy:d/2},x={"stroke-dasharray":`${v} ${g}`};return(0,n.h)(n.AA,{"aria-label":a,id:s,role:"progressbar",...p?m:{}},(0,n.h)("div",{class:"loader__svgs"},(0,n.h)("svg",{"aria-hidden":"true",class:"loader__svg loader__svg--1",viewBox:u},(0,n.h)("circle",{...k})),(0,n.h)("svg",{"aria-hidden":"true",class:"loader__svg loader__svg--2",viewBox:u},(0,n.h)("circle",{...k})),(0,n.h)("svg",{"aria-hidden":"true",class:"loader__svg loader__svg--3",viewBox:u,...p?{style:x}:{}},(0,n.h)("circle",{...k}))),i&&(0,n.h)("div",{class:"loader__text"},i),p&&(0,n.h)("div",{class:"loader__percentage"},l))}getSize(t){return{s:32,m:56,l:80}[t]}getInlineSize(t){return{s:12,m:16,l:20}[t]}get el(){return this}static get style(){return'@charset "UTF-8";@media (prefers-reduced-motion: reduce){:root{--calcite-internal-duration-factor:0}}:host{position:relative;margin-inline:auto;display:none;align-items:center;justify-content:center;opacity:1;min-block-size:var(--calcite-loader-size);font-size:var(--calcite-loader-font-size);stroke:var(--calcite-color-brand);stroke-width:3;fill:none;transform:scale(1, 1);animation:loader-color-shift calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 2 / var(--calcite-internal-duration-factor)) alternate-reverse infinite linear;padding-block:var(--calcite-loader-padding, 4rem);will-change:contents}:host([scale=s]){--calcite-loader-font-size:var(--calcite-font-size--2);--calcite-loader-size:2rem;--calcite-loader-size-inline:0.75rem}:host([scale=m]){--calcite-loader-font-size:var(--calcite-font-size-0);--calcite-loader-size:4rem;--calcite-loader-size-inline:1rem}:host([scale=l]){--calcite-loader-font-size:var(--calcite-font-size-2);--calcite-loader-size:6rem;--calcite-loader-size-inline:1.5rem}:host([no-padding]){padding-block:0px}:host{display:flex}.loader__text{display:block;text-align:center;font-size:var(--calcite-font-size--2);line-height:1rem;color:var(--calcite-color-text-1);margin-block-start:calc(var(--calcite-loader-size) + 1.5rem)}.loader__percentage{position:absolute;display:block;text-align:center;color:var(--calcite-color-text-1);font-size:var(--calcite-loader-font-size);inline-size:var(--calcite-loader-size);inset-inline-start:50%;margin-inline-start:calc(var(--calcite-loader-size) / 2 * -1);line-height:0.25;transform:scale(1, 1)}.loader__svgs{position:absolute;overflow:visible;opacity:1;inline-size:var(--calcite-loader-size);block-size:var(--calcite-loader-size);inset-inline-start:50%;margin-inline-start:calc(var(--calcite-loader-size) / 2 * -1);animation-iteration-count:infinite;animation-timing-function:linear;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 6.66 / var(--calcite-internal-duration-factor));animation-name:loader-clockwise}.loader__svg{position:absolute;inset-block-start:0px;transform-origin:center;overflow:visible;inset-inline-start:0;inline-size:var(--calcite-loader-size);block-size:var(--calcite-loader-size);animation-iteration-count:infinite;animation-timing-function:linear}@supports (display: grid){.loader__svg--1{animation-name:loader-offset-1}.loader__svg--2{animation-name:loader-offset-2}.loader__svg--3{animation-name:loader-offset-3}}:host([type=determinate]){animation:none;stroke:var(--calcite-color-border-3)}:host([type=determinate]) .loader__svgs{animation:none}:host([type=determinate]) .loader__svg--3{animation:none;stroke:var(--calcite-color-brand);stroke-dasharray:150.79632;transform:rotate(-90deg);transition:all var(--calcite-internal-animation-timing-fast) linear}:host([inline]){position:relative;margin:0px;animation:none;stroke:currentColor;stroke-width:2;padding-block:0px;block-size:var(--calcite-loader-size-inline);min-block-size:var(--calcite-loader-size-inline);inline-size:var(--calcite-loader-size-inline);margin-inline-end:calc(var(--calcite-loader-size-inline) * 0.5);vertical-align:calc(var(--calcite-loader-size-inline) * -1 * 0.2)}:host([inline]) .loader__svgs{inset-block-start:0px;margin:0px;inset-inline-start:0;inline-size:var(--calcite-loader-size-inline);block-size:var(--calcite-loader-size-inline)}:host([inline]) .loader__svg{inline-size:var(--calcite-loader-size-inline);block-size:var(--calcite-loader-size-inline)}:host([complete]){opacity:0;transform:scale(0.75, 0.75);transform-origin:center;transition:opacity var(--calcite-internal-animation-timing-medium) linear 1000ms, transform var(--calcite-internal-animation-timing-medium) linear 1000ms}:host([complete]) .loader__svgs{opacity:0;transform:scale(0.75, 0.75);transform-origin:center;transition:opacity calc(180ms * var(--calcite-internal-duration-factor)) linear 800ms, transform calc(180ms * var(--calcite-internal-duration-factor)) linear 800ms}:host([complete]) .loader__percentage{color:var(--calcite-color-brand);transform:scale(1.05, 1.05);transform-origin:center;transition:color var(--calcite-internal-animation-timing-medium) linear, transform var(--calcite-internal-animation-timing-medium) linear}.loader__svg--1{stroke-dasharray:27.9252444444 139.6262222222;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 4.8 / var(--calcite-internal-duration-factor))}@keyframes loader-offset-1{0%{stroke-dasharray:27.9252444444 251.3272;stroke-dashoffset:0}50%{stroke-dasharray:139.6262222222 139.6262222222;stroke-dashoffset:-83.7757333333}100%{stroke-dasharray:27.9252444444 251.3272;stroke-dashoffset:-279.2524444444}}.loader__svg--2{stroke-dasharray:55.8504888889 139.6262222222;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 6.4 / var(--calcite-internal-duration-factor))}@keyframes loader-offset-2{0%{stroke-dasharray:55.8504888889 223.4019555556;stroke-dashoffset:0}50%{stroke-dasharray:139.6262222222 139.6262222222;stroke-dashoffset:-97.7383555556}100%{stroke-dasharray:55.8504888889 223.4019555556;stroke-dashoffset:-279.2524444444}}.loader__svg--3{stroke-dasharray:13.9626222222 139.6262222222;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 7.734 / var(--calcite-internal-duration-factor))}@keyframes loader-offset-3{0%{stroke-dasharray:13.9626222222 265.2898222222;stroke-dashoffset:0}50%{stroke-dasharray:139.6262222222 139.6262222222;stroke-dashoffset:-76.7944222222}100%{stroke-dasharray:13.9626222222 265.2898222222;stroke-dashoffset:-279.2524444444}}@keyframes loader-color-shift{0%{stroke:var(--calcite-color-brand)}33%{stroke:var(--calcite-color-brand-press)}66%{stroke:var(--calcite-color-brand-hover)}100%{stroke:var(--calcite-color-brand)}}@keyframes loader-clockwise{100%{transform:rotate(360deg)}}:host([hidden]){display:none}[hidden]{display:none}'}},[1,"calcite-loader",{inline:[516],label:[1],scale:[513],type:[513],value:[2],text:[1]}]);function i(){if("undefined"==typeof customElements)return;["calcite-loader"].forEach((t=>{if("calcite-loader"===t)customElements.get(t)||customElements.define(t,r)}))}i()}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5048.893fe04d03a08ef6d2fc.js.LICENSE.txt b/docs/sentinel1-explorer/5048.893fe04d03a08ef6d2fc.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/5048.893fe04d03a08ef6d2fc.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/5071.21cae464b8d2c5d5e6c3.js b/docs/sentinel1-explorer/5071.21cae464b8d2c5d5e6c3.js new file mode 100644 index 00000000..7695dd64 --- /dev/null +++ b/docs/sentinel1-explorer/5071.21cae464b8d2c5d5e6c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5071],{35071:function(t,n,e){e.r(n),e.d(n,{l:function(){return c}});var r,i,o,u=e(58340),s={exports:{}};r=s,i="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,"undefined"!=typeof __filename&&(i=i||__filename),o=function(t){var n,e;(t=void 0!==(t=t||{})?t:{}).ready=new Promise((function(t,r){n=t,e=r}));var r,o,u,s,a,c,f=Object.assign({},t),p="object"==typeof window,l="function"==typeof importScripts,h="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,d="";h?(d=l?require("path").dirname(d)+"/":__dirname+"/",c=()=>{a||(s=require("fs"),a=require("path"))},r=function(t,n){return c(),t=a.normalize(t),s.readFileSync(t,n?void 0:"utf8")},u=t=>{var n=r(t,!0);return n.buffer||(n=new Uint8Array(n)),n},o=(t,n,e)=>{c(),t=a.normalize(t),s.readFile(t,(function(t,r){t?e(t):n(r.buffer)}))},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),process.on("uncaughtException",(function(t){if(!(t instanceof V))throw t})),process.on("unhandledRejection",(function(t){throw t})),t.inspect=function(){return"[Emscripten Module object]"}):(p||l)&&(l?d=self.location.href:"undefined"!=typeof document&&document.currentScript&&(d=document.currentScript.src),i&&(d=i),d=0!==d.indexOf("blob:")?d.substr(0,d.replace(/[?#].*/,"").lastIndexOf("/")+1):"",r=t=>{var n=new XMLHttpRequest;return n.open("GET",t,!1),n.send(null),n.responseText},l&&(u=t=>{var n=new XMLHttpRequest;return n.open("GET",t,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),o=(t,n,e)=>{var r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType="arraybuffer",r.onload=()=>{200==r.status||0==r.status&&r.response?n(r.response):e()},r.onerror=e,r.send(null)}),t.print;var m,_,y=t.printErr||void 0;Object.assign(t,f),f=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram,t.quit&&t.quit,t.wasmBinary&&(m=t.wasmBinary),t.noExitRuntime,"object"!=typeof WebAssembly&&C("no native wasm support detected");var g,v,w,b,A,R,x=!1,S="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function E(t,n){return t?function(t,n,e){for(var r=n+e,i=n;t[i]&&!(i>=r);)++i;if(i-n>16&&t.buffer&&S)return S.decode(t.subarray(n,i));for(var o="";n>10,56320|1023&c)}}else o+=String.fromCharCode((31&u)<<6|s)}else o+=String.fromCharCode(u)}return o}(w,t,n):""}function I(n){g=n,t.HEAP8=v=new Int8Array(n),t.HEAP16=new Int16Array(n),t.HEAP32=b=new Int32Array(n),t.HEAPU8=w=new Uint8Array(n),t.HEAPU16=new Uint16Array(n),t.HEAPU32=A=new Uint32Array(n),t.HEAPF32=new Float32Array(n),t.HEAPF64=new Float64Array(n)}t.INITIAL_MEMORY;var P=[],j=[],T=[];function H(t){P.unshift(t)}function M(t){T.unshift(t)}var W=0,k=null;function C(n){t.onAbort&&t.onAbort(n),y(n="Aborted("+n+")"),x=!0,n+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(n);throw e(r),r}var D,U="data:application/octet-stream;base64,";function q(t){return t.startsWith(U)}function F(t){return t.startsWith("file://")}function O(t){try{if(t==D&&m)return new Uint8Array(m);if(u)return u(t);throw"both async and sync fetching of the wasm failed"}catch(t){C(t)}}function B(){if(!m&&(p||l)){if("function"==typeof fetch&&!F(D))return fetch(D,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at '"+D+"'";return t.arrayBuffer()})).catch((function(){return O(D)}));if(o)return new Promise((function(t,n){o(D,(function(n){t(new Uint8Array(n))}),n)}))}return Promise.resolve().then((function(){return O(D)}))}function z(n){for(;n.length>0;){var e=n.shift();if("function"!=typeof e){var r=e.func;"number"==typeof r?void 0===e.arg?G(r)():G(r)(e.arg):r(void 0===e.arg?null:e.arg)}else e(t)}}q(D="lerc-wasm.wasm")||(D=function(n){return t.locateFile?t.locateFile(n,d):d+n}(D));var L=[];function G(t){var n=L[t];return n||(t>=L.length&&(L.length=t+1),L[t]=n=R.get(t)),n}function X(t){this.excPtr=t,this.ptr=t-24,this.set_type=function(t){A[this.ptr+4>>2]=t},this.get_type=function(){return A[this.ptr+4>>2]},this.set_destructor=function(t){A[this.ptr+8>>2]=t},this.get_destructor=function(){return A[this.ptr+8>>2]},this.set_refcount=function(t){b[this.ptr>>2]=t},this.set_caught=function(t){t=t?1:0,v[this.ptr+12>>0]=t},this.get_caught=function(){return 0!=v[this.ptr+12>>0]},this.set_rethrown=function(t){t=t?1:0,v[this.ptr+13>>0]=t},this.get_rethrown=function(){return 0!=v[this.ptr+13>>0]},this.init=function(t,n){this.set_adjusted_ptr(0),this.set_type(t),this.set_destructor(n),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var t=b[this.ptr>>2];b[this.ptr>>2]=t+1},this.release_ref=function(){var t=b[this.ptr>>2];return b[this.ptr>>2]=t-1,1===t},this.set_adjusted_ptr=function(t){A[this.ptr+16>>2]=t},this.get_adjusted_ptr=function(){return A[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Q(this.get_type()))return A[this.excPtr>>2];var t=this.get_adjusted_ptr();return 0!==t?t:this.excPtr}}function N(t){try{return _.grow(t-g.byteLength+65535>>>16),I(_.buffer),1}catch(t){}}var Y={a:function(t,n,e,r){C("Assertion failed: "+E(t)+", at: "+[n?E(n):"unknown filename",e,r?E(r):"unknown function"])},c:function(t){return J(t+24)+24},b:function(t,n,e){throw new X(t).init(n,e),t},d:function(){C("")},f:function(t,n,e){w.copyWithin(t,n,n+e)},e:function(t){var n=w.length,e=2147483648;if((t>>>=0)>e)return!1;let r=(t,n)=>t+(n-t%n)%n;for(var i=1;i<=4;i*=2){var o=n*(1+.2/i);if(o=Math.min(o,t+100663296),N(Math.min(e,r(Math.max(t,o),65536))))return!0}return!1}};(function(){var n={a:Y};function r(n,e){var r=n.exports;t.asm=r,I((_=t.asm.g).buffer),R=t.asm.m,function(t){j.unshift(t)}(t.asm.h),function(n){if(W--,t.monitorRunDependencies&&t.monitorRunDependencies(W),0==W&&k){var e=k;k=null,e()}}()}function i(t){r(t.instance)}function o(t){return B().then((function(t){return WebAssembly.instantiate(t,n)})).then((function(t){return t})).then(t,(function(t){y("failed to asynchronously prepare wasm: "+t),C(t)}))}if(W++,t.monitorRunDependencies&&t.monitorRunDependencies(W),t.instantiateWasm)try{return t.instantiateWasm(n,r)}catch(t){return y("Module.instantiateWasm callback failed with error: "+t),!1}(m||"function"!=typeof WebAssembly.instantiateStreaming||q(D)||F(D)||h||"function"!=typeof fetch?o(i):fetch(D,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,n).then(i,(function(t){return y("wasm streaming compile failed: "+t),y("falling back to ArrayBuffer instantiation"),o(i)}))}))).catch(e)})(),t.___wasm_call_ctors=function(){return(t.___wasm_call_ctors=t.asm.h).apply(null,arguments)},t._lerc_getBlobInfo=function(){return(t._lerc_getBlobInfo=t.asm.i).apply(null,arguments)},t._lerc_getDataRanges=function(){return(t._lerc_getDataRanges=t.asm.j).apply(null,arguments)},t._lerc_decode=function(){return(t._lerc_decode=t.asm.k).apply(null,arguments)},t._lerc_decode_4D=function(){return(t._lerc_decode_4D=t.asm.l).apply(null,arguments)};var J=t._malloc=function(){return(J=t._malloc=t.asm.n).apply(null,arguments)};t._free=function(){return(t._free=t.asm.o).apply(null,arguments)};var K,Q=t.___cxa_is_pointer_type=function(){return(Q=t.___cxa_is_pointer_type=t.asm.p).apply(null,arguments)};function V(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}function Z(e){function r(){K||(K=!0,t.calledRun=!0,x||(z(j),n(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)M(t.postRun.shift());z(T)}()))}W>0||(function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)H(t.preRun.shift());z(P)}(),W>0||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),r()}),1)):r()))}if(k=function t(){K||Z(),K||(k=t)},t.run=Z,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return Z(),t.ready},r.exports=o;const a=(0,u.g)(s.exports),c=Object.freeze(Object.defineProperty({__proto__:null,default:a},Symbol.toStringTag,{value:"Module"}))}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5109.2d6c0df569ea1b7eb2f5.js b/docs/sentinel1-explorer/5109.2d6c0df569ea1b7eb2f5.js new file mode 100644 index 00000000..1446f39f --- /dev/null +++ b/docs/sentinel1-explorer/5109.2d6c0df569ea1b7eb2f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5109],{97876:function(e,t,i){i.d(t,{D:function(){return s},s:function(){return a}});var r=i(3027);function a(e,t,i,r){e.set(t,i.get(r)),i.on(r,(i=>{e.set(t,i)}))}class s extends r.T{setupDefaultRules(){super.setupDefaultRules();const e=this._root.language,t=this._root.interfaceColors,i=this._root.horizontalLayout,s=this._root.verticalLayout,n=this.rule.bind(this);n("InterfaceColors").setAll({stroke:r.C.fromHex(15066597),fill:r.C.fromHex(15987699),primaryButton:r.C.fromHex(6788316),primaryButtonHover:r.C.fromHex(6779356),primaryButtonDown:r.C.fromHex(6872182),primaryButtonActive:r.C.fromHex(6872182),primaryButtonText:r.C.fromHex(16777215),primaryButtonStroke:r.C.fromHex(16777215),secondaryButton:r.C.fromHex(14277081),secondaryButtonHover:r.C.fromHex(10724259),secondaryButtonDown:r.C.fromHex(9276813),secondaryButtonActive:r.C.fromHex(15132390),secondaryButtonText:r.C.fromHex(0),secondaryButtonStroke:r.C.fromHex(16777215),grid:r.C.fromHex(0),background:r.C.fromHex(16777215),alternativeBackground:r.C.fromHex(0),text:r.C.fromHex(0),alternativeText:r.C.fromHex(16777215),disabled:r.C.fromHex(11382189),positive:r.C.fromHex(5288704),negative:r.C.fromHex(11730944)});{const e=n("ColorSet");e.setAll({passOptions:{hue:.05,saturation:0,lightness:0},colors:[r.C.fromHex(6797276)],step:1,reuse:!1,startIndex:0}),e.setPrivate("currentStep",0),e.setPrivate("currentPass",0)}n("Entity").setAll({stateAnimationDuration:0,stateAnimationEasing:(0,r.o)(r.c)}),n("Component").setAll({interpolationDuration:0,interpolationEasing:(0,r.o)(r.c)}),n("Sprite").setAll({visible:!0,scale:1,opacity:1,rotation:0,position:"relative",tooltipX:r.p,tooltipY:r.p,tooltipPosition:"fixed",isMeasured:!0}),n("Sprite").states.create("default",{visible:!0,opacity:1}),n("Container").setAll({interactiveChildren:!0,setStateOnChildren:!1}),n("Graphics").setAll({strokeWidth:1}),n("Chart").setAll({width:r.a,height:r.a,interactiveChildren:!1}),n("ZoomableContainer").setAll({width:r.a,height:r.a,wheelable:!0,pinchZoom:!0,maxZoomLevel:32,minZoomLevel:1,zoomStep:2,animationEasing:(0,r.o)(r.c),animationDuration:600}),n("Sprite",["horizontal","center"]).setAll({centerX:r.p,x:r.p}),n("Sprite",["vertical","center"]).setAll({centerY:r.p,y:r.p}),n("Container",["horizontal","layout"]).setAll({layout:i}),n("Container",["vertical","layout"]).setAll({layout:s}),n("Pattern").setAll({repetition:"repeat",width:50,height:50,rotation:0,fillOpacity:1}),n("LinePattern").setAll({gap:6,colorOpacity:1,width:49,height:49}),n("RectanglePattern").setAll({gap:6,checkered:!1,centered:!0,maxWidth:5,maxHeight:5,width:48,height:48,strokeWidth:0}),n("CirclePattern").setAll({gap:5,checkered:!1,centered:!1,radius:3,strokeWidth:0,width:45,height:45}),n("GrainPattern").setAll({width:200,height:200,colors:[r.C.fromHex(0)],size:1,horizontalGap:0,verticalGap:0,density:1,minOpacity:0,maxOpacity:.2}),n("LinearGradient").setAll({rotation:90}),n("Legend").setAll({fillField:"fill",strokeField:"stroke",nameField:"name",layout:r.G.new(this._root,{}),layer:30,clickTarget:"itemContainer"}),n("Container",["legend","item","itemcontainer"]).setAll({paddingLeft:5,paddingRight:5,paddingBottom:5,paddingTop:5,layout:i,setStateOnChildren:!0,interactiveChildren:!1,ariaChecked:!0,focusable:!0,ariaLabel:e.translate("Press ENTER to toggle"),role:"checkbox"});{const e=n("Rectangle",["legend","item","background"]);e.setAll({fillOpacity:0}),a(e,"fill",t,"background")}n("Container",["legend","marker"]).setAll({setStateOnChildren:!0,centerY:r.p,paddingLeft:0,paddingRight:0,paddingBottom:0,paddingTop:0,width:18,height:18}),n("RoundedRectangle",["legend","marker","rectangle"]).setAll({width:r.a,height:r.a,cornerRadiusBL:3,cornerRadiusTL:3,cornerRadiusBR:3,cornerRadiusTR:3});{const e=n("RoundedRectangle",["legend","marker","rectangle"]).states.create("disabled",{});a(e,"fill",t,"disabled"),a(e,"stroke",t,"disabled")}n("Label",["legend","label"]).setAll({centerY:r.p,marginLeft:5,paddingRight:0,paddingLeft:0,paddingTop:0,paddingBottom:0,populateText:!0}),a(n("Label",["legend","label"]).states.create("disabled",{}),"fill",t,"disabled"),n("Label",["legend","value","label"]).setAll({centerY:r.p,marginLeft:5,paddingRight:0,paddingLeft:0,paddingTop:0,paddingBottom:0,width:50,centerX:r.a,populateText:!0}),a(n("Label",["legend","value","label"]).states.create("disabled",{}),"fill",t,"disabled"),n("HeatLegend").setAll({stepCount:1}),n("RoundedRectangle",["heatlegend","marker"]).setAll({cornerRadiusTR:0,cornerRadiusBR:0,cornerRadiusTL:0,cornerRadiusBL:0}),n("RoundedRectangle",["vertical","heatlegend","marker"]).setAll({height:r.a,width:15}),n("RoundedRectangle",["horizontal","heatlegend","marker"]).setAll({width:r.a,height:15}),n("HeatLegend",["vertical"]).setAll({height:r.a}),n("HeatLegend",["horizontal"]).setAll({width:r.a}),n("Label",["heatlegend","start"]).setAll({paddingLeft:5,paddingRight:5,paddingTop:5,paddingBottom:5}),n("Label",["heatlegend","end"]).setAll({paddingLeft:5,paddingRight:5,paddingTop:5,paddingBottom:5});{const e=n("Label");e.setAll({paddingTop:8,paddingBottom:8,paddingLeft:10,paddingRight:10,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',fontSize:"1em",populateText:!1}),a(e,"fill",t,"text")}n("RadialLabel").setAll({textType:"regular",centerY:r.p,centerX:r.p,inside:!1,radius:0,baseRadius:r.a,orientation:"auto",textAlign:"center"}),n("RoundedRectangle").setAll({cornerRadiusTL:8,cornerRadiusBL:8,cornerRadiusTR:8,cornerRadiusBR:8}),n("PointedRectangle").setAll({pointerBaseWidth:15,pointerLength:10,cornerRadius:8}),n("Slice").setAll({shiftRadius:0,dRadius:0,dInnerRadius:0});{const e=n("Tick");e.setAll({strokeOpacity:.15,isMeasured:!1,length:4.5,position:"absolute",crisp:!0}),a(e,"stroke",t,"grid")}n("Bullet").setAll({locationX:.5,locationY:.5}),n("Tooltip").setAll({position:"absolute",getFillFromSprite:!0,getStrokeFromSprite:!1,autoTextColor:!0,paddingTop:9,paddingBottom:8,paddingLeft:10,paddingRight:10,marginBottom:5,pointerOrientation:"vertical",centerX:r.p,centerY:r.p,animationEasing:(0,r.o)(r.c),exportable:!1}),n("Polygon").setAll({animationEasing:(0,r.o)(r.c)}),n("PointedRectangle",["tooltip","background"]).setAll({strokeOpacity:.9,cornerRadius:4,pointerLength:4,pointerBaseWidth:8,fillOpacity:.9,stroke:r.C.fromHex(16777215)});{const e=n("Label",["tooltip"]);e.setAll({role:"tooltip",populateText:!0,paddingRight:0,paddingTop:0,paddingLeft:0,paddingBottom:0}),a(e,"fill",t,"alternativeText")}n("Button").setAll({paddingTop:8,paddingBottom:8,paddingLeft:10,paddingRight:10,interactive:!0,layout:i,interactiveChildren:!1,setStateOnChildren:!0,focusable:!0}),n("Button").states.create("hover",{}),n("Button").states.create("down",{stateAnimationDuration:0}),n("Button").states.create("active",{});{const e=n("RoundedRectangle",["button","background"]);a(e,"fill",t,"primaryButton"),a(e,"stroke",t,"primaryButtonStroke")}a(n("RoundedRectangle",["button","background"]).states.create("hover",{}),"fill",t,"primaryButtonHover"),a(n("RoundedRectangle",["button","background"]).states.create("down",{stateAnimationDuration:0}),"fill",t,"primaryButtonDown"),a(n("RoundedRectangle",["button","background"]).states.create("active",{}),"fill",t,"primaryButtonActive"),a(n("Graphics",["button","icon"]),"stroke",t,"primaryButtonText"),a(n("Label",["button"]),"fill",t,"primaryButtonText"),n("Button",["zoom"]).setAll({paddingTop:18,paddingBottom:18,paddingLeft:12,paddingRight:12,centerX:46,centerY:-10,y:0,x:r.a,role:"button",ariaLabel:e.translate("Zoom Out"),layer:30});{const e=n("RoundedRectangle",["background","button","zoom"]);e.setAll({cornerRadiusBL:40,cornerRadiusBR:40,cornerRadiusTL:40,cornerRadiusTR:40}),a(e,"fill",t,"primaryButton")}a(n("RoundedRectangle",["background","button","zoom"]).states.create("hover",{}),"fill",t,"primaryButtonHover"),a(n("RoundedRectangle",["background","button","zoom"]).states.create("down",{stateAnimationDuration:0}),"fill",t,"primaryButtonDown");{const e=n("Graphics",["icon","button","zoom"]);e.setAll({crisp:!0,strokeOpacity:.7,draw:e=>{e.moveTo(0,0),e.lineTo(12,0)}}),a(e,"stroke",t,"primaryButtonText")}n("Button",["resize"]).setAll({paddingTop:9,paddingBottom:9,paddingLeft:13,paddingRight:13,draggable:!0,centerX:r.p,centerY:r.p,position:"absolute",role:"slider",ariaValueMin:"0",ariaValueMax:"100",ariaLabel:e.translate("Use up and down arrows to move selection")});{const e=n("RoundedRectangle",["background","resize","button"]);e.setAll({cornerRadiusBL:40,cornerRadiusBR:40,cornerRadiusTL:40,cornerRadiusTR:40}),a(e,"fill",t,"secondaryButton"),a(e,"stroke",t,"secondaryButtonStroke")}a(n("RoundedRectangle",["background","resize","button"]).states.create("hover",{}),"fill",t,"secondaryButtonHover"),a(n("RoundedRectangle",["background","resize","button"]).states.create("down",{stateAnimationDuration:0}),"fill",t,"secondaryButtonDown");{const e=n("Graphics",["resize","button","icon"]);e.setAll({interactive:!1,crisp:!0,strokeOpacity:.5,draw:e=>{e.moveTo(0,.5),e.lineTo(0,12.5),e.moveTo(4,.5),e.lineTo(4,12.5)}}),a(e,"stroke",t,"secondaryButtonText")}n("Button",["resize","vertical"]).setAll({rotation:90,cursorOverStyle:"ns-resize"}),n("Button",["resize","horizontal"]).setAll({cursorOverStyle:"ew-resize"}),n("Button",["play"]).setAll({paddingTop:13,paddingBottom:13,paddingLeft:14,paddingRight:14,ariaLabel:e.translate("Play"),toggleKey:"active"});{const e=n("RoundedRectangle",["play","background"]);e.setAll({strokeOpacity:.5,cornerRadiusBL:100,cornerRadiusBR:100,cornerRadiusTL:100,cornerRadiusTR:100}),a(e,"fill",t,"primaryButton")}{const e=n("Graphics",["play","icon"]);e.setAll({stateAnimationDuration:0,dx:1,draw:e=>{e.moveTo(0,-5),e.lineTo(8,0),e.lineTo(0,5),e.lineTo(0,-5)}}),a(e,"fill",t,"primaryButtonText")}n("Graphics",["play","icon"]).states.create("default",{stateAnimationDuration:0}),n("Graphics",["play","icon"]).states.create("active",{stateAnimationDuration:0,draw:e=>{e.moveTo(-4,-5),e.lineTo(-1,-5),e.lineTo(-1,5),e.lineTo(-4,5),e.lineTo(-4,-5),e.moveTo(4,-5),e.lineTo(1,-5),e.lineTo(1,5),e.lineTo(4,5),e.lineTo(4,-5)}}),n("Button",["switch"]).setAll({paddingTop:4,paddingBottom:4,paddingLeft:4,paddingRight:4,ariaLabel:e.translate("Press ENTER to toggle"),toggleKey:"active",width:40,height:24,layout:null});{const e=n("RoundedRectangle",["switch","background"]);e.setAll({strokeOpacity:.5,cornerRadiusBL:100,cornerRadiusBR:100,cornerRadiusTL:100,cornerRadiusTR:100}),a(e,"fill",t,"primaryButton")}{const e=n("Circle",["switch","icon"]);e.setAll({radius:8,centerY:0,centerX:0,dx:0}),a(e,"fill",t,"primaryButtonText")}n("Graphics",["switch","icon"]).states.create("active",{dx:16}),n("Scrollbar").setAll({start:0,end:1,layer:30,animationEasing:(0,r.o)(r.c)}),n("Scrollbar",["vertical"]).setAll({marginRight:13,marginLeft:13,minWidth:12,height:r.a}),n("Scrollbar",["horizontal"]).setAll({marginTop:13,marginBottom:13,minHeight:12,width:r.a}),this.rule("Button",["scrollbar"]).setAll({exportable:!1});{const e=n("RoundedRectangle",["scrollbar","main","background"]);e.setAll({cornerRadiusTL:8,cornerRadiusBL:8,cornerRadiusTR:8,cornerRadiusBR:8,fillOpacity:.8}),a(e,"fill",t,"fill")}{const e=n("RoundedRectangle",["scrollbar","thumb"]);e.setAll({role:"slider",ariaLive:"polite",position:"absolute",draggable:!0}),a(e,"fill",t,"secondaryButton")}a(n("RoundedRectangle",["scrollbar","thumb"]).states.create("hover",{}),"fill",t,"secondaryButtonHover"),a(n("RoundedRectangle",["scrollbar","thumb"]).states.create("down",{stateAnimationDuration:0}),"fill",t,"secondaryButtonDown"),n("RoundedRectangle",["scrollbar","thumb","vertical"]).setAll({x:r.p,width:r.a,centerX:r.p,ariaLabel:e.translate("Use up and down arrows to move selection")}),n("RoundedRectangle",["scrollbar","thumb","horizontal"]).setAll({y:r.p,centerY:r.p,height:r.a,ariaLabel:e.translate("Use left and right arrows to move selection")});{const e=n("PointedRectangle",["axis","tooltip","background"]);e.setAll({cornerRadius:0}),a(e,"fill",t,"alternativeBackground")}n("Label",["axis","tooltip"]).setAll({role:void 0}),n("Label",["axis","tooltip","y"]).setAll({textAlign:"right"}),n("Label",["axis","tooltip","y","opposite"]).setAll({textAlign:"left"}),n("Label",["axis","tooltip","x"]).setAll({textAlign:"center"}),n("Tooltip",["categoryaxis"]).setAll({labelText:"{category}"}),n("Star").setAll({spikes:5,innerRadius:5,radius:10}),n("Tooltip",["stock"]).setAll({paddingTop:6,paddingBottom:5,paddingLeft:7,paddingRight:7}),n("PointedRectangle",["tooltip","stock","axis"]).setAll({pointerLength:0,pointerBaseWidth:0,cornerRadius:3}),n("Label",["tooltip","stock"]).setAll({fontSize:"0.8em"}),n("SpriteResizer").setAll({rotationStep:10}),n("Container",["resizer","grip"]).states.create("hover",{});{const e=n("RoundedRectangle",["resizer","grip"]);e.setAll({strokeOpacity:.7,strokeWidth:1,fillOpacity:1,width:12,height:12}),a(e,"fill",t,"background"),a(e,"stroke",t,"alternativeBackground")}{const e=n("RoundedRectangle",["resizer","grip","outline"]);e.setAll({strokeOpacity:0,fillOpacity:0,width:20,height:20}),e.states.create("hover",{fillOpacity:.3}),a(e,"fill",t,"alternativeBackground")}n("RoundedRectangle",["resizer","grip","left"]).setAll({cornerRadiusBL:0,cornerRadiusBR:0,cornerRadiusTL:0,cornerRadiusTR:0}),n("RoundedRectangle",["resizer","grip","right"]).setAll({cornerRadiusBL:0,cornerRadiusBR:0,cornerRadiusTL:0,cornerRadiusTR:0});{const e=n("Rectangle",["resizer","rectangle"]);e.setAll({strokeDasharray:[2,2],strokeOpacity:.5,strokeWidth:1}),a(e,"stroke",t,"alternativeBackground")}n("Graphics",["button","plus","icon"]).setAll({x:r.p,y:r.p,draw:e=>{e.moveTo(-4,0),e.lineTo(4,0),e.moveTo(0,-4),e.lineTo(0,4)}}),n("Graphics",["button","minus","icon"]).setAll({x:r.p,y:r.p,draw:e=>{e.moveTo(-4,0),e.lineTo(4,0)}}),n("Graphics",["button","home","icon"]).setAll({x:r.p,y:r.p,svgPath:"M 8 -1 L 6 -1 L 6 7 L 2 7 L 2 1 L -2 1 L -2 7 L -6 7 L -6 -1 L -8 -1 L 0 -9 L 8 -1 Z M 8 -1"}),n("Button",["zoomtools"]).setAll({marginTop:1,marginBottom:2}),n("ZoomTools").setAll({x:r.a,centerX:r.a,y:r.a,centerY:r.a,paddingRight:10,paddingBottom:10})}}},26754:function(e,t,i){i.d(t,{T:function(){return s}});var r=i(3027);class a extends r.e{_beforeChanged(){super._beforeChanged(),(this.isDirty("pointerBaseWidth")||this.isDirty("cornerRadius")||this.isDirty("pointerLength")||this.isDirty("pointerX")||this.isDirty("pointerY")||this.isDirty("width")||this.isDirty("height"))&&(this._clear=!0)}_changed(){if(super._changed(),this._clear){this.markDirtyBounds();let e=this.width(),t=this.height();if(e>0&&t>0){let i=this.get("cornerRadius",8);i=(0,r.f)(i,0,Math.min(e/2,t/2));let a=this.get("pointerX",0),s=this.get("pointerY",0),n=this.get("pointerBaseWidth",15)/2,o=0,l=0,h=0,u=(a-o)*(t-l)-(s-l)*(e-o),c=(a-h)*(0-t)-(s-t)*(e-h);const d=this._display;if(d.moveTo(i,0),u>0&&c>0){let t=Math.round((0,r.f)(a,i+n,e-n-i));s=(0,r.f)(s,-1/0,0),d.lineTo(t-n,0),d.lineTo(a,s),d.lineTo(t+n,0)}if(d.lineTo(e-i,0),d.arcTo(e,0,e,i,i),u>0&&c<0){let o=Math.round((0,r.f)(s,i+n,t-n-i));a=(0,r.f)(a,e,1/0),d.lineTo(e,i),d.lineTo(e,Math.max(o-n,i)),d.lineTo(a,s),d.lineTo(e,o+n)}if(d.lineTo(e,t-i),d.arcTo(e,t,e-i,t,i),u<0&&c<0){let o=Math.round((0,r.f)(a,i+n,e-n-i));s=(0,r.f)(s,t,1/0),d.lineTo(e-i,t),d.lineTo(o+n,t),d.lineTo(a,s),d.lineTo(o-n,t)}if(d.lineTo(i,t),d.arcTo(0,t,0,t-i,i),u<0&&c>0){let e=Math.round((0,r.f)(s,i+n,t-i-n));a=(0,r.f)(a,-1/0,0),d.lineTo(0,t-i),d.lineTo(0,e+n),d.lineTo(a,s),d.lineTo(0,Math.max(e-n,i))}d.lineTo(0,i),d.arcTo(0,0,i,0,i),d.closePath()}}}}Object.defineProperty(a,"className",{enumerable:!0,configurable:!0,writable:!0,value:"PointedRectangle"}),Object.defineProperty(a,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:r.e.classNames.concat([a.className])});class s extends r.g{constructor(e,t,i,r=[]){super(e,t,i,r),Object.defineProperty(this,"_fx",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_fy",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_label",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_fillDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_strokeDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_labelDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_w",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_h",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_keepHoverDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_htmlContentHovered",{enumerable:!0,configurable:!0,writable:!0,value:!1})}_afterNew(){this._settings.themeTags=(0,r.m)(this._settings.themeTags,["tooltip"]),super._afterNew(),this.set("background",a.new(this._root,{themeTags:["tooltip","background"]})),this._label=this.children.push(r.L.new(this._root,{})),this._disposers.push(this._label.events.on("boundschanged",(()=>{this._updateBackground()}))),this._disposers.push(this.on("bounds",(()=>{this._updateBackground()}))),this._updateTextColor(),this._root.tooltipContainer.children.push(this),this.hide(0),this._disposers.push(this.label.onPrivate("htmlElement",(e=>{e&&((0,r.h)(e,"pointerover",(e=>{this._htmlContentHovered=!0})),(0,r.h)(e,"pointerout",(e=>{this._htmlContentHovered=!1})))}))),this._root._tooltips.push(this)}get label(){return this._label}dispose(){super.dispose(),(0,r.r)(this._root._tooltips,this)}_updateChildren(){super._updateChildren(),(this.isDirty("pointerOrientation")||this.isPrivateDirty("minWidth")||this.isPrivateDirty("minHeight"))&&this.get("background")._markDirtyKey("width"),null!=this.get("labelText")&&this.label.set("text",this.get("labelText")),null!=this.get("labelHTML")&&this.label.set("html",this.get("labelHTML"))}_changed(){if(super._changed(),(this.isDirty("pointTo")||this.isDirty("pointerOrientation"))&&this._updateBackground(),this.isDirty("tooltipTarget")&&this.updateBackgroundColor(),this.isDirty("keepTargetHover"))if(this.get("keepTargetHover")){const e=this.get("background");this._keepHoverDp=new r.M([e.events.on("pointerover",(e=>{let t=this.get("tooltipTarget");t&&(t.parent&&t.parent.getPrivate("tooltipTarget")==t&&(t=t.parent),t.hover())})),e.events.on("pointerout",(e=>{let t=this.get("tooltipTarget");t&&(t.parent&&t.parent.getPrivate("tooltipTarget")==t&&(t=t.parent),this._htmlContentHovered||t.unhover())}))]),this.label.onPrivate("htmlElement",(t=>{this._keepHoverDp&&t&&this._keepHoverDp.disposers.push((0,r.h)(t,"pointerleave",(t=>{const i=this.root._renderer.getEvent(t);e.events.dispatch("pointerout",{type:"pointerout",originalEvent:i.event,point:i.point,simulated:!1,target:e})})))}))}else this._keepHoverDp&&(this._keepHoverDp.dispose(),this._keepHoverDp=void 0)}_onShow(){super._onShow(),this.updateBackgroundColor()}updateBackgroundColor(){let e=this.get("tooltipTarget");const t=this.get("background");let i,r;e&&t&&(i=e.get("fill"),r=e.get("stroke"),null==i&&(i=r),this.get("getFillFromSprite")&&(this._fillDp&&this._fillDp.dispose(),null!=i&&t.set("fill",i),this._fillDp=e.on("fill",(e=>{null!=e&&(t.set("fill",e),this._updateTextColor(e))})),this._disposers.push(this._fillDp)),this.get("getStrokeFromSprite")&&(this._strokeDp&&this._strokeDp.dispose(),null!=i&&t.set("stroke",i),this._strokeDp=e.on("fill",(e=>{null!=e&&t.set("stroke",e)})),this._disposers.push(this._strokeDp)),this.get("getLabelFillFromSprite")&&(this._labelDp&&this._labelDp.dispose(),null!=i&&this.label.set("fill",i),this._labelDp=e.on("fill",(e=>{null!=e&&this.label.set("fill",e)})),this._disposers.push(this._labelDp))),this._updateTextColor(i)}_updateTextColor(e){this.get("autoTextColor")&&(null==e&&(e=this.get("background").get("fill")),null==e&&(e=this._root.interfaceColors.get("background")),e instanceof r.C&&this.label.set("fill",r.C.alternative(e,this._root.interfaceColors.get("alternativeText"),this._root.interfaceColors.get("text"))))}_setDataItem(e){super._setDataItem(e),this.label._setDataItem(e)}_updateBackground(){super.updateBackground();const e=this._root.container;if(e){let t=.5,i=.5,s=this.get("centerX");s instanceof r.P&&(t=s.value);let n=this.get("centerY");n instanceof r.P&&(i=n.value);let o=e.width(),l=e.height(),h=this.parent,u=0,c=0;if(h){u=h.x(),c=h.y();const e=h.get("layerMargin");e&&(u+=e.left||0,c+=e.top||0,o+=(e.left||0)+(e.right||0),l+=(e.top||0)+(e.bottom||0))}const d=this.get("bounds",{left:-u,top:-c,right:o-u,bottom:l-c});this._updateBounds();let b=this.width(),g=this.height();0===b&&(b=this._w),0===g&&(g=this._h);let p=this.get("pointTo",{x:o/2,y:l/2}),f=p.x,m=p.y,_=this.get("pointerOrientation"),y=this.get("background"),v=0,w=0,x=0;y instanceof a&&(v=y.get("pointerLength",0),w=y.get("strokeWidth",0)/2,x=w,y.set("width",b),y.set("height",g));let k=0,P=0,O=d.right-d.left,T=d.bottom-d.top;"horizontal"==_||"left"==_||"right"==_?(w=0,"horizontal"==_?f>d.left+O/2?(f-=b*(1-t)+v,x*=-1):f+=b*t+v:"left"==_?f+=b*(1-t)+v:(f-=b*t+v,x*=-1)):(x=0,"vertical"==_?m>d.top+g/2+v?m-=g*(1-i)+v:(m+=g*i+v,w*=-1):"down"==_?m-=g*(1-i)+v:(m+=g*i+v,w*=-1)),f=(0,r.f)(f,d.left+b*t,d.left+O-b*(1-t))+x,m=(0,r.f)(m,d.top+g*i,d.top+T-g*(1-i))-w,k=p.x-f+b*t+x,P=p.y-m+g*i-w,this._fx=f,this._fy=m;const B=this.get("animationDuration",0);if(B>0&&this.get("visible")&&this.get("opacity")>.1){const e=this.get("animationEasing");this.animate({key:"x",to:f,duration:B,easing:e}),this.animate({key:"y",to:m,duration:B,easing:e})}else this.set("x",f),this.set("y",m);y instanceof a&&(y.set("pointerX",k),y.set("pointerY",P)),b>0&&(this._w=b),g>0&&(this._h=g)}}}Object.defineProperty(s,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Tooltip"}),Object.defineProperty(s,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:r.g.classNames.concat([s.className])})},85109:function(e,t,i){i.d(t,{createRoot:function(){return we}});i(87090);var r=i(3027),a=i(26754),s=i(97876),n=i(8108);class o{constructor(){Object.defineProperty(this,"_observer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_targets",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this._observer=new ResizeObserver((e=>{(0,r.i)(e,(e=>{(0,r.i)(this._targets,(t=>{t.target===e.target&&t.callback()}))}))}))}addTarget(e,t){this._observer.observe(e,{box:"border-box"}),this._targets.push({target:e,callback:t})}removeTarget(e){this._observer.unobserve(e),(0,r.Q)(this._targets,(t=>t.target!==e))}}class l{constructor(){Object.defineProperty(this,"_timer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_targets",{enumerable:!0,configurable:!0,writable:!0,value:[]})}addTarget(e,t){if(null===this._timer){let e=null;const t=()=>{const i=Date.now();(null===e||i>e+l.delay)&&(e=i,(0,r.i)(this._targets,(e=>{let t=e.target.getBoundingClientRect();t.width===e.size.width&&t.height===e.size.height||(e.size=t,e.callback())}))),0===this._targets.length?this._timer=null:this._timer=requestAnimationFrame(t)};this._timer=requestAnimationFrame(t)}this._targets.push({target:e,callback:t,size:{width:0,height:0,left:0,right:0,top:0,bottom:0,x:0,y:0}})}removeTarget(e){(0,r.Q)(this._targets,(t=>t.target!==e)),0===this._targets.length&&null!==this._timer&&(cancelAnimationFrame(this._timer),this._timer=null)}}Object.defineProperty(l,"delay",{enumerable:!0,configurable:!0,writable:!0,value:200});let h=null;class u{constructor(e,t){Object.defineProperty(this,"_sensor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_element",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_listener",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_disposed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),this._sensor=(null===h&&(h="undefined"!=typeof ResizeObserver?new o:new l),h),this._element=e,this._listener=(0,r.O)(t),this._sensor.addTarget(e,t)}isDisposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._sensor.removeTarget(this._element),this._listener.dispose())}get sensor(){return this._sensor}}class c extends r.E{}Object.defineProperty(c,"className",{enumerable:!0,configurable:!0,writable:!0,value:"InterfaceColors"}),Object.defineProperty(c,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:r.E.classNames.concat([c.className])});class d extends r.E{_setDefaults(){this._setDefault("negativeBase",0),this._setDefault("numberFormat","#,###.#####"),this._setDefault("smallNumberThreshold",1);const e="_big_number_suffix_",t="_small_number_suffix_",i="_byte_suffix_";this._setDefault("bigNumberPrefixes",[{number:1e3,suffix:this._t(e+"3")},{number:1e6,suffix:this._t(e+"6")},{number:1e9,suffix:this._t(e+"9")},{number:1e12,suffix:this._t(e+"12")},{number:1e15,suffix:this._t(e+"15")},{number:1e18,suffix:this._t(e+"18")},{number:1e21,suffix:this._t(e+"21")},{number:1e24,suffix:this._t(e+"24")}]),this._setDefault("smallNumberPrefixes",[{number:1e-24,suffix:this._t(t+"24")},{number:1e-21,suffix:this._t(t+"21")},{number:1e-18,suffix:this._t(t+"18")},{number:1e-15,suffix:this._t(t+"15")},{number:1e-12,suffix:this._t(t+"12")},{number:1e-9,suffix:this._t(t+"9")},{number:1e-6,suffix:this._t(t+"6")},{number:.001,suffix:this._t(t+"3")}]),this._setDefault("bytePrefixes",[{number:1,suffix:this._t(i+"B")},{number:1024,suffix:this._t(i+"KB")},{number:1048576,suffix:this._t(i+"MB")},{number:1073741824,suffix:this._t(i+"GB")},{number:1099511627776,suffix:this._t(i+"TB")},{number:0x4000000000000,suffix:this._t(i+"PB")}]),super._setDefaults()}_beforeChanged(){super._beforeChanged()}format(e,t,i){let a;(null==t||(0,r.U)(t)&&"number"===t.toLowerCase())&&(t=this.get("numberFormat",""));let s=Number(e);if((0,r.V)(t))try{return this.get("intlLocales")?new Intl.NumberFormat(this.get("intlLocales"),t).format(s):new Intl.NumberFormat(void 0,t).format(s)}catch(e){return"Invalid"}else{t=(0,r.W)(t);let e,n=this.parseFormat(t,this._root.language);e=s>this.get("negativeBase")?n.positive:s{if(t.parsed)return;let i=t.source;"number"===i.toLowerCase()&&(i=this.get("numberFormat","#,###.#####"));let a=r.$.chunk(i,!0);for(let e=0;e=0?e.toExponential(t.decimals.passive).split("e"):e.toExponential().split("e"),e=Number(i[0]),s="e"+i[1],t.modSpacing&&(s=" "+s)}else if(0===t.decimals.passive)e=Math.round(e);else if(t.decimals.passive>0){let i=Math.pow(10,t.decimals.passive);e=Math.round(e*i)/i}let o="",l=(0,r.a0)(e).split("."),h=l[0];if(h.length0){let e=[],i=h.split("").reverse().join("");for(let r=0,a=h.length;r<=a;r+=t.thousands.interval){let a=i.substr(r,t.thousands.interval).split("").reverse().join("");""!==a&&e.unshift(a)}h=e.join(t.thousands.separator)}o+=h,1===l.length&&l.push("");let u=l[1];return u.length{switch(e.type){case"year":i=+e.value;break;case"month":r=+e.value-1;break;case"day":a=+e.value;break;case"hour":s=+e.value;break;case"minute":n=+e.value;break;case"second":o=+e.value;break;case"fractionalSecond":l=+e.value;break;case"weekday":switch(e.value){case"Sun":h=0;break;case"Mon":h=1;break;case"Tue":h=2;break;case"Wed":h=3;break;case"Thu":h=4;break;case"Fri":h=5;break;case"Sat":h=6}}})),24===s&&(s=0),{year:i,month:r,day:a,hour:s,minute:n,second:o,millisecond:l,weekday:h}}function g(e,t){const{year:i,month:r,day:a,hour:s,minute:n,second:o,millisecond:l}=b(e,t);return Date.UTC(i,r,a,s,n,o,l)}class p{constructor(e,t){if(Object.defineProperty(this,"_utc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_dtf",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),!t)throw new Error("You cannot use `new Class()`, instead use `Class.new()`");this.name=e,this._utc=new Intl.DateTimeFormat("UTC",{hour12:!1,timeZone:"UTC",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",weekday:"short",fractionalSecondDigits:3}),this._dtf=new Intl.DateTimeFormat("UTC",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",weekday:"short",fractionalSecondDigits:3})}static new(e){return new this(e,!0)}convertLocal(e){const t=this.offsetUTC(e),i=e.getTimezoneOffset(),r=new Date(e);r.setUTCMinutes(r.getUTCMinutes()-(t-i));const a=r.getTimezoneOffset();return i!=a&&r.setUTCMinutes(r.getUTCMinutes()+a-i),r}offsetUTC(e){return(g(this._utc,e)-g(this._dtf,e))/6e4}parseDate(e){return b(this._dtf,e)}}class f extends r.E{_setDefaults(){this._setDefault("capitalize",!0),this._setDefault("dateFormat","yyyy-MM-dd"),super._setDefaults()}_beforeChanged(){super._beforeChanged()}format(e,t){let i;void 0!==t&&""!==t||(t=this.get("dateFormat","yyyy-MM-dd"));let a=e;if((0,r.V)(t))try{const e=this.get("intlLocales");return e?new Intl.DateTimeFormat(e,t).format(a):new Intl.DateTimeFormat(void 0,t).format(a)}catch(e){return"Invalid"}let s=this.parseFormat(t);const n=this._root.timezone;return n&&!this._root.utc&&(a=n.convertLocal(a)),(0,r.k)(a.getTime())?(i=this.applyFormat(a,s),this.get("capitalize")&&(i=i.replace(/^.{1}/,i.substr(0,1).toUpperCase())),i):"Invalid date"}applyFormat(e,t){let i,a,s,n,o,l,h,u,c=t.template,d=e.getTime();this._root.utc?(i=e.getUTCFullYear(),a=e.getUTCMonth(),s=e.getUTCDay(),n=e.getUTCDate(),o=e.getUTCHours(),l=e.getUTCMinutes(),h=e.getUTCSeconds(),u=e.getUTCMilliseconds()):(i=e.getFullYear(),a=e.getMonth(),s=e.getDay(),n=e.getDate(),o=e.getHours(),l=e.getMinutes(),h=e.getSeconds(),u=e.getMilliseconds());for(let b=0,g=t.parts.length;b=12?this._t("PM"):this._t("AM");break;case"aa":g=o>=12?this._t("P.M."):this._t("A.M.");break;case"aaa":g=o>=12?this._t("P"):this._t("A");break;case"h":g=(0,r.a4)(o).toString();break;case"hh":g=(0,r.a2)((0,r.a4)(o),2,"0");break;case"H":g=o.toString();break;case"HH":g=(0,r.a2)(o,2,"0");break;case"K":g=(0,r.a4)(o,0).toString();break;case"KK":g=(0,r.a2)((0,r.a4)(o,0),2,"0");break;case"k":g=(o+1).toString();break;case"kk":g=(0,r.a2)(o+1,2,"0");break;case"m":g=l.toString();break;case"mm":g=(0,r.a2)(l,2,"0");break;case"s":g=h.toString();break;case"ss":g=(0,r.a2)(h,2,"0");break;case"S":case"SS":case"SSS":g=Math.round(u/1e3*Math.pow(10,t.parts[b].length)).toString();break;case"x":g=d.toString();break;case"n":case"nn":case"nnn":g=(0,r.a2)(u,t.parts[b].length,"0");break;case"z":g=(0,r.a3)(e,!1,!1,this._root.utc,this._root.timezone?this._root.timezone.name:void 0).replace(/[+-]+[0-9]+$/,"");break;case"zz":g=(0,r.a3)(e,!0,!1,this._root.utc,this._root.timezone?this._root.timezone.name:void 0);break;case"zzz":g=(0,r.a3)(e,!1,!0,this._root.utc,this._root.timezone?this._root.timezone.name:void 0).replace(/[+-]+[0-9]+$/,"");break;case"zzzz":g=(0,r.a3)(e,!0,!0,this._root.utc,this._root.timezone?this._root.timezone.name:void 0);break;case"Z":case"ZZ":let f=this._root.utc?"UTC":this._root.timezone;f instanceof p&&(f=f.name);const m=f?(0,r.a1)(f):e.getTimezoneOffset();let _=Math.abs(m)/60,y=Math.floor(_),v=60*_-60*y;this._root.utc&&(y=0,v=0),"Z"==t.parts[b]?(g="GMT",g+=m>0?"-":"+",g+=(0,r.a2)(y,2)+":"+(0,r.a2)(v,2)):(g=m>0?"-":"+",g+=(0,r.a2)(y,2)+(0,r.a2)(v,2));break;case"i":g=e.toISOString();break;case"I":g=e.toUTCString()}c=c.replace(r.Y,g)}return c}parseFormat(e){let t={template:"",parts:[]},i=r.$.chunk(e,!0);for(let e=0;e-1&&(o.year=parseInt(c[n.year])),n.year3>-1){let e=parseInt(c[n.year3]);e+=1e3,o.year=e}if(n.year2>-1){let e=parseInt(c[n.year2]);e+=e>50?1e3:2e3,o.year=e}if(n.year1>-1){let e=parseInt(c[n.year1]);e=10*Math.floor((new Date).getFullYear()/10)+e,o.year=e}if(n.monthLong>-1&&(o.month=this.resolveMonth(c[n.monthLong])),n.monthShort>-1&&(o.month=this.resolveShortMonth(c[n.monthShort])),n.month>-1&&(o.month=parseInt(c[n.month])-1),n.week>-1&&-1===n.day&&(o.month=0,o.day=(0,r.a9)(parseInt(c[n.week]),o.year,1,this._root.utc)),n.day>-1&&(o.day=parseInt(c[n.day])),n.yearDay>-1&&(o.month=0,o.day=parseInt(c[n.yearDay])),n.hourBase0>-1&&(o.hour=parseInt(c[n.hourBase0])),n.hourBase1>-1&&(o.hour=parseInt(c[n.hourBase1])-1),n.hour12Base0>-1){let e=parseInt(c[n.hour12Base0]);11==e&&(e=0),n.am>-1&&!this.isAm(c[n.am])&&(e+=12),o.hour=e}if(n.hour12Base1>-1){let e=parseInt(c[n.hour12Base1]);12==e&&(e=0),n.am>-1&&!this.isAm(c[n.am])&&(e+=12),o.hour=e}if(n.minute>-1&&(o.minute=parseInt(c[n.minute])),n.second>-1&&(o.second=parseInt(c[n.second])),n.millisecond>-1){let e=parseInt(c[n.millisecond]);2==n.millisecondDigits?e*=10:1==n.millisecondDigits&&(e*=100),o.millisecond=e}if(n.timestamp>-1){o.timestamp=parseInt(c[n.timestamp]);const e=new Date(o.timestamp);o.year=e.getUTCFullYear(),o.month=e.getUTCMonth(),o.day=e.getUTCDate(),o.hour=e.getUTCHours(),o.minute=e.getUTCMinutes(),o.second=e.getUTCSeconds(),o.millisecond=e.getUTCMilliseconds()}n.zone>-1&&(o.offset=this.resolveTimezoneOffset(new Date(o.year,o.month,o.day),c[n.zone])),n.iso>-1&&(o.year=(0,r.aa)(c[n.iso+0]),o.month=(0,r.aa)(c[n.iso+1])-1,o.day=(0,r.aa)(c[n.iso+2]),o.hour=(0,r.aa)(c[n.iso+3]),o.minute=(0,r.aa)(c[n.iso+4]),o.second=(0,r.aa)(c[n.iso+5]),o.millisecond=(0,r.aa)(c[n.iso+6]),"Z"==c[n.iso+7]||"z"==c[n.iso+7]?o.utc=!0:""!=c[n.iso+7]&&(o.offset=this.resolveTimezoneOffset(new Date(o.year,o.month,o.day),c[n.iso+7]))),i=o.utc?new Date(Date.UTC(o.year,o.month,o.day,o.hour,o.minute,o.second,o.millisecond)):new Date(o.year,o.month,o.day,o.hour,o.minute+o.offset,o.second,o.millisecond)}else i=new Date(e);return i}resolveTimezoneOffset(e,t){if(t.match(/([+\-]?)([0-9]{2}):?([0-9]{2})/)){let i=t.match(/([+\-]?)([0-9]{2}):?([0-9]{2})/),r=i[1],a=i[2],s=i[3],n=60*parseInt(a)+parseInt(s);return"+"==r&&(n*=-1),n-(e||new Date).getTimezoneOffset()}return 0}resolveMonth(e){let t=this._months().indexOf(e);return t>-1||!this._root.language.isDefault()&&(t=this._root.language.translateAll(this._months()).indexOf(e),t>-1)?t:0}resolveShortMonth(e){let t=this._shortMonths().indexOf(e);return t>-1?t:(t=this._months().indexOf(e),t>-1||this._root.language&&!this._root.language.isDefault()&&(t=this._root.language.translateAll(this._shortMonths()).indexOf(e),t>-1)?t:0)}isAm(e){return this.getStringList(["AM","A.M.","A"]).indexOf(e.toUpperCase())>-1}getStringList(e){let t=[];for(let i=0;ithis.get("negativeBase")?n.positive:o{if(t.parsed)return;let i=t.source,a=[];a=t.source.match(/^\[([^\]]*)\]/),a&&a.length&&""!==a[0]&&(i=t.source.substr(a[0].length),t.color=a[1]);let s=r.$.chunk(i,!0);for(let e=0;e{if(e==t||i){if(a/r<=1)return i||(i=e),!1;i=e}return!0})),i}getMilliseconds(e,t){return t||(t=this.get("baseUnit")),e*this._getUnitValue(t)}_getUnitValue(e){return this._getUnitValues()[e]}_getUnitValues(){return{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:2592e6,year:31536e6}}}const _={firstDayOfWeek:1,_decimalSeparator:".",_thousandSeparator:",",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date:"yyyy-MM-dd",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"AD",_era_bc:"BC",A:"",P:"",AM:"",PM:"","A.M.":"","P.M.":"",January:"",February:"",March:"",April:"",May:"",June:"",July:"",August:"",September:"",October:"",November:"",December:"",Jan:"",Feb:"",Mar:"",Apr:"","May(short)":"May",Jun:"",Jul:"",Aug:"",Sep:"",Oct:"",Nov:"",Dec:"",Sunday:"",Monday:"",Tuesday:"",Wednesday:"",Thursday:"",Friday:"",Saturday:"",Sun:"",Mon:"",Tue:"",Wed:"",Thu:"",Fri:"",Sat:"",_dateOrd:function(e){let t="th";if(e<11||e>13)switch(e%10){case 1:t="st";break;case 2:t="nd";break;case 3:t="rd"}return t},"Zoom Out":"",Play:"",Stop:"",Legend:"","Press ENTER to toggle":"",Loading:"",Home:"",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Force directed tree":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"",Image:"",Data:"",Print:"","Press ENTER or use arrow keys to navigate":"","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"","From %1":"","To %1":"","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":"",Close:"",Minimize:""};class y extends r.E{_setDefaults(){this.setPrivate("defaultLocale",_),super._setDefaults()}translate(e,t,...i){t||(t=this._root.locale||this.getPrivate("defaultLocale"));let r=e,a=t[e];if(null===a)r="";else if(null!=a)a&&(r=a);else if(t!==this.getPrivate("defaultLocale"))return this.translate(e,this.getPrivate("defaultLocale"),...i);if(i.length)for(let e=i.length,t=0;t{this.setTranslationAny(e,i,t)}))}translateEmpty(e,t,...i){let r=this.translate(e,t,...i);return r==e?"":r}translateFunc(e,t){return this._root.locale[e]?this._root.locale[e]:t!==this.getPrivate("defaultLocale")?this.translateFunc(e,this.getPrivate("defaultLocale")):()=>""}translateAll(e,t){return this.isDefault()?e:(0,r.K)(e,(e=>this.translate(e,t)))}isDefault(){return this.getPrivate("defaultLocale")===this._root.locale}}class v{constructor(e=1,t=0,i=0,r=1,a=0,s=0){Object.defineProperty(this,"a",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"b",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"c",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"d",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tx",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ty",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.a=e,this.b=t,this.c=i,this.d=r,this.tx=a,this.ty=s}setTransform(e,t,i,r,a,s=1){this.a=Math.cos(a)*s,this.b=Math.sin(a)*s,this.c=-Math.sin(a)*s,this.d=Math.cos(a)*s,this.tx=e-(i*this.a+r*this.c),this.ty=t-(i*this.b+r*this.d)}apply(e){return{x:this.a*e.x+this.c*e.y+this.tx,y:this.b*e.x+this.d*e.y+this.ty}}applyInverse(e){const t=1/(this.a*this.d+this.c*-this.b);return{x:this.d*t*e.x+-this.c*t*e.y+(this.ty*this.c-this.tx*this.d)*t,y:this.a*t*e.y+-this.b*t*e.x+(-this.ty*this.a+this.tx*this.b)*t}}append(e){const t=this.a,i=this.b,r=this.c,a=this.d;this.a=e.a*t+e.b*r,this.b=e.a*i+e.b*a,this.c=e.c*t+e.d*r,this.d=e.c*i+e.d*a,this.tx=e.tx*t+e.ty*r+this.tx,this.ty=e.tx*i+e.ty*a+this.ty}prepend(e){const t=this.tx;if(1!==e.a||0!==e.b||0!==e.c||1!==e.d){const t=this.a,i=this.c;this.a=t*e.a+this.b*e.c,this.b=t*e.b+this.b*e.d,this.c=i*e.a+this.d*e.c,this.d=i*e.b+this.d*e.d}this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty}copyFrom(e){this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty}}var w=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var i=[],r=!0,a=!1,s=void 0;try{for(var n,o=e[Symbol.iterator]();!(r=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);r=!0);}catch(e){a=!0,s=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw s}}return i}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},x=2*Math.PI,k=function(e,t,i,r,a,s,n){var o=e.x,l=e.y;return{x:r*(o*=t)-a*(l*=i)+s,y:a*o+r*l+n}},P=function(e,t){var i=1.5707963267948966===t?.551915024494:-1.5707963267948966===t?-.551915024494:4/3*Math.tan(t/4),r=Math.cos(e),a=Math.sin(e),s=Math.cos(e+t),n=Math.sin(e+t);return[{x:r-a*i,y:a+r*i},{x:s+n*i,y:n-s*i},{x:s,y:n}]},O=function(e,t,i,r){var a=e*i+t*r;return a>1&&(a=1),a<-1&&(a=-1),(e*r-t*i<0?-1:1)*Math.acos(a)},T=function(e){var t=e.px,i=e.py,r=e.cx,a=e.cy,s=e.rx,n=e.ry,o=e.xAxisRotation,l=void 0===o?0:o,h=e.largeArcFlag,u=void 0===h?0:h,c=e.sweepFlag,d=void 0===c?0:c,b=[];if(0===s||0===n)return[];var g=Math.sin(l*x/360),p=Math.cos(l*x/360),f=p*(t-r)/2+g*(i-a)/2,m=-g*(t-r)/2+p*(i-a)/2;if(0===f&&0===m)return[];s=Math.abs(s),n=Math.abs(n);var _=Math.pow(f,2)/Math.pow(s,2)+Math.pow(m,2)/Math.pow(n,2);_>1&&(s*=Math.sqrt(_),n*=Math.sqrt(_));var y=function(e,t,i,r,a,s,n,o,l,h,u,c){var d=Math.pow(a,2),b=Math.pow(s,2),g=Math.pow(u,2),p=Math.pow(c,2),f=d*b-d*p-b*g;f<0&&(f=0),f/=d*p+b*g;var m=(f=Math.sqrt(f)*(n===o?-1:1))*a/s*c,_=f*-s/a*u,y=h*m-l*_+(e+i)/2,v=l*m+h*_+(t+r)/2,w=(u-m)/a,k=(c-_)/s,P=(-u-m)/a,T=(-c-_)/s,B=O(1,0,w,k),M=O(w,k,P,T);return 0===o&&M>0&&(M-=x),1===o&&M<0&&(M+=x),[y,v,B,M]}(t,i,r,a,s,n,u,d,g,p,f,m),v=w(y,4),T=v[0],B=v[1],M=v[2],S=v[3],C=Math.abs(S)/(x/4);Math.abs(1-C)<1e-7&&(C=1);var E=Math.max(Math.ceil(C),1);S/=E;for(var j=0;j1){const t=/^([01])([01])(.*)$/.exec(r);null!==t&&(e.splice(i,0,t[1]),++i,e.splice(i,0,t[2]),++i,t[3].length>0?e[i]=t[3]:e.splice(i,1))}if(++i,r=e[i],r.length>1){const t=/^([01])(.+)$/.exec(r);null!==t&&(e.splice(i,0,t[1]),++i,e[i]=t[2])}}}function E(e){if(0===e||1===e)return e;throw new Error("Flag must be 0 or 1")}function j(e,t){for(;(!e.interactive||t(e))&&e._parent;)e=e._parent}function A(e,t,i){return(0,r.h)(e,(0,r.aj)(t),(e=>{const t=(0,r.ak)(e);let a=e.touches;a?(0==a.length&&(a=e.changedTouches),i((0,r.am)(a),t)):i([e],t)}))}function D(e){const t=document.createElement("canvas");t.width=1,t.height=1;const i=t.getContext("2d",{willReadFrequently:!0});i.drawImage(e,0,0,1,1);try{return i.getImageData(0,0,1,1),!1}catch(e){return!0}}function L(e){e.width=0,e.height=0,e.style.width="0px",e.style.height="0px"}function R(e){return Math.floor(e)+.5}class z{constructor(){Object.defineProperty(this,"_x",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_y",{enumerable:!0,configurable:!0,writable:!0,value:0})}get x(){return this._x}get y(){return this._y}set x(e){this._x=e}set y(e){this._y=e}}class H extends r.ar{constructor(e){super(),Object.defineProperty(this,"_layer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"mask",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"visible",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"exportable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"interactive",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"inactive",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"wheelable",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"cancelTouch",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"isMeasured",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"buttonMode",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"alpha",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"compoundAlpha",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"angle",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"scale",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"x",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"y",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"crisp",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"pivot",{enumerable:!0,configurable:!0,writable:!0,value:new z}),Object.defineProperty(this,"filter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cursorOverStyle",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_replacedCursorStyle",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_localMatrix",{enumerable:!0,configurable:!0,writable:!0,value:new v}),Object.defineProperty(this,"_matrix",{enumerable:!0,configurable:!0,writable:!0,value:new v}),Object.defineProperty(this,"_uMatrix",{enumerable:!0,configurable:!0,writable:!0,value:new v}),Object.defineProperty(this,"_renderer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_parent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_localBounds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_bounds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_colorId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._renderer=e}subStatus(e){return{inactive:null==this.inactive?e.inactive:this.inactive,layer:this._layer||e.layer}}_dispose(){this._renderer._removeObject(this),this.getLayer().dirty=!0}getCanvas(){return this.getLayer().view}getLayer(){let e=this;for(;;){if(e._layer)return e._layer;if(!e._parent)return this._renderer.defaultLayer;e=e._parent}}setLayer(e,t){if(null==e)this._layer=void 0;else{const i=!0;this._layer=this._renderer.getLayer(e,i),this._layer.visible=i,this._layer.margin=t,t&&(0,r.as)(this._layer.view,!1),this._renderer._ghostLayer.setMargin(this._renderer.layers),this._parent&&this._parent.registerChildLayer(this._layer),this._layer.dirty=!0,this._renderer.resizeLayer(this._layer),this._renderer.resizeGhost()}}markDirtyLayer(){this.getLayer().dirty=!0}clear(){this.invalidateBounds()}invalidateBounds(){this._localBounds=void 0}_addBounds(e){}_getColorId(){return void 0===this._colorId&&(this._colorId=this._renderer.paintId(this)),this._colorId}_isInteractive(e){return!e.inactive&&(this.interactive||this._renderer._forceInteractive>0)}_isInteractiveMask(e){return this._isInteractive(e)}contains(e){for(;;){if(e===this)return!0;if(!e._parent)return!1;e=e._parent}}toGlobal(e){return this._matrix.apply(e)}toLocal(e){return this._matrix.applyInverse(e)}getLocalMatrix(){return this._uMatrix.setTransform(0,0,this.pivot.x,this.pivot.y,this.angle*Math.PI/180,this.scale),this._uMatrix}getLocalBounds(){if(!this._localBounds){const e=1e7;this._localBounds={left:e,top:e,right:-e,bottom:-e},this._addBounds(this._localBounds)}return this._localBounds}getAdjustedBounds(e){this._setMatrix();const t=this.getLocalMatrix(),i=t.apply({x:e.left,y:e.top}),r=t.apply({x:e.right,y:e.top}),a=t.apply({x:e.right,y:e.bottom}),s=t.apply({x:e.left,y:e.bottom});return{left:Math.min(i.x,r.x,a.x,s.x),top:Math.min(i.y,r.y,a.y,s.y),right:Math.max(i.x,r.x,a.x,s.x),bottom:Math.max(i.y,r.y,a.y,s.y)}}on(e,t,i){return this.interactive?this._renderer._addEvent(this,e,t,i):new r.ae((()=>{}))}_setMatrix(){this._localMatrix.setTransform(this.x,this.y,this.pivot.x,this.pivot.y,this.angle*Math.PI/180,this.scale),this._matrix.copyFrom(this._localMatrix),this._parent&&this._matrix.prepend(this._parent._matrix)}_transform(e,t){const i=this._matrix;let r=i.tx*t,a=i.ty*t;this.crisp&&(r=R(r),a=R(a)),e.setTransform(i.a*t,i.b*t,i.c*t,i.d*t,r,a)}_transformMargin(e,t,i){const r=this._matrix;e.setTransform(r.a*t,r.b*t,r.c*t,r.d*t,(r.tx+i.left)*t,(r.ty+i.top)*t)}_transformLayer(e,t,i){i.margin?this._transformMargin(e,i.scale||t,i.margin):this._transform(e,i.scale||t)}render(e){if(this.visible&&(!1!==this.exportable||!this._renderer._omitTainted)){this._setMatrix();const t=this.subStatus(e),i=this._renderer.resolution,a=this._renderer.layers,s=this._renderer._ghostLayer,n=s.context,o=this.mask;o&&o._setMatrix(),(0,r.i)(a,(e=>{if(e){const t=e.context;t.save(),o&&(o._transformLayer(t,i,e),o._runPath(t),t.clip()),t.globalAlpha=this.compoundAlpha*this.alpha,this._transformLayer(t,i,e),this.filter&&(t.filter=this.filter)}})),n.save(),o&&this._isInteractiveMask(t)&&(o._transformMargin(n,i,s.margin),o._runPath(n),n.clip()),this._transformMargin(n,i,s.margin),this._render(t),n.restore(),(0,r.i)(a,(e=>{e&&e.context.restore()}))}}_render(e){!1===this.exportable&&(e.layer.tainted=!0)}hovering(){return this._renderer._hovering.has(this)}dragging(){return this._renderer._dragging.some((e=>e.value===this))}shouldCancelTouch(){const e=this._renderer;return!(e.tapToActivate&&!e._touchActive)&&(!!this.cancelTouch||!!this._parent&&this._parent.shouldCancelTouch())}}class F extends H{constructor(){super(...arguments),Object.defineProperty(this,"interactiveChildren",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"_childLayers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_children",{enumerable:!0,configurable:!0,writable:!0,value:[]})}_isInteractiveMask(e){return this.interactiveChildren||super._isInteractiveMask(e)}addChild(e){e._parent=this,this._children.push(e),e._layer&&this.registerChildLayer(e._layer)}addChildAt(e,t){e._parent=this,this._children.splice(t,0,e),e._layer&&this.registerChildLayer(e._layer)}removeChild(e){e._parent=void 0,(0,r.al)(this._children,e)}_render(e){super._render(e);const t=this._renderer;this.interactive&&this.interactiveChildren&&++t._forceInteractive,(0,r.i)(this._children,(t=>{t.compoundAlpha=this.compoundAlpha*this.alpha,t.render(e)})),this.interactive&&this.interactiveChildren&&--t._forceInteractive}registerChildLayer(e){this._childLayers||(this._childLayers=[]),(0,r.an)(this._childLayers,e),this._parent&&this._parent.registerChildLayer(e)}markDirtyLayer(e=!1){super.markDirtyLayer(),e&&this._childLayers&&(0,r.i)(this._childLayers,(e=>e.dirty=!0))}_dispose(){super._dispose(),this._childLayers&&(0,r.i)(this._childLayers,(e=>{e.dirty=!0}))}}function Y(e,t){e.left=Math.min(e.left,t.x),e.top=Math.min(e.top,t.y),e.right=Math.max(e.right,t.x),e.bottom=Math.max(e.bottom,t.y)}class I{colorize(e,t){}path(e){}addBounds(e){}}class W extends I{colorize(e,t){e.beginPath()}}class U extends I{constructor(e){super(),Object.defineProperty(this,"color",{enumerable:!0,configurable:!0,writable:!0,value:e})}colorize(e,t){e.fillStyle=void 0!==t?t:this.color}}class X extends I{constructor(e){super(),Object.defineProperty(this,"clearShadow",{enumerable:!0,configurable:!0,writable:!0,value:e})}colorize(e,t){e.fill(),this.clearShadow&&(e.shadowColor="",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0)}}class G extends I{colorize(e,t){e.stroke()}}class N extends I{constructor(e,t,i){super(),Object.defineProperty(this,"width",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"color",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"lineJoin",{enumerable:!0,configurable:!0,writable:!0,value:i})}colorize(e,t){e.strokeStyle=void 0!==t?t:this.color,e.lineWidth=this.width,this.lineJoin&&(e.lineJoin=this.lineJoin)}}class V extends I{constructor(e){super(),Object.defineProperty(this,"dash",{enumerable:!0,configurable:!0,writable:!0,value:e})}colorize(e,t){e.setLineDash(this.dash)}}class Z extends I{constructor(e){super(),Object.defineProperty(this,"dashOffset",{enumerable:!0,configurable:!0,writable:!0,value:e})}colorize(e,t){e.lineDashOffset=this.dashOffset}}class q extends I{constructor(e,t,i,r){super(),Object.defineProperty(this,"x",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"y",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"width",{enumerable:!0,configurable:!0,writable:!0,value:i}),Object.defineProperty(this,"height",{enumerable:!0,configurable:!0,writable:!0,value:r})}path(e){e.rect(this.x,this.y,this.width,this.height)}addBounds(e){const t=this.x,i=this.y,r=t+this.width,a=i+this.height;Y(e,{x:t,y:i}),Y(e,{x:r,y:i}),Y(e,{x:t,y:a}),Y(e,{x:r,y:a})}}class K extends I{constructor(e,t,i){super(),Object.defineProperty(this,"x",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"y",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"radius",{enumerable:!0,configurable:!0,writable:!0,value:i})}path(e){e.moveTo(this.x+this.radius,this.y),e.arc(this.x,this.y,this.radius,0,2*Math.PI)}addBounds(e){Y(e,{x:this.x-this.radius,y:this.y-this.radius}),Y(e,{x:this.x+this.radius,y:this.y+this.radius})}}class J extends I{constructor(e,t,i,r){super(),Object.defineProperty(this,"x",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"y",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"radiusX",{enumerable:!0,configurable:!0,writable:!0,value:i}),Object.defineProperty(this,"radiusY",{enumerable:!0,configurable:!0,writable:!0,value:r})}path(e){e.ellipse(0,0,this.radiusX,this.radiusY,0,0,2*Math.PI)}addBounds(e){Y(e,{x:this.x-this.radiusX,y:this.y-this.radiusY}),Y(e,{x:this.x+this.radiusX,y:this.y+this.radiusY})}}class $ extends I{constructor(e,t,i,r,a,s){super(),Object.defineProperty(this,"cx",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"cy",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"radius",{enumerable:!0,configurable:!0,writable:!0,value:i}),Object.defineProperty(this,"startAngle",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"endAngle",{enumerable:!0,configurable:!0,writable:!0,value:a}),Object.defineProperty(this,"anticlockwise",{enumerable:!0,configurable:!0,writable:!0,value:s})}path(e){this.radius>0&&e.arc(this.cx,this.cy,this.radius,this.startAngle,this.endAngle,this.anticlockwise)}addBounds(e){let t=(0,r.B)(this.cx,this.cy,this.startAngle*r.at,this.endAngle*r.at,this.radius);Y(e,{x:t.left,y:t.top}),Y(e,{x:t.right,y:t.bottom})}}class Q extends I{constructor(e,t,i,r,a){super(),Object.defineProperty(this,"x1",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"y1",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"x2",{enumerable:!0,configurable:!0,writable:!0,value:i}),Object.defineProperty(this,"y2",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"radius",{enumerable:!0,configurable:!0,writable:!0,value:a})}path(e){this.radius>0&&e.arcTo(this.x1,this.y1,this.x2,this.y2,this.radius)}addBounds(e){}}class ee extends I{constructor(e,t){super(),Object.defineProperty(this,"x",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"y",{enumerable:!0,configurable:!0,writable:!0,value:t})}path(e){e.lineTo(this.x,this.y)}addBounds(e){Y(e,{x:this.x,y:this.y})}}class te extends I{constructor(e,t){super(),Object.defineProperty(this,"x",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"y",{enumerable:!0,configurable:!0,writable:!0,value:t})}path(e){e.moveTo(this.x,this.y)}addBounds(e){Y(e,{x:this.x,y:this.y})}}class ie extends I{path(e){e.closePath()}}class re extends I{constructor(e,t,i,r,a,s){super(),Object.defineProperty(this,"cpX",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"cpY",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"cpX2",{enumerable:!0,configurable:!0,writable:!0,value:i}),Object.defineProperty(this,"cpY2",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"toX",{enumerable:!0,configurable:!0,writable:!0,value:a}),Object.defineProperty(this,"toY",{enumerable:!0,configurable:!0,writable:!0,value:s})}path(e){e.bezierCurveTo(this.cpX,this.cpY,this.cpX2,this.cpY2,this.toX,this.toY)}addBounds(e){Y(e,{x:this.cpX,y:this.cpY}),Y(e,{x:this.cpX2,y:this.cpY2}),Y(e,{x:this.toX,y:this.toY})}}class ae extends I{constructor(e,t,i,r){super(),Object.defineProperty(this,"cpX",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"cpY",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"toX",{enumerable:!0,configurable:!0,writable:!0,value:i}),Object.defineProperty(this,"toY",{enumerable:!0,configurable:!0,writable:!0,value:r})}path(e){e.quadraticCurveTo(this.cpX,this.cpY,this.toX,this.toY)}addBounds(e){Y(e,{x:this.cpX,y:this.cpY}),Y(e,{x:this.toX,y:this.toY})}}class se extends I{constructor(e,t,i,r,a){super(),Object.defineProperty(this,"color",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"blur",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"offsetX",{enumerable:!0,configurable:!0,writable:!0,value:i}),Object.defineProperty(this,"offsetY",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"opacity",{enumerable:!0,configurable:!0,writable:!0,value:a})}colorize(e,t){this.opacity&&(e.fillStyle=this.color),e.shadowColor=this.color,e.shadowBlur=this.blur,e.shadowOffsetX=this.offsetX,e.shadowOffsetY=this.offsetY}}class ne extends I{constructor(e,t,i,r,a){super(),Object.defineProperty(this,"image",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"width",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"height",{enumerable:!0,configurable:!0,writable:!0,value:i}),Object.defineProperty(this,"x",{enumerable:!0,configurable:!0,writable:!0,value:r}),Object.defineProperty(this,"y",{enumerable:!0,configurable:!0,writable:!0,value:a})}path(e){e.drawImage(this.image,this.x,this.y,this.width,this.height)}addBounds(e){Y(e,{x:this.x,y:this.y}),Y(e,{x:this.width,y:this.height})}}class oe extends H{constructor(){super(...arguments),Object.defineProperty(this,"_operations",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"blendMode",{enumerable:!0,configurable:!0,writable:!0,value:r.ao.NORMAL}),Object.defineProperty(this,"_hasShadows",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_fillAlpha",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_strokeAlpha",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}clear(){super.clear(),this._operations.length=0}_pushOp(e){this._operations.push(e)}beginFill(e,t=1){this._fillAlpha=t,e?e instanceof r.C?this._pushOp(new U(e.toCSS(t))):(this.isMeasured=!0,this._pushOp(new U(e))):this._pushOp(new U("rgba(0, 0, 0, "+t+")"))}endFill(){this._pushOp(new X(this._hasShadows))}endStroke(){this._pushOp(new G)}beginPath(){this._pushOp(new W)}lineStyle(e=0,t,i=1,a){this._strokeAlpha=i,t?t instanceof r.C?this._pushOp(new N(e,t.toCSS(i),a)):this._pushOp(new N(e,t,a)):this._pushOp(new N(e,"rgba(0, 0, 0, "+i+")",a))}setLineDash(e){this._pushOp(new V(e||[]))}setLineDashOffset(e=0){this._pushOp(new Z(e))}drawRect(e,t,i,r){this._pushOp(new q(e,t,i,r))}drawCircle(e,t,i){this._pushOp(new K(e,t,i))}drawEllipse(e,t,i,r){this._pushOp(new J(e,t,i,r))}arc(e,t,i,r,a,s=!1){this._pushOp(new $(e,t,i,r,a,s))}arcTo(e,t,i,r,a){this._pushOp(new Q(e,t,i,r,a))}lineTo(e,t){this._pushOp(new ee(e,t))}moveTo(e,t){this._pushOp(new te(e,t))}bezierCurveTo(e,t,i,r,a,s){this._pushOp(new re(e,t,i,r,a,s))}quadraticCurveTo(e,t,i,r){this._pushOp(new ae(e,t,i,r))}closePath(){this._pushOp(new ie)}shadow(e,t=0,i=0,r=0,a){this._hasShadows=!0,this._pushOp(new se(a?e.toCSS(a):e.toCSS(this._fillAlpha||this._strokeAlpha),t,i,r))}image(e,t,i,r,a){this._pushOp(new ne(e,t,i,r,a))}svgPath(e){let t=0,i=0,a=null,s=null,n=null,o=null;const l=/([MmZzLlHhVvCcSsQqTtAa])([^MmZzLlHhVvCcSsQqTtAa]*)/g,h=/[\u0009\u0020\u000A\u000C\u000D]*([\+\-]?[0-9]*\.?[0-9]+(?:[eE][\+\-]?[0-9]+)?)[\u0009\u0020\u000A\u000C\u000D]*,?/g;let u;for(;null!==(u=l.exec(e));){const e=u[1],l=u[2],c=[];for(;null!==(u=h.exec(l));)c.push(u[1]);switch("S"!==e&&"s"!==e&&"C"!==e&&"c"!==e&&(a=null,s=null),"Q"!==e&&"q"!==e&&"T"!==e&&"t"!==e&&(n=null,o=null),e){case"M":S(e,c.length,2),t=+c[0],i=+c[1],this.moveTo(t,i);for(let e=2;e{this.bezierCurveTo(e.x1,e.y1,e.x2,e.y2,e.x,e.y),t=e.x,i=e.y}))}break;case"Z":case"z":B(e,c.length,0),this.closePath()}}}_runPath(e){e.beginPath(),(0,r.i)(this._operations,(t=>{t.path(e)}))}_render(e){super._render(e);const t=e.layer.dirty,i=this._isInteractive(e);if(t||i){const a=e.layer.context,s=this._renderer._ghostLayer.context;let n;t&&(a.globalCompositeOperation=this.blendMode,a.beginPath()),i&&(s.beginPath(),n=this._getColorId()),(0,r.i)(this._operations,(e=>{t&&(e.path(a),e.colorize(a,void 0)),i&&(e.path(s),e.colorize(s,n))}))}}renderDetached(e){if(this.visible){this._setMatrix(),e.save();const t=this.mask;t&&(t._setMatrix(),t._transform(e,1),t._runPath(e),e.clip()),e.globalAlpha=this.compoundAlpha*this.alpha,this._transform(e,1),this.filter&&(e.filter=this.filter),e.globalCompositeOperation=this.blendMode,e.beginPath(),(0,r.i)(this._operations,(t=>{t.path(e),t.colorize(e,void 0)})),e.restore()}}_addBounds(e){this.visible&&this.isMeasured&&(0,r.i)(this._operations,(t=>{t.addBounds(e)}))}}class le extends H{constructor(e,t,i){super(e),Object.defineProperty(this,"text",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"style",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"resolution",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"textVisible",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"_textInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_originalScale",{enumerable:!0,configurable:!0,writable:!0,value:1}),this.text=t,this.style=i}invalidateBounds(){super.invalidateBounds(),this._textInfo=void 0}_shared(e){this.style.textAlign&&(e.textAlign=this.style.textAlign),this.style.direction&&(e.direction=this.style.direction),this.style.textBaseline&&(e.textBaseline=this.style.textBaseline)}_prerender(e,t=!1,i=!1){super._render(e);const a=e.layer.context,s=this._renderer._ghostLayer.context,n=this.style;let o=this._getFontStyle(void 0,i);a.font=o,this._isInteractive(e)&&!t&&(s.font=o),n.fill&&(n.fill instanceof r.C?a.fillStyle=n.fill.toCSS(null!=n.fillOpacity?n.fillOpacity:1):a.fillStyle=n.fill),n.shadowColor&&(e.layer.context.shadowColor=n.shadowColor.toCSS(n.shadowOpacity||1)),n.shadowBlur&&(e.layer.context.shadowBlur=n.shadowBlur),n.shadowOffsetX&&(e.layer.context.shadowOffsetX=n.shadowOffsetX),n.shadowOffsetY&&(e.layer.context.shadowOffsetY=n.shadowOffsetY),this._shared(a),this._isInteractive(e)&&!t&&(s.fillStyle=this._getColorId(),this._shared(s))}_getFontStyle(e,t=!1){const i=this.style;let a=[];return e&&e.fontVariant?a.push(e.fontVariant):i.fontVariant&&a.push(i.fontVariant),t||(e&&e.fontWeight?a.push(e.fontWeight):i.fontWeight&&a.push(i.fontWeight)),e&&e.fontStyle?a.push(e.fontStyle):i.fontStyle&&a.push(i.fontStyle),e&&e.fontSize?((0,r.k)(e.fontSize)&&(e.fontSize=e.fontSize+"px"),a.push(e.fontSize)):i.fontSize&&((0,r.k)(i.fontSize)&&(i.fontSize=i.fontSize+"px"),a.push(i.fontSize)),e&&e.fontFamily?a.push(e.fontFamily):i.fontFamily?a.push(i.fontFamily):a.length&&a.push("Arial"),a.join(" ")}_render(e){if(this._textInfo||this._measure(e),this.textVisible){const t=this._isInteractive(e),i=e.layer.context,a=e.layer.dirty,s=this._renderer._ghostLayer.context;i.save(),s.save(),this._prerender(e),(0,r.i)(this._textInfo,((n,o)=>{(0,r.i)(n.textChunks,((o,l)=>{if(o.style&&(i.save(),s.save(),i.font=o.style,this._isInteractive(e)&&(s.font=o.style)),o.fill&&(i.save(),i.fillStyle=o.fill.toCSS()),a&&i.fillText(o.text,o.offsetX,n.offsetY+o.offsetY),"underline"==o.textDecoration||"line-through"==o.textDecoration){let e,t=1,a=1,s=o.height,l=o.offsetX;switch(this.style.textAlign){case"right":case"end":l-=o.width;break;case"center":l-=o.width/2}if(o.style)switch(r.$.getTextStyle(o.style).fontWeight){case"bolder":case"bold":case"700":case"800":case"900":t=2}s&&(a=s/20),e="line-through"==o.textDecoration?t+n.offsetY+o.offsetY-o.height/2:t+1.5*a+n.offsetY+o.offsetY,i.save(),i.beginPath(),o.fill?i.strokeStyle=o.fill.toCSS():this.style.fill&&this.style.fill instanceof r.C&&(i.strokeStyle=this.style.fill.toCSS()),i.lineWidth=t*a,i.moveTo(l,e),i.lineTo(l+o.width,e),i.stroke(),i.restore()}t&&this.interactive&&s.fillText(o.text,o.offsetX,n.offsetY+o.offsetY),o.fill&&i.restore(),o.style&&(i.restore(),s.restore())}))})),i.restore(),s.restore()}}_addBounds(e){if(this.visible&&this.isMeasured){const t=this._measure({inactive:this.inactive,layer:this.getLayer()});Y(e,{x:t.left,y:t.top}),Y(e,{x:t.right,y:t.bottom})}}_ignoreFontWeight(){return/apple/i.test(navigator.vendor)}_measure(e){const t=e.layer.context,i=this._renderer._ghostLayer.context,a="rtl"==this.style.direction;this._textInfo=[];const s=this.style.oversizedBehavior,n=this.style.maxWidth,o=(0,r.k)(n)&&"truncate"==s,l=(0,r.k)(n)&&("wrap"==s||"wrap-no-break"==s);t.save(),i.save(),this._prerender(e,!0,this._ignoreFontWeight());const h="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",u=this.text.toString().replace(/\r/g,"").split(/\n/);let c,d=!0,b=0,g=0,p=0;(0,r.i)(u,((e,a)=>{let s;for(s=""==e?[{type:"value",text:""}]:r.$.chunk(e,!1,this.style.ignoreFormatting);s.length>0;){let e={offsetY:p,ascent:0,width:0,height:0,left:0,right:0,textChunks:[]};const a=this._measureText(h,t),u=a.actualBoundingBoxAscent+a.actualBoundingBoxDescent;let f;e.height=u,e.ascent=a.actualBoundingBoxAscent;let m,_,y,v=this.style.textDecoration,w=!1,x=!0,k=[];(0,r.ap)(s,((a,u)=>{if("format"==a.type)if("[/]"==a.text)d||(t.restore(),i.restore(),d=!0),m=void 0,c=void 0,_=void 0,v=this.style.textDecoration,y=void 0,f=a.text;else{d||(t.restore(),i.restore());let s=r.$.getTextStyle(a.text);const n=this._getFontStyle(s);t.save(),i.save(),t.font=n,c=n,f=a.text,s.textDecoration&&(v=s.textDecoration),s.fill&&(m=s.fill),s.width&&(_=(0,r.aa)(s.width)),s.verticalAlign&&(y=s.verticalAlign),d=!1;const o=this._measureText(h,t),l=o.actualBoundingBoxAscent+o.actualBoundingBoxDescent;l>e.height&&(e.height=l),o.actualBoundingBoxAscent>e.ascent&&(e.ascent=o.actualBoundingBoxAscent)}else if("value"==a.type&&!w){const i=this._measureText(a.text,t);let h=i.actualBoundingBoxLeft+i.actualBoundingBoxRight;if(o){let i=x||this.style.breakWords||!1;const r=this.style.ellipsis||"",s=this._measureText(r,t),o=s.actualBoundingBoxLeft+s.actualBoundingBoxRight;if(e.width+h>n){const s=n-e.width-o;a.text=this._truncateText(t,a.text,s,i),a.text+=r,w=!0}}else if(l&&e.width+h>n){const i=n-e.width,o=this._truncateText(t,a.text,i,!1,x&&"wrap-no-break"!=this.style.oversizedBehavior);if(""==o)return this.textVisible=!0,!1;k=s.slice(u+1),(0,r.au)(o)!=(0,r.au)(a.text)&&(k.unshift({type:"value",text:a.text.substr(o.length)}),f&&k.unshift({type:"format",text:f})),a.text=(0,r.au)(o),s=[],w=!0}let d=1,b=1;if(c&&_&&_>h){const e=h/_;switch(this.style.textAlign){case"right":case"end":d=e;break;case"center":d=e,b=e;break;default:b=e}h=_}const g=i.actualBoundingBoxAscent+i.actualBoundingBoxDescent;g>e.height&&(e.height=g),i.actualBoundingBoxAscent>e.ascent&&(e.ascent=i.actualBoundingBoxAscent),e.width+=h,e.left+=i.actualBoundingBoxLeft/d,e.right+=i.actualBoundingBoxRight/b,e.textChunks.push({style:c,fill:m,text:a.text,width:h,height:g,left:i.actualBoundingBoxLeft,right:i.actualBoundingBoxRight,ascent:i.actualBoundingBoxAscent,offsetX:0,offsetY:0,textDecoration:v,verticalAlign:y}),x=!1}return!0})),this.style.lineHeight instanceof r.P?(e.height*=this.style.lineHeight.value,e.ascent*=this.style.lineHeight.value):(e.height*=this.style.lineHeight||1.2,e.ascent*=this.style.lineHeight||1.2),b{let i=0;(0,r.i)(e.textChunks,(t=>{if(t.offsetX=i+t.left-e.left,t.offsetY+=e.height-e.height*(this.style.baselineRatio||.19),i+=t.width,t.verticalAlign)switch(t.verticalAlign){case"super":t.offsetY-=e.height/2-t.height/2;break;case"sub":t.offsetY+=t.height/2}}))}));const f={left:a?-g:-b,top:0,right:a?b:g,bottom:p};if("none"!==s){const e=this._fitRatio(f);if(e<1)if("fit"==s)(0,r.k)(this.style.minScale)&&ei&&""!=t);return t}_measureText(e,t){let i=t.measureText(e),r={};if(null==i.actualBoundingBoxAscent){const t=document.createElement("div");t.innerText=e,t.style.visibility="hidden",t.style.position="absolute",t.style.top="-1000000px;",t.style.fontFamily=this.style.fontFamily||"",t.style.fontSize=this.style.fontSize+"",document.body.appendChild(t);const a=t.getBoundingClientRect();document.body.removeChild(t);const s=a.height,n=i.width;r={actualBoundingBoxAscent:s,actualBoundingBoxDescent:0,actualBoundingBoxLeft:0,actualBoundingBoxRight:n,fontBoundingBoxAscent:s,fontBoundingBoxDescent:0,width:n}}else r={actualBoundingBoxAscent:i.actualBoundingBoxAscent,actualBoundingBoxDescent:i.actualBoundingBoxDescent,actualBoundingBoxLeft:i.actualBoundingBoxLeft,actualBoundingBoxRight:i.actualBoundingBoxRight,fontBoundingBoxAscent:i.actualBoundingBoxAscent,fontBoundingBoxDescent:i.actualBoundingBoxDescent,width:i.width};const a=i.width;switch(this.style.textAlign){case"right":case"end":r.actualBoundingBoxLeft=a,r.actualBoundingBoxRight=0;break;case"center":r.actualBoundingBoxLeft=a/2,r.actualBoundingBoxRight=a/2;break;default:r.actualBoundingBoxLeft=0,r.actualBoundingBoxRight=a}return r}}class he{constructor(){Object.defineProperty(this,"fill",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fillOpacity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"textAlign",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fontFamily",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fontSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fontWeight",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fontStyle",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fontVariant",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"textDecoration",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shadowColor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shadowBlur",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shadowOffsetX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shadowOffsetY",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shadowOpacity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lineHeight",{enumerable:!0,configurable:!0,writable:!0,value:(0,r.j)(120)}),Object.defineProperty(this,"baselineRatio",{enumerable:!0,configurable:!0,writable:!0,value:.19}),Object.defineProperty(this,"direction",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"textBaseline",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"oversizedBehavior",{enumerable:!0,configurable:!0,writable:!0,value:"none"}),Object.defineProperty(this,"breakWords",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"ellipsis",{enumerable:!0,configurable:!0,writable:!0,value:"…"}),Object.defineProperty(this,"maxWidth",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxHeight",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"minScale",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ignoreFormatting",{enumerable:!0,configurable:!0,writable:!0,value:!1})}}class ue extends le{constructor(){super(...arguments),Object.defineProperty(this,"textType",{enumerable:!0,configurable:!0,writable:!0,value:"circular"}),Object.defineProperty(this,"radius",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"startAngle",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inside",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"orientation",{enumerable:!0,configurable:!0,writable:!0,value:"auto"}),Object.defineProperty(this,"kerning",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_textReversed",{enumerable:!0,configurable:!0,writable:!0,value:!1})}_render(e){"circular"===this.textType?this._renderCircular(e):super._render(e)}_renderCircular(e){if(this.textVisible){this._prerender(e);const t=this._isInteractive(e),i=e.layer.context,a=e.layer.dirty,s=this._renderer._ghostLayer.context;i.save(),t&&s.save(),this._textInfo||this._measure(e);let n=this.radius||0,o=this.startAngle||0,l=0,h=this.orientation,u="auto"==h?"auto":"inward"==h;const c=this.inside,d=this.style.textAlign||"left",b=this.kerning||0;let g="left"==d?1:-1;const p=!this._textReversed;if("auto"==u){let e=0,t=0;(0,r.i)(this._textInfo,((t,i)=>{const r=o+t.width/(n-t.height)/2*-g;r>e&&(e=r)})),t="left"==d?(e+l/2)*r.at:"right"==d?(e-l/2)*r.at:o*r.at,t=(0,r.y)(t),u=t>=270||t<=90}1==u&&p&&(this._textInfo.reverse(),this._textReversed=!0),(0,r.i)(this._textInfo,((e,h)=>{const f=e.height;c||(n+=f),(-1==g&&u||1==g&&!u)&&p&&e.textChunks.reverse();let m=o;l=0,"center"==d&&(m+=e.width/(n-f)/2*-g,l=m-o),m+=Math.PI*(u?0:1),i.save(),t&&s.save(),i.rotate(m),t&&s.rotate(m);let _=0;(0,r.i)(e.textChunks,((e,r)=>{const o=e.text,l=e.width;_=l/2/(n-f)*g,i.rotate(_),t&&s.rotate(_),e.style&&(i.save(),s.save(),i.font=e.style,t&&(s.font=e.style)),e.fill&&(i.save(),i.fillStyle=e.fill.toCSS()),i.textBaseline="middle",i.textAlign="center",t&&(s.textBaseline="middle",s.textAlign="center"),a&&i.fillText(o,0,(u?1:-1)*(0-n+f/2)),t&&s.fillText(o,0,(u?1:-1)*(0-n+f/2)),e.fill&&i.restore(),e.style&&(i.restore(),s.restore()),_=(l/2+b)/(n-f)*g,i.rotate(_),t&&s.rotate(_)})),i.restore(),t&&s.restore(),c&&(n-=f)})),i.restore(),t&&s.restore()}}_measure(e){return"circular"===this.textType?this._measureCircular(e):super._measure(e)}_measureCircular(e){const t=e.layer.context,i=this._renderer._ghostLayer.context,a="rtl"==this.style.direction,s=this.style.oversizedBehavior,n=this.style.maxWidth,o=(0,r.k)(n)&&"truncate"==s,l=this.style.ellipsis||"";let h;this.textVisible=!0,this._textInfo=[],this._textReversed=!1,t.save(),i.save(),this._prerender(e,!0);const u=this.text.toString().replace(/\r/g,"").split(/\n/);let c=!0,d=0,b=0;return(0,r.i)(u,((e,s)=>{let u,g,p,f=r.$.chunk(e,!1,this.style.ignoreFormatting),m={offsetY:b,ascent:0,width:0,height:0,left:0,right:0,textChunks:[]};(0,r.i)(f,((e,s)=>{if("format"==e.type){if("[/]"==e.text)c||(t.restore(),i.restore(),c=!0),g=void 0,u=void 0,p=void 0;else{let a=r.$.getTextStyle(e.text);const s=this._getFontStyle(a);t.save(),i.save(),t.font=s,u=s,a.fill&&(g=a.fill),a.width&&(p=(0,r.aa)(a.width)),c=!1}o&&(h=this._measureText(l,t))}else if("value"==e.type){const i=e.text.match(/./gu)||[];a&&i.reverse();for(let e=0;ec&&(c=p);const b=s.actualBoundingBoxAscent+s.actualBoundingBoxDescent;if(b>m.height&&(m.height=b),s.actualBoundingBoxAscent>m.ascent&&(m.ascent=s.actualBoundingBoxAscent),d+=c,o){h||(h=this._measureText(l,t));const e=h.actualBoundingBoxLeft+h.actualBoundingBoxRight;if(d+e>n){1==m.textChunks.length?this.textVisible=!1:(m.width+=e,m.left+=h.actualBoundingBoxLeft,m.right+=h.actualBoundingBoxRight,m.textChunks.push({style:u,fill:g,text:l,width:e,height:b+h.actualBoundingBoxDescent,left:h.actualBoundingBoxLeft,right:h.actualBoundingBoxRight,ascent:h.actualBoundingBoxAscent,offsetX:0,offsetY:b,textDecoration:void 0}));break}}if(m.width+=c,m.left+=s.actualBoundingBoxLeft,m.right+=s.actualBoundingBoxRight,m.textChunks.push({style:u,fill:g,text:r,width:c,height:b+s.actualBoundingBoxDescent,left:s.actualBoundingBoxLeft,right:s.actualBoundingBoxRight,ascent:s.actualBoundingBoxAscent,offsetX:0,offsetY:b,textDecoration:void 0}),a)break}}})),this.style.lineHeight instanceof r.P?m.height*=this.style.lineHeight.value:m.height*=this.style.lineHeight||1.2,this._textInfo.push(m),b+=m.height})),c||(t.restore(),i.restore()),"hide"==s&&d>n&&(this.textVisible=!1),(0,r.i)(this._textInfo,(e=>{(0,r.i)(e.textChunks,(t=>{t.offsetY+=Math.round((e.height-t.height+(e.ascent-t.ascent))/2)}))})),t.restore(),i.restore(),{left:0,top:0,right:0,bottom:0}}}class ce extends H{constructor(e,t){super(e),Object.defineProperty(this,"width",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"height",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"image",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tainted",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shadowColor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shadowBlur",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shadowOffsetX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shadowOffsetY",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shadowOpacity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_imageMask",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.image=t}_dispose(){super._dispose(),this._imageMask&&L(this._imageMask)}getLocalBounds(){if(!this._localBounds){let e=0,t=0;this.width&&(e=this.width),this.height&&(t=this.height),this._localBounds={left:0,top:0,right:e,bottom:t},this._addBounds(this._localBounds)}return this._localBounds}_render(e){if(super._render(e),this.image){if(void 0===this.tainted&&(this.tainted=D(this.image),e.layer.tainted=!0),this.tainted&&this._renderer._omitTainted)return;if(e.layer.dirty){this.shadowColor&&(e.layer.context.shadowColor=this.shadowColor.toCSS(this.shadowOpacity||1)),this.shadowBlur&&(e.layer.context.shadowBlur=this.shadowBlur),this.shadowOffsetX&&(e.layer.context.shadowOffsetX=this.shadowOffsetX),this.shadowOffsetY&&(e.layer.context.shadowOffsetY=this.shadowOffsetY);const t=this.width||this.image.naturalWidth,i=this.height||this.image.naturalHeight;e.layer.context.drawImage(this.image,0,0,t,i)}if(this.interactive&&this._isInteractive(e)){const e=this._getMask(this.image);this._renderer._ghostLayer.context.drawImage(e,0,0)}}}clear(){super.clear(),this.image=void 0,this._imageMask=void 0}_getMask(e){if(void 0===this._imageMask){const t=this.width||e.naturalWidth,i=this.height||e.naturalHeight,r=document.createElement("canvas");r.width=t,r.height=i;const a=r.getContext("2d");a.imageSmoothingEnabled=!1,a.fillStyle=this._getColorId(),a.fillRect(0,0,t,i),D(e)||(a.globalCompositeOperation="destination-in",a.drawImage(e,0,0,t,i)),this._imageMask=r}return this._imageMask}}class de{constructor(e,t,i,a){Object.defineProperty(this,"event",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"originalPoint",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"point",{enumerable:!0,configurable:!0,writable:!0,value:i}),Object.defineProperty(this,"bbox",{enumerable:!0,configurable:!0,writable:!0,value:a}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"simulated",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"native",{enumerable:!0,configurable:!0,writable:!0,value:!0}),(0,r.af)("touchevents")&&e instanceof Touch?this.id=e.identifier:this.id=null}}class be extends r.ad{constructor(e){if(super(),Object.defineProperty(this,"view",{enumerable:!0,configurable:!0,writable:!0,value:document.createElement("div")}),Object.defineProperty(this,"_layerDom",{enumerable:!0,configurable:!0,writable:!0,value:document.createElement("div")}),Object.defineProperty(this,"layers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_dirtyLayers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"defaultLayer",{enumerable:!0,configurable:!0,writable:!0,value:this.getLayer(0)}),Object.defineProperty(this,"_ghostLayer",{enumerable:!0,configurable:!0,writable:!0,value:new ge}),Object.defineProperty(this,"_patternCanvas",{enumerable:!0,configurable:!0,writable:!0,value:document.createElement("canvas")}),Object.defineProperty(this,"_patternContext",{enumerable:!0,configurable:!0,writable:!0,value:this._patternCanvas.getContext("2d")}),Object.defineProperty(this,"_realWidth",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_realHeight",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_calculatedWidth",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_calculatedHeight",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"resolution",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interactionsEnabled",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"_listeners",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_events",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_colorId",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_colorMap",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_forceInteractive",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_omitTainted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_hovering",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"_dragging",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_mousedown",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_lastPointerMoveEvent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tapToActivate",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"tapToActivateTimeout",{enumerable:!0,configurable:!0,writable:!0,value:3e3}),Object.defineProperty(this,"_touchActive",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_touchActiveTimeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.resolution=e??window.devicePixelRatio,this.view.style.position="absolute",this.view.setAttribute("aria-hidden","true"),this.view.appendChild(this._layerDom),this._disposers.push(new r.ae((()=>{(0,r._)(this._events,((e,t)=>{t.disposer.dispose()})),(0,r.i)(this.layers,(e=>{L(e.view),e.exportableView&&L(e.exportableView)})),L(this._ghostLayer.view),L(this._patternCanvas)}))),this._disposers.push((0,r.O)((()=>{null==e&&(this.resolution=window.devicePixelRatio)}))),(0,r.af)("touchevents")){const e=e=>{0!==this._dragging.length&&(0,r.ap)(this._dragging,(t=>!t.value.shouldCancelTouch()||(e.preventDefault(),!1))),this._touchActiveTimeout&&this._delayTouchDeactivate()};this._disposers.push((0,r.h)(window,"touchstart",e,{passive:!1})),this._disposers.push((0,r.h)(this.view,"touchstart",e,{passive:!1})),this._disposers.push((0,r.h)(this.view,"touchmove",(()=>{this._touchActiveTimeout&&this._delayTouchDeactivate()}),{passive:!0})),this._disposers.push((0,r.h)(window,"click",(e=>{this._touchActive=!1}),{passive:!0})),this._disposers.push((0,r.h)(this.view,"click",(e=>{window.setTimeout((()=>{this._touchActive=!0,this._delayTouchDeactivate()}),100)}),{passive:!0}))}(0,r.af)("wheelevents")&&this._disposers.push((0,r.h)(this.view,"wheel",(e=>{let t=!1;this._hovering.forEach((e=>{if(e.wheelable)return t=!0,!1})),t&&e.preventDefault()}),{passive:!1}))}resetImageArray(){this._ghostLayer.imageArray=void 0}_delayTouchDeactivate(){this._touchActiveTimeout&&clearTimeout(this._touchActiveTimeout),this.tapToActivateTimeout>0&&(this._touchActiveTimeout=window.setTimeout((()=>{this._touchActive=!1}),this.tapToActivateTimeout))}get debugGhostView(){return!!this._ghostLayer.view.parentNode}set debugGhostView(e){e?this._ghostLayer.view.parentNode||this.view.appendChild(this._ghostLayer.view):this._ghostLayer.view.parentNode&&this._ghostLayer.view.parentNode.removeChild(this._ghostLayer.view)}createLinearGradient(e,t,i,r){return this.defaultLayer.context.createLinearGradient(e,t,i,r)}createRadialGradient(e,t,i,r,a,s){return this.defaultLayer.context.createRadialGradient(e,t,i,r,a,s)}createPattern(e,t,i,r,a){return this._patternCanvas.width=r,this._patternCanvas.height=a,this._patternContext.clearRect(0,0,r,a),t.renderDetached(this._patternContext),e.renderDetached(this._patternContext),this._patternContext.createPattern(this._patternCanvas,i)}makeContainer(){return new F(this)}makeGraphics(){return new oe(this)}makeText(e,t){return new le(this,e,t)}makeTextStyle(){return new he}makeRadialText(e,t){return new ue(this,e,t)}makePicture(e){return new ce(this,e)}resizeLayer(e){e.resize(this._calculatedWidth,this._calculatedHeight,this._calculatedWidth,this._calculatedHeight,this.resolution)}resizeGhost(){this._ghostLayer.resize(this._calculatedWidth,this._calculatedHeight,this._calculatedWidth,this._calculatedHeight,this.resolution)}resize(e,t,i,a){this._realWidth=e,this._realHeight=t,this._calculatedWidth=i,this._calculatedHeight=a,(0,r.i)(this.layers,(e=>{e&&(e.dirty=!0,this.resizeLayer(e))})),this.resizeGhost(),this.view.style.width=i+"px",this.view.style.height=a+"px"}createDetachedLayer(e=!1){const t=document.createElement("canvas"),i=t.getContext("2d",{willReadFrequently:e}),r=new pe(t,i);return t.style.position="absolute",t.style.top="0px",t.style.left="0px",r}getLayerByOrder(e){const t=this.layers,i=t.length;for(let r=0;re.order>t.order?1:e.order{e&&e.dirty&&e.visible&&(this._dirtyLayers.push(e),e.clear())})),this._ghostLayer.clear(),e.render({inactive:null,layer:this.defaultLayer}),this._ghostLayer.context.restore(),(0,r.i)(this.layers,(e=>{if(e){const t=e.context;t.beginPath(),t.moveTo(0,0),t.stroke()}})),(0,r.i)(this._dirtyLayers,(e=>{e.context.restore(),e.dirty=!1})),this._hovering.size&&this._lastPointerMoveEvent){const{events:e,target:t,native:i}=this._lastPointerMoveEvent;(0,r.i)(e,(e=>{this._dispatchGlobalMousemove(e,t,i)}))}}paintId(e){const t=function(e){const t=[0,0,0];for(let i=0;i<24;i++)t[i%3]<<=1,t[i%3]|=1&e,e>>=1;return(0|t[0])+(t[1]<<8)+(t[2]<<16)}(++this._colorId),i=r.C.fromHex(t).toCSS();return this._colorMap[i]=e,i}_removeObject(e){void 0!==e._colorId&&delete this._colorMap[e._colorId]}_adjustBoundingBox(e){const t=this._ghostLayer.margin;return new DOMRect(-t.left,-t.top,e.width+t.left+t.right,e.height+t.top+t.bottom)}getEvent(e,t=!0){const i=this.view.getBoundingClientRect(),r=e.clientX||0,a=e.clientY||0,s=this._calculatedWidth/this._realWidth,n=this._calculatedHeight/this._realHeight,o={x:r-i.left,y:a-i.top},l={x:(r-(t?i.left:0))*s,y:(a-(t?i.top:0))*n};return new de(e,o,l,this._adjustBoundingBox(i))}_getHitTarget(e,t,i){if(0===t.width||0===t.height||e.xt.right||e.yt.bottom)return;if(!i||!this._layerDom.contains(i))return;const a=this._ghostLayer.getImageData(e,t);if(0===a.data[0]&&0===a.data[1]&&0===a.data[2])return!1;const s=r.C.fromRGB(a.data[0],a.data[1],a.data[2]).toCSS();return this._colorMap[s]}getObjectAtPoint(e){const t=this._ghostLayer.getImageArray(e);if(0===t[0]&&0===t[1]&&0===t[2])return;const i=r.C.fromRGB(t[0],t[1],t[2]).toCSS();return this._colorMap[i]}_withEvents(e,t){const i=this._events[e];if(void 0!==i){i.dispatching=!0;try{t(i)}finally{i.dispatching=!1,i.cleanup&&(i.cleanup=!1,(0,r.Q)(i.callbacks,(e=>!e.disposed)),0===i.callbacks.length&&(i.disposer.dispose(),delete this._events[e]))}}}_dispatchEventAll(e,t){this.interactionsEnabled&&this._withEvents(e,(e=>{(0,r.i)(e.callbacks,(e=>{e.disposed||e.callback.call(e.context,t)}))}))}_dispatchEvent(e,t,i){if(!this.interactionsEnabled)return!1;let a=!1;return this._withEvents(e,(e=>{(0,r.i)(e.callbacks,(e=>{e.disposed||e.object!==t||(e.callback.call(e.context,i),a=!0)}))})),a}_dispatchMousedown(e,t){const i=e.button;if(0!=i&&2!=i&&1!=i&&void 0!==i)return;const r=this.getEvent(e),a=this._getHitTarget(r.originalPoint,r.bbox,t);if(a){const e=r.id;let t=!1;j(a,(i=>{const a={id:e,value:i};return this._mousedown.push(a),!t&&this._dispatchEvent("pointerdown",i,r)&&(t=!0,this._dragging.some((t=>t.value===i&&t.id===e))||this._dragging.push(a)),!0}))}}_dispatchGlobalMousemove(e,t,i){const a=this.getEvent(e),s=this._getHitTarget(a.originalPoint,a.bbox,t);a.native=i,s?(this._hovering.forEach((e=>{e.contains(s)||(this._hovering.delete(e),e.cursorOverStyle&&(0,r.ah)(document.body,"cursor",e._replacedCursorStyle),this._dispatchEvent("pointerout",e,a))})),a.native&&j(s,(e=>(this._hovering.has(e)||(this._hovering.add(e),e.cursorOverStyle&&(e._replacedCursorStyle=(0,r.aq)(document.body,"cursor"),(0,r.ah)(document.body,"cursor",e.cursorOverStyle)),this._dispatchEvent("pointerover",e,a)),!0)))):(this._hovering.forEach((e=>{e.cursorOverStyle&&(0,r.ah)(document.body,"cursor",e._replacedCursorStyle),this._dispatchEvent("pointerout",e,a)})),this._hovering.clear()),this._dispatchEventAll("globalpointermove",a)}removeHovering(e){this._hovering.delete(e),e.cursorOverStyle&&(0,r.ah)(document.body,"cursor",e._replacedCursorStyle)}_dispatchGlobalMouseup(e,t){const i=this.getEvent(e);i.native=t,this._dispatchEventAll("globalpointerup",i)}_dispatchDragMove(e){if(0!==this._dragging.length){const t=this.getEvent(e),i=t.id;this._dragging.forEach((e=>{e.id===i&&this._dispatchEvent("pointermove",e.value,t)}))}}_dispatchDragEnd(e,t){const i=e.button;let r;if(0==i||void 0===i)r="click";else if(2==i)r="rightclick";else{if(1!=i)return;r="middleclick"}const a=this.getEvent(e),s=a.id;if(0!==this._mousedown.length){const e=this._getHitTarget(a.originalPoint,a.bbox,t);e&&this._mousedown.forEach((t=>{t.id===s&&t.value.contains(e)&&this._dispatchEvent(r,t.value,a)})),this._mousedown.length=0}0!==this._dragging.length&&(this._dragging.forEach((e=>{e.id===s&&this._dispatchEvent("pointerup",e.value,a)})),this._dragging.length=0)}_dispatchDoubleClick(e,t){const i=this.getEvent(e),r=this._getHitTarget(i.originalPoint,i.bbox,t);r&&j(r,(e=>!this._dispatchEvent("dblclick",e,i)))}_dispatchWheel(e,t){const i=this.getEvent(e),r=this._getHitTarget(i.originalPoint,i.bbox,t);r&&j(r,(e=>!this._dispatchEvent("wheel",e,i)))}_makeSharedEvent(e,t){if(void 0===this._listeners[e]){const i=t();this._listeners[e]=new r.ai((()=>{delete this._listeners[e],i.dispose()}))}return this._listeners[e].increment()}_onPointerEvent(e,t){let i=!1,a=null;function s(){a=null,i=!1}return new r.M([new r.ae((()=>{null!==a&&clearTimeout(a),s()})),(0,r.h)(this.view,(0,r.aj)(e),(e=>{i=!0,null!==a&&clearTimeout(a),a=window.setTimeout(s,0)})),A(window,e,((e,r)=>{null!==a&&(clearTimeout(a),a=null),t(e,r,i),i=!1}))])}_initEvent(e){switch(e){case"globalpointermove":case"pointerover":case"pointerout":return this._makeSharedEvent("pointermove",(()=>{const e=(e,t,i)=>{this._lastPointerMoveEvent={events:e,target:t,native:i},(0,r.i)(e,(e=>{this._dispatchGlobalMousemove(e,t,i)}))};return new r.M([this._onPointerEvent("pointerdown",e),this._onPointerEvent("pointermove",e)])}));case"globalpointerup":return this._makeSharedEvent("pointerup",(()=>{const e=this._onPointerEvent("pointerup",((e,t,i)=>{(0,r.i)(e,(e=>{this._dispatchGlobalMouseup(e,i)})),this._lastPointerMoveEvent={events:e,target:t,native:i}})),t=this._onPointerEvent("pointercancel",((e,t,i)=>{(0,r.i)(e,(e=>{this._dispatchGlobalMouseup(e,i)})),this._lastPointerMoveEvent={events:e,target:t,native:i}}));return new r.ae((()=>{e.dispose(),t.dispose()}))}));case"click":case"rightclick":case"middleclick":case"pointerdown":case"pointermove":case"pointerup":return this._makeSharedEvent("pointerdown",(()=>{const e=this._onPointerEvent("pointerdown",((e,t)=>{(0,r.i)(e,(e=>{this._dispatchMousedown(e,t)}))})),t=this._onPointerEvent("pointermove",(e=>{(0,r.i)(e,(e=>{this._dispatchDragMove(e)}))})),i=this._onPointerEvent("pointerup",((e,t)=>{(0,r.i)(e,(e=>{this._dispatchDragEnd(e,t)}))})),a=this._onPointerEvent("pointercancel",((e,t)=>{(0,r.i)(e,(e=>{this._dispatchDragEnd(e,t)}))}));return new r.ae((()=>{e.dispose(),t.dispose(),i.dispose(),a.dispose()}))}));case"dblclick":return this._makeSharedEvent("dblclick",(()=>this._onPointerEvent("dblclick",((e,t)=>{(0,r.i)(e,(e=>{this._dispatchDoubleClick(e,t)}))}))));case"wheel":return this._makeSharedEvent("wheel",(()=>(0,r.h)(this.view,(0,r.aj)("wheel"),(e=>{this._dispatchWheel(e,(0,r.ak)(e))}),{passive:!1})))}}_addEvent(e,t,i,a){let s=this._events[t];void 0===s&&(s=this._events[t]={disposer:this._initEvent(t),callbacks:[],dispatching:!1,cleanup:!1});const n={object:e,context:a,callback:i,disposed:!1};return s.callbacks.push(n),new r.ae((()=>{n.disposed=!0,s.dispatching?s.cleanup=!0:((0,r.al)(s.callbacks,n),0===s.callbacks.length&&(s.disposer.dispose(),delete this._events[t]))}))}getCanvas(e,t){this.render(e),t||(t={});let i=this.resolution,a=Math.floor(this._calculatedWidth*this.resolution),s=Math.floor(this._calculatedHeight*this.resolution);if(t.minWidth&&t.minWidth>a){let e=t.minWidth/a;e>i&&(i=e*this.resolution)}if(t.minHeight&&t.minHeight>s){let e=t.minHeight/s;e>i&&(i=e*this.resolution)}if(t.maxWidth&&t.maxWidths){let e=t.maxHeight/s;e{if(e&&e.visible&&(e.tainted||o)){d=!0,e.exportableView=e.view,e.exportableContext=e.context,e.view=document.createElement("canvas"),e.view.style.position="fixed",e.view.style.top="-10000px",this.view.appendChild(e.view),n.push(e.view);let t=0,r=0;e.margin&&(t+=e.margin.left||0+e.margin.right||0,r+=e.margin.top||0+e.margin.bottom||0),e.view.width=a+t,e.view.height=s+r,e.context=e.view.getContext("2d"),e.dirty=!0,e.scale=i}})),d&&(this._omitTainted=!0,this.render(e),this._omitTainted=!1),(0,r.i)(this.layers,(e=>{if(e&&e.visible){let t=0,i=0;e.margin&&(t=-(e.margin.left||0)*this.resolution,i=-(e.margin.top||0)*this.resolution),h.drawImage(e.view,t,i),e.exportableView&&(e.view=e.exportableView,e.exportableView=void 0),e.exportableContext&&(e.context=e.exportableContext,e.exportableContext=void 0),u{e.style.position="",e.style.top="",this.view.removeChild(e)})),l}}class ge{constructor(){Object.defineProperty(this,"view",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"context",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"margin",{enumerable:!0,configurable:!0,writable:!0,value:{left:0,right:0,top:0,bottom:0}}),Object.defineProperty(this,"_resolution",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"_width",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_height",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"imageArray",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.view=document.createElement("canvas"),this.context=this.view.getContext("2d",{alpha:!1,willReadFrequently:!0}),this.context.imageSmoothingEnabled=!1,this.view.style.position="absolute",this.view.style.top="0px",this.view.style.left="0px"}resize(e,t,i,r,a){this._resolution=a,e+=this.margin.left+this.margin.right,t+=this.margin.top+this.margin.bottom,i+=this.margin.left+this.margin.right,r+=this.margin.top+this.margin.bottom,this.view.style.left=-this.margin.left+"px",this.view.style.top=-this.margin.top+"px",this._width=Math.floor(e*a),this._height=Math.floor(t*a),this.view.width=this._width,this.view.style.width=i+"px",this.view.height=this._height,this.view.style.height=r+"px"}getImageData(e,t){return this.context.getImageData(Math.round((e.x-t.left)/t.width*this._width),Math.round((e.y-t.top)/t.height*this._height),1,1)}getImageArray(e){this.imageArray||(this.imageArray=this.context.getImageData(0,0,this._width,this._height).data);const t=this.imageArray,i=Math.round(e.x*this._resolution),r=4*(Math.round(e.y*this._resolution)*this._width+i);return[t[r],t[r+1],t[r+2],t[r+3]]}setMargin(e){this.margin.left=0,this.margin.right=0,this.margin.top=0,this.margin.bottom=0,(0,r.i)(e,(e=>{e.margin&&(this.margin.left=Math.max(this.margin.left,e.margin.left),this.margin.right=Math.max(this.margin.right,e.margin.right),this.margin.top=Math.max(this.margin.top,e.margin.top),this.margin.bottom=Math.max(this.margin.bottom,e.margin.bottom))}))}clear(){this.context.save(),this.context.fillStyle="#000",this.context.fillRect(0,0,this._width,this._height)}}class pe{constructor(e,t){Object.defineProperty(this,"view",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"context",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tainted",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"margin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"order",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"visible",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"width",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"height",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"scale",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dirty",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"exportableView",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"exportableContext",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_width",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_height",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.view=e,this.context=t}resize(e,t,i,r,a){null!=this.width&&(e=this.width,i=this.width),null!=this.height&&(t=this.height,r=this.height),this.margin?(e+=this.margin.left+this.margin.right,t+=this.margin.top+this.margin.bottom,i+=this.margin.left+this.margin.right,r+=this.margin.top+this.margin.bottom,this.view.style.left=-this.margin.left+"px",this.view.style.top=-this.margin.top+"px"):(this.view.style.left="0px",this.view.style.top="0px"),this._width=Math.floor(e*a),this._height=Math.floor(t*a),this.view.width=this._width,this.view.style.width=i+"px",this.view.height=this._height,this.view.style.height=r+"px"}clear(){this.context.save(),this.context.clearRect(0,0,this._width,this._height)}}function fe(e,t){null==e?requestAnimationFrame(t):setTimeout((()=>{requestAnimationFrame(t)}),1e3/e)}class me{constructor(e,t={},i){if(Object.defineProperty(this,"dom",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_inner",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_settings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_isDirty",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_isDirtyParents",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_dirty",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_dirtyParents",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_dirtyBounds",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_dirtyPositions",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_ticker",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_tickers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_updateTick",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:new r.av}),Object.defineProperty(this,"animationTime",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_animations",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_renderer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_rootContainer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tooltipContainer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tooltipContainerSettings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tooltip",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"language",{enumerable:!0,configurable:!0,writable:!0,value:y.new(this,{})}),Object.defineProperty(this,"locale",{enumerable:!0,configurable:!0,writable:!0,value:_}),Object.defineProperty(this,"utc",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"timezone",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fps",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"numberFormatter",{enumerable:!0,configurable:!0,writable:!0,value:d.new(this,{})}),Object.defineProperty(this,"dateFormatter",{enumerable:!0,configurable:!0,writable:!0,value:f.new(this,{})}),Object.defineProperty(this,"durationFormatter",{enumerable:!0,configurable:!0,writable:!0,value:m.new(this,{})}),Object.defineProperty(this,"tabindex",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_tabindexes",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_a11yD",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_focusElementDirty",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_focusElementContainer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_focusedSprite",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_isShift",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_keyboardDragPoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tooltipElementContainer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_readerAlertElement",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_logo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tooltipDiv",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nonce",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interfaceColors",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"verticalLayout",{enumerable:!0,configurable:!0,writable:!0,value:r.aw.new(this,{})}),Object.defineProperty(this,"horizontalLayout",{enumerable:!0,configurable:!0,writable:!0,value:r.ax.new(this,{})}),Object.defineProperty(this,"gridLayout",{enumerable:!0,configurable:!0,writable:!0,value:r.G.new(this,{})}),Object.defineProperty(this,"_paused",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"autoResize",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"_fontHash",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(this,"_isDisposed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_disposers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_resizeSensorDisposer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tooltips",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_htmlElementContainer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_htmlEnabledContainers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),!i)throw new Error("You cannot use `new Class()`, instead use `Class.new()`");let a,s;if(this._settings=t,0==t.accessible&&(this._a11yD=!0),null==t.useSafeResolution&&(t.useSafeResolution=!0),t.useSafeResolution&&(a=(0,r.aE)()),this._renderer=new be(a),s=e instanceof HTMLElement?e:document.getElementById(e),(0,r.i)(r.ay.rootElements,(e=>{if(e.dom===s)throw new Error("You cannot have multiple Roots on the same DOM node")})),this.interfaceColors=c.new(this,{}),null===s)throw new Error("Could not find HTML element with id `"+e+"`");this.dom=s;let n=document.createElement("div");n.style.position="relative",n.style.width="100%",n.style.height="100%",s.appendChild(n);const o=t.tooltipContainerBounds;o&&(this._tooltipContainerSettings=o),this._inner=n,this._updateComputedStyles(),r.ay.rootElements.push(this)}static new(e,t){const i=new me(e,t,!0);return i._init(),i}moveDOM(e){let t;if(t=e instanceof HTMLElement?e:document.getElementById(e),t){for(;this.dom.childNodes.length>0;)t.appendChild(this.dom.childNodes[0]);this.dom=t,this._initResizeSensor(),this.resize()}}_handleLogo(){if(this._logo){const e=this.dom.offsetWidth,t=this.dom.offsetHeight;e<=150||t<=60?this._logo.hide():this._logo.show()}}_showBranding(){if(!this._logo){const e=this.tooltipContainer.children.push(r.g.new(this,{interactive:!0,interactiveChildren:!1,position:"absolute",setStateOnChildren:!0,paddingTop:9,paddingRight:9,paddingBottom:9,paddingLeft:9,scale:.6,y:(0,r.j)(100),centerY:r.a,tooltipText:"Created using amCharts 5",tooltipX:r.a,cursorOverStyle:"pointer",background:r.R.new(this,{fill:(0,r.d)(4671320),fillOpacity:0,tooltipY:5})})),t=a.T.new(this,{pointerOrientation:"horizontal",paddingTop:4,paddingRight:7,paddingBottom:4,paddingLeft:7});t.label.setAll({fontSize:12}),t.get("background").setAll({fill:this.interfaceColors.get("background"),stroke:this.interfaceColors.get("grid"),strokeOpacity:.3}),e.set("tooltip",t),e.events.on("click",(()=>{window.open("https://www.amcharts.com/","_blank")})),e.states.create("hover",{}),e.children.push(r.e.new(this,{stroke:(0,r.d)(13421772),strokeWidth:3,svgPath:"M5 25 L13 25h13.6c3.4 0 6 0 10.3-4.3s5.2-12 8.6-12c3.4 0 4.3 8.6 7.7 8.6M83.4 25H79.8c-3.4 0-6 0-10.3-4.3s-5.2-12-8.6-12-4.3 8.6-7.7 8.6"})).states.create("hover",{stroke:(0,r.d)(3976191)}),e.children.push(r.e.new(this,{stroke:(0,r.d)(8947848),strokeWidth:3,svgPath:"M83.4 25h-31C37 25 39.5 4.4 28.4 4.4S18.9 24.2 4.3 25H0"})).states.create("hover",{stroke:(0,r.d)(4671320)}),this._logo=e,this._handleLogo()}}_getRealSize(){return this.dom.getBoundingClientRect()}_getCalculatedSize(e){return this._settings.calculateSize?this._settings.calculateSize(e):{width:e.width,height:e.height}}_init(){const e=this._settings;!1!==e.accessible&&(e.focusable&&(this._inner.setAttribute("focusable","true"),this._inner.setAttribute("tabindex",this.tabindex+"")),e.ariaLabel&&this._inner.setAttribute("aria-label",e.ariaLabel),e.role&&this._inner.setAttribute("role",e.role));const t=this._renderer,i=this._getRealSize(),a=this._getCalculatedSize(i),n=Math.floor(a.width),o=Math.floor(a.height),l=Math.floor(i.width),h=Math.floor(i.height),u=r.g.new(this,{visible:!0,width:n,height:o});this._rootContainer=u,this._rootContainer._defaultThemes.push(s.D.new(this));const c=u.children.push(r.g.new(this,{visible:!0,width:r.a,height:r.a}));this.container=c,t.resize(l,h,n,o),this._inner.appendChild(t.view),this._initResizeSensor();const d=document.createElement("div");if(this._htmlElementContainer=d,d.className="am5-html-container",d.style.position="absolute",d.style.pointerEvents="none",this._tooltipContainerSettings||(d.style.overflow="hidden"),this._inner.appendChild(d),!0!==this._a11yD){const e=document.createElement("div");e.className="am5-reader-container",e.setAttribute("role","alert"),e.style.position="absolute",e.style.width="1px",e.style.height="1px",e.style.overflow="hidden",e.style.clip="rect(1px, 1px, 1px, 1px)",this._readerAlertElement=e,this._inner.appendChild(this._readerAlertElement);const i=document.createElement("div");i.className="am5-focus-container",i.style.position="absolute",i.style.pointerEvents="none",i.style.top="0px",i.style.left="0px",i.style.overflow="hidden",i.style.width=n+"px",i.style.height=o+"px",i.setAttribute("role","graphics-document"),(0,r.as)(i,!1),this._focusElementContainer=i,this._inner.appendChild(this._focusElementContainer);const a=document.createElement("div");this._tooltipElementContainer=a,a.className="am5-tooltip-container",this._inner.appendChild(a),(0,r.af)("keyboardevents")&&(this._disposers.push((0,r.h)(window,"keydown",(e=>{16==e.keyCode?this._isShift=!0:9==e.keyCode&&(this._isShift=e.shiftKey)}))),this._disposers.push((0,r.h)(window,"keyup",(e=>{16==e.keyCode&&(this._isShift=!1)}))),this._disposers.push((0,r.h)(i,"click",(()=>{const e=this._focusedSprite;if(e){const i=t.getEvent(new MouseEvent("click"));e.events.dispatch("click",{type:"click",originalEvent:i.event,point:i.point,simulated:!0,target:e})}}))),this._disposers.push((0,r.h)(i,"keydown",(e=>{const i=this._focusedSprite;if(i){27==e.keyCode&&((0,r.az)(),this._focusedSprite=void 0);let a=0,s=0;switch(e.keyCode){case 13:e.preventDefault();const r=t.getEvent(new MouseEvent("click"));return void i.events.dispatch("click",{type:"click",originalEvent:r.event,point:r.point,simulated:!0,target:i});case 37:a=-6;break;case 39:a=6;break;case 38:s=-6;break;case 40:s=6;break;default:return}if(0!=a||0!=s){if(e.preventDefault(),!i.isDragging()){this._keyboardDragPoint={x:0,y:0};const e=t.getEvent(new MouseEvent("mousedown",{clientX:0,clientY:0}));i.events.isEnabled("pointerdown")&&i.events.dispatch("pointerdown",{type:"pointerdown",originalEvent:e.event,point:e.point,simulated:!0,target:i})}const r=this._keyboardDragPoint;r.x+=a,r.y+=s;const n=t.getEvent(new MouseEvent("mousemove",{clientX:r.x,clientY:r.y}),!1);i.events.isEnabled("globalpointermove")&&i.events.dispatch("globalpointermove",{type:"globalpointermove",originalEvent:n.event,point:n.point,simulated:!0,target:i})}}}))),this._disposers.push((0,r.h)(i,"keyup",(e=>{if(this._focusedSprite){const i=this._focusedSprite,a=e.keyCode;switch(a){case 37:case 39:case 38:case 40:if(i.isDragging()){const e=this._keyboardDragPoint,r=t.getEvent(new MouseEvent("mouseup",{clientX:e.x,clientY:e.y}));return i.events.isEnabled("globalpointerup")&&i.events.dispatch("globalpointerup",{type:"globalpointerup",originalEvent:r.event,point:r.point,simulated:!0,target:i}),void(this._keyboardDragPoint=void 0)}if(i.get("focusableGroup")){const e=i.get("focusableGroup"),t=this._tabindexes.filter((t=>t.get("focusableGroup")==e&&!1!==t.getPrivate("focusable")));let s=t.indexOf(i);const n=t.length-1;s+=39==a||40==a?1:-1,s<0?s=n:s>n&&(s=0),(0,r.aA)(t[s].getPrivate("focusElement").dom)}}}}))))}this._startTicker(),this.setThemes([]),this._addTooltip(),this._hasLicense()||this._showBranding()}_initResizeSensor(){this._resizeSensorDisposer&&this._resizeSensorDisposer.dispose(),this._resizeSensorDisposer=new u(this.dom,(()=>{this.autoResize&&this.resize()})),this._disposers.push(this._resizeSensorDisposer)}resize(){const e=this._getRealSize(),t=this._getCalculatedSize(e),i=Math.floor(t.width),r=Math.floor(t.height);if(i>0&&r>0){const t=Math.floor(e.width),a=Math.floor(e.height),s=this._htmlElementContainer;if(s.style.width=i+"px",s.style.height=r+"px",!0!==this._a11yD){const e=this._focusElementContainer;e.style.width=i+"px",e.style.height=r+"px"}this._renderer.resize(t,a,i,r);const n=this._rootContainer;n.setPrivate("width",i),n.setPrivate("height",r),this._render(),this._handleLogo()}}_render(){this._renderer.render(this._rootContainer._display),this._focusElementDirty&&(this._updateCurrentFocus(),this._focusElementDirty=!1)}_runTickers(e){(0,r.i)(this._tickers,(t=>{t(e)}))}_runAnimations(e){let t=0;return(0,r.Q)(this._animations,(i=>{const a=i._runAnimation(e);return a!==r.aF.Stopped&&(a!==r.aF.Playing||(++t,!0))})),0===t}_runDirties(){let e={};for(;this._isDirtyParents;)this._isDirtyParents=!1,(0,r.H)(this._dirtyParents).forEach((t=>{const i=this._dirtyParents[t];delete this._dirtyParents[t],i.isDisposed()||(e[i.uid]=i,i._prepareChildren())}));(0,r.H)(e).forEach((t=>{e[t]._updateChildren()}));const t=[];(0,r.H)(this._dirty).forEach((e=>{const i=this._dirty[e];i.isDisposed()?delete this._dirty[i.uid]:(t.push(i),i._beforeChanged())})),t.forEach((e=>{e._changed(),delete this._dirty[e.uid],e._clearDirty()})),this._isDirty=!1;const i={},a=[];(0,r.H)(this._dirtyBounds).forEach((e=>{const t=this._dirtyBounds[e];delete this._dirtyBounds[e],t.isDisposed()||(i[t.uid]=t.depth(),a.push(t))})),this._positionHTMLElements(),a.sort(((e,t)=>(0,r.aB)(i[t.uid],i[e.uid]))),a.forEach((e=>{e._updateBounds()}));const s=this._dirtyPositions;(0,r.H)(s).forEach((e=>{const t=s[e];delete s[e],t.isDisposed()||t._updatePosition()})),t.forEach((e=>{e._afterChanged()}))}_renderFrame(e){if(this._updateTick){this.events.isEnabled("framestarted")&&this.events.dispatch("framestarted",{type:"framestarted",target:this,timestamp:e}),this._checkComputedStyles(),this._runTickers(e);const t=this._runAnimations(e);return this._runDirties(),this._render(),this._renderer.resetImageArray(),this._positionHTMLElements(),this.events.isEnabled("frameended")&&this.events.dispatch("frameended",{type:"frameended",target:this,timestamp:e}),0===this._tickers.length&&t&&!this._isDirty}return!0}_runTicker(e,t){this.isDisposed()||(this.animationTime=e,this._renderFrame(e)?(this._ticker=null,this.animationTime=null):this._paused||(t?this._ticker:fe(this.fps,this._ticker)))}_runTickerNow(e=1e4){if(!this.isDisposed()){const t=performance.now()+e;for(;;){const e=performance.now();if(e>=t){this.animationTime=null;break}if(this.animationTime=e,this._renderFrame(e)){this.animationTime=null;break}}}}_startTicker(){null===this._ticker&&(this.animationTime=null,this._ticker=e=>{this._runTicker(e)},fe(this.fps,this._ticker))}get updateTick(){return this._updateTick}set updateTick(e){this._updateTick=e,e&&this._startTicker()}_addDirtyEntity(e){void 0===this._dirty[e.uid]&&(this._isDirty=!0,this._dirty[e.uid]=e,this._startTicker())}_addDirtyParent(e){void 0===this._dirtyParents[e.uid]&&(this._isDirty=!0,this._isDirtyParents=!0,this._dirtyParents[e.uid]=e,this._startTicker())}_addDirtyBounds(e){void 0===this._dirtyBounds[e.uid]&&(this._isDirty=!0,this._dirtyBounds[e.uid]=e,this._startTicker())}_addDirtyPosition(e){void 0===this._dirtyPositions[e.uid]&&(this._isDirty=!0,this._dirtyPositions[e.uid]=e,this._startTicker())}_addAnimation(e){-1===this._animations.indexOf(e)&&this._animations.push(e),this._startTicker()}_markDirty(){this._isDirty=!0}_markDirtyRedraw(){this.events.once("frameended",(()=>{this._isDirty=!0,this._startTicker()}))}eachFrame(e){return this._tickers.push(e),this._startTicker(),new r.ae((()=>{(0,r.al)(this._tickers,e)}))}markDirtyGlobal(e){e||(e=this.container),e.walkChildren((e=>{e instanceof r.g&&this.markDirtyGlobal(e),e.markDirty(),e.markDirtyBounds()}))}width(){return Math.floor(this._getCalculatedSize(this._getRealSize()).width)}height(){return Math.floor(this._getCalculatedSize(this._getRealSize()).height)}dispose(){this._isDisposed||(this._isDisposed=!0,this._rootContainer.dispose(),this._renderer.dispose(),this.horizontalLayout.dispose(),this.verticalLayout.dispose(),this.interfaceColors.dispose(),(0,r.i)(this._disposers,(e=>{e.dispose()})),this._inner&&(0,r.aC)(this._inner),(0,r.r)(r.ay.rootElements,this))}isDisposed(){return this._isDisposed}readerAlert(e){!0!==this._a11yD&&(this._readerAlertElement.innerHTML=(0,r.aD)(e))}setThemes(e){this._rootContainer.set("themes",e);const t=this.tooltipContainer;t&&t._applyThemes();const i=this.interfaceColors;i&&i._applyThemes()}_addTooltip(){if(!this.tooltipContainer){const e=this._tooltipContainerSettings,t=this._rootContainer.children.push(r.g.new(this,{position:"absolute",isMeasured:!1,width:r.a,height:r.a,layer:e?35:30,layerMargin:e||void 0}));this.tooltipContainer=t;const i=a.T.new(this,{});this.container.set("tooltip",i),i.hide(0),this._tooltip=i}}_registerTabindexOrder(e){1!=this._a11yD&&(e.get("focusable")?(0,r.an)(this._tabindexes,e):(0,r.r)(this._tabindexes,e),this._invalidateTabindexes())}_unregisterTabindexOrder(e){1!=this._a11yD&&((0,r.r)(this._tabindexes,e),this._invalidateTabindexes())}_invalidateTabindexes(){if(1==this._a11yD)return;this._tabindexes.sort(((e,t)=>{const i=e.get("tabindexOrder",0),r=t.get("tabindexOrder",0);return i==r?0:i>r?1:-1}));const e=[];(0,r.i)(this._tabindexes,((t,i)=>{t.getPrivate("focusElement")?this._moveFocusElement(i,t):this._makeFocusElement(i,t);const r=t.get("focusableGroup");r&&!1!==t.getPrivate("focusable")&&(-1!==e.indexOf(r)?t.getPrivate("focusElement").dom.setAttribute("tabindex","-1"):e.push(r))}))}_updateCurrentFocus(){1!=this._a11yD&&this._focusedSprite&&(this._decorateFocusElement(this._focusedSprite),this._positionFocusElement(this._focusedSprite))}_decorateFocusElement(e,t){if(1==this._a11yD)return;if(t||(t=e.getPrivate("focusElement").dom),!t)return;const i=e.get("role");i?t.setAttribute("role",i):t.removeAttribute("role");const a=e.get("ariaLabel");if(a){const i=(0,r.s)(e,a);t.setAttribute("aria-label",i)}else t.removeAttribute("aria-label");const s=e.get("ariaLive");s?t.setAttribute("aria-live",s):t.removeAttribute("aria-live");const n=e.get("ariaChecked");null!=n&&i&&-1!==["checkbox","option","radio","menuitemcheckbox","menuitemradio","treeitem"].indexOf(i)?t.setAttribute("aria-checked",n?"true":"false"):t.removeAttribute("aria-checked"),e.get("ariaHidden")?t.setAttribute("aria-hidden","true"):t.removeAttribute("aria-hidden");const o=e.get("ariaOrientation");o?t.setAttribute("aria-orientation",o):t.removeAttribute("aria-orientation");const l=e.get("ariaValueNow");l?t.setAttribute("aria-valuenow",l):t.removeAttribute("aria-valuenow");const h=e.get("ariaValueMin");h?t.setAttribute("aria-valuemin",h):t.removeAttribute("aria-valuemin");const u=e.get("ariaValueMax");u?t.setAttribute("aria-valuemax",u):t.removeAttribute("aria-valuemax");const c=e.get("ariaValueText");c?t.setAttribute("aria-valuetext",c):t.removeAttribute("aria-valuetext");const d=e.get("ariaControls");d?t.setAttribute("aria-controls",d):t.removeAttribute("aria-controls"),e.get("visible")&&0!==e.get("opacity")&&"tooltip"!=e.get("role")&&!e.isHidden()&&!1!==e.getPrivate("focusable")?("-1"!=t.getAttribute("tabindex")&&t.setAttribute("tabindex",""+this.tabindex),t.removeAttribute("aria-hidden")):(t.removeAttribute("tabindex"),t.setAttribute("aria-hidden","true"))}_makeFocusElement(e,t){if(t.getPrivate("focusElement")||1==this._a11yD)return;const i=document.createElement("div");"tooltip"!=t.get("role")&&(i.tabIndex=this.tabindex),i.style.position="absolute",(0,r.as)(i,!1);const a=[];t.setPrivate("focusElement",{dom:i,disposers:a}),this._decorateFocusElement(t),a.push((0,r.h)(i,"focus",(t=>{this._handleFocus(t,e)}))),a.push((0,r.h)(i,"blur",(t=>{this._handleBlur(t,e)}))),this._moveFocusElement(e,t)}_removeFocusElement(e){if(1==this._a11yD)return;(0,r.r)(this._tabindexes,e);const t=e.getPrivate("focusElement");t&&(this._focusElementContainer.removeChild(t.dom),(0,r.i)(t.disposers,(e=>{e.dispose()})))}_hideFocusElement(e){1!=this._a11yD&&(e.getPrivate("focusElement").dom.style.display="none")}_moveFocusElement(e,t){if(1==this._a11yD)return;const i=this._focusElementContainer,r=t.getPrivate("focusElement").dom;if(r===this._focusElementContainer.children[e])return;const a=this._focusElementContainer.children[e+1];a?i.insertBefore(r,a):i.append(r)}_positionFocusElement(e){if(1==this._a11yD||null==e)return;const t=e.globalBounds();let i=t.right==t.left?e.width():t.right-t.left,r=t.top==t.bottom?e.height():t.bottom-t.top;const a=void 0!==this._settings.focusPadding?this._settings.focusPadding:2;let s=t.left-a,n=t.top-a;i<0&&(s+=i,i=Math.abs(i)),r<0&&(n+=r,r=Math.abs(r));const o=e.getPrivate("focusElement").dom;o.style.top=n+"px",o.style.left=s+"px",o.style.width=i+2*a+"px",o.style.height=r+2*a+"px"}_handleFocus(e,t){if(1==this._a11yD)return;const i=this._tabindexes[t];i.isVisibleDeep()?(this._positionFocusElement(i),this._focusedSprite=i,i.events.isEnabled("focus")&&i.events.dispatch("focus",{type:"focus",originalEvent:e,target:i})):this._focusNext(e.target,this._isShift?-1:1)}_focusNext(e,t){if(1==this._a11yD)return;const i=Array.from(document.querySelectorAll(["a[href]","area[href]","button:not([disabled])","details","input:not([disabled])","iframe:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[contentEditable=""]','[contentEditable="true"]','[contentEditable="TRUE"]','[tabindex]:not([tabindex^="-"])'].join(",")));let r=i.indexOf(e)+t;r<0?r=i.length-1:r>=i.length&&(r=0),i[r].focus()}_handleBlur(e,t){if(1==this._a11yD)return;const i=this._focusedSprite;i&&!i.isDisposed()&&i.events.isEnabled("blur")&&i.events.dispatch("blur",{type:"blur",originalEvent:e,target:i}),this._focusedSprite=void 0}updateTooltip(e){if(1==this._a11yD)return;const t=(0,r.aD)(e._getText());let i=e.getPrivate("tooltipElement");"tooltip"==e.get("role")&&""!=t?(i||(i=this._makeTooltipElement(e)),i.innerHTML!=t&&(i.innerHTML=t)):i&&(i.remove(),e.removePrivate("tooltipElement"))}_makeTooltipElement(e){const t=this._tooltipElementContainer,i=document.createElement("div");return i.style.position="absolute",i.style.width="1px",i.style.height="1px",i.style.overflow="hidden",i.style.clip="rect(1px, 1px, 1px, 1px)",(0,r.as)(i,!1),this._decorateFocusElement(e,i),t.append(i),e.setPrivate("tooltipElement",i),i}_removeTooltipElement(e){if(1==this._a11yD)return;const t=e.getPrivate("tooltipElement");if(t){const e=t.parentElement;e&&e.removeChild(t)}}_invalidateAccessibility(e){if(1==this._a11yD)return;this._focusElementDirty=!0;const t=e.getPrivate("focusElement");e.get("focusable")?t&&(this._decorateFocusElement(e),this._positionFocusElement(e)):t&&this._removeFocusElement(e)}focused(e){return this._focusedSprite===e}documentPointToRoot(e){const t=this._getRealSize(),i=this._getCalculatedSize(t),r=i.width/t.width,a=i.height/t.height;return{x:(e.x-t.left)*r,y:(e.y-t.top)*a}}rootPointToDocument(e){const t=this._getRealSize(),i=this._getCalculatedSize(t),r=i.width/t.width,a=i.height/t.height;return{x:e.x/r+t.left,y:e.y/a+t.top}}addDisposer(e){return this._disposers.push(e),e}_updateComputedStyles(){const e=window.getComputedStyle(this.dom);let t="";(0,r._)(e,((e,i)=>{(0,r.U)(e)&&e.match(/^font/)&&(t+=i)}));const i=t!=this._fontHash;return i&&(this._fontHash=t),i}_checkComputedStyles(){this._updateComputedStyles()&&this._invalidateLabelBounds(this.container)}_invalidateLabelBounds(e){e instanceof r.g?e.children.each((e=>{this._invalidateLabelBounds(e)})):e instanceof r.w&&e.markDirtyBounds()}_hasLicense(){for(let e=0;e{const i=this._renderer.getEvent(t);e.events.dispatch("click",{type:"click",originalEvent:i.event,point:i.point,simulated:!1,target:e})})))),this._positionHTMLElement(e),t.append(i),(0,r.an)(this._htmlEnabledContainers,e),i}_positionHTMLElements(){(0,r.i)(this._htmlEnabledContainers,(e=>{this._positionHTMLElement(e)}))}_positionHTMLElement(e){const t=e.getPrivate("htmlElement");if(t){(0,r.i)(["paddingTop","paddingRight","paddingBottom","paddingLeft","minWidth","minHeight","maxWidth","maxHeight"],(i=>{const r=e.get(i);t.style[i]=r?r+"px":""}));const i=e.compositeOpacity();setTimeout((()=>{t.style.opacity=i+""}),10);const a=e.isVisibleDeep();a&&(t.style.display="block");const s=e.globalBounds();t.style.top=s.top+"px",t.style.left=s.left+"px";const n=e.get("width"),o=e.get("height");let l=0,h=0;if(n&&(l=e.width()),o&&(h=e.height()),n&&o)e.removePrivate("minWidth"),e.removePrivate("minHeight");else{t.style.position="fixed",t.style.width="",t.style.height="";const i=t.getBoundingClientRect();t.style.position="absolute",l=i.width,h=i.height,e._adjustedLocalBounds={left:0,right:0,top:0,bottom:0},e.setPrivate("minWidth",l),e.setPrivate("minHeight",h)}l>0&&(t.style.minWidth=l+"px"),h>0&&(t.style.minHeight=h+"px"),a&&0!=i||(t.style.display="none")}}_setHTMLContent(e,t){let i=e.getPrivate("htmlElement");i||(i=this._makeHTMLElement(e)),i.innerHTML!=t&&(i.innerHTML=t)}_removeHTMLContent(e){let t=e.getPrivate("htmlElement");t&&(this._htmlElementContainer.removeChild(t),e.removePrivate("htmlElement")),(0,r.r)(this._htmlEnabledContainers,e)}}(0,r.aG)("AM5C241025748");const _e="en-us",ye=new Map([["ar",()=>i.e(6185).then(i.bind(i,16185))],["bg-bg",()=>i.e(5532).then(i.bind(i,75532))],["bs-ba",()=>i.e(7653).then(i.bind(i,57653))],["ca-es",()=>i.e(6441).then(i.bind(i,16441))],["cs-cz",()=>i.e(5515).then(i.bind(i,15515))],["da-dk",()=>i.e(2601).then(i.bind(i,2601))],["de-de",()=>i.e(3625).then(i.bind(i,33625))],["de-ch",()=>i.e(124).then(i.bind(i,30124))],["el-gr",()=>i.e(8229).then(i.bind(i,88229))],["en-us",()=>i.e(2329).then(i.bind(i,32329))],["en-ca",()=>i.e(3814).then(i.bind(i,43814))],["es-es",()=>i.e(990).then(i.bind(i,80990))],["et-ee",()=>i.e(7303).then(i.bind(i,17303))],["fi-fi",()=>i.e(2705).then(i.bind(i,2705))],["fr-fr",()=>i.e(791).then(i.bind(i,10791))],["he-il",()=>i.e(4049).then(i.bind(i,44049))],["hr-hr",()=>i.e(7946).then(i.bind(i,47946))],["hu-hu",()=>i.e(4669).then(i.bind(i,54669))],["id-id",()=>i.e(8243).then(i.bind(i,48243))],["it-it",()=>i.e(412).then(i.bind(i,20412))],["ja-jp",()=>i.e(3433).then(i.bind(i,53433))],["ko-kr",()=>i.e(9457).then(i.bind(i,29457))],["lt-lt",()=>i.e(6829).then(i.bind(i,56829))],["lv-lv",()=>i.e(9341).then(i.bind(i,39434))],["nb-no",()=>i.e(7660).then(i.bind(i,17660))],["nl-nl",()=>i.e(9547).then(i.bind(i,99547))],["pl-pl",()=>i.e(17).then(i.bind(i,17))],["pt-br",()=>i.e(7578).then(i.bind(i,97578))],["pt-pt",()=>i.e(3399).then(i.bind(i,63399))],["ro-ro",()=>i.e(5134).then(i.bind(i,55134))],["ru-ru",()=>i.e(134).then(i.bind(i,40134))],["sk-sk",()=>i.e(8718).then(i.bind(i,98718))],["sl-sl",()=>i.e(1352).then(i.bind(i,21352))],["sr-rs",()=>i.e(6802).then(i.bind(i,86802))],["sv-se",()=>i.e(1810).then(i.bind(i,51810))],["th-th",()=>i.e(4287).then(i.bind(i,84287))],["tr-tr",()=>i.e(8385).then(i.bind(i,28385))],["uk-ua",()=>i.e(3040).then(i.bind(i,43040))],["vi-vn",()=>i.e(1489).then(i.bind(i,51489))],["zh-cn",()=>i.e(5266).then(i.bind(i,15266))],["zh-hk",()=>i.e(9794).then(i.bind(i,99794))],["zh-tw",()=>i.e(9794).then(i.bind(i,99794))]]);function ve(e){return e?ye.has(e.toLowerCase())?e.toLowerCase():function(e){const t=e.split("-")[0].toLowerCase();let i=null;for(const e of ye.keys())if(e.startsWith(t)){i=e;break}return i}(e)||_e:_e}async function we(e,t=(0,n.Kd)()){const i=me.new(e);return i.locale=(await ye.get(ve(t))()).default,i}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5134.d4e4baf8f7fba3a6e2c0.js b/docs/sentinel1-explorer/5134.d4e4baf8f7fba3a6e2c0.js new file mode 100644 index 00000000..ca2d247a --- /dev/null +++ b/docs/sentinel1-explorer/5134.d4e4baf8f7fba3a6e2c0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5134],{55134:function(e,_,r){r.r(_),r.d(_,{default:function(){return a}});const a={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"d.Hr.",_era_bc:"î.Hr.",A:"a.m.",P:"p.m.",AM:"a.m.",PM:"p.m.","A.M.":"a.m.","P.M.":"p.m.",January:"ianuarie",February:"februarie",March:"martie",April:"aprilie",May:"mai",June:"iunie",July:"iulie",August:"august",September:"septembrie",October:"octombrie",November:"noiembrie",December:"decembrie",Jan:"ian.",Feb:"feb.",Mar:"mar.",Apr:"apr.","May(short)":"mai",Jun:"iun.",Jul:"iul.",Aug:"aug.",Sep:"sept.",Oct:"oct.",Nov:"nov.",Dec:"dec.",Sunday:"duminică",Monday:"luni",Tuesday:"marți",Wednesday:"miercuri",Thursday:"joi",Friday:"vineri",Saturday:"sâmbătă",Sun:"dum.",Mon:"lun.",Tue:"mar.",Wed:"mie.",Thu:"joi",Fri:"vin.",Sat:"sâm.",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Zoom",Play:"Redare",Stop:"Oprire",Legend:"Legendă","Press ENTER to toggle":"",Loading:"Se încarcă",Home:"Pagina principală",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Imprimare",Image:"Imagine",Data:"Date",Print:"Imprimare","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Din %1 la %2","From %1":"Din %1","To %1":"La %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5169.8b544dcea3039febab49.js b/docs/sentinel1-explorer/5169.8b544dcea3039febab49.js new file mode 100644 index 00000000..8d485c2e --- /dev/null +++ b/docs/sentinel1-explorer/5169.8b544dcea3039febab49.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5169],{15169:function(n,t,e){e.r(t),e.d(t,{a:function(){return f}});var r,a,i,o=e(58340),u={exports:{}};r=u,a="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,i=function(n){var t,e,r;n=n||{},t||(t=void 0!==n?n:{}),t.ready=new Promise((function(n,t){e=n,r=t}));var i=Object.assign({},t),u="./this.program",c="";"undefined"!=typeof document&&document.currentScript&&(c=document.currentScript.src),a&&(c=a),c=0!==c.indexOf("blob:")?c.substr(0,c.replace(/[?#].*/,"").lastIndexOf("/")+1):"";var f,s=t.print||void 0,l=t.printErr||void 0;Object.assign(t,i),i=null,t.thisProgram&&(u=t.thisProgram),t.wasmBinary&&(f=t.wasmBinary),t.noExitRuntime,"object"!=typeof WebAssembly&&R("no native wasm support detected");var h,d,p,v,y,m,g,b,w,A,T,_,C=!1,P="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function k(n,t,e){var r=t+e;for(e=t;n[e]&&!(e>=r);)++e;if(16(a=224==(240&a)?(15&a)<<12|i<<6|o:(7&a)<<18|i<<12|o<<6|63&n[t++])?r+=String.fromCharCode(a):(a-=65536,r+=String.fromCharCode(55296|a>>10,56320|1023&a))}}else r+=String.fromCharCode(a)}return r}function $(n,t,e,r){if(0=i&&(i=65536+((1023&i)<<10)|1023&n.charCodeAt(++a)),127>=i){if(e>=r)break;t[e++]=i}else{if(2047>=i){if(e+1>=r)break;t[e++]=192|i>>6}else{if(65535>=i){if(e+2>=r)break;t[e++]=224|i>>12}else{if(e+3>=r)break;t[e++]=240|i>>18,t[e++]=128|i>>12&63}t[e++]=128|i>>6&63}t[e++]=128|63&i}}t[e]=0}}function W(n){for(var t=0,e=0;e=r?t++:2047>=r?t+=2:55296<=r&&57343>=r?(t+=4,++e):t+=3}return t}function E(){var n=h.buffer;d=n,t.HEAP8=p=new Int8Array(n),t.HEAP16=y=new Int16Array(n),t.HEAP32=g=new Int32Array(n),t.HEAPU8=v=new Uint8Array(n),t.HEAPU16=m=new Uint16Array(n),t.HEAPU32=b=new Uint32Array(n),t.HEAPF32=w=new Float32Array(n),t.HEAPF64=_=new Float64Array(n),t.HEAP64=A=new BigInt64Array(n),t.HEAPU64=T=new BigUint64Array(n)}var O,j=[],S=[],F=[];function D(){var n=t.preRun.shift();j.unshift(n)}var M,U=0,I=null;function R(n){throw t.onAbort&&t.onAbort(n),l(n="Aborted("+n+")"),C=!0,n=new WebAssembly.RuntimeError(n+". Build with -sASSERTIONS for more info."),r(n),n}function x(){return M.startsWith("data:application/octet-stream;base64,")}if(M="arcgis-knowledge-client-core-simd.wasm",!x()){var Y=M;M=t.locateFile?t.locateFile(Y,c):c+Y}function H(){var n=M;try{if(n==M&&f)return new Uint8Array(f);throw"both async and sync fetching of the wasm failed"}catch(n){R(n)}}function V(n){for(;0>2]=n},this.Oa=function(n){b[this.fa+8>>2]=n},this.Ua=function(){g[this.fa>>2]=0},this.Ma=function(){p[this.fa+12>>0]=0},this.Va=function(){p[this.fa+13>>0]=0},this.Ia=function(n,t){this.La(),this.Ya(n),this.Oa(t),this.Ua(),this.Ma(),this.Va()},this.La=function(){b[this.fa+16>>2]=0}}var z={};function q(n){for(;n.length;){var t=n.pop();n.pop()(t)}}function N(n){return this.fromWireType(g[n>>2])}var L={},G={},J={};function X(n){if(void 0===n)return"_unknown";var t=(n=n.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&57>=t?"_"+n:n}function Z(n,t){return n=X(n),function(){return t.apply(this,arguments)}}function K(n){var t=Error,e=Z(n,(function(t){this.name=n,this.message=t,void 0!==(t=Error(t).stack)&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},e}var Q=void 0;function nn(n){throw new Q(n)}function tn(n,t,e){function r(t){(t=e(t)).length!==n.length&&nn("Mismatched type converter count");for(var r=0;r{G.hasOwnProperty(n)?a[t]=G[n]:(i.push(n),L.hasOwnProperty(n)||(L[n]=[]),L[n].push((()=>{a[t]=G[n],++o===i.length&&r(a)})))})),0===i.length&&r(a)}function en(n){if(null===n)return"null";var t=typeof n;return"object"===t||"array"===t||"function"===t?n.toString():""+n}var rn=void 0;function an(n){for(var t="";v[n];)t+=rn[v[n++]];return t}var on=void 0;function un(n){throw new on(n)}function cn(n,t,e={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var r=t.name;if(n||un('type "'+r+'" must have a positive integer typeid pointer'),G.hasOwnProperty(n)){if(e.Wa)return;un("Cannot register type '"+r+"' twice")}G[n]=t,delete J[n],L.hasOwnProperty(n)&&(t=L[n],delete L[n],t.forEach((n=>n())))}function fn(n,t,e){switch(t){case 0:return e?function(n){return p[n]}:function(n){return v[n]};case 1:return e?function(n){return y[n>>1]}:function(n){return m[n>>1]};case 2:return e?function(n){return g[n>>2]}:function(n){return b[n>>2]};case 3:return e?function(n){return A[n>>3]}:function(n){return T[n>>3]};default:throw new TypeError("Unknown integer type: "+n)}}function sn(n){switch(n){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+n)}}function ln(n){un(n.da.ga.ea.name+" instance already deleted")}var hn=!1;function dn(){}function pn(n){--n.count.value,0===n.count.value&&(n.ia?n.ka.na(n.ia):n.ga.ea.na(n.fa))}function vn(n,t,e){return t===e?n:void 0===e.la||null===(n=vn(n,t,e.la))?null:e.Ka(n)}var yn={},mn=[];function gn(){for(;mn.length;){var n=mn.pop();n.da.ta=!1,n.delete()}}var bn=void 0,wn={};function An(n,t){return t.ga&&t.fa||nn("makeClassHandle requires ptr and ptrType"),!!t.ka!=!!t.ia&&nn("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Tn(Object.create(n,{da:{value:t}}))}function Tn(n){return"undefined"==typeof FinalizationRegistry?(Tn=n=>n,n):(hn=new FinalizationRegistry((n=>{pn(n.da)})),dn=n=>{hn.unregister(n)},(Tn=n=>{var t=n.da;return t.ia&&hn.register(n,{da:t},n),n})(n))}function _n(){}function Cn(n,t,e){if(void 0===n[t].ha){var r=n[t];n[t]=function(){return n[t].ha.hasOwnProperty(arguments.length)||un("Function '"+e+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+n[t].ha+")!"),n[t].ha[arguments.length].apply(this,arguments)},n[t].ha=[],n[t].ha[r.sa]=r}}function Pn(n,e,r){t.hasOwnProperty(n)?((void 0===r||void 0!==t[n].ha&&void 0!==t[n].ha[r])&&un("Cannot register public name '"+n+"' twice"),Cn(t,n,n),t.hasOwnProperty(r)&&un("Cannot register multiple overloads of a function with the same number of arguments ("+r+")!"),t[n].ha[r]=e):(t[n]=e,void 0!==r&&(t[n].kb=r))}function kn(n,t,e,r,a,i,o,u){this.name=n,this.constructor=t,this.oa=e,this.na=r,this.la=a,this.Pa=i,this.va=o,this.Ka=u,this.$a=[]}function $n(n,t,e){for(;t!==e;)t.va||un("Expected null or instance of "+e.name+", got an instance of "+t.name),n=t.va(n),t=t.la;return n}function Wn(n,t){return null===t?(this.Aa&&un("null is not a valid "+this.name),0):(t.da||un('Cannot pass "'+en(t)+'" as a '+this.name),t.da.fa||un("Cannot pass deleted object as a pointer of type "+this.name),$n(t.da.fa,t.da.ga.ea,this.ea))}function En(n,t){if(null===t){if(this.Aa&&un("null is not a valid "+this.name),this.xa){var e=this.Ba();return null!==n&&n.push(this.na,e),e}return 0}if(t.da||un('Cannot pass "'+en(t)+'" as a '+this.name),t.da.fa||un("Cannot pass deleted object as a pointer of type "+this.name),!this.wa&&t.da.ga.wa&&un("Cannot convert argument of type "+(t.da.ka?t.da.ka.name:t.da.ga.name)+" to parameter type "+this.name),e=$n(t.da.fa,t.da.ga.ea,this.ea),this.xa)switch(void 0===t.da.ia&&un("Passing raw pointer to smart pointer is illegal"),this.fb){case 0:t.da.ka===this?e=t.da.ia:un("Cannot convert argument of type "+(t.da.ka?t.da.ka.name:t.da.ga.name)+" to parameter type "+this.name);break;case 1:e=t.da.ia;break;case 2:if(t.da.ka===this)e=t.da.ia;else{var r=t.clone();e=this.ab(e,qn((function(){r.delete()}))),null!==n&&n.push(this.na,e)}break;default:un("Unsupporting sharing policy")}return e}function On(n,t){return null===t?(this.Aa&&un("null is not a valid "+this.name),0):(t.da||un('Cannot pass "'+en(t)+'" as a '+this.name),t.da.fa||un("Cannot pass deleted object as a pointer of type "+this.name),t.da.ga.wa&&un("Cannot convert argument of type "+t.da.ga.name+" to parameter type "+this.name),$n(t.da.fa,t.da.ga.ea,this.ea))}function jn(n,t,e,r,a,i,o,u,c,f,s){this.name=n,this.ea=t,this.Aa=e,this.wa=r,this.xa=a,this.Za=i,this.fb=o,this.Ga=u,this.Ba=c,this.ab=f,this.na=s,a||void 0!==t.la?this.toWireType=En:(this.toWireType=r?Wn:On,this.ja=null)}function Sn(n,e,r){t.hasOwnProperty(n)||nn("Replacing nonexistant public symbol"),void 0!==t[n].ha&&void 0!==r?t[n].ha[r]=e:(t[n]=e,t[n].sa=r)}var Fn=[];function Dn(n,t){n=an(n);var e=Fn[t];return e||(t>=Fn.length&&(Fn.length=t+1),Fn[t]=e=O.get(t)),"function"!=typeof e&&un("unknown function pointer with signature "+n+": "+t),e}var Mn=void 0;function Un(n){var t=an(n=Tt(n));return At(n),t}function In(n,t){var e=[],r={};throw t.forEach((function n(t){r[t]||G[t]||(J[t]?J[t].forEach(n):(e.push(t),r[t]=!0))})),new Mn(n+": "+e.map(Un).join([", "]))}function Rn(n,t,e,r,a){var i=t.length;2>i&&un("argTypes array size mismatch! Must at least get return value and 'this' types!");var o=null!==t[1]&&null!==e,u=!1;for(e=1;e>2]);return e}function Yn(n,t,e){return n instanceof Object||un(e+' with invalid "this": '+n),n instanceof t.ea.constructor||un(e+' incompatible with "this" of type '+n.constructor.name),n.da.fa||un("cannot call emscripten binding method "+e+" on deleted object"),$n(n.da.fa,n.da.ga.ea,t.ea)}var Hn=[],Vn=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Bn(n){4(n||un("Cannot use deleted val. handle = "+n),Vn[n].value),qn=n=>{switch(n){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Hn.length?Hn.pop():Vn.length;return Vn[t]={Ca:1,value:n},t}};function Nn(n,t,e){switch(t){case 0:return function(n){return this.fromWireType((e?p:v)[n])};case 1:return function(n){return this.fromWireType((e?y:m)[n>>1])};case 2:return function(n){return this.fromWireType((e?g:b)[n>>2])};default:throw new TypeError("Unknown integer type: "+n)}}function Ln(n,t){var e=G[n];return void 0===e&&un(t+" has unknown type "+Un(n)),e}function Gn(n,t){switch(t){case 2:return function(n){return this.fromWireType(w[n>>2])};case 3:return function(n){return this.fromWireType(_[n>>3])};default:throw new TypeError("Unknown float type: "+n)}}var Jn="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function Xn(n,t){for(var e=n>>1,r=e+t/2;!(e>=r)&&m[e];)++e;if(32<(e<<=1)-n&&Jn)return Jn.decode(v.subarray(n,e));for(e="",r=0;!(r>=t/2);++r){var a=y[n+2*r>>1];if(0==a)break;e+=String.fromCharCode(a)}return e}function Zn(n,t,e){if(void 0===e&&(e=2147483647),2>e)return 0;var r=t;e=(e-=2)<2*n.length?e/2:n.length;for(var a=0;a>1]=n.charCodeAt(a),t+=2;return y[t>>1]=0,t-r}function Kn(n){return 2*n.length}function Qn(n,t){for(var e=0,r="";!(e>=t/4);){var a=g[n+4*e>>2];if(0==a)break;++e,65536<=a?(a-=65536,r+=String.fromCharCode(55296|a>>10,56320|1023&a)):r+=String.fromCharCode(a)}return r}function nt(n,t,e){if(void 0===e&&(e=2147483647),4>e)return 0;var r=t;e=r+e-4;for(var a=0;a=i&&(i=65536+((1023&i)<<10)|1023&n.charCodeAt(++a)),g[t>>2]=i,(t+=4)+4>e)break}return g[t>>2]=0,t-r}function tt(n){for(var t=0,e=0;e=r&&++e,t+=4}return t}function et(n,t){for(var e=Array(n),r=0;r>2],"parameter "+r);return e}var rt={};function at(n){var t=rt[n];return void 0===t?an(n):t}var it=[];function ot(){function n(n){n.$$$embind_global$$$=n;var t="object"==typeof $$$embind_global$$$&&n.$$$embind_global$$$==n;return t||delete n.$$$embind_global$$$,t}if("object"==typeof globalThis)return globalThis;if("object"==typeof $$$embind_global$$$)return $$$embind_global$$$;if("object"==typeof o.c&&n(o.c)?$$$embind_global$$$=o.c:"object"==typeof self&&n(self)&&($$$embind_global$$$=self),"object"==typeof $$$embind_global$$$)return $$$embind_global$$$;throw Error("unable to get global object.")}var ut=[],ct={};function ft(){if(!st){var n,t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:u||"./this.program"};for(n in ct)void 0===ct[n]?delete t[n]:t[n]=ct[n];var e=[];for(n in t)e.push(n+"="+t[n]);st=e}return st}var st,lt=[null,[],[]];function ht(n){return 0==n%4&&(0!=n%100||0==n%400)}var dt=[31,29,31,30,31,30,31,31,30,31,30,31],pt=[31,28,31,30,31,30,31,31,30,31,30,31];function vt(n,t,e,r){function a(n,t,e){for(n="number"==typeof n?n.toString():n||"";n.lengthn?-1:0r-n.getDate())){n.setDate(n.getDate()+t);break}t-=r-n.getDate()+1,n.setDate(1),11>e?n.setMonth(e+1):(n.setMonth(0),n.setFullYear(n.getFullYear()+1))}return e=new Date(n.getFullYear()+1,0,4),t=u(new Date(n.getFullYear(),0,4)),e=u(e),0>=o(t,n)?0>=o(e,n)?n.getFullYear()+1:n.getFullYear():n.getFullYear()-1}var f=g[r+40>>2];for(var s in r={ib:g[r>>2],hb:g[r+4>>2],ya:g[r+8>>2],Da:g[r+12>>2],za:g[r+16>>2],ra:g[r+20>>2],ma:g[r+24>>2],qa:g[r+28>>2],lb:g[r+32>>2],gb:g[r+36>>2],jb:f&&f?k(v,f):""},e=e?k(v,e):"",f={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})e=e.replace(new RegExp(s,"g"),f[s]);var l="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),h="January February March April May June July August September October November December".split(" ");for(s in f={"%a":function(n){return l[n.ma].substring(0,3)},"%A":function(n){return l[n.ma]},"%b":function(n){return h[n.za].substring(0,3)},"%B":function(n){return h[n.za]},"%C":function(n){return i((n.ra+1900)/100|0,2)},"%d":function(n){return i(n.Da,2)},"%e":function(n){return a(n.Da,2," ")},"%g":function(n){return c(n).toString().substring(2)},"%G":function(n){return c(n)},"%H":function(n){return i(n.ya,2)},"%I":function(n){return 0==(n=n.ya)?n=12:12n.ya?"AM":"PM"},"%S":function(n){return i(n.ib,2)},"%t":function(){return"\t"},"%u":function(n){return n.ma||7},"%U":function(n){return i(Math.floor((n.qa+7-n.ma)/7),2)},"%V":function(n){var t=Math.floor((n.qa+7-(n.ma+6)%7)/7);if(2>=(n.ma+371-n.qa-2)%7&&t++,t)53==t&&(4==(e=(n.ma+371-n.qa)%7)||3==e&&ht(n.ra)||(t=1));else{t=52;var e=(n.ma+7-n.qa-1)%7;(4==e||5==e&&ht(n.ra%400-1))&&t++}return i(t,2)},"%w":function(n){return n.ma},"%W":function(n){return i(Math.floor((n.qa+7-(n.ma+6)%7)/7),2)},"%y":function(n){return(n.ra+1900).toString().substring(2)},"%Y":function(n){return n.ra+1900},"%z":function(n){var t=0<=(n=n.gb);return n=Math.abs(n)/60,(t?"+":"-")+String("0000"+(n/60*100+n%60)).slice(-4)},"%Z":function(n){return n.jb},"%%":function(){return"%"}},e=e.replace(/%%/g,"\0\0"),f)e.includes(s)&&(e=e.replace(new RegExp(s,"g"),f[s](r)));return(s=function(n){var t=Array(W(n)+1);return $(n,t,0,t.length),t}(e=e.replace(/\0\0/g,"%"))).length>t?0:(p.set(s,n),s.length-1)}Q=t.InternalError=K("InternalError");for(var yt=Array(256),mt=0;256>mt;++mt)yt[mt]=String.fromCharCode(mt);rn=yt,on=t.BindingError=K("BindingError"),_n.prototype.isAliasOf=function(n){if(!(this instanceof _n&&n instanceof _n))return!1;var t=this.da.ga.ea,e=this.da.fa,r=n.da.ga.ea;for(n=n.da.fa;t.la;)e=t.va(e),t=t.la;for(;r.la;)n=r.va(n),r=r.la;return t===r&&e===n},_n.prototype.clone=function(){if(this.da.fa||ln(this),this.da.ua)return this.da.count.value+=1,this;var n=Tn,t=Object,e=t.create,r=Object.getPrototypeOf(this),a=this.da;return(n=n(e.call(t,r,{da:{value:{count:a.count,ta:a.ta,ua:a.ua,fa:a.fa,ga:a.ga,ia:a.ia,ka:a.ka}}}))).da.count.value+=1,n.da.ta=!1,n},_n.prototype.delete=function(){this.da.fa||ln(this),this.da.ta&&!this.da.ua&&un("Object already scheduled for deletion"),dn(this),pn(this.da),this.da.ua||(this.da.ia=void 0,this.da.fa=void 0)},_n.prototype.isDeleted=function(){return!this.da.fa},_n.prototype.deleteLater=function(){return this.da.fa||ln(this),this.da.ta&&!this.da.ua&&un("Object already scheduled for deletion"),mn.push(this),1===mn.length&&bn&&bn(gn),this.da.ta=!0,this},t.getInheritedInstanceCount=function(){return Object.keys(wn).length},t.getLiveInheritedInstances=function(){var n,t=[];for(n in wn)wn.hasOwnProperty(n)&&t.push(wn[n]);return t},t.flushPendingDeletes=gn,t.setDelayFunction=function(n){bn=n,mn.length&&bn&&bn(gn)},jn.prototype.Qa=function(n){return this.Ga&&(n=this.Ga(n)),n},jn.prototype.Ea=function(n){this.na&&this.na(n)},jn.prototype.argPackAdvance=8,jn.prototype.readValueFromPointer=N,jn.prototype.deleteObject=function(n){null!==n&&n.delete()},jn.prototype.fromWireType=function(n){function t(){return this.xa?An(this.ea.oa,{ga:this.Za,fa:e,ka:this,ia:n}):An(this.ea.oa,{ga:this,fa:n})}var e=this.Qa(n);if(!e)return this.Ea(n),null;var r=function(n,t){for(void 0===t&&un("ptr should not be undefined");n.la;)t=n.va(t),n=n.la;return wn[t]}(this.ea,e);if(void 0!==r)return 0===r.da.count.value?(r.da.fa=e,r.da.ia=n,r.clone()):(r=r.clone(),this.Ea(n),r);if(r=this.ea.Pa(e),!(r=yn[r]))return t.call(this);r=this.wa?r.Ha:r.pointerType;var a=vn(e,this.ea,r.ea);return null===a?t.call(this):this.xa?An(r.ea.oa,{ga:r,fa:a,ka:this,ia:n}):An(r.ea.oa,{ga:r,fa:a})},Mn=t.UnboundTypeError=K("UnboundTypeError"),t.count_emval_handles=function(){for(var n=0,t=5;tn.Ta)).concat(a.map((n=>n.cb))),(n=>{var i={};return a.forEach(((t,e)=>{var r=n[e],o=t.Ra,u=t.Sa,c=n[e+a.length],f=t.bb,s=t.eb;i[t.Na]={read:n=>r.fromWireType(o(u,n)),write:(n,t)=>{var e=[];f(s,n,c.toWireType(e,t)),q(e)}}})),[{name:t.name,fromWireType:function(n){var t,e={};for(t in i)e[t]=i[t].read(n);return r(n),e},toWireType:function(n,t){for(var a in i)if(!(a in t))throw new TypeError('Missing field: "'+a+'"');var o=e();for(a in i)i[a].write(o,t[a]);return null!==n&&n.push(r,o),o},argPackAdvance:8,readValueFromPointer:N,ja:r}]}))},E:function(n,t,e,r,a){t=an(t),e=sn(e);var i=-1!=t.indexOf("u");i&&(a=(1n<<64n)-1n),cn(n,{name:t,fromWireType:function(n){return n},toWireType:function(n,e){if("bigint"!=typeof e&&"number"!=typeof e)throw new TypeError('Cannot convert "'+en(e)+'" to '+this.name);if(ea)throw new TypeError('Passing a number "'+en(e)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+r+", "+a+"]!");return e},argPackAdvance:8,readValueFromPointer:fn(t,e,!i),ja:null})},S:function(n,t,e,r,a){var i=sn(e);cn(n,{name:t=an(t),fromWireType:function(n){return!!n},toWireType:function(n,t){return t?r:a},argPackAdvance:8,readValueFromPointer:function(n){if(1===e)var r=p;else if(2===e)r=y;else{if(4!==e)throw new TypeError("Unknown boolean type size: "+t);r=g}return this.fromWireType(r[n>>i])},ja:null})},f:function(n,t,e,r,a,i,o,u,c,f,s,l,h){s=an(s),i=Dn(a,i),u&&(u=Dn(o,u)),f&&(f=Dn(c,f)),h=Dn(l,h);var d=X(s);Pn(d,(function(){In("Cannot construct "+s+" due to unbound types",[r])})),tn([n,t,e],r?[r]:[],(function(t){if(t=t[0],r)var e=t.ea,a=e.oa;else a=_n.prototype;t=Z(d,(function(){if(Object.getPrototypeOf(this)!==o)throw new on("Use 'new' to construct "+s);if(void 0===c.pa)throw new on(s+" has no accessible constructor");var n=c.pa[arguments.length];if(void 0===n)throw new on("Tried to invoke ctor of "+s+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(c.pa).toString()+") parameters instead!");return n.apply(this,arguments)}));var o=Object.create(a,{constructor:{value:t}});t.prototype=o;var c=new kn(s,t,o,h,e,i,u,f);e=new jn(s,c,!0,!1,!1),a=new jn(s+"*",c,!1,!1,!1);var l=new jn(s+" const*",c,!1,!0,!1);return yn[n]={pointerType:a,Ha:l},Sn(d,t),[e,a,l]}))},o:function(n,t,e,r,a,i,o){var u=xn(e,r);t=an(t),i=Dn(a,i),tn([],[n],(function(n){function r(){In("Cannot call "+a+" due to unbound types",u)}var a=(n=n[0]).name+"."+t;t.startsWith("@@")&&(t=Symbol[t.substring(2)]);var c=n.ea.constructor;return void 0===c[t]?(r.sa=e-1,c[t]=r):(Cn(c,t,a),c[t].ha[e-1]=r),tn([],u,(function(n){return n=Rn(a,[n[0],null].concat(n.slice(1)),null,i,o),void 0===c[t].ha?(n.sa=e-1,c[t]=n):c[t].ha[e-1]=n,[]})),[]}))},i:function(n,t,e,r,a,i){0{In("Cannot construct "+n.name+" due to unbound types",o)},tn([],o,(function(r){return r.splice(1,0,null),n.ea.pa[t-1]=Rn(e,r,null,a,i),[]})),[]}))},b:function(n,t,e,r,a,i,o,u){var c=xn(e,r);t=an(t),i=Dn(a,i),tn([],[n],(function(n){function r(){In("Cannot call "+a+" due to unbound types",c)}var a=(n=n[0]).name+"."+t;t.startsWith("@@")&&(t=Symbol[t.substring(2)]),u&&n.ea.$a.push(t);var f=n.ea.oa,s=f[t];return void 0===s||void 0===s.ha&&s.className!==n.name&&s.sa===e-2?(r.sa=e-2,r.className=n.name,f[t]=r):(Cn(f,t,a),f[t].ha[e-2]=r),tn([],c,(function(r){return r=Rn(a,r,n,i,o),void 0===f[t].ha?(r.sa=e-2,f[t]=r):f[t].ha[e-2]=r,[]})),[]}))},c:function(n,t,e,r,a,i,o,u,c,f){t=an(t),a=Dn(r,a),tn([],[n],(function(n){var r=(n=n[0]).name+"."+t,s={get:function(){In("Cannot access "+r+" due to unbound types",[e,o])},enumerable:!0,configurable:!0};return s.set=c?()=>{In("Cannot access "+r+" due to unbound types",[e,o])}:()=>{un(r+" is a read-only property")},Object.defineProperty(n.ea.oa,t,s),tn([],c?[e,o]:[e],(function(e){var o=e[0],s={get:function(){var t=Yn(this,n,r+" getter");return o.fromWireType(a(i,t))},enumerable:!0};if(c){c=Dn(u,c);var l=e[1];s.set=function(t){var e=Yn(this,n,r+" setter"),a=[];c(f,e,l.toWireType(a,t)),q(a)}}return Object.defineProperty(n.ea.oa,t,s),[]})),[]}))},R:function(n,t){cn(n,{name:t=an(t),fromWireType:function(n){var t=zn(n);return Bn(n),t},toWireType:function(n,t){return qn(t)},argPackAdvance:8,readValueFromPointer:N,ja:null})},s:function(n,t,e,r){function a(){}e=sn(e),t=an(t),a.values={},cn(n,{name:t,constructor:a,fromWireType:function(n){return this.constructor.values[n]},toWireType:function(n,t){return t.value},argPackAdvance:8,readValueFromPointer:Nn(t,e,r),ja:null}),Pn(t,a)},e:function(n,t,e){var r=Ln(n,"enum");t=an(t),n=r.constructor,r=Object.create(r.constructor.prototype,{value:{value:e},constructor:{value:Z(r.name+"_"+t,(function(){}))}}),n.values[e]=r,n[t]=r},D:function(n,t,e){e=sn(e),cn(n,{name:t=an(t),fromWireType:function(n){return n},toWireType:function(n,t){return t},argPackAdvance:8,readValueFromPointer:Gn(t,e),ja:null})},V:function(n,t,e,r,a,i){var o=xn(t,e);n=an(n),a=Dn(r,a),Pn(n,(function(){In("Cannot call "+n+" due to unbound types",o)}),t-1),tn([],o,(function(e){return Sn(n,Rn(n,[e[0],null].concat(e.slice(1)),null,a,i),t-1),[]}))},w:function(n,t,e,r,a){t=an(t),-1===a&&(a=4294967295),a=sn(e);var i=n=>n;if(0===r){var o=32-8*e;i=n=>n<>>o}e=t.includes("unsigned")?function(n,t){return t>>>0}:function(n,t){return t},cn(n,{name:t,fromWireType:i,toWireType:e,argPackAdvance:8,readValueFromPointer:fn(t,a,0!==r),ja:null})},q:function(n,t,e){function r(n){var t=b;return new a(d,t[1+(n>>=2)],t[n])}var a=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];cn(n,{name:e=an(e),fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{Wa:!0})},h:function(n,t,e,r,a,i,o,u,c,f,s,l){e=an(e),i=Dn(a,i),u=Dn(o,u),f=Dn(c,f),l=Dn(s,l),tn([n],[t],(function(n){return n=n[0],[new jn(e,n.ea,!1,!1,!0,n,r,i,u,f,l)]}))},F:function(n,t){var e="std::string"===(t=an(t));cn(n,{name:t,fromWireType:function(n){var t=b[n>>2],r=n+4;if(e)for(var a=r,i=0;i<=t;++i){var o=r+i;if(i==t||0==v[o]){if(a=a?k(v,a,o-a):"",void 0===u)var u=a;else u+=String.fromCharCode(0),u+=a;a=o+1}}else{for(u=Array(t),i=0;i>2]=a,e&&r)$(t,v,o,a+1);else if(r)for(r=0;rm,u=1;else 4===t&&(r=Qn,a=nt,i=tt,o=()=>b,u=2);cn(n,{name:e,fromWireType:function(n){for(var e,a=b[n>>2],i=o(),c=n+4,f=0;f<=a;++f){var s=n+4+f*t;f!=a&&0!=i[s>>u]||(c=r(c,s-c),void 0===e?e=c:(e+=String.fromCharCode(0),e+=c),c=s+t)}return At(n),e},toWireType:function(n,r){"string"!=typeof r&&un("Cannot pass non-string to C++ string type "+e);var o=i(r),c=wt(4+o+t);return b[c>>2]=o>>u,a(r,c+4,o+t),null!==n&&n.push(At,c),c},argPackAdvance:8,readValueFromPointer:N,ja:function(n){At(n)}})},v:function(n,t,e,r,a,i){z[n]={name:an(t),Ba:Dn(e,r),na:Dn(a,i),Fa:[]}},l:function(n,t,e,r,a,i,o,u,c,f){z[n].Fa.push({Na:an(t),Ta:e,Ra:Dn(r,a),Sa:i,cb:o,bb:Dn(u,c),eb:f})},T:function(n,t){cn(n,{Xa:!0,name:t=an(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},k:function(n,t,e){n=zn(n),t=Ln(t,"emval::as");var r=[],a=qn(r);return b[e>>2]=a,t.toWireType(r,n)},z:function(n,t){return n=zn(n),(t=Ln(t,"emval::as")).toWireType(null,n)},W:function(n,t,e,r){n=zn(n),e=et(t,e);for(var a=Array(t),i=0;i>2]=qn(i),n(t,e,i,a)},G:function(n,t,e,r){(n=it[n])(t=zn(t),e=at(e),null,r)},a:Bn,H:function(n){return 0===n?qn(ot()):(n=at(n),qn(ot()[n]))},B:function(n,t){var e=et(n,t),r=e[0];t=r.name+"_$"+e.slice(1).map((function(n){return n.name})).join("_")+"$";var a=ut[t];if(void 0!==a)return a;var i=Array(n-1);return a=function(n){var t=it.length;return it.push(n),t}(((t,a,o,u)=>{for(var c=0,f=0;f>>=0))return!1;for(var e=1;4>=e;e*=2){var r=t*(1+.2/e);r=Math.min(r,n+100663296);var a=Math;r=Math.max(n,r),a=a.min.call(a,2147483648,r+(65536-r%65536)%65536);n:{try{h.grow(a-d.byteLength+65535>>>16),E();var i=1;break n}catch(n){}i=void 0}if(i)return!0}return!1},K:function(n,t){var e=0;return ft().forEach((function(r,a){var i=t+e;for(a=b[n+4*a>>2]=i,i=0;i>0]=r.charCodeAt(i);p[a>>0]=0,e+=r.length+1})),0},L:function(n,t){var e=ft();b[n>>2]=e.length;var r=0;return e.forEach((function(n){r+=n.length+1})),b[t>>2]=r,0},Q:function(){return 52},P:function(){return 70},O:function(n,t,e,r){for(var a=0,i=0;i>2],u=b[t+4>>2];t+=8;for(var c=0;c>2]=a,0},J:function(n,t,e,r){return vt(n,t,e,r)}};!function(){function n(n){t.asm=n.exports,h=t.asm.X,E(),O=t.asm.ba,S.unshift(t.asm.Y),U--,t.monitorRunDependencies&&t.monitorRunDependencies(U),0==U&&I&&(n=I,I=null,n())}function e(t){n(t.instance)}function a(n){return(f||"function"!=typeof fetch?Promise.resolve().then((function(){return H()})):fetch(M,{credentials:"same-origin"}).then((function(n){if(!n.ok)throw"failed to load wasm binary file at '"+M+"'";return n.arrayBuffer()})).catch((function(){return H()}))).then((function(n){return WebAssembly.instantiate(n,i)})).then((function(n){return n})).then(n,(function(n){l("failed to asynchronously prepare wasm: "+n),R(n)}))}var i={a:gt};if(U++,t.monitorRunDependencies&&t.monitorRunDependencies(U),t.instantiateWasm)try{return t.instantiateWasm(i,n)}catch(n){l("Module.instantiateWasm callback failed with error: "+n),r(n)}(f||"function"!=typeof WebAssembly.instantiateStreaming||x()||"function"!=typeof fetch?a(e):fetch(M,{credentials:"same-origin"}).then((function(n){return WebAssembly.instantiateStreaming(n,i).then(e,(function(n){return l("wasm streaming compile failed: "+n),l("falling back to ArrayBuffer instantiation"),a(e)}))}))).catch(r)}(),t.___wasm_call_ctors=function(){return(t.___wasm_call_ctors=t.asm.Y).apply(null,arguments)};var bt,wt=t._malloc=function(){return(wt=t._malloc=t.asm.Z).apply(null,arguments)},At=t._free=function(){return(At=t._free=t.asm._).apply(null,arguments)},Tt=t.___getTypeName=function(){return(Tt=t.___getTypeName=t.asm.$).apply(null,arguments)};function _t(){function n(){if(!bt&&(bt=!0,t.calledRun=!0,!C)){if(V(S),e(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;){var n=t.postRun.shift();F.unshift(n)}V(F)}}if(!(0(l.add(n),n)));return o.set(e,new h(n,c)),a.add(n),c}function c(t){if(!t)return n;const e=t.toLowerCase().split(" ").join("-");switch(e){case"serif":return"noto-serif";case"sans-serif":return"arial-unicode-ms";case"monospace":return"ubuntu-mono";case"fantasy":return"cabin-sketch";case"cursive":return"redressed";default:return e}}function u(t){const e=function(t){if(!t.weight)return"";switch(t.weight.toLowerCase()){case"bold":case"bolder":return"-bold"}return""}(t)+function(t){if(!t.style)return"";switch(t.style.toLowerCase()){case"italic":case"oblique":return"-italic"}return""}(t);return c(t.family)+(e.length>0?e:"-regular")}},25245:function(t,e,s){s.d(e,{z:function(){return a}});var i=s(67134),n=s(47349),r=s(53736),o=s(15540);class a{static fromOptimized(t,e,s=!1,i=!1,n=1){return(new h).initialize(t,e,s,i,n)}static fromJSON(t,e=!1,s=!1){const[i,n]=c(t);return(new u).initialize(i,n,e,s,1)}static fromOptimizedCIM(t,e,s=!1,i=!1,n=1){return(new _).initialize(t,e,s,i,n)}static fromJSONCIM(t,e=!1,s=!1,i=1){const[n,r]=c(t);return(new f).initialize(n,r,e,s,i)}static fromFeatureSetReader(t){const e=t.readGeometryForDisplay(),s=t.geometryType;return e&&s?this.fromOptimized(e,s):null}static fromFeatureSetReaderCIM(t){const e=t.readGeometryForDisplay(),s=t.geometryType;return e&&s?this.fromOptimizedCIM(e,s):null}static createEmptyOptimized(t,e=!1,s=!1,i=1){return(new h).initialize(new o.Z,t,e,s,i)}static createEmptyJSON(t,e=!1,s=!1){return(new u).initialize([],t,e,s,1)}static createEmptyOptimizedCIM(t,e=!1,s=!1,i=1){return(new _).initialize(new o.Z,t,e,s,i)}static createEmptyJSONCIM(t,e=!1,s=!1,i=1){return(new f).initialize([],t,e,s,i)}asJSON(){const t=(0,n.M)(this);return"esriGeometryEnvelope"===this.geometryType?{xmin:t[0][0][0],ymin:t[0][0][1],xmax:t[0][2][0],ymax:t[0][2][1]}:"esriGeometryMultipoint"===this.geometryType?{points:t.flat()}:"esriGeometryPoint"===this.geometryType?{x:t[0][0][0],y:t[0][0][1]}:"esriGeometryPolygon"===this.geometryType?{rings:t}:{paths:t}}getCurrentRingArea(){if(this.pathSize<3)return 0;let t,e,s=0;if(this.seekPathStart(),!this.nextPoint())return 0;t=this.x,e=this.y;const i=t,n=e;for(;this.nextPoint();)s+=(t-this.x)*(e+this.y),t=this.x,e=this.y;return s+=(t-i)*(e+n),-.5*s}invertY(){this.yFactor*=-1}}class h extends a{constructor(){super(...arguments),this._end=-1}initialize(t,e,s,i,n){return this.hasZ=s,this.hasM=i,this.geometryType=e,this._stride=2+Number(s)+Number(i),this._geometry=t,this._pathIndex=-1,this._pathOffset=0,this._pointOffset=-this._stride,this._end=-1,this.yFactor=n,this}reset(){this.initialize(this._geometry,this.geometryType,this.hasZ,this.hasM,this.yFactor)}seekPath(t){if(t>=0&&tt)for(;this._pathIndex>t&&this.prevPath(););return!0}return!1}seekPathStart(){this._pointOffset=this._pathOffset-this._stride}seekPathEnd(){this._pointOffset=this._end}seekInPath(t){const e=this._pathOffset+t*this._stride;return e>=0&&e=this._pathOffset}nextPath(){return!(this.pathIndex>=this.totalSize-1||(this._pathIndex>=0&&(this._pathOffset+=this._stride*this.pathSize),this._pathIndex++,this._pointOffset=this._pathOffset-this._stride,this._end=this._pointOffset+this._stride+this._stride*this.pathSize,0))}prevPath(){return!(this.pathIndex<=0||(this._pathIndex--,this._end=this._pathOffset,this._pathOffset-=this._stride*this.pathSize,this._pointOffset=this._pathOffset-this._stride,0))}pathLength(){const t=this._end,e=this._stride,s=this._geometry.coords;let i=0;for(let n=this._pathOffset+e;nt+e))}get pathSize(){const{lengths:t}=this._geometry;return this._pathIndex<0||this._pathIndex>t.length-1?0:this._geometry.isPoint?1:t[this._pathIndex]}get totalSize(){return this._geometry.lengths.length}get x(){return this._geometry.coords[this._pointOffset]}set x(t){this._geometry.coords[this._pointOffset]=t}get y(){return this.yFactor*this._geometry.coords[this._pointOffset+1]}set y(t){this._geometry.coords[this._pointOffset+1]=this.yFactor*t}get z(){return this._geometry.coords[this._pointOffset+2]}set z(t){this._geometry.coords[this._pointOffset+2]=t}get m(){const t=this.hasZ?3:2;return this._geometry.coords[this._pointOffset+t]}set m(t){this._geometry.coords[this._pointOffset+3]=t}get pathIndex(){return this._pathIndex}get _coordIndex(){return this._pointOffset/this._stride}}function l(t){const e=[t.x,t.y];return t.z&&e.push(t.z),t.m&&e.push(t.m),e}function c(t){return(0,r.oU)(t)?[t.rings,"esriGeometryPolygon"]:(0,r.l9)(t)?[t.paths,"esriGeometryPolyline"]:(0,r.aW)(t)?[[t.points],"esriGeometryMultipoint"]:(0,r.YX)(t)?[[[[t.xmin,t.ymin],[t.xmin,t.ymax],[t.xmax,t.ymax],[t.xmax,t.ymin],[t.xmin,t.ymin]]],"esriGeometryEnvelope"]:(0,r.wp)(t)?[[[l(t)]],"esriGeometryPoint"]:[[],"esriGeometryPolyline"]}class u extends a{initialize(t,e,s,i,n){return this._paths=t,this.geometryType=e,this.hasZ=s,this.hasM=i,this._pathIndex=this._pointIndex=-1,this.yFactor=n,this._mIndex=this.hasZ?3:2,this}reset(){this._pathIndex=this._pointIndex=-1}seekPath(t){return this._pathIndex=t,this._pointIndex=-1,t>=0&&t=0&&t=0}nextPath(){return this._pointIndex=-1,this._currentPath=this._paths[++this._pathIndex],this._pathIndex0&&(this._pointIndex=-1,this._pathIndex--,this._currentPath=this._paths[this._pathIndex],!0)}pathLength(){const t=this._currentPath.length,e=this._currentPath;let s=0;for(let i=1;it.length)).reduce(((t,e)=>t+e))}get pathSize(){return this._pathIndex<0||this._pathIndex>this.totalSize-1?-1:this._paths[this._pathIndex].length}get totalSize(){return this._paths.length}get x(){return this._currentPoint[0]}set x(t){this._currentPoint[0]=t}get y(){return this.yFactor*this._currentPoint[1]}set y(t){this._currentPoint[1]=this.yFactor*t}get z(){return this._currentPoint[2]}set z(t){this._currentPoint[2]=t}get m(){return this._currentPoint[this._mIndex]}set m(t){this._currentPoint[this._mIndex]=t}get pathIndex(){return this._pathIndex}}class _ extends h{initialize(t,e,s,i,n){return super.initialize(t,e,s,i,n),this._controlPoints||(this._controlPoints=this._controlPoints=new Array(this.totalSize).fill(void 0).map((t=>new Set))),this}startPath(){super.startPath(),this._controlPoints.push(new Set)}clone(){const t=(new _).initialize(this._geometry.clone(),this.geometryType,this.hasZ,this.hasM,this.yFactor);return t._controlPoints=this._controlPoints,t}setControlPoint(){this._controlPoints[this.pathIndex].add(this._coordIndex)}getControlPoint(){return this._controlPoints[this.pathIndex].has(this._coordIndex)}setControlPointAt(t){this._controlPoints[this.pathIndex].add(t)}getControlPointAt(t){return this._controlPoints[this.pathIndex].has(t)}}class f extends u{initialize(t,e,s,i,n){return super.initialize(t,e,s,i,n)}clone(){return(new f).initialize((0,i.d9)(this._paths),this.geometryType,this.hasZ,this.hasM,this.yFactor)}setControlPoint(){this._paths[this.pathIndex][this._pointIndex][4]=1}getControlPoint(){return 1===this._paths[this.pathIndex][this._pointIndex][4]}setControlPointAt(t){this._paths[this.pathIndex][t][4]=1}getControlPointAt(t){return 1===this._paths[this.pathIndex][t][4]}}},55769:function(t,e,s){s.d(e,{r:function(){return l}});var i=s(24568),n=s(79880),r=s(18449),o=s(38028),a=s(68668);const h=222045e-19;function l(t){if(0===t.totalSize)return null;const e=(0,n.Cs)(t);if(!e)return null;const s=4*(Math.abs(e[0])+Math.abs(e[2])+Math.abs(e[1])+Math.abs(e[3])+1)*h;let o=0,a=0;t.reset();for(let e=0;t.nextPath();e++){const s=t.getCurrentRingArea();s>a&&(a=s,o=e)}if(t.seekPath(o),0===t.pathSize)return null;t.seekPathStart();const l=(0,n.qu)(t);if(Math.abs(a)<=2*s*s)return[(l[0]+l[2])/2,(l[1]+l[3])/2];t.seekPathStart();const f=(0,r.Zc)(t,(0,i.Ue)());if(null===f)return null;if(t.totalPoints<4)return f;const p=[[NaN,NaN],[NaN,NaN],[NaN,NaN],[NaN,NaN]],m=[NaN,NaN,NaN,NaN],d=[NaN,NaN,NaN,NaN];let g=!1,y=u(f,t,!0);0===y.distance&&(g=!0,p[0][0]=f[0],p[0][1]=f[1],y=u(f,t,!1)),m[0]=y.distance,d[0]=0;const P=[NaN,NaN];let S=!1,C=.25,w=-1,k=NaN;do{if(k=NaN,p[1]=_(t,x(l[0],l[2],C),s,e),isNaN(p[1][0])||isNaN(p[1][1])||(y=u(p[1],t,!1),k=y.distance),!isNaN(k)&&k>s&&c(p[1],t))S=!0,m[1]=k,d[1]=M(p[1],f);else if(!isNaN(k)&&k>w&&(w=k,P[0]=p[1][0],P[1]=p[1][1]),C-=.01,C<.1){if(!(w>=0))break;S=!0,m[1]=w,p[1][0]=P[0],p[1][1]=P[1],d[1]=M(p[1],f)}}while(!S);S=!1,C=.5,w=-1;let I=.01,v=1;do{if(k=NaN,p[2]=_(t,x(l[0],l[2],C),s,e),isNaN(p[2][0])||isNaN(p[2][1])||(y=u(p[2],t,!1),k=y.distance),!isNaN(k)&&k>s&&c(p[2],t))S=!0,m[2]=k,d[2]=M(p[2],f);else if(!isNaN(k)&&k>w)w=k,P[0]=p[2][0],P[1]=p[2][1];else if(k>w&&(w=k,P[0]=p[2][0],P[1]=p[2][1]),C=.5+I*v,I+=.01,v*=-1,C<.3||C>.7){if(!(w>=0))break;S=!0,m[2]=w,p[2][0]=P[0],p[2][1]=P[1],d[2]=M(p[2],f)}}while(!S);S=!1,C=.75,w=-1;do{if(k=NaN,p[3]=_(t,x(l[0],l[2],C),s,e),isNaN(p[3][0])||isNaN(p[3][1])||(y=u(p[3],t,!1),k=y.distance),!isNaN(k)&&k>s&&c(p[3],t))S=!0,m[3]=k,d[3]=M(p[3],f);else if(k>w&&(w=k,P[0]=p[3][0],P[1]=p[3][1]),C+=.01,C>.9){if(!(w>=0))break;S=!0,m[3]=w,p[3][0]=P[0],p[3][1]=P[1],d[3]=M(p[3],f)}}while(!S);const z=[0,1,2,3],L=g?0:1;let A;for(let t=L;t<4;t++)for(let t=L;t<3;t++){const e=d[t],s=d[t+1];b(e,s)>0&&(A=z[t],z[t]=z[t+1],z[t+1]=A,d[t]=s,d[t+1]=e)}let T=L,E=0,N=0;for(let t=L;t<4;t++){switch(t){case 0:N=2*m[z[t]];break;case 1:N=1.66666666*m[z[t]];break;case 2:N=1.33333333*m[z[t]];break;case 3:N=m[z[t]]}N>E&&(E=N,T=z[t])}return p[T]}function c(t,e){let s,i,n,r,o=0;for(e.reset();e.nextPath()&&e.nextPoint();)for(s=e.x,i=e.y;e.nextPoint();s=n,i=r)n=e.x,r=e.y,i>t[1]!=r>t[1]&&((n-s)*(t[1]-i)-(r-i)*(t[0]-s)>0?o++:o--);return 0!==o}function u(t,e,s){if(s&&c(t,e))return{coord:t,distance:0};let i=1/0,n=0,r=0,a=[0,0],h=[0,0];const l=[0,0];for(e.reset();e.nextPath()&&e.nextPoint();)if(!(e.pathSize<2))for(a[0]=e.x,a[1]=e.y;e.nextPoint();a=h){h=[e.x,e.y],(0,o.r8)(l,t,a,h);const s=M(t,l);sh?ec)i&d?(i&p?(e[1]+=c*(r-e[0])/l,e[0]=r):(e[1]+=c*(a-e[0])/l,e[0]=a),i=P(e,t)):n&d?(n&p?(s[1]+=c*(r-s[0])/l,s[0]=r):(s[1]+=c*(a-s[0])/l,s[0]=a),n=P(s,t)):i?(i&m?(e[0]+=l*(o-e[1])/c,e[1]=o):(e[0]+=l*(h-e[1])/c,e[1]=h),i=P(e,t)):(n&m?(s[0]+=l*(o-s[1])/c,s[1]=o):(s[0]+=l*(h-s[1])/c,s[1]=h),n=P(s,t));else if(i&g?(i&m?(e[0]+=l*(o-e[1])/c,e[1]=o):(e[0]+=l*(h-e[1])/c,e[1]=h),i=P(e,t)):n&g?(n&m?(s[0]+=l*(o-s[1])/c,s[1]=o):(s[0]+=l*(h-s[1])/c,s[1]=h),n=P(s,t)):i?(i&p?(e[1]+=c*(r-e[0])/l,e[0]=r):(e[1]+=c*(a-e[0])/l,e[0]=a),i=P(e,t)):(n&p?(s[1]+=c*(r-s[0])/l,s[0]=r):(s[1]+=c*(a-s[0])/l,s[0]=a),n=P(s,t)),i&n)return 0}while(i|n);return l}function P(t,e){return(t[0]e[2]?1:0)<<1|(t[1]e[3]?1:0)<<3}function x(t,e,s){return t+(e-t)*s}function M(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])}function b(t,e){if(te)return 1;if(t===e)return 0;const s=isNaN(t),i=isNaN(e);return si?1:0}},94843:function(t,e,s){s.d(e,{qh:function(){return n},v1:function(){return r},vT:function(){return o}});var i=s(40709);function n(t,e){t[4]=e}class r{constructor(t,e=!0,s=!0,n=0){this.isClosed=!1,this.geometryCursor=null,this.geometryCursor=!e&&"esriGeometryPolygon"===t.geometryType||!s&&"esriGeometryPolyline"===t.geometryType?null:t,this.geomUnitsPerPoint=n,this.iteratePath=!1,this.internalPlacement=new i.u}next(){if(!this.geometryCursor)return null;for(;this.iteratePath||this.geometryCursor.pathIndex0;let P=this._lineThroughWidthOffset,x=0;if(o){i.save();const t=e.backgroundColor??[0,0,0,0],n=e.borderLine?.color??[0,0,0,0],r=2*(0,h.F2)(e.borderLine?.size??0);i.fillStyle=S(t),i.strokeStyle=S(n),i.lineWidth=r,i.fillRect(0,0,s.width,s.height),i.strokeRect(0,0,s.width,s.height),i.restore()}y&&this._renderHalo(i,d,g,P,x,e),x+=g,P+=d;for(const t of this._textLines)y?(i.globalCompositeOperation="destination-out",i.fillStyle="rgb(0, 0, 0)",i.fillText(t,P,x),i.globalCompositeOperation="source-over",i.fillStyle=this._fillStyle,i.fillText(t,P,x)):(i.fillStyle=this._fillStyle,i.fillText(t,P,x)),n&&"none"!==n&&this._renderDecoration(i,P,x,n,r),x+=f;i.restore();const M=this._renderedWidth+2*this._lineThroughWidthOffset,C=this._renderedHeight,w=i.getImageData(0,0,M,C),k=new Uint8Array(w.data);if(e.premultiplyColors){let t;for(let e=0;e600)&&(s+=.3*t.measureText("w").width),s+=2*(0,h.F2)(this._parameters.halo.size),Math.round(s)}_computeLineHeight(){let t=1.275*this._parameters.size;const e=this._parameters.font.decoration;return e&&"underline"===e&&(t*=1.3),Math.round(t+2*(0,h.F2)(this._parameters.halo.size))}_renderDecoration(t,e,s,i,n,r){const o=.9*this._lineHeight,a="bold"===n?.06:"bolder"===n?.09:.04;switch(t.textAlign){case"center":e-=this._renderedWidth/2;break;case"right":e-=this._renderedWidth}const h=t.textBaseline;if("underline"===i)switch(h){case"top":s+=o;break;case"middle":s+=o/2}else if("line-through"===i)switch(h){case"top":s+=o/1.5;break;case"middle":s+=o/3}const l=r?1.5*r:Math.ceil(o*a);t.save(),t.beginPath(),t.strokeStyle=t.fillStyle,t.lineWidth=l,t.moveTo(e-this._lineThroughWidthOffset,s),t.lineTo(e+this._renderedWidth+2*this._lineThroughWidthOffset,s),t.stroke(),t.restore()}}var w=s(60789),k=s(14266),I=s(58005);const v=Math.PI/180;class z{constructor(t){this._t=t}static createIdentity(){return new z([1,0,0,0,1,0])}clone(){const t=this._t;return new z(t.slice())}transform(t){const e=this._t;return[e[0]*t[0]+e[1]*t[1]+e[2],e[3]*t[0]+e[4]*t[1]+e[5]]}static createScale(t,e){return new z([t,0,0,0,e,0])}scale(t,e){const s=this._t;return s[0]*=t,s[1]*=t,s[2]*=t,s[3]*=e,s[4]*=e,s[5]*=e,this}scaleRatio(){return Math.sqrt(this._t[0]*this._t[0]+this._t[1]*this._t[1])}static createTranslate(t,e){return new z([0,0,t,0,0,e])}translate(t,e){const s=this._t;return s[2]+=t,s[5]+=e,this}static createRotate(t){const e=Math.cos(t),s=Math.sin(t);return new z([e,-s,0,s,e,0])}rotate(t){return z.multiply(this,z.createRotate(t),this)}angle(){const t=this._t[0],e=this._t[3],s=Math.sqrt(t*t+e*e);return[t/s,e/s]}static multiply(t,e,s){const i=t._t,n=e._t,r=i[0]*n[0]+i[3]*n[1],o=i[1]*n[0]+i[4]*n[1],a=i[2]*n[0]+i[5]*n[1]+n[2],h=i[0]*n[3]+i[3]*n[4],l=i[1]*n[3]+i[4]*n[4],c=i[2]*n[3]+i[5]*n[4]+n[5],u=s._t;return u[0]=r,u[1]=o,u[2]=a,u[3]=h,u[4]=l,u[5]=c,s}invert(){const t=this._t;let e=t[0]*t[4]-t[1]*t[3];if(0===e)return new z([0,0,0,0,0,0]);e=1/e;const s=(t[1]*t[5]-t[2]*t[4])*e,i=(t[2]*t[3]-t[0]*t[5])*e,n=t[4]*e,r=-t[1]*e,o=-t[3]*e,a=t[0]*e;return new z([n,r,s,o,a,i])}}class L{constructor(t,e){this._resourceManager=t,this._transfos=[],this._sizeTransfos=[],this._geomUnitsPerPoint=1,this._placementPool=new a.Z(g.u,void 0,void 0,100),this._earlyReturn=!1,this._mapRotation=0,this._transfos.push(e||z.createIdentity()),this._sizeTransfos.push(e?e.scaleRatio():1)}setTransform(t,e){this._transfos=[t||z.createIdentity()],this._sizeTransfos=[e||(t?t.scaleRatio():1)]}setGeomUnitsPerPoint(t){this._geomUnitsPerPoint=t}transformPt(t){return this._transfos[this._transfos.length-1].transform(t)}transformSize(t){return t*this._sizeTransfos[this._sizeTransfos.length-1]}reverseTransformPt(t){return this._transfos[this._transfos.length-1].invert().transform(t)}reverseTransformSize(t){return t/this._sizeTransfos[this._sizeTransfos.length-1]}reverseTransformScalar(t){return t/this._transfos[this._transfos.length-1].scaleRatio()}getTransformAngle(){return this._transfos[this._transfos.length-1].angle()}geomUnitsPerPoint(){return this.isEmbedded()?1:this._geomUnitsPerPoint}prevGeomUnitsPerPoint(){return this._transfos.length>2?1:this._geomUnitsPerPoint}isEmbedded(){return this._transfos.length>1}back(){return this._transfos[this._transfos.length-1]}push(t,e){const s=e?t.scaleRatio():1;z.multiply(t,this.back(),t),this._transfos.push(t),this._sizeTransfos.push(this._sizeTransfos[this._sizeTransfos.length-1]*s)}pop(){this._transfos.splice(-1,1),this._sizeTransfos.splice(-1,1)}drawSymbol(t,e,s){if(t)switch(t.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":this.drawMultiLayerSymbol(t,e);break;case"CIMTextSymbol":this.drawTextSymbol(t,e,s)}}drawMultiLayerSymbol(t,e){if(!t||!e)return;const s=t.symbolLayers;if(!s)return;const i=t.effects;if(i&&i.length>0){const t=this.executeEffects(i,e);if(t){let e=t.next();for(;e;)this.drawSymbolLayers(s,e.asJSON()),e=t.next()}}else this.drawSymbolLayers(s,e)}executeEffects(t,e){const s=this._resourceManager.geometryEngine;let i=new p.z(l.z.fromJSONCIM(e));for(const e of t){const t=(0,d.h)(e);t&&(i=t.execute(i,e,this.geomUnitsPerPoint(),null,s))}return i}drawSymbolLayers(t,e){let s=t.length;for(;s--;){const i=t[s];if(!i||!1===i.enable)continue;const n=i.effects;if(n&&n.length>0){const t=this.executeEffects(n,e);if(t){let e=null;for(;(e=t.next())&&(this.drawSymbolLayer(i,e.asJSON()),!this._earlyReturn););}}else this.drawSymbolLayer(i,e);if(this._earlyReturn)return}}drawSymbolLayer(t,e){switch(t.type){case"CIMSolidFill":this.drawSolidFill(e,t.color);break;case"CIMHatchFill":this.drawHatchFill(e,t);break;case"CIMPictureFill":this.drawPictureFill(e,t);break;case"CIMGradientFill":this.drawGradientFill(e,t);break;case"CIMSolidStroke":this.drawSolidStroke(e,t.color,t.width,t.capStyle,t.joinStyle,t.miterLimit);break;case"CIMPictureStroke":this.drawPictureStroke(e,t);break;case"CIMGradientStroke":this.drawGradientStroke(e,t);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":this.drawMarkerLayer(t,e)}}drawHatchFill(t,e){const s=this._buildHatchPolyline(e,t,this.geomUnitsPerPoint());s&&(this.pushClipPath(t),this.drawMultiLayerSymbol(e.lineSymbol,s),this.popClipPath())}drawPictureFill(t,e){}drawGradientFill(t,e){}drawPictureStroke(t,e){}drawGradientStroke(t,e){}drawMarkerLayer(t,e){const s=t.markerPlacement;if(s){const i=(0,d.W)(s);if(i){const n="CIMMarkerPlacementInsidePolygon"===s.type||"CIMMarkerPlacementPolygonCenter"===s.type&&s.clipAtBoundary;n&&this.pushClipPath(e);const r=i.execute(l.z.fromJSONCIM(e),s,this.geomUnitsPerPoint(),null,this._resourceManager.geometryEngine);if(r){let e=null;for(;(e=r.next())&&(this.drawMarker(t,e),!this._earlyReturn););}n&&this.popClipPath()}}else{const s=this._placementPool.acquire();if((0,f.wp)(e))s.tx=e.x,s.ty=e.y,this.drawMarker(t,s);else if((0,f.oU)(e)){const i=(0,_.tO)(e);i&&([s.tx,s.ty]=i,this.drawMarker(t,s))}else for(const i of e.points)if(s.tx=i[0],s.ty=i[1],this.drawMarker(t,s),this._earlyReturn)break;this._placementPool.release(s)}}drawMarker(t,e){switch(t.type){case"CIMCharacterMarker":case"CIMPictureMarker":this.drawPictureMarker(t,e);break;case"CIMVectorMarker":this.drawVectorMarker(t,e)}}drawPictureMarker(t,e){if(!t)return;const s=this._resourceManager.getResource(t.url),i=(0,w.NA)(t.size,y.E.CIMPictureMarker.size);if(null==s||i<=0)return;const n=s.width,r=s.height;if(!n||!r)return;const o=n/r,a=(0,w.NA)(t.scaleX,1),h=z.createIdentity(),l=t.anchorPoint;if(l){let e=l.x,s=l.y;"Absolute"!==t.anchorPointUnits&&(e*=i*o*a,s*=i),h.translate(-e,-s)}let c=(0,w.NA)(t.rotation);t.rotateClockwise&&(c=-c),this._mapRotation&&(c+=this._mapRotation),c&&h.rotate(c*v);let u=(0,w.NA)(t.offsetX),_=(0,w.NA)(t.offsetY);if(u||_){if(this._mapRotation){const t=v*this._mapRotation,e=Math.cos(t),s=Math.sin(t),i=u*s+_*e;u=u*e-_*s,_=i}h.translate(u,_)}const f=this.geomUnitsPerPoint();1!==f&&h.scale(f,f);const p=e.getAngle();p&&h.rotate(p),h.translate(e.tx,e.ty),this.push(h,!1),this.drawImage(t,i),this.pop()}drawVectorMarker(t,e){if(!t)return;const s=t.markerGraphics;if(!s)return;const i=(0,w.NA)(t.size,y.E.CIMVectorMarker.size),n=t.frame,r=n?n.ymax-n.ymin:0,a=i&&r?i/r:1,h=z.createIdentity();n&&h.translate(.5*-(n.xmax+n.xmin),.5*-(n.ymax+n.ymin));const l=t.anchorPoint;if(l){let e=l.x,s=l.y;"Absolute"!==t.anchorPointUnits?n&&(e*=n.xmax-n.xmin,s*=n.ymax-n.ymin):(e/=a,s/=a),h.translate(-e,-s)}1!==a&&h.scale(a,a);let c=(0,w.NA)(t.rotation);t.rotateClockwise&&(c=-c),this._mapRotation&&(c+=this._mapRotation),c&&h.rotate(c*v);let u=(0,w.NA)(t.offsetX),_=(0,w.NA)(t.offsetY);if(u||_){if(this._mapRotation){const t=v*this._mapRotation,e=Math.cos(t),s=Math.sin(t),i=u*s+_*e;u=u*e-_*s,_=i}h.translate(u,_)}const f=this.geomUnitsPerPoint();1!==f&&h.scale(f,f);const p=e.getAngle();p&&h.rotate(p),h.translate(e.tx,e.ty),this.push(h,t.scaleSymbolsProportionally);for(const t of s){t?.symbol&&t.geometry||o.Z.getLogger("esri.symbols.cim.CIMSymbolDrawHelper").error("Invalid marker graphic",t);let e=t.textString;if("number"==typeof e&&(e=e.toString()),this.drawSymbol(t.symbol,t.geometry,e),this._earlyReturn)break}this.pop()}drawTextSymbol(t,e,s){if(!t)return;if(!(0,f.wp)(e))return;if((0,w.NA)(t.height,y.E.CIMTextSymbol.height)<=0)return;const i=z.createIdentity();let n=(0,w.NA)(t.angle);n=-n,n&&i.rotate(n*v);const r=(0,w.NA)(t.offsetX),o=(0,w.NA)(t.offsetY);(r||o)&&i.translate(r,o);const a=this.geomUnitsPerPoint();1!==a&&i.scale(a,a),i.translate(e.x,e.y),this.push(i,!1),this.drawText(t,s),this.pop()}_buildHatchPolyline(t,e,s){let i=(0,w.NA)(t.separation,y.E.CIMHatchFill.separation)*s,n=(0,w.NA)(t.rotation);if(0===i)return null;i<0&&(i=-i);let r=0;const o=.5*i;for(;r>o;)r-=i;for(;r<-o;)r+=i;const a=(0,c.Ue)();(0,u.$P)(a,e),a[0]-=o,a[1]-=o,a[2]+=o,a[3]+=o;const h=[[a[0],a[1]],[a[0],a[3]],[a[2],a[3]],[a[2],a[1]]];for(;n>180;)n-=180;for(;n<0;)n+=180;const l=Math.cos(n*v),_=Math.sin(n*v),f=-i*_,p=i*l;let m,d,g,P;r=(0,w.NA)(t.offsetX)*s*_-(0,w.NA)(t.offsetY)*s*l,m=g=Number.MAX_VALUE,d=P=-Number.MAX_VALUE;for(const t of h){const e=t[0],s=t[1],i=l*e+_*s,n=-_*e+l*s;m=Math.min(m,i),g=Math.min(g,n),d=Math.max(d,i),P=Math.max(P,n)}g=Math.floor(g/i)*i;let x=l*m-_*g-f*r/i,M=_*m+l*g-p*r/i,b=l*d-_*g-f*r/i,S=_*d+l*g-p*r/i;const C=1+Math.round((P-g)/i),k=[];for(let t=0;t0))if((0,f.oU)(t))this._processPath(t.rings,0);else if((0,f.l9)(t))this._processPath(t.paths,0);else if((0,f.YX)(t)){const e=F(t);e&&this._processPath(e.rings,0)}}drawSolidStroke(t,e,s){if(!t||this._clipCount>0||null==s||s<=0)return;const i=Math.max(.5*this.transformSize((0,w.NA)(s,y.E.CIMSolidStroke.width)),.25);if((0,f.oU)(t))this._processPath(t.rings,i);else if((0,f.l9)(t))this._processPath(t.paths,i);else if((0,f.YX)(t)){const e=F(t);e&&this._processPath(e.rings,i)}}drawMarkerLayer(t,e){(0,f.oU)(e)&&t.markerPlacement&&("CIMMarkerPlacementInsidePolygon"===t.markerPlacement.type||"CIMMarkerPlacementPolygonCenter"===t.markerPlacement.type&&t.markerPlacement.clipAtBoundary)?this._processPath(e.rings,0):super.drawMarkerLayer(t,e)}drawHatchFill(t,e){this.drawSolidFill(t)}drawPictureFill(t,e){this.drawSolidFill(t)}drawGradientFill(t,e){this.drawSolidFill(t)}drawPictureStroke(t,e){this.drawSolidStroke(t,null,e.width)}drawGradientStroke(t,e){this.drawSolidStroke(t,null,e.width)}pushClipPath(t){this.drawSolidFill(t),this._clipCount++}popClipPath(){this._clipCount--}drawImage(t,e){const{url:s}=t,i=(0,w.NA)(t.scaleX,1);let n=i*e,r=e;const o=this._resourceManager.getResource(s);if(null!=o){const t=o.height/o.width;n=i*(e?t>1?e:e/t:o.width),r=e?t>1?e*t:e:o.height}this._merge(this.transformPt([-n/2,-r/2]),0),this._merge(this.transformPt([-n/2,r/2]),0),this._merge(this.transformPt([n/2,-r/2]),0),this._merge(this.transformPt([n/2,r/2]),0)}drawText(t,e){if(!e||0===e.length)return;this._textRasterizer||(this._textRasterizer=new C);const s=G(t);let[i,n]=this._textRasterizer.computeTextSize(e,s);i=(0,h.Wz)(i),n=(0,h.Wz)(n);let r=0;switch(t.horizontalAlignment){case"Left":r=i/2;break;case"Right":r=-i/2}let o=0;switch(t.verticalAlignment){case"Bottom":o=n/2;break;case"Top":o=-n/2;break;case"Baseline":o=n/6}this._merge(this.transformPt([-i/2+r,-n/2+o]),0),this._merge(this.transformPt([-i/2+r,n/2+o]),0),this._merge(this.transformPt([i/2+r,-n/2+o]),0),this._merge(this.transformPt([i/2+r,n/2+o]),0)}_processPath(t,e){if(t)for(const s of t){const t=s?s.length:0;if(t>1){this._merge(this.transformPt(s[0]),e);for(let i=1;ithis._xmax&&(this._xmax=t[0]+e),t[1]-ethis._ymax&&(this._ymax=t[1]+e)}}class T extends L{constructor(){super(...arguments),this._searchPoint=[0,0],this._searchDistPoint=0,this._textInfo=null}hitTest(t,e,s,i,r,o){const a=o*(0,h.F2)(1);this.setTransform(),this.setGeomUnitsPerPoint(a),this._searchPoint=[(t[0]+t[2])/2,(t[1]+t[3])/2],this._searchDistPoint=(t[2]-t[0])/2/a,this._textInfo=i;const l=e&&("CIMPointSymbol"===e.type&&"Map"!==e.angleAlignment||"CIMTextSymbol"===e.type);if(this._mapRotation=l?r:0,!(0,n.Z)("esri-mobile")){const t=(0,h.Wz)((0,n.Z)("hittest-2d-small-symbol-tolerance")*window.devicePixelRatio),s=(0,h.Wz)((0,n.Z)("hittest-2d-small-symbol-tolerance-threshold"));("CIMLineSymbol"!==e?.type&&"CIMPolygonSymbol"!==e?.type||!e.symbolLayers?.some(w.k5))&&"CIMMeshSymbol"!==e?.type&&((0,w.ap)(e)??0)t.xTopLeft&&u-t.yBottomRight&&_<-t.yTopLeft){this._earlyReturn=!0;break}}_hitTestFill(t){let e=null;if((0,f.YX)(t)){const s=t;e=[[[s.xmin,s.ymin],[s.xmin,s.ymax],[s.xmax,s.ymax],[s.xmax,s.ymin],[s.xmin,s.ymin]]]}else if((0,f.oU)(t))e=t.rings;else{if(!(0,f.l9)(t))return;e=t.paths}const s=this.reverseTransformPt(this._searchPoint);if(this._pointInPolygon(s,e)&&(this._earlyReturn=!0),!this._earlyReturn){const t=this.reverseTransformScalar(this._searchDistPoint)*this.prevGeomUnitsPerPoint();this._nearLine(s,e,t)&&(this._earlyReturn=!0)}}_hitTestStroke(t,e){let s=null;if((0,f.YX)(t)){const e=t;s=[[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]]}else if((0,f.oU)(t))s=t.rings;else{if(!(0,f.l9)(t))return;s=t.paths}const i=this.reverseTransformPt(this._searchPoint),n=(0,w.NA)(e,y.E.CIMSolidStroke.width)*this.geomUnitsPerPoint(),r=this.reverseTransformScalar(this._searchDistPoint)*this.prevGeomUnitsPerPoint();this._nearLine(i,s,n/2+r)&&(this._earlyReturn=!0)}_pointInPolygon(t,e){let s=0;for(const i of e){const e=i.length;for(let n=1;nt[1]!=r[1]>t[1]&&((r[0]-e[0])*(t[1]-e[1])-(r[1]-e[1])*(t[0]-e[0])>0?s++:s--)}}return 0!==s}_nearLine(t,e,s){for(const i of e){const e=i.length;for(let n=1;n-s&&i1){let n=this.transformPt(i[0]);s.moveTo(n[0],n[1]);for(let e=1;et?{spatialReference:t.spatialReference,rings:[[[t.xmin,t.ymin],[t.xmin,t.ymax],[t.xmax,t.ymax],[t.xmax,t.ymin],[t.xmin,t.ymin]]]}:null,R=(t,e,s)=>{switch(t){case"ExtraLeading":return 1+e/s;case"Multiple":return e;case"Exact":return e/s}};function G(t,e=1){const s=(0,w.BX)(t),n=(0,w.wi)(t.fontStyleName),r=t.fontFamilyName??i.em,{weight:o,style:a}=n,h=e*(t.height||5),l=(0,w.X_)(t.horizontalAlignment),c=(0,w.FG)(t.verticalAlignment),u=(0,w.W7)(t),_=(0,w.W7)(t.haloSymbol),f=null!=_?e*(t.haloSize??0):0,p="CIMBackgroundCallout"===t.callout?.type?t.callout.backgroundSymbol:null,m=(0,w.W7)(p),d=(0,w.F)(p),g=(0,w.$Z)(p);return{color:u,size:h,horizontalAlignment:l,verticalAlignment:c,font:{family:r,style:(0,w.pJ)(a),weight:(0,w.On)(o),decoration:s},halo:{size:f||0,color:_,style:a},backgroundColor:m,borderLine:null!=d&&null!=g?{size:d,color:g}:null,pixelRatio:1,premultiplyColors:!0}}const O=1e-4;function X(t){let e,s,i,n,r,o=t[0],a=1;for(;ao.Z.getLogger("esri.symbols.cim.CIMSymbolHelper");function k(t){let e;switch(t.type){case"cim":return t.data;case"web-style":return t;case"simple-marker":{const s=T.fromSimpleMarker(t);if(!s)throw new Error("InternalError: Cannot convert symbol to CIM");e=s;break}case"picture-marker":e=T.fromPictureMarker(t);break;case"simple-line":e=T.fromSimpleLineSymbol(t);break;case"simple-fill":e=T.fromSimpleFillSymbol(t);break;case"picture-fill":e=T.fromPictureFillSymbol(t);break;case"text":e=T.fromTextSymbol(t)}return{type:"CIMSymbolReference",symbol:e}}function I(t,e,s){switch(e.type){case"CIMSymbolReference":return I(t,e.symbol,s);case"CIMPointSymbol":null==s&&(s={x:0,y:0}),t.drawSymbol(e,s);break;case"CIMLineSymbol":null==s&&(s={paths:[[[0,0],[10,0]]]}),t.drawSymbol(e,s);break;case"CIMPolygonSymbol":null==s&&(s={rings:[[[0,0],[0,10],[10,10],[10,0],[0,0]]]}),t.drawSymbol(e,s);break;case"CIMTextSymbol":{const s={x:0,y:0};t.drawSymbol(e,s);break}case"CIMVectorMarker":{const s=new _.u;t.drawMarker(e,s);break}}return t.envelope()}function v(t){if(!t)return 0;switch(t.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAtExtremities":case"CIMMarkerPlacementAtMeasuredUnits":case"CIMMarkerPlacementAtRatioPositions":case"CIMMarkerPlacementOnLine":case"CIMMarkerPlacementOnVertices":return Math.abs(t.offset);default:return 0}}function z(t){if(!t)return 0;switch(t.type){case"CIMGeometricEffectArrow":return Math.abs(.5*t.width);case"CIMGeometricEffectBuffer":return Math.abs(t.size);case"CIMGeometricEffectExtension":case"CIMGeometricEffectRadial":return Math.abs(t.length);case"CIMGeometricEffectJog":return Math.abs(.5*t.length);case"CIMGeometricEffectMove":return Math.max(Math.abs((0,d.NA)(t.offsetX)),Math.abs((0,d.NA)(t.offsetY)));case"CIMGeometricEffectOffset":case"CIMGeometricEffectOffsetTangent":return Math.abs(t.offset);case"CIMGeometricEffectRegularPolygon":return Math.abs(t.radius);case"CIMGeometricEffectRotate":case"CIMGeometricEffectScale":default:return 0;case"CIMGeometricEffectTaperedPolygon":return.5*Math.max(Math.abs(t.fromWidth),Math.abs(t.toWidth));case"CIMGeometricEffectWave":return Math.abs(t.amplitude);case"CIMGeometricEffectDonut":return Math.abs(t.width)}}function L(t){if(!t)return 0;let e=0;for(const s of t)e+=z(s);return e}class A{static getSymbolInflateSize(t,e,s,i,n){return t||(t=[0,0,0,0]),e?this._getInflateSize(t,e,s,i,n):t}static safeSize(t){const e=Math.max(Math.abs(t[0]),Math.abs(t[2])),s=Math.max(Math.abs(t[1]),Math.abs(t[3]));return Math.sqrt(e*e+s*s)}static _vectorMarkerBounds(t,e,s,i){let n=!0;const r=(0,l.Ue)();if(e?.markerGraphics)for(const o of e.markerGraphics){const e=[0,0,0,0];o.geometry&&((0,c.$P)(r,o.geometry),e[0]=0,e[1]=0,e[2]=0,e[3]=0,this.getSymbolInflateSize(e,o.symbol,s,0,i),r[0]+=e[0],r[1]+=e[1],r[2]+=e[2],r[3]+=e[3],n?(t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],n=!1):(t[0]=Math.min(t[0],r[0]),t[1]=Math.min(t[1],r[1]),t[2]=Math.max(t[2],r[2]),t[3]=Math.max(t[3],r[3])))}return t}static _getInflateSize(t,e,s,i,n){if(function(t){return void 0!==t.symbolLayers}(e)){const r=this._getLayersInflateSize(t,e.symbolLayers,s,i,n),o=L(e.effects);return o>0&&(r[0]-=o,r[1]-=o,r[2]+=o,r[3]+=o),r}return this._getTextInflatedSize(t,e,n)}static _getLayersInflateSize(t,e,s,i,n){let r=!0;if(!e)return t;for(const o of e){if(!o)continue;let e=[0,0,0,0];switch(o.type){case"CIMSolidFill":case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":break;case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":{const t=o;let s=t.width;null!=s&&(t.capStyle===m.kP.Square||t.joinStyle===m.r4.Miter?s/=1.4142135623730951:s/=2,e[0]=-s,e[1]=-s,e[2]=s,e[3]=s);break}case"CIMCharacterMarker":case"CIMVectorMarker":case"CIMPictureMarker":{const t=o;if("CIMVectorMarker"===o.type){const t=o;if(e=this._vectorMarkerBounds(e,t,s,n),t.frame){const s=(t.frame.xmin+t.frame.xmax)/2,i=(t.frame.ymin+t.frame.ymax)/2;if(e[0]-=s,e[1]-=i,e[2]-=s,e[3]-=i,null!=t.size){const s=t.size/(t.frame.ymax-t.frame.ymin);e[0]*=s,e[1]*=s,e[2]*=s,e[3]*=s}}}else if("CIMPictureMarker"===o.type){const i=o,n=s.getResource(i.url);let r=1;if(null!=n&&n.height&&(r=n.width/n.height),null!=t.size){const s=t.size/2,n=t.size*r*i.scaleX/2;e=[-n,-s,n,s]}}else if(null!=t.size){const s=t.size/2;e=[-s,-s,s,s]}if(t.anchorPoint){let s,i;"Absolute"===t.anchorPointUnits?(s=t.anchorPoint.x,i=t.anchorPoint.y):(s=t.anchorPoint.x*(e[2]-e[0]),i=t.anchorPoint.y*(e[3]-e[1])),e[0]-=s,e[1]-=i,e[2]-=s,e[3]-=i}let r=(0,d.NA)(t.rotation);if(t.rotateClockwise&&(r=-r),i&&(r-=i),r){const t=S*r,s=Math.cos(t),i=Math.sin(t),n=(0,l.Ue)([y.FM,y.FM,-y.FM,-y.FM]);(0,l.Ho)(n,[e[0]*s-e[1]*i,e[0]*i+e[1]*s]),(0,l.Ho)(n,[e[0]*s-e[3]*i,e[0]*i+e[3]*s]),(0,l.Ho)(n,[e[2]*s-e[1]*i,e[2]*i+e[1]*s]),(0,l.Ho)(n,[e[2]*s-e[3]*i,e[2]*i+e[3]*s]),e=n}let a=(0,d.NA)(t.offsetX),h=(0,d.NA)(t.offsetY);if(i){const t=S*i,e=Math.cos(t),s=Math.sin(t),n=a*s+h*e;a=a*e-h*s,h=n}e[0]+=a,e[1]+=h,e[2]+=a,e[3]+=h;const c=v(t.markerPlacement);c>0&&(e[0]-=c,e[1]-=c,e[2]+=c,e[3]+=c);break}}const a=L(o.effects);a>0&&(e[0]-=a,e[1]-=a,e[2]+=a,e[3]+=a),r?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],r=!1):(t[0]=Math.min(t[0],e[0]),t[1]=Math.min(t[1],e[1]),t[2]=Math.max(t[2],e[2]),t[3]=Math.max(t[3],e[3]))}return t}static _getTextInflatedSize(t,e,s){const i=e.height??p.E.CIMTextSymbol.height;if(t[0]=-i/2,t[1]=-i/2,t[2]=i/2,t[3]=i/2,!s)return t;const n=s.get(e);if(!n)return t;if(!n.glyphMosaicItems.glyphs.length)return t;const{lineGapType:r,lineGap:o}=e,a=r?(0,f.et)(r,o??0,i):0,h="CIMBackgroundCallout"===e.callout?.type,l=(0,x.Nr)(n.glyphMosaicItems,{scale:i/P.iD,angle:(0,d.NA)(e.angle),xOffset:(0,d.NA)(e.offsetX),yOffset:(0,d.NA)(e.offsetY),horizontalAlignment:e.horizontalAlignment,verticalAlignment:e.verticalAlignment,maxLineWidth:512,lineHeight:P.uk*Math.max(.25,Math.min(a||1,4)),decoration:e.font.decoration||"none",useCIMAngleBehavior:!0,hasBackground:h}).boundsT;return t[0]=l.x-l.halfWidth,t[1]=-l.y-l.halfHeight,t[2]=l.x+l.halfWidth,t[3]=-l.y+l.halfHeight,t}}class T{static getEnvelope(t,e,s){if(!t)return null;const i=new f.uQ(s);if(Array.isArray(t)){let s;for(const n of t)s?s.union(I(i,n,e)):s=I(i,n,e);return s}return I(i,t,e)}static getTextureAnchor(t,e){const s=this.getEnvelope(t,null,e);if(!s)return[0,0,0];const i=(s.x+.5*s.width)*C,n=(s.y+.5*s.height)*C,r=s.width*C+2,o=s.height*C+2;return[-i/r,-n/o,o]}static rasterize(t,e,s,i,n=!0){const r=s||this.getEnvelope(e,null,i);if(!r)return[null,0,0,0,0];const o=(r.x+.5*r.width)*C,a=(r.y+.5*r.height)*C;t.width=r.width*C,t.height=r.height*C,s||(t.width+=2,t.height+=2);const h=t.getContext("2d",{willReadFrequently:!0}),l=f.zA.createScale(C,-C);l.translate(.5*t.width-o,.5*t.height+a);const c=new f.cD(h,i,l);switch(e.type){case"CIMPointSymbol":{const t={type:"point",x:0,y:0};c.drawSymbol(e,t);break}case"CIMVectorMarker":{const t=new _.u;c.drawMarker(e,t);break}}const u=h.getImageData(0,0,t.width,t.height),p=new Uint8Array(u.data);if(n){let t;for(let e=0;ee.width&&e.width>0?t*e.width:t)),lineDashEnding:l,controlPointEnding:m.sj.FullPattern}]:void 0;r.push({type:"CIMSolidStroke",capStyle:s?m.kP.Round:m.kP.Butt,enable:!0,width:n,color:O(e.color),effects:c})}else!e||"line-marker"!==t.type||"cross"!==t.style&&"x"!==t.style?[o,a]=H(i):([o,a]=H(i),r.push({type:"CIMSolidStroke",enable:!0,width:e,color:O(n)}));r.push({type:"CIMSolidFill",enable:!0,color:O(n)});const l={type:"CIMPolygonSymbol",symbolLayers:r};return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,rotation:(0,d.NA)(-t.angle),size:(0,d.NA)(h||6*e),offsetX:(0,d.NA)(t.xoffset),offsetY:(0,d.NA)(t.yoffset),scaleSymbolsProportionally:!1,frame:o,markerGraphics:[{type:"CIMMarkerGraphic",geometry:a,symbol:l}]}]}}static fromCIMHatchFill(t,e){const s=e*(t.separation??p.E.CIMHatchFill.separation),i=s/2,n=(0,r.d9)(t.lineSymbol);n.symbolLayers?.forEach((t=>{switch(t.type){case"CIMSolidStroke":null!=t.width&&(t.width*=e),t.effects?.forEach((t=>{if("CIMGeometricEffectDashes"===t.type){const s=t.dashTemplate;t.dashTemplate=s.map((t=>t*e))}}));break;case"CIMVectorMarker":{null!=t.size&&(t.size*=e);const s=t.markerPlacement;null!=s&&"placementTemplate"in s&&(s.placementTemplate=s.placementTemplate.map((t=>t*e)));break}}}));let o=this._getLineSymbolPeriod(n)||4;for(;o<4;)o*=2;const a=o/2;return{type:"CIMVectorMarker",frame:{xmin:-a,xmax:a,ymin:-i,ymax:i},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{paths:[[[-a,0],[a,0]]]},symbol:n}],size:s}}static fetchResources(t,e,s,i=null){return t&&e?(E(t,(t=>{(function(t,e,s){if(!t.effects||null!=e.geometryEngine)return;if(e.geometryEnginePromise)return void s.push(e.geometryEnginePromise);(0,d.Cc)(t.effects)&&(e.geometryEnginePromise=(0,d.RI)(),s.push(e.geometryEnginePromise),e.geometryEnginePromise.then((t=>e.geometryEngine=t)))})(t,e,s),"url"in t&&t.url&&s.push(e.fetchResource(t.url,{signal:i}))})),s):s}static fetchFonts(t,e,s){if(t&&e)if("symbolLayers"in t&&t.symbolLayers){for(const i of t.symbolLayers)if("CIMVectorMarker"===i.type&&i.markerGraphics)for(const t of i.markerGraphics)t?.symbol&&T.fetchFonts(t.symbol,e,s)}else if("CIMTextSymbol"===t.type){const{fontFamilyName:i,fontStyleName:n}=t;if(!i||"calcitewebcoreicons"===i.toLowerCase())return;const{style:r,weight:o}=(0,d.wi)(n),a=(0,d.BX)(t),h=new u.Z({family:i,style:r,weight:o,decoration:a});s.push(e.loadFont(h).catch((()=>{w().error(`Unsupported font ${i} in CIM symbol`)})))}}static _getLineSymbolPeriod(t){if(t){const e=this._getEffectsRepeat(t.effects);if(e)return e;if(t.symbolLayers)for(const e of t.symbolLayers)if(e){const t=this._getEffectsRepeat(e.effects);if(t)return t;switch(e.type){case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":{const t=this._getPlacementRepeat(e.markerPlacement);if(t)return t}}}}return 0}static _getEffectsRepeat(t){if(t)for(const e of t)if(e)switch(e.type){case"CIMGeometricEffectDashes":{const t=e.dashTemplate;if(t&&t.length){let e=0;for(const s of t)e+=s;return 1&t.length&&(e*=2),e}break}case"CIMGeometricEffectWave":return e.period;default:w().error(`unsupported geometric effect type ${e.type}`)}return 0}static _getPlacementRepeat(t){if(t)switch(t.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAlongLineVariableSize":{const e=t.placementTemplate;if(e&&e.length){let t=0;for(const s of e)t+=+s;return 1&e.length&&(t*=2),t}break}}return 0}static fromCIMInsidePolygon(t){const e=t.markerPlacement,s={...t};s.markerPlacement=null,s.anchorPoint=null;const i=Math.abs(e.stepX),n=Math.abs(e.stepY),r=(e.randomness??100)/100;let o,l,c,u;if("Random"===e.gridType){const t=(0,h.Wz)(P.KA),s=Math.max(Math.floor(t/i),1),_=Math.max(Math.floor(t/n),1);o=s*i/2,l=_*n/2,c=2*l;const f=new a.Z(e.seed),p=r*i/1.5,m=r*n/1.5;u=[];for(let t=0;t({type:"CIMMarkerGraphic",geometry:t,symbol:{type:"CIMPointSymbol",symbolLayers:[s]}}))),size:c}}}function E(t,e){if(t)switch(t.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":{const s=t.symbolLayers;if(!s)return;for(const t of s)if(e(t),"CIMVectorMarker"===t.type){const s=t.markerGraphics;if(!s)continue;for(const t of s)if(t){const s=t.symbol;s&&E(s,e)}}break}}}const N=t=>{if(!t)return m.kP.Butt;switch(t){case"butt":return m.kP.Butt;case"square":return m.kP.Square;case"round":return m.kP.Round}},F=t=>{if(!t)return m.r4.Miter;switch(t){case"miter":return m.r4.Miter;case"round":return m.r4.Round;case"bevel":return m.r4.Bevel}},R=t=>{if(null==t)return"Center";switch(t){case"left":return"Left";case"right":return"Right";case"center":return"Center"}},G=t=>{if(null==t)return"Center";switch(t){case"baseline":return"Baseline";case"top":return"Top";case"middle":return"Center";case"bottom":return"Bottom"}},O=t=>{if(!t)return[0,0,0,0];const{r:e,g:s,b:i,a:n}=t;return[e,s,i,255*n]},X=(t,e)=>{const s=D(e),i=Y(t);return s&&i?`${s}-${i}`:`${s}${i}`},D=t=>{if(!t)return"";switch(t.toLowerCase()){case"bold":case"bolder":return"bold"}return""},Y=t=>{if(!t)return"";switch(t.toLowerCase()){case"italic":case"oblique":return"italic"}return""},B=(t,e)=>{const s=(0,n.Z)("safari")?.001:0,i="butt"===e;switch(t){case"dash":case"esriSLSDash":return i?[4,3]:[3,4];case"dash-dot":case"esriSLSDashDot":return i?[4,3,1,3]:[3,4,s,4];case"dot":case"esriSLSDot":return i?[1,3]:[s,4];case"long-dash":case"esriSLSLongDash":return i?[8,3]:[7,4];case"long-dash-dot":case"esriSLSLongDashDot":return i?[8,3,1,3]:[7,4,s,4];case"long-dash-dot-dot":case"esriSLSDashDotDot":return i?[8,3,1,3,1,3]:[7,4,s,4,s,4];case"short-dash":case"esriSLSShortDash":return i?[4,1]:[3,2];case"short-dash-dot":case"esriSLSShortDashDot":return i?[4,1,1,1]:[3,2,s,2];case"short-dash-dot-dot":case"esriSLSShortDashDotDot":return i?[4,1,1,1,1,1]:[3,2,s,2,s,2];case"short-dot":case"esriSLSShortDot":return i?[1,1]:[s,2];case"solid":case"esriSLSSolid":case"none":return w().error("Unexpected: style does not require rasterization"),[0,0];default:return w().error(`Tried to rasterize SLS, but found an unexpected style: ${t}!`),[0,0]}};const H=(t,e=100)=>{const s=e/2;let i,n;const r=t;if("circle"===r||"esriSMSCircle"===r){const t=.25;let e=Math.acos(1-t/s),r=Math.ceil(M/e/4);0===r&&(r=1),e=b/r,r*=4;const o=[];o.push([s,0]);for(let t=1;t"vertical"===t||"horizontal"===t||"cross"===t||"esriSFSCross"===t||"esriSFSVertical"===t||"esriSFSHorizontal"===t;function V(t){if(!t)return null;let e=null;const{cap:s,color:i,join:n,miterLimit:r,style:o,width:a}=t;return"solid"!==o&&"none"!==o&&"esriSLSSolid"!==o&&"esriSLSNull"!==o&&(e=[{type:"CIMGeometricEffectDashes",dashTemplate:B(o,s),lineDashEnding:"NoConstraint",scaleDash:!0,offsetAlongLine:null}]),{type:"CIMSolidStroke",color:"esriSLSNull"!==o&&"none"!==o?O(i):[0,0,0,0],capStyle:N(s),joinStyle:F(n),miterLimit:r,width:a,effects:e}}},10701:function(t,e,s){s.d(e,{D:function(){return r},N:function(){return o}});var i=s(25245),n=s(25609);const r=.03;class o{constructor(t=0,e=!1){}isEmpty(t){if(!t.nextPoint())return!0;let e,s,i,n;for(e=t.x,s=t.y;t.nextPoint();e=s,s=n)if(i=t.x,n=t.y,i!==e||n!==s)return t.seekPathStart(),!1;return t.seekPathStart(),!0}normalize(t){const e=Math.sqrt(t[0]*t[0]+t[1]*t[1]);0!==e&&(t[0]/=e,t[1]/=e)}getLength(t,e,s,i){const n=s-t,r=i-e;return Math.sqrt(n*n+r*r)}getSegLength(t){const[[e,s],[i,n]]=t;return this.getLength(e,s,i,n)}getCoord2D(t,e,s,i,n){return[t+(s-t)*n,e+(i-e)*n]}getSegCoord2D(t,e){const[[s,i],[n,r]]=t;return this.getCoord2D(s,i,n,r,e)}getAngle(t,e,s,i,n){const r=s-t,o=i-e;return Math.atan2(o,r)}getAngleCS(t,e,s,i,n){const r=s-t,o=i-e,a=Math.sqrt(r*r+o*o);return a>0?[r/a,o/a]:[1,0]}getSegAngleCS(t,e){const[[s,i],[n,r]]=t;return this.getAngleCS(s,i,n,r,e)}cut(t,e,s,i,n,r){return[n<=0?[t,e]:this.getCoord2D(t,e,s,i,n),r>=1?[s,i]:this.getCoord2D(t,e,s,i,r)]}getSubCurve(t,e,s){const n=i.z.createEmptyOptimizedCIM("esriGeometryPolyline");return this.appendSubCurve(n,t,e,s)?n:null}appendSubCurve(t,e,s,i){t.startPath(),e.seekPathStart();let n=0,r=!0;if(!e.nextPoint())return!1;let o=e.x,a=e.y;for(;e.nextPoint();){const h=this.getLength(o,a,e.x,e.y);if(0!==h){if(r){if(n+h>s){const l=(s-n)/h;let c=1,u=!1;n+h>=i&&(c=(i-n)/h,u=!0);const _=this.cut(o,a,e.x,e.y,l,c);if(_&&t.pushPoints(_),u)break;r=!1}}else{if(n+h>i){const s=this.cut(o,a,e.x,e.y,0,(i-n)/h);s&&t.pushPoint(s[1]);break}t.pushXY(e.x,e.y)}n+=h,o=e.x,a=e.y}else o=e.x,a=e.y}return!0}getCIMPointAlong(t,e){if(!t.nextPoint())return null;let s,i,n,r,o=0;for(s=t.x,i=t.y;t.nextPoint();s=n,i=r){n=t.x,r=t.y;const a=this.getLength(s,i,n,r);if(0!==a){if(o+a>e){const t=(e-o)/a;return this.getCoord2D(s,i,n,r,t)}o+=a}}return null}offset(t,e,s,i,r){if(!t||t.length<2)return null;let o=0,a=t[o++],h=o;for(;o=0==e<=0){if(l<1){const s=[t[0]-r[0],t[1]-r[1]];this.normalize(s);const n=Math.sqrt((1+l)/2);if(n>1/i){const t=-Math.abs(e)/n;c.push([u[0]-s[0]*t,u[1]-s[1]*t])}}}else switch(s){case n.id.Mitered:{const s=Math.sqrt((1+l)/2);if(s>0&&1/s0){const i=1/s;let n=i;for(let o=1;o0&&(n/=this._currentPosition.segmentLength),this._currentPosition.copyTo(e);e.abscissa+t*this._partLengthRatio>e.segmentLength+this._tolerance;){if(s){if(0===s.pathSize)if(0===n){const t=e.segment[0];s.pushXY(t[0],t[1])}else s.pushPoint(this.getSegCoord2D(e.segment,n));const t=e.segment[1];s.pushXY(t[0],t[1])}if(n=0,t-=(e.segmentLength-e.abscissa)/this._partLengthRatio,this._partSegCount)e.segment=this._nextSegment(),e.segmentLength=this.getSegLength(e.segment),e.abscissa=0,this._partSegCount--;else{if(!this._setPosAtNextPart())return i!==a.FAIL&&(e.segmentLength=this.getSegLength(e.segment),e.isPartEnd=!0,i===a.END?(e.abscissa=e.segmentLength,e.isPathEnd=!0):e.abscissa=e.segmentLength+t,!0);this._currentPosition.copyTo(e)}}if(e.abscissa+=t*this._partLengthRatio,s){0===s.pathSize&&(0===n?s.pushPoint(e.segment[0]):s.pushPoint(this.getSegCoord2D(e.segment,n)));const t=e.abscissa/e.segmentLength;1===t?s.pushPoint(e.segment[1]):s.pushPoint(this.getSegCoord2D(e.segment,t))}return this._partSegCount||Math.abs(e.abscissa-e.segmentLength)=this._pathCursor.pathSize&&(s=0),this._ctrlPtEnd=this._pathCursor.getControlPointAt(s),this._patternLength>0){const t=this._ctrlPtBegin?this._partCtrlPtGap:this._partExtPtGap,e=this._ctrlPtEnd?this._partCtrlPtGap:this._partExtPtGap;let s=Math.round((this._partLength-(t+e))/this._patternLength);s<=0&&(s=t+e>0?0:1),this._partLengthRatio=this._partLength/(t+e+s*this._patternLength),this._partLengthRatio<.01&&(this._partLengthRatio=1)}else this._partLengthRatio=1;return!0}_hasNextSegment(){return this._seg1&&g>0&&h>0&&(o*m+a*d)/g/h<=this._maxCosAngle&&t.setControlPointAt(_-1),1===_&&(l=m,c=d,u=g),g>0&&(i=f,n=p,o=m,a=d,h=g)}this._isClosed&&h>0&&u>0&&(o*l+a*c)/u/h<=this._maxCosAngle&&t.setControlPointAt(0)}}}},59443:function(t,e,s){s.d(e,{P:function(){return c}});var i=s(25245),n=s(47349),r=s(94843),o=s(10701),a=s(25609);const h=1.7320508075688772,l=a.TF.OpenEnded;class c{static local(){return null===c.instance&&(c.instance=new c),c.instance}execute(t,e,s,i,n){return new u(t,e,s)}}c.instance=null;class u extends r.vT{constructor(t,e,s){super(t,!1,!0),this._curveHelper=new o.N,this._width=(void 0!==e.width?e.width:5)*s,this._arrowType=void 0!==e.geometricEffectArrowType?e.geometricEffectArrowType:void 0!==e.arrowType?e.arrowType:l,this._offsetFlattenError=o.D*s}processPath(t){const e=i.z.createEmptyOptimizedCIM(t.geometryType);switch(this._arrowType){case a.TF.OpenEnded:default:this._constructSimpleArrow(e,t,!0);break;case a.TF.Block:this._constructSimpleArrow(e,t,!1);break;case a.TF.Crossed:this._constructCrossedArrow(e,t)}return e}_constructSimpleArrow(t,e,s){const i=e.pathLength();let r=this._width;i<2*r&&(r=i/2);const o=this._curveHelper.getSubCurve(e,0,i-r);if(!o||!o.nextPath())return;o.seekPathStart();const a=r/2;if(this._curveHelper.isEmpty(o))return;const h=(0,n.l)(o),l=this._constructOffset(h,-a);if(!l)return;const c=this._constructOffset(h,a);if(!c)return;const u=this._constructArrowBasePoint(l,-a/2);if(!u)return;const _=this._constructArrowBasePoint(c,a/2);if(!_)return;e.seekInPath(e.pathSize-1);const f=[e.x,e.y];t.pushPath(c),t.nextPath(),t.nextPoint(),t.setControlPoint(),t.pushPoint(_),t.nextPoint(),t.setControlPoint(),t.pushPoint(f),t.nextPoint(),t.setControlPoint(),t.pushPoint(u),t.nextPoint(),t.setControlPoint(),t.pushPoints(l.reverse()),t.setControlPoint(),s||(t.setControlPointAt(0),t.setControlPointAt(t.pathSize-1),t.pushPoint(c[0])),t.reset()}_constructCrossedArrow(t,e){const s=e.pathLength();let i=this._width;s0){const e=i.z.createEmptyOptimizedCIM(t.geometryType),s=(0,n.M)(t)[0],r=this._curveHelper.offset(s,this._size,a.id.Rounded,4,this._offsetFlattenError);if(r)return e.pushPath(r),e}else if(this._size<0){const e=t.asJSON();if(Math.min(e.xmax-e.xmin,e.ymax-e.ymin)+2*this._size>0)return i.z.fromJSONCIM({xmin:e.xmin-this._size,xmax:e.xmax+this._size,ymin:e.ymin-this._size,ymax:e.ymax+this._size})}const e=this._geometryEngine;if(null==e)return null;const s=this._tileKey?(0,r.L)(t,this._maxInflateSize):t;if(!s)continue;const o=e.buffer(h.Z.WebMercator,s.asJSON(),this._size,1);return o?i.z.fromJSONCIM(o):null}return null}}},66303:function(t,e,s){s.d(e,{Y:function(){return a}});var i=s(25245),n=s(47349),r=s(94843),o=s(25609);class a{static local(){return null===a.instance&&(a.instance=new a),a.instance}execute(t,e,s,i,n){return new h(t,e,s)}}a.instance=null;class h{constructor(t,e,s){this._defaultPointSize=20,this._inputGeometries=t,this._geomUnitsPerPoint=s,this._rule=e.rule??o.Em.FullGeometry,this._defaultSize=this._defaultPointSize*s}next(){let t;for(;t=this._inputGeometries.next();){const e=this._processGeom((0,n.M)(t));if(e&&e.length)return i.z.fromJSONCIM({paths:e})}return null}_clone(t){return[t[0],t[1]]}_mid(t,e){return[(t[0]+e[0])/2,(t[1]+e[1])/2]}_mix(t,e,s,i){return[t[0]*e+s[0]*i,t[1]*e+s[1]*i]}_add(t,e){return[t[0]+e[0],t[1]+e[1]]}_add2(t,e,s){return[t[0]+e,t[1]+s]}_sub(t,e){return[t[0]-e[0],t[1]-e[1]]}_dist(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))}_norm(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}_normalize(t,e=1){const s=e/this._norm(t);t[0]*=s,t[1]*=s}_leftPerpendicular(t){const e=-t[1],s=t[0];t[0]=e,t[1]=s}_leftPerp(t){return[-t[1],t[0]]}_rightPerpendicular(t){const e=t[1],s=-t[0];t[0]=e,t[1]=s}_rightPerp(t){return[t[1],-t[0]]}_dotProduct(t,e){return t[0]*e[0]+t[1]*e[1]}_crossProduct(t,e){return t[0]*e[1]-t[1]*e[0]}_rotateDirect(t,e,s){const i=t[0]*e-t[1]*s,n=t[0]*s+t[1]*e;t[0]=i,t[1]=n}_makeCtrlPt(t){const e=[t[0],t[1]];return(0,r.qh)(e,1),e}_addAngledTicks(t,e,s,i){const n=this._sub(s,e);this._normalize(n);const r=this._crossProduct(n,this._sub(i,e));let o;o=r>0?this._rightPerp(n):this._leftPerp(n);const a=Math.abs(r)/2,h=[];h.push([e[0]+(o[0]-n[0])*a,e[1]+(o[1]-n[1])*a]),h.push(e),h.push(s),h.push([s[0]+(o[0]+n[0])*a,s[1]+(o[1]+n[1])*a]),t.push(h)}_addBezier2(t,e,s,i,n){if(0==n--)return void t.push(i);const r=this._mid(e,s),o=this._mid(s,i),a=this._mid(r,o);this._addBezier2(t,e,r,a,n),this._addBezier2(t,a,o,i,n)}_addBezier3(t,e,s,i,n,r){if(0==r--)return void t.push(n);const o=this._mid(e,s),a=this._mid(s,i),h=this._mid(i,n),l=this._mid(o,a),c=this._mid(a,h),u=this._mid(l,c);this._addBezier3(t,e,o,l,u,r),this._addBezier3(t,u,c,h,n,r)}_add90DegArc(t,e,s,i,n){const r=n??this._crossProduct(this._sub(s,e),this._sub(i,e))>0,o=this._mid(e,s),a=this._sub(o,e);r?this._leftPerpendicular(a):this._rightPerpendicular(a),o[0]+=a[0],o[1]+=a[1],this._addBezier3(t,e,this._mix(e,.33333,o,.66667),this._mix(s,.33333,o,.66667),s,4)}_addArrow(t,e,s){const i=e[0],n=e[1],r=e[e.length-1],o=this._sub(i,n);this._normalize(o);const a=this._crossProduct(o,this._sub(r,n)),h=.5*a,l=this._leftPerp(o),c=[r[0]-l[0]*a,r[1]-l[1]*a],u=e.length-1,_=[];_.push(s?[-l[0],-l[1]]:l);let f=[-o[0],-o[1]];for(let t=1;t0;s--)t.push([e[s][0]+_[s][0]*h,e[s][1]+_[s][1]*h]);t.push([c[0]+_[0][0]*h,c[1]+_[0][1]*h]),t.push([c[0]+_[0][0]*a,c[1]+_[0][1]*a]),t.push(i),t.push([c[0]-_[0][0]*a,c[1]-_[0][1]*a]),t.push([c[0]-_[0][0]*h,c[1]-_[0][1]*h]);for(let s=1;s<_.length;s++)t.push([e[s][0]-_[s][0]*h,e[s][1]-_[s][1]*h])}_cp2(t,e,s){return t.length>=2?t[1]:this._add2(t[0],e*this._defaultSize,s*this._defaultSize)}_cp3(t,e,s,i){if(t.length>=3)return t[2];const n=this._mix(t[0],1-s,e,s),r=this._sub(e,t[0]);return this._normalize(r),this._rightPerpendicular(r),[n[0]+r[0]*i*this._defaultSize,n[1]+r[1]*i*this._defaultSize]}_arrowPath(t){if(t.length>2)return t;const e=t[0],s=this._cp2(t,-4,0),i=this._sub(e,s);this._normalize(i);const n=this._rightPerp(i);return[e,s,[e[0]+(n[0]-i[0])*this._defaultSize,e[1]+(n[1]-i[1])*this._defaultSize]]}_arrowLastSeg(t){const e=t[0],s=this._cp2(t,-4,0);let i;if(t.length>=3)i=t[t.length-1];else{const t=this._sub(e,s);this._normalize(t);const n=this._rightPerp(t);i=[e[0]+(n[0]-t[0])*this._defaultSize,e[1]+(n[1]-t[1])*this._defaultSize]}return[s,i]}_processGeom(t){if(!t)return null;const e=[];for(const s of t){if(!s||0===s.length)continue;const t=s.length;let i=s[0];switch(this._rule){case o.Em.PerpendicularFromFirstSegment:{const t=this._cp2(s,0,-1),n=this._cp3(s,t,.5,4),r=[];r.push(n),r.push(this._mid(i,t)),e.push(r);break}case o.Em.ReversedFirstSegment:{const t=this._cp2(s,0,-1);e.push([t,i]);break}case o.Em.PerpendicularToSecondSegment:{const t=this._cp2(s,-4,1),n=this._cp3(s,t,.882353,-1.94),r=[];r.push(this._mid(t,n)),r.push(i),e.push(r);break}case o.Em.SecondSegmentWithTicks:{const t=this._cp2(s,-4,1),n=this._cp3(s,t,.882353,-1.94),r=this._sub(n,t);let o;o=this._crossProduct(r,this._sub(i,t))>0?this._rightPerp(o):this._leftPerp(r);const a=[];a.push([t[0]+(o[0]-r[0])/3,t[1]+(o[1]-r[1])/3]),a.push(t),a.push(n),a.push([n[0]+(o[0]+r[0])/3,n[1]+(o[1]+r[1])/3]),e.push(a);break}case o.Em.DoublePerpendicular:{const t=this._cp2(s,0,-1),n=this._cp3(s,t,.5,3),r=this._mid(i,t),o=this._sub(r,n);this._normalize(o);const a=this._crossProduct(o,this._sub(i,n));this._leftPerpendicular(o);const h=[];h.push(i),h.push([n[0]+o[0]*a,n[1]+o[1]*a]),e.push(h);const l=[];l.push([n[0]-o[0]*a,n[1]-o[1]*a]),l.push(t),e.push(l);break}case o.Em.OppositeToFirstSegment:{const t=this._cp2(s,0,-1),n=this._cp3(s,t,.5,3),r=this._mid(i,t),o=this._sub(r,n);this._normalize(o);const a=this._crossProduct(o,this._sub(i,n));this._leftPerpendicular(o);const h=[];h.push([n[0]+o[0]*a,n[1]+o[1]*a]),h.push([n[0]-o[0]*a,n[1]-o[1]*a]),e.push(h);break}case o.Em.TriplePerpendicular:{const t=this._cp2(s,0,-1),n=this._cp3(s,t,.5,4),r=this._mid(i,t),o=this._sub(r,n);this._normalize(o);const a=this._crossProduct(o,this._sub(i,n));this._leftPerpendicular(o);const h=[];h.push([n[0]+o[0]*a*.8,n[1]+o[1]*a*.8]),h.push([r[0]+.8*(i[0]-r[0]),r[1]+.8*(i[1]-r[1])]),e.push(h),e.push([n,r]);const l=[];l.push([n[0]-o[0]*a*.8,n[1]-o[1]*a*.8]),l.push([r[0]+.8*(t[0]-r[0]),r[1]+.8*(t[1]-r[1])]),e.push(l);break}case o.Em.HalfCircleFirstSegment:{const t=this._cp2(s,0,-1),n=this._cp3(s,t,.5,4),r=this._mid(i,t);let o=this._sub(t,i);const a=Math.cos(Math.PI/18),h=Math.sin(Math.PI/18),l=Math.sqrt((1+a)/2),c=Math.sqrt((1-a)/2),u=[];let _;this._crossProduct(o,this._sub(n,i))>0?(u.push(i),o=this._sub(i,r),_=t):(u.push(t),o=this._sub(t,r),_=i),this._rotateDirect(o,l,c),o[0]/=l,o[1]/=l;for(let t=1;t<=18;t++)u.push(this._add(r,o)),this._rotateDirect(o,a,h);u.push(_),e.push(u);break}case o.Em.HalfCircleSecondSegment:{const t=this._cp2(s,0,-1),n=this._cp3(s,t,1,-1);let r=this._sub(i,t);this._normalize(r);const o=this._crossProduct(r,this._sub(n,t))/2;this._leftPerpendicular(r);const a=[t[0]+r[0]*o,t[1]+r[1]*o];r=this._sub(t,a);const h=Math.cos(Math.PI/18);let l=Math.sin(Math.PI/18);o>0&&(l=-l);const c=[t];for(let t=1;t<=18;t++)this._rotateDirect(r,h,l),c.push(this._add(a,r));e.push(c);break}case o.Em.HalfCircleExtended:{const n=this._cp2(s,0,-2),r=this._cp3(s,n,1,-1);let o;if(t>=4)o=s[3];else{const t=this._sub(i,n);o=this._add(r,t)}const a=this._dist(n,r)/2/.75,h=this._sub(n,i);this._normalize(h,a);const l=this._sub(r,o);this._normalize(l,a);const c=[o,r];e.push(c);const u=[this._clone(r)];this._addBezier3(u,r,this._add(r,l),this._add(n,h),n,4),u.push(i),e.push(u);break}case o.Em.OpenCircle:{const t=this._cp2(s,-2,0),n=this._sub(t,i),r=Math.cos(Math.PI/18),o=-Math.sin(Math.PI/18),a=[t];for(let t=1;t<=33;t++)this._rotateDirect(n,r,o),a.push(this._add(i,n));e.push(a);break}case o.Em.CoverageEdgesWithTicks:{const n=this._cp2(s,0,-1);let r,o;if(t>=3)r=s[2];else{const t=this._sub(n,i),e=this._leftPerp(t);r=[i[0]+e[0]-.25*t[0],i[1]+e[1]-.25*t[1]]}if(t>=4)o=s[3];else{const t=this._mid(i,n),e=this._sub(i,n);this._normalize(e),this._leftPerpendicular(e);const s=this._crossProduct(e,this._sub(r,t));this._rightPerpendicular(e),o=[r[0]+e[0]*s*2,r[1]+e[1]*s*2]}const a=this._sub(n,i);let h,l;h=this._crossProduct(a,this._sub(r,i))>0?this._rightPerp(a):this._leftPerp(a),l=[],l.push(r),l.push(i),l.push([i[0]+(h[0]-a[0])/3,i[1]+(h[1]-a[1])/3]),e.push(l),h=this._crossProduct(a,this._sub(o,n))>0?this._rightPerp(h):this._leftPerp(a),l=[],l.push([n[0]+(h[0]+a[0])/3,n[1]+(h[1]+a[1])/3]),l.push(n),l.push(o),e.push(l);break}case o.Em.GapExtentWithDoubleTicks:{const n=this._cp2(s,0,2),r=this._cp3(s,n,0,1);let o;if(t>=4)o=s[3];else{const t=this._sub(n,i);o=this._add(r,t)}this._addAngledTicks(e,i,n,this._mid(r,o)),this._addAngledTicks(e,r,o,this._mid(i,n));break}case o.Em.GapExtentMidline:{const n=this._cp2(s,2,0),r=this._cp3(s,n,0,1);let o;if(t>=4)o=s[3];else{const t=this._sub(n,i);o=this._add(r,t)}const a=[];a.push(this._mid(i,r)),a.push(this._mid(n,o)),e.push(a);break}case o.Em.Chevron:{const n=this._cp2(s,-1,-1);let r;if(t>=3)r=s[2];else{const t=this._sub(n,i);this._leftPerpendicular(t),r=this._add(i,t)}e.push([n,this._makeCtrlPt(i),r]);break}case o.Em.PerpendicularWithArc:{const t=this._cp2(s,0,-2),n=this._cp3(s,t,.5,-1);let r=this._sub(t,i);const o=this._norm(r);r[0]/=o,r[1]/=o;const a=this._crossProduct(r,this._sub(n,i));let h=this._dotProduct(r,this._sub(n,i));h<.05*o?h=.05*o:h>.95*o&&(h=.95*o);const l=[i[0]+r[0]*h,i[1]+r[1]*h];this._leftPerpendicular(r);let c=[];c.push([l[0]-r[0]*a,l[1]-r[1]*a]),c.push([l[0]+r[0]*a,l[1]+r[1]*a]),e.push(c);const u=[t[0]+r[0]*a,t[1]+r[1]*a];r=this._sub(t,u);const _=Math.cos(Math.PI/18);let f=Math.sin(Math.PI/18);a<0&&(f=-f),c=[i,t];for(let t=1;t<=9;t++)this._rotateDirect(r,_,f),c.push(this._add(u,r));e.push(c);break}case o.Em.ClosedHalfCircle:{const t=this._cp2(s,2,0),n=this._mid(i,t),r=this._sub(t,n),o=Math.cos(Math.PI/18),a=Math.sin(Math.PI/18),h=[i,t];for(let t=1;t<=18;t++)this._rotateDirect(r,o,a),h.push(this._add(n,r));e.push(h);break}case o.Em.TripleParallelExtended:{const t=this._cp2(s,0,-2),n=this._cp3(s,t,1,-2),o=this._mid(i,t),a=this._sub(n,t);this._normalize(a);const h=Math.abs(this._crossProduct(a,this._sub(o,t)))/2,l=this._dist(t,n),c=[t,i];c.push([i[0]+a[0]*l*.5,i[1]+a[1]*l*.5]),e.push(c);const u=[];u.push([o[0]-a[0]*h,o[1]-a[1]*h]),u.push([o[0]+a[0]*l*.375,o[1]+a[1]*l*.375]),(0,r.qh)(u[u.length-1],1),u.push([o[0]+a[0]*l*.75,o[1]+a[1]*l*.75]),e.push(u);const _=[t,n];e.push(_);break}case o.Em.ParallelWithTicks:{const t=this._cp2(s,3,0),n=this._cp3(s,t,.5,-1),r=this._sub(n,t);this._normalize(r);const o=this._crossProduct(r,this._sub(n,i));this._leftPerpendicular(r),this._addAngledTicks(e,i,t,n),this._addAngledTicks(e,this._mix(i,1,r,o),this._mix(t,1,r,o),this._mid(i,t));break}case o.Em.Parallel:{const t=this._cp2(s,3,0),n=this._cp3(s,t,.5,-1),r=this._sub(t,i);this._normalize(r);const o=this._leftPerp(r),a=this._crossProduct(r,this._sub(n,i));let h=[i,t];e.push(h),h=[],h.push([i[0]+o[0]*a,i[1]+o[1]*a]),h.push([t[0]+o[0]*a,t[1]+o[1]*a]),e.push(h);break}case o.Em.PerpendicularToFirstSegment:{const t=this._cp2(s,3,0),n=this._cp3(s,t,.5,-1),r=this._mid(i,t),o=this._sub(t,i);this._normalize(o);const a=this._crossProduct(o,this._sub(n,i));this._leftPerpendicular(o);const h=[];h.push([r[0]-o[0]*a*.25,r[1]-o[1]*a*.25]),h.push([r[0]+o[0]*a*1.25,r[1]+o[1]*a*1.25]),e.push(h);break}case o.Em.ParallelOffset:{const t=this._cp2(s,3,0),n=this._cp3(s,t,.5,-1),r=this._sub(t,i);this._normalize(r);const o=this._crossProduct(r,this._sub(n,i));this._leftPerpendicular(r);const a=[];a.push([i[0]-r[0]*o,i[1]-r[1]*o]),a.push([t[0]-r[0]*o,t[1]-r[1]*o]),e.push(a);const h=[];h.push([i[0]+r[0]*o,i[1]+r[1]*o]),h.push([t[0]+r[0]*o,t[1]+r[1]*o]),e.push(h);break}case o.Em.OffsetOpposite:{const t=this._cp2(s,3,0),n=this._cp3(s,t,.5,-1),r=this._sub(t,i);this._normalize(r);const o=this._crossProduct(r,this._sub(n,i));this._leftPerpendicular(r);const a=[];a.push([i[0]-r[0]*o,i[1]-r[1]*o]),a.push([t[0]-r[0]*o,t[1]-r[1]*o]),e.push(a);break}case o.Em.OffsetSame:{const t=this._cp2(s,3,0),n=this._cp3(s,t,.5,-1),r=this._sub(t,i);this._normalize(r);const o=this._crossProduct(r,this._sub(n,i));this._leftPerpendicular(r);const a=[];a.push([i[0]+r[0]*o,i[1]+r[1]*o]),a.push([t[0]+r[0]*o,t[1]+r[1]*o]),e.push(a);break}case o.Em.CircleWithArc:{let n=this._cp2(s,3,0);const o=this._cp3(s,n,.5,-1);let a,h;if(t>=4)a=s[3],h=this._crossProduct(this._sub(a,n),this._sub(o,n))>0;else{a=n,h=this._crossProduct(this._sub(a,i),this._sub(o,i))>0;const t=24*this._geomUnitsPerPoint,e=this._sub(a,i);this._normalize(e,t);const s=Math.sqrt(2)/2;this._rotateDirect(e,s,h?s:-s),n=this._add(i,e)}const l=this._sub(n,i),c=Math.cos(Math.PI/18),u=Math.sin(Math.PI/18),_=[n];for(let t=1;t<=36;t++)this._rotateDirect(l,c,u),_.push(this._add(i,l));this._add90DegArc(_,n,a,o,h),(0,r.qh)(_[_.length-8],1),e.push(_);break}case o.Em.DoubleJog:{let n,r,o=this._cp2(s,-3,1);if(n=t>=3?s[2]:this._add(i,this._sub(i,o)),t>=4)r=s[3];else{const t=i;i=o,r=n;const e=this._dist(i,t),s=this._dist(r,t);let a=30*this._geomUnitsPerPoint;.5*e0?this._rotateDirect(f,_,-_):this._rotateDirect(f,_,_);let p=[];p.push(o),p.push(this._add(a,f)),p.push(this._sub(a,f)),p.push(i),e.push(p),f=this._sub(r,n),this._normalize(f,u),this._crossProduct(f,this._sub(i,n))<0?this._rotateDirect(f,_,_):this._rotateDirect(f,_,-_),p=[],p.push(n),p.push(this._add(h,f)),p.push(this._sub(h,f)),p.push(r),e.push(p);break}case o.Em.PerpendicularOffset:{const t=this._cp2(s,-4,1),n=this._cp3(s,t,.882353,-1.94),r=this._sub(n,t);this._crossProduct(r,this._sub(i,t))>0?this._rightPerpendicular(r):this._leftPerpendicular(r);const o=[r[0]/8,r[1]/8],a=this._sub(this._mid(t,n),o);e.push([a,i]);break}case o.Em.LineExcludingLastSegment:{const t=this._arrowPath(s),i=[];let n=t.length-2;for(;n--;)i.push(t[n]);e.push(i);break}case o.Em.MultivertexArrow:{const t=this._arrowPath(s),i=[];this._addArrow(i,t,!1),e.push(i);break}case o.Em.CrossedArrow:{const t=this._arrowPath(s),i=[];this._addArrow(i,t,!0),e.push(i);break}case o.Em.ChevronArrow:{const[t,n]=this._arrowLastSeg(s),r=10*this._geomUnitsPerPoint,o=this._sub(i,t);this._normalize(o);const a=this._crossProduct(o,this._sub(n,t)),h=this._leftPerp(o),l=[n[0]-h[0]*a*2,n[1]-h[1]*a*2],c=[];c.push([n[0]+o[0]*r,n[1]+o[1]*r]),c.push(i),c.push([l[0]+o[0]*r,l[1]+o[1]*r]),e.push(c);break}case o.Em.ChevronArrowOffset:{const[t,n]=this._arrowLastSeg(s),r=this._sub(i,t);this._normalize(r);const o=this._crossProduct(r,this._sub(n,t));this._leftPerpendicular(r);const a=[n[0]-r[0]*o,n[1]-r[1]*o],h=[];h.push([a[0]+r[0]*o*.5,a[1]+r[1]*o*.5]),h.push(this._mid(a,i)),h.push([a[0]-r[0]*o*.5,a[1]-r[1]*o*.5]),e.push(h);break}case o.Em.PartialFirstSegment:{const[t,n]=this._arrowLastSeg(s),r=this._sub(i,t);this._normalize(r);const o=this._crossProduct(r,this._sub(n,t));this._leftPerpendicular(r);const a=[n[0]-r[0]*o,n[1]-r[1]*o];e.push([t,a]);break}case o.Em.Arch:{const t=this._cp2(s,0,-1),n=this._cp3(s,t,.5,1),r=this._sub(i,t),o=this._mix(n,1,r,.55),a=this._mix(n,1,r,-.55),h=[i];this._addBezier2(h,i,o,n,4),this._addBezier2(h,n,a,t,4),e.push(h);break}case o.Em.CurvedParallelTicks:{const t=this._cp2(s,-4,1),n=this._cp3(s,t,.882353,-1.94),r=this._sub(n,t);this._crossProduct(r,this._sub(i,t))>0?this._rightPerpendicular(r):this._leftPerpendicular(r);const o=[r[0]/8,r[1]/8],a=this._sub(this._mid(t,n),o),h=this._sub(this._mix(t,.75,n,.25),o),l=this._sub(this._mix(t,.25,n,.75),o),c=[t];this._addBezier2(c,t,h,a,3),this._addBezier2(c,a,l,n,3),e.push(c);for(let t=0;t<8;t++){const s=c[2*t+1],i=[this._clone(s)];i.push(this._add(s,[r[0]/4,r[1]/4])),e.push(i)}break}case o.Em.Arc90Degrees:{const t=this._cp2(s,0,-1),n=this._cp3(s,t,.5,1),r=[t];this._add90DegArc(r,t,i,n),e.push(r);break}case o.Em.FullGeometry:default:e.push(s)}}return e}}},31180:function(t,e,s){s.d(e,{d:function(){return o}});var i=s(25245),n=s(94843),r=s(10701);class o{static local(){return null===o.instance&&(o.instance=new o),o.instance}execute(t,e,s,i,n){return new a(t,e,s)}}o.instance=null;class a extends n.vT{constructor(t,e,s){super(t,!0,!0),this._curveHelper=new r.N,this._beginCut=(void 0!==e.beginCut?e.beginCut:1)*s,this._endCut=(void 0!==e.endCut?e.endCut:1)*s,this._middleCut=(void 0!==e.middleCut?e.middleCut:0)*s,this._invert=void 0!==e.invert&&e.invert,this._beginCut<0&&(this._beginCut=0),this._endCut<0&&(this._endCut=0),this._middleCut<0&&(this._middleCut=0)}processPath(t){const{_beginCut:e,_endCut:s,_middleCut:n}=this,r=t.pathLength(),o=i.z.createEmptyOptimizedCIM("esriGeometryPolyline");if(this._invert){if(0!==e||0!==s||0!==n)if(e+s+n>=r)for(o.startPath();t.nextPoint();)o.pushXY(t.x,t.y);else this._curveHelper.appendSubCurve(o,t,0,e),this._curveHelper.appendSubCurve(o,t,.5*(r-n),.5*(r+n)),this._curveHelper.appendSubCurve(o,t,r-s,s)}else if(0===e&&0===s&&0===n)for(o.startPath();t.nextPoint();)o.pushXY(t.x,t.y);else e+s+n=e;)t-=e,e=this._pattern.nextValue(),i=!i;e-=t,i?(this._walker.nextPosition(e),e=this._pattern.nextValue()):this.isClosed&&(this._firstCurve=this._walker.nextCurve(e),e=this._pattern.nextValue(),this._walker.nextPosition(e),e=this._pattern.nextValue())}let s=this._walker.nextCurve(e);if(s)if(this._walker.isPathEnd()){if(this.iteratePath=!1,this._firstCurve){for(this._firstCurve.nextPath();this._firstCurve.nextPoint();)s.pushXY(this._firstCurve.x,this._firstCurve.y);this._firstCurve=null}}else e=this._pattern.nextValue(),!this._walker.nextPosition(e)||this._walker.isPathEnd()?(this.iteratePath=!1,this._firstCurve&&(s.pushCursor(this._firstCurve),this._firstCurve=null)):this.iteratePath=!0;else this.iteratePath=!1,s=this._firstCurve,this._firstCurve=null;return s?.reset(),s}}},32707:function(t,e,s){s.d(e,{h:function(){return a}});s(91957);var i=s(25245),n=s(24262),r=s(25609),o=s(14685);class a{static local(){return null===a.instance&&(a.instance=new a),a.instance}execute(t,e,s,i,n,r){return new h(t,e,s,i,n,r)}}a.instance=null;class h{constructor(t,e,s,i,n,o){switch(this._inputGeometries=t,this._tileKey=i,this._geometryEngine=n,this._maxInflateSize=o*s,this._width=(void 0!==e.width?e.width:2)*s,e.method){case r.$y.Mitered:case r.$y.Bevelled:case r.$y.Rounded:case r.$y.TrueBuffer:case r.$y.Square:}this._option=e.option}next(){let t;for(;t=this._inputGeometries.next();){if("esriGeometryEnvelope"===t.geometryType&&this._width>0){const e=t.asJSON();return Math.min(e.xmax-e.xmin,e.ymax-e.ymin)-2*this._width<0?t:i.z.fromJSONCIM({paths:[[[e.xmin+this._width,e.ymin+this._width],[e.xmax-this._width,e.ymin+this._width],[e.xmax-this._width,e.ymax-this._width],[e.xmin+this._width,e.ymax-this._width],[e.xmin+this._width,e.ymin+this._width]],[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]]})}if("esriGeometryPolygon"===t.geometryType){if(0===this._width)return t.clone();const e=this._geometryEngine;if(null==e)return null;const s=this._tileKey?(0,n.L)(t,this._maxInflateSize):t.clone();if(!s)continue;const i=e.buffer(o.Z.WebMercator,s.asJSON(),-this._width,1);if(i)for(const t of i.rings)if(t){s.startPath();for(const e of t.reverse())s.pushXY(e[0],s.yFactor*e[1])}return s}}return null}}},15593:function(t,e,s){s.d(e,{F:function(){return o}});var i=s(25245),n=s(94843),r=s(10701);class o{static local(){return null===o.instance&&(o.instance=new o),o.instance}execute(t,e,s,i,n){return new a(t,e,s)}}o.instance=null;class a extends n.vT{constructor(t,e,s){super(t,!1,!0),this._curveHelper=new r.N,this._length=(void 0!==e.length?e.length:20)*s,this._angle=void 0!==e.angle?e.angle:225,this._position=void 0!==e.position?e.position:50,this._length<0&&(this._length=-this._length),this._position<20&&(this._position=20),this._position>80&&(this._position=80),this._mirror=!1}processPath(t){const e=i.z.createEmptyOptimizedCIM("esriGeometryPolyline");if(this._curveHelper.isEmpty(t))return null;t.seekInPath(0);const s=t.x,n=t.y;t.seekInPath(t.pathSize-1);const r=t.x,o=t.y,a=[r-s,o-n];this._curveHelper.normalize(a);const h=s+(r-s)*this._position/100,l=n+(o-n)*this._position/100,c=Math.cos((90-this._angle)/180*Math.PI);let u=Math.sin((90-this._angle)/180*Math.PI);this._mirror&&(u=-u),this._mirror=!this._mirror;const _=[h-this._length/2*c,l-this._length/2*u],f=[h+this._length/2*c,l+this._length/2*u];return e.pushPath([[s,n],_,f,[r,o]]),e}}},363:function(t,e,s){s.d(e,{b:function(){return i}});class i{static local(){return null===i.instance&&(i.instance=new i),i.instance}execute(t,e,s,i,r){return new n(t,e,s)}}i.instance=null;class n{constructor(t,e,s){this._inputGeometries=t,this._offsetX=void 0!==e.offsetX?e.offsetX*s:0,this._offsetY=void 0!==e.offsetY?e.offsetY*s:0}next(){let t=this._inputGeometries.next();for(;t;){if(t.totalSize>0)return this._move(t.clone(),this._offsetX,this._offsetY);t=this._inputGeometries.next()}return null}_move(t,e,s){for(;t.nextPath();)for(;t.nextPoint();)t.x=t.x+e,t.y=t.y+s;return t.reset(),t}}},40932:function(t,e,s){s.d(e,{F:function(){return c}});s(91957);var i=s(25245),n=s(47349),r=s(53736),o=s(24262),a=s(10701),h=s(25609),l=s(14685);class c{static local(){return null===c.instance&&(c.instance=new c),c.instance}execute(t,e,s,i,n,r){return new u(t,e,s,i,n,r)}}c.instance=null;class u{constructor(t,e,s,i,n,r){this._inputGeometries=t,this._tileKey=i,this._geometryEngine=n,this._curveHelper=new a.N,this._offset=(e.offset??1)*s,this._method=e.method,this._maxInflateSize=Math.max(Math.abs(r*s),10),this._option=e.option,this._offsetFlattenError=a.D*s}next(){let t;for(;t=this._inputGeometries.next();){if(0===this._offset)return t.clone();if("esriGeometryEnvelope"===t.geometryType){if(this._method===h.id.Rounded&&this._offset>0){const e=(0,n.l)(t),s=this._curveHelper.offset(e,-this._offset,this._method,4,this._offsetFlattenError);if(s){const e=i.z.createEmptyOptimizedCIM(t.geometryType);return e.pushPath(s),e}return null}const e=t.asJSON();if((0,r.YX)(e)&&Math.min(e.xmax-e.xmin,e.ymax-e.ymin)+2*this._offset>0)return i.z.fromJSONCIM({xmin:e.xmin-this._offset,xmax:e.xmax+this._offset,ymin:e.ymin-this._offset,ymax:e.ymax+this._offset})}const e=this._geometryEngine;if(null==e)continue;const s=this._tileKey?(0,o.L)(t,this._maxInflateSize):t.clone();if(!s)continue;const a=e.offset(l.Z.WebMercator,s.asJSON(),-this._offset,1,this._method,4,this._offsetFlattenError);return a?i.z.fromJSONCIM(a):null}return null}}},7831:function(t,e,s){s.d(e,{m:function(){return i}});class i{static local(){return null===i.instance&&(i.instance=new i),i.instance}execute(t,e,s,i,r){return new n(t,e,s)}}i.instance=null;class n{constructor(t,e,s){this._inputGeometries=t,this._reverse=void 0===e.reverse||e.reverse}next(){let t=this._inputGeometries.next();for(;t;){if(!this._reverse)return t;if("esriGeometryPolyline"===t.geometryType)return r(t.clone());t=this._inputGeometries.next()}return null}}function r(t){for(;t.nextPath();)for(let e=0;e0){const e=(0,i.Cs)(t),s=(e[2]+e[0])/2,n=(e[3]+e[1])/2;return t.reset(),this._rotate(t.clone(),s,n)}t=this._inputGeometries.next()}return null}_rotate(t,e,s){const i=Math.cos(this._rotateAngle),n=Math.sin(this._rotateAngle);for(;t.nextPath();)for(;t.nextPoint();){const r=t.x-e,o=t.y-s;t.x=e+r*i-o*n,t.y=s+r*n+o*i}return t.reset(),t}}},43842:function(t,e,s){s.d(e,{I:function(){return n}});var i=s(79880);class n{static local(){return null===n.instance&&(n.instance=new n),n.instance}execute(t,e,s,i,n){return new r(t,e,s)}}n.instance=null;class r{constructor(t,e,s){this._inputGeometries=t,this._xFactor=void 0!==e.XScaleFactor?e.XScaleFactor:1.15,this._yFactor=void 0!==e.YScaleFactor?e.YScaleFactor:1.15}next(){const t=this._inputGeometries.next();if(t){if(1===this._xFactor&&1===this._yFactor)return t;if("esriGeometryPoint"===t.geometryType)return t;if(t.totalSize>0){const e=(0,i.Cs)(t),s=(e[2]+e[0])/2,n=(e[3]+e[1])/2;return t.reset(),this._scaleCursor(t.clone(),s,n)}}return null}_scaleCursor(t,e,s){for(;t.nextPath();)for(;t.nextPoint();)t.x=e+(t.x-e)*this._xFactor,t.y=s+(t.y-s)*this._yFactor;return t.reset(),t}}},13287:function(t,e,s){s.d(e,{w:function(){return o}});var i=s(25245),n=s(25609),r=s(87461);class o{static local(){return null===o.instance&&(o.instance=new o),o.instance}execute(t,e,s,i,n){return new a(t,e,s)}}o.instance=null;class a{constructor(t,e,s){this._inputGeometries=t,this._height=(void 0!==e.amplitude?e.amplitude:2)*s,this._period=(void 0!==e.period?e.period:3)*s,this._style=e.waveform,this._height<=0&&(this._height=Math.abs(this._height)),this._period<=0&&(this._period=Math.abs(this._period)),this._pattern=new r.h9,this._pattern.addValue(this._period),this._pattern.addValue(this._period),this._walker=new r.Ll,this._walker.updateTolerance(s)}next(){let t=this._inputGeometries.next();for(;t;){if(0===this._height||0===this._period)return t;const e=this._processGeom(t);if(e)return e;t=this._inputGeometries.next()}return null}_processGeom(t){const e=i.z.createEmptyOptimizedCIM(t.geometryType);for(;t.nextPath();){e.startPath();const s=t.pathLength();if(this._walker.init(t,this._pattern))switch(this._style){case n.zQ.Sinus:default:this._constructCurve(e,s,!1);break;case n.zQ.Square:this._constructSquare(e,s);break;case n.zQ.Triangle:this._constructTriangle(e,s);break;case n.zQ.Random:this._constructCurve(e,s,!0)}else for(;t.nextPoint();)e.pushXY(t.x,t.y)}return e}_constructCurve(t,e,s){let i=Math.round(e/this._period);0===i&&(i=1);const n=16*i+1,o=e/i,a=this._period/16,h=1/n,l=2*Math.PI*e/o,c=2*Math.PI*Math.random(),u=2*Math.PI*Math.random(),_=2*Math.PI*Math.random(),f=.75-Math.random()/2,p=.75-Math.random()/2,m=new r.Yw;this._walker.curPointAndAngle(m),t.pushPoint(m.pt);let d=0;for(;;){if(!this._walker.nextPointAndAngle(a,m)){t.pushPoint(this._walker.getPathEnd());break}{const e=d;let i;if(d+=h,s){const t=this._height/2*(1+.3*Math.sin(f*l*e+c));i=t*Math.sin(l*e+u),i+=t*Math.sin(p*l*e+_),i/=2}else i=.5*this._height*Math.sin(.5*l*e);t.pushXY(m.pt[0]-i*m.sa,m.pt[1]+i*m.ca)}}}_constructSquare(t,e){Math.round(e/this._period);let s=!0;for(;;){let e=!1;if(this._walker.curPositionIsValid()){const i=new r.Yw;this._walker.curPointAndAngle(i);const n=new r.Yw;if(this._walker.nextPointAndAngle(this._period,n)){const o=new r.Yw;this._walker.nextPointAndAngle(this._period,o)&&(s?(t.pushPoint(i.pt),s=!1):t.pushPoint(i.pt),t.pushXY(i.pt[0]-this._height/2*i.sa,i.pt[1]+this._height/2*i.ca),t.pushXY(n.pt[0]-this._height/2*n.sa,n.pt[1]+this._height/2*n.ca),t.pushXY(n.pt[0]+this._height/2*n.sa,n.pt[1]-this._height/2*n.ca),t.pushXY(o.pt[0]+this._height/2*o.sa,o.pt[1]-this._height/2*o.ca),e=!0)}}if(!e){t.pushPoint(this._walker.getPathEnd());break}}}_constructTriangle(t,e){Math.round(e/this._period);let s=!0;for(;;){let e=!1;if(this._walker.curPositionIsValid()){const i=new r.Yw;this._walker.curPointAndAngle(i);const n=new r.Yw;if(this._walker.nextPointAndAngle(this._period/2,n)){const o=new r.Yw;this._walker.nextPointAndAngle(this._period,o)&&(this._walker.nextPosition(this._period/2)&&(s?(t.pushPoint(i.pt),s=!1):t.pushPoint(i.pt),t.pushXY(n.pt[0]-this._height/2*n.sa,n.pt[1]+this._height/2*n.ca),t.pushXY(o.pt[0]+this._height/2*o.sa,o.pt[1]-this._height/2*o.ca)),e=!0)}}if(!e){t.pushPoint(this._walker.getPathEnd());break}}}}},37521:function(t,e,s){s.d(e,{W:function(){return o}});var i=s(94843),n=s(25609),r=s(87461);class o{static local(){return null===o.instance&&(o.instance=new o),o.instance}execute(t,e,s,i,n){return new a(t,e,s)}}o.instance=null;class a extends i.v1{constructor(t,e,s){super(t),this._geometryWalker=new r.Ll,this._geometryWalker.updateTolerance(s),this._angleToLine=e.angleToLine??!0,this._offset=(e.offset?e.offset:0)*s,this._originalEndings=e.endings,this._offsetAtEnd=(e.customEndingOffset?e.customEndingOffset:0)*s,this._position=-(e.offsetAlongLine?e.offsetAlongLine:0)*s,this._pattern=new r.h9,this._pattern.init(e.placementTemplate,!1),this._pattern.scale(s),this._endings=this._originalEndings}processPath(t){if(this._pattern.isEmpty())return null;let e;if(this.iteratePath)e=this._pattern.nextValue();else{this._originalEndings===n.JS.WithFullGap&&this.isClosed?this._endings=n.JS.WithMarkers:this._endings=this._originalEndings,this._pattern.extPtGap=0;let s,i=!0;switch(this._endings){case n.JS.NoConstraint:s=-this._position,s=this._adjustPosition(s),i=!1;break;case n.JS.WithHalfGap:default:s=-this._pattern.lastValue()/2;break;case n.JS.WithFullGap:s=-this._pattern.lastValue(),this._pattern.extPtGap=this._pattern.lastValue();break;case n.JS.WithMarkers:s=0;break;case n.JS.Custom:s=-this._position,s=this._adjustPosition(s),this._pattern.extPtGap=.5*this._offsetAtEnd}if(!this._geometryWalker.init(t,this._pattern,i))return null;this._pattern.reset();let r=0;for(;s>r;)s-=r,r=this._pattern.nextValue();r-=s,e=r,this.iteratePath=!0}const s=new r.Yw;return this._geometryWalker.nextPointAndAngle(e,s)?this._endings===n.JS.WithFullGap&&this._geometryWalker.isPathEnd()?(this.iteratePath=!1,null):this._endings===n.JS.WithMarkers&&this._geometryWalker.isPathEnd()&&(this.iteratePath=!1,this.isClosed)?null:(this.internalPlacement.setTranslate(s.pt[0]-this._offset*s.sa,s.pt[1]+this._offset*s.ca),this._angleToLine&&this.internalPlacement.setRotateCS(s.ca,s.sa),this.internalPlacement):(this.iteratePath=!1,null)}_adjustPosition(t){let e=t/this._pattern.length();return e-=Math.floor(e),e*this._pattern.length()}}},13813:function(t,e,s){s.d(e,{j:function(){return o}});var i=s(94843),n=s(10701),r=s(25609);class o{static local(){return null===o.instance&&(o.instance=new o),o.instance}execute(t,e,s,i,n){return new a(t,e,s)}}o.instance=null;class a extends i.v1{constructor(t,e,s){super(t,!1,!0),this._curveHelper=new n.N,this._angleToLine=void 0===e.angleToLine||e.angleToLine,this._offset=void 0!==e.offset?e.offset*s:0,this._type=e.extremityPlacement,this._position=void 0!==e.offsetAlongLine?e.offsetAlongLine*s:0,this._beginProcessed=!1}processPath(t){let e;switch(this._type){case r.Tx.Both:default:this._beginProcessed?(e=this._atExtremities(t,this._position,!1),this._beginProcessed=!1,this.iteratePath=!1):(e=this._atExtremities(t,this._position,!0),this._beginProcessed=!0,this.iteratePath=!0);break;case r.Tx.JustBegin:e=this._atExtremities(t,this._position,!0);break;case r.Tx.JustEnd:e=this._atExtremities(t,this._position,!1);case r.Tx.None:}return e}_atExtremities(t,e,s){if(s||t.seekPathEnd(),s?t.nextPoint():t.prevPoint()){let i=0,[n,r]=[0,0],[o,a]=[t.x,t.y];for(;s?t.nextPoint():t.prevPoint();){n=o,r=a,o=t.x,a=t.y;const s=this._curveHelper.getLength(n,r,o,a);if(i+s>e){const t=(e-i)/s,[h,l]=this._curveHelper.getAngleCS(n,r,o,a,t),c=this._curveHelper.getCoord2D(n,r,o,a,t);return this.internalPlacement.setTranslate(c[0]-this._offset*l,c[1]+this._offset*h),this._angleToLine&&this.internalPlacement.setRotateCS(-h,-l),this.internalPlacement}i+=s}}return null}}},75276:function(t,e,s){s.d(e,{x:function(){return r}});var i=s(94843),n=s(87461);class r{static local(){return null===r.instance&&(r.instance=new r),r.instance}execute(t,e,s,i,n){return new o(t,e,s)}}r.instance=null;class o extends i.v1{constructor(t,e,s){super(t),this._walker=new n.Ll,this._walker.updateTolerance(s),this._angleToLine=void 0===e.angleToLine||e.angleToLine,this._offset=void 0!==e.offset?e.offset*s:0,this._beginGap=void 0!==e.beginPosition?e.beginPosition*s:0,this._endGap=void 0!==e.endPosition?e.endPosition*s:0,this._flipFirst=void 0===e.flipFirst||e.flipFirst,this._pattern=new n.h9,this._pattern.init(e.positionArray,!1,!1),this._subPathLen=0,this._posCount=this._pattern.size(),this._isFirst=!0,this._prevPos=0}processPath(t){if(this._pattern.isEmpty())return null;let e;if(this.iteratePath){const t=this._pattern.nextValue()*this._subPathLen,s=this._beginGap+t;e=s-this._prevPos,this._prevPos=s}else{if(this._posCount=this._pattern.size(),this._isFirst=!0,this._prevPos=0,this._subPathLen=t.pathLength()-this._beginGap-this._endGap,this._subPathLen<0)return this.iteratePath=!1,null;if(!this._walker.init(t,this._pattern,!1))return null;this._pattern.reset();const s=this._pattern.nextValue()*this._subPathLen,i=this._beginGap+s;e=i-this._prevPos,this._prevPos=i,this.iteratePath=!0}const s=new n.Yw;if(!this._walker.nextPointAndAngle(e,s,n.u.END))return this.iteratePath=!1,null;this.internalPlacement.setTranslate(s.pt[0]-this._offset*s.sa,s.pt[1]+this._offset*s.ca);const i=this._isFirst&&this._flipFirst;let r,o;return this._angleToLine?(r=s.ca,o=s.sa):(r=1,o=0),i&&(r=-r,o=-o),this.internalPlacement.setRotateCS(r,o),this._isFirst=!1,this._posCount--,0===this._posCount&&(this.iteratePath=!1),this.internalPlacement}}},41959:function(t,e,s){s.d(e,{O:function(){return l}});var i=s(4157),n=s(40709),r=s(25609);const o=512,a=24,h=1e-6;class l{static local(){return null===l.instance&&(l.instance=new l),l.instance}execute(t,e,s,i,n){return new c(t,e,s,i,n)}}l.instance=null;class c{constructor(t,e,s,a,h){if(this._xMin=0,this._xMax=0,this._yMin=0,this._yMax=0,this._currentX=0,this._currentY=0,this._accelerationMap=null,this._testInsidePolygon=!1,this._verticalSubdivision=!0,this._stepX=Math.abs(e.stepX??16)*s,this._stepY=Math.abs(e.stepY??16)*s,this._stepX=Math.round(128*this._stepX)/128,this._stepY=Math.round(128*this._stepY)/128,0!==this._stepX&&0!==this._stepY){if(this._gridType=e.gridType??r.bj.Fixed,this._gridType===r.bj.Random){const t=e.seed??13,s=1;this._randomLCG=new i.Z(t*s),this._randomness=(e.randomness??100)/100,this._gridAngle=0,this._shiftOddRows=!1,this._cosAngle=1,this._sinAngle=0,this._offsetX=0,this._offsetY=0,this._buildRandomValues()}else{if(this._randomness=0,this._gridAngle=e.gridAngle??0,this._shiftOddRows=e.shiftOddRows??!1,this._offsetX=(e.offsetX??0)*s,this._offsetY=(e.offsetY??0)*s,this._cosAngle=Math.cos(this._gridAngle/180*Math.PI),this._sinAngle=-Math.sin(this._gridAngle/180*Math.PI),this._stepX)if(this._offsetX<0)for(;this._offsetX<-.5*this._stepX;)this._offsetX+=this._stepX;else for(;this._offsetX>=.5*this._stepX;)this._offsetX-=this._stepX;if(this._stepY)if(this._offsetY<0)for(;this._offsetY<-.5*this._stepY;)this._offsetY+=this._stepY;else for(;this._offsetY>=.5*this._stepY;)this._offsetY-=this._stepY}if(this._graphicOriginX=0,this._graphicOriginY=0,null!=a){const[t,e,s,i]=a.split("/"),n=parseFloat(t),r=parseFloat(e),h=parseFloat(s),l=parseFloat(i);this._graphicOriginX=-(l*2**n+h)*o,this._graphicOriginY=r*o,this._testInsidePolygon=!0}this._internalPlacement=new n.u,this._calculateMinMax(t),this._geometryCursor=t}}next(){return this._geometryCursor?this._nextInside():null}_buildRandomValues(){if(!c._randValues){c._randValues=[];for(let t=0;t=y,this._polygonMin=this._verticalSubdivision?_:p,this._testInsidePolygon){let t=0-this._graphicOriginX-this._offsetX-this._stepX,e=o-this._graphicOriginX-this._offsetX+this._stepX,s=-o-this._graphicOriginY-this._offsetY-this._stepY,i=0-this._graphicOriginY-this._offsetY+this._stepY;if(d){const n=[[t,s],[t,i],[e,s],[e,i]];t=s=Number.MAX_VALUE,e=i=-Number.MAX_VALUE;for(const r of n){const n=this._cosAngle*r[0]-this._sinAngle*r[1],o=this._sinAngle*r[0]+this._cosAngle*r[1];t=Math.min(t,n),e=Math.max(e,n),s=Math.min(s,o),i=Math.max(i,o)}}h=h!==Number.MAX_VALUE?Math.max(h,t):t,l=l!==Number.MAX_VALUE?Math.max(l,s):s,c=c!==-Number.MAX_VALUE?Math.min(c,e):e,u=u!==-Number.MAX_VALUE?Math.min(u,i):i}this._xMin=Math.round(h/this._stepX),this._xMax=Math.round(c/this._stepX),this._yMin=Math.round(l/this._stepY),this._yMax=Math.round(u/this._stepY),this._currentX=this._xMax+1,this._currentY=this._yMin-1,this._buildAccelerationMap(t,p,m,_,f)}_buildAccelerationMap(t,e,s,i,n){t.reset();const r=new Map,a=this._verticalSubdivision,h=a?n-i:s-e;let l=Math.ceil(h/10);if(l<=1)return;const c=Math.floor(h/l);let _,f,p,m,d,g,y,P,x,M,b;for(l++,this._delta=c,a?(x=-o-2*this._stepY,M=2*this._stepY,b=i):(x=-2*this._stepX,M=o+2*this._stepX,b=e);t.nextPath();)if(!(t.pathSize<2)&&t.nextPoint())for(_=t.x,f=t.y;t.nextPoint();_=p,f=m){if(p=t.x,m=t.y,a){if(f===m||fM&&m>M)continue;d=Math.min(f,m),g=Math.max(f,m)}else{if(_===p||_M&&p>M)continue;d=Math.min(_,p),g=Math.max(_,p)}for(;dy&&u(P,_,f,p,m,r)}this._accelerationMap=r}_nextInside(){for(;;){if(this._currentX>this._xMax){if(this._currentY++,this._currentY>this._yMax)return null;this._currentX=this._xMin,this._shiftOddRows&&this._currentY%2&&this._currentX--}let t=this._currentX*this._stepX+this._offsetX;this._shiftOddRows&&this._currentY%2&&(t+=.5*this._stepX);const e=this._currentY*this._stepY+this._offsetY;let s,i;if(this._currentX++,this._gridType===r.bj.Random){const n=(this._currentX%a+a)%a,r=(this._currentY%a+a)%a;s=this._graphicOriginX+t+this._stepX*this._randomness*(.5-c._randValues[r*a+n])*2/3,i=this._graphicOriginY+e+this._stepY*this._randomness*(.5-c._randValues[r*a+n+1])*2/3}else s=this._graphicOriginX+this._cosAngle*t+this._sinAngle*e,i=this._graphicOriginY-this._sinAngle*t+this._cosAngle*e;if(!this._testInsidePolygon||this._isInsidePolygon(s,i,this._geometryCursor))return this._internalPlacement.setTranslate(s,i),this._internalPlacement}}_isInsidePolygon(t,e,s){if(null==this._accelerationMap)return function(t,e,s){let i,n,r,o,a=0;for(t+=h,e+=h,s.reset();s.nextPath();)if(s.nextPoint())for(i=s.x,n=s.y;s.nextPoint();i=r,n=o)r=s.x,o=s.y,n>e!=o>e&&((r-i)*(e-n)-(o-n)*(t-i)>0?a++:a--);return 0!==a}(t,e,s);t+=h,e+=h;const i=this._verticalSubdivision,n=i?e:t,r=Math.floor((n-this._polygonMin)/this._delta),o=this._accelerationMap.get(r);if(!o)return!1;let a,l,c,u=0;for(const s of o){if(a=s[0],l=s[1],i){if(a[1]>e==l[1]>e)continue;c=(l[0]-a[0])*(e-a[1])-(l[1]-a[1])*(t-a[0])}else{if(a[0]>t==l[0]>t)continue;c=(l[1]-a[1])*(t-a[0])-(l[0]-a[0])*(e-a[1])}c>0?u++:u--}return 0!==u}}function u(t,e,s,i,n,r){let o=r.get(t);o||(o=[],r.set(t,o)),o.push([[e,s],[i,n]])}},8505:function(t,e,s){s.d(e,{D:function(){return o}});var i=s(94843),n=s(10701),r=s(25609);class o{static local(){return null===o.instance&&(o.instance=new o),o.instance}execute(t,e,s,i,n){return new a(t,e,s)}}o.instance=null;class a extends i.v1{constructor(t,e,s){super(t),this._curveHelper=new n.N,this._angleToLine=void 0===e.angleToLine||e.angleToLine,this._offset=void 0!==e.offset?e.offset*s:0,this._relativeTo=e.relativeTo,this._position=void 0!==e.startPointOffset?e.startPointOffset*s:0,this._epsilon=.001*s}processPath(t){const e=this._position;if(this._relativeTo===r.CS.SegmentMidpoint){if(this.iteratePath||(this.iteratePath=!0),t.nextPoint()){let[e,s]=[t.x,t.y],[i,n]=[0,0];for(;t.nextPoint();){i=t.x,n=t.y;const r=this._curveHelper.getLength(e,s,i,n);if(ri){const t=(i-o)/s,[l,c]=this._curveHelper.getAngleCS(e,r,a,h,t),u=this._curveHelper.getCoord2D(e,r,a,h,t),_=n?-this._offset:this._offset;return this.internalPlacement.setTranslate(u[0]-_*c,u[1]+_*l),this._angleToLine&&(n?this.internalPlacement.setRotateCS(-l,-c):this.internalPlacement.setRotateCS(l,c)),this.internalPlacement}e=a,r=h,o+=s}}return null}}},80732:function(t,e,s){s.d(e,{o:function(){return r}});var i=s(94843),n=s(10701);class r{static local(){return null===r.instance&&(r.instance=new r),r.instance}execute(t,e,s,i,n){return new o(t,e,s)}}r.instance=null;class o extends i.v1{constructor(t,e,s){super(t),this._curveHelper=new n.N,this._angleToLine=void 0===e.angleToLine||e.angleToLine,this._offset=void 0!==e.offset?e.offset*s:0,this._endPoints=void 0===e.placeOnEndPoints||e.placeOnEndPoints,this._controlPoints=void 0===e.placeOnControlPoints||e.placeOnControlPoints,this._regularVertices=void 0===e.placeOnRegularVertices||e.placeOnRegularVertices,this._tags=[],this._tagIterator=0}processPath(t){if(this.iteratePath||(this._preparePath(t),this.iteratePath=!0),this._tagIterator>=this._tags.length)return this._tags.length=0,this._tagIterator=0,this.iteratePath=!1,null;const e=this._tags[this._tagIterator];this._angleToLine&&this.internalPlacement.setRotate(e[2]);let s=e[0],i=e[1];if(0!==this._offset){const t=Math.cos(e[2]),n=Math.sin(e[2]);s-=this._offset*n,i+=this._offset*t}return this.internalPlacement.setTranslate(s,i),this._tagIterator++,this.internalPlacement}_preparePath(t){this._tags.length=0,this._tagIterator=0,t.seekPathStart();const e=t.isClosed();let s=0,i=!1,n=0,r=0;if(t.seekPathStart(),t.nextPoint()){let o=t.x,h=t.y,l=t.getControlPoint(),c=!0,u=t.nextPoint();for(;u;){const _=t.x,f=t.y,p=t.getControlPoint();(this._angleToLine||0!==this._offset)&&(n=this._curveHelper.getAngle(o,h,_,f,0)),c?(c=!1,e?(s=n,i=l):(this._endPoints||this._controlPoints&&l)&&this._tags.push([o,h,n])):l?this._controlPoints&&this._tags.push([o,h,a(r,n)]):this._regularVertices&&this._tags.push([o,h,a(r,n)]),(this._angleToLine||0!==this._offset)&&(r=this._curveHelper.getAngle(o,h,_,f,1)),u=t.nextPoint(),u||(e?p||i?this._controlPoints&&this._tags.push([_,f,a(r,s)]):this._regularVertices&&this._tags.push([_,f,a(r,s)]):(this._endPoints||this._controlPoints&&p)&&this._tags.push([_,f,r])),o=_,h=f,l=p}}this._tagIterator=0}}function a(t,e){const s=Math.PI;for(;Math.abs(e-t)>s+2e-15;)e-t>s?e-=2*s:e+=2*s;return(t+e)/2}},73675:function(t,e,s){s.d(e,{y:function(){return h}});var i=s(79880),n=s(18449),r=s(55769),o=s(40709),a=s(25609);class h{static local(){return null===h.instance&&(h.instance=new h),h.instance}execute(t,e,s,i,n){return new l(t,e,s)}}h.instance=null;class l{constructor(t,e,s){this._geometryCursor=t,this._offsetX=void 0!==e.offsetX?e.offsetX*s:0,this._offsetY=void 0!==e.offsetY?e.offsetY*s:0,this._method=void 0!==e.method?e.method:a.Lh.OnPolygon,this._internalPlacement=new o.u}next(){const t=this._geometryCursor;return this._geometryCursor=null,t?this._polygonCenter(t):null}_polygonCenter(t){let e=!1;switch(this._method){case a.Lh.CenterOfMass:{const s=(0,n.NA)(t);s&&(this._internalPlacement.setTranslate(s[0]+this._offsetX,s[1]+this._offsetY),e=!0)}break;case a.Lh.BoundingBoxCenter:{const s=(0,i.Cs)(t);s&&(this._internalPlacement.setTranslate((s[2]+s[0])/2+this._offsetX,(s[3]+s[1])/2+this._offsetY),e=!0)}break;case a.Lh.OnPolygon:default:{const s=(0,r.r)(t);null!==s&&(this._internalPlacement.setTranslate(s[0]+this._offsetX,s[1]+this._offsetY),e=!0)}}return e?this._internalPlacement:null}}},31090:function(t,e,s){s.d(e,{TR:function(){return o},b7:function(){return l},g:function(){return u},kH:function(){return h},qv:function(){return c},tf:function(){return _}});var i=s(13802);const n=()=>i.Z.getLogger("esri.views.2d.engine.webgl.alignmentUtils");var r,o,a;function h(t){if(!t)return r.Center;switch(t){case"Left":case"left":return r.Left;case"Right":case"right":return r.Right;case"Justify":return n().warnOnce("Horizontal alignment 'justify' is not implemented. Falling back to 'center'."),r.Center;case"Center":case"center":return r.Center}}function l(t){if(!t)return o.Center;switch(t){case"Top":case"top":return o.Top;case"Center":case"middle":return o.Center;case"Baseline":case"baseline":return o.Baseline;case"Bottom":case"bottom":return o.Bottom}}function c(t){switch(t){case"above-left":case"esriServerPointLabelPlacementAboveLeft":return["right","bottom"];case"above-center":case"above-along":case"esriServerPointLabelPlacementAboveCenter":case"esriServerLinePlacementAboveAlong":return["center","bottom"];case"above-right":case"esriServerPointLabelPlacementAboveRight":return["left","bottom"];case"center-left":case"esriServerPointLabelPlacementCenterLeft":return["right","middle"];case"center-center":case"center-along":case"esriServerPointLabelPlacementCenterCenter":case"esriServerLinePlacementCenterAlong":case"always-horizontal":case"esriServerPolygonPlacementAlwaysHorizontal":default:return["center","middle"];case"center-right":case"esriServerPointLabelPlacementCenterRight":return["left","middle"];case"below-left":case"esriServerPointLabelPlacementBelowLeft":return["right","top"];case"below-center":case"below-along":case"esriServerPointLabelPlacementBelowCenter":case"esriServerLinePlacementBelowAlong":return["center","top"];case"below-right":case"esriServerPointLabelPlacementBelowRight":return["left","top"]}}function u(t){switch(t){case r.Right:case"right":return-1;case r.Center:case"center":return 0;case r.Left:case"left":return 1;default:return 0}}function _(t){switch(t){case o.Top:case"top":return 1;case o.Center:case"middle":return 0;case o.Bottom:case o.Baseline:case"baseline":case"bottom":return-1;default:return 0}}(a=r||(r={}))[a.Left=-1]="Left",a[a.Center=0]="Center",a[a.Right=1]="Right",function(t){t[t.Top=1]="Top",t[t.Center=0]="Center",t[t.Bottom=-1]="Bottom",t[t.Baseline=2]="Baseline"}(o||(o={}))},58005:function(t,e,s){s.d(e,{Nr:function(){return C}});var i=s(76231),n=s(43056),r=s(36531),o=s(45867),a=s(31090),h=s(4655),l=s(31067);const c=22,u=4,_=c+u,f=c-6,p=3,m=Math.PI/180;class d{constructor(t,e,s,i){this._rotationT=(0,n.Ue)(),this._xBounds=0,this._yBounds=0,this.minZoom=0,this.maxZoom=255,this._bounds=null;const r=s.rect,o=new Float32Array(8);t*=i,e*=i;const a=s.code?r.width*i:s.metrics.width,h=s.code?r.height*i:s.metrics.height;this.width=a,this.height=h,o[0]=t,o[1]=e,o[2]=t+a,o[3]=e,o[4]=t,o[5]=e+h,o[6]=t+a,o[7]=e+h,this._data=o,this._setTextureCoords(r),this._scale=i,this._mosaic=s,this.x=t,this.y=e,this.maxOffset=Math.max(t+a,e+h)}get mosaic(){return this._mosaic}set angle(t){this._angle=t,(0,i.Us)(this._rotationT,-t),this._setOffsets()}get angle(){return this._angle}get xTopLeft(){return this._data[0]}get yTopLeft(){return this._data[1]}get xBottomRight(){return this._data[6]}get yBottomRight(){return this._data[7]}get texcoords(){return this._texcoords}get textureBinding(){return this._mosaic.textureBinding}get offsets(){return this._offsets||this._setOffsets(),this._offsets}get char(){return String.fromCharCode(this._mosaic.code)}get code(){return this._mosaic.code}get bounds(){if(!this._bounds){const{height:t,width:e}=this._mosaic.metrics,s=e*this._scale,r=Math.abs(t)*this._scale,o=new Float32Array(8);o[0]=this.x,o[1]=this.y,o[2]=this.x+s,o[3]=this.y,o[4]=this.x,o[5]=this.y+r,o[6]=this.x+s,o[7]=this.y+r;const a=(0,i.Jp)((0,n.Ue)(),this._rotationT,this._transform);(0,n.Zz)(o,o,a);let h=1/0,c=1/0,u=0,_=0;for(let t=0;t<4;t++){const e=o[2*t],s=o[2*t+1];h=Math.min(h,e),c=Math.min(c,s),u=Math.max(u,e),_=Math.max(_,s)}const f=u-h,p=_-c,m=h+f/2,d=c+p/2;this._bounds=new l.Z(m,d,f,p)}return this._bounds}setTransform(t){this._transform=t,this._offsets=null}_setOffsets(){this._offsets||(this._offsets={topLeft:[0,0],topRight:[0,0],bottomLeft:[0,0],bottomRight:[0,0]});const t=(0,i.Jp)((0,n.Ue)(),this._rotationT,this._transform);this._offsets.topLeft[0]=this._data[0],this._offsets.topLeft[1]=this._data[1],this._offsets.topRight[0]=this._data[2],this._offsets.topRight[1]=this._data[3],this._offsets.bottomLeft[0]=this._data[4],this._offsets.bottomLeft[1]=this._data[5],this._offsets.bottomRight[0]=this._data[6],this._offsets.bottomRight[1]=this._data[7],(0,r.iu)(this._offsets.topLeft,this._offsets.topLeft,t),(0,r.iu)(this._offsets.topRight,this._offsets.topRight,t),(0,r.iu)(this._offsets.bottomLeft,this._offsets.bottomLeft,t),(0,r.iu)(this._offsets.bottomRight,this._offsets.bottomRight,t)}_setTextureCoords({x:t,y:e,width:s,height:i}){this._texcoords={topLeft:[t,e],topRight:[t+s,e],bottomLeft:[t,e+i],bottomRight:[t+s,e+i]}}}const g=(t,e)=>({code:0,page:0,sdf:!0,rect:new h.Z(0,0,11,8),textureBinding:e,metrics:{advance:0,height:4,width:t,left:0,top:0}});function y(t,e){return t.forEach((t=>(0,r.iu)(t,t,e))),{topLeft:t[0],topRight:t[1],bottomLeft:t[2],bottomRight:t[3]}}class P{constructor(t,e,s){this._rotation=0,this._decorate(t,e,s),this.glyphs=t,this.bounds=this._createBounds(t),this.isMultiline=e.length>1,this._hasRotation=0!==s.angle,this._transform=this._createGlyphTransform(this.bounds,s),this._borderLineSizePx=s.borderLineSizePx,(s.borderLineSizePx||s.hasBackground)&&([this.bounds,this.textBox]=this.shapeBackground(this._transform));for(const e of t)e.setTransform(this._transform)}setRotation(t){if(0===t&&0===this._rotation)return;this._rotation=t;const e=this._transform,s=(0,i.Us)((0,n.Ue)(),t);(0,i.Jp)(e,s,e);for(const t of this.glyphs)t.setTransform(this._transform)}_decorate(t,e,s){if(!s.decoration||"none"===s.decoration||!t.length)return;const i=s.scale,n="underline"===s.decoration?_:f,r=t[0].textureBinding;for(const s of e){const e=s.startX*i,o=s.startY*i,a=(s.width+s.glyphWidthEnd)*i;t.push(new d(e,o+n*i,g(a,r),1))}}shapeBackground(t){const e=(1.5+(this._borderLineSizePx||0))/2,s=this._borderLineSizePx?e:0,{xmin:i,ymin:n,xmax:r,ymax:o,x:a,y:h,width:c,height:u}=this.bounds,_=[i-8,n-8],f=[r+8,n-8],p=[i-8,o+8],m=[r+8,o+8],d=y([[_[0]-e,_[1]-e],[f[0]+e,f[1]-e],[_[0]+s,_[1]+s],[f[0]-s,f[1]+s]],t),g=y([[p[0]+s,p[1]-s],[m[0]-s,m[1]-s],[p[0]-e,p[1]+e],[m[0]+e,m[1]+e]],t),P=y([[_[0]-e,_[1]-e],[_[0]+s,_[1]+s],[p[0]-e,p[1]+e],[p[0]+s,p[1]-s]],t),x=y([[f[0]-s,f[1]+s],[f[0]+e,f[1]-e],[m[0]-s,m[1]-s],[m[0]+e,m[1]+e]],t),M={main:y([_,f,p,m],t),top:d,bot:g,left:P,right:x};return[new l.Z(a,h,c+2*e,u+2*e),M]}get boundsT(){const t=this.bounds,e=(0,r.t8)((0,o.Ue)(),t.x,t.y);if((0,r.iu)(e,e,this._transform),this._hasRotation){const s=Math.max(t.width,t.height);return new l.Z(e[0],e[1],s,s)}return new l.Z(e[0],e[1],t.width,t.height)}_createBounds(t){let e=1/0,s=1/0,i=0,n=0;for(const r of t)e=Math.min(e,r.xTopLeft),s=Math.min(s,r.yTopLeft),i=Math.max(i,r.xBottomRight),n=Math.max(n,r.yBottomRight);const r=i-e,o=n-s;return new l.Z(e+r/2,s+o/2,r,o)}_createGlyphTransform(t,e){const s=m*e.angle,a=(0,n.Ue)(),h=(0,o.Ue)();return(0,i.Iu)(a,a,(0,r.t8)(h,e.xOffset,-e.yOffset)),e.useCIMAngleBehavior?(0,i.U1)(a,a,s):((0,i.Iu)(a,a,(0,r.t8)(h,t.x,t.y)),(0,i.U1)(a,a,s),(0,i.Iu)(a,a,(0,r.t8)(h,-t.x,-t.y))),a}}class x{constructor(t,e,s,i,n,r){this.glyphWidthEnd=0,this.startX=0,this.startY=0,this.start=Math.max(0,Math.min(e,s)),this.end=Math.max(0,Math.max(e,s)),this.end10===t,b=t=>32===t;function S(t,e){let s=0;for(let e=0;er){if(f!==_){const e=f-2*h;c-=p,i.push(new x(t,_,e,c-u,m,d)),m=1/0,d=0,_=f,c=u}else i.push(new x(t,_,l-h,c,m,d)),m=1/0,d=0,_=l,f=l,c=0;c+=s.advance,u+=s.advance}else c+=s.advance,u+=s.advance;l+=h}const g=new x(t,_,l-h,c,m,d);return g.start>=0&&g.end{this.transitionEl=e},this.close=()=>{this.open=!1},this.openTransitionProp="opacity",this.open=!1,this.kind="brand",this.closable=!1,this.icon=void 0,this.iconFlipRtl=!1,this.scale="m",this.width="auto",this.messages=void 0,this.messageOverrides=void 0,this.effectiveLocale=void 0,this.defaultMessages=void 0}openHandler(){(0,d.o)(this)}onMessagesChange(){}updateRequestedIcon(){this.requestedIcon=(0,c.o)(n,this.icon,this.kind)}connectedCallback(){(0,s.c)(this),(0,l.c)(this),(0,r.c)(this)}disconnectedCallback(){(0,s.d)(this),(0,l.d)(this),(0,r.d)(this)}async componentWillLoad(){(0,a.s)(this),this.requestedIcon=(0,c.o)(n,this.icon,this.kind),await(0,r.s)(this),this.open&&(0,d.o)(this)}componentDidLoad(){(0,a.a)(this)}render(){const{el:e}=this,t=(0,o.h)("button",{"aria-label":this.messages.close,class:k,onClick:this.close,ref:e=>this.closeButton=e},(0,o.h)("calcite-icon",{icon:"x",scale:(0,h.g)(this.scale)})),i=(0,c.g)(e,m);return(0,o.h)("div",{class:b,ref:this.setTransitionEl},this.requestedIcon?(0,o.h)("div",{class:w},(0,o.h)("calcite-icon",{flipRtl:this.iconFlipRtl,icon:this.requestedIcon,scale:(0,h.g)(this.scale)})):null,(0,o.h)("div",{class:x},(0,o.h)("slot",{name:g}),(0,o.h)("slot",{name:f}),(0,o.h)("slot",{name:u})),i?(0,o.h)("div",{class:v},(0,o.h)("slot",{name:m})):null,this.closable?t:null)}async setFocus(){await(0,a.c)(this);const e=this.el.querySelector("calcite-link");if(this.closeButton||e)return e?e.setFocus():void(this.closeButton&&this.closeButton.focus())}onBeforeClose(){this.calciteNoticeBeforeClose.emit()}onBeforeOpen(){this.calciteNoticeBeforeOpen.emit()}onClose(){this.calciteNoticeClose.emit()}onOpen(){this.calciteNoticeOpen.emit()}effectiveLocaleChange(){(0,r.u)(this,this.effectiveLocale)}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{open:["openHandler"],messageOverrides:["onMessagesChange"],icon:["updateRequestedIcon"],kind:["updateRequestedIcon"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host([scale=s]){--calcite-notice-spacing-token-small:0.5rem;--calcite-notice-spacing-token-large:0.75rem}:host([scale=s]) .container slot[name=title]::slotted(*),:host([scale=s]) .container *::slotted([slot=title]){margin-block:0.125rem;font-size:var(--calcite-font-size--1);line-height:1.375}:host([scale=s]) .container slot[name=message]::slotted(*),:host([scale=s]) .container *::slotted([slot=message]){margin-block:0.125rem;font-size:var(--calcite-font-size--2);line-height:1.375}:host([scale=s]) ::slotted(calcite-link){margin-block:0.125rem;font-size:var(--calcite-font-size--2);line-height:1.375}:host([scale=s]) .notice-close{padding:0.5rem}:host([scale=m]){--calcite-notice-spacing-token-small:0.75rem;--calcite-notice-spacing-token-large:1rem}:host([scale=m]) .container slot[name=title]::slotted(*),:host([scale=m]) .container *::slotted([slot=title]){margin-block:0.125rem;font-size:var(--calcite-font-size-0);line-height:1.375}:host([scale=m]) .container slot[name=message]::slotted(*),:host([scale=m]) .container *::slotted([slot=message]){margin-block:0.125rem;font-size:var(--calcite-font-size--1);line-height:1.375}:host([scale=m]) ::slotted(calcite-link){margin-block:0.125rem;font-size:var(--calcite-font-size--1);line-height:1.375}:host([scale=l]){--calcite-notice-spacing-token-small:1rem;--calcite-notice-spacing-token-large:1.25rem}:host([scale=l]) .container slot[name=title]::slotted(*),:host([scale=l]) .container *::slotted([slot=title]){margin-block:0.125rem;font-size:var(--calcite-font-size-1);line-height:1.375}:host([scale=l]) .container slot[name=message]::slotted(*),:host([scale=l]) .container *::slotted([slot=message]){margin-block:0.125rem;font-size:var(--calcite-font-size-0);line-height:1.375}:host([scale=l]) ::slotted(calcite-link){margin-block:0.125rem;font-size:var(--calcite-font-size-0);line-height:1.375}:host([width=auto]){--calcite-notice-width:auto}:host([width=half]){--calcite-notice-width:50%}:host([width=full]){--calcite-notice-width:100%}:host{margin-inline:auto;display:none;max-inline-size:100%;align-items:center;inline-size:var(--calcite-notice-width)}.container{pointer-events:none;margin-block:0px;box-sizing:border-box;display:none;inline-size:100%;background-color:var(--calcite-color-foreground-1);opacity:0;transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s;max-block-size:0;text-align:start;border-inline-start:0px solid;box-shadow:0 0 0 0 transparent}.notice-close{outline-color:transparent}.notice-close:focus{outline:2px solid var(--calcite-ui-focus-color, var(--calcite-color-brand-hover, var(--calcite--color-brand)));outline-offset:calc(\n -2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-offset-invert-focus),\n 1\n )\n )\n )}:host{display:flex}:host([open]) .container{pointer-events:auto;display:flex;max-block-size:100%;align-items:center;border-width:2px;opacity:1;--tw-shadow:0 4px 8px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.04);--tw-shadow-colored:0 4px 8px -1px var(--tw-shadow-color), 0 2px 4px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.container slot[name=title]::slotted(*),.container *::slotted([slot=title]){margin:0px;font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-text-1)}.container slot[name=message]::slotted(*),.container *::slotted([slot=message]){margin:0px;display:inline;font-weight:var(--calcite-font-weight-normal);color:var(--calcite-color-text-2);margin-inline-end:var(--calcite-notice-spacing-token-small)}.notice-content{box-sizing:border-box;transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s;padding-inline:var(--calcite-notice-spacing-token-large);flex:0 0 auto;display:flex;min-inline-size:0px;flex-direction:column;overflow-wrap:break-word;flex:1 1 0;padding-block:var(--calcite-notice-spacing-token-small);padding-inline:0 var(--calcite-notice-spacing-token-small)}.notice-content:first-of-type:not(:only-child){padding-inline-start:var(--calcite-notice-spacing-token-large)}.notice-content:only-of-type{padding-block:var(--calcite-notice-spacing-token-small);padding-inline:var(--calcite-notice-spacing-token-large)}.notice-icon{display:flex;align-items:center;box-sizing:border-box;transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s;padding-block:var(--calcite-notice-spacing-token-small);padding-inline:var(--calcite-notice-spacing-token-large);flex:0 0 auto}.notice-close{display:flex;cursor:pointer;align-items:center;align-self:stretch;border-style:none;background-color:transparent;color:var(--calcite-color-text-3);outline:2px solid transparent;outline-offset:2px;box-sizing:border-box;transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s;padding-block:var(--calcite-notice-spacing-token-small);padding-inline:var(--calcite-notice-spacing-token-large);flex:0 0 auto;-webkit-appearance:none}.notice-close:hover,.notice-close:focus{background-color:var(--calcite-color-foreground-2);color:var(--calcite-color-text-1)}.notice-close:active{background-color:var(--calcite-color-foreground-3)}.actions-end{display:flex;align-self:stretch}:host([kind=brand]) .container{border-color:var(--calcite-color-brand)}:host([kind=brand]) .container .notice-icon{color:var(--calcite-color-brand)}:host([kind=info]) .container{border-color:var(--calcite-color-status-info)}:host([kind=info]) .container .notice-icon{color:var(--calcite-color-status-info)}:host([kind=danger]) .container{border-color:var(--calcite-color-status-danger)}:host([kind=danger]) .container .notice-icon{color:var(--calcite-color-status-danger)}:host([kind=success]) .container{border-color:var(--calcite-color-status-success)}:host([kind=success]) .container .notice-icon{color:var(--calcite-color-status-success)}:host([kind=warning]) .container{border-color:var(--calcite-color-status-warning)}:host([kind=warning]) .container .notice-icon{color:var(--calcite-color-status-warning)}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-notice",{open:[1540],kind:[513],closable:[516],icon:[520],iconFlipRtl:[516,"icon-flip-rtl"],scale:[513],width:[513],messages:[1040],messageOverrides:[1040],effectiveLocale:[32],defaultMessages:[32],setFocus:[64]},void 0,{open:["openHandler"],messageOverrides:["onMessagesChange"],icon:["updateRequestedIcon"],kind:["updateRequestedIcon"],effectiveLocale:["effectiveLocaleChange"]}]);function E(){if("undefined"==typeof customElements)return;["calcite-notice","calcite-icon"].forEach((e=>{switch(e){case"calcite-notice":customElements.get(e)||customElements.define(e,y);break;case"calcite-icon":customElements.get(e)||(0,p.d)()}}))}E();const z=y,C=E},14974:function(e,t,i){i.d(t,{c:function(){return l},d:function(){return r}});var n=i(77210),o=i(85545);const s=new Set;let c;const a={childList:!0};function l(e){c||(c=(0,o.c)("mutation",d)),c.observe(e.el,a)}function r(e){s.delete(e.el),d(c.takeRecords()),c.disconnect();for(const[e]of s.entries())c.observe(e,a)}function d(e){e.forEach((({target:e})=>{(0,n.xE)(e)}))}},18811:function(e,t,i){i.d(t,{o:function(){return c}});var n=i(77210);function o(e){return"opened"in e?e.opened:e.open}function s(e,t=!1){(t?e[e.transitionProp]:o(e))?e.onBeforeOpen():e.onBeforeClose(),(t?e[e.transitionProp]:o(e))?e.onOpen():e.onClose()}function c(e,t=!1){(0,n.wj)((()=>{if(e.transitionEl){const{transitionDuration:i,transitionProperty:n}=getComputedStyle(e.transitionEl),c=i.split(","),a=c[n.split(",").indexOf(e.openTransitionProp)]??c[0];if("0s"===a)return void s(e,t);const l=setTimeout((()=>{e.transitionEl.removeEventListener("transitionstart",r),e.transitionEl.removeEventListener("transitionend",d),e.transitionEl.removeEventListener("transitioncancel",d),s(e,t)}),1e3*parseFloat(a));function r(i){i.propertyName===e.openTransitionProp&&i.target===e.transitionEl&&(clearTimeout(l),e.transitionEl.removeEventListener("transitionstart",r),(t?e[e.transitionProp]:o(e))?e.onBeforeOpen():e.onBeforeClose())}function d(i){i.propertyName===e.openTransitionProp&&i.target===e.transitionEl&&((t?e[e.transitionProp]:o(e))?e.onOpen():e.onClose(),e.transitionEl.removeEventListener("transitionend",d),e.transitionEl.removeEventListener("transitioncancel",d))}e.transitionEl.addEventListener("transitionstart",r),e.transitionEl.addEventListener("transitionend",d),e.transitionEl.addEventListener("transitioncancel",d)}}))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5247.39a516f965d7aaea8b66.js.LICENSE.txt b/docs/sentinel1-explorer/5247.39a516f965d7aaea8b66.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/5247.39a516f965d7aaea8b66.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/5266.4bd06395df5b891961dc.js b/docs/sentinel1-explorer/5266.4bd06395df5b891961dc.js new file mode 100644 index 00000000..8dd0fd20 --- /dev/null +++ b/docs/sentinel1-explorer/5266.4bd06395df5b891961dc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5266],{15266:function(e,_,r){r.r(_),r.d(_,{default:function(){return o}});const o={_decimalSeparator:".",_thousandSeparator:",",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"公元",_era_bc:"公元前",A:"上午",P:"下午",AM:"上午",PM:"下午","A.M.":"上午","P.M.":"下午",January:"一月",February:"二月",March:"三月",April:"四月",May:"五月",June:"六月",July:"七月",August:"八月",September:"九月",October:"十月",November:"十一月",December:"十二月",Jan:"1月",Feb:"2月",Mar:"3月",Apr:"4月","May(short)":"5月",Jun:"6月",Jul:"7月",Aug:"8月",Sep:"9月",Oct:"10月",Nov:"11月",Dec:"12月",Sunday:"星期日",Monday:"星期一",Tuesday:"星期二",Wednesday:"星期三",Thursday:"星期四",Friday:"星期五",Saturday:"星期六",Sun:"周日",Mon:"周一",Tue:"周二",Wed:"周三",Thu:"周四",Fri:"周五",Sat:"周六",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:case 2:case 3:_="日"}return _},"Zoom Out":"缩放",Play:"播放",Stop:"停靠点",Legend:"图例","Press ENTER to toggle":"",Loading:"加载",Home:"主页",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"打印",Image:"影像",Data:"数据",Print:"打印","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"自 %1 至 %2","From %1":"自 %1","To %1":"至 %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/530.354e0807be31ba628e76.js b/docs/sentinel1-explorer/530.354e0807be31ba628e76.js new file mode 100644 index 00000000..11d91fec --- /dev/null +++ b/docs/sentinel1-explorer/530.354e0807be31ba628e76.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[530],{88464:function(t,e,i){i.d(e,{AM:function(){return d}});var n=i(36663),s=i(74396),r=i(39994),o=i(67134),l=i(13802),h=i(81977),a=i(40266),c=i(13045),u=i(60278);const f=-1;let d=class extends s.Z{constructor(t){super(t),this._from=null,this._to=null,this._final=null,this._current=[],this._time=0,this.duration=(0,r.Z)("mapview-transitions-duration"),this.effects=[]}set effect(t){if(this._get("effect")!==(t=t||"")){this._set("effect",t);try{this._transitionTo(p(t))}catch(e){this._transitionTo([]),l.Z.getLogger(this).warn("Invalid Effect",{effect:t,error:e})}}}get hasEffects(){return this.transitioning||!!this.effects.length}set scale(t){this._updateForScale(t)}get transitioning(){return null!==this._to}canTransitionTo(t){try{return this.scale>0&&g(this._current,p(t),this.scale)}catch{return!1}}transitionStep(t,e){this._applyTimeTransition(t),this._updateForScale(e)}endTransitions(){this._applyTimeTransition(this.duration)}_transitionTo(t){this.scale>0&&g(this._current,t,this.scale)?(this._final=t,this._to=(0,o.d9)(t),function(t,e,i){const n=t.length>e.length?t:e,s=t.length>e.length?e:t,r=s[s.length-1],o=r?.scale??i,l=r?.effects??[];for(let t=s.length;t=e[0].scale)s=n=e[0].effects;else if(t<=e[i].scale)s=n=e[i].effects;else for(let o=0;o=t&&l.scale<=t){r=(t-i.scale)/(l.scale-i.scale),n=i.effects,s=l.effects;break}}for(let t=0;t1||e.length>1)&&i<=0)&&(0,u.AS)(t[0].effects,e[0].effects)}function _(t,e,i){return t+(e-t)*i}(0,n._)([(0,h.Cb)()],d.prototype,"_to",void 0),(0,n._)([(0,h.Cb)()],d.prototype,"duration",void 0),(0,n._)([(0,h.Cb)({value:""})],d.prototype,"effect",null),(0,n._)([(0,h.Cb)({readOnly:!0})],d.prototype,"effects",void 0),(0,n._)([(0,h.Cb)({readOnly:!0})],d.prototype,"hasEffects",null),(0,n._)([(0,h.Cb)({value:0})],d.prototype,"scale",null),(0,n._)([(0,h.Cb)({readOnly:!0})],d.prototype,"transitioning",null),d=(0,n._)([(0,a.j)("esri.layers.effects.EffectView")],d)},10530:function(t,e,i){i.d(e,{W:function(){return l}});var n=i(38642),s=i(88464),r=i(51118),o=i(41214);class l extends r.s{constructor(){super(...arguments),this._childrenSet=new Set,this._needsSort=!1,this._children=[],this._effectView=null,this._highlightOptions=null,this._highlightGradient=null}get blendMode(){return this._blendMode}set blendMode(t){this._blendMode=t,this.requestRender()}get children(){return this._children}get clips(){return this._clips}set clips(t){this._clips=t,this.children.forEach((e=>e.clips=t))}get computedEffects(){return this._effectView?.effects??null}get effect(){return this._effectView?.effect??""}set effect(t){(this._effectView||t)&&(this._effectView||(this._effectView=new s.AM),this._effectView.effect=t,this.requestRender())}get highlightOptions(){return this._highlightOptions}set highlightOptions(t){if(!t)return this._highlightOptions=null,void(this._highlightGradient&&(this._highlightGradient.destroy(),this._highlightGradient=null,this.requestRender()));this._highlightOptions&&this._highlightOptions.equals(t)||(this._highlightOptions=t,this._highlightGradient=(0,o.GK)(this._highlightGradient,t),this.requestRender())}get hasBlending(){return!!this.blendMode}get hasHighlight(){return this.children.some((t=>t.hasHighlight))}get hasLabels(){return this.children.some((t=>t.hasLabels))}get requiresDedicatedFBO(){return this.children.some((t=>"blendMode"in t&&t.blendMode&&"normal"!==t.blendMode))}updateTransitionProperties(t,e){super.updateTransitionProperties(t,e),this._effectView&&(this._effectView.transitionStep(t,e),this._effectView.transitioning&&this.requestRender())}doRender(t){const e=this.createRenderParams(t),{painter:i}=e;i.beforeRenderLayer(e,this._clips?.length?255:0,this.computedOpacity),this.renderChildren(e),i.afterRenderLayer(e,this.computedOpacity)}addChild(t){return this.addChildAt(t,this.children.length)}addChildAt(t,e=this.children.length){if(!t)return t;if(this.contains(t))return t;this._needsSort=!0;const i=t.parent;return i&&i!==this&&i.removeChild(t),e>=this.children.length?this.children.push(t):this.children.splice(e,0,t),this._childrenSet.add(t),t.parent=this,t.stage=this.stage,this!==this.stage&&(t.clips=this.clips),this.requestRender(),t}contains(t){return this._childrenSet.has(t)}endTransitions(){super.endTransitions(),this._effectView&&(this._effectView.endTransitions(),this.requestRender())}removeAllChildren(){this._childrenSet.clear(),this._needsSort=!0;for(const t of this.children)this!==this.stage&&(t.clips=null),t.stage=null,t.parent=null;this.children.length=0}removeChild(t){return this.contains(t)?this.removeChildAt(this.children.indexOf(t)):t}removeChildAt(t){if(t<0||t>=this.children.length)return null;this._needsSort=!0;const e=this.children.splice(t,1)[0];return this._childrenSet.delete(e),this!==this.stage&&(e.clips=null),e.stage=null,e.parent=null,e}sortChildren(t){this._needsSort&&(this.children.sort(t),this._needsSort=!1)}beforeRender(t){super.beforeRender(t);for(const e of this.children)e.beforeRender(t)}afterRender(t){super.afterRender(t);for(const e of this.children)e.afterRender(t)}_createTransforms(){return{displayViewScreenMat3:(0,n.Ue)()}}onAttach(){super.onAttach();const t=this.stage;for(const e of this.children)e.stage=t}onDetach(){super.onDetach();for(const t of this.children)t.stage=null}renderChildren(t){for(const e of this.children)e.processRender(t)}createRenderParams(t){return{...t,requireFBO:this.requiresDedicatedFBO,blendMode:this.blendMode,effects:this.computedEffects,globalOpacity:t.globalOpacity*this.computedOpacity,inFadeTransition:this.inFadeTransition,highlightGradient:this._highlightGradient||t.highlightGradient}}}},51118:function(t,e,i){i.d(e,{s:function(){return l}});var n=i(31355),s=i(39994),r=i(78668);const o=0===(0,s.Z)("mapview-transitions-duration")?0:1/(0,s.Z)("mapview-transitions-duration");class l extends n.Z{constructor(){super(...arguments),this._fadeOutResolver=null,this._fadeInResolver=null,this._clips=null,this.computedVisible=!0,this.computedOpacity=1,this.fadeTransitionEnabled=!1,this.inFadeTransition=!1,this._isReady=!1,this._opacity=1,this.parent=null,this._stage=null,this._visible=!0}get clips(){return this._clips}set clips(t){this._clips=t,this.requestRender()}get isReady(){return this._isReady}get opacity(){return this._opacity}set opacity(t){this._opacity!==t&&(this._opacity=Math.min(1,Math.max(t,0)),this.requestRender())}get stage(){return this._stage}set stage(t){if(this._stage===t)return;const e=this._stage;this._stage=t,t?this._stage?.untrashDisplayObject(this)||(this.onAttach(),this.emit("attach")):e?.trashDisplayObject(this)}get transforms(){return this._getTransforms()}_getTransforms(){return null==this._transforms&&(this._transforms=this._createTransforms()),this._transforms}get visible(){return this._visible}set visible(t){this._visible!==t&&(this._visible=t,this.requestRender())}get hasLabels(){return!1}get hasHighlight(){return!1}get hasBlending(){return!1}fadeIn(){return this._fadeInResolver||(this._fadeOutResolver&&(this._fadeOutResolver(),this._fadeOutResolver=null),this.opacity=1,this.computedOpacity=0,this.fadeTransitionEnabled=!0,this._fadeInResolver=(0,r.hh)(),this.requestRender()),this._fadeInResolver.promise}fadeOut(){return this._fadeOutResolver||(this.opacity=0,this._fadeInResolver&&(this._fadeInResolver(),this._fadeInResolver=null),this.fadeTransitionEnabled=!0,this._fadeOutResolver=(0,r.hh)(),this.requestRender()),this._fadeOutResolver.promise}endTransitions(){this._fadeInResolver?.(),this._fadeInResolver=null,this._fadeOutResolver?.(),this._fadeOutResolver=null,this.computedOpacity=this.visible?this.opacity:0,this.requestRender()}beforeRender(t){this.updateTransitionProperties(t.deltaTime,t.state.scale),this.setTransform(t.state)}afterRender(t){this._fadeInResolver&&this.computedOpacity===this.opacity?(this._fadeInResolver(),this._fadeInResolver=null):this._fadeOutResolver&&0===this.computedOpacity&&(this._fadeOutResolver(),this._fadeOutResolver=null)}remove(){this.parent?.removeChild(this)}setTransform(t){}processRender(t){this.stage&&this.computedVisible&&this.doRender(t)}requestRender(){this.stage&&this.stage.requestRender()}processDetach(){this._fadeInResolver&&(this._fadeInResolver(),this._fadeInResolver=null),this._fadeOutResolver&&(this._fadeOutResolver(),this._fadeOutResolver=null),this.onDetach(),this.emit("detach")}updateTransitionProperties(t,e){if(this.fadeTransitionEnabled&&0!==o){const e=this._fadeOutResolver||!this.visible?0:this.opacity,i=this.computedOpacity;if(i===e)this.computedVisible=this.visible;else{const n=t*o;this.computedOpacity=i>e?Math.max(e,i-n):Math.min(e,i+n),this.computedVisible=this.computedOpacity>0;const s=e===this.computedOpacity;this.inFadeTransition=!s,s||this.requestRender()}}else this.computedOpacity=this.opacity,this.computedVisible=this.visible}onAttach(){}onDetach(){}doRender(t){}ready(){this._isReady||(this._isReady=!0,this.emit("isReady"),this.requestRender())}}},26991:function(t,e,i){i.d(e,{EC:function(){return r},Oo:function(){return l},ck:function(){return o}});var n=i(30936),s=i(98114);const r={selection:t=>new s.Z({color:new n.Z([t.color.r/2,t.color.g/2,t.color.b/2,t.color.a])}),highlight:t=>t,popup:t=>new s.Z({color:new n.Z([t.color.g,t.color.b,t.color.r,t.color.a])})};function o(t){if(!t)return 0;let e=1;for(const i in r){if(i===t)break;e<<=1}return e}const l=Object.keys(r)},14266:function(t,e,i){i.d(e,{BZ:function(){return V},FM:function(){return x},GV:function(){return B},Ib:function(){return p},J1:function(){return Z},JS:function(){return F},KA:function(){return N},Kg:function(){return r},Kt:function(){return f},Ly:function(){return R},NG:function(){return U},NY:function(){return g},Of:function(){return C},Pp:function(){return h},Sf:function(){return E},Uz:function(){return q},Vo:function(){return G},Zt:function(){return v},_8:function(){return K},_E:function(){return P},ad:function(){return l},bm:function(){return T},ce:function(){return y},cz:function(){return O},dD:function(){return S},do:function(){return M},g3:function(){return A},gj:function(){return u},i9:function(){return s},iD:function(){return c},j1:function(){return m},k9:function(){return n},kU:function(){return L},l3:function(){return k},nY:function(){return w},nn:function(){return W},oh:function(){return o},qu:function(){return D},s4:function(){return H},uk:function(){return a},vk:function(){return b},wJ:function(){return d},wi:function(){return I},zZ:function(){return _}});const n=1e-30,s=512,r=128,o=511,l=16777216,h=8,a=29,c=24,u=4,f=0,d=0,p=0,g=1,_=2,T=3,m=4,R=5,y=6,O=12,v=5,E=6,C=5,b=6;var I;!function(t){t[t.FilterFlags=0]="FilterFlags",t[t.Animation=1]="Animation",t[t.GPGPU=2]="GPGPU",t[t.VV=3]="VV",t[t.DD0=4]="DD0",t[t.DD1=5]="DD1",t[t.DD2=6]="DD2"}(I||(I={}));const A=8,L=A<<1,M=1.05,w=1,S=5,P=6,G=1.15,H=2,D=128-2*H,x=2,F=10,N=1024,q=128,U=4,V=1,W=1<<20,Z=.75,k=10,B=.75,K=256},28434:function(t,e,i){i.d(e,{Fo:function(){return l},bM:function(){return s},dl:function(){return r},iq:function(){return o},pW:function(){return n}});const n=1,s=[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],r=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],o=256,l={outlineWidth:1.3,outerHaloWidth:.4,innerHaloWidth:.4,outlinePosition:0}},38716:function(t,e,i){var n,s,r,o,l,h,a,c,u;i.d(e,{CU:function(){return r},Un:function(){return l},Xq:function(){return a},gl:function(){return c},jx:function(){return s},mH:function(){return u}}),function(t){t[t.FILL=0]="FILL",t[t.LINE=1]="LINE",t[t.MARKER=2]="MARKER",t[t.TEXT=3]="TEXT",t[t.LABEL=4]="LABEL"}(n||(n={})),function(t){t[t.NONE=0]="NONE",t[t.MAP=1]="MAP",t[t.LABEL=2]="LABEL",t[t.LABEL_ALPHA=4]="LABEL_ALPHA",t[t.HITTEST=8]="HITTEST",t[t.HIGHLIGHT=16]="HIGHLIGHT",t[t.CLIP=32]="CLIP",t[t.DEBUG=64]="DEBUG",t[t.NUM_DRAW_PHASES=9]="NUM_DRAW_PHASES"}(s||(s={})),function(t){t[t.SIZE=0]="SIZE",t[t.COLOR=1]="COLOR",t[t.OPACITY=2]="OPACITY",t[t.ROTATION=3]="ROTATION"}(r||(r={})),function(t){t[t.MINMAX_TARGETS_OUTLINE=128]="MINMAX_TARGETS_OUTLINE",t[t.SCALE_TARGETS_OUTLINE=256]="SCALE_TARGETS_OUTLINE",t[t.FIELD_TARGETS_OUTLINE=512]="FIELD_TARGETS_OUTLINE",t[t.UNIT_TARGETS_OUTLINE=1024]="UNIT_TARGETS_OUTLINE"}(o||(o={})),function(t){t[t.SPRITE=0]="SPRITE",t[t.GLYPH=1]="GLYPH"}(l||(l={})),function(t){t[t.DEFAULT=0]="DEFAULT",t[t.SIMPLE=1]="SIMPLE",t[t.DOT_DENSITY=2]="DOT_DENSITY",t[t.OUTLINE_FILL=3]="OUTLINE_FILL",t[t.OUTLINE_FILL_SIMPLE=4]="OUTLINE_FILL_SIMPLE",t[t.HEATMAP=5]="HEATMAP",t[t.PIE_CHART=6]="PIE_CHART"}(h||(h={})),function(t){t[t.All=0]="All",t[t.Highlight=1]="Highlight",t[t.InsideEffect=2]="InsideEffect",t[t.OutsideEffect=3]="OutsideEffect"}(a||(a={})),function(t){t[t.BATCHING=0]="BATCHING",t[t.STRICT_ORDER=1]="STRICT_ORDER",t[t.STRICT_MARKERS_AND_TEXT=2]="STRICT_MARKERS_AND_TEXT"}(c||(c={})),function(t){t[t.FILL=0]="FILL",t[t.LINE=1]="LINE",t[t.MARKER=2]="MARKER",t[t.TEXT=3]="TEXT"}(u||(u={}))},32676:function(t,e,i){i.d(e,{H6:function(){return R},VF:function(){return d},il:function(){return f},l5:function(){return T},rO:function(){return m},vY:function(){return _},wb:function(){return y},yF:function(){return u}});var n=i(39994),s=i(17321),r=i(14266),o=i(38716),l=i(91907);const h={color:{write:[!0,!0,!0,!0],blendMode:"composite"},depth:!1,stencil:{write:!1,test:{ref:t=>t.stencilRef,compare:l.wb.EQUAL,mask:255,op:{fail:l.xS.KEEP,zFail:l.xS.KEEP,zPass:l.xS.REPLACE}}}},a={color:{write:[!0,!0,!0,!0],blendMode:"additive"},depth:!1,stencil:!1},c={...h,color:{write:[!0,!0,!0,!0],blendMode:"delete"}};function u({pixelRatio:t,state:e,displayLevel:i,requiredLevel:n},r){const o=1/2**(i-r.key.level),l=1/2**(n-r.key.level);return{displayMat3:Array.from(e.displayMat3),displayViewMat3:Array.from(e.displayViewMat3),displayViewScreenMat3:Array.from(r.transforms.displayViewScreenMat3),viewMat3:Array.from(e.viewMat3),tileMat3:Array.from(r.transforms.tileMat3),displayZoomFactor:o,requiredZoomFactor:l,tileOffset:[r.x,r.y],currentScale:e.scale,currentZoom:i,metersPerSRUnit:(0,s.c9)(e.spatialReference),rotation:e.rotation,pixelRatio:t}}function f(t){return"highlight"===t.passOptions?.type}function d(t){return"hittest"===t.passOptions?.type}function p(t){if(!d(t))return null;const{position:e}=t.passOptions,i=t.pixelRatio,s=(0,n.Z)("esri-mobile");return{position:e,distance:(0,n.Z)(s?"hittest-2d-mobile-tolerance":"hittest-2d-desktop-tolerance")*i,smallSymbolDistance:(0,n.Z)(s?"hittest-2d-mobile-tolerance":"hittest-2d-small-symbol-tolerance")*i,smallSymbolSizeThreshold:(0,n.Z)("hittest-2d-small-symbol-tolerance-threshold")}}function g(t){if(!f(t))return null;const{activeReasons:e,highlightAll:i}=t.passOptions;return{activeReasons:e,highlightAll:i?1:0}}function _(t,e,i){const n={};for(const s in i)i[s]instanceof Function?n[s]=i[s](t,e):n[s]=i[s];return n}function T(t,e){const{attributeView:i,context:n}=t;return{storage:i.getUniforms(n),view:u(t,e),hittestRequest:p(t),highlight:g(t)}}function m(t){return{inside:t.selection===o.Xq.InsideEffect,outside:t.selection===o.Xq.OutsideEffect}}function R(t){return d(t)?a:f(t)&&"clear"===t.passOptions.stepType?c:h}function y(t){const{row:e,col:i}=t.key,n=i*r.i9,s=e*r.i9;return{tileOffsetFromLocalOrigin:[n%r.ad,s%r.ad],maxIntsToLocalOrigin:[Math.floor(n/r.ad),Math.floor(s/r.ad)]}}},41214:function(t,e,i){i.d(e,{JV:function(){return _},GK:function(){return T},P9:function(){return m}});var n=i(25709),s=i(13802),r=i(26991),o=i(14266),l=i(28434),h=i(91907),a=i(71449),c=i(80479);const u=()=>s.Z.getLogger("esri.views.2d.engine.webgl.painter.highlight.HighlightGradient");const f=[0,0,0,0];class d{constructor(){this.type="single",this._convertedHighlightOptions={fillColor:[.2*.75,.6*.75,.675,.75],outlineColor:[.2*.9,.54,.81,.9],outlinePosition:l.Fo.outlinePosition,outlineWidth:l.Fo.outlineWidth,innerHaloWidth:l.Fo.innerHaloWidth,outerHaloWidth:l.Fo.outerHaloWidth},this._shadeTexChanged=!0,this._texelData=new Uint8Array(4*l.iq),this._minMaxDistance=[0,0]}setHighlightOptions(t){const e=this._convertedHighlightOptions;!function(t,e){e.fillColor[0]=t.color.r/255,e.fillColor[1]=t.color.g/255,e.fillColor[2]=t.color.b/255,e.fillColor[3]=t.color.a,t.haloColor?(e.outlineColor[0]=t.haloColor.r/255,e.outlineColor[1]=t.haloColor.g/255,e.outlineColor[2]=t.haloColor.b/255,e.outlineColor[3]=t.haloColor.a):(e.outlineColor[0]=e.fillColor[0],e.outlineColor[1]=e.fillColor[1],e.outlineColor[2]=e.fillColor[2],e.outlineColor[3]=e.fillColor[3]),e.fillColor[3]*=t.fillOpacity,e.outlineColor[3]*=t.haloOpacity,e.fillColor[0]*=e.fillColor[3],e.fillColor[1]*=e.fillColor[3],e.fillColor[2]*=e.fillColor[3],e.outlineColor[0]*=e.outlineColor[3],e.outlineColor[1]*=e.outlineColor[3],e.outlineColor[2]*=e.outlineColor[3],e.outlineWidth=l.Fo.outlineWidth,e.outerHaloWidth=l.Fo.outerHaloWidth,e.innerHaloWidth=l.Fo.innerHaloWidth,e.outlinePosition=l.Fo.outlinePosition}(t,e);const i=e.outlinePosition-e.outlineWidth/2-e.outerHaloWidth,n=e.outlinePosition-e.outlineWidth/2,s=e.outlinePosition+e.outlineWidth/2,r=e.outlinePosition+e.outlineWidth/2+e.innerHaloWidth,o=Math.sqrt(Math.PI/2)*l.pW,h=Math.abs(i)>o?Math.round(10*(Math.abs(i)-o))/10:0,a=Math.abs(r)>o?Math.round(10*(Math.abs(r)-o))/10:0;let c;h&&!a?u().error("The outer rim of the highlight is "+h+"px away from the edge of the feature; consider reducing some width values or shifting the outline position towards positive values (inwards)."):!h&&a?u().error("The inner rim of the highlight is "+a+"px away from the edge of the feature; consider reducing some width values or shifting the outline position towards negative values (outwards)."):h&&a&&u().error("The highlight is "+Math.max(h,a)+"px away from the edge of the feature; consider reducing some width values.");const d=[void 0,void 0,void 0,void 0];function p(t,e,i){d[0]=(1-i)*t[0]+i*e[0],d[1]=(1-i)*t[1]+i*e[1],d[2]=(1-i)*t[2]+i*e[2],d[3]=(1-i)*t[3]+i*e[3]}const{_texelData:g}=this;for(let t=0;t270||"auto"!=i?(this._display.angle=s,this._flipped=!1):(this._display.angle=s+180,this._flipped=!0),this._dirty.rotation=!1):"adjusted"==e?(this.setRaw("centerX",r.p),this.setRaw("centerY",r.p),this.setRaw("x",t),this.setRaw("y",c)):"regular"==e&&(this.setRaw("x",t),this.setRaw("y",c))}this.markDirtyPosition(),this.markDirtyBounds()}}_updatePosition(){const e=this.get("textType","regular"),t=this.get("inside",!1);let i=0,s=0,a=this.get("labelAngle",0),l=this.localBounds(),n=l.right-l.left,o=l.bottom-l.top;if("radial"==e){if(this._flipped){let e=this.get("centerX");e instanceof r.P&&(n*=1-2*e.value),i=n*(0,r.A)(a),s=n*(0,r.z)(a)}}else t||"adjusted"!=e||(i=n/2*(0,r.A)(a),s=o/2*(0,r.z)(a));this.setRaw("dx",i),this.setRaw("dy",s),super._updatePosition()}get text(){return this._text}}Object.defineProperty(c,"className",{enumerable:!0,configurable:!0,writable:!0,value:"RadialLabel"}),Object.defineProperty(c,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:r.L.classNames.concat([c.className])});const h=Math.abs,u=Math.atan2,d=Math.cos,p=Math.max,g=Math.min,y=Math.sin,b=Math.sqrt,f=1e-12,m=Math.PI,_=m/2,x=2*m;function v(e){return e>=1?_:e<=-1?-_:Math.asin(e)}function w(e){return e.innerRadius}function k(e){return e.outerRadius}function A(e){return e.startAngle}function D(e){return e.endAngle}function R(e){return e&&e.padAngle}function P(e,t,i,s,a,r,l){var n=e-i,o=t-s,c=(l?r:-r)/b(n*n+o*o),h=c*o,u=-c*n,d=e+h,g=t+u,y=i+h,f=s+u,m=(d+y)/2,_=(g+f)/2,x=y-d,v=f-g,w=x*x+v*v,k=a-r,A=d*f-y*g,D=(v<0?-1:1)*b(p(0,k*k*w-A*A)),R=(A*v-x*D)/w,P=(-A*x-v*D)/w,T=(A*v+x*D)/w,L=(-A*x+v*D)/w,N=R-m,C=P-_,S=T-m,j=L-_;return N*N+C*C>S*S+j*j&&(R=T,P=L),{cx:R,cy:P,x01:-h,y01:-u,x11:R*(a/k-1),y11:P*(a/k-1)}}function T(){var e=w,t=k,i=(0,a.c)(0),s=null,r=A,l=D,n=R,o=null,c=(0,a.w)(p);function p(){var a,p,w=+e.apply(this,arguments),k=+t.apply(this,arguments),A=r.apply(this,arguments)-_,D=l.apply(this,arguments)-_,R=h(D-A),T=D>A;if(o||(o=a=c()),kf)if(R>x-f)o.moveTo(k*d(A),k*y(A)),o.arc(0,0,k,A,D,!T),w>f&&(o.moveTo(w*d(D),w*y(D)),o.arc(0,0,w,D,A,T));else{var L,N,C=A,S=D,j=A,O=D,I=R,M=R,B=n.apply(this,arguments)/2,z=B>f&&(s?+s.apply(this,arguments):b(w*w+k*k)),F=g(h(k-w)/2,+i.apply(this,arguments)),H=F,X=F;if(z>f){var Y=v(z/w*y(B)),V=v(z/k*y(B));(I-=2*Y)>f?(j+=Y*=T?1:-1,O-=Y):(I=0,j=O=(A+D)/2),(M-=2*V)>f?(C+=V*=T?1:-1,S-=V):(M=0,C=S=(A+D)/2)}var W=k*d(C),U=k*y(C),q=w*d(O),K=w*y(O);if(F>f){var E,G=k*d(S),J=k*y(S),Q=w*d(j),Z=w*y(j);if(R1?0:e<-1?m:Math.acos(e)}(($*te+ee*ie)/(b($*$+ee*ee)*b(te*te+ie*ie)))/2),ae=b(E[0]*E[0]+E[1]*E[1]);H=g(F,(w-ae)/(se-1)),X=g(F,(k-ae)/(se+1))}else H=X=0}M>f?X>f?(L=P(Q,Z,W,U,k,X,T),N=P(G,J,q,K,k,X,T),o.moveTo(L.cx+L.x01,L.cy+L.y01),Xf&&I>f?H>f?(L=P(q,K,G,J,w,-H,T),N=P(W,U,Q,Z,w,-H,T),o.lineTo(L.cx+L.x01,L.cy+L.y01),H=360&&0==l&&(i=0,s=0),{x:i,y:s}}_beforeChanged(){super._beforeChanged(),(this.isDirty("radius")||this.isDirty("arc")||this.isDirty("innerRadius")||this.isDirty("startAngle")||this.isDirty("dRadius")||this.isDirty("dInnerRadius")||this.isDirty("cornerRadius")||this.isDirty("shiftRadius"))&&(this._clear=!0)}_changed(){if(super._changed(),this._clear){let e=this.get("startAngle",0),t=this.get("arc",0);const i=this._generator;t<0&&(e+=t,t*=-1),t>.1&&i.cornerRadius(this.get("cornerRadius",0)),i.context(this._display);let s=this.get("radius",0),a=this.get("innerRadius",0);s+=this.get("dRadius",0),a+=this.get("dInnerRadius",0),a<0&&(a=s+a),i({innerRadius:a,outerRadius:s,startAngle:(e+90)*r.x,endAngle:(e+t+90)*r.x});let l=e+t/2;this.ix=(0,r.A)(l),this.iy=(0,r.z)(l);const n=this.get("shiftRadius",0);this.setRaw("dx",this.ix*n),this.setRaw("dy",this.iy*n),this.markDirtyPosition()}}}Object.defineProperty(L,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Slice"}),Object.defineProperty(L,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:r.e.classNames.concat([L.className])});class N extends r.T{setupDefaultRules(){super.setupDefaultRules();const e=this._root.interfaceColors,t=this.rule.bind(this);t("PercentSeries").setAll({legendLabelText:"{category}",legendValueText:"{valuePercentTotal.formatNumber('0.00p')}",colors:l.C.new(this._root,{}),width:r.a,height:r.a}),t("PieChart").setAll({radius:(0,r.j)(80),startAngle:-90,endAngle:270}),t("PieSeries").setAll({alignLabels:!0,startAngle:-90,endAngle:270}),t("PieSeries").states.create("hidden",{endAngle:-90,opacity:0}),t("Slice",["pie"]).setAll({position:"absolute",isMeasured:!1,x:0,y:0,toggleKey:"active",tooltipText:"{category}: {valuePercentTotal.formatNumber('0.00p')}",strokeWidth:1,strokeOpacity:1,role:"figure",lineJoin:"round"}),t("Slice",["pie"]).states.create("active",{shiftRadius:20,scale:1}),t("Slice",["pie"]).states.create("hoverActive",{scale:1.04}),t("Slice",["pie"]).states.create("hover",{scale:1.04}),t("RadialLabel",["pie"]).setAll({textType:"aligned",radius:10,text:"{category}: {valuePercentTotal.formatNumber('0.00p')}",paddingTop:5,paddingBottom:5,populateText:!0}),t("Tick",["pie"]).setAll({location:1}),t("SlicedChart").setAll({paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10}),t("FunnelSeries").setAll({startLocation:0,endLocation:1,orientation:"vertical",alignLabels:!0,sequencedInterpolation:!0}),t("FunnelSlice").setAll({interactive:!0,expandDistance:0}),t("FunnelSlice").states.create("hover",{expandDistance:.15}),t("Label",["funnel"]).setAll({populateText:!0,text:"{category}: {valuePercentTotal.formatNumber('0.00p')}",centerY:r.p}),t("Label",["funnel","horizontal"]).setAll({centerX:0,centerY:r.p,rotation:-90}),t("Label",["funnel","vertical"]).setAll({centerY:r.p,centerX:0}),t("Tick",["funnel"]).setAll({location:1}),t("FunnelSlice",["funnel","link"]).setAll({fillOpacity:.5,strokeOpacity:0,expandDistance:-.1}),t("FunnelSlice",["funnel","link","vertical"]).setAll({height:10}),t("FunnelSlice",["funnel","link","horizontal"]).setAll({width:10}),t("PyramidSeries").setAll({valueIs:"area"}),t("FunnelSlice",["pyramid","link"]).setAll({fillOpacity:.5}),t("FunnelSlice",["pyramid","link","vertical"]).setAll({height:0}),t("FunnelSlice",["pyramid","link","horizontal"]).setAll({width:0}),t("FunnelSlice",["pyramid"]).setAll({interactive:!0,expandDistance:0}),t("FunnelSlice",["pyramid"]).states.create("hover",{expandDistance:.15}),t("Label",["pyramid"]).setAll({populateText:!0,text:"{category}: {valuePercentTotal.formatNumber('0.00p')}",centerY:r.p}),t("Label",["pyramid","horizontal"]).setAll({centerX:0,centerY:r.p,rotation:-90}),t("Label",["pyramid","vertical"]).setAll({centerY:r.p,centerX:0}),t("Tick",["pyramid"]).setAll({location:1}),t("FunnelSlice",["pictorial"]).setAll({interactive:!0,tooltipText:"{category}: {valuePercentTotal.formatNumber('0.00p')}"}),t("Label",["pictorial"]).setAll({populateText:!0,text:"{category}: {valuePercentTotal.formatNumber('0.00p')}",centerY:r.p}),t("Label",["pictorial","horizontal"]).setAll({centerX:0,centerY:r.p,rotation:-90}),t("Label",["pictorial","vertical"]).setAll({centerY:r.p,centerX:0}),t("FunnelSlice",["pictorial","link"]).setAll({fillOpacity:.5,width:0,height:0}),t("Tick",["pictorial"]).setAll({location:.5});{const i=t("Graphics",["pictorial","background"]);i.setAll({fillOpacity:.2}),(0,n.s)(i,"fill",e,"alternativeBackground")}}}class C extends a.S{_afterNew(){this._defaultThemes.push(N.new(this._root)),super._afterNew(),this.chartContainer.children.push(this.seriesContainer),this.seriesContainer.children.push(this.bulletsContainer)}_processSeries(e){super._processSeries(e),this.seriesContainer.children.moveValue(this.bulletsContainer,this.seriesContainer.children.length-1)}}Object.defineProperty(C,"className",{enumerable:!0,configurable:!0,writable:!0,value:"PercentChart"}),Object.defineProperty(C,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:a.S.classNames.concat([C.className])});class S extends a.a{constructor(){super(...arguments),Object.defineProperty(this,"slicesContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(r.g.new(this._root,{position:"absolute",isMeasured:!1}))}),Object.defineProperty(this,"labelsContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(r.g.new(this._root,{position:"absolute",isMeasured:!1}))}),Object.defineProperty(this,"ticksContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(r.g.new(this._root,{position:"absolute",isMeasured:!1}))}),Object.defineProperty(this,"_lLabels",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_rLabels",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_hLabels",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"slices",{enumerable:!0,configurable:!0,writable:!0,value:this._makeSlices()}),Object.defineProperty(this,"labels",{enumerable:!0,configurable:!0,writable:!0,value:this._makeLabels()}),Object.defineProperty(this,"ticks",{enumerable:!0,configurable:!0,writable:!0,value:this._makeTicks()})}makeSlice(e){const t=this.slicesContainer.children.push(this.slices.make());return t.on("fill",(()=>{this.updateLegendMarker(e)})),t.on("stroke",(()=>{this.updateLegendMarker(e)})),t._setDataItem(e),e.set("slice",t),this.slices.push(t),t}makeLabel(e){const t=this.labelsContainer.children.push(this.labels.make());return t._setDataItem(e),e.set("label",t),this.labels.push(t),t}_shouldMakeBullet(e){return null!=e.get("value")}makeTick(e){const t=this.ticksContainer.children.push(this.ticks.make());return t._setDataItem(e),e.set("tick",t),this.ticks.push(t),t}_afterNew(){this.fields.push("category","fill"),super._afterNew()}_onDataClear(){const e=this.get("colors");e&&e.reset()}_prepareChildren(){if(super._prepareChildren(),this._lLabels=[],this._rLabels=[],this._hLabels=[],this._valuesDirty){let e=0,t=0,i=0,s=1/0,a=0;(0,r.i)(this._dataItems,(i=>{let s=i.get("valueWorking",0);e+=s,t+=Math.abs(s)})),(0,r.i)(this._dataItems,(e=>{let r=e.get("valueWorking",0);r>i&&(i=r),rsuper.show}});return(0,s.b)(this,void 0,void 0,(function*(){let i=[];i.push(t.show.call(this,e)),i.push(this._sequencedShowHide(!0,e)),yield Promise.all(i)}))}hide(e){const t=Object.create(null,{hide:{get:()=>super.hide}});return(0,s.b)(this,void 0,void 0,(function*(){let i=[];i.push(t.hide.call(this,e)),i.push(this._sequencedShowHide(!1,e)),yield Promise.all(i)}))}_updateChildren(){super._updateChildren(),this._valuesDirty&&(0,r.i)(this._dataItems,(e=>{e.get("label").text.markDirtyText()})),(this.isDirty("legendLabelText")||this.isDirty("legendValueText"))&&(0,r.i)(this._dataItems,(e=>{this.updateLegendValue(e)})),this._arrange()}_arrange(){this._arrangeDown(this._lLabels),this._arrangeUp(this._lLabels),this._arrangeDown(this._rLabels),this._arrangeUp(this._rLabels),this._arrangeLeft(this._hLabels),this._arrangeRight(this._hLabels),(0,r.i)(this.dataItems,(e=>{this._updateTick(e)}))}_afterChanged(){super._afterChanged(),this._arrange()}processDataItem(e){if(super.processDataItem(e),null==e.get("fill")){let t=this.get("colors");t&&e.setRaw("fill",t.next())}}showDataItem(e,t){const i=Object.create(null,{showDataItem:{get:()=>super.showDataItem}});return(0,s.b)(this,void 0,void 0,(function*(){const s=[i.showDataItem.call(this,e,t)];(0,r.k)(t)||(t=this.get("stateAnimationDuration",0));const a=this.get("stateAnimationEasing");let l=e.get("value");const n=e.animate({key:"valueWorking",to:l,duration:t,easing:a});n&&s.push(n.waitForStop());const o=e.get("tick");o&&s.push(o.show(t));const c=e.get("label");c&&s.push(c.show(t));const h=e.get("slice");h&&s.push(h.show(t)),h.get("active")&&h.states.applyAnimate("active"),yield Promise.all(s)}))}hideDataItem(e,t){const i=Object.create(null,{hideDataItem:{get:()=>super.hideDataItem}});return(0,s.b)(this,void 0,void 0,(function*(){const s=[i.hideDataItem.call(this,e,t)],a=this.states.create("hidden",{});(0,r.k)(t)||(t=a.get("stateAnimationDuration",this.get("stateAnimationDuration",0)));const l=a.get("stateAnimationEasing",this.get("stateAnimationEasing")),n=e.animate({key:"valueWorking",to:0,duration:t,easing:l});n&&s.push(n.waitForStop());const o=e.get("tick");o&&s.push(o.hide(t));const c=e.get("label");c&&s.push(c.hide(t));const h=e.get("slice");h.hideTooltip(),h&&s.push(h.hide(t)),yield Promise.all(s)}))}disposeDataItem(e){super.disposeDataItem(e);let t=e.get("label");t&&(this.labels.removeValue(t),t.dispose());let i=e.get("tick");i&&(this.ticks.removeValue(i),i.dispose());let s=e.get("slice");s&&(this.slices.removeValue(s),s.dispose())}hoverDataItem(e){const t=e.get("slice");t&&!t.isHidden()&&t.hover()}unhoverDataItem(e){const t=e.get("slice");t&&t.unhover()}updateLegendMarker(e){if(e){const t=e.get("slice");if(t){const i=e.get("legendDataItem");if(i){const e=i.get("markerRectangle");(0,r.i)(r.v,(i=>{null!=t.get(i)&&e.set(i,t.get(i))}))}}}}_arrangeDown(e){if(e){let t=this._getNextDown();e.sort(((e,t)=>e.y>t.y?1:e.y{const i=e.label.adjustedLocalBounds();let s=i.top;e.y+se.yt.y?-1:0)),(0,r.i)(e,(e=>{const i=e.label.adjustedLocalBounds();let s=i.bottom;e.y+s>t&&(e.y=t-s),e.label.set("y",e.y),t=e.y+i.top}))}}_arrangeRight(e){if(e){let t=0;e.sort(((e,t)=>e.y>t.y?1:e.y{const i=e.label.adjustedLocalBounds();let s=i.left;e.y+se.yt.y?-1:0)),(0,r.i)(e,(e=>{const i=e.label.adjustedLocalBounds();let s=i.right;e.y+s>t&&(e.y=t-s),e.label.set("x",e.y),t=e.y+i.left}))}}_updateSize(){super._updateSize(),this.markDirty()}_updateTick(e){}_dispose(){super._dispose();const e=this.chart;e&&e.series.removeValue(this)}}Object.defineProperty(S,"className",{enumerable:!0,configurable:!0,writable:!0,value:"PercentSeries"}),Object.defineProperty(S,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:a.a.classNames.concat([S.className])});class j extends C{constructor(){super(...arguments),Object.defineProperty(this,"_maxRadius",{enumerable:!0,configurable:!0,writable:!0,value:1})}_afterNew(){super._afterNew(),this.seriesContainer.setAll({x:r.p,y:r.p})}_prepareChildren(){super._prepareChildren();const e=this.chartContainer,t=e.innerWidth(),i=e.innerHeight(),s=this.get("startAngle",0),a=this.get("endAngle",0),l=this.get("innerRadius");let n=(0,r.B)(0,0,s,a,1);const o=t/(n.right-n.left),c=i/(n.bottom-n.top);let h={left:0,right:0,top:0,bottom:0};if(l instanceof r.P){let e=l.value,n=Math.min(o,c);e=Math.max(n*e,n-Math.min(i,t))/n,h=(0,r.B)(0,0,s,a,e),this.setPrivateRaw("irModifyer",e/l.value)}n=(0,r.D)([n,h]);const u=this._maxRadius;this._maxRadius=Math.min(o,c);const d=(0,r.l)(this.get("radius",0),this._maxRadius);this.seriesContainer.setAll({dy:-d*(n.bottom+n.top)/2,dx:-d*(n.right+n.left)/2}),(this.isDirty("startAngle")||this.isDirty("endAngle")||u!=this._maxRadius)&&this.series.each((e=>{e._markDirtyKey("startAngle")})),(this.isDirty("innerRadius")||this.isDirty("radius"))&&this.series.each((e=>{e._markDirtyKey("innerRadius")}))}radius(e){let t=(0,r.l)(this.get("radius",0),this._maxRadius),i=(0,r.l)(this.get("innerRadius",0),t);if(e){let s=this.series.indexOf(e),a=this.series.length,l=e.get("radius");return null!=l?i+(0,r.l)(l,t-i):i+(t-i)/a*(s+1)}return t}innerRadius(e){const t=this.radius();let i=(0,r.l)(this.get("innerRadius",0),t);if(i<0&&(i=t+i),e){let s=this.series.indexOf(e),a=this.series.length,l=e.get("innerRadius");return null!=l?i+(0,r.l)(l,t-i):i+(t-i)/a*s}return i}}Object.defineProperty(j,"className",{enumerable:!0,configurable:!0,writable:!0,value:"PieChart"}),Object.defineProperty(j,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:C.classNames.concat([j.className])});class O extends S{_makeSlices(){return new r.t(r.u.new({}),(()=>L._new(this._root,{themeTags:(0,r.m)(this.slices.template.get("themeTags",[]),["pie","series"])},[this.slices.template])))}_makeLabels(){return new r.t(r.u.new({}),(()=>c._new(this._root,{themeTags:(0,r.m)(this.labels.template.get("themeTags",[]),["pie","series"])},[this.labels.template])))}_makeTicks(){return new r.t(r.u.new({}),(()=>a.T._new(this._root,{themeTags:(0,r.m)(this.ticks.template.get("themeTags",[]),["pie","series"])},[this.ticks.template])))}processDataItem(e){super.processDataItem(e);const t=this.makeSlice(e);t.on("scale",(()=>{this._updateTick(e)})),t.on("shiftRadius",(()=>{this._updateTick(e)})),t.events.on("positionchanged",(()=>{this._updateTick(e)}));const i=this.makeLabel(e);i.events.on("positionchanged",(()=>{this._updateTick(e)})),this.makeTick(e),t.events.on("positionchanged",(()=>{i.markDirty()}))}_getNextUp(){const e=this.chart;return e?e._maxRadius:this.labelsContainer.maxHeight()/2}_getNextDown(){const e=this.chart;return e?-e._maxRadius:-this.labelsContainer.maxHeight()/2}_prepareChildren(){super._prepareChildren();const e=this.chart;if(e){if(this.isDirty("alignLabels")){let e=this.labels.template;if(this.get("alignLabels"))e.set("textType","aligned");else{let t=e.get("textType");null!=t&&"aligned"!=t||e.set("textType","adjusted")}}if(this._valuesDirty||this.isDirty("radius")||this.isDirty("innerRadius")||this.isDirty("startAngle")||this.isDirty("endAngle")||this.isDirty("alignLabels")){this.markDirtyBounds();const t=this.get("startAngle",e.get("startAngle",-90)),i=this.get("endAngle",e.get("endAngle",270))-t;let s=t;const a=e.radius(this);this.setPrivateRaw("radius",a);let l=e.innerRadius(this)*e.getPrivate("irModifyer",1);l<0&&(l=a+l),(0,r.i)(this._dataItems,(e=>{this.updateLegendValue(e);let t=i*e.get("valuePercentTotal")/100;const n=e.get("slice");if(n){n.set("radius",a),n.set("innerRadius",l),n.set("startAngle",s),n.set("arc",t);const i=e.get("fill");n._setDefault("fill",i),n._setDefault("stroke",i)}let o=(0,r.y)(s+t/2);const c=e.get("label");if(c&&(c.setPrivate("radius",a),c.setPrivate("innerRadius",l),c.set("labelAngle",o),"aligned"==c.get("textType"))){let e=a+c.get("radius",0),t=a*(0,r.z)(o);o>90&&o<=270?(c.isHidden()||c.isHiding()||this._lLabels.push({label:c,y:t}),e*=-1,e-=this.labelsContainer.get("paddingLeft",0),c.set("centerX",r.a),c.setPrivateRaw("left",!0)):(c.isHidden()||c.isHiding()||this._rLabels.push({label:c,y:t}),e+=this.labelsContainer.get("paddingRight",0),c.set("centerX",0),c.setPrivateRaw("left",!1)),c.set("x",e),c.set("y",a*(0,r.z)(o))}s+=t,this._updateTick(e)}))}}}_updateTick(e){const t=e.get("tick"),i=e.get("label"),s=e.get("slice"),a=t.get("location",1);if(t&&i&&s){const e=(s.get("shiftRadius",0)+s.get("radius",0))*s.get("scale",1)*a,l=i.get("labelAngle",0),n=(0,r.A)(l),o=(0,r.z)(l),c=this.labelsContainer,h=c.get("paddingLeft",0),u=c.get("paddingRight",0);let d=0,p=0;d=i.x(),p=i.y();let g=[];if(0!=d&&0!=p){if("circular"==i.get("textType")){const e=i.radius()-i.get("paddingBottom",0),t=i.get("labelAngle",0);d=e*(0,r.A)(t),p=e*(0,r.z)(t)}let t=-u;i.getPrivate("left")&&(t=h),g=[{x:s.x()+e*n,y:s.y()+e*o},{x:d+t,y:p},{x:d,y:p}]}t.set("points",g)}}_positionBullet(e){const t=e.get("sprite");if(t){const i=t.dataItem.get("slice");if(i){const s=i.get("innerRadius",0),a=i.get("radius",0),l=i.get("startAngle",0)+i.get("arc",0)*e.get("locationX",.5),n=s+(a-s)*e.get("locationY",.5);t.setAll({x:(0,r.A)(l)*n,y:(0,r.z)(l)*n})}}}}Object.defineProperty(O,"className",{enumerable:!0,configurable:!0,writable:!0,value:"PieSeries"}),Object.defineProperty(O,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:S.classNames.concat([O.className])})}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5320.73664f410779311b1c47.js b/docs/sentinel1-explorer/5320.73664f410779311b1c47.js new file mode 100644 index 00000000..d4a5793e --- /dev/null +++ b/docs/sentinel1-explorer/5320.73664f410779311b1c47.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5320],{35320:function(s,e,r){r.r(e),r.d(e,{deleteForwardEdits:function(){return o}});var t=r(66341),i=r(70375),n=r(84238);async function o(s,e,r,o){if(!e)throw new i.Z("post:missing-guid","guid for version is missing");const a=(0,n.en)(s),u=r.toJSON(),c=(0,n.lA)(a.query,{query:(0,n.cv)({...u,f:"json"}),...o,method:"post"});e.startsWith("{")&&(e=e.slice(1,-1));const p=`${a.path}/versions/${e}/deleteForwardEdits`,{data:d}=await(0,t.Z)(p,c);return d.success}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5371.f226b86c7fcc35537c22.js b/docs/sentinel1-explorer/5371.f226b86c7fcc35537c22.js new file mode 100644 index 00000000..5c84282f --- /dev/null +++ b/docs/sentinel1-explorer/5371.f226b86c7fcc35537c22.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5371],{5371:function(e,t,o){o.r(t),o.d(t,{queryAssociations:function(){return I}});var r=o(66341),n=o(59801),s=o(13802),i=o(5029),l=o(84238),a=o(36663),p=o(82064),u=o(81977),d=(o(39994),o(4157),o(40266)),m=o(49526);let c=class extends p.wq{constructor(e){super(e),this.associations=[]}};(0,a._)([(0,u.Cb)({type:[m.Z],json:{write:!0}})],c.prototype,"associations",void 0),c=(0,a._)([(0,d.j)("esri.rest.networks.support.QueryAssociationsResult")],c);const y=c;function w(e){const{returnDeletes:t,elements:o,gdbVersion:r,moment:n}=e.toJSON();return{returnDeletes:t,elements:JSON.stringify(o.map((e=>({globalId:e.globalId,networkSourceId:e.networkSourceId,terminalId:e.terminalId})))),types:JSON.stringify(e.types.map((e=>i.By.toJSON(e)))).replaceAll('"connectivity"','"junctionJunctionConnectivity"'),gdbVersion:r,moment:n}}async function I(e,t,o){const i=(0,l.en)(e),a={...w(t),f:"json"},p=(0,l.cv)({...i.query,...a}),u=(0,l.lA)(p,{...o,method:"post"}),d=`${i.path}/associations/query`,{data:m}=await(0,r.Z)(d,u),c=y.fromJSON(m);return t.types.includes("connectivity")&&(0,n.Mr)(s.Z.getLogger("esri/rest/networks/support/QueryAssociationsParameters"),"types",{replacement:"Please use 'junction-junction-connectivity' instead of 'connectivity'.",see:"https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-networks-support-QueryAssociationsParameters.html#types",version:"4.29",warnOnce:!0}),c}},49526:function(e,t,o){o.d(t,{Z:function(){return c}});var r=o(36663),n=(o(91957),o(82064)),s=o(81977),i=(o(39994),o(13802),o(4157),o(34248)),l=o(40266),a=o(39835),p=o(5029),u=o(96776),d=o(90819);let m=class extends n.wq{constructor(e){super(e),this.globalId=null,this.associationType=null,this.fromNetworkElement=null,this.toNetworkElement=null,this.geometry=null,this.errorMessage=null,this.percentAlong=null,this.errorCode=null,this.isContentVisible=null,this.status=null}readFromNetworkElement(e,t){const o=new u.Z;return o.globalId=t.fromGlobalId,o.networkSourceId=t.fromNetworkSourceId,o.terminalId=t.fromTerminalId,o}writeFromNetworkElement(e,t){e&&(t.fromGlobalId=e.globalId,t.fromNetworkSourceId=e.networkSourceId,t.fromTerminalId=e.terminalId)}readToNetworkElement(e,t){const o=new u.Z;return o.globalId=t.toGlobalId,o.networkSourceId=t.toNetworkSourceId,o.terminalId=t.toTerminalId,o}writeToNetworkElement(e,t){e&&(t.toGlobalId=e.globalId,t.toNetworkSourceId=e.networkSourceId,t.toTerminalId=e.terminalId)}};(0,r._)([(0,s.Cb)({type:String,json:{write:!0}})],m.prototype,"globalId",void 0),(0,r._)([(0,s.Cb)({type:p.By.apiValues,json:{type:p.By.jsonValues,read:p.By.read,write:p.By.write}})],m.prototype,"associationType",void 0),(0,r._)([(0,s.Cb)({type:u.Z,json:{write:{target:{fromGlobalId:{type:String},fromNetworkSourceId:{type:Number},fromTerminalId:{type:Number}}},read:{source:["fromGlobalId","fromNetworkSourceId","fromTerminalId"]}}})],m.prototype,"fromNetworkElement",void 0),(0,r._)([(0,i.r)("fromNetworkElement")],m.prototype,"readFromNetworkElement",null),(0,r._)([(0,a.c)("fromNetworkElement")],m.prototype,"writeFromNetworkElement",null),(0,r._)([(0,s.Cb)({type:u.Z,json:{write:{target:{toGlobalId:{type:String},toNetworkSourceId:{type:Number},toTerminalId:{type:Number}}},read:{source:["toGlobalId","toNetworkSourceId","toTerminalId"]}}})],m.prototype,"toNetworkElement",void 0),(0,r._)([(0,i.r)("toNetworkElement")],m.prototype,"readToNetworkElement",null),(0,r._)([(0,a.c)("toNetworkElement")],m.prototype,"writeToNetworkElement",null),(0,r._)([(0,s.Cb)({type:d.Z,json:{write:!0}})],m.prototype,"geometry",void 0),(0,r._)([(0,s.Cb)({type:String,json:{write:!0}})],m.prototype,"errorMessage",void 0),(0,r._)([(0,s.Cb)({type:Number,json:{write:!0}})],m.prototype,"percentAlong",void 0),(0,r._)([(0,s.Cb)({type:Number,json:{write:!0}})],m.prototype,"errorCode",void 0),(0,r._)([(0,s.Cb)({type:Boolean,json:{write:!0}})],m.prototype,"isContentVisible",void 0),(0,r._)([(0,s.Cb)({type:Number,json:{write:!0}})],m.prototype,"status",void 0),m=(0,r._)([(0,l.j)("esri.rest.networks.support.Association")],m);const c=m}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5423.e9ba552360761f0951b2.js b/docs/sentinel1-explorer/5423.e9ba552360761f0951b2.js new file mode 100644 index 00000000..c2fbac29 --- /dev/null +++ b/docs/sentinel1-explorer/5423.e9ba552360761f0951b2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5423,5831],{12408:function(e,r,a){a.d(r,{L:function(){return n}});var t=a(40371);class n{constructor(){this._serviceMetadatas=new Map,this._itemDatas=new Map}async fetchServiceMetadata(e,r){const a=this._serviceMetadatas.get(e);if(a)return a;const n=await(0,t.T)(e,r);return this._serviceMetadatas.set(e,n),n}async fetchItemData(e){const{id:r}=e;if(!r)return null;const{_itemDatas:a}=this;if(a.has(r))return a.get(r);const t=await e.fetchData();return a.set(r,t),t}async fetchCustomParameters(e,r){const a=await this.fetchItemData(e);return a&&"object"==typeof a&&(r?r(a):a.customParameters)||null}}},53264:function(e,r,a){a.d(r,{w:function(){return y}});var t=a(88256),n=a(66341),i=a(70375),s=a(78668),c=a(20692),o=a(93968),l=a(53110);async function y(e,r){const a=(0,c.Qc)(e);if(!a)throw new i.Z("invalid-url","Invalid scene service url");const y={...r,sceneServerUrl:a.url.path,layerId:a.sublayer??void 0};if(y.sceneLayerItem??=await async function(e){const r=(await u(e)).serviceItemId;if(!r)return null;const a=new l.default({id:r,apiKey:e.apiKey}),i=await async function(e){const r=t.id?.findServerInfo(e.sceneServerUrl);if(r?.owningSystemUrl)return r.owningSystemUrl;const a=e.sceneServerUrl.replace(/(.*\/rest)\/.*/i,"$1")+"/info";try{const r=(await(0,n.Z)(a,{query:{f:"json"},responseType:"json",signal:e.signal})).data.owningSystemUrl;if(r)return r}catch(e){(0,s.r9)(e)}return null}(e);null!=i&&(a.portal=new o.Z({url:i}));try{return a.load({signal:e.signal})}catch(e){return(0,s.r9)(e),null}}(y),null==y.sceneLayerItem)return L(y.sceneServerUrl.replace("/SceneServer","/FeatureServer"),y);const f=await async function({sceneLayerItem:e,signal:r}){if(!e)return null;try{const a=(await e.fetchRelatedItems({relationshipType:"Service2Service",direction:"reverse"},{signal:r})).find((e=>"Feature Service"===e.type))||null;if(!a)return null;const t=new l.default({portal:a.portal,id:a.id});return await t.load(),t}catch(e){return(0,s.r9)(e),null}}(y);if(!f?.url)throw new i.Z("related-service-not-found","Could not find feature service through portal item relationship");y.featureServiceItem=f;const p=await L(f.url,y);return p.portalItem=f,p}async function u(e){if(e.rootDocument)return e.rootDocument;const r={query:{f:"json",...e.customParameters,token:e.apiKey},responseType:"json",signal:e.signal};try{const a=await(0,n.Z)(e.sceneServerUrl,r);e.rootDocument=a.data}catch{e.rootDocument={}}return e.rootDocument}async function L(e,r){const a=(0,c.Qc)(e);if(!a)throw new i.Z("invalid-feature-service-url","Invalid feature service url");const t=a.url.path,s=r.layerId;if(null==s)return{serverUrl:t};const o=u(r),l=r.featureServiceItem?await r.featureServiceItem.fetchData("json"):null,y=(l?.layers?.[0]||l?.tables?.[0])?.customParameters,L=e=>{const a={query:{f:"json",...y},responseType:"json",authMode:e,signal:r.signal};return(0,n.Z)(t,a)},f=L("anonymous").catch((()=>L("no-prompt"))),[p,d]=await Promise.all([f,o]),m=d?.layers,S=p.data&&p.data.layers;if(!Array.isArray(S))throw new Error("expected layers array");if(Array.isArray(m)){for(let e=0;easync function(e,r){return async function(e,r,a){const t=new e;return t.read(r,a.context),"group"===t.type&&("GroupLayer"===r.layerType?await b(t,r,a):T(r)?function(e,r,a){r.itemId&&(e.portalItem=new s.default({id:r.itemId,portal:a?.portal}),e.when((()=>{const t=t=>{const n=t.layerId;G(t,e,r,n,a);const i=r.featureCollection?.layers?.[n];i&&t.read(i,a)};e.layers?.forEach(t),e.tables?.forEach(t)})))}(t,r,a.context):h(r)&&await async function(e,r,a){const t=i.T.FeatureLayer,n=await t(),s=r.featureCollection,c=s?.showLegend,o=s?.layers?.map(((t,i)=>{const s=new n;s.read(t,a);const o={...a,ignoreDefaults:!0};return G(s,e,r,i,o),null!=c&&s.read({showLegend:c},o),s}));e.layers.addMany(o??[])}(t,r,a.context)),await(0,l.y)(t,a.context),t}(await v(e,r),e,r)}(e,a))),n=await Promise.allSettled(t);for(const r of n)"rejected"===r.status||r.value&&e.add(r.value)}const u={ArcGISDimensionLayer:"DimensionLayer",ArcGISFeatureLayer:"FeatureLayer",ArcGISImageServiceLayer:"ImageryLayer",ArcGISMapServiceLayer:"MapImageLayer",PointCloudLayer:"PointCloudLayer",ArcGISSceneServiceLayer:"SceneLayer",IntegratedMeshLayer:"IntegratedMeshLayer",OGCFeatureLayer:"OGCFeatureLayer",BuildingSceneLayer:"BuildingSceneLayer",ArcGISTiledElevationServiceLayer:"ElevationLayer",ArcGISTiledImageServiceLayer:"ImageryTileLayer",ArcGISTiledMapServiceLayer:"TileLayer",GroupLayer:"GroupLayer",GeoJSON:"GeoJSONLayer",WebTiledLayer:"WebTileLayer",CSV:"CSVLayer",VectorTileLayer:"VectorTileLayer",WFS:"WFSLayer",WMS:"WMSLayer",DefaultTileLayer:"TileLayer",IntegratedMesh3DTilesLayer:"IntegratedMesh3DTilesLayer",KML:"KMLLayer",RasterDataLayer:"UnsupportedLayer",Voxel:"VoxelLayer",LineOfSightLayer:"LineOfSightLayer"},L={ArcGISTiledElevationServiceLayer:"ElevationLayer",DefaultTileLayer:"ElevationLayer",RasterDataElevationLayer:"UnsupportedLayer"},f={ArcGISFeatureLayer:"FeatureLayer"},p={ArcGISTiledMapServiceLayer:"TileLayer",ArcGISTiledImageServiceLayer:"ImageryTileLayer",OpenStreetMap:"OpenStreetMapLayer",WebTiledLayer:"WebTileLayer",VectorTileLayer:"VectorTileLayer",ArcGISImageServiceLayer:"UnsupportedLayer",WMS:"UnsupportedLayer",ArcGISMapServiceLayer:"UnsupportedLayer",ArcGISSceneServiceLayer:"SceneLayer",DefaultTileLayer:"TileLayer"},d={ArcGISAnnotationLayer:"UnsupportedLayer",ArcGISDimensionLayer:"UnsupportedLayer",ArcGISFeatureLayer:"FeatureLayer",ArcGISImageServiceLayer:"ImageryLayer",ArcGISImageServiceVectorLayer:"ImageryLayer",ArcGISMapServiceLayer:"MapImageLayer",ArcGISStreamLayer:"StreamLayer",ArcGISTiledImageServiceLayer:"ImageryTileLayer",ArcGISTiledMapServiceLayer:"TileLayer",BingMapsAerial:"BingMapsLayer",BingMapsRoad:"BingMapsLayer",BingMapsHybrid:"BingMapsLayer",CatalogLayer:"CatalogLayer",CSV:"CSVLayer",DefaultTileLayer:"TileLayer",GeoRSS:"GeoRSSLayer",GeoJSON:"GeoJSONLayer",GroupLayer:"GroupLayer",KML:"KMLLayer",KnowledgeGraphLayer:"UnsupportedLayer",MediaLayer:"MediaLayer",OGCFeatureLayer:"OGCFeatureLayer",OrientedImageryLayer:"OrientedImageryLayer",SubtypeGroupLayer:"SubtypeGroupLayer",VectorTileLayer:"VectorTileLayer",WFS:"WFSLayer",WMS:"WMSLayer",WebTiledLayer:"WebTileLayer"},m={ArcGISFeatureLayer:"FeatureLayer",SubtypeGroupTable:"UnsupportedLayer"},S={ArcGISImageServiceLayer:"ImageryLayer",ArcGISImageServiceVectorLayer:"ImageryLayer",ArcGISMapServiceLayer:"MapImageLayer",ArcGISTiledImageServiceLayer:"ImageryTileLayer",ArcGISTiledMapServiceLayer:"TileLayer",OpenStreetMap:"OpenStreetMapLayer",VectorTileLayer:"VectorTileLayer",WebTiledLayer:"WebTileLayer",BingMapsAerial:"BingMapsLayer",BingMapsRoad:"BingMapsLayer",BingMapsHybrid:"BingMapsLayer",WMS:"WMSLayer",DefaultTileLayer:"TileLayer"},I={...d,LinkChartLayer:"LinkChartLayer"},w={...m},g={...S};async function v(e,r){const a=r.context,t=M(a);let l=e.layerType||e.type;!l&&r?.defaultLayerType&&(l=r.defaultLayerType);const y=t[l];let u=y?i.T[y]:i.T.UnknownLayer;if(T(e)){const r=a?.portal;if(e.itemId){const a=new s.default({id:e.itemId,portal:r});await a.load();const t=(await(0,o.v)(a,new n.L)).className||"UnknownLayer";u=i.T[t]}}else"ArcGISFeatureLayer"===l?function(e){return c(e,"notes")}(e)||function(e){return c(e,"markup")}(e)?u=i.T.MapNotesLayer:function(e){return c(e,"route")}(e)?u=i.T.RouteLayer:h(e)&&(u=i.T.GroupLayer):e.wmtsInfo?.url&&e.wmtsInfo.layerIdentifier?u=i.T.WMTSLayer:"WFS"===l&&"2.0.0"!==e.wfsInfo?.version&&(u=i.T.UnsupportedLayer);return u()}function h(e){return"ArcGISFeatureLayer"===e.layerType&&!T(e)&&(e.featureCollection?.layers?.length??0)>1}function T(e){return"Feature Collection"===e.type}function M(e){let r;switch(e.origin){case"web-scene":switch(e.layerContainerType){case"basemap":r=p;break;case"ground":r=L;break;case"tables":r=f;break;default:r=u}break;case"link-chart":switch(e.layerContainerType){case"basemap":r=g;break;case"tables":r=w;break;default:r=I}break;default:switch(e.layerContainerType){case"basemap":r=S;break;case"tables":r=m;break;default:r=d}}return r}async function b(e,r,a){const n=new t.Z,i=y(n,Array.isArray(r.layers)?r.layers:[],a);try{try{if(await i,"group"===e.type)return e.layers.addMany(n),e}catch(r){e.destroy();for(const e of n)e.destroy();throw r}}catch(e){throw e}}function G(e,r,a,t,n){e.read({id:`${r.id}-sublayer-${t}`,visibility:a.visibleLayers?.includes(t)??!0},n)}},91362:function(e,r,a){a.d(r,{$O:function(){return i},CD:function(){return L},H2:function(){return u},Ok:function(){return s},Q4:function(){return o},XX:function(){return l},_Y:function(){return y},bS:function(){return n},uE:function(){return c}});var t=a(53264);function n(e){const r={id:e.id,name:e.name};return"Oriented Imagery Layer"===e.type&&(r.layerType="OrientedImageryLayer"),r}async function i(e,r,a){if(null==e?.layers||null==e?.tables){const t=await a.fetchServiceMetadata(r,{customParameters:c(e)?.customParameters});(e=e||{}).layers=e.layers||t?.layers?.map(n),e.tables=e.tables||t?.tables?.map(n)}return e}function s(e){const{layers:r,tables:a}=e;return r?.length?r[0].id:a?.length?a[0].id:null}function c(e){if(!e)return null;const{layers:r,tables:a}=e;return r?.length?r[0]:a?.length?a[0]:null}function o(e){return(e?.layers?.length??0)+(e?.tables?.length??0)}function l(e){const r=[];return e?.layers?.forEach((e=>{"SubtypeGroupLayer"===e.layerType&&r.push(e.id)})),r}function y(e){return e?.layers?.filter((({layerType:e})=>"OrientedImageryLayer"===e)).map((({id:e})=>e))}function u(e){return e?.layers?.filter((({layerType:e})=>"CatalogLayer"===e)).map((({id:e})=>e))}async function L(e,r,a){if(!e?.url)return r??{};if(r??={},!r.layers){const t=await a.fetchServiceMetadata(e.url);r.layers=t.layers?.map(n)}const{serverUrl:i,portalItem:s}=await(0,t.w)(e.url,{sceneLayerItem:e,customParameters:c(r)?.customParameters}).catch((()=>({serverUrl:null,portalItem:null})));if(null==i)return r.tables=[],r;if(!r.tables&&s){const e=await s.fetchData();if(e?.tables)r.tables=e.tables.map(n);else{const t=await a.fetchServiceMetadata(i,{customParameters:c(e)?.customParameters});r.tables=t?.tables?.map(n)}}if(r.tables)for(const e of r.tables)e.url=`${i}/${e.id}`;return r}},55831:function(e,r,a){a.d(r,{fromItem:function(){return u},v:function(){return L}});var t=a(70375),n=a(53264),i=a(12408),s=a(54957),c=a(92557),o=a(53110),l=a(91362),y=a(31370);async function u(e){!e.portalItem||e.portalItem instanceof o.default||(e={...e,portalItem:new o.default(e.portalItem)});const r=await async function(e){await e.load();const r=new i.L;return async function(e){const r=e.className,a=c.T[r];return{constructor:await a(),properties:e.properties}}(await L(e,r))}(e.portalItem);return new(0,r.constructor)({portalItem:e.portalItem,...r.properties})}async function L(e,r){switch(e.type){case"3DTiles Service":return{className:"IntegratedMesh3DTilesLayer"};case"CSV":return{className:"CSVLayer"};case"Feature Collection":return async function(e){await e.load();const r=(0,y._$)(e,"Map Notes"),a=(0,y._$)(e,"Markup");if(r||a)return{className:"MapNotesLayer"};if((0,y._$)(e,"Route Layer"))return{className:"RouteLayer"};const t=await e.fetchData();return 1===(0,l.Q4)(t)?{className:"FeatureLayer"}:{className:"GroupLayer"}}(e);case"Feature Service":return async function(e,r){const a=await f(e,r);if("object"==typeof a){const{sourceJSON:e,className:r}=a,t={sourceJSON:e};return null!=a.id&&(t.layerId=a.id),{className:r||"FeatureLayer",properties:t}}return{className:"GroupLayer"}}(e,r);case"Feed":case"Stream Service":return{className:"StreamLayer"};case"GeoJson":return{className:"GeoJSONLayer"};case"Group Layer":return{className:"GroupLayer"};case"Image Service":return async function(e,r){await e.load();const a=e.typeKeywords?.map((e=>e.toLowerCase()))??[];if(a.includes("elevation 3d layer"))return{className:"ElevationLayer"};if(a.includes("tiled imagery"))return{className:"ImageryTileLayer"};const t=await r.fetchItemData(e),n=t?.layerType;if("ArcGISTiledImageServiceLayer"===n)return{className:"ImageryTileLayer"};if("ArcGISImageServiceLayer"===n)return{className:"ImageryLayer"};const i=await r.fetchServiceMetadata(e.url,{customParameters:await r.fetchCustomParameters(e)}),s=i.cacheType?.toLowerCase(),c=i.capabilities?.toLowerCase().includes("tilesonly");return"map"===s||c?{className:"ImageryTileLayer"}:{className:"ImageryLayer"}}(e,r);case"KML":return{className:"KMLLayer"};case"Map Service":return async function(e,r){return await async function(e,r){const{tileInfo:a}=await r.fetchServiceMetadata(e.url,{customParameters:await r.fetchCustomParameters(e)});return a}(e,r)?{className:"TileLayer"}:{className:"MapImageLayer"}}(e,r);case"Media Layer":return{className:"MediaLayer"};case"Scene Service":return async function(e,r){const a=await f(e,r,(async()=>{try{if(!e.url)return[];const{serverUrl:a}=await(0,n.w)(e.url,{sceneLayerItem:e}),t=await r.fetchServiceMetadata(a);return t?.tables??[]}catch{return[]}}));if("object"==typeof a){const t={};let n;if(null!=a.id?(t.layerId=a.id,n=`${e.url}/layers/${a.id}`):n=e.url,e.typeKeywords?.length)for(const r of Object.keys(s.fb))if(e.typeKeywords.includes(r))return{className:s.fb[r]};const i=await r.fetchServiceMetadata(n,{customParameters:await r.fetchCustomParameters(e,(e=>(0,l.uE)(e)?.customParameters))});return{className:s.fb[i?.layerType]||"SceneLayer",properties:t}}if(!1===a){const a=await r.fetchServiceMetadata(e.url);if("Voxel"===a?.layerType)return{className:"VoxelLayer"}}return{className:"GroupLayer"}}(e,r);case"Vector Tile Service":return{className:"VectorTileLayer"};case"WFS":return{className:"WFSLayer"};case"WMS":return{className:"WMSLayer"};case"WMTS":return{className:"WMTSLayer"};default:throw new t.Z("portal:unknown-item-type","Unknown item type '${type}'",{type:e.type})}}async function f(e,r,a){const{url:t,type:n}=e,i="Feature Service"===n;if(!t)return{};if(/\/\d+$/.test(t)){if(i){const a=await r.fetchServiceMetadata(t,{customParameters:await r.fetchCustomParameters(e,(e=>(0,l.uE)(e)?.customParameters))});if("Oriented Imagery Layer"===a.type)return{id:a.id,className:"OrientedImageryLayer",sourceJSON:a}}return{}}await e.load();let s=await r.fetchItemData(e);if(i){const e=await(0,l.$O)(s,t,r),a=p(e);if("object"==typeof a){const r=(0,l.XX)(e),t=(0,l._Y)(e),n=(0,l.H2)(e);a.className=null!=a.id&&r.includes(a.id)?"SubtypeGroupLayer":null!=a.id&&t?.includes(a.id)?"OrientedImageryLayer":null!=a.id&&n?.includes(a.id)?"CatalogLayer":"FeatureLayer"}return a}if("Scene Service"===n&&(s=await(0,l.CD)(e,s,r)),(0,l.Q4)(s)>0)return p(s);const c=await r.fetchServiceMetadata(t);return a&&(c.tables=await a()),p(c)}function p(e){return 1===(0,l.Q4)(e)&&{id:(0,l.Ok)(e)}}},40371:function(e,r,a){a.d(r,{T:function(){return n}});var t=a(66341);async function n(e,r){const{data:a}=await(0,t.Z)(e,{responseType:"json",query:{f:"json",...r?.customParameters,token:r?.apiKey}});return a}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/546.071b6d2d8fb1cca2ba4a.js b/docs/sentinel1-explorer/546.071b6d2d8fb1cca2ba4a.js new file mode 100644 index 00000000..3a2594ba --- /dev/null +++ b/docs/sentinel1-explorer/546.071b6d2d8fb1cca2ba4a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[546],{5992:function(e,t,n){n.d(t,{e:function(){return a}});var r,i,o,u=n(58340),s={exports:{}};r=s,i=function(){function e(e,n,i){i=i||2;var o,u,s,c,f,l,h,d=n&&n.length,p=d?n[0]*i:e.length,x=t(e,0,p,i,!0),y=[];if(!x||x.next===x.prev)return y;if(d&&(x=a(e,n,x,i)),e.length>80*i){o=s=e[0],u=c=e[1];for(var g=i;gs&&(s=f),l>c&&(c=l);h=0!==(h=Math.max(s-o,c-u))?1/h:0}return r(x,y,i,o,u,h),y}function t(e,t,n,r,i){var o,u;if(i===R(e,t,n,r)>0)for(o=t;o=t;o-=r)u=N(o,e[o],e[o+1],u);if(u&&v(u,u.next)){var s=u.next;B(u),u=s}return u}function n(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!v(r,r.next)&&0!==m(r.prev,r,r.next))r=r.next;else{var i=r.prev;if(B(r),(r=t=i)===r.next)break;n=!0}}while(n||r!==t);return t}function r(e,t,a,c,f,l,h){if(e){!h&&l&&d(e,c,f,l);for(var p,x,y=e;e.prev!==e.next;)if(p=e.prev,x=e.next,l?o(e,c,f,l):i(e))t.push(p.i/a),t.push(e.i/a),t.push(x.i/a),B(e),e=x.next,y=x.next;else if((e=x)===y){h?1===h?r(e=u(n(e),t,a),t,a,c,f,l,2):2===h&&s(e,t,a,c,f,l):r(n(e),t,a,c,f,l,1);break}}}function i(e){var t=e.prev,n=e,r=e.next;if(m(t,n,r)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(y(t.x,t.y,n.x,n.y,r.x,r.y,i.x,i.y)&&m(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function o(e,t,n,r){var i=e.prev,o=e,u=e.next;if(m(i,o,u)>=0)return!1;for(var s=i.xo.x?i.x>u.x?i.x:u.x:o.x>u.x?o.x:u.x,f=i.y>o.y?i.y>u.y?i.y:u.y:o.y>u.y?o.y:u.y,l=p(s,a,t,n,r),h=p(c,f,t,n,r),d=e.prevZ,x=e.nextZ;d&&d.z>=l&&x&&x.z<=h;){if(d!==e.prev&&d!==e.next&&y(i.x,i.y,o.x,o.y,u.x,u.y,d.x,d.y)&&m(d.prev,d,d.next)>=0)return!1;if(d=d.prevZ,x!==e.prev&&x!==e.next&&y(i.x,i.y,o.x,o.y,u.x,u.y,x.x,x.y)&&m(x.prev,x,x.next)>=0)return!1;x=x.nextZ}for(;d&&d.z>=l;){if(d!==e.prev&&d!==e.next&&y(i.x,i.y,o.x,o.y,u.x,u.y,d.x,d.y)&&m(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;x&&x.z<=h;){if(x!==e.prev&&x!==e.next&&y(i.x,i.y,o.x,o.y,u.x,u.y,x.x,x.y)&&m(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function u(e,t,r){var i=e;do{var o=i.prev,u=i.next.next;!v(o,u)&&T(o,i,i.next,u)&&M(o,u)&&M(u,o)&&(t.push(o.i/r),t.push(i.i/r),t.push(u.i/r),B(i),B(i.next),i=e=u),i=i.next}while(i!==e);return n(i)}function s(e,t,i,o,u,s){var a=e;do{for(var c=a.next.next;c!==a.prev;){if(a.i!==c.i&&g(a,c)){var f=C(a,c);return a=n(a,a.next),f=n(f,f.next),r(a,t,i,o,u,s),void r(f,t,i,o,u,s)}c=c.next}a=a.next}while(a!==e)}function a(e,r,i,o){var u,s,a,f=[];for(u=0,s=r.length;u=r.next.y&&r.next.y!==r.y){var s=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(s<=i&&s>u){if(u=s,s===i){if(o===r.y)return r;if(o===r.next.y)return r.next}n=r.x=r.x&&r.x>=f&&i!==r.x&&y(on.x||r.x===n.x&&h(n,r)))&&(n=r,d=a)),r=r.next}while(r!==c);return n}(e,t);if(!r)return t;var i=C(r,e),o=n(r,r.next);let u=f(i);return n(u,u.next),o=f(o),f(t===r?o:t)}function h(e,t){return m(e.prev,e,t.prev)<0&&m(t.next,e,e.next)<0}function d(e,t,n,r){var i=e;do{null===i.z&&(i.z=p(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){var t,n,r,i,o,u,s,a,c=1;do{for(n=e,e=null,o=null,u=0;n;){for(u++,r=n,s=0,t=0;t0||a>0&&r;)0!==s&&(0===a||!r||n.z<=r.z)?(i=n,n=n.nextZ,s--):(i=r,r=r.nextZ,a--),o?o.nextZ=i:e=i,i.prevZ=o,o=i;n=r}o.nextZ=null,c*=2}while(u>1)}(i)}function p(e,t,n,r,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function x(e){var t=e,n=e;do{(t.x=0&&(e-u)*(r-s)-(n-u)*(t-s)>=0&&(n-u)*(o-s)-(i-u)*(r-s)>=0}function g(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&T(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(M(e,t)&&M(t,e)&&function(e,t){var n=e,r=!1,i=(e.x+t.x)/2,o=(e.y+t.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}(e,t)&&(m(e.prev,e,t.prev)||m(e,t.prev,t))||v(e,t)&&m(e.prev,e,e.next)>0&&m(t.prev,t,t.next)>0)}function m(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function v(e,t){return e.x===t.x&&e.y===t.y}function T(e,t,n,r){var i=S(m(e,t,n)),o=S(m(e,t,r)),u=S(m(n,r,e)),s=S(m(n,r,t));return i!==o&&u!==s||!(0!==i||!E(e,n,t))||!(0!==o||!E(e,r,t))||!(0!==u||!E(n,e,r))||!(0!==s||!E(n,t,r))}function E(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function S(e){return e>0?1:e<0?-1:0}function M(e,t){return m(e.prev,e,e.next)<0?m(e,t,e.next)>=0&&m(e,e.prev,t)>=0:m(e,t,e.prev)<0||m(e,e.next,t)<0}function C(e,t){var n=new F(e.i,e.x,e.y),r=new F(t.i,t.x,t.y),i=e.next,o=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function N(e,t,n,r){var i=new F(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function B(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function F(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function R(e,t,n,r){for(var i=0,o=t,u=n-r;o0&&(r+=e[i-1].length,n.holes.push(r))}return n},e},void 0!==(o=i())&&(r.exports=o);const a=(0,u.g)(s.exports)},25609:function(e,t,n){var r,i,o,u,s,a,c,f,l,h,d,p,x,y,g,m,v,T,E,S,M,C,N,B,F,R,w,P,A,I,L,U,b,O,_,D,Z,k,Y,H,W,G,z,X,q,J,K,Q,$,V,j,ee,te,ne,re,ie,oe,ue,se,ae,ce;n.d(t,{$y:function(){return C},AH:function(){return i},CS:function(){return K},DD:function(){return f},Dd:function(){return A},Em:function(){return M},JS:function(){return q},Ky:function(){return l},Lh:function(){return Q},Qb:function(){return oe},RL:function(){return r},RS:function(){return se},TF:function(){return S},Tx:function(){return s},UR:function(){return v},UX:function(){return ie},bj:function(){return J},eZ:function(){return c},id:function(){return F},kP:function(){return D},of:function(){return d},r4:function(){return H},sj:function(){return Z},v2:function(){return o},zQ:function(){return P},zV:function(){return m}}),function(e){e[e.BUTT=0]="BUTT",e[e.ROUND=1]="ROUND",e[e.SQUARE=2]="SQUARE",e[e.UNKNOWN=4]="UNKNOWN"}(r||(r={})),function(e){e[e.BEVEL=0]="BEVEL",e[e.ROUND=1]="ROUND",e[e.MITER=2]="MITER",e[e.UNKNOWN=4]="UNKNOWN"}(i||(i={})),function(e){e[e.SCREEN=0]="SCREEN",e[e.MAP=1]="MAP"}(o||(o={})),function(e){e[e.Tint=0]="Tint",e[e.Ignore=1]="Ignore",e[e.Multiply=99]="Multiply"}(u||(u={})),function(e){e.Both="Both",e.JustBegin="JustBegin",e.JustEnd="JustEnd",e.None="None"}(s||(s={})),function(e){e[e.Mosaic=0]="Mosaic",e[e.Centered=1]="Centered"}(a||(a={})),function(e){e[e.Normal=0]="Normal",e[e.Superscript=1]="Superscript",e[e.Subscript=2]="Subscript"}(c||(c={})),function(e){e[e.MSSymbol=0]="MSSymbol",e[e.Unicode=1]="Unicode"}(f||(f={})),function(e){e[e.Unspecified=0]="Unspecified",e[e.TrueType=1]="TrueType",e[e.PSOpenType=2]="PSOpenType",e[e.TTOpenType=3]="TTOpenType",e[e.Type1=4]="Type1"}(l||(l={})),function(e){e[e.Display=0]="Display",e[e.Map=1]="Map"}(h||(h={})),function(e){e.None="None",e.Loop="Loop",e.Oscillate="Oscillate"}(d||(d={})),function(e){e[e.Z=0]="Z",e[e.X=1]="X",e[e.Y=2]="Y"}(p||(p={})),function(e){e[e.XYZ=0]="XYZ",e[e.ZXY=1]="ZXY",e[e.YXZ=2]="YXZ"}(x||(x={})),function(e){e[e.Rectangle=0]="Rectangle",e[e.RoundedRectangle=1]="RoundedRectangle",e[e.Oval=2]="Oval"}(y||(y={})),function(e){e[e.None=0]="None",e[e.Alpha=1]="Alpha",e[e.Screen=2]="Screen",e[e.Multiply=3]="Multiply",e[e.Add=4]="Add"}(g||(g={})),function(e){e[e.TTB=0]="TTB",e[e.RTL=1]="RTL",e[e.BTT=2]="BTT"}(m||(m={})),function(e){e[e.None=0]="None",e[e.SignPost=1]="SignPost",e[e.FaceNearPlane=2]="FaceNearPlane"}(v||(v={})),function(e){e[e.Float=0]="Float",e[e.String=1]="String",e[e.Boolean=2]="Boolean"}(T||(T={})),function(e){e[e.Intersect=0]="Intersect",e[e.Subtract=1]="Subtract"}(E||(E={})),function(e){e.OpenEnded="OpenEnded",e.Block="Block",e.Crossed="Crossed"}(S||(S={})),function(e){e.FullGeometry="FullGeometry",e.PerpendicularFromFirstSegment="PerpendicularFromFirstSegment",e.ReversedFirstSegment="ReversedFirstSegment",e.PerpendicularToSecondSegment="PerpendicularToSecondSegment",e.SecondSegmentWithTicks="SecondSegmentWithTicks",e.DoublePerpendicular="DoublePerpendicular",e.OppositeToFirstSegment="OppositeToFirstSegment",e.TriplePerpendicular="TriplePerpendicular",e.HalfCircleFirstSegment="HalfCircleFirstSegment",e.HalfCircleSecondSegment="HalfCircleSecondSegment",e.HalfCircleExtended="HalfCircleExtended",e.OpenCircle="OpenCircle",e.CoverageEdgesWithTicks="CoverageEdgesWithTicks",e.GapExtentWithDoubleTicks="GapExtentWithDoubleTicks",e.GapExtentMidline="GapExtentMidline",e.Chevron="Chevron",e.PerpendicularWithArc="PerpendicularWithArc",e.ClosedHalfCircle="ClosedHalfCircle",e.TripleParallelExtended="TripleParallelExtended",e.ParallelWithTicks="ParallelWithTicks",e.Parallel="Parallel",e.PerpendicularToFirstSegment="PerpendicularToFirstSegment",e.ParallelOffset="ParallelOffset",e.OffsetOpposite="OffsetOpposite",e.OffsetSame="OffsetSame",e.CircleWithArc="CircleWithArc",e.DoubleJog="DoubleJog",e.PerpendicularOffset="PerpendicularOffset",e.LineExcludingLastSegment="LineExcludingLastSegment",e.MultivertexArrow="MultivertexArrow",e.CrossedArrow="CrossedArrow",e.ChevronArrow="ChevronArrow",e.ChevronArrowOffset="ChevronArrowOffset",e.PartialFirstSegment="PartialFirstSegment",e.Arch="Arch",e.CurvedParallelTicks="CurvedParallelTicks",e.Arc90Degrees="Arc90Degrees"}(M||(M={})),function(e){e.Mitered="Mitered",e.Bevelled="Bevelled",e.Rounded="Rounded",e.Square="Square",e.TrueBuffer="TrueBuffer"}(C||(C={})),function(e){e.ClosePath="ClosePath",e.ConvexHull="ConvexHull",e.RectangularBox="RectangularBox"}(N||(N={})),function(e){e.BeginningOfLine="BeginningOfLine",e.EndOfLine="EndOfLine"}(B||(B={})),function(e){e.Mitered="Mitered",e.Bevelled="Bevelled",e.Rounded="Rounded",e.Square="Square"}(F||(F={})),function(e){e.Fast="Fast",e.Accurate="Accurate"}(R||(R={})),function(e){e.BeginningOfLine="BeginningOfLine",e.EndOfLine="EndOfLine"}(w||(w={})),function(e){e.Sinus="Sinus",e.Square="Square",e.Triangle="Triangle",e.Random="Random"}(P||(P={})),function(e){e[e.None=0]="None",e[e.Default=1]="Default",e[e.Force=2]="Force"}(A||(A={})),function(e){e[e.Buffered=0]="Buffered",e[e.Left=1]="Left",e[e.Right=2]="Right",e[e.AlongLine=3]="AlongLine"}(I||(I={})),function(e){e[e.Linear=0]="Linear",e[e.Rectangular=1]="Rectangular",e[e.Circular=2]="Circular",e[e.Buffered=3]="Buffered"}(L||(L={})),function(e){e[e.Discrete=0]="Discrete",e[e.Continuous=1]="Continuous"}(U||(U={})),function(e){e[e.AcrossLine=0]="AcrossLine",e[e.AloneLine=1]="AloneLine"}(b||(b={})),function(e){e[e.Left=0]="Left",e[e.Right=1]="Right",e[e.Center=2]="Center",e[e.Justify=3]="Justify"}(O||(O={})),function(e){e[e.Base=0]="Base",e[e.MidPoint=1]="MidPoint",e[e.ThreePoint=2]="ThreePoint",e[e.FourPoint=3]="FourPoint",e[e.Underline=4]="Underline",e[e.CircularCW=5]="CircularCW",e[e.CircularCCW=6]="CircularCCW"}(_||(_={})),function(e){e.Butt="Butt",e.Round="Round",e.Square="Square"}(D||(D={})),function(e){e.NoConstraint="NoConstraint",e.HalfPattern="HalfPattern",e.HalfGap="HalfGap",e.FullPattern="FullPattern",e.FullGap="FullGap",e.Custom="Custom"}(Z||(Z={})),function(e){e[e.None=-1]="None",e[e.Custom=0]="Custom",e[e.Circle=1]="Circle",e[e.OpenArrow=2]="OpenArrow",e[e.ClosedArrow=3]="ClosedArrow",e[e.Diamond=4]="Diamond"}(k||(k={})),function(e){e[e.ExtraLeading=0]="ExtraLeading",e[e.Multiple=1]="Multiple",e[e.Exact=2]="Exact"}(Y||(Y={})),function(e){e.Bevel="Bevel",e.Round="Round",e.Miter="Miter"}(H||(H={})),function(e){e[e.Default=0]="Default",e[e.String=1]="String",e[e.Numeric=2]="Numeric"}(W||(W={})),function(e){e[e.InsidePolygon=0]="InsidePolygon",e[e.PolygonCenter=1]="PolygonCenter",e[e.RandomlyInsidePolygon=2]="RandomlyInsidePolygon"}(G||(G={})),function(e){e[e.Tint=0]="Tint",e[e.Replace=1]="Replace",e[e.Multiply=2]="Multiply"}(z||(z={})),function(e){e[e.ClipAtBoundary=0]="ClipAtBoundary",e[e.RemoveIfCenterOutsideBoundary=1]="RemoveIfCenterOutsideBoundary",e[e.DoNotTouchBoundary=2]="DoNotTouchBoundary",e[e.DoNotClip=3]="DoNotClip"}(X||(X={})),function(e){e.NoConstraint="NoConstraint",e.WithMarkers="WithMarkers",e.WithFullGap="WithFullGap",e.WithHalfGap="WithHalfGap",e.Custom="Custom"}(q||(q={})),function(e){e.Fixed="Fixed",e.Random="Random",e.RandomFixedQuantity="RandomFixedQuantity"}(J||(J={})),function(e){e.LineMiddle="LineMiddle",e.LineBeginning="LineBeginning",e.LineEnd="LineEnd",e.SegmentMidpoint="SegmentMidpoint"}(K||(K={})),function(e){e.OnPolygon="OnPolygon",e.CenterOfMass="CenterOfMass",e.BoundingBoxCenter="BoundingBoxCenter"}(Q||(Q={})),function(e){e[e.Low=0]="Low",e[e.Medium=1]="Medium",e[e.High=2]="High"}($||($={})),function(e){e[e.MarkerCenter=0]="MarkerCenter",e[e.MarkerBounds=1]="MarkerBounds"}(V||(V={})),function(e){e[e.None=0]="None",e[e.PropUniform=1]="PropUniform",e[e.PropNonuniform=2]="PropNonuniform",e[e.DifUniform=3]="DifUniform",e[e.DifNonuniform=4]="DifNonuniform"}(j||(j={})),function(e){e.Tube="Tube",e.Strip="Strip",e.Wall="Wall"}(ee||(ee={})),function(e){e[e.Random=0]="Random",e[e.Increasing=1]="Increasing",e[e.Decreasing=2]="Decreasing",e[e.IncreasingThenDecreasing=3]="IncreasingThenDecreasing"}(te||(te={})),function(e){e[e.Relative=0]="Relative",e[e.Absolute=1]="Absolute"}(ne||(ne={})),function(e){e[e.Normal=0]="Normal",e[e.LowerCase=1]="LowerCase",e[e.Allcaps=2]="Allcaps"}(re||(re={})),function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(ie||(ie={})),function(e){e.Draft="Draft",e.Picture="Picture",e.Text="Text"}(oe||(oe={})),function(e){e[e.Top=0]="Top",e[e.Center=1]="Center",e[e.Baseline=2]="Baseline",e[e.Bottom=3]="Bottom"}(ue||(ue={})),function(e){e[e.Right=0]="Right",e[e.Upright=1]="Upright"}(se||(se={})),function(e){e[e.Small=0]="Small",e[e.Medium=1]="Medium",e[e.Large=2]="Large"}(ae||(ae={})),function(e){e[e.Calm=0]="Calm",e[e.Rippled=1]="Rippled",e[e.Slight=2]="Slight",e[e.Moderate=3]="Moderate"}(ce||(ce={}))},72797:function(e,t,n){n.d(t,{Z:function(){return o}});var r=n(21059),i=n(2154);class o{constructor(e,t){this.id=e,this.sortKey=t,this.records=[]}serialize(e){return e.push(this.id),e.writeF32(this.sortKey),(0,i.G)(e,this.records),e}static deserialize(e){const t=e.readInt32(),n=e.readF32(),u=new o(t,n);return u.records=(0,i.h)(e,r.Z)??[],u}}o.byteSizeHint=2*Uint32Array.BYTES_PER_ELEMENT+r.Z.byteSizeHint},21059:function(e,t,n){n.d(t,{Z:function(){return r}});class r{constructor(e,t,n,r,i,o,u){this.instanceId=e,this.textureKey=t,this.indexStart=n,this.indexCount=r,this.vertexStart=i,this.vertexCount=o,this.overlaps=u}updateBaseOffsets(e){this.vertexStart+=e.vertexFrom,this.indexStart+=e.indexFrom}clone(){return new r(this.instanceId,this.textureKey,this.indexStart,this.indexCount,this.vertexStart,this.vertexCount,this.overlaps)}static write(e,t,n,r,i,o,u,s){e.push(t),e.push(n),e.push(r),e.push(i),e.push(o),e.push(u),e.push(s)}serialize(e){return e.push(this.instanceId),e.push(this.textureKey),e.push(this.indexStart),e.push(this.indexCount),e.push(this.vertexStart),e.push(this.vertexCount),e.push(this.overlaps),e}static deserialize(e){const t=e.readInt32(),n=e.readInt32(),i=e.readInt32(),o=e.readInt32(),u=e.readInt32(),s=e.readInt32(),a=e.readInt32();return new r(t,n,i,o,u,s,a)}}r.byteSizeHint=7*Uint32Array.BYTES_PER_ELEMENT},64429:function(e,t,n){n.d(t,{IS:function(){return T},Jq:function(){return m},TB:function(){return g},UK:function(){return h},Yw:function(){return l},cM:function(){return y},cU:function(){return v}});var r=n(70375),i=n(13802),o=(n(25609),n(4157),n(39994),n(6174),n(91907)),u=(n(18567),n(88338),n(43106),n(13683)),s=n(71449),a=n(80479),c=n(41163);const f=()=>i.Z.getLogger("esri.views.2d.engine.webgl.Utils");function l(e){switch(e){case o.Br.UNSIGNED_BYTE:return 1;case o.Br.UNSIGNED_SHORT_4_4_4_4:return 2;case o.Br.FLOAT:return 4;default:return void f().error(new r.Z("webgl-utils",`Unable to handle type ${e}`))}}function h(e){switch(e){case o.Br.UNSIGNED_BYTE:return Uint8Array;case o.Br.UNSIGNED_SHORT_4_4_4_4:return Uint16Array;case o.Br.FLOAT:return Float32Array;default:return void f().error(new r.Z("webgl-utils",`Unable to handle type ${e}`))}}const d=e=>{const t=new Map;for(const n in e)for(const r of e[n])t.set(r.name,r.location);return t},p=e=>{const t={};for(const n in e){const r=e[n];t[n]=r?.length?r[0].stride:0}return t},x=new Map,y=(e,t)=>{if(!x.has(e)){const n=function(e){const t={};for(const n in e){const r=e[n];let i=0;t[n]=r.map((e=>{const t=new c.G(e.name,e.count,e.type,i,0,e.normalized||!1);return i+=e.count*(0,u.S)(e.type),t})),t[n]?.forEach((e=>e.stride=i))}return t}(t),r={strides:p(n),bufferLayouts:n,attributes:d(t)};x.set(e,r)}return x.get(e)},g=e=>e.includes("data:image/svg+xml");function m(e){const t=[];for(let n=0;n`${e}.${t}.${n}`)).join(",");return(0,r.hP)(t)}function o(e,t,n,r,i,u,s){if(e.primitiveName===t)for(const t in e)if(t===n){let n=r?.readWithDefault(i,u,e[t]&&s);return"text"===e.type&&(n=n.toString()),void(e[t]=n)}if("type"in e&&null!=e.type)switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":if(e.symbolLayers)for(const a of e.symbolLayers)o(a,t,n,r,i,u,s);break;case"CIMHatchFill":e.lineSymbol&&o(e.lineSymbol,t,n,r,i,u,s);break;case"CIMSolidStroke":case"CIMSolidFill":case"CIMVectorMarker":if("CIMVectorMarker"===e.type&&e.markerGraphics)for(const a of e.markerGraphics)o(a,t,n,r,i,u,s),o(a.symbol,t,n,r,i,u,s)}}function u(e){const t=e.width;return null!=e.effects?256:Math.max(1.25*t,8)}},2154:function(e,t,n){function r(e,t){if(null!==t){e.push(t.length);for(const n of t)n.serialize(e);return e}e.push(0)}function i(e,t,n){const r=e.readInt32(),i=new Array(r);for(let r=0;r13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Zvětšení",Play:"Přehrát",Stop:"Ukončit iteraci (Stop)",Legend:"Legenda","Press ENTER to toggle":"",Loading:"Načítání",Home:"Domů",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Tisk",Image:"Snímek",Data:"Data",Print:"Tisk","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Od %1 do %2","From %1":"Od %1","To %1":"Do %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5519.a13ce716e24bf34df10c.js b/docs/sentinel1-explorer/5519.a13ce716e24bf34df10c.js new file mode 100644 index 00000000..eaeb7f31 --- /dev/null +++ b/docs/sentinel1-explorer/5519.a13ce716e24bf34df10c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5519,8611],{98786:function(e,t,r){r.d(t,{B:function(){return h}});var o=r(70375),i=r(86630),n=r(71760),s=r(3466),a=r(12173),l=r(41610),u=r(65943),p=r(81977),c=r(51876),d=r(16641);function h(e){const t=e?.origins??[void 0];return(r,o)=>{const i=function(e,t,r){if("resource"===e?.type)return function(e,t,r){const o=(0,l.Oe)(t,r);return{type:String,read:(e,t,r)=>{const i=(0,d.r)(e,t,r);return o.type===String?i:"function"==typeof o.type?new o.type({url:i}):void 0},write:{writer(t,i,a,l){if(!l?.resources)return"string"==typeof t?void(i[a]=(0,d.t)(t,l)):void(i[a]=t.write({},l));const p=function(e){return null==e?null:"string"==typeof e?e:e.url}(t),h=(0,d.t)(p,{...l,verifyItemRelativeUrls:l?.verifyItemRelativeUrls?{writtenUrls:l.verifyItemRelativeUrls.writtenUrls,rootPath:void 0}:void 0},d.M.NO),b=o.type!==String&&(!(0,n.l)(this)||l?.origin&&this.originIdOf(r)>(0,u.M9)(l.origin)),g={object:this,propertyName:r,value:t,targetUrl:h,dest:i,targetPropertyName:a,context:l,params:e};l?.portalItem&&h&&!(0,s.YP)(h)?b&&e?.contentAddressed?y(g):b?function(e){const{context:t,targetUrl:r,params:o,value:i,dest:n,targetPropertyName:a}=e;if(!t.portalItem)return;const l=t.portalItem.resourceFromPath(r),u=m(i,r,t),p=(0,c.B)(u),d=(0,s.Ml)(l.path),h=o?.compress??!1;p===d?(t.resources&&f({...e,resource:l,content:u,compress:h,updates:t.resources.toUpdate}),n[a]=r):y(e)}(g):function({context:e,targetUrl:t,dest:r,targetPropertyName:o}){e.portalItem&&e.resources&&(e.resources.toKeep.push({resource:e.portalItem.resourceFromPath(t),compress:!1}),r[o]=t)}(g):l?.portalItem&&(null==h||null!=(0,d.i)(h)||(0,s.jc)(h)||b)?y(g):i[a]=h}}}}(e,t,r);switch(e?.type??"other"){case"other":return{read:!0,write:!0};case"url":{const{read:e,write:t}=d.b;return{read:e,write:t}}}}(e,r,o);for(const e of t){const t=(0,p.CJ)(r,e,o);for(const e in i)t[e]=i[e]}}}function y(e){const{targetUrl:t,params:r,value:n,context:l,dest:u,targetPropertyName:p}=e;if(!l.portalItem)return;const h=(0,d.p)(t),y=m(n,t,l);if(r?.contentAddressed&&"json"!==y.type)return void l.messages?.push(new o.Z("persistable:contentAddressingUnsupported",`Property "${p}" is trying to serializing a resource with content of type ${y.type} with content addressing. Content addressing is only supported for json resources.`,{content:y}));const b=r?.contentAddressed&&"json"===y.type?(0,i.F)(y.jsonString):h?.filename??(0,a.DO)(),g=(0,s.v_)(r?.prefix??h?.prefix,b),v=`${g}.${(0,c.B)(y)}`;if(r?.contentAddressed&&l.resources&&"json"===y.type){const e=l.resources.toKeep.find((({resource:e})=>e.path===v))??l.resources.toAdd.find((({resource:e})=>e.path===v));if(e)return void(u[p]=e.resource.itemRelativeUrl)}const S=l.portalItem.resourceFromPath(v);(0,s.jc)(t)&&l.resources&&l.resources.pendingOperations.push((0,s.gi)(t).then((e=>{S.path=`${g}.${(0,c.B)({type:"blob",blob:e})}`,u[p]=S.itemRelativeUrl})).catch((()=>{})));const w=r?.compress??!1;l.resources&&f({...e,resource:S,content:y,compress:w,updates:l.resources.toAdd}),u[p]=S.itemRelativeUrl}function f({object:e,propertyName:t,updates:r,resource:o,content:i,compress:n}){r.push({resource:o,content:i,compress:n,finish:r=>{!function(e,t,r){"string"==typeof e[t]?e[t]=r.url:e[t].url=r.url}(e,t,r)}})}function m(e,t,r){return"string"==typeof e?{type:"url",url:t}:{type:"json",jsonString:JSON.stringify(e.toJSON(r))}}},50516:function(e,t,r){r.d(t,{D:function(){return i}});var o=r(71760);function i(e){e?.writtenProperties&&e.writtenProperties.forEach((({target:e,propName:t,newOrigin:r})=>{(0,o.l)(e)&&r&&e.originOf(t)!==r&&e.updateOrigin(t,r)}))}},96303:function(e,t,r){function o(){return[0,0,0,1]}function i(e){return[e[0],e[1],e[2],e[3]]}r.d(t,{Ue:function(){return o},Wd:function(){return n},d9:function(){return i}});const n=[0,0,0,1];Object.freeze(Object.defineProperty({__proto__:null,IDENTITY:n,clone:i,create:o,createView:function(e,t){return new Float64Array(e,t,4)},fromValues:function(e,t,r,o){return[e,t,r,o]}},Symbol.toStringTag,{value:"Module"}))},1845:function(e,t,r){r.d(t,{Bh:function(){return p},I6:function(){return R},Jp:function(){return c},Kx:function(){return h},Su:function(){return f},t8:function(){return b},yY:function(){return u}});var o=r(3965),i=r(96303),n=r(81095),s=r(40201),a=r(86717),l=r(56999);function u(e,t,r){r*=.5;const o=Math.sin(r);return e[0]=o*t[0],e[1]=o*t[1],e[2]=o*t[2],e[3]=Math.cos(r),e}function p(e,t){const r=2*Math.acos(t[3]),o=Math.sin(r/2);return o>(0,s.bn)()?(e[0]=t[0]/o,e[1]=t[1]/o,e[2]=t[2]/o):(e[0]=1,e[1]=0,e[2]=0),r}function c(e,t,r){const o=t[0],i=t[1],n=t[2],s=t[3],a=r[0],l=r[1],u=r[2],p=r[3];return e[0]=o*p+s*a+i*u-n*l,e[1]=i*p+s*l+n*a-o*u,e[2]=n*p+s*u+o*l-i*a,e[3]=s*p-o*a-i*l-n*u,e}function d(e,t,r,o){const i=t[0],n=t[1],a=t[2],l=t[3];let u,p,c,d,h,y=r[0],f=r[1],m=r[2],b=r[3];return p=i*y+n*f+a*m+l*b,p<0&&(p=-p,y=-y,f=-f,m=-m,b=-b),1-p>(0,s.bn)()?(u=Math.acos(p),c=Math.sin(u),d=Math.sin((1-o)*u)/c,h=Math.sin(o*u)/c):(d=1-o,h=o),e[0]=d*i+h*y,e[1]=d*n+h*f,e[2]=d*a+h*m,e[3]=d*l+h*b,e}function h(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function y(e,t){const r=t[0]+t[4]+t[8];let o;if(r>0)o=Math.sqrt(r+1),e[3]=.5*o,o=.5/o,e[0]=(t[5]-t[7])*o,e[1]=(t[6]-t[2])*o,e[2]=(t[1]-t[3])*o;else{let r=0;t[4]>t[0]&&(r=1),t[8]>t[3*r+r]&&(r=2);const i=(r+1)%3,n=(r+2)%3;o=Math.sqrt(t[3*r+r]-t[3*i+i]-t[3*n+n]+1),e[r]=.5*o,o=.5/o,e[3]=(t[3*i+n]-t[3*n+i])*o,e[i]=(t[3*i+r]+t[3*r+i])*o,e[n]=(t[3*n+r]+t[3*r+n])*o}return e}function f(e,t,r,o){const i=.5*Math.PI/180;t*=i,r*=i,o*=i;const n=Math.sin(t),s=Math.cos(t),a=Math.sin(r),l=Math.cos(r),u=Math.sin(o),p=Math.cos(o);return e[0]=n*l*p-s*a*u,e[1]=s*a*p+n*l*u,e[2]=s*l*u-n*a*p,e[3]=s*l*p+n*a*u,e}const m=l.c,b=l.s,g=l.f,v=c,S=l.b,w=l.g,x=l.l,_=l.i,j=_,C=l.j,V=C,I=l.n,R=l.a,N=l.e;const z=(0,n.Ue)(),q=(0,n.al)(1,0,0),Z=(0,n.al)(0,1,0);const T=(0,i.Ue)(),A=(0,i.Ue)();const M=(0,o.Ue)();Object.freeze(Object.defineProperty({__proto__:null,add:g,calculateW:function(e,t){const r=t[0],o=t[1],i=t[2];return e[0]=r,e[1]=o,e[2]=i,e[3]=Math.sqrt(Math.abs(1-r*r-o*o-i*i)),e},conjugate:h,copy:m,dot:w,equals:N,exactEquals:R,fromEuler:f,fromMat3:y,getAxisAngle:p,identity:function(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e},invert:function(e,t){const r=t[0],o=t[1],i=t[2],n=t[3],s=r*r+o*o+i*i+n*n,a=s?1/s:0;return e[0]=-r*a,e[1]=-o*a,e[2]=-i*a,e[3]=n*a,e},len:j,length:_,lerp:x,mul:v,multiply:c,normalize:I,random:function(e){const t=s.FD,r=t(),o=t(),i=t(),n=Math.sqrt(1-r),a=Math.sqrt(r);return e[0]=n*Math.sin(2*Math.PI*o),e[1]=n*Math.cos(2*Math.PI*o),e[2]=a*Math.sin(2*Math.PI*i),e[3]=a*Math.cos(2*Math.PI*i),e},rotateX:function(e,t,r){r*=.5;const o=t[0],i=t[1],n=t[2],s=t[3],a=Math.sin(r),l=Math.cos(r);return e[0]=o*l+s*a,e[1]=i*l+n*a,e[2]=n*l-i*a,e[3]=s*l-o*a,e},rotateY:function(e,t,r){r*=.5;const o=t[0],i=t[1],n=t[2],s=t[3],a=Math.sin(r),l=Math.cos(r);return e[0]=o*l-n*a,e[1]=i*l+s*a,e[2]=n*l+o*a,e[3]=s*l-i*a,e},rotateZ:function(e,t,r){r*=.5;const o=t[0],i=t[1],n=t[2],s=t[3],a=Math.sin(r),l=Math.cos(r);return e[0]=o*l+i*a,e[1]=i*l-o*a,e[2]=n*l+s*a,e[3]=s*l-n*a,e},rotationTo:function(e,t,r){const o=(0,a.k)(t,r);return o<-.999999?((0,a.b)(z,q,t),(0,a.H)(z)<1e-6&&(0,a.b)(z,Z,t),(0,a.n)(z,z),u(e,z,Math.PI),e):o>.999999?(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e):((0,a.b)(z,t,r),e[0]=z[0],e[1]=z[1],e[2]=z[2],e[3]=1+o,I(e,e))},scale:S,set:b,setAxes:function(e,t,r,o){const i=M;return i[0]=r[0],i[3]=r[1],i[6]=r[2],i[1]=o[0],i[4]=o[1],i[7]=o[2],i[2]=-t[0],i[5]=-t[1],i[8]=-t[2],I(e,y(e,i))},setAxisAngle:u,slerp:d,sqlerp:function(e,t,r,o,i,n){return d(T,t,i,n),d(A,r,o,n),d(e,T,A,2*n*(1-n)),e},sqrLen:V,squaredLength:C,str:function(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}},Symbol.toStringTag,{value:"Module"}))},71760:function(e,t,r){function o(e){return e&&"getAtOrigin"in e&&"originOf"in e}r.d(t,{l:function(){return o}})},85519:function(e,t,r){r.r(t),r.d(t,{default:function(){return $e}});var o=r(36663),i=r(80020),n=r(6865),s=r(70375),a=r(13802),l=r(15842),u=r(78668),p=r(81977),c=r(7283),d=(r(4157),r(39994),r(34248)),h=r(40266),y=r(86717),f=r(81095),m=r(91772),b=r(38481),g=r(91223),v=r(87232),S=r(63989),w=r(43330),x=r(18241),_=r(95874),j=r(93902),C=r(20692),V=r(51599),I=r(12512),R=r(41151),N=r(16068),z=r(82064),q=r(98786),Z=r(1845),T=r(96303),A=r(40201);const M=(0,f.Ue)(),P=(0,T.Ue)(),F=(0,T.Ue)(),L=(0,T.Ue)(),D=(0,f.al)(0,0,1),O=(0,f.al)(0,1,0),U=(0,f.al)(1,0,0);function E(e){(0,y.c)(M,e),(0,y.n)(M,M);const t=Math.atan2(M[1],M[0]),r=(0,Z.yY)((0,T.Ue)(),D,-t);(0,y.u)(M,M,r);const o=-1*Math.atan2(M[2],M[0]);return[(0,A.Dc)(t)+270,(0,A.Dc)(o)+90]}function B(e,t){return(0,Z.yY)(F,D,(0,A.c$)(e-270)),(0,Z.yY)(L,O,(0,A.c$)(t-90)),(0,Z.Jp)(P,F,L),(0,y.c)(M,U),(0,y.u)(M,M,P),(0,y.n)(M,M),[M[0],M[1],M[2]]}var k=r(69236);let $=class extends((0,R.J)(z.wq)){constructor(e){super(e),this.enabled=!0,this.label="",this.normal=null,this.point=null}get orientation(){if(!Array.isArray(this.normal)||3!==this.normal.length)return 0;const[e,t]=E(this.normal);return N.BV.normalize((0,c.q9)(e),0,!0)}set orientation(e){const t=B(e,this.tilt);this._set("normal",t),this._set("orientation",e)}get tilt(){if(!Array.isArray(this.normal)||3!==this.normal.length)return 0;const[e,t]=E(this.normal);return N.BV.normalize((0,c.q9)(t),0,!0)}set tilt(e){const t=B(this.orientation,e);this._set("normal",t),this._set("tilt",e)}};(0,o._)([(0,p.Cb)({type:Boolean,json:{write:!0}})],$.prototype,"enabled",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:!0}})],$.prototype,"label",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{read:!1},clonable:!1,range:{min:0,max:360}}),(0,k.p)((e=>N.BV.normalize((0,c.q9)(e),0,!0)))],$.prototype,"orientation",null),(0,o._)([(0,p.Cb)({type:Number,json:{read:!1},clonable:!1,range:{min:0,max:360}}),(0,k.p)((e=>N.BV.normalize((0,c.q9)(e),0,!0)))],$.prototype,"tilt",null),(0,o._)([(0,p.Cb)({type:[Number],json:{write:!0}})],$.prototype,"normal",void 0),(0,o._)([(0,p.Cb)({type:[Number],json:{write:!0}})],$.prototype,"point",void 0),$=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelSlice")],$);const J=$;var K=r(16641);let W=class extends((0,R.J)(z.wq)){constructor(){super(...arguments),this.enabled=!0,this.href=null,this.id=null,this.label="",this.normal=null,this.point=null,this.sizeInPixel=null,this.slices=null,this.timeId=0,this.variableId=null}get orientation(){if(!Array.isArray(this.normal)||3!==this.normal.length)return 0;const[e,t]=E(this.normal);return N.BV.normalize((0,c.q9)(e),0,!0)}get tilt(){if(!Array.isArray(this.normal)||3!==this.normal.length)return 0;const[e,t]=E(this.normal);return N.BV.normalize((0,c.q9)(t),0,!0)}};(0,o._)([(0,p.Cb)({type:Boolean,json:{default:!0,write:!0}})],W.prototype,"enabled",void 0),(0,o._)([(0,p.Cb)({type:String,json:{origins:{service:{read:K.r}},write:{enabled:!0,isRequired:!0}}}),(0,q.B)({origins:["web-scene"],type:"resource",prefix:"sections",compress:!0})],W.prototype,"href",void 0),(0,o._)([(0,p.Cb)({type:c.z8,json:{write:{enabled:!0,isRequired:!0}}})],W.prototype,"id",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:!0}})],W.prototype,"label",void 0),(0,o._)([(0,p.Cb)({type:Number,clonable:!1,readOnly:!0,range:{min:0,max:360}})],W.prototype,"orientation",null),(0,o._)([(0,p.Cb)({type:Number,clonable:!1,readOnly:!0,range:{min:0,max:360}})],W.prototype,"tilt",null),(0,o._)([(0,p.Cb)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],W.prototype,"normal",void 0),(0,o._)([(0,p.Cb)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],W.prototype,"point",void 0),(0,o._)([(0,p.Cb)({type:[c.z8],json:{write:{enabled:!0,isRequired:!0}}})],W.prototype,"sizeInPixel",void 0),(0,o._)([(0,p.Cb)({type:[J],json:{write:!0}})],W.prototype,"slices",void 0),(0,o._)([(0,p.Cb)({type:c.z8,json:{default:0,write:!0}})],W.prototype,"timeId",void 0),(0,o._)([(0,p.Cb)({type:c.z8,json:{write:{enabled:!0,isRequired:!0}}})],W.prototype,"variableId",void 0),W=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelSection")],W);const Y=W;let H=class extends z.wq{constructor(){super(...arguments),this.diffuseFactor=.5,this.specularFactor=.5}};(0,o._)([(0,p.Cb)({type:Number,range:{min:0,max:1},json:{default:.5,write:!0}})],H.prototype,"diffuseFactor",void 0),(0,o._)([(0,p.Cb)({type:Number,range:{min:0,max:1},json:{default:.5,write:!0}})],H.prototype,"specularFactor",void 0),H=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelSimpleShading")],H);const Q=H;let X=class extends z.wq{constructor(){super(...arguments),this.continuity=null,this.hasNoData=!1,this.noData=0,this.offset=0,this.scale=1,this.type=null}};(0,o._)([(0,p.Cb)({type:["discrete","continuous"],json:{write:!0}})],X.prototype,"continuity",void 0),(0,o._)([(0,p.Cb)({type:Boolean,json:{write:!0}})],X.prototype,"hasNoData",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{write:!0}})],X.prototype,"noData",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{write:!0}})],X.prototype,"offset",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{write:!0}})],X.prototype,"scale",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:{enabled:!0,isRequired:!0}}})],X.prototype,"type",void 0),X=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelFormat")],X);const G=X;let ee=class extends z.wq{constructor(){super(...arguments),this.id=null,this.description="",this.name=null,this.originalFormat=null,this.renderingFormat=null,this.unit="",this.volumeId=0,this.type=null}};(0,o._)([(0,p.Cb)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],ee.prototype,"id",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:!0}})],ee.prototype,"description",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:{enabled:!0,isRequired:!0}}})],ee.prototype,"name",void 0),(0,o._)([(0,p.Cb)({type:G,json:{write:!0}})],ee.prototype,"originalFormat",void 0),(0,o._)([(0,p.Cb)({type:G,json:{write:{enabled:!0,isRequired:!0}}})],ee.prototype,"renderingFormat",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:!0}})],ee.prototype,"unit",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{write:!0}})],ee.prototype,"volumeId",void 0),(0,o._)([(0,p.Cb)({type:["stc-hot-spot-results","stc-cluster-outlier-results","stc-estimated-bin","generic-nearest-interpolated"],json:{write:!0}})],ee.prototype,"type",void 0),ee=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelVariable")],ee);const te=ee;var re=r(67134),oe=r(30936);let ie=class extends((0,R.J)(z.wq)){constructor(){super(...arguments),this.color=oe.Z.fromArray([0,0,0,0]),this.value=0,this.enabled=!0,this.label="",this.colorLocked=!1}};(0,o._)([(0,p.Cb)({type:oe.Z,json:{type:[c.z8],write:{enabled:!0,isRequired:!0}}})],ie.prototype,"color",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],ie.prototype,"value",void 0),(0,o._)([(0,p.Cb)({type:Boolean,json:{default:!0,write:!0}})],ie.prototype,"enabled",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:!0}})],ie.prototype,"label",void 0),(0,o._)([(0,p.Cb)({type:Boolean,json:{default:!1,write:!0}})],ie.prototype,"colorLocked",void 0),ie=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelIsosurface")],ie);const ne=ie;var se=r(58811),ae=r(19431);let le=class extends((0,R.J)(z.wq)){constructor(){super(...arguments),this.color=null,this.position=0}};(0,o._)([(0,p.Cb)({type:oe.Z,json:{type:[c.z8],write:{enabled:!0,isRequired:!0}}})],le.prototype,"color",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],le.prototype,"position",void 0),le=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelColorStop")],le);const ue=le;let pe=class extends((0,R.J)(z.wq)){constructor(){super(...arguments),this.opacity=1,this.position=0}};(0,o._)([(0,p.Cb)({type:Number,json:{name:"alpha",write:{enabled:!0,isRequired:!0}}})],pe.prototype,"opacity",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{write:{enabled:!0,isRequired:!0}}})],pe.prototype,"position",void 0),pe=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelOpacityStop")],pe);const ce=pe;let de=class extends((0,R.J)(z.wq)){constructor(){super(...arguments),this.enabled=!1,this.range=null}};(0,o._)([(0,p.Cb)({type:Boolean,json:{default:!1,write:!0}})],de.prototype,"enabled",void 0),(0,o._)([(0,p.Cb)({type:[Number],json:{write:!0}})],de.prototype,"range",void 0),de=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelRangeFilter")],de);const he=de;var ye,fe;(fe=ye||(ye={}))[fe.Color=1]="Color",fe[fe.Alpha=2]="Alpha",fe[fe.Both=3]="Both";let me=class extends((0,R.J)(z.wq)){constructor(e){super(e),this.interpolation=null,this.stretchRange=null,this.rangeFilter=null,this._colorMapSize=256,this.colorStops=new(n.Z.ofType(ue)),this.opacityStops=new(n.Z.ofType(ce))}set colorStops(e){this._set("colorStops",(0,se.Z)(e,this._get("colorStops"),n.Z.ofType(ue)))}set opacityStops(e){this._set("opacityStops",(0,se.Z)(e,this._get("opacityStops"),n.Z.ofType(ce)))}getPreviousNext(e,t,r){let o=e;for(;--o>0&&t[o].type!==r&&t[o].type!==ye.Both;);let i=e;const n=t.length;for(;++ie.position{o.color[r]=Math.round((0,ae.t7)(t[r],s[r],e))}))}else-1!==i?ge.forEach((e=>{o.color[e]=r[i].color[e]})):ge.forEach((e=>{o.color[e]=r[n].color[e]}))}}for(const e of r)t.push({color:e.color,position:e.position})}t[0].position=0,t[t.length-1].position=1;let o=0,i=1;for(let r=0;rt[i].position;)o=i++;const s=(n-t[o].position)/(t[i].position-t[o].position),a=t[o].color,l=t[i].color,u=new oe.Z;ge.forEach((e=>{u[e]=Math.round((0,ae.t7)(a[e],l[e],s))})),u.a=(0,ae.uZ)(1-(0,ae.t7)(a.a,l.a,s)/255,0,1),e.push(u)}return e}getColorForContinuousDataValue(e,t){const r=this.rasterizedTransferFunction;if(this.colorStops.length<2||!Array.isArray(this.stretchRange)||this.stretchRange.length<2||r.length<256)return null;let o=this.stretchRange[0],i=this.stretchRange[1];if(o>i){const e=o;o=i,i=e}e=(0,ae.uZ)(e,o,i);const n=r[Math.round((e-o)/(i-o)*(this._colorMapSize-1))].clone();return t||(n.a=1),n}};(0,o._)([(0,p.Cb)({type:["linear","nearest"],json:{write:!0}})],me.prototype,"interpolation",void 0),(0,o._)([(0,p.Cb)({type:[Number],json:{write:{enabled:!0,isRequired:!0}}})],me.prototype,"stretchRange",void 0),(0,o._)([(0,p.Cb)({type:n.Z.ofType(ue),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.colorStops&&this.colorStops.length>0}}}}})],me.prototype,"colorStops",null),(0,o._)([(0,p.Cb)({type:n.Z.ofType(ce),json:{read:{source:"alphaStops"},write:{enabled:!0,target:"alphaStops",overridePolicy(){return{enabled:!!this.opacityStops&&this.opacityStops.length>0}}}}})],me.prototype,"opacityStops",null),(0,o._)([(0,p.Cb)({type:he,json:{write:!0}})],me.prototype,"rangeFilter",void 0),(0,o._)([(0,p.Cb)({type:[oe.Z],clonable:!1,json:{read:!1}})],me.prototype,"rasterizedTransferFunction",null),me=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelTransferFunctionStyle")],me);const be=me,ge=["r","g","b"];let ve=class extends((0,R.J)(z.wq)){constructor(){super(...arguments),this.color=oe.Z.fromArray([0,0,0,0]),this.value=0,this.enabled=!0,this.label=""}};(0,o._)([(0,p.Cb)({type:oe.Z,json:{type:[c.z8],write:{enabled:!0,isRequired:!0}}})],ve.prototype,"color",void 0),(0,o._)([(0,p.Cb)({type:c.z8,json:{write:{enabled:!0,isRequired:!0}}})],ve.prototype,"value",void 0),(0,o._)([(0,p.Cb)({type:Boolean,json:{default:!0,write:!0}})],ve.prototype,"enabled",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:!0}})],ve.prototype,"label",void 0),ve=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelUniqueValue")],ve);const Se=ve;var we;let xe=we=class extends z.wq{constructor(e){super(e),this.variableId=0,this.label="",this.transferFunction=null,this.uniqueValues=null,this.isosurfaces=null,this.uniqueValues=new(n.Z.ofType(Se)),this.isosurfaces=new(n.Z.ofType(ne))}clone(){return new we({variableId:this.variableId,label:this.label,transferFunction:(0,re.d9)(this.transferFunction),uniqueValues:(0,re.d9)(this.uniqueValues),isosurfaces:(0,re.d9)(this.isosurfaces)})}};(0,o._)([(0,p.Cb)({type:c.z8,json:{write:{enabled:!0,isRequired:!0}}})],xe.prototype,"variableId",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:!0}})],xe.prototype,"label",void 0),(0,o._)([(0,p.Cb)({type:be,json:{write:{enabled:!0,overridePolicy(){return{enabled:!this.uniqueValues||this.uniqueValues.length<1}}}}})],xe.prototype,"transferFunction",void 0),(0,o._)([(0,p.Cb)({type:n.Z.ofType(Se),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.uniqueValues&&this.uniqueValues.length>0}}}}})],xe.prototype,"uniqueValues",void 0),(0,o._)([(0,p.Cb)({type:n.Z.ofType(ne),json:{write:{enabled:!0,overridePolicy(){const e=!this.uniqueValues||this.uniqueValues.length<1,t=!!this.isosurfaces&&this.isosurfaces.length>0;return{enabled:e&&t}}}}})],xe.prototype,"isosurfaces",void 0),xe=we=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelVariableStyle")],xe);const _e=xe;var je=r(67666),Ce=r(14685),Ve=r(35925);let Ie=class extends z.wq{constructor(){super(...arguments),this.values=null}};(0,o._)([(0,p.Cb)({type:[Number],json:{write:!0}})],Ie.prototype,"values",void 0),Ie=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelIrregularSpacing")],Ie);const Re=Ie;let Ne=class extends z.wq{constructor(){super(...arguments),this.scale=1,this.offset=0}};(0,o._)([(0,p.Cb)({type:Number,json:{write:!0}})],Ne.prototype,"scale",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{write:!0}})],Ne.prototype,"offset",void 0),Ne=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelRegularSpacing")],Ne);const ze=Ne;let qe=class extends z.wq{constructor(){super(...arguments),this.irregularSpacing=null,this.isPositiveUp=!0,this.isWrappedDateLine=!1,this.label=null,this.name=null,this.quantity=null,this.regularSpacing=null,this.size=0,this.unit=null}get isRegular(){return(null==this.irregularSpacing||void 0===this.irregularSpacing)&&null!==this.regularSpacing}getRange(){return this.isRegular?[this.regularSpacing.offset,this.regularSpacing.offset+this.regularSpacing.scale*(this.size-1)]:Array.isArray(this.irregularSpacing?.values)&&this.irregularSpacing.values.length>1?[this.irregularSpacing.values[0],this.irregularSpacing.values[this.irregularSpacing.values.length-1]]:[0,0]}};(0,o._)([(0,p.Cb)({type:Re,json:{write:!0}})],qe.prototype,"irregularSpacing",void 0),(0,o._)([(0,p.Cb)({type:Boolean,json:{write:!0}})],qe.prototype,"isPositiveUp",void 0),(0,o._)([(0,p.Cb)({type:Boolean,json:{write:!0}})],qe.prototype,"isWrappedDateLine",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:!0}})],qe.prototype,"label",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:!0}})],qe.prototype,"name",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:!0}})],qe.prototype,"quantity",void 0),(0,o._)([(0,p.Cb)({type:ze,json:{write:!0}})],qe.prototype,"regularSpacing",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{write:!0}})],qe.prototype,"size",void 0),(0,o._)([(0,p.Cb)({type:String,json:{write:!0}})],qe.prototype,"unit",void 0),(0,o._)([(0,p.Cb)({type:Boolean,json:{read:!1}})],qe.prototype,"isRegular",null),qe=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelDimension")],qe);const Ze=qe;let Te=class extends z.wq{constructor(e){super(e),this.id=0,this.dimensions=null,this.spatialReference=Ce.Z.WGS84}get zDimension(){if(!this.dimensions)return-1;if(!Array.isArray(this.dimensions))return-1;if(4!==this.dimensions.length)return-1;for(let e=2;e<4;++e)if(this.dimensions[e].size>0)return e;return-1}get isValid(){return!(!this.dimensions||!Array.isArray(this.dimensions)||4!==this.dimensions.length||this.dimensions[0].size<1||this.dimensions[1].size<1||-1===this.zDimension||this.dimensions[this.zDimension].size<1)}get originInLayerSpace3D(){if(!this.isValid||"xyt"===this.volumeType)return[0,0,0];const e=this.dimensions[0].getRange(),t=this.dimensions[1].getRange(),r=this.dimensions[2],o=r.isRegular?r.getRange():[0,r.size];return[e[0],t[0],o[0]]}get voxelSizeInLayerSpaceSigned(){if(!this.isValid||"xyt"===this.volumeType)return[0,0,0];const e=this.dimensions[0].getRange(),t=this.dimensions[1].getRange(),r=this.dimensions[2],o=r.isRegular?r.getRange():[0,r.size],i=[this.sizeInVoxels[0],this.sizeInVoxels[1],this.sizeInVoxels[2]];for(let e=0;e<3;++e)i[e]<2?i[e]=1:i[e]-=1;return r.isRegular&&!r.isPositiveUp&&(i[2]*=-1),[(e[1]-e[0])/i[0],(t[1]-t[0])/i[1],(o[1]-o[0])/i[2]]}get volumeType(){if(this.isValid){const e=this.dimensions[2].size>0,t=this.dimensions[3].size>0;if(!e&&t)return"xyt";if(e&&t)return"xyzt"}return"xyz"}get sizeInVoxels(){if(!this.isValid)return[0,0,0];const e=this.zDimension;return[this.dimensions[0].size,this.dimensions[1].size,this.dimensions[e].size]}computeVoxelSpaceLocation(e){if(!this.isValid)return[0,0,0];if("xyt"===this.volumeType)return a.Z.getLogger(this).error("computeVoxelSpacePosition cannot be used with XYT volumes."),[0,0,0];if(!(0,Ve.fS)(this.spatialReference,e.spatialReference))return a.Z.getLogger(this).error("pos argument should have the same spatial reference as the VoxelLayer."),[0,0,0];const t=(0,f.al)(e.x,e.y,e.z??0);(0,y.f)(t,t,this.originInLayerSpace3D),(0,y.D)(t,t,this.voxelSizeInLayerSpaceSigned);const r=this.dimensions[this.zDimension];if(!r.isRegular&&Array.isArray(r.irregularSpacing?.values)&&r.irregularSpacing.values.length>1){const o=e.z??0,i=r.irregularSpacing.values,n=r.isPositiveUp?1:-1,s=i.reduce(((e,t)=>Math.abs(n*t-o)N.BV.normalize((0,c.q9)(e),0,!0)))],Le.prototype,"orientation",null),(0,o._)([(0,p.Cb)({type:Number,json:{read:!1},clonable:!1,range:{min:0,max:360}}),(0,k.p)((e=>N.BV.normalize((0,c.q9)(e),0,!0)))],Le.prototype,"tilt",null),(0,o._)([(0,p.Cb)({type:[Number],json:{write:!0}})],Le.prototype,"normal",void 0),(0,o._)([(0,p.Cb)({type:[Number],json:{write:!0}})],Le.prototype,"point",void 0),Le=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelDynamicSection")],Le);const De=Le;var Oe;let Ue=Oe=class extends z.wq{constructor(e){super(e),this.volumeId=0,this.verticalExaggeration=1,this.exaggerationMode="scale-height",this.verticalOffset=0,this.slices=new(n.Z.ofType(J)),this.dynamicSections=new(n.Z.ofType(De))}set slices(e){this._set("slices",(0,se.Z)(e,this._get("slices"),n.Z.ofType(J)))}set dynamicSections(e){this._set("dynamicSections",(0,se.Z)(e,this._get("dynamicSections"),n.Z.ofType(De)))}clone(){return new Oe({volumeId:this.volumeId,verticalExaggeration:this.verticalExaggeration,exaggerationMode:this.exaggerationMode,verticalOffset:this.verticalOffset,slices:(0,re.d9)(this.slices),dynamicSections:(0,re.d9)(this.dynamicSections)})}};(0,o._)([(0,p.Cb)({type:c.z8,json:{write:{enabled:!0,isRequired:!0}}})],Ue.prototype,"volumeId",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{default:1,write:!0}})],Ue.prototype,"verticalExaggeration",void 0),(0,o._)([(0,p.Cb)({type:["scale-position","scale-height"],json:{default:"scale-height",write:!0}})],Ue.prototype,"exaggerationMode",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{default:0,write:!0}})],Ue.prototype,"verticalOffset",void 0),(0,o._)([(0,p.Cb)({type:n.Z.ofType(J),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.slices&&this.slices.length>0}}}}})],Ue.prototype,"slices",null),(0,o._)([(0,p.Cb)({type:n.Z.ofType(De),json:{write:{enabled:!0,overridePolicy(){return{enabled:!!this.dynamicSections&&this.dynamicSections.length>0}}}}})],Ue.prototype,"dynamicSections",null),Ue=Oe=(0,o._)([(0,h.j)("esri.layers.voxel.VoxelVolumeStyle")],Ue);const Ee=Ue;var Be=r(10171);let ke=class extends((0,j.Vt)((0,v.Y)((0,w.q)((0,x.I)((0,_.M)((0,l.R)((0,S.N)((0,g.V)(b.Z))))))))){constructor(e){super(e),this.serviceRoot="",this.operationalLayerType="Voxel",this.legendEnabled=!0,this.title=null,this.sections=null,this.currentVariableId=0,this.volumeStyles=null,this.renderMode="volume",this.variableStyles=null,this.enableSlices=!0,this.enableSections=!0,this.enableDynamicSections=!0,this.enableIsosurfaces=!0,this.shading=new Q,this.opacity=1,this.variables=new n.Z,this.volumes=new n.Z,this.index=null,this.minScale=0,this.maxScale=0,this.type="voxel",this.version={major:Number.NaN,minor:Number.NaN,versionString:""},this.fullExtent=null,this.popupEnabled=!1,this.test=null,this.volumeStyles=new(n.Z.ofType(Ee)),this.variableStyles=new(n.Z.ofType(_e)),this.sections=new(n.Z.ofType(Y))}normalizeCtorArgs(e){return e?.constantUpscaling&&(this.test={constantUpscaling:!0},delete e.constantUpscaling),e}set url(e){this._set("url",(0,C.Nm)(e,a.Z.getLogger(this)))}load(e){const t=null!=e?e.signal:null,r=this.loadFromPortal({supportedTypes:["Scene Service"]},e).catch(u.r9).then((()=>this._fetchService(t))).then((()=>this.serviceRoot=this.url));return this.addResolvingPromise(r),Promise.resolve(this)}read(e,t){super.read(e,t);for(const e of this.volumes)e.spatialReference=this.spatialReference}readVersion(e,t){return super.parseVersionString(e)}validateLayer(e){if(e.layerType&&e.layerType!==this.operationalLayerType)throw new s.Z("voxel-layer:layer-type-not-supported","VoxelLayer does not support this layer type",{layerType:e.layerType});if(isNaN(this.version.major)||isNaN(this.version.minor)||this.version.major<3)throw new s.Z("layer:service-version-not-supported","Service version is not supported.",{serviceVersion:this.version.versionString,supportedVersions:"3.x"});if(this.version.major>3)throw new s.Z("layer:service-version-too-new","Service version is too new.",{serviceVersion:this.version.versionString,supportedVersions:"3.x"})}readFullExtent(e,t,r){if(null!=e&&"object"==typeof e){const o=m.Z.fromJSON(e,r);if(0===o.zmin&&0===o.zmax&&Array.isArray(t.volumes)){const e=Ae.fromJSON(t.volumes[0]);if(e.isValid&&"xyt"!==e.volumeType){const t=e.dimensions[2];if(t.isRegular){let e=t.regularSpacing.offset,r=t.regularSpacing.offset+t.regularSpacing.scale*(t.size-1);if(e>r){const t=e;e=r,r=t}o.zmin=e,o.zmax=r}}}return o}return null}get voxelFields(){const e=[new I.Z({name:"Voxel.ServiceValue",alias:"Value",domain:null,editable:!1,length:128,type:"string"}),new I.Z({name:"Voxel.ServiceVariableLabel",alias:"Variable",domain:null,editable:!1,length:128,type:"string"}),new I.Z({name:"Voxel.Position",alias:"Voxel Position",domain:null,editable:!1,length:128,type:"string"})],t=this.getVolume(null);if(null!=t){if("xyzt"===t.volumeType||"xyt"===t.volumeType){const t=new I.Z({name:"Voxel.ServiceLocalTime",alias:"Local Time",domain:null,editable:!1,length:128,type:"string"});e.push(t);const r=new I.Z({name:"Voxel.ServiceNativeTime",alias:"Native Time",domain:null,editable:!1,length:128,type:"string"});e.push(r)}if("xyt"!==t.volumeType){const t=new I.Z({name:"Voxel.ServiceDepth",alias:"Depth",domain:null,editable:!1,length:128,type:"string"});e.push(t)}}return e}get popupTemplate(){return this.loaded?this.createPopupTemplate():null}get defaultPopupTemplate(){return this.createPopupTemplate()}createPopupTemplate(e){const t=this.voxelFields,r=this.title;return(0,Be.eZ)({fields:t,title:r},e)}getConfiguration(){const e={layerType:this.operationalLayerType,version:this.version.versionString,name:this.title,spatialReference:this.spatialReference,fullExtent:this.fullExtent,volumes:this.volumes.toJSON(),variables:this.variables.toJSON(),index:this.index?.toJSON(),sections:this.getSections(),style:{volumeStyles:this.getVolumeStyles(),currentVariableId:this.currentVariableId,renderMode:this.renderMode,variableStyles:this.getVariableStyles(),enableSections:this.enableSections,enableDynamicSections:this.enableDynamicSections,enableIsosurfaces:this.enableIsosurfaces,enableSlices:this.enableSlices,shading:this.shading}};return e.index&&this.index?.isValid()?JSON.stringify(e):""}getVariableStyle(e){let t=-1;if(t=null!=e?e:this.currentVariableId,!this.variableStyles||-1===t)return null;const r=this.variableStyles.findIndex((e=>e.variableId===t));return r<0?null:this.variableStyles.at(r)}getVariable(e){let t=-1;if(t=null!=e?e:this.currentVariableId,!this.variables||-1===t)return null;const r=this.variables.findIndex((e=>e.id===t));return r<0?null:this.variables.at(r)}getVolume(e){const t=this.getVariable(e);return null!=t?this.volumes.find((({id:e})=>e===t.volumeId)):null}getVolumeStyle(e){const t=this.getVariable(e);return null!=t?this.volumeStyles.find((({volumeId:e})=>e===t.volumeId)):null}getColorForContinuousDataValue(e,t,r){const o=this.getVariable(e);if(null==o||"continuous"!==o.renderingFormat?.continuity)return null;if(!this.variableStyles)return null;const i=this.variableStyles.findIndex((t=>t.variableId===e));if(i<0)return null;const n=this.variableStyles.at(i);return n?.transferFunction?n.transferFunction.getColorForContinuousDataValue(t,r):null}getSections(){const e=[];for(const t of this.sections)e.push(new Y({enabled:t.enabled,href:t.href,id:t.id,label:t.label,normal:t.normal,point:t.point,sizeInPixel:t.sizeInPixel,slices:t.slices,timeId:t.timeId,variableId:t.variableId}));return e}getVariableStyles(){const e=[];for(const t of this.variableStyles){const r=this._getVariable(t);if(null!=r){const o=t.clone();o.isosurfaces.length>4&&(o.isosurfaces=o.isosurfaces.slice(0,3),a.Z.getLogger(this).error("A maximum of 4 isosurfaces are supported for Voxel Layers."));for(const e of o.isosurfaces)if(!e.colorLocked){const t=this.getColorForContinuousDataValue(o.variableId,e.value,!1);null===t||t.equals(e.color)||(e.color=t)}if("continuous"===r.renderingFormat.continuity)(null===o.transferFunction||o.transferFunction.colorStops.length<2)&&a.Z.getLogger(this).error(`VoxelVariableStyle for variable ${r.id} is invalid. At least 2 color stops are required in the transferFunction for continuous Voxel Layer variables.`),null!==o.transferFunction&&(Array.isArray(o.transferFunction.stretchRange)&&2===o.transferFunction.stretchRange.length||(a.Z.getLogger(this).error(`VoxelVariableStyle for variable ${r.id} is invalid. The stretchRange of the transferFunction for continuous Voxel Layer variables must be of the form [minimumDataValue, maximumDataValue].`),o.transferFunction.stretchRange=[0,1],o.transferFunction.colorStops.removeAll()));else if("discrete"===r.renderingFormat.continuity)if(0===t.uniqueValues.length)a.Z.getLogger(this).error(`VoxelVariableStyle for variable ${r.id} is invalid. Unique values are required for discrete Voxel Layer variables.`);else for(const e of t.uniqueValues)null!==e.label&&void 0!==e.label||null===e.value||void 0===e.value||(e.label=e.value.toString());e.push(o)}else a.Z.getLogger(this).error(`VoxelVariable ID=${t.variableId} doesn't exist, VoxelVariableStyle for this VoxelVariable will be ignored.`)}return e}getVolumeStyles(){const e=[];for(const t of this.volumeStyles){const r=this._getVolumeFromVolumeId(t.volumeId);if(null!=r){const o=t.clone();for(const e of o.slices)this._isPlaneValid(e,[0,1,r.zDimension],r.dimensions)||(e.enabled=!1,e.label="invalid");for(const e of o.dynamicSections)this._isPlaneValid(e,[0,1,r.zDimension],r.dimensions)||(e.enabled=!1,e.label="invalid");e.push(o)}else a.Z.getLogger(this).error(`VoxelVolume ID=${t.volumeId} doesn't exist, VoxelVolumeStyle for this VoxelVolume will be ignored.`)}return e}_getVariable(e){const t=e.variableId;for(const e of this.variables)if(e.id===t)return e;return null}_getVolumeFromVolumeId(e){for(const t of this.volumes)if(t.id===e)return t;return null}_isPlaneValid(e,t,r){if(!e.point)return!1;if(!Array.isArray(e.point)||3!==e.point.length)return!1;if(!e.normal)return!1;if(!Array.isArray(e.normal)||3!==e.normal.length)return!1;const o=(0,f.al)(e.normal[0],e.normal[1],e.normal[2]);(0,y.n)(o,o);return!(Math.abs(o[0])+Math.abs(o[1])+Math.abs(o[2])<1e-6||(e.normal[0]=o[0],e.normal[1]=o[1],e.normal[2]=o[2],0))}};(0,o._)([(0,p.Cb)({type:["Voxel"]})],ke.prototype,"operationalLayerType",void 0),(0,o._)([(0,p.Cb)(V.rn)],ke.prototype,"legendEnabled",void 0),(0,o._)([(0,p.Cb)({json:{write:!0}})],ke.prototype,"title",void 0),(0,o._)([(0,p.Cb)(V.HQ)],ke.prototype,"url",null),(0,o._)([(0,p.Cb)({type:n.Z.ofType(Y),json:{origins:{"web-scene":{name:"layerDefinition.sections",write:!0}}}})],ke.prototype,"sections",void 0),(0,o._)([(0,p.Cb)({type:c.z8,json:{origins:{"web-scene":{name:"layerDefinition.style.currentVariableId",write:{enabled:!0,isRequired:!0,ignoreOrigin:!0}},service:{name:"style.currentVariableId"}}}})],ke.prototype,"currentVariableId",void 0),(0,o._)([(0,p.Cb)({type:n.Z.ofType(Ee),json:{origins:{"web-scene":{name:"layerDefinition.style.volumeStyles",write:!0},service:{name:"style.volumeStyles"}}}})],ke.prototype,"volumeStyles",void 0),(0,o._)([(0,p.Cb)({type:["volume","surfaces"],json:{origins:{"web-scene":{name:"layerDefinition.style.renderMode",write:!0},service:{name:"style.renderMode"}}}})],ke.prototype,"renderMode",void 0),(0,o._)([(0,p.Cb)({type:n.Z.ofType(_e),json:{origins:{"web-scene":{name:"layerDefinition.style.variableStyles",write:!0},service:{name:"style.variableStyles"}}}})],ke.prototype,"variableStyles",void 0),(0,o._)([(0,p.Cb)({type:Boolean,json:{origins:{"web-scene":{name:"layerDefinition.style.enableSlices",write:!0},service:{name:"style.enableSlices"}}}})],ke.prototype,"enableSlices",void 0),(0,o._)([(0,p.Cb)({type:Boolean,json:{origins:{"web-scene":{name:"layerDefinition.style.enableSections",write:!0},service:{name:"style.enableSections"}}}})],ke.prototype,"enableSections",void 0),(0,o._)([(0,p.Cb)({type:Boolean,json:{origins:{"web-scene":{name:"layerDefinition.style.enableDynamicSections",write:!0},service:{name:"style.enableDynamicSections"}}}})],ke.prototype,"enableDynamicSections",void 0),(0,o._)([(0,p.Cb)({type:Boolean,json:{origins:{"web-scene":{name:"layerDefinition.style.enableIsosurfaces",write:!0},service:{name:"style.enableIsosurfaces"}}}})],ke.prototype,"enableIsosurfaces",void 0),(0,o._)([(0,p.Cb)({type:Q,json:{origins:{"web-scene":{name:"layerDefinition.style.shading",write:!0},service:{name:"style.shading"}}}})],ke.prototype,"shading",void 0),(0,o._)([(0,p.Cb)({type:["show","hide"]})],ke.prototype,"listMode",void 0),(0,o._)([(0,p.Cb)({type:Number,range:{min:0,max:1},nonNullable:!0,json:{read:!1,write:!1,origins:{"web-scene":{read:!1,write:!1},"portal-item":{read:!1,write:!1}}}})],ke.prototype,"opacity",void 0),(0,o._)([(0,p.Cb)({type:n.Z.ofType(te)})],ke.prototype,"variables",void 0),(0,o._)([(0,p.Cb)({type:n.Z.ofType(Ae)})],ke.prototype,"volumes",void 0),(0,o._)([(0,p.Cb)({type:Fe})],ke.prototype,"index",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:!1,write:!1}}}})],ke.prototype,"minScale",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:!1,write:!1}}}})],ke.prototype,"maxScale",void 0),(0,o._)([(0,p.Cb)({json:{read:!1},readOnly:!0})],ke.prototype,"type",void 0),(0,o._)([(0,p.Cb)({readOnly:!0,json:{name:"serviceVersion"}})],ke.prototype,"version",void 0),(0,o._)([(0,d.r)("service","version")],ke.prototype,"readVersion",null),(0,o._)([(0,p.Cb)({type:m.Z})],ke.prototype,"fullExtent",void 0),(0,o._)([(0,d.r)("service","fullExtent",["fullExtent"])],ke.prototype,"readFullExtent",null),(0,o._)([(0,p.Cb)({readOnly:!0,clonable:!1,json:{read:!1}})],ke.prototype,"voxelFields",null),(0,o._)([(0,p.Cb)({type:Boolean,json:{name:"disablePopup",read:{reader:(e,t)=>!t.disablePopup},write:{enabled:!0,ignoreOrigin:!0,writer(e,t,r){t[r]=!e}},origins:{"portal-item":{default:!0},"web-scene":{default:!0}}}})],ke.prototype,"popupEnabled",void 0),(0,o._)([(0,p.Cb)({type:i.Z,json:{read:!1}})],ke.prototype,"popupTemplate",null),(0,o._)([(0,p.Cb)({readOnly:!0})],ke.prototype,"defaultPopupTemplate",null),ke=(0,o._)([(0,h.j)("esri.layers.VoxelLayer")],ke);const $e=ke},93902:function(e,t,r){r.d(t,{xp:function(){return A},Vt:function(){return R}});var o=r(36663),i=r(66341),n=r(70375),s=r(13802),a=r(78668),l=r(3466),u=r(81977),p=(r(39994),r(4157),r(34248)),c=r(40266),d=r(39835),h=r(50516),y=r(91772),f=r(64307),m=r(14685),b=r(20692),g=r(51599),v=r(40909);let S=null;function w(){return S}var x=r(93968),_=r(53110),j=r(84513),C=r(83415),V=r(76990),I=r(60629);const R=e=>{let t=class extends e{constructor(){super(...arguments),this.spatialReference=null,this.fullExtent=null,this.heightModelInfo=null,this.minScale=0,this.maxScale=0,this.version={major:Number.NaN,minor:Number.NaN,versionString:""},this.copyright=null,this.sublayerTitleMode="item-title",this.title=null,this.layerId=null,this.indexInfo=null,this._debouncedSaveOperations=(0,a.Ds)((async(e,t,r)=>{switch(e){case A.SAVE:return this._save(t);case A.SAVE_AS:return this._saveAs(r,t)}}))}readSpatialReference(e,t){return this._readSpatialReference(t)}_readSpatialReference(e){if(null!=e.spatialReference)return m.Z.fromJSON(e.spatialReference);const t=e.store,r=t.indexCRS||t.geographicCRS,o=r&&parseInt(r.substring(r.lastIndexOf("/")+1,r.length),10);return null!=o?new m.Z(o):null}readFullExtent(e,t,r){if(null!=e&&"object"==typeof e){const o=null==e.spatialReference?{...e,spatialReference:this._readSpatialReference(t)}:e;return y.Z.fromJSON(o,r)}const o=t.store,i=this._readSpatialReference(t);return null==i||null==o?.extent||!Array.isArray(o.extent)||o.extent.some((e=>e=2&&(t.major=parseInt(r[0],10),t.minor=parseInt(r[1],10)),t}readVersion(e,t){const r=t.store,o=null!=r.version?r.version.toString():"";return this.parseVersionString(o)}readTitlePortalItem(e){return"item-title"!==this.sublayerTitleMode?void 0:e}readTitleService(e,t){const r=this.portalItem?.title;if("item-title"===this.sublayerTitleMode)return(0,b.a7)(this.url,t.name);let o=t.name;if(!o&&this.url){const e=(0,b.Qc)(this.url);null!=e&&(o=e.title)}return"item-title-and-service-name"===this.sublayerTitleMode&&r&&(o=r+" - "+o),(0,b.ld)(o)}set url(e){const t=(0,b.XG)({layer:this,url:e,nonStandardUrlAllowed:!1,logger:s.Z.getLogger(this)});this._set("url",t.url),null!=t.layerId&&this._set("layerId",t.layerId)}writeUrl(e,t,r,o){(0,b.wH)(this,e,"layers",t,o)}get parsedUrl(){const e=this._get("url"),t=(0,l.mN)(e);return null!=this.layerId&&(t.path=`${t.path}/layers/${this.layerId}`),t}async _fetchIndexAndUpdateExtent(e,t){this.indexInfo=(0,v.T)(this.parsedUrl.path,this.rootNode,e,this.customParameters,this.apiKey,s.Z.getLogger(this),t),null==this.fullExtent||this.fullExtent.hasZ||this._updateExtent(await this.indexInfo)}_updateExtent(e){if("page"===e?.type){const t=e.rootIndex%e.pageSize,r=e.rootPage?.nodes?.[t];if(null==r?.obb?.center||null==r.obb.halfSize)throw new n.Z("sceneservice:invalid-node-page","Invalid node page.");if(r.obb.center[0]0)return t.data.layers[0].id}async _fetchServiceLayer(e){const t=await(0,i.Z)(this.parsedUrl?.path??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e});t.ssl&&(this.url=this.url.replace(/^http:/i,"https:"));let r=!1;if(t.data.layerType&&"Voxel"===t.data.layerType&&(r=!0),r)return this._fetchVoxelServiceLayer();const o=t.data;this.read(o,this._getServiceContext()),this.validateLayer(o)}async _fetchVoxelServiceLayer(e){const t=(await(0,i.Z)(this.parsedUrl?.path+"/layer",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e})).data;this.read(t,this._getServiceContext()),this.validateLayer(t)}_getServiceContext(){return{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl}}async _ensureLoadBeforeSave(){await this.load(),"beforeSave"in this&&"function"==typeof this.beforeSave&&await this.beforeSave()}validateLayer(e){}_updateTypeKeywords(e,t,r){e.typeKeywords||(e.typeKeywords=[]);const o=t.getTypeKeywords();for(const t of o)e.typeKeywords.push(t);e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)),r===z.newItem&&(e.typeKeywords=e.typeKeywords.filter((e=>"Hosted Service"!==e))))}async _saveAs(e,t){const r={...T,...t};let o=_.default.from(e);if(!o)throw new n.Z("sceneservice:portal-item-required","_saveAs() requires a portal item to save to");(0,V.w)(o),o.id&&(o=o.clone(),o.id=null);const i=o.portal||x.Z.getDefault();await this._ensureLoadBeforeSave(),o.type=Z,o.portal=i;const s=(0,j.Y)(o,"portal-item",!0),a={layers:[this.write({},s)]};return await Promise.all(s.resources.pendingOperations??[]),await this._validateAgainstJSONSchema(a,s,r),o.url=this.url,o.title||(o.title=this.title),this._updateTypeKeywords(o,r,z.newItem),await i.signIn(),await(i.user?.addItem({item:o,folder:r?.folder,data:a})),await(0,C.H)(this.resourceReferences,s),this.portalItem=o,(0,h.D)(s),s.portalItem=o,o}async _save(e){const t={...T,...e};if(!this.portalItem)throw new n.Z("sceneservice:portal-item-not-set","Portal item to save to has not been set on this SceneService");if((0,V.w)(this.portalItem),this.portalItem.type!==Z)throw new n.Z("sceneservice:portal-item-wrong-type",`Portal item needs to have type "${Z}"`);await this._ensureLoadBeforeSave();const r=(0,j.Y)(this.portalItem,"portal-item",!0),o={layers:[this.write({},r)]};return await Promise.all(r.resources.pendingOperations??[]),await this._validateAgainstJSONSchema(o,r,t),this.portalItem.url=this.url,this.portalItem.title||(this.portalItem.title=this.title),this._updateTypeKeywords(this.portalItem,t,z.existingItem),await(0,C.b)(this.portalItem,o,this.resourceReferences,r),(0,h.D)(r),this.portalItem}async _validateAgainstJSONSchema(e,t,r){const o=r?.validationOptions;(0,I.z)(t,{errorName:"sceneservice:save"},{ignoreUnsupported:o?.ignoreUnsupported,supplementalUnsupportedErrors:["scenemodification:unsupported"]});const i=o?.enabled,a=w();if(i&&a){const t=(await a()).validate(e,r.portalItemLayerType);if(!t.length)return;const i=`Layer item did not validate:\n${t.join("\n")}`;if(s.Z.getLogger(this).error(`_validateAgainstJSONSchema(): ${i}`),"throw"===o.failPolicy){const e=t.map((e=>new n.Z("sceneservice:schema-validation",e)));throw new n.Z("sceneservice-validate:error","Failed to save layer item due to schema validation, see `details.errors`.",{validationErrors:e})}}}};return(0,o._)([(0,u.Cb)(g.id)],t.prototype,"id",void 0),(0,o._)([(0,u.Cb)({type:m.Z})],t.prototype,"spatialReference",void 0),(0,o._)([(0,p.r)("spatialReference",["spatialReference","store.indexCRS","store.geographicCRS"])],t.prototype,"readSpatialReference",null),(0,o._)([(0,u.Cb)({type:y.Z})],t.prototype,"fullExtent",void 0),(0,o._)([(0,p.r)("fullExtent",["fullExtent","store.extent","spatialReference","store.indexCRS","store.geographicCRS"])],t.prototype,"readFullExtent",null),(0,o._)([(0,u.Cb)({readOnly:!0,type:f.Z})],t.prototype,"heightModelInfo",void 0),(0,o._)([(0,u.Cb)({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:{source:"minScale"},write:!1}}}})],t.prototype,"minScale",void 0),(0,o._)([(0,u.Cb)({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:{source:"maxScale"},write:!1}}}})],t.prototype,"maxScale",void 0),(0,o._)([(0,u.Cb)({readOnly:!0})],t.prototype,"version",void 0),(0,o._)([(0,p.r)("version",["store.version"])],t.prototype,"readVersion",null),(0,o._)([(0,u.Cb)({type:String,json:{read:{source:"copyrightText"}}})],t.prototype,"copyright",void 0),(0,o._)([(0,u.Cb)({type:String,json:{read:!1}})],t.prototype,"sublayerTitleMode",void 0),(0,o._)([(0,u.Cb)({type:String})],t.prototype,"title",void 0),(0,o._)([(0,p.r)("portal-item","title")],t.prototype,"readTitlePortalItem",null),(0,o._)([(0,p.r)("service","title",["name"])],t.prototype,"readTitleService",null),(0,o._)([(0,u.Cb)({type:Number,json:{origins:{service:{read:{source:"id"}},"portal-item":{write:{target:"id",isRequired:!0,ignoreOrigin:!0},read:!1}}}})],t.prototype,"layerId",void 0),(0,o._)([(0,u.Cb)(g.HQ)],t.prototype,"url",null),(0,o._)([(0,d.c)("url")],t.prototype,"writeUrl",null),(0,o._)([(0,u.Cb)()],t.prototype,"parsedUrl",null),(0,o._)([(0,u.Cb)({readOnly:!0})],t.prototype,"store",void 0),(0,o._)([(0,u.Cb)({type:String,readOnly:!0,json:{read:{source:"store.rootNode"}}})],t.prototype,"rootNode",void 0),t=(0,o._)([(0,c.j)("esri.layers.mixins.SceneService")],t),t},N=-1e38;var z,q;(q=z||(z={}))[q.existingItem=0]="existingItem",q[q.newItem=1]="newItem";const Z="Scene Service",T={getTypeKeywords:()=>[],portalItemLayerType:"unknown",validationOptions:{enabled:!0,ignoreUnsupported:!1,failPolicy:"throw"}};var A;!function(e){e[e.SAVE=0]="SAVE",e[e.SAVE_AS=1]="SAVE_AS"}(A||(A={}))},40909:function(e,t,r){r.d(t,{T:function(){return n}});var o=r(66341),i=r(70375);async function n(e,t,r,n,s,a,l){let u=null;if(null!=r){const t=`${e}/nodepages/`,i=t+Math.floor(r.rootIndex/r.nodesPerPage);try{return{type:"page",rootPage:(await(0,o.Z)(i,{query:{f:"json",...n,token:s},responseType:"json",signal:l})).data,rootIndex:r.rootIndex,pageSize:r.nodesPerPage,lodMetric:r.lodSelectionMetricType,urlPrefix:t}}catch(e){null!=a&&a.warn("#fetchIndexInfo()","Failed to load root node page. Falling back to node documents.",i,e),u=e}}if(!t)return null;const p=t?.split("/").pop(),c=`${e}/nodes/`,d=c+p;try{return{type:"node",rootNode:(await(0,o.Z)(d,{query:{f:"json",...n,token:s},responseType:"json",signal:l})).data,urlPrefix:c}}catch(e){throw new i.Z("sceneservice:root-node-missing","Root node missing.",{pageError:u,nodeError:e,url:d})}}},68611:function(e,t,r){r.d(t,{FO:function(){return d},W7:function(){return h},addOrUpdateResources:function(){return a},fetchResources:function(){return s},removeAllResources:function(){return u},removeResource:function(){return l}});var o=r(66341),i=r(70375),n=r(3466);async function s(e,t={},r){await e.load(r);const o=(0,n.v_)(e.itemUrl,"resources"),{start:i=1,num:s=10,sortOrder:a="asc",sortField:l="resource"}=t,u={query:{start:i,num:s,sortOrder:a,sortField:l,token:e.apiKey},signal:r?.signal},p=await e.portal.request(o,u);return{total:p.total,nextStart:p.nextStart,resources:p.resources.map((({created:t,size:r,resource:o})=>({created:new Date(t),size:r,resource:e.resourceFromPath(o)})))}}async function a(e,t,r,o){const s=new Map;for(const{resource:e,content:o,compress:n,access:a}of t){if(!e.hasPath())throw new i.Z(`portal-item-resource-${r}:invalid-path`,"Resource does not have a valid path");const[t,l]=p(e.path),u=`${t}/${n??""}/${a??""}`;s.has(u)||s.set(u,{prefix:t,compress:n,access:a,files:[]}),s.get(u).files.push({fileName:l,content:o})}await e.load(o);const a=(0,n.v_)(e.userItemUrl,"add"===r?"addResources":"updateResources");for(const{prefix:t,compress:r,access:i,files:n}of s.values()){const s=25;for(let l=0;le.resource.path))),p=new Set,c=[];u.forEach((t=>{l.delete(t),e.paths.push(t)}));const d=[],h=[],y=[];for(const r of t.resources.toUpdate)if(l.delete(r.resource.path),u.has(r.resource.path)||p.has(r.resource.path)){const{resource:t,content:o,finish:i}=r,a=(0,s.W7)(t,(0,n.DO)());e.paths.push(a.path),d.push({resource:a,content:await(0,s.FO)(o),compress:r.compress}),i&&y.push((()=>i(a)))}else{e.paths.push(r.resource.path),h.push({resource:r.resource,content:await(0,s.FO)(r.content),compress:r.compress});const t=r.finish;t&&y.push((()=>t(r.resource))),p.add(r.resource.path)}for(const r of t.resources.toAdd)if(e.paths.push(r.resource.path),l.has(r.resource.path))l.delete(r.resource.path);else{d.push({resource:r.resource,content:await(0,s.FO)(r.content),compress:r.compress});const e=r.finish;e&&y.push((()=>e(r.resource)))}if(d.length||h.length){const{addOrUpdateResources:e}=await Promise.resolve().then(r.bind(r,68611));await e(t.portalItem,d,"add",a),await e(t.portalItem,h,"update",a)}if(y.forEach((e=>e())),0===c.length)return l;const f=await(0,i.UO)(c);if((0,i.k_)(a),f.length>0)throw new o.Z("save:resources","Failed to save one or more resources",{errors:f});return l}async function p(e,t,r){if(!e||!t.portalItem)return;const o=[];for(const i of e){const e=t.portalItem.resourceFromPath(i);o.push(e.portalItem.removeResource(e,r))}await(0,i.as)(o)}},76990:function(e,t,r){r.d(t,{w:function(){return s}});var o=r(51366),i=r(70375),n=r(99522);function s(e){if(o.default.apiKey&&(0,n.r)(e.portal.url))throw new i.Z("save-api-key-utils:api-key-not-supported",`Saving is not supported on ${e.portal.url} when using an api key`)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5532.2acc394a1573f22d5b02.js b/docs/sentinel1-explorer/5532.2acc394a1573f22d5b02.js new file mode 100644 index 00000000..6c9d95b3 --- /dev/null +++ b/docs/sentinel1-explorer/5532.2acc394a1573f22d5b02.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5532],{75532:function(e,_,r){r.r(_),r.d(_,{default:function(){return d}});const d={firstDayOfWeek:1,_decimalSeparator:",",_thousandSeparator:" ",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date:"yyyy-MM-dd",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"AD",_era_bc:"BC",A:"",P:"",AM:"",PM:"","A.M.":"","P.M.":"",January:"януари",February:"февруари",March:"март",April:"април",May:"май",June:"юни",July:"юли",August:"август",September:"септември",October:"октомври",November:"ноември",December:"декември",Jan:"януари",Feb:"февруари",Mar:"март",Apr:"април","May (short)":"май",Jun:"юни",Jul:"юли",Aug:"август",Sep:"септември",Oct:"октомври",Nov:"ноември",Dec:"декември",Sunday:"неделя",Monday:"понеделник",Tuesday:"вторник",Wednesday:"сряда",Thursday:"четвъртък",Friday:"петък",Saturday:"събота",Sun:"нд",Mon:"пн",Tues:"вт",Wed:"ср",Thu:"чт",Fri:"пт",Sat:"сб",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Отдалечаване",Play:"",Stop:"",Legend:"","Press ENTER to toggle":"",Loading:"",Home:"",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Force directed tree":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"",Image:"",Data:"",Print:"","Press ENTER or use arrow keys to navigate":"","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"От %1 до %2","From %1":"От %1","To %1":"До %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":"",Close:"",Minimize:""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5553.6a84c24f672ce3567ae3.js b/docs/sentinel1-explorer/5553.6a84c24f672ce3567ae3.js new file mode 100644 index 00000000..dc68549b --- /dev/null +++ b/docs/sentinel1-explorer/5553.6a84c24f672ce3567ae3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5553],{98786:function(e,t,r){r.d(t,{B:function(){return y}});var s=r(70375),i=r(86630),o=r(71760),n=r(3466),a=r(12173),l=r(41610),p=r(65943),u=r(81977),d=r(51876),c=r(16641);function y(e){const t=e?.origins??[void 0];return(r,s)=>{const i=function(e,t,r){if("resource"===e?.type)return function(e,t,r){const s=(0,l.Oe)(t,r);return{type:String,read:(e,t,r)=>{const i=(0,c.r)(e,t,r);return s.type===String?i:"function"==typeof s.type?new s.type({url:i}):void 0},write:{writer(t,i,a,l){if(!l?.resources)return"string"==typeof t?void(i[a]=(0,c.t)(t,l)):void(i[a]=t.write({},l));const u=function(e){return null==e?null:"string"==typeof e?e:e.url}(t),y=(0,c.t)(u,{...l,verifyItemRelativeUrls:l?.verifyItemRelativeUrls?{writtenUrls:l.verifyItemRelativeUrls.writtenUrls,rootPath:void 0}:void 0},c.M.NO),g=s.type!==String&&(!(0,o.l)(this)||l?.origin&&this.originIdOf(r)>(0,p.M9)(l.origin)),v={object:this,propertyName:r,value:t,targetUrl:y,dest:i,targetPropertyName:a,context:l,params:e};l?.portalItem&&y&&!(0,n.YP)(y)?g&&e?.contentAddressed?h(v):g?function(e){const{context:t,targetUrl:r,params:s,value:i,dest:o,targetPropertyName:a}=e;if(!t.portalItem)return;const l=t.portalItem.resourceFromPath(r),p=m(i,r,t),u=(0,d.B)(p),c=(0,n.Ml)(l.path),y=s?.compress??!1;u===c?(t.resources&&f({...e,resource:l,content:p,compress:y,updates:t.resources.toUpdate}),o[a]=r):h(e)}(v):function({context:e,targetUrl:t,dest:r,targetPropertyName:s}){e.portalItem&&e.resources&&(e.resources.toKeep.push({resource:e.portalItem.resourceFromPath(t),compress:!1}),r[s]=t)}(v):l?.portalItem&&(null==y||null!=(0,c.i)(y)||(0,n.jc)(y)||g)?h(v):i[a]=y}}}}(e,t,r);switch(e?.type??"other"){case"other":return{read:!0,write:!0};case"url":{const{read:e,write:t}=c.b;return{read:e,write:t}}}}(e,r,s);for(const e of t){const t=(0,u.CJ)(r,e,s);for(const e in i)t[e]=i[e]}}}function h(e){const{targetUrl:t,params:r,value:o,context:l,dest:p,targetPropertyName:u}=e;if(!l.portalItem)return;const y=(0,c.p)(t),h=m(o,t,l);if(r?.contentAddressed&&"json"!==h.type)return void l.messages?.push(new s.Z("persistable:contentAddressingUnsupported",`Property "${u}" is trying to serializing a resource with content of type ${h.type} with content addressing. Content addressing is only supported for json resources.`,{content:h}));const g=r?.contentAddressed&&"json"===h.type?(0,i.F)(h.jsonString):y?.filename??(0,a.DO)(),v=(0,n.v_)(r?.prefix??y?.prefix,g),b=`${v}.${(0,d.B)(h)}`;if(r?.contentAddressed&&l.resources&&"json"===h.type){const e=l.resources.toKeep.find((({resource:e})=>e.path===b))??l.resources.toAdd.find((({resource:e})=>e.path===b));if(e)return void(p[u]=e.resource.itemRelativeUrl)}const w=l.portalItem.resourceFromPath(b);(0,n.jc)(t)&&l.resources&&l.resources.pendingOperations.push((0,n.gi)(t).then((e=>{w.path=`${v}.${(0,d.B)({type:"blob",blob:e})}`,p[u]=w.itemRelativeUrl})).catch((()=>{})));const I=r?.compress??!1;l.resources&&f({...e,resource:w,content:h,compress:I,updates:l.resources.toAdd}),p[u]=w.itemRelativeUrl}function f({object:e,propertyName:t,updates:r,resource:s,content:i,compress:o}){r.push({resource:s,content:i,compress:o,finish:r=>{!function(e,t,r){"string"==typeof e[t]?e[t]=r.url:e[t].url=r.url}(e,t,r)}})}function m(e,t,r){return"string"==typeof e?{type:"url",url:t}:{type:"json",jsonString:JSON.stringify(e.toJSON(r))}}},5553:function(e,t,r){r.r(t),r.d(t,{default:function(){return Le}});var s=r(36663),i=r(80085),o=r(80020),n=(r(86004),r(55565),r(16192),r(71297),r(878),r(22836),r(50172),r(72043),r(72506),r(54021)),a=r(66341),l=r(41151),p=r(6865),u=r(70375),d=r(13802),c=r(15842),y=r(78668),h=r(76868),f=r(3466),m=r(81977),g=(r(39994),r(4157),r(95620)),v=r(34248),b=r(40266),w=r(65943),I=r(97518),_=r(67666),S=r(38481),F=r(30676),L=r(91223),C=r(87232),x=r(63989),j=r(15801),A=r(43330),E=r(18241),O=r(95874),T=r(93902),P=r(23745),R=r(20692),Z=r(53264),U=r(31484),D=r(51599),N=r(23556),q=r(48257),Q=r(69766),$=r(89076),k=r(28790),G=r(14845),M=r(97304),V=r(13449),B=r(26732),z=r(49341),H=r(94081),K=r(92557),J=r(82064);let W=class extends J.wq{constructor(){super(...arguments),this.name=null,this.field=null,this.currentRangeExtent=null,this.fullRangeExtent=null,this.type="rangeInfo"}};(0,s._)([(0,m.Cb)({type:String,json:{read:!0,write:!0}})],W.prototype,"name",void 0),(0,s._)([(0,m.Cb)({type:String,json:{read:!0,write:!0}})],W.prototype,"field",void 0),(0,s._)([(0,m.Cb)({type:[Number],json:{read:!0,write:!0}})],W.prototype,"currentRangeExtent",void 0),(0,s._)([(0,m.Cb)({type:[Number],json:{read:!0,write:!0}})],W.prototype,"fullRangeExtent",void 0),(0,s._)([(0,m.Cb)({type:["rangeInfo"],readOnly:!0,json:{read:!1,write:!0}})],W.prototype,"type",void 0),W=(0,s._)([(0,b.j)("esri.layers.support.RangeInfo")],W);var Y,X=r(67134),ee=r(98786),te=r(96863),re=r(89542),se=r(28105);let ie=Y=class extends((0,J.eC)(p.Z.ofType(re.Z))){constructor(e){super(e)}clone(){return new Y(this.items.map((e=>e.clone())))}write(e,t){return this.toJSON(t)}toJSON(e){const t=e?.layer?.spatialReference;return t?this.toArray().map((r=>{if(!t.equals(r.spatialReference)){if(!(0,se.canProjectWithoutEngine)(r.spatialReference,t))return e?.messages&&e.messages.push(new te.Z("scenefilter:unsupported","Scene filters with incompatible spatial references are not supported",{modification:this,spatialReference:e.layer.spatialReference,context:e})),null;const s=new re.Z;(0,se.projectPolygon)(r,s,t),r=s}const s=r.toJSON(e);return delete s.spatialReference,s})).filter((e=>null!=e)):(e?.messages&&e.messages.push(new te.Z("scenefilter:unsupported","Writing Scene filters without context layer is not supported",{modification:this,spatialReference:e.layer.spatialReference,context:e})),this.toArray().map((t=>t.toJSON(e))))}static fromJSON(e,t){const r=new Y;return e.forEach((e=>r.add(re.Z.fromJSON(e,t)))),r}};ie=Y=(0,s._)([(0,b.j)("esri.layers.support.PolygonCollection")],ie);const oe=ie;var ne,ae=r(16641);let le=ne=class extends J.wq{constructor(e){super(e),this.spatialRelationship="disjoint",this.geometries=new oe,this._geometriesSource=null}initialize(){this.addHandles((0,h.on)((()=>this.geometries),"after-changes",(()=>this.geometries=this.geometries),h.Z_))}readGeometries(e,t,r){Array.isArray(e)?this.geometries=oe.fromJSON(e,r):this._geometriesSource={url:(0,ae.f)(e,r),context:r}}async loadGeometries(e,t){if(null==this._geometriesSource)return;const{url:r,context:s}=this._geometriesSource,i=await(0,a.Z)(r,{responseType:"json",signal:t?.signal}),o=e.toJSON(),n=i.data.map((e=>({...e,spatialReference:o})));this.geometries=oe.fromJSON(n,s),this._geometriesSource=null}clone(){const e=new ne({geometries:(0,X.d9)(this.geometries),spatialRelationship:this.spatialRelationship});return e._geometriesSource=this._geometriesSource,e}};(0,s._)([(0,m.Cb)({type:["disjoint","contains"],nonNullable:!0,json:{write:!0}})],le.prototype,"spatialRelationship",void 0),(0,s._)([(0,m.Cb)({type:oe,nonNullable:!0,json:{write:!0}}),(0,ee.B)({origins:["web-scene","portal-item"],type:"resource",prefix:"geometries",contentAddressed:!0})],le.prototype,"geometries",void 0),(0,s._)([(0,v.r)(["web-scene","portal-item"],"geometries")],le.prototype,"readGeometries",null),le=ne=(0,s._)([(0,b.j)("esri.layers.support.SceneFilter")],le);const pe=le;var ue=r(16603),de=r(14136),ce=r(83772),ye=r(51622),he=r(10171);async function fe(e){const t=[];for(const r of e)r.name.toLowerCase().endsWith(".zip")?t.push(me(r)):t.push(Promise.resolve(r));return(await Promise.all(t)).flat()}async function me(e){const{BlobReader:t,ZipReader:s,BlobWriter:i}=await r.e(4339).then(r.bind(r,64339)),o=[],n=new s(new t(e));return(await n.getEntries()).forEach((e=>{if(e.directory||/^__MACOS/i.test(e.filename))return;const t=new i,r=e.getData?.(t).then((t=>new File([t],e.filename)));r&&o.push(r)})),Promise.all(o)}var ge=r(32411),ve=r(59439),be=r(78621);const we=new Set(["3DObject","Point"]),Ie=(0,$.v)();let _e=class extends((0,P.G)((0,j.o1)((0,T.Vt)((0,C.Y)((0,A.q)((0,E.I)((0,O.M)((0,c.R)((0,x.N)((0,L.V)((0,l.J)(S.Z)))))))))))){constructor(...e){super(...e),this.featureReduction=null,this.rangeInfos=null,this.operationalLayerType="ArcGISSceneServiceLayer",this.type="scene",this.fields=null,this.floorInfo=null,this.outFields=null,this.nodePages=null,this.materialDefinitions=null,this.textureSetDefinitions=null,this.geometryDefinitions=null,this.serviceUpdateTimeStamp=null,this.excludeObjectIds=new p.Z,this.definitionExpression=null,this.filter=null,this.path=null,this.labelsVisible=!0,this.labelingInfo=null,this.legendEnabled=!0,this.priority=null,this.semantic=null,this.cachedDrawingInfo={color:!1},this.popupEnabled=!0,this.popupTemplate=null,this.objectIdField=null,this.globalIdField=null,this._fieldUsageInfo={},this.screenSizePerspectiveEnabled=!0,this.serviceItemId=void 0}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}destroy(){this._set("renderer",null)}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){const r=this.getFeatureType(t?.feature)?.domains?.[e];return r&&"inherited"!==r.type?r:this.getField(e)?.domain??null}getFeatureType(e){return e&&this.associatedLayer?this.associatedLayer.getFeatureType(e):null}get types(){return this.associatedLayer?.types??[]}get typeIdField(){return this.associatedLayer?.typeIdField??null}get templates(){return this.associatedLayer?.templates??null}get formTemplate(){return this.associatedLayer?.formTemplate??null}get fieldsIndex(){return new k.Z(this.fields)}readNodePages(e,t,r){return"Point"===t.layerType&&(e=t.pointNodePages),null==e||"object"!=typeof e?null:M.U4.fromJSON(e,r)}set elevationInfo(e){this._set("elevationInfo",e),this.loaded&&this._validateElevationInfo()}get effectiveCapabilities(){return this._capabilitiesFromAssociatedFeatureLayer(this.associatedLayer?.effectiveCapabilities)}get effectiveEditingEnabled(){return null!=this.associatedLayer&&(0,N.sX)(this.associatedLayer)}get geometryType(){return Fe[this.profile]||"mesh"}set renderer(e){(0,G.YN)(e,this.fieldsIndex),this._set("renderer",e)}readCachedDrawingInfo(e){return null!=e&&"object"==typeof e||(e={}),null==e.color&&(e.color=!1),e}get capabilities(){return this._capabilitiesFromAssociatedFeatureLayer(this.associatedLayer?.capabilities)}_capabilitiesFromAssociatedFeatureLayer(e){e=null!=e?e:U.C;const{query:t,queryRelated:r,editing:{supportsGlobalId:s,supportsRollbackOnFailure:i,supportsUploadWithItemId:o,supportsGeometryUpdate:n,supportsReturnServiceEditsInSourceSpatialReference:a},data:{supportsZ:l,supportsM:p,isVersioned:u,supportsAttachment:d},operations:{supportsEditing:c,supportsAdd:y,supportsUpdate:h,supportsDelete:f,supportsQuery:m,supportsQueryAttachments:g,supportsAsyncConvert3D:v}}=e,b=e.operations.supportsChangeTracking,w=!!this.associatedLayer?.infoFor3D&&(0,ye.Rx)();return{query:t,queryRelated:r,editing:{supportsGlobalId:s,supportsReturnServiceEditsInSourceSpatialReference:a,supportsRollbackOnFailure:i,supportsGeometryUpdate:w&&n,supportsUploadWithItemId:o},data:{supportsAttachment:d,supportsZ:l,supportsM:p,isVersioned:u},operations:{supportsQuery:m,supportsQueryAttachments:g,supportsEditing:c&&b,supportsAdd:w&&y&&b,supportsDelete:w&&f&&b,supportsUpdate:h&&b,supportsAsyncConvert3D:v}}}get editingEnabled(){return this._isOverridden("editingEnabled")?this._get("editingEnabled"):this.associatedLayer?.editingEnabled??!1}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}get infoFor3D(){return this.associatedLayer?.infoFor3D??null}get relationships(){return this.associatedLayer?.relationships}get defaultPopupTemplate(){return this.associatedLayer||this.attributeStorageInfo?this.createPopupTemplate():null}readObjectIdField(e,t){return!e&&t.fields&&t.fields.some((t=>("esriFieldTypeOID"===t.type&&(e=t.name),!!e))),e||void 0}readGlobalIdField(e,t){return!e&&t.fields&&t.fields.some((t=>("esriFieldTypeGlobalID"===t.type&&(e=t.name),!!e))),e||void 0}get displayField(){return this.associatedLayer?.displayField??null}readProfile(e,t){const r=t.store.profile;return null!=r&&Se[r]?Se[r]:(d.Z.getLogger(this).error("Unknown or missing profile",{profile:r,layer:this}),"mesh-pyramids")}load(e){return this.addResolvingPromise(this._load(e)),Promise.resolve(this)}async _load(e){const t=null!=e?e.signal:null;await this.loadFromPortal({supportedTypes:["Scene Service"]},e).catch(y.r9),await this._fetchService(t),await Promise.all([this._fetchIndexAndUpdateExtent(this.nodePages,t),this._setAssociatedFeatureLayer(t),this._loadFilterGeometries()]),this._validateElevationInfo(),this._applyAssociatedLayerOverrides(),this._populateFieldUsageInfo(),await(0,ue.y)(this,{origin:"service"},t),(0,G.YN)(this.renderer,this.fieldsIndex),await this.finishLoadEditablePortalLayer(e)}async beforeSave(){null!=this.filter&&(this.filter=this.filter.clone(),await this.load())}async _loadFilterGeometries(){if(this.filter)try{await this.filter.loadGeometries(this.spatialReference)}catch(e){d.Z.getLogger(this).error("#_loadFilterGeometries()",this,"Failed to load filter geometries. Geometry filter will not be applied for this layer.",{error:e}),this.filter=null}}createQuery(){const e=new de.Z;return"mesh"!==this.geometryType&&(e.returnGeometry=!0,e.returnZ=!0),e.where=this.definitionExpression||"1=1",e.sqlFormat="standard",e.outFields=["*"],e}queryExtent(e,t){return this._getAssociatedLayerForQuery().then((r=>r.queryExtent(e||this.createQuery(),t)))}queryFeatureCount(e,t){return this._getAssociatedLayerForQuery().then((r=>r.queryFeatureCount(e||this.createQuery(),t)))}queryFeatures(e,t){return this._getAssociatedLayerForQuery().then((r=>r.queryFeatures(e||this.createQuery(),t))).then((e=>{if(e?.features)for(const t of e.features)t.layer=this,t.sourceLayer=this;return e}))}async queryRelatedFeatures(e,t){if(await this.load(),!this.associatedLayer)throw new u.Z("scenelayer:query-not-available","SceneLayer queries are not available without an associated feature layer",{layer:this});return this.associatedLayer.queryRelatedFeatures(e,t)}async queryRelatedFeaturesCount(e,t){if(await this.load(),!this.associatedLayer)throw new u.Z("scenelayer:query-not-available","SceneLayer queries are not available without an associated feature layer",{layer:this});return this.associatedLayer.queryRelatedFeaturesCount(e,t)}async queryCachedAttributes(e,t){const r=(0,G.Lk)(this.fieldsIndex,await(0,ve.e7)(this,(0,ve.V5)(this)));return(0,ge.xe)(this.parsedUrl.path,this.attributeStorageInfo??[],e,t,r,this.apiKey,this.customParameters)}async queryCachedFeature(e,t){const r=await this.queryCachedAttributes(e,[t]);if(!r||0===r.length)throw new u.Z("scenelayer:feature-not-in-cached-data","Feature not found in cached data");const s=new i.Z;return s.attributes=r[0],s.layer=this,s.sourceLayer=this,s}queryObjectIds(e,t){return this._getAssociatedLayerForQuery().then((r=>r.queryObjectIds(e||this.createQuery(),t)))}queryAttachments(e,t){return this._getAssociatedLayerForQuery().then((r=>r.queryAttachments(e,t)))}getFieldUsageInfo(e){const t={supportsLabelingInfo:!1,supportsRenderer:!1,supportsPopupTemplate:!1,supportsLayerQuery:!1};return this.loaded?this._fieldUsageInfo[e]||t:(d.Z.getLogger(this).error("#getFieldUsageInfo()","Unavailable until layer is loaded"),t)}createPopupTemplate(e){return(0,he.eZ)(this,e)}_getAssociatedLayerForQuery(){const e=this.associatedLayer;return e?.loaded?Promise.resolve(e):this._loadAssociatedLayerForQuery()}async _loadAssociatedLayerForQuery(){if(await this.load(),!this.associatedLayer)throw new u.Z("scenelayer:query-not-available","SceneLayer queries are not available without an associated feature layer",{layer:this});try{await this.associatedLayer.load()}catch(e){throw new u.Z("scenelayer:query-not-available","SceneLayer associated feature layer could not be loaded",{layer:this,error:e})}return this.associatedLayer}hasCachedStatistics(e){return null!=this.statisticsInfo&&this.statisticsInfo.some((t=>t.name===e))}async queryCachedStatistics(e,t){if(await this.load(t),!this.statisticsInfo)throw new u.Z("scenelayer:no-cached-statistics","Cached statistics are not available for this layer");const r=this.fieldsIndex.get(e);if(!r)throw new u.Z("scenelayer:field-unexisting",`Field '${e}' does not exist on the layer`);for(const e of this.statisticsInfo)if(e.name===r.name){const r=(0,f.v_)(this.parsedUrl.path,e.href);return(0,a.Z)(r,{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:t?t.signal:null}).then((e=>e.data))}throw new u.Z("scenelayer:no-cached-statistics","Cached statistics for this attribute are not available")}async saveAs(e,t){return this._debouncedSaveOperations(T.xp.SAVE_AS,{...t,getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:"scene"},e)}async save(){const e={getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:"scene"};return this._debouncedSaveOperations(T.xp.SAVE,e)}async applyEdits(e,t){const{applyEdits:s}=await r.e(3261).then(r.bind(r,23261));let i=t;await this.load();const o=this.associatedLayer;if(!o)throw new u.Z(`${this.type}-layer:not-editable`,"Service is not editable");await o.load();const{globalIdField:n}=o,a=!!o.infoFor3D,l=i?.globalIdUsed??!0;if(a&&null==n)throw new u.Z(`${this.type}-layer:not-editable`,"Valid globalIdField expected on editable SceneLayer");if(a&&!l)throw new u.Z(`${this.type}-layer:globalid-required`,"globalIdUsed must not be false for SceneLayer editing as globalIds are required.");return(0,R.M8)(o.url)&&a&&null!=e.deleteFeatures&&null!=n&&(i={...i,globalIdToObjectId:await(0,N.HW)(o,e.deleteFeatures,n)}),s(this,o.source,e,i)}async uploadAssets(e,t){if(await this.load(),null==this.associatedLayer)throw new u.Z(`${this.type}-layer:not-editable`,"Service is not editable");return await this.associatedLayer.load(),this.associatedLayer.uploadAssets(e,t)}on(e,t){return super.on(e,t)}async convertMesh(e,t){const r=e=>{throw d.Z.getLogger(this).error(".convertMesh()",e.message),e};await this.load(),this.infoFor3D||r(new u.Z("invalid:layer","SceneLayer has no capability for mesh conversion"));const s=await this.extractAndFilterFiles(e),i=s.reduce(((e,t)=>(0,V.$z)(this.infoFor3D,t)?e+1:e),0);0===i&&r(new F.Q_),i>1&&r(new F.i1);const o=this.spatialReference,n=t?.location??new _.Z({x:0,y:0,z:0,spatialReference:o}),a=n.spatialReference.isGeographic?"local":"georeferenced",l=I.Z.createWithExternalSource(n,s,{vertexSpace:a}),[p]=await this.uploadAssets([l],t);return p}async extractAndFilterFiles(e){await this.load();const t=this.infoFor3D;return t?(await fe(e)).filter((e=>(0,V.F7)(t,e))):e}validateLayer(e){if(e.layerType&&!we.has(e.layerType))throw new u.Z("scenelayer:layer-type-not-supported","SceneLayer does not support this layer type",{layerType:e.layerType});if(isNaN(this.version.major)||isNaN(this.version.minor))throw new u.Z("layer:service-version-not-supported","Service version is not supported.",{serviceVersion:this.version.versionString,supportedVersions:"1.x, 2.x"});if(this.version.major>2)throw new u.Z("layer:service-version-too-new","Service version is too new.",{serviceVersion:this.version.versionString,supportedVersions:"1.x, 2.x"});!function(e,t){let r=!1,s=!1;if(null==e)r=!0,s=!0;else{const i=t&&t.isGeographic;switch(e){case"east-north-up":case"earth-centered":r=!0,s=i;break;case"vertex-reference-frame":r=!0,s=!i;break;default:r=!1}}if(!r)throw new u.Z("scenelayer:unsupported-normal-reference-frame","Normal reference frame is invalid.");if(!s)throw new u.Z("scenelayer:incompatible-normal-reference-frame","Normal reference frame is incompatible with layer spatial reference.")}(this.normalReferenceFrame,this.spatialReference)}_getTypeKeywords(){const e=[];if("points"===this.profile)e.push("Point");else{if("mesh-pyramids"!==this.profile)throw new u.Z("scenelayer:unknown-profile","SceneLayer:save() encountered an unknown SceneLayer profile: "+this.profile);e.push("3DObject")}return e}_populateFieldUsageInfo(){if(this._fieldUsageInfo={},this.fields)for(const e of this.fields){const t=!(!this.attributeStorageInfo||!this.attributeStorageInfo.some((t=>t.name===e.name))),r=!!this.associatedLayer?.fields?.some((t=>t&&e.name===t.name)),s={supportsLabelingInfo:t,supportsRenderer:t,supportsPopupTemplate:t||r,supportsLayerQuery:r};this._fieldUsageInfo[e.name]=s}}_applyAssociatedLayerOverrides(){this._applyAssociatedLayerFieldsOverrides(),this._applyAssociatedLayerPopupOverrides(),this._applyAssociatedLayerExtentOverride(),this._applyAssociatedLayerPrivileges()}_applyAssociatedLayerFieldsOverrides(){if(!this.associatedLayer?.fields)return;let e=null;for(const t of this.associatedLayer.fields){const r=this.getField(t.name);r?(!r.domain&&t.domain&&(r.domain=t.domain.clone()),r.editable=t.editable,r.nullable=t.nullable,r.length=t.length):(e||(e=this.fields?this.fields.slice():[]),e.push(t.clone()))}e&&this._set("fields",e)}_applyAssociatedLayerPopupOverrides(){if(!this.associatedLayer)return;const e=["popupTemplate","popupEnabled"],t=(0,g.vw)(this);for(let r=0;rthis.popupEnabled&&null!=this.popupTemplate));const e=`this SceneLayer: ${this.title}`;null==this.attributeStorageInfo?d.Z.getLogger(this).warn(`Associated FeatureLayer could not be loaded and no binary attributes found. Popups will not work on ${e}`):d.Z.getLogger(this).info(`Associated FeatureLayer could not be loaded. Falling back to binary attributes for Popups on ${e}`)}_validateElevationInfo(){const e=this.elevationInfo;"mesh-pyramids"===this.profile&&(0,ce.LR)(d.Z.getLogger(this),(0,ce.Wb)("Mesh scene layers","relative-to-scene",e)),(0,ce.LR)(d.Z.getLogger(this),(0,ce.kf)("Scene layers",e))}};(0,s._)([(0,m.Cb)({types:{key:"type",base:q.B,typeMap:{selection:Q.Z}},json:{origins:{"web-scene":{name:"layerDefinition.featureReduction",write:!0},"portal-item":{name:"layerDefinition.featureReduction",write:!0}}}})],_e.prototype,"featureReduction",void 0),(0,s._)([(0,m.Cb)({type:[W],json:{read:!1,origins:{"web-scene":{name:"layerDefinition.rangeInfos",write:!0},"portal-item":{name:"layerDefinition.rangeInfos",write:!0}}}})],_e.prototype,"rangeInfos",void 0),(0,s._)([(0,m.Cb)({json:{read:!1}})],_e.prototype,"associatedLayer",void 0),(0,s._)([(0,m.Cb)({type:["show","hide"]})],_e.prototype,"listMode",void 0),(0,s._)([(0,m.Cb)({type:["ArcGISSceneServiceLayer"]})],_e.prototype,"operationalLayerType",void 0),(0,s._)([(0,m.Cb)({json:{read:!1},readOnly:!0})],_e.prototype,"type",void 0),(0,s._)([(0,m.Cb)({...Ie.fields,readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],_e.prototype,"fields",void 0),(0,s._)([(0,m.Cb)()],_e.prototype,"types",null),(0,s._)([(0,m.Cb)()],_e.prototype,"typeIdField",null),(0,s._)([(0,m.Cb)()],_e.prototype,"templates",null),(0,s._)([(0,m.Cb)()],_e.prototype,"formTemplate",null),(0,s._)([(0,m.Cb)({readOnly:!0,clonable:!1})],_e.prototype,"fieldsIndex",null),(0,s._)([(0,m.Cb)({type:H.Z,json:{read:{source:"layerDefinition.floorInfo"},write:{target:"layerDefinition.floorInfo"}}})],_e.prototype,"floorInfo",void 0),(0,s._)([(0,m.Cb)(Ie.outFields)],_e.prototype,"outFields",void 0),(0,s._)([(0,m.Cb)({type:M.U4,readOnly:!0,json:{read:!1}})],_e.prototype,"nodePages",void 0),(0,s._)([(0,v.r)("service","nodePages",["nodePages","pointNodePages"])],_e.prototype,"readNodePages",null),(0,s._)([(0,m.Cb)({type:[M.QI],readOnly:!0})],_e.prototype,"materialDefinitions",void 0),(0,s._)([(0,m.Cb)({type:[M.Yh],readOnly:!0})],_e.prototype,"textureSetDefinitions",void 0),(0,s._)([(0,m.Cb)({type:[M.H3],readOnly:!0})],_e.prototype,"geometryDefinitions",void 0),(0,s._)([(0,m.Cb)({readOnly:!0})],_e.prototype,"serviceUpdateTimeStamp",void 0),(0,s._)([(0,m.Cb)({readOnly:!0})],_e.prototype,"attributeStorageInfo",void 0),(0,s._)([(0,m.Cb)({readOnly:!0})],_e.prototype,"statisticsInfo",void 0),(0,s._)([(0,m.Cb)({type:p.Z.ofType(Number),nonNullable:!0,json:{origins:{service:{read:!1,write:!1}},name:"layerDefinition.excludeObjectIds",write:{enabled:!0}}})],_e.prototype,"excludeObjectIds",void 0),(0,s._)([(0,m.Cb)({type:String,json:{origins:{service:{read:!1,write:!1}},name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],_e.prototype,"definitionExpression",void 0),(0,s._)([(0,m.Cb)({type:pe,json:{name:"layerDefinition.polygonFilter",write:{enabled:!0,allowNull:!0},origins:{service:{read:!1,write:!1}}}})],_e.prototype,"filter",void 0),(0,s._)([(0,m.Cb)({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],_e.prototype,"path",void 0),(0,s._)([(0,m.Cb)(D.PV)],_e.prototype,"elevationInfo",null),(0,s._)([(0,m.Cb)({readOnly:!0,json:{read:!1}})],_e.prototype,"effectiveCapabilities",null),(0,s._)([(0,m.Cb)({readOnly:!0})],_e.prototype,"effectiveEditingEnabled",null),(0,s._)([(0,m.Cb)({type:String})],_e.prototype,"geometryType",null),(0,s._)([(0,m.Cb)(D.iR)],_e.prototype,"labelsVisible",void 0),(0,s._)([(0,m.Cb)({type:[B.Z],json:{origins:{service:{name:"drawingInfo.labelingInfo",read:{reader:z.r},write:!1}},name:"layerDefinition.drawingInfo.labelingInfo",read:{reader:z.r},write:!0}})],_e.prototype,"labelingInfo",void 0),(0,s._)([(0,m.Cb)(D.rn)],_e.prototype,"legendEnabled",void 0),(0,s._)([(0,m.Cb)({type:Number,json:{origins:{"web-document":{default:1,write:{enabled:!0,target:{opacity:{type:Number},"layerDefinition.drawingInfo.transparency":{type:Number}}},read:{source:["opacity","layerDefinition.drawingInfo.transparency"],reader(e,t){if("number"==typeof e&&e>=0&&e<=1)return e;const r=t.layerDefinition?.drawingInfo?.transparency;return void 0!==r?(0,be.b)(r):void 0}}},"portal-item":{write:!0},service:{read:!1}}}})],_e.prototype,"opacity",void 0),(0,s._)([(0,m.Cb)({type:["Low","High"],readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],_e.prototype,"priority",void 0),(0,s._)([(0,m.Cb)({type:["Labels"],readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],_e.prototype,"semantic",void 0),(0,s._)([(0,m.Cb)({types:n.o,json:{origins:{service:{read:{source:"drawingInfo.renderer"}}},name:"layerDefinition.drawingInfo.renderer",write:!0},value:null})],_e.prototype,"renderer",null),(0,s._)([(0,m.Cb)({json:{read:!1}})],_e.prototype,"cachedDrawingInfo",void 0),(0,s._)([(0,v.r)("service","cachedDrawingInfo")],_e.prototype,"readCachedDrawingInfo",null),(0,s._)([(0,m.Cb)({readOnly:!0,json:{read:!1}})],_e.prototype,"capabilities",null),(0,s._)([(0,m.Cb)({type:Boolean,json:{read:!1}})],_e.prototype,"editingEnabled",null),(0,s._)([(0,m.Cb)({readOnly:!0,json:{write:!1,read:!1}})],_e.prototype,"infoFor3D",null),(0,s._)([(0,m.Cb)({readOnly:!0,json:{write:!1,read:!1}})],_e.prototype,"relationships",null),(0,s._)([(0,m.Cb)(D.C_)],_e.prototype,"popupEnabled",void 0),(0,s._)([(0,m.Cb)({type:o.Z,json:{name:"popupInfo",write:!0}})],_e.prototype,"popupTemplate",void 0),(0,s._)([(0,m.Cb)({readOnly:!0,json:{read:!1}})],_e.prototype,"defaultPopupTemplate",null),(0,s._)([(0,m.Cb)({type:String,json:{read:!1}})],_e.prototype,"objectIdField",void 0),(0,s._)([(0,v.r)("service","objectIdField",["objectIdField","fields"])],_e.prototype,"readObjectIdField",null),(0,s._)([(0,m.Cb)({type:String,json:{read:!1}})],_e.prototype,"globalIdField",void 0),(0,s._)([(0,v.r)("service","globalIdField",["globalIdField","fields"])],_e.prototype,"readGlobalIdField",null),(0,s._)([(0,m.Cb)({readOnly:!0,type:String,json:{read:!1}})],_e.prototype,"displayField",null),(0,s._)([(0,m.Cb)({type:String,json:{read:!1}})],_e.prototype,"profile",void 0),(0,s._)([(0,v.r)("service","profile",["store.profile"])],_e.prototype,"readProfile",null),(0,s._)([(0,m.Cb)({readOnly:!0,type:String,json:{origins:{service:{read:{source:"store.normalReferenceFrame"}}},read:!1}})],_e.prototype,"normalReferenceFrame",void 0),(0,s._)([(0,m.Cb)(D.YI)],_e.prototype,"screenSizePerspectiveEnabled",void 0),(0,s._)([(0,m.Cb)({json:{read:!1,origins:{service:{read:!0}}}})],_e.prototype,"serviceItemId",void 0),_e=(0,s._)([(0,b.j)("esri.layers.SceneLayer")],_e);const Se={"mesh-pyramids":"mesh-pyramids",meshpyramids:"mesh-pyramids","features-meshes":"mesh-pyramids",points:"points","features-points":"points",lines:"lines","features-lines":"lines",polygons:"polygons","features-polygons":"polygons"},Fe={"mesh-pyramids":"mesh",points:"point",lines:"polyline",polygons:"polygon"},Le=_e},30676:function(e,t,r){r.d(t,{AC:function(){return p},Fz:function(){return d},Q_:function(){return f},_C:function(){return u},fB:function(){return c},i1:function(){return m},jO:function(){return y},kE:function(){return l},ks:function(){return a},s8:function(){return h},sc:function(){return n}});var s=r(70375);const i="upload-assets",o=()=>new Error;class n extends s.Z{constructor(){super(`${i}:unsupported`,"Layer does not support asset uploads.",o())}}class a extends s.Z{constructor(){super(`${i}:no-glb-support`,"Layer does not support glb.",o())}}class l extends s.Z{constructor(){super(`${i}:no-supported-source`,"No supported external source found",o())}}class p extends s.Z{constructor(){super(`${i}:not-base-64`,"Expected gltf data in base64 format after conversion.",o())}}class u extends s.Z{constructor(){super(`${i}:unable-to-prepare-options`,"Unable to prepare uploadAsset request options.",o())}}class d extends s.Z{constructor(e,t){super(`${i}:bad-response`,`Bad response. Uploaded ${e} items and received ${t} results.`,o())}}class c extends s.Z{constructor(e,t){super(`${i}-layer:upload-failed`,`Failed to upload mesh file ${e}. Error code: ${t?.code??"-1"}. Error message: ${t?.messages??"unknown"}`,o())}}class y extends s.Z{constructor(e){super(`${i}-layer:unsupported-format`,`The service allowed us to upload an asset of FormatID ${e}, but it does not list it in its supported formats.`,o())}}class h extends s.Z{constructor(){super(`${i}:convert3D-failed`,"convert3D failed.")}}class f extends s.Z{constructor(){super("invalid-input:no-model","No supported model found")}}class m extends s.Z{constructor(){super("invalid-input:multiple-models","Multiple supported models found")}}},23745:function(e,t,r){r.d(t,{G:function(){return u}});var s=r(36663),i=r(37956),o=r(74589),n=r(81977),a=(r(39994),r(13802),r(4157),r(40266)),l=r(14845),p=r(23756);const u=e=>{let t=class extends e{get timeInfo(){const e=this.associatedLayer?.timeInfo;if(null==e)return e;const t=e.clone();return(0,l.UF)(t,this.fieldsIndex),t}set timeInfo(e){(0,l.UF)(e,this.fieldsIndex),this._override("timeInfo",e)}get timeExtent(){return this.associatedLayer?.timeExtent}set timeExtent(e){this._override("timeExtent",e)}get timeOffset(){return this.associatedLayer?.timeOffset}set timeOffset(e){this._override("timeOffset",e)}get useViewTime(){return this.associatedLayer?.useViewTime??!0}set useViewTime(e){this._override("useViewTime",e)}get datesInUnknownTimezone(){return this.associatedLayer?.datesInUnknownTimezone??!1}set datesInUnknownTimezone(e){this._override("datesInUnknownTimezone",e)}};return(0,s._)([(0,n.Cb)({type:p.Z})],t.prototype,"timeInfo",null),(0,s._)([(0,n.Cb)({type:i.Z})],t.prototype,"timeExtent",null),(0,s._)([(0,n.Cb)({type:o.Z})],t.prototype,"timeOffset",null),(0,s._)([(0,n.Cb)({type:Boolean,nonNullable:!0})],t.prototype,"useViewTime",null),(0,s._)([(0,n.Cb)({type:Boolean,nonNullable:!0})],t.prototype,"datesInUnknownTimezone",null),t=(0,s._)([(0,a.j)("esri.layers.mixins.TemporalSceneLayer")],t),t}},53264:function(e,t,r){r.d(t,{w:function(){return u}});var s=r(88256),i=r(66341),o=r(70375),n=r(78668),a=r(20692),l=r(93968),p=r(53110);async function u(e,t){const r=(0,a.Qc)(e);if(!r)throw new o.Z("invalid-url","Invalid scene service url");const u={...t,sceneServerUrl:r.url.path,layerId:r.sublayer??void 0};if(u.sceneLayerItem??=await async function(e){const t=(await d(e)).serviceItemId;if(!t)return null;const r=new p.default({id:t,apiKey:e.apiKey}),o=await async function(e){const t=s.id?.findServerInfo(e.sceneServerUrl);if(t?.owningSystemUrl)return t.owningSystemUrl;const r=e.sceneServerUrl.replace(/(.*\/rest)\/.*/i,"$1")+"/info";try{const t=(await(0,i.Z)(r,{query:{f:"json"},responseType:"json",signal:e.signal})).data.owningSystemUrl;if(t)return t}catch(e){(0,n.r9)(e)}return null}(e);null!=o&&(r.portal=new l.Z({url:o}));try{return r.load({signal:e.signal})}catch(e){return(0,n.r9)(e),null}}(u),null==u.sceneLayerItem)return c(u.sceneServerUrl.replace("/SceneServer","/FeatureServer"),u);const y=await async function({sceneLayerItem:e,signal:t}){if(!e)return null;try{const r=(await e.fetchRelatedItems({relationshipType:"Service2Service",direction:"reverse"},{signal:t})).find((e=>"Feature Service"===e.type))||null;if(!r)return null;const s=new p.default({portal:r.portal,id:r.id});return await s.load(),s}catch(e){return(0,n.r9)(e),null}}(u);if(!y?.url)throw new o.Z("related-service-not-found","Could not find feature service through portal item relationship");u.featureServiceItem=y;const h=await c(y.url,u);return h.portalItem=y,h}async function d(e){if(e.rootDocument)return e.rootDocument;const t={query:{f:"json",...e.customParameters,token:e.apiKey},responseType:"json",signal:e.signal};try{const r=await(0,i.Z)(e.sceneServerUrl,t);e.rootDocument=r.data}catch{e.rootDocument={}}return e.rootDocument}async function c(e,t){const r=(0,a.Qc)(e);if(!r)throw new o.Z("invalid-feature-service-url","Invalid feature service url");const s=r.url.path,n=t.layerId;if(null==n)return{serverUrl:s};const l=d(t),p=t.featureServiceItem?await t.featureServiceItem.fetchData("json"):null,u=(p?.layers?.[0]||p?.tables?.[0])?.customParameters,c=e=>{const r={query:{f:"json",...u},responseType:"json",authMode:e,signal:t.signal};return(0,i.Z)(s,r)},y=c("anonymous").catch((()=>c("no-prompt"))),[h,f]=await Promise.all([y,l]),m=f?.layers,g=h.data&&h.data.layers;if(!Array.isArray(g))throw new Error("expected layers array");if(Array.isArray(m)){for(let e=0;e{const{keyField:r}=t;u&&r&&e.fieldsIndex?.has(r)&&!u.includes(r)&&u.push(r)})),u}function o(e,t){return e.popupTemplate?e.popupTemplate:null!=t&&t.defaultPopupTemplateEnabled&&null!=e.defaultPopupTemplate?e.defaultPopupTemplate:null}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5609.e2938abc38f2a459d027.js b/docs/sentinel1-explorer/5609.e2938abc38f2a459d027.js new file mode 100644 index 00000000..b8393b4a --- /dev/null +++ b/docs/sentinel1-explorer/5609.e2938abc38f2a459d027.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5609],{75609:function(e,t,i){i.r(t),i.d(t,{default:function(){return K}});var r,s=i(36663),o=(i(91957),i(80020)),n=(i(86004),i(55565),i(16192),i(71297),i(878),i(22836),i(50172),i(72043),i(72506)),a=i(54021),l=i(66341),p=i(41151),d=i(70375),c=i(23148),u=i(67134),h=i(13802),y=i(15842),m=i(78668),b=i(81977),f=i(7283),v=i(34248),g=i(40266),w=i(59659),_=i(38481),S=i(87232),C=i(27668),I=i(63989),x=i(22368),R=i(82733),j=i(43330),T=i(18241),F=i(12478),k=i(95874),O=i(2030),P=i(51599),A=i(23556),Z=i(12512),E=i(89076),D=i(14845),N=i(26732),U=i(49341),L=i(82064);i(39994),i(4157);let M=r=class extends L.wq{constructor(){super(...arguments),this.age=null,this.ageReceived=null,this.displayCount=null,this.maxObservations=1}clone(){return new r({age:this.age,ageReceived:this.ageReceived,displayCount:this.displayCount,maxObservations:this.maxObservations})}};(0,s._)([(0,b.Cb)({type:Number,json:{write:!0}})],M.prototype,"age",void 0),(0,s._)([(0,b.Cb)({type:Number,json:{write:!0}})],M.prototype,"ageReceived",void 0),(0,s._)([(0,b.Cb)({type:Number,json:{write:!0}})],M.prototype,"displayCount",void 0),(0,s._)([(0,b.Cb)({type:Number,json:{write:!0}})],M.prototype,"maxObservations",void 0),M=r=(0,s._)([(0,g.j)("esri.layers.support.PurgeOptions")],M);const V=M;var J=i(16603),z=i(14136),G=i(10171),q=i(74710),Y=i(48498),$=i(14685),Q=i(91772);const W=(0,E.v)();function H(e,t){return new d.Z("layer:unsupported",`Layer (${e.title}, ${e.id}) of type '${e.declaredClass}' ${t}`,{layer:e})}let B=class extends((0,R.M)((0,x.b)((0,C.h)((0,O.n)((0,k.M)((0,F.Q)((0,S.Y)((0,j.q)((0,T.I)((0,y.R)((0,I.N)((0,p.J)(_.Z))))))))))))){constructor(...e){super(...e),this.copyright=null,this.definitionExpression=null,this.displayField=null,this.elevationInfo=null,this.fields=null,this.fieldsIndex=null,this.geometryDefinition=null,this.geometryType=null,this.labelsVisible=!0,this.labelingInfo=null,this.legendEnabled=!0,this.maxReconnectionAttempts=0,this.maxReconnectionInterval=20,this.maxScale=0,this.minScale=0,this.objectIdField=null,this.operationalLayerType="ArcGISStreamLayer",this.outFields=["*"],this.popupEnabled=!0,this.popupTemplate=null,this.purgeOptions=new V,this.refreshInterval=0,this.screenSizePerspectiveEnabled=!0,this.sourceJSON=null,this.spatialReference=$.Z.WGS84,this.type="stream",this.url=null,this.updateInterval=300,this.useViewTime=!0,this.webSocketUrl=null,this._debouncedSaveOperations=(0,m.Ds)((async(e,t,r)=>{const{save:s,saveAs:o}=await i.e(2942).then(i.bind(i,42942));switch(e){case Y.x.SAVE:return s(this,t);case Y.x.SAVE_AS:return o(this,r,t)}}))}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){if(!("WebSocket"in globalThis))return this.addResolvingPromise(Promise.reject(new d.Z("stream-layer:websocket-unsupported","WebSocket is not supported in this browser. StreamLayer will not have real-time connection with the stream service."))),Promise.resolve(this);const t=null!=e?e.signal:null;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Stream Service","Feed"]},e).catch(m.r9).then((()=>this._fetchService(t)))),Promise.resolve(this)}get defaultPopupTemplate(){return this.createPopupTemplate()}set featureReduction(e){const t=this._normalizeFeatureReduction(e);this._set("featureReduction",t)}set renderer(e){(0,D.YN)(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,t,i){t=t.layerDefinition||t;const r=t.drawingInfo?.renderer;if(r){const e=(0,n.a)(r,t,i)||void 0;return e||h.Z.getLogger(this).error("Failed to create renderer",{rendererDefinition:t.drawingInfo.renderer,layer:this,context:i}),e}return(0,A.Ob)(t,i)}async connect(e){const[{createConnection:t}]=await Promise.all([i.e(8705).then(i.bind(i,8705)),this.load()]),r=this.geometryType?w.M.toJSON(this.geometryType):null,{customParameters:s=null,definitionExpression:o=null,geometryDefinition:n=null,maxReconnectionAttempts:a=0,maxReconnectionInterval:l=20,spatialReference:p=this.spatialReference}=e||this.createConnectionParameters(),d=t(this.parsedUrl,this.spatialReference,p,r,o,n,a,l,s??void 0),u=(0,c.AL)([this.on("send-message-to-socket",(e=>d.sendMessageToSocket(e))),this.on("send-message-to-client",(e=>d.sendMessageToClient(e)))]);return d.once("destroy",u.remove),d}createConnectionParameters(){return{spatialReference:this.spatialReference,customParameters:this.customParameters,definitionExpression:this.definitionExpression,geometryDefinition:this.geometryDefinition,maxReconnectionAttempts:this.maxReconnectionAttempts,maxReconnectionInterval:this.maxReconnectionInterval}}createPopupTemplate(e){return(0,G.eZ)(this,e)}createQuery(){const e=new z.Z;return e.returnGeometry=!0,e.outFields=["*"],e.where=this.definitionExpression||"1=1",e}getFieldDomain(e,t){if(!this.fields)return null;let i=null;return this.fields.some((t=>(t.name===e&&(i=t.domain),!!i))),i}getField(e){return this.fieldsIndex.get(e)}serviceSupportsSpatialReference(e){return!0}sendMessageToSocket(e){this.emit("send-message-to-socket",e)}sendMessageToClient(e){this.emit("send-message-to-client",e)}async save(e){return this._debouncedSaveOperations(Y.x.SAVE,e)}async saveAs(e,t){return this._debouncedSaveOperations(Y.x.SAVE_AS,t,e)}write(e,t){const i=t?.messages;return this.webSocketUrl?(i?.push(H(this,"using a custom websocket connection cannot be written to web scenes and web maps")),null):this.parsedUrl?super.write(e,t):(i?.push(H(this,"using a client-side only connection without a url cannot be written to web scenes and web maps")),null)}async _fetchService(e){if(!this.webSocketUrl&&this.parsedUrl){if(!this.sourceJSON){const{data:t}=await(0,l.Z)(this.parsedUrl.path,{query:{f:"json",...this.customParameters,...this.parsedUrl.query},responseType:"json",signal:e});this.sourceJSON=t}}else{if(!this.timeInfo?.trackIdField)throw new d.Z("stream-layer:missing-metadata","The stream layer trackIdField must be specified.");if(!this.objectIdField){const e=this.fields.find((e=>"oid"===e.type))?.name;if(!e)throw new d.Z("stream-layer:missing-metadata","The stream layer objectIdField must be specified.");this.objectIdField=e}if(!this.fields)throw new d.Z("stream-layer:missing-metadata","The stream layer fields must be specified.");if(this.fields.some((e=>e.name===this.objectIdField))||this.fields.push(new Z.Z({name:this.objectIdField,alias:this.objectIdField,type:"oid"})),!this.geometryType)throw new d.Z("stream-layer:missing-metadata","The stream layer geometryType must be specified.");this.webSocketUrl&&(this.url=this.webSocketUrl)}return this.read(this.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl}),(0,D.YN)(this.renderer,this.fieldsIndex),(0,D.UF)(this.timeInfo,this.fieldsIndex),this.objectIdField||(this.objectIdField="__esri_stream_id__"),(0,J.y)(this,{origin:"service"})}};(0,s._)([(0,b.Cb)({type:String})],B.prototype,"copyright",void 0),(0,s._)([(0,b.Cb)({readOnly:!0})],B.prototype,"defaultPopupTemplate",null),(0,s._)([(0,b.Cb)({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],B.prototype,"definitionExpression",void 0),(0,s._)([(0,b.Cb)({type:String})],B.prototype,"displayField",void 0),(0,s._)([(0,b.Cb)({type:q.Z})],B.prototype,"elevationInfo",void 0),(0,s._)([(0,b.Cb)({json:{origins:{"web-map":{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-scene":{read:!1,write:!1}}}})],B.prototype,"featureReduction",null),(0,s._)([(0,b.Cb)(W.fields)],B.prototype,"fields",void 0),(0,s._)([(0,b.Cb)(W.fieldsIndex)],B.prototype,"fieldsIndex",void 0),(0,s._)([(0,b.Cb)({type:Q.Z,json:{name:"layerDefinition.definitionGeometry",write:!0}})],B.prototype,"geometryDefinition",void 0),(0,s._)([(0,b.Cb)({type:w.M.apiValues,json:{read:{reader:w.M.read}}})],B.prototype,"geometryType",void 0),(0,s._)([(0,b.Cb)(P.iR)],B.prototype,"labelsVisible",void 0),(0,s._)([(0,b.Cb)({type:[N.Z],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:{reader:U.r},write:!0}})],B.prototype,"labelingInfo",void 0),(0,s._)([(0,b.Cb)(P.rn)],B.prototype,"legendEnabled",void 0),(0,s._)([(0,b.Cb)({type:["show","hide"],json:{origins:{"portal-item":{read:!1,write:!1}}}})],B.prototype,"listMode",void 0),(0,s._)([(0,b.Cb)({type:f.z8})],B.prototype,"maxReconnectionAttempts",void 0),(0,s._)([(0,b.Cb)({type:f.z8})],B.prototype,"maxReconnectionInterval",void 0),(0,s._)([(0,b.Cb)(P.u1)],B.prototype,"maxScale",void 0),(0,s._)([(0,b.Cb)(P.rO)],B.prototype,"minScale",void 0),(0,s._)([(0,b.Cb)({type:String})],B.prototype,"objectIdField",void 0),(0,s._)([(0,b.Cb)({value:"ArcGISStreamLayer",type:["ArcGISStreamLayer"]})],B.prototype,"operationalLayerType",void 0),(0,s._)([(0,b.Cb)({readOnly:!0})],B.prototype,"outFields",void 0),(0,s._)([(0,b.Cb)(P.C_)],B.prototype,"popupEnabled",void 0),(0,s._)([(0,b.Cb)({type:o.Z,json:{name:"popupInfo",write:!0}})],B.prototype,"popupTemplate",void 0),(0,s._)([(0,b.Cb)({type:V})],B.prototype,"purgeOptions",void 0),(0,s._)([(0,b.Cb)({json:{read:!1,write:!1}})],B.prototype,"refreshInterval",void 0),(0,s._)([(0,b.Cb)({types:a.A,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{name:"layerDefinition.drawingInfo.renderer",types:a.o,write:!0}},write:{target:"layerDefinition.drawingInfo.renderer"}}})],B.prototype,"renderer",null),(0,s._)([(0,v.r)("service","renderer",["drawingInfo.renderer","defaultSymbol"]),(0,v.r)("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],B.prototype,"readRenderer",null),(0,s._)([(0,b.Cb)((()=>{const e=(0,u.d9)(P.YI);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],B.prototype,"screenSizePerspectiveEnabled",void 0),(0,s._)([(0,b.Cb)()],B.prototype,"sourceJSON",void 0),(0,s._)([(0,b.Cb)({type:$.Z,json:{origins:{service:{read:{source:"spatialReference"}}}}})],B.prototype,"spatialReference",void 0),(0,s._)([(0,b.Cb)({json:{read:!1}})],B.prototype,"type",void 0),(0,s._)([(0,b.Cb)(P.HQ)],B.prototype,"url",void 0),(0,s._)([(0,b.Cb)({type:Number})],B.prototype,"updateInterval",void 0),(0,s._)([(0,b.Cb)({json:{read:!1,write:!1}})],B.prototype,"useViewTime",void 0),(0,s._)([(0,b.Cb)({type:String})],B.prototype,"webSocketUrl",void 0),B=(0,s._)([(0,g.j)("esri.layers.StreamLayer")],B);const K=B}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5618.30b544dfe969fc317516.js b/docs/sentinel1-explorer/5618.30b544dfe969fc317516.js new file mode 100644 index 00000000..f6c3cadb --- /dev/null +++ b/docs/sentinel1-explorer/5618.30b544dfe969fc317516.js @@ -0,0 +1,2 @@ +/*! For license information please see 5618.30b544dfe969fc317516.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5618],{85618:function(e,t,n){n.r(t),n.d(t,{CalciteLabel:function(){return s},defineCustomElement:function(){return r}});var i=n(77210),l=n(81629);const a="container",o=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.calciteInternalLabelClick=(0,i.yM)(this,"calciteInternalLabelClick",2),this.labelClickHandler=e=>{this.calciteInternalLabelClick.emit({sourceEvent:e})},this.alignment="start",this.for=void 0,this.scale="m",this.layout="default"}handleForChange(){(0,l.a)(this.el)}connectedCallback(){document.dispatchEvent(new CustomEvent(l.l))}disconnectedCallback(){document.dispatchEvent(new CustomEvent(l.b))}render(){return(0,i.h)(i.AA,{onClick:this.labelClickHandler},(0,i.h)("div",{class:a},(0,i.h)("slot",null)))}get el(){return this}static get watchers(){return{for:["handleForChange"]}}static get style(){return":host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:flex}:host([alignment=start]){text-align:start}:host([alignment=end]){text-align:end}:host([alignment=center]){text-align:center}:host([scale=s]) .container{gap:0.25rem;font-size:var(--calcite-font-size--2);line-height:1rem;margin-block-end:var(--calcite-label-margin-bottom, 0.5rem)}:host([scale=m]) .container{gap:0.5rem;font-size:var(--calcite-font-size--1);line-height:1rem;margin-block-end:var(--calcite-label-margin-bottom, 0.75rem)}:host([scale=l]) .container{gap:0.5rem;font-size:var(--calcite-font-size-0);line-height:1.25rem;margin-block-end:var(--calcite-label-margin-bottom, 1rem)}:host .container{margin-inline:0px;margin-block-start:0px;inline-size:100%;line-height:1.375;color:var(--calcite-color-text-1)}:host([layout=default]) .container{display:flex;flex-direction:column}:host([layout=inline]) .container,:host([layout=inline-space-between]) .container{display:flex;flex-direction:row;align-items:center;gap:0.5rem}:host([layout=inline][scale=l]) .container{gap:0.75rem}:host([layout=inline-space-between]) .container{justify-content:space-between}:host([disabled])>.container{opacity:var(--calcite-opacity-disabled)}:host([disabled]) ::slotted(*[disabled]),:host([disabled]) ::slotted(*[disabled] *){--tw-bg-opacity:1}:host([disabled]) ::slotted(calcite-input-message:not([active])){--tw-bg-opacity:0}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-label",{alignment:[513],for:[513],scale:[513],layout:[513]},void 0,{for:["handleForChange"]}]);function c(){if("undefined"==typeof customElements)return;["calcite-label"].forEach((e=>{if("calcite-label"===e)customElements.get(e)||customElements.define(e,o)}))}c();const s=o,r=c},90326:function(e,t,n){function i(e){return"l"===e?"m":"s"}async function l(e){await(function(e){return"function"==typeof e.componentOnReady}(e)?e.componentOnReady():new Promise((e=>requestAnimationFrame((()=>e())))))}n.d(t,{c:function(){return l},g:function(){return i}})},81629:function(e,t,n){n.d(t,{a:function(){return w},b:function(){return c},c:function(){return b},d:function(){return g},g:function(){return v},l:function(){return o}});var i=n(79145),l=n(90326);const a="calciteInternalLabelClick",o="calciteInternalLabelConnected",c="calciteInternalLabelDisconnected",s="calcite-label",r=new WeakMap,d=new WeakMap,u=new WeakMap,h=new WeakMap,m=new Set,f=e=>{const{id:t}=e,n=t&&(0,i.q)(e,{selector:`${s}[for="${t}"]`});if(n)return n;const l=(0,i.c)(e,s);return!l||function(e,t){let n;const i="custom-element-ancestor-check",l=i=>{i.stopImmediatePropagation();const l=i.composedPath();n=l.slice(l.indexOf(t),l.indexOf(e))};e.addEventListener(i,l,{once:!0}),t.dispatchEvent(new CustomEvent(i,{composed:!0,bubbles:!0})),e.removeEventListener(i,l);const a=n.filter((n=>n!==t&&n!==e)).filter((e=>e.tagName?.includes("-")));return a.length>0}(l,e)?null:l};function b(e){if(!e)return;const t=f(e.el);if(d.has(t)&&t===e.labelEl||!t&&m.has(e))return;const n=k.bind(e);if(t){e.labelEl=t;const i=r.get(t)||[];i.push(e),r.set(t,i.sort(p)),d.has(e.labelEl)||(d.set(e.labelEl,E),e.labelEl.addEventListener(a,E)),m.delete(e),document.removeEventListener(o,u.get(e)),h.set(e,n),document.addEventListener(c,n)}else m.has(e)||(n(),document.removeEventListener(c,h.get(e)))}function g(e){if(!e)return;if(m.delete(e),document.removeEventListener(o,u.get(e)),document.removeEventListener(c,h.get(e)),u.delete(e),h.delete(e),!e.labelEl)return;const t=r.get(e.labelEl);1===t.length&&(e.labelEl.removeEventListener(a,d.get(e.labelEl)),d.delete(e.labelEl)),r.set(e.labelEl,t.filter((t=>t!==e)).sort(p)),e.labelEl=null}function p(e,t){return(0,i.u)(e.el,t.el)?-1:1}function v(e){return e.label||e.labelEl?.textContent?.trim()||""}function E(e){const t=e.detail.sourceEvent.target,n=r.get(this),i=n.find((e=>e.el===t));if(n.includes(i))return;const l=n[0];l.disabled||l.onLabelClick(e)}function y(){m.has(this)&&b(this)}function k(){m.add(this);const e=u.get(this)||y.bind(this);u.set(this,e),document.addEventListener(o,e)}async function w(e){await(0,l.c)(e);if(r.has(e))return;const t=e.ownerDocument?.getElementById(e.for);t&&requestAnimationFrame((()=>{for(const e of m)if(e.el===t){b(e);break}}))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5618.30b544dfe969fc317516.js.LICENSE.txt b/docs/sentinel1-explorer/5618.30b544dfe969fc317516.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/5618.30b544dfe969fc317516.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/5672.7f17b7ea273618d31eb8.js b/docs/sentinel1-explorer/5672.7f17b7ea273618d31eb8.js new file mode 100644 index 00000000..8eacb697 --- /dev/null +++ b/docs/sentinel1-explorer/5672.7f17b7ea273618d31eb8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5672],{25672:function(e,r,t){t.r(r),t.d(r,{l:function(){return l}});var n,a,i,o=t(58340),u={exports:{}};n=u,a="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,"undefined"!=typeof __filename&&(a=a||__filename),i=function(e={}){var r,t,n=e;n.ready=new Promise(((e,n)=>{r=e,t=n}));var i,o,u,s=Object.assign({},n),l="./this.program",c="object"==typeof window,f="function"==typeof importScripts,d="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,h="";if(d){var p=require("fs"),v=require("path");h=f?v.dirname(h)+"/":__dirname+"/",i=(e,r)=>(e=H(e)?new URL(e):v.normalize(e),p.readFileSync(e,r?void 0:"utf8")),u=e=>{var r=i(e,!0);return r.buffer||(r=new Uint8Array(r)),r},o=(e,r,t,n=!0)=>{e=H(e)?new URL(e):v.normalize(e),p.readFile(e,n?void 0:"utf8",((e,a)=>{e?t(e):r(n?a.buffer:a)}))},!n.thisProgram&&process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),n.inspect=()=>"[Emscripten Module object]"}else(c||f)&&(f?h=self.location.href:"undefined"!=typeof document&&document.currentScript&&(h=document.currentScript.src),a&&(h=a),h=0!==h.indexOf("blob:")?h.substr(0,h.replace(/[?#].*/,"").lastIndexOf("/")+1):"",i=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},f&&(u=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),o=(e,r,t)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?r(n.response):t()},n.onerror=t,n.send(null)});n.print;var m,y,g=n.printErr||void 0;Object.assign(n,s),s=null,n.arguments&&n.arguments,n.thisProgram&&(l=n.thisProgram),n.quit&&n.quit,n.wasmBinary&&(m=n.wasmBinary),n.noExitRuntime,"object"!=typeof WebAssembly&&x("no native wasm support detected");var w,_,b,A,T,C,E,F,P=!1;function S(){var e=y.buffer;n.HEAP8=w=new Int8Array(e),n.HEAP16=b=new Int16Array(e),n.HEAPU8=_=new Uint8Array(e),n.HEAPU16=A=new Uint16Array(e),n.HEAP32=T=new Int32Array(e),n.HEAPU32=C=new Uint32Array(e),n.HEAPF32=E=new Float32Array(e),n.HEAPF64=F=new Float64Array(e)}var W=[],M=[],j=[];function R(e){W.unshift(e)}function O(e){j.unshift(e)}var D=0,k=null;function x(e){n.onAbort&&n.onAbort(e),g(e="Aborted("+e+")"),P=!0,e+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(e);throw t(r),r}var $,U="data:application/octet-stream;base64,";function I(e){return e.startsWith(U)}function H(e){return e.startsWith("file://")}function Y(e){if(e==$&&m)return new Uint8Array(m);if(u)return u(e);throw"both async and sync fetching of the wasm failed"}function z(e,r,t){return function(e){if(!m&&(c||f)){if("function"==typeof fetch&&!H(e))return fetch(e,{credentials:"same-origin"}).then((r=>{if(!r.ok)throw"failed to load wasm binary file at '"+e+"'";return r.arrayBuffer()})).catch((()=>Y(e)));if(o)return new Promise(((r,t)=>{o(e,(e=>r(new Uint8Array(e))),t)}))}return Promise.resolve().then((()=>Y(e)))}(e).then((e=>WebAssembly.instantiate(e,r))).then((e=>e)).then(t,(e=>{g(`failed to asynchronously prepare wasm: ${e}`),x(e)}))}I($="lclayout.wasm")||($=function(e){return n.locateFile?n.locateFile(e,h):h+e}($));var V=e=>{for(;e.length>0;)e.shift()(n)};function B(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){C[this.ptr+4>>2]=e},this.get_type=function(){return C[this.ptr+4>>2]},this.set_destructor=function(e){C[this.ptr+8>>2]=e},this.get_destructor=function(){return C[this.ptr+8>>2]},this.set_caught=function(e){e=e?1:0,w[this.ptr+12>>0]=e},this.get_caught=function(){return 0!=w[this.ptr+12>>0]},this.set_rethrown=function(e){e=e?1:0,w[this.ptr+13>>0]=e},this.get_rethrown=function(){return 0!=w[this.ptr+13>>0]},this.init=function(e,r){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(r)},this.set_adjusted_ptr=function(e){C[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return C[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Ge(this.get_type()))return C[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}var q,L,G,X=e=>{for(var r="",t=e;_[t];)r+=q[_[t++]];return r},N={},J={},Z={},K=e=>{throw new L(e)},Q=e=>{throw new G(e)},ee=(e,r,t)=>{function n(r){var n=t(r);n.length!==e.length&&Q("Mismatched type converter count");for(var a=0;a{J.hasOwnProperty(e)?a[r]=J[e]:(i.push(e),N.hasOwnProperty(e)||(N[e]=[]),N[e].push((()=>{a[r]=J[e],++o===i.length&&n(a)})))})),0===i.length&&n(a)};function re(e,r,t={}){if(!("argPackAdvance"in r))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(e,r,t={}){var n=r.name;if(e||K(`type "${n}" must have a positive integer typeid pointer`),J.hasOwnProperty(e)){if(t.ignoreDuplicateRegistrations)return;K(`Cannot register type '${n}' twice`)}if(J[e]=r,delete Z[e],N.hasOwnProperty(e)){var a=N[e];delete N[e],a.forEach((e=>e()))}}(e,r,t)}function te(){this.allocated=[void 0],this.freelist=[]}var ne=new te,ae=()=>{for(var e=0,r=ne.reserved;r(e||K("Cannot use deleted val. handle = "+e),ne.get(e).value),oe=e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return ne.allocate({refcount:1,value:e})}};function ue(e){return this.fromWireType(T[e>>2])}var se=(e,r)=>{switch(r){case 4:return function(e){return this.fromWireType(E[e>>2])};case 8:return function(e){return this.fromWireType(F[e>>3])};default:throw new TypeError(`invalid float width (${r}): ${e}`)}},le=e=>{if(void 0===e)return"_unknown";var r=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return r>=48&&r<=57?`_${e}`:e};var ce,fe=(e,r,t)=>{if(void 0===e[r].overloadTable){var n=e[r];e[r]=function(){return e[r].overloadTable.hasOwnProperty(arguments.length)||K(`Function '${t}' called with an invalid number of arguments (${arguments.length}) - expects one of (${e[r].overloadTable})!`),e[r].overloadTable[arguments.length].apply(this,arguments)},e[r].overloadTable=[],e[r].overloadTable[n.argCount]=n}},de=(e,r,t)=>{n.hasOwnProperty(e)?((void 0===t||void 0!==n[e].overloadTable&&void 0!==n[e].overloadTable[t])&&K(`Cannot register public name '${e}' twice`),fe(n,e,e),n.hasOwnProperty(t)&&K(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),n[e].overloadTable[t]=r):(n[e]=r,void 0!==t&&(n[e].numArguments=t))},he=(e,r,t)=>{n.hasOwnProperty(e)||Q("Replacing nonexistant public symbol"),void 0!==n[e].overloadTable&&void 0!==t?n[e].overloadTable[t]=r:(n[e]=r,n[e].argCount=t)},pe=[],ve=e=>{var r=pe[e];return r||(e>=pe.length&&(pe.length=e+1),pe[e]=r=ce.get(e)),r},me=(e,r,t)=>e.includes("j")?((e,r,t)=>{var a=n["dynCall_"+e];return t&&t.length?a.apply(null,[r].concat(t)):a.call(null,r)})(e,r,t):ve(r).apply(null,t),ye=(e,r)=>{var t=(e=X(e)).includes("j")?((e,r)=>{var t=[];return function(){return t.length=0,Object.assign(t,arguments),me(e,r,t)}})(e,r):ve(r);return"function"!=typeof t&&K(`unknown function pointer with signature ${e}: ${r}`),t};var ge,we=e=>{var r=Ve(e),t=X(r);return Le(r),t},_e=(e,r,t)=>{switch(r){case 1:return t?e=>w[e>>0]:e=>_[e>>0];case 2:return t?e=>b[e>>1]:e=>A[e>>1];case 4:return t?e=>T[e>>2]:e=>C[e>>2];default:throw new TypeError(`invalid integer width (${r}): ${e}`)}};function be(e){return this.fromWireType(C[e>>2])}var Ae,Te=(e,r,t,n)=>{if(!(n>0))return 0;for(var a=t,i=t+n-1,o=0;o=55296&&u<=57343&&(u=65536+((1023&u)<<10)|1023&e.charCodeAt(++o)),u<=127){if(t>=i)break;r[t++]=u}else if(u<=2047){if(t+1>=i)break;r[t++]=192|u>>6,r[t++]=128|63&u}else if(u<=65535){if(t+2>=i)break;r[t++]=224|u>>12,r[t++]=128|u>>6&63,r[t++]=128|63&u}else{if(t+3>=i)break;r[t++]=240|u>>18,r[t++]=128|u>>12&63,r[t++]=128|u>>6&63,r[t++]=128|63&u}}return r[t]=0,t-a},Ce=e=>{for(var r=0,t=0;t=55296&&n<=57343?(r+=4,++t):r+=3}return r},Ee="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,Fe=(e,r)=>e?((e,r,t)=>{for(var n=r+t,a=r;e[a]&&!(a>=n);)++a;if(a-r>16&&e.buffer&&Ee)return Ee.decode(e.subarray(r,a));for(var i="";r>10,56320|1023&l)}}else i+=String.fromCharCode((31&o)<<6|u)}else i+=String.fromCharCode(o)}return i})(_,e,r):"",Pe="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,Se=(e,r)=>{for(var t=e,n=t>>1,a=n+r/2;!(n>=a)&&A[n];)++n;if((t=n<<1)-e>32&&Pe)return Pe.decode(_.subarray(e,t));for(var i="",o=0;!(o>=r/2);++o){var u=b[e+2*o>>1];if(0==u)break;i+=String.fromCharCode(u)}return i},We=(e,r,t)=>{if(void 0===t&&(t=2147483647),t<2)return 0;for(var n=r,a=(t-=2)<2*e.length?t/2:e.length,i=0;i>1]=o,r+=2}return b[r>>1]=0,r-n},Me=e=>2*e.length,je=(e,r)=>{for(var t=0,n="";!(t>=r/4);){var a=T[e+4*t>>2];if(0==a)break;if(++t,a>=65536){var i=a-65536;n+=String.fromCharCode(55296|i>>10,56320|1023&i)}else n+=String.fromCharCode(a)}return n},Re=(e,r,t)=>{if(void 0===t&&(t=2147483647),t<4)return 0;for(var n=r,a=n+t-4,i=0;i=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++i)),T[r>>2]=o,(r+=4)+4>a)break}return T[r>>2]=0,r-n},Oe=e=>{for(var r=0,t=0;t=55296&&n<=57343&&++t,r+=4}return r};Ae=()=>performance.now();var De=e=>{var r=(e-y.buffer.byteLength+65535)/65536;try{return y.grow(r),S(),1}catch(e){}},ke={},xe=()=>{if(!xe.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:l||"./this.program"};for(var r in ke)void 0===ke[r]?delete e[r]:e[r]=ke[r];var t=[];for(var r in e)t.push(`${r}=${e[r]}`);xe.strings=t}return xe.strings},$e=e=>e%4==0&&(e%100!=0||e%400==0),Ue=[31,29,31,30,31,30,31,31,30,31,30,31],Ie=[31,28,31,30,31,30,31,31,30,31,30,31];var He=(e,r,t,n)=>{var a=C[n+40>>2],i={tm_sec:T[n>>2],tm_min:T[n+4>>2],tm_hour:T[n+8>>2],tm_mday:T[n+12>>2],tm_mon:T[n+16>>2],tm_year:T[n+20>>2],tm_wday:T[n+24>>2],tm_yday:T[n+28>>2],tm_isdst:T[n+32>>2],tm_gmtoff:T[n+36>>2],tm_zone:a?Fe(a):""},o=Fe(t),u={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var s in u)o=o.replace(new RegExp(s,"g"),u[s]);var l=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],c=["January","February","March","April","May","June","July","August","September","October","November","December"];function f(e,r,t){for(var n="number"==typeof e?e.toString():e||"";n.length0?1:0}var n;return 0===(n=t(e.getFullYear()-r.getFullYear()))&&0===(n=t(e.getMonth()-r.getMonth()))&&(n=t(e.getDate()-r.getDate())),n}function p(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function v(e){var r=((e,r)=>{for(var t=new Date(e.getTime());r>0;){var n=$e(t.getFullYear()),a=t.getMonth(),i=(n?Ue:Ie)[a];if(!(r>i-t.getDate()))return t.setDate(t.getDate()+r),t;r-=i-t.getDate()+1,t.setDate(1),a<11?t.setMonth(a+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return t})(new Date(e.tm_year+1900,0,1),e.tm_yday),t=new Date(r.getFullYear(),0,4),n=new Date(r.getFullYear()+1,0,4),a=p(t),i=p(n);return h(a,r)<=0?h(i,r)<=0?r.getFullYear()+1:r.getFullYear():r.getFullYear()-1}var m={"%a":e=>l[e.tm_wday].substring(0,3),"%A":e=>l[e.tm_wday],"%b":e=>c[e.tm_mon].substring(0,3),"%B":e=>c[e.tm_mon],"%C":e=>d((e.tm_year+1900)/100|0,2),"%d":e=>d(e.tm_mday,2),"%e":e=>f(e.tm_mday,2," "),"%g":e=>v(e).toString().substring(2),"%G":e=>v(e),"%H":e=>d(e.tm_hour,2),"%I":e=>{var r=e.tm_hour;return 0==r?r=12:r>12&&(r-=12),d(r,2)},"%j":e=>d(e.tm_mday+((e,r)=>{for(var t=0,n=0;n<=r;t+=e[n++]);return t})($e(e.tm_year+1900)?Ue:Ie,e.tm_mon-1),3),"%m":e=>d(e.tm_mon+1,2),"%M":e=>d(e.tm_min,2),"%n":()=>"\n","%p":e=>e.tm_hour>=0&&e.tm_hour<12?"AM":"PM","%S":e=>d(e.tm_sec,2),"%t":()=>"\t","%u":e=>e.tm_wday||7,"%U":e=>{var r=e.tm_yday+7-e.tm_wday;return d(Math.floor(r/7),2)},"%V":e=>{var r=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&r++,r){if(53==r){var t=(e.tm_wday+371-e.tm_yday)%7;4==t||3==t&&$e(e.tm_year)||(r=1)}}else{r=52;var n=(e.tm_wday+7-e.tm_yday-1)%7;(4==n||5==n&&$e(e.tm_year%400-1))&&r++}return d(r,2)},"%w":e=>e.tm_wday,"%W":e=>{var r=e.tm_yday+7-(e.tm_wday+6)%7;return d(Math.floor(r/7),2)},"%y":e=>(e.tm_year+1900).toString().substring(2),"%Y":e=>e.tm_year+1900,"%z":e=>{var r=e.tm_gmtoff,t=r>=0;return r=(r=Math.abs(r)/60)/60*100+r%60,(t?"+":"-")+String("0000"+r).slice(-4)},"%Z":e=>e.tm_zone,"%%":()=>"%"};for(var s in o=o.replace(/%%/g,"\0\0"),m)o.includes(s)&&(o=o.replace(new RegExp(s,"g"),m[s](i)));var y=function(e,r,t){var n=t>0?t:Ce(e)+1,a=new Array(n),i=Te(e,a,0,a.length);return r&&(a.length=i),a}(o=o.replace(/\0\0/g,"%"),!1);return y.length>r?0:(((e,r)=>{w.set(e,r)})(y,e),y.length-1)};(()=>{for(var e=new Array(256),r=0;r<256;++r)e[r]=String.fromCharCode(r);q=e})(),L=n.BindingError=class extends Error{constructor(e){super(e),this.name="BindingError"}},G=n.InternalError=class extends Error{constructor(e){super(e),this.name="InternalError"}},Object.assign(te.prototype,{get(e){return this.allocated[e]},has(e){return void 0!==this.allocated[e]},allocate(e){var r=this.freelist.pop()||this.allocated.length;return this.allocated[r]=e,r},free(e){this.allocated[e]=void 0,this.freelist.push(e)}}),ne.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),ne.reserved=ne.allocated.length,n.count_emval_handles=ae,ge=n.UnboundTypeError=((e,r)=>{var t=function(e,r){return{[e=le(e)]:function(){return r.apply(this,arguments)}}[e]}(r,(function(e){this.name=r,this.message=e;var t=new Error(e).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},t})(Error,"UnboundTypeError");var Ye={a:(e,r,t)=>{throw new B(e).init(r,t),e},m:(e,r,t,n,a)=>{},k:(e,r,t,n)=>{re(e,{name:r=X(r),fromWireType:function(e){return!!e},toWireType:function(e,r){return r?t:n},argPackAdvance:8,readValueFromPointer:function(e){return this.fromWireType(_[e])},destructorFunction:null})},i:(e,r,t)=>{e=X(e),ee([],[r],(function(r){return r=r[0],n[e]=r.fromWireType(t),[]}))},j:(e,r)=>{re(e,{name:r=X(r),fromWireType:e=>{var r=ie(e);return(e=>{e>=ne.reserved&&0==--ne.get(e).refcount&&ne.free(e)})(e),r},toWireType:(e,r)=>oe(r),argPackAdvance:8,readValueFromPointer:ue,destructorFunction:null})},h:(e,r,t)=>{re(e,{name:r=X(r),fromWireType:e=>e,toWireType:(e,r)=>r,argPackAdvance:8,readValueFromPointer:se(r,t),destructorFunction:null})},b:(e,r,t,n,a,i,o)=>{var u=((e,r)=>{for(var t=[],n=0;n>2]);return t})(r,t);e=X(e),a=ye(n,a),de(e,(function(){((e,r)=>{var t=[],n={};throw r.forEach((function e(r){n[r]||J[r]||(Z[r]?Z[r].forEach(e):(t.push(r),n[r]=!0))})),new ge(`${e}: `+t.map(we).join([", "]))})(`Cannot call ${e} due to unbound types`,u)}),r-1),ee([],u,(function(t){var n=[t[0],null].concat(t.slice(1));return he(e,function(e,r,t,n,a,i){var o=r.length;o<2&&K("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var u=null!==r[1]&&null!==t,s=!1,l=1;l{for(;e.length;){var r=e.pop();e.pop()(r)}})(p);else for(var n=u?1:2;n{r=X(r);var i=e=>e;if(0===n){var o=32-8*t;i=e=>e<>>o}var u=r.includes("unsigned");re(e,{name:r,fromWireType:i,toWireType:u?function(e,r){return this.name,r>>>0}:function(e,r){return this.name,r},argPackAdvance:8,readValueFromPointer:_e(r,t,0!==n),destructorFunction:null})},c:(e,r,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][r];function a(e){var r=C[e>>2],t=C[e+4>>2];return new n(w.buffer,t,r)}re(e,{name:t=X(t),fromWireType:a,argPackAdvance:8,readValueFromPointer:a},{ignoreDuplicateRegistrations:!0})},g:(e,r)=>{var t="std::string"===(r=X(r));re(e,{name:r,fromWireType(e){var r,n=C[e>>2],a=e+4;if(t)for(var i=a,o=0;o<=n;++o){var u=a+o;if(o==n||0==_[u]){var s=Fe(i,u-i);void 0===r?r=s:(r+=String.fromCharCode(0),r+=s),i=u+1}}else{var l=new Array(n);for(o=0;o>2]=n,t&&a)((e,r,t)=>{Te(e,_,r,t)})(r,o,n+1);else if(a)for(var u=0;u255&&(Le(o),K("String has UTF-16 code units that do not fit in 8 bits")),_[o+u]=s}else for(u=0;u{var n,a,i,o,u;t=X(t),2===r?(n=Se,a=We,o=Me,i=()=>A,u=1):4===r&&(n=je,a=Re,o=Oe,i=()=>C,u=2),re(e,{name:t,fromWireType:e=>{for(var t,a=C[e>>2],o=i(),s=e+4,l=0;l<=a;++l){var c=e+4+l*r;if(l==a||0==o[c>>u]){var f=n(s,c-s);void 0===t?t=f:(t+=String.fromCharCode(0),t+=f),s=c+r}}return Le(e),t},toWireType:(e,n)=>{"string"!=typeof n&&K(`Cannot pass non-string to C++ string type ${t}`);var i=o(n),s=qe(4+i+r);return C[s>>2]=i>>u,a(n,s+4,i+r),null!==e&&e.push(Le,s),s},argPackAdvance:8,readValueFromPointer:ue,destructorFunction(e){Le(e)}})},l:(e,r)=>{re(e,{isVoid:!0,name:r=X(r),argPackAdvance:0,fromWireType:()=>{},toWireType:(e,r)=>{}})},r:()=>true,f:()=>{x("")},s:()=>Date.now(),n:()=>2147483648,u:Ae,v:(e,r,t)=>_.copyWithin(e,r,r+t),t:e=>{var r=_.length,t=2147483648;if((e>>>=0)>t)return!1;for(var n=(e,r)=>e+(r-e%r)%r,a=1;a<=4;a*=2){var i=r*(1+.2/a);i=Math.min(i,e+100663296);var o=Math.min(t,n(Math.max(e,i),65536));if(De(o))return!0}return!1},p:(e,r)=>{var t=0;return xe().forEach(((n,a)=>{var i=r+t;C[e+4*a>>2]=i,((e,r)=>{for(var t=0;t>0]=e.charCodeAt(t);w[r>>0]=0})(n,i),t+=n.length+1})),0},q:(e,r)=>{var t=xe();C[e>>2]=t.length;var n=0;return t.forEach((e=>n+=e.length+1)),C[r>>2]=n,0},o:(e,r,t,n,a)=>He(e,r,t,n)},ze=function(){var e={a:Ye};function r(e,r){return ze=e.exports,y=ze.w,S(),ce=ze.y,function(e){M.unshift(e)}(ze.x),function(e){if(D--,n.monitorRunDependencies&&n.monitorRunDependencies(D),0==D&&k){var r=k;k=null,r()}}(),ze}if(D++,n.monitorRunDependencies&&n.monitorRunDependencies(D),n.instantiateWasm)try{return n.instantiateWasm(e,r)}catch(e){g(`Module.instantiateWasm callback failed with error: ${e}`),t(e)}return function(e,r,t,n){return e||"function"!=typeof WebAssembly.instantiateStreaming||I(r)||H(r)||d||"function"!=typeof fetch?z(r,t,n):fetch(r,{credentials:"same-origin"}).then((e=>WebAssembly.instantiateStreaming(e,t).then(n,(function(e){return g(`wasm streaming compile failed: ${e}`),g("falling back to ArrayBuffer instantiation"),z(r,t,n)}))))}(m,$,e,(function(e){r(e.instance)})).catch(t),{}}(),Ve=e=>(Ve=ze.z)(e);n.__embind_initialize_bindings=()=>(n.__embind_initialize_bindings=ze.A)();var Be,qe=n._malloc=e=>(qe=n._malloc=ze.B)(e),Le=n._free=e=>(Le=n._free=ze.C)(e),Ge=e=>(Ge=ze.D)(e);function Xe(){function e(){Be||(Be=!0,n.calledRun=!0,P||(V(M),r(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),function(){if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)O(n.postRun.shift());V(j)}()))}D>0||(function(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)R(n.preRun.shift());V(W)}(),D>0||(n.setStatus?(n.setStatus("Running..."),setTimeout((function(){setTimeout((function(){n.setStatus("")}),1),e()}),1)):e()))}if(n.dynCall_viijii=(e,r,t,a,i,o,u)=>(n.dynCall_viijii=ze.E)(e,r,t,a,i,o,u),n.dynCall_iiiiij=(e,r,t,a,i,o,u)=>(n.dynCall_iiiiij=ze.F)(e,r,t,a,i,o,u),n.dynCall_iiiiijj=(e,r,t,a,i,o,u,s,l)=>(n.dynCall_iiiiijj=ze.G)(e,r,t,a,i,o,u,s,l),n.dynCall_iiiiiijj=(e,r,t,a,i,o,u,s,l,c)=>(n.dynCall_iiiiiijj=ze.H)(e,r,t,a,i,o,u,s,l,c),k=function e(){Be||Xe(),Be||(k=e)},n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return Xe(),e.ready},n.exports=i;const s=(0,o.g)(u.exports),l=Object.freeze(Object.defineProperty({__proto__:null,default:s},Symbol.toStringTag,{value:"Module"}))}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5693.37798b865af8ea0235c7.js b/docs/sentinel1-explorer/5693.37798b865af8ea0235c7.js new file mode 100644 index 00000000..46b0d5b4 --- /dev/null +++ b/docs/sentinel1-explorer/5693.37798b865af8ea0235c7.js @@ -0,0 +1,2 @@ +/*! For license information please see 5693.37798b865af8ea0235c7.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5693],{45693:function(e,t,n){n.r(t),n.d(t,{CalciteListItem:function(){return x},defineCustomElement:function(){return L}});var i=n(77210),l=n(79145),s=n(64426),a=n(22562),o=n(19417),c=n(53801),r=n(16265),d=n(19516),h=n(44586);const u="handle",g="handle--selected",C="drag",m="{itemLabel}",f="{position}",p="{total}",b=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.calciteHandleChange=(0,i.yM)(this,"calciteHandleChange",6),this.calciteHandleNudge=(0,i.yM)(this,"calciteHandleNudge",6),this.calciteInternalAssistiveTextChange=(0,i.yM)(this,"calciteInternalAssistiveTextChange",6),this.handleKeyDown=e=>{if(!this.disabled)switch(e.key){case" ":this.selected=!this.selected,this.calciteHandleChange.emit(),e.preventDefault();break;case"ArrowUp":if(!this.selected)return;e.preventDefault(),this.calciteHandleNudge.emit({direction:"up"});break;case"ArrowDown":if(!this.selected)return;e.preventDefault(),this.calciteHandleNudge.emit({direction:"down"})}},this.handleBlur=()=>{this.blurUnselectDisabled||this.disabled||this.selected&&(this.selected=!1,this.calciteHandleChange.emit())},this.selected=!1,this.disabled=!1,this.dragHandle=void 0,this.messages=void 0,this.setPosition=void 0,this.setSize=void 0,this.label=void 0,this.blurUnselectDisabled=!1,this.messageOverrides=void 0,this.effectiveLocale=void 0,this.defaultMessages=void 0}handleAriaTextChange(){const e=this.getAriaText("live");e&&this.calciteInternalAssistiveTextChange.emit({message:e})}onMessagesChange(){}connectedCallback(){(0,s.c)(this),(0,c.c)(this),(0,o.c)(this)}async componentWillLoad(){(0,r.s)(this),await(0,c.s)(this)}componentDidLoad(){(0,r.a)(this)}componentDidRender(){(0,s.u)(this)}disconnectedCallback(){(0,s.d)(this),(0,c.d)(this),(0,o.d)(this)}effectiveLocaleChange(){(0,c.u)(this,this.effectiveLocale)}async setFocus(){await(0,r.c)(this),this.handleButton?.focus()}getTooltip(){const{label:e,messages:t}=this;return t?e?t.dragHandle.replace(m,e):t.dragHandleUntitled:""}getAriaText(e){const{setPosition:t,setSize:n,label:i,messages:l,selected:s}=this;if(!l||!i||"number"!=typeof n||"number"!=typeof t)return null;return("label"===e?s?l.dragHandleChange:l.dragHandleIdle:s?l.dragHandleActive:l.dragHandleCommit).replace(f,t.toString()).replace(m,i).replace(p,n.toString())}render(){return(0,i.h)("span",{"aria-disabled":this.disabled?(0,l.t)(this.disabled):null,"aria-label":this.disabled?null:this.getAriaText("label"),"aria-pressed":this.disabled?null:(0,l.t)(this.selected),class:{[u]:!0,[g]:!this.disabled&&this.selected},onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,role:"button",tabIndex:this.disabled?null:0,title:this.getTooltip(),ref:e=>{this.handleButton=e}},(0,i.h)("calcite-icon",{icon:C,scale:"s"}))}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{messages:["handleAriaTextChange"],label:["handleAriaTextChange"],selected:["handleAriaTextChange"],setPosition:["handleAriaTextChange"],setSize:["handleAriaTextChange"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:flex}.handle{display:flex;align-items:center;justify-content:center;align-self:stretch;border-style:none;background-color:transparent;outline-color:transparent;color:var(--calcite-color-border-input);padding-block:0.75rem;padding-inline:0.25rem;line-height:0}.handle calcite-icon{color:inherit}:host(:not([disabled])) .handle{cursor:move}:host(:not([disabled])) .handle:hover{background-color:var(--calcite-color-foreground-2);color:var(--calcite-color-text-1)}:host(:not([disabled])) .handle:focus{color:var(--calcite-color-text-1);outline:2px solid var(--calcite-ui-focus-color, var(--calcite-color-brand-hover, var(--calcite--color-brand)));outline-offset:calc(\n -2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-offset-invert-focus),\n 1\n )\n )\n )}:host(:not([disabled])) .handle--selected{background-color:var(--calcite-color-foreground-3);color:var(--calcite-color-text-1)}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-handle",{selected:[1540],disabled:[516],dragHandle:[513,"drag-handle"],messages:[16],setPosition:[2,"set-position"],setSize:[2,"set-size"],label:[1],blurUnselectDisabled:[4,"blur-unselect-disabled"],messageOverrides:[16],effectiveLocale:[32],defaultMessages:[32],setFocus:[64]},void 0,{messages:["handleAriaTextChange"],label:["handleAriaTextChange"],selected:["handleAriaTextChange"],setPosition:["handleAriaTextChange"],setSize:["handleAriaTextChange"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}]);function v(){if("undefined"==typeof customElements)return;["calcite-handle","calcite-icon"].forEach((e=>{switch(e){case"calcite-handle":customElements.get(e)||customElements.define(e,b);break;case"calcite-icon":customElements.get(e)||(0,h.d)()}}))}v();var S=n(92708);const y=new Map,I=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.calciteListItemSelect=(0,i.yM)(this,"calciteListItemSelect",6),this.calciteListItemClose=(0,i.yM)(this,"calciteListItemClose",6),this.calciteListItemDragHandleChange=(0,i.yM)(this,"calciteListItemDragHandleChange",6),this.calciteListItemToggle=(0,i.yM)(this,"calciteListItemToggle",6),this.calciteInternalListItemSelect=(0,i.yM)(this,"calciteInternalListItemSelect",6),this.calciteInternalListItemSelectMultiple=(0,i.yM)(this,"calciteInternalListItemSelectMultiple",6),this.calciteInternalListItemActive=(0,i.yM)(this,"calciteInternalListItemActive",6),this.calciteInternalFocusPreviousItem=(0,i.yM)(this,"calciteInternalFocusPreviousItem",6),this.calciteInternalListItemChange=(0,i.yM)(this,"calciteInternalListItemChange",6),this.dragHandleSelectedChangeHandler=e=>{this.dragSelected=e.target.selected,this.calciteListItemDragHandleChange.emit(),e.stopPropagation()},this.emitInternalListItemActive=()=>{this.calciteInternalListItemActive.emit()},this.focusCellHandle=()=>{this.handleCellFocusIn(this.handleGridEl)},this.focusCellActionsStart=()=>{this.handleCellFocusIn(this.actionsStartEl)},this.focusCellContent=()=>{this.handleCellFocusIn(this.contentEl)},this.focusCellActionsEnd=()=>{this.handleCellFocusIn(this.actionsEndEl)},this.handleCloseClick=()=>{this.closed=!0,this.calciteListItemClose.emit()},this.handleContentSlotChange=e=>{this.hasCustomContent=(0,l.d)(e)},this.handleActionsStartSlotChange=e=>{this.hasActionsStart=(0,l.d)(e)},this.handleActionsEndSlotChange=e=>{this.hasActionsEnd=(0,l.d)(e)},this.handleContentStartSlotChange=e=>{this.hasContentStart=(0,l.d)(e)},this.handleContentEndSlotChange=e=>{this.hasContentEnd=(0,l.d)(e)},this.handleContentBottomSlotChange=e=>{this.hasContentBottom=(0,l.d)(e)},this.handleDefaultSlotChange=e=>{this.handleOpenableChange(e.target)},this.handleToggleClick=()=>{this.toggle()},this.toggle=(e=!this.open)=>{this.open=e,this.calciteListItemToggle.emit()},this.handleItemClick=e=>{e.defaultPrevented||this.toggleSelected(e.shiftKey)},this.toggleSelected=e=>{const{selectionMode:t,selected:n}=this;this.disabled||("multiple"===t||"single"===t?this.selected=!n:"single-persist"===t&&(this.selected=!0),this.calciteInternalListItemSelectMultiple.emit({selectMultiple:e&&"multiple"===t}),this.calciteListItemSelect.emit())},this.handleItemKeyDown=e=>{if(e.defaultPrevented)return;const{key:t}=e,n=e.composedPath(),{containerEl:i,actionsStartEl:l,actionsEndEl:s,open:a,openable:o}=this,c=this.getGridCells(),r=c.findIndex((e=>n.includes(e)));if("Enter"!==t||n.includes(l)||n.includes(s)){if("ArrowRight"===t){e.preventDefault();const t=r+1;-1===r?!a&&o?(this.toggle(!0),this.focusCell(null)):c[0]&&this.focusCell(c[0]):c[r]&&c[t]&&this.focusCell(c[t])}else if("ArrowLeft"===t){e.preventDefault();const t=r-1;-1===r?(this.focusCell(null),a&&o?this.toggle(!1):this.calciteInternalFocusPreviousItem.emit()):0===r?(this.focusCell(null),i.focus()):c[r]&&c[t]&&this.focusCell(c[t])}}else e.preventDefault(),this.toggleSelected(e.shiftKey)},this.focusCellNull=()=>{this.focusCell(null)},this.handleCellFocusIn=e=>{this.setFocusCell(e,(0,l.A)(e),!0)},this.setFocusCell=(e,t,n)=>{const{parentListEl:i}=this;n&&y.set(i,null);const l=this.getGridCells();l.forEach((e=>{e.tabIndex=-1,e.removeAttribute(a.a)})),e&&(e.tabIndex=e===t?0:-1,e.setAttribute(a.a,""),n&&y.set(i,l.indexOf(e)))},this.focusCell=(e,t=!0)=>{const n=(0,l.A)(e);this.setFocusCell(e,n,t),n?.focus()},this.active=!1,this.closable=!1,this.closed=!1,this.description=void 0,this.disabled=!1,this.dragDisabled=!1,this.dragHandle=!1,this.dragSelected=!1,this.filterHidden=!1,this.label=void 0,this.metadata=void 0,this.open=!1,this.setSize=null,this.setPosition=null,this.selected=!1,this.value=void 0,this.selectionMode=null,this.selectionAppearance=null,this.messageOverrides=void 0,this.messages=void 0,this.effectiveLocale="",this.defaultMessages=void 0,this.level=null,this.visualLevel=null,this.parentListEl=void 0,this.openable=!1,this.hasActionsStart=!1,this.hasActionsEnd=!1,this.hasCustomContent=!1,this.hasContentStart=!1,this.hasContentEnd=!1,this.hasContentBottom=!1}activeHandler(e){e||this.focusCell(null,!1)}handleClosedChange(){this.emitCalciteInternalListItemChange()}handleDisabledChange(){this.emitCalciteInternalListItemChange()}handleSelectedChange(){this.calciteInternalListItemSelect.emit()}onMessagesChange(){}handleCalciteInternalListDefaultSlotChanges(e){e.stopPropagation(),this.handleOpenableChange(this.defaultSlotEl)}effectiveLocaleChange(){(0,c.u)(this,this.effectiveLocale)}connectedCallback(){(0,s.c)(this),(0,o.c)(this),(0,c.c)(this);const{el:e}=this;this.parentListEl=e.closest("calcite-list"),this.level=(0,a.b)(e)+1,this.visualLevel=(0,a.b)(e,!0),this.setSelectionDefaults()}async componentWillLoad(){(0,r.s)(this),await(0,c.s)(this)}componentDidLoad(){(0,r.a)(this)}componentDidRender(){(0,s.u)(this)}disconnectedCallback(){(0,s.d)(this),(0,o.d)(this),(0,c.d)(this)}async setFocus(){await(0,r.c)(this);const{containerEl:e,parentListEl:t}=this,n=y.get(t);if("number"!=typeof n)e?.focus();else{const t=this.getGridCells();t[n]?this.focusCell(t[n]):e?.focus()}}renderSelected(){const{selected:e,selectionMode:t,selectionAppearance:n}=this;return"none"===t||"border"===n?null:(0,i.h)("td",{class:{[a.C.selectionContainer]:!0,[a.C.selectionContainerSingle]:"single"===t||"single-persist"===t},key:"selection-container",onClick:this.handleItemClick},(0,i.h)("calcite-icon",{icon:e?"multiple"===t?a.I.selectedMultiple:a.I.selectedSingle:"multiple"===t?a.I.unselectedMultiple:a.I.unselectedSingle,scale:"s"}))}renderDragHandle(){const{label:e,dragHandle:t,dragSelected:n,dragDisabled:l,setPosition:s,setSize:o}=this;return t?(0,i.h)("td",{"aria-label":e,class:a.C.dragContainer,key:"drag-handle-container",onFocusin:this.focusCellHandle,role:"gridcell",ref:e=>this.handleGridEl=e},(0,i.h)("calcite-handle",{disabled:l,label:e,onCalciteHandleChange:this.dragHandleSelectedChangeHandler,selected:n,setPosition:s,setSize:o})):null}renderOpen(){const{el:e,open:t,openable:n,messages:s}=this,o=(0,l.a)(e),c=t?a.I.open:"rtl"===o?a.I.closedRTL:a.I.closedLTR,r=t?s.collapse:s.expand;return n?(0,i.h)("td",{class:a.C.openContainer,key:"open-container",onClick:this.handleToggleClick,title:r},(0,i.h)("calcite-icon",{icon:c,key:c,scale:"s"})):null}renderActionsStart(){const{label:e,hasActionsStart:t}=this;return(0,i.h)("td",{"aria-label":e,class:a.C.actionsStart,hidden:!t,key:"actions-start-container",onFocusin:this.focusCellActionsStart,role:"gridcell",ref:e=>this.actionsStartEl=e},(0,i.h)("slot",{name:a.S.actionsStart,onSlotchange:this.handleActionsStartSlotChange}))}renderActionsEnd(){const{label:e,hasActionsEnd:t,closable:n,messages:l}=this;return(0,i.h)("td",{"aria-label":e,class:a.C.actionsEnd,hidden:!(t||n),key:"actions-end-container",onFocusin:this.focusCellActionsEnd,role:"gridcell",ref:e=>this.actionsEndEl=e},(0,i.h)("slot",{name:a.S.actionsEnd,onSlotchange:this.handleActionsEndSlotChange}),n?(0,i.h)("calcite-action",{appearance:"transparent",icon:a.I.close,key:"close-action",label:l.close,onClick:this.handleCloseClick,text:l.close}):null)}renderContentStart(){const{hasContentStart:e}=this;return(0,i.h)("div",{class:a.C.contentStart,hidden:!e},(0,i.h)("slot",{name:a.S.contentStart,onSlotchange:this.handleContentStartSlotChange}))}renderCustomContent(){const{hasCustomContent:e}=this;return(0,i.h)("div",{class:a.C.customContent,hidden:!e},(0,i.h)("slot",{name:a.S.content,onSlotchange:this.handleContentSlotChange}))}renderContentEnd(){const{hasContentEnd:e}=this;return(0,i.h)("div",{class:a.C.contentEnd,hidden:!e},(0,i.h)("slot",{name:a.S.contentEnd,onSlotchange:this.handleContentEndSlotChange}))}renderContentBottom(){const{hasContentBottom:e,visualLevel:t}=this;return(0,i.h)("div",{class:a.C.contentBottom,hidden:!e,style:{"--calcite-list-item-spacing-indent-multiplier":`${t}`}},(0,i.h)("slot",{name:a.S.contentBottom,onSlotchange:this.handleContentBottomSlotChange}))}renderDefaultContainer(){return(0,i.h)("div",{class:{[a.C.nestedContainer]:!0,[a.C.nestedContainerHidden]:this.openable&&!this.open}},(0,i.h)("slot",{onSlotchange:this.handleDefaultSlotChange,ref:e=>this.defaultSlotEl=e}))}renderContentProperties(){const{label:e,description:t,hasCustomContent:n}=this;return n||!e&&!t?null:(0,i.h)("div",{class:a.C.content,key:"content"},e?(0,i.h)("div",{class:a.C.label,key:"label"},e):null,t?(0,i.h)("div",{class:a.C.description,key:"description"},t):null)}renderContentContainer(){const{description:e,label:t,selectionMode:n,hasCustomContent:l}=this,s=l||!!t||!!e,o=[this.renderContentStart(),this.renderCustomContent(),this.renderContentProperties(),this.renderContentEnd()];return(0,i.h)("td",{"aria-label":t,class:{[a.C.contentContainer]:!0,[a.C.contentContainerSelectable]:"none"!==n,[a.C.contentContainerHasCenterContent]:s},key:"content-container",onClick:this.handleItemClick,onFocusin:this.focusCellContent,role:"gridcell",ref:e=>this.contentEl=e},o)}render(){const{openable:e,open:t,level:n,setPosition:o,setSize:c,active:r,label:d,selected:h,selectionAppearance:u,selectionMode:g,closed:C,visualLevel:m}=this,f="none"!==g&&"border"===u,p=f&&h,b=f&&!h;return(0,i.h)(i.AA,null,(0,i.h)(s.I,{disabled:this.disabled},(0,i.h)("tr",{"aria-expanded":e?(0,l.t)(t):null,"aria-label":d,"aria-level":n,"aria-posinset":o,"aria-selected":(0,l.t)(h),"aria-setsize":c,class:{[a.C.container]:!0,[a.C.containerHover]:!0,[a.C.containerBorder]:f,[a.C.containerBorderSelected]:p,[a.C.containerBorderUnselected]:b},hidden:C,onFocus:this.focusCellNull,onFocusin:this.emitInternalListItemActive,onKeyDown:this.handleItemKeyDown,role:"row",style:{"--calcite-list-item-spacing-indent-multiplier":`${m}`},tabIndex:r?0:-1,ref:e=>this.containerEl=e},this.renderDragHandle(),this.renderSelected(),this.renderOpen(),this.renderActionsStart(),this.renderContentContainer(),this.renderActionsEnd()),this.renderContentBottom(),this.renderDefaultContainer()))}emitCalciteInternalListItemChange(){this.calciteInternalListItemChange.emit()}setSelectionDefaults(){const{parentListEl:e,selectionMode:t,selectionAppearance:n}=this;e&&(t||(this.selectionMode=e.selectionMode),n||(this.selectionAppearance=e.selectionAppearance))}handleOpenableChange(e){if(!e)return;const t=(0,a.g)(e),n=(0,a.c)(e);(0,a.u)(t),this.openable=!!t.length||!!n.length}getGridCells(){return[this.handleGridEl,this.actionsStartEl,this.contentEl,this.actionsEndEl].filter((e=>e&&!e.hidden))}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{active:["activeHandler"],closed:["handleClosedChange"],disabled:["handleDisabledChange"],selected:["handleSelectedChange"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:flex;flex-direction:column;--calcite-list-item-icon-color:var(--calcite-color-brand);--calcite-list-item-spacing-indent:1rem}:host([filter-hidden]){display:none}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.container{box-sizing:border-box;display:flex;flex:1 1 0%;background-color:var(--calcite-color-foreground-1);font-family:var(--calcite-sans-family);padding-inline-start:calc(var(--calcite-list-item-spacing-indent) * var(--calcite-list-item-spacing-indent-multiplier))}.container *{box-sizing:border-box}.container--hover:hover{cursor:pointer;background-color:var(--calcite-color-foreground-2)}.container:active{background-color:var(--calcite-color-foreground-1)}.container--border{border-inline-start-width:4px;border-inline-start-style:solid}.container--border-selected{border-inline-start-color:var(--calcite-color-brand)}.container--border-unselected{border-inline-start-color:transparent}.container:hover.container--border-unselected{border-color:var(--calcite-color-border-1)}.nested-container{display:flex;flex-direction:column;background-color:var(--calcite-color-foreground-1)}.nested-container--hidden{display:none}.content-container{display:flex;flex:1 1 auto;-webkit-user-select:none;user-select:none;align-items:stretch;padding:0px;font-family:var(--calcite-sans-family);font-weight:var(--calcite-font-weight-normal);color:var(--calcite-color-text-2)}tr,td{outline-color:transparent}tr:focus,td:focus{outline:2px solid var(--calcite-ui-focus-color, var(--calcite-color-brand-hover, var(--calcite--color-brand)));outline-offset:calc(\n -2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-offset-invert-focus),\n 1\n )\n )\n )}.content,.custom-content{display:flex;flex:1 1 auto;flex-direction:column;justify-content:center;padding-inline:0.75rem;padding-block:0.5rem;font-size:var(--calcite-font-size--2);line-height:1.375}.label,.description,.content-bottom{font-family:var(--calcite-sans-family);font-size:var(--calcite-font-size--2);font-weight:var(--calcite-font-weight-normal);word-wrap:break-word;word-break:break-word}.label:only-child,.description:only-child,.content-bottom:only-child{margin:0px;padding-block:0.25rem}.label{color:var(--calcite-color-text-1)}:host([selected]) .label{font-weight:var(--calcite-font-weight-medium)}.description{margin-block-start:0.125rem;color:var(--calcite-color-text-3)}:host([selected]) .description{color:var(--calcite-color-text-2)}.content-start{justify-content:flex-start}.content-end{justify-content:flex-end}.content-start,.content-end{flex:1 1 auto}.content-bottom{display:flex;flex-direction:column;background-color:var(--calcite-color-foreground-1);padding-inline-start:calc(var(--calcite-list-item-spacing-indent) * var(--calcite-list-item-spacing-indent-multiplier))}.content-container--has-center-content .content-start,.content-container--has-center-content .content-end{flex:0 1 auto}.selection-container{display:flex;padding-inline:0.75rem;color:var(--calcite-color-border-input)}.selection-container--single{color:transparent}:host(:not([disabled]):not([selected])) .container:hover .selection-container--single{color:var(--calcite-color-border-1)}:host([selected]:hover) .selection-container,:host([selected]:hover) .selection-container--single,:host([selected]) .selection-container{color:var(--calcite-list-item-icon-color)}.open-container{color:var(--calcite-color-text-3)}:host(:not([disabled])) .container:hover .open-container{color:var(--calcite-color-text-1)}.actions-start,.actions-end,.content-start,.content-end,.selection-container,.drag-container,.open-container{display:flex;align-items:center}.open-container,.selection-container{cursor:pointer}.content-start ::slotted(calcite-icon),.content-end ::slotted(calcite-icon){margin-inline:0.75rem;align-self:center}.actions-start ::slotted(calcite-action),.actions-start ::slotted(calcite-action-menu),.actions-start ::slotted(calcite-handle),.actions-start ::slotted(calcite-dropdown),.actions-end ::slotted(calcite-action),.actions-end ::slotted(calcite-action-menu),.actions-end ::slotted(calcite-handle),.actions-end ::slotted(calcite-dropdown){align-self:stretch;color:inherit}::slotted(calcite-list-item),::slotted(calcite-list){border-width:0px;border-block-start-width:1px;border-style:solid;border-color:var(--calcite-color-border-3)}::slotted(calcite-list:empty){padding-block:0.75rem}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-list-item",{active:[4],closable:[516],closed:[1540],description:[1],disabled:[516],dragDisabled:[516,"drag-disabled"],dragHandle:[4,"drag-handle"],dragSelected:[1540,"drag-selected"],filterHidden:[516,"filter-hidden"],label:[1],metadata:[16],open:[1540],setSize:[2,"set-size"],setPosition:[2,"set-position"],selected:[1540],value:[8],selectionMode:[1025,"selection-mode"],selectionAppearance:[1025,"selection-appearance"],messageOverrides:[1040],messages:[1040],effectiveLocale:[32],defaultMessages:[32],level:[32],visualLevel:[32],parentListEl:[32],openable:[32],hasActionsStart:[32],hasActionsEnd:[32],hasCustomContent:[32],hasContentStart:[32],hasContentEnd:[32],hasContentBottom:[32],setFocus:[64]},[[0,"calciteInternalListItemGroupDefaultSlotChange","handleCalciteInternalListDefaultSlotChanges"],[0,"calciteInternalListDefaultSlotChange","handleCalciteInternalListDefaultSlotChanges"]],{active:["activeHandler"],closed:["handleClosedChange"],disabled:["handleDisabledChange"],selected:["handleSelectedChange"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}]);function E(){if("undefined"==typeof customElements)return;["calcite-list-item","calcite-action","calcite-handle","calcite-icon","calcite-loader"].forEach((e=>{switch(e){case"calcite-list-item":customElements.get(e)||customElements.define(e,I);break;case"calcite-action":customElements.get(e)||(0,d.d)();break;case"calcite-handle":customElements.get(e)||v();break;case"calcite-icon":customElements.get(e)||(0,h.d)();break;case"calcite-loader":customElements.get(e)||(0,S.d)()}}))}E();const x=I,L=E},22562:function(e,t,n){n.d(t,{C:function(){return l},I:function(){return o},M:function(){return a},S:function(){return s},a:function(){return c},b:function(){return m},c:function(){return u},g:function(){return g},u:function(){return C}});var i=n(77210);const l={container:"container",containerHover:"container--hover",containerBorder:"container--border",containerBorderSelected:"container--border-selected",containerBorderUnselected:"container--border-unselected",contentContainer:"content-container",contentContainerSelectable:"content-container--selectable",contentContainerHasCenterContent:"content-container--has-center-content",nestedContainer:"nested-container",nestedContainerHidden:"nested-container--hidden",content:"content",customContent:"custom-content",actionsStart:"actions-start",contentStart:"content-start",label:"label",description:"description",contentEnd:"content-end",contentBottom:"content-bottom",actionsEnd:"actions-end",selectionContainer:"selection-container",selectionContainerSingle:"selection-container--single",openContainer:"open-container",dragContainer:"drag-container"},s={actionsStart:"actions-start",contentStart:"content-start",content:"content",contentBottom:"content-bottom",contentEnd:"content-end",actionsEnd:"actions-end"},a=0,o={selectedMultiple:"check-square-f",selectedSingle:"bullet-point-large",unselectedMultiple:"square",unselectedSingle:"bullet-point-large",closedLTR:"chevron-right",closedRTL:"chevron-left",open:"chevron-down",blank:"blank",close:"x"},c="data-test-active",r="calcite-list",d="calcite-list-item-group",h="calcite-list-item";function u(e){return Array.from(e.assignedElements({flatten:!0}).filter((e=>e.matches(r))))}function g(e){const t=e.assignedElements({flatten:!0}),n=t.filter((e=>e?.matches(d))).map((e=>Array.from(e.querySelectorAll(h)))).reduce(((e,t)=>[...e,...t]),[]),i=t.filter((e=>e?.matches(h)));return[...t.filter((e=>e?.matches(r))).map((e=>Array.from(e.querySelectorAll(h)))).reduce(((e,t)=>[...e,...t]),[]),...n,...i]}function C(e){e.forEach((t=>{t.setPosition=e.indexOf(t)+1,t.setSize=e.length}))}function m(e,t=!1){if(!i.Z5.isBrowser)return 0;const n=t?"ancestor::calcite-list-item | ancestor::calcite-list-item-group":"ancestor::calcite-list-item";return document.evaluate(n,e,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotLength}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5693.37798b865af8ea0235c7.js.LICENSE.txt b/docs/sentinel1-explorer/5693.37798b865af8ea0235c7.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/5693.37798b865af8ea0235c7.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/5698.d35dd6e82c5c8bb9cae9.js b/docs/sentinel1-explorer/5698.d35dd6e82c5c8bb9cae9.js new file mode 100644 index 00000000..7e6e0472 --- /dev/null +++ b/docs/sentinel1-explorer/5698.d35dd6e82c5c8bb9cae9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5698],{5698:function(e,r,a){a.r(r),a.d(r,{default:function(){return u}});var s=a(36663),t=(a(13802),a(39994),a(4157),a(70375),a(40266)),l=a(15881),i=a(81977);const n=e=>{let r=class extends e{get availableFields(){return this.layer.fieldsIndex.fields.map((e=>e.name))}};return(0,s._)([(0,i.Cb)()],r.prototype,"layer",void 0),(0,s._)([(0,i.Cb)({readOnly:!0})],r.prototype,"availableFields",null),r=(0,s._)([(0,t.j)("esri.views.layers.OGCFeatureLayerView")],r),r};let p=class extends(n(l.default)){supportsSpatialReference(e){return this.layer.serviceSupportsSpatialReference(e)}};p=(0,s._)([(0,t.j)("esri.views.2d.layers.OGCFeatureLayerView2D")],p);const u=p}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5745.ebe94fc94d7af11b1b8b.js b/docs/sentinel1-explorer/5745.ebe94fc94d7af11b1b8b.js new file mode 100644 index 00000000..566190a0 --- /dev/null +++ b/docs/sentinel1-explorer/5745.ebe94fc94d7af11b1b8b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5745],{86602:function(e,t,i){i.d(t,{JZ:function(){return p},RL:function(){return c},eY:function(){return g}});var s=i(78668),r=i(46332),a=i(38642),n=i(45867),o=i(51118),h=i(7349),l=i(91907),d=i(71449),u=i(80479);function p(e){return e&&"render"in e}function c(e){const t=document.createElement("canvas");return t.width=e.width,t.height=e.height,e.render(t.getContext("2d")),t}class g extends o.s{constructor(e=null,t=!1){super(),this.blendFunction="standard",this._sourceWidth=0,this._sourceHeight=0,this._textureInvalidated=!1,this._texture=null,this.stencilRef=0,this.coordScale=[1,1],this._height=void 0,this.pixelRatio=1,this.resolution=0,this.rotation=0,this._source=null,this._width=void 0,this.x=0,this.y=0,this.immutable=t,this.source=e,this.requestRender=this.requestRender.bind(this)}destroy(){this._texture&&(this._texture.dispose(),this._texture=null),null!=this._uploadStatus&&(this._uploadStatus.controller.abort(),this._uploadStatus=null)}get isSourceScaled(){return this.width!==this._sourceWidth||this.height!==this._sourceHeight}get height(){return void 0!==this._height?this._height:this._sourceHeight}set height(e){this._height=e}get source(){return this._source}set source(e){null==e&&null==this._source||(this._source=e,this.invalidateTexture(),this.requestRender())}get width(){return void 0!==this._width?this._width:this._sourceWidth}set width(e){this._width=e}beforeRender(e){super.beforeRender(e),this.updateTexture(e)}async setSourceAsync(e,t){null!=this._uploadStatus&&this._uploadStatus.controller.abort();const i=new AbortController,r=(0,s.hh)();return(0,s.$F)(t,(()=>i.abort())),(0,s.$F)(i,(e=>r.reject(e))),this._uploadStatus={controller:i,resolver:r},this.source=e,r.promise}invalidateTexture(){this._textureInvalidated||(this._textureInvalidated=!0,this._source instanceof HTMLImageElement?(this._sourceHeight=this._source.naturalHeight,this._sourceWidth=this._source.naturalWidth):this._source&&(this._sourceHeight=this._source.height,this._sourceWidth=this._source.width))}updateTransitionProperties(e,t){e>=64&&(this.fadeTransitionEnabled=!1,this.inFadeTransition=!1),super.updateTransitionProperties(e,t)}setTransform(e){const t=(0,r.yR)(this.transforms.displayViewScreenMat3),[i,s]=e.toScreenNoRotation([0,0],[this.x,this.y]),a=this.resolution/this.pixelRatio/e.resolution,o=a*this.width,h=a*this.height,l=Math.PI*this.rotation/180;(0,r.Iu)(t,t,(0,n.al)(i,s)),(0,r.Iu)(t,t,(0,n.al)(o/2,h/2)),(0,r.U1)(t,t,-l),(0,r.Iu)(t,t,(0,n.al)(-o/2,-h/2)),(0,r.ex)(t,t,(0,n.al)(o,h)),(0,r.Jp)(this.transforms.displayViewScreenMat3,e.displayViewMat3,t)}setSamplingProfile(e){this._texture&&(e.mips&&!this._texture.descriptor.hasMipmap&&this._texture.generateMipmap(),this._texture.setSamplingMode(e.samplingMode))}bind(e,t){this._texture&&e.bindTexture(this._texture,t)}async updateTexture({context:e,painter:t}){if(!this._textureInvalidated)return;if(this._textureInvalidated=!1,this._texture||(this._texture=this._createTexture(e)),!this.source)return void this._texture.setData(null);this._texture.resize(this._sourceWidth,this._sourceHeight);const i=function(e){return p(e)?e instanceof h.Z?e.getRenderedRasterPixels()?.renderedRasterPixels:c(e):e}(this.source);try{if(null!=this._uploadStatus){const{controller:e,resolver:s}=this._uploadStatus,r={signal:e.signal},{width:a,height:n}=this,o=this._texture,h=t.textureUploadManager;await h.enqueueTextureUpdate({data:i,texture:o,width:a,height:n},r),s.resolve(),this._uploadStatus=null}else this._texture.setData(i);this.ready()}catch(e){(0,s.H9)(e)}}onDetach(){this.destroy()}_createTransforms(){return{displayViewScreenMat3:(0,a.Ue)()}}_createTexture(e){const t=this.immutable,i=new u.X;return i.internalFormat=t?l.lP.RGBA8:l.VI.RGBA,i.wrapMode=l.e8.CLAMP_TO_EDGE,i.isImmutable=t,i.width=this._sourceWidth,i.height=this._sourceHeight,new d.x(e,i)}}},12688:function(e,t,i){i.d(t,{c:function(){return n}});var s=i(98831),r=i(38716),a=i(10994);class n extends a.Z{constructor(){super(...arguments),this._hasCrossfade=!1}get requiresDedicatedFBO(){return super.requiresDedicatedFBO||this._hasCrossfade}beforeRender(e){super.beforeRender(e),this._manageFade()}prepareRenderPasses(e){const t=e.registerRenderPass({name:"bitmap",brushes:[s.U.bitmap],target:()=>this.children,drawPhase:r.jx.MAP});return[...super.prepareRenderPasses(e),t]}_manageFade(){this.children.reduce(((e,t)=>e+(t.inFadeTransition?1:0)),0)>=2?(this.children.forEach((e=>e.blendFunction="additive")),this._hasCrossfade=!0):(this.children.forEach((e=>e.blendFunction="standard")),this._hasCrossfade=!1)}}},7349:function(e,t,i){i.d(t,{Z:function(){return s}});class s{constructor(e,t,i){this.pixelBlock=e,this.extent=t,this.originalPixelBlock=i}get width(){return null!=this.pixelBlock?this.pixelBlock.width:0}get height(){return null!=this.pixelBlock?this.pixelBlock.height:0}render(e){const t=this.pixelBlock;if(null==t)return;const i=this.filter({extent:this.extent,pixelBlock:this.originalPixelBlock??t});if(null==i.pixelBlock)return;i.pixelBlock.maskIsAlpha&&(i.pixelBlock.premultiplyAlpha=!0);const s=i.pixelBlock.getAsRGBA(),r=e.createImageData(i.pixelBlock.width,i.pixelBlock.height);r.data.set(s),e.putImageData(r,0,0)}getRenderedRasterPixels(){const e=this.filter({extent:this.extent,pixelBlock:this.pixelBlock});return null==e.pixelBlock?null:(e.pixelBlock.maskIsAlpha&&(e.pixelBlock.premultiplyAlpha=!0),{width:e.pixelBlock.width,height:e.pixelBlock.height,renderedRasterPixels:new Uint8Array(e.pixelBlock.getAsRGBA().buffer)})}}},66878:function(e,t,i){i.d(t,{y:function(){return x}});var s=i(36663),r=i(6865),a=i(58811),n=i(70375),o=i(76868),h=i(81977),l=(i(39994),i(13802),i(4157),i(40266)),d=i(68577),u=i(10530),p=i(98114),c=i(55755),g=i(88723),y=i(96294);let _=class extends y.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,s._)([(0,h.Cb)({type:[[[Number]]],json:{write:!0}})],_.prototype,"path",void 0),_=(0,s._)([(0,l.j)("esri.views.layers.support.Path")],_);const f=_,m=r.Z.ofType({key:"type",base:null,typeMap:{rect:c.Z,path:f,geometry:g.Z}}),x=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new m,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new n.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new u.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,o.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),o.tX),(0,o.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),o.tX),(0,o.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),o.tX),(0,o.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),o.tX),(0,o.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),o.tX),(0,o.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),o.tX),(0,o.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),o.tX),(0,o.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),o.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:i,maxScale:s}=t;return(0,d.o2)(e,i,s)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,i=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),i&&(e.outsideScaleRange=i),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,s._)([(0,h.Cb)()],t.prototype,"attached",void 0),(0,s._)([(0,h.Cb)({type:m,set(e){const t=(0,a.Z)(e,this._get("clips"),m);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"container",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"moving",void 0),(0,s._)([(0,h.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,s._)([(0,h.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"updateRequested",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"updateSuspended",null),(0,s._)([(0,h.Cb)()],t.prototype,"updating",null),(0,s._)([(0,h.Cb)()],t.prototype,"view",void 0),(0,s._)([(0,h.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,s._)([(0,h.Cb)({type:p.Z})],t.prototype,"highlightOptions",void 0),t=(0,s._)([(0,l.j)("esri.views.2d.layers.LayerView2D")],t),t}},23134:function(e,t,i){i.d(t,{Z:function(){return P}});var s=i(36663),r=i(74396),a=(i(39994),i(78668)),n=i(81977),o=(i(13802),i(4157),i(40266)),h=i(24568),l=i(35925),d=i(81590);const u=Math.PI/180;function p(e){return e*u}function c(e,t){const i=p(t.rotation),s=Math.abs(Math.cos(i)),r=Math.abs(Math.sin(i)),[a,n]=t.size;return e[0]=Math.round(n*r+a*s),e[1]=Math.round(n*s+a*r),e}var g=i(86602),y=i(64970),_=i(87241);const f=(0,h.Ue)(),m=[0,0],x=new _.Z(0,0,0,0),v=2048,b=2048,w=!1,R=!1,S=!1;let C=class extends r.Z{constructor(e){super(e),this._imagePromise=null,this.bitmaps=[],this.hidpi=S,this.imageMaxWidth=v,this.imageMaxHeight=b,this.imageRotationSupported=w,this.imageNormalizationSupported=R,this.update=(0,a.Ds)((async(e,t)=>{if((0,a.k_)(t),!e.stationary||this.destroyed)return;const i=e.state,s=(0,l.C5)(i.spatialReference),r=this.hidpi?e.pixelRatio:1,n=this.imageNormalizationSupported&&i.worldScreenWidth&&i.worldScreenWidtho||Math.floor(m[1]*r)>h,u=s&&(i.extent.xmins.valid[1]),p=!this.imageNormalizationSupported&&u,g=!d&&!p,y=this.imageRotationSupported?i.rotation:0,_=this.container.children.slice();if(g){const e=n?i.paddedViewState.center:i.center;this._imagePromise,this._imagePromise=this._singleExport(i,m,e,i.resolution,y,r,t)}else{let e=Math.min(o,h);p&&(e=Math.min(i.worldScreenWidth,e)),this._imagePromise=this._tiledExport(i,e,r,t)}try{const e=await this._imagePromise??[];(0,a.k_)(t);const i=[];if(this._imagePromise=null,this.destroyed)return;this.bitmaps=e;for(const t of _)e.includes(t)||i.push(t.fadeOut().then((()=>{t.remove(),t.destroy()})));for(const t of e)i.push(t.fadeIn());await Promise.all(i)}catch(e){this._imagePromise=null,(0,a.r9)(e)}}),5e3),this.updateExports=(0,a.Ds)((async e=>{const t=[];for(const i of this.container.children){if(!i.visible||!i.stage)return;t.push(e(i).then((()=>{i.invalidateTexture(),i.requestRender()})))}this._imagePromise=(0,a.as)(t).then((()=>this._imagePromise=null)),await this._imagePromise}))}destroy(){this.bitmaps.forEach((e=>e.destroy())),this.bitmaps=[]}get updating(){return!this.destroyed&&null!==this._imagePromise}async _export(e,t,i,s,r,n){const o=await this.fetchSource(e,Math.floor(t*r),Math.floor(i*r),{rotation:s,pixelRatio:r,signal:n});(0,a.k_)(n);const h=new g.eY(null,!0);return h.x=e.xmin,h.y=e.ymax,h.resolution=e.width/t,h.rotation=s,h.pixelRatio=r,h.opacity=0,this.container.addChild(h),await h.setSourceAsync(o,n),(0,a.k_)(n),h}async _singleExport(e,t,i,s,r,a,n){!function(e,t,i,s){const[r,a]=t,[n,o]=s,h=.5*i;e[0]=r-h*n,e[1]=a-h*o,e[2]=r+h*n,e[3]=a+h*o}(f,i,s,t);const o=(0,h.HH)(f,e.spatialReference);return[await this._export(o,t[0],t[1],r,a,n)]}_tiledExport(e,t,i,s){const r=d.Z.create({size:t,spatialReference:e.spatialReference,scales:[e.scale]}),a=new y.Z(r),n=a.getTileCoverage(e);if(!n)return null;const o=[];return n.forEach(((r,n,l,d)=>{x.set(r,n,l,0),a.getTileBounds(f,x);const u=(0,h.HH)(f,e.spatialReference);o.push(this._export(u,t,t,0,i,s).then((e=>(0!==d&&(x.set(r,n,l,d),a.getTileBounds(f,x),e.x=f[0],e.y=f[3]),e))))})),Promise.all(o)}};(0,s._)([(0,n.Cb)()],C.prototype,"_imagePromise",void 0),(0,s._)([(0,n.Cb)()],C.prototype,"bitmaps",void 0),(0,s._)([(0,n.Cb)()],C.prototype,"container",void 0),(0,s._)([(0,n.Cb)()],C.prototype,"fetchSource",void 0),(0,s._)([(0,n.Cb)()],C.prototype,"hidpi",void 0),(0,s._)([(0,n.Cb)()],C.prototype,"imageMaxWidth",void 0),(0,s._)([(0,n.Cb)()],C.prototype,"imageMaxHeight",void 0),(0,s._)([(0,n.Cb)()],C.prototype,"imageRotationSupported",void 0),(0,s._)([(0,n.Cb)()],C.prototype,"imageNormalizationSupported",void 0),(0,s._)([(0,n.Cb)()],C.prototype,"requestUpdate",void 0),(0,s._)([(0,n.Cb)()],C.prototype,"updating",null),C=(0,s._)([(0,o.j)("esri.views.2d.layers.support.ExportStrategy")],C);const P=C},26216:function(e,t,i){i.d(t,{Z:function(){return g}});var s=i(36663),r=i(74396),a=i(31355),n=i(86618),o=i(13802),h=i(61681),l=i(64189),d=i(81977),u=(i(39994),i(4157),i(40266)),p=i(98940);let c=class extends((0,n.IG)((0,l.v)(a.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new p.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";o.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,h.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,s._)([(0,d.Cb)()],c.prototype,"fullOpacity",null),(0,s._)([(0,d.Cb)()],c.prototype,"layer",void 0),(0,s._)([(0,d.Cb)()],c.prototype,"parent",void 0),(0,s._)([(0,d.Cb)({readOnly:!0})],c.prototype,"suspended",null),(0,s._)([(0,d.Cb)({readOnly:!0})],c.prototype,"suspendInfo",null),(0,s._)([(0,d.Cb)({readOnly:!0})],c.prototype,"legendEnabled",null),(0,s._)([(0,d.Cb)({type:Boolean,readOnly:!0})],c.prototype,"updating",null),(0,s._)([(0,d.Cb)({readOnly:!0})],c.prototype,"updatingProgress",null),(0,s._)([(0,d.Cb)()],c.prototype,"visible",null),(0,s._)([(0,d.Cb)()],c.prototype,"view",void 0),c=(0,s._)([(0,u.j)("esri.views.layers.LayerView")],c);const g=c},55068:function(e,t,i){i.d(t,{Z:function(){return h}});var s=i(36663),r=i(13802),a=i(78668),n=i(76868),o=(i(39994),i(4157),i(70375),i(40266));const h=e=>{let t=class extends e{initialize(){this.addHandles((0,n.on)((()=>this.layer),"refresh",(e=>{this.doRefresh(e.dataChanged).catch((e=>{(0,a.D_)(e)||r.Z.getLogger(this).error(e)}))})),"RefreshableLayerView")}};return t=(0,s._)([(0,o.j)("esri.layers.mixins.RefreshableLayerView")],t),t}},88723:function(e,t,i){i.d(t,{Z:function(){return g}});var s,r=i(36663),a=(i(91957),i(81977)),n=(i(39994),i(13802),i(4157),i(40266)),o=i(20031),h=i(53736),l=i(96294),d=i(91772),u=i(89542);const p={base:o.Z,key:"type",typeMap:{extent:d.Z,polygon:u.Z}};let c=s=class extends l.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new s({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,a.Cb)({types:p,json:{read:h.im,write:!0}})],c.prototype,"geometry",void 0),c=s=(0,r._)([(0,n.j)("esri.views.layers.support.Geometry")],c);const g=c}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/576.8c99231039ea4aa76994.js b/docs/sentinel1-explorer/576.8c99231039ea4aa76994.js new file mode 100644 index 00000000..a3a0a55c --- /dev/null +++ b/docs/sentinel1-explorer/576.8c99231039ea4aa76994.js @@ -0,0 +1,2 @@ +/*! For license information please see 576.8c99231039ea4aa76994.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[576],{20576:function(e,t,s){s.r(t),s.d(t,{scopeCss:function(){return K}});const r="-shadowcsshost",c="-shadowcssslotted",o="-shadowcsscontext",n=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",l=new RegExp("("+r+n,"gim"),p=new RegExp("("+o+n,"gim"),a=new RegExp("("+c+n,"gim"),i=r+"-no-combinator",h=/-shadowcsshost-no-combinator([^\s]*)/,u=[/::shadow/g,/::content/g],g=/-shadowcsshost/gim,d=e=>new RegExp(`((?{const s=k(e);let r=0;return s.escapedString.replace(w,((...e)=>{const c=e[2];let o="",n=e[4],l="";n&&n.startsWith("{"+E)&&(o=s.blocks[r++],n=n.substring(8),l="{");const p=t({selector:c,content:o});return`${e[1]}${p.selector}${e[3]}${l}${p.content}${n}`}))},k=e=>{const t=e.split(S),s=[],r=[];let c=0,o=[];for(let e=0;e0?o.push(n):(o.length>0&&(r.push(o.join("")),s.push(E),o=[]),s.push(n)),"{"===n&&c++}o.length>0&&(r.push(o.join("")),s.push(E));return{escapedString:s.join(""),blocks:r}},O=(e,t,s)=>e.replace(t,((...e)=>{if(e[2]){const t=e[2].split(","),r=[];for(let c=0;ce+t.replace(r,"")+s,j=(e,t,s)=>t.indexOf(r)>-1?R(e,t,s):e+t+s+", "+t+" "+e+s,C=(e,t)=>{const s=(e=>(e=e.replace(/\[/g,"\\[").replace(/\]/g,"\\]"),new RegExp("^("+e+")([>\\s~+[.,{:][\\s\\S]*)?$","m")))(t);return!s.test(e)},T=(e,t)=>e.replace(b,((e,s="",r,c="",o="")=>s+t+c+o)),L=(e,t,s)=>{const r="."+(t=t.replace(/\[is=([^\]]*)\]/g,((e,...t)=>t[0]))),c=e=>{let c=e.trim();if(!c)return"";if(e.indexOf(i)>-1)c=((e,t,s)=>{if(g.lastIndex=0,g.test(e)){const t=`.${s}`;return e.replace(h,((e,s)=>T(s,t))).replace(g,t+" ")}return t+" "+e})(e,t,s);else{const t=e.replace(g,"");t.length>0&&(c=T(t,r))}return c},o=(e=>{const t=[];let s=0;return{content:(e=e.replace(/(\[[^\]]*\])/g,((e,r)=>{const c=`__ph-${s}__`;return t.push(r),s++,c}))).replace(/(:nth-[-\w]+)(\([^)]+\))/g,((e,r,c)=>{const o=`__ph-${s}__`;return t.push(c),s++,r+o})),placeholders:t}})(e);let n,l="",p=0;const a=/( |>|\+|~(?!=))\s*/g;let u=!((e=o.content).indexOf(i)>-1);for(;null!==(n=a.exec(e));){const t=n[1],s=e.slice(p,n.index).trim();u=u||s.indexOf(i)>-1;l+=`${u?c(s):s} ${t} `,p=a.lastIndex}const d=e.substring(p);return u=u||d.indexOf(i)>-1,l+=u?c(d):d,m=o.placeholders,l.replace(/__ph-(\d+)__/g,((e,t)=>m[+t]));var m},y=(e,t,s,r,c)=>W(e,(e=>{let c=e.selector,o=e.content;"@"!==e.selector[0]?c=((e,t,s,r)=>e.split(",").map((e=>r&&e.indexOf("."+r)>-1?e.trim():C(e,t)?L(e,t,s).trim():e.trim())).join(", "))(e.selector,t,s,r):(e.selector.startsWith("@media")||e.selector.startsWith("@supports")||e.selector.startsWith("@page")||e.selector.startsWith("@document"))&&(o=y(e.content,t,s,r));return{selector:c.replace(/\s{2,}/g," ").trim(),content:o}})),B=(e,t,s,n,h)=>{const g=((e,t)=>{const s="."+t+" > ",r=[];return e=e.replace(a,((...e)=>{if(e[2]){const t=e[2].trim(),c=e[3],o=s+t+c;let n="";for(let t=e[4]-1;t>=0;t--){const s=e[5][t];if("}"===s||","===s)break;n=s+n}const l=(n+o).trim(),p=`${n.trimEnd()}${o.trim()}`.trim();if(l!==p){const e=`${p}, ${l}`;r.push({orgSelector:l,updatedSelector:e})}return o}return i+e[3]})),{selectors:r,cssText:e}})(e=(e=>O(e,p,j))(e=(e=>O(e,l,R))(e=(e=>e.replace(f,`$1${o}`).replace($,`$1${r}`).replace(m,`$1${c}`))(e))),n);return e=(e=>u.reduce(((e,t)=>e.replace(t," ")),e))(e=g.cssText),t&&(e=y(e,t,s,n)),{cssText:(e=(e=I(e,s)).replace(/>\s*\*\s+([^{, ]+)/gm," $1 ")).trim(),slottedSelectors:g.selectors.map((e=>({orgSelector:I(e.orgSelector,s),updatedSelector:I(e.updatedSelector,s)})))}},I=(e,t)=>e.replace(/-shadowcsshost-no-combinator/g,`.${t}`),K=(e,t,s)=>{const r=t+"-h",c=t+"-s",o=e.match(_)||[];e=(e=>e.replace(x,""))(e);const n=[];if(s){const t=e=>{const t=`/*!@___${n.length}___*/`,s=`/*!@${e.selector}*/`;return n.push({placeholder:t,comment:s}),e.selector=t+e.selector,e};e=W(e,(e=>"@"!==e.selector[0]?t(e):e.selector.startsWith("@media")||e.selector.startsWith("@supports")||e.selector.startsWith("@page")||e.selector.startsWith("@document")?(e.content=W(e.content,t),e):e))}const l=B(e,t,r,c);return e=[l.cssText,...o].join("\n"),s&&n.forEach((({placeholder:t,comment:s})=>{e=e.replace(t,s)})),l.slottedSelectors.forEach((t=>{const s=new RegExp(t.orgSelector.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g");e=e.replace(s,t.updatedSelector)})),e}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/576.8c99231039ea4aa76994.js.LICENSE.txt b/docs/sentinel1-explorer/576.8c99231039ea4aa76994.js.LICENSE.txt new file mode 100644 index 00000000..dd52d169 --- /dev/null +++ b/docs/sentinel1-explorer/576.8c99231039ea4aa76994.js.LICENSE.txt @@ -0,0 +1,11 @@ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + * + * This file is a port of shadowCSS from `webcomponents.js` to TypeScript. + * https://github.com/webcomponents/webcomponentsjs/blob/4efecd7e0e/src/ShadowCSS/ShadowCSS.js + * https://github.com/angular/angular/blob/master/packages/compiler/src/shadow_css.ts + */ diff --git a/docs/sentinel1-explorer/5831.f9a619d227f8b8515e4d.js b/docs/sentinel1-explorer/5831.f9a619d227f8b8515e4d.js new file mode 100644 index 00000000..7c2bec96 --- /dev/null +++ b/docs/sentinel1-explorer/5831.f9a619d227f8b8515e4d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5831],{12408:function(e,t,r){r.d(t,{L:function(){return n}});var a=r(40371);class n{constructor(){this._serviceMetadatas=new Map,this._itemDatas=new Map}async fetchServiceMetadata(e,t){const r=this._serviceMetadatas.get(e);if(r)return r;const n=await(0,a.T)(e,t);return this._serviceMetadatas.set(e,n),n}async fetchItemData(e){const{id:t}=e;if(!t)return null;const{_itemDatas:r}=this;if(r.has(t))return r.get(t);const a=await e.fetchData();return r.set(t,a),a}async fetchCustomParameters(e,t){const r=await this.fetchItemData(e);return r&&"object"==typeof r&&(t?t(r):r.customParameters)||null}}},53264:function(e,t,r){r.d(t,{w:function(){return o}});var a=r(88256),n=r(66341),s=r(70375),c=r(78668),i=r(20692),u=r(93968),l=r(53110);async function o(e,t){const r=(0,i.Qc)(e);if(!r)throw new s.Z("invalid-url","Invalid scene service url");const o={...t,sceneServerUrl:r.url.path,layerId:r.sublayer??void 0};if(o.sceneLayerItem??=await async function(e){const t=(await y(e)).serviceItemId;if(!t)return null;const r=new l.default({id:t,apiKey:e.apiKey}),s=await async function(e){const t=a.id?.findServerInfo(e.sceneServerUrl);if(t?.owningSystemUrl)return t.owningSystemUrl;const r=e.sceneServerUrl.replace(/(.*\/rest)\/.*/i,"$1")+"/info";try{const t=(await(0,n.Z)(r,{query:{f:"json"},responseType:"json",signal:e.signal})).data.owningSystemUrl;if(t)return t}catch(e){(0,c.r9)(e)}return null}(e);null!=s&&(r.portal=new u.Z({url:s}));try{return r.load({signal:e.signal})}catch(e){return(0,c.r9)(e),null}}(o),null==o.sceneLayerItem)return f(o.sceneServerUrl.replace("/SceneServer","/FeatureServer"),o);const m=await async function({sceneLayerItem:e,signal:t}){if(!e)return null;try{const r=(await e.fetchRelatedItems({relationshipType:"Service2Service",direction:"reverse"},{signal:t})).find((e=>"Feature Service"===e.type))||null;if(!r)return null;const a=new l.default({portal:r.portal,id:r.id});return await a.load(),a}catch(e){return(0,c.r9)(e),null}}(o);if(!m?.url)throw new s.Z("related-service-not-found","Could not find feature service through portal item relationship");o.featureServiceItem=m;const d=await f(m.url,o);return d.portalItem=m,d}async function y(e){if(e.rootDocument)return e.rootDocument;const t={query:{f:"json",...e.customParameters,token:e.apiKey},responseType:"json",signal:e.signal};try{const r=await(0,n.Z)(e.sceneServerUrl,t);e.rootDocument=r.data}catch{e.rootDocument={}}return e.rootDocument}async function f(e,t){const r=(0,i.Qc)(e);if(!r)throw new s.Z("invalid-feature-service-url","Invalid feature service url");const a=r.url.path,c=t.layerId;if(null==c)return{serverUrl:a};const u=y(t),l=t.featureServiceItem?await t.featureServiceItem.fetchData("json"):null,o=(l?.layers?.[0]||l?.tables?.[0])?.customParameters,f=e=>{const r={query:{f:"json",...o},responseType:"json",authMode:e,signal:t.signal};return(0,n.Z)(a,r)},m=f("anonymous").catch((()=>f("no-prompt"))),[d,p]=await Promise.all([m,u]),w=p?.layers,h=d.data&&d.data.layers;if(!Array.isArray(h))throw new Error("expected layers array");if(Array.isArray(w)){for(let e=0;e{"SubtypeGroupLayer"===e.layerType&&t.push(e.id)})),t}function o(e){return e?.layers?.filter((({layerType:e})=>"OrientedImageryLayer"===e)).map((({id:e})=>e))}function y(e){return e?.layers?.filter((({layerType:e})=>"CatalogLayer"===e)).map((({id:e})=>e))}async function f(e,t,r){if(!e?.url)return t??{};if(t??={},!t.layers){const a=await r.fetchServiceMetadata(e.url);t.layers=a.layers?.map(n)}const{serverUrl:s,portalItem:c}=await(0,a.w)(e.url,{sceneLayerItem:e,customParameters:i(t)?.customParameters}).catch((()=>({serverUrl:null,portalItem:null})));if(null==s)return t.tables=[],t;if(!t.tables&&c){const e=await c.fetchData();if(e?.tables)t.tables=e.tables.map(n);else{const a=await r.fetchServiceMetadata(s,{customParameters:i(e)?.customParameters});t.tables=a?.tables?.map(n)}}if(t.tables)for(const e of t.tables)e.url=`${s}/${e.id}`;return t}},55831:function(e,t,r){r.d(t,{fromItem:function(){return y},v:function(){return f}});var a=r(70375),n=r(53264),s=r(12408),c=r(54957),i=r(92557),u=r(53110),l=r(91362),o=r(31370);async function y(e){!e.portalItem||e.portalItem instanceof u.default||(e={...e,portalItem:new u.default(e.portalItem)});const t=await async function(e){await e.load();const t=new s.L;return async function(e){const t=e.className,r=i.T[t];return{constructor:await r(),properties:e.properties}}(await f(e,t))}(e.portalItem);return new(0,t.constructor)({portalItem:e.portalItem,...t.properties})}async function f(e,t){switch(e.type){case"3DTiles Service":return{className:"IntegratedMesh3DTilesLayer"};case"CSV":return{className:"CSVLayer"};case"Feature Collection":return async function(e){await e.load();const t=(0,o._$)(e,"Map Notes"),r=(0,o._$)(e,"Markup");if(t||r)return{className:"MapNotesLayer"};if((0,o._$)(e,"Route Layer"))return{className:"RouteLayer"};const a=await e.fetchData();return 1===(0,l.Q4)(a)?{className:"FeatureLayer"}:{className:"GroupLayer"}}(e);case"Feature Service":return async function(e,t){const r=await m(e,t);if("object"==typeof r){const{sourceJSON:e,className:t}=r,a={sourceJSON:e};return null!=r.id&&(a.layerId=r.id),{className:t||"FeatureLayer",properties:a}}return{className:"GroupLayer"}}(e,t);case"Feed":case"Stream Service":return{className:"StreamLayer"};case"GeoJson":return{className:"GeoJSONLayer"};case"Group Layer":return{className:"GroupLayer"};case"Image Service":return async function(e,t){await e.load();const r=e.typeKeywords?.map((e=>e.toLowerCase()))??[];if(r.includes("elevation 3d layer"))return{className:"ElevationLayer"};if(r.includes("tiled imagery"))return{className:"ImageryTileLayer"};const a=await t.fetchItemData(e),n=a?.layerType;if("ArcGISTiledImageServiceLayer"===n)return{className:"ImageryTileLayer"};if("ArcGISImageServiceLayer"===n)return{className:"ImageryLayer"};const s=await t.fetchServiceMetadata(e.url,{customParameters:await t.fetchCustomParameters(e)}),c=s.cacheType?.toLowerCase(),i=s.capabilities?.toLowerCase().includes("tilesonly");return"map"===c||i?{className:"ImageryTileLayer"}:{className:"ImageryLayer"}}(e,t);case"KML":return{className:"KMLLayer"};case"Map Service":return async function(e,t){return await async function(e,t){const{tileInfo:r}=await t.fetchServiceMetadata(e.url,{customParameters:await t.fetchCustomParameters(e)});return r}(e,t)?{className:"TileLayer"}:{className:"MapImageLayer"}}(e,t);case"Media Layer":return{className:"MediaLayer"};case"Scene Service":return async function(e,t){const r=await m(e,t,(async()=>{try{if(!e.url)return[];const{serverUrl:r}=await(0,n.w)(e.url,{sceneLayerItem:e}),a=await t.fetchServiceMetadata(r);return a?.tables??[]}catch{return[]}}));if("object"==typeof r){const a={};let n;if(null!=r.id?(a.layerId=r.id,n=`${e.url}/layers/${r.id}`):n=e.url,e.typeKeywords?.length)for(const t of Object.keys(c.fb))if(e.typeKeywords.includes(t))return{className:c.fb[t]};const s=await t.fetchServiceMetadata(n,{customParameters:await t.fetchCustomParameters(e,(e=>(0,l.uE)(e)?.customParameters))});return{className:c.fb[s?.layerType]||"SceneLayer",properties:a}}if(!1===r){const r=await t.fetchServiceMetadata(e.url);if("Voxel"===r?.layerType)return{className:"VoxelLayer"}}return{className:"GroupLayer"}}(e,t);case"Vector Tile Service":return{className:"VectorTileLayer"};case"WFS":return{className:"WFSLayer"};case"WMS":return{className:"WMSLayer"};case"WMTS":return{className:"WMTSLayer"};default:throw new a.Z("portal:unknown-item-type","Unknown item type '${type}'",{type:e.type})}}async function m(e,t,r){const{url:a,type:n}=e,s="Feature Service"===n;if(!a)return{};if(/\/\d+$/.test(a)){if(s){const r=await t.fetchServiceMetadata(a,{customParameters:await t.fetchCustomParameters(e,(e=>(0,l.uE)(e)?.customParameters))});if("Oriented Imagery Layer"===r.type)return{id:r.id,className:"OrientedImageryLayer",sourceJSON:r}}return{}}await e.load();let c=await t.fetchItemData(e);if(s){const e=await(0,l.$O)(c,a,t),r=d(e);if("object"==typeof r){const t=(0,l.XX)(e),a=(0,l._Y)(e),n=(0,l.H2)(e);r.className=null!=r.id&&t.includes(r.id)?"SubtypeGroupLayer":null!=r.id&&a?.includes(r.id)?"OrientedImageryLayer":null!=r.id&&n?.includes(r.id)?"CatalogLayer":"FeatureLayer"}return r}if("Scene Service"===n&&(c=await(0,l.CD)(e,c,t)),(0,l.Q4)(c)>0)return d(c);const i=await t.fetchServiceMetadata(a);return r&&(i.tables=await r()),d(i)}function d(e){return 1===(0,l.Q4)(e)&&{id:(0,l.Ok)(e)}}},40371:function(e,t,r){r.d(t,{T:function(){return n}});var a=r(66341);async function n(e,t){const{data:r}=await(0,a.Z)(e,{responseType:"json",query:{f:"json",...t?.customParameters,token:t?.apiKey}});return r}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/587.a3b661c03de58780f051.js b/docs/sentinel1-explorer/587.a3b661c03de58780f051.js new file mode 100644 index 00000000..93a1ffff --- /dev/null +++ b/docs/sentinel1-explorer/587.a3b661c03de58780f051.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[587],{12916:function(e,t,i){i.d(t,{q:function(){return l}});var r=i(7753),n=i(23148),s=i(13802),a=i(78668),o=i(62517);class l{constructor(e,t,i,r,n={}){this._mainMethod=t,this._transferLists=i,this._listeners=[],this._promise=(0,o.bA)(e,{...n,schedule:r}).then((e=>{if(void 0===this._thread){this._thread=e,this._promise=null,n.hasInitialize&&this.broadcast({},"initialize");for(const e of this._listeners)this._connectListener(e)}else e.close()})),this._promise.catch((t=>s.Z.getLogger("esri.core.workers.WorkerHandle").error(`Failed to initialize ${e} worker: ${t}`)))}on(e,t){const i={removed:!1,eventName:e,callback:t,threadHandle:null};return this._listeners.push(i),this._connectListener(i),(0,n.kB)((()=>{i.removed=!0,(0,r.Od)(this._listeners,i),this._thread&&null!=i.threadHandle&&i.threadHandle.remove()}))}destroy(){this._thread&&(this._thread.close(),this._thread=null),this._promise=null,this._listeners.length=0,this._transferLists={}}invoke(e,t){return this.invokeMethod(this._mainMethod,e,t)}invokeMethod(e,t,i){if(this._thread){const r=this._transferLists[e],n=r?r(t):[];return this._thread.invoke(e,t,{transferList:n,signal:i})}return this._promise?this._promise.then((()=>((0,a.k_)(i),this.invokeMethod(e,t,i)))):Promise.reject(null)}broadcast(e,t){return this._thread?Promise.all(this._thread.broadcast(t,e)).then((()=>{})):this._promise?this._promise.then((()=>this.broadcast(e,t))):Promise.reject()}get promise(){return this._promise}_connectListener(e){this._thread&&this._thread.on(e.eventName,e.callback).then((t=>{e.removed||(e.threadHandle=t)}))}}},83270:function(e,t,i){var r,n,s,a,o,l,d,h,u,_,c,g,y,m,b;i.d(t,{Em:function(){return p},Nl:function(){return b},Q3:function(){return f}}),function(e){e.U8="U8",e.I8="I8",e.U16="U16",e.I16="I16",e.U32="U32",e.I32="I32",e.F32="F32",e.F64="F64",e.Utf8String="Utf8String",e.NotSet="NotSet"}(r||(r={})),function(e){e.Png="Png",e.Jpeg="Jpeg",e.Dds="Dds",e.Raw="Raw",e.Dxt1="Dxt1",e.Dxt5="Dxt5",e.Etc2="Etc2",e.Astc="Astc",e.Pvrtc="Pvrtc",e.NotSet="NotSet"}(n||(n={})),function(e){e.Rgb8="Rgb8",e.Rgba8="Rgba8",e.R8="R8",e.Bgr8="Bgr8",e.Bgra8="Bgra8",e.Rg8="Rg8",e.NotSet="NotSet"}(s||(s={})),function(e){e.Position="Position",e.Normal="Normal",e.TexCoord="TexCoord",e.Color="Color",e.Tangent="Tangent",e.FeatureIndex="FeatureIndex",e.UvRegion="UvRegion",e.NotSet="NotSet"}(a||(a={})),function(e){e.Opaque="Opaque",e.Mask="Mask",e.Blend="Blend"}(o||(o={})),function(e){e.None="None",e.Mask="Mask",e.Alpha="Alpha",e.PreMultAlpha="PreMultAlpha",e.NotSet="NotSet"}(l||(l={})),function(e){e.Points="Points",e.Lines="Lines",e.LineStrip="LineStrip",e.Triangles="Triangles",e.TriangleStrip="TriangleStrip",e.NotSet="NotSet"}(d||(d={})),function(e){e.None="None",e.WrapXBit="WrapXBit",e.WrapYBit="WrapYBit",e.WrapXy="WrapXy",e.NotSet="NotSet"}(h||(h={})),function(e){e.Linear="Linear",e.Nearest="Nearest",e.NotSet="NotSet"}(u||(u={})),function(e){e.Linear="Linear",e.Nearest="Nearest",e.NearestMipmapNearest="NearestMipmapNearest",e.LinearMipmapNearest="LinearMipmapNearest",e.NearestMipmapLinear="NearestMipmapLinear",e.LinearMipmapLinear="LinearMipmapLinear",e.NotSet="NotSet"}(_||(_={})),function(e){e.FeatureId="FeatureId",e.GlobalUid="GlobalUid",e.UnspecifiedDateTime="UnspecifiedDateTime",e.EcmaIso8601DateTime="EcmaIso8601DateTime",e.EcmaIso8601DateOnly="EcmaIso8601DateOnly",e.TimeOnly="TimeOnly",e.TimeStamp="TimeStamp",e.ColorRgb="ColorRgb",e.ColorRgba="ColorRgba",e.Unrecognized="Unrecognized",e.NotSet="NotSet"}(c||(c={})),function(e){e.Texture="Texture",e.VertexAtrb="VertexAtrb",e.Implicit="Implicit",e.NotSet="NotSet"}(g||(g={})),function(e){e.Front="Front",e.Back="Back",e.None="None",e.NotSet="NotSet"}(y||(y={})),function(e){e.Pbr="Pbr",e.Unlit="Unlit"}(m||(m={})),function(e){e[e.Succeeded=0]="Succeeded",e[e.Failed=1]="Failed",e[e.MissingInputs=2]="MissingInputs"}(b||(b={}));const f=-1,p=-2},50587:function(e,t,i){i.r(t),i.d(t,{default:function(){return L}});var r=i(36663),n=i(66341),s=i(74396),a=i(13802),o=i(78668),l=i(76868),d=i(17262),h=i(81977),u=(i(39994),i(4157),i(40266)),_=i(83270),c=i(12916);class g extends c.q{constructor(e){super("Lyr3DWorker","process",{process:e=>e.inputs},e,{hasInitialize:!0})}destroyWasm(){return this.broadcast({},"destroyWasm")}}var y,m,b,f=i(75582),p=i(91478);(b=y||(y={}))[b.Lifetime=0]="Lifetime",b[b.Jobs=1]="Jobs",b[b.Renderables=2]="Renderables",function(e){e[e.Critical=0]="Critical",e[e.Error=1]="Error",e[e.Warning=2]="Warning",e[e.Info=3]="Info"}(m||(m={}));let w=class extends s.Z{constructor(e){super(e),this._lyr3DMainPromise=null,this._lyr3DMain=null,this._layers=new Map,this._debugFlags=new Set,this._debugLevel=m.Critical,this._pulseTaskHandle=null,this._session=null,this._debugFlags.add(y.Lifetime),this._debugFlags.add(y.Jobs),this._debugFlags.add(y.Renderables)}_debugLog(e,t,i,r=!0){if(this._debugFlags.has(e)&&this._debugLevel>=t){const e=r?`[js] ${i}`:`${i}`;t===m.Critical||t===m.Error?a.Z.getLogger(this).error(e):t===m.Warning&&a.Z.getLogger(this).warn(e),a.Z.getLogger(this).info(e)}}initialize(){this._debugLevel>m.Warning&&(a.Z.getLogger(this).level="info"),this._debugLog(y.Lifetime,m.Info,"Lyr3DWasmPerSceneView.initialize()"),this.addHandles([(0,l.YP)((()=>this.view.state?.contentCamera),(()=>this._updateWasmCamera()))]),this._pulseTaskHandle=(0,d.A)({preRender:()=>this._pulseTask()})}destroy(){this._debugLog(y.Lifetime,m.Info,"Lyr3DWasmPerSceneView.destroy()"),this._lyr3DMain&&(this._layers.forEach((e=>{e.abortController.abort()})),this._lyr3DMain.uninitialize_lyr3d_wasm(),this._lyr3DMain=null);const e=this._worker;e&&e.destroyWasm().then((()=>{this._worker?.destroy(),this._worker=null})),this._pulseTaskHandle?.remove(),this._pulseTaskHandle=null}add3DTilesLayerView(e){return this._lyr3DMain?this._add3DTilesLayerView(e):(this._debugLog(y.Lifetime,m.Error,"Lyr3DWasmPerSceneView.add3DTilesLayerView() called when WASM wasn't initialized"),_.Em)}remove3DTilesLayerView(e){if(!this._lyr3DMain)return this._debugLog(y.Lifetime,m.Error,"Lyr3DWasmPerSceneView.remove3DTilesLayerView() called when WASM wasn't loaded!"),0;this._doRemoveLayerView(e);const t=this._layers.size;return 0===t&&(this._debugLog(y.Lifetime,m.Info,"Lyr3DWasmPerSceneView.remove3DTilesLayerView() no Lyr3D layers left after removing a layer, destroying"),this.destroy()),t}setEnabled(e,t){if(!this._lyr3DMain)return void this._debugLog(y.Lifetime,m.Error,"Lyr3DWasmPerSceneView.setEnabled() called when WASM wasn't loaded!");const i=this._layers.get(e.wasmLayerId);i&&(this._lyr3DMain.set_enabled(e.wasmLayerId,t),i.needMemoryUsageUpdate=!0)}setLayerOffset(e,t){this._lyr3DMain?this._layers.get(e.wasmLayerId)&&this._lyr3DMain.set_carto_offset_z(e.wasmLayerId,t):this._debugLog(y.Lifetime,m.Error,"Lyr3DWasmPerSceneView.setLayerOffset() called when WASM wasn't loaded!")}getAttributionText(){return this._lyr3DMain?this._lyr3DMain.get_current_attribution_text().split("|"):(this._debugLog(y.Lifetime,m.Error,"Lyr3DWasmPerSceneView.getAttributionText() called when WASM wasn't loaded!"),[])}onRenderableEvicted(e,t,i){this._lyr3DMain?this._layers.get(e.wasmLayerId)&&this._lyr3DMain.on_renderable_evicted(e.wasmLayerId,t,i):this._debugLog(y.Lifetime,m.Error,"Lyr3DWasmPerSceneView.onRenderableEvicted() called when WASM wasn't loaded!")}isUpdating(e){if(!this._lyr3DMain&&this._lyr3DMainPromise)return!0;const t=this._layers.get(e);return!!t&&(t.outstandingJobCount>0||t.outstandingRenderableCount>0)}initializeWasm(){return this._lyr3DMain?Promise.resolve():(this._debugLog(y.Lifetime,m.Info,"Lyr3DWasmPerSceneView.initializeWasm()"),this._lyr3DMainPromise||(this._lyr3DMainPromise=(0,f.O)().then((e=>{this._lyr3DMain=e,this._lyr3DMainPromise=null;const t=this._lyr3DMain.addFunction(this._onNewJob.bind(this),"v"),i=this._lyr3DMain.addFunction(this._onNewRenderable.bind(this),"v"),r=this._lyr3DMain.addFunction(this._freeRenderables.bind(this),"viii"),n=this._lyr3DMain.addFunction(this._setRenderableVisibility.bind(this),"viiii"),s=this._lyr3DMain.addFunction(this._onWasmError.bind(this),"viiii"),a="global"===this.view.viewingMode,o=this.view.renderSpatialReference?.isWebMercator?3857:this.view.renderSpatialReference?.wkid??-1,l=this.view.heightModelInfo?.heightModel,d=!l||"gravity-related-height"===l;return this._lyr3DMain.initialize_lyr3d_wasm(s,t,i,r,n,a,d,o,this._debugLevel)?(this._worker=new g(function(e){return t=>{if(e.immediate)return e.immediate.schedule(t);throw new Error("No immediate scheduler")}}(this.view.resourceController)),this._worker.promise?this._worker.promise:void 0):(this._lyr3DMain=null,void this._debugLog(y.Lifetime,m.Critical,"Lyr3d Main WASM failed to initialize",!1))})).catch((e=>{this._debugLog(y.Lifetime,m.Critical,`Lyr3d WASM failed to download error = ${e}`,!1)}))),this._lyr3DMainPromise)}_pulseTask(){if(this._lyr3DMain){let e=0;this._layers.forEach((t=>{e+=t.layerView.usedMemory})),e/=1048576;const t=this.view.resourceController.memoryController,i=t.usedMemory*t.maxMemory-e,r=t.maxMemory-i+t.additionalCacheMemory;this._lyr3DMain.frame_pulse(r,e,i,t.maxMemory)}}_incrementJobCount(e){e.outstandingJobCount+=1,1===e.outstandingJobCount&&e.outstandingRenderableCount<1&&e.layerView.updatingFlagChanged()}_decrementJobCount(e){e.outstandingJobCount-=1,0===e.outstandingJobCount&&e.outstandingRenderableCount<1&&e.layerView.updatingFlagChanged()}_incrementRenderableCount(e){e.outstandingRenderableCount+=1,e.outstandingJobCount<1&&1===e.outstandingRenderableCount&&e.layerView.updatingFlagChanged()}_decrementRenderableCount(e){e.outstandingRenderableCount-=1,e.outstandingJobCount<1&&0===e.outstandingRenderableCount&&e.layerView.updatingFlagChanged()}_onJobFailed(e,t,i){t.error.length&&this._debugLog(y.Jobs,m.Error,t.error,!1),this._lyr3DMain&&this._lyr3DMain.on_job_failed(i.jobId,i.desc),this._decrementJobCount(e)}_onJobSucceeded(e,t,i){if(this._lyr3DMain){const e=t.data.byteLength,r=this._lyr3DMain._malloc(e);new Uint8Array(this._lyr3DMain.HEAPU8.buffer,r,e).set(t.data),this._lyr3DMain.on_job_completed(i.jobId,t.jobDescJson,r,e),this._lyr3DMain._free(r)}this._decrementJobCount(e)}_getRequestPromises(e,t){const i=[];for(const r of e){const e=new URL(r),s=e.searchParams.get("session");s?this._session=s:this._session&&e.searchParams.append("session",this._session),i.push((0,n.Z)(e.toString(),t).then((e=>e.data)))}return i}_onNewJob(){const e=this._lyr3DMain.get_next_job(),t=this._layers.get(e.layerId);if(!t)return;this._incrementJobCount(t);const i=t.abortController.signal,r={responseType:"array-buffer",signal:i,query:{...t.customParameters,token:t.apiKey}},n={inputs:[],jobDescJson:e.desc,isMissingResourceCase:!1},s=this._getRequestPromises(e.urls,r);Promise.all(s).then((e=>(n.inputs=e,this._worker.invoke(n,i)))).then((e=>e)).catch((t=>((0,o.D_)(t)?this._debugLog(y.Jobs,m.Warning,`job ${e.jobId} was cancelled.`):this._debugLog(y.Jobs,m.Error,`job ${e.jobId} failed with error ${t}.`),{status:_.Nl.Failed,error:"",jobDescJson:"",data:new Uint8Array(0),missingInputUrls:[],inputs:[]}))).then((s=>{if(s.status===_.Nl.Failed)this._onJobFailed(t,s,e);else if(s.status===_.Nl.Succeeded)this._onJobSucceeded(t,s,e);else if(s.status===_.Nl.MissingInputs){const a=this._getRequestPromises(s.missingInputUrls,r);Promise.all(a).then((e=>{n.jobDescJson=s.jobDescJson,s.originalInputs?n.inputs=s.originalInputs:n.inputs=[],n.isMissingResourceCase=!0;for(const t of e)n.inputs.push(t);return this._worker.invoke(n,i)})).then((i=>{i.status===_.Nl.Failed?this._onJobFailed(t,i,e):i.status===_.Nl.Succeeded&&this._onJobSucceeded(t,i,e)})).catch((i=>{this._decrementJobCount(t),(0,o.D_)(i)?this._debugLog(y.Jobs,m.Warning,`job ${e.jobId} was cancelled.`):this._debugLog(y.Jobs,m.Error,`job ${e.jobId} failed with error2 ${i}.`),this._lyr3DMain&&this._lyr3DMain.on_job_failed(e.jobId,e.desc)}))}}))}_onNewRenderable(){const e=this._lyr3DMain.get_next_renderable(),t=e.meshData;if(t.data&&t.data.byteLength>0){const e=t.data.slice();t.data=e}const i=this._layers.get(e.layerId);i&&(this._incrementRenderableCount(i),i.layerView.createRenderable(e).then((t=>{this._lyr3DMain&&this._lyr3DMain.on_renderable_created(!0,e.layerId,e.handle,t.memUsageBytes),this._decrementRenderableCount(i)})).catch((t=>{(0,o.D_)(t)||this._debugLog(y.Renderables,m.Error,`createRenderable failed with error ${t}.`),this._lyr3DMain&&this._lyr3DMain.on_renderable_created(!1,e.layerId,e.handle,0),this._decrementRenderableCount(i)})))}_freeRenderables(e,t,i){if(i<1)return;const r=this._layers.get(e);if(!r)return;const n=r.layerView,s=[],a=new Uint32Array(this._lyr3DMain.HEAPU32.buffer,t,i);for(let e=0;ei.e(3295).then(i.bind(i,43295)).then((e=>e.l)).then((({default:t})=>{const i=t({locateFile:a,onRuntimeInitialized:()=>e(i)})})))).catch((e=>{throw e}))}function s(){return new Promise((e=>i.e(829).then(i.bind(i,10829)).then((e=>e.l)).then((({default:t})=>{const i=t({locateFile:a,onRuntimeInitialized:()=>e(i)})})))).catch((e=>{throw e}))}function a(e){return(0,r.V)(`esri/libs/lyr3d/${e}`)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5881.06c1eb49e2012f59e288.js b/docs/sentinel1-explorer/5881.06c1eb49e2012f59e288.js new file mode 100644 index 00000000..bfe37f70 --- /dev/null +++ b/docs/sentinel1-explorer/5881.06c1eb49e2012f59e288.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5881],{73534:function(e,t,i){i.d(t,{I:function(){return s},v:function(){return n}});var r=i(19431);function s(e,t,i=0){const s=(0,r.uZ)(e,0,o);for(let e=0;e<4;e++)t[i+e]=Math.floor(256*u(s*a[e]))}function n(e,t=0){let i=0;for(let r=0;r<4;r++)i+=e[t+r]*l[r];return i}const a=[1,256,65536,16777216],l=[1/256,1/65536,1/16777216,1/4294967296],o=n(new Uint8ClampedArray([255,255,255,255]));function u(e){return e-Math.floor(e)}},21586:function(e,t,i){function r(e){const t=e.layer;return"floorInfo"in t&&t.floorInfo?.floorField&&"floors"in e.view?n(e.view.floors,t.floorInfo.floorField):null}function s(e,t){return"floorInfo"in t&&t.floorInfo?.floorField?n(e,t.floorInfo.floorField):null}function n(e,t){if(!e?.length)return null;const i=e.filter((e=>""!==e)).map((e=>`'${e}'`));return i.push("''"),`${t} IN (${i.join(",")}) OR ${t} IS NULL`}i.d(t,{c:function(){return r},f:function(){return s}})},89626:function(e,t,i){i.d(t,{Fp:function(){return l},RL:function(){return d},UV:function(){return c},bk:function(){return u}});var r=i(73534),s=i(53736),n=i(10927),a=i(14266);function l(e){switch(e.type){case"CIMPointSymbol":{const t=e.symbolLayers;if(!t||1!==t.length)return null;const i=t[0];return"CIMVectorMarker"!==i.type?null:l(i)}case"CIMVectorMarker":{const t=e.markerGraphics;if(!t||1!==t.length)return null;const i=t[0];if(!i)return null;const r=i.geometry;if(!r)return null;const s=i.symbol;return!s||"CIMPolygonSymbol"!==s.type&&"CIMLineSymbol"!==s.type||s.symbolLayers?.some((e=>!!e.effects))?null:{type:"sdf",geom:r,asFill:"CIMPolygonSymbol"===s.type}}}}function o(e){let t=1/0,i=-1/0,r=1/0,s=-1/0;for(const n of e)for(const e of n)e[0]i&&(i=e[0]),e[1]s&&(s=e[1]);return[t,r,i,s]}function u(e){return e?e.rings?o(e.rings):e.paths?o(e.paths):(0,s.YX)(e)?[e.xmin,e.ymin,e.xmax,e.ymax]:null:null}function c(e,t,i,r,s){const[n,l,o,u]=e;if(o0&&(v=(t.xmax-t.xmin)/(t.ymax-t.ymin),b=r.x/(i*v),S=r.y/i):(b=r.x,S=r.y)),t&&(b=.5*(t.xmax+t.xmin)+b*(t.xmax-t.xmin),S=.5*(t.ymax+t.ymin)+S*(t.ymax-t.ymin)),b-=n,S-=l,b*=p,S*=p,b+=f,S+=f;let _=b/y-.5,w=S/m-.5;return s&&i&&(_*=i*v,w*=i),[g,_,w,v]}function d(e){const t=function(e){return e?e.rings?e.rings:e.paths?e.paths:void 0!==e.xmin&&void 0!==e.ymin&&void 0!==e.xmax&&void 0!==e.ymax?[[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]]:null:null}(e.geom),i=function(e){let t=1/0,i=-1/0,r=1/0,s=-1/0;for(const n of e)for(const e of n)e[0]i&&(i=e[0]),e[1]s&&(s=e[1]);return new n.Z(t,r,i-t,s-r)}(t),r=a.s4,s=Math.floor(.5*(64-r)),l=(128-2*(s+r))/Math.max(i.width,i.height),o=Math.round(i.width*l)+2*s,u=Math.round(i.height*l)+2*s,c=[];for(const r of t)if(r&&r.length>1){const t=[];for(const n of r){let[r,a]=n;r-=i.x,a-=i.y,r*=l,a*=l,r+=s-.5,a+=s-.5,e.asFill?t.push([r,a]):t.push([Math.round(r),Math.round(a)])}if(e.asFill){const e=t.length-1;t[0][0]===t[e][0]&&t[0][1]===t[e][1]||t.push(t[0])}c.push(t)}const d=function(e,t,i,r){const s=t*i,n=new Array(s),a=r*r+1;for(let e=0;et&&(f=t),p<0&&(p=0),y>i&&(y=i);const m=l[0]-e[0],g=l[1]-e[1],b=m*m+g*g;for(let r=h;rb?(a=l[0],o=l[1]):(u/=b,a=e[0]+u*m,o=e[1]+u*g);const c=(r-a)*(r-a)+(s-o)*(s-o),d=(i-s-1)*t+r;ct-r&&(f=t-r),pi-r&&(y=i-r);for(let n=p;nn==l[1]>n)continue;const a=(i-n-1)*t;for(let t=h;te.needsUpload));e.length&&(e[Math.floor(Math.random()*e.length)].upload(),e.length>=2&&this.requestRender());for(const e of this._renderState.tiles())e.tryReady(this.attributeView.currentEpoch)&&(this._layerView.requestUpdate(),this.hasLabels&&this._layerView.view.labelManager.requestUpdate(),this.requestRender())}for(const t of this.children)t.setTransform(e.state);switch(this.hasAnimation&&e.painter.effects.integrate.draw(e,e.attributeView),super.renderChildren(e),e.drawPhase){case N.jx.MAP:return this._renderMapPhase(e);case N.jx.HIGHLIGHT:return this._renderHighlightPhase(e);case N.jx.LABEL:return this._renderLabelPhase(e)}}subscriptions(){return this._subscriptions.values()}get _instanceStore(){return this._store}get instanceStore(){return this._store}get layerView(){return this._layerView}get hasLabels(){return this._layerView.labelingCollisionInfos.length>0}get hasHighlight(){return this._layerView.hasHighlight()}get _layer(){return this._layerView.layer}_getExclusivePostprocessingInstance({drawPhase:e}){if(null==this._instanceStore)return null;let t=0,i=null;for(const r of this._instanceStore.values())r.techniqueRef.drawPhase&e&&(t++,r.techniqueRef.postProcessingEnabled&&(i=r));return t>1?null:i}_getOverrideStencilRef({drawPhase:e}){if(null==this._instanceStore)return null;let t=null;for(const i of this._instanceStore.values()){if(!(i.techniqueRef.drawPhase&e))continue;const{overrideStencilRef:r}=i.techniqueRef;if(null==t)t=r;else if(t!==r){t=null;break}}return t}get children(){return this._renderState?Array.from(this._renderState.tiles()).filter((e=>this._visibleTiles.has(e.key.id))):[]}async updateAttributeView(e){this.requestRender(),await this.updatingHandles.addPromise(this.attributeView.requestUpdate(e)),this.hasLabels&&this._layerView.view.labelManager.requestUpdate()}updateSubscriptions(e){for(const{tileId:t,version:i}of e.subscribe)if(this._subscriptions.has(t))this._subscriptions.get(t).version=i;else{const e=new $(t,i);this._subscriptions.set(t,e),this.updatingHandles.addPromise(e.promise)}for(const t of e.unsubscribe){const e=this._subscriptions.get(t);e?.destroy(),this._subscriptions.delete(t),this.removeTile(t)}}isDone(e){return!!this._renderState&&this._renderState.isTileDone(e)}async updateRenderState(e){(0,a.Z)("esri-2d-update-debug"),this._renderStateNext=new H((()=>this._stage),e,this._tileInfoView)}getDisplayStatistics(e,t){const i=this._statisticsByLevel.get(e);return i?i.get(t):null}updateStatistics(e,t){if(this._lockStatisticUpdates)return void this._updateStatisticsRequests.push({level:e,statistics:t});let i=this._statisticsByLevel.get(e);i||(i=new Map,this._statisticsByLevel.set(e,i));for(const e of t)i.set(e.fieldName,{minValue:e.minValue,maxValue:e.maxValue})}editStart(){this._renderState?.lockUploads(),this.attributeView.lockTextureUploads(),this._lockStatisticUpdates=!0}editEnd(){this._renderState?.unlockUploads(),this.attributeView.unlockTextureUploads(),this._lockStatisticUpdates=!1;for(const e of this._updateStatisticsRequests)this.updateStatistics(e.level,e.statistics);this._updateStatisticsRequests=[],this.requestRender()}swapRenderState(){if(this._renderStateNext&&((0,a.Z)("esri-2d-update-debug"),this._renderState?.destroy(),this._renderState=this._renderStateNext,this._renderStateNext=null),this._renderState)for(const e of this._renderState.tiles())e.upload();this.requestRender()}setVisibleTiles(e){this._visibleTiles=e}async onMessage(e,t){if((0,g.k_)(t),!this._subscriptions.has(e.id))return;const i=this._subscriptions.get(e.id);if(i.version!==e.subscriptionVesrion){if((0,a.Z)("esri-2d-update-debug")){e.subscriptionVesrion,i.version}return}const r=this._renderStateNext??this._renderState;if(!r)throw new Error("InternalError: No renderState defined");r.version,e.version,r.updateTile(e),e.end&&this._subscriptions.get(e.id).end(),this.requestRender(),this._layerView.view.labelManager.requestUpdate(),this._layerView.requestUpdate()}removeTile(e){(this._renderState||this._renderStateNext)&&(this._renderState&&this._renderState.removeTile(e),this._renderStateNext&&this._renderStateNext.removeTile(e))}hitTest(e){let t=this._hitTestsRequests.find((({x:t,y:i})=>t===e.x&&i===e.y));const i=(0,g.hh)();return t?t.resolvers.push(i):(t={x:e.x,y:e.y,resolvers:[i]},this._hitTestsRequests.push(t)),this.requestRender(),i.promise}getSortKeys(e){const t=new Set(e),i=new Map;for(const e of this.children)if(e.getSortKeys(t).forEach(((e,t)=>i.set(t,e))),i.size===t.size)break;return i}get hasAnimation(){return this.hasLabels}updateTransitionProperties(e,t){super.updateTransitionProperties(e,t),this._layerView.featureEffectView.transitionStep(e,t),this._layerView.featureEffectView.transitioning&&this.requestRender()}doRender(e){const{minScale:t,maxScale:i}=this._layer.effectiveScaleRange,r=e.state.scale;r<=(t||1/0)&&r>=i&&super.doRender(e)}afterRender(e){super.afterRender(e),this._hitTestsRequests.length&&this.requestRender()}setStencilReference(e){const t=this._getOverrideStencilRef(e);if(null==t)super.setStencilReference(e);else for(const e of this.children)e.stencilRef=t(e)}_renderMapPhase(e){this._layerView.featureEffectView.hasEffects?(this._renderOutsideEffect(e),this._renderInsideEffect(e)):this._renderFeatures(e,N.Xq.All),this._hitTestsRequests.length>0&&this._renderHittest(e)}_renderHighlightPhase(e){this.hasHighlight&&(0,Q.P9)(e,!1,(e=>{this._renderFeatures(e,N.Xq.Highlight)}))}_renderLabelPhase(e){this._renderFeatures(e,N.Xq.All)}_renderInsideEffect(e){const t=e.painter.effects.insideEffect;t.bind(e),this._renderFeatures(e,N.Xq.InsideEffect),t.draw(e,this._layerView.featureEffectView.includedEffects),t.unbind()}_renderOutsideEffect(e){const t=e.painter.effects.outsideEffect;t.bind(e),this._renderFeatures(e,N.Xq.OutsideEffect),t.draw(e,this._layerView.featureEffectView.excludedEffects),t.unbind()}_renderHittest(e){const{context:t}=e,i=e.painter.effects.hittest,r=t.getBoundFramebufferObject(),s=t.getViewport(),n=e.passOptions;i.bind(e),e.passOptions=i.createOptions(e,this._hitTestsRequests),this._renderFeatures(e,N.Xq.All),i.draw(e),i.unbind(),t.bindFramebuffer(r),t.restoreViewport(s),e.passOptions=n}_renderFeatures(e,t){for(const i of this.children){if(!i.visible)continue;const r=(0,a.Z)("featurelayer-force-marker-text-draw-order")?N.gl.STRICT_MARKERS_AND_TEXT:N.gl.BATCHING,s=i.getDisplayList(e.drawPhase,this._instanceStore,r);e.selection=t,s?.render(e)}const i=this._getExclusivePostprocessingInstance(e);null!=i&&i.techniqueRef.postProcess(e,i)}}var Y=i(62517);class X{constructor(e){this._connection=e,this.pipeline=this._connection.createInvokeProxy(),this.features=this._connection.createInvokeProxy("features"),this.aggregates=this._connection.createInvokeProxy("aggregates"),this.streamMessenger=this._connection.createInvokeProxy("streamMessenger")}destroy(){this._connection.destroy()}get closed(){return this._connection.closed}}var K=i(31355),W=i(20230);let ee=class extends v.Z{constructor(){super(...arguments),this.events=new K.Z,this._updatingStrategy=!0,this._tileToEvent=new W.Z,this._fetchStatus={outstanding:0,done:0}}get hasAllFeatures(){return this._hasAllData()&&(this._strategyInfo?.willQueryAllFeatures??!1)}get hasAllFeaturesInView(){return this._hasAllData()}get hasFullGeometries(){return this._hasAllData()&&(this._strategyInfo?.willQueryFullResolutionGeometry??!1)}onEvent(e){switch(e.type){case"subscribe":case"unsubscribe":case"loaded":case"error":this._handleTileEvent(e);break;case"updateStrategyStart":this._updatingStrategy=!0,this._fetchStatus={done:0,outstanding:0},this._strategyInfo=e.about;break;case"updateStrategyEnd":this._updatingStrategy=!1;break;case"updateFieldsStart":this._fetchStatus={done:0,outstanding:0};break;case"updateFieldsEnd":break;case"updateFieldsError":this.events.emit("error",e);break;case"fetchStart":this._fetchStatus.outstanding+=1,this.events.emit("status",this._fetchStatus);break;case"fetchEnd":this._fetchStatus.done+=1,this.events.emit("status",this._fetchStatus),e.done&&(this._fetchStatus={done:0,outstanding:0})}}_hasAllData(){return!this._updatingStrategy&&this._hasAllTileData()}_hasAllTileData(){for(const e of this._tileToEvent.values())if("loaded"!==e[e.length-1].type)return!1;return!0}_handleTileEvent(e){switch(e.type){case"subscribe":this._tileToEvent.set(e.tile,[e]);break;case"unsubscribe":this._tileToEvent.delete(e.tile);break;case"loaded":{const t=this._tileToEvent.get(e.tile);if(!t)return;t.push(e),this._tileToEvent.set(e.tile,t);break}case"error":{const t=this._tileToEvent.get(e.tile);if(!t)return;t.push(e),this._tileToEvent.set(e.tile,t),this.events.emit("error",e);break}}}};(0,r._)([(0,n.Cb)({readOnly:!0})],ee.prototype,"hasAllFeatures",null),(0,r._)([(0,n.Cb)({readOnly:!0})],ee.prototype,"hasAllFeaturesInView",null),(0,r._)([(0,n.Cb)({readOnly:!0})],ee.prototype,"hasFullGeometries",null),(0,r._)([(0,n.Cb)()],ee.prototype,"_updatingStrategy",void 0),(0,r._)([(0,n.Cb)()],ee.prototype,"_strategyInfo",void 0),(0,r._)([(0,n.Cb)()],ee.prototype,"_tileToEvent",void 0),ee=(0,r._)([(0,o.j)("esri.views.2d.layers.features.FeatureSourceEventLog")],ee);var te=i(67134),ie=i(20692);function re(e){switch(e.geometryType){case"point":return"esriGeometryPoint";case"polyline":return"esriGeometryPolyline";case"polygon":case"multipatch":return"esriGeometryPolygon";case"multipoint":return"esriGeometryMultipoint";default:return null}}var se=i(95550);function ne(e,t){const i=e.featureReduction;return i&&"selection"!==i.type&&(!("maxScale"in i)||!i.maxScale||i.maxScale=r?a:n+s*(a-n)}(e,t);case oe.hL.Proportional:return function(e,t){const i=e/t.minDataValue,r=de(t.minSize,e),s=de(t.maxSize,e);let n=null;return n=i*r,(0,ae.uZ)(n,r,s)}(e,t);case oe.hL.Stops:return function(e,t){const[i,r,s]=function(e,t){if(!t)return;let i=0,r=t.length-1;return t.some(((t,s)=>e"none"!==e.deconflictionStrategy)))??!1}function fe(e,t){const i=ne(e,t);if(i?.labelsVisible&&i.labelingInfo?.length)return i.labelingInfo.every((e=>"none"!==e.deconflictionStrategy))}function pe(e){return t=>(0,se.F2)(ce(t,e))}function ye(e){const t=null!=e&&"visualVariables"in e&&e.visualVariables;if(!t)return null;for(const e of t)if("size"===e.type)return pe(e);return null}var me=i(84684);function ge(e,t,i,r,s){const n=null!=t.subtypeCode?`${t.subtypeField} = ${t.subtypeCode}`:null,a=(0,me._)(t.definitionExpression,n),l=t.customParameters??{};return s&&(l.token=s),{type:"feature",mutable:{sourceRefreshVersion:r,availableFields:i.availableFields,dataFilter:{definitionExpression:a,gdbVersion:t.gdbVersion,historicMoment:t.historicMoment?.getTime(),outSpatialReference:i.outSpatialReference.toJSON(),timeExtent:t.timeExtent?.toJSON(),customParameters:l}},service:e,tileInfoJSON:i.tileInfoJSON}}var be=i(94451),Se=i(49341),ve=(i(4905),i(94672)),_e=i(95215),we=i(25609),Ie=i(89626),xe=i(31090);i(8530);function Ve(e,t,i=0){if(null==t)return e[i]=0,e[i+1]=0,e[i+2]=0,void(e[i+3]=0);const{r:r,g:s,b:n,a:a}=t;e[i]=r*a/255,e[i+1]=s*a/255,e[i+2]=n*a/255,e[i+3]=a}var Fe=i(14266),Ee=i(56144),Re=i(10402),Ce=i(47684),Oe=i(89978),Te=i(79456),ze=i(43411);async function Me(e,t){if(!e)return[];switch(e.type){case"simple-fill":return Ue(e,t);case"picture-fill":return function(e,t){const{outline:i}=e,{uniforms:r,schemaOptions:s}=t,{store:n}=s,a=[],l=_e.B$.createPictureFillRasterizationParam(e);if(!l)return[];const{width:o,height:u,xoffset:c,yoffset:d,xscale:h,yscale:f}=e,p={color:[255,255,255,255],sprite:l,height:u,aspectRatio:o/u,offsetX:c,offsetY:d,scaleX:h,scaleY:f,angle:0,applyRandomOffset:!1,sampleAlphaOnly:!1,scaleProportionally:!1,effects:null,scaleInfo:null};if("solid"===i?.style)return[n.ensureInstance(Ee.k2.complexOutlineFill,{geometry:{visualVariableColor:r.visualVariableColor,visualVariableOpacity:r.visualVariableOpacity,visualVariableSizeScaleStops:r.visualVariableSizeOutlineScaleStops,visualVariableSizeMinMaxValue:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null}},{zoomRange:!1}).createMeshInfo({params:{...p,...qe(i,!!r.visualVariableSizeOutlineScaleStops)}})];const y=n.ensureInstance(Ee.k2.complexFill,{geometry:{visualVariableColor:r.visualVariableColor,visualVariableOpacity:r.visualVariableOpacity}},{zoomRange:!1});return a.push(y.createMeshInfo({params:p})),i&&a.push(...Le(i,t,!0)),a}(e,t);case"simple-marker":return async function(e,t){const{uniforms:i,schemaOptions:r}=t,{store:s}=r;if("path"===e.style||e.outline&&"solid"!==e.outline.style&&"none"!==e.outline.style){const r=_e.B$.fromSimpleMarker(e);if(!r||!r.symbolLayers)throw new Error("Error handling marker! ");if(i.visualVariableRotation&&(r.angleAlignment="Map"),"path"!==e.style){const e=r.symbolLayers[0];if((0,Te.h)(t.uniforms)){const i=(0,Ce.XS)(t.uniforms,0,1);if(i>e.size){const t=i/e.size;e.size=i;const r=e.markerGraphics?.[0].symbol;(r.symbolLayers&&r.symbolLayers[0]).width*=t}}}return(0,Oe.$L)({type:"CIMSymbolReference",symbol:r},t)}const n=s.ensureInstance(Ee.k2.marker,{geometry:{visualVariableColor:i.visualVariableColor,visualVariableOpacity:i.visualVariableOpacity,visualVariableSizeMinMaxValue:i.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:i.visualVariableSizeScaleStops,visualVariableSizeStops:i.visualVariableSizeStops,visualVariableSizeUnitValue:i.visualVariableSizeUnitValue,visualVariableRotation:i.visualVariableRotation}},{zoomRange:!1}),a=Ne(e);let l=e.color?.toArray()??[0,0,0,0];"CIMVectorMarker"===a.resource.type&&(l=[255,255,255,255]);const o="triangle"===e.style?124/116:1,u=e.size,c=u*o,d=null!=i.visualVariableColor&&("cross"===e.style||"x"===e.style);return[n.createMeshInfo({params:{type:"simple",color:l,height:u,width:c,offsetX:e.xoffset,offsetY:e.yoffset,angle:e.angle,alignment:(0,Te.A)(i)?we.v2.MAP:we.v2.SCREEN,outlineColor:e.outline?.color?.toArray()??[0,0,0,0],outlineSize:e.outline?.width??1,referenceSize:u,sprite:a,overrideOutlineColor:d,hasSizeVV:(0,Te.h)(i),placement:null,effects:null,transforms:null,scaleInfo:null,minPixelBuffer:(0,Ce.XS)(i)}})]}(e,t);case"picture-marker":return function(e,t){const{uniforms:i,schemaOptions:r}=t,{store:s}=r,n=s.ensureInstance(Ee.k2.marker,{geometry:{visualVariableColor:i.visualVariableColor,visualVariableOpacity:i.visualVariableOpacity,visualVariableSizeMinMaxValue:i.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:i.visualVariableSizeScaleStops,visualVariableSizeStops:i.visualVariableSizeStops,visualVariableSizeUnitValue:i.visualVariableSizeUnitValue,visualVariableRotation:i.visualVariableRotation}},{zoomRange:!1}),a=_e.B$.createPictureMarkerRasterizationParam(e);return a?[n.createMeshInfo({params:{type:"picture",color:[255,255,255,255],height:e.height,width:e.width,offsetX:e.xoffset,offsetY:e.yoffset,angle:e.angle,alignment:(0,Te.A)(i)?we.v2.MAP:we.v2.SCREEN,outlineColor:null,outlineSize:0,referenceSize:e.height,sprite:a,overrideOutlineColor:!1,hasSizeVV:(0,Te.h)(i),placement:null,effects:null,transforms:null,scaleInfo:null,minPixelBuffer:(0,Ce.XS)(i)}})]:[]}(e,t);case"simple-line":return Le(e,t,!1);case"text":return function(e,t){const{uniforms:i,schemaOptions:r}=t,{store:s}=r;return[s.ensureInstance(Ee.k2.text,{geometry:{visualVariableColor:i.visualVariableColor,visualVariableOpacity:i.visualVariableOpacity,visualVariableRotation:i.visualVariableRotation,visualVariableSizeMinMaxValue:i.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:i.visualVariableSizeScaleStops,visualVariableSizeStops:i.visualVariableSizeStops,visualVariableSizeUnitValue:i.visualVariableSizeUnitValue}},{zoomRange:!1,clipAngle:!1,referenceSymbol:!1}).createMeshInfo({params:{boxBackgroundColor:e.backgroundColor?.toArray(),boxBorderLineColor:e.borderLineColor?.toArray(),boxBorderLineSize:e.borderLineSize??0,color:e.color?.toArray()??[0,0,0,0],offsetX:e.xoffset,offsetY:e.yoffset,postAngle:e.angle,fontSize:e.font.size,decoration:e.font.decoration,haloColor:e.haloColor?.toArray()??[0,0,0,0],haloFontSize:e.haloSize??0,lineWidth:e.lineWidth,lineHeightRatio:e.lineHeight,horizontalAlignment:e.horizontalAlignment,verticalAlignment:e.verticalAlignment,useCIMAngleBehavior:!1,glyphs:{type:"text-rasterization-param",resource:{type:"text",font:e.font.toJSON(),textString:e.text,symbol:_e.B$.createCIMTextSymbolfromTextSymbol(e)},overrides:[]},referenceSize:null,effects:null,placement:null,scaleInfo:null,transforms:null,scaleFactor:1,minPixelBuffer:(0,Ce.XS)(i),repeatLabel:null,repeatLabelDistance:null,allowOverrun:null,labelPosition:null,isLineLabel:!1}})]}(e,t);case"label":return function(e,t){const{schemaOptions:i,uniforms:r}=t,{store:s}=i,n=e.symbol,{allowOverrun:a,repeatLabel:l,repeatLabelDistance:o}=e,u={maxScale:e.maxScale??0,minScale:e.minScale??0},c=s.ensureInstance(Ee.k2.label,{geometry:{visualVariableColor:null,visualVariableOpacity:null,visualVariableRotation:r.visualVariableRotation,visualVariableSizeMinMaxValue:r.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:r.visualVariableSizeScaleStops,visualVariableSizeStops:r.visualVariableSizeStops,visualVariableSizeUnitValue:r.visualVariableSizeUnitValue}},{zoomRange:!0,clipAngle:!0,referenceSymbol:!0}),d=e.labelPlacement,[h,f]=(0,xe.qv)(d);return[c.createMeshInfo({params:{boxBackgroundColor:n.backgroundColor?.toArray(),boxBorderLineColor:n.borderLineColor?.toArray(),boxBorderLineSize:n.borderLineSize??0,color:n.color?.toArray()??[0,0,0,0],offsetX:n.xoffset,offsetY:n.yoffset,postAngle:n.angle,fontSize:n.font.size,decoration:n.font.decoration,haloColor:n.haloColor?.toArray()??[0,0,0,0],haloFontSize:n.haloSize??0,lineWidth:n.lineWidth,lineHeightRatio:n.lineHeight,horizontalAlignment:h,verticalAlignment:f,repeatLabel:l,repeatLabelDistance:(0,se.F2)(o),allowOverrun:a,labelPosition:e.labelPosition,scaleInfo:u,minPixelBuffer:(0,Ce.XS)(r),useCIMAngleBehavior:!1,glyphs:{type:"text-rasterization-param",resource:{type:"text",font:n.font.toJSON(),textString:n.text,symbol:_e.B$.createCIMTextSymbolfromTextSymbol(n),primitiveName:"label-override"},useLegacyLabelEvaluationRules:null==e.labelExpressionInfo?.expression,overrides:[{type:"CIMPrimitiveOverride",valueExpressionInfo:{type:"CIMExpressionInfo",expression:e.labelExpressionInfo?.expression??e.labelExpression,returnType:"String"},primitiveName:"label-override",propertyName:"textString",defaultValue:""}]},referenceSize:null,effects:null,placement:null,transforms:null,scaleFactor:1,isLineLabel:!1}})]}(e,t);case"cim":return(0,Oe.$L)(e.data,t);case"web-style":{const i=await e.fetchCIMSymbol();return(0,Oe.$L)(i.data,t)}default:throw new Error(`symbol not supported ${e.type}`)}}async function Ae(e,t){const{schemaOptions:i}=t,{store:r}=i,s=new Array(Fe.Pp),n=new Array(Fe.Pp/4);for(let t=0;t(0,Re.n)(e.color))),visualVariableOpacity:s.visualVariableOpacity,visualVariableSizeMinMaxValue:s.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:s.visualVariableSizeScaleStops,visualVariableSizeStops:s.visualVariableSizeStops,visualVariableSizeUnitValue:s.visualVariableSizeUnitValue,hittestUniforms:null},numberOfFields:e.attributes.length},{}).createMeshInfo({params:{size:e.size,outlineWidth:r,effects:null,scaleInfo:null,minPixelBuffer:(0,Ce.XS)(s)}});return[...e.backgroundFillSymbol?Ue(e.backgroundFillSymbol,{schemaOptions:t,path:"",uniforms:Ce.Jh}):[],n]}function Ne(e){if("path"===e.style){if(null==e.path)throw new Error("Symbol with a style of type path must define a path");return{type:"sprite-rasterization-param",overrides:[],resource:{type:"path",path:e.path,asFill:!0}}}const t=_e.B$.fromSimpleMarker(e);if("outline"in e&&e.outline&&"none"!==e.outline.style&&"solid"!==e.outline.style){if(!t||!t.symbolLayers)throw new Error("Error handling marker! ");return{type:"sprite-rasterization-param",resource:t.symbolLayers[0],overrides:[]}}return{type:"sprite-rasterization-param",resource:(0,Ie.Fp)(t),overrides:[]}}function qe(e,t){const i=e.width;return{outlineColor:e.color?.toArray()||[0,0,0,1],width:i,referenceWidth:i,capType:e.cap??"round",joinType:e.join??"round",miterLimit:e.miterLimit,hasSizeVV:t}}function Ue(e,t){const{style:i}=e;return i&&"none"!==i&&"solid"!==i?function(e,t){const{uniforms:i,schemaOptions:r}=t,{store:s}=r,n=e.color?.toArray()??[0,0,0,0],a={type:"sprite-rasterization-param",resource:{type:"fill-style",style:e.style},overrides:[]};if("solid"===e.outline?.style)return[s.ensureInstance(Ee.k2.patternOutlineFill,{geometry:{visualVariableColor:i.visualVariableColor,visualVariableOpacity:i.visualVariableOpacity,visualVariableSizeScaleStops:i.visualVariableSizeOutlineScaleStops,visualVariableSizeMinMaxValue:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null}},{zoomRange:!1}).createMeshInfo({params:{color:n,...qe(e.outline,!!i.visualVariableSizeOutlineScaleStops),sprite:a,scaleInfo:null,effects:null}})];const l=[],o=s.ensureInstance(Ee.k2.patternFill,{geometry:{visualVariableColor:i.visualVariableColor,visualVariableOpacity:i.visualVariableOpacity}},{zoomRange:!1}).createMeshInfo({params:{color:e.color?.toArray()??[0,0,0,0],sprite:a,scaleInfo:null,effects:null}});return l.push(o),e.outline&&l.push(...Le(e.outline,t,!0)),l}(e,t):function(e,t){const{uniforms:i,schemaOptions:r}=t,{store:s}=r,n=e.color?.toArray()??[0,0,0,0];if("none"!==e.style&&"solid"===e.outline?.style)return[s.ensureInstance(Ee.k2.outlineFill,{geometry:{visualVariableColor:i.visualVariableColor,visualVariableOpacity:i.visualVariableOpacity,visualVariableSizeScaleStops:i.visualVariableSizeOutlineScaleStops,visualVariableSizeMinMaxValue:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null}},{zoomRange:!1}).createMeshInfo({params:{color:n,...qe(e.outline,!!i.visualVariableSizeOutlineScaleStops),scaleInfo:null,effects:null}})];const a=[];if("none"!==e.style){const e=s.ensureInstance(Ee.k2.fill,{geometry:{visualVariableColor:i.visualVariableColor,visualVariableOpacity:i.visualVariableOpacity}},{zoomRange:!1}).createMeshInfo({params:{color:n,scaleInfo:null,effects:null}});a.push(e)}return e.outline&&a.push(...Le(e.outline,t,!0)),a}(e,t)}function Le(e,t,i){const{color:r,style:s,width:n,cap:a,join:l}=e,{schemaOptions:o}=t,{store:u}=o,c=[],d=i?{...Ce.Jh,visualVariableSizeScaleStops:t.uniforms.visualVariableSizeOutlineScaleStops}:t.uniforms,h={geometry:{visualVariableColor:d.visualVariableColor,visualVariableOpacity:d.visualVariableOpacity,visualVariableSizeMinMaxValue:d.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:d.visualVariableSizeScaleStops,visualVariableSizeStops:d.visualVariableSizeStops,visualVariableSizeUnitValue:d.visualVariableSizeUnitValue}},f={color:r?.toArray()??[0,0,0,0],width:n,referenceWidth:n,capType:a,joinType:l,miterLimit:e.miterLimit,hasSizeVV:(0,Te.h)(d),effects:null,scaleInfo:null};if(null==s||"solid"===s){const e=u.ensureInstance(Ee.k2.line,h,{zoomRange:!1}).createMeshInfo({params:f});c.push(e)}else if("none"!==s){const e=u.ensureInstance(Ee.k2.texturedLine,h,{zoomRange:!1}).createMeshInfo({params:{...f,shouldScaleDash:!0,shouldSampleAlphaOnly:!1,isSDF:!0,sprite:{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:(0,_e.U1)(s,a),capStyle:(0,_e.qp)(a)},overrides:[]}}});c.push(e)}return null!=e.marker&&c.push(...function(e,t,i){const{uniforms:r,schemaOptions:s}=i,{store:n}=s,a=n.ensureInstance(Ee.k2.marker,{geometry:{visualVariableColor:r.visualVariableColor,visualVariableOpacity:r.visualVariableOpacity,visualVariableSizeMinMaxValue:r.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:r.visualVariableSizeScaleStops,visualVariableSizeStops:r.visualVariableSizeStops,visualVariableSizeUnitValue:r.visualVariableSizeUnitValue,visualVariableRotation:r.visualVariableRotation}},{zoomRange:!1}),l=Ne(e),o=6*t.width,u=o,c=e.color?.toArray()??t.color?.toArray()??[0,0,0,0],d="cross"===e.style||"x"===e.style;let h;switch(e.placement){case"begin-end":h=we.Tx.Both;break;case"begin":h=we.Tx.JustBegin;break;case"end":h=we.Tx.JustEnd;break;default:h=we.Tx.None}const f={type:"cim-marker-placement-info",placement:{type:"CIMMarkerPlacementAtExtremities",angleToLine:!0,offset:0,extremityPlacement:h,offsetAlongLine:0},overrides:[]};return[a.createMeshInfo({params:{type:"simple",color:c,height:u,width:o,offsetX:0,offsetY:0,angle:0,alignment:(0,Te.A)(r)?we.v2.MAP:we.v2.SCREEN,outlineColor:c,outlineSize:d?t.width:0,referenceSize:u/6,sprite:l,overrideOutlineColor:d&&null!=r.visualVariableColor,hasSizeVV:(0,Te.h)(r),placement:f,transforms:null,effects:null,scaleInfo:null,minPixelBuffer:(0,Ce.XS)(r)}})]}(e.marker,e,t)),c}async function Be(e,t,i){const r=t.labelsVisible&&t.labelingInfo||[],s=re(t),n=(0,Se.a)(r,s);return{type:"label",classes:await Promise.all(n.map(((t,r)=>async function(e,t,i,r){const s=await Me(t,{path:`${i}`,schemaOptions:e,uniforms:r});return{maxScale:t.maxScale,minScale:t.minScale,expression:t.labelExpressionInfo?.expression??t.labelExpression,where:t.where,meshes:s}}(e,t,r,i))))}}async function Je(e,t){if(!t)return{type:"simple",meshes:[]};switch(t.type){case"simple":return async function(e,t){const i=t.getSymbols(),r=i.length?i[0]:null,s=(0,Ce.Sc)(t),n="renderer.symbol";return{type:"simple",meshes:await Me(r,{schemaOptions:e,uniforms:s,path:n})}}(e,t);case"dot-density":return async function(e,t){const i=(0,Ce.Sc)(t),r="renderer.symbol";return{type:"dot-density",meshes:await Ae(t,{schemaOptions:e,uniforms:i,path:r})}}(e,t);case"class-breaks":return async function(e,t){const i=(0,Ce.Sc)(t),r=t.backgroundFillSymbol,s=t.normalizationType,n="log"===s?"esriNormalizeByLog":"percent-of-total"===s?"esriNormalizeByPercentOfTotal":"field"===s?"esriNormalizeByField":null,a=t.classBreakInfos.map((async t=>({meshes:await Me(t.symbol,{path:`renderer-stop-${t.minValue}-${t.maxValue}`,schemaOptions:e,uniforms:i}),min:t.minValue,max:t.maxValue}))),l=(await Promise.all(a)).sort(((e,t)=>e.min-t.min)),o=await Me(r,{schemaOptions:e,path:"renderer.backgroundFill",uniforms:{...Ce.Jh,visualVariableSizeOutlineScaleStops:i.visualVariableSizeOutlineScaleStops}}),u=await Me(t.defaultSymbol,{schemaOptions:e,path:"renderer.defaultSymbol",uniforms:i});return{type:"interval",field:t.field,expression:t.valueExpression,backgroundFill:o,defaultSymbol:u,intervals:l,normalizationField:t.normalizationField,normalizationTotal:t.normalizationTotal,normalizationType:n,isMaxInclusive:t.isMaxInclusive}}(e,t);case"unique-value":return async function(e,t){const i=[],r=(0,Ce.Sc)(t),s=await Me(t.backgroundFillSymbol,{schemaOptions:e,path:"renderer.backgroundFill",uniforms:{...Ce.Jh,visualVariableSizeOutlineScaleStops:r.visualVariableSizeOutlineScaleStops}}),n=await Me(t.defaultSymbol,{schemaOptions:e,path:"renderer.defaultSymbol",uniforms:r});for(const s of t.uniqueValueInfos??[]){const t=await Me(s.symbol,{path:`renderer-unique-value-${s.value}`,schemaOptions:e,uniforms:r});i.push({value:""+s.value,symbol:t})}return{type:"map",field:t.field,expression:t.valueExpression,field2:t.field2,field3:t.field3,fieldDelimiter:t.fieldDelimiter,backgroundFill:s,defaultSymbol:n,map:i}}(e,t);case"dictionary":return function(e){const t=(0,Ce.Sc)(e),i=e.scaleExpression,r=null!=i&&"1"!==i?{valueExpressionInfo:{type:"CIMExpressionInfo",expression:e.scaleExpression,returnType:"Numeric"},defaultValue:1}:void 0;return{type:"dictionary",fieldMap:e.fieldMap,scaleExpression:r,visualVariableUniforms:t}}(t);case"heatmap":return async function(e,t){return{type:"heatmap",meshes:await ke(t,e)}}(e,t);case"pie-chart":return async function(e,t){return{type:"pie-chart",meshes:Pe(t,e)}}(e,t)}}var Ze=i(54746);async function De(e,t){const i=t.renderer,r=(0,Ce.Sc)(i);return{symbology:await Je(e,i),labels:await Be(e,t,r)}}async function je(e,t,i,r){const s=i.featureReduction;if(s)switch(s.type){case"binning":return async function(e,t,i,r,s){const n=He(e,r.fields),a=e.renderer,l=await Je(t,a),o=(0,Ze.$F)(a,[null,null]),u=(0,Ce.Sc)(a),c=await Be(t,{geometryType:"polygon",labelingInfo:e.labelingInfo,labelsVisible:e.labelsVisible},u);return{storage:o,mesh:{displayRefreshVersion:s,strategy:{type:"binning",fields:n,fixedBinLevel:e.fixedBinLevel,featureFilter:i.filters[0]},factory:{labels:c,symbology:l},sortKey:null,timeZone:i.timeZone}}}(s,e,t,i,r);case"cluster":return async function(e,t,i,r,s){const n=He(e,r.fields),a={type:"cluster",feature:await Je(t,e.effectiveFeatureRenderer),cluster:await Je(t,e.effectiveClusterRenderer)},l=(0,Ce.Sc)(e.effectiveFeatureRenderer),o={type:"cluster",feature:await Be(t,r,l),cluster:await Be(t,{geometryType:"point",labelingInfo:e.labelingInfo,labelsVisible:e.labelsVisible},l)};return{storage:(0,Ze.$F)(e.effectiveFeatureRenderer,[null,null]),mesh:{displayRefreshVersion:s,strategy:{type:"cluster",fields:n,featureFilter:i.filters[0],clusterRadius:(0,se.F2)(e.clusterRadius/2)},factory:{labels:o,symbology:a},sortKey:null,timeZone:i.timeZone}}}(s,e,t,i,r)}const n=function(e,t,i){const r=null!=t&&"unique-value"===t.type&&t.orderByClassesEnabled;if("default"!==e||r||(e=[new be.Z({field:i,order:"descending"})]),"default"!==e&&e.length){e.length;const t=e[0],i="ascending"===t.order?"asc":"desc";return t.field?{field:t.field,order:i}:t.valueExpression?{expression:t.valueExpression,order:i}:null}if(r)return{byRenderer:!0,order:"asc"};return null}(i.orderBy,i.renderer,i.objectIdField);return{storage:(0,Ze.$F)(i.renderer,t.filters),mesh:{displayRefreshVersion:r,strategy:{type:"feature"},factory:await De(e,i),sortKey:n,timeZone:t.timeZone}}}function He(e,t){return e.fields.map((e=>({...e.toJSON(),type:Qe(e,t)})))}function Qe(e,t){const{onStatisticExpression:i,onStatisticField:r,statisticType:s}=e;switch(s){case"min":case"max":case"avg":case"avg_angle":case"sum":case"count":return"esriFieldTypeDouble";case"mode":{if(i){const{returnType:e}=i;return e?"string"===e?"esriFieldTypeString":"esriFieldTypeDouble":"esriFieldTypeString"}const e=t.find((e=>e.name===r));return e?e.type:"esriFieldTypeString"}}}var $e=i(54680);class Ge{constructor(e){this.layer=e}getLabelingDeconflictionInfo(e){const t=this.layer,i=he(t);return[{vvEvaluators:{0:ye(t.renderer)},deconflictionEnabled:i}]}async createServiceOptions(e){const t=this.layer,i=t.parent,r=(0,F.S1)(i),{capabilities:s,editingInfo:n,objectIdField:a,globalIdField:l,datesInUnknownTimezone:o,orderBy:u,subtypeField:c,parsedUrl:d}=i,h=i.fieldsIndex.toJSON(),f=re(t),p=i.timeInfo?.toJSON(),y=t.spatialReference.toJSON(),m=(0,te.d9)(d);let g=a;if(u?.length){const e=!u[0].valueExpression&&u[0].field;e&&(g=e)}return{type:"feature-service",source:m,isSourceHosted:(0,ie.M8)(m.path),orderByFields:g,metadata:{timeReferenceUnknownClient:o,subtypeField:c,globalIdField:l,fieldsIndex:h,geometryType:f,objectIdField:a,timeInfo:p,spatialReference:y,subtypes:null,typeIdField:null,types:null},queryMetadata:{capabilities:s,effectiveCapabilities:r,lastEditDate:n?.lastEditDate?.getTime(),snapshotInfo:null}}}createSourceSchema(e,t,i){const{definitionExpression:r,customParameters:s,timeExtent:n,apiKey:a}=this.layer.parent;return ge(e,{definitionExpression:r,customParameters:s,timeExtent:n},t,i,a)}createProcessorSchema(e,t,i){const{parent:{fields:r,geometryType:s,orderBy:n,objectIdField:a},renderer:l,labelingInfo:o,labelsVisible:u}=this.layer,c={featureReduction:null,fields:r.map((e=>e.toJSON())),geometryType:s,labelingInfo:o,labelsVisible:u,objectIdField:a,orderBy:n??"default",renderer:l?.clone()};return je(e,t,c,i)}get hasRequiredSupport(){return(0,$e.T)(this.layer.renderer)}getUpdateHashProperties(e){const t=this.layer,{parent:i,parent:{definitionExpression:r,apiKey:s},renderer:n}=t,a=this.layer.labelsVisible?this.layer.labelingInfo:null;return{apiKey:s,customParameters:JSON.stringify(i.customParameters),definitionExpression:r,labelingInfo:a,orderBy:JSON.stringify(i.orderBy),renderer:n}}setGraphicOrigin(e){e.origin={type:"catalog",layer:this.layer}}}function Ye(e,t){const i=e.extent,r=t?.clone().intersection(i),s=null!=r?r.width*r.height:0,n=t?t.width*t.height:0,l=0===n?0:s/n,o=(0,a.Z)("featurelayer-snapshot-point-coverage");return!isNaN(l)&&l>=o}function Xe(e,t){return null!=e.floorInfo&&(e.floorInfo.viewAllLevelIds.length>0||t.floors.length>0)}function Ke(e,t,i){const r=function(e,t,i){if(null==e.floorInfo||!i.floors?.length)return t;let r=i.floors;const{floorField:s,viewAllLevelIds:n}=e.floorInfo;n.length&&(r=n);const a=r.filter((e=>""!==e)).map((e=>"'"+e+"'"));if(a.push("''"),t?.includes(s)){let e=new RegExp("AND \\("+s+".*NULL\\)","g");t=t.replace(e,""),e=new RegExp("\\("+s+".*NULL\\)","g"),t=(t=t.replace(e,"")).replaceAll(/\s+/g," ").trim()}let l="("+s+" IN ({ids}) OR "+s+" IS NULL)";return l=l.replace("{ids}",a.join(", ")),(0,me._)(t,l)}(e,t?.where,i);return r?(t??=new x.Z,t.where=r,t):t}class We{constructor(e){this.layer=e}getLabelingDeconflictionInfo(e){const t=this.layer,i=fe(t,e)??he(t);return[{vvEvaluators:{0:ye(t.renderer)},deconflictionEnabled:i}]}async createServiceOptions(e){const t=this.layer,i=(0,F.S1)(t),{capabilities:r,editingInfo:s,objectIdField:n,typeIdField:l,globalIdField:o,datesInUnknownTimezone:u,orderBy:c,subtypeField:d,refreshInterval:h}=t,f=t.fieldsIndex.toJSON(),p=f.fields,y=re(t),m=t.timeInfo?.toJSON(),g=t.spatialReference.toJSON(),b=t.types?.map((e=>e.toJSON())),S=(0,te.d9)(this.layer.parsedUrl);this.layer.dynamicDataSource&&(S.query={layer:JSON.stringify({source:this.layer.dynamicDataSource})});let v=this.layer.objectIdField;if(c?.length){const e=!c[0].valueExpression&&c[0].field;e&&(v=e)}const _=!(null!=s?.lastEditDate)&&h>0,w=(0,a.Z)("featurelayer-snapshot-enabled")&&"point"===t.geometryType&&r?.query.supportsPagination&&!r?.operations.supportsEditing&&!_,I=w&&Ye(e,t.fullExtent);return{type:"feature-service",source:S,isSourceHosted:(0,ie.M8)(S.path),orderByFields:v,metadata:{typeIdField:l??void 0,types:b,timeReferenceUnknownClient:u,subtypeField:d,globalIdField:o,fields:p,fieldsIndex:f,geometryType:y,objectIdField:n,timeInfo:m,spatialReference:g,subtypes:this.layer.subtypes?.map((e=>e.toJSON()))},queryMetadata:{capabilities:r,effectiveCapabilities:i,lastEditDate:s?.lastEditDate?.getTime(),snapshotInfo:{supportsSnapshotMinThreshold:w,supportsSnapshotMaxThreshold:I,snapshotCountThresholds:{min:(0,a.Z)("featurelayer-snapshot-point-min-threshold"),max:(0,a.Z)("featurelayer-snapshot-point-max-threshold")}}}}}createSourceSchema(e,t,i){const{definitionExpression:r,customParameters:s,gdbVersion:n,historicMoment:a,subtypeCode:l,subtypeField:o,timeExtent:u,apiKey:c}=this.layer;return ge(e,{definitionExpression:r,customParameters:s,gdbVersion:n,historicMoment:a,subtypeCode:l,subtypeField:o,timeExtent:u},t,i,c)}createProcessorSchema(e,t,i){const{fields:r,renderer:s,geometryType:n,labelingInfo:a,labelsVisible:l,orderBy:o,objectIdField:u}=this.layer,c={fields:r.map((e=>e.toJSON())),renderer:s?.clone(),featureReduction:ne(this.layer,t),geometryType:n,labelingInfo:a,labelsVisible:l,objectIdField:u,orderBy:o??"default"};return je(e,t,c,i)}get hasRequiredSupport(){return(0,$e.T)(this.layer.renderer)}hasFilters(e){return Xe(this.layer,e)}addFilters(e,t){return Ke(this.layer,e,t)}getUpdateHashProperties(e){const t=this.layer,{definitionExpression:i,renderer:r,gdbVersion:s,apiKey:n,subtypeCode:a}=t,l=this.layer.labelsVisible?this.layer.labelingInfo:null,o=t.historicMoment?.getTime()??void 0,u=JSON.stringify(t.customParameters),c=ne(t,e)?.toJSON(),d=JSON.stringify(t.orderBy);return{apiKey:n,customParameters:u,definitionExpression:i,featureReduction:c,floors:Xe(this.layer,e)?e.floors:null,gdbVersion:s,historicMoment:o,labelingInfo:l,orderBy:d,renderer:r,subtypeCode:a}}}class et{constructor(e){this.layer=e}getLabelingDeconflictionInfo(e){const t=this.layer,i=fe(t,e)??he(t);return[{vvEvaluators:{0:ye(t.renderer)},deconflictionEnabled:i}]}async createServiceOptions(e){const t=this.layer,i=(0,F.S1)(t),{capabilities:r,objectIdField:s}=t,n=t.fieldsIndex.toJSON(),a=re(t),l=t.timeInfo?.toJSON(),o=t.spatialReference.toJSON();return function(e){if(!("openPorts"in e))throw new p.Z("source-not-supported")}(t.source),{type:"memory",source:await t.source.openPorts(),orderByFields:s,metadata:{fieldsIndex:n,geometryType:a,objectIdField:s,timeInfo:l,spatialReference:o,subtypes:null,subtypeField:null,globalIdField:null,typeIdField:null,types:null,timeReferenceUnknownClient:null},queryMetadata:{capabilities:r,effectiveCapabilities:i,lastEditDate:null,snapshotInfo:null}}}createSourceSchema(e,t,i){const{definitionExpression:r,timeExtent:s}=this.layer;return ge(e,{definitionExpression:r,timeExtent:s,customParameters:null},t,i,null)}createProcessorSchema(e,t,i){const{fields:r,renderer:s,geometryType:n,labelingInfo:a,labelsVisible:l,orderBy:o,objectIdField:u}=this.layer,c={fields:r.map((e=>e.toJSON())),renderer:s?.clone(),featureReduction:ne(this.layer,t),geometryType:n,labelingInfo:a,labelsVisible:l,objectIdField:u,orderBy:o??"default"};return je(e,t,c,i)}get hasRequiredSupport(){return(0,$e.T)(this.layer.renderer)}getUpdateHashProperties(e){const t=this.layer,{definitionExpression:i,renderer:r}=t,s=this.layer.labelsVisible?this.layer.labelingInfo:null,n=ne(t,e)?.toJSON();return{orderBy:JSON.stringify(t.orderBy),definitionExpression:i,renderer:r,labelingInfo:s,featureReduction:n}}}class tt{constructor(e){this.layer=e}getLabelingDeconflictionInfo(e){const t=this.layer,i=fe(t,e)??he(t);return[{vvEvaluators:{0:ye(t.renderer)},deconflictionEnabled:i}]}async createServiceOptions(e){const t=this.layer,i=(0,F.S1)(t),{capabilities:r,objectIdField:s}=t,n=t.fieldsIndex.toJSON(),a=re(t),l=t.spatialReference.toJSON();return{type:"memory",source:await t.source.openPorts(),orderByFields:s,metadata:{fieldsIndex:n,geometryType:a,objectIdField:s,spatialReference:l,globalIdField:null,subtypeField:null,subtypes:null,timeInfo:null,timeReferenceUnknownClient:null,typeIdField:null,types:null},queryMetadata:{capabilities:r,effectiveCapabilities:i,lastEditDate:null,snapshotInfo:null}}}createSourceSchema(e,t,i){const{definitionExpression:r}=this.layer;return ge(e,{definitionExpression:r,customParameters:null},t,i,null)}createProcessorSchema(e,t,i){const{fields:r,renderer:s,geometryType:n,labelingInfo:a,labelsVisible:l,objectIdField:o}=this.layer,u={fields:r.map((e=>e.toJSON())),renderer:s?.clone(),featureReduction:ne(this.layer,t),geometryType:n,labelingInfo:a,labelsVisible:l,objectIdField:o,orderBy:"default"};return je(e,t,u,i)}get hasRequiredSupport(){return(0,$e.T)(this.layer.renderer)}getUpdateHashProperties(e){const t=this.layer,{definitionExpression:i,renderer:r}=t,s=this.layer.labelsVisible?this.layer.labelingInfo:null,n=ne(t,e)?.toJSON();return{definitionExpression:i,renderer:r,labelingInfo:s,featureReduction:n}}}class it{constructor(e){this.layer=e}getLabelingDeconflictionInfo(e){const t=this.layer,i=fe(t,e)??he(t);return[{vvEvaluators:{0:ye(t.renderer)},deconflictionEnabled:i}]}async createServiceOptions(e){const t=this.layer,i=(0,F.S1)(t),{capabilities:r,objectIdField:s}=t,n=t.fieldsIndex.toJSON(),a=re(t),l=t.timeInfo?.toJSON(),o=t.spatialReference.toJSON(),u=t.source.getSource(),c=this.layer.objectIdField,d=(0,te.d9)(r);return d.query.maxRecordCount=u.maxRecordCount,{type:"ogc",source:u,orderByFields:c,metadata:{fieldsIndex:n,geometryType:a,objectIdField:s,timeInfo:l,spatialReference:o,globalIdField:null,subtypeField:null,subtypes:null,timeReferenceUnknownClient:null,typeIdField:null,types:null},queryMetadata:{capabilities:d,effectiveCapabilities:i,lastEditDate:null,snapshotInfo:null}}}createSourceSchema(e,t,i){const{customParameters:r,timeExtent:s,apiKey:n}=this.layer;return ge(e,{customParameters:r,timeExtent:s},t,i,n)}createProcessorSchema(e,t,i){const{fields:r,renderer:s,geometryType:n,labelingInfo:a,labelsVisible:l,orderBy:o,objectIdField:u}=this.layer,c={fields:r.map((e=>e.toJSON())),renderer:s?.clone(),featureReduction:ne(this.layer,t),geometryType:n,labelingInfo:a,labelsVisible:l,objectIdField:u,orderBy:o??"default"};return je(e,t,c,i)}get hasRequiredSupport(){return(0,$e.T)(this.layer.renderer)}getUpdateHashProperties(e){const t=this.layer,{renderer:i,apiKey:r}=t,s=this.layer.labelsVisible?this.layer.labelingInfo:null,n=JSON.stringify(t.customParameters),a=ne(t,e)?.toJSON();return{apiKey:r,customParameters:n,featureReduction:a,labelingInfo:s,orderBy:JSON.stringify(t.orderBy),renderer:i}}}class rt{constructor(e){this.layer=e}getLabelingDeconflictionInfo(e){const t=this.layer,i=fe(t,e)??he(t);return[{vvEvaluators:{0:ye(t.renderer)},deconflictionEnabled:i}]}async createServiceOptions(e){const t=this.layer,i=(0,F.S1)(t),{capabilities:r,objectIdField:s,globalIdField:n,orderBy:l,refreshInterval:o}=t,u=t.fieldsIndex.toJSON(),c=u.fields,d=re(t),h=t.timeInfo?.toJSON(),f=t.spatialReference.toJSON(),p=(0,te.d9)(this.layer.parsedUrl);let y=this.layer.objectIdField;if(l?.length){const e=!l[0].valueExpression&&l[0].field;e&&(y=e)}const m=o>0,g=(0,a.Z)("featurelayer-snapshot-enabled")&&"point"===t.geometryType&&r?.query.supportsPagination&&!r?.operations.supportsEditing&&!m,b=g&&Ye(e,t.fullExtent);return{type:"feature-service",source:p,isSourceHosted:(0,ie.M8)(p.path),orderByFields:y,metadata:{globalIdField:n,fields:c,fieldsIndex:u,geometryType:d,objectIdField:s,timeInfo:h,spatialReference:f,timeReferenceUnknownClient:!1,subtypeField:null,subtypes:null,typeIdField:null,types:null},queryMetadata:{capabilities:r,effectiveCapabilities:i,lastEditDate:null,snapshotInfo:{supportsSnapshotMinThreshold:g,supportsSnapshotMaxThreshold:b,snapshotCountThresholds:{min:(0,a.Z)("featurelayer-snapshot-point-min-threshold"),max:(0,a.Z)("featurelayer-snapshot-point-max-threshold")}}}}}createSourceSchema(e,t,i){const{definitionExpression:r,customParameters:s,timeExtent:n}=this.layer;return ge(e,{definitionExpression:r,customParameters:s,timeExtent:n},t,i,null)}createProcessorSchema(e,t,i){const{fields:r,renderer:s,geometryType:n,labelingInfo:a,labelsVisible:l,orderBy:o,objectIdField:u}=this.layer,c={fields:r.map((e=>e.toJSON())),renderer:s?.clone(),featureReduction:ne(this.layer,t),geometryType:n,labelingInfo:a,labelsVisible:l,objectIdField:u,orderBy:o??"default"};return je(e,t,c,i)}get hasRequiredSupport(){return(0,$e.T)(this.layer.renderer)}hasFilters(e){return Xe(this.layer,e)}addFilters(e,t){return Ke(this.layer,e,t)}getUpdateHashProperties(e){const t=this.layer,{definitionExpression:i,renderer:r}=t,s=this.layer.labelsVisible?this.layer.labelingInfo:null,n=JSON.stringify(t.customParameters),a=ne(t,e)?.toJSON();return{orderBy:JSON.stringify(t.orderBy),definitionExpression:i,renderer:r,labelingInfo:s,featureReduction:a,customParameters:n,floors:Xe(this.layer,e)?e.floors:null}}}class st{constructor(e){this.layer=e}getLabelingDeconflictionInfo(e){const t=this.layer,i=fe(t,e)??he(t);return[{vvEvaluators:{0:ye(t.renderer)},deconflictionEnabled:i}]}async createServiceOptions(e){const t=this.layer,{objectIdField:i}=t,r=re(t),s=t.timeInfo?.toJSON()||null,n=t.spatialReference?t.spatialReference.toJSON():null;return{source:this.layer.parsedUrl,metadata:{fieldsIndex:this.layer.fieldsIndex.toJSON(),geometryType:r,objectIdField:i,timeInfo:s,timeReferenceUnknownClient:null,spatialReference:n,subtypeField:null,subtypes:null,globalIdField:null,typeIdField:null,types:null}}}createSourceSchema(e,t,i){const{definitionExpression:r,geometryDefinition:s,customParameters:n}=this.layer;return{type:"stream",service:e,tileInfoJSON:t.tileInfoJSON,mutable:{sourceRefreshVersion:i,availableFields:t.availableFields,dataFilter:{geometryDefinition:s?.toJSON(),definitionExpression:r,outSpatialReference:t.outSpatialReference.toJSON(),customParameters:n??null,maxReconnectionAttempts:this.layer.maxReconnectionAttempts,maxReconnectionInterval:this.layer.maxReconnectionInterval,purgeOptions:this.layer.purgeOptions.toJSON()}}}}createProcessorSchema(e,t,i){const{fields:r,renderer:s,geometryType:n,labelingInfo:a,labelsVisible:l,objectIdField:o}=this.layer,u={fields:r.map((e=>e.toJSON())),renderer:s?.clone(),featureReduction:ne(this.layer,t),geometryType:n,labelingInfo:a,labelsVisible:l,objectIdField:o,orderBy:"default"};return je(e,t,u,i)}get hasRequiredSupport(){return(0,$e.T)(this.layer.renderer)}getUpdateHashProperties(e){const t=this.layer,{definitionExpression:i,renderer:r}=t,s=this.layer.labelsVisible?this.layer.labelingInfo:null,n=JSON.stringify(t.customParameters),a=ne(t,e)?.toJSON();return{definitionExpression:i,renderer:r,labelingInfo:s,featureReduction:a,customParameters:n,streamFilter:`${JSON.stringify(t.geometryDefinition)}${t.definitionExpression}`}}}var nt=i(35119);async function at(e,{subtypeField:t,sublayers:i}){const r=await Promise.all(i.map((({renderer:t})=>Je(e,t))));return{type:"subtype",subtypeField:t,renderers:i.reduce(((e,{subtypeCode:t},i)=>({...e,[t]:r[i]})),{})}}function lt(e,t){const i=(0,nt.h)();return{type:"subtype",filters:e.filters,capabilities:{maxTextureSize:i.maxTextureSize},subtypeField:t.subtypeField,target:"feature",bindings:t.sublayers.reduce(((e,{renderer:t,subtypeCode:i})=>({...e,[i]:(0,Ze.vZ)(t)})),{})}}async function ot(e,{subtypeField:t,sublayers:i}){const r=await Promise.all(i.map((t=>{const i=(0,Ce.Sc)(t.renderer),r={...t,geometryType:t.geometryType??null};return Be(e,r,i)})));return{type:"subtype",subtypeField:t,renderers:i.reduce(((e,{subtypeCode:t},i)=>({...e,[t]:r[i]})),{})}}class ut{constructor(e){this.layer=e}getLabelingDeconflictionInfo(e){return[{vvEvaluators:{},deconflictionEnabled:this.layer.sublayers.every((e=>he(e)))}]}async createServiceOptions(e){const t=this.layer,i=(0,F.S1)(t),{capabilities:r,datesInUnknownTimezone:s,editingInfo:n,globalIdField:l,objectIdField:o,refreshInterval:u,subtypeField:c}=t,d=t.fieldsIndex.toJSON(),h=re(t),f=t.timeInfo?.toJSON(),p=t.spatialReference.toJSON(),y=(0,te.d9)(this.layer.parsedUrl),m=o,g=!(null!=n?.lastEditDate)&&u>0,b=(0,a.Z)("featurelayer-snapshot-enabled")&&"point"===t.geometryType&&r?.query.supportsPagination&&!r?.operations.supportsEditing&&!g,S=b&&Ye(e,t.fullExtent);return{type:"feature-service",source:y,isSourceHosted:(0,ie.M8)(y.path),orderByFields:m,metadata:{timeReferenceUnknownClient:s,subtypeField:c,globalIdField:l,fieldsIndex:d,geometryType:h,objectIdField:o,timeInfo:f,spatialReference:p,subtypes:this.layer.subtypes?.map((e=>e.toJSON())),typeIdField:null,types:null},queryMetadata:{capabilities:r,effectiveCapabilities:i,lastEditDate:n?.lastEditDate?.getTime(),snapshotInfo:{supportsSnapshotMinThreshold:b,supportsSnapshotMaxThreshold:S,snapshotCountThresholds:{min:(0,a.Z)("featurelayer-snapshot-point-min-threshold"),max:(0,a.Z)("featurelayer-snapshot-point-max-threshold")}}}}}createSourceSchema(e,t,i){const{definitionExpression:r,customParameters:s,gdbVersion:n,historicMoment:a,subtypeField:l,timeExtent:o,apiKey:u}=this.layer,c=this.layer.sublayers.map((e=>e.subtypeCode)).join(","),d=this.layer.sublayers.length?`${this.layer.subtypeField} IN (${c})`:"1=2";return ge(e,{definitionExpression:(0,me._)(r,d),customParameters:s,gdbVersion:n,historicMoment:a,subtypeField:l,timeExtent:o},t,i,u)}createProcessorSchema(e,t,i){const r={subtypeField:this.layer.subtypeField,sublayers:Array.from(this.layer.sublayers,(e=>({featureReduction:null,geometryType:this.layer.geometryType,labelingInfo:e.labelingInfo,labelsVisible:e.labelsVisible,renderer:e.renderer,subtypeCode:e.subtypeCode,orderBy:null})))};return async function(e,t,i,r){return{storage:lt(t,i),mesh:{displayRefreshVersion:r,strategy:{type:"feature"},factory:{symbology:await at(e,i),labels:await ot(e,i)},sortKey:null,timeZone:t.timeZone}}}(e,t,r,i)}hasFilters(e){return Xe(this.layer,e)||function(e,t){return e.sublayers.some((e=>!ct(e,t)))}(this.layer,e)}addFilters(e,t){e=Ke(this.layer,e,t);const i=this.layer.sublayers.filter((e=>!ct(e,t))).map((e=>e.subtypeCode));if(!i.length)return e;e??=new x.Z;const r=`NOT ${this.layer.subtypeField} IN (${i.join(",")})`;return e.where=(0,me._)(e.where,r),e}get hasRequiredSupport(){return!0}getUpdateHashProperties(e){const t=this.layer,{definitionExpression:i,gdbVersion:r,apiKey:s}=t,n=t.historicMoment?.getTime()??void 0,a=JSON.stringify(t.customParameters),l=Xe(this.layer,e)?e.floors:null;return{gdbVersion:r,definitionExpression:i,historicMoment:n,customParameters:a,apiKey:s,sublayerHash:"sublayers"in this.layer&&this.layer.sublayers.items.reduce(((e,t)=>e+`${t.visible?1:0}.${JSON.stringify(t.renderer)}.${t.labelsVisible}\n.${JSON.stringify(t.labelingInfo)}`),""),floors:l}}setGraphicOrigin(e){const t=this.layer.fieldsIndex.get(this.layer.subtypeField),i=e.attributes[t.name],r=this.layer.sublayers.find((e=>e.subtypeCode===i));e.layer=e.sourceLayer=r}}function ct(e,t){return e.visible&&(0===e.minScale||(0,ae.W8)(t.scale,e.minScale)||t.scalee.maxScale)}var dt=i(43610),ht=i(50198),ft=i(91792);function pt(e,t){const i=new Set;for(const r of e instanceof Set?e.values():e.keys())t.has(r)||i.add(r);return i}class yt{constructor(e){this.version=e}}class mt{constructor(e){this._subscriptions=new Map,this._visible=new Set,this._paused=new Set,this._version=0,this._config=e}destroy(){}get _coverageSet(){const e=this._coverage?Array.from(this._coverage.keys()).map((e=>e.id)):[];return new Set(e)}suspend(){this._suspendedOverage=this._coverage,this._coverage=null,this._updateSubscriptions()}resume(){null==this._coverage&&(this._coverage=this._suspendedOverage,this._suspendedOverage=null,this._updateSubscriptions())}update(e){return this._version=this._version+1%Number.MAX_SAFE_INTEGER,this._updateCoverage(e),this._updateSubscriptions(),new Set(this._visible)}_updateCoverage(e){this._coverage=this._config.tileInfoView.getTileCoverage(e.state,0,!0,"closest")}_updateSubscriptions(){const e=this._coverageSet,t=this._updateVisibility(),i=pt(t,e),r=pt(this._subscriptions,t),s=pt(e,this._subscriptions),n=pt(r,e),a=pt(i,n),l=pt(a,this._paused);this._visible=t;for(const e of s.values())this._subscriptions.set(e,new yt(this._version));for(const e of l.values())this._paused.add(e);for(const e of n.values())this._subscriptions.delete(e),this._paused.delete(e);(s.size||n.size||l.size)&&this._sendUpdateSubscriptions(s,n,l)}_sendUpdateSubscriptions(e,t,i){const r=Array.from(e.values()).map((e=>({tileId:e,version:this._subscriptions.get(e).version})));this._config.updateSubscriptions({subscribe:r,unsubscribe:Array.from(t.values()),pause:Array.from(i.values()),tileInfoJSON:this._config.tileInfoView.tileInfo.toJSON()})}_updateVisibility(){const e=new Set;if(!this._coverage)return e;for(const t of this._coverage.keys())this._config.isDone(t)?e.add(t.id):this._addVisibleParent(e,t)||this._addVisibleChildren(e,t)||e.add(t.id);return e}_addVisibleParent(e,t){let i=!1;for(const r of this._visible.values())new Z.Z(r).containsChild(t)&&(e.add(r),i=!0);return i}_addVisibleChildren(e,t){let i=!1;for(const r of this._visible.values()){const s=new Z.Z(r);t.containsChild(s)&&(e.add(r),i=!0)}return i}}var gt=i(51599),bt=i(92150),St=i(21586),vt=i(30879),_t=i(59439);const wt=e=>{let t=class extends e{constructor(...e){super(...e),this._updatingRequiredFieldsPromise=null,this.dataUpdating=!1,this.filter=null,this.timeExtent=null,this.layer=null,this.requiredFields=[],this.view=null}initialize(){this.addHandles([(0,b.YP)((()=>{const e=this.layer;return[e&&"elevationInfo"in e?e.elevationInfo?.featureExpressionInfo:null,e&&"displayField"in e?e.displayField:null,e&&"timeInfo"in e&&e.timeInfo,e&&"renderer"in e&&e.renderer,e&&"labelingInfo"in e&&e.labelingInfo,e&&"floorInfo"in e&&e.floorInfo,this.filter,this.featureEffect,this.timeExtent]}),(()=>this._handleRequiredFieldsChange()),b.tX),(0,b.on)((()=>this.view?.floors),"change",(()=>this._handleRequiredFieldsChange())),(0,b.on)((()=>{const e=this.layer;return e&&"sublayers"in e?e.sublayers:null}),"change",(()=>this._handleRequiredFieldsChange()))])}get availableFields(){if(!this.layer)return[];const{layer:e,layer:{fieldsIndex:t},requiredFields:i}=this;return"outFields"in e&&e.outFields?(0,V.Q0)(t,[...(0,V.Lk)(t,e.outFields),...i]):(0,V.Q0)(t,i)}get featureEffect(){return this.layer&&"featureEffect"in this.layer?this.layer.featureEffect:null}set featureEffect(e){this._override("featureEffect",e)}get maximumNumberOfFeatures(){return 0}set maximumNumberOfFeatures(e){l.Z.getLogger(this).error("#maximumNumberOfFeatures=","Setting maximum number of features is not supported")}get maximumNumberOfFeaturesExceeded(){return!1}highlight(e){throw new Error("missing implementation")}createQuery(){const e={outFields:["*"],returnGeometry:!0,outSpatialReference:this.view.spatialReference},t=null!=this.filter?this.filter.createQuery(e):new z.Z(e);if("floorInfo"in this.layer&&this.layer.floorInfo){const e=(0,St.c)(this);null!=e&&(t.where=t.where?`(${t.where}) AND (${e})`:e)}return null!=this.timeExtent&&(t.timeExtent=null!=t.timeExtent?t.timeExtent.intersection(this.timeExtent):this.timeExtent.clone()),t}createAggregateQuery(){const e={outFields:["*"],returnGeometry:!0,outSpatialReference:this.view.spatialReference};return new z.Z(e)}queryFeatures(e,t){throw new Error("missing implementation")}queryObjectIds(e,t){throw new Error("missing implementation")}queryFeatureCount(e,t){throw new Error("missing implementation")}queryExtent(e,t){throw new Error("missing implementation")}async fetchPopupFeaturesFromGraphics(e,t){return this._validateFetchPopupFeatures(e,t),this._fetchPopupFeatures(e,t)}_loadArcadeModules(e){return e.expressionInfos?.length||Array.isArray(e.content)&&e.content.some((e=>"expression"===e.type))?(0,vt.LC)():Promise.resolve()}_handleRequiredFieldsChange(){const e=this._updateRequiredFields();this._set("_updatingRequiredFieldsPromise",e),e.then((()=>{this._updatingRequiredFieldsPromise===e&&this._set("_updatingRequiredFieldsPromise",null)}))}async _updateRequiredFields(){if(!this.layer||!this.view)return;const e="3d"===this.view.type,{layer:t,layer:{fieldsIndex:i,objectIdField:r}}=this,s="renderer"in t&&t.renderer,n="orderBy"in t&&t.orderBy,a="featureReduction"in t?t.featureReduction:null,o=new Set,u=await Promise.allSettled([s?s.collectRequiredFields(o,i):null,(0,V.Mu)(o,t),e&&"elevationInfo"in t?(0,V.vl)(o,t):null,null!=this.filter?(0,V.Ll)(o,t,this.filter):null,e||null==this.featureEffect?null:(0,V.Ll)(o,t,this.featureEffect.filter),!e&&a?(0,V.ZV)(o,t,a):null,!e&&n?(0,V.Qj)(o,t,n):null]);if("timeInfo"in t&&t.timeInfo&&this.timeExtent&&(0,V.gd)(o,t.fieldsIndex,[t.timeInfo.startField,t.timeInfo.endField]),"floorInfo"in t&&t.floorInfo&&(0,V.gd)(o,t.fieldsIndex,[t.floorInfo.floorField]),"feature"===t.type&&e&&null!=t.infoFor3D&&(null==t.globalIdField&&l.Z.getLogger(this).error("globalIdField missing on 3DObjectFeatureLayer"),(0,V.gd)(o,t.fieldsIndex,[t.globalIdField])),"subtype-group"===t.type){(0,V.AB)(o,i,t.subtypeField);const e=t.sublayers.map((e=>Promise.all([e.renderer?.collectRequiredFields(o,i),(0,V.Mu)(o,e)])));await Promise.allSettled(e)}"catalog-footprint"===t.type&&(0,V.gd)(o,i,[t.parent.itemSourceField,t.parent.itemTypeField]);for(const e of u)"rejected"===e.status&&l.Z.getLogger(this).error(e.reason);(0,V.AB)(o,i,r),e&&"displayField"in t&&t.displayField&&(0,V.AB)(o,i,t.displayField);const c=Array.from(o).sort();this._set("requiredFields",c)}_validateFetchPopupFeatures(e,t){if(null!=t)for(const i of e){const e=i.origin&&"layer"in i.origin?i.origin.layer:i.layer;if("popupEnabled"in e&&!e.popupEnabled)throw new p.Z("featurelayerview:fetchPopupFeatures","Popups are disabled",{layer:e});if(i.isAggregate){const t="featureReduction"in e?e.featureReduction:null;if(!(t&&"popupTemplate"in t&&t.popupEnabled&&t.popupTemplate))throw new p.Z("featurelayerview:fetchPopupFeatures","Popups are disabled",{layer:e})}else if("popupTemplate"in e&&!(0,_t.V5)(e,t))throw new p.Z("featurelayerview:fetchPopupFeatures","Layer does not define a popup template",{layer:e})}}_popupFeatureHasRequiredFields(e,t){return(0,V.R9)(t,e)}async _fetchPopupFeatures(e,t){const i=new Array(e.length),r=new Map,s=await this._createPopupQuery(e.map((e=>e.origin?.layer??e.layer)),t);for(let n=0;nthis._createPopupQuery(void 0,e)}}get test(){return this.getTest()}};return(0,r._)([(0,n.Cb)()],t.prototype,"_updatingRequiredFieldsPromise",void 0),(0,r._)([(0,n.Cb)({readOnly:!0})],t.prototype,"availableFields",null),(0,r._)([(0,n.Cb)({readOnly:!0})],t.prototype,"dataUpdating",void 0),(0,r._)([(0,n.Cb)({type:bt.Z})],t.prototype,"featureEffect",null),(0,r._)([(0,n.Cb)({type:x.Z})],t.prototype,"filter",void 0),(0,r._)([(0,n.Cb)(gt.qG)],t.prototype,"timeExtent",void 0),(0,r._)([(0,n.Cb)()],t.prototype,"layer",void 0),(0,r._)([(0,n.Cb)({type:Number})],t.prototype,"maximumNumberOfFeatures",null),(0,r._)([(0,n.Cb)({readOnly:!0,type:Boolean})],t.prototype,"maximumNumberOfFeaturesExceeded",null),(0,r._)([(0,n.Cb)({readOnly:!0})],t.prototype,"requiredFields",void 0),(0,r._)([(0,n.Cb)()],t.prototype,"suspended",void 0),(0,r._)([(0,n.Cb)()],t.prototype,"view",void 0),t=(0,r._)([(0,o.j)("esri.views.layers.FeatureLayerView")],t),t};var It=i(26216),xt=i(55068),Vt=i(91772);const Ft=4294967294;let Et=class extends(wt((0,xt.Z)((0,A.y)(It.Z)))){constructor(){super(...arguments),this._commandsQueue=new dt.Z({process:e=>{switch(e.type){case"processed-edit":return this._doEdit(e);case"update":return this._doUpdate()}}}),this._visibilityOverrides=new Set,this._highlightCounter=new ft.i,this._updateHighlight=(0,g.Ds)((async()=>{const e=[];for(const t of this._highlightCounter.ids()){const i=this._highlightCounter.getHighestReason(t),r=(0,M.ck)(i);e.push({objectId:t,highlightFlags:r})}this._worker.pipeline.updateHighlight({highlights:e})})),this._lastAvailableFields=[],this.eventLog=new ee,this._sourceRefreshVersion=1,this._displayRefreshVersion=1,this._pipelineUpdating=!1,this._fields=null,this.featureEffectView=new I}destroy(){this._worker?.destroy(),this._commandsQueue.destroy()}initialize(){this.addResolvingPromise(this._initProxy()),this.featureEffectView.featureEffect=this.featureEffect,this.featureEffectView.endTransitions()}async _initProxy(){const e=this.layer;if("isTable"in e&&e.isTable)throw new p.Z("featurelayerview:table-not-supported","table feature layer can't be displayed",{layer:e});if("mesh"===e.geometryType)throw new p.Z("featurelayerview:geometry-type-not-supported",`Geometry type of ${e.geometryType} is not supported`,{layer:e});if(("feature"===e.type||"subtype-group"===e.type)&&!1===(0,F.S1)(e)?.operations.supportsQuery)throw new p.Z("featurelayerview:query-not-supported","layer view requires a layer with query capability",{layer:e});this._worker&&this._worker.destroy();const t=this._createClientOptions();this._worker=await async function(e){const t=await(0,Y.bA)("FeaturePipelineWorker",{client:e,strategy:"dedicated"});return new X(t)}(t)}get hasAllFeatures(){return this.layer.visible&&this.eventLog.hasAllFeatures}get hasAllFeaturesInView(){return this.layer.visible&&this.eventLog.hasAllFeaturesInView}get hasFullGeometries(){return this.layer.visible&&this.eventLog.hasFullGeometries}get labelingCollisionInfos(){const e=this.layerAdapter.getLabelingDeconflictionInfo(this.view),t=this.layer.geometryType,i=!this.suspended;return e.map((({vvEvaluators:e,deconflictionEnabled:r})=>({container:this.featureContainer,vvEvaluators:e,deconflictionEnabled:r,geometryType:t,visible:i})))}get layerAdapter(){switch(this.layer.type){case"feature":return"memory"===this.layer.source.type?new et(this.layer):new We(this.layer);case"geojson":case"csv":case"wfs":return new et(this.layer);case"subtype-group":return new ut(this.layer);case"ogc-feature":return new it(this.layer);case"stream":return new st(this.layer);case"oriented-imagery":return new rt(this.layer);case"knowledge-graph-sublayer":return new tt(this.layer);case"catalog-footprint":return new Ge(this.layer);default:(0,f.Bg)(this.layer)}return null}get updateHash(){if(!this.layerAdapter)return null;const{availableFields:e,_displayRefreshVersion:t,timeExtent:i,clips:r,filter:s,featureEffect:n,_sourceRefreshVersion:a,view:{timeZone:l}}=this,o=JSON.stringify(r),u=n?.toJSON(),c=s?.toJSON();return JSON.stringify({availableFields:e,clipsHash:o,displayRefreshVersion:t,effectHash:u,filterHash:c,sourceRefreshVersion:a,timeExtent:i,timeZone:l,...this.layerAdapter.getUpdateHashProperties(this.view)})}getDisplayStatistics(e,t){return this.featureContainer?.getDisplayStatistics(e,t)}async queryHeatmapStatistics(e){return this._worker.pipeline.queryHeatmapStatistics(e)}highlight(e,t="highlight"){let i;e instanceof s.Z?i=[e.getObjectId()]:"number"==typeof e||"string"==typeof e?i=[e]:h.Z.isCollection(e)&&e.length>0?i=e.map((e=>e?.getObjectId())).toArray():Array.isArray(e)&&e.length>0&&(i="number"==typeof e[0]||"string"==typeof e[0]?e:e.map((e=>e?.getObjectId())));const r=i?.filter(d.pC);return r?.length?(this._addHighlight(r,t),(0,y.kB)((()=>this._removeHighlight(r,t)))):(0,y.kB)()}getHighlightIds(){return Array.from(this._highlightCounter.ids())}hasHighlight(){return!this._highlightCounter.empty}async hitTest(e,t){const i=await this.featureContainer.hitTest(t);if(0===i.length)return null;const{features:r,aggregates:n}=await this._worker.pipeline.getDisplayFeatures(i),a=this.featureContainer.getSortKeys(i),l=({displayId:e},{displayId:t})=>a.has(e)&&a.has(t)?a.get(e)-a.get(t):e-t;return r.sort(l).reverse(),n.sort(l).reverse(),[...n.map((t=>this._createGraphicHit(e,c.fromJSON(t)))),...r.map((t=>this._createGraphicHit(e,s.Z.fromJSON(t))))]}queryStatistics(){return(0,ht.Y)(this._worker.pipeline.queryStatistics(),{featureCount:0,ringCount:0,vertexCount:0})}querySummaryStatistics(e,t,i){const r={...t,scale:this.view.scale},s=this._worker.features.executeQueryForSummaryStatistics(this._cleanUpQuery(e),r,i);return(0,ht.Y)(s,{})}async queryAggregateSummaryStatistics(e,t,i){const r={...t,scale:this.view.scale},s=this._worker.aggregates.executeQueryForSummaryStatistics(this._cleanUpAggregateQuery(e),r,i);return(0,ht.Y)(s,{})}async queryUniqueValues(e,t,i){const r={...t,scale:this.view.scale},s=this._worker.features.executeQueryForUniqueValues(this._cleanUpQuery(e),r,i);return(0,ht.Y)(s,{uniqueValueInfos:[]})}async queryAggregateUniqueValues(e,t,i){const r={...t,scale:this.view.scale},s=this._worker.aggregates.executeQueryForUniqueValues(this._cleanUpAggregateQuery(e),r,i);return(0,ht.Y)(s,{uniqueValueInfos:[]})}async queryClassBreaks(e,t,i){const r={...t,scale:this.view.scale},s=this._worker.features.executeQueryForClassBreaks(this._cleanUpQuery(e),r,i);return(0,ht.Y)(s,{classBreakInfos:[]})}async queryAggregateClassBreaks(e,t,i){const r={...t,scale:this.view.scale},s=this._worker.aggregates.executeQueryForClassBreaks(this._cleanUpAggregateQuery(e),r,i);return(0,ht.Y)(s,{classBreakInfos:[]})}async queryHistogram(e,t,i){const r={...t,scale:this.view.scale},s=this._worker.features.executeQueryForHistogram(this._cleanUpQuery(e),r,i);return(0,ht.Y)(s,{bins:[],maxValue:null,minValue:null,normalizationTotal:null})}async queryAggregateHistogram(e,t,i){const r={...t,scale:this.view.scale},s=this._worker.aggregates.executeQueryForHistogram(this._cleanUpAggregateQuery(e),r,i);return(0,ht.Y)(s,{bins:[],maxValue:null,minValue:null,normalizationTotal:null})}queryFeatures(e,t){return this.queryFeaturesJSON(e,t).then((e=>{const t=R.Z.fromJSON(e);return t.features.forEach((e=>this._setLayersForFeature(e))),t}))}async queryVisibleFeatures(e,t){const i=this._worker.pipeline.queryVisibleFeatures(this._cleanUpQuery(e),t),r=await(0,ht.Y)(i,{features:[]}),s=R.Z.fromJSON(r);return s.features.forEach((e=>this._setLayersForFeature(e))),s}async queryAggregates(e,t){const i=this._worker.aggregates.executeQuery(this._cleanUpAggregateQuery(e),t),r=await(0,ht.Y)(i,{features:[]}),s=T.fromJSON(r);return s.features.forEach((e=>this._setLayersForFeature(e))),s}queryAggregateIds(e,t){const i=this._worker.aggregates.executeQueryForIds(this._cleanUpAggregateQuery(e),t);return(0,ht.Y)(i,[])}queryAggregateCount(e,t){const i=this._worker.aggregates.executeQueryForCount(this._cleanUpAggregateQuery(e),t);return(0,ht.Y)(i,0)}queryAggregateJSON(e,t){const i=this._worker.aggregates.executeQuery(this._cleanUpAggregateQuery(e),t);return(0,ht.Y)(i,{features:[]})}async queryFeaturesJSON(e,t){const i=this._worker.features.executeQuery(this._cleanUpQuery(e),t);return(0,ht.Y)(i,{features:[]})}queryObjectIds(e,t){const i=this._worker.features.executeQueryForIds(this._cleanUpQuery(e),t);return(0,ht.Y)(i,[])}queryFeatureCount(e,t){const i=this._worker.features.executeQueryForCount(this._cleanUpQuery(e),t);return(0,ht.Y)(i,0)}async queryExtent(e,t){const i=this._worker.features.executeQueryForExtent(this._cleanUpQuery(e),t),r=await(0,ht.Y)(i,{count:0,extent:null});return{count:r.count,extent:Vt.Z.fromJSON(r.extent)}}async getSampleFeatures(e){return this._worker.pipeline.getSampleFeatures(e)}setVisibility(e,t){t?this._visibilityOverrides.delete(e):this._visibilityOverrides.add(e),this._update()}update(e){if(!this._subscriptionManager)return;const t=this._subscriptionManager.update(e);this.featureContainer.setVisibleTiles(t)}attach(){(0,a.Z)("esri-2d-update-debug"),this.featureContainer=new G(this),this.container.addChild(this.featureContainer),this.view.timeline.record(`${this.layer.title} (FeatureLayer) Attach`),this._subscriptionManager=new mt({tileInfoView:this.view.featuresTilingScheme,updateSubscriptions:e=>{this.featureContainer.updateSubscriptions(e),this._worker.pipeline.updateSubscriptions(e)},isDone:e=>this.featureContainer.isDone(e)}),this.requestUpdate(),this.addAttachHandles([(0,b.YP)((()=>this.updateHash),(()=>this._update()),b.nn),(0,b.YP)((()=>this.updateSuspended),(e=>{e||this._subscriptionManager.resume()}))]),"stream"!==this.layer.type&&"catalog-footprint"!==this.layer.type&&this.addAttachHandles(this.layer.on("edits",(e=>this._edit(e))))}detach(){(0,a.Z)("esri-2d-update-debug"),this._fields=null,this.featureContainer.destroy(),this._commandsQueue.clear(),this.container.removeAllChildren(),this._subscriptionManager=(0,m.SC)(this._subscriptionManager),this._worker.pipeline.onDetach()}moveStart(){this.requestUpdate()}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}isUpdating(){const e="renderer"in this.layer&&null!=this.layer.renderer,t=this._commandsQueue.updateTracking.updating,i=null!=this._updatingRequiredFieldsPromise,r=this.featureContainer.updatingHandles.updating,s=e&&(t||i)||r||this._pipelineUpdating||this.dataUpdating;if((0,a.Z)("esri-2d-log-updating"))for(const e of this.featureContainer.subscriptions());return s}_createClientOptions(){const e=this;return{get container(){return e.featureContainer},setUpdating:e=>{this._set("_pipelineUpdating",e.pipeline),this._set("dataUpdating",e.data)},emitEvent:e=>{this.emit(e.name,e.event)},get eventLog(){return e.eventLog},fetch:t=>Promise.all(t.map((t=>e.view.stage.painter.textureManager.rasterizeItem(t)))),fetchDictionary:e=>Promise.all(e.map((e=>this._fetchDictionaryRequest(e))))}}async _fetchDictionaryRequest(e){try{if("subtype-group"===this.layer.type)throw new Error("InternalError: SubtypeGroupLayer does not support dictionary renderer");const t=this.layer.renderer;if(!t||"dictionary"!==t.type)throw new Error("InternalError: Expected layer to have a DictionaryRenderer");const i=this._lastSchema.processor.mesh.factory.symbology;if("dictionary"!==i.type)throw new Error("InternalError: Expected schema to be of type 'dictionary'");const r={cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,store:this.featureContainer.instanceStore,scaleExpression:i.scaleExpression};this._fields||(this._fields=this.layer.fields.map((e=>e.toJSON())));const s=i.visualVariableUniforms,n=await t.getSymbolAsync(e.feature,{fields:this._fields});return n&&n.data?{type:"dictionary-response",meshes:await(0,Oe.$L)(n.data,{uniforms:s,path:"renderer",schemaOptions:r})}:{type:"dictionary-response",meshes:[]}}catch(e){return{type:"dictionary-response",meshes:[]}}}_cleanUpQuery(e){const t=z.Z.from(e)||this.createQuery();return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),t.toJSON()}_cleanUpAggregateQuery(e){const t=z.Z.from(e)||this.createAggregateQuery();t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference);const i=t.objectIds??[];for(const e of t.aggregateIds??[])i.push(e);return t.objectIds=i,t.aggregateIds=[],t.toJSON()}async _update(){return this._commandsQueue.push({type:"update"})}async _edit(e){if(!this.updateSuspended)return this._validateEdit(e)?this._commandsQueue.push({type:"edit",edits:e}).catch(g.H9):void 0;this._subscriptionManager.suspend()}async doRefresh(e){this.attached&&(this.updateSuspended&&e||(e?this.incrementSourceRefreshVersion():this.incrementDisplayRefreshVersion()))}incrementSourceRefreshVersion(){this._sourceRefreshVersion=(this._sourceRefreshVersion+1)%Ft+1}incrementDisplayRefreshVersion(){this._displayRefreshVersion=(this._displayRefreshVersion+1)%Ft+1}_validateEdit(e){const t="globalIdField"in this.layer&&this.layer.globalIdField,i=e.deletedFeatures.some((e=>-1===e.objectId||!e.objectId)),r=t&&this.availableFields.includes(t);return i&&!r?(l.Z.getLogger(this).error(new p.Z("mapview-apply-edits",`Editing the specified service requires the layer's globalIdField, ${t} to be included the layer's outFields for updates to be reflected on the map`)),null):e}async _doUpdate(){"featureReduction"in this.layer&&this.layer.featureReduction&&this.layer.featureReduction!==this._lastFeatureReduction&&(this.layer.featureReduction=this.layer.featureReduction?.clone(),this._lastFeatureReduction=this.layer.featureReduction);try{if(await this._updateRequiredFields(),this.destroyed||!this.layerAdapter?.hasRequiredSupport||!this._subscriptionManager)return;const e=this.featureContainer.instanceStore;this.featureContainer.attributeView.lockTextureUploads(),e.updateStart();const t=this.featureEffect,i={store:e,cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,scaleExpression:void 0},r=await this.layerAdapter.createServiceOptions(this.view),s=this._createViewSchemaConfig(),n={source:this.layerAdapter.createSourceSchema(r,s,this._sourceRefreshVersion),processor:await this.layerAdapter.createProcessorSchema(i,s,this._displayRefreshVersion)};if(!(!!(0,S.Hg)(this._lastSchema?.source.mutable,n.source.mutable)||!!(0,S.Hg)(this._lastSchema?.processor,n.processor)))return this.featureContainer.requestRender(),this.featureContainer.attributeView.unlockTextureUploads(),e.updateEnd(),void(this.featureEffectView.featureEffect=t);this._lastSchema=n,this._fields=null;const l=Math.round(performance.now());(0,a.Z)("esri-2d-update-debug");let o=[];Array.isArray(r.source)&&(o=r.source),await this._worker.pipeline.updateSchema(n,l,{transferList:o}),e.updateEnd(),this.featureEffectView.featureEffect=t,this.featureEffectView.endTransitions(),this.featureContainer.attributeView.unlockTextureUploads(),this.featureContainer.swapRenderState(),this.featureContainer.requestRender(),(0,a.Z)("esri-2d-update-debug"),this.requestUpdate()}catch(e){(0,a.Z)("esri-2d-update-debug")}}async _doEdit(e){try{this.featureContainer.editStart(),await this._worker.pipeline.onEdits(e),this.featureContainer.editEnd()}catch(e){(0,g.D_)(e)}}get hasFilter(){const e=this.layerAdapter.hasFilters?.(this.view)??!1;return null!=this.filter||null!=this.timeExtent||this._visibilityOverrides.size>0||e}_getEffectiveAvailableFields(e){const t=function(e,t){const i=new Set;return e&&e.forEach((e=>i.add(e))),t&&t.forEach((e=>i.add(e))),i.has("*")?["*"]:Array.from(i)}(this._lastAvailableFields,e);return this._lastAvailableFields=t,(0,V.TK)(this.layer.fieldsIndex,t)}_createViewSchemaConfig(){const e=[Rt(this.view,this.layerAdapter,this.timeExtent,this._visibilityOverrides,this.filter),this.featureEffect?.filter?.toJSON()??null];return{availableFields:this._getEffectiveAvailableFields(this.availableFields),filters:e,outSpatialReference:this.view.spatialReference,tileInfoJSON:this.view.featuresTilingScheme.tileInfo.toJSON(),scale:this.view.scale,timeZone:this.view.timeZone}}_addHighlight(e,t){this._highlightCounter.addReason(e,t),this._updateHighlight().catch((e=>{(0,g.D_)(e)||l.Z.getLogger(this).error(e)}))}_removeHighlight(e,t){this._highlightCounter.deleteReason(e,t),this._updateHighlight().catch((e=>{(0,g.D_)(e)||l.Z.getLogger(this).error(e)}))}_setLayersForFeature(e){e.layer=e.sourceLayer=this.layer,this.layerAdapter.setGraphicOrigin&&this.layerAdapter.setGraphicOrigin(e)}_createGraphicHit(e,t){return this._setLayersForFeature(t),null!=t.geometry&&(t.geometry.spatialReference=this.view.spatialReference),{type:"graphic",graphic:t,layer:this.layer,mapPoint:e}}};function Rt(e,t,i,r,s){s&&(s=s.clone());const n=null!=s?s.timeExtent:null,a=null!=i&&null!=n?i.intersection(n):i||n;a&&(s??=new x.Z,s.timeExtent=a),s=t.addFilters?.(s,e)??s;let l=s?.toJSON()??null;return r.size&&(l??=(new x.Z).toJSON(),l.hiddenIds=Array.from(r)),l}(0,r._)([(0,n.Cb)()],Et.prototype,"_worker",void 0),(0,r._)([(0,n.Cb)()],Et.prototype,"_commandsQueue",void 0),(0,r._)([(0,n.Cb)()],Et.prototype,"_sourceRefreshVersion",void 0),(0,r._)([(0,n.Cb)()],Et.prototype,"_displayRefreshVersion",void 0),(0,r._)([(0,n.Cb)({readOnly:!0})],Et.prototype,"_pipelineUpdating",void 0),(0,r._)([(0,n.Cb)({readOnly:!0})],Et.prototype,"hasAllFeatures",null),(0,r._)([(0,n.Cb)({readOnly:!0})],Et.prototype,"hasAllFeaturesInView",null),(0,r._)([(0,n.Cb)({readOnly:!0})],Et.prototype,"hasFullGeometries",null),(0,r._)([(0,n.Cb)()],Et.prototype,"featureEffectView",void 0),(0,r._)([(0,n.Cb)()],Et.prototype,"labelingCollisionInfos",null),(0,r._)([(0,n.Cb)()],Et.prototype,"layerAdapter",null),(0,r._)([(0,n.Cb)()],Et.prototype,"updateHash",null),(0,r._)([(0,n.Cb)()],Et.prototype,"updating",void 0),Et=(0,r._)([(0,o.j)("esri.views.2d.layers.FeatureLayerView2D")],Et);const Ct=Et},6413:function(e,t,i){function r(e,t,i,r){const s=e.clone(),n=1<=n?(s.col=a-n,s.world+=1):s.col=a,s.row=l,s}i.d(t,{M:function(){return r}})},50198:function(e,t,i){async function r(e,t){try{return await e}catch(e){if("no-queryEngine"!==e.name)throw e;return t}}i.d(t,{Y:function(){return r}})},55068:function(e,t,i){i.d(t,{Z:function(){return o}});var r=i(36663),s=i(13802),n=i(78668),a=i(76868),l=(i(39994),i(4157),i(70375),i(40266));const o=e=>{let t=class extends e{initialize(){this.addHandles((0,a.on)((()=>this.layer),"refresh",(e=>{this.doRefresh(e.dataChanged).catch((e=>{(0,n.D_)(e)||s.Z.getLogger(this).error(e)}))})),"RefreshableLayerView")}};return t=(0,r._)([(0,l.j)("esri.layers.mixins.RefreshableLayerView")],t),t}},59439:function(e,t,i){i.d(t,{V5:function(){return n},e7:function(){return s}});var r=i(14845);async function s(e,t=e.popupTemplate){if(null==t)return[];const i=await t.getRequiredFields(e.fieldsIndex),{lastEditInfoEnabled:s}=t,{objectIdField:n,typeIdField:a,globalIdField:l,relationships:o}=e;if(i.includes("*"))return["*"];const u=s?(0,r.CH)(e):[],c=(0,r.Q0)(e.fieldsIndex,[...i,...u]);return a&&c.push(a),c&&n&&e.fieldsIndex?.has(n)&&!c.includes(n)&&c.push(n),c&&l&&e.fieldsIndex?.has(l)&&!c.includes(l)&&c.push(l),o&&o.forEach((t=>{const{keyField:i}=t;c&&i&&e.fieldsIndex?.has(i)&&!c.includes(i)&&c.push(i)})),c}function n(e,t){return e.popupTemplate?e.popupTemplate:null!=t&&t.defaultPopupTemplateEnabled&&null!=e.defaultPopupTemplate?e.defaultPopupTemplate:null}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5917.59727aa1a3fe7276debc.js b/docs/sentinel1-explorer/5917.59727aa1a3fe7276debc.js new file mode 100644 index 00000000..c6e0bcf4 --- /dev/null +++ b/docs/sentinel1-explorer/5917.59727aa1a3fe7276debc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5917],{15917:function(n,e,t){t.r(e),t.d(e,{buffer:function(){return z},changeDefaultSpatialReferenceTolerance:function(){return X},clearDefaultSpatialReferenceTolerance:function(){return Y},clip:function(){return w},contains:function(){return m},convexHull:function(){return k},crosses:function(){return g},cut:function(){return d},densify:function(){return G},difference:function(){return v},disjoint:function(){return O},distance:function(){return h},equals:function(){return S},extendedSpatialReferenceInfo:function(){return y},flipHorizontal:function(){return j},flipVertical:function(){return q},generalize:function(){return B},geodesicArea:function(){return M},geodesicBuffer:function(){return C},geodesicDensify:function(){return W},geodesicLength:function(){return Q},intersect:function(){return T},intersectLinesToPoints:function(){return U},intersects:function(){return x},isSimple:function(){return N},nearestCoordinate:function(){return H},nearestVertex:function(){return _},nearestVertices:function(){return I},offset:function(){return E},overlaps:function(){return D},planarArea:function(){return F},planarLength:function(){return K},relate:function(){return J},rotate:function(){return Z},simplify:function(){return b},symmetricDifference:function(){return L},touches:function(){return A},union:function(){return V},within:function(){return R}});t(91957);var r=t(62517),i=t(67666),u=t(53736);function c(n){return Array.isArray(n)?n[0]?.spatialReference:n?.spatialReference}function a(n){return n?Array.isArray(n)?n.map(a):n.toJSON?n.toJSON():n:n}function o(n){return Array.isArray(n)?n.map((n=>(0,u.im)(n))):(0,u.im)(n)}let f;async function s(){return f||(f=(0,r.bA)("geometryEngineWorker",{strategy:"distributed"})),f}async function l(n,e){return(await s()).invoke("executeGEOperation",{operation:n,parameters:a(e)})}async function p(n,e){const t=await s();return Promise.all(t.broadcast("executeGEOperation",{operation:n,parameters:a(e)}))}function y(n){return l("extendedSpatialReferenceInfo",[n])}async function w(n,e){return o(await l("clip",[c(n),n,e]))}async function d(n,e){return o(await l("cut",[c(n),n,e]))}function m(n,e){return l("contains",[c(n),n,e])}function g(n,e){return l("crosses",[c(n),n,e])}function h(n,e,t){return l("distance",[c(n),n,e,t])}function S(n,e){return l("equals",[c(n),n,e])}function x(n,e){return l("intersects",[c(n),n,e])}function A(n,e){return l("touches",[c(n),n,e])}function R(n,e){return l("within",[c(n),n,e])}function O(n,e){return l("disjoint",[c(n),n,e])}function D(n,e){return l("overlaps",[c(n),n,e])}function J(n,e,t){return l("relate",[c(n),n,e,t])}function N(n){return l("isSimple",[c(n),n])}async function b(n){return o(await l("simplify",[c(n),n]))}async function k(n,e=!1){return o(await l("convexHull",[c(n),n,e]))}async function v(n,e){return o(await l("difference",[c(n),n,e]))}async function L(n,e){return o(await l("symmetricDifference",[c(n),n,e]))}async function T(n,e){return o(await l("intersect",[c(n),n,e]))}async function V(n,e=null){const t=function(n,e){let t;return Array.isArray(n)?t=n:(t=[],t.push(n),null!=e&&t.push(e)),t}(n,e);return o(await l("union",[c(t),t]))}async function E(n,e,t,r,i,u){return o(await l("offset",[c(n),n,e,t,r,i,u]))}async function z(n,e,t,r=!1){const i=[c(n),n,e,t,r];return o(await l("buffer",i))}async function C(n,e,t,r,i,u){const a=[c(n),n,e,t,r,i,u];return o(await l("geodesicBuffer",a))}async function H(n,e,t=!0){const r=await l("nearestCoordinate",[c(n),n,e,t]);return{...r,coordinate:i.Z.fromJSON(r.coordinate)}}async function _(n,e){const t=await l("nearestVertex",[c(n),n,e]);return{...t,coordinate:i.Z.fromJSON(t.coordinate)}}async function I(n,e,t,r){return(await l("nearestVertices",[c(n),n,e,t,r])).map((n=>({...n,coordinate:i.Z.fromJSON(n.coordinate)})))}function P(n){return"xmin"in n?n.center:"x"in n?n:n.extent?.center}async function Z(n,e,t){if(null==n)throw new $;const r=n.spatialReference;if(null==(t=t??P(n)))throw new $;const i=n.constructor.fromJSON(await l("rotate",[r,n,e,t]));return i.spatialReference=r,i}async function j(n,e){if(null==n)throw new $;const t=n.spatialReference;if(null==(e=e??P(n)))throw new $;const r=n.constructor.fromJSON(await l("flipHorizontal",[t,n,e]));return r.spatialReference=t,r}async function q(n,e){if(null==n)throw new $;const t=n.spatialReference;if(null==(e=e??P(n)))throw new $;const r=n.constructor.fromJSON(await l("flipVertical",[t,n,e]));return r.spatialReference=t,r}async function B(n,e,t,r){return o(await l("generalize",[c(n),n,e,t,r]))}async function G(n,e,t){return o(await l("densify",[c(n),n,e,t]))}async function W(n,e,t,r=0){return o(await l("geodesicDensify",[c(n),n,e,t,r]))}function F(n,e){return l("planarArea",[c(n),n,e])}function K(n,e){return l("planarLength",[c(n),n,e])}function M(n,e,t){return l("geodesicArea",[c(n),n,e,t])}function Q(n,e,t){return l("geodesicLength",[c(n),n,e,t])}async function U(n,e){return o(await l("intersectLinesToPoints",[c(n),n,e]))}async function X(n,e){await p("changeDefaultSpatialReferenceTolerance",[n,e])}async function Y(n){await p("clearDefaultSpatialReferenceTolerance",[n])}class $ extends Error{constructor(){super("Illegal Argument Exception")}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/5967.51ca94433022d54e7147.js b/docs/sentinel1-explorer/5967.51ca94433022d54e7147.js new file mode 100644 index 00000000..fe47e854 --- /dev/null +++ b/docs/sentinel1-explorer/5967.51ca94433022d54e7147.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[5967,8611],{50516:function(e,t,a){a.d(t,{D:function(){return o}});var r=a(71760);function o(e){e?.writtenProperties&&e.writtenProperties.forEach((({target:e,propName:t,newOrigin:a})=>{(0,r.l)(e)&&a&&e.originOf(t)!==a&&e.updateOrigin(t,a)}))}},71760:function(e,t,a){function r(e){return e&&"getAtOrigin"in e&&"originOf"in e}a.d(t,{l:function(){return r}})},68611:function(e,t,a){a.d(t,{FO:function(){return f},W7:function(){return d},addOrUpdateResources:function(){return i},fetchResources:function(){return s},removeAllResources:function(){return l},removeResource:function(){return c}});var r=a(66341),o=a(70375),n=a(3466);async function s(e,t={},a){await e.load(a);const r=(0,n.v_)(e.itemUrl,"resources"),{start:o=1,num:s=10,sortOrder:i="asc",sortField:c="resource"}=t,l={query:{start:o,num:s,sortOrder:i,sortField:c,token:e.apiKey},signal:a?.signal},u=await e.portal.request(r,l);return{total:u.total,nextStart:u.nextStart,resources:u.resources.map((({created:t,size:a,resource:r})=>({created:new Date(t),size:a,resource:e.resourceFromPath(r)})))}}async function i(e,t,a,r){const s=new Map;for(const{resource:e,content:r,compress:n,access:i}of t){if(!e.hasPath())throw new o.Z(`portal-item-resource-${a}:invalid-path`,"Resource does not have a valid path");const[t,c]=u(e.path),l=`${t}/${n??""}/${i??""}`;s.has(l)||s.set(l,{prefix:t,compress:n,access:i,files:[]}),s.get(l).files.push({fileName:c,content:r})}await e.load(r);const i=(0,n.v_)(e.userItemUrl,"add"===a?"addResources":"updateResources");for(const{prefix:t,compress:a,access:o,files:n}of s.values()){const s=25;for(let c=0;ce.resource.path))),u=new Set,p=[];l.forEach((t=>{c.delete(t),e.paths.push(t)}));const f=[],d=[],m=[];for(const a of t.resources.toUpdate)if(c.delete(a.resource.path),l.has(a.resource.path)||u.has(a.resource.path)){const{resource:t,content:r,finish:o}=a,i=(0,s.W7)(t,(0,n.DO)());e.paths.push(i.path),f.push({resource:i,content:await(0,s.FO)(r),compress:a.compress}),o&&m.push((()=>o(i)))}else{e.paths.push(a.resource.path),d.push({resource:a.resource,content:await(0,s.FO)(a.content),compress:a.compress});const t=a.finish;t&&m.push((()=>t(a.resource))),u.add(a.resource.path)}for(const a of t.resources.toAdd)if(e.paths.push(a.resource.path),c.has(a.resource.path))c.delete(a.resource.path);else{f.push({resource:a.resource,content:await(0,s.FO)(a.content),compress:a.compress});const e=a.finish;e&&m.push((()=>e(a.resource)))}if(f.length||d.length){const{addOrUpdateResources:e}=await Promise.resolve().then(a.bind(a,68611));await e(t.portalItem,f,"add",i),await e(t.portalItem,d,"update",i)}if(m.forEach((e=>e())),0===p.length)return c;const w=await(0,o.UO)(p);if((0,o.k_)(i),w.length>0)throw new r.Z("save:resources","Failed to save one or more resources",{errors:w});return c}async function u(e,t,a){if(!e||!t.portalItem)return;const r=[];for(const o of e){const e=t.portalItem.resourceFromPath(o);r.push(e.portalItem.removeResource(e,a))}await(0,o.as)(r)}},76990:function(e,t,a){a.d(t,{w:function(){return s}});var r=a(51366),o=a(70375),n=a(99522);function s(e){if(r.default.apiKey&&(0,n.r)(e.portal.url))throw new o.Z("save-api-key-utils:api-key-not-supported",`Saving is not supported on ${e.portal.url} when using an api key`)}},15967:function(e,t,a){a.d(t,{save:function(){return P},saveAs:function(){return O}});var r=a(70375),o=a(15842),n=a(76868),s=a(3466),i=a(50516),c=a(14685),l=a(35925),u=a(39536),p=a(20692),f=a(54957),d=a(93968),m=a(53110),w=a(84513),h=a(31370),y=a(94466),g=a(41268),v=a(64573),_=a(83415),b=a(76990),R=a(60629);const I=["NatGeo_World_Map","Ocean_Basemap","USA_Topo_Maps","World_Imagery","World_Street_Map","World_Terrain_Base","World_Topo_Map","World_Hillshade","Canvas/World_Light_Gray_Base","Canvas/World_Light_Gray_Reference","Canvas/World_Dark_Gray_Base","Canvas/World_Dark_Gray_Reference","Ocean/World_Ocean_Base","Ocean/World_Ocean_Reference","Reference/World_Boundaries_and_Places","Reference/World_Reference_Overlay","Reference/World_Transportation"].map((e=>e.toLowerCase()));async function P(e,t,a){a??={},function(e,t){if(!t.portalItem)throw new r.Z(`${e.name}:portal-item-not-set`,"Portal item to save to has not been set on the WebMap");(0,b.w)(t.portalItem),k(e,t.portalItem)}(e,t),await(0,n.N1)((()=>!t.updatingFromView)),await t.load(),await W(t),await(0,R.P)(t),await S(e,t);const o=t.portalItem,s=(0,w.Y)(o,"web-map",!0),i=t.write({},s);return await Promise.all(s.resources.pendingOperations),(0,R.z)(s,{errorName:`${e.name}:save`},a),await A(t,o),await async function(e,t,a,r,o){await a.update({data:r}),z(e,t,a,r,o)}(e,t,o,i,s),await Promise.all([t.updateItemThumbnail(),(0,_.H)(t.resourceReferences,s)]),o}async function O(e,t,a,o){o??={};const i=function(e,t){let a=m.default.from(t);return a.id&&(a=a.clone(),a.id=null),a.type||(a.type=e.itemType),a.portal||(a.portal=d.Z.getDefault()),(0,b.w)(a),k(e,a),a}(e,a);await(0,n.N1)((()=>!t.updatingFromView)),await t.load(),function(e,t){const a=t.allLayers.filter((e=>"unsupported"===e.type&&"KnowledgeGraphLayer"===e.resourceInfo?.layerType));if(a.length)throw new r.Z(`${e.name}:save-as-invalid-configuration`,`Failed to save a copy of ${e.name} to prevent persisting invalid configuration. See 'details.layers'`,{layers:a.toArray()})}(e,t),await W(t),await(0,R.P)(t),await S(e,t);const c=(0,w.Y)(i,"web-map",!0),l=t.write({},c);await Promise.all(c.resources.pendingOperations),(0,R.z)(c,{errorName:`${e.name}:save`},o),await async function(e,t){(0,h.ck)(t,T),(0,h.ck)(t,N),(0,h.ck)(t,h.hz.METADATA),(0,h.ck)(t,q),(0,h.ck)(t,M),(0,h.ck)(t,E),(0,h.ck)(t,U),(0,h.ck)(t,x),await A(e,t)}(t,i);const u=t.getThumbnailState();return await async function(e,t,a,o,n,i){const c=t.portalItem,l={item:c,authenticated:!(!c?.id||!c.portal.user)},u=a.portal;await u.signIn();const{copyAllowed:p,itemReloaded:f}=await async function(e,t){const{item:a,authenticated:r}=e;return a?.id&&a.typeKeywords?.includes("useOnly")?a.portal.portalHostname!==t.portalHostname?{copyAllowed:!1,itemReloaded:!1}:(r||await a.reload(),{copyAllowed:"admin"===a.itemControl||"update"===a.itemControl,itemReloaded:!0}):{copyAllowed:!0,itemReloaded:!1}}(l,u);if(l.authenticated||=f,!p)throw new r.Z(`${e.name}:save-as-copy-not-allowed`,"Owner of this map does not allow others to save a copy");const d=await async function(e,t,a,r){const o=e.portal,{item:n}=t,{folder:i,copyAllResources:c}=r;let l=!1;if(c&&n?.id&&(0,s.Zo)(n.portal.url,o.url)&&parseInt(n.portal.currentVersion,10)>=2023){const{total:e}=await n.fetchResources();l=!!e}if(l){const t=await n.copy({copyResources:"all",folder:i});e.id=t.id,e.portal=t.portal;const r=e.toJSON();await e.load(),e.read(r),await e.update({data:a})}else await(o.user?.addItem({item:e,folder:i,data:a}));return l}(a,l,o,i);return t.portalItem=a,z(e,t,a,o,n),d}(e,t,i,l,c,o)&&(t.resourceReferences.portalItem=i),t.restoreThumbnailFromState(u),await Promise.all([t.updateItemThumbnail(),(0,_.H)(t.resourceReferences,c)]),i}function k(e,t){if(t.type!==e.itemType)throw new r.Z(`${e.name}:portal-item-wrong-type`,`Portal item needs to have type "${e.itemType}"`)}async function S(e,t){if(!t.basemap?.baseLayers.length)throw new r.Z(`${e.name}:save`,"Map does not have a valid basemap with a base layer.");let a=null;if(await(0,n.N1)((()=>{const e=(0,v.Us)(t.initialViewProperties,t.basemap);return a=e.spatialReference,!e.updating})),!(0,l.fS)(a,t.initialViewProperties.spatialReference))throw new r.Z(`${e.name}:save`,"The spatial reference of the basemap is not compatible with the one from the map.",{expected:t.initialViewProperties.spatialReference,actual:a})}function W(e){const t=[];return e.basemap&&t.push(e.basemap.load()),e.ground&&t.push(e.ground.load()),Promise.allSettled(t).then((()=>{}))}async function A(e,t){t.extent=await async function(e,t){const r=t.clone().normalize();let o;if(r.length>1)for(const e of r)o?e.width>o.width&&(o=e):o=e;else o=r[0];return async function(e,t){const r=t.spatialReference;if(r.isWGS84)return t.clone();if(r.isWebMercator)return(0,u.Sx)(t);const{getGeometryServiceURL:o}=await a.e(8060).then(a.bind(a,8060)),n=await o(e),s=new g.Z;return s.geometries=[t],s.outSpatialReference=c.Z.WGS84,(await(0,y.i)(n,s))[0]}(e,o)}(e.portalItem,e.initialViewProperties.viewpoint.targetGeometry),await async function(e,t){(0,h.qj)(t,$),await function(e){const t=V(e).map((e=>e.load())).toArray();return Promise.allSettled(t).then((()=>{}))}(e),function(e,t){(0,h._$)(t,T)||(0,h._$)(t,U)||(0,h._$)(t,x)||(0,h._$)(t,E)||!G(e)?(0,h.ck)(t,D):(0,h.qj)(t,D)}(e,t),function(e,t){G(e)?(0,h.qj)(t,F):(0,h.ck)(t,F)}(e,t),function(e,t){!(0,h._$)(t,q)&&function(e){return V(e).filter((e=>"group"!==e.type)).every((t=>t.loaded&&function(e,t){return(0,f.fP)(t)&&t.capabilities.operations.supportsSync||function(e){return(0,f.rQ)(e)||"map-notes"===e.type||"route"===e.type}(t)&&!t.portalItem||("tile"===t.type||"vector-tile"===t.type)&&(t.capabilities.operations.supportsExportTiles||function(e){return"tile"===e.type&&(0,p.h3)(e.url)&&I.some((t=>e.url?.toLowerCase().includes("/"+t+"/")))}(t)||(0,v.aL)(t))&&t.spatialReference.equals(e.initialViewProperties.spatialReference)}(e,t)))}(e)?(0,h.qj)(t,Z):(0,h.ck)(t,Z)}(e,t),function(e,t){(0,v.zb)(e.basemap)?(0,h.qj)(t,j):(0,h.ck)(t,j)}(e,t),function(e,t){e.utilityNetworks?.length?(0,h.qj)(t,C):(0,h.ck)(t,C)}(e,t),function(e,t){e.ipsInfo?(0,h.qj)(t,L):(0,h.ck)(t,L)}(e,t),t.typeKeywords&&(t.typeKeywords=t.typeKeywords.filter(((e,t,a)=>a.indexOf(e)===t)))}(e,t)}const $=h.hz.JSAPI,T="CollectorDisabled",D="Collector",F="Data Editing",q="OfflineDisabled",Z="Offline",U="Workforce Project",x="Workforce Worker",E="Workforce Dispatcher",M="Offline Map Areas",N="FieldMapsDisabled",j=h.hz.DEVELOPER_BASEMAP,C="UtilityNetwork",L="IPS";function V(e){return e.allLayers.concat(e.allTables)}function G(e){return V(e).some((e=>e.loaded&&(0,f.fP)(e)&&e.capabilities.operations.supportsEditing&&e.editingEnabled&&("subtype-group"!==e.type||e.sublayers.some((e=>e.editingEnabled)))))}function z(e,t,a,r,n){o.w.prototype.read.call(t,{version:r.version,authoringApp:r.authoringApp,authoringAppVersion:r.authoringAppVersion},{origin:e.origin,ignoreDefaults:!0,url:a.itemUrl?(0,s.mN)(a.itemUrl):void 0}),(0,i.D)(n),t.resourceInfo=r}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6033.5bc6b7917d8bd9787ec3.js b/docs/sentinel1-explorer/6033.5bc6b7917d8bd9787ec3.js new file mode 100644 index 00000000..c2983617 --- /dev/null +++ b/docs/sentinel1-explorer/6033.5bc6b7917d8bd9787ec3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6033],{17703:function(e,t,o){function r(){return new Float32Array(3)}function n(e){const t=new Float32Array(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function i(e,t,o){const r=new Float32Array(3);return r[0]=e,r[1]=t,r[2]=o,r}function s(){return r()}function l(){return i(1,1,1)}function u(){return i(1,0,0)}function a(){return i(0,1,0)}function c(){return i(0,0,1)}o.d(t,{Ue:function(){return r},al:function(){return i},d9:function(){return n}});const f=s(),d=l(),p=u(),y=a(),b=c();Object.freeze(Object.defineProperty({__proto__:null,ONES:d,UNIT_X:p,UNIT_Y:y,UNIT_Z:b,ZEROS:f,clone:n,create:r,createView:function(e,t){return new Float32Array(e,t,3)},fromValues:i,ones:l,unitX:u,unitY:a,unitZ:c,zeros:s},Symbol.toStringTag,{value:"Module"}))},99723:function(e,t,o){o.d(t,{Z:function(){return g}});var r,n=o(36663),i=o(67134),s=o(81977),l=(o(39994),o(13802),o(79438)),u=o(40266),a=o(46999),c=o(24794),f=o(30936),d=o(82064),p=o(7283);let y=r=class extends d.wq{constructor(){super(...arguments),this.description=null,this.label=null,this.minValue=0,this.maxValue=0,this.color=null}clone(){return new r({description:this.description,label:this.label,minValue:this.minValue,maxValue:this.maxValue,color:(0,i.d9)(this.color)})}};(0,n._)([(0,s.Cb)({type:String,json:{write:!0}})],y.prototype,"description",void 0),(0,n._)([(0,s.Cb)({type:String,json:{write:!0}})],y.prototype,"label",void 0),(0,n._)([(0,s.Cb)({type:Number,json:{read:{source:"classMinValue"},write:{target:"classMinValue"}}})],y.prototype,"minValue",void 0),(0,n._)([(0,s.Cb)({type:Number,json:{read:{source:"classMaxValue"},write:{target:"classMaxValue"}}})],y.prototype,"maxValue",void 0),(0,n._)([(0,s.Cb)({type:f.Z,json:{type:[p.z8],write:!0}})],y.prototype,"color",void 0),y=r=(0,n._)([(0,u.j)("esri.renderers.support.pointCloud.ColorClassBreakInfo")],y);const b=y;var h;let w=h=class extends a.Z{constructor(e){super(e),this.type="point-cloud-class-breaks",this.field=null,this.legendOptions=null,this.fieldTransformType=null,this.colorClassBreakInfos=null}clone(){return new h({...this.cloneProperties(),field:this.field,fieldTransformType:this.fieldTransformType,colorClassBreakInfos:(0,i.d9)(this.colorClassBreakInfos),legendOptions:(0,i.d9)(this.legendOptions)})}};(0,n._)([(0,l.J)({pointCloudClassBreaksRenderer:"point-cloud-class-breaks"})],w.prototype,"type",void 0),(0,n._)([(0,s.Cb)({json:{write:!0},type:String})],w.prototype,"field",void 0),(0,n._)([(0,s.Cb)({type:c.I,json:{write:!0}})],w.prototype,"legendOptions",void 0),(0,n._)([(0,s.Cb)({type:a.Z.fieldTransformTypeKebabDict.apiValues,json:{type:a.Z.fieldTransformTypeKebabDict.jsonValues,read:a.Z.fieldTransformTypeKebabDict.read,write:a.Z.fieldTransformTypeKebabDict.write}})],w.prototype,"fieldTransformType",void 0),(0,n._)([(0,s.Cb)({type:[b],json:{write:!0}})],w.prototype,"colorClassBreakInfos",void 0),w=h=(0,n._)([(0,u.j)("esri.renderers.PointCloudClassBreaksRenderer")],w);const g=w},46999:function(e,t,o){o.d(t,{Z:function(){return I}});var r,n=o(36663),i=o(25709),s=o(82064),l=o(67134),u=o(81977),a=(o(39994),o(13802),o(40266));o(4157);let c=r=class extends s.wq{constructor(){super(...arguments),this.field=null,this.minValue=0,this.maxValue=255}clone(){return new r({field:this.field,minValue:this.minValue,maxValue:this.maxValue})}};(0,n._)([(0,u.Cb)({type:String,json:{write:!0}})],c.prototype,"field",void 0),(0,n._)([(0,u.Cb)({type:Number,nonNullable:!0,json:{write:!0}})],c.prototype,"minValue",void 0),(0,n._)([(0,u.Cb)({type:Number,nonNullable:!0,json:{write:!0}})],c.prototype,"maxValue",void 0),c=r=(0,n._)([(0,a.j)("esri.renderers.support.pointCloud.ColorModulation")],c);const f=c,d=new i.X({pointCloudFixedSizeAlgorithm:"fixed-size",pointCloudSplatAlgorithm:"splat"});let p=class extends s.wq{};(0,n._)([(0,u.Cb)({type:d.apiValues,readOnly:!0,nonNullable:!0,json:{type:d.jsonValues,read:!1,write:d.write}})],p.prototype,"type",void 0),p=(0,n._)([(0,a.j)("esri.renderers.support.pointCloud.PointSizeAlgorithm")],p);const y=p;var b,h=o(79438);let w=b=class extends y{constructor(){super(...arguments),this.type="fixed-size",this.size=0,this.useRealWorldSymbolSizes=null}clone(){return new b({size:this.size,useRealWorldSymbolSizes:this.useRealWorldSymbolSizes})}};(0,n._)([(0,h.J)({pointCloudFixedSizeAlgorithm:"fixed-size"})],w.prototype,"type",void 0),(0,n._)([(0,u.Cb)({type:Number,nonNullable:!0,json:{write:!0}})],w.prototype,"size",void 0),(0,n._)([(0,u.Cb)({type:Boolean,json:{write:!0}})],w.prototype,"useRealWorldSymbolSizes",void 0),w=b=(0,n._)([(0,a.j)("esri.renderers.support.pointCloud.PointSizeFixedSizeAlgorithm")],w);const g=w;var m;let C=m=class extends y{constructor(){super(...arguments),this.type="splat",this.scaleFactor=1}clone(){return new m({scaleFactor:this.scaleFactor})}};(0,n._)([(0,h.J)({pointCloudSplatAlgorithm:"splat"})],C.prototype,"type",void 0),(0,n._)([(0,u.Cb)({type:Number,value:1,nonNullable:!0,json:{write:!0}})],C.prototype,"scaleFactor",void 0),C=m=(0,n._)([(0,a.j)("esri.renderers.support.pointCloud.PointSizeSplatAlgorithm")],C);const v={key:"type",base:y,typeMap:{"fixed-size":g,splat:C}},T=(0,i.w)()({pointCloudClassBreaksRenderer:"point-cloud-class-breaks",pointCloudRGBRenderer:"point-cloud-rgb",pointCloudStretchRenderer:"point-cloud-stretch",pointCloudUniqueValueRenderer:"point-cloud-unique-value"});let U=class extends s.wq{constructor(e){super(e),this.type=void 0,this.pointSizeAlgorithm=null,this.colorModulation=null,this.pointsPerInch=10}clone(){return null}cloneProperties(){return{pointSizeAlgorithm:(0,l.d9)(this.pointSizeAlgorithm),colorModulation:(0,l.d9)(this.colorModulation),pointsPerInch:(0,l.d9)(this.pointsPerInch)}}};(0,n._)([(0,u.Cb)({type:T.apiValues,readOnly:!0,nonNullable:!0,json:{type:T.jsonValues,read:!1,write:T.write}})],U.prototype,"type",void 0),(0,n._)([(0,u.Cb)({types:v,json:{write:!0}})],U.prototype,"pointSizeAlgorithm",void 0),(0,n._)([(0,u.Cb)({type:f,json:{write:!0}})],U.prototype,"colorModulation",void 0),(0,n._)([(0,u.Cb)({json:{write:!0},nonNullable:!0,type:Number})],U.prototype,"pointsPerInch",void 0),U=(0,n._)([(0,a.j)("esri.renderers.PointCloudRenderer")],U),(U||(U={})).fieldTransformTypeKebabDict=new i.X({none:"none",lowFourBit:"low-four-bit",highFourBit:"high-four-bit",absoluteValue:"absolute-value",moduloTen:"modulo-ten"});const I=U},5947:function(e,t,o){o.d(t,{Z:function(){return p}});var r,n=o(36663),i=o(67134),s=o(81977),l=(o(39994),o(13802),o(79438)),u=o(40266),a=o(46999),c=o(24794),f=o(68844);let d=r=class extends a.Z{constructor(e){super(e),this.type="point-cloud-stretch",this.field=null,this.legendOptions=null,this.fieldTransformType=null,this.stops=null}clone(){return new r({...this.cloneProperties(),field:(0,i.d9)(this.field),fieldTransformType:(0,i.d9)(this.fieldTransformType),stops:(0,i.d9)(this.stops),legendOptions:(0,i.d9)(this.legendOptions)})}};(0,n._)([(0,l.J)({pointCloudStretchRenderer:"point-cloud-stretch"})],d.prototype,"type",void 0),(0,n._)([(0,s.Cb)({json:{write:!0},type:String})],d.prototype,"field",void 0),(0,n._)([(0,s.Cb)({type:c.I,json:{write:!0}})],d.prototype,"legendOptions",void 0),(0,n._)([(0,s.Cb)({type:a.Z.fieldTransformTypeKebabDict.apiValues,json:{type:a.Z.fieldTransformTypeKebabDict.jsonValues,read:a.Z.fieldTransformTypeKebabDict.read,write:a.Z.fieldTransformTypeKebabDict.write}})],d.prototype,"fieldTransformType",void 0),(0,n._)([(0,s.Cb)({type:[f.Z],json:{write:!0}})],d.prototype,"stops",void 0),d=r=(0,n._)([(0,u.j)("esri.renderers.PointCloudStretchRenderer")],d);const p=d},60948:function(e,t,o){o.d(t,{Z:function(){return g}});var r,n=o(36663),i=o(67134),s=o(81977),l=(o(39994),o(13802),o(79438)),u=o(40266),a=o(46999),c=o(24794),f=o(30936),d=o(82064),p=o(7283);let y=r=class extends d.wq{constructor(){super(...arguments),this.description=null,this.label=null,this.values=null,this.color=null}clone(){return new r({description:this.description,label:this.label,values:(0,i.d9)(this.values),color:(0,i.d9)(this.color)})}};(0,n._)([(0,s.Cb)({type:String,json:{write:!0}})],y.prototype,"description",void 0),(0,n._)([(0,s.Cb)({type:String,json:{write:!0}})],y.prototype,"label",void 0),(0,n._)([(0,s.Cb)({type:[String],json:{write:!0}})],y.prototype,"values",void 0),(0,n._)([(0,s.Cb)({type:f.Z,json:{type:[p.z8],write:!0}})],y.prototype,"color",void 0),y=r=(0,n._)([(0,u.j)("esri.renderers.support.pointCloud.ColorUniqueValueInfo")],y);const b=y;var h;let w=h=class extends a.Z{constructor(e){super(e),this.type="point-cloud-unique-value",this.field=null,this.fieldTransformType=null,this.colorUniqueValueInfos=null,this.legendOptions=null}clone(){return new h({...this.cloneProperties(),field:(0,i.d9)(this.field),fieldTransformType:(0,i.d9)(this.fieldTransformType),colorUniqueValueInfos:(0,i.d9)(this.colorUniqueValueInfos),legendOptions:(0,i.d9)(this.legendOptions)})}};(0,n._)([(0,l.J)({pointCloudUniqueValueRenderer:"point-cloud-unique-value"})],w.prototype,"type",void 0),(0,n._)([(0,s.Cb)({json:{write:!0},type:String})],w.prototype,"field",void 0),(0,n._)([(0,s.Cb)({type:a.Z.fieldTransformTypeKebabDict.apiValues,json:{type:a.Z.fieldTransformTypeKebabDict.jsonValues,read:a.Z.fieldTransformTypeKebabDict.read,write:a.Z.fieldTransformTypeKebabDict.write}})],w.prototype,"fieldTransformType",void 0),(0,n._)([(0,s.Cb)({type:[b],json:{write:!0}})],w.prototype,"colorUniqueValueInfos",void 0),(0,n._)([(0,s.Cb)({type:c.I,json:{write:!0}})],w.prototype,"legendOptions",void 0),w=h=(0,n._)([(0,u.j)("esri.renderers.PointCloudUniqueValueRenderer")],w);const g=w},56033:function(e,t,o){o.r(t),o.d(t,{default:function(){return T}});var r=o(7753),n=o(86098),i=o(1845),s=o(96303),l=o(86717),u=o(17703),a=o(14685),c=o(22349),f=(o(39994),o(99723)),d=o(5947),p=o(60948),y=o(9512),b=o(52485);function h(e,t,o){return e?.attributeInfo.useElevation?t?function(e,t){const o=new Float64Array(t);for(let r=0;re;case"low-four-bit":return e=>15&e;case"high-four-bit":return e=>(240&e)>>4;case"absolute-value":return e=>Math.abs(e);case"modulo-ten":return e=>e%10}}function g(e){let t=0;for(const o of e||[])t|=1<=e[i].value)s[3*n]=e[i].color.r,s[3*n+1]=e[i].color.g,s[3*n+2]=e[i].color.b;else for(let t=1;t=e[t].minValue&&r<=e[t].maxValue){s[3*n]=e[t].color.r,s[3*n+1]=e[t].color.g,s[3*n+2]=e[t].color.b;break}}}else s=new Uint8Array(3*r).fill(255);if(o&&l?.colorModulation){const e=l.colorModulation.minValue,t=l.colorModulation.maxValue,n=.3;for(let i=0;i=t?1:r<=e?n:n+(1-n)*(r-e)/(t-e);s[3*i]=l*s[3*i],s[3*i+1]=l*s[3*i+1],s[3*i+2]=l*s[3*i+2]}}return s}(e.rendererInfo,s,l,o);if(e.filterInfo&&e.filterInfo.length>0&&null!=e.filterAttributesData){const s=e.filterAttributesData.filter(r.pC).map((e=>{const r=h(e,t,o),n={attributeInfo:e.attributeInfo,values:r};return i.push(n),n}));n=new Uint32Array(o),o=function(e,t,o,r,n){const i=e.length/3;let s=0;for(let l=0;l>>4&15,n=r>1,s=1===e,l=e===r;let u=!1;for(const e of t.includedReturns)if("last"===e&&l||"firstOfMany"===e&&s&&n||"lastOfMany"===e&&l&&n||"single"===e&&!n){u=!0;break}u||(i=!1);break}}}i&&(o[s]=l,e[3*s]=e[3*l],e[3*s+1]=e[3*l+1],e[3*s+2]=e[3*l+2],t[3*s]=t[3*l],t[3*s+1]=t[3*l+1],t[3*s+2]=t[3*l+2],s++)}return s}(t,u,n,e.filterInfo,s)}for(const r of e.userAttributesData){const e=h(r,t,o);i.push({attributeInfo:r.attributeInfo,values:e})}3*oi.Z.getLogger("esri.views.3d.layers.i3s.I3SBinaryReader");function a(e,t,o){let n="",i=0;for(;i=192&&s<224){if(i+1>=o)throw new r.Z("utf8-decode-error","UTF-8 Decode failed. Two byte character was truncated.");const l=(31&s)<<6|63&e[t+i+1];n+=String.fromCharCode(l),i+=2}else if(s>=224&&s<240){if(i+2>=o)throw new r.Z("utf8-decode-error","UTF-8 Decode failed. Multi byte character was truncated.");const l=(15&s)<<12|(63&e[t+i+1])<<6|63&e[t+i+2];n+=String.fromCharCode(l),i+=3}else{if(!(s>=240&&s<248))throw new r.Z("utf8-decode-error","UTF-8 Decode failed. Invalid multi byte sequence.");{if(i+3>=o)throw new r.Z("utf8-decode-error","UTF-8 Decode failed. Multi byte character was truncated.");const l=(7&s)<<18|(63&e[t+i+1])<<12|(63&e[t+i+2])<<6|63&e[t+i+3];if(l>=65536){const e=55296+(l-65536>>10),t=56320+(1023&l);n+=String.fromCharCode(e,t)}else n+=String.fromCharCode(l);i+=4}}}return n}function c(e,t){const o={byteOffset:0,byteCount:0,fields:Object.create(null)};let r=0;for(let n=0;n0){if(n.push(a(o,l,i-1)),0!==o[l+i-1])throw new r.Z("string-array-error","Invalid string array: missing null termination.")}else n.push(null);l+=i}return n}function d(e,t){return new(0,g[t.valueType])(e,t.byteOffset,t.count*t.valuesPerElement)}function p(e,t,o){const i=null!=t.header?c(e,t.header):{byteOffset:0,byteCount:0,fields:{count:o}},s={header:i,byteOffset:i.byteCount,byteCount:0,entries:Object.create(null)};let l=i.byteCount;for(let e=0;e{const t=e?Date.parse(e):null;return t&&!Number.isNaN(t)?t:null}))}(e.count,o,r):f(e.count,o,r)}return d(t,i)}throw new r.Z("bad-attribute-storage-info","Bad attributeStorageInfo specification.")}const g={Float32:Float32Array,Float64:Float64Array,UInt8:Uint8Array,Int8:Int8Array,UInt16:Uint16Array,Int16:Int16Array,UInt32:Uint32Array,Int32:Int32Array},m={Float32:(e,t)=>new DataView(e,0).getFloat32(t,!0),Float64:(e,t)=>new DataView(e,0).getFloat64(t,!0),UInt8:(e,t)=>new DataView(e,0).getUint8(t),Int8:(e,t)=>new DataView(e,0).getInt8(t),UInt16:(e,t)=>new DataView(e,0).getUint16(t,!0),Int16:(e,t)=>new DataView(e,0).getInt16(t,!0),UInt32:(e,t)=>new DataView(e,0).getUint32(t,!0),Int32:(e,t)=>new DataView(e,0).getInt32(t,!0)};function C(e){return g.hasOwnProperty(e)}function v(e){return C(e)?g[e].BYTES_PER_ELEMENT:0}},52485:function(e,t,o){o.d(t,{Gi:function(){return a},IT:function(){return y},ti:function(){return w}});var r=o(70375);const n=!0,i={identifierOffset:0,identifierLength:10,versionOffset:10,checksumOffset:12,byteCount:16};function s(e,t,o){return{identifier:String.fromCharCode.apply(null,new Uint8Array(e,o+i.identifierOffset,i.identifierLength)),version:t.getUint16(o+i.versionOffset,n),checksum:t.getUint32(o+i.checksumOffset,n)}}const l={sizeLo:0,sizeHi:4,minX:8,minY:16,minZ:24,maxX:32,maxY:40,maxZ:48,errorX:56,errorY:64,errorZ:72,count:80,reserved:84,byteCount:88};function u(e,t){return{sizeLo:e.getUint32(t+l.sizeLo,n),sizeHi:e.getUint32(t+l.sizeHi,n),minX:e.getFloat64(t+l.minX,n),minY:e.getFloat64(t+l.minY,n),minZ:e.getFloat64(t+l.minZ,n),maxX:e.getFloat64(t+l.maxX,n),maxY:e.getFloat64(t+l.maxY,n),maxZ:e.getFloat64(t+l.maxZ,n),errorX:e.getFloat64(t+l.errorX,n),errorY:e.getFloat64(t+l.errorY,n),errorZ:e.getFloat64(t+l.errorZ,n),count:e.getUint32(t+l.count,n),reserved:e.getUint32(t+l.reserved,n)}}function a(e){const t=new DataView(e,0);let o=0;const{identifier:n,version:a}=s(e,t,o);if(o+=i.byteCount,"LEPCC "!==n)throw new r.Z("lepcc-decode-error","Bad identifier");if(a>1)throw new r.Z("lepcc-decode-error","Unknown version");const f=u(t,o);if(o+=l.byteCount,f.sizeHi*2**32+f.sizeLo!==e.byteLength)throw new r.Z("lepcc-decode-error","Bad size");const d=new Float64Array(3*f.count),p=[],y=[],b=[],h=[];if(o=c(e,o,p),o=c(e,o,y),o=c(e,o,b),o=c(e,o,h),o!==e.byteLength)throw new r.Z("lepcc-decode-error","Bad length");let w=0,g=0;for(let e=0;e>6;let c=0;if(0===a)c=i.getUint32(1,n),t+=5;else if(1===a)c=i.getUint16(1,n),t+=3;else{if(2!==a)throw new r.Z("lepcc-decode-error","Bad count type");c=i.getUint8(1),t+=2}if(u)throw new r.Z("lepcc-decode-error","LUT not implemented");const f=Math.ceil(c*l/8),d=new Uint8Array(e,t,f);let p=0,y=0,b=0;const h=-1>>>32-l;for(let e=0;e>>=l,y-=l,y+l>32&&(p|=d[b-1]>>8-y)}return t+b}const d={sizeLo:0,sizeHi:4,count:8,colorMapCount:12,lookupMethod:14,compressionMethod:15,byteCount:16};function p(e,t){return{sizeLo:e.getUint32(t+d.sizeLo,n),sizeHi:e.getUint32(t+d.sizeHi,n),count:e.getUint32(t+d.count,n),colorMapCount:e.getUint16(t+d.colorMapCount,n),lookupMethod:e.getUint8(t+d.lookupMethod),compressionMethod:e.getUint8(t+d.compressionMethod)}}function y(e){const t=new DataView(e,0);let o=0;const{identifier:n,version:l}=s(e,t,o);if(o+=i.byteCount,"ClusterRGB"!==n)throw new r.Z("lepcc-decode-error","Bad identifier");if(l>1)throw new r.Z("lepcc-decode-error","Unknown version");const u=p(t,o);if(o+=d.byteCount,u.sizeHi*2**32+u.sizeLo!==e.byteLength)throw new r.Z("lepcc-decode-error","Bad size");if((2===u.lookupMethod||1===u.lookupMethod)&&0===u.compressionMethod){if(3*u.colorMapCount+u.count+o!==e.byteLength||u.colorMapCount>256)throw new r.Z("lepcc-decode-error","Bad count");const t=new Uint8Array(e,o,3*u.colorMapCount),n=new Uint8Array(e,o+3*u.colorMapCount,u.count),i=new Uint8Array(3*u.count);for(let e=0;e1)throw new r.Z("lepcc-decode-error","Unknown version");const u=h(t,o);if(o+=b.byteCount,u.sizeHi*2**32+u.sizeLo!==e.byteLength)throw new r.Z("lepcc-decode-error","Bad size");const a=new Uint16Array(u.count);if(8===u.bitsPerPoint){if(u.count+o!==e.byteLength)throw new r.Z("lepcc-decode-error","Bad size");const t=new Uint8Array(e,o,u.count);for(let e=0;en?e-n:0}function c(e,t,n){return en?n:e}class f{constructor(e){this._date=e,this.declaredRootClass="esri.arcade.arcadedate"}static fromParts(e=0,t=1,n=1,r=0,i=0,a=0,s=0,u){if(isNaN(e)||isNaN(t)||isNaN(n)||isNaN(r)||isNaN(i)||isNaN(a)||isNaN(s))return null;const h=o.ou.local(e,t).daysInMonth;let m=o.ou.fromObject({day:c(n,1,h),year:e,month:c(t,1,12),hour:c(r,0,23),minute:c(i,0,59),second:c(a,0,59),millisecond:c(s,0,999)},{zone:d(u)});return m=m.plus({months:l(t,1,12),days:l(n,1,h),hours:l(r,0,23),minutes:l(i,0,59),seconds:l(a,0,59),milliseconds:l(s,0,999)}),new f(m)}static get systemTimeZoneCanonicalName(){return Intl.DateTimeFormat().resolvedOptions().timeZone??"system"}static arcadeDateAndZoneToArcadeDate(e,t){const n=d(t);return e.isUnknownTimeZone||n===a.yV.instance?f.fromParts(e.year,e.monthJS+1,e.day,e.hour,e.minute,e.second,e.millisecond,n):new f(e._date.setZone(n))}static dateJSToArcadeDate(e){return new f(o.ou.fromJSDate(e,{zone:"system"}))}static dateJSAndZoneToArcadeDate(e,t="system"){const n=d(t);return new f(o.ou.fromJSDate(e,{zone:n}))}static unknownEpochToArcadeDate(e){return new f(o.ou.fromMillis(e,{zone:a.yV.instance}))}static unknownDateJSToArcadeDate(e){return new f(o.ou.fromMillis(e.getTime(),{zone:a.yV.instance}))}static epochToArcadeDate(e,t="system"){const n=d(t);return new f(o.ou.fromMillis(e,{zone:n}))}static dateTimeToArcadeDate(e){return new f(e)}clone(){return new f(this._date)}changeTimeZone(e){const t=d(e);return f.dateTimeToArcadeDate(this._date.setZone(t))}static dateTimeAndZoneToArcadeDate(e,t){const n=d(t);return e.zone===a.yV.instance||n===a.yV.instance?f.fromParts(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond,n):new f(e.setZone(n))}static nowToArcadeDate(e){const t=d(e);return new f(o.ou.fromJSDate(new Date,{zone:t}))}static nowUTCToArcadeDate(){return new f(o.ou.utc())}get isSystem(){return"system"===this.timeZone||this.timeZone===f.systemTimeZoneCanonicalName}equals(e){return this.isSystem&&e.isSystem?this.toNumber()===e.toNumber():this.isUnknownTimeZone===e.isUnknownTimeZone&&this._date.equals(e._date)}get isUnknownTimeZone(){return this._date.zone===a.yV.instance}get isValid(){return this._date.isValid}get hour(){return this._date.hour}get second(){return this._date.second}get day(){return this._date.day}get dayOfWeekISO(){return this._date.weekday}get dayOfWeekJS(){let e=this._date.weekday;return e>6&&(e=0),e}get millisecond(){return this._date.millisecond}get monthISO(){return this._date.month}get weekISO(){return this._date.weekNumber}get yearISO(){return this._date.weekYear}get monthJS(){return this._date.month-1}get year(){return this._date.year}get minute(){return this._date.minute}get zone(){return this._date.zone}get timeZoneOffset(){return this.isUnknownTimeZone?0:this._date.offset}get timeZone(){if(this.isUnknownTimeZone)return"unknown";if("system"===this._date.zone.type)return"system";const e=this.zone;return"fixed"===e.type?0===e.fixed?"UTC":e.formatOffset(0,"short"):e.name}stringify(){return JSON.stringify(this.toJSDate())}plus(e){return new f(this._date.plus(e))}diff(e,t="milliseconds"){return this._date.diff(e._date,t)[t]}toISODate(){return this._date.toISODate()}toISOString(e){return e?this._date.toISO({suppressMilliseconds:!0,includeOffset:!this.isUnknownTimeZone}):this._date.toISO({includeOffset:!this.isUnknownTimeZone})}toISOTime(e,t){return this._date.toISOTime({suppressMilliseconds:e,includeOffset:t&&!this.isUnknownTimeZone})}toFormat(e,t){return this.isUnknownTimeZone&&(e=e.replaceAll("Z","")),this._date.toFormat(e,t)}toJSDate(){return this._date.toJSDate()}toSQLValue(){return this._date.toFormat("yyyy-LL-dd HH:mm:ss")}toSQLWithKeyword(){return`timestamp '${this.toSQLValue()}'`}toDateTime(){return this._date}toNumber(){return this._date.toMillis()}getTime(){return this._date.toMillis()}toUTC(){return new f(this._date.toUTC())}toLocal(){return new f(this._date.toLocal())}toString(){return this.toISOString(!0)}static fromReaderAsTimeStampOffset(e){if(!e)return null;const t=o.ou.fromISO(e,{setZone:!0});return new f(t)}}function d(e,t=!0){if(e instanceof o.ld)return e;if("system"===e.toLowerCase())return"system";if("utc"===e.toLowerCase())return"UTC";if("unknown"===e.toLowerCase())return a.yV.instance;if(/^[\+\-]?[0-9]{1,2}([:][0-9]{2})?$/.test(e)){const t=o.Qf.parseSpecifier("UTC"+(e.startsWith("+")||e.startsWith("-")?"":"+")+e);if(t)return t}const n=o.vF.create(e);if(!n.isValid){if(t)throw new u(r.TimeZoneNotRecognized);return null}return n}},32070:function(e,t,n){n.d(t,{P:function(){return r}});class r{constructor(e){this.source=e}}},93674:function(e,t,n){n.d(t,{s:function(){return r}});class r{constructor(e,t){this._moduleSingletons=e,this._syntaxModules=t}loadLibrary(e){if(null==this._syntaxModules)return null;const t=this._syntaxModules[e.toLowerCase()];return t?{syntax:t.script,uri:t.uri}:null}}},58780:function(e,t,n){n.d(t,{Z:function(){return i}});var r=n(19249);class i extends r.Z{constructor(e){super(),this.declaredClass="esri.arcade.Portal",this.immutable=!1,this.setField("url",e),this.immutable=!0}}},56088:function(e,t,n){n.d(t,{Z:function(){return i}});var r=n(19249);class i extends r.Z{constructor(e,t,n,r,i,a,o){super(),this.attachmentUrl=i,this.declaredClass="esri.arcade.Attachment",this.immutable=!1,this.setField("id",e),this.setField("name",t),this.setField("contenttype",n),this.setField("size",r),this.setField("exifinfo",a),this.setField("keywords",o),this.immutable=!0}deepClone(){return new i(this.field("id"),this.field("name"),this.field("contenttype"),this.field("size"),this.attachmentUrl,this.field("exifinfo")?.deepClone()??null,this.field("keywords"))}}},19249:function(e,t,n){n.d(t,{Z:function(){return c}});var r=n(78053),i=n(58753),a=n(7182),o=n(58830),s=n(94837),u=n(20031);function l(e,t,n=!1,r=!1){if(null==e)return null;if((0,s.b)(e))return(0,s.g)(e);if((0,s.a)(e))return(0,s.h)(e);if((0,s.c)(e))return(0,s.j)(e);if((0,s.k)(e))return(0,s.l)(e,t);if((0,s.m)(e))return e;if((0,s.n)(e))return e;if((0,s.o)(e)){const i=[];for(const a of e)i.push(l(a,t,n,r));return i}if(r&&(0,s.p)(e))return e;const i=new c;i.immutable=!1;for(const a of Object.keys(e)){const o=e[a];void 0!==o&&i.setField(a,l(o,t,n,r))}return i.immutable=n,i}class c{constructor(e){this.declaredClass="esri.arcade.Dictionary",this.attributes=null,this.plain=!1,this.immutable=!0,this.attributes=e instanceof c?e.attributes:e??{}}field(e){const t=e.toLowerCase(),n=this.attributes[e];if(void 0!==n)return n;for(const e in this.attributes)if(e.toLowerCase()===t)return this.attributes[e];throw new a.aV(null,a.rH.FieldNotFound,null,{key:e})}setField(e,t){if(this.immutable)throw new a.aV(null,a.rH.Immutable,null);if((0,s.i)(t))throw new a.aV(null,a.rH.NoFunctionInDictionary,null);const n=e.toLowerCase();if(t instanceof Date&&(t=r.iG.dateJSToArcadeDate(t)),void 0===this.attributes[e]){for(const e in this.attributes)if(e.toLowerCase()===n)return void(this.attributes[e]=t);this.attributes[e]=t}else this.attributes[e]=t}hasField(e){const t=e.toLowerCase();if(void 0!==this.attributes[e])return!0;for(const e in this.attributes)if(e.toLowerCase()===t)return!0;return!1}keys(){let e=[];for(const t in this.attributes)e.push(t);return e=e.sort(),e}castToText(e=!1){let t="";for(const n in this.attributes){""!==t&&(t+=",");const i=this.attributes[n];null==i?t+=JSON.stringify(n)+":null":(0,s.a)(i)||(0,s.b)(i)||(0,s.c)(i)?t+=JSON.stringify(n)+":"+JSON.stringify(i):i instanceof u.Z?t+=JSON.stringify(n)+":"+(0,s.t)(i):i instanceof o.Z||i instanceof Array?t+=JSON.stringify(n)+":"+(0,s.t)(i,null,e):i instanceof r.iG?t+=e?JSON.stringify(n)+":"+JSON.stringify(i.getTime()):JSON.stringify(n)+":"+i.stringify():null!==i&&"object"==typeof i&&void 0!==i.castToText&&(t+=JSON.stringify(n)+":"+i.castToText(e))}return"{"+t+"}"}static convertObjectToArcadeDictionary(e,t,n=!0,r=!1){const i=new c;i.immutable=!1;for(const a in e){const o=e[a];void 0!==o&&i.setField(a.toString(),l(o,t,n,r))}return i.immutable=n,i}static convertJsonToArcade(e,t,n=!1,r=!1){return l(e,t,n,r)}castAsJson(e=null){const t={};for(let n in this.attributes){const r=this.attributes[n];void 0!==r&&(e?.keyTranslate&&(n=e.keyTranslate(n)),t[n]=(0,s.d)(r,e))}return t}async castDictionaryValueAsJsonAsync(e,t,n,r=null,i){const a=await(0,s.e)(n,r,i);return e[t]=a,a}async castAsJsonAsync(e=null,t=null){const n={},i=[];for(let a in this.attributes){const o=this.attributes[a];t?.keyTranslate&&(a=t.keyTranslate(a)),void 0!==o&&((0,s.f)(o)||o instanceof u.Z||o instanceof r.iG?n[a]=(0,s.d)(o,t):i.push(this.castDictionaryValueAsJsonAsync(n,a,o,e,t)))}return i.length>0&&await Promise.all(i),n}deepClone(){const e=new c;e.immutable=!1;for(const t of this.keys())e.setField(t,(0,i.I)(this.field(t)));return e}}},94634:function(e,t,n){n.d(t,{Z:function(){return g}});var r=n(78053),i=n(58753),a=n(19249),o=n(7182),s=n(58830),u=n(94837),l=n(19980),c=n(62717),f=n(20031),d=n(67666),h=n(53736),m=n(12065),p=n(28790);class g{constructor(){this.arcadeDeclaredClass="esri.arcade.Feature",this._optimizedGeomDefinition=null,this._geometry=null,this.attributes=null,this._layer=null,this._fieldTypesFixed=!0,this.fieldsIndex=null,this.contextTimeZone=null,this.immutable=!0,this._fieldsToFixDataTypes=null,this.immutable=!0}static createFromGraphic(e,t){const n=new g;return n.contextTimeZone=t??null,n._geometry=null!=e.geometry?e.geometry:null,void 0===e.attributes||null===e.attributes?n.attributes={}:n.attributes=e.attributes,e._sourceLayer?(n._layer=e._sourceLayer,n._fieldTypesFixed=!1):e._layer?(n._layer=e._layer,n._fieldTypesFixed=!1):e.layer&&"fields"in e.layer?(n._layer=e.layer,n._fieldTypesFixed=!1):e.sourceLayer&&"fields"in e.sourceLayer&&(n._layer=e.sourceLayer,n._fieldTypesFixed=!1),n._layer&&!n._fieldTypesFixed&&(n.fieldsIndex=this.hydrateFieldsIndex(n._layer)),n}static createFromArcadeFeature(e){if(e instanceof g){const t=new g;return t._fieldTypesFixed=e._fieldTypesFixed,t.attributes=e.attributes,t._geometry=e._geometry,t._optimizedGeomDefinition=e._optimizedGeomDefinition,e._layer&&(t._layer=e._layer),t.fieldsIndex=e.fieldsIndex,t.contextTimeZone=e.contextTimeZone,t}const t={};for(const n of e.keys())t[n]=e.field(n);return g.createFromGraphicLikeObject(e.geometry(),t,e.fullSchema(),e.contextTimeZone)}static createFromOptimisedFeature(e,t,n){const r=new g;return r._geometry=e.geometry?{geometry:e.geometry}:null,r._optimizedGeomDefinition=n,r.attributes=e.attributes||{},r._layer=t,r._fieldTypesFixed=!1,r}static createFromArcadeDictionary(e,t){const n=new g;return n.attributes=e.field("attributes"),null!==n.attributes&&n.attributes instanceof a.Z?(n.attributes=n.attributes.attributes,null===n.attributes&&(n.attributes={})):n.attributes={},n._geometry=e.field("geometry"),null!==n._geometry&&(n._geometry instanceof a.Z?n._geometry=g.parseGeometryFromDictionary(n._geometry,t):n._geometry instanceof f.Z||(n._geometry=null)),n}static createFromGraphicLikeObject(e,t,n=null,r){const i=new g;return i.contextTimeZone=r??null,null===t&&(t={}),i.attributes=t,i._geometry=null!=e?e:null,i._layer=n,i._layer&&(i._fieldTypesFixed=!1,i.fieldsIndex=this.hydrateFieldsIndex(i._layer)),i}static hydrateFieldsIndex(e){return null===e?null:(0,u.u)(e)?e.getFieldsIndex():e.fieldsIndex?e.fieldsIndex:p.Z.fromLayerJSON({datesInUnknownTimezone:e.datesInUnknownTimezone,fields:e.fields,timeInfo:e.timeInfo,editFieldsInfo:e.editFieldsInfo,dateFieldsTimeReference:e.dateFieldsTimeReference??{timeZone:"UTC",respectsDaylightSaving:!1}})}repurposeFromGraphicLikeObject(e,t,n=null){null===t&&(t={}),this.attributes=t,this._geometry=e??null,this._layer=n,this._layer?this._fieldTypesFixed=!1:this._fieldTypesFixed=!0}castToText(e=!1){let t="";!1===this._fieldTypesFixed&&this._fixFieldTypes();for(const n in this.attributes){""!==t&&(t+=",");const i=this.attributes[n];null==i?t+=JSON.stringify(n)+":null":(0,u.a)(i)||(0,u.b)(i)||(0,u.c)(i)?t+=JSON.stringify(n)+":"+JSON.stringify(i):i instanceof f.Z?t+=JSON.stringify(n)+":"+(0,u.t)(i):i instanceof c.n||i instanceof l.u?t+=`${JSON.stringify(n)}:${JSON.stringify(i.toString())}`:i instanceof s.Z||i instanceof Array?t+=JSON.stringify(n)+":"+(0,u.t)(i,null,e):i instanceof r.iG?t+=e?JSON.stringify(n)+":"+JSON.stringify(i.getTime()):JSON.stringify(n)+":"+i.stringify():null!==i&&"object"==typeof i&&void 0!==i.castToText&&(t+=JSON.stringify(n)+":"+i.castToText(e))}return'{"geometry":'+(null===this.geometry()?"null":(0,u.t)(this.geometry()))+',"attributes":{'+t+"}}"}_fixFieldTypes(){if(this._fieldsToFixDataTypes&&this._fieldsToFixDataTypes?.length>0)return this._fixAllFields(this._fieldsToFixDataTypes),void(this._fieldTypesFixed=!0);const e=[],t=this._layer.fields;for(let n=0;n0&&this._fixAllFields(e),this._fieldTypesFixed=!0}isUnknownDateTimeField(e){return"unknown"===this.fieldsIndex?.getTimeZone(e)}_fixAllFields(e){this.attributes={...this.attributes};const t=this.contextTimeZone??"system";for(let n=0;nthis.fn(e,{preparsed:!0,arguments:t})}call(e,t){return this.fn(e,t)}marshalledCall(e,t,n,o){return o(e,t,((t,u,l)=>{l=l.map((t=>t instanceof i&&!(t instanceof s)?a(t,e,o):t));const c=this.call(n,{args:l});return(0,r.y8)(c)?c.then((e=>a(e,n,o))):c}))}}class s extends i{constructor(){super(...arguments),this.fn=null,this.context=null}createFunction(e){return this.fn.createFunction(this.context)}call(e,t){return this.fn.marshalledCall(e,t,this.context,this.parameterEvaluator)}marshalledCall(e,t,n){return this.fn.marshalledCall(e,t,this.context,this.parameterEvaluator)}}},58830:function(e,t,n){n.d(t,{Z:function(){return r}});class r{constructor(e=[]){this._elements=e}length(){return this._elements.length}get(e){return this._elements[e]}toArray(){const e=[];for(let t=0;ts(e))):(0,i.o)(e)?e.map((e=>s(e))):(0,i.r)(e)?o.createFromArcadeFeature(e):(0,i.s)(e)||(0,i.u)(e)?e:(0,i.v)(e)||"esri.arcade.Attachment"===e?.declaredClass?e.deepClone():("esri.arcade.Portal"===e?.declaredClass||(0,i.w)(e)||e instanceof r.P||(0,i.i)(e),e)}},7182:function(e,t,n){n.d(t,{OF:function(){return f},TD:function(){return m},Tu:function(){return g},VO:function(){return h},aV:function(){return l},kq:function(){return d},rH:function(){return r}});var r,i,a=n(21130);(i=r||(r={})).AsyncNotEnabled="AsyncNotEnabled",i.ModulesNotSupported="ModulesNotSupported",i.CircularModules="CircularModules",i.CannotCompareDateAndTime="CannotCompareDateAndTime",i.NeverReach="NeverReach",i.UnsupportedHashType="UnsupportedHashType",i.InvalidParameter="InvalidParameter",i.FeatureSetDoesNotHaveSubtypes="FeatureSetDoesNotHaveSubtypes",i.UnexpectedToken="UnexpectedToken",i.Unrecognized="Unrecognized",i.UnrecognizedType="UnrecognizedType",i.MaximumCallDepth="MaximumCallDepth",i.BooleanConditionRequired="BooleanConditionRequired",i.TypeNotAllowedInFeature="TypeNotAllowedInFeature",i.KeyMustBeString="KeyMustBeString",i.WrongNumberOfParameters="WrongNumberOfParameters",i.CallNonFunction="CallNonFunction",i.NoFunctionInTemplateLiteral="NoFunctionInTemplateLiteral",i.NoFunctionInDictionary="NoFunctionInDictionary",i.NoFunctionInArray="NoFunctionInArray",i.AssignModuleFunction="AssignModuleFunction",i.LogicExpressionOrAnd="LogicExpressionOrAnd",i.LogicalExpressionOnlyBoolean="LogicalExpressionOnlyBoolean",i.FunctionNotFound="FunctionNotFound",i.InvalidMemberAccessKey="InvalidMemberAccessKey",i.UnsupportedUnaryOperator="UnsupportUnaryOperator",i.InvalidIdentifier="InvalidIdentifier",i.MemberOfNull="MemberOfNull",i.UnsupportedOperator="UnsupportedOperator",i.Cancelled="Cancelled",i.ModuleAccessorMustBeString="ModuleAccessorMustBeString",i.ModuleExportNotFound="ModuleExportNotFound",i.Immutable="Immutable",i.OutOfBounds="OutOfBounds",i.IllegalResult="IllegalResult",i.FieldNotFound="FieldNotFound",i.PortalRequired="PortalRequired",i.LogicError="LogicError",i.ArrayAccessorMustBeNumber="ArrayAccessMustBeNumber",i.KeyAccessorMustBeString="KeyAccessorMustBeString",i.WrongSpatialReference="WrongSpatialReference",i.CannotChangeTimeZoneTime="CannotChangeTimeZoneTime",i.CannotChangeTimeZoneDateOnly="CannotChangeTimeZoneDateOnly";const o={[r.TypeNotAllowedInFeature]:"Feature attributes only support dates, numbers, strings, guids.",[r.LogicError]:"Logic error - {reason}",[r.CannotCompareDateAndTime]:"Cannot compare date or dateonly with timeonly types",[r.NeverReach]:"Encountered unreachable logic",[r.AsyncNotEnabled]:"Async Arcade must be enabled for this script",[r.ModuleAccessorMustBeString]:"Module accessor must be a string",[r.ModuleExportNotFound]:"Module has no export with provided identifier",[r.ModulesNotSupported]:"Current profile does not support modules",[r.ArrayAccessorMustBeNumber]:"Array accessor must be a number",[r.FunctionNotFound]:"Function not found",[r.FieldNotFound]:"Key not found - {key}",[r.CircularModules]:"Circular module dependencies are not allowed",[r.Cancelled]:"Execution cancelled",[r.UnsupportedHashType]:"Type not supported in hash function",[r.IllegalResult]:"Value is not a supported return type",[r.PortalRequired]:"Portal is required",[r.InvalidParameter]:"Invalid parameter",[r.WrongNumberOfParameters]:"Call with wrong number of parameters",[r.Unrecognized]:"Unrecognized code structure",[r.UnrecognizedType]:"Unrecognized type",[r.WrongSpatialReference]:"Cannot work with geometry in this spatial reference. It is different to the execution spatial reference",[r.BooleanConditionRequired]:"Conditions must use booleans",[r.NoFunctionInDictionary]:"Dictionaries cannot contain functions.",[r.NoFunctionInArray]:"Arrays cannot contain functions.",[r.NoFunctionInTemplateLiteral]:"Template Literals do not expect functions by value.",[r.KeyAccessorMustBeString]:"Accessor must be a string",[r.KeyMustBeString]:"Object keys must be a string",[r.Immutable]:"Object is immutable",[r.UnexpectedToken]:"Unexpected token",[r.MemberOfNull]:"Cannot access property of null object",[r.MaximumCallDepth]:"Exceeded maximum function depth",[r.OutOfBounds]:"Out of bounds",[r.InvalidIdentifier]:"Identifier not recognized",[r.CallNonFunction]:"Expression is not a function",[r.InvalidMemberAccessKey]:"Cannot access value using a key of this type",[r.AssignModuleFunction]:"Cannot assign function to module variable",[r.UnsupportedUnaryOperator]:"Unsupported unary operator",[r.UnsupportedOperator]:"Unsupported operator",[r.LogicalExpressionOnlyBoolean]:"Logical expressions must be boolean",[r.LogicExpressionOrAnd]:"Logical expression can only be combined with || or &&",[r.CannotChangeTimeZoneTime]:"Cannot change the timezone of a Time",[r.CannotChangeTimeZoneDateOnly]:"Cannot change the timezone of a DateOnly",[r.FeatureSetDoesNotHaveSubtypes]:"FeatureSet does not have subtypes"};class s extends Error{constructor(...e){super(...e)}}class u extends s{constructor(e,t){super(c(t)+e.message,{cause:e}),this.loc=null,Error.captureStackTrace&&Error.captureStackTrace(this,u),t?.loc&&(this.loc=t.loc)}}class l extends Error{constructor(e,t,n,r){super("Execution error - "+c(n)+(0,a.gx)(o[t],r)),this.loc=null,this.declaredRootClass="esri.arcade.arcadeexecutionerror",Error.captureStackTrace&&Error.captureStackTrace(this,l),n?.loc&&(this.loc=n.loc)}}function c(e){return e&&e.loc?`Line : ${e.loc.start?.line}, ${e.loc.start?.column}: `:""}class f extends Error{constructor(e,t,n,r){super("Compilation error - "+c(n)+(0,a.gx)(o[t],r)),this.loc=null,this.declaredRootClass="esri.arcade.arcadecompilationerror",Error.captureStackTrace&&Error.captureStackTrace(this,f),n?.loc&&(this.loc=n.loc)}}class d extends Error{constructor(){super("Uncompilable code structures"),this.declaredRootClass="esri.arcade.arcadeuncompilableerror",Error.captureStackTrace&&Error.captureStackTrace(this,d)}}function h(e,t,n){return"esri.arcade.arcadeexecutionerror"===n.declaredRootClass||"esri.arcade.arcadecompilationerror"===n.declaredRootClass?null===n.loc&&t?.loc?new u(n,{cause:n}):n:("esri.arcade.featureset.support.featureseterror"===n.declaredRootClass||"esri.arcade.featureset.support.sqlerror"===n.declaredRootClass||n.declaredRootClass,t?.loc?new u(n,{cause:n}):n)}var m;!function(e){e.UnrecognizedUri="UnrecognizedUri",e.UnsupportedUriProtocol="UnsupportedUriProtocol"}(m||(m={}));const p={[m.UnrecognizedUri]:"Unrecognized uri - {uri}",[m.UnsupportedUriProtocol]:"Unrecognized uri protocol"};class g extends Error{constructor(e,t){super((0,a.gx)(p[e],t)),this.declaredRootClass="esri.arcade.arcademoduleerror",Error.captureStackTrace&&Error.captureStackTrace(this,g)}}},68673:function(e,t,n){n.d(t,{$A:function(){return w},Bj:function(){return r},EI:function(){return C},HD:function(){return m},JW:function(){return d},J_:function(){return g},Lz:function(){return b},NP:function(){return y},Qk:function(){return E},SV:function(){return A},Sh:function(){return h},T4:function(){return D},US:function(){return k},_U:function(){return x},dj:function(){return i},hd:function(){return T},hj:function(){return p},q2:function(){return v},tI:function(){return S},tt:function(){return F},yE:function(){return I}});var r,i,a,o=n(78053),s=n(19980),u=n(62717),l=n(91772),c=n(12512),f=n(17126);function d(e){return c.Z.fromJSON(e.toJSON())}function h(e){return e.toJSON?e.toJSON():e}function m(e){return"string"==typeof e||e instanceof String}function p(e){return"number"==typeof e}function g(e){return e instanceof Date}function D(e){return e instanceof f.ou}function y(e){return e instanceof o.iG}function w(e){return e instanceof s.u}function x(e){return e instanceof u.n}function F(e,t){return e===t||!(!g(e)&&!y(e)||!g(t)&&!y(t))&&e.getTime()===t.getTime()}function C(e){if(null==e)return null;if("number"==typeof e)return e;switch(e.toLowerCase()){case"meters":case"meter":return 109404;case"miles":case"mile":return 109439;case"kilometers":case"kilometer":case"km":return 109414}return null}function A(e){if(null==e)return null;switch(e.type){case"polygon":case"multipoint":case"polyline":return e.extent;case"point":return new l.Z({xmin:e.x,ymin:e.y,xmax:e.x,ymax:e.y,spatialReference:e.spatialReference});case"extent":return e}return null}function b(e){if(null==e)return null;if("number"==typeof e)return e;if("number"==typeof e)return e;switch(e.toLowerCase()){case"meters":case"meter":return 9001;case"miles":case"mile":return 9093;case"kilometers":case"kilometer":case"km":return 9036}return null}(a=r||(r={}))[a.Standardised=0]="Standardised",a[a.StandardisedNoInterval=1]="StandardisedNoInterval",a[a.SqlServer=2]="SqlServer",a[a.Oracle=3]="Oracle",a[a.Postgres=4]="Postgres",a[a.PGDB=5]="PGDB",a[a.FILEGDB=6]="FILEGDB",a[a.NotEvaluated=7]="NotEvaluated",function(e){e[e.InFeatureSet=0]="InFeatureSet",e[e.NotInFeatureSet=1]="NotInFeatureSet",e[e.Unknown=2]="Unknown"}(i||(i={}));const S=1e3;const E={point:"point",polygon:"polygon",polyline:"polyline",multipoint:"multipoint",extent:"extent",esriGeometryPoint:"point",esriGeometryPolygon:"polygon",esriGeometryPolyline:"polyline",esriGeometryMultipoint:"multipoint",esriGeometryEnvelope:"extent",envelope:"extent"},v={point:"esriGeometryPoint",polygon:"esriGeometryPolygon",polyline:"esriGeometryPolyline",multipoint:"esriGeometryMultipoint",extent:"esriGeometryEnvelope",esriGeometryPoint:"esriGeometryPoint",esriGeometryPolygon:"esriGeometryPolygon",esriGeometryPolyline:"esriGeometryPolyline",esriGeometryMultipoint:"esriGeometryMultipoint",esriGeometryEnvelope:"esriGeometryEnvelope",envelope:"esriGeometryEnvelope"},I={"small-integer":"esriFieldTypeSmallInteger",integer:"esriFieldTypeInteger",long:"esriFieldTypeLong",single:"esriFieldTypeSingle",double:"esriFieldTypeDouble",string:"esriFieldTypeString",date:"esriFieldTypeDate","date-only":"esriFieldTypeDateOnly","time-only":"esriFieldTypeTimeOnly","timestamp-offset":"esriFieldTypeTimestampOffset",oid:"esriFieldTypeOID",geometry:"esriFieldTypeGeometry",blob:"esriFieldTypeBlob",raster:"esriFieldTypeRaster",guid:"esriFieldTypeGUID","global-id":"esriFieldTypeGlobalID",xml:"esriFieldTypeXML","big-integer":"esriFieldTypeBigInteger",esriFieldTypeSmallInteger:"esriFieldTypeSmallInteger",esriFieldTypeInteger:"esriFieldTypeInteger",esriFieldTypeLong:"esriFieldTypeLong",esriFieldTypeSingle:"esriFieldTypeSingle",esriFieldTypeDouble:"esriFieldTypeDouble",esriFieldTypeString:"esriFieldTypeString",esriFieldTypeDate:"esriFieldTypeDate",esriFieldTypeDateOnly:"esriFieldTypeDateOnly",esriFieldTypeTimeOnly:"esriFieldTypeTimeOnly",esriFieldTypeTimestampOffset:"esriFieldTypeTimestampOffset",esriFieldTypeOID:"esriFieldTypeOID",esriFieldTypeGeometry:"esriFieldTypeGeometry",esriFieldTypeBlob:"esriFieldTypeBlob",esriFieldTypeRaster:"esriFieldTypeRaster",esriFieldTypeGUID:"esriFieldTypeGUID",esriFieldTypeGlobalID:"esriFieldTypeGlobalID",esriFieldTypeXML:"esriFieldTypeXML",esriFieldTypeBigInteger:"esriFieldTypeBigInteger"};function k(e){return void 0===e?"":e=(e=(e=e.replace(/\/featureserver\/[0-9]*/i,"/FeatureServer")).replace(/\/mapserver\/[0-9]*/i,"/MapServer")).split("?")[0]}function T(e,t){t||(t={}),"function"==typeof t&&(t={cmp:t});const n="boolean"==typeof t.cycles&&t.cycles,r=t.cmp&&(i=t.cmp,function(e){return function(t,n){const r={key:t,value:e[t]},a={key:n,value:e[n]};return i(r,a)}});var i;const a=[];return function e(t){if(t?.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0===t)return;if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);let i,o;if(Array.isArray(t)){for(o="[",i=0;i0?(r.x/=i,r.y/=i,t&&(r.z/=i),n&&(r.m/=i)):(r.x=e[0][0],r.y=e[0][1],t&&(r.z=e[0][2]),n&&t?r.m=e[0][3]:n&&(r.m=e[0][2])),r}function d(e,t,n,r){const i={x:(e[0]+t[0])/2,y:(e[1]+t[1])/2};return n&&(i.z=(e[2]+t[2])/2),n&&r?i.m=(e[3]+t[3])/2:r&&(i.m=(e[2]+t[2])/2),i}function h(e,t){if(e.length<=1)return 0;let n=0;for(let r=1;r0?(n.x/=a,n.y/=a,!0===e.hasZ&&(n.z/=a),!0===e.hasM&&(n.m/=a),new i.Z(n)):r>0?(t.x/=r,t.y/=r,!0===e.hasZ&&(n.z/=r),!0===e.hasM&&(t.m/=r),new i.Z(t)):null}function y(e){if(0===e.points.length)return null;let t=0,n=0,r=0,a=0;for(let i=0;i=r;)e-=t;return e}function x(e,t){return Math.atan2(t.y-e.y,t.x-e.x)}function F(e,t){return w(x(e,t),2*Math.PI)*(180/Math.PI)}function C(e,t){return w(Math.PI/2-x(e,t),2*Math.PI)*(180/Math.PI)}function A(e,t,n){const r={x:e.x-t.x,y:e.y-t.y},i={x:n.x-t.x,y:n.y-t.y};return Math.atan2(function(e,t){return e.x*t.y-t.x*e.y}(r,i),function(e,t){return e.x*t.x+e.y*t.y}(r,i))}function b(e,t,n){return(0,r.BV)(w(A(e,t,n),2*Math.PI))}function S(e,t,n){return(0,r.BV)(w(-1*A(e,t,n),2*Math.PI))}l[9002]=.3048,l[9003]=.3048006096012192,l[9095]=.3048007491;const E=[0,0];function v(e){for(let t=0;t1&&(r=1)),r<=.5?[t[0]+(n[0]-t[0])*r,t[1]+(n[1]-t[1])*r]:[n[0]-(n[0]-t[0])*(1-r),n[1]-(n[1]-t[1])*(1-r)]}},56101:function(e,t,n){n.d(t,{r:function(){return g}});var r=n(78053),i=n(7182),a=n(94837),o=n(19980),s=n(62717),u=n(8108),l=n(17126);function c(e,t,n){return e+(function(e){return e%4==0&&(e%100!=0||e%400==0)}(n)?d:f)[t]}const f=[0,31,59,90,120,151,181,212,243,273,304,334],d=[0,31,60,91,121,152,182,213,244,274,305,335];function h(e){return null===e?e:!1===e.isValid?null:e}function m(e,t){return""===e||"default"===e.toLowerCase().trim()?(0,a.N)(t):"z"===e||"Z"===e?"UTC":e}function p(e,t){return(0,a.m)(e)?e.toArcadeDate():(0,a.l)(e,(0,a.N)(t))}function g(e,t){e.today=function(e,n){return t(e,n,((t,i,o)=>{(0,a.H)(o,0,0,e,n);const s=new Date;return s.setHours(0,0,0,0),r.iG.dateJSAndZoneToArcadeDate(s,(0,a.N)(e))}))},e.time=function(e,n){return t(e,n,((t,o,u)=>{switch((0,a.H)(u,0,4,e,n),u.length){case 0:{const t=r.iG.nowToArcadeDate((0,a.N)(e));return new s.n(t.hour,t.minute,t.second,t.millisecond)}case 1:{if((0,a.n)(u[0]))return u[0].clone();if((0,a.k)(u[0]))return new s.n(u[0].hour,u[0].minute,u[0].second,u[0].millisecond);if((0,a.m)(u[0]))return new s.n(0,0,0,0);if((0,a.c)(u[0]))return s.n.fromString(u[0]);const e=(0,a.g)(u[0]);return!1===isNaN(e)?s.n.fromMilliseconds(e):null}case 2:return(0,a.c)(u[0])&&(0,a.c)(u[1])?s.n.fromString(u[0],u[1]):s.n.fromParts((0,a.g)(u[0]),(0,a.g)(u[1]),0,0);case 3:return s.n.fromParts((0,a.g)(u[0]),(0,a.g)(u[1]),(0,a.g)(u[2]),0);case 4:return s.n.fromParts((0,a.g)(u[0]),(0,a.g)(u[1]),(0,a.g)(u[2]),(0,a.g)(u[3]))}throw new i.aV(e,i.rH.InvalidParameter,n)}))},e.dateonly=function(e,n){return t(e,n,((t,i,s)=>{if((0,a.H)(s,0,3,e,n),3===s.length)return o.u.fromParts((0,a.g)(s[0]),(0,a.g)(s[1])+1,(0,a.g)(s[2]));if(2===s.length){const e=(0,a.j)(s[1]);return""===e?null:"X"===e?o.u.fromSeconds((0,a.g)(s[0])):"x"===e?o.u.fromMilliseconds((0,a.g)(s[0])):o.u.fromString((0,a.j)(s[0]),e)}if(1===s.length){if((0,a.c)(s[0])){if(""===s[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(s[0]))return o.u.fromString(s[0]+"-01-01")}if((0,a.m)(s[0]))return s[0].clone();if((0,a.k)(s[0]))return o.u.fromParts(s[0].year,s[0].monthJS+1,s[0].day);const e=(0,a.g)(s[0]);return!1===isNaN(e)?o.u.fromMilliseconds(e):(0,a.c)(s[0])?o.u.fromString(s[0]):null}if(0===s.length){const t=r.iG.nowToArcadeDate((0,a.N)(e));return!1===t.isValid?null:o.u.fromParts(t.year,t.monthJS+1,t.day)}return null}))},e.changetimezone=function(e,n){return t(e,n,((t,o,s)=>{if((0,a.H)(s,2,2,e,n),null===s[0])return null;if((0,a.m)(s[0]))throw new i.aV(e,i.rH.CannotChangeTimeZoneDateOnly,n);if((0,a.m)(s[0]))throw new i.aV(e,i.rH.CannotChangeTimeZoneTime,n);const u=(0,a.l)(s[0],(0,a.N)(e));if(null===u)throw new i.aV(e,i.rH.InvalidParameter,n);const l=(0,r.Qn)(m((0,a.j)(s[1]),e),!1);if(null===l)return null;const c=r.iG.arcadeDateAndZoneToArcadeDate(u,l);return!1===c.isValid?null:c}))},e.timezone=function(e,n){return t(e,n,((t,i,o)=>{if((0,a.H)(o,1,2,e,n),(0,a.n)(o[0]))return"Unknown";if((0,a.m)(o[0]))return"Unknown";const s=(0,a.l)(o[0],(0,a.N)(e));if(null===s)return null;const u=s.timeZone;return"system"===u?r.iG.systemTimeZoneCanonicalName:"utc"===u.toLowerCase()?"UTC":"unknown"===u.toLowerCase()?"Unknown":u}))},e.timezoneoffset=function(e,n){return t(e,n,((t,r,i)=>{(0,a.H)(i,1,1,e,n);const o=(0,a.l)(i[0],(0,a.N)(e));return null===o?null:60*o.timeZoneOffset*1e3}))},e.now=function(e,n){return t(e,n,((t,i,o)=>{(0,a.H)(o,0,0,e,n);const s=r.iG.nowToArcadeDate((0,a.N)(e));return!1===s.isValid?null:s}))},e.timestamp=function(e,n){return t(e,n,((t,i,o)=>{(0,a.H)(o,0,0,e,n);const s=r.iG.nowUTCToArcadeDate();return!1===s.isValid?null:s}))},e.toutc=function(e,n){return t(e,n,((t,r,i)=>{(0,a.H)(i,1,1,e,n);const o=(0,a.l)(i[0],(0,a.N)(e));return null===o?null:o.toUTC()}))},e.tolocal=function(e,n){return t(e,n,((t,r,i)=>{(0,a.H)(i,1,1,e,n);const o=(0,a.l)(i[0],(0,a.N)(e));return null===o?null:o.toLocal()}))},e.day=function(e,n){return t(e,n,((t,r,i)=>{(0,a.H)(i,1,1,e,n);const o=p(i[0],(0,a.N)(e));return null===o?NaN:o.day}))},e.month=function(e,n){return t(e,n,((t,r,i)=>{(0,a.H)(i,1,1,e,n);const o=p(i[0],(0,a.N)(e));return null===o?NaN:o.monthJS}))},e.year=function(e,n){return t(e,n,((t,r,i)=>{(0,a.H)(i,1,1,e,n);const o=p(i[0],(0,a.N)(e));return null===o?NaN:o.year}))},e.hour=function(e,n){return t(e,n,((t,r,i)=>{if((0,a.H)(i,1,1,e,n),(0,a.n)(i[0]))return i[0].hour;const o=(0,a.l)(i[0],(0,a.N)(e));return null===o?NaN:o.hour}))},e.second=function(e,n){return t(e,n,((t,r,i)=>{if((0,a.H)(i,1,1,e,n),(0,a.n)(i[0]))return i[0].second;const o=(0,a.l)(i[0],(0,a.N)(e));return null===o?NaN:o.second}))},e.millisecond=function(e,n){return t(e,n,((t,r,i)=>{if((0,a.H)(i,1,1,e,n),(0,a.n)(i[0]))return i[0].millisecond;const o=(0,a.l)(i[0],(0,a.N)(e));return null===o?NaN:o.millisecond}))},e.minute=function(e,n){return t(e,n,((t,r,i)=>{if((0,a.H)(i,1,1,e,n),(0,a.n)(i[0]))return i[0].minute;const o=(0,a.l)(i[0],(0,a.N)(e));return null===o?NaN:o.minute}))},e.week=function(e,n){return t(e,n,((t,r,o)=>{(0,a.H)(o,1,2,e,n);const s=p(o[0],(0,a.N)(e));if(null===s)return NaN;const u=(0,a.g)((0,a.K)(o[1],0));if(u<0||u>6)throw new i.aV(e,i.rH.InvalidParameter,n);const l=s.day,f=s.monthJS,d=s.year,h=s.dayOfWeekJS,m=c(l,f,d)-1,g=Math.floor(m/7);return h-u+(h-u<0?7:0){(0,a.H)(i,1,1,e,n);const o=p(i[0],(0,a.N)(e));return null===o?NaN:o.dayOfWeekJS}))},e.isoweekday=function(e,n){return t(e,n,((t,r,i)=>{(0,a.H)(i,1,1,e,n);const o=p(i[0],(0,a.N)(e));return null===o?NaN:o.dayOfWeekISO}))},e.isomonth=function(e,n){return t(e,n,((t,r,i)=>{(0,a.H)(i,1,1,e,n);const o=p(i[0],(0,a.N)(e));return null===o?NaN:o.monthISO}))},e.isoweek=function(e,n){return t(e,n,((t,r,i)=>{(0,a.H)(i,1,1,e,n);const o=p(i[0],(0,a.N)(e));return null===o?NaN:o.weekISO}))},e.isoyear=function(e,n){return t(e,n,((t,r,i)=>{(0,a.H)(i,1,1,e,n);const o=p(i[0],(0,a.N)(e));return null===o?NaN:o.yearISO}))},e.date=function(e,n){return t(e,n,((t,i,o)=>{if((0,a.H)(o,0,8,e,n),3===o.length){if((0,a.m)(o[0])&&(0,a.n)(o[1])&&(0,a.c)(o[2])){const t=(0,r.Qn)(m((0,a.j)(o[2])??"unknown",e),!1);return null===t?null:h(r.iG.fromParts(o[0].year,o[0].month,o[0].day,o[1].hour,o[1].minute,o[1].second,o[1].millisecond,t))}return h(r.iG.fromParts((0,a.g)(o[0]),(0,a.g)(o[1])+1,(0,a.g)(o[2]),0,0,0,0,(0,a.N)(e)))}if(4===o.length)return h(r.iG.fromParts((0,a.g)(o[0]),(0,a.g)(o[1])+1,(0,a.g)(o[2]),(0,a.g)(o[3]),0,0,0,(0,a.N)(e)));if(5===o.length)return h(r.iG.fromParts((0,a.g)(o[0]),(0,a.g)(o[1])+1,(0,a.g)(o[2]),(0,a.g)(o[3]),(0,a.g)(o[4]),0,0,(0,a.N)(e)));if(6===o.length)return h(r.iG.fromParts((0,a.g)(o[0]),(0,a.g)(o[1])+1,(0,a.g)(o[2]),(0,a.g)(o[3]),(0,a.g)(o[4]),(0,a.g)(o[5]),0,(0,a.N)(e)));if(7===o.length)return h(r.iG.fromParts((0,a.g)(o[0]),(0,a.g)(o[1])+1,(0,a.g)(o[2]),(0,a.g)(o[3]),(0,a.g)(o[4]),(0,a.g)(o[5]),(0,a.g)(o[6]),(0,a.N)(e)));if(8===o.length){const t=(0,r.Qn)(m((0,a.j)(o[7])??"unknown",e),!1);return null===t?null:h(r.iG.fromParts((0,a.g)(o[0]),(0,a.g)(o[1])+1,(0,a.g)(o[2]),(0,a.g)(o[3]),(0,a.g)(o[4]),(0,a.g)(o[5]),(0,a.g)(o[6]),t))}if(2===o.length){if((0,a.m)(o[0])&&(0,a.c)(o[1])){const t=(0,r.Qn)(m((0,a.j)(o[1])??"unknown",e),!1);return null===t?null:h(r.iG.fromParts(o[0].year,o[0].month,o[0].day,0,0,0,0,t))}if((0,a.m)(o[0])&&(0,a.n)(o[1]))return h(r.iG.fromParts(o[0].year,o[0].month,o[0].day,o[1].hour,o[1].minute,o[1].second,o[1].millisecond,"unknown"));let t,n=(0,a.j)(o[1]);return""===n?null:(n=(0,a.Q)(n,!0),t="X"===n?l.ou.fromSeconds((0,a.g)(o[0])):"x"===n?l.ou.fromMillis((0,a.g)(o[0])):l.ou.fromFormat((0,a.j)(o[0]),n,{locale:(0,u.Kd)(),numberingSystem:"latn"}),t.isValid?r.iG.dateTimeToArcadeDate(t):null)}if(1===o.length){if((0,a.m)(o[0]))return h(r.iG.fromParts(o[0].year,o[0].month,o[0].day,0,0,0,0,"unknown"));if((0,a.c)(o[0])){if(""===o[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(o[0]))return(0,a.l)(o[0]+"-01-01",(0,a.N)(e))}const t=(0,a.g)(o[0]);if(!1===isNaN(t)){const n=l.ou.fromMillis(t);return n.isValid?r.iG.dateTimeAndZoneToArcadeDate(n,(0,a.N)(e)):null}return(0,a.l)(o[0],(0,a.N)(e))}return 0===o.length?r.iG.nowToArcadeDate((0,a.N)(e)):null}))},e.datediff=function(e,n){return t(e,n,((t,i,o)=>{if((0,a.H)(o,2,4,e,n),(0,a.n)(o[0]))return(0,a.n)(o[1])?o[0].difference(o[1],(0,a.j)(o[2])):NaN;if((0,a.n)(o[1]))return NaN;if((0,a.m)(o[0]))return(0,a.m)(o[1])?o[0].difference(o[1],(0,a.j)(o[2])):NaN;if((0,a.m)(o[1]))return NaN;let s=(0,a.l)(o[0],(0,a.N)(e)),u=(0,a.l)(o[1],(0,a.N)(e));if(null===s||null===u)return NaN;let l=(0,a.K)(o[3],"");switch(""!==l&&null!==l?(l=m((0,a.j)(l),e),s=r.iG.arcadeDateAndZoneToArcadeDate(s,l),u=r.iG.arcadeDateAndZoneToArcadeDate(u,l)):s.timeZone!==u.timeZone&&(s.isUnknownTimeZone?s=r.iG.arcadeDateAndZoneToArcadeDate(s,u.timeZone):(u.isUnknownTimeZone,u=r.iG.arcadeDateAndZoneToArcadeDate(u,s.timeZone))),(0,a.j)(o[2]).toLowerCase()){case"days":case"day":case"d":return s.diff(u,"days");case"months":case"month":return s.diff(u,"months");case"minutes":case"minute":case"m":return"M"===o[2]?s.diff(u,"months"):s.diff(u,"minutes");case"seconds":case"second":case"s":return s.diff(u,"seconds");case"milliseconds":case"millisecond":case"ms":default:return s.diff(u);case"hours":case"hour":case"h":return s.diff(u,"hours");case"years":case"year":case"y":return s.diff(u,"years")}}))},e.dateadd=function(e,n){return t(e,n,((t,r,i)=>{(0,a.H)(i,2,3,e,n);let o=(0,a.g)(i[1]);if(isNaN(o)||o===1/0||o===-1/0)return(0,a.n)(i[0])||(0,a.m)(i[0])?i[0].clone():(0,a.l)(i[0],(0,a.N)(e));let s="milliseconds";switch((0,a.j)(i[2]).toLowerCase()){case"days":case"day":case"d":s="days",o=(0,a.m)(i[0])?o:(0,a.R)(o);break;case"months":case"month":s="months",o=(0,a.m)(i[0])?o:(0,a.R)(o);break;case"minutes":case"minute":case"m":s="M"===i[2]?"months":"minutes";break;case"seconds":case"second":case"s":s="seconds";break;case"milliseconds":case"millisecond":case"ms":s="milliseconds";break;case"hours":case"hour":case"h":s="hours";break;case"years":case"year":case"y":s="years"}if((0,a.n)(i[0]))return i[0].plus(s,o);if((0,a.m)(i[0]))return i[0].plus(s,o);const u=(0,a.l)(i[0],(0,a.N)(e));return null===u?null:u.plus({[s]:o})}))}}},45573:function(e,t,n){n.d(t,{t:function(){return o}});var r=n(94837);function i(e){let t=0;for(let n=0;n=t&&-1!==t)return n}return n}(t,n);case"avg":case"mean":return i((0,r.$)(t));case"min":return Math.min.apply(Math,(0,r.$)(t));case"sum":return function(e){let t=0;for(let n=0;n{(0,u.H)(a,1,1,e,n);let o=[];if(null===a[0])return!1;if((0,u.o)(a[0]))for(const t of a[0]){if(!(t instanceof h.Z))throw new i.aV(e,i.rH.InvalidParameter,n);o.push(t.hasZ?t.hasM?[t.x,t.y,t.z,t.m]:[t.x,t.y,t.z]:[t.x,t.y])}else if(a[0]instanceof s.Z)o=a[0]._elements;else{if(!(0,u.q)(a[0]))throw new i.aV(e,i.rH.InvalidParameter,n);for(const t of a[0].toArray()){if(!(t instanceof h.Z))throw new i.aV(e,i.rH.InvalidParameter,n);o.push(t.hasZ?t.hasM?[t.x,t.y,t.z,t.m]:[t.x,t.y,t.z]:[t.x,t.y])}}return!(o.length<3)&&(0,g.bu)(o)}))},e.polygon=function(e,n){return t(e,n,((t,o,s)=>{(0,u.H)(s,1,1,e,n);let l=null;if(s[0]instanceof r.Z){if(l=(0,u.x)(a.Z.parseGeometryFromDictionary(s[0],e.spatialReference),e.spatialReference),l instanceof m.Z==0)throw new i.aV(e,i.rH.InvalidParameter,n)}else if(s[0]instanceof m.Z)l=(0,D.im)(s[0].toJSON());else{const t=JSON.parse(s[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),l=(0,u.x)(new m.Z(t),e.spatialReference)}if(null!==l&&!1===l.spatialReference.equals(e.spatialReference))throw new i.aV(e,i.rH.WrongSpatialReference,n);return(0,u.S)(l)}))},e.polyline=function(e,n){return t(e,n,((t,o,s)=>{(0,u.H)(s,1,1,e,n);let l=null;if(s[0]instanceof r.Z){if(l=(0,u.x)(a.Z.parseGeometryFromDictionary(s[0],e.spatialReference),e.spatialReference),l instanceof p.Z==0)throw new i.aV(e,i.rH.InvalidParameter,n)}else if(s[0]instanceof p.Z)l=(0,D.im)(s[0].toJSON());else{const t=JSON.parse(s[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),l=(0,u.x)(new p.Z(t),e.spatialReference)}if(null!==l&&!1===l.spatialReference.equals(e.spatialReference))throw new i.aV(e,i.rH.WrongSpatialReference,n);return(0,u.S)(l)}))},e.point=function(e,n){return t(e,n,((t,o,s)=>{(0,u.H)(s,1,1,e,n);let l=null;if(s[0]instanceof r.Z){if(l=(0,u.x)(a.Z.parseGeometryFromDictionary(s[0],e.spatialReference),e.spatialReference),l instanceof h.Z==0)throw new i.aV(e,i.rH.InvalidParameter,n)}else if(s[0]instanceof h.Z)l=(0,D.im)(s[0].toJSON());else{const t=JSON.parse(s[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),l=(0,u.x)(new h.Z(t),e.spatialReference)}if(null!==l&&!1===l.spatialReference.equals(e.spatialReference))throw new i.aV(e,i.rH.WrongSpatialReference,n);return(0,u.S)(l)}))},e.multipoint=function(e,n){return t(e,n,((t,o,s)=>{(0,u.H)(s,1,1,e,n);let l=null;if(s[0]instanceof r.Z){if(l=(0,u.x)(a.Z.parseGeometryFromDictionary(s[0],e.spatialReference),e.spatialReference),l instanceof d.Z==0)throw new i.aV(e,i.rH.InvalidParameter,n)}else if(s[0]instanceof d.Z)l=(0,D.im)(s[0].toJSON());else{const t=JSON.parse(s[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),l=(0,u.x)(new d.Z(t),e.spatialReference)}if(null!==l&&!1===l.spatialReference.equals(e.spatialReference))throw new i.aV(e,i.rH.WrongSpatialReference,n);return(0,u.S)(l)}))},e.extent=function(e,n){return t(e,n,((t,o,s)=>{s=(0,u.I)(s),(0,u.H)(s,1,1,e,n);let l=null;if(s[0]instanceof r.Z)l=(0,u.x)(a.Z.parseGeometryFromDictionary(s[0],e.spatialReference),e.spatialReference);else if(s[0]instanceof h.Z){const e={xmin:s[0].x,ymin:s[0].y,xmax:s[0].x,ymax:s[0].y,spatialReference:s[0].spatialReference.toJSON()},t=s[0];t.hasZ?(e.zmin=t.z,e.zmax=t.z):t.hasM&&(e.mmin=t.m,e.mmax=t.m),l=(0,D.im)(e)}else if(s[0]instanceof m.Z)l=(0,D.im)(s[0].extent?.toJSON());else if(s[0]instanceof p.Z)l=(0,D.im)(s[0].extent?.toJSON());else if(s[0]instanceof d.Z)l=(0,D.im)(s[0].extent?.toJSON());else if(s[0]instanceof c.Z)l=(0,D.im)(s[0].toJSON());else{const t=JSON.parse(s[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),l=(0,u.x)(new c.Z(t),e.spatialReference)}if(null!==l&&!1===l.spatialReference.equals(e.spatialReference))throw new i.aV(e,i.rH.WrongSpatialReference,n);return(0,u.S)(l)}))},e.geometry=function(e,n){return t(e,n,((t,o,s)=>{(0,u.H)(s,1,1,e,n);let l=null;if(null===s[0])return null;if(y(s[0]))l=(0,u.x)(s[0].geometry(),e.spatialReference);else if(s[0]instanceof r.Z)l=(0,u.x)(a.Z.parseGeometryFromDictionary(s[0],e.spatialReference),e.spatialReference);else{const t=JSON.parse(s[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),l=(0,u.x)((0,D.im)(t),e.spatialReference)}if(null!==l&&!1===l.spatialReference.equals(e.spatialReference))throw new i.aV(e,i.rH.WrongSpatialReference,n);return(0,u.S)(l)}))},e.setgeometry=function(e,n){return t(e,n,((t,r,a)=>{if((0,u.H)(a,2,2,e,n),!y(a[0]))throw new i.aV(e,i.rH.InvalidParameter,n);if(!0===a[0].immutable)throw new i.aV(e,i.rH.Immutable,n);if(!(a[1]instanceof f.Z||null===a[1]))throw new i.aV(e,i.rH.InvalidParameter,n);return a[0]._geometry=a[1],u.B}))},e.feature=function(e,n){return t(e,n,((t,o,s)=>{if(0===s.length)throw new i.aV(e,i.rH.WrongNumberOfParameters,n);let l=null;if(1===s.length)if((0,u.c)(s[0]))l=a.Z.fromJson(JSON.parse(s[0]),e.timeZone);else if(y(s[0]))l=a.Z.createFromArcadeFeature(s[0]);else if(s[0]instanceof f.Z)l=a.Z.createFromGraphicLikeObject(s[0],null,null,e.timeZone);else{if(!(s[0]instanceof r.Z))throw new i.aV(e,i.rH.InvalidParameter,n);{let t=s[0].hasField("geometry")?s[0].field("geometry"):null,n=s[0].hasField("attributes")?s[0].field("attributes"):null;null!==t&&t instanceof r.Z&&(t=a.Z.parseGeometryFromDictionary(t,e.spatialReference)),null!==n&&(n=a.Z.parseAttributesFromDictionary(n)),l=a.Z.createFromGraphicLikeObject(t,n,null,e.timeZone)}}else if(2===s.length){let t=null,o=null;if(null!==s[0])if(s[0]instanceof f.Z)t=s[0];else{if(!(t instanceof r.Z))throw new i.aV(e,i.rH.InvalidParameter,n);t=a.Z.parseGeometryFromDictionary(s[0],e.spatialReference)}if(null!==s[1]){if(!(s[1]instanceof r.Z))throw new i.aV(e,i.rH.InvalidParameter,n);o=a.Z.parseAttributesFromDictionary(s[1])}l=a.Z.createFromGraphicLikeObject(t,o,null,e.timeZone)}else{let t=null;const o={};if(null!==s[0])if(s[0]instanceof f.Z)t=s[0];else{if(!(t instanceof r.Z))throw new i.aV(e,i.rH.InvalidParameter,n);t=a.Z.parseGeometryFromDictionary(s[0],e.spatialReference)}for(let t=1;t{if(0===o.length||1===o.length&&null===o[0]){const e=new r.Z;return e.immutable=!1,e}if(1===o.length&&(0,u.c)(o[0]))try{const t=JSON.parse(o[0]),n=r.Z.convertObjectToArcadeDictionary(t,(0,u.N)(e),!1);return n.immutable=!1,n}catch(t){throw new i.aV(e,i.rH.InvalidParameter,n)}if(1===o.length&&o[0]instanceof f.Z)try{const t=o[0].toJSON();t.hasZ=!0===o[0].hasZ,t.hasM=!0===o[0].hasM;const n=r.Z.convertObjectToArcadeDictionary(t,(0,u.N)(e),!1);return n.immutable=!1,n}catch(t){throw new i.aV(e,i.rH.InvalidParameter,n)}if(1===o.length&&(0,u.r)(o[0]))try{const e=new r.Z;e.immutable=!1,e.setField("geometry",o[0].geometry());const t=new r.Z;t.immutable=!1,e.setField("attributes",t);for(const e of o[0].keys())t.setField(e,o[0].field(e));return e}catch(t){throw new i.aV(e,i.rH.InvalidParameter,n)}if(1===o.length&&o[0]instanceof r.Z)try{const e=new r.Z;e.immutable=!1;for(const t of o[0].keys())e.setField(t,o[0].field(t));return e}catch(t){throw new i.aV(e,i.rH.InvalidParameter,n)}if(2===o.length&&o[0]instanceof r.Z&&(0,u.a)(o[1]))try{if(!0!==o[1]){const e=new r.Z;e.immutable=!1;for(const t of o[0].keys())e.setField(t,o[0].field(t));return e}return o[0].deepClone()}catch(t){throw new i.aV(e,i.rH.InvalidParameter,n)}if(o.length%2!=0)throw new i.aV(e,i.rH.WrongNumberOfParameters,n);const s={};for(let t=0;t{(0,u.H)(o,2,2,e,n);const s=(0,u.j)(o[1]);if(y(o[0]))return o[0].hasField(s);if(o[0]instanceof r.Z)return o[0].hasField(s);if(o[0]instanceof f.Z){const e=F(o[0],s,null,null,2);return!e||"notfound"!==e.keystate}throw new i.aV(e,i.rH.InvalidParameter,n)}))},e.hasvalue=function(e,n){return t(e,n,((t,a,o)=>{if((0,u.H)(o,2,2,e,n),(0,u.o)(o[1])||(0,u.q)(o[1])){const t=o[1];let a=[];if((0,u.q)(t))a=t.toArray();else{if(!(0,u.o)(t))throw new i.aV(e,i.rH.InvalidParameter,n);a=t}let s=o[0];if(null===s)return!1;for(const e of a)if((0,u.r)(s)){if(!1===(0,u.c)(e))return!1;if(!s.hasField(e))return!1;if(s=s.field(e),null===s)return!1}else if(s instanceof r.Z){if(!1===(0,u.c)(e))return!1;if(!s.hasField(e))return!1;if(s=s.field(e),null===s)return!1}else if(s instanceof f.Z){if(!1===(0,u.c)(e))return!1;if(s=F(s,e,null,null,0),null===s)return!1}else if((0,u.o)(s)){if(!1===(0,u.b)(e))return!1;if(s=s[e],null==s)return!1}else{if(!(0,u.q)(s))return!1;if(!1===(0,u.b)(e))return!1;if(s=s.get(e),null==s)return!1}return!0}if(null===o[0]||null===o[1])return!1;const s=(0,u.j)(o[1]);return(0,u.r)(o[0])||o[0]instanceof r.Z?!!o[0].hasField(s)&&null!==o[0].field(s):o[0]instanceof f.Z&&null!==F(o[0],s,null,null,0)}))},e.indexof=function(e,n){return t(e,n,((t,r,a)=>{(0,u.H)(a,2,2,e,n);const o=a[1];if((0,u.o)(a[0])){for(let e=0;e{if(a=(0,u.I)(a),(0,u.H)(a,2,3,e,n),!(a[0]instanceof h.Z))throw new i.aV(e,i.rH.InvalidParameter,n);if(!(a[1]instanceof h.Z))throw new i.aV(e,i.rH.InvalidParameter,n);if(a.length>2&&!(a[2]instanceof h.Z))throw new i.aV(e,i.rH.InvalidParameter,n);return 2===a.length?(0,l.RI)(a[0],a[1]):(0,l.ws)(a[0],a[1],a[2])}))},e.bearing=function(e,n){return t(e,n,((t,r,a)=>{if(a=(0,u.I)(a),(0,u.H)(a,2,3,e,n),!(a[0]instanceof h.Z))throw new i.aV(e,i.rH.InvalidParameter,n);if(!(a[1]instanceof h.Z))throw new i.aV(e,i.rH.InvalidParameter,n);if(a.length>2&&!(a[2]instanceof h.Z))throw new i.aV(e,i.rH.InvalidParameter,n);return 2===a.length?(0,l.B9)(a[0],a[1]):(0,l.Es)(a[0],a[1],a[2])}))},e.isselfintersecting=function(e,n){return t(e,n,((t,r,i)=>{i=(0,u.I)(i),(0,u.H)(i,1,1,e,n);let a=i[0];if(a instanceof m.Z)return a.isSelfIntersecting;if(a instanceof p.Z)return a=a.paths,(0,l.nB)(a);if(a instanceof d.Z){const e=a.points;for(let t=0;tn?NaN:in?n:i}e.number=function(e,n){return t(e,n,((t,a,o)=>{(0,r.H)(o,1,2,e,n);const s=o[0];if((0,r.b)(s))return s;if(null===s)return 0;if((0,r.k)(s)||(0,r.n)(s)||(0,r.m)(s))return s.toNumber();if((0,r.a)(s))return Number(s);if((0,r.o)(s))return NaN;if(""===s)return Number(s);if(void 0===s)return Number(s);if((0,r.c)(s)){if(void 0!==o[1]){let e=(0,r.T)(o[1],"‰","");return e=(0,r.T)(e,"¤",""),(0,i.Qc)(s,{pattern:e})}return Number(s.trim())}return Number(s)}))},e.abs=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,1,1,e,n),Math.abs((0,r.g)(a[0])))))},e.acos=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,1,1,e,n),Math.acos((0,r.g)(a[0])))))},e.asin=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,1,1,e,n),Math.asin((0,r.g)(a[0])))))},e.atan=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,1,1,e,n),Math.atan((0,r.g)(a[0])))))},e.atan2=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,2,2,e,n),Math.atan2((0,r.g)(a[0]),(0,r.g)(a[1])))))},e.ceil=function(e,n){return t(e,n,((t,i,o)=>{if((0,r.H)(o,1,2,e,n),2===o.length){let e=(0,r.g)(o[1]);return isNaN(e)&&(e=0),a("ceil",(0,r.g)(o[0]),-1*e)}return Math.ceil((0,r.g)(o[0]))}))},e.round=function(e,n){return t(e,n,((t,i,o)=>{if((0,r.H)(o,1,2,e,n),2===o.length){let e=(0,r.g)(o[1]);return isNaN(e)&&(e=0),a("round",(0,r.g)(o[0]),-1*e)}return Math.round((0,r.g)(o[0]))}))},e.floor=function(e,n){return t(e,n,((t,i,o)=>{if((0,r.H)(o,1,2,e,n),2===o.length){let e=(0,r.g)(o[1]);return isNaN(e)&&(e=0),a("floor",(0,r.g)(o[0]),-1*e)}return Math.floor((0,r.g)(o[0]))}))},e.cos=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,1,1,e,n),Math.cos((0,r.g)(a[0])))))},e.isnan=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,1,1,e,n),"number"==typeof a[0]&&isNaN(a[0]))))},e.exp=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,1,1,e,n),Math.exp((0,r.g)(a[0])))))},e.log=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,1,1,e,n),Math.log((0,r.g)(a[0])))))},e.pow=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,2,2,e,n),(0,r.g)(a[0])**(0,r.g)(a[1]))))},e.random=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,0,0,e,n),Math.random())))},e.sin=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,1,1,e,n),Math.sin((0,r.g)(a[0])))))},e.sqrt=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,1,1,e,n),Math.sqrt((0,r.g)(a[0])))))},e.tan=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,1,1,e,n),Math.tan((0,r.g)(a[0])))))},e.isempty=function(e,n){return t(e,n,((t,i,a)=>((0,r.H)(a,1,1,e,n),null===a[0]||""===a[0]||void 0===a[0]||a[0]===r.B)))},e.boolean=function(e,n){return t(e,n,((t,i,a)=>{(0,r.H)(a,1,1,e,n);const o=a[0];return(0,r.h)(o)}))},e.constrain=function(e,i){return t(e,i,((t,a,o)=>{(0,r.H)(o,3,3,e,i);const s=(0,r.g)(o[1]),u=(0,r.g)(o[2]);if((0,r.o)(o[0])){const e=[];for(const t of o[0])e.push(n(t,s,u));return e}if((0,r.q)(o[0])){const e=[];for(let t=0;t0&&r[0][h]===t)return{partId:u,distanceAlong:c,coordinate:new a.Z({hasZ:e.hasZ,hasM:e.hasM,spatialReference:e.spatialReference,x:r[0][0],y:r[0][1],...e.hasZ?{z:r[0][2]}:{},...e.hasM?{m:r[0][h]}:{}}),segmentId:0};let n=-1;for(let i=1;it&&t>r[i-1][h]){const p=(t-r[i-1][h])/m*s;let g=e.hasZ?l(r[i-1],r[i],p,o):f(r[i-1],r[i],p);g=[...g,t];const D=new a.Z({hasZ:e.hasZ,hasM:e.hasM,spatialReference:e.spatialReference,x:g[0],y:g[1],...e.hasZ?{z:g[2]}:{},...e.hasM?{m:g[h]}:{}});return{partId:u,distanceAlong:c+d(r[i-1],[D.x,D.y,...D.hasZ?[D.z]:[],...D.hasM?[D.m]:[]],o),coordinate:D,segmentId:n}}c+=s}}return null}function h(e,t){if(!e)return null;switch(e.type){case"extent":case"multipoint":case"mesh":case"point":return null}const n="polygon"===e.type?e.rings:e.paths;if(t<0)return null;let o=1;(e.spatialReference.vcsWkid||e.spatialReference.latestVcsWkid)&&(o=(0,r._R)(e.spatialReference)/(0,i.c9)(e.spatialReference));let u=0;const d=e.hasZ?3:2,h=e.hasZ?r.AW:s;let m=-1;if(0===t)return 0===n.length||0===n[0].length?null:{partId:0,coordinate:new a.Z({hasZ:e.hasZ,hasM:e.hasM,spatialReference:e.spatialReference,x:n[0][0][0],y:n[0][0][1],...e.hasZ?{z:n[0][0][2]}:{},...e.hasM?{m:n[0][0][d]}:{}}),segmentId:0};for(const r of n){m++;let n=-1;for(let i=1;it){let h=e.hasZ?l(r[i-1],r[i],t-u,o):f(r[i-1],r[i],t-u);return h=[...h,c(r[i-1][d],r[i][d],s,t-u)],{partId:m,coordinate:new a.Z({hasZ:e.hasZ,hasM:e.hasM,spatialReference:e.spatialReference,x:h[0],y:h[1],...e.hasZ?{z:h[2]}:{},...e.hasM?{m:h[d]}:{}}),segmentId:n}}u=p}}return null}function m(e,t){if(!e)return null;if(!t)return null;if("extent"===e.type){const t=e;e=new o.Z({spatialReference:e.spatialReference,rings:[[[t.xmin,t.ymin],[t.xmin,t.ymax],[t.xmax,t.ymax],[t.xmax,t.ymin],[t.xmin,t.ymin]]]})}switch(e.type){case"point":return function(e,t){if(!e)return null;if(!t)return null;let n=1;(t.spatialReference.vcsWkid||t.spatialReference.latestVcsWkid)&&(n=(0,r._R)(t.spatialReference)/(0,i.c9)(t.spatialReference));let a=null,o=0;return a=e,o=e.hasZ&&t.hasZ?(0,r.AW)([t.x,t.y,t.z],[e.x,e.y,e.z],n):(0,r.pl)([t.x,t.y],[e.x,e.y],!1),{coordinate:a,distance:o}}(e,t)??null;case"multipoint":return function(e,t){if(!e)return null;if(!t)return null;let n=1;(t.spatialReference.vcsWkid||t.spatialReference.latestVcsWkid)&&(n=(0,r._R)(t.spatialReference)/(0,i.c9)(t.spatialReference));let a=null,o=0,s=Number.MAX_VALUE,u=-1,l=-1;for(const i of e.points||[]){l++;const a=e.hasZ&&t.hasZ?(0,r.O7)([i[0],i[1],i[2]],[t.x,t.y,t.z],n):(0,r.jh)([i[0],i[1]],[t.x,t.y],!1);ao("stdev",0,0,n)))},e.variance=function(e,n){return t(e,n,((e,t,n)=>o("variance",0,0,n)))},e.average=function(e,n){return t(e,n,((e,t,n)=>o("mean",0,0,n)))},e.mean=function(e,n){return t(e,n,((e,t,n)=>o("mean",0,0,n)))},e.sum=function(e,n){return t(e,n,((e,t,n)=>o("sum",0,0,n)))},e.min=function(e,n){return t(e,n,((e,t,n)=>o("min",0,0,n)))},e.max=function(e,n){return t(e,n,((e,t,n)=>o("max",0,0,n)))},e.distinct=function(e,n){return t(e,n,((e,t,n)=>o("distinct",0,0,n)))},e.count=function(e,n){return t(e,n,((t,a,o)=>{if((0,i.H)(o,1,1,e,n),(0,i.o)(o[0])||(0,i.c)(o[0]))return o[0].length;if((0,i.q)(o[0]))return o[0].length();throw new r.aV(e,r.rH.InvalidParameter,n)}))}}},36054:function(e,t,n){n.d(t,{r:function(){return xe}});var r=n(58780),i=n(56088),a=n(19249),o=n(7182),s=n(94837),u=n(68673),l=n(61681);const c=e=>(t,n,r)=>(r=r||14,+e(t,n).toFixed(r)),f=(e,t)=>e+t,d=(e,t)=>e*t,h=(e,t)=>e/t,m=(e,t,n)=>c(f)(e,t,n),p=(e,t,n)=>c(d)(e,t,n),g=(e,t,n)=>c(h)(e,t,n),D=360,y=400,w=2*Math.PI,x=3600,F=60,C=60,A=180*x/Math.PI,b=D*F*C,S=90*x,E=180*x,v=270*x,I=String.fromCharCode(7501),k="°";function T(e){if(!1===(0,s.c)(e))throw new o.aV(null,o.rH.InvalidParameter,null);return e}function N(e,t){const n=10**t;return Math.round(e*n)/n}function B(e){const t=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);return e<0?{fraction:t,integer:Math.ceil(e)}:{fraction:t,integer:Math.floor(e)}}var H,_,M,Z;function V(e,t){switch(e){case H.north:return"SHORT"===t?"N":"North";case H.east:return"SHORT"===t?"E":"East";case H.south:return"SHORT"===t?"S":"South";case H.west:return"SHORT"===t?"W":"West"}}function L(e,t){return e-Math.floor(e/t)*t}function O(e){switch(e){case _.truncated_degrees:case _.decimal_degrees:return D;case _.radians:return w;case _.gradians:return y;case _.seconds:return b;case _.fractional_degree_minutes:return F;case _.fractional_minute_seconds:return C;default:throw new o.aV(null,o.rH.LogicError,null,{reason:"unsupported evaluations"})}}function R(e){switch(e.toUpperCase().trim()){case"NORTH":case"NORTHAZIMUTH":case"NORTH AZIMUTH":return M.north_azimuth;case"POLAR":return M.polar;case"QUADRANT":return M.quadrant;case"SOUTH":case"SOUTHAZIMUTH":case"SOUTH AZIMUTH":return M.south_azimuth}throw new o.aV(null,o.rH.LogicError,null,{reason:"unsupported directionType"})}function P(e){switch(e.toUpperCase().trim()){case"D":case"DD":case"DECIMALDEGREE":case"DECIMAL DEGREE":case"DEGREE":case"DECIMALDEGREES":case"DECIMAL DEGREES":case"DEGREES":return _.decimal_degrees;case"DMS":case"DEGREESMINUTESSECONDS":case"DEGREES MINUTES SECONDS":return _.degrees_minutes_seconds;case"R":case"RAD":case"RADS":case"RADIAN":case"RADIANS":return _.radians;case"G":case"GON":case"GONS":case"GRAD":case"GRADS":case"GRADIAN":case"GRADIANS":return _.gradians}throw new o.aV(null,o.rH.LogicError,null,{reason:"unsupported units"})}!function(e){e[e.north=0]="north",e[e.east=1]="east",e[e.south=2]="south",e[e.west=3]="west"}(H||(H={})),function(e){e[e.decimal_degrees=1]="decimal_degrees",e[e.seconds=2]="seconds",e[e.degrees_minutes_seconds=3]="degrees_minutes_seconds",e[e.radians=4]="radians",e[e.gradians=5]="gradians",e[e.truncated_degrees=6]="truncated_degrees",e[e.fractional_degree_minutes=7]="fractional_degree_minutes",e[e.fractional_minute_seconds=8]="fractional_minute_seconds"}(_||(_={})),function(e){e[e.north_azimuth=1]="north_azimuth",e[e.polar=2]="polar",e[e.quadrant=3]="quadrant",e[e.south_azimuth=4]="south_azimuth"}(M||(M={})),function(e){e[e.meridian=0]="meridian",e[e.direction=1]="direction"}(Z||(Z={}));class U{constructor(e,t,n){this.m_degrees=e,this.m_minutes=t,this.m_seconds=n}getField(e){switch(e){case _.decimal_degrees:case _.truncated_degrees:return this.m_degrees;case _.fractional_degree_minutes:return this.m_minutes;case _.seconds:case _.fractional_minute_seconds:return this.m_seconds;default:throw new o.aV(null,o.rH.LogicError,null,{reason:"unexpected evaluation"})}}static secondsToDMS(e){const t=B(e).fraction;let n=B(e).integer;const r=Math.floor(n/x);n-=r*x;const i=Math.floor(n/C);return n-=i*C,new U(r,i,n+t)}static numberToDms(e){const t=B(e).fraction,n=B(e).integer,r=p(B(100*t).fraction,100),i=B(100*t).integer;return new U(n,i,r)}format(e,t){let n=N(this.m_seconds,t),r=this.m_minutes,i=this.m_degrees;if(e===_.seconds||e===_.fractional_minute_seconds)C<=n&&(n-=C,++r),F<=r&&(r=0,++i),D<=i&&(i=0);else if(e===_.fractional_degree_minutes)n=0,r=30<=this.m_seconds?this.m_minutes+1:this.m_minutes,i=this.m_degrees,F<=r&&(r=0,++i),D<=i&&(i=0);else if(e===_.decimal_degrees||e===_.truncated_degrees){const e=g(this.m_seconds,x),t=g(this.m_minutes,F);i=Math.round(this.m_degrees+t+e),r=0,n=0}return new U(i,r,n)}static dmsToSeconds(e,t,n){return e*x+t*C+n}}class z{constructor(e,t,n){this.meridian=e,this.angle=t,this.direction=n}fetchAzimuth(e){return e===Z.meridian?this.meridian:this.direction}}class G{constructor(e){this._angle=e}static createFromAngleAndDirection(e,t){return new G(new q(G._convertDirectionFormat(e.extractAngularUnits(_.seconds),t,M.north_azimuth)))}getAngle(e){const t=this._angle.extractAngularUnits(_.seconds);switch(e){case M.north_azimuth:case M.south_azimuth:case M.polar:return new q(G._convertDirectionFormat(t,M.north_azimuth,e));case M.quadrant:{const e=G.secondsNorthAzimuthToQuadrant(t);return new q(e.angle)}}}getMeridian(e){const t=this._angle.extractAngularUnits(_.seconds);switch(e){case M.north_azimuth:return H.north;case M.south_azimuth:return H.south;case M.polar:return H.east;case M.quadrant:return G.secondsNorthAzimuthToQuadrant(t).meridian}}getDirection(e){const t=this._angle.extractAngularUnits(_.seconds);switch(e){case M.north_azimuth:return H.east;case M.south_azimuth:return H.west;case M.polar:return H.north;case M.quadrant:return G.secondsNorthAzimuthToQuadrant(t).direction}}static secondsNorthAzimuthToQuadrant(e){const t=e<=S||e>=v?H.north:H.south,n=t===H.north?Math.min(b-e,e):Math.abs(e-E),r=e>E?H.west:H.east;return new z(t,n,r)}static createFromAngleMeridianAndDirection(e,t,n){return new G(new q(G.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(_.seconds),t,n)))}static secondsQuadrantToNorthAzimuth(e,t,n){return t===H.north?n===H.east?e:b-e:n===H.east?E-e:E+e}static _convertDirectionFormat(e,t,n){let r=0;switch(t){case M.north_azimuth:r=e;break;case M.polar:r=S-e;break;case M.quadrant:throw new o.aV(null,o.rH.LogicError,null,{reason:"unexpected evaluation"});case M.south_azimuth:r=e+E}let i=0;switch(n){case M.north_azimuth:i=r;break;case M.polar:i=S-r;break;case M.quadrant:throw new o.aV(null,o.rH.LogicError,null,{reason:"unexpected evaluation"});case M.south_azimuth:i=r-E}return i=function(e,t){return e%t}(i,b),i<0?b+i:i}}function j(e,t,n){let r=null;switch(t){case _.decimal_degrees:r=p(e,x);break;case _.seconds:r=e;break;case _.gradians:r=p(e,3240);break;case _.radians:r=p(e,A);break;default:throw new o.aV(null,o.rH.LogicError,null,{reason:"unexpected evaluation"})}switch(n){case _.decimal_degrees:return g(r,x);case _.seconds:return r;case _.gradians:return g(r,3240);case _.radians:return r/A;default:throw new o.aV(null,o.rH.LogicError,null,{reason:"unexpected evaluation"})}}class q{constructor(e){this._seconds=e}static createFromAngleAndUnits(e,t){return new q(j(e,t,_.seconds))}extractAngularUnits(e){return j(this._seconds,_.seconds,$(e))}static createFromDegreesMinutesSeconds(e,t,n){return new q(m(m(p(e,x),p(t,C)),n))}}function $(e){switch((0,l.O3)(e),e){case _.decimal_degrees:case _.truncated_degrees:case _.degrees_minutes_seconds:return _.decimal_degrees;case _.gradians:return _.gradians;case _.fractional_degree_minutes:return _.fractional_degree_minutes;case _.radians:return _.radians;case _.seconds:case _.fractional_minute_seconds:return _.seconds}}class J{constructor(e,t,n,r){this.view=e,this.angle=t,this.merdian=n,this.direction=r,this._dms=null,this._formattedDms=null}static createFromStringAndBearing(e,t,n){return new J(e,t.getAngle(n),t.getMeridian(n),t.getDirection(n))}fetchAngle(){return this.angle}fetchMeridian(){return this.merdian}fetchDirection(){return this.direction}fetchView(){return this.view}fetchDms(){return null===this._dms&&this._calculateDms(),this._dms}fetchFormattedDms(){return null===this._formattedDms&&this._calculateDms(),this._formattedDms}_calculateDms(){let e=null,t=_.truncated_degrees,n=0;for(let r=0;r0?1:0),"0");case _.truncated_degrees:case _.fractional_degree_minutes:return a=L(i.fetchFormattedDms().getField(t),O(t)),a.toFixed(r).padStart(n+r+(r>0?1:0),"0");case _.fractional_minute_seconds:return a=L(N(i.fetchDms().getField(t),r),O(t)),a.toFixed(r).padStart(n+r+(r>0?1:0),"0");default:throw new o.aV(null,o.rH.LogicError,null,{reason:"unexpected evaluation"})}}function W(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return H.north;case"E":case"EAST":return H.east;case"S":case"SOUTH":return H.south;case"W":case"WEST":return H.west}return null}function Y(e){const t=parseFloat(e);if((0,s.b)(t)){if(isNaN(t))throw new o.aV(null,o.rH.LogicError,null,{reason:"invalid conversion"});return t}throw new o.aV(null,o.rH.LogicError,null,{reason:"invalid conversion"})}function Q(e,t,n){const r=n===M.quadrant;let i=null,a=null,u=0,l=0,c=0;if(r){if(e.length<2)throw new o.aV(null,o.rH.LogicError,null,{reason:"conversion error"});c=1;const t=function(e){switch((0,s.g)(e)){case 1:return{first:H.north,second:H.east};case 2:return{first:H.south,second:H.east};case 3:return{first:H.south,second:H.west};case 4:return{first:H.north,second:H.west}}return null}((0,s.j)(e[e.length-1]));if(t?(i=t.first,a=t.second):(u=1,i=W((0,s.j)(e[0])),a=W((0,s.j)(e[e.length-1]))),null===i||null===a)throw new o.aV(null,o.rH.LogicError,null,{reason:"invalid conversion"})}switch(t){case _.decimal_degrees:case _.radians:case _.gradians:if(0===e.length)throw new o.aV(null,o.rH.LogicError,null,{reason:"invalid conversion"});return r?G.createFromAngleMeridianAndDirection(q.createFromAngleAndUnits(Y(e[u]),$(t)),i,a):G.createFromAngleAndDirection(q.createFromAngleAndUnits(Y(e[u]),$(t)),n);case _.degrees_minutes_seconds:if(l=e.length-c-u,3===l){const t=q.createFromDegreesMinutesSeconds(Y(e[u]),Y(e[u+1]),Y(e[u+2]));return r?G.createFromAngleMeridianAndDirection(t,i,a):G.createFromAngleAndDirection(t,n)}if(1===l){const t=Y(e[u]),o=U.numberToDms(t),s=q.createFromDegreesMinutesSeconds(o.m_degrees,o.m_minutes,o.m_seconds);return r?G.createFromAngleMeridianAndDirection(s,i,a):G.createFromAngleAndDirection(s,n)}}throw new o.aV(null,o.rH.LogicError,null,{reason:"invalid conversion"})}function X(e,t,n){if((0,s.b)(e))return function(e,t,n){if(n===M.quadrant)throw new o.aV(null,o.rH.LogicError,null,{reason:"conversion error"});if(t===_.degrees_minutes_seconds){const t=U.numberToDms(e);return G.createFromAngleAndDirection(q.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds),n)}return G.createFromAngleAndDirection(q.createFromAngleAndUnits(e,$(t)),n)}((0,s.g)(e),t,n);if((0,s.c)(e))return Q(function(e){const t=new Set([" ","-","/","'",'"',"\\","^",k,I,"\t","\r","\n","*"]);let n="";for(let r=0;r""!==e))}(e),t,n);if((0,s.o)(e))return Q(e,t,n);if((0,s.q)(e))return Q(e.toArray(),t,n);throw new o.aV(null,o.rH.LogicError,null,{reason:"conversion error"})}function ee(e,t,n){const r={padding:0,rounding:0,newpos:t};let i=!1;for(;t>6,128|63&r):r<55296||r>=57344?t.push(224|r>>12,128|r>>6&63,128|63&r):(n++,r=65536+((1023&r)<<10|1023&e.charCodeAt(n)),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r))}return new Uint8Array(t)}class le{constructor(e){this._seed=e,this._totallen=0,this._bufs=[],this.init()}init(){return this._bufs=[],this._totallen=0,this}updateFloatArray(e){const t=[];for(const n of e)isNaN(n)?t.push("NaN"):n===1/0?t.push("Infinity"):n===-1/0?t.push("-Infinity"):0===n?t.push("0"):t.push(n.toString(16));this.update(ue(t.join("")))}updateIntArray(e){const t=Int32Array.from(e);this.update(new Uint8Array(t.buffer))}updateUint8Array(e){this.update(Uint8Array.from(e))}updateWithString(e){return this.update(ue(e))}update(e){return this._bufs.push(e),this._totallen+=e.length,this}digest(){const e=new Uint8Array(this._totallen);let t=0;for(const n of this._bufs)e.set(n,t),t+=n.length;return this.init(),this._xxHash32(e,this._seed)}_xxHash32(e,t=0){const n=e;let r=t+se&4294967295,i=0;if(n.length>=16){const n=[t+re+ie&4294967295,t+ie&4294967295,t+0&4294967295,t-re&4294967295],a=e,o=a.length-16;let s=0;for(i=0;(4294967280&i)<=o;i+=4){const e=i,t=a[e]+(a[e+1]<<8),r=a[e+2]+(a[e+3]<<8),o=t*ie+(r*ie<<16);let u=n[s]+o&4294967295;u=u<<13|u>>>19;const l=65535&u,c=u>>>16;n[s]=l*re+(c*re<<16)&4294967295,s=s+1&3}r=(n[0]<<1|n[0]>>>31)+(n[1]<<7|n[1]>>>25)+(n[2]<<12|n[2]>>>20)+(n[3]<<18|n[3]>>>14)&4294967295}r=r+e.length&4294967295;const a=e.length-4;for(;i<=a;i+=4){const e=i,t=n[e]+(n[e+1]<<8),a=n[e+2]+(n[e+3]<<8);r=r+(t*ae+(a*ae<<16))&4294967295,r=r<<17|r>>>15,r=(65535&r)*oe+((r>>>16)*oe<<16)&4294967295}for(;i>>21,r=(65535&r)*re+((r>>>16)*re<<16)&4294967295;return r^=r>>>15,r=((65535&r)*ie&4294967295)+((r>>>16)*ie<<16),r^=r>>>13,r=((65535&r)*ae&4294967295)+((r>>>16)*ae<<16),r^=r>>>16,r<0?r+4294967296:r}}var ce=n(3466),fe=n(91772),de=n(74304),he=n(67666),me=n(89542),pe=n(90819),ge=n(14685),De=n(93968);function ye(e,t){if(!e||!t)return e===t;if(e.x===t.x&&e.y===t.y){if(e.hasZ){if(e.z!==t.z)return!1}else if(t.hasZ)return!1;if(e.hasM){if(e.m!==t.m)return!1}else if(t.hasM)return!1;return!0}return!1}function we(e,t,n){if(null!==e)if((0,s.o)(e)){if(t.updateUint8Array([61]),n.map.has(e)){const r=n.map.get(e);t.updateIntArray([61237541^r])}else{n.map.set(e,n.currentLength++);for(const r of e)we(r,t,n);n.map.delete(e),n.currentLength--}t.updateUint8Array([199])}else if((0,s.q)(e)){if(t.updateUint8Array([61]),n.map.has(e)){const r=n.map.get(e);t.updateIntArray([61237541^r])}else{n.map.set(e,n.currentLength++);for(const r of e.toArray())we(r,t,n);n.map.delete(e),n.currentLength--}t.updateUint8Array([199])}else{if((0,s.k)(e))return t.updateIntArray([e.toNumber()]),void t.updateUint8Array([241]);if((0,s.m)(e))return t.updateIntArray([e.toNumber()]),void t.updateIntArray([257]);if((0,s.n)(e))return t.updateIntArray([e.toNumber()]),void t.updateIntArray([263]);if((0,s.c)(e))return t.updateIntArray([e.length]),t.updateWithString(e),void t.updateUint8Array([41]);if((0,s.a)(e))t.updateUint8Array([!0===e?1:0,113]);else{if((0,s.b)(e))return t.updateFloatArray([e]),void t.updateUint8Array([173]);if(e instanceof i.Z)throw new o.aV(n.context,o.rH.UnsupportedHashType,n.node);if(e instanceof r.Z)throw new o.aV(n.context,o.rH.UnsupportedHashType,n.node);if(!(e instanceof a.Z)){if((0,s.r)(e))throw new o.aV(n.context,o.rH.UnsupportedHashType,n.node);if(e instanceof he.Z)return t.updateIntArray([3833836621]),t.updateIntArray([0]),t.updateFloatArray([e.x]),t.updateIntArray([1]),t.updateFloatArray([e.y]),e.hasZ&&(t.updateIntArray([2]),t.updateFloatArray([e.z])),e.hasM&&(t.updateIntArray([3]),t.updateFloatArray([e.m])),t.updateIntArray([3765347959]),void we(e.spatialReference.wkid,t,n);if(e instanceof me.Z){t.updateIntArray([1266616829]);for(let r=0;r((0,s.H)(a,1,1,e,n),new r.Z((0,s.j)(a[0])))))},e.typeof=function(e,n){return t(e,n,((t,r,i)=>{(0,s.H)(i,1,1,e,n);const a=(0,s.P)(i[0]);if("Unrecognized Type"===a)throw new o.aV(e,o.rH.UnrecognizedType,n);return a}))},e.trim=function(e,n){return t(e,n,((t,r,i)=>((0,s.H)(i,1,1,e,n),(0,s.j)(i[0]).trim())))},e.tohex=function(e,n){return t(e,n,((t,r,i)=>{(0,s.H)(i,1,1,e,n);const a=(0,s.g)(i[0]);return isNaN(a)?a:a.toString(16)}))},e.upper=function(e,n){return t(e,n,((t,r,i)=>((0,s.H)(i,1,1,e,n),(0,s.j)(i[0]).toUpperCase())))},e.proper=function(e,n){return t(e,n,((t,r,i)=>{(0,s.H)(i,1,2,e,n);let a=1;2===i.length&&"firstword"===(0,s.j)(i[1]).toLowerCase()&&(a=2);const o=/\s/,u=(0,s.j)(i[0]);let l="",c=!0;for(let e=0;e((0,s.H)(i,1,1,e,n),(0,s.j)(i[0]).toLowerCase())))},e.guid=function(e,n){return t(e,n,((t,r,i)=>{if((0,s.H)(i,0,1,e,n),i.length>0)switch((0,s.j)(i[0]).toLowerCase()){case"digits":return(0,s.U)().replace("-","").replace("-","").replace("-","").replace("-","");case"digits-hyphen":return(0,s.U)();case"digits-hyphen-braces":return"{"+(0,s.U)()+"}";case"digits-hyphen-parentheses":return"("+(0,s.U)()+")"}return"{"+(0,s.U)()+"}"}))},e.standardizeguid=function(e,n){return t(e,n,((t,r,i)=>{(0,s.H)(i,2,2,e,n);let a=(0,s.j)(i[0]);if(""===a||null===a)return"";const o=/^(\{|\()?(?[0-9a-z]{8})(\-?)(?[0-9a-z]{4})(\-?)(?[0-9a-z]{4})(\-?)(?[0-9a-z]{4})(\-?)(?[0-9a-z]{12})(\}|\))?$/gim.exec(a);if(!o)return"";const u=o.groups;switch(a=u.partA+"-"+u.partB+"-"+u.partC+"-"+u.partD+"-"+u.partE,(0,s.j)(i[1]).toLowerCase()){case"digits":return a.replace("-","").replace("-","").replace("-","").replace("-","");case"digits-hyphen":return a;case"digits-hyphen-braces":return"{"+a+"}";case"digits-hyphen-parentheses":return"("+a+")"}return"{"+a+"}"}))},e.console=function(e,n){return t(e,n,((t,n,r)=>(0===r.length||(1===r.length?e.console((0,s.j)(r[0])):e.console((0,s.j)(r))),s.B)))},e.mid=function(e,n){return t(e,n,((t,r,i)=>{(0,s.H)(i,2,3,e,n);let a=(0,s.g)(i[1]);if(isNaN(a))return"";if(a<0&&(a=0),2===i.length)return(0,s.j)(i[0]).substr(a);let o=(0,s.g)(i[2]);return isNaN(o)?"":(o<0&&(o=0),(0,s.j)(i[0]).substr(a,o))}))},e.find=function(e,n){return t(e,n,((t,r,i)=>{(0,s.H)(i,2,3,e,n);let a=0;if(i.length>2){if(a=(0,s.g)((0,s.K)(i[2],0)),isNaN(a))return-1;a<0&&(a=0)}return(0,s.j)(i[1]).indexOf((0,s.j)(i[0]),a)}))},e.left=function(e,n){return t(e,n,((t,r,i)=>{(0,s.H)(i,2,2,e,n);let a=(0,s.g)(i[1]);return isNaN(a)?"":(a<0&&(a=0),(0,s.j)(i[0]).substr(0,a))}))},e.right=function(e,n){return t(e,n,((t,r,i)=>{(0,s.H)(i,2,2,e,n);let a=(0,s.g)(i[1]);return isNaN(a)?"":(a<0&&(a=0),(0,s.j)(i[0]).substr(-1*a,a))}))},e.split=function(e,n){return t(e,n,((t,r,i)=>{let a;(0,s.H)(i,2,4,e,n);let o=(0,s.g)((0,s.K)(i[2],-1));const u=(0,s.h)((0,s.K)(i[3],!1));if(-1===o||null===o||!0===u?a=(0,s.j)(i[0]).split((0,s.j)(i[1])):(isNaN(o)&&(o=-1),o<-1&&(o=-1),a=(0,s.j)(i[0]).split((0,s.j)(i[1]),o)),!1===u)return a;const l=[];for(let e=0;e=o);e++)""!==a[e]&&void 0!==a[e]&&l.push(a[e]);return l}))},e.text=function(e,n){return t(e,n,((t,r,i)=>((0,s.H)(i,1,2,e,n),(0,s.t)(i[0],i[1]))))},e.concatenate=function(e,n){return t(e,n,((e,t,n)=>{const r=[];if(n.length<1)return"";if((0,s.o)(n[0])){const e=(0,s.K)(n[2],"");for(let t=0;t1?r.join(n[1]):r.join("")}if((0,s.q)(n[0])){const e=(0,s.K)(n[2],"");for(let t=0;t1?r.join(n[1]):r.join("")}for(let e=0;e{if((0,s.H)(i,1,1,e,n),(0,s.o)(i[0])){const e=i[0].slice(0);return e.reverse(),e}if((0,s.q)(i[0])){const e=i[0].toArray().slice(0);return e.reverse(),e}throw new o.aV(e,o.rH.InvalidParameter,n)}))},e.replace=function(e,n){return t(e,n,((t,r,i)=>{(0,s.H)(i,3,4,e,n);const a=(0,s.j)(i[0]),o=(0,s.j)(i[1]),u=(0,s.j)(i[2]);return 4!==i.length||(0,s.h)(i[3])?(0,s.T)(a,o,u):a.replace(o,u)}))},e.schema=function(e,n){return t(e,n,((t,r,i)=>{if((0,s.r)(i[0])){const t=(0,s.V)(i[0]);return t?a.Z.convertObjectToArcadeDictionary(t,(0,s.N)(e)):null}throw new o.aV(e,o.rH.InvalidParameter,n)}))},e.subtypes=function(e,n){return t(e,n,((t,r,i)=>{if((0,s.H)(i,1,1,e,n),(0,s.r)(i[0])){const t=(0,s.W)(i[0]);return t?a.Z.convertObjectToArcadeDictionary(t,(0,s.N)(e)):null}throw new o.aV(e,o.rH.InvalidParameter,n)}))},e.subtypecode=function(e,n){return t(e,n,((t,r,i)=>{if((0,s.H)(i,1,1,e,n),(0,s.r)(i[0])){const e=(0,s.W)(i[0]);if(!e)return null;if(e.subtypeField&&i[0].hasField(e.subtypeField)){const t=i[0].field(e.subtypeField);for(const n of e.subtypes)if(n.code===t)return n.code;return null}return null}throw new o.aV(e,o.rH.InvalidParameter,n)}))},e.subtypename=function(e,n){return t(e,n,((t,r,i)=>{if((0,s.H)(i,1,1,e,n),(0,s.r)(i[0])){const e=(0,s.W)(i[0]);if(!e)return"";if(e.subtypeField&&i[0].hasField(e.subtypeField)){const t=i[0].field(e.subtypeField);for(const n of e.subtypes)if(n.code===t)return n.name;return""}return""}throw new o.aV(e,o.rH.InvalidParameter,n)}))},e.gdbversion=function(e,n){return t(e,n,((t,r,i)=>{if((0,s.H)(i,1,1,e,n),(0,s.r)(i[0]))return i[0].gdbVersion();throw new o.aV(e,o.rH.InvalidParameter,n)}))},e.domain=function(e,n){return t(e,n,((t,r,i)=>{if((0,s.H)(i,2,3,e,n),(0,s.r)(i[0])){const t=(0,s.X)(i[0],(0,s.j)(i[1]),void 0===i[2]?void 0:i[2]);return t&&t.domain?"coded-value"===t.domain.type||"codedValue"===t.domain.type?a.Z.convertObjectToArcadeDictionary({type:"codedValue",name:t.domain.name,dataType:u.yE[t.field.type],codedValues:t.domain.codedValues.map((e=>({name:e.name,code:e.code})))},(0,s.N)(e)):a.Z.convertObjectToArcadeDictionary({type:"range",name:t.domain.name,dataType:u.yE[t.field.type],min:t.domain.minValue,max:t.domain.maxValue},(0,s.N)(e)):null}throw new o.aV(e,o.rH.InvalidParameter,n)}))},e.domainname=function(e,n){return t(e,n,((t,r,i)=>{if((0,s.H)(i,2,4,e,n),(0,s.r)(i[0]))return(0,s.Y)(i[0],(0,s.j)(i[1]),i[2],void 0===i[3]?void 0:i[3]);throw new o.aV(e,o.rH.InvalidParameter,n)}))},e.domaincode=function(e,n){return t(e,n,((t,r,i)=>{if((0,s.H)(i,2,4,e,n),(0,s.r)(i[0]))return(0,s.Z)(i[0],(0,s.j)(i[1]),i[2],void 0===i[3]?void 0:i[3]);throw new o.aV(e,o.rH.InvalidParameter,n)}))},e.urlencode=function(e,n){return t(e,n,((t,r,i)=>{if((0,s.H)(i,1,1,e,n),null===i[0])return"";if(i[0]instanceof a.Z){let e="";for(const t of i[0].keys()){const n=i[0].field(t);""!==e&&(e+="&"),e+=null===n?encodeURIComponent(t)+"=":encodeURIComponent(t)+"="+encodeURIComponent(n)}return e}return encodeURIComponent((0,s.j)(i[0]))}))},e.hash=function(e,n){return t(e,n,((t,r,i)=>{(0,s.H)(i,1,1,e,n);const a=new le(0);return we(i[0],a,{context:e,node:n,map:new Map,currentLength:0}),a.digest()}))},e.convertdirection=function(e,n){return t(e,n,((t,r,i)=>((0,s.H)(i,3,3,e,n),ne(i[0],i[1],i[2]))))},e.fromjson=function(e,n){return t(e,n,((t,r,i)=>{if((0,s.H)(i,1,1,e,n),!1===(0,s.c)(i[0]))throw new o.aV(e,o.rH.InvalidParameter,n);return a.Z.convertJsonToArcade(JSON.parse((0,s.j)(i[0])),(0,s.N)(e))}))},e.expects=function(e,n){return t(e,n,((t,r,i)=>{if(i.length<1)throw new o.aV(e,o.rH.WrongNumberOfParameters,n);return s.B}))},e.tocharcode=function(e,n){return t(e,n,((t,r,i)=>{(0,s.H)(i,1,2,e,n);const a=(0,s.g)((0,s.K)(i[1],0)),u=(0,s.j)(i[0]);if(0===u.length&&1===i.length)return null;if(u.length<=a||a<0)throw new o.aV(e,o.rH.OutOfBounds,n);return u.charCodeAt(a)}))},e.tocodepoint=function(e,n){return t(e,n,((t,r,i)=>{(0,s.H)(i,1,2,e,n);const a=(0,s.g)((0,s.K)(i[1],0)),u=(0,s.j)(i[0]);if(0===u.length&&1===i.length)return null;if(u.length<=a||a<0)throw new o.aV(e,o.rH.OutOfBounds,n);return u.codePointAt(a)}))},e.fromcharcode=function(e,n){return t(e,n,((t,r,i)=>{if(i.length<1)throw new o.aV(e,o.rH.WrongNumberOfParameters,n);const a=i.map((e=>Math.trunc((0,s.g)(e)))).filter((e=>e>=0&&e<=65535));return 0===a.length?null:String.fromCharCode.apply(null,a)}))},e.fromcodepoint=function(e,n){return t(e,n,((t,r,i)=>{if(i.length<1)throw new o.aV(e,o.rH.WrongNumberOfParameters,n);let a;try{a=i.map((e=>Math.trunc((0,s.g)(e)))).filter((e=>e<=1114111&&e>>>0===e))}catch(e){return null}return 0===a.length?null:String.fromCodePoint.apply(null,a)}))},e.getuser=function(e,n){return t(e,n,((t,i,u)=>{(0,s.H)(u,0,2,e,n);let l=(0,s.K)(u[1],"");if(l=!0===l||!1===l?"":(0,s.j)(l),null!==l&&""!==l)return null;if(0===u.length||u[0]instanceof r.Z){let t=null;if(t=e.services?.portal?e.services.portal:De.Z.getDefault(),u.length>0&&!function(e,t){return!!e&&(0,ce.tm)(e,t?.restUrl||"")}(u[0].field("url"),t))return null;if(!t)return null;if(""===l){const n=function(e){return"loaded"===e.loadStatus&&e.user?.sourceJSON?e.user.sourceJSON:null}(t);if(n){const t=JSON.parse(JSON.stringify(n));for(const e of["lastLogin","created","modified"])void 0!==t[e]&&null!==t[e]&&(t[e]=new Date(t[e]));return a.Z.convertObjectToArcadeDictionary(t,(0,s.N)(e))}}return null}throw new o.aV(e,o.rH.InvalidParameter,n)}))},e.getenvironment=function(e,n){return t(e,n,((t,r,i)=>((0,s.H)(i,0,0,e,n),a.Z.convertObjectToArcadeDictionary((0,s._)((0,s.N)(e),e.spatialReference),(0,s.N)(e),!0))))}}},4080:function(e,t,n){n.d(t,{EI:function(){return i},Lz:function(){return o},SV:function(){return a},U:function(){return u},r1:function(){return s}});var r=n(91772);function i(e){if(null==e)return null;if("number"==typeof e)return e;let t=e.toLowerCase();switch(t=t.replaceAll(/\s/g,""),t=t.replaceAll("-",""),t){case"meters":case"meter":case"m":case"squaremeters":case"squaremeter":return 109404;case"miles":case"mile":case"squaremile":case"squaremiles":return 109439;case"kilometers":case"kilometer":case"squarekilometers":case"squarekilometer":case"km":return 109414;case"acres":case"acre":case"ac":return 109402;case"hectares":case"hectare":case"ha":return 109401;case"yard":case"yd":case"yards":case"squareyards":case"squareyard":return 109442;case"feet":case"ft":case"foot":case"squarefeet":case"squarefoot":return 109405;case"nmi":case"nauticalmile":case"nauticalmiles":case"squarenauticalmile":case"squarenauticalmiles":return 109409}return null}function a(e){if(null==e)return null;switch(e.type){case"polygon":case"multipoint":case"polyline":return e.extent;case"point":return new r.Z({xmin:e.x,ymin:e.y,xmax:e.x,ymax:e.y,spatialReference:e.spatialReference});case"extent":return e}return null}function o(e){if(null==e)return null;if("number"==typeof e)return e;let t=e.toLowerCase();switch(t=t.replaceAll(/\s/g,""),t=t.replaceAll("-",""),t){case"meters":case"meter":case"m":case"squaremeters":case"squaremeter":return 9001;case"miles":case"mile":case"squaremile":case"squaremiles":return 9093;case"kilometers":case"kilometer":case"squarekilometers":case"squarekilometer":case"km":return 9036;case"yard":case"yd":case"yards":case"squareyards":case"squareyard":return 9096;case"feet":case"ft":case"foot":case"squarefeet":case"squarefoot":return 9002;case"nmi":case"nauticalmile":case"nauticalmiles":case"squarenauticalmile":case"squarenauticalmiles":return 9030}return null}function s(e){if(null==e)return null;const t=e.clone();return void 0!==e.cache._geVersion&&(t.cache._geVersion=e.cache._geVersion),t}function u(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}},61125:function(e,t,n){n.d(t,{Kq:function(){return g},Vf:function(){return D},bV:function(){return d},dN:function(){return y},gW:function(){return l},mb:function(){return p},w8:function(){return m},x5:function(){return h}});const r={all:{min:2,max:2},time:{min:0,max:4},dateonly:{min:0,max:3},getenvironment:{min:0,max:0},none:{min:2,max:2},any:{min:2,max:2},reduce:{min:2,max:3},map:{min:2,max:2},filter:{min:2,max:2},fromcodepoint:{min:1,max:-1},fromcharcode:{min:1,max:-1},tocodepoint:{min:1,max:2},tocharcode:{min:1,max:2},concatenate:{min:0,max:-1},expects:{min:1,max:-1},getfeatureset:{min:1,max:2},week:{min:1,max:2},fromjson:{min:1,max:1},length3d:{min:1,max:2},tohex:{min:1,max:1},hash:{min:1,max:1},timezone:{min:1,max:1},timezoneoffset:{min:1,max:1},changetimezone:{min:2,max:2},isoweek:{min:1,max:1},isoweekday:{min:1,max:1},hasvalue:{min:2,max:2},isomonth:{min:1,max:1},isoyear:{min:1,max:1},resize:{min:2,max:3},slice:{min:0,max:-1},splice:{min:0,max:-1},push:{min:2,max:2},pop:{min:1,max:1},includes:{min:2,max:2},array:{min:0,max:2},front:{min:1,max:1},back:{min:1,max:1},insert:{min:3,max:3},erase:{min:2,max:2},split:{min:2,max:4},guid:{min:0,max:1},standardizeguid:{min:2,max:2},today:{min:0,max:0},angle:{min:2,max:3},bearing:{min:2,max:3},urlencode:{min:1,max:1},now:{min:0,max:0},timestamp:{min:0,max:0},day:{min:1,max:1},month:{min:1,max:1},year:{min:1,max:1},hour:{min:1,max:1},second:{min:1,max:1},millisecond:{min:1,max:1},minute:{min:1,max:1},weekday:{min:1,max:1},toutc:{min:1,max:1},tolocal:{min:1,max:1},date:{min:0,max:8},datediff:{min:2,max:4},dateadd:{min:2,max:3},trim:{min:1,max:1},text:{min:1,max:2},left:{min:2,max:2},right:{min:2,max:2},mid:{min:2,max:3},upper:{min:1,max:1},proper:{min:1,max:2},lower:{min:1,max:1},find:{min:2,max:3},iif:{min:3,max:3},decode:{min:2,max:-1},when:{min:2,max:-1},defaultvalue:{min:2,max:3},isempty:{min:1,max:1},domaincode:{min:2,max:4},domainname:{min:2,max:4},polygon:{min:1,max:1},point:{min:1,max:1},polyline:{min:1,max:1},extent:{min:1,max:1},multipoint:{min:1,max:1},ringisclockwise:{min:1,max:1},geometry:{min:1,max:1},count:{min:0,max:-1},number:{min:1,max:2},acos:{min:1,max:1},asin:{min:1,max:1},atan:{min:1,max:1},atan2:{min:2,max:2},ceil:{min:1,max:2},floor:{min:1,max:2},round:{min:1,max:2},cos:{min:1,max:1},exp:{min:1,max:1},log:{min:1,max:1},min:{min:0,max:-1},constrain:{min:3,max:3},console:{min:0,max:-1},max:{min:0,max:-1},pow:{min:2,max:2},random:{min:0,max:0},sqrt:{min:1,max:1},sin:{min:1,max:1},tan:{min:1,max:1},abs:{min:1,max:1},isnan:{min:1,max:1},stdev:{min:0,max:-1},average:{min:0,max:-1},mean:{min:0,max:-1},sum:{min:0,max:-1},variance:{min:0,max:-1},distinct:{min:0,max:-1},first:{min:1,max:1},top:{min:2,max:2},boolean:{min:1,max:1},dictionary:{min:0,max:-1},typeof:{min:1,max:1},reverse:{min:1,max:1},replace:{min:3,max:4},sort:{min:1,max:2},feature:{min:1,max:-1},haskey:{min:2,max:2},indexof:{min:2,max:2},disjoint:{min:2,max:2},intersects:{min:2,max:2},touches:{min:2,max:2},crosses:{min:2,max:2},within:{min:2,max:2},contains:{min:2,max:2},overlaps:{min:2,max:2},equals:{min:2,max:2},relate:{min:3,max:3},intersection:{min:2,max:2},union:{min:1,max:2},difference:{min:2,max:2},symmetricdifference:{min:2,max:2},clip:{min:2,max:2},cut:{min:2,max:2},area:{min:1,max:2},areageodetic:{min:1,max:2},length:{min:1,max:2},lengthgeodetic:{min:1,max:2},distancegeodetic:{min:2,max:3},distance:{min:2,max:3},densify:{min:2,max:3},densifygeodetic:{min:2,max:3},generalize:{min:2,max:4},buffer:{min:2,max:3},buffergeodetic:{min:2,max:3},offset:{min:2,max:6},rotate:{min:2,max:3},issimple:{min:1,max:1},simplify:{min:1,max:1},convexhull:{min:1,max:1},centroid:{min:1,max:1},nearestcoordinate:{min:2,max:2},nearestvertex:{min:2,max:2},isselfintersecting:{min:1,max:1},multiparttosinglepart:{min:1,max:1},setgeometry:{min:2,max:2},portal:{min:1,max:1},getuser:{min:0,max:2},subtypes:{min:1,max:1},subtypecode:{min:1,max:1},subtypename:{min:1,max:1},domain:{min:2,max:3},convertdirection:{min:3,max:3},sqltimestamp:{min:1,max:3},schema:{min:1,max:1},measuretocoordinate:{min:2,max:2},distancetocoordinate:{min:2,max:2},pointtocoordinate:{min:2,max:2}},i={functionDefinitions:new Map,constantDefinitions:new Map},a={functionDefinitions:new Map,constantDefinitions:new Map};for(const e of["pi","infinity"])a.constantDefinitions.set(e,{type:"constant"}),i.constantDefinitions.set(e,{type:"constant"});a.constantDefinitions.set("textformatting",{type:"namespace",key:"textformatting",members:[{key:"backwardslash",type:"constant"},{key:"doublequote",type:"constant"},{key:"forwardslash",type:"constant"},{key:"tab",type:"constant"},{key:"singlequote",type:"constant"},{key:"newline",type:"constant"}]}),i.constantDefinitions.set("textformatting",{type:"namespace",key:"textformatting",members:[{key:"backwardslash",type:"constant"},{key:"tab",type:"constant"},{key:"singlequote",type:"constant"},{key:"doublequote",type:"constant"},{key:"forwardslash",type:"constant"},{key:"newline",type:"constant"}]});for(const e in r){const t=r[e];a.functionDefinitions.set(e,{overloads:[{type:"function",parametersInfo:{min:t.min,max:t.max}}]}),i.functionDefinitions.set(e,{overloads:[{type:"function",parametersInfo:{min:t.min,max:t.max}}]})}const o=new Set(["featureset","featuresetbyid","featuresetbyname","featuresetbyassociation","featuresetbyrelationshipname","featuresetbyurl","getfeatureset","getuser","attachments","featuresetbyportalitem","getfeaturesetinfo","filterbysubtypecode","knowledgegraphbyportalitem","querygraph"]),s=new Set(["disjoint","intersects","touches","crosses","within","contains","overlaps","equals","relate","intersection","nearestvertex","nearestcoordinate","union","difference","symmetricdifference","clip","cut","area","areageodetic","length","length3d","lengthgeodetic","distance","distancegeodetic","densify","densifygeodetic","generalize","buffer","buffergeodetic","offset","rotate","issimple","convexhull","simplify","multiparttosinglepart","pointtocoordinate","distancetocoordinate","measuretocoordinate"]);function u(e){return"string"==typeof e||e instanceof String}function l(e,t){const n="sync"===t?i:a;n.functionDefinitions.has(e.name.toLowerCase())?n.functionDefinitions.get(e.name.toLowerCase())?.overloads.push({type:"function",parametersInfo:{min:e.min,max:e.max}}):n.functionDefinitions.set(e.name.toLowerCase(),{overloads:[{type:"function",parametersInfo:{min:e.min,max:e.max}}]})}function c(e,t){if(e)for(const n of e)f(n,t)}function f(e,t){if(e&&!1!==t(e))switch(e.type){case"ImportDeclaration":c(e.specifiers,t),f(e.source,t);break;case"ExportNamedDeclaration":f(e.declaration,t);break;case"ArrayExpression":c(e.elements,t);break;case"AssignmentExpression":case"BinaryExpression":case"LogicalExpression":f(e.left,t),f(e.right,t);break;case"BlockStatement":case"Program":c(e.body,t);break;case"BreakStatement":case"ContinueStatement":case"EmptyStatement":case"Identifier":case"Literal":break;case"CallExpression":f(e.callee,t),c(e.arguments,t);break;case"ExpressionStatement":f(e.expression,t);break;case"ForInStatement":f(e.left,t),f(e.right,t),f(e.body,t);break;case"ForStatement":f(e.init,t),f(e.test,t),f(e.update,t),f(e.body,t);break;case"WhileStatement":f(e.test,t),f(e.body,t);break;case"FunctionDeclaration":f(e.id,t),c(e.params,t),f(e.body,t);break;case"IfStatement":f(e.test,t),f(e.consequent,t),f(e.alternate,t);break;case"MemberExpression":f(e.object,t),f(e.property,t);break;case"ObjectExpression":c(e.properties,t);break;case"Property":f(e.key,t),f(e.value,t);break;case"ReturnStatement":case"UnaryExpression":case"UpdateExpression":f(e.argument,t);break;case"VariableDeclaration":c(e.declarations,t);break;case"VariableDeclarator":f(e.id,t),f(e.init,t);break;case"TemplateLiteral":c(e.expressions,t),c(e.quasis,t)}}function d(e,t){let n=!1;const r=t.toLowerCase();return f(e,(e=>!n&&("Identifier"===e.type&&e.name&&e.name.toLowerCase()===r&&(n=!0),!0))),n}function h(e){const t=[];return f(e,(e=>("ImportDeclaration"===e.type&&e.source&&e.source.value&&t.push({libname:e.specifiers[0].local.name.toLowerCase(),source:e.source.value}),!0))),t}function m(e,t){let n=!1;const r=t.toLowerCase();return f(e,(e=>!(n||"CallExpression"===e.type&&"Identifier"===e.callee.type&&e.callee.name&&e.callee.name.toLowerCase()===r&&(n=!0,1)))),n}function p(e){const t=[];return f(e,(e=>"MemberExpression"!==e.type||"Identifier"!==e.object.type||(!1===e.computed&&e.object&&e.object.name&&e.property&&"Identifier"===e.property.type&&e.property.name?t.push(e.object.name.toLowerCase()+"."+e.property.name.toLowerCase()):e.object&&e.object.name&&e.property&&"Literal"===e.property.type&&"string"==typeof e.property.value&&t.push(e.object.name.toLowerCase()+"."+e.property.value?.toString().toLowerCase()),!1))),t}function g(e){const t=[];return f(e,(e=>{if("CallExpression"===e.type){if("Identifier"===e.callee.type&&"expects"===e.callee.name.toLowerCase()){let n="";for(let r=0;r<(e.arguments||[]).length;r++)0===r?"Identifier"===e.arguments[r].type&&(n=e.arguments[r].name.toLowerCase()):n&&"Literal"===e.arguments[r].type&&u(e.arguments[r].value)&&t.push(n+"."+e.arguments[r].value.toLowerCase());return!1}if("Identifier"===e.callee.type&&["domainname","domaincode","domain","haskey"].includes(e.callee.name.toLowerCase())&&e.arguments.length>=2){let n="";return"Identifier"===e.arguments[0].type&&(n=e.arguments[0].name.toLowerCase()),n&&"Literal"===e.arguments[1].type&&u(e.arguments[1].value)&&t.push(n+"."+e.arguments[1].value.toLowerCase()),!1}}return"MemberExpression"!==e.type||"Identifier"!==e.object.type||(!1===e.computed&&e.object&&e.object.name&&e.property&&"Identifier"===e.property.type&&e.property.name?t.push(e.object.name.toLowerCase()+"."+e.property.name.toLowerCase()):e.object&&e.object.name&&e.property&&"Literal"===e.property.type&&"string"==typeof e.property.value&&t.push(e.object.name.toLowerCase()+"."+e.property.value?.toString().toLowerCase()),!1)})),t}function D(e){const t=[];return f(e,(e=>("CallExpression"===e.type&&"Identifier"===e.callee.type&&t.push(e.callee.name.toLowerCase()),!0))),t}function y(e,t=[]){let n=null;if(void 0===e.usesFeatureSet){null===n&&(n=D(e)),e.usesFeatureSet=!1;for(let t=0;t0)for(const n of t)if(d(e,n)){e.usesFeatureSet=!0,e.isAsync=!0;break}}if(void 0===e.usesModules&&(e.usesModules=!1,h(e).length>0&&(e.usesModules=!0)),void 0===e.usesGeometry){e.usesGeometry=!1,null===n&&(n=D(e));for(let t=0;t0||t.length>0;)if(e.length>0&&t.length>0){let i=n(e[0],t[0]);isNaN(i)&&(i=0),i<=0?(r.push(e[0]),e=e.slice(1)):(r.push(t[0]),t=t.slice(1))}else e.length>0?(r.push(e[0]),e=e.slice(1)):t.length>0&&(r.push(t[0]),t=t.slice(1));return r}(n(e.slice(0,i),t),n(e.slice(i,r),t),t)}async function u(e,t){const n=e.length,r=Math.floor(n/2);if(0===n)return[];if(1===n)return[e[0]];const i=[await u(e.slice(0,r),t),await u(e.slice(r,n),t)];return l(i[0],i[1],t,[])}async function l(e,t,n,r){const i=r;if(!(e.length>0||t.length>0))return r;if(e.length>0&&t.length>0){let a=await n(e[0],t[0]);return isNaN(a)&&(a=1),a<=0?(i.push(e[0]),e=e.slice(1)):(i.push(t[0]),t=t.slice(1)),l(e,t,n,r)}return e.length>0?(i.push(e[0]),l(e=e.slice(1),t,n,r)):t.length>0?(i.push(t[0]),l(e,t=t.slice(1),n,r)):void 0}function c(e,t,r,a){(0,o.H)(r,1,2,e,t);let s=r[0];if((0,o.q)(s)&&(s=s.toArray()),!1===(0,o.o)(s))throw new i.aV(e,i.rH.InvalidParameter,t);if(r.length>1){if(!1===(0,o.i)(r[1]))throw new i.aV(e,i.rH.InvalidParameter,t);let l=s;const c=r[1].createFunction(e);return a?u(l,c):(l=n(l,((e,t)=>c(e,t))),l)}let l=s;if(0===l.length)return[];const c={};for(let e=0;e1||"String"===d?n(l,((e,t)=>{if(null==e||e===o.B)return null==t||t===o.B?0:1;if(null==t||t===o.B)return-1;const n=(0,o.j)(e),r=(0,o.j)(t);return ne-t)):"Boolean"===d?n(l,((e,t)=>e===t?0:t?-1:1)):"Date"===d?n(l,((e,t)=>t-e)):l.slice(0),l}e.functions.array=function(t,n){return e.standardFunction(t,n,((e,a,s)=>{if((0,o.H)(s,0,2,t,n),0===s.length)return[];if(1===s.length&&null===s[0])return[];if((0,o.o)(s[0])){if(2===s.length&&!1===(0,o.a)(s[1]))throw new i.aV(t,i.rH.InvalidParameter,n);return!0===(0,o.K)(s[1],!1)?(0,r.I)(s[0]):s[0].slice(0)}if((0,o.q)(s[0])){if(2===s.length&&!1===(0,o.a)(s[1]))throw new i.aV(t,i.rH.InvalidParameter,n);return!0===(0,o.K)(s[1],!1)?(0,r.I)(s[0]):s[0].toArray().slice(0)}const u=(0,o.g)(s[0]);if(isNaN(u)||!1===(0,o.O)(u))throw new i.aV(t,i.rH.InvalidParameter,n);const l=(0,o.K)(s[1],null),c=new Array(u);return c.fill(l),c}))},e.functions.front=function(t,n){return e.standardFunction(t,n,((e,r,a)=>{if((0,o.H)(a,1,1,t,n),(0,o.q)(a[0])){if(a[0].length()<=0)throw new i.aV(t,i.rH.OutOfBounds,n);return a[0].get(0)}if((0,o.o)(a[0])){if(a[0].length<=0)throw new i.aV(t,i.rH.OutOfBounds,n);return a[0][0]}throw new i.aV(t,i.rH.InvalidParameter,n)}))},e.functions.back=function(t,n){return e.standardFunction(t,n,((e,r,a)=>{if((0,o.H)(a,1,1,t,n),(0,o.q)(a[0])){if(a[0].length()<=0)throw new i.aV(t,i.rH.OutOfBounds,n);return a[0].get(a[0].length()-1)}if((0,o.o)(a[0])){if(a[0].length<=0)throw new i.aV(t,i.rH.OutOfBounds,n);return a[0][a[0].length-1]}throw new i.aV(t,i.rH.InvalidParameter,n)}))},e.functions.push=function(t,n){return e.standardFunction(t,n,((e,r,a)=>{if((0,o.H)(a,1,2,t,n),(0,o.o)(a[0]))return a[0][a[0].length]=a[1],a[0].length;throw new i.aV(t,i.rH.InvalidParameter,n)}))},e.functions.pop=function(t,n){return e.standardFunction(t,n,((e,r,a)=>{if((0,o.H)(a,1,1,t,n),(0,o.o)(a[0])){if(a[0].length<=0)throw new i.aV(t,i.rH.OutOfBounds,n);const e=a[0][a[0].length-1];return a[0].length=a[0].length-1,e}throw new i.aV(t,i.rH.InvalidParameter,n)}))},e.functions.erase=function(t,n){return e.standardFunction(t,n,((e,r,a)=>{if((0,o.H)(a,2,2,t,n),(0,o.o)(a[0])){let e=(0,o.g)(a[1]);if(isNaN(e)||!1===(0,o.O)(e))throw new i.aV(t,i.rH.InvalidParameter,n);const r=a[0];if(r.length<=0)throw new i.aV(t,i.rH.OutOfBounds,n);if(e<0&&(e=r.length+e),e<0)throw new i.aV(t,i.rH.OutOfBounds,n);if(e>=r.length)throw new i.aV(t,i.rH.OutOfBounds,n);return r.splice(e,1),o.B}throw new i.aV(t,i.rH.InvalidParameter,n)}))},e.functions.insert=function(t,n){return e.standardFunction(t,n,((e,r,a)=>{if((0,o.H)(a,3,3,t,n),(0,o.o)(a[0])){const e=(0,o.g)(a[1]);if(isNaN(e)||!1===(0,o.O)(e))throw new i.aV(t,i.rH.InvalidParameter,n);const r=a[2],s=a[0];if(e>s.length)throw new i.aV(t,i.rH.OutOfBounds,n);if(e<0&&e<-1*s.length)throw new i.aV(t,i.rH.OutOfBounds,n);return e===s.length?(s[e]=r,o.B):(s.splice(e,0,r),o.B)}throw new i.aV(t,i.rH.InvalidParameter,n)}))},e.functions.resize=function(t,n){return e.standardFunction(t,n,((e,r,a)=>{if((0,o.H)(a,2,3,t,n),(0,o.o)(a[0])){const e=(0,o.g)(a[1]);if(isNaN(e)||!1===(0,o.O)(e))throw new i.aV(t,i.rH.InvalidParameter,n);if(e<0)throw new i.aV(t,i.rH.InvalidParameter,n);const r=(0,o.K)(a[2],null),s=a[0];if(s.length>=e)return s.length=e,o.B;const u=s.length;s.length=e;for(let e=u;e{if((0,o.H)(a,2,2,t,n),(0,o.o)(a[0])){const e=a[1];return a[0].findIndex((t=>(0,o.F)(t,e)))>-1}if((0,o.q)(a[0])){const e=a[1];return a[0].toArray().findIndex((t=>(0,o.F)(t,e)))>-1}throw new i.aV(t,i.rH.InvalidParameter,n)}))},e.functions.slice=function(t,n){return e.standardFunction(t,n,((e,r,a)=>{if((0,o.H)(a,1,3,t,n),(0,o.o)(a[0])){const e=(0,o.g)((0,o.K)(a[1],0)),r=(0,o.g)((0,o.K)(a[2],a[0].length));if(isNaN(e)||!1===(0,o.O)(e))throw new i.aV(t,i.rH.InvalidParameter,n);if(isNaN(r)||!1===(0,o.O)(r))throw new i.aV(t,i.rH.InvalidParameter,n);return a[0].slice(e,r)}if((0,o.q)(a[0])){const e=a[0],r=(0,o.g)((0,o.K)(a[1],0)),s=(0,o.g)((0,o.K)(a[2],e.length()));if(isNaN(r)||!1===(0,o.O)(r))throw new i.aV(t,i.rH.InvalidParameter,n);if(isNaN(s)||!1===(0,o.O)(s))throw new i.aV(t,i.rH.InvalidParameter,n);return e.toArray().slice(r,s)}throw new i.aV(t,i.rH.InvalidParameter,n)}))},e.functions.splice=function(t,n){return e.standardFunction(t,n,((e,t,n)=>{const r=[];for(let e=0;e{if((0,o.H)(a,2,2,t,n),(0,o.o)(a[0]))return(0,o.g)(a[1])>=a[0].length?a[0].slice(0):a[0].slice(0,(0,o.g)(a[1]));if((0,o.q)(a[0]))return(0,o.g)(a[1])>=a[0].length()?a[0].slice(0):a[0].slice(0,(0,o.g)(a[1]));throw new i.aV(t,i.rH.InvalidParameter,n)}))},e.functions.first=function(t,n){return e.standardFunction(t,n,((e,r,i)=>((0,o.H)(i,1,1,t,n),(0,o.o)(i[0])?0===i[0].length?null:i[0][0]:(0,o.q)(i[0])?0===i[0].length()?null:i[0].get(0):null)))},"sync"===e.mode&&(e.functions.sort=function(t,n){return e.standardFunction(t,n,((e,r,i)=>c(t,n,i,!1)))},e.functions.any=function(n,r){return e.standardFunction(n,r,((e,i,a)=>{(0,o.H)(a,2,2,n,r);const s=a[1].createFunction(n),u=t(a[0],n,r);for(const e of u){const t=s(e);if((0,o.a)(t)&&!0===t)return!0}return!1}))},e.functions.all=function(n,r){return e.standardFunction(n,r,((e,i,a)=>{(0,o.H)(a,2,2,n,r);const s=a[1].createFunction(n),u=t(a[0],n,r);for(const e of u)if(!0!==s(e))return!1;return!0}))},e.functions.none=function(n,r){return e.standardFunction(n,r,((e,i,a)=>{(0,o.H)(a,2,2,n,r);const s=a[1].createFunction(n),u=t(a[0],n,r);for(const e of u)if(!0===s(e))return!1;return!0}))},e.functions.reduce=function(n,r){return e.standardFunction(n,r,((e,i,a)=>{(0,o.H)(a,2,3,n,r);const s=a[1].createFunction(n),u=t(a[0],n,r);return 2===a.length?0===u.length?null:u.reduce(((e,t)=>{const n=s(e,t);return void 0!==n&&n!==o.B?n:null})):u.reduce(((e,t)=>{const n=s(e,t);return void 0!==n&&n!==o.B?n:null}),a[2])}))},e.functions.map=function(n,r){return e.standardFunction(n,r,((e,i,a)=>{(0,o.H)(a,2,2,n,r);const s=a[1].createFunction(n),u=t(a[0],n,r),l=[];for(const e of u){const t=s(e);void 0!==t&&t!==o.B?l.push(t):l.push(null)}return l}))},e.functions.filter=function(n,r){return e.standardFunction(n,r,((e,i,a)=>{(0,o.H)(a,2,2,n,r);const s=a[1].createFunction(n),u=t(a[0],n,r),l=[];for(const e of u)!0===s(e)&&l.push(e);return l}))}),"async"===e.mode&&(e.functions.sort=function(t,n){return e.standardFunctionAsync(t,n,((e,r,i)=>c(t,n,i,!0)))},e.functions.any=function(n,r){return e.standardFunctionAsync(n,r,(async(e,i,a)=>{(0,o.H)(a,2,2,n,r);const u=a[1].createFunction(n),l=t(a[0],n,r);for(const e of l){const t=await u(e);let n=null;if(n=(0,s.y8)(n)?await t:t,(0,o.a)(n)&&!0===n)return!0}return!1}))},e.functions.all=function(n,r){return e.standardFunctionAsync(n,r,(async(e,i,a)=>{(0,o.H)(a,2,2,n,r);const u=a[1].createFunction(n),l=t(a[0],n,r);for(const e of l){const t=await u(e);let n=null;if(n=(0,s.y8)(n)?await t:t,!0!==n)return!1}return!0}))},e.functions.none=function(n,r){return e.standardFunctionAsync(n,r,(async(e,i,a)=>{(0,o.H)(a,2,2,n,r);const u=a[1].createFunction(n),l=t(a[0],n,r);for(const e of l){const t=await u(e);let n=null;if(n=(0,s.y8)(n)?await t:t,!0===n)return!1}return!0}))},e.functions.filter=function(n,r){return e.standardFunctionAsync(n,r,(async(e,i,a)=>{(0,o.H)(a,2,2,n,r);const u=a[1].createFunction(n),l=t(a[0],n,r),c=[];for(const e of l){const t=await u(e);let n=null;n=(0,s.y8)(n)?await t:t,!0===n&&c.push(e)}return c}))},e.functions.reduce=function(n,r){return e.standardFunctionAsync(n,r,((e,i,a)=>{(0,o.H)(a,2,3,n,r);const s=a[1].createFunction(n),u=t(a[0],n,r);let l=null;if(a.length>2){const e=(0,o.K)(a[2],null);l=u.reduce((async(e,t)=>{let n=await e;return void 0!==n&&n!==o.B||(n=null),s(n,t)}),Promise.resolve(e))}else{if(0===u.length)return null;l=u.reduce((async(e,t,n)=>{if(n<=1)return s(e,t);let r=await e;return void 0!==r&&r!==o.B||(r=null),s(r,t)}))}return l.then((e=>void 0!==e&&e!==o.B?e:null))}))},e.functions.map=function(n,r){return e.standardFunctionAsync(n,r,(async(e,i,a)=>{(0,o.H)(a,2,2,n,r);const u=a[1].createFunction(n),l=t(a[0],n,r),c=[];for(const e of l){const t=await u(e);let n=null;n=(0,s.y8)(n)?await t:t,void 0!==n&&n!==o.B?c.push(n):c.push(null)}return c}))})}},Symbol.toStringTag,{value:"Module"}))},94837:function(e,t,n){n.d(t,{$:function(){return he},A:function(){return k},B:function(){return N},C:function(){return B},D:function(){return H},E:function(){return ce},F:function(){return fe},G:function(){return _e},H:function(){return re},I:function(){return Ee},J:function(){return Ie},K:function(){return L},L:function(){return ke},M:function(){return Te},N:function(){return je},O:function(){return z},P:function(){return O},Q:function(){return ue},R:function(){return ie},S:function(){return xe},T:function(){return _},U:function(){return ae},V:function(){return qe},W:function(){return Ue},X:function(){return Pe},Y:function(){return ze},Z:function(){return Ge},_:function(){return $e},a:function(){return P},a0:function(){return Re},a1:function(){return Oe},a2:function(){return He},a3:function(){return Ne},a4:function(){return Ae},a5:function(){return Fe},a6:function(){return Ce},a7:function(){return ne},b:function(){return U},c:function(){return R},d:function(){return Me},e:function(){return Ve},f:function(){return V},g:function(){return ge},h:function(){return ye},i:function(){return M},j:function(){return de},k:function(){return Q},l:function(){return De},m:function(){return X},n:function(){return ee},o:function(){return j},p:function(){return G},q:function(){return Y},r:function(){return q},s:function(){return K},t:function(){return me},u:function(){return $},v:function(){return J},w:function(){return W},x:function(){return we},y:function(){return Ke},z:function(){return T}});var r=n(51366),i=n(88256),a=n(78053),o=n(32070),s=n(7182),u=n(30359),l=n(58830),c=n(46001),f=n(8965),d=n(68673),h=n(94978),m=n(19980),p=n(62717),g=n(91772),D=n(20031),y=n(74304),w=n(67666),x=n(89542),F=n(90819),C=n(14685),A=n(38028),b=n(53736),S=n(8108),E=n(17126);class v{constructor(e){this.value=e}}class I{constructor(e){this.value=e}}const k=I,T=v,N={type:"VOID"},B={type:"BREAK"},H={type:"CONTINUE"};function _(e,t,n){return""===t||null==t||t===n||t===n?e:e=e.split(t).join(n)}function M(e){return e instanceof u.Rm}function Z(e){return e instanceof o.P}function V(e){return!!(R(e)||U(e)||Q(e)||X(e)||ee(e)||P(e)||null===e||e===N||"number"==typeof e)}function L(e,t){return void 0===e?t:e}function O(e){return null==e?"":j(e)||Y(e)?"Array":Q(e)?"Date":ee(e)?"Time":X(e)?"DateOnly":R(e)?"String":P(e)?"Boolean":U(e)?"Number":"esri.arcade.Attachment"===e?.declaredClass?"Attachment":"esri.arcade.Portal"===e?.declaredClass?"Portal":"esri.arcade.Dictionary"===e?.declaredClass?"Dictionary":W(e)?"KnowledgeGraph":e instanceof o.P?"Module":q(e)?"Feature":e instanceof w.Z?"Point":e instanceof x.Z?"Polygon":e instanceof F.Z?"Polyline":e instanceof y.Z?"Multipoint":e instanceof g.Z?"Extent":M(e)?"Function":$(e)?"FeatureSet":K(e)?"FeatureSetCollection":e===N?"":"number"==typeof e&&isNaN(e)?"Number":"Unrecognized Type"}function R(e){return"string"==typeof e||e instanceof String}function P(e){return"boolean"==typeof e}function U(e){return"number"==typeof e}function z(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}function G(e){return e instanceof D.Z}function j(e){return e instanceof Array}function q(e){return"esri.arcade.Feature"===e?.arcadeDeclaredClass}function $(e){return"esri.arcade.featureset.support.FeatureSet"===e?.declaredRootClass}function J(e){return"esri.arcade.Dictionary"===e?.declaredClass}function K(e){return"esri.arcade.featureSetCollection"===e?.declaredRootClass}function W(e){return"esri.rest.knowledgeGraph.KnowledgeGraph"===e?.declaredClass}function Y(e){return e instanceof l.Z}function Q(e){return e instanceof a.iG}function X(e){return e instanceof m.u}function ee(e){return e instanceof p.n}function te(e){return null!=e&&"object"==typeof e}function ne(e){return e instanceof Date}function re(e,t,n,r,i){if(e.lengthn)throw new s.aV(r,s.rH.WrongNumberOfParameters,i)}function ie(e){return e<0?-Math.round(-e):Math.round(e)}function ae(){let e=Date.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replaceAll(/[xy]/g,(t=>{const n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===t?n:3&n|8).toString(16)}))}function oe(e,t){return isNaN(e)||null==t||""===t?e.toString():(t=_(t,"‰",""),t=_(t,"¤",""),(0,h.WU)(e,{pattern:t}))}function se(e,t){return null==t||""===t?e.toISOString(!0):e.toFormat(ue(t),{locale:(0,S.Kd)(),numberingSystem:"latn"})}function ue(e,t=!1){e=e.replaceAll(/LTS|LT|LL?L?L?|l{1,4}/g,"[$&]");let n="";const r=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|Z{1,5}|.)/g;for(const i of e.match(r)||[])switch(i){case"D":n+="d";break;case"DD":n+="dd";break;case"DDD":n+="o";break;case"d":n+="c";break;case"ddd":n+="ccc";break;case"dddd":n+="cccc";break;case"M":n+="L";break;case"MM":n+="LL";break;case"MMM":n+="LLL";break;case"MMMM":n+="LLLL";break;case"YY":n+="yy";break;case"Y":case"YYYY":n+="yyyy";break;case"Q":n+="q";break;case"Z":n+="Z";break;case"ZZ":n+="ZZ";break;case"ZZZ":n+="ZZZ";break;case"ZZZZ":n+=t?"[ZZZZ]":"ZZZZ";break;case"ZZZZZ":n+=t?"[ZZZZZ]":"ZZZZZ";break;case"S":n+="'S'";break;case"SS":n+="'SS'";break;case"SSS":n+="u";break;case"A":case"a":n+="a";break;case"m":case"mm":case"h":case"hh":case"H":case"HH":case"s":case"ss":case"X":case"x":n+=i;break;default:i.length>=2&&"["===i.slice(0,1)&&"]"===i.slice(-1)?n+=`'${i.slice(1,-1)}'`:n+=`'${i}'`}return n}function le(e,t,n){switch(n){case">":return e>t;case"<":return e=":return e>=t;case"<=":return e<=t}return!1}function ce(e,t,n){if(null===e){if(null===t||t===N)return le(null,null,n);if(U(t))return le(0,t,n);if(R(t))return le(0,ge(t),n);if(P(t))return le(0,ge(t),n);if(Q(t))return le(0,t.toNumber(),n);if(ee(t))return le(e,t.toNumber(),n);if(X(t))return le(e,t.toNumber(),n)}if(e===N){if(null===t||t===N)return le(null,null,n);if(U(t))return le(0,t,n);if(R(t))return le(0,ge(t),n);if(P(t))return le(0,ge(t),n);if(Q(t))return le(0,t.toNumber(),n);if(ee(t))return le(e,t.toNumber(),n);if(X(t))return le(e,t.toNumber(),n)}else if(U(e)){if(U(t))return le(e,t,n);if(P(t))return le(e,ge(t),n);if(null===t||t===N)return le(e,0,n);if(R(t))return le(e,ge(t),n);if(Q(t))return le(e,t.toNumber(),n);if(ee(t))return le(e,t.toNumber(),n);if(X(t))return le(e,t.toNumber(),n)}else if(R(e)){if(R(t))return le(de(e),de(t),n);if(Q(t))return le(ge(e),t.toNumber(),n);if(ee(t))return le(ge(e),t.toNumber(),n);if(X(t))return le(ge(e),t.toNumber(),n);if(U(t))return le(ge(e),t,n);if(null===t||t===N)return le(ge(e),0,n);if(P(t))return le(ge(e),ge(t),n)}else if(Q(e)){if(Q(t))return e.timeZone!==t.timeZone&&(e.isUnknownTimeZone?e=a.iG.arcadeDateAndZoneToArcadeDate(e,t.timeZone):t.isUnknownTimeZone&&(t=a.iG.arcadeDateAndZoneToArcadeDate(t,e.timeZone))),le(e.toNumber(),t.toNumber(),n);if(null===t||t===N)return le(e.toNumber(),0,n);if(U(t))return le(e.toNumber(),t,n);if(P(t))return le(e.toNumber(),ge(t),n);if(R(t))return le(e.toNumber(),ge(t),n);if(ee(t))throw new s.aV(null,s.rH.CannotCompareDateAndTime,null);if(X(t))return le(e.toNumber(),t.toNumber(),n)}else if(P(e)){if(P(t))return le(e,t,n);if(U(t))return le(ge(e),ge(t),n);if(Q(t))return le(ge(e),t.toNumber(),n);if(ee(t))return le(ge(e),t.toNumber(),n);if(X(t))return le(ge(e),t.toNumber(),n);if(null===t||t===N)return le(ge(e),0,n);if(R(t))return le(ge(e),ge(t),n)}else if(X(e)){if(Q(t))return le(e.toNumber(),t.toNumber(),n);if(null===t||t===N)return le(e.toNumber(),0,n);if(U(t))return le(e.toNumber(),t,n);if(P(t))return le(e.toNumber(),ge(t),n);if(R(t))return le(e.toNumber(),ge(t),n);if(ee(t))throw new s.aV(null,s.rH.CannotCompareDateAndTime,null);if(X(t))return le(e.toNumber(),t.toNumber(),n)}else if(ee(e)){if(Q(t))throw new s.aV(null,s.rH.CannotCompareDateAndTime,null);if(null===t||t===N)return le(e.toNumber(),0,n);if(U(t))return le(e.toNumber(),t,n);if(P(t))return le(e.toNumber(),ge(t),n);if(R(t))return le(e.toNumber(),ge(t),n);if(ee(t))return le(e.toNumber(),t.toNumber(),n);if(X(t))throw new s.aV(null,s.rH.CannotCompareDateAndTime,null)}return!!fe(e,t)&&("<="===n||">="===n)}function fe(e,t){if(e===t)return!0;if(null===e&&t===N||null===t&&e===N)return!0;if(Q(e)&&Q(t))return e.equals(t);if(ee(e)&&ee(t))return e.equals(t);if(X(e)&&X(t))return e.equals(t);if(e instanceof c.Z)return e.equalityTest(t);if(e instanceof f.Z)return e.equalityTest(t);if(e instanceof w.Z&&t instanceof w.Z){const n=e.cache._arcadeCacheId,r=t.cache._arcadeCacheId;if(null!=n)return n===r}if(te(e)&&te(t)){if(e._arcadeCacheId===t._arcadeCacheId&&void 0!==e._arcadeCacheId&&null!==e._arcadeCacheId)return!0;if(e._underlyingGraphic===t._underlyingGraphic&&void 0!==e._underlyingGraphic&&null!==e._underlyingGraphic)return!0}return!1}function de(e,t){if(R(e))return e;if(null===e)return"";if(U(e))return oe(e,t);if(P(e))return e.toString();if(Q(e))return se(e,t);if(ee(e))return e.toFormat(t);if(X(e))return e.toFormat(t);if(e instanceof D.Z)return JSON.stringify(e.toJSON());if(j(e)){const t=[];for(let n=0;ne.key===t.key?0:"spatialReference"===e.key?1:"spatialReference"===t.key||e.keyt.key?1:0));if(j(e)){const t=[];for(let r=0;r0)return e;return null}if(e instanceof F.Z){if(0===e.paths.length)return null;for(const t of e.paths)if(t.length>0)return e;return null}return e instanceof y.Z?0===e.points.length?null:e:e instanceof g.Z?"NaN"===e.xmin||null===e.xmin||isNaN(e.xmin)?null:e:null}function Fe(e,t){if(!e)return t;if(!e.domain)return t;let n=null,r=null;if(Q(t))n=t.toNumber();else if(X(t))n=t.toString();else if(ee(t))n=t.toStorageString();else if("string"===e.field.type||"esriFieldTypeString"===e.field.type)n=de(t);else{if(null==t)return null;if(""===t)return t;n=ge(t)}for(let t=0;te[l]===r&&(i=e.domains?.[o.name],i&&"inherited"===i.type&&(i=be(o.name,t),a=!0),!0))),a||i||(i=be(e,t)),{field:o,domain:i}}function be(e,t){let n;return t.fields.some((t=>(t.name.toLowerCase()===e.toLowerCase()&&(n=t.domain),!!n))),n}function Se(e,t){t||(t={}),"function"==typeof t&&(t={cmp:t});const n="boolean"==typeof t.cycles&&t.cycles,r=t.cmp&&(i=t.cmp,function(e){return function(t,n){const r={key:t,value:e[t]},a={key:n,value:e[n]};return i(r,a)}});var i;const a=[];return function e(t){if(t?.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0===t)return;if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);let i,o;if(Array.isArray(t)){for(o="[",i=0;i0&&(a=e[0].spatialReference,n=e[0].hasZ,r=e[0].hasM)}else if(e instanceof f.Z)i=e._elements,i.length>0&&(n=e._hasZ,r=e._hasM,a=e.get(0).spatialReference);else{if(!Y(e))throw new s.aV(null,s.rH.InvalidParameter,null);for(const t of e.toArray())ve(i,t);i.length>0&&(a=e.get(0).spatialReference,n=!0===e.get(0).hasZ,r=!0===e.get(0).hasM)}return 0===i.length?null:((0,A.bu)(i)||(i=i.slice(0).reverse()),new x.Z({rings:[i],spatialReference:a,hasZ:n,hasM:r}))}return e}function ke(e,t){if(j(e)||Y(e)){let n=!1,r=!1,i=[],a=t;if(j(e)){for(const t of e)ve(i,t);i.length>0&&(a=e[0].spatialReference,n=!0===e[0].hasZ,r=!0===e[0].hasM)}else if(e instanceof f.Z)i=e._elements,i.length>0&&(n=e._hasZ,r=e._hasM,a=e.get(0).spatialReference);else if(Y(e)){for(const t of e.toArray())ve(i,t);i.length>0&&(a=e.get(0).spatialReference,n=!0===e.get(0).hasZ,r=!0===e.get(0).hasM)}return 0===i.length?null:new F.Z({paths:[i],spatialReference:a,hasZ:n,hasM:r})}return e}function Te(e,t){if(j(e)||Y(e)){let n=!1,r=!1,i=[],a=t;if(j(e)){for(const t of e)ve(i,t);i.length>0&&(a=e[0].spatialReference,n=!0===e[0].hasZ,r=!0===e[0].hasM)}else if(e instanceof f.Z)i=e._elements,i.length>0&&(n=e._hasZ,r=e._hasM,a=e.get(0).spatialReference);else if(Y(e)){for(const t of e.toArray())ve(i,t);i.length>0&&(a=e.get(0).spatialReference,n=!0===e.get(0).hasZ,r=!0===e.get(0).hasM)}return 0===i.length?null:new y.Z({points:i,spatialReference:a,hasZ:n,hasM:r})}return e}function Ne(e,t=!1){const n=[];if(null===e)return n;if(!0===j(e)){for(let r=0;r{setTimeout((()=>{t(e)}),0)}))):e}function _e(e,t,n){switch(n){case"&":return e&t;case"|":return e|t;case"^":return e^t;case"<<":return e<>":return e>>t;case">>>":return e>>>t}}function Me(e,t=null){return null==e?null:P(e)||U(e)||R(e)?e:e instanceof D.Z?!0===t?.keepGeometryType?e:e.toJSON():e instanceof l.Z?e.toArray().map((e=>Me(e,t))):e instanceof Array?e.map((e=>Me(e,t))):ne(e)?e:Q(e)?e.toJSDate():ee(e)?e.toString():X(e)?e.toJSDate():null!==e&&"object"==typeof e&&void 0!==e.castAsJson?e.castAsJson(t):null}async function Ze(e,t,n,r,i){const a=await Ve(e,t,n);i[r]=a}async function Ve(e,t=null,n=null){if(e instanceof l.Z&&(e=e.toArray()),null==e)return null;if(V(e)||e instanceof D.Z||ne(e)||Q(e))return Me(e,n);if(e instanceof Array){const r=[],i=[];for(const a of e)null===a||V(a)||a instanceof D.Z||ne(a)||Q(a)?i.push(Me(a,n)):(i.push(null),r.push(Ze(a,t,n,i.length-1,i)));return r.length>0&&await Promise.all(r),i}return null!==e&&"object"==typeof e&&void 0!==e.castAsJsonAsync?e.castAsJsonAsync(t,n):null}function Le(e){return Oe(e)?e.parent:e}function Oe(e){return e&&"declaredClass"in e&&"esri.layers.support.SubtypeSublayer"===e.declaredClass}function Re(e){return e&&"declaredClass"in e&&"esri.layers.SubtypeGroupLayer"===e.declaredClass}function Pe(e,t,n){const r=Le(e.fullSchema());return null===r?null:r.fields?Ae(t,r,e,n):null}function Ue(e){const t=Le(e.fullSchema());return null===t?null:t.fields?t.subtypeField?{subtypeField:t.subtypeField,subtypes:t.subtypes?t.subtypes.map((e=>({name:e.name,code:e.code}))):[]}:t.typeIdField?{subtypeField:t.typeIdField,subtypes:t.types?t.types.map((e=>({name:e.name,code:e.id}))):[]}:null:null}function ze(e,t,n,r){const i=Le(e.fullSchema());if(null===i)return null;if(!i.fields)return null;const a=Ae(t,i,e,r);if(void 0===n)try{n=e.field(t)}catch(e){return null}return Fe(a,n)}function Ge(e,t,n,r){const i=Le(e.fullSchema());if(null===i)return null;if(!i.fields)return null;if(void 0===n){try{n=e.field(t)}catch(e){return null}return n}return Ce(Ae(t,i,e,r),n)}function je(e){return e?.timeZone??"system"}function qe(e){const t=Le(e.fullSchema());if(null===t)return null;if(!t.fields)return null;const n=[];for(const e of t.fields)n.push((0,d.Sh)(e));return{objectIdField:t.objectIdField,globalIdField:t.globalIdField??"",geometryType:void 0===d.q2[t.geometryType]?"":d.q2[t.geometryType],fields:n}}function $e(e,t){return"system"===e&&(e=a.iG.systemTimeZoneCanonicalName),{version:Je,engineVersion:i.i8,timeZone:e,spatialReference:t instanceof C.Z?t.toJSON():t,application:r.default.applicationName??"",engine:"web",locale:(0,S.Kd)()}}const Je="1.24",Ke=Object.freeze(Object.defineProperty({__proto__:null,ImplicitResultE:I,ReturnResultE:v,absRound:ie,arcadeVersion:Je,autoCastArrayOfPointsToMultiPoint:Te,autoCastArrayOfPointsToPolygon:Ie,autoCastArrayOfPointsToPolyline:ke,autoCastFeatureToGeometry:Ee,binaryOperator:_e,breakResult:B,castAsJson:Me,castAsJsonAsync:Ve,continueResult:H,defaultExecutingContext:$e,defaultTimeZone:je,defaultUndefined:L,equalityTest:fe,featureDomainCodeLookup:Ge,featureDomainValueLookup:ze,featureFullDomain:Pe,featureSchema:qe,featureSubtypes:Ue,fixNullGeometry:xe,fixSpatialReference:we,formatDate:se,formatNumber:oe,generateUUID:ae,getDomain:Ae,getDomainCode:Ce,getDomainValue:Fe,getType:O,greaterThanLessThan:ce,implicitResult:k,isArray:j,isBoolean:P,isDate:Q,isDateOnly:X,isDictionary:J,isFeature:q,isFeatureSet:$,isFeatureSetCollection:K,isFunctionParameter:M,isGeometry:G,isImmutableArray:Y,isInteger:z,isJsDate:ne,isKnowledgeGraph:W,isModule:Z,isNumber:U,isObject:te,isSimpleType:V,isString:R,isSubtypeGrouplayer:Re,isSubtypeSublayer:Oe,isTime:ee,multiReplace:_,parseGeometryFromJson:function(e,t){const n=JSON.parse(e);return n&&!n.spatialReference&&(n.spatialReference=t),(0,b.im)(n)},pcCheck:re,returnResult:T,stableStringify:Se,standardiseDateFormat:ue,tick:He,toBoolean:ye,toDate:De,toNumber:ge,toNumberArray:he,toString:de,toStringArray:Ne,toStringExplicit:me,voidOperation:N},Symbol.toStringTag,{value:"Module"}))},94978:function(e,t,n){n.d(t,{Qc:function(){return c},WU:function(){return s},lt:function(){return l}});var r=n(21130),i=n(8108);const a={ar:[".",","],bg:[","," "],bs:[",","."],ca:[",","."],cs:[","," "],da:[",","."],de:[",","."],"de-ch":[".","’"],el:[",","."],en:[".",","],"en-au":[".",","],es:[",","."],"es-mx":[".",","],et:[","," "],fi:[","," "],fr:[","," "],"fr-ch":[","," "],he:[".",","],hi:[".",",","#,##,##0.###"],hr:[",","."],hu:[","," "],id:[",","."],it:[",","."],"it-ch":[".","’"],ja:[".",","],ko:[".",","],lt:[","," "],lv:[","," "],mk:[",","."],nb:[","," "],nl:[",","."],pl:[","," "],pt:[",","."],"pt-pt":[","," "],ro:[",","."],ru:[","," "],sk:[","," "],sl:[",","."],sr:[",","."],sv:[","," "],th:[".",","],tr:[",","."],uk:[","," "],vi:[",","."],zh:[".",","]};function o(e=(0,i.Kd)()){let t=(e=e.toLowerCase())in a;if(!t){const n=e.split("-");n.length>1&&n[0]in a&&(e=n[0],t=!0),t||(e="en")}const[n,r,o="#,##0.###"]=a[e];return{decimal:n,group:r,pattern:o}}function s(e,t){const n=o((t={...t}).locale);t.customs=n;const r=t.pattern||n.pattern;return isNaN(e)||Math.abs(e)===1/0?null:function(e,t,n){const r=(n=n||{}).customs.group,i=n.customs.decimal,a=t.split(";"),o=a[0];if((t=a[e<0?1:0]||"-"+o).includes("%"))e*=100;else if(t.includes("‰"))e*=1e3;else{if(t.includes("¤"))throw new Error("currency notation not supported");if(t.includes("E"))throw new Error("exponential notation not supported")}const s=u,l=o.match(s);if(!l)throw new Error("unable to find a number expression in pattern: "+t);return!1===n.fractional&&(n.places=0),t.replace(s,function(e,t,n){!0===(n=n||{}).places&&(n.places=0),n.places===1/0&&(n.places=6);const r=t.split("."),i="string"==typeof n.places&&n.places.indexOf(",");let a=n.places;i?a=n.places.substring(i+1):+a>=0||(a=(r[1]||[]).length),n.round<0||(e=Number(e.toFixed(Number(a))));const o=String(Math.abs(e)).split("."),s=o[1]||"";if(r[1]||n.places){i&&(n.places=n.places.substring(0,i));const e=void 0!==n.places?n.places:r[1]&&r[1].lastIndexOf("0")+1;+e>s.length&&(o[1]=s.padEnd(Number(e),"0")),+ao[0].length&&(o[0]=o[0].padStart(l,"0")),u.includes("#")||(o[0]=o[0].substr(o[0].length-l)));let c,f,d=r[0].lastIndexOf(",");if(-1!==d){c=r[0].length-d-1;const e=r[0].substr(0,d);d=e.lastIndexOf(","),-1!==d&&(f=e.length-d-1)}const h=[];for(let e=o[0];e;){const t=e.length-c;h.push(t>0?e.substr(t):e),e=t>0?e.slice(0,t):"",f&&(c=f,f=void 0)}return o[0]=h.reverse().join(n.group||","),o.join(n.decimal||".")}(e,l[0],{decimal:i,group:r,places:n.places,round:n.round}))}(e,r,t)}const u=/[#0,]*[#0](?:\.0*#*)?/;function l(e){const t=o((e=e||{}).locale),n=e.pattern||t.pattern,i=t.group,a=t.decimal;let s=1;if(n.includes("%"))s/=100;else if(n.includes("‰"))s/=1e3;else if(n.includes("¤"))throw new Error("currency notation not supported");const l=n.split(";");1===l.length&&l.push("-"+l[0]);const c=d(l,(t=>(t="(?:"+(0,r.Qs)(t,".")+")").replace(u,(t=>{const n={signed:!1,separator:e.strict?i:[i,""],fractional:e.fractional,decimal:a,exponent:!1},r=t.split(".");let o=e.places;1===r.length&&1!==s&&(r[1]="###"),1===r.length||0===o?n.fractional=!1:(void 0===o&&(o=e.pattern?r[1].lastIndexOf("0")+1:1/0),o&&null==e.fractional&&(n.fractional=!0),!e.places&&+o1&&(n.groupSize=u.pop().length,u.length>1&&(n.groupSize2=u.pop().length)),"("+function(e){"places"in(e=e||{})||(e.places=1/0),"string"!=typeof e.decimal&&(e.decimal="."),"fractional"in e&&!String(e.places).startsWith("0")||(e.fractional=[!0,!1]),"exponent"in e||(e.exponent=[!0,!1]),"eSigned"in e||(e.eSigned=[!0,!1]);const t=f(e),n=d(e.fractional,(t=>{let n="";return t&&0!==e.places&&(n="\\"+e.decimal,e.places===1/0?n="(?:"+n+"\\d+)?":n+="\\d{"+e.places+"}"),n}),!0);let r=t+n;return n&&(r="(?:(?:"+r+")|(?:"+n+"))"),r+d(e.exponent,(t=>t?"([eE]"+f({signed:e.eSigned})+")":""))}(n)+")"}))),!0);return{regexp:c.replaceAll(/[\xa0 ]/g,"[\\s\\xa0]"),group:i,decimal:a,factor:s}}function c(e,t){const n=l(t),r=new RegExp("^"+n.regexp+"$").exec(e);if(!r)return NaN;let i=r[1];if(!r[1]){if(!r[2])return NaN;i=r[2],n.factor*=-1}return i=i.replaceAll(new RegExp("["+n.group+"\\s\\xa0]","g"),"").replace(n.decimal,"."),Number(i)*n.factor}function f(e){return"signed"in(e=e||{})||(e.signed=[!0,!1]),"separator"in e?"groupSize"in e||(e.groupSize=3):e.separator="",d(e.signed,(e=>e?"[-+]":""),!0)+d(e.separator,(t=>{if(!t)return"(?:\\d+)";" "===(t=(0,r.Qs)(t))?t="\\s":" "===t&&(t="\\s\\xa0");const n=e.groupSize,i=e.groupSize2;if(i){const e="(?:0|[1-9]\\d{0,"+(i-1)+"}(?:["+t+"]\\d{"+i+"})*["+t+"]\\d{"+n+"})";return n-i>0?"(?:"+e+"|(?:0|[1-9]\\d{0,"+(n-1)+"}))":e}return"(?:0|[1-9]\\d{0,"+(n-1)+"}(?:["+t+"]\\d{"+n+"})*)"}),!0)}const d=(e,t,n)=>{if(!(e instanceof Array))return t(e);const r=[];for(let n=0;n"("+(t?"?:":"")+e+")"},19980:function(e,t,n){n.d(t,{u:function(){return s}});var r=n(78053),i=n(8108),a=n(17126);function o(e){e=e.replaceAll(/LTS|LT|LL?L?L?|l{1,4}/g,"[$&]");let t="";const n=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;for(const r of e.match(n)||[])switch(r){case"D":t+="d";break;case"DD":t+="dd";break;case"DDD":t+="o";break;case"d":t+="c";break;case"ddd":t+="ccc";break;case"dddd":t+="cccc";break;case"M":t+="L";break;case"MM":t+="LL";break;case"MMM":t+="LLL";break;case"MMMM":t+="LLLL";break;case"YY":t+="yy";break;case"Y":case"YYYY":t+="yyyy";break;case"Q":t+="q";break;case"X":case"x":t+=r;break;default:r.length>=2&&"["===r.slice(0,1)&&"]"===r.slice(-1)?t+=`'${r.slice(1,-1)}'`:t+=`'${r}'`}return t}class s{constructor(e,t,n){this._year=e,this._month=t,this._day=n,this.declaredRootClass="esri.core.sql.dateonly"}get month(){return this._month}get monthJS(){return this._month-1}get year(){return this._year}get day(){return this._day}get isValid(){return this.toDateTime("unknown").isValid}equals(e){return e instanceof s&&e.day===this.day&&e.month===this.month&&e.year===this.year}clone(){return new s(this._year,this._month,this._day)}toDateTime(e){return a.ou.fromObject({day:this.day,month:this.month,year:this.year},{zone:(0,r.Qn)(e)})}toDateTimeLuxon(e){return a.ou.fromObject({day:this.day,month:this.month,year:this.year},{zone:(0,r.Qn)(e)})}toString(){return`${this.year.toString().padStart(4,"0")}-${this.month.toString().padStart(2,"0")}-${this.day.toString().padStart(2,"0")}`}toFormat(e=null,t=!0){if(null===e||""===e)return this.toString();if(t&&(e=o(e)),!e)return"";const n=this.toDateTime("unknown");return r.iG.dateTimeToArcadeDate(n).toFormat(e,{locale:(0,i.Kd)(),numberingSystem:"latn"})}toArcadeDate(){const e=this.toDateTime("unknown");return r.iG.dateTimeToArcadeDate(e)}toNumber(){return this.toDateTime("unknown").toMillis()}toJSDate(){return this.toDateTime("unknown").toJSDate()}toStorageFormat(){return this.toFormat("yyyy-LL-dd",!1)}toSQLValue(){return this.toFormat("yyyy-LL-dd",!1)}toSQLWithKeyword(){return"date '"+this.toFormat("yyyy-LL-dd",!1)+"'"}plus(e,t){return s.fromDateTime(this.toUTCDateTime().plus({[e]:t}))}toUTCDateTime(){return a.ou.utc(this.year,this.month,this.day,0,0,0,0)}difference(e,t){switch(t.toLowerCase()){case"days":case"day":case"d":return this.toUTCDateTime().diff(e.toUTCDateTime(),"days").days;case"months":case"month":return this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months;case"minutes":case"minute":case"m":return"M"===t?this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months:this.toUTCDateTime().diff(e.toUTCDateTime(),"minutes").minutes;case"seconds":case"second":case"s":return this.toUTCDateTime().diff(e.toUTCDateTime(),"seconds").seconds;case"milliseconds":case"millisecond":case"ms":default:return this.toUTCDateTime().diff(e.toUTCDateTime(),"milliseconds").milliseconds;case"hours":case"hour":case"h":return this.toUTCDateTime().diff(e.toUTCDateTime(),"hours").hours;case"years":case"year":case"y":return this.toUTCDateTime().diff(e.toUTCDateTime(),"years").years}}static fromMilliseconds(e){const t=a.ou.fromMillis(e,{zone:a.Qf.utcInstance});return t.isValid?s.fromParts(t.year,t.month,t.day):null}static fromSeconds(e){const t=a.ou.fromSeconds(e,{zone:a.Qf.utcInstance});return t.isValid?s.fromParts(t.year,t.month,t.day):null}static fromReader(e){if(!e)return null;const t=e.split("-");return 3!==t.length?null:new s(parseInt(t[0],10),parseInt(t[1],10),parseInt(t[2],10))}static fromParts(e,t,n){const r=new s(e,t,n);return!1===r.isValid?null:r}static fromDateJS(e){return s.fromParts(e.getFullYear(),e.getMonth()+1,e.getDay())}static fromDateTime(e){return s.fromParts(e.year,e.month,e.day)}static fromSqlTimeStampOffset(e){return this.fromDateTime(e.toDateTime())}static fromString(e,t=null){if(""===e)return null;if(null===e)return null;const n=[];if(t)(t=o(t))&&n.push(t);else if(null===t||""===t){const t=a.ou.fromISO(e,{setZone:!0});return t.isValid?s.fromParts(t.year,t.month,t.day):null}for(const r of n){const n=a.ou.fromFormat(e,t??r);if(n.isValid)return new s(n.year,n.month,n.day)}return null}static fromNow(e="system"){const t=a.ou.fromJSDate(new Date).setZone((0,r.Qn)(e));return new s(t.year,t.month,t.day)}}},62717:function(e,t,n){n.d(t,{n:function(){return s}});var r=n(4080),i=n(8108),a=n(17126);function o(e){if(!e)return"";const t=/(a|A|hh?|HH?|mm?|ss?|SSS|S|.)/g;let n="";for(const r of e.match(t)||[])switch(r){case"SSS":case"m":case"mm":case"h":case"hh":case"H":case"HH":case"s":case"ss":n+=r;break;case"A":case"a":n+="a";break;default:n+=`'${r}'`}return n}class s{constructor(e,t,n,r){this._hour=e,this._minute=t,this._second=n,this._millisecond=r,this.declaredRootClass="esri.core.sql.timeonly"}get hour(){return this._hour}get minute(){return this._minute}get second(){return this._second}get millisecond(){return this._millisecond}equals(e){return e instanceof s&&e.hour===this.hour&&e.minute===this.minute&&e.second===this.second&&e.millisecond===this.millisecond}clone(){return new s(this.hour,this.minute,this.second,this.millisecond)}isValid(){return(0,r.U)(this.hour)&&(0,r.U)(this.minute)&&(0,r.U)(this.second)&&(0,r.U)(this.millisecond)&&this.hour>=0&&this.hour<24&&this.minute>=0&&this.minute<60&&this.second>=0&&this.second<60&&this.millisecond>=0&&this.millisecond<1e3}toString(){return`${this.hour.toString().padStart(2,"0")}:${this.minute.toString().padStart(2,"0")}:${this.second.toString().padStart(2,"0")}`+(this.millisecond>0?"."+this.millisecond.toString().padStart(3,"0"):"")}toSQLValue(){return this.toString()}toSQLWithKeyword(){return`time '${this.hour.toString().padStart(2,"0")}:${this.minute.toString().padStart(2,"0")}:${this.second.toString().padStart(2,"0")}${this.millisecond>0?"."+this.millisecond.toString().padStart(3,"0"):""}'`}toStorageString(){return`${this.hour.toString().padStart(2,"0")}:${this.minute.toString().padStart(2,"0")}:${this.second.toString().padStart(2,"0")}`}toFormat(e=null){return null===e||""===e?this.toString():(e=o(e))?a.ou.local(1970,1,1,this._hour,this._minute,this._second,this._millisecond).toFormat(e,{locale:(0,i.Kd)(),numberingSystem:"latn"}):""}toNumber(){return this.millisecond+1e3*this.second+1e3*this.minute*60+60*this.hour*60*1e3}static fromParts(e,t,n,r){const i=new s(e,t,n,r);return i.isValid()?i:null}static fromReader(e){if(!e)return null;const t=e.split(":");return 3!==t.length?null:new s(parseInt(t[0],10),parseInt(t[1],10),parseInt(t[2],10),0)}static fromMilliseconds(e){if(e>864e5||e<0)return null;const t=Math.floor(e/1e3%60),n=Math.floor(e/6e4%60),r=Math.floor(e/36e5%24),i=Math.floor(e%1e3);return new s(r,n,t,i)}static fromDateJS(e){return new s(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}static fromDateTime(e){return new s(e.hour,e.minute,e.second,e.millisecond)}static fromSqlTimeStampOffset(e){return this.fromDateTime(e.toDateTime())}static fromString(e,t=null){if(""===e)return null;if(null===e)return null;const n=[];t?(t=o(t))&&n.push(t):null!==t&&""!==t||(n.push("HH:mm:ss"),n.push("HH:mm:ss.SSS"),n.push("hh:mm:ss a"),n.push("hh:mm:ss.SSS a"),n.push("HH:mm"),n.push("hh:mm a"),n.push("H:mm"),n.push("h:mm a"),n.push("H:mm:ss"),n.push("h:mm:ss a"),n.push("H:mm:ss.SSS"),n.push("h:mm:ss.SSS a"));for(const t of n){const n=a.ou.fromFormat(e,t);if(n.isValid)return new s(n.hour,n.minute,n.second,n.millisecond)}return null}plus(e,t){switch(e){case"days":case"years":case"months":return this.clone();case"hours":case"minutes":case"seconds":case"milliseconds":return s.fromDateTime(this.toUTCDateTime().plus({[e]:t}))}return null}toUTCDateTime(){return a.ou.utc(1970,1,1,this.hour,this.minute,this.second,this.millisecond)}difference(e,t){switch(t.toLowerCase()){case"days":case"day":case"d":return this.toUTCDateTime().diff(e.toUTCDateTime(),"days").days;case"months":case"month":return this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months;case"minutes":case"minute":case"m":return"M"===t?this.toUTCDateTime().diff(e.toUTCDateTime(),"months").months:this.toUTCDateTime().diff(e.toUTCDateTime(),"minutes").minutes;case"seconds":case"second":case"s":return this.toUTCDateTime().diff(e.toUTCDateTime(),"seconds").seconds;case"milliseconds":case"millisecond":case"ms":default:return this.toUTCDateTime().diff(e.toUTCDateTime(),"milliseconds").milliseconds;case"hours":case"hour":case"h":return this.toUTCDateTime().diff(e.toUTCDateTime(),"hours").hours;case"years":case"year":case"y":return this.toUTCDateTime().diff(e.toUTCDateTime(),"years").years}}}},26057:function(e,t,n){n.r(t),n.d(t,{Dictionary:function(){return a.Z},arcade:function(){return Ot},arcadeFeature:function(){return s.Z},convertFeatureLayerToFeatureSet:function(){return sn},convertJsonToArcade:function(){return ln},convertMapToFeatureSetCollection:function(){return un},convertServiceUrlToWorkspace:function(){return on},createExecContext:function(){return Kt},createFeature:function(){return Wt},createFunction:function(){return Jt},createSyntaxTree:function(){return $t},dependsOnView:function(){return nn},enableFeatureSetOperations:function(){return dn},enableGeometryOperations:function(){return fn},evalSyntaxTree:function(){return Qt},executeAsyncFunction:function(){return en},executeFunction:function(){return Xt},extractFieldNames:function(){return tn},getArcadeType:function(){return qt},getViewInfo:function(){return an},hasGeometryFunctions:function(){return pn},hasGeometryOperations:function(){return Dn},hasVariable:function(){return rn},loadScriptDependencies:function(){return cn},updateExecContext:function(){return Yt}});n(91957);var r=n(32070),i=n(93674),a=n(19249),o=n(7182),s=n(94634),u=n(30359),l=n(94837),c=n(61125),f=n(33556),d=n(56101),h=n(32200),m=n(88256),p=n(4080),g=n(5306),D=n(24653),y=n(17321),w=n(91772),x=n(20031),F=n(74304),C=n(67666),A=n(89542),b=n(90819),S=n(53736);let E=null;function v(e){return 0===m.i8.indexOf("4.")?A.Z.fromExtent(e):new A.Z({spatialReference:e.spatialReference,rings:[[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]]})}function I(e,t){if("polygon"!==e.type&&"polyline"!==e.type&&"extent"!==e.type)return 0;let n=1;(e.spatialReference.vcsWkid||e.spatialReference.latestVcsWkid)&&(n=(0,g._R)(e.spatialReference)/(0,y.c9)(e.spatialReference));let r=0;if("polyline"===e.type)for(const t of e.paths)for(let e=1;e(a=(0,l.I)(a),n(e,r,a),null===a[0]||null===a[1]||E.disjoint(a[0],a[1]))))},e.intersects=function(e,r){return t(e,r,((t,i,a)=>(a=(0,l.I)(a),n(e,r,a),null!==a[0]&&null!==a[1]&&E.intersects(a[0],a[1]))))},e.touches=function(e,r){return t(e,r,((t,i,a)=>(a=(0,l.I)(a),n(e,r,a),null!==a[0]&&null!==a[1]&&E.touches(a[0],a[1]))))},e.crosses=function(e,r){return t(e,r,((t,i,a)=>(a=(0,l.I)(a),n(e,r,a),null!==a[0]&&null!==a[1]&&E.crosses(a[0],a[1]))))},e.within=function(e,r){return t(e,r,((t,i,a)=>(a=(0,l.I)(a),n(e,r,a),null!==a[0]&&null!==a[1]&&E.within(a[0],a[1]))))},e.contains=function(e,r){return t(e,r,((t,i,a)=>(a=(0,l.I)(a),n(e,r,a),null!==a[0]&&null!==a[1]&&E.contains(a[0],a[1]))))},e.overlaps=function(e,r){return t(e,r,((t,i,a)=>(a=(0,l.I)(a),n(e,r,a),null!==a[0]&&null!==a[1]&&E.overlaps(a[0],a[1]))))},e.equals=function(e,n){return t(e,n,((t,r,i)=>((0,l.H)(i,2,2,e,n),i[0]===i[1]||(i[0]instanceof x.Z&&i[1]instanceof x.Z?E.equals(i[0],i[1]):((0,l.k)(i[0])&&(0,l.k)(i[1])||(0,l.n)(i[0])&&(0,l.n)(i[1])||!(!(0,l.m)(i[0])||!(0,l.m)(i[1])))&&i[0].equals(i[1])))))},e.relate=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,3,3,e,n),i[0]instanceof x.Z&&i[1]instanceof x.Z)return E.relate(i[0],i[1],(0,l.j)(i[2]));if(i[0]instanceof x.Z&&null===i[1])return!1;if(i[1]instanceof x.Z&&null===i[0])return!1;if(null===i[0]&&null===i[1])return!1;throw new o.aV(e,o.rH.InvalidParameter,n)}))},e.intersection=function(e,r){return t(e,r,((t,i,a)=>(a=(0,l.I)(a),n(e,r,a),null===a[0]||null===a[1]?null:E.intersect(a[0],a[1]))))},e.union=function(e,n){return t(e,n,((t,r,i)=>{const a=[];if(0===(i=(0,l.I)(i)).length)throw new o.aV(e,o.rH.WrongNumberOfParameters,n);if(1===i.length)if((0,l.o)(i[0])){const t=(0,l.I)(i[0]);for(let r=0;r(a=(0,l.I)(a),n(e,r,a),null!==a[0]&&null===a[1]?(0,p.r1)(a[0]):null===a[0]?null:E.difference(a[0],a[1]))))},e.symmetricdifference=function(e,r){return t(e,r,((t,i,a)=>(a=(0,l.I)(a),n(e,r,a),null===a[0]&&null===a[1]?null:null===a[0]?(0,p.r1)(a[1]):null===a[1]?(0,p.r1)(a[0]):E.symmetricDifference(a[0],a[1]))))},e.clip=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,2,2,e,n),!(i[1]instanceof w.Z)&&null!==i[1])throw new o.aV(e,o.rH.InvalidParameter,n);if(null===i[0])return null;if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);return null===i[1]?null:E.clip(i[0],i[1])}))},e.cut=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,2,2,e,n),!(i[1]instanceof b.Z)&&null!==i[1])throw new o.aV(e,o.rH.InvalidParameter,n);if(null===i[0])return[];if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);return null===i[1]?[(0,p.r1)(i[0])]:E.cut(i[0],i[1])}))},e.area=function(e,n){return t(e,n,((t,r,i)=>{if((0,l.H)(i,1,2,e,n),null===(i=(0,l.I)(i))[0])return 0;if((0,l.o)(i[0])||(0,l.q)(i[0])){const t=(0,l.J)(i[0],e.spatialReference);return null===t?0:E.planarArea(t,(0,p.EI)((0,l.K)(i[1],-1)))}if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);return E.planarArea(i[0],(0,p.EI)((0,l.K)(i[1],-1)))}))},e.areageodetic=function(e,n){return t(e,n,((t,r,i)=>{if((0,l.H)(i,1,2,e,n),null===(i=(0,l.I)(i))[0])return 0;if((0,l.o)(i[0])||(0,l.q)(i[0])){const t=(0,l.J)(i[0],e.spatialReference);return null===t?0:E.geodesicArea(t,(0,p.EI)((0,l.K)(i[1],-1)))}if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);return E.geodesicArea(i[0],(0,p.EI)((0,l.K)(i[1],-1)))}))},e.length=function(e,n){return t(e,n,((t,r,i)=>{if((0,l.H)(i,1,2,e,n),null===(i=(0,l.I)(i))[0])return 0;if((0,l.o)(i[0])||(0,l.q)(i[0])){const t=(0,l.L)(i[0],e.spatialReference);return null===t?0:E.planarLength(t,(0,p.Lz)((0,l.K)(i[1],-1)))}if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);return E.planarLength(i[0],(0,p.Lz)((0,l.K)(i[1],-1)))}))},e.length3d=function(e,n){return t(e,n,((t,r,i)=>{if((0,l.H)(i,1,2,e,n),null===(i=(0,l.I)(i))[0])return 0;if((0,l.o)(i[0])||(0,l.q)(i[0])){const t=(0,l.L)(i[0],e.spatialReference);return null===t?0:!0===t.hasZ?I(t,(0,p.Lz)((0,l.K)(i[1],-1))):E.planarLength(t,(0,p.Lz)((0,l.K)(i[1],-1)))}if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);return!0===i[0].hasZ?I(i[0],(0,p.Lz)((0,l.K)(i[1],-1))):E.planarLength(i[0],(0,p.Lz)((0,l.K)(i[1],-1)))}))},e.lengthgeodetic=function(e,n){return t(e,n,((t,r,i)=>{if((0,l.H)(i,1,2,e,n),null===(i=(0,l.I)(i))[0])return 0;if((0,l.o)(i[0])||(0,l.q)(i[0])){const t=(0,l.L)(i[0],e.spatialReference);return null===t?0:E.geodesicLength(t,(0,p.Lz)((0,l.K)(i[1],-1)))}if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);return E.geodesicLength(i[0],(0,p.Lz)((0,l.K)(i[1],-1)))}))},e.distance=function(e,n){return t(e,n,((t,r,i)=>{i=(0,l.I)(i),(0,l.H)(i,2,3,e,n);let a=i[0];((0,l.o)(i[0])||(0,l.q)(i[0]))&&(a=(0,l.M)(i[0],e.spatialReference));let s=i[1];if(((0,l.o)(i[1])||(0,l.q)(i[1]))&&(s=(0,l.M)(i[1],e.spatialReference)),!(a instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);if(!(s instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);return E.distance(a,s,(0,p.Lz)((0,l.K)(i[2],-1)))}))},e.distancegeodetic=function(e,n){return t(e,n,((t,r,i)=>{i=(0,l.I)(i),(0,l.H)(i,2,3,e,n);const a=i[0],s=i[1];if(!(a instanceof C.Z))throw new o.aV(e,o.rH.InvalidParameter,n);if(!(s instanceof C.Z))throw new o.aV(e,o.rH.InvalidParameter,n);const u=new b.Z({paths:[],spatialReference:a.spatialReference});return u.addPath([a,s]),E.geodesicLength(u,(0,p.Lz)((0,l.K)(i[2],-1)))}))},e.densify=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,2,3,e,n),null===i[0])return null;if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);const a=(0,l.g)(i[1]);if(isNaN(a))throw new o.aV(e,o.rH.InvalidParameter,n);if(a<=0)throw new o.aV(e,o.rH.InvalidParameter,n);return i[0]instanceof A.Z||i[0]instanceof b.Z?E.densify(i[0],a,(0,p.Lz)((0,l.K)(i[2],-1))):i[0]instanceof w.Z?E.densify(v(i[0]),a,(0,p.Lz)((0,l.K)(i[2],-1))):i[0]}))},e.densifygeodetic=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,2,3,e,n),null===i[0])return null;if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);const a=(0,l.g)(i[1]);if(isNaN(a))throw new o.aV(e,o.rH.InvalidParameter,n);if(a<=0)throw new o.aV(e,o.rH.InvalidParameter,n);return i[0]instanceof A.Z||i[0]instanceof b.Z?E.geodesicDensify(i[0],a,(0,p.Lz)((0,l.K)(i[2],-1))):i[0]instanceof w.Z?E.geodesicDensify(v(i[0]),a,(0,p.Lz)((0,l.K)(i[2],-1))):i[0]}))},e.generalize=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,2,4,e,n),null===i[0])return null;if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);const a=(0,l.g)(i[1]);if(isNaN(a))throw new o.aV(e,o.rH.InvalidParameter,n);return E.generalize(i[0],a,(0,l.h)((0,l.K)(i[2],!0)),(0,p.Lz)((0,l.K)(i[3],-1)))}))},e.buffer=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,2,3,e,n),null===i[0])return null;if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);const a=(0,l.g)(i[1]);if(isNaN(a))throw new o.aV(e,o.rH.InvalidParameter,n);return 0===a?(0,p.r1)(i[0]):E.buffer(i[0],a,(0,p.Lz)((0,l.K)(i[2],-1)))}))},e.buffergeodetic=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,2,3,e,n),null===i[0])return null;if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);const a=(0,l.g)(i[1]);if(isNaN(a))throw new o.aV(e,o.rH.InvalidParameter,n);return 0===a?(0,p.r1)(i[0]):E.geodesicBuffer(i[0],a,(0,p.Lz)((0,l.K)(i[2],-1)))}))},e.offset=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,2,6,e,n),null===i[0])return null;if(!(i[0]instanceof A.Z||i[0]instanceof b.Z))throw new o.aV(e,o.rH.InvalidParameter,n);const a=(0,l.g)(i[1]);if(isNaN(a))throw new o.aV(e,o.rH.InvalidParameter,n);const s=(0,l.g)((0,l.K)(i[4],10));if(isNaN(s))throw new o.aV(e,o.rH.InvalidParameter,n);const u=(0,l.g)((0,l.K)(i[5],0));if(isNaN(u))throw new o.aV(e,o.rH.InvalidParameter,n);return E.offset(i[0],a,(0,p.Lz)((0,l.K)(i[2],-1)),(0,l.j)((0,l.K)(i[3],"round")).toLowerCase(),s,u)}))},e.rotate=function(e,n){return t(e,n,((t,r,i)=>{i=(0,l.I)(i),(0,l.H)(i,2,3,e,n);let a=i[0];if(null===a)return null;if(!(a instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);a instanceof w.Z&&(a=A.Z.fromExtent(a));const s=(0,l.g)(i[1]);if(isNaN(s))throw new o.aV(e,o.rH.InvalidParameter,n);const u=(0,l.K)(i[2],null);if(null===u)return E.rotate(a,s);if(u instanceof C.Z)return E.rotate(a,s,u);throw new o.aV(e,o.rH.InvalidParameter,n)}))},e.centroid=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,1,1,e,n),null===i[0])return null;let a=i[0];if(((0,l.o)(i[0])||(0,l.q)(i[0]))&&(a=(0,l.M)(i[0],e.spatialReference)),null===a)return null;if(!(a instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);return a instanceof C.Z?(0,l.x)((0,p.r1)(i[0]),e.spatialReference):a instanceof A.Z?a.centroid:a instanceof b.Z?(0,g.s9)(a):a instanceof F.Z?(0,g.Ay)(a):a instanceof w.Z?a.center:null}))},e.measuretocoordinate=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,2,2,e,n),null===i[0])return null;let s=i[0];if(((0,l.o)(i[0])||(0,l.q)(i[0]))&&(s=(0,l.L)(i[0],e.spatialReference)),null===s)return null;if(!(s instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);if(!(s instanceof b.Z))throw new o.aV(e,o.rH.InvalidParameter,n);if((0,l.b)(!1===i[1]))throw new o.aV(e,o.rH.InvalidParameter,n);const u=(0,D.Tv)(s,i[1]);return u?a.Z.convertObjectToArcadeDictionary(u,(0,l.N)(e),!1,!0):null}))},e.pointtocoordinate=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,2,2,e,n),null===i[0])return null;let s=i[0];if(((0,l.o)(i[0])||(0,l.q)(i[0]))&&(s=(0,l.L)(i[0],e.spatialReference)),null===s)return null;if(!(s instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);if(!(s instanceof b.Z))throw new o.aV(e,o.rH.InvalidParameter,n);const u=i[1];if(null===u)return null;if(!(u instanceof C.Z))throw new o.aV(e,o.rH.InvalidParameter,n);if((0,l.b)(!1===i[1]))throw new o.aV(e,o.rH.InvalidParameter,n);const c=(0,D.zq)(s,u);return c?a.Z.convertObjectToArcadeDictionary(c,(0,l.N)(e),!1,!0):null}))},e.distancetocoordinate=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,2,2,e,n),null===i[0])return null;let s=i[0];if(((0,l.o)(i[0])||(0,l.q)(i[0]))&&(s=(0,l.L)(i[0],e.spatialReference)),null===s)return null;if(!(s instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);if(!(s instanceof b.Z))throw new o.aV(e,o.rH.InvalidParameter,n);if((0,l.b)(!1===i[1]))throw new o.aV(e,o.rH.InvalidParameter,n);const u=(0,D.qt)(s,i[1]);return u?a.Z.convertObjectToArcadeDictionary(u,(0,l.N)(e),!1,!0):null}))},e.multiparttosinglepart=function(e,n){return t(e,n,((t,r,i)=>{i=(0,l.I)(i),(0,l.H)(i,1,1,e,n);const a=[];if(null===i[0])return null;if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);if(i[0]instanceof C.Z)return[(0,l.x)((0,p.r1)(i[0]),e.spatialReference)];if(i[0]instanceof w.Z)return[(0,l.x)((0,p.r1)(i[0]),e.spatialReference)];const s=E.simplify(i[0]);if(s instanceof A.Z){const e=[],t=[];for(let n=0;n{if(i=(0,l.I)(i),(0,l.H)(i,1,1,e,n),null===i[0])return!0;if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);return E.isSimple(i[0])}))},e.simplify=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,1,1,e,n),null===i[0])return null;if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);return E.simplify(i[0])}))},e.convexhull=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,1,1,e,n),null===i[0])return null;if(!(i[0]instanceof x.Z))throw new o.aV(e,o.rH.InvalidParameter,n);return E.convexHull(i[0])}))},e.nearestcoordinate=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,2,2,e,n),!(i[0]instanceof x.Z||null===i[0]))throw new o.aV(e,o.rH.InvalidParameter,n);if(!(i[1]instanceof C.Z||null===i[1]))throw new o.aV(e,o.rH.InvalidParameter,n);if(null===i[0]||null===i[1])return null;const s=E.nearestCoordinate(i[0],i[1]);return null===s||s.isEmpty?null:a.Z.convertObjectToArcadeDictionary({coordinate:s.coordinate,distance:s.distance,sideOfLine:0===s.distance?"straddle":s.isRightSide?"right":"left"},(0,l.N)(e),!1,!0)}))},e.nearestvertex=function(e,n){return t(e,n,((t,r,i)=>{if(i=(0,l.I)(i),(0,l.H)(i,2,2,e,n),!(i[0]instanceof x.Z||null===i[0]))throw new o.aV(e,o.rH.InvalidParameter,n);if(!(i[1]instanceof C.Z||null===i[1]))throw new o.aV(e,o.rH.InvalidParameter,n);if(null===i[0]||null===i[1])return null;const s=E.nearestVertex(i[0],i[1]);return null===s||s.isEmpty?null:a.Z.convertObjectToArcadeDictionary({coordinate:s.coordinate,distance:s.distance,sideOfLine:0===s.distance?"straddle":s.isRightSide?"right":"left"},(0,l.N)(e),!1,!0)}))}}var T=n(63038),N=n(47154),B=n(36054),H=n(78668),_=n(14685);class M extends u.Rm{constructor(e,t){super(),this.paramCount=t,this.fn=e}createFunction(e){return(...t)=>{if(t.length!==this.paramCount)throw new o.aV(e,o.rH.WrongNumberOfParameters,null);return this.fn(...t)}}call(e,t){return this.fn(...t.arguments)}marshalledCall(e,t,n,r){return r(e,t,((t,i,a)=>{a=a.map((t=>!(0,l.i)(t)||t instanceof u.Vg?t:(0,u.aq)(t,e,r)));const o=this.call(n,{arguments:a});return(0,H.y8)(o)?o.then((e=>(0,u.aq)(e,n,r))):o}))}}function Z(e,t,n){try{return n(e,null,t.arguments)}catch(e){throw e}}function V(e,t){try{switch(t.type){case"EmptyStatement":return"lc.voidOperation";case"VariableDeclarator":return function(e,t){let n=null===t.init?null:V(e,t.init);n===l.B&&(n=null);const r=t.id.name.toLowerCase();if(P(r),null!==e.localScope){if(void 0!==e.localScope[r])return"lscope['"+r+"']="+n+"; ";if(void 0!==e.localScope._SymbolsMap[r])return"lscope['"+e.localScope._SymbolsMap[r]+"']="+n+"; ";{const t=z(e);return e.localScope._SymbolsMap[r]=t,e.mangleMap[r]=t,"lscope['"+t+"']="+n+"; "}}if(void 0!==e.globalScope[r])return"gscope['"+r+"']="+n+"; ";if(void 0!==e.globalScope._SymbolsMap[r])return"gscope['"+e.globalScope._SymbolsMap[r]+"']="+n+"; ";if(e.undeclaredGlobalsInFunctions.has(r)){const t=e.undeclaredGlobalsInFunctions.get(r).manglename;return e.globalScope._SymbolsMap[r]=t,e.mangleMap[r]=t,e.undeclaredGlobalsInFunctions.delete(r),"gscope[lang.setAssig('"+t+"', runtimeCtx)]="+n+"; "}const i=z(e);return e.globalScope._SymbolsMap[r]=i,e.mangleMap[r]=i,"gscope['"+i+"']="+n+"; "}(e,t);case"VariableDeclaration":return function(e,t){const n=[];for(let r=0;rnew ne(e),prepare(e,t){let n=e.spatialReference;null==n&&(n=new _.Z({wkid:102100}));const r=K(e.vars,e.customfunctions,t,e.timeZone);return{localStack:[],isAsync:t,exports:c,exportmangle:f,gdefs:{},moduleFactory:s,moduleFactoryMap:u,moduleSingletons:e.moduleSingletons,mangleMap:this.mangles,spatialReference:n,globalScope:r,abortSignal:void 0===e.abortSignal||null===e.abortSignal?{aborted:!1}:e.abortSignal,localScope:null,services:e.services,console:e.console??ee,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,symbols:{symbolCounter:0},depthCounter:e.depthCounter}}};return new Function("context","spatialReference",o).bind(d)}(r.syntax,{interceptor:e.interceptor,services:e.services,moduleFactory:e.moduleFactory,lrucache:e.lrucache,timeZone:e.timeZone??null,libraryResolver:e.libraryResolver,customfunctions:e.customfunctions,vars:{}},e.isAsync)),e.moduleFactoryMap[a]=r.uri;let o="";if(o=e.isAsync?"(yield lang.loadModule('"+a+"', runtimeCtx) ); ":"lang.loadModule('"+a+"', runtimeCtx); ",void 0!==e.globalScope[n])return"gscope['"+n+"']="+o;if(void 0!==e.globalScope._SymbolsMap[n])return"gscope['"+e.globalScope._SymbolsMap[n]+"']="+o;let s="";return e.undeclaredGlobalsInFunctions.has(n)?(s=e.undeclaredGlobalsInFunctions.get(n).manglename,e.undeclaredGlobalsInFunctions.delete(n)):s=z(e),e.globalScope._SymbolsMap[n]=s,e.mangleMap[n]=s,"gscope[lang.setAssig('"+s+"', runtimeCtx)]="+o}(e,t);case"ExportNamedDeclaration":return function(e,t){const n=V(e,t.declaration);if("FunctionDeclaration"===t.declaration.type)e.exports[t.declaration.id.name.toLowerCase()]="function";else if("VariableDeclaration"===t.declaration.type)for(const n of t.declaration.declarations)e.exports[n.id.name.toLowerCase()]="variable";return n}(e,t);case"ReturnStatement":return function(e,t){return null===t.argument?"return lc.voidOperation":"return "+V(e,t.argument)}(e,t);case"IfStatement":return O(e,t);case"ExpressionStatement":return function(e,t){return"AssignmentExpression"===t.expression.type?"lastStatement = lc.voidOperation; "+V(e,t.expression)+"; \n ":(t.expression.type,"lastStatement = "+V(e,t.expression)+"; ")}(e,t);case"AssignmentExpression":return function(e,t){const n=V(e,t.right);let r=null,i="";if("MemberExpression"===t.left.type)return r=V(e,t.left.object),!0===t.left.computed?i=V(e,t.left.property):(i="'"+t.left.property.name+"'",P(t.left.property.name)),"lang.assignmember("+r+","+i+",'"+t.operator+"',"+n+")";if(r=t.left.name.toLowerCase(),P(r),null!==e.localScope){if(void 0!==e.localScope[r])return"lscope['"+r+"']=lang.assign("+n+",'"+t.operator+"', lscope['"+r+"'])";if(void 0!==e.localScope._SymbolsMap[r])return"lscope['"+e.localScope._SymbolsMap[r]+"']=lang.assign("+n+",'"+t.operator+"', lscope['"+e.localScope._SymbolsMap[r]+"'])"}if(void 0!==e.globalScope[r])return"gscope['"+r+"']=lang.assign("+n+",'"+t.operator+"', gscope['"+r+"'])";if(void 0!==e.globalScope._SymbolsMap[r])return"gscope['"+e.globalScope._SymbolsMap[r]+"']=lang.assign("+n+",'"+t.operator+"', gscope['"+e.globalScope._SymbolsMap[r]+"'])";if(null!==e.localScope){if(e.undeclaredGlobalsInFunctions.has(r))return"gscope[lang.chkAssig('"+e.undeclaredGlobalsInFunctions.get(r).manglename+"',runtimeCtx)]=lang.assign("+n+",'"+t.operator+"', gscope['"+e.undeclaredGlobalsInFunctions.get(r).manglename+"'])";const i={manglename:z(e),node:t.argument};return e.undeclaredGlobalsInFunctions.set(r,i),"gscope[lang.chkAssig('"+i.manglename+"',runtimeCtx)]=lang.assign("+n+",'"+t.operator+"', gscope['"+i.manglename+"'])"}throw new o.aV(e,o.rH.InvalidIdentifier,t)}(e,t);case"UpdateExpression":return function(e,t){let n=null,r="";if("MemberExpression"===t.argument.type)return n=V(e,t.argument.object),!0===t.argument.computed?r=V(e,t.argument.property):(r="'"+t.argument.property.name+"'",P(t.argument.property.name)),"lang.memberupdate("+n+","+r+",'"+t.operator+"',"+t.prefix+")";if(n=t.argument.name.toLowerCase(),P(n),null!==e.localScope){if(void 0!==e.localScope[n])return"lang.update(lscope, '"+n+"','"+t.operator+"',"+t.prefix+")";if(void 0!==e.localScope._SymbolsMap[n])return"lang.update(lscope, '"+e.localScope._SymbolsMap[n]+"','"+t.operator+"',"+t.prefix+")"}if(void 0!==e.globalScope[n])return"lang.update(gscope, '"+n+"','"+t.operator+"',"+t.prefix+")";if(void 0!==e.globalScope._SymbolsMap[n])return"lang.update(gscope, '"+e.globalScope._SymbolsMap[n]+"','"+t.operator+"',"+t.prefix+")";if(null!==e.localScope){if(e.undeclaredGlobalsInFunctions.has(n))return"lang.update(gscope,lang.chkAssig( '"+e.undeclaredGlobalsInFunctions.get(n).manglename+"',runtimeCtx),'"+t.operator+"',"+t.prefix+")";const r={manglename:z(e),node:t.argument};return e.undeclaredGlobalsInFunctions.set(n,r),"lang.update(gscope, lang.chkAssig('"+r.manglename+"',runtimeCtx),'"+t.operator+"',"+t.prefix+")"}throw new o.aV(e,o.rH.InvalidIdentifier,t)}(e,t);case"BreakStatement":return"break";case"ContinueStatement":return"continue";case"TemplateLiteral":return function(e,t){try{const n=[];let r=0;for(const i of t.quasis)n.push(i.value?JSON.stringify(i.value.cooked):JSON.stringify("")),!1===i.tail&&(n.push(t.expressions[r]?"lang.castString(lang.aCheck("+V(e,t.expressions[r])+", 'TemplateLiteral'))":""),r++);return"(["+n.join(",")+"]).join('')"}catch(e){throw e}}(e,t);case"TemplateElement":return JSON.stringify(t.value?t.value.cooked:"");case"ForStatement":return function(e,t){let n="lastStatement = lc.voidOperation; \n";null!==t.init&&(n+=V(e,t.init)+"; ");const r=G(e),i=G(e);return n+="var "+r+" = true; ",n+="\n do { ",null!==t.update&&(n+=" if ("+r+"===false) {\n "+V(e,t.update)+" \n}\n "+r+"=false; \n"),null!==t.test&&(n+="var "+i+" = "+V(e,t.test)+"; ",n+="if ("+i+"===false) { break; } else if ("+i+"!==true) { lang.error('"+o.rH.BooleanConditionRequired+"'); }\n"),n+=V(e,t.body),null!==t.update&&(n+="\n "+V(e,t.update)),n+="\n"+r+" = true; \n} while(true); lastStatement = lc.voidOperation; ",n}(e,t);case"ForInStatement":return function(e,t){const n=G(e),r=G(e),i=G(e);let a="var "+n+" = "+V(e,t.right)+";\n";"VariableDeclaration"===t.left.type&&(a+=V(e,t.left));let o="VariableDeclaration"===t.left.type?t.left.declarations[0].id.name:t.left.name;o=o.toLowerCase(),P(o);let s="";null!==e.localScope&&(void 0!==e.localScope[o]?s="lscope['"+o+"']":void 0!==e.localScope._SymbolsMap[o]&&(s="lscope['"+e.localScope._SymbolsMap[o]+"']"));let u="";if(""===s)if(void 0!==e.globalScope[o])s="gscope['"+o+"']";else if(void 0!==e.globalScope._SymbolsMap[o])s="gscope['"+e.globalScope._SymbolsMap[o]+"']";else if(null!==e.localScope)if(e.undeclaredGlobalsInFunctions.has(o))s="gscope['"+e.undeclaredGlobalsInFunctions.get(o).manglename+"']",u=e.undeclaredGlobalsInFunctions.get(o).manglename;else{const n={manglename:z(e),node:t.left};e.undeclaredGlobalsInFunctions.set(o,n),s="gscope['"+n.manglename+"']",u=n.manglename}return u&&(a+="lang.chkAssig('"+u+"',runtimeCtx); \n"),a+="if ("+n+"===null) { lastStatement = lc.voidOperation; }\n ",a+="else if (lc.isArray("+n+") || lc.isString("+n+")) {",a+="var "+r+"="+n+".length; \n",a+="for(var "+i+"=0; "+i+"<"+r+"; "+i+"++) {\n",a+=s+"="+i+";\n",a+=V(e,t.body),a+="\n}\n",a+=" lastStatement = lc.voidOperation; \n",a+=" \n}\n",a+="else if (lc.isImmutableArray("+n+")) {",a+="var "+r+"="+n+".length(); \n",a+="for(var "+i+"=0; "+i+"<"+r+"; "+i+"++) {\n",a+=s+"="+i+";\n",a+=V(e,t.body),a+="\n}\n",a+=" lastStatement = lc.voidOperation; \n",a+=" \n}\n",a+="else if (( "+n+" instanceof lang.Dictionary) || ( "+n+" instanceof lang.Feature)) {",a+="var "+r+"="+n+".keys(); \n",a+="for(var "+i+"=0; "+i+"<"+r+".length; "+i+"++) {\n",a+=s+"="+r+"["+i+"];\n",a+=V(e,t.body),a+="\n}\n",a+=" lastStatement = lc.voidOperation; \n",a+=" \n}\n",e.isAsync&&(a+="else if (lc.isFeatureSet("+n+")) {",a+="var "+r+"="+n+".iterator(runtimeCtx.abortSignal); \n",a+="for(var "+i+"=lang. graphicToFeature( yield "+r+".next(),"+n+", runtimeCtx); "+i+"!=null; "+i+"=lang. graphicToFeature( yield "+r+".next(),"+n+", runtimeCtx)) {\n",a+=s+"="+i+";\n",a+=V(e,t.body),a+="\n}\n",a+=" lastStatement = lc.voidOperation; \n",a+=" \n}\n"),a+="else { lastStatement = lc.voidOperation; } \n",a}(e,t);case"WhileStatement":return function(e,t){let n="lastStatement = lc.voidOperation; \n";const r=G(e);return n+=`\n var ${r} = true;\n do {\n ${r} = ${V(e,t.test)};\n if (${r}==false) {\n break;\n }\n if (${r}!==true) {\n lang.error('${o.rH.BooleanConditionRequired}');\n }\n ${V(e,t.body)}\n }\n while (${r} !== false);\n lastStatement = lc.voidOperation;\n `,n}(e,t);case"Identifier":return function(e,t){try{const n=t.name.toLowerCase();if(P(n),null!==e.localScope){if(void 0!==e.localScope[n])return"lscope['"+n+"']";if(void 0!==e.localScope._SymbolsMap[n])return"lscope['"+e.localScope._SymbolsMap[n]+"']"}if(void 0!==e.globalScope[n])return"gscope['"+n+"']";if(void 0!==e.globalScope._SymbolsMap[n])return"gscope['"+e.globalScope._SymbolsMap[n]+"']";if(null!==e.localScope){if(e.undeclaredGlobalsInFunctions.has(n))return"gscope[lang.chkAssig('"+e.undeclaredGlobalsInFunctions.get(n).manglename+"',runtimeCtx)]";const r={manglename:z(e),node:t.argument};return e.undeclaredGlobalsInFunctions.set(n,r),"gscope[lang.chkAssig('"+r.manglename+"',runtimeCtx)]"}throw new o.OF(e,o.rH.InvalidIdentifier,t)}catch(e){throw e}}(e,t);case"MemberExpression":return function(e,t){try{let n;return!0===t.computed?n=V(e,t.property):(n="'"+t.property.name+"'",P(t.property.name)),"lang.member("+V(e,t.object)+","+n+")"}catch(e){throw e}}(e,t);case"Literal":return null===t.value||void 0===t.value?"null":JSON.stringify(t.value);case"CallExpression":return function(e,t){try{if("MemberExpression"===t.callee.type){let n;!0===t.callee.computed?n=V(e,t.callee.property):(n="'"+t.callee.property.name+"'",P(t.callee.property.name));let r="[";for(let n=0;n0&&(r+=", "),r+=V(e,t.arguments[n]);return r+="]",e.isAsync?"(yield lang.callModuleFunction("+V(e,t.callee.object)+","+r+","+n+",runtimeCtx))":"lang.callModuleFunction("+V(e,t.callee.object)+","+r+","+n+",runtimeCtx)"}if("Identifier"!==t.callee.type)throw new o.OF(e,o.rH.FunctionNotFound,t);const n=t.callee.name.toLowerCase();if("iif"===n)return function(e,t){try{if(3!==t.arguments.length)throw new o.OF(e,o.rH.WrongNumberOfParameters,t);const n=G(e);return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${V(e,t.arguments[0])};\n\n if (${n} === true) {\n return ${V(e,t.arguments[1])};\n }\n else if (${n} === false) {\n return ${V(e,t.arguments[2])};\n }\n else {\n lang.error('ExecutionErrorCodes.BooleanConditionRequired');\n }\n ${e.isAsync?"})}()))":"}()"}`}catch(e){throw e}}(e,t);if("when"===n)return function(e,t){try{if(t.arguments.length<3)throw new o.OF(e,o.rH.WrongNumberOfParameters,t);if(t.arguments.length%2==0)throw new o.OF(e,o.rH.WrongNumberOfParameters,t);const n=G(e);let r="var ";for(let i=0;i3)throw new o.OF(e,o.rH.WrongNumberOfParameters,t);const n=G(e),r=G(e),i=G(e),a=G(e);return 3===t.arguments.length?`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${V(e,t.arguments[0])};\n var ${r} = ${V(e,t.arguments[1])};\n var ${i} = [];\n if (lang.isImmutableArray(${r})) {\n ${i} = ${r}.toArray();\n } else if (lang.isArray(${r})) {\n ${i} = ${r};\n } else {\n lang.error('${o.rH.InvalidParameter}');\n }\n if (${n} === null) {\n return ${V(e,t.arguments[2])};\n }\n for (var ${a} of ${i}) {\n if (lang.isFeature(${n})) {\n if (lang.isString(${a}) === false) {\n return ${V(e,t.arguments[2])};\n }\n if (!${n}.hasField(${a})) {\n return ${V(e,t.arguments[2])};\n }\n ${n} = ${n}.field(${a});\n } else if (lang.isDictionary(${n})) {\n if (lang.isString(${a}) === false) {\n return ${V(e,t.arguments[2])};\n }\n if (!${n}.hasField(${a})) {\n return ${V(e,t.arguments[2])};\n }\n ${n} = ${n}.field(${a});\n } else if (lang.isGeometry(${n})) {\n if (lang.isString(${a}) === false) {\n return ${V(e,t.arguments[2])};\n }\n ${n} = lang.geometryMember(${n}, ${a}, null, null, 2);\n if (${n} === null) {\n return ${V(e,t.arguments[2])};\n }\n if (${n} && ${n}.keystate === "notfound") {\n return ${V(e,t.arguments[2])};\n }\n } else if (lang.isArray(${n})) {\n if (lang.isNumber(${a}) === false) {\n return ${V(e,t.arguments[2])};\n }\n ${n} = ${n}[${a}];\n if (${n} === null || ${n} === undefined) {\n return ${V(e,t.arguments[2])};\n }\n } else if (lang.isImmutableArray(${n})) {\n if (lang.isNumber(${a}) === false) {\n return ${V(e,t.arguments[2])};\n }\n ${n} = ${n}.get(${a});\n if (${n} === null || ${n} === undefined) {\n return ${V(e,t.arguments[2])};\n }\n } else {\n return ${V(e,t.arguments[2])};\n }\n }\n return ${n};\n ${e.isAsync?"})}()))":"}()"}`:`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${V(e,t.arguments[0])};\n if (${n} === null) {\n return ${V(e,t.arguments[1])};\n }\n if (${n} === "") {\n return ${V(e,t.arguments[1])};\n }\n if (${n} === undefined) {\n return ${V(e,t.arguments[1])};\n }\n return ${n};\n ${e.isAsync?"})}()))":"}()"}`}catch(e){throw e}}(e,t);if("decode"===n)return function(e,t){try{if(t.arguments.length<2)throw new o.OF(e,o.rH.WrongNumberOfParameters,t);if(2===t.arguments.length)return`(${V(e,t.arguments[1])})`;if((t.arguments.length-1)%2==0)throw new o.OF(e,o.rH.WrongNumberOfParameters,t);const n=G(e),r=G(e);let i="var ";for(let a=1;a0&&(n+=", "),n+=V(e,t.arguments[r]);return n+="]",e.isAsync?"(yield lang.callfunc("+r+","+n+",runtimeCtx) )":"lang.callfunc("+r+","+n+",runtimeCtx)"}throw new o.OF(e,o.rH.FunctionNotFound,t)}catch(e){throw e}}(e,t);case"UnaryExpression":return function(e,t){try{return"lang.unary("+V(e,t.argument)+",'"+t.operator+"')"}catch(e){throw e}}(e,t);case"BinaryExpression":return function(e,t){try{return"lang.binary("+V(e,t.left)+","+V(e,t.right)+",'"+t.operator+"')"}catch(e){throw e}}(e,t);case"LogicalExpression":return function(e,t){try{if("AssignmentExpression"===t.left.type||"UpdateExpression"===t.left.type)throw new o.OF(e,o.rH.LogicalExpressionOnlyBoolean,t);if("AssignmentExpression"===t.right.type||"UpdateExpression"===t.right.type)throw new o.OF(e,o.rH.LogicalExpressionOnlyBoolean,t);if("&&"===t.operator||"||"===t.operator)return"(lang.logicalCheck("+V(e,t.left)+") "+t.operator+" lang.logicalCheck("+V(e,t.right)+"))";throw new o.OF(null,o.rH.LogicExpressionOrAnd,null)}catch(e){throw e}}(e,t);case"ArrayExpression":return function(e,t){try{const n=[];for(let r=0;r0&&(n+=","),n+="lang.strCheck("+("Identifier"===i.key.type?"'"+i.key.name+"'":V(e,i.key))+",'ObjectExpression'),lang.aCheck("+V(e,i.value)+", 'ObjectExpression')"}return n+="])",n}(e,t);case"Property":return function(e,t){throw new o.OF(e,o.rH.NeverReach,t)}(e,t);case"Array":throw new o.OF(e,o.rH.NeverReach,t);default:throw new o.OF(e,o.rH.Unrecognized,t)}}catch(e){throw e}}function L(e,t){return"BlockStatement"===t.type?V(e,t):"ReturnStatement"===t.type||"BreakStatement"===t.type||"ContinueStatement"===t.type?V(e,t)+"; ":"UpdateExpression"===t.type?"lastStatement = "+V(e,t)+"; ":"ExpressionStatement"===t.type?V(e,t):"ObjectExpression"===t.type?"lastStatement = "+V(e,t)+"; ":V(e,t)+"; "}function O(e,t){if("AssignmentExpression"===t.test.type||"UpdateExpression"===t.test.type)throw new o.OF(e,o.rH.BooleanConditionRequired,t);return`if (lang.mustBoolean(${V(e,t.test)}, runtimeCtx) === true) {\n ${L(e,t.consequent)}\n } `+(null!==t.alternate?"IfStatement"===t.alternate.type?" else "+O(e,t.alternate):` else {\n ${L(e,t.alternate)}\n }\n`:" else {\n lastStatement = lc.voidOperation;\n }\n")}function R(e,t){let n="";for(let r=0;r{throw new o.aV(e,o.rH.Unrecognized,t)}))}catch(e){throw e}},U.decode=function(e,t){try{return Z(e,t,((n,r,i)=>{throw new o.aV(e,o.rH.Unrecognized,t)}))}catch(e){throw e}},U.when=function(e,t){try{return Z(e,t,((n,r,i)=>{throw new o.aV(e,o.rH.Unrecognized,t)}))}catch(e){throw e}},U.defaultvalue=function(e,t){try{return Z(e,t,((n,r,i)=>{throw new o.aV(e,o.rH.Unrecognized,t)}))}catch(e){throw e}};const j={};for(const e in U)j[e]=new u.Bx(U[e]);k(U,Z);for(const e in U)U[e]=new u.Bx(U[e]);const q=function(){};q.prototype=U;const $=function(){};function J(e,t,n){const r={};e||(e={}),n||(n={}),r._SymbolsMap={},r.textformatting=1,r.infinity=1,r.pi=1;for(const e in t)r[e]=1;for(const e in n)r[e]=1;for(const t in e)r[t]=1;return r}function K(e,t,n,r){const i=n?new $:new q;e||(e={}),t||(t={});const o=new a.Z({newline:"\n",tab:"\t",singlequote:"'",doublequote:'"',forwardslash:"/",backwardslash:"\\"});o.immutable=!1,i._SymbolsMap={textformatting:1,infinity:1,pi:1},i.textformatting=o,i.infinity=Number.POSITIVE_INFINITY,i.pi=Math.PI;for(const e in t)i[e]=t[e],i._SymbolsMap[e]=1;for(const t in e)i._SymbolsMap[t]=1,e[t]&&"esri.Graphic"===e[t].declaredClass?i[t]=s.Z.createFromGraphic(e[t],r??null):i[t]=e[t];return i}$.prototype=j;l.x;function W(e,t){const n={mode:t,compiled:!0,functions:{},signatures:[],standardFunction:Z,standardFunctionAsync:Z,evaluateIdentifier:Y};for(let t=0;t0){if("_t"!==n.substr(0,2).toLowerCase()&&void 0!==e.localStack[e.localStack.length-1][n])return e.localStack[e.localStack.length-1][n];const t=e.mangleMap[n];if(void 0!==t&&void 0!==e.localStack[e.localStack.length-1][t])return e.localStack[e.localStack.length-1][t]}if("_t"!==n.substr(0,2).toLowerCase()&&void 0!==e.globalScope[n])return e.globalScope[n];if(1===e.globalScope._SymbolsMap[n])return e.globalScope[n];const r=e.mangleMap[n];return void 0!==r?e.globalScope[r]:void 0}W([f.A],"sync"),W([f.A],"async");let Q=0;const X={isNumber:e=>(0,l.b)(e),isArray:e=>(0,l.o)(e),isImmutableArray:e=>(0,l.q)(e),isFeature:e=>(0,l.r)(e),isString:e=>(0,l.c)(e),isDictionary:e=>(0,l.v)(e),isGeometry:e=>(0,l.p)(e),geometryMember:(e,t,n,r,i=1)=>(0,h.Z)(e,t,n,r,i),error(e){throw new o.aV(null,e,null)},__awaiter:(e,t,n,r)=>new Promise(((n,i)=>{function a(e){try{s(r.next(e))}catch(e){i(e)}}function o(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){e.done?n(e.value):e.value?.then?e.value.then(a,o):(Q++,Q%100==0?setTimeout((()=>{Q=0,a(e.value)}),0):a(e.value))}s((r=r.apply(e,t||[])).next())})),functionDepthchecker:(e,t)=>function(){if(t.depthCounter.depth++,t.localStack.push([]),t.depthCounter.depth>64)throw new o.aV(null,o.rH.MaximumCallDepth,null);const n=e.apply(this,arguments);return(0,H.y8)(n)?n.then((e=>(t.depthCounter.depth--,t.localStack.length=t.localStack.length-1,e))):(t.depthCounter.depth--,t.localStack.length=t.localStack.length-1,n)},chkAssig(e,t){if(void 0===t.gdefs[e])throw new o.aV(t,o.rH.InvalidIdentifier,null);return e},mustBoolean(e,t){if(!0===e||!1===e)return e;throw new o.aV(t,o.rH.BooleanConditionRequired,null)},setAssig:(e,t)=>(t.gdefs[e]=1,e),castString:e=>(0,l.j)(e),aCheck(e,t){if((0,l.i)(e)){if("ArrayExpression"===t)throw new o.aV(null,o.rH.NoFunctionInArray,null);if("ObjectExpression"===t)throw new o.aV(null,o.rH.NoFunctionInDictionary,null);throw new o.aV(null,o.rH.NoFunctionInTemplateLiteral,null)}return e===l.B?null:e},Dictionary:a.Z,Feature:s.Z,UserDefinedCompiledFunction:M,dictionary(e){const t={},n=new Map;for(let r=0;r>":case">>>":case"^":case"&":return(0,l.G)((0,l.g)(e),(0,l.g)(t),n);case"==":case"=":return(0,l.F)(e,t);case"!=":return!(0,l.F)(e,t);case"<":case">":case"<=":case">=":return(0,l.E)(e,t,n);case"+":return(0,l.c)(e)||(0,l.c)(t)?(0,l.j)(e)+(0,l.j)(t):(0,l.g)(e)+(0,l.g)(t);case"-":return(0,l.g)(e)-(0,l.g)(t);case"*":return(0,l.g)(e)*(0,l.g)(t);case"/":return(0,l.g)(e)/(0,l.g)(t);case"%":return(0,l.g)(e)%(0,l.g)(t);default:throw new o.aV(null,o.rH.UnsupportedOperator,null)}},assign(e,t,n){switch(t){case"=":return e===l.B?null:e;case"/=":return(0,l.g)(n)/(0,l.g)(e);case"*=":return(0,l.g)(n)*(0,l.g)(e);case"-=":return(0,l.g)(n)-(0,l.g)(e);case"+=":return(0,l.c)(n)||(0,l.c)(e)?(0,l.j)(n)+(0,l.j)(e):(0,l.g)(n)+(0,l.g)(e);case"%=":return(0,l.g)(n)%(0,l.g)(e);default:throw new o.aV(null,o.rH.UnsupportedOperator,null)}},update(e,t,n,r){const i=(0,l.g)(e[t]);return e[t]="++"===n?i+1:i-1,!1===r?i:"++"===n?i+1:i-1},graphicToFeature:(e,t,n)=>null===e?null:s.Z.createFromGraphicLikeObject(e.geometry,e.attributes,t,n.timeZone),memberupdate(e,t,n,r){let i;if((0,l.o)(e)){if(!(0,l.b)(t))throw new o.aV(null,o.rH.ArrayAccessorMustBeNumber,null);if(t<0&&(t=e.length+t),t<0||t>=e.length)throw new o.aV(null,o.rH.OutOfBounds,null);i=(0,l.g)(e[t]),e[t]="++"===n?i+1:i-1}else if(e instanceof a.Z){if(!1===(0,l.c)(t))throw new o.aV(null,o.rH.KeyAccessorMustBeString,null);if(!0!==e.hasField(t))throw new o.aV(null,o.rH.FieldNotFound,null,{key:t});i=(0,l.g)(e.field(t)),e.setField(t,"++"===n?i+1:i-1)}else if((0,l.r)(e)){if(!1===(0,l.c)(t))throw new o.aV(null,o.rH.KeyAccessorMustBeString,null);if(!0!==e.hasField(t))throw new o.aV(null,o.rH.FieldNotFound,null);i=(0,l.g)(e.field(t)),e.setField(t,"++"===n?i+1:i-1)}else{if((0,l.q)(e))throw new o.aV(null,o.rH.Immutable,null);if(!(e instanceof ne))throw new o.aV(null,o.rH.InvalidIdentifier,null);if(!1===(0,l.c)(t))throw new o.aV(null,o.rH.ModuleAccessorMustBeString,null);if(!0!==e.hasGlobal(t))throw new o.aV(null,o.rH.ModuleExportNotFound,null);i=(0,l.g)(e.global(t)),e.setGlobal(t,"++"===n?i+1:i-1)}return!1===r?i:"++"===n?i+1:i-1},assignmember(e,t,n,r){if((0,l.o)(e)){if(!(0,l.b)(t))throw new o.aV(null,o.rH.ArrayAccessorMustBeNumber,null);if(t<0&&(t=e.length+t),t<0||t>e.length)throw new o.aV(null,o.rH.OutOfBounds,null);if(t===e.length){if("="!==n)throw new o.aV(null,o.rH.OutOfBounds,null);e[t]=this.assign(r,n,e[t])}else e[t]=this.assign(r,n,e[t])}else if(e instanceof a.Z){if(!1===(0,l.c)(t))throw new o.aV(null,o.rH.KeyAccessorMustBeString,null);if(!0===e.hasField(t))e.setField(t,this.assign(r,n,e.field(t)));else{if("="!==n)throw new o.aV(null,o.rH.FieldNotFound,null);e.setField(t,this.assign(r,n,null))}}else if((0,l.r)(e)){if(!1===(0,l.c)(t))throw new o.aV(null,o.rH.KeyAccessorMustBeString,null);if(!0===e.hasField(t))e.setField(t,this.assign(r,n,e.field(t)));else{if("="!==n)throw new o.aV(null,o.rH.FieldNotFound,null);e.setField(t,this.assign(r,n,null))}}else{if((0,l.q)(e))throw new o.aV(null,o.rH.Immutable,null);if(!(e instanceof ne))throw new o.aV(null,o.rH.InvalidIdentifier,null);if(!1===(0,l.c)(t))throw new o.aV(null,o.rH.ModuleAccessorMustBeString,null);if(!e.hasGlobal(t))throw new o.aV(null,o.rH.ModuleExportNotFound,null);e.setGlobal(t,this.assign(r,n,e.global(t)))}},member(e,t){if(null===e)throw new o.aV(null,o.rH.MemberOfNull,null);if(e instanceof a.Z||(0,l.r)(e)){if((0,l.c)(t))return e.field(t);throw new o.aV(null,o.rH.InvalidMemberAccessKey,null)}if(e instanceof x.Z){if((0,l.c)(t))return(0,h.Z)(e,t,null,null);throw new o.aV(null,o.rH.InvalidMemberAccessKey,null)}if((0,l.o)(e)){if((0,l.b)(t)&&isFinite(t)&&Math.floor(t)===t){if(t<0&&(t=e.length+t),t>=e.length||t<0)throw new o.aV(null,o.rH.OutOfBounds,null);return e[t]}throw new o.aV(null,o.rH.InvalidMemberAccessKey,null)}if((0,l.c)(e)){if((0,l.b)(t)&&isFinite(t)&&Math.floor(t)===t){if(t<0&&(t=e.length+t),t>=e.length||t<0)throw new o.aV(null,o.rH.OutOfBounds,null);return e[t]}throw new o.aV(null,o.rH.InvalidMemberAccessKey,null)}if((0,l.q)(e)){if((0,l.b)(t)&&isFinite(t)&&Math.floor(t)===t){if(t<0&&(t=e.length()+t),t>=e.length()||t<0)throw new o.aV(null,o.rH.OutOfBounds,null);return e.get(t)}throw new o.aV(null,o.rH.InvalidMemberAccessKey,null)}if(e instanceof ne){if((0,l.c)(t))return e.global(t);throw new o.aV(null,o.rH.InvalidMemberAccessKey,null)}throw new o.aV(null,o.rH.InvalidMemberAccessKey,null)},callfunc:(e,t,n)=>e.call(n,{arguments:t,preparsed:!0}),loadModule(e,t){const n=t.moduleFactoryMap[e];if(t.moduleSingletons[n])return t.moduleSingletons[n];const r=t.moduleFactory[n]({vars:{},moduleSingletons:t.moduleSingletons,depthCounter:t.depthCounter,console:t.console,abortSignal:t.abortSignal,isAsync:t.isAsync,services:t.services,lrucache:t.lrucache,timeZone:t.timeZone??null,interceptor:t.interceptor},t.spatialReference);return t.moduleSingletons[n]=r,r},callModuleFunction(e,t,n,r){if(!(e instanceof ne))throw new o.aV(null,o.rH.FunctionNotFound,null);const i=e.global(n);if(!1===(0,l.i)(i))throw new o.aV(null,o.rH.CallNonFunction,null);return i.call(r,{preparsed:!0,arguments:t})}};function ee(e){}function te(e,t,n=!1){null===t&&(t={vars:{},customfunctions:{}});let r=null;e.usesModules&&(r=new i.s(null,e.loadedModules));const a={isAsync:n,globalScope:J(t.vars,n?j:U,t.customfunctions),moduleFactory:{},moduleFactoryMap:{},undeclaredGlobalsInFunctions:new Map,customfunctions:t.customfunctions,libraryResolver:r,localScope:null,mangleMap:{},depthCounter:{depth:1},exports:{},console:ee,lrucache:t.lrucache,timeZone:t.timeZone??null,interceptor:t.interceptor,services:t.services,symbols:{symbolCounter:0}};let s=V(a,e);""===s&&(s="lc.voidOperation; "),a.undeclaredGlobalsInFunctions.size>0&&a.undeclaredGlobalsInFunctions.forEach((e=>{throw new o.OF(t,o.rH.InvalidIdentifier,e.node)}));let u="";u=n?"var runtimeCtx=this.prepare(context, true);\n var lc = this.lc; var lang = this.lang; var gscope=runtimeCtx.globalScope; \nreturn lang.__awaiter(this, void 0, void 0, function* () {\n\n function mainBody() {\n var lastStatement=lc.voidOperation;\n return lang.__awaiter(this, void 0, void 0, function* () {\n"+s+"\n return lastStatement; }); } \n return this.postProcess(yield mainBody()); }); ":"var runtimeCtx=this.prepare(context, false);\n var lc = this.lc; var lang = this.lang; var gscope=runtimeCtx.globalScope; \n function mainBody() {\n var lastStatement=lc.voidOperation;\n "+s+"\n return lastStatement; } \n return this.postProcess(mainBody()); ";const c=a.moduleFactory,f=a.moduleFactoryMap,d=a.exports,h={};for(const e in d)h[e]=void 0!==a.mangleMap[e]?a.mangleMap[e]:e;const m={lc:l.y,lang:X,mangles:a.mangleMap,postProcess(e){if(e instanceof l.z&&(e=e.value),e instanceof l.A&&(e=e.value),e===l.B&&(e=null),e===l.C)throw new o.aV(null,o.rH.IllegalResult,null);if(e===l.D)throw new o.aV(null,o.rH.IllegalResult,null);if((0,l.i)(e))throw new o.aV(null,o.rH.IllegalResult,null);return e},prepare(e,t){let n=e.spatialReference;null==n&&(n=_.Z.WebMercator);const r=K(e.vars,e.customfunctions,t,e.timeZone);return{localStack:[],isAsync:t,moduleFactory:c,moduleFactoryMap:f,mangleMap:this.mangles,moduleSingletons:{},exports:d,gdefs:{},exportmangle:h,spatialReference:n,globalScope:r,abortSignal:void 0===e.abortSignal||null===e.abortSignal?{aborted:!1}:e.abortSignal,localScope:null,services:e.services,console:e.console??ee,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,symbols:{symbolCounter:0},depthCounter:{depth:1}}}};return new Function("context","spatialReference",u).bind(m)}class ne extends r.P{constructor(e){super(null),this.moduleContext=e}hasGlobal(e){return void 0===this.moduleContext.exports[e]&&(e=e.toLowerCase()),void 0!==this.moduleContext.exports[e]}setGlobal(e,t){const n=this.moduleContext.globalScope,r=e.toLowerCase();if((0,l.i)(t))throw new o.aV(null,o.rH.AssignModuleFunction,null);n[this.moduleContext.exportmangle[r]]=t}global(e){const t=this.moduleContext.globalScope;e=e.toLowerCase();const n=t[this.moduleContext.exportmangle[e]];if(void 0===n)throw new o.aV(null,o.rH.InvalidIdentifier,null);if((0,l.i)(n)&&!(n instanceof u.Vg)){const r=new u.Vg;return r.fn=n,r.parameterEvaluator=Z,r.context=this.moduleContext,t[this.moduleContext.exportmangle[e]]=r,r}return n}}var re,ie,ae=n(66341);!function(e){e.Break="break",e.Continue="continue",e.Else="else",e.False="false",e.For="for",e.From="from",e.Function="function",e.If="if",e.Import="import",e.Export="export",e.In="in",e.Null="null",e.Return="return",e.True="true",e.Var="var",e.While="while"}(re||(re={})),function(e){e.AssignmentExpression="AssignmentExpression",e.ArrayExpression="ArrayExpression",e.BlockComment="BlockComment",e.BlockStatement="BlockStatement",e.BinaryExpression="BinaryExpression",e.BreakStatement="BreakStatement",e.CallExpression="CallExpression",e.ContinueStatement="ContinueStatement",e.EmptyStatement="EmptyStatement",e.ExpressionStatement="ExpressionStatement",e.ExportNamedDeclaration="ExportNamedDeclaration",e.ExportSpecifier="ExportSpecifier",e.ForStatement="ForStatement",e.ForInStatement="ForInStatement",e.FunctionDeclaration="FunctionDeclaration",e.Identifier="Identifier",e.IfStatement="IfStatement",e.ImportDeclaration="ImportDeclaration",e.ImportDefaultSpecifier="ImportDefaultSpecifier",e.LineComment="LineComment",e.Literal="Literal",e.LogicalExpression="LogicalExpression",e.MemberExpression="MemberExpression",e.ObjectExpression="ObjectExpression",e.Program="Program",e.Property="Property",e.ReturnStatement="ReturnStatement",e.TemplateElement="TemplateElement",e.TemplateLiteral="TemplateLiteral",e.UnaryExpression="UnaryExpression",e.UpdateExpression="UpdateExpression",e.VariableDeclaration="VariableDeclaration",e.VariableDeclarator="VariableDeclarator",e.WhileStatement="WhileStatement"}(ie||(ie={}));const oe=["++","--"],se=["-","+","!","~"],ue=["=","/=","*=","%=","+=","-="],le=["||","&&"],ce={"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10};var fe;!function(e){e[e.Unknown=0]="Unknown",e[e.BooleanLiteral=1]="BooleanLiteral",e[e.EOF=2]="EOF",e[e.Identifier=3]="Identifier",e[e.Keyword=4]="Keyword",e[e.NullLiteral=5]="NullLiteral",e[e.NumericLiteral=6]="NumericLiteral",e[e.Punctuator=7]="Punctuator",e[e.StringLiteral=8]="StringLiteral",e[e.Template=10]="Template"}(fe||(fe={}));const de=["Unknown","Boolean","","Identifier","Keyword","Null","Numeric","Punctuator","String","RegularExpression","Template"];var he;!function(e){e.InvalidModuleUri="InvalidModuleUri",e.ForInOfLoopInitializer="ForInOfLoopInitializer",e.IdentiferExpected="IdentiferExpected",e.InvalidEscapedReservedWord="InvalidEscapedReservedWord",e.InvalidExpression="InvalidExpression",e.InvalidFunctionIdentifier="InvalidFunctionIdentifier",e.InvalidHexEscapeSequence="InvalidHexEscapeSequence",e.InvalidLeftHandSideInAssignment="InvalidLeftHandSideInAssignment",e.InvalidLeftHandSideInForIn="InvalidLeftHandSideInForIn",e.InvalidTemplateHead="InvalidTemplateHead",e.InvalidVariableAssignment="InvalidVariableAssignment",e.KeyMustBeString="KeyMustBeString",e.NoFunctionInsideBlock="NoFunctionInsideBlock",e.NoFunctionInsideFunction="NoFunctionInsideFunction",e.ModuleExportRootOnly="ModuleExportRootOnly",e.ModuleImportRootOnly="ModuleImportRootOnly",e.PunctuatorExpected="PunctuatorExpected",e.TemplateOctalLiteral="TemplateOctalLiteral",e.UnexpectedBoolean="UnexpectedBoolean",e.UnexpectedEndOfScript="UnexpectedEndOfScript",e.UnexpectedIdentifier="UnexpectedIdentifier",e.UnexpectedKeyword="UnexpectedKeyword",e.UnexpectedNull="UnexpectedNull",e.UnexpectedNumber="UnexpectedNumber",e.UnexpectedPunctuator="UnexpectedPunctuator",e.UnexpectedString="UnexpectedString",e.UnexpectedTemplate="UnexpectedTemplate",e.UnexpectedToken="UnexpectedToken"}(he||(he={}));const me={[he.InvalidModuleUri]:"Module uri must be a text literal.",[he.ForInOfLoopInitializer]:"for-in loop variable declaration may not have an initializer.",[he.IdentiferExpected]:"'${value}' is an invalid identifier.",[he.InvalidEscapedReservedWord]:"Keyword cannot contain escaped characters.",[he.InvalidExpression]:"Invalid expression.",[he.InvalidFunctionIdentifier]:"'${value}' is an invalid function identifier.",[he.InvalidHexEscapeSequence]:"Invalid hexadecimal escape sequence.",[he.InvalidLeftHandSideInAssignment]:"Invalid left-hand side in assignment.",[he.InvalidLeftHandSideInForIn]:"Invalid left-hand side in for-in.",[he.InvalidTemplateHead]:"Invalid template structure.",[he.InvalidVariableAssignment]:"Invalid variable assignment.",[he.KeyMustBeString]:"Object property keys must be a word starting with a letter.",[he.NoFunctionInsideBlock]:"Functions cannot be declared inside of code blocks.",[he.NoFunctionInsideFunction]:"Functions cannot be declared inside another function.",[he.ModuleExportRootOnly]:"Module exports cannot be declared inside of code blocks.",[he.ModuleImportRootOnly]:"Module import cannot be declared inside of code blocks.",[he.PunctuatorExpected]:"'${value}' expected.",[he.TemplateOctalLiteral]:"Octal literals are not allowed in template literals.",[he.UnexpectedBoolean]:"Unexpected boolean literal.",[he.UnexpectedEndOfScript]:"Unexpected end of Arcade expression.",[he.UnexpectedIdentifier]:"Unexpected identifier.",[he.UnexpectedKeyword]:"Unexpected keyword.",[he.UnexpectedNull]:"Unexpected null literal.",[he.UnexpectedNumber]:"Unexpected number.",[he.UnexpectedPunctuator]:"Unexpected ponctuator.",[he.UnexpectedString]:"Unexpected text literal.",[he.UnexpectedTemplate]:"Unexpected quasi '${value}'.",[he.UnexpectedToken]:"Unexpected token '${value}'."};class pe extends Error{constructor({code:e,index:t,line:n,column:r,len:i=0,description:a,data:o}){super(`${a??e}`),this.declaredRootClass="esri.arcade.lib.parsingerror",this.name="ParsingError",this.code=e,this.index=t,this.line=n,this.column=r,this.len=i,this.data=o,this.description=a,this.range={start:{line:n,column:r-1},end:{line:n,column:r+i}},Error.captureStackTrace?.(this,pe)}}function ge(e){return e?.type===ie.BlockStatement}function De(e){return e?.type===ie.BlockComment}function ye(e){return e?.type===ie.EmptyStatement}function we(e){return e?.type===ie.VariableDeclarator}function xe(e,t){return!!t&&t.loc.end.line===e.loc.start.line&&t.loc.end.column<=e.loc.start.column}function Fe(e,t){return e.range[0]>=t.range[0]&&e.range[1]<=t.range[1]}class Ce{constructor(){this.comments=[],this._nodeStack=[],this._newComments=[]}insertInnerComments(e){if(!ge(e)||0!==e.body.length)return;const t=[];for(let n=this._newComments.length-1;n>=0;--n){const r=this._newComments[n];e.range[1]>=r.range[0]&&(t.unshift(r),this._newComments.splice(n,1))}t.length&&(e.innerComments=t)}attachTrailingComments(e){if(!e)return;const t=this._nodeStack[this._nodeStack.length-1];if(ge(e)&&Fe(t,e))for(let n=this._newComments.length-1;n>=0;--n){const r=this._newComments[n];Fe(r,e)&&(t.trailingComments=[...t.trailingComments??[],r],this._newComments.splice(n,1))}let n=[];if(this._newComments.length>0)for(let r=this._newComments.length-1;r>=0;--r){const i=this._newComments[r];xe(i,t)?(t.trailingComments=[...t.trailingComments??[],i],this._newComments.splice(r,1)):xe(i,e)&&(n.unshift(i),this._newComments.splice(r,1))}t?.trailingComments&&xe(t.trailingComments[0],e)&&(n=[...n,...t.trailingComments],delete t.trailingComments),n.length>0&&(e.trailingComments=n)}attachLeadingComments(e){if(!e)return;let t;for(;this._nodeStack.length>0;){const n=this._nodeStack[this._nodeStack.length-1];if(!(e.range[0]<=n.range[0]))break;t=n,this._nodeStack.pop()}const n=[],r=[];if(t){for(let i=(t.leadingComments?.length??0)-1;i>=0;--i){const a=t.leadingComments[i];e.range[0]>=a.range[1]?(n.unshift(a),t.leadingComments.splice(i,1)):we(e)&&!De(a)&&(r.unshift(a),t.leadingComments.splice(i,1))}return 0===t.leadingComments?.length&&delete t.leadingComments,n.length&&(e.leadingComments=n),void(r.length&&(e.trailingComments=[...r,...e.trailingComments??[]]))}for(let t=this._newComments.length-1;t>=0;--t){const r=this._newComments[t];e.range[0]>=r.range[0]&&(n.unshift(r),this._newComments.splice(t,1))}n.length&&(e.leadingComments=n)}attachComments(e){if(function(e){return e?.type===ie.Program}(e)&&e.body.length>0){const t=this._nodeStack[this._nodeStack.length-1];return t?(t.trailingComments=[...t.trailingComments??[],...this._newComments],this._newComments.length=0,void this._nodeStack.pop()):(e.trailingComments=[...this._newComments],void(this._newComments.length=0))}this.attachTrailingComments(e),this.attachLeadingComments(e),this.insertInnerComments(e),this._nodeStack.push(e)}collectComment(e){this.comments.push(e),this._newComments.push(e)}}function Ae(e,t){const n=me[e];return t?n.replaceAll(/\${(.*?)}/g,((e,n)=>t[n]?.toString()??"")):n}class be{constructor(e=!1){this.tolerant=e,this.errors=[]}recordError(e){this.errors.push(e)}tolerate(e){if(!this.tolerant)throw e;this.recordError(e)}throwError(e){throw e.description=e.description??Ae(e.code,e.data),new pe(e)}tolerateError(e){e.description=e.description??Ae(e.code,e.data);const t=new pe(e);if(!this.tolerant)throw t;this.recordError(t)}}function Se(e,t){if(!e)throw new Error("ASSERT: "+t)}const Ee={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D3-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDF00-\uDF1C\uDF27\uDF30-\uDF50\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD46\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E\uDC5F\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},ve={fromCodePoint:e=>e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023)),isWhiteSpace:e=>32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(e),isLineTerminator:e=>10===e||13===e||8232===e||8233===e,isIdentifierStart:e=>36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&Ee.NonAsciiIdentifierStart.test(ve.fromCodePoint(e)),isIdentifierPart:e=>36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&Ee.NonAsciiIdentifierPart.test(ve.fromCodePoint(e)),isDecimalDigit:e=>e>=48&&e<=57,isHexDigit:e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,isOctalDigit:e=>e>=48&&e<=55};function Ie(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function ke(e){return"01234567".indexOf(e)}const Te=[[],[],[]];oe.forEach((e=>Te[e.length-1].push(e))),se.forEach((e=>Te[e.length-1].push(e))),le.forEach((e=>Te[e.length-1].push(e))),ue.forEach((e=>Te[e.length-1].push(e))),["|","&",">>","<<",">>>","^","==","!=","<","<=",">",">=","+","-","*","/","%"].forEach((e=>Te[e.length-1].push(e)));class Ne{constructor(e,t){this.source=e,this.errorHandler=t,this._length=e.length,this.index=0,this.lineNumber=1,this.lineStart=0,this.curlyStack=[]}saveState(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart,curlyStack:this.curlyStack.slice()}}restoreState(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart,this.curlyStack=e.curlyStack}eof(){return this.index>=this._length}throwUnexpectedToken(e=he.UnexpectedToken){this.errorHandler.throwError({code:e,index:this.index,line:this.lineNumber,column:this.index-this.lineStart+1})}tolerateUnexpectedToken(e=he.UnexpectedToken){this.errorHandler.tolerateError({code:e,index:this.index,line:this.lineNumber,column:this.index-this.lineStart+1})}skipSingleLineComment(e){const t=[],n=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{line:0,column:0}};for(;!this.eof();){const i=this.source.charCodeAt(this.index);if(++this.index,ve.isLineTerminator(i)){if(r){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};const i={multiLine:!1,start:n+e,end:this.index-1,range:[n,this.index-1],loc:r};t.push(i)}return 13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t}}if(r){r.end={line:this.lineNumber,column:this.index-this.lineStart};const i={multiLine:!1,start:n+e,end:this.index,range:[n,this.index],loc:r};t.push(i)}return t}skipMultiLineComment(){const e=[],t=this.index-2,n={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{line:0,column:0}};for(;!this.eof();){const r=this.source.charCodeAt(this.index);if(ve.isLineTerminator(r))13===r&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===r){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,n){n.end={line:this.lineNumber,column:this.index-this.lineStart};const r={multiLine:!0,start:t+2,end:this.index-2,range:[t,this.index],loc:n};e.push(r)}return e}++this.index}else++this.index}if(n){n.end={line:this.lineNumber,column:this.index-this.lineStart};const r={multiLine:!0,start:t+2,end:this.index,range:[t,this.index],loc:n};e.push(r)}return this.tolerateUnexpectedToken(),e}scanComments(){let e=[];for(;!this.eof();){let t=this.source.charCodeAt(this.index);if(ve.isWhiteSpace(t))++this.index;else if(ve.isLineTerminator(t))++this.index,13===t&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index;else{if(47!==t)break;if(t=this.source.charCodeAt(this.index+1),47===t){this.index+=2;const t=this.skipSingleLineComment(2);e=[...e,...t]}else{if(42!==t)break;{this.index+=2;const t=this.skipMultiLineComment();e=[...e,...t]}}}}return e}isKeyword(e){switch((e=e.toLowerCase()).length){case 2:return e===re.If||e===re.In;case 3:return e===re.Var||e===re.For;case 4:return e===re.Else;case 5:return e===re.Break||e===re.While;case 6:return e===re.Return||e===re.Import||e===re.Export;case 8:return e===re.Function||e===re.Continue;default:return!1}}codePointAt(e){let t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){const n=this.source.charCodeAt(e+1);n>=56320&&n<=57343&&(t=1024*(t-55296)+n-56320+65536)}return t}scanHexEscape(e){const t="u"===e?4:2;let n=0;for(let e=0;e1114111||"}"!==e)&&this.throwUnexpectedToken(),ve.fromCodePoint(t)}getIdentifier(){const e=this.index++;for(;!this.eof();){const t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!ve.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)}getComplexIdentifier(){let e,t=this.codePointAt(this.index),n=ve.fromCodePoint(t);for(this.index+=n.length,92===t&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):(e=this.scanHexEscape("u"),null!==e&&"\\"!==e&&ve.isIdentifierStart(e.charCodeAt(0))||this.throwUnexpectedToken()),n=e);!this.eof()&&(t=this.codePointAt(this.index),ve.isIdentifierPart(t));)e=ve.fromCodePoint(t),n+=e,this.index+=e.length,92===t&&(n=n.substring(0,n.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):(e=this.scanHexEscape("u"),null!==e&&"\\"!==e&&ve.isIdentifierPart(e.charCodeAt(0))||this.throwUnexpectedToken()),n+=e);return n}octalToDecimal(e){let t="0"!==e,n=ke(e);return!this.eof()&&ve.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,n=8*n+ke(this.source[this.index++]),"0123".includes(e)&&!this.eof()&&ve.isOctalDigit(this.source.charCodeAt(this.index))&&(n=8*n+ke(this.source[this.index++]))),{code:n,octal:t}}scanIdentifier(){let e;const t=this.index,n=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();if(e=1===n.length?fe.Identifier:this.isKeyword(n)?fe.Keyword:n.toLowerCase()===re.Null?fe.NullLiteral:n.toLowerCase()===re.True||n.toLowerCase()===re.False?fe.BooleanLiteral:fe.Identifier,e!==fe.Identifier&&t+n.length!==this.index){const e=this.index;this.index=t,this.tolerateUnexpectedToken(he.InvalidEscapedReservedWord),this.index=e}return{type:e,value:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}}scanPunctuator(){const e=this.index;let t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;case"}":++this.index,this.curlyStack.pop();break;default:for(let e=Te.length;e>0;e--)if(t=this.source.substring(this.index,this.index+e),Te[e-1].includes(t)){this.index+=e;break}}return this.index===e&&this.throwUnexpectedToken(),{type:fe.Punctuator,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}scanHexLiteral(e){let t="";for(;!this.eof()&&ve.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),ve.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:fe.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}scanBinaryLiteral(e){let t="";for(;!this.eof();){const e=this.source[this.index];if("0"!==e&&"1"!==e)break;t+=this.source[this.index++]}if(0===t.length&&this.throwUnexpectedToken(),!this.eof()){const e=this.source.charCodeAt(this.index);(ve.isIdentifierStart(e)||ve.isDecimalDigit(e))&&this.throwUnexpectedToken()}return{type:fe.NumericLiteral,value:parseInt(t,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}scanOctalLiteral(e,t){let n="",r=!1;for(ve.isOctalDigit(e.charCodeAt(0))?(r=!0,n="0"+this.source[this.index++]):++this.index;!this.eof()&&ve.isOctalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];return r||0!==n.length||this.throwUnexpectedToken(),(ve.isIdentifierStart(this.source.charCodeAt(this.index))||ve.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:fe.NumericLiteral,value:parseInt(n,8),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}}scanNumericLiteral(){const e=this.index;let t=this.source[e];Se(ve.isDecimalDigit(t.charCodeAt(0))||"."===t,"Numeric literal must start with a decimal digit or a decimal point");let n="";if("."!==t){if(n=this.source[this.index++],t=this.source[this.index],"0"===n){if("x"===t||"X"===t)return++this.index,this.scanHexLiteral(e);if("b"===t||"B"===t)return++this.index,this.scanBinaryLiteral(e);if("o"===t||"O"===t)return this.scanOctalLiteral(t,e)}for(;ve.isDecimalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];t=this.source[this.index]}if("."===t){for(n+=this.source[this.index++];ve.isDecimalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];t=this.source[this.index]}if("e"===t||"E"===t)if(n+=this.source[this.index++],t=this.source[this.index],"+"!==t&&"-"!==t||(n+=this.source[this.index++]),ve.isDecimalDigit(this.source.charCodeAt(this.index)))for(;ve.isDecimalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];else this.throwUnexpectedToken();return ve.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:fe.NumericLiteral,value:parseFloat(n),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}scanStringLiteral(){const e=this.index;let t=this.source[e];Se("'"===t||'"'===t,"String literal must starts with a quote"),++this.index;let n=!1,r="";for(;!this.eof();){let e=this.source[this.index++];if(e===t){t="";break}if("\\"===e)if(e=this.source[this.index++],e&&ve.isLineTerminator(e.charCodeAt(0)))++this.lineNumber,"\r"===e&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(e){case"u":if("{"===this.source[this.index])++this.index,r+=this.scanUnicodeCodePointEscape();else{const t=this.scanHexEscape(e);null===t&&this.throwUnexpectedToken(),r+=t}break;case"x":{const t=this.scanHexEscape(e);null===t&&this.throwUnexpectedToken(he.InvalidHexEscapeSequence),r+=t;break}case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+="\t";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;case"8":case"9":r+=e,this.tolerateUnexpectedToken();break;default:if(e&&ve.isOctalDigit(e.charCodeAt(0))){const t=this.octalToDecimal(e);n=t.octal||n,r+=String.fromCharCode(t.code)}else r+=e}else{if(ve.isLineTerminator(e.charCodeAt(0)))break;r+=e}}return""!==t&&(this.index=e,this.throwUnexpectedToken()),{type:fe.StringLiteral,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}scanTemplate(){let e="",t=!1;const n=this.index,r="`"===this.source[n];let i=!1,a=2;for(++this.index;!this.eof();){let n=this.source[this.index++];if("`"===n){a=1,i=!0,t=!0;break}if("$"!==n)if("\\"!==n)ve.isLineTerminator(n.charCodeAt(0))?(++this.lineNumber,"\r"===n&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index,e+="\n"):e+=n;else if(n=this.source[this.index++],ve.isLineTerminator(n.charCodeAt(0)))++this.lineNumber,"\r"===n&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(n){case"n":e+="\n";break;case"r":e+="\r";break;case"t":e+="\t";break;case"u":if("{"===this.source[this.index])++this.index,e+=this.scanUnicodeCodePointEscape();else{const t=this.index,r=this.scanHexEscape(n);null!==r?e+=r:(this.index=t,e+=n)}break;case"x":{const t=this.scanHexEscape(n);null===t&&this.throwUnexpectedToken(he.InvalidHexEscapeSequence),e+=t;break}case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:"0"===n?(ve.isDecimalDigit(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(he.TemplateOctalLiteral),e+="\0"):ve.isOctalDigit(n.charCodeAt(0))?this.throwUnexpectedToken(he.TemplateOctalLiteral):e+=n}else{if("{"===this.source[this.index]){this.curlyStack.push("${"),++this.index,t=!0;break}e+=n}}return t||this.throwUnexpectedToken(),r||this.curlyStack.pop(),{type:fe.Template,value:this.source.slice(n+1,this.index-a),cooked:e,head:r,tail:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:n,end:this.index}}lex(){if(this.eof())return{type:fe.EOF,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};const e=this.source.charCodeAt(this.index);return ve.isIdentifierStart(e)?this.scanIdentifier():40===e||41===e||59===e?this.scanPunctuator():39===e||34===e?this.scanStringLiteral():46===e?ve.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():ve.isDecimalDigit(e)?this.scanNumericLiteral():96===e||125===e&&"${"===this.curlyStack[this.curlyStack.length-1]?this.scanTemplate():e>=55296&&e<57343&&ve.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()}}var Be,He;function _e(e,t=0){let n=e.start-e.lineStart,r=e.lineNumber;return n<0&&(n+=t,r--),{index:e.start,line:r,column:n}}function Me(e){return[{index:e.range[0],...e.loc.start},{index:e.range[1],...e.loc.end}]}function Ze(e){return ce[e]??0}!function(e){e[e.None=0]="None",e[e.Function=1]="Function",e[e.IfClause=2]="IfClause",e[e.ForLoop=4]="ForLoop",e[e.WhileLoop=8]="WhileLoop"}(Be||(Be={})),function(e){e[e.AsObject=0]="AsObject",e[e.Automatic=1]="Automatic"}(He||(He={}));class Ve{constructor(e,t={},n){this.delegate=n,this.hasLineTerminator=!1,this.options={tokens:"boolean"==typeof t.tokens&&t.tokens,comments:"boolean"==typeof t.comments&&t.comments,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.options.comments&&(this.commentHandler=new Ce),this.errorHandler=new be(this.options.tolerant),this.scanner=new Ne(e,this.errorHandler),this.context={isAssignmentTarget:!1,blockContext:Be.None,curlyParsingType:He.AsObject},this.rawToken={type:fe.EOF,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.endMarker={index:0,line:this.scanner.lineNumber,column:0},this.readNextRawToken(),this.endMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}throwIfInvalidType(e,t,{validTypes:n,invalidTypes:r}){n?.some((t=>e.type===t))||r?.some((t=>e.type===t))&&this.throwError(he.InvalidExpression,t)}throwError(e,t,n=this.endMarker){const{index:r,line:i,column:a}=t,o=n.index-r-1;this.errorHandler.throwError({code:e,index:r,line:i,column:a+1,len:o})}tolerateError(e,t){throw new Error("######################################### !!!")}unexpectedTokenError(e={}){const{rawToken:t}=e;let n,{code:r,data:i}=e;if(t){if(!r)switch(t.type){case fe.EOF:r=he.UnexpectedEndOfScript;break;case fe.Identifier:r=he.UnexpectedIdentifier;break;case fe.NumericLiteral:r=he.UnexpectedNumber;break;case fe.StringLiteral:r=he.UnexpectedString;break;case fe.Template:r=he.UnexpectedTemplate}n=t.value.toString()}else n="ILLEGAL";r=r??he.UnexpectedToken,i||(i={value:n});const a=Ae(r,i);if(t){const e=t.start,n=t.lineNumber,o=t.start-t.lineStart+1;return new pe({code:r,index:e,line:n,column:o,len:t.end-t.start-1,data:i,description:a})}const{index:o,line:s}=this.endMarker;return new pe({code:r,index:o,line:s,column:this.endMarker.column+1,data:i,description:a})}throwUnexpectedToken(e={}){throw e.rawToken=e.rawToken??this.rawToken,this.unexpectedTokenError(e)}collectComments(e){const{commentHandler:t}=this;t&&e.length&&e.forEach((e=>{const n={type:e.multiLine?ie.BlockComment:ie.LineComment,value:this.getSourceValue(e),range:e.range,loc:e.loc};t.collectComment(n)}))}peekAhead(e){const t=this.scanner.saveState(),n=e.call(this,(()=>(this.scanner.scanComments(),this.scanner.lex())));return this.scanner.restoreState(t),n}getSourceValue(e){return this.scanner.source.slice(e.start,e.end)}convertToToken(e){return{type:de[e.type],value:this.getSourceValue(e),range:[e.start,e.end],loc:{start:{line:this.startMarker.line,column:this.startMarker.column},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}}}readNextRawToken(){this.endMarker.index=this.scanner.index,this.endMarker.line=this.scanner.lineNumber,this.endMarker.column=this.scanner.index-this.scanner.lineStart;const e=this.rawToken;this.collectComments(this.scanner.scanComments()),this.scanner.index!==this.startMarker.index&&(this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart),this.rawToken=this.scanner.lex(),this.hasLineTerminator=e.lineNumber!==this.rawToken.lineNumber,this.options.tokens&&this.rawToken.type!==fe.EOF&&this.tokens.push(this.convertToToken(this.rawToken))}captureStartMarker(){return{index:this.startMarker.index,line:this.startMarker.line,column:this.startMarker.column}}getItemLocation(e){return{range:[e.index,this.endMarker.index],loc:{start:{line:e.line,column:e.column},end:{line:this.endMarker.line,column:this.endMarker.column}}}}finalize(e){return(this.delegate||this.commentHandler)&&(this.commentHandler?.attachComments(e),this.delegate?.(e)),e}expectPunctuator(e){const t=this.rawToken;this.matchPunctuator(e)?this.readNextRawToken():this.throwUnexpectedToken({rawToken:t,code:he.PunctuatorExpected,data:{value:e}})}expectKeyword(e){this.rawToken.type!==fe.Keyword||this.rawToken.value.toLowerCase()!==e?this.throwUnexpectedToken({rawToken:this.rawToken}):this.readNextRawToken()}expectContextualKeyword(e){this.rawToken.type!==fe.Identifier||this.rawToken.value.toLowerCase()!==e?this.throwUnexpectedToken({rawToken:this.rawToken}):this.readNextRawToken()}matchKeyword(e){return this.rawToken.type===fe.Keyword&&this.rawToken.value.toLowerCase()===e}matchContextualKeyword(e){return this.rawToken.type===fe.Identifier&&this.rawToken.value===e}matchPunctuator(e){return this.rawToken.type===fe.Punctuator&&this.rawToken.value===e}getMatchingPunctuator(e){if("string"==typeof e&&(e=e.split("")),this.rawToken.type===fe.Punctuator&&e?.length)return e.find(this.matchPunctuator,this)}isolateCoverGrammar(e){const t=this.context.isAssignmentTarget;this.context.isAssignmentTarget=!0;const n=e.call(this);return this.context.isAssignmentTarget=t,n}inheritCoverGrammar(e){const t=this.context.isAssignmentTarget;this.context.isAssignmentTarget=!0;const n=e.call(this);return this.context.isAssignmentTarget=this.context.isAssignmentTarget&&t,n}withBlockContext(e,t){const n=this.context.blockContext;this.context.blockContext=this.context.blockContext|e;const r=this.context.curlyParsingType;this.context.curlyParsingType=He.Automatic;const i=t.call(this);return this.context.blockContext=n,this.context.curlyParsingType=r,i}consumeSemicolon(){if(this.matchPunctuator(";"))this.readNextRawToken();else if(!this.hasLineTerminator)return this.rawToken.type===fe.EOF||this.matchPunctuator("}")?(this.endMarker.index=this.startMarker.index,this.endMarker.line=this.startMarker.line,void(this.endMarker.column=this.startMarker.column)):void this.throwUnexpectedToken({rawToken:this.rawToken})}parsePrimaryExpression(){const e=this.captureStartMarker(),t=this.rawToken;switch(t.type){case fe.Identifier:return this.readNextRawToken(),this.finalize({type:ie.Identifier,name:t.value,...this.getItemLocation(e)});case fe.NumericLiteral:case fe.StringLiteral:return this.context.isAssignmentTarget=!1,this.readNextRawToken(),this.finalize({type:ie.Literal,value:t.value,raw:this.getSourceValue(t),isString:"string"==typeof t.value,...this.getItemLocation(e)});case fe.BooleanLiteral:return this.context.isAssignmentTarget=!1,this.readNextRawToken(),this.finalize({type:ie.Literal,value:t.value.toLowerCase()===re.True,raw:this.getSourceValue(t),isString:!1,...this.getItemLocation(e)});case fe.NullLiteral:return this.context.isAssignmentTarget=!1,this.readNextRawToken(),this.finalize({type:ie.Literal,value:null,raw:this.getSourceValue(t),isString:!1,...this.getItemLocation(e)});case fe.Template:return this.parseTemplateLiteral();case fe.Punctuator:switch(t.value){case"(":return this.inheritCoverGrammar(this.parseGroupExpression);case"[":return this.inheritCoverGrammar(this.parseArrayInitializer);case"{":return this.inheritCoverGrammar(this.parseObjectExpression);default:return this.throwUnexpectedToken({rawToken:this.rawToken})}case fe.Keyword:return this.context.isAssignmentTarget=!1,this.throwUnexpectedToken({rawToken:this.rawToken});default:return this.throwUnexpectedToken({rawToken:this.rawToken})}}parseArrayInitializer(){const e=this.captureStartMarker();this.expectPunctuator("[");const t=[];for(;!this.matchPunctuator("]");){const e=this.captureStartMarker();this.matchPunctuator(",")?(this.readNextRawToken(),this.throwError(he.InvalidExpression,e)):(t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.matchPunctuator("]")||this.expectPunctuator(","))}return this.expectPunctuator("]"),this.finalize({type:ie.ArrayExpression,elements:t,...this.getItemLocation(e)})}parseObjectPropertyKey(){const e=this.captureStartMarker(),t=this.rawToken;switch(t.type){case fe.StringLiteral:return this.readNextRawToken(),this.finalize({type:ie.Literal,value:t.value,raw:this.getSourceValue(t),isString:!0,...this.getItemLocation(e)});case fe.Identifier:case fe.BooleanLiteral:case fe.NullLiteral:case fe.Keyword:return this.readNextRawToken(),this.finalize({type:ie.Identifier,name:t.value,...this.getItemLocation(e)});default:this.throwError(he.KeyMustBeString,e)}}parseObjectProperty(){const e=this.rawToken,t=this.captureStartMarker(),n=this.parseObjectPropertyKey();let r=!1,i=null;return this.matchPunctuator(":")?(this.readNextRawToken(),i=this.inheritCoverGrammar(this.parseAssignmentExpression)):e.type===fe.Identifier?(r=!0,i=this.finalize({type:ie.Identifier,name:e.value,...this.getItemLocation(t)})):this.throwUnexpectedToken({rawToken:this.rawToken}),this.finalize({type:ie.Property,kind:"init",key:n,value:i,shorthand:r,...this.getItemLocation(t)})}parseObjectExpression(){const e=this.captureStartMarker();this.expectPunctuator("{");const t=[];for(;!this.matchPunctuator("}");)t.push(this.parseObjectProperty()),this.matchPunctuator("}")||this.expectPunctuator(",");return this.expectPunctuator("}"),this.finalize({type:ie.ObjectExpression,properties:t,...this.getItemLocation(e)})}parseTemplateElement(e=!1){const t=this.rawToken;t.type!==fe.Template&&this.throwUnexpectedToken({rawToken:t}),e&&!t.head&&this.throwUnexpectedToken({code:he.InvalidTemplateHead,rawToken:t});const n=this.captureStartMarker();this.readNextRawToken();const{value:r,cooked:i,tail:a}=t,o=this.finalize({type:ie.TemplateElement,value:{raw:r,cooked:i},tail:a,...this.getItemLocation(n)});return o.loc.start.column++,o.loc.end.column=o.loc.end.column-(a?1:2),o}parseTemplateLiteral(){const e=this.captureStartMarker(),t=[],n=[];let r=this.parseTemplateElement(!0);for(n.push(r);!r.tail;)t.push(this.parseExpression()),r=this.parseTemplateElement(),n.push(r);return this.finalize({type:ie.TemplateLiteral,quasis:n,expressions:t,...this.getItemLocation(e)})}parseGroupExpression(){this.expectPunctuator("(");const e=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.expectPunctuator(")"),e}parseArguments(){this.expectPunctuator("(");const e=[];if(!this.matchPunctuator(")"))for(;;){const t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(e.push(t),this.matchPunctuator(")"))break;if(this.expectPunctuator(","),this.matchPunctuator(")"))break}return this.expectPunctuator(")"),e}parseMemberName(){const e=this.rawToken,t=this.captureStartMarker();return this.readNextRawToken(),e.type!==fe.NullLiteral&&e.type!==fe.Identifier&&e.type!==fe.Keyword&&e.type!==fe.BooleanLiteral&&this.throwUnexpectedToken({rawToken:e}),this.finalize({type:ie.Identifier,name:e.value,...this.getItemLocation(t)})}parseLeftHandSideExpression(){const e=this.captureStartMarker();let t=this.inheritCoverGrammar(this.parsePrimaryExpression);const n=this.captureStartMarker();let r;for(;r=this.getMatchingPunctuator("([.");)switch(r){case"(":{this.context.isAssignmentTarget=!1,t.type!==ie.Identifier&&t.type!==ie.MemberExpression&&this.throwError(he.IdentiferExpected,e,n);const r=this.parseArguments();t=this.finalize({type:ie.CallExpression,callee:t,arguments:r,...this.getItemLocation(e)});continue}case"[":{this.context.isAssignmentTarget=!0,this.expectPunctuator("[");const n=this.isolateCoverGrammar(this.parseExpression);this.expectPunctuator("]"),t=this.finalize({type:ie.MemberExpression,computed:!0,object:t,property:n,...this.getItemLocation(e)});continue}case".":{this.context.isAssignmentTarget=!0,this.expectPunctuator(".");const n=this.parseMemberName();t=this.finalize({type:ie.MemberExpression,computed:!1,object:t,property:n,...this.getItemLocation(e)});continue}}return t}parseUpdateExpression(){const e=this.captureStartMarker();let t=this.getMatchingPunctuator(oe);if(t){this.readNextRawToken();const n=this.captureStartMarker(),r=this.inheritCoverGrammar(this.parseUnaryExpression);return r.type!==ie.Identifier&&r.type!==ie.MemberExpression&&r.type!==ie.CallExpression&&this.throwError(he.InvalidExpression,n),this.context.isAssignmentTarget||this.tolerateError(he.InvalidLeftHandSideInAssignment,e),this.context.isAssignmentTarget=!1,this.finalize({type:ie.UpdateExpression,operator:t,argument:r,prefix:!0,...this.getItemLocation(e)})}const n=this.captureStartMarker(),r=this.inheritCoverGrammar(this.parseLeftHandSideExpression),i=this.captureStartMarker();return this.hasLineTerminator?r:(t=this.getMatchingPunctuator(oe),t?(r.type!==ie.Identifier&&r.type!==ie.MemberExpression&&this.throwError(he.InvalidExpression,n,i),this.context.isAssignmentTarget||this.tolerateError(he.InvalidLeftHandSideInAssignment,e),this.readNextRawToken(),this.context.isAssignmentTarget=!1,this.finalize({type:ie.UpdateExpression,operator:t,argument:r,prefix:!1,...this.getItemLocation(e)})):r)}parseUnaryExpression(){const e=this.getMatchingPunctuator(se);if(e){const t=this.captureStartMarker();this.readNextRawToken();const n=this.inheritCoverGrammar(this.parseUnaryExpression);return this.context.isAssignmentTarget=!1,this.finalize({type:ie.UnaryExpression,operator:e,argument:n,prefix:!0,...this.getItemLocation(t)})}return this.parseUpdateExpression()}parseBinaryExpression(){const e=this.rawToken;let t=this.inheritCoverGrammar(this.parseUnaryExpression);if(this.rawToken.type!==fe.Punctuator)return t;const n=this.rawToken.value;let r=Ze(n);if(0===r)return t;this.readNextRawToken(),this.context.isAssignmentTarget=!1;const i=[e,this.rawToken];let a=t,o=this.inheritCoverGrammar(this.parseUnaryExpression);const s=[a,n,o],u=[r];for(;this.rawToken.type===fe.Punctuator&&(r=Ze(this.rawToken.value))>0;){for(;s.length>2&&r<=u[u.length-1];){o=s.pop();const e=s.pop();u.pop(),a=s.pop(),i.pop();const t=i[i.length-1],n=_e(t,t.lineStart);s.push(this.finalize(this.createBinaryOrLogicalExpression(n,e,a,o)))}s.push(this.rawToken.value),u.push(r),i.push(this.rawToken),this.readNextRawToken(),s.push(this.inheritCoverGrammar(this.parseUnaryExpression))}let l=s.length-1;t=s[l];let c=i.pop();for(;l>1;){const e=i.pop();if(!e)break;const n=c?.lineStart,r=_e(e,n),a=s[l-1];t=this.finalize(this.createBinaryOrLogicalExpression(r,a,s[l-2],t)),l-=2,c=e}return t}createBinaryOrLogicalExpression(e,t,n,r){const i=le.includes(t)?ie.LogicalExpression:ie.BinaryExpression;return i===ie.BinaryExpression||(n.type!==ie.AssignmentExpression&&n.type!==ie.UpdateExpression||this.throwError(he.InvalidExpression,...Me(n)),r.type!==ie.AssignmentExpression&&r.type!==ie.UpdateExpression||this.throwError(he.InvalidExpression,...Me(n))),{type:i,operator:t,left:n,right:r,...this.getItemLocation(e)}}parseAssignmentExpression(){const e=this.captureStartMarker(),t=this.inheritCoverGrammar(this.parseBinaryExpression),n=this.captureStartMarker(),r=this.getMatchingPunctuator(ue);if(!r)return t;t.type!==ie.Identifier&&t.type!==ie.MemberExpression&&this.throwError(he.InvalidExpression,e,n),this.context.isAssignmentTarget||this.tolerateError(he.InvalidLeftHandSideInAssignment,e),this.matchPunctuator("=")||(this.context.isAssignmentTarget=!1),this.readNextRawToken();const i=this.isolateCoverGrammar(this.parseAssignmentExpression);return this.finalize({type:ie.AssignmentExpression,left:t,operator:r,right:i,...this.getItemLocation(e)})}parseExpression(){return this.isolateCoverGrammar(this.parseAssignmentExpression)}parseStatements(e){const t=[];for(;this.rawToken.type!==fe.EOF&&!this.matchPunctuator(e);){const e=this.parseStatementListItem();ye(e)||t.push(e)}return t}parseStatementListItem(){return this.context.isAssignmentTarget=!0,this.matchKeyword(re.Function)?this.parseFunctionDeclaration():this.matchKeyword(re.Export)?this.parseExportDeclaration():this.matchKeyword(re.Import)?this.parseImportDeclaration():this.parseStatement()}parseBlock(){const e=this.captureStartMarker();this.expectPunctuator("{");const t=this.parseStatements("}");return this.expectPunctuator("}"),this.finalize({type:ie.BlockStatement,body:t,...this.getItemLocation(e)})}parseObjectStatement(){const e=this.captureStartMarker(),t=this.parseObjectExpression();return this.finalize({type:ie.ExpressionStatement,expression:t,...this.getItemLocation(e)})}parseBlockOrObjectStatement(){return this.context.curlyParsingType===He.AsObject||this.peekAhead((e=>{let t=e();return(t.type===fe.Identifier||t.type===fe.StringLiteral)&&(t=e(),t.type===fe.Punctuator&&":"===t.value)}))?this.parseObjectStatement():this.parseBlock()}parseIdentifier(){const e=this.rawToken;if(e.type!==fe.Identifier)return null;const t=this.captureStartMarker();return this.readNextRawToken(),this.finalize({type:ie.Identifier,name:e.value,...this.getItemLocation(t)})}parseVariableDeclarator(){const e=this.captureStartMarker(),t=this.parseIdentifier();t||this.throwUnexpectedToken({code:he.IdentiferExpected});let n=null;if(this.matchPunctuator("=")){this.readNextRawToken();const e=this.rawToken;try{n=this.isolateCoverGrammar(this.parseAssignmentExpression)}catch(t){this.throwUnexpectedToken({rawToken:e,code:he.InvalidVariableAssignment})}}return this.finalize({type:ie.VariableDeclarator,id:t,init:n,...this.getItemLocation(e)})}parseVariableDeclarationList(){const e=[this.parseVariableDeclarator()];for(;this.matchPunctuator(",");)this.readNextRawToken(),e.push(this.parseVariableDeclarator());return e}parseVariableDeclaration(){const e=this.captureStartMarker();this.expectKeyword(re.Var);const t=this.parseVariableDeclarationList();return this.consumeSemicolon(),this.finalize({type:ie.VariableDeclaration,declarations:t,kind:"var",...this.getItemLocation(e)})}parseEmptyStatement(){const e=this.captureStartMarker();return this.expectPunctuator(";"),this.finalize({type:ie.EmptyStatement,...this.getItemLocation(e)})}parseExpressionStatement(){const e=this.captureStartMarker(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize({type:ie.ExpressionStatement,expression:t,...this.getItemLocation(e)})}parseIfClause(){return this.withBlockContext(Be.IfClause,this.parseStatement)}parseIfStatement(){const e=this.captureStartMarker();this.expectKeyword(re.If),this.expectPunctuator("(");const t=this.captureStartMarker(),n=this.parseExpression(),r=this.captureStartMarker();this.expectPunctuator(")"),n.type!==ie.AssignmentExpression&&n.type!==ie.UpdateExpression||this.throwError(he.InvalidExpression,t,r);const i=this.parseIfClause();let a=null;return this.matchKeyword(re.Else)&&(this.readNextRawToken(),a=this.parseIfClause()),this.finalize({type:ie.IfStatement,test:n,consequent:i,alternate:a,...this.getItemLocation(e)})}parseWhileStatement(){const e=this.captureStartMarker();this.expectKeyword(re.While),this.expectPunctuator("(");const t=this.captureStartMarker(),n=this.parseExpression(),r=this.captureStartMarker();this.expectPunctuator(")"),n.type!==ie.AssignmentExpression&&n.type!==ie.UpdateExpression||this.throwError(he.InvalidExpression,t,r);const i=this.withBlockContext(Be.WhileLoop,this.parseStatement);return this.finalize({type:ie.WhileStatement,test:n,body:i,...this.getItemLocation(e)})}parseForStatement(){let e=null,t=null,n=null,r=null,i=null;const a=this.captureStartMarker();if(this.expectKeyword(re.For),this.expectPunctuator("("),this.matchPunctuator(";"))this.readNextRawToken();else if(this.matchKeyword(re.Var)){const t=this.captureStartMarker();this.readNextRawToken();const n=this.parseVariableDeclarationList();1===n.length&&this.matchKeyword(re.In)?(n[0].init&&this.throwError(he.ForInOfLoopInitializer,t),r=this.finalize({type:ie.VariableDeclaration,declarations:n,kind:"var",...this.getItemLocation(t)}),this.readNextRawToken(),i=this.parseExpression()):(this.matchKeyword(re.In)&&this.throwError(he.InvalidLeftHandSideInForIn,t),e=this.finalize({type:ie.VariableDeclaration,declarations:n,kind:"var",...this.getItemLocation(t)}),this.expectPunctuator(";"))}else{const t=this.context.isAssignmentTarget,n=this.captureStartMarker();e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.matchKeyword(re.In)?(this.context.isAssignmentTarget||this.tolerateError(he.InvalidLeftHandSideInForIn,n),e.type!==ie.Identifier&&this.throwError(he.InvalidLeftHandSideInForIn,n),this.readNextRawToken(),r=e,i=this.parseExpression(),e=null):(this.context.isAssignmentTarget=t,this.expectPunctuator(";"))}r||(this.matchPunctuator(";")||(t=this.isolateCoverGrammar(this.parseExpression)),this.expectPunctuator(";"),this.matchPunctuator(")")||(n=this.isolateCoverGrammar(this.parseExpression))),this.expectPunctuator(")");const o=this.withBlockContext(Be.ForLoop,(()=>this.isolateCoverGrammar(this.parseStatement)));return r&&i?this.finalize({type:ie.ForInStatement,left:r,right:i,body:o,...this.getItemLocation(a)}):this.finalize({type:ie.ForStatement,init:e,test:t,update:n,body:o,...this.getItemLocation(a)})}parseContinueStatement(){const e=this.captureStartMarker();return this.expectKeyword(re.Continue),this.consumeSemicolon(),this.finalize({type:ie.ContinueStatement,...this.getItemLocation(e)})}parseBreakStatement(){const e=this.captureStartMarker();return this.expectKeyword(re.Break),this.consumeSemicolon(),this.finalize({type:ie.BreakStatement,...this.getItemLocation(e)})}parseReturnStatement(){const e=this.captureStartMarker();this.expectKeyword(re.Return);const t=(this.matchPunctuator(";")||this.matchPunctuator("}")||this.hasLineTerminator||this.rawToken.type===fe.EOF)&&this.rawToken.type!==fe.StringLiteral&&this.rawToken.type!==fe.Template?null:this.parseExpression();return this.consumeSemicolon(),this.finalize({type:ie.ReturnStatement,argument:t,...this.getItemLocation(e)})}parseStatement(){switch(this.rawToken.type){case fe.BooleanLiteral:case fe.NullLiteral:case fe.NumericLiteral:case fe.StringLiteral:case fe.Template:case fe.Identifier:return this.parseExpressionStatement();case fe.Punctuator:return"{"===this.rawToken.value?this.parseBlockOrObjectStatement():"("===this.rawToken.value?this.parseExpressionStatement():";"===this.rawToken.value?this.parseEmptyStatement():this.parseExpressionStatement();case fe.Keyword:switch(this.rawToken.value.toLowerCase()){case re.Break:return this.parseBreakStatement();case re.Continue:return this.parseContinueStatement();case re.For:return this.parseForStatement();case re.Function:return this.parseFunctionDeclaration();case re.If:return this.parseIfStatement();case re.Return:return this.parseReturnStatement();case re.Var:return this.parseVariableDeclaration();case re.While:return this.parseWhileStatement();default:return this.parseExpressionStatement()}default:return this.throwUnexpectedToken({rawToken:this.rawToken})}}parseFormalParameters(){const e=[];if(this.expectPunctuator("("),!this.matchPunctuator(")"))for(;this.rawToken.type!==fe.EOF;){const t=this.parseIdentifier();if(t||this.throwUnexpectedToken({rawToken:this.rawToken,code:he.IdentiferExpected}),e.push(t),this.matchPunctuator(")"))break;if(this.expectPunctuator(","),this.matchPunctuator(")"))break}return this.expectPunctuator(")"),e}parseFunctionDeclaration(){(this.context.blockContext&Be.Function)===Be.Function&&this.throwUnexpectedToken({code:he.NoFunctionInsideFunction}),(this.context.blockContext&Be.WhileLoop)!==Be.WhileLoop&&(this.context.blockContext&Be.IfClause)!==Be.IfClause||this.throwUnexpectedToken({code:he.NoFunctionInsideBlock});const e=this.captureStartMarker();this.expectKeyword(re.Function);const t=this.parseIdentifier();t||this.throwUnexpectedToken({code:he.InvalidFunctionIdentifier});const n=this.parseFormalParameters(),r=this.context.blockContext;this.context.blockContext=this.context.blockContext|Be.Function;const i=this.parseBlock();return this.context.blockContext=r,this.finalize({type:ie.FunctionDeclaration,id:t,params:n,body:i,...this.getItemLocation(e)})}parseScript(){const e=this.captureStartMarker(),t=this.parseStatements(),n=this.finalize({type:ie.Program,body:t,...this.getItemLocation(e)});return this.options.tokens&&(n.tokens=this.tokens),this.options.tolerant&&(n.errors=this.errorHandler.errors),n}parseExportDeclaration(){this.context.blockContext!==Be.None&&this.throwUnexpectedToken({code:he.ModuleExportRootOnly});let e=null;const t=this.captureStartMarker();return this.expectKeyword(re.Export),this.matchKeyword(re.Var)?e=this.parseVariableDeclaration():this.matchKeyword("function")?e=this.parseFunctionDeclaration():this.throwUnexpectedToken({code:he.InvalidExpression}),this.finalize({type:ie.ExportNamedDeclaration,declaration:e,specifiers:[],source:null,...this.getItemLocation(t)})}parseModuleSpecifier(){const e=this.captureStartMarker(),t=this.rawToken;if(t.type===fe.StringLiteral)return this.readNextRawToken(),this.finalize({type:ie.Literal,value:t.value,raw:this.getSourceValue(t),isString:!0,...this.getItemLocation(e)});this.throwError(he.InvalidModuleUri,e)}parseDefaultSpecifier(){const e=this.captureStartMarker(),t=this.parseIdentifier();return t||this.throwUnexpectedToken({code:he.IdentiferExpected}),this.finalize({type:ie.ImportDefaultSpecifier,local:t,...this.getItemLocation(e)})}parseImportDeclaration(){this.context.blockContext!==Be.None&&this.throwUnexpectedToken({code:he.ModuleImportRootOnly});const e=this.captureStartMarker();this.expectKeyword(re.Import);const t=this.parseDefaultSpecifier();this.expectContextualKeyword(re.From);const n=this.parseModuleSpecifier();return this.finalize({type:ie.ImportDeclaration,specifiers:[t],source:n,...this.getItemLocation(e)})}}function Le(e,t=[]){const n=function(e,t,n){return new Ve(e,t,n).parseScript()}(e);if(null===n.body||void 0===n.body)throw new pe({index:0,line:0,column:0,data:null,description:"",code:he.InvalidExpression});return n.loadedModules={},(0,c.dN)(n,t),n}class Oe{constructor(e){const t=this;t._keys=[],t._values=[],t.length=0,e&&e.forEach((e=>{t.set(e[0],e[1])}))}entries(){return[].slice.call(this.keys().map(((e,t)=>[e,this._values[t]])))}keys(){return[].slice.call(this._keys)}values(){return[].slice.call(this._values)}has(e){return this._keys.includes(e)}get(e){const t=this._keys.indexOf(e);return t>-1?this._values[t]:null}deepGet(e){if(!e?.length)return null;const t=(e,n)=>null==e?null:n.length?t(e instanceof Oe?e.get(n[0]):e[n[0]],n.slice(1)):e;return t(this.get(e[0]),e.slice(1))}set(e,t){const n=this,r=this._keys.indexOf(e);return r>-1?n._values[r]=t:(n._keys.push(e),n._values.push(t),n.length=n._values.length),this}sortedSet(e,t,n,r){const i=this,a=this._keys.length,o=n||0,s=void 0!==r?r:a-1;if(0===a)return i._keys.push(e),i._values.push(t),i;if(e===this._keys[o])return this._values.splice(o,0,t),this;if(e===this._keys[s])return this._values.splice(s,0,t),this;if(e>this._keys[s])return this._keys.splice(s+1,0,e),this._values.splice(s+1,0,t),this;if(e=s)return this;const u=o+Math.floor((s-o)/2);return ethis._keys[u]?this.sortedSet(e,t,u+1,s):this}size(){return this.length}clear(){const e=this;return e._keys.length=e.length=e._values.length=0,this}delete(e){const t=this,n=t._keys.indexOf(e);return n>-1&&(t._keys.splice(n,1),t._values.splice(n,1),t.length=t._keys.length,!0)}forEach(e){this._keys.forEach(((t,n)=>{e(this._values[n],t,n)}))}map(e){return this.keys().map(((t,n)=>e(this._values[n],t,n)))}filter(e){const t=this;return t._keys.forEach(((n,r)=>{!1===e(t._values[r],n,r)&&t.delete(n)})),this}clone(){return new Oe(this.entries())}}class Re{constructor(e=20){this._maxEntries=e,this._values=new Oe}delete(e){this._values.has(e)&&this._values.delete(e)}get(e){let t=null;return this._values.has(e)&&(t=this._values.get(e),this._values.delete(e),this._values.set(e,t)),t}put(e,t){if(this._values.size()>=this._maxEntries){const e=this._values.keys()[0];this._values.delete(e)}this._values.set(e,t)}}var Pe=n(93968);class Ue{constructor(e){this.portalUri=e}normalizeModuleUri(e){const t=/^[a-z0-9A-Z]+(@[0-9]+\.[0-9]+\.[0-9]+)?([\?|\/].*)?$/gi,n=/(?.+)\/home\/item\.html\?id\=(?.+)$/gi,r=/(?.+)\/sharing\/rest\/content\/users\/[a-zA-Z0-9]+\/items\/(?.+)$/gi,i=/(?.+)\/sharing\/rest\/content\/items\/(?.+)$/gi,a=/(?.*)@(?[0-9]+\.[0-9]+\.[0-9]+)([\?|\/].*)?$/gi;if(e.startsWith("portal+")){let s=e.substring(7),u="",l=s,c=!1;for(const e of[n,i,r]){const t=e.exec(s);if(null!==t){const e=t.groups;l=e.itemid,u=e.portalurl,c=!0;break}}if(!1===c){if(!t.test(s))throw new o.Tu(o.TD.UnsupportedUriProtocol,{uri:e});l=s,u=this.portalUri}l.includes("/")&&(l=l.split("/")[0]),l.includes("?")&&(l=l.split("?")[0]);let f="current";const d=a.exec(l);if(null!==d){const e=d.groups;l=e.itemid,f=e.versionstring}return s=new Pe.Z({url:u}).restUrl+"/content/items/"+l+"/resources/"+f+".arc",{url:s,scheme:"portal",uri:"PO:"+s}}if(e.startsWith("mock")){if("mock"===e)return{url:"",scheme:"mock",data:'\n export var hello = 1;\n export function helloWorld() {\n return "Hello World " + hello;\n }\n ',uri:"mock"};const t=e.replace("mock:","");if(void 0!==Ue.mocks[t])return{url:"",scheme:"mock",data:Ue.mocks[t],uri:e}}throw new o.Tu(o.TD.UnrecognizedUri,{uri:e})}async fetchModule(e){const t=Ue.cachedModules.getFromCache(e.uri);if(t)return t;const n=this.fetchSource(e);Ue.cachedModules.addToCache(e.uri,n);let r=null;try{r=await n}catch(t){throw Ue.cachedModules.removeFromCache(e.uri),t}return r}async fetchSource(e){if("portal"===e.scheme){const t=await(0,ae.Z)(e.url,{responseType:"text",query:{}});if(t.data)return Le(t.data,[])}if("mock"===e.scheme)return Le(e.data??"",[]);throw new o.Tu(o.TD.UnsupportedUriProtocol)}static create(e){return new Ue(e)}static getDefault(){return this._default??(Ue._default=Ue._moduleResolverFactory())}static set moduleResolverClass(e){this._moduleResolverFactory=e,this._default=null}}Ue.mocks={},Ue.cachedModules=new class{constructor(e=20){this._maxEntries=e,this._cache=new Re(this._maxEntries)}clear(){this._cache=new Re(this._maxEntries)}addToCache(e,t){this._cache.put(e,t)}removeFromCache(e){this._cache.delete(e)}getFromCache(e){return this._cache.get(e)}}(30),Ue._default=null,Ue._moduleResolverFactory=()=>{const e=Pe.Z.getDefault();return new Ue(e.url)};class ze extends u.Rm{constructor(e,t){super(),this.definition=null,this.context=null,this.definition=e,this.context=t}createFunction(e){return(...t)=>{const n={spatialReference:this.context.spatialReference,console:this.context.console,services:this.context.services,timeZone:this.context.timeZone??null,lrucache:this.context.lrucache,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,localScope:{},depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope};if(n.depthCounter.depth>64)throw new o.aV(e,o.rH.MaximumCallDepth,null);return tt(this.definition,n,t,null)}}call(e,t){return qe(e,t,((n,r,i)=>{const a={spatialReference:e.spatialReference,services:e.services,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,timeZone:e.timeZone??null,console:e.console,lrucache:e.lrucache,interceptor:e.interceptor,localScope:{}};if(a.depthCounter.depth>64)throw new o.aV(e,o.rH.MaximumCallDepth,t);return tt(this.definition,a,i,t)}))}marshalledCall(e,t,n,r){return r(e,t,((i,a,o)=>{const s={spatialReference:e.spatialReference,globalScope:n.globalScope,services:e.services,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,timeZone:e.timeZone??null,lrucache:e.lrucache,interceptor:e.interceptor,localScope:{}};return o=o.map((t=>!(0,l.i)(t)||t instanceof u.Vg?t:(0,u.aq)(t,e,r))),(0,u.aq)(tt(this.definition,s,o,t),n,r)}))}}class Ge extends r.P{constructor(e){super(e)}global(e){const t=this.executingContext.globalScope[e.toLowerCase()];if(t.valueset||(t.value=$e(this.executingContext,t.node),t.valueset=!0),(0,l.i)(t.value)&&!(t.value instanceof u.Vg)){const e=new u.Vg;e.fn=t.value,e.parameterEvaluator=qe,e.context=this.executingContext,t.value=e}return t.value}setGlobal(e,t){if((0,l.i)(t))throw new o.aV(null,o.rH.AssignModuleFunction,null);this.executingContext.globalScope[e.toLowerCase()]={value:t,valueset:!0,node:null}}hasGlobal(e){return void 0===this.executingContext.exports[e]&&(e=e.toLowerCase()),void 0!==this.executingContext.exports[e]}loadModule(e){let t=e.spatialReference;null==t&&(t=new _.Z({wkid:102100})),this.moduleScope=rt({},e.customfunctions,e.timeZone),this.executingContext={spatialReference:t,globalScope:this.moduleScope,localScope:null,libraryResolver:new i.s(e.libraryResolver._moduleSingletons,this.source.syntax.loadedModules),exports:{},services:e.services,console:e.console??it,timeZone:e.timeZone??null,lrucache:e.lrucache,interceptor:e.interceptor,depthCounter:{depth:1}},$e(this.executingContext,this.source.syntax)}}function je(e,t){const n=[];for(let r=0;rn.length)throw new o.aV(e,o.rH.OutOfBounds,t);if(r===n.length){if("="!==t.operator)throw new o.aV(e,o.rH.OutOfBounds,t);n[r]=Ke(i,t.operator,n[r],t,e)}else n[r]=Ke(i,t.operator,n[r],t,e)}else if(n instanceof a.Z){if(!1===(0,l.c)(r))throw new o.aV(e,o.rH.KeyAccessorMustBeString,t);if(!0===n.hasField(r))n.setField(r,Ke(i,t.operator,n.field(r),t,e));else{if("="!==t.operator)throw new o.aV(e,o.rH.FieldNotFound,t,{key:r});n.setField(r,Ke(i,t.operator,null,t,e))}}else if((0,l.r)(n)){if(!1===(0,l.c)(r))throw new o.aV(e,o.rH.KeyAccessorMustBeString,t);if(!0===n.hasField(r))n.setField(r,Ke(i,t.operator,n.field(r),t,e));else{if("="!==t.operator)throw new o.aV(e,o.rH.FieldNotFound,t,{key:r});n.setField(r,Ke(i,t.operator,null,t,e))}}else{if((0,l.q)(n))throw new o.aV(e,o.rH.Immutable,t);if(!(n instanceof Ge))throw new o.aV(e,o.rH.InvalidIdentifier,t);if(!1===(0,l.c)(r))throw new o.aV(e,o.rH.ModuleAccessorMustBeString,t);if(!0!==n.hasGlobal(r))throw new o.aV(e,o.rH.ModuleExportNotFound,t);n.setGlobal(r,Ke(i,t.operator,n.global(r),t,e))}return l.B}n=t.left.name.toLowerCase();const i=$e(e,t.right);if(null!=e.localScope&&void 0!==e.localScope[n])return e.localScope[n]={value:Ke(i,t.operator,e.localScope[n].value,t,e),valueset:!0,node:t.right},l.B;if(void 0!==e.globalScope[n])return e.globalScope[n]={value:Ke(i,t.operator,e.globalScope[n].value,t,e),valueset:!0,node:t.right},l.B;throw new o.aV(e,o.rH.InvalidIdentifier,t)}(e,t);case"UpdateExpression":return function(e,t){let n,r=null,i="";if("MemberExpression"===t.argument.type){if(r=$e(e,t.argument.object),!0===t.argument.computed?i=$e(e,t.argument.property):"Identifier"===t.argument.property.type&&(i=t.argument.property.name),(0,l.o)(r)){if(!(0,l.b)(i))throw new o.aV(e,o.rH.ArrayAccessorMustBeNumber,t);if(i<0&&(i=r.length+i),i<0||i>=r.length)throw new o.aV(e,o.rH.OutOfBounds,t);n=(0,l.g)(r[i]),r[i]="++"===t.operator?n+1:n-1}else if(r instanceof a.Z){if(!1===(0,l.c)(i))throw new o.aV(e,o.rH.KeyAccessorMustBeString,t);if(!0!==r.hasField(i))throw new o.aV(e,o.rH.FieldNotFound,t);n=(0,l.g)(r.field(i)),r.setField(i,"++"===t.operator?n+1:n-1)}else if((0,l.r)(r)){if(!1===(0,l.c)(i))throw new o.aV(e,o.rH.KeyAccessorMustBeString,t);if(!0!==r.hasField(i))throw new o.aV(e,o.rH.FieldNotFound,t);n=(0,l.g)(r.field(i)),r.setField(i,"++"===t.operator?n+1:n-1)}else{if((0,l.q)(r))throw new o.aV(e,o.rH.Immutable,t);if(!(r instanceof Ge))throw new o.aV(e,o.rH.InvalidParameter,t);if(!1===(0,l.c)(i))throw new o.aV(e,o.rH.ModuleAccessorMustBeString,t);if(!0!==r.hasGlobal(i))throw new o.aV(e,o.rH.ModuleExportNotFound,t);n=(0,l.g)(r.global(i)),r.setGlobal(i,"++"===t.operator?n+1:n-1)}return!1===t.prefix?n:"++"===t.operator?n+1:n-1}if(r="Identifier"===t.argument.type?t.argument.name.toLowerCase():"",!r)throw new o.aV(e,o.rH.InvalidIdentifier,t);if(null!=e.localScope&&void 0!==e.localScope[r])return n=(0,l.g)(e.localScope[r].value),e.localScope[r]={value:"++"===t.operator?n+1:n-1,valueset:!0,node:t},!1===t.prefix?n:"++"===t.operator?n+1:n-1;if(void 0!==e.globalScope[r])return n=(0,l.g)(e.globalScope[r].value),e.globalScope[r]={value:"++"===t.operator?n+1:n-1,valueset:!0,node:t},!1===t.prefix?n:"++"===t.operator?n+1:n-1;throw new o.aV(e,o.rH.InvalidIdentifier,t)}(e,t);case"BreakStatement":return l.C;case"ContinueStatement":return l.D;case"TemplateElement":return function(e,t){return t.value?t.value.cooked:""}(0,t);case"TemplateLiteral":return function(e,t){let n="",r=0;for(const i of t.quasis)n+=i.value?i.value.cooked:"",!1===i.tail&&(n+=t.expressions[r]?(0,l.j)(We($e(e,t.expressions[r]),e,t)):"",r++);return n}(e,t);case"ForStatement":return function(e,t){null!==t.init&&$e(e,t.init);const n={testResult:!0,lastAction:l.B};do{Je(e,t,n)}while(!0===n.testResult);return n.lastAction instanceof l.z?n.lastAction:l.B}(e,t);case"ForInStatement":return function(e,t){const n=$e(e,t.right);"VariableDeclaration"===t.left.type&&$e(e,t.left);let r=null,i="";if("VariableDeclaration"===t.left.type){const e=t.left.declarations[0].id;"Identifier"===e.type&&(i=e.name)}else"Identifier"===t.left.type&&(i=t.left.name);if(!i)throw new o.aV(e,o.rH.InvalidIdentifier,t);if(i=i.toLowerCase(),null!=e.localScope&&void 0!==e.localScope[i]&&(r=e.localScope[i]),null===r&&void 0!==e.globalScope[i]&&(r=e.globalScope[i]),null===r)throw new o.aV(e,o.rH.InvalidIdentifier,t);if((0,l.o)(n)||(0,l.c)(n)){const i=n.length;for(let n=0;n=n.length||r<0)throw new o.aV(e,o.rH.OutOfBounds,t);return n[r]}throw new o.aV(e,o.rH.InvalidMemberAccessKey,t)}if((0,l.c)(n)){if((0,l.b)(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length+r),r>=n.length||r<0)throw new o.aV(e,o.rH.OutOfBounds,t);return n[r]}throw new o.aV(e,o.rH.InvalidMemberAccessKey,t)}if((0,l.q)(n)){if((0,l.b)(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length()+r),r>=n.length()||r<0)throw new o.aV(e,o.rH.OutOfBounds,t);return n.get(r)}throw new o.aV(e,o.rH.InvalidMemberAccessKey,t)}throw new o.aV(e,o.rH.InvalidMemberAccessKey,t)}}catch(e){throw e}}(e,t);case"Literal":return t.value;case"CallExpression":return function(e,t){try{if("MemberExpression"===t.callee.type){const n=$e(e,t.callee.object);if(!(n instanceof Ge))throw new o.aV(e,o.rH.FunctionNotFound,t);const r=!1===t.callee.computed?t.callee.property.name:$e(e,t.callee.property);if(!n.hasGlobal(r))throw new o.aV(e,o.rH.FunctionNotFound,t);const i=n.global(r);if(!(0,l.i)(i))throw new o.aV(e,o.rH.CallNonFunction,t);return i.call(e,t)}if("Identifier"!==t.callee.type)throw new o.aV(e,o.rH.FunctionNotFound,t);if(null!=e.localScope&&void 0!==e.localScope[t.callee.name.toLowerCase()]){const n=e.localScope[t.callee.name.toLowerCase()];if((0,l.i)(n.value))return n.value.call(e,t);throw new o.aV(e,o.rH.CallNonFunction,t)}if(void 0!==e.globalScope[t.callee.name.toLowerCase()]){const n=e.globalScope[t.callee.name.toLowerCase()];if((0,l.i)(n.value))return n.value.call(e,t);throw new o.aV(e,o.rH.CallNonFunction,t)}throw new o.aV(e,o.rH.FunctionNotFound,t)}catch(e){throw e}}(e,t);case"UnaryExpression":return function(e,t){try{const n=$e(e,t.argument);if((0,l.a)(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*(0,l.g)(n);if("+"===t.operator)return 1*(0,l.g)(n);if("~"===t.operator)return~(0,l.g)(n);throw new o.aV(e,o.rH.UnsupportedUnaryOperator,t)}if("~"===t.operator)return~(0,l.g)(n);if("-"===t.operator)return-1*(0,l.g)(n);if("+"===t.operator)return 1*(0,l.g)(n);throw new o.aV(e,o.rH.UnsupportedUnaryOperator,t)}catch(e){throw e}}(e,t);case"BinaryExpression":return function(e,t){try{const n=[$e(e,t.left),$e(e,t.right)],r=n[0],i=n[1];switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return(0,l.G)((0,l.g)(r),(0,l.g)(i),t.operator);case"==":return(0,l.F)(r,i);case"!=":return!(0,l.F)(r,i);case"<":case">":case"<=":case">=":return(0,l.E)(r,i,t.operator);case"+":return(0,l.c)(r)||(0,l.c)(i)?(0,l.j)(r)+(0,l.j)(i):(0,l.g)(r)+(0,l.g)(i);case"-":return(0,l.g)(r)-(0,l.g)(i);case"*":return(0,l.g)(r)*(0,l.g)(i);case"/":return(0,l.g)(r)/(0,l.g)(i);case"%":return(0,l.g)(r)%(0,l.g)(i);default:throw new o.aV(e,o.rH.UnsupportedOperator,t)}}catch(e){throw e}}(e,t);case"LogicalExpression":return function(e,t){try{const n=$e(e,t.left);if((0,l.a)(n))switch(t.operator){case"||":if(!0===n)return n;{const n=$e(e,t.right);if((0,l.a)(n))return n;throw new o.aV(e,o.rH.LogicExpressionOrAnd,t)}case"&&":if(!1===n)return n;{const n=$e(e,t.right);if((0,l.a)(n))return n;throw new o.aV(e,o.rH.LogicExpressionOrAnd,t)}default:throw new o.aV(e,o.rH.LogicExpressionOrAnd,t)}throw new o.aV(e,o.rH.LogicalExpressionOnlyBoolean,t)}catch(e){throw e}}(e,t);case"ArrayExpression":return function(e,t){try{const n=[];for(let r=0;r0&&(n=Ue.getDefault()),t.loadedModules={};for(const s of a){(0,ut.O3)(n);const a=n.normalizeModuleUri(s.source);if(e.has(a.uri))throw new o.aV(null,o.rH.CircularModules,null);e.add(a.uri);const u=await n.fetchModule(a);await _t(e,u,r,[],i,n),e.delete(a.uri),u.isAsync&&(t.isAsync=!0),u.usesFeatureSet&&(t.usesFeatureSet=!0),u.usesGeometry&&(t.usesGeometry=!0),t.loadedModules[s.libname]={uri:a.uri,script:u}}}function Zt(e){if(wt(e))return!0;const t=(0,c.Vf)(e);let n=!1;for(let e=0;e{zt.test(e)&&(e=e.replace(zt,""),i.push(e))}));const a=i.filter((e=>e.includes("*")));return i=i.filter((e=>!a.includes(e))),t&&a.forEach((e=>{const n=new RegExp(`^${e.split(/\*+/).map(jt).join(".*")}$`,"i");t.forEach((e=>n.test(e)?i.push(e):null))})),[...new Set(i.sort())]}function nn(e){return Dt(e,"$view")}function rn(e,t){return!!e&&Dt(e,t)}function an(e){if(e&&(null!=e.spatialReference||null!=e.scale&&null!=e.viewingMode))return{view:e.viewingMode&&null!=e.scale?new a.Z({viewingMode:e.viewingMode,scale:e.scale}):null,sr:e.spatialReference}}function on({url:e,spatialReference:t,lrucache:n,interceptor:r}){const i=Lt();return i?i.createFeatureSetCollectionFromService(e,t,n,r):null}function sn({layer:e,spatialReference:t,outFields:n,returnGeometry:r,lrucache:i,interceptor:a}){if(null===e)return null;const o=Lt();return o?o.constructFeatureSet(e,t,n,r??!0,i,a):null}function un(e){if(null===e?.map)return null;const t=Lt();return t?t.createFeatureSetCollectionFromMap(e.map,e.spatialReference,e.lrucache,e.interceptor):null}function ln(e,t){return a.Z.convertJsonToArcade(e,t)}function cn(e,t,n=[]){return Ht(e,t,n)}function fn(){return Ft()}function dn(){return Tt()}function hn(e,t){if(!e)return!1;if("string"==typeof e)return t(e);const n=e;if(function(e){return"simple"===e.type||"class-breaks"===e.type||"unique-value"===e.type||"dot-density"===e.type||"dictionary"===e.type||"pie-chart"===e.type}(n)){if("dot-density"===n.type){const e=n.attributes?.some((e=>t(e.valueExpression)));if(e)return e}const e=n.visualVariables,r=!!e&&e.some((e=>{let n=t(e.valueExpression);return"size"===e.type&&(yn(e.minSize)&&(n=n||t(e.minSize.valueExpression)),yn(e.maxSize)&&(n=n||t(e.maxSize.valueExpression))),n}));return!(!("valueExpression"in n)||!t(n.valueExpression))||r}if(function(e){return"esri.layers.support.LabelClass"===e.declaredClass}(n)){const e=n.labelExpressionInfo?.expression;return!(!e||!t(e))||!1}return!!function(e){return"esri.PopupTemplate"===e.declaredClass}(n)&&(!!n.expressionInfos&&n.expressionInfos.some((e=>t(e.expression)))||Array.isArray(n.content)&&n.content.some((e=>"expression"===e.type&&t(e.expressionInfo?.expression))))}function mn(e){const t=$t(e);return!!t&&Zt(t)}function pn(e){return hn(e,mn)}function gn(e){const t=$t(e);return!!t&&wt(t)}function Dn(e){return hn(e,gn)}function yn(e){return e&&"esri.renderers.visualVariables.SizeVariable"===e.declaredClass}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6165.e303b8ef1ff08a8925eb.js b/docs/sentinel1-explorer/6165.e303b8ef1ff08a8925eb.js new file mode 100644 index 00000000..5b52c63c --- /dev/null +++ b/docs/sentinel1-explorer/6165.e303b8ef1ff08a8925eb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6165,8611],{50516:function(e,t,r){r.d(t,{D:function(){return o}});var n=r(71760);function o(e){e?.writtenProperties&&e.writtenProperties.forEach((({target:e,propName:t,newOrigin:r})=>{(0,n.l)(e)&&r&&e.originOf(t)!==r&&e.updateOrigin(t,r)}))}},71760:function(e,t,r){function n(e){return e&&"getAtOrigin"in e&&"originOf"in e}r.d(t,{l:function(){return n}})},46165:function(e,t,r){r.d(t,{save:function(){return w},saveAs:function(){return y}});var n=r(21011),o=r(84513),a=r(31370),s=r(83415);const i="Group Layer",c="group-layer-save",u="group-layer-save-as",p=a.hz.GROUP_LAYER_MAP;function l(e){return{isValid:"group"===e.type,errorMessage:"Layer.type should be 'group'"}}function f(e){return{isValid:(0,a._$)(e,p),errorMessage:`Layer.portalItem.typeKeywords should have '${p}'`}}function d(e,t){return{...(0,o.Y)(e,"web-map",!0),initiator:t}}function m(e){const t=e.layerJSON;return Promise.resolve(t&&Object.keys(t).length?t:null)}async function h(e,t){t.title||=e.title,(0,a.ck)(t,a.hz.METADATA),(0,a.qj)(t,p)}async function w(e,t){return(0,n.a1)({layer:e,itemType:i,validateLayer:l,validateItem:f,createJSONContext:t=>d(t,e),createItemData:m,errorNamePrefix:c,saveResources:async(t,r)=>(e.sourceIsPortalItem||await t.removeAllResources().catch((()=>{})),(0,s.H)(e.resourceReferences,r))},t)}async function y(e,t,r){return(0,n.po)({layer:e,itemType:i,validateLayer:l,createJSONContext:t=>d(t,e),createItemData:m,errorNamePrefix:u,newItem:t,setItemProperties:h,saveResources:(t,r)=>(0,s.H)(e.resourceReferences,r)},r)}},21011:function(e,t,r){r.d(t,{DC:function(){return l},Nw:function(){return v},UY:function(){return g},V3:function(){return y},Ym:function(){return h},a1:function(){return O},jX:function(){return I},po:function(){return P},uT:function(){return w},xG:function(){return d}});var n=r(70375),o=r(50516),a=r(93968),s=r(53110),i=r(84513),c=r(31370),u=r(76990),p=r(60629);function l(e,t,r){const o=r(e);if(!o.isValid)throw new n.Z(`${t}:invalid-parameters`,o.errorMessage,{layer:e})}async function f(e){const{layer:t,errorNamePrefix:r,validateLayer:n}=e;await t.load(),l(t,r,n)}function d(e,t){return`Layer (title: ${e.title}, id: ${e.id}) of type '${e.declaredClass}' ${t}`}function m(e){const{item:t,errorNamePrefix:r,layer:o,validateItem:a}=e;if((0,u.w)(t),function(e){const{item:t,itemType:r,additionalItemType:o,errorNamePrefix:a,layer:s}=e,i=[r];if(o&&i.push(o),!i.includes(t.type)){const e=i.map((e=>`'${e}'`)).join(", ");throw new n.Z(`${a}:portal-item-wrong-type`,`Portal item type should be one of: "${e}"`,{item:t,layer:s})}}(e),a){const e=a(t);if(!e.isValid)throw new n.Z(`${r}:invalid-parameters`,e.errorMessage,{layer:o})}}function h(e){const{layer:t,errorNamePrefix:r}=e,{portalItem:o}=t;if(!o)throw new n.Z(`${r}:portal-item-not-set`,d(t,"requires the portalItem property to be set"));if(!o.loaded)throw new n.Z(`${r}:portal-item-not-loaded`,d(t,"cannot be saved to a portal item that does not exist or is inaccessible"));m({...e,item:o})}function w(e){const{newItem:t,itemType:r}=e;let n=s.default.from(t);return n.id&&(n=n.clone(),n.id=null),n.type??=r,n.portal??=a.Z.getDefault(),m({...e,item:n}),n}function y(e){return(0,i.Y)(e,"portal-item")}async function v(e,t,r){"beforeSave"in e&&"function"==typeof e.beforeSave&&await e.beforeSave();const n=e.write({},t);return await Promise.all(t.resources?.pendingOperations??[]),(0,p.z)(t,{errorName:"layer-write:unsupported"},r),n}function g(e){(0,c.qj)(e,c.hz.JSAPI),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}async function I(e,t,r){const n=e.portal;await n.signIn(),await(n.user?.addItem({item:e,data:t,folder:r?.folder}))}async function O(e,t){const{layer:r,createItemData:n,createJSONContext:a,saveResources:s,supplementalUnsupportedErrors:i}=e;await f(e),h(e);const c=r.portalItem,u=a?a(c):y(c),p=await v(r,u,{...t,supplementalUnsupportedErrors:i}),l=await n({layer:r,layerJSON:p},c);return g(c),await c.update({data:l}),(0,o.D)(u),await(s?.(c,u)),c}async function P(e,t){const{layer:r,createItemData:n,createJSONContext:a,setItemProperties:s,saveResources:i,supplementalUnsupportedErrors:c}=e;await f(e);const u=w(e),p=a?a(u):y(u),l=await v(r,p,{...t,supplementalUnsupportedErrors:c}),d=await n({layer:r,layerJSON:l},u);return await s(r,u),g(u),await I(u,d,t),r.portalItem=u,(0,o.D)(p),await(i?.(u,p)),u}},68611:function(e,t,r){r.d(t,{FO:function(){return f},W7:function(){return d},addOrUpdateResources:function(){return i},fetchResources:function(){return s},removeAllResources:function(){return u},removeResource:function(){return c}});var n=r(66341),o=r(70375),a=r(3466);async function s(e,t={},r){await e.load(r);const n=(0,a.v_)(e.itemUrl,"resources"),{start:o=1,num:s=10,sortOrder:i="asc",sortField:c="resource"}=t,u={query:{start:o,num:s,sortOrder:i,sortField:c,token:e.apiKey},signal:r?.signal},p=await e.portal.request(n,u);return{total:p.total,nextStart:p.nextStart,resources:p.resources.map((({created:t,size:r,resource:n})=>({created:new Date(t),size:r,resource:e.resourceFromPath(n)})))}}async function i(e,t,r,n){const s=new Map;for(const{resource:e,content:n,compress:a,access:i}of t){if(!e.hasPath())throw new o.Z(`portal-item-resource-${r}:invalid-path`,"Resource does not have a valid path");const[t,c]=p(e.path),u=`${t}/${a??""}/${i??""}`;s.has(u)||s.set(u,{prefix:t,compress:a,access:i,files:[]}),s.get(u).files.push({fileName:c,content:n})}await e.load(n);const i=(0,a.v_)(e.userItemUrl,"add"===r?"addResources":"updateResources");for(const{prefix:t,compress:r,access:o,files:a}of s.values()){const s=25;for(let c=0;ce.resource.path))),p=new Set,l=[];u.forEach((t=>{c.delete(t),e.paths.push(t)}));const f=[],d=[],m=[];for(const r of t.resources.toUpdate)if(c.delete(r.resource.path),u.has(r.resource.path)||p.has(r.resource.path)){const{resource:t,content:n,finish:o}=r,i=(0,s.W7)(t,(0,a.DO)());e.paths.push(i.path),f.push({resource:i,content:await(0,s.FO)(n),compress:r.compress}),o&&m.push((()=>o(i)))}else{e.paths.push(r.resource.path),d.push({resource:r.resource,content:await(0,s.FO)(r.content),compress:r.compress});const t=r.finish;t&&m.push((()=>t(r.resource))),p.add(r.resource.path)}for(const r of t.resources.toAdd)if(e.paths.push(r.resource.path),c.has(r.resource.path))c.delete(r.resource.path);else{f.push({resource:r.resource,content:await(0,s.FO)(r.content),compress:r.compress});const e=r.finish;e&&m.push((()=>e(r.resource)))}if(f.length||d.length){const{addOrUpdateResources:e}=await Promise.resolve().then(r.bind(r,68611));await e(t.portalItem,f,"add",i),await e(t.portalItem,d,"update",i)}if(m.forEach((e=>e())),0===l.length)return c;const h=await(0,o.UO)(l);if((0,o.k_)(i),h.length>0)throw new n.Z("save:resources","Failed to save one or more resources",{errors:h});return c}async function p(e,t,r){if(!e||!t.portalItem)return;const n=[];for(const o of e){const e=t.portalItem.resourceFromPath(o);n.push(e.portalItem.removeResource(e,r))}await(0,o.as)(n)}},76990:function(e,t,r){r.d(t,{w:function(){return s}});var n=r(51366),o=r(70375),a=r(99522);function s(e){if(n.default.apiKey&&(0,a.r)(e.portal.url))throw new o.Z("save-api-key-utils:api-key-not-supported",`Saving is not supported on ${e.portal.url} when using an api key`)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6185.61ffe31c43856a6a5ad7.js b/docs/sentinel1-explorer/6185.61ffe31c43856a6a5ad7.js new file mode 100644 index 00000000..1a6f5ddb --- /dev/null +++ b/docs/sentinel1-explorer/6185.61ffe31c43856a6a5ad7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6185],{16185:function(e,_,r){r.r(_),r.d(_,{default:function(){return d}});const d={_decimalSeparator:".",_thousandSeparator:",",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"م",_era_bc:"ق.م",A:"ص",P:"م",AM:"ص",PM:"م","A.M.":"ص","P.M.":"م",January:"يناير",February:"فبراير",March:"مارس",April:"أبريل",May:"مايو",June:"يونيو",July:"يوليو",August:"أغسطس",September:"سبتمبر",October:"أكتوبر",November:"نوفمبر",December:"ديسمبر",Jan:"يناير",Feb:"فبراير",Mar:"مارس",Apr:"أبريل","May(short)":"مايو",Jun:"يونيو",Jul:"يوليو",Aug:"أغسطس",Sep:"سبتمبر",Oct:"أكتوبر",Nov:"نوفمبر",Dec:"ديسمبر",Sunday:"الأحد",Monday:"الاثنين",Tuesday:"الثلاثاء",Wednesday:"الأربعاء",Thursday:"الخميس",Friday:"الجمعة",Saturday:"السبت",Sun:"الأحد",Mon:"الاثنين",Tue:"الثلاثاء",Wed:"الأربعاء",Thu:"الخميس",Fri:"الجمعة",Sat:"السبت",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"تغيير مقياس الرسم",Play:"تشغيل",Stop:"إيقاف تشغيل",Legend:"وسيلة الإيضاح","Press ENTER to toggle":"",Loading:"تحميل",Home:"الصفحة الرئيسية",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"طباعة",Image:"صورة",Data:"بيانات",Print:"طباعة","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"من %1 إلى %2","From %1":"من %1","To %1":"إلى %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/627.f58acb14f98120375b02.js b/docs/sentinel1-explorer/627.f58acb14f98120375b02.js new file mode 100644 index 00000000..f28e4703 --- /dev/null +++ b/docs/sentinel1-explorer/627.f58acb14f98120375b02.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[627],{35743:function(e,t,n){n.r(t),n.d(t,{toBinaryGLTF:function(){return j}});var s,r=n(3466),i=n(67666);!function(e){e[e.JSON=1313821514]="JSON",e[e.BIN=5130562]="BIN"}(s||(s={}));class _{constructor(e,t){if(!e)throw new Error("GLB requires a JSON gltf chunk");this._length=_.HEADER_SIZE,this._length+=_.CHUNK_HEADER_SIZE;const n=this._textToArrayBuffer(e);if(this._length+=this._alignTo(n.byteLength,4),t&&(this._length+=_.CHUNK_HEADER_SIZE,this._length+=t.byteLength,t.byteLength%4))throw new Error("Expected BIN chunk length to be divisible by 4 at this point");this.buffer=new ArrayBuffer(this._length),this._outView=new DataView(this.buffer),this._writeHeader();const r=this._writeChunk(n,12,s.JSON,32);t&&this._writeChunk(t,r,s.BIN)}_writeHeader(){this._outView.setUint32(0,_.MAGIC,!0),this._outView.setUint32(4,_.VERSION,!0),this._outView.setUint32(8,this._length,!0)}_writeChunk(e,t,n,s=0){const r=this._alignTo(e.byteLength,4);for(this._outView.setUint32(t,r,!0),this._outView.setUint32(t+=4,n,!0),this._writeArrayBuffer(this._outView.buffer,e,t+=4,0,e.byteLength),t+=e.byteLength;t%4;)s&&this._outView.setUint8(t,s),t++;return t}_writeArrayBuffer(e,t,n,s,r){new Uint8Array(e,n,r).set(new Uint8Array(t,s,r),0)}_textToArrayBuffer(e){return(new TextEncoder).encode(e).buffer}_alignTo(e,t){return t*Math.ceil(e/t)}}_.HEADER_SIZE=12,_.CHUNK_HEADER_SIZE=8,_.MAGIC=1179937895,_.VERSION=2;var o,E,a,T,A,R,c,u=n(70375),f=n(13802),h=n(86114),N=n(19431),l=n(17321),S=n(32114),O=n(3308),I=n(1845),C=n(96303),d=n(86717),L=n(81095),M=n(58626),D=n(1680),g=n(91780);!function(e){e[e.External=0]="External",e[e.DataURI=1]="DataURI",e[e.GLB=2]="GLB"}(o||(o={})),function(e){e[e.External=0]="External",e[e.DataURI=1]="DataURI",e[e.GLB=2]="GLB"}(E||(E={})),function(e){e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER"}(a||(a={})),function(e){e.SCALAR="SCALAR",e.VEC2="VEC2",e.VEC3="VEC3",e.VEC4="VEC4",e.MAT2="MAT2",e.MAT3="MAT3",e.MAT4="MAT4"}(T||(T={})),function(e){e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN"}(A||(A={})),function(e){e.OPAQUE="OPAQUE",e.MASK="MASK",e.BLEND="BLEND"}(R||(R={})),function(e){e[e.NoColor=0]="NoColor",e[e.FaceColor=1]="FaceColor",e[e.VertexColor=2]="VertexColor"}(c||(c={}));var p=n(91907);class B{constructor(e,t,n,s,r){this._buffer=e,this._componentType=n,this._dataType=s,this._data=[],this._isFinalized=!1,this._accessorIndex=-1,this._accessorAttribute=null,this._accessorMin=null,this._accessorMax=null,t.bufferViews||(t.bufferViews=[]),this.index=t.bufferViews.length,this._bufferView={buffer:e.index,byteLength:-1,target:r};const i=this._getElementSize();i>=4&&r!==a.ELEMENT_ARRAY_BUFFER&&(this._bufferView.byteStride=i),t.bufferViews.push(this._bufferView),this._numComponentsForDataType=this._calculateNumComponentsForDataType()}push(e){const t=this._data.length;if(this._data.push(e),this._accessorIndex>=0){const n=t%this._numComponentsForDataType,s=this._accessorMin[n];this._accessorMin[n]="number"!=typeof s?e:Math.min(s,e);const r=this._accessorMax[n];this._accessorMax[n]="number"!=typeof r?e:Math.max(r,e)}}get dataSize(){return this._data.length*this._sizeComponentType()}get byteSize(){return function(e,t){return t*Math.ceil(e/t)}(this.dataSize,4)}getByteOffset(){if(!this._isFinalized)throw new Error("Cannot get BufferView offset until it is finalized");return this._buffer.getByteOffset(this)}get byteOffset(){if(!this._isFinalized)throw new Error("Cannot get BufferView offset until it is finalized");return this._buffer.getByteOffset(this)}_createTypedArray(e,t){switch(this._componentType){case p.g.BYTE:return new Int8Array(e,t);case p.g.FLOAT:return new Float32Array(e,t);case p.g.SHORT:return new Int16Array(e,t);case p.g.UNSIGNED_BYTE:return new Uint8Array(e,t);case p.g.UNSIGNED_INT:return new Uint32Array(e,t);case p.g.UNSIGNED_SHORT:return new Uint16Array(e,t)}}writeOutToBuffer(e,t){this._createTypedArray(e,t).set(this._data)}writeAsync(e){if(this._asyncWritePromise)throw new Error("Can't write multiple bufferView values asynchronously");return this._asyncWritePromise=e.then((e=>{const t=new Uint8Array(e);for(let e=0;e=0)throw new Error("Accessor was started without ending the previous one");this._accessorIndex=this._data.length,this._accessorAttribute=e;const t=this._numComponentsForDataType;this._accessorMin=new Array(t),this._accessorMax=new Array(t)}endAccessor(){if(this._accessorIndex<0)throw new Error("An accessor was not started, but was attempted to be ended");const e=this._getElementSize(),t=this._numComponentsForDataType,n=(this._data.length-this._accessorIndex)/t;if(n%1)throw new Error("An accessor was ended with missing component values");for(let e=0;ethis._finalizedPromiseResolve=e))}async finalize(){const e=this._bufferView,t=this._buffer.getViewFinalizePromises(this);this._asyncWritePromise&&t.push(this._asyncWritePromise),await Promise.allSettled(t),this._isFinalized=!0,e.byteOffset=this.getByteOffset(),e.byteLength=this.dataSize,this._finalizedPromiseResolve&&this._finalizedPromiseResolve()}_getElementSize(){return this._sizeComponentType()*this._numComponentsForDataType}_sizeComponentType(){switch(this._componentType){case p.g.BYTE:case p.g.UNSIGNED_BYTE:return 1;case p.g.SHORT:case p.g.UNSIGNED_SHORT:return 2;case p.g.UNSIGNED_INT:case p.g.FLOAT:return 4}}_calculateNumComponentsForDataType(){switch(this._dataType){case T.SCALAR:return 1;case T.VEC2:return 2;case T.VEC3:return 3;case T.VEC4:case T.MAT2:return 4;case T.MAT3:return 9;case T.MAT4:return 16}}}class U{constructor(e){this._gltf=e,this._bufferViews=[],this._isFinalized=!1,e.buffers||(e.buffers=[]),this.index=e.buffers.length;const t={byteLength:-1};e.buffers.push(t),this._buffer=t}addBufferView(e,t,n){if(this._finalizePromise)throw new Error("Cannot add buffer view after fiinalizing buffer");const s=new B(this,this._gltf,e,t,n);return this._bufferViews.push(s),s}getByteOffset(e){let t=0;for(const n of this._bufferViews){if(n===e)return t;t+=n.byteSize}throw new Error("Given bufferView was not present in this buffer")}getViewFinalizePromises(e){const t=[];for(const n of this._bufferViews){if(e&&n===e)return t;t.push(n.finalized)}return t}getArrayBuffer(){if(!this._isFinalized)throw new Error("Cannot get ArrayBuffer from Buffer before it is finalized");const e=this._getTotalSize(),t=new ArrayBuffer(e);let n=0;for(const e of this._bufferViews)e.writeOutToBuffer(t,n),n+=e.byteSize;return t}finalize(){if(this._finalizePromise)throw new Error(`Buffer ${this.index} was already finalized`);return this._finalizePromise=Promise.allSettled(this.getViewFinalizePromises()).then((()=>{this._isFinalized=!0;const e=this.getArrayBuffer();this._buffer.byteLength=e.byteLength,this._buffer.uri=e})),this._gltf.extras?.promises.push(this._finalizePromise),this._finalizePromise}_getTotalSize(){let e=0;for(const t of this._bufferViews)e+=t.byteSize;return e}}function m(e,t){null==t.normal&&(t.normal=new Float32Array(t.position.length));const n=e.faces,{position:s,normal:r}=t,i=n.length/3;for(let e=0;ef.Z.getLogger("gltf");class x{constructor(e,t,n){this.params={},this._materialMap=new Array,this._imageMap=new Map,this._textureMap=new Map,this.gltf={asset:{version:"2.0",copyright:e.copyright,generator:e.generator},extras:{options:t,binChunkBuffer:null,promises:[]}},n&&(this.params=n),this._addScenes(e)}_addScenes(e){this.gltf.scene=e.defaultScene;const t=this.gltf.extras,n=t.options.bufferOutputType===o.GLB||t.options.imageOutputType===E.GLB;n&&(t.binChunkBuffer=new U(this.gltf)),e.forEachScene((e=>{this._addScene(e)})),n&&t.binChunkBuffer.finalize()}_addScene(e){this.gltf.scenes||(this.gltf.scenes=[]);const t={};e.name&&(t.name=e.name),e.forEachNode((e=>{t.nodes||(t.nodes=[]),t.nodes.push(...this._addNodes(e))})),this.gltf.scenes.push(t)}_addNodes(e){this.gltf.nodes||(this.gltf.nodes=[]);const t={};e.name&&(t.name=e.name);const n=e.translation;(0,d.j)(n,L.AG)||(t.translation=(0,L.d9)(n));const s=e.rotation;(0,I.I6)(s,C.Wd)||(t.rotation=(0,C.d9)(s));const r=e.scale;(0,d.j)(r,L.hq)||(t.scale=(0,L.d9)(r));const i=this.gltf.nodes.length;if(this.gltf.nodes.push(t),e.mesh&&e.mesh.vertexAttributes.position){const n=this._createMeshes(e.mesh),s=[i];if(1===n.length)this._addMesh(t,n[0]);else for(const e of n){const t={};this._addMesh(t,e),s.push(this.gltf.nodes.length),this.gltf.nodes.push(t)}return s}return e.forEachNode((e=>{t.children||(t.children=[]),t.children.push(...this._addNodes(e))})),[i]}_addMesh(e,t){this.gltf.meshes??=[];const n=this.gltf.meshes.length;this.gltf.meshes.push(t),e.mesh=n}_createMeshes(e){const t=this.gltf.extras,n=t.options.bufferOutputType===o.GLB;let s;s=n?t.binChunkBuffer:new U(this.gltf),this.params.origin||(this.params.origin=e.anchor);const{ignoreLocalTransform:r}=this.params,i=r?null:e.transform,{vertexSpace:_,spatialReference:E}=e,A=_.origin,R=e.vertexAttributes;let c=null;if("local"===_.type){const e=(0,l.r6)(E);(0,S.bA)(V,i?.localMatrix??O.Wd,[e,e,e]),c=(0,g.Ne)(R,V)}else{const e=r?new M.Z({origin:A?(0,L.d9)(A):null}):_;c=(0,g.Yq)(R,e,i,this.params.origin,{geographic:this.params.geographic,unit:"meters"})}if(null==c)throw new u.Z("Error during gltf export.");R.position&&c.position===R.position&&(c.position=R.position.slice()),R.normal&&c.normal===R.normal&&(c.normal=R.normal.slice()),R.tangent&&c.tangent===R.tangent&&(c.tangent=R.tangent.slice()),function(e,t){if(e.components)for(const n of e.components)n.faces&&"smooth"===n.shading&&m(n,t)}(e,c),this._flipYZAxis(c);const f=s.addBufferView(p.g.FLOAT,T.VEC3,a.ARRAY_BUFFER);let h,N,I,C;c.normal&&(h=s.addBufferView(p.g.FLOAT,T.VEC3,a.ARRAY_BUFFER)),R.uv&&(N=s.addBufferView(p.g.FLOAT,T.VEC2,a.ARRAY_BUFFER)),c.tangent&&(I=s.addBufferView(p.g.FLOAT,T.VEC4,a.ARRAY_BUFFER)),R.color&&(C=s.addBufferView(p.g.UNSIGNED_BYTE,T.VEC4,a.ARRAY_BUFFER)),f.startAccessor("POSITION"),h&&h.startAccessor("NORMAL"),N&&N.startAccessor("TEXCOORD_0"),I&&I.startAccessor("TANGENT"),C&&C.startAccessor("COLOR_0");const d=c.position.length/3,{position:D,normal:B,tangent:P}=c,{color:G,uv:F}=R;for(let e=0;e0&&e.components[0].faces?(z=s.addBufferView(p.g.UNSIGNED_INT,T.SCALAR,a.ELEMENT_ARRAY_BUFFER),this._addMeshVertexIndexed(z,e.components,X,b,y,H,x,Y)):this._addMeshVertexNonIndexed(e.components,X,b,y,H,x,Y),f.finalize(),h&&h.finalize(),N&&N.finalize(),I&&I.finalize(),z&&z.finalize(),C&&C.finalize(),n||s.finalize(),X}_flipYZAxis({position:e,normal:t,tangent:n}){this._flipYZBuffer(e,3),this._flipYZBuffer(t,3),this._flipYZBuffer(n,4)}_flipYZBuffer(e,t){if(null!=e)for(let n=1,s=2;ne**2.1,r=e=>{const t=e.toRgba();return t[0]=s(t[0]/255),t[1]=s(t[1]/255),t[2]=s(t[2]/255),t};if(null!=e.color&&(n.pbrMetallicRoughness.baseColorFactor=r(e.color)),null!=e.colorTexture&&(n.pbrMetallicRoughness.baseColorTexture=this._createTextureInfo(e.colorTexture,e.colorTextureTransform)),null!=e.normalTexture&&(n.normalTexture=this._createTextureInfo(e.normalTexture,e.normalTextureTransform)),e instanceof D.Z){if(null!=e.emissiveTexture&&(n.emissiveTexture=this._createTextureInfo(e.emissiveTexture,e.emissiveTextureTransform)),null!=e.emissiveColor){const t=r(e.emissiveColor);n.emissiveFactor=[t[0],t[1],t[2]]}null!=e.occlusionTexture&&(n.occlusionTexture=this._createTextureInfo(e.occlusionTexture,e.occlusionTextureTransform)),null!=e.metallicRoughnessTexture&&(n.pbrMetallicRoughness.metallicRoughnessTexture=this._createTextureInfo(e.metallicRoughnessTexture,e.metallicRoughnessTextureTransform)),n.pbrMetallicRoughness.metallicFactor=e.metallic,n.pbrMetallicRoughness.roughnessFactor=e.roughness}else n.pbrMetallicRoughness.metallicFactor=1,n.pbrMetallicRoughness.roughnessFactor=1,H().warnOnce("Meshes exported to GLTF without MeshMaterialMetallicRoughness material will appear different when imported back.");const i=this.gltf.materials.length;return this.gltf.materials.push(n),this._materialMap.push(e),i}_createTextureInfo(e,t){const n={index:this._addTexture(e)};return t?(n.extensions||(n.extensions={}),n.extensions.KHR_texture_transform={scale:t.scale,offset:t.offset,rotation:(0,N.Vl)(t.rotation)},n):n}_addTexture(e){const t=this.gltf.textures??[];return this.gltf.textures=t,(0,h.s1)(this._textureMap,e,(()=>{const n={sampler:this._addSampler(e),source:this._addImage(e)},s=t.length;return t.push(n),s}))}_addImage(e){const t=this._imageMap.get(e);if(null!=t)return t;this.gltf.images||(this.gltf.images=[]);const n={};if(e.url)n.uri=e.url;else{const t=e.data;n.extras=t;for(let e=0;e(n.mimeType=t,e)));e.writeAsync(s).then((()=>{e.finalize()}))}n.bufferView=e.index;break}case E.DataURI:if((0,y.$A)(t)){H().warnOnce("Image export for basis compressed textures not available.");break}n.uri=(0,b.$e)(t);break;default:if((0,y.$A)(t)){H().warnOnce("Image export for basis compressed textures not available.");break}s.promises.push((0,b.lW)(t).then((({data:e,type:t})=>{n.uri=e,n.mimeType=t})))}}const s=this.gltf.images.length;return this.gltf.images.push(n),this._imageMap.set(e,s),s}_addSampler(e){this.gltf.samplers||(this.gltf.samplers=[]);let t=p.e8.REPEAT,n=p.e8.REPEAT;if("string"==typeof e.wrap)switch(e.wrap){case"clamp":t=p.e8.CLAMP_TO_EDGE,n=p.e8.CLAMP_TO_EDGE;break;case"mirror":t=p.e8.MIRRORED_REPEAT,n=p.e8.MIRRORED_REPEAT}else{switch(e.wrap.vertical){case"clamp":n=p.e8.CLAMP_TO_EDGE;break;case"mirror":n=p.e8.MIRRORED_REPEAT}switch(e.wrap.horizontal){case"clamp":t=p.e8.CLAMP_TO_EDGE;break;case"mirror":t=p.e8.MIRRORED_REPEAT}}const s={wrapS:t,wrapT:n};for(let e=0;e{if("extras"!==e){if(n instanceof ArrayBuffer){if((0,b.$7)(n))switch(t.imageOutputType){case E.DataURI:case E.GLB:break;case E.External:default:{const e=`img${c}.png`;return c++,f[e]=n,e}}switch(t.bufferOutputType){case o.DataURI:return(0,b.N5)(n);case o.GLB:if(u)throw new Error("Already encountered an ArrayBuffer, there should only be one in the GLB format.");return void(u=n);case o.External:default:{const e=`data${R}.bin`;return R++,f[e]=n,e}}}return n}}),h);return t.bufferOutputType===o.GLB||t.imageOutputType===E.GLB?f[W]=new _(N,u).buffer:f[v]=N,f}class Z{constructor(){this.name="",this._nodes=[]}addNode(e){if(this._nodes.includes(e))throw new Error("Node already added");this._nodes.push(e)}forEachNode(e){this._nodes.forEach(e)}}class K{constructor(e,t){this._file={type:"model/gltf-binary",data:e},this.origin=t}buffer(){return Promise.resolve(this._file)}download(e){(0,r.io)(new Blob([this._file.data],{type:this._file.type}),e)}}function j(e,t){const n=new z,s=new Z;return n.addScene(s),s.addNode(new X(e)),function(e,t){return k(e,{bufferOutputType:o.GLB,imageOutputType:E.GLB,jsonSpacing:0},t)}(n,t).then((e=>new K(e[W],e.origin)))}},29573:function(e,t,n){n.d(t,{$7:function(){return a},$e:function(){return i},E0:function(){return o},N5:function(){return E},lW:function(){return _}});n(39994);var s=n(70375),r=n(3466);function i(e){const t=o(e);return null!=t?t.toDataURL():""}async function _(e){const t=o(e);if(null==t)throw new s.Z("imageToArrayBuffer","Unsupported image type");const n=await async function(e){if(!(e instanceof HTMLImageElement))return"image/png";const t=e.src;if((0,r.HK)(t)){const e=(0,r.sJ)(t);return"image/jpeg"===e?.mediaType?e.mediaType:"image/png"}return/\.png$/i.test(t)?"image/png":/\.(jpg|jpeg)$/i.test(t)?"image/jpeg":"image/png"}(e),i=await new Promise((e=>t.toBlob(e,n)));if(!i)throw new s.Z("imageToArrayBuffer","Failed to encode image");return{data:await i.arrayBuffer(),type:n}}function o(e){if(e instanceof HTMLCanvasElement)return e;if(e instanceof HTMLVideoElement)return null;const t=document.createElement("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");return e instanceof HTMLImageElement?n.drawImage(e,0,0,e.width,e.height):e instanceof ImageData&&n.putImageData(e,0,0),t}function E(e){const t=[],n=new Uint8Array(e);for(let e=0;e{const n=()=>{r(),e(o)},s=e=>{r(),t(e)},r=()=>{URL.revokeObjectURL(_),o.removeEventListener("load",n),o.removeEventListener("error",s)};o.addEventListener("load",n),o.addEventListener("error",s),o.src=_}));try{o.src=_,await o.decode()}catch(e){}return URL.revokeObjectURL(_),o}},91907:function(e,t,n){var s,r,i,_,o,E,a,T,A,R,c,u,f,h,N,l,S,O,I,C;n.d(t,{Br:function(){return l},Ho:function(){return I},LR:function(){return E},Lu:function(){return g},MX:function(){return r},No:function(){return f},Se:function(){return B},Tg:function(){return S},V1:function(){return d},V7:function(){return G},VI:function(){return h},VY:function(){return M},Wf:function(){return a},Xg:function(){return D},Y5:function(){return P},_g:function(){return L},cw:function(){return c},db:function(){return _},e8:function(){return u},g:function(){return T},l1:function(){return O},lP:function(){return N},lk:function(){return s},q_:function(){return p},qi:function(){return C},w0:function(){return o},wb:function(){return A},xS:function(){return R},zi:function(){return i}}),function(e){e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT"}(s||(s={})),function(e){e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN"}(r||(r={})),function(e){e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA"}(i||(i={})),function(e){e[e.ADD=32774]="ADD",e[e.MIN=32775]="MIN",e[e.MAX=32776]="MAX",e[e.SUBTRACT=32778]="SUBTRACT",e[e.REVERSE_SUBTRACT=32779]="REVERSE_SUBTRACT"}(_||(_={})),function(e){e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e[e.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",e[e.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",e[e.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",e[e.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",e[e.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER"}(o||(o={})),function(e){e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK"}(E||(E={})),function(e){e[e.CW=2304]="CW",e[e.CCW=2305]="CCW"}(a||(a={})),function(e){e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT"}(T||(T={})),function(e){e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS"}(A||(A={})),function(e){e[e.ZERO=0]="ZERO",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP"}(R||(R={})),function(e){e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR"}(c||(c={})),function(e){e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.REPEAT=10497]="REPEAT",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT"}(u||(u={})),function(e){e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_3D=32879]="TEXTURE_3D",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY"}(f||(f={})),function(e){e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.RED=6403]="RED",e[e.RG=33319]="RG",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER"}(h||(h={})),function(e){e[e.RGBA4=32854]="RGBA4",e[e.R16F=33325]="R16F",e[e.RG16F=33327]="RG16F",e[e.RGB32F=34837]="RGB32F",e[e.RGBA16F=34842]="RGBA16F",e[e.R32F=33326]="R32F",e[e.RG32F=33328]="RG32F",e[e.RGBA32F=34836]="RGBA32F",e[e.R11F_G11F_B10F=35898]="R11F_G11F_B10F",e[e.RGB8=32849]="RGB8",e[e.RGBA8=32856]="RGBA8",e[e.RGB5_A1=32855]="RGB5_A1",e[e.R8=33321]="R8",e[e.RG8=33323]="RG8",e[e.R8I=33329]="R8I",e[e.R8UI=33330]="R8UI",e[e.R16I=33331]="R16I",e[e.R16UI=33332]="R16UI",e[e.R32I=33333]="R32I",e[e.R32UI=33334]="R32UI",e[e.RG8I=33335]="RG8I",e[e.RG8UI=33336]="RG8UI",e[e.RG16I=33337]="RG16I",e[e.RG16UI=33338]="RG16UI",e[e.RG32I=33339]="RG32I",e[e.RG32UI=33340]="RG32UI",e[e.RGB16F=34843]="RGB16F",e[e.RGB9_E5=35901]="RGB9_E5",e[e.SRGB8=35905]="SRGB8",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.RGB565=36194]="RGB565",e[e.RGBA32UI=36208]="RGBA32UI",e[e.RGB32UI=36209]="RGB32UI",e[e.RGBA16UI=36214]="RGBA16UI",e[e.RGB16UI=36215]="RGB16UI",e[e.RGBA8UI=36220]="RGBA8UI",e[e.RGB8UI=36221]="RGB8UI",e[e.RGBA32I=36226]="RGBA32I",e[e.RGB32I=36227]="RGB32I",e[e.RGBA16I=36232]="RGBA16I",e[e.RGB16I=36233]="RGB16I",e[e.RGBA8I=36238]="RGBA8I",e[e.RGB8I=36239]="RGB8I",e[e.R8_SNORM=36756]="R8_SNORM",e[e.RG8_SNORM=36757]="RG8_SNORM",e[e.RGB8_SNORM=36758]="RGB8_SNORM",e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGB10_A2=32857]="RGB10_A2",e[e.RGB10_A2UI=36975]="RGB10_A2UI"}(N||(N={})),function(e){e[e.FLOAT=5126]="FLOAT",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.INT=5124]="INT",e[e.HALF_FLOAT=5131]="HALF_FLOAT",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV"}(l||(l={})),function(e){e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",e[e.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8"}(S||(S={})),function(e){e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.STATIC_READ=35045]="STATIC_READ",e[e.DYNAMIC_READ=35049]="DYNAMIC_READ",e[e.STREAM_READ=35041]="STREAM_READ",e[e.STATIC_COPY=35046]="STATIC_COPY",e[e.DYNAMIC_COPY=35050]="DYNAMIC_COPY",e[e.STREAM_COPY=35042]="STREAM_COPY"}(O||(O={})),function(e){e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER"}(I||(I={})),function(e){e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",e[e.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER"}(C||(C={}));const d=33984;var L,M,D;!function(e){e[e.Texture=0]="Texture",e[e.BufferObject=1]="BufferObject",e[e.VertexArrayObject=2]="VertexArrayObject",e[e.Shader=3]="Shader",e[e.Program=4]="Program",e[e.FramebufferObject=5]="FramebufferObject",e[e.Renderbuffer=6]="Renderbuffer",e[e.TransformFeedback=7]="TransformFeedback",e[e.Sync=8]="Sync",e[e.UNCOUNTED=9]="UNCOUNTED",e[e.LinesOfCode=9]="LinesOfCode",e[e.Uniform=10]="Uniform",e[e.COUNT=11]="COUNT"}(L||(L={})),function(e){e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",e[e.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",e[e.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",e[e.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",e[e.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",e[e.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",e[e.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",e[e.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",e[e.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",e[e.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",e[e.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",e[e.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",e[e.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",e[e.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",e[e.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15"}(M||(M={})),function(e){e[e.NONE=0]="NONE",e[e.BACK=1029]="BACK"}(D||(D={}));const g=33306;var p,B,U,m,P,G,F;!function(e){e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_SRGB8_ETC2=37493]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37494]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37495]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37496]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37497]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"}(p||(p={})),function(e){e[e.FLOAT=5126]="FLOAT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT=5124]="INT",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",e[e.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",e[e.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",e[e.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",e[e.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",e[e.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",e[e.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",e[e.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",e[e.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",e[e.SAMPLER_3D=35679]="SAMPLER_3D",e[e.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",e[e.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",e[e.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",e[e.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",e[e.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",e[e.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",e[e.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",e[e.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",e[e.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",e[e.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",e[e.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",e[e.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY"}(B||(B={})),function(e){e[e.OBJECT_TYPE=37138]="OBJECT_TYPE",e[e.SYNC_CONDITION=37139]="SYNC_CONDITION",e[e.SYNC_STATUS=37140]="SYNC_STATUS",e[e.SYNC_FLAGS=37141]="SYNC_FLAGS"}(U||(U={})),function(e){e[e.UNSIGNALED=37144]="UNSIGNALED",e[e.SIGNALED=37145]="SIGNALED"}(m||(m={})),function(e){e[e.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",e[e.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",e[e.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",e[e.WAIT_FAILED=37149]="WAIT_FAILED"}(P||(P={})),function(e){e[e.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE"}(G||(G={})),function(e){e[e.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT"}(F||(F={}))}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6324.e97e7da2148ccaef61cc.js b/docs/sentinel1-explorer/6324.e97e7da2148ccaef61cc.js new file mode 100644 index 00000000..dc8549df --- /dev/null +++ b/docs/sentinel1-explorer/6324.e97e7da2148ccaef61cc.js @@ -0,0 +1,2 @@ +/*! For license information please see 6324.e97e7da2148ccaef61cc.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6324],{89055:function(e,t,n){n.d(t,{H:function(){return w},c:function(){return v},d:function(){return b},f:function(){return p},i:function(){return h},r:function(){return m},s:function(){return f}});var i=n(79145),r=n(77210);const o=["calcite-input","calcite-input-number","calcite-input-text","calcite-text-area"];const a="hidden-form-input";function c(e){return"checked"in e}const l=new WeakMap,s=new WeakSet;function u(e){"status"in e&&(e.status="idle"),"validationIcon"in e&&(e.validationIcon=!1),"validationMessage"in e&&(e.validationMessage="")}function d(e){const t=e?.target,n=t?.parentElement,i=n?.nodeName?.toLowerCase(),r=i?.split("-");if(r.length<2||"calcite"!==r[0])return;var a,c;if(e?.preventDefault(),a=n,c=t?.validationMessage,"status"in a&&(a.status="invalid"),"validationIcon"in a&&!a.validationIcon&&(a.validationIcon=!0),"validationMessage"in a&&!a.validationMessage&&(a.validationMessage=c),n?.validationMessage!==t?.validationMessage)return;const l=function(e){return`${e.split("-").map(((e,t)=>0===t?e:`${e[0].toUpperCase()}${e.slice(1)}`)).join("")}${o.includes(e)?"Input":"Change"}`}(i);n.addEventListener(l,(()=>u(n)),{once:!0})}function f(e){const{formEl:t}=e;return!!t&&(t.addEventListener("invalid",d,!0),t.requestSubmit(),t.removeEventListener("invalid",d,!0),requestAnimationFrame((()=>{const e=t.querySelectorAll("[status=invalid]");for(const t of e)if(t?.validationMessage){t?.setFocus();break}})),!0)}function m(e){e.formEl?.reset()}function v(e){const{el:t,value:n}=e,r=p(e);if(!r||function(e,t){if((0,i.c)(t.parentElement,"[form]"))return!0;const n="calciteInternalFormComponentRegister";let r=!1;return e.addEventListener(n,(e=>{r=e.composedPath().some((e=>s.has(e))),e.stopPropagation()}),{once:!0}),t.dispatchEvent(new CustomEvent(n,{bubbles:!0,composed:!0})),r}(r,t))return;e.formEl=r,e.defaultValue=n,c(e)&&(e.defaultChecked=e.checked);const o=(e.onFormReset||E).bind(e);r.addEventListener("reset",o),l.set(e.el,o),s.add(t)}function p(e){const{el:t,form:n}=e;return n?(0,i.q)(t,{id:n}):(0,i.c)(t,"form")}function E(){u(this),c(this)?this.checked=this.defaultChecked:this.value=this.defaultValue}function b(e){const{el:t,formEl:n}=e;if(!n)return;const i=l.get(t);n.removeEventListener("reset",i),l.delete(t),e.formEl=null,s.delete(t)}const h="calciteInternalHiddenInputInput",g=e=>{e.target.dispatchEvent(new CustomEvent(h,{bubbles:!0}))},k=e=>e.removeEventListener("input",g);function L(e,t,n){const{defaultValue:i,disabled:r,form:o,name:a,required:l}=e;t.defaultValue=i,t.disabled=r,t.name=a,t.required=l,t.tabIndex=-1,o?t.setAttribute("form",o):t.removeAttribute("form"),c(e)?(t.checked=e.checked,t.defaultChecked=e.defaultChecked,t.value=e.checked?n||"on":""):t.value=n||"",e.syncHiddenFormInput?.(t)}const w=({component:e})=>(function(e){const{el:t,formEl:n,name:i,value:r}=e,{ownerDocument:o}=t,c=t.querySelectorAll(`input[slot="${a}"]`);if(!n||!i)return void c.forEach((e=>{k(e),e.remove()}));const l=Array.isArray(r)?r:[r],s=[],u=new Set;let d;c.forEach((t=>{const n=l.find((e=>e==t.value));null!=n?(u.add(n),L(e,t,n)):s.push(t)})),l.forEach((t=>{if(u.has(t))return;let n=s.pop();n||(n=o.createElement("input"),n.slot=a),d||(d=o.createDocumentFragment()),d.append(n),n.addEventListener("input",g),L(e,n,t)})),d&&t.append(d),s.forEach((e=>{k(e),e.remove()}))}(e),(0,r.h)("slot",{name:a}))},64426:function(e,t,n){n.d(t,{I:function(){return g},c:function(){return E},d:function(){return b},u:function(){return d}});var i=n(77210);const r=/firefox/i.test(function(){if(!i.Z5.isBrowser)return"";const e=navigator.userAgentData;return e?.brands?e.brands.map((({brand:e,version:t})=>`${e}/${t}`)).join(" "):navigator.userAgent}()),o=r?new WeakMap:null;function a(){const{disabled:e}=this;e||HTMLElement.prototype.click.call(this)}function c(e){const t=e.target;if(r&&!o.get(t))return;const{disabled:n}=t;n&&e.preventDefault()}const l=["mousedown","mouseup","click"];function s(e){const t=e.target;r&&!o.get(t)||t.disabled&&(e.stopImmediatePropagation(),e.preventDefault())}const u={capture:!0};function d(e){if(e.disabled)return e.el.setAttribute("aria-disabled","true"),e.el.contains(document.activeElement)&&document.activeElement.blur(),void f(e);v(e),e.el.removeAttribute("aria-disabled")}function f(e){if(e.el.click=a,r){const t=function(e){return e.el.parentElement||e.el}(e),n=o.get(e.el);return n!==t&&(p(n),o.set(e.el,t)),void m(o.get(e.el))}m(e.el)}function m(e){e&&(e.addEventListener("pointerdown",c,u),l.forEach((t=>e.addEventListener(t,s,u))))}function v(e){if(delete e.el.click,r)return p(o.get(e.el)),void o.delete(e.el);p(e.el)}function p(e){e&&(e.removeEventListener("pointerdown",c,u),l.forEach((t=>e.removeEventListener(t,s,u))))}function E(e){e.disabled&&r&&f(e)}function b(e){r&&v(e)}const h={container:"interaction-container"};function g({disabled:e},t){return(0,i.h)("div",{class:h.container,inert:e},...t)}},81629:function(e,t,n){n.d(t,{a:function(){return w},b:function(){return c},c:function(){return p},d:function(){return E},g:function(){return h},l:function(){return a}});var i=n(79145),r=n(90326);const o="calciteInternalLabelClick",a="calciteInternalLabelConnected",c="calciteInternalLabelDisconnected",l="calcite-label",s=new WeakMap,u=new WeakMap,d=new WeakMap,f=new WeakMap,m=new Set,v=e=>{const{id:t}=e,n=t&&(0,i.q)(e,{selector:`${l}[for="${t}"]`});if(n)return n;const r=(0,i.c)(e,l);return!r||function(e,t){let n;const i="custom-element-ancestor-check",r=i=>{i.stopImmediatePropagation();const r=i.composedPath();n=r.slice(r.indexOf(t),r.indexOf(e))};e.addEventListener(i,r,{once:!0}),t.dispatchEvent(new CustomEvent(i,{composed:!0,bubbles:!0})),e.removeEventListener(i,r);const o=n.filter((n=>n!==t&&n!==e)).filter((e=>e.tagName?.includes("-")));return o.length>0}(r,e)?null:r};function p(e){if(!e)return;const t=v(e.el);if(u.has(t)&&t===e.labelEl||!t&&m.has(e))return;const n=L.bind(e);if(t){e.labelEl=t;const i=s.get(t)||[];i.push(e),s.set(t,i.sort(b)),u.has(e.labelEl)||(u.set(e.labelEl,g),e.labelEl.addEventListener(o,g)),m.delete(e),document.removeEventListener(a,d.get(e)),f.set(e,n),document.addEventListener(c,n)}else m.has(e)||(n(),document.removeEventListener(c,f.get(e)))}function E(e){if(!e)return;if(m.delete(e),document.removeEventListener(a,d.get(e)),document.removeEventListener(c,f.get(e)),d.delete(e),f.delete(e),!e.labelEl)return;const t=s.get(e.labelEl);1===t.length&&(e.labelEl.removeEventListener(o,u.get(e.labelEl)),u.delete(e.labelEl)),s.set(e.labelEl,t.filter((t=>t!==e)).sort(b)),e.labelEl=null}function b(e,t){return(0,i.u)(e.el,t.el)?-1:1}function h(e){return e.label||e.labelEl?.textContent?.trim()||""}function g(e){const t=e.detail.sourceEvent.target,n=s.get(this),i=n.find((e=>e.el===t));if(n.includes(i))return;const r=n[0];r.disabled||r.onLabelClick(e)}function k(){m.has(this)&&p(this)}function L(){m.add(this);const e=d.get(this)||k.bind(this);d.set(this,e),document.addEventListener(a,e)}async function w(e){await(0,r.c)(e);if(s.has(e))return;const t=e.ownerDocument?.getElementById(e.for);t&&requestAnimationFrame((()=>{for(const e of m)if(e.el===t){p(e);break}}))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6324.e97e7da2148ccaef61cc.js.LICENSE.txt b/docs/sentinel1-explorer/6324.e97e7da2148ccaef61cc.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/6324.e97e7da2148ccaef61cc.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/6330.364706e95324445c714b.js b/docs/sentinel1-explorer/6330.364706e95324445c714b.js new file mode 100644 index 00000000..69667163 --- /dev/null +++ b/docs/sentinel1-explorer/6330.364706e95324445c714b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6330],{26330:function(n,e,t){t.r(e),t.d(e,{registerFunctions:function(){return p}});var r=t(7182),a=t(4080),i=t(94837),s=t(6685),u=t(40581),l=t(20031),c=t(15917);function o(n){return n instanceof l.Z}function f(n,e,t,f){return f(n,e,(async(f,p,d)=>{if(d.length<2)throw new r.aV(n,r.rH.WrongNumberOfParameters,e);if(null===(d=(0,i.I)(d))[0]&&null===d[1])return!1;if((0,i.u)(d[0])){if(d[1]instanceof l.Z)return new s.Z({parentfeatureset:d[0],relation:t,relationGeom:d[1]});if(null===d[1])return new u.Z({parentfeatureset:d[0]});throw new r.aV(n,r.rH.InvalidParameter,e)}if(o(d[0])){if(o(d[1])){switch(t){case"esriSpatialRelEnvelopeIntersects":return(0,c.intersects)((0,a.SV)(d[0]),(0,a.SV)(d[1]));case"esriSpatialRelIntersects":return(0,c.intersects)(d[0],d[1]);case"esriSpatialRelContains":return(0,c.contains)(d[0],d[1]);case"esriSpatialRelOverlaps":return(0,c.overlaps)(d[0],d[1]);case"esriSpatialRelWithin":return(0,c.within)(d[0],d[1]);case"esriSpatialRelTouches":return(0,c.touches)(d[0],d[1]);case"esriSpatialRelCrosses":return(0,c.crosses)(d[0],d[1])}throw new r.aV(n,r.rH.InvalidParameter,e)}if((0,i.u)(d[1]))return new s.Z({parentfeatureset:d[1],relation:t,relationGeom:d[0]});if(null===d[1])return!1;throw new r.aV(n,r.rH.InvalidParameter,e)}if(null!==d[0])throw new r.aV(n,r.rH.InvalidParameter,e);return(0,i.u)(d[1])?new u.Z({parentfeatureset:d[1]}):!(d[1]instanceof l.Z||null===d[1])&&void 0}))}function p(n){"async"===n.mode&&(n.functions.intersects=function(e,t){return f(e,t,"esriSpatialRelIntersects",n.standardFunctionAsync)},n.functions.envelopeintersects=function(e,t){return f(e,t,"esriSpatialRelEnvelopeIntersects",n.standardFunctionAsync)},n.signatures.push({name:"envelopeintersects",min:2,max:2}),n.functions.contains=function(e,t){return f(e,t,"esriSpatialRelContains",n.standardFunctionAsync)},n.functions.overlaps=function(e,t){return f(e,t,"esriSpatialRelOverlaps",n.standardFunctionAsync)},n.functions.within=function(e,t){return f(e,t,"esriSpatialRelWithin",n.standardFunctionAsync)},n.functions.touches=function(e,t){return f(e,t,"esriSpatialRelTouches",n.standardFunctionAsync)},n.functions.crosses=function(e,t){return f(e,t,"esriSpatialRelCrosses",n.standardFunctionAsync)},n.functions.relate=function(e,t){return n.standardFunctionAsync(e,t,((n,a,s)=>{if(s=(0,i.I)(s),(0,i.H)(s,3,3,e,t),o(s[0])&&o(s[1]))return(0,c.relate)(s[0],s[1],(0,i.j)(s[2]));if(s[0]instanceof l.Z&&null===s[1])return!1;if(s[1]instanceof l.Z&&null===s[0])return!1;if((0,i.u)(s[0])&&null===s[1])return new u.Z({parentfeatureset:s[0]});if((0,i.u)(s[1])&&null===s[0])return new u.Z({parentfeatureset:s[1]});if((0,i.u)(s[0])&&s[1]instanceof l.Z)return s[0].relate(s[1],(0,i.j)(s[2]));if((0,i.u)(s[1])&&s[0]instanceof l.Z)return s[1].relate(s[0],(0,i.j)(s[2]));if(null===s[0]&&null===s[1])return!1;throw new r.aV(e,r.rH.InvalidParameter,t)}))})}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6353.989479cfec5c0ebbd149.js b/docs/sentinel1-explorer/6353.989479cfec5c0ebbd149.js new file mode 100644 index 00000000..bb7489f1 --- /dev/null +++ b/docs/sentinel1-explorer/6353.989479cfec5c0ebbd149.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6353],{56353:function(e,r,p){p.r(r),p.d(r,{build:function(){return u.b}});p(95650),p(57218),p(35031),p(5885),p(4731),p(99163),p(7792),p(91636),p(40433),p(82082),p(6502),p(5664),p(74312),p(11827),p(99660),p(58749),p(73393),p(89585),p(3864),p(59181),p(91024),p(49745),p(10938),p(71354),p(43036),p(63371),p(24603),p(23410),p(3961),p(15176),p(42842),p(21414);var u=p(60926)}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6361.416059884d44d914fd30.js b/docs/sentinel1-explorer/6361.416059884d44d914fd30.js new file mode 100644 index 00000000..16a87a71 --- /dev/null +++ b/docs/sentinel1-explorer/6361.416059884d44d914fd30.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6361],{66361:function(e,r,t){t.r(r),t.d(r,{fromUrl:function(){return f}});var a=t(70375),n=t(3466),s=t(20692),l=t(53264),o=t(8308),i=t(54957),c=t(92557),u=t(40371);const y={FeatureLayer:!0,SceneLayer:!0};async function f(e){const r=e.properties?.customParameters,c=await async function(e,r){let t=(0,s.Qc)(e);if(null==t&&(t=await async function(e,r){const t=await(0,u.T)(e,{customParameters:r});let a=null,l=null;const o=t.type;if("Feature Layer"===o||"Table"===o?(a="FeatureServer",l=t.id??null):"indexedVector"===o?a="VectorTileServer":t.hasOwnProperty("mapName")?a="MapServer":t.hasOwnProperty("bandCount")&&t.hasOwnProperty("pixelSizeX")?a="ImageServer":t.hasOwnProperty("maxRecordCount")&&t.hasOwnProperty("allowGeometryUpdates")?a="FeatureServer":t.hasOwnProperty("streamUrls")?a="StreamServer":p(t)?(a="SceneServer",l=t.id):t.hasOwnProperty("layers")&&p(t.layers?.[0])&&(a="SceneServer"),!a)return null;const i=null!=l?(0,s.DR)(e):null;return{title:null!=i&&t.name||(0,n.vt)(e),serverType:a,sublayer:l,url:{path:null!=i?i.serviceUrl:(0,n.mN)(e).path}}}(e,r)),null==t)throw new a.Z("arcgis-layers:url-mismatch","The url '${url}' is not a valid arcgis resource",{url:e});const{serverType:c,sublayer:f}=t;let d;const v={FeatureServer:"FeatureLayer",StreamServer:"StreamLayer",VectorTileServer:"VectorTileLayer"},w="FeatureServer"===c,h="SceneServer"===c,S={parsedUrl:t,Constructor:null,layerId:w||h?f??void 0:void 0,layers:[],tables:[]};switch(c){case"MapServer":d=null!=f?"FeatureLayer":await async function(e,r){return(await(0,u.T)(e,{customParameters:r})).tileInfo}(e,r)?"TileLayer":"MapImageLayer";break;case"ImageServer":{const t=await(0,u.T)(e,{customParameters:r}),{tileInfo:a,cacheType:n}=t;d=a?"LERC"!==a?.format?.toUpperCase()||n&&"elevation"!==n.toLowerCase()?"ImageryTileLayer":"ElevationLayer":"ImageryLayer";break}case"SceneServer":{const e=await(0,u.T)(t.url.path,{customParameters:r});if(d="SceneLayer",e){const r=e?.layers;if("Voxel"===e?.layerType)d="VoxelLayer";else if(r?.length){const e=r[0]?.layerType;null!=e&&null!=i.fb[e]&&(d=i.fb[e])}}break}case"3DTilesServer":throw new a.Z("arcgis-layers:unsupported","fromUrl() not supported for 3DTiles layers");case"FeatureServer":if(d="FeatureLayer",null!=f){const t=await(0,u.T)(e,{customParameters:r});S.sourceJSON=t,"Oriented Imagery Layer"===t.type&&(d="OrientedImageryLayer")}break;default:d=v[c]}if(y[d]&&null==f){const t=await async function(e,r,t){let a,n,s=!1;switch(r){case"FeatureServer":{const r=await(0,o.V)(e,{customParameters:t});s=!!r.layersJSON,a=r.layersJSON||r.serviceJSON;break}case"SceneServer":{const r=await async function(e,r){const t=await(0,u.T)(e,{customParameters:r}),a=t.layers?.[0];if(!a)return{serviceInfo:t};try{const{serverUrl:a}=await(0,l.w)(e),n=await(0,u.T)(a,{customParameters:r}).catch((()=>null));return n&&(t.tables=n.tables),{serviceInfo:t,tableServerUrl:a}}catch{return{serviceInfo:t}}}(e,t);a=r.serviceInfo,n=r.tableServerUrl;break}default:a=await(0,u.T)(e,{customParameters:t})}const i=a?.layers,c=a?.tables;return{layers:i?.map((e=>({id:e.id}))).reverse()||[],tables:c?.map((e=>({serverUrl:n,id:e.id}))).reverse()||[],layerInfos:s?i:[],tableInfos:s?c:[]}}(e,c,r);if(w&&(S.sublayerInfos=t.layerInfos,S.tableInfos=t.tableInfos),1!==t.layers.length+t.tables.length)S.layers=t.layers,S.tables=t.tables,w&&t.layerInfos?.length&&(S.sublayerConstructorProvider=await async function(e){const r=[],t=[];if(e.forEach((e=>{const{type:a}=e;"Oriented Imagery Layer"===a?(r.push(a),t.push(m("OrientedImageryLayer"))):(r.push(a),t.push(m("FeatureLayer")))})),!t.length)return;const a=await Promise.all(t),n=new Map;return r.forEach(((e,r)=>{n.set(e,a[r])})),e=>n.get(e.type)}(t.layerInfos));else if(w||h){const e=t.layerInfos?.[0]??t.tableInfos?.[0];S.layerId=t.layers[0]?.id??t.tables[0]?.id,S.sourceJSON=e,w&&"Oriented Imagery Layer"===e?.type&&(d="OrientedImageryLayer")}}return S.Constructor=await m(d),S}(e.url,r),f={...e.properties,url:e.url};if(c.layers.length+c.tables.length===0)return null!=c.layerId&&(f.layerId=c.layerId),null!=c.sourceJSON&&(f.sourceJSON=c.sourceJSON),new c.Constructor(f);const v=new(0,(await Promise.resolve().then(t.bind(t,13840))).default)({title:c.parsedUrl.title});return await async function(e,r,t){function a(e,r,a,n){const s={...t,layerId:r,sublayerTitleMode:"service-name"};return null!=e&&(s.url=e),null!=a&&(s.sourceJSON=a),n(s)}const n=r.sublayerConstructorProvider;for(const{id:t,serverUrl:s}of r.layers){const l=d(r.sublayerInfos,t),o=(l&&n?.(l))??r.Constructor,i=a(s,t,l,(e=>new o(e)));e.add(i)}if(r.tables.length){const t=await m("FeatureLayer");r.tables.forEach((({id:n,serverUrl:s})=>{const l=a(s,n,d(r.tableInfos,n),(e=>new t(e)));e.tables.add(l)}))}}(v,c,f),v}function d(e,r){return e?e.find((e=>e.id===r)):null}function p(e){return null!=e&&e.hasOwnProperty("store")&&e.hasOwnProperty("id")&&"number"==typeof e.id}async function m(e){return(0,c.T[e])()}},53264:function(e,r,t){t.d(r,{w:function(){return u}});var a=t(88256),n=t(66341),s=t(70375),l=t(78668),o=t(20692),i=t(93968),c=t(53110);async function u(e,r){const t=(0,o.Qc)(e);if(!t)throw new s.Z("invalid-url","Invalid scene service url");const u={...r,sceneServerUrl:t.url.path,layerId:t.sublayer??void 0};if(u.sceneLayerItem??=await async function(e){const r=(await y(e)).serviceItemId;if(!r)return null;const t=new c.default({id:r,apiKey:e.apiKey}),s=await async function(e){const r=a.id?.findServerInfo(e.sceneServerUrl);if(r?.owningSystemUrl)return r.owningSystemUrl;const t=e.sceneServerUrl.replace(/(.*\/rest)\/.*/i,"$1")+"/info";try{const r=(await(0,n.Z)(t,{query:{f:"json"},responseType:"json",signal:e.signal})).data.owningSystemUrl;if(r)return r}catch(e){(0,l.r9)(e)}return null}(e);null!=s&&(t.portal=new i.Z({url:s}));try{return t.load({signal:e.signal})}catch(e){return(0,l.r9)(e),null}}(u),null==u.sceneLayerItem)return f(u.sceneServerUrl.replace("/SceneServer","/FeatureServer"),u);const d=await async function({sceneLayerItem:e,signal:r}){if(!e)return null;try{const t=(await e.fetchRelatedItems({relationshipType:"Service2Service",direction:"reverse"},{signal:r})).find((e=>"Feature Service"===e.type))||null;if(!t)return null;const a=new c.default({portal:t.portal,id:t.id});return await a.load(),a}catch(e){return(0,l.r9)(e),null}}(u);if(!d?.url)throw new s.Z("related-service-not-found","Could not find feature service through portal item relationship");u.featureServiceItem=d;const p=await f(d.url,u);return p.portalItem=d,p}async function y(e){if(e.rootDocument)return e.rootDocument;const r={query:{f:"json",...e.customParameters,token:e.apiKey},responseType:"json",signal:e.signal};try{const t=await(0,n.Z)(e.sceneServerUrl,r);e.rootDocument=t.data}catch{e.rootDocument={}}return e.rootDocument}async function f(e,r){const t=(0,o.Qc)(e);if(!t)throw new s.Z("invalid-feature-service-url","Invalid feature service url");const a=t.url.path,l=r.layerId;if(null==l)return{serverUrl:a};const i=y(r),c=r.featureServiceItem?await r.featureServiceItem.fetchData("json"):null,u=(c?.layers?.[0]||c?.tables?.[0])?.customParameters,f=e=>{const t={query:{f:"json",...u},responseType:"json",authMode:e,signal:r.signal};return(0,n.Z)(a,t)},d=f("anonymous").catch((()=>f("no-prompt"))),[p,m]=await Promise.all([d,i]),v=m?.layers,w=p.data&&p.data.layers;if(!Array.isArray(w))throw new Error("expected layers array");if(Array.isArray(v)){for(let e=0;e(0,s.bn)()?(t[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r):(t[0]=1,t[1]=0,t[2]=0),n}function f(t,e,n){const r=e[0],a=e[1],i=e[2],s=e[3],o=n[0],c=n[1],u=n[2],h=n[3];return t[0]=r*h+s*o+a*u-i*c,t[1]=a*h+s*c+i*o-r*u,t[2]=i*h+s*u+r*c-a*o,t[3]=s*h-r*o-a*c-i*u,t}function l(t,e,n,r){const a=e[0],i=e[1],o=e[2],c=e[3];let u,h,f,l,d,_=n[0],M=n[1],E=n[2],I=n[3];return h=a*_+i*M+o*E+c*I,h<0&&(h=-h,_=-_,M=-M,E=-E,I=-I),1-h>(0,s.bn)()?(u=Math.acos(h),f=Math.sin(u),l=Math.sin((1-r)*u)/f,d=Math.sin(r*u)/f):(l=1-r,d=r),t[0]=l*a+d*_,t[1]=l*i+d*M,t[2]=l*o+d*E,t[3]=l*c+d*I,t}function d(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function _(t,e){const n=e[0]+e[4]+e[8];let r;if(n>0)r=Math.sqrt(n+1),t[3]=.5*r,r=.5/r,t[0]=(e[5]-e[7])*r,t[1]=(e[6]-e[2])*r,t[2]=(e[1]-e[3])*r;else{let n=0;e[4]>e[0]&&(n=1),e[8]>e[3*n+n]&&(n=2);const a=(n+1)%3,i=(n+2)%3;r=Math.sqrt(e[3*n+n]-e[3*a+a]-e[3*i+i]+1),t[n]=.5*r,r=.5/r,t[3]=(e[3*a+i]-e[3*i+a])*r,t[a]=(e[3*a+n]+e[3*n+a])*r,t[i]=(e[3*i+n]+e[3*n+i])*r}return t}function M(t,e,n,r){const a=.5*Math.PI/180;e*=a,n*=a,r*=a;const i=Math.sin(e),s=Math.cos(e),o=Math.sin(n),c=Math.cos(n),u=Math.sin(r),h=Math.cos(r);return t[0]=i*c*h-s*o*u,t[1]=s*o*h+i*c*u,t[2]=s*c*u-i*o*h,t[3]=s*c*h+i*o*u,t}const E=c.c,I=c.s,m=c.f,A=f,U=c.b,N=c.g,T=c.l,P=c.i,S=P,g=c.j,O=g,b=c.n,R=c.a,j=c.e;const C=(0,i.Ue)(),p=(0,i.al)(1,0,0),L=(0,i.al)(0,1,0);const x=(0,a.Ue)(),F=(0,a.Ue)();const w=(0,r.Ue)();Object.freeze(Object.defineProperty({__proto__:null,add:m,calculateW:function(t,e){const n=e[0],r=e[1],a=e[2];return t[0]=n,t[1]=r,t[2]=a,t[3]=Math.sqrt(Math.abs(1-n*n-r*r-a*a)),t},conjugate:d,copy:E,dot:N,equals:j,exactEquals:R,fromEuler:M,fromMat3:_,getAxisAngle:h,identity:function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},invert:function(t,e){const n=e[0],r=e[1],a=e[2],i=e[3],s=n*n+r*r+a*a+i*i,o=s?1/s:0;return t[0]=-n*o,t[1]=-r*o,t[2]=-a*o,t[3]=i*o,t},len:S,length:P,lerp:T,mul:A,multiply:f,normalize:b,random:function(t){const e=s.FD,n=e(),r=e(),a=e(),i=Math.sqrt(1-n),o=Math.sqrt(n);return t[0]=i*Math.sin(2*Math.PI*r),t[1]=i*Math.cos(2*Math.PI*r),t[2]=o*Math.sin(2*Math.PI*a),t[3]=o*Math.cos(2*Math.PI*a),t},rotateX:function(t,e,n){n*=.5;const r=e[0],a=e[1],i=e[2],s=e[3],o=Math.sin(n),c=Math.cos(n);return t[0]=r*c+s*o,t[1]=a*c+i*o,t[2]=i*c-a*o,t[3]=s*c-r*o,t},rotateY:function(t,e,n){n*=.5;const r=e[0],a=e[1],i=e[2],s=e[3],o=Math.sin(n),c=Math.cos(n);return t[0]=r*c-i*o,t[1]=a*c+s*o,t[2]=i*c+r*o,t[3]=s*c-a*o,t},rotateZ:function(t,e,n){n*=.5;const r=e[0],a=e[1],i=e[2],s=e[3],o=Math.sin(n),c=Math.cos(n);return t[0]=r*c+a*o,t[1]=a*c-r*o,t[2]=i*c+s*o,t[3]=s*c-i*o,t},rotationTo:function(t,e,n){const r=(0,o.k)(e,n);return r<-.999999?((0,o.b)(C,p,e),(0,o.H)(C)<1e-6&&(0,o.b)(C,L,e),(0,o.n)(C,C),u(t,C,Math.PI),t):r>.999999?(t[0]=0,t[1]=0,t[2]=0,t[3]=1,t):((0,o.b)(C,e,n),t[0]=C[0],t[1]=C[1],t[2]=C[2],t[3]=1+r,b(t,t))},scale:U,set:I,setAxes:function(t,e,n,r){const a=w;return a[0]=n[0],a[3]=n[1],a[6]=n[2],a[1]=r[0],a[4]=r[1],a[7]=r[2],a[2]=-e[0],a[5]=-e[1],a[8]=-e[2],b(t,_(t,a))},setAxisAngle:u,slerp:l,sqlerp:function(t,e,n,r,a,i){return l(x,e,a,i),l(F,n,r,i),l(t,x,F,2*i*(1-i)),t},sqrLen:O,squaredLength:g,str:function(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}},Symbol.toStringTag,{value:"Module"}))},43176:function(t,e,n){n.d(e,{B:function(){return u}});var r=n(19431),a=n(32114),i=n(81095);function s(t,e,n){const r=Math.sin(t),a=Math.cos(t),i=Math.sin(e),s=Math.cos(e),o=n;return o[0]=-r,o[4]=-i*a,o[8]=s*a,o[12]=0,o[1]=a,o[5]=-i*r,o[9]=s*r,o[13]=0,o[2]=0,o[6]=s,o[10]=i,o[14]=0,o[3]=0,o[7]=0,o[11]=0,o[15]=1,o}var o=n(19508),c=n(35925);function u(t,e,n,r){if(null==t||null==r)return!1;const i=(0,o.eT)(t,o.Jz),u=(0,o.eT)(r,o.sp);if(i===u&&!h(u)&&(i!==o.Ej.UNKNOWN||(0,c.fS)(t,r)))return(0,a.vc)(n,e),!0;if(h(u)){const t=o.rf[i][o.Ej.LON_LAT],r=o.rf[o.Ej.LON_LAT][u];return null!=t&&null!=r&&(t(e,0,l,0),r(l,0,d,0),s(f*l[0],f*l[1],n),n[12]=d[0],n[13]=d[1],n[14]=d[2],!0)}if((u===o.Ej.WEB_MERCATOR||u===o.Ej.PLATE_CARREE||u===o.Ej.WGS84)&&(i===o.Ej.WGS84||i===o.Ej.CGCS2000&&u===o.Ej.PLATE_CARREE||i===o.Ej.SPHERICAL_ECEF||i===o.Ej.WEB_MERCATOR)){const t=o.rf[i][o.Ej.LON_LAT],r=o.rf[o.Ej.LON_LAT][u];return null!=t&&null!=r&&(t(e,0,l,0),r(l,0,d,0),i===o.Ej.SPHERICAL_ECEF?function(t,e,n){s(t,e,n),(0,a.p4)(n,n)}(f*l[0],f*l[1],n):(0,a.yR)(n),n[12]=d[0],n[13]=d[1],n[14]=d[2],!0)}return!1}function h(t){return t===o.Ej.SPHERICAL_ECEF||t===o.Ej.SPHERICAL_MARS_PCPF||t===o.Ej.SPHERICAL_MOON_PCPF}const f=(0,r.Vl)(1),l=(0,i.Ue)(),d=(0,i.Ue)()},61170:function(t,e,n){n.d(e,{rS:function(){return u}});var r=n(69442),a=n(14685),i=n(35925);const s=new a.Z(r.kU),o=new a.Z(r.JL),c=new a.Z(r.mM);new a.Z(r.pn);function u(t){const e=h.get(t);if(e)return e;let n=s;if(t)if(t===o)n=o;else if(t===c)n=c;else{const e=t.wkid,r=t.latestWkid;if(null!=e||null!=r)(0,i.o$)(e)||(0,i.o$)(r)?n=o:((0,i.ME)(e)||(0,i.ME)(r))&&(n=c);else{const e=t.wkt2??t.wkt;if(e){const t=e.toUpperCase();t===f?n=o:t===l&&(n=c)}}}return h.set(t,n),n}const h=new Map,f=o.wkt.toUpperCase(),l=c.wkt.toUpperCase()},39050:function(t,e,n){n.d(e,{oq:function(){return m},Er:function(){return A},JG:function(){return o},Ue:function(){return s},zu:function(){return f},zk:function(){return h},st:function(){return c},jH:function(){return U}});n(19431);var r=n(86717),a=n(81095),i=n(56999);n(5700),n(68817);(0,a.Ue)(),(0,a.Ue)(),(0,a.Ue)(),(0,a.Ue)(),(0,a.Ue)();function s(t=N){return[t[0],t[1],t[2],t[3]]}i.a,i.e;function o(t,e){return u(e[0],e[1],e[2],e[3],t)}function c(t){return t}function u(t,e,n,r,a=s()){return a[0]=t,a[1]=e,a[2]=n,a[3]=r,a}function h(t,e,n,r=s()){const a=n[0]-e[0],i=n[1]-e[1],o=n[2]-e[2],c=t[0]-e[0],u=t[1]-e[1],h=t[2]-e[2],f=i*h-o*u,l=o*c-a*h,d=a*u-i*c,_=f*f+l*l+d*d,M=Math.abs(_-1)>1e-5&&_>1e-12?1/Math.sqrt(_):1;return r[0]=f*M,r[1]=l*M,r[2]=d*M,r[3]=-(r[0]*t[0]+r[1]*t[1]+r[2]*t[2]),r}function f(t,e,n,a=0,i=Math.floor(n*(1/3)),s=Math.floor(n*(2/3))){if(n<3)return!1;e(d,a);let o=i,c=!1;for(;o=0)return!1;if(n>-1e-6&&n<1e-6)return a>0;if((a<0||n<0)&&!(a<0&&n<0))return!0;const i=a/n;return n>0?ie.c0&&(e.c0=i),e.c0<=e.c1}function A(t,e){const n=(0,r.k)(t,e.ray.direction),a=-U(t,e.ray.origin);if(n>-1e-6&&n<1e-6)return a>0;const i=a/n;return n>0?ie.c0&&(e.c0=i),e.c0<=e.c1}function U(t,e){return(0,r.k)(t,e)+t[3]}const N=[0,0,1,0];var T,P;(P=T||(T={}))[P.NONE=0]="NONE",P[P.CLAMP=1]="CLAMP",P[P.INFINITE_MIN=4]="INFINITE_MIN",P[P.INFINITE_MAX=8]="INFINITE_MAX";T.INFINITE_MIN,T.INFINITE_MAX,T.INFINITE_MAX},5700:function(t,e,n){n.d(e,{EU:function(){return o},SR:function(){return s}});var r=n(19431),a=n(86717),i=n(81095);function s(t,e){return(0,a.k)(t,e)/(0,a.l)(t)}function o(t,e){const n=(0,a.k)(t,e)/((0,a.l)(t)*(0,a.l)(e));return-(0,r.ZF)(n)}(0,i.Ue)(),(0,i.Ue)()},68817:function(t,e,n){n.d(e,{MP:function(){return d},vD:function(){return _},WM:function(){return f},o6:function(){return l}});var r=n(66581),a=n(3965),i=n(3308),s=n(96303),o=n(84164),c=n(81095),u=n(52721);class h{constructor(t){this._create=t,this._items=new Array,this._itemsPtr=0}get(){return 0===this._itemsPtr&&(0,r.Y)((()=>this._reset())),this._itemsPtr>=this._items.length&&this._items.push(this._create()),this._items[this._itemsPtr++]}_reset(){const t=2*this._itemsPtr;this._items.length>t&&(this._items.length=t),this._itemsPtr=0}static createVec2f64(){return new h(o.Ue)}static createVec3f64(){return new h(c.Ue)}static createVec4f64(){return new h(u.Ue)}static createMat3f64(){return new h(a.Ue)}static createMat4f64(){return new h(i.Ue)}static createQuatf64(){return new h(s.Ue)}get test(){return{length:this._items.length}}}h.createVec2f64();const f=h.createVec3f64(),l=h.createVec4f64(),d=(h.createMat3f64(),h.createMat4f64()),_=h.createQuatf64()},47850:function(t,e,n){n.d(e,{Oo:function(){return Ut},Qb:function(){return bt},gI:function(){return Ct}});var r=n(46332),a=n(3965),i=n(3308),s=n(1845),o=n(96303),c=n(86717),u=n(81095),h=n(56999),f=n(52721),l=n(69442),d=n(61170),_=n(43176),M=n(22349),E=n(19508),I=n(39050),m=n(35925),A=n(68817),U=n(65684),N=n(84164),T=n(85799);const P=1e-6,S=(0,u.Ue)(),g=(0,u.Ue)();function O(t,e,n,r,a,i,s,o,c,u){return function(t,e,n){let r=mt(t.maxVert[0],t.minVert[0]),a=0;for(let e=1;e<7;++e){const n=mt(t.maxVert[e],t.minVert[e]);n>r&&(r=n,a=e)}_t(e,t.minVert[a]),_t(n,t.maxVert[a])}(t,r,a),mt(r,a)s&&(s=c,o=t)}return _t(r,a,o),s}(e,r,s,i)n[1]&&(n[1]=s,_t(a,i,t))}}(t,e,V,a,r);const i=At(n,e);V[1]-P<=i&&(r[0]=void 0),V[0]+P>=i&&(a[0]=void 0)})(t,e,n,b,R),void 0!==b[0]&&(lt(j,b,n),Et(j,j),lt(C,b,r),Et(C,C),lt(p,b,a),Et(p,p),Mt(L,C,i),Et(L,L),Mt(x,p,s),Et(x,x),Mt(F,j,o),Et(F,F),k(t,L,i,C,j,c),k(t,x,s,p,C,c),k(t,F,o,j,p,c)),void 0!==R[0]&&(lt(j,R,n),Et(j,j),lt(C,R,r),Et(C,C),lt(p,R,a),Et(p,p),Mt(L,C,i),Et(L,L),Mt(x,p,s),Et(x,x),Mt(F,j,o),Et(F,F),k(t,L,i,C,j,c),k(t,x,s,p,C,c),k(t,F,o,j,p,c))}const y=[0,0,0];const V=(0,N.Ue)();const v=(0,u.Ue)(),z=(0,u.Ue)(),D=(0,u.Ue)(),q=(0,u.Ue)(),B=(0,u.Ue)(),G=(0,u.Ue)();function k(t,e,n,r,a,i){if(It(e)Math.abs(e[1])&&Math.abs(e[0])>Math.abs(e[2])?Q[0]=0:Math.abs(e[1])>Math.abs(e[2])?Q[1]=0:Q[2]=0,It(Q)0){let r=Math.sqrt(n+1);t[3]=.5*r,r=.5/r,t[0]=(e[5]-e[7])*r,t[1]=(e[6]-e[2])*r,t[2]=(e[1]-e[3])*r}else{let n=0;e[4]>e[0]&&(n=1),e[8]>e[3*n+n]&&(n=2);const r=(n+1)%3,a=(n+2)%3;let i=Math.sqrt(e[3*n+n]-e[3*r+r]-e[3*a+a]+1);t[n]=.5*i,i=.5/i,t[3]=(e[3*r+a]-e[3*a+r])*i,t[r]=(e[3*r+n]+e[3*n+r])*i,t[a]=(e[3*a+n]+e[3*n+a])*i}return t}(st,it),ft(nt,r,a),dt(nt,nt,.5),dt(rt,t,nt[0]),dt(at,e,nt[1]),ft(rt,rt,at),dt(at,n,nt[2]),s.center=(0,c.g)(rt,rt,at),s.halfSize=(0,c.h)(nt,i,.5)}class ct{constructor(t){this.minVert=new Array(7),this.maxVert=new Array(7);this.buffer=new ArrayBuffer(448);let e=0;this.minProj=new Float64Array(this.buffer,e,7),e+=56,this.maxProj=new Float64Array(this.buffer,e,7),e+=56;for(let t=0;t<7;++t)this.minVert[t]=new Float64Array(this.buffer,e,3),e+=24;for(let t=0;t<7;++t)this.maxVert[t]=new Float64Array(this.buffer,e,3),e+=24;for(let t=0;t<7;++t)this.minProj[t]=Number.POSITIVE_INFINITY,this.maxProj[t]=Number.NEGATIVE_INFINITY;const n=new Array(7),r=new Array(7),{data:a,size:i}=t;for(let t=0;tthis.maxProj[0]&&(this.maxProj[0]=e,r[0]=t),e=a[t+1],ethis.maxProj[1]&&(this.maxProj[1]=e,r[1]=t),e=a[t+2],ethis.maxProj[2]&&(this.maxProj[2]=e,r[2]=t),e=a[t]+a[t+1]+a[t+2],ethis.maxProj[3]&&(this.maxProj[3]=e,r[3]=t),e=a[t]+a[t+1]-a[t+2],ethis.maxProj[4]&&(this.maxProj[4]=e,r[4]=t),e=a[t]-a[t+1]+a[t+2],ethis.maxProj[5]&&(this.maxProj[5]=e,r[5]=t),e=a[t]-a[t+1]-a[t+2],ethis.maxProj[6]&&(this.maxProj[6]=e,r[6]=t)}for(let t=0;t<7;++t){let e=n[t];_t(this.minVert[t],a,e),e=r[t],_t(this.maxVert[t],a,e)}}}class ut{constructor(){this.b0=(0,u.al)(1,0,0),this.b1=(0,u.al)(0,1,0),this.b2=(0,u.al)(0,0,1),this.quality=0}}function ht(t){return t[0]*t[1]+t[0]*t[2]+t[1]*t[2]}function ft(t,e,n){t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2]}function lt(t,e,n){t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2]}function dt(t,e,n){t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n}function _t(t,e,n=0){t[0]=e[n],t[1]=e[n+1],t[2]=e[n+2]}function Mt(t,e,n){const r=e[0],a=e[1],i=e[2],s=n[0],o=n[1],c=n[2];t[0]=a*c-i*o,t[1]=i*s-r*c,t[2]=r*o-a*s}function Et(t,e){const n=e[0]*e[0]+e[1]*e[1]+e[2]*e[2];if(n>0){const r=1/Math.sqrt(n);t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r}}function It(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]}function mt(t,e){const n=e[0]-t[0],r=e[1]-t[1],a=e[2]-t[2];return n*n+r*r+a*a}function At(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}class Ut{constructor(t=u.AG,e=kt,n=o.Wd){this._data=[t[0],t[1],t[2],e[0],e[1],e[2],n[0],n[1],n[2],n[3]]}clone(){const t=new Ut;return t._data=this._data.slice(),t}invalidate(){this._data[3]=-1}get isValid(){return this._data[3]>=0}static fromData(t){const e=new Ut;return e._data=t.slice(),e}static fromJSON(t){return new Ut(t.center,t.halfSize,t.quaternion)}copy(t){this._data=t.data.slice()}get center(){return(0,c.s)(A.WM.get(),this._data[0],this._data[1],this._data[2])}get centerX(){return this._data[0]}get centerY(){return this._data[1]}get centerZ(){return this._data[2]}getCenter(t){return t[0]=this._data[0],t[1]=this._data[1],t[2]=this._data[2],t}set center(t){this._data[0]=t[0],this._data[1]=t[1],this._data[2]=t[2]}setCenter(t,e,n){this._data[0]=t,this._data[1]=e,this._data[2]=n}get halfSize(){return(0,c.s)(A.WM.get(),this._data[3],this._data[4],this._data[5])}get halfSizeX(){return this._data[3]}get halfSizeY(){return this._data[4]}get halfSizeZ(){return this._data[5]}getHalfSize(t){return t[0]=this._data[3],t[1]=this._data[4],t[2]=this._data[5],t}set halfSize(t){this._data[3]=t[0],this._data[4]=t[1],this._data[5]=t[2]}get quaternion(){return(0,s.t8)(A.vD.get(),this._data[6],this._data[7],this._data[8],this._data[9])}getQuaternion(t){return t[0]=this._data[6],t[1]=this._data[7],t[2]=this._data[8],t[3]=this._data[9],t}set quaternion(t){this._data[6]=t[0],this._data[7]=t[1],this._data[8]=t[2],this._data[9]=t[3]}get data(){return this._data}getCorners(t){const e=Nt,n=this._data;e[0]=n[6],e[1]=n[7],e[2]=n[8],e[3]=n[9];for(let r=0;r<8;++r){const a=t[r];a[0]=(1&r?-1:1)*n[3],a[1]=(2&r?-1:1)*n[4],a[2]=(4&r?-1:1)*n[5],(0,c.u)(a,a,e),a[0]+=n[0],a[1]+=n[1],a[2]+=n[2]}}isVisible(t){return this.intersectPlane(t[0])<=0&&this.intersectPlane(t[1])<=0&&this.intersectPlane(t[2])<=0&&this.intersectPlane(t[3])<=0&&this.intersectPlane(t[4])<=0&&this.intersectPlane(t[5])<=0}get radius(){const t=this._data[3],e=this._data[4],n=this._data[5];return Math.sqrt(t*t+e*e+n*n)}intersectSphere(t){St[0]=this._data[0]-t[0],St[1]=this._data[1]-t[1],St[2]=this._data[2]-t[2];const e=this.getQuaternion(Tt);return(0,s.Kx)(Nt,e),(0,c.u)(St,St,Nt),(0,c.v)(St,St),gt[0]=Math.min(St[0],this._data[3]),gt[1]=Math.min(St[1],this._data[4]),gt[2]=Math.min(St[2],this._data[5]),(0,c.w)(gt,St)a*a)&&(Nt[0]=-n[6],Nt[1]=-n[7],Nt[2]=-n[8],Nt[3]=n[9],(0,c.u)(St,St,Nt),(0,c.v)(St,St),gt[0]=Math.min(St[0],n[3]),gt[1]=Math.min(St[1],n[4]),gt[2]=Math.min(St[2],n[5]),(0,c.w)(gt,St)n?1:e<-n?-1:0}intersectRay(t,e,n=0){const r=this._data,a=Nt;a[0]=-r[6],a[1]=-r[7],a[2]=-r[8],a[3]=r[9],St[0]=t[0]-r[0],St[1]=t[1]-r[1],St[2]=t[2]-r[2];const i=(0,c.u)(St,St,Nt),s=(0,c.u)(gt,e,Nt);let o=-1/0,u=1/0;const h=this.getHalfSize(Vt);for(let t=0;t<3;t++){const e=i[t],r=s[t],a=h[t]+n;if(Math.abs(r)>1e-6){const t=(a-e)/r,n=(-a-e)/r;o=Math.max(o,Math.min(t,n)),u=Math.min(u,Math.max(t,n))}else if(e>a||e<-a)return!1}return o<=u}projectedArea(t,e,n,a){const i=this.getQuaternion(Tt);(0,s.Kx)(Nt,i),St[0]=t[0]-this._data[0],St[1]=t[1]-this._data[1],St[2]=t[2]-this._data[2],(0,c.u)(St,St,Nt);const o=this.getHalfSize(Vt),u=St[0]<-o[0]?-1:St[0]>o[0]?1:0,f=St[1]<-o[1]?-1:St[1]>o[1]?1:0,l=St[2]<-o[2]?-1:St[2]>o[2]?1:0,d=Math.abs(u)+Math.abs(f)+Math.abs(l);if(0===d)return 1/0;const _=1===d?4:6,M=6*(u+3*f+9*l+13);(0,r.en)(vt,i),(0,r.bA)(vt,vt,o);const E=this.getCenter(wt);for(let t=0;t<_;t++){const n=jt[M+t];(0,c.s)(St,((1&n)<<1)-1,(2&n)-1,((4&n)>>1)-1),(0,c.t)(St,St,vt),(0,c.g)(Ot,E,St),Ot[3]=1,(0,h.t)(Ot,Ot,e);const r=1/Math.max(1e-6,Ot[3]);Rt[2*t]=Ot[0]*r,Rt[2*t+1]=Ot[1]*r}const I=2*_-2;let m=Rt[0]*(Rt[3]-Rt[I+1])+Rt[I]*(Rt[1]-Rt[I-1]);for(let t=2;t{const t=new Int8Array(162);let e=0;const n=n=>{for(let r=0;r0?1+e/i:1,o=r>0?1+n/r:1,u=(o+s)/2,f=(o-s)/2;(0,c.h)(Gt,Bt,f),a.halfSize=(0,c.r)(Gt,Gt,h,u),(0,c.h)(Gt,Bt,u),(0,c.r)(Gt,Gt,h,f),(0,c.A)(qt,qt),(0,c.B)(qt,Gt,qt);const l=t.getQuaternion(Pt);a.center=(0,c.u)(qt,qt,l)}}else{a.center=(0,c.r)(qt,o,u.eG,(n+e)/2);const t=(0,c.u)(qt,u.eG,Nt);(0,c.v)(t,t),a.halfSize=(0,c.r)(Bt,h,t,(n-e)/2)}return a}function pt(t,e,n,a,i){const s=e.getQuaternion(Tt),o=(0,r.en)(vt,s),c=e.getHalfSize(Vt);for(let t=0;t<8;++t){for(let e=0;e<3;++e)Ft[e]=c[e]*(0!=(t&1<13)switch(e%10){case 1:d="st";break;case 2:d="nd";break;case 3:d="rd"}return d},"Zoom Out":"Zoom",Play:"Reprodueix",Stop:"Parada",Legend:"Llegenda","Press ENTER to toggle":"",Loading:"S'està carregant",Home:"Inici",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Imprimeix",Image:"Imatge",Data:"Dades",Print:"Imprimeix","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"De %1 a %2","From %1":"De %1","To %1":"A %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6449.26616038f3cd038818a8.js b/docs/sentinel1-explorer/6449.26616038f3cd038818a8.js new file mode 100644 index 00000000..4effa1a8 --- /dev/null +++ b/docs/sentinel1-explorer/6449.26616038f3cd038818a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6449],{26449:function(t,e,r){r.r(e),r.d(e,{queryNamedTraceConfigurations:function(){return f}});var s=r(66341),a=r(84238),n=r(36663),o=r(82064),i=r(81977),c=(r(39994),r(13802),r(4157),r(40266)),g=r(12044);let u=class extends o.wq{constructor(t){super(t),this.namedTraceConfigurations=[]}};(0,n._)([(0,i.Cb)({type:[g.Z],json:{read:{source:"traceConfigurations"},write:{target:"traceConfigurations"}}})],u.prototype,"namedTraceConfigurations",void 0),u=(0,n._)([(0,c.j)("esri.rest.networks.support.QueryNamedTraceConfigurationsResult")],u);const l=u;async function f(t,e,r){const n=(0,a.en)(t),o=e.toJSON();e.globalIds&&e.globalIds.length>0&&(o.globalIds=JSON.stringify(e.globalIds)),e.creators&&e.creators.length>0&&(o.creators=JSON.stringify(e.creators)),e.tags&&e.tags.length>0&&(o.tags=JSON.stringify(e.tags)),e.names&&e.names.length>0&&(o.names=JSON.stringify(e.names));const i={...o,f:"json"},c=(0,a.cv)({...n.query,...i}),g=(0,a.lA)(c,{...r,method:"post"}),u=`${n.path}/traceConfigurations/query`,{data:f}=await(0,s.Z)(u,g);return l.fromJSON(f)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6479.030cd59ede197230bcaa.js b/docs/sentinel1-explorer/6479.030cd59ede197230bcaa.js new file mode 100644 index 00000000..e0c5e39f --- /dev/null +++ b/docs/sentinel1-explorer/6479.030cd59ede197230bcaa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6479],{98786:function(e,t,r){r.d(t,{B:function(){return y}});var o=r(70375),i=r(86630),s=r(71760),n=r(3466),a=r(12173),p=r(41610),c=r(65943),l=r(81977),d=r(51876),u=r(16641);function y(e){const t=e?.origins??[void 0];return(r,o)=>{const i=function(e,t,r){if("resource"===e?.type)return function(e,t,r){const o=(0,p.Oe)(t,r);return{type:String,read:(e,t,r)=>{const i=(0,u.r)(e,t,r);return o.type===String?i:"function"==typeof o.type?new o.type({url:i}):void 0},write:{writer(t,i,a,p){if(!p?.resources)return"string"==typeof t?void(i[a]=(0,u.t)(t,p)):void(i[a]=t.write({},p));const l=function(e){return null==e?null:"string"==typeof e?e:e.url}(t),y=(0,u.t)(l,{...p,verifyItemRelativeUrls:p?.verifyItemRelativeUrls?{writtenUrls:p.verifyItemRelativeUrls.writtenUrls,rootPath:void 0}:void 0},u.M.NO),g=o.type!==String&&(!(0,s.l)(this)||p?.origin&&this.originIdOf(r)>(0,c.M9)(p.origin)),v={object:this,propertyName:r,value:t,targetUrl:y,dest:i,targetPropertyName:a,context:p,params:e};p?.portalItem&&y&&!(0,n.YP)(y)?g&&e?.contentAddressed?f(v):g?function(e){const{context:t,targetUrl:r,params:o,value:i,dest:s,targetPropertyName:a}=e;if(!t.portalItem)return;const p=t.portalItem.resourceFromPath(r),c=m(i,r,t),l=(0,d.B)(c),u=(0,n.Ml)(p.path),y=o?.compress??!1;l===u?(t.resources&&h({...e,resource:p,content:c,compress:y,updates:t.resources.toUpdate}),s[a]=r):f(e)}(v):function({context:e,targetUrl:t,dest:r,targetPropertyName:o}){e.portalItem&&e.resources&&(e.resources.toKeep.push({resource:e.portalItem.resourceFromPath(t),compress:!1}),r[o]=t)}(v):p?.portalItem&&(null==y||null!=(0,u.i)(y)||(0,n.jc)(y)||g)?f(v):i[a]=y}}}}(e,t,r);switch(e?.type??"other"){case"other":return{read:!0,write:!0};case"url":{const{read:e,write:t}=u.b;return{read:e,write:t}}}}(e,r,o);for(const e of t){const t=(0,l.CJ)(r,e,o);for(const e in i)t[e]=i[e]}}}function f(e){const{targetUrl:t,params:r,value:s,context:p,dest:c,targetPropertyName:l}=e;if(!p.portalItem)return;const y=(0,u.p)(t),f=m(s,t,p);if(r?.contentAddressed&&"json"!==f.type)return void p.messages?.push(new o.Z("persistable:contentAddressingUnsupported",`Property "${l}" is trying to serializing a resource with content of type ${f.type} with content addressing. Content addressing is only supported for json resources.`,{content:f}));const g=r?.contentAddressed&&"json"===f.type?(0,i.F)(f.jsonString):y?.filename??(0,a.DO)(),v=(0,n.v_)(r?.prefix??y?.prefix,g),w=`${v}.${(0,d.B)(f)}`;if(r?.contentAddressed&&p.resources&&"json"===f.type){const e=p.resources.toKeep.find((({resource:e})=>e.path===w))??p.resources.toAdd.find((({resource:e})=>e.path===w));if(e)return void(c[l]=e.resource.itemRelativeUrl)}const _=p.portalItem.resourceFromPath(w);(0,n.jc)(t)&&p.resources&&p.resources.pendingOperations.push((0,n.gi)(t).then((e=>{_.path=`${v}.${(0,d.B)({type:"blob",blob:e})}`,c[l]=_.itemRelativeUrl})).catch((()=>{})));const S=r?.compress??!1;p.resources&&h({...e,resource:_,content:f,compress:S,updates:p.resources.toAdd}),c[l]=_.itemRelativeUrl}function h({object:e,propertyName:t,updates:r,resource:o,content:i,compress:s}){r.push({resource:o,content:i,compress:s,finish:r=>{!function(e,t,r){"string"==typeof e[t]?e[t]=r.url:e[t].url=r.url}(e,t,r)}})}function m(e,t,r){return"string"==typeof e?{type:"url",url:t}:{type:"json",jsonString:JSON.stringify(e.toJSON(r))}}},96479:function(e,t,r){r.r(t),r.d(t,{default:function(){return K}});var o,i=r(36663),s=r(70375),n=r(13802),a=r(15842),p=r(78668),c=r(76868),l=r(81977),d=(r(39994),r(4157),r(34248)),u=r(40266),y=r(98786),f=r(38481),h=r(91223),m=r(87232),g=r(63989),v=r(43330),w=r(18241),_=r(95874),S=r(93902),b=r(51599),I=r(97304),O=r(66341),N=r(6865),x=r(82064),j=r(3466),C=(r(91957),r(67134)),R=r(96863),U=r(39835),T=r(28105),P=r(89542);let L=o=class extends x.wq{constructor(e){super(e),this.geometry=null,this.type="clip"}writeGeometry(e,t,r,o){if(o.layer?.spatialReference&&!o.layer.spatialReference.equals(this.geometry.spatialReference)){if(!(0,T.canProjectWithoutEngine)(e.spatialReference,o.layer.spatialReference))return void(o?.messages&&o.messages.push(new R.Z("scenemodification:unsupported","Scene modifications with incompatible spatial references are not supported",{modification:this,spatialReference:o.layer.spatialReference,context:o})));const i=new P.Z;(0,T.projectPolygon)(e,i,o.layer.spatialReference),t[r]=i.toJSON(o)}else t[r]=e.toJSON(o);delete t[r].spatialReference}clone(){return new o({geometry:(0,C.d9)(this.geometry),type:this.type})}};(0,i._)([(0,l.Cb)({type:P.Z}),(0,y.B)()],L.prototype,"geometry",void 0),(0,i._)([(0,U.c)(["web-scene","portal-item"],"geometry")],L.prototype,"writeGeometry",null),(0,i._)([(0,l.Cb)({type:["clip","mask","replace"],nonNullable:!0}),(0,y.B)()],L.prototype,"type",void 0),L=o=(0,i._)([(0,u.j)("esri.layers.support.SceneModification")],L);const A=L;var M;let Z=M=class extends((0,x.eC)(N.Z.ofType(A))){constructor(e){super(e),this.url=null}clone(){return new M({url:this.url,items:this.items.map((e=>e.clone()))})}toJSON(e){return this.toArray().map((t=>t.toJSON(e))).filter((e=>!!e.geometry))}static fromJSON(e,t){const r=new M;for(const o of e)r.add(A.fromJSON(o,t));return r}static async fromUrl(e,t,r){const o={url:(0,j.mN)(e),origin:"service"},i=await(0,O.Z)(e,{responseType:"json",signal:r?.signal}),s=t.toJSON(),n=[];for(const e of i.data)n.push(A.fromJSON({...e,geometry:{...e.geometry,spatialReference:s}},o));return new M({url:e,items:n})}};(0,i._)([(0,l.Cb)({type:String})],Z.prototype,"url",void 0),Z=M=(0,i._)([(0,u.j)("esri.layers.support.SceneModifications")],Z);const J=Z;var V=r(83772),B=r(16641);let D=class extends((0,S.Vt)((0,m.Y)((0,v.q)((0,w.I)((0,_.M)((0,a.R)((0,g.N)((0,h.V)(f.Z))))))))){constructor(...e){super(...e),this.geometryType="mesh",this.operationalLayerType="IntegratedMeshLayer",this.type="integrated-mesh",this.nodePages=null,this.materialDefinitions=null,this.textureSetDefinitions=null,this.geometryDefinitions=null,this.serviceUpdateTimeStamp=null,this.profile="mesh-pyramids",this.modifications=null,this._modificationsSource=null,this.path=null}initialize(){this.addHandles((0,c.on)((()=>this.modifications),"after-changes",(()=>this.modifications=this.modifications),c.Z_))}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}readModifications(e,t,r){this._modificationsSource={url:(0,B.f)(e,r),context:r}}set elevationInfo(e){this._set("elevationInfo",e),this._validateElevationInfo()}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}async _doLoad(e){const t=e?.signal;try{await this.loadFromPortal({supportedTypes:["Scene Service"]},e)}catch(e){(0,p.r9)(e)}if(await this._fetchService(t),null!=this._modificationsSource){const t=await J.fromUrl(this._modificationsSource.url,this.spatialReference,e);this.setAtOrigin("modifications",t,this._modificationsSource.context.origin),this._modificationsSource=null}await this._fetchIndexAndUpdateExtent(this.nodePages,t)}beforeSave(){if(null!=this._modificationsSource)return this.load().then((()=>{}),(()=>{}))}async saveAs(e,t){return this._debouncedSaveOperations(S.xp.SAVE_AS,{...t,getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:"integrated-mesh"},e)}async save(){const e={getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:"integrated-mesh"};return this._debouncedSaveOperations(S.xp.SAVE,e)}validateLayer(e){if(e.layerType&&"IntegratedMesh"!==e.layerType)throw new s.Z("integrated-mesh-layer:layer-type-not-supported","IntegratedMeshLayer does not support this layer type",{layerType:e.layerType});if(isNaN(this.version.major)||isNaN(this.version.minor))throw new s.Z("layer:service-version-not-supported","Service version is not supported.",{serviceVersion:this.version.versionString,supportedVersions:"1.x"});if(this.version.major>1)throw new s.Z("layer:service-version-too-new","Service version is too new.",{serviceVersion:this.version.versionString,supportedVersions:"1.x"})}_getTypeKeywords(){return["IntegratedMeshLayer"]}_validateElevationInfo(){const e=this.elevationInfo,t="Integrated mesh layers";(0,V.LR)(n.Z.getLogger(this),(0,V.Uy)(t,"absolute-height",e)),(0,V.LR)(n.Z.getLogger(this),(0,V.kf)(t,e))}};(0,i._)([(0,l.Cb)({type:String,readOnly:!0})],D.prototype,"geometryType",void 0),(0,i._)([(0,l.Cb)({type:["show","hide"]})],D.prototype,"listMode",void 0),(0,i._)([(0,l.Cb)({type:["IntegratedMeshLayer"]})],D.prototype,"operationalLayerType",void 0),(0,i._)([(0,l.Cb)({json:{read:!1},readOnly:!0})],D.prototype,"type",void 0),(0,i._)([(0,l.Cb)({type:I.U4,readOnly:!0})],D.prototype,"nodePages",void 0),(0,i._)([(0,l.Cb)({type:[I.QI],readOnly:!0})],D.prototype,"materialDefinitions",void 0),(0,i._)([(0,l.Cb)({type:[I.Yh],readOnly:!0})],D.prototype,"textureSetDefinitions",void 0),(0,i._)([(0,l.Cb)({type:[I.H3],readOnly:!0})],D.prototype,"geometryDefinitions",void 0),(0,i._)([(0,l.Cb)({readOnly:!0})],D.prototype,"serviceUpdateTimeStamp",void 0),(0,i._)([(0,l.Cb)({type:J}),(0,y.B)({origins:["web-scene","portal-item"],type:"resource",prefix:"modifications"})],D.prototype,"modifications",void 0),(0,i._)([(0,d.r)(["web-scene","portal-item"],"modifications")],D.prototype,"readModifications",null),(0,i._)([(0,l.Cb)(b.PV)],D.prototype,"elevationInfo",null),(0,i._)([(0,l.Cb)({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],D.prototype,"path",void 0),D=(0,i._)([(0,u.j)("esri.layers.IntegratedMeshLayer")],D);const K=D}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6498.5a12400cd007b9028877.js b/docs/sentinel1-explorer/6498.5a12400cd007b9028877.js new file mode 100644 index 00000000..0bb018e6 --- /dev/null +++ b/docs/sentinel1-explorer/6498.5a12400cd007b9028877.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6498],{97992:function(e,t,r){r.d(t,{Z:function(){return y}});var n=r(36663),o=r(74396),s=r(7753),i=r(41151),l=r(86618),a=r(82064),u=r(81977),p=(r(39994),r(13802),r(40266));let c=0,d=class extends((0,a.eC)((0,i.J)((0,l.IG)(o.Z)))){constructor(e){super(e),this.id=`${Date.now().toString(16)}-analysis-${c++}`,this.title=null}get parent(){return this._get("parent")}set parent(e){const t=this.parent;if(null!=t)switch(t.type){case"line-of-sight":case"dimension":t.releaseAnalysis(this);break;case"2d":case"3d":t.analyses.includes(this)&&t.analyses.remove(this)}this._set("parent",e)}get isEditable(){return this.requiredPropertiesForEditing.every(s.pC)}};(0,n._)([(0,u.Cb)({type:String,constructOnly:!0,clonable:!1})],d.prototype,"id",void 0),(0,n._)([(0,u.Cb)({type:String})],d.prototype,"title",void 0),(0,n._)([(0,u.Cb)({clonable:!1,value:null})],d.prototype,"parent",null),(0,n._)([(0,u.Cb)({readOnly:!0})],d.prototype,"isEditable",null),d=(0,n._)([(0,p.j)("esri.analysis.Analysis")],d);const y=d},98786:function(e,t,r){r.d(t,{B:function(){return y}});var n=r(70375),o=r(86630),s=r(71760),i=r(3466),l=r(12173),a=r(41610),u=r(65943),p=r(81977),c=r(51876),d=r(16641);function y(e){const t=e?.origins??[void 0];return(r,n)=>{const o=function(e,t,r){if("resource"===e?.type)return function(e,t,r){const n=(0,a.Oe)(t,r);return{type:String,read:(e,t,r)=>{const o=(0,d.r)(e,t,r);return n.type===String?o:"function"==typeof n.type?new n.type({url:o}):void 0},write:{writer(t,o,l,a){if(!a?.resources)return"string"==typeof t?void(o[l]=(0,d.t)(t,a)):void(o[l]=t.write({},a));const p=function(e){return null==e?null:"string"==typeof e?e:e.url}(t),y=(0,d.t)(p,{...a,verifyItemRelativeUrls:a?.verifyItemRelativeUrls?{writtenUrls:a.verifyItemRelativeUrls.writtenUrls,rootPath:void 0}:void 0},d.M.NO),b=n.type!==String&&(!(0,s.l)(this)||a?.origin&&this.originIdOf(r)>(0,u.M9)(a.origin)),v={object:this,propertyName:r,value:t,targetUrl:y,dest:o,targetPropertyName:l,context:a,params:e};a?.portalItem&&y&&!(0,i.YP)(y)?b&&e?.contentAddressed?f(v):b?function(e){const{context:t,targetUrl:r,params:n,value:o,dest:s,targetPropertyName:l}=e;if(!t.portalItem)return;const a=t.portalItem.resourceFromPath(r),u=g(o,r,t),p=(0,c.B)(u),d=(0,i.Ml)(a.path),y=n?.compress??!1;p===d?(t.resources&&h({...e,resource:a,content:u,compress:y,updates:t.resources.toUpdate}),s[l]=r):f(e)}(v):function({context:e,targetUrl:t,dest:r,targetPropertyName:n}){e.portalItem&&e.resources&&(e.resources.toKeep.push({resource:e.portalItem.resourceFromPath(t),compress:!1}),r[n]=t)}(v):a?.portalItem&&(null==y||null!=(0,d.i)(y)||(0,i.jc)(y)||b)?f(v):o[l]=y}}}}(e,t,r);switch(e?.type??"other"){case"other":return{read:!0,write:!0};case"url":{const{read:e,write:t}=d.b;return{read:e,write:t}}}}(e,r,n);for(const e of t){const t=(0,p.CJ)(r,e,n);for(const e in o)t[e]=o[e]}}}function f(e){const{targetUrl:t,params:r,value:s,context:a,dest:u,targetPropertyName:p}=e;if(!a.portalItem)return;const y=(0,d.p)(t),f=g(s,t,a);if(r?.contentAddressed&&"json"!==f.type)return void a.messages?.push(new n.Z("persistable:contentAddressingUnsupported",`Property "${p}" is trying to serializing a resource with content of type ${f.type} with content addressing. Content addressing is only supported for json resources.`,{content:f}));const b=r?.contentAddressed&&"json"===f.type?(0,o.F)(f.jsonString):y?.filename??(0,l.DO)(),v=(0,i.v_)(r?.prefix??y?.prefix,b),m=`${v}.${(0,c.B)(f)}`;if(r?.contentAddressed&&a.resources&&"json"===f.type){const e=a.resources.toKeep.find((({resource:e})=>e.path===m))??a.resources.toAdd.find((({resource:e})=>e.path===m));if(e)return void(u[p]=e.resource.itemRelativeUrl)}const _=a.portalItem.resourceFromPath(m);(0,i.jc)(t)&&a.resources&&a.resources.pendingOperations.push((0,i.gi)(t).then((e=>{_.path=`${v}.${(0,c.B)({type:"blob",blob:e})}`,u[p]=_.itemRelativeUrl})).catch((()=>{})));const I=r?.compress??!1;a.resources&&h({...e,resource:_,content:f,compress:I,updates:a.resources.toAdd}),u[p]=_.itemRelativeUrl}function h({object:e,propertyName:t,updates:r,resource:n,content:o,compress:s}){r.push({resource:n,content:o,compress:s,finish:r=>{!function(e,t,r){"string"==typeof e[t]?e[t]=r.url:e[t].url=r.url}(e,t,r)}})}function g(e,t,r){return"string"==typeof e?{type:"url",url:t}:{type:"json",jsonString:JSON.stringify(e.toJSON(r))}}},71760:function(e,t,r){function n(e){return e&&"getAtOrigin"in e&&"originOf"in e}r.d(t,{l:function(){return n}})},16498:function(e,t,r){r.r(t),r.d(t,{default:function(){return F}});var n=r(36663),o=r(97992);function s(e,t){return i(e)===i(t)}function i(e){if(null==e)return null;const t=null!=e.layer?e.layer.id:"";let r=null;return r=null!=e.objectId?e.objectId:null!=e.layer&&"objectIdField"in e.layer&&null!=e.layer.objectIdField&&null!=e.attributes?e.attributes[e.layer.objectIdField]:e.uid,null==r?null:`o-${t}-${r}`}const l={json:{write:{writer:function(e,t){null!=e?.layer?.objectIdField&&null!=e.attributes&&(t.feature={layerId:e.layer.id,objectId:e.attributes[e.layer.objectIdField]})},target:{"feature.layerId":{type:[Number,String]},"feature.objectId":{type:[Number,String]}}},origins:{"web-scene":{read:function(e){if(null!=e.layerId&&null!=e.objectId)return{uid:null,layer:{id:e.layerId,objectIdField:"ObjectId"},attributes:{ObjectId:e.objectId}}}}}}};var a=r(74396),u=r(41151),p=r(82064),c=r(61681),d=r(81977),y=(r(39994),r(13802),r(4157),r(40266)),f=r(98786),h=r(67666),g=r(74710);let b=class extends((0,p.eC)((0,u.J)(a.Z))){constructor(e){super(e),this.position=null,this.elevationInfo=null,this.feature=null}equals(e){return(0,c._W)(this.position,e.position)&&(0,c._W)(this.elevationInfo,e.elevationInfo)&&s(this.feature,e.feature)}};(0,n._)([(0,d.Cb)({type:h.Z,json:{write:{isRequired:!0}}})],b.prototype,"position",void 0),(0,n._)([(0,d.Cb)({type:g.Z}),(0,f.B)()],b.prototype,"elevationInfo",void 0),(0,n._)([(0,d.Cb)(l)],b.prototype,"feature",void 0),b=(0,n._)([(0,y.j)("esri.analysis.LineOfSightAnalysisObserver")],b);const v=b;let m=class extends((0,p.eC)(u.j)){constructor(e){super(e),this.position=null,this.elevationInfo=null,this.feature=null}equals(e){return(0,c._W)(this.position,e.position)&&(0,c._W)(this.elevationInfo,e.elevationInfo)&&s(this.feature,e.feature)}};(0,n._)([(0,d.Cb)({type:h.Z}),(0,f.B)()],m.prototype,"position",void 0),(0,n._)([(0,d.Cb)({type:g.Z}),(0,f.B)()],m.prototype,"elevationInfo",void 0),(0,n._)([(0,d.Cb)(l)],m.prototype,"feature",void 0),m=(0,n._)([(0,y.j)("esri.analysis.LineOfSightAnalysisTarget")],m);const _=m;var I=r(6865),j=r(58811),w=r(76868),x=r(28105),C=r(37116),O=r(83772);const R=I.Z.ofType(_);let S=class extends o.Z{constructor(e){super(e),this.type="line-of-sight",this.observer=null,this.extent=null}initialize(){this.addHandles((0,w.YP)((()=>this._computeExtent()),(e=>{null==e?.pending&&this._set("extent",null!=e?e.extent:null)}),w.tX))}get targets(){return this._get("targets")||new R}set targets(e){this._set("targets",(0,j.Z)(e,this.targets,R))}get spatialReference(){return null!=this.observer?.position?this.observer.position.spatialReference:null}get requiredPropertiesForEditing(){return[this.observer?.position]}async waitComputeExtent(){const e=this._computeExtent();return null!=e?e.pending:Promise.resolve()}_computeExtent(){const e=this.spatialReference;if(null==this.observer?.position||null==e)return null;const t=e=>"absolute-height"===(0,O.VW)(e.position,e.elevationInfo),r=this.observer.position,n=(0,C.al)(r.x,r.y,r.z,r.x,r.y,r.z);for(const t of this.targets)if(null!=t.position){const r=(0,x.projectOrLoad)(t.position,e);if(null!=r.pending)return{pending:r.pending,extent:null};if(null!=r.geometry){const{x:e,y:t,z:o}=r.geometry;(0,C.pp)(n,[e,t,o])}}const o=(0,C.HH)(n,e);return t(this.observer)&&this.targets.every(t)||(o.zmin=void 0,o.zmax=void 0),{pending:null,extent:o}}clear(){this.observer=null,this.targets.removeAll()}};(0,n._)([(0,d.Cb)({type:["line-of-sight"]})],S.prototype,"type",void 0),(0,n._)([(0,d.Cb)({type:v,json:{read:!0,write:!0}})],S.prototype,"observer",void 0),(0,n._)([(0,d.Cb)({cast:j.R,type:R,nonNullable:!0,json:{read:!0,write:!0}})],S.prototype,"targets",null),(0,n._)([(0,d.Cb)({value:null,readOnly:!0})],S.prototype,"extent",void 0),(0,n._)([(0,d.Cb)({readOnly:!0})],S.prototype,"spatialReference",null),(0,n._)([(0,d.Cb)({readOnly:!0})],S.prototype,"requiredPropertiesForEditing",null),S=(0,n._)([(0,y.j)("esri.analysis.LineOfSightAnalysis")],S);const P=S;var Z=r(15842),A=r(38481),E=r(43330);const U=I.Z.ofType(_);let $=class extends((0,E.q)((0,Z.R)(A.Z))){constructor(e){super(e),this.type="line-of-sight",this.operationalLayerType="LineOfSightLayer",this.analysis=new P,this.opacity=1}initialize(){this.addHandles((0,w.YP)((()=>this.analysis),((e,t)=>{null!=t&&t.parent===this&&(t.parent=null),null!=e&&(e.parent=this)}),w.tX))}async load(){return null!=this.analysis&&this.addResolvingPromise(this.analysis.waitComputeExtent()),this}get observer(){return this.analysis?.observer}set observer(e){const{analysis:t}=this;t&&(t.observer=e)}get targets(){return null!=this.analysis?this.analysis.targets:new I.Z}set targets(e){(0,j.Z)(e,this.analysis?.targets)}get fullExtent(){return null!=this.analysis?this.analysis.extent:null}get spatialReference(){return null!=this.analysis?this.analysis.spatialReference:null}releaseAnalysis(e){this.analysis===e&&(this.analysis=new P)}};(0,n._)([(0,d.Cb)({json:{read:!1},readOnly:!0})],$.prototype,"type",void 0),(0,n._)([(0,d.Cb)({type:["LineOfSightLayer"]})],$.prototype,"operationalLayerType",void 0),(0,n._)([(0,d.Cb)({type:v,json:{read:!0,write:{isRequired:!0,ignoreOrigin:!0}}})],$.prototype,"observer",null),(0,n._)([(0,d.Cb)({type:U,json:{read:!0,write:{ignoreOrigin:!0}}})],$.prototype,"targets",null),(0,n._)([(0,d.Cb)({nonNullable:!0,json:{read:!1,write:!1}})],$.prototype,"analysis",void 0),(0,n._)([(0,d.Cb)({readOnly:!0})],$.prototype,"fullExtent",null),(0,n._)([(0,d.Cb)({readOnly:!0})],$.prototype,"spatialReference",null),(0,n._)([(0,d.Cb)({readOnly:!0,json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}}})],$.prototype,"opacity",void 0),(0,n._)([(0,d.Cb)({type:["show","hide"]})],$.prototype,"listMode",void 0),$=(0,n._)([(0,y.j)("esri.layers.LineOfSightLayer")],$);const F=$},83772:function(e,t,r){r.d(t,{LR:function(){return a},Uy:function(){return s},VW:function(){return o},Wb:function(){return i},kf:function(){return l}});r(17321),r(91478);function n(e){return e?u:p}function o(e,t){return function(e,t){return t?.mode?t.mode:n(e).mode}(null!=e&&e.hasZ,t)}function s(e,t,r){return r&&r.mode!==t?`${e} only support ${t} elevation mode`:null}function i(e,t,r){return r?.mode===t?`${e} do not support ${t} elevation mode`:null}function l(e,t){return null!=t?.featureExpressionInfo&&"0"!==t.featureExpressionInfo.expression?`${e} do not support featureExpressionInfo`:null}function a(e,t){t&&e.warn(".elevationInfo=",t)}const u={mode:"absolute-height",offset:0},p={mode:"on-the-ground",offset:null}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6663.d02c707c22906ce7560e.js b/docs/sentinel1-explorer/6663.d02c707c22906ce7560e.js new file mode 100644 index 00000000..17399fa8 --- /dev/null +++ b/docs/sentinel1-explorer/6663.d02c707c22906ce7560e.js @@ -0,0 +1,2 @@ +/*! For license information please see 6663.d02c707c22906ce7560e.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6663],{13219:function(e,t,n){n.d(t,{H:function(){return o}});var i=n(77210);const o=(e,t)=>{const n=e.level?`h${e.level}`:"div";return delete e.level,(0,i.h)(n,{...e},t)}},86663:function(e,t,n){n.d(t,{S:function(){return m},d:function(){return b}});var i=n(77210);function o(e,t){return(e+t)%t}var r=n(79145),s=n(96472),l=n(25694),a=n(16265),c=n(19516),d=n(44586),f=n(92708),u=n(18888);const h="menu",p="default-trigger",m={tooltip:"tooltip",trigger:"trigger"},g="ellipsis",v=["ArrowUp","ArrowDown","End","Home"],y=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.calciteActionMenuOpen=(0,i.yM)(this,"calciteActionMenuOpen",6),this.actionElements=[],this.guid=`calcite-action-menu-${(0,s.g)()}`,this.menuId=`${this.guid}-menu`,this.menuButtonId=`${this.guid}-menu-button`,this.connectMenuButtonEl=()=>{const{menuButtonId:e,menuId:t,open:n,label:i}=this,o=this.slottedMenuButtonEl||this.defaultMenuButtonEl;this.menuButtonEl!==o&&(this.disconnectMenuButtonEl(),this.menuButtonEl=o,this.setTooltipReferenceElement(),o&&(o.active=n,o.setAttribute("aria-controls",t),o.setAttribute("aria-expanded",(0,r.t)(n)),o.setAttribute("aria-haspopup","true"),o.id||(o.id=e),o.label||(o.label=i),o.text||(o.text=i),o.addEventListener("pointerdown",this.menuButtonClick),o.addEventListener("keydown",this.menuButtonKeyDown)))},this.disconnectMenuButtonEl=()=>{const{menuButtonEl:e}=this;e&&(e.removeEventListener("pointerdown",this.menuButtonClick),e.removeEventListener("keydown",this.menuButtonKeyDown))},this.setMenuButtonEl=e=>{const t=e.target.assignedElements({flatten:!0}).filter((e=>e?.matches("calcite-action")));this.slottedMenuButtonEl=t[0],this.connectMenuButtonEl()},this.setDefaultMenuButtonEl=e=>{this.defaultMenuButtonEl=e,this.connectMenuButtonEl()},this.handleCalciteActionClick=()=>{this.open=!1,this.setFocus()},this.menuButtonClick=e=>{(0,r.i)(e)&&this.toggleOpen()},this.updateTooltip=e=>{const t=e.target.assignedElements({flatten:!0}).filter((e=>e?.matches("calcite-tooltip")));this.tooltipEl=t[0],this.setTooltipReferenceElement()},this.setTooltipReferenceElement=()=>{const{tooltipEl:e,expanded:t,menuButtonEl:n,open:i}=this;e&&(e.referenceElement=t||i?null:n)},this.updateAction=(e,t)=>{const{guid:n,activeMenuItemIndex:i}=this,o=`${n}-action-${t}`;e.tabIndex=-1,e.setAttribute("role","menuitem"),e.id||(e.id=o),e.toggleAttribute("data-active",t===i)},this.updateActions=e=>{e?.forEach(this.updateAction)},this.handleDefaultSlotChange=e=>{const t=e.target.assignedElements({flatten:!0}).reduce(((e,t)=>t?.matches("calcite-action")?(e.push(t),e):t?.matches("calcite-action-group")?e.concat(Array.from(t.querySelectorAll("calcite-action"))):e),[]);this.actionElements=t.filter((e=>!e.disabled&&!e.hidden))},this.menuButtonKeyDown=e=>{const{key:t}=e,{actionElements:n,activeMenuItemIndex:i,open:o}=this;if(n.length){if((0,l.i)(t)){if(e.preventDefault(),!o)return void this.toggleOpen();const t=n[i];t?t.click():this.toggleOpen(!1)}if("Tab"!==t)return"Escape"===t?(this.toggleOpen(!1),void e.preventDefault()):void this.handleActionNavigation(e,t,n);this.open=!1}},this.handleActionNavigation=(e,t,n)=>{if(!this.isValidKey(t,v))return;if(e.preventDefault(),!this.open)return this.toggleOpen(),"Home"!==t&&"ArrowDown"!==t||(this.activeMenuItemIndex=0),void("End"!==t&&"ArrowUp"!==t||(this.activeMenuItemIndex=n.length-1));"Home"===t&&(this.activeMenuItemIndex=0),"End"===t&&(this.activeMenuItemIndex=n.length-1);const i=this.activeMenuItemIndex;"ArrowUp"===t&&(this.activeMenuItemIndex=o(Math.max(i-1,-1),n.length)),"ArrowDown"===t&&(this.activeMenuItemIndex=o(i+1,n.length))},this.toggleOpenEnd=()=>{this.setFocus(),this.el.removeEventListener("calcitePopoverOpen",this.toggleOpenEnd)},this.toggleOpen=(e=!this.open)=>{this.el.addEventListener("calcitePopoverOpen",this.toggleOpenEnd),this.open=e},this.handlePopoverOpen=()=>{this.open=!0},this.handlePopoverClose=()=>{this.open=!1},this.appearance="solid",this.expanded=!1,this.flipPlacements=void 0,this.label=void 0,this.open=!1,this.overlayPositioning="absolute",this.placement="auto",this.scale=void 0,this.menuButtonEl=void 0,this.activeMenuItemIndex=-1}connectedCallback(){this.connectMenuButtonEl()}componentWillLoad(){(0,a.s)(this)}componentDidLoad(){(0,a.a)(this)}disconnectedCallback(){this.disconnectMenuButtonEl()}expandedHandler(){this.open=!1,this.setTooltipReferenceElement()}openHandler(e){this.activeMenuItemIndex=this.open?0:-1,this.menuButtonEl&&(this.menuButtonEl.active=e),this.calciteActionMenuOpen.emit(),this.setTooltipReferenceElement()}activeMenuItemIndexHandler(){this.updateActions(this.actionElements)}async setFocus(){return await(0,a.c)(this),(0,r.e)(this.menuButtonEl)}renderMenuButton(){const{appearance:e,label:t,scale:n,expanded:o}=this;return(0,i.h)("slot",{name:m.trigger,onSlotchange:this.setMenuButtonEl},(0,i.h)("calcite-action",{appearance:e,class:p,icon:g,scale:n,text:t,textEnabled:o,ref:this.setDefaultMenuButtonEl}))}renderMenuItems(){const{actionElements:e,activeMenuItemIndex:t,open:n,menuId:o,menuButtonEl:r,label:s,placement:l,overlayPositioning:a,flipPlacements:c}=this,d=e[t],f=d?.id||null;return(0,i.h)("calcite-popover",{autoClose:!0,flipPlacements:c,focusTrapDisabled:!0,label:s,offsetDistance:0,onCalcitePopoverClose:this.handlePopoverClose,onCalcitePopoverOpen:this.handlePopoverOpen,open:n,overlayPositioning:a,placement:l,pointerDisabled:!0,referenceElement:r},(0,i.h)("div",{"aria-activedescendant":f,"aria-labelledby":r?.id,class:h,id:o,onClick:this.handleCalciteActionClick,role:"menu",tabIndex:-1},(0,i.h)("slot",{onSlotchange:this.handleDefaultSlotChange})))}render(){return(0,i.h)(i.HY,null,this.renderMenuButton(),this.renderMenuItems(),(0,i.h)("slot",{name:m.tooltip,onSlotchange:this.updateTooltip}))}isValidKey(e,t){return!!t.find((t=>t===e))}get el(){return this}static get watchers(){return{expanded:["expandedHandler"],open:["openHandler"],activeMenuItemIndex:["activeMenuItemIndexHandler"]}}static get style(){return":host{box-sizing:border-box;display:flex;flex-direction:column;font-size:var(--calcite-font-size-1);color:var(--calcite-color-text-2)}::slotted(calcite-action-group){border-block-end:1px solid var(--calcite-color-border-3)}::slotted(calcite-action-group:last-child){border-block-end:0}.default-trigger{position:relative;block-size:100%;flex:0 1 auto;align-self:stretch}slot[name=trigger]::slotted(calcite-action),calcite-action::slotted([slot=trigger]){position:relative;block-size:100%;flex:0 1 auto;align-self:stretch}.menu{max-block-size:45vh;flex-direction:column;flex-wrap:nowrap;overflow-y:auto;overflow-x:hidden;outline:2px solid transparent;outline-offset:2px}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-action-menu",{appearance:[513],expanded:[516],flipPlacements:[16],label:[1],open:[1540],overlayPositioning:[513,"overlay-positioning"],placement:[513],scale:[513],menuButtonEl:[32],activeMenuItemIndex:[32],setFocus:[64]},void 0,{expanded:["expandedHandler"],open:["openHandler"],activeMenuItemIndex:["activeMenuItemIndexHandler"]}]);function b(){if("undefined"==typeof customElements)return;["calcite-action-menu","calcite-action","calcite-icon","calcite-loader","calcite-popover"].forEach((e=>{switch(e){case"calcite-action-menu":customElements.get(e)||customElements.define(e,y);break;case"calcite-action":customElements.get(e)||(0,c.d)();break;case"calcite-icon":customElements.get(e)||(0,d.d)();break;case"calcite-loader":customElements.get(e)||(0,f.d)();break;case"calcite-popover":customElements.get(e)||(0,u.d)()}}))}b()},52971:function(e,t,n){n.d(t,{S:function(){return s},a:function(){return y},b:function(){return m},c:function(){return g},d:function(){return T},f:function(){return i},i:function(){return E},r:function(){return r}});var i="object"==typeof global&&global&&global.Object===Object&&global,o="object"==typeof self&&self&&self.Object===Object&&self,r=i||o||Function("return this")(),s=r.Symbol,l=Object.prototype,a=l.hasOwnProperty,c=l.toString,d=s?s.toStringTag:void 0;var f=Object.prototype.toString;var u="[object Null]",h="[object Undefined]",p=s?s.toStringTag:void 0;function m(e){return null==e?void 0===e?h:u:p&&p in Object(e)?function(e){var t=a.call(e,d),n=e[d];try{e[d]=void 0;var i=!0}catch(e){}var o=c.call(e);return i&&(t?e[d]=n:delete e[d]),o}(e):function(e){return f.call(e)}(e)}function g(e){return null!=e&&"object"==typeof e}var v="[object Symbol]";function y(e){return"symbol"==typeof e||g(e)&&m(e)==v}var b=/\s/;var w=/^\s+/;function x(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&b.test(e.charAt(t)););return t}(e)+1).replace(w,""):e}function E(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var k=NaN,P=/^[-+]0x[0-9a-f]+$/i,D=/^0b[01]+$/i,L=/^0o[0-7]+$/i,O=parseInt;function R(e){if("number"==typeof e)return e;if(y(e))return k;if(E(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=E(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=x(e);var n=D.test(e);return n||L.test(e)?O(e.slice(2),n?2:8):P.test(e)?k:+e}var A=function(){return r.Date.now()},M="Expected a function",C=Math.max,H=Math.min;function T(e,t,n){var i,o,r,s,l,a,c=0,d=!1,f=!1,u=!0;if("function"!=typeof e)throw new TypeError(M);function h(t){var n=i,r=o;return i=o=void 0,c=t,s=e.apply(r,n)}function p(e){var n=e-a;return void 0===a||n>=t||n<0||f&&e-c>=r}function m(){var e=A();if(p(e))return g(e);l=setTimeout(m,function(e){var n=t-(e-a);return f?H(n,r-(e-c)):n}(e))}function g(e){return l=void 0,u&&i?h(e):(i=o=void 0,s)}function v(){var e=A(),n=p(e);if(i=arguments,o=this,a=e,n){if(void 0===l)return function(e){return c=e,l=setTimeout(m,t),d?h(e):s}(a);if(f)return clearTimeout(l),l=setTimeout(m,t),h(a)}return void 0===l&&(l=setTimeout(m,t)),s}return t=R(t)||0,E(n)&&(d=!!n.leading,r=(f="maxWait"in n)?C(R(n.maxWait)||0,t):r,u="trailing"in n?!!n.trailing:u),v.cancel=function(){void 0!==l&&clearTimeout(l),c=0,i=a=o=l=void 0},v.flush=function(){return void 0===l?s:g(A())},v}},18888:function(e,t,n){n.d(t,{d:function(){return ft}});var i=n(77210),o=n(79145),r=n(52971);const s=["top","right","bottom","left"],l=["start","end"],a=s.reduce(((e,t)=>e.concat(t,t+"-"+l[0],t+"-"+l[1])),[]),c=Math.min,d=Math.max,f=Math.round,u=Math.floor,h=e=>({x:e,y:e}),p={left:"right",right:"left",bottom:"top",top:"bottom"},m={start:"end",end:"start"};function g(e,t,n){return d(e,c(t,n))}function v(e,t){return"function"==typeof e?e(t):e}function y(e){return e.split("-")[0]}function b(e){return e.split("-")[1]}function w(e){return"x"===e?"y":"x"}function x(e){return"y"===e?"height":"width"}function E(e){return["top","bottom"].includes(y(e))?"y":"x"}function k(e){return w(E(e))}function P(e,t,n){void 0===n&&(n=!1);const i=b(e),o=k(e),r=x(o);let s="x"===o?i===(n?"end":"start")?"right":"left":"start"===i?"bottom":"top";return t.reference[r]>t.floating[r]&&(s=L(s)),[s,L(s)]}function D(e){return e.replace(/start|end/g,(e=>m[e]))}function L(e){return e.replace(/left|right|bottom|top/g,(e=>p[e]))}function O(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function R(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function A(e,t,n){let{reference:i,floating:o}=e;const r=E(t),s=k(t),l=x(s),a=y(t),c="y"===r,d=i.x+i.width/2-o.width/2,f=i.y+i.height/2-o.height/2,u=i[l]/2-o[l]/2;let h;switch(a){case"top":h={x:d,y:i.y-o.height};break;case"bottom":h={x:d,y:i.y+i.height};break;case"right":h={x:i.x+i.width,y:f};break;case"left":h={x:i.x-o.width,y:f};break;default:h={x:i.x,y:i.y}}switch(b(t)){case"start":h[s]-=u*(n&&c?-1:1);break;case"end":h[s]+=u*(n&&c?-1:1)}return h}async function M(e,t){var n;void 0===t&&(t={});const{x:i,y:o,platform:r,rects:s,elements:l,strategy:a}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:f="floating",altBoundary:u=!1,padding:h=0}=v(t,e),p=O(h),m=l[u?"floating"===f?"reference":"floating":f],g=R(await r.getClippingRect({element:null==(n=await(null==r.isElement?void 0:r.isElement(m)))||n?m:m.contextElement||await(null==r.getDocumentElement?void 0:r.getDocumentElement(l.floating)),boundary:c,rootBoundary:d,strategy:a})),y="floating"===f?{...s.floating,x:i,y:o}:s.reference,b=await(null==r.getOffsetParent?void 0:r.getOffsetParent(l.floating)),w=await(null==r.isElement?void 0:r.isElement(b))&&await(null==r.getScale?void 0:r.getScale(b))||{x:1,y:1},x=R(r.convertOffsetParentRelativeRectToViewportRelativeRect?await r.convertOffsetParentRelativeRectToViewportRelativeRect({rect:y,offsetParent:b,strategy:a}):y);return{top:(g.top-x.top+p.top)/w.y,bottom:(x.bottom-g.bottom+p.bottom)/w.y,left:(g.left-x.left+p.left)/w.x,right:(x.right-g.right+p.right)/w.x}}function C(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function H(e){return s.some((t=>e[t]>=0))}const T=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,i;const{x:o,y:r,placement:s,middlewareData:l}=t,a=await async function(e,t){const{placement:n,platform:i,elements:o}=e,r=await(null==i.isRTL?void 0:i.isRTL(o.floating)),s=y(n),l=b(n),a="y"===E(n),c=["left","top"].includes(s)?-1:1,d=r&&a?-1:1,f=v(t,e);let{mainAxis:u,crossAxis:h,alignmentAxis:p}="number"==typeof f?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...f};return l&&"number"==typeof p&&(h="end"===l?-1*p:p),a?{x:h*d,y:u*c}:{x:u*c,y:h*d}}(t,e);return s===(null==(n=l.offset)?void 0:n.placement)&&null!=(i=l.arrow)&&i.alignmentOffset?{}:{x:o+a.x,y:r+a.y,data:{...a,placement:s}}}}};function B(e){return F(e)?(e.nodeName||"").toLowerCase():"#document"}function I(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function S(e){var t;return null==(t=(F(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function F(e){return e instanceof Node||e instanceof I(e).Node}function z(e){return e instanceof Element||e instanceof I(e).Element}function $(e){return e instanceof HTMLElement||e instanceof I(e).HTMLElement}function W(e){return"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof I(e).ShadowRoot)}function j(e){const{overflow:t,overflowX:n,overflowY:i,display:o}=q(e);return/auto|scroll|overlay|hidden|clip/.test(t+i+n)&&!["inline","contents"].includes(o)}function _(e){return["table","td","th"].includes(B(e))}function N(e){const t=V(),n=q(e);return"none"!==n.transform||"none"!==n.perspective||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","perspective","filter"].some((e=>(n.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(n.contain||"").includes(e)))}function V(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function U(e){return["html","body","#document"].includes(B(e))}function q(e){return I(e).getComputedStyle(e)}function Y(e){return z(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function K(e){if("html"===B(e))return e;const t=e.assignedSlot||e.parentNode||W(e)&&e.host||S(e);return W(t)?t.host:t}function X(e){const t=K(e);return U(t)?e.ownerDocument?e.ownerDocument.body:e.body:$(t)&&j(t)?t:X(t)}function Z(e,t,n){var i;void 0===t&&(t=[]),void 0===n&&(n=!0);const o=X(e),r=o===(null==(i=e.ownerDocument)?void 0:i.body),s=I(o);return r?t.concat(s,s.visualViewport||[],j(o)?o:[],s.frameElement&&n?Z(s.frameElement):[]):t.concat(o,Z(o,[],n))}function G(e){const t=q(e);let n=parseFloat(t.width)||0,i=parseFloat(t.height)||0;const o=$(e),r=o?e.offsetWidth:n,s=o?e.offsetHeight:i,l=f(n)!==r||f(i)!==s;return l&&(n=r,i=s),{width:n,height:i,$:l}}function Q(e){return z(e)?e:e.contextElement}function J(e){const t=Q(e);if(!$(t))return h(1);const n=t.getBoundingClientRect(),{width:i,height:o,$:r}=G(t);let s=(r?f(n.width):n.width)/i,l=(r?f(n.height):n.height)/o;return s&&Number.isFinite(s)||(s=1),l&&Number.isFinite(l)||(l=1),{x:s,y:l}}const ee=h(0);function te(e){const t=I(e);return V()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:ee}function ne(e,t,n,i){void 0===t&&(t=!1),void 0===n&&(n=!1);const o=e.getBoundingClientRect(),r=Q(e);let s=h(1);t&&(i?z(i)&&(s=J(i)):s=J(e));const l=function(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==I(e))&&t}(r,n,i)?te(r):h(0);let a=(o.left+l.x)/s.x,c=(o.top+l.y)/s.y,d=o.width/s.x,f=o.height/s.y;if(r){const e=I(r),t=i&&z(i)?I(i):i;let n=e,o=n.frameElement;for(;o&&i&&t!==n;){const e=J(o),t=o.getBoundingClientRect(),i=q(o),r=t.left+(o.clientLeft+parseFloat(i.paddingLeft))*e.x,s=t.top+(o.clientTop+parseFloat(i.paddingTop))*e.y;a*=e.x,c*=e.y,d*=e.x,f*=e.y,a+=r,c+=s,n=I(o),o=n.frameElement}}return R({width:d,height:f,x:a,y:c})}const ie=[":popover-open",":modal"];function oe(e){return ie.some((t=>{try{return e.matches(t)}catch(e){return!1}}))}function re(e){return ne(S(e)).left+Y(e).scrollLeft}function se(e,t,n){let i;if("viewport"===t)i=function(e,t){const n=I(e),i=S(e),o=n.visualViewport;let r=i.clientWidth,s=i.clientHeight,l=0,a=0;if(o){r=o.width,s=o.height;const e=V();(!e||e&&"fixed"===t)&&(l=o.offsetLeft,a=o.offsetTop)}return{width:r,height:s,x:l,y:a}}(e,n);else if("document"===t)i=function(e){const t=S(e),n=Y(e),i=e.ownerDocument.body,o=d(t.scrollWidth,t.clientWidth,i.scrollWidth,i.clientWidth),r=d(t.scrollHeight,t.clientHeight,i.scrollHeight,i.clientHeight);let s=-n.scrollLeft+re(e);const l=-n.scrollTop;return"rtl"===q(i).direction&&(s+=d(t.clientWidth,i.clientWidth)-o),{width:o,height:r,x:s,y:l}}(S(e));else if(z(t))i=function(e,t){const n=ne(e,!0,"fixed"===t),i=n.top+e.clientTop,o=n.left+e.clientLeft,r=$(e)?J(e):h(1);return{width:e.clientWidth*r.x,height:e.clientHeight*r.y,x:o*r.x,y:i*r.y}}(t,n);else{const n=te(e);i={...t,x:t.x-n.x,y:t.y-n.y}}return R(i)}function le(e,t){const n=K(e);return!(n===t||!z(n)||U(n))&&("fixed"===q(n).position||le(n,t))}function ae(e,t,n){const i=$(t),o=S(t),r="fixed"===n,s=ne(e,!0,r,t);let l={scrollLeft:0,scrollTop:0};const a=h(0);if(i||!i&&!r)if(("body"!==B(t)||j(o))&&(l=Y(t)),i){const e=ne(t,!0,r,t);a.x=e.x+t.clientLeft,a.y=e.y+t.clientTop}else o&&(a.x=re(o));return{x:s.left+l.scrollLeft-a.x,y:s.top+l.scrollTop-a.y,width:s.width,height:s.height}}function ce(e,t){return $(e)&&"fixed"!==q(e).position?t?t(e):e.offsetParent:null}function de(e,t){const n=I(e);if(!$(e)||oe(e))return n;let i=ce(e,t);for(;i&&_(i)&&"static"===q(i).position;)i=ce(i,t);return i&&("html"===B(i)||"body"===B(i)&&"static"===q(i).position&&!N(i))?n:i||function(e){let t=K(e);for(;$(t)&&!U(t);){if(N(t))return t;t=K(t)}return null}(e)||n}const fe={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:i,strategy:o}=e;const r="fixed"===o,s=S(i),l=!!t&&oe(t.floating);if(i===s||l&&r)return n;let a={scrollLeft:0,scrollTop:0},c=h(1);const d=h(0),f=$(i);if((f||!f&&!r)&&(("body"!==B(i)||j(s))&&(a=Y(i)),$(i))){const e=ne(i);c=J(i),d.x=e.x+i.clientLeft,d.y=e.y+i.clientTop}return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-a.scrollLeft*c.x+d.x,y:n.y*c.y-a.scrollTop*c.y+d.y}},getDocumentElement:S,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:i,strategy:o}=e;const r=[..."clippingAncestors"===n?function(e,t){const n=t.get(e);if(n)return n;let i=Z(e,[],!1).filter((e=>z(e)&&"body"!==B(e))),o=null;const r="fixed"===q(e).position;let s=r?K(e):e;for(;z(s)&&!U(s);){const t=q(s),n=N(s);n||"fixed"!==t.position||(o=null),(r?!n&&!o:!n&&"static"===t.position&&o&&["absolute","fixed"].includes(o.position)||j(s)&&!n&&le(e,s))?i=i.filter((e=>e!==s)):o=t,s=K(s)}return t.set(e,i),i}(t,this._c):[].concat(n),i],s=r[0],l=r.reduce(((e,n)=>{const i=se(t,n,o);return e.top=d(i.top,e.top),e.right=c(i.right,e.right),e.bottom=c(i.bottom,e.bottom),e.left=d(i.left,e.left),e}),se(t,s,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},getOffsetParent:de,getElementRects:async function(e){const t=this.getOffsetParent||de,n=this.getDimensions;return{reference:ae(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,...await n(e.floating)}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:n}=G(e);return{width:t,height:n}},getScale:J,isElement:z,isRTL:function(e){return"rtl"===q(e).direction}};function ue(e,t,n,i){void 0===i&&(i={});const{ancestorScroll:o=!0,ancestorResize:r=!0,elementResize:s="function"==typeof ResizeObserver,layoutShift:l="function"==typeof IntersectionObserver,animationFrame:a=!1}=i,f=Q(e),h=o||r?[...f?Z(f):[],...Z(t)]:[];h.forEach((e=>{o&&e.addEventListener("scroll",n,{passive:!0}),r&&e.addEventListener("resize",n)}));const p=f&&l?function(e,t){let n,i=null;const o=S(e);function r(){var e;clearTimeout(n),null==(e=i)||e.disconnect(),i=null}return function s(l,a){void 0===l&&(l=!1),void 0===a&&(a=1),r();const{left:f,top:h,width:p,height:m}=e.getBoundingClientRect();if(l||t(),!p||!m)return;const g={rootMargin:-u(h)+"px "+-u(o.clientWidth-(f+p))+"px "+-u(o.clientHeight-(h+m))+"px "+-u(f)+"px",threshold:d(0,c(1,a))||1};let v=!0;function y(e){const t=e[0].intersectionRatio;if(t!==a){if(!v)return s();t?s(!1,t):n=setTimeout((()=>{s(!1,1e-7)}),100)}v=!1}try{i=new IntersectionObserver(y,{...g,root:o.ownerDocument})}catch(e){i=new IntersectionObserver(y,g)}i.observe(e)}(!0),r}(f,n):null;let m,g=-1,v=null;s&&(v=new ResizeObserver((e=>{let[i]=e;i&&i.target===f&&v&&(v.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame((()=>{var e;null==(e=v)||e.observe(t)}))),n()})),f&&!a&&v.observe(f),v.observe(t));let y=a?ne(e):null;return a&&function t(){const i=ne(e);!y||i.x===y.x&&i.y===y.y&&i.width===y.width&&i.height===y.height||n();y=i,m=requestAnimationFrame(t)}(),n(),()=>{var e;h.forEach((e=>{o&&e.removeEventListener("scroll",n),r&&e.removeEventListener("resize",n)})),null==p||p(),null==(e=v)||e.disconnect(),v=null,a&&cancelAnimationFrame(m)}}const he=function(e){return void 0===e&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,i,o;const{rects:r,middlewareData:s,placement:l,platform:c,elements:d}=t,{crossAxis:f=!1,alignment:u,allowedPlacements:h=a,autoAlignment:p=!0,...m}=v(e,t),g=void 0!==u||h===a?function(e,t,n){return(e?[...n.filter((t=>b(t)===e)),...n.filter((t=>b(t)!==e))]:n.filter((e=>y(e)===e))).filter((n=>!e||b(n)===e||!!t&&D(n)!==n))}(u||null,p,h):h,w=await M(t,m),x=(null==(n=s.autoPlacement)?void 0:n.index)||0,E=g[x];if(null==E)return{};const k=P(E,r,await(null==c.isRTL?void 0:c.isRTL(d.floating)));if(l!==E)return{reset:{placement:g[0]}};const L=[w[y(E)],w[k[0]],w[k[1]]],O=[...(null==(i=s.autoPlacement)?void 0:i.overflows)||[],{placement:E,overflows:L}],R=g[x+1];if(R)return{data:{index:x+1,overflows:O},reset:{placement:R}};const A=O.map((e=>{const t=b(e.placement);return[e.placement,t&&f?e.overflows.slice(0,2).reduce(((e,t)=>e+t),0):e.overflows[0],e.overflows]})).sort(((e,t)=>e[1]-t[1])),C=(null==(o=A.filter((e=>e[2].slice(0,b(e[0])?2:3).every((e=>e<=0))))[0])?void 0:o[0])||A[0][0];return C!==l?{data:{index:x+1,overflows:O},reset:{placement:C}}:{}}}},pe=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:i,placement:o}=t,{mainAxis:r=!0,crossAxis:s=!1,limiter:l={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...a}=v(e,t),c={x:n,y:i},d=await M(t,a),f=E(y(o)),u=w(f);let h=c[u],p=c[f];if(r){const e="y"===u?"bottom":"right";h=g(h+d["y"===u?"top":"left"],h,h-d[e])}if(s){const e="y"===f?"bottom":"right";p=g(p+d["y"===f?"top":"left"],p,p-d[e])}const m=l.fn({...t,[u]:h,[f]:p});return{...m,data:{x:m.x-n,y:m.y-i}}}}},me=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,i;const{placement:o,middlewareData:r,rects:s,initialPlacement:l,platform:a,elements:c}=t,{mainAxis:d=!0,crossAxis:f=!0,fallbackPlacements:u,fallbackStrategy:h="bestFit",fallbackAxisSideDirection:p="none",flipAlignment:m=!0,...g}=v(e,t);if(null!=(n=r.arrow)&&n.alignmentOffset)return{};const w=y(o),x=y(l)===l,E=await(null==a.isRTL?void 0:a.isRTL(c.floating)),k=u||(x||!m?[L(l)]:function(e){const t=L(e);return[D(e),t,D(t)]}(l));u||"none"===p||k.push(...function(e,t,n,i){const o=b(e);let r=function(e,t,n){const i=["left","right"],o=["right","left"],r=["top","bottom"],s=["bottom","top"];switch(e){case"top":case"bottom":return n?t?o:i:t?i:o;case"left":case"right":return t?r:s;default:return[]}}(y(e),"start"===n,i);return o&&(r=r.map((e=>e+"-"+o)),t&&(r=r.concat(r.map(D)))),r}(l,m,p,E));const O=[l,...k],R=await M(t,g),A=[];let C=(null==(i=r.flip)?void 0:i.overflows)||[];if(d&&A.push(R[w]),f){const e=P(o,s,E);A.push(R[e[0]],R[e[1]])}if(C=[...C,{placement:o,overflows:A}],!A.every((e=>e<=0))){var H,T;const e=((null==(H=r.flip)?void 0:H.index)||0)+1,t=O[e];if(t)return{data:{index:e,overflows:C},reset:{placement:t}};let n=null==(T=C.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:T.placement;if(!n)switch(h){case"bestFit":{var B;const e=null==(B=C.map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:B[0];e&&(n=e);break}case"initialPlacement":n=l}if(o!==n)return{reset:{placement:n}}}return{}}}},ge=function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:i="referenceHidden",...o}=v(e,t);switch(i){case"referenceHidden":{const e=C(await M(t,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:H(e)}}}case"escaped":{const e=C(await M(t,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:H(e)}}}default:return{}}}}},ve=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:i,placement:o,rects:r,platform:s,elements:l,middlewareData:a}=t,{element:d,padding:f=0}=v(e,t)||{};if(null==d)return{};const u=O(f),h={x:n,y:i},p=k(o),m=x(p),y=await s.getDimensions(d),w="y"===p,E=w?"top":"left",P=w?"bottom":"right",D=w?"clientHeight":"clientWidth",L=r.reference[m]+r.reference[p]-h[p]-r.floating[m],R=h[p]-r.reference[p],A=await(null==s.getOffsetParent?void 0:s.getOffsetParent(d));let M=A?A[D]:0;M&&await(null==s.isElement?void 0:s.isElement(A))||(M=l.floating[D]||r.floating[m]);const C=L/2-R/2,H=M/2-y[m]/2-1,T=c(u[E],H),B=c(u[P],H),I=T,S=M-y[m]-B,F=M/2-y[m]/2+C,z=g(I,F,S),$=!a.arrow&&null!=b(o)&&F!=z&&r.reference[m]/2-(F{const i=new Map,o={platform:fe,...n},r={...o.platform,_c:i};return(async(e,t,n)=>{const{placement:i="bottom",strategy:o="absolute",middleware:r=[],platform:s}=n,l=r.filter(Boolean),a=await(null==s.isRTL?void 0:s.isRTL(t));let c=await s.getElementRects({reference:e,floating:t,strategy:o}),{x:d,y:f}=A(c,i,a),u=i,h={},p=0;for(let n=0;ne(t,be)}}();const Ee=async(e,{referenceEl:t,floatingEl:n,overlayPositioning:i="absolute",placement:o,flipDisabled:r,flipPlacements:s,offsetDistance:l,offsetSkidding:a,arrowEl:c,type:d})=>{if(!t||!n)return null;const{x:f,y:u,placement:h,strategy:p,middlewareData:m}=await ye(t,n,{strategy:i,placement:"auto"===o||"auto-start"===o||"auto-end"===o?void 0:Ae(n,o),middleware:Re({placement:o,flipDisabled:r,flipPlacements:s,offsetDistance:l,offsetSkidding:a,arrowEl:c,type:d})});if(c&&m.arrow){const{x:t,y:n}=m.arrow,i=h.split("-")[0],o=null!=t?"left":"top",r=Ce[i],s={left:"",top:"",bottom:"",right:""};"floatingLayout"in e&&(e.floatingLayout="left"===i||"right"===i?"horizontal":"vertical"),Object.assign(c.style,{...s,[o]:`${"left"==o?t:n}px`,[i]:"100%",transform:r})}const g=m.hide?.referenceHidden,v=g?"hidden":null,y=v?"none":null;n.setAttribute(ke,h);const{open:b}=e;Object.assign(n.style,{visibility:v,pointerEvents:y,position:p,transform:b?`translate(${xe(f)}px,${xe(u)}px)`:"",top:0,left:0})},ke="data-placement",Pe=100,De=["top","bottom","right","left","top-start","top-end","bottom-start","bottom-end","right-start","right-end","left-start","left-end"],Le="calcite-floating-ui-anim",Oe="calcite-floating-ui-anim--active";function Re({placement:e,flipDisabled:t,flipPlacements:n,offsetDistance:i,offsetSkidding:o,arrowEl:r,type:s}){const l=[pe(),ge()];if("menu"===s)return[...l,me({fallbackPlacements:n||["top-start","top","top-end","bottom-start","bottom","bottom-end"]})];if("popover"===s||"tooltip"===s){const s=[...l,T({mainAxis:"number"==typeof i?i:0,crossAxis:"number"==typeof o?o:0})];return"auto"===e||"auto-start"===e||"auto-end"===e?s.push(he({alignment:"auto-start"===e?"start":"auto-end"===e?"end":null})):t||s.push(me(n?{fallbackPlacements:n}:{})),r&&s.push(ve({element:r})),s}return[]}function Ae(e,t){const n=["left","right"];return"rtl"===(0,o.a)(e)&&n.reverse(),t.replace(/leading/gi,n[0]).replace(/trailing/gi,n[1])}async function Me(e,t,n=!1){if(!e.open)return;const i=n?function(e){let t=Te.get(e);if(t)return t;return t=(0,r.d)(Ee,Pe,{leading:!0,maxWait:Pe}),Te.set(e,t),t}(e):Ee;return i(e,t)}const Ce={top:"",left:"rotate(-90deg)",bottom:"rotate(180deg)",right:"rotate(90deg)"},He=new WeakMap,Te=new WeakMap;function Be(e,t,n){if(!n||!t)return;Ie(e,t,n),Object.assign(n.style,{visibility:"hidden",pointerEvents:"none",position:e.overlayPositioning});const o=i.Z5.isBrowser?ue:(e,t,n)=>(n(),()=>{});He.set(e,o(t,n,(()=>e.reposition())))}function Ie(e,t,n){n&&t&&(He.get(e)?.(),He.delete(e),Te.get(e)?.cancel(),Te.delete(e))}const Se=Math.ceil(Math.hypot(4,4));var Fe=n(38652),ze=n(96472),$e=n(18811),We=n(13219),je=n(19417),_e=n(53801),Ne=n(25694),Ve=n(16265),Ue=n(85545);const qe="calcite-floating-ui-arrow",Ye="calcite-floating-ui-arrow__stroke",Ke={width:12,height:6,strokeWidth:1},Xe=({floatingLayout:e,key:t,ref:n})=>{const{width:o,height:r,strokeWidth:s}=Ke,l=o/2,a="vertical"===e,c=`M0,0 H${o} L${o-l},${r} Q${l},${r} ${l},${r} Z`;return(0,i.h)("svg",{"aria-hidden":"true",class:qe,height:o,key:t,viewBox:`0 0 ${o} ${o+(a?0:s)}`,width:o+(a?s:0),ref:n},s>0&&(0,i.h)("path",{class:Ye,d:c,fill:"none","stroke-width":s+1}),(0,i.h)("path",{d:c,stroke:"none"}))};var Ze=n(90326),Ge=n(19516),Qe=n(44586),Je=n(92708);const et="container",tt="close-button-container",nt="close-button",it="content",ot="has-header",rt="header",st="heading",lt="aria-controls",at="aria-expanded";const ct=new class{constructor(){this.registeredElements=new Map,this.registeredElementCount=0,this.queryPopover=e=>{const{registeredElements:t}=this,n=e.find((e=>t.has(e)));return t.get(n)},this.togglePopovers=e=>{const t=e.composedPath(),n=this.queryPopover(t);n&&!n.triggerDisabled&&(n.open=!n.open),Array.from(this.registeredElements.values()).filter((e=>e!==n&&e.autoClose&&e.open&&!t.includes(e))).forEach((e=>e.open=!1))},this.keyHandler=e=>{e.defaultPrevented||("Escape"===e.key?this.closeAllPopovers():(0,Ne.i)(e.key)&&this.togglePopovers(e))},this.clickHandler=e=>{(0,o.i)(e)&&this.togglePopovers(e)}}registerElement(e,t){this.registeredElementCount++,this.registeredElements.set(e,t),1===this.registeredElementCount&&this.addListeners()}unregisterElement(e){this.registeredElements.delete(e)&&this.registeredElementCount--,0===this.registeredElementCount&&this.removeListeners()}closeAllPopovers(){Array.from(this.registeredElements.values()).forEach((e=>e.open=!1))}addListeners(){window.addEventListener("pointerdown",this.clickHandler,{capture:!0}),window.addEventListener("keydown",this.keyHandler,{capture:!0})}removeListeners(){window.removeEventListener("pointerdown",this.clickHandler,{capture:!0}),window.removeEventListener("keydown",this.keyHandler,{capture:!0})}},dt=(0,i.GH)(class extends i.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.calcitePopoverBeforeClose=(0,i.yM)(this,"calcitePopoverBeforeClose",6),this.calcitePopoverClose=(0,i.yM)(this,"calcitePopoverClose",6),this.calcitePopoverBeforeOpen=(0,i.yM)(this,"calcitePopoverBeforeOpen",6),this.calcitePopoverOpen=(0,i.yM)(this,"calcitePopoverOpen",6),this.mutationObserver=(0,Ue.c)("mutation",(()=>this.updateFocusTrapElements())),this.guid=`calcite-popover-${(0,ze.g)()}`,this.openTransitionProp="opacity",this.hasLoaded=!1,this.setTransitionEl=e=>{this.transitionEl=e},this.setFilteredPlacements=()=>{const{el:e,flipPlacements:t}=this;this.filteredFlipPlacements=t?function(e,t){const n=e.filter((e=>De.includes(e)));return n.length,e.length,n}(t):null},this.setUpReferenceElement=(e=!0)=>{this.removeReferences(),this.effectiveReferenceElement=this.getReferenceElement(),Be(this,this.effectiveReferenceElement,this.el);const{el:t,referenceElement:n,effectiveReferenceElement:i}=this;this.addReferences()},this.getId=()=>this.el.id||this.guid,this.setExpandedAttr=()=>{const{effectiveReferenceElement:e,open:t}=this;e&&"setAttribute"in e&&e.setAttribute(at,(0,o.t)(t))},this.addReferences=()=>{const{effectiveReferenceElement:e}=this;if(!e)return;const t=this.getId();"setAttribute"in e&&e.setAttribute(lt,t),ct.registerElement(e,this.el),this.setExpandedAttr()},this.removeReferences=()=>{const{effectiveReferenceElement:e}=this;e&&("removeAttribute"in e&&(e.removeAttribute(lt),e.removeAttribute(at)),ct.unregisterElement(e))},this.hide=()=>{this.open=!1},this.storeArrowEl=e=>{this.arrowEl=e,this.reposition(!0)},this.autoClose=!1,this.closable=!1,this.flipDisabled=!1,this.focusTrapDisabled=!1,this.pointerDisabled=!1,this.flipPlacements=void 0,this.heading=void 0,this.headingLevel=void 0,this.label=void 0,this.messageOverrides=void 0,this.messages=void 0,this.offsetDistance=Se,this.offsetSkidding=0,this.open=!1,this.overlayPositioning="absolute",this.placement="auto",this.referenceElement=void 0,this.scale="m",this.triggerDisabled=!1,this.effectiveLocale="",this.floatingLayout="vertical",this.effectiveReferenceElement=void 0,this.defaultMessages=void 0}handleFocusTrapDisabled(e){this.open&&(e?(0,Fe.d)(this):(0,Fe.a)(this))}flipPlacementsHandler(){this.setFilteredPlacements(),this.reposition(!0)}onMessagesChange(){}offsetDistanceOffsetHandler(){this.reposition(!0)}offsetSkiddingHandler(){this.reposition(!0)}openHandler(){(0,$e.o)(this),this.reposition(!0),this.setExpandedAttr()}overlayPositioningHandler(){this.reposition(!0)}placementHandler(){this.reposition(!0)}referenceElementHandler(){this.setUpReferenceElement(),this.reposition(!0)}effectiveLocaleChange(){(0,_e.u)(this,this.effectiveLocale)}connectedCallback(){this.setFilteredPlacements(),(0,je.c)(this),(0,_e.c)(this),this.setUpReferenceElement(this.hasLoaded),(0,Fe.c)(this),this.open&&(0,$e.o)(this),Be(this,this.effectiveReferenceElement,this.el)}async componentWillLoad(){await(0,_e.s)(this),(0,Ve.s)(this)}componentDidLoad(){(0,Ve.a)(this),this.referenceElement&&!this.effectiveReferenceElement&&this.setUpReferenceElement(),this.reposition(),this.hasLoaded=!0}disconnectedCallback(){this.removeReferences(),(0,je.d)(this),(0,_e.d)(this),Ie(this,this.effectiveReferenceElement,this.el),(0,Fe.d)(this)}async reposition(e=!1){const{el:t,effectiveReferenceElement:n,placement:i,overlayPositioning:o,flipDisabled:r,filteredFlipPlacements:s,offsetDistance:l,offsetSkidding:a,arrowEl:c}=this;return Me(this,{floatingEl:t,referenceEl:n,overlayPositioning:o,placement:i,flipDisabled:r,flipPlacements:s,offsetDistance:l,offsetSkidding:a,arrowEl:c,type:"popover"},e)}async setFocus(){await(0,Ve.c)(this),(0,i.xE)(this.el),(0,o.f)(this.el)}async updateFocusTrapElements(){(0,Fe.u)(this)}getReferenceElement(){const{referenceElement:e,el:t}=this;return("string"==typeof e?(0,o.q)(t,{id:e}):e)||null}onBeforeOpen(){this.calcitePopoverBeforeOpen.emit()}onOpen(){this.calcitePopoverOpen.emit(),(0,Fe.a)(this)}onBeforeClose(){this.calcitePopoverBeforeClose.emit()}onClose(){this.calcitePopoverClose.emit(),(0,Fe.d)(this)}renderCloseButton(){const{messages:e,closable:t}=this;return t?(0,i.h)("div",{class:tt,key:tt},(0,i.h)("calcite-action",{appearance:"transparent",class:nt,onClick:this.hide,scale:this.scale,text:e.close,ref:e=>this.closeButtonEl=e},(0,i.h)("calcite-icon",{icon:"x",scale:(0,Ze.g)(this.scale)}))):null}renderHeader(){const{heading:e,headingLevel:t}=this,n=e?(0,i.h)(We.H,{class:st,level:t},e):null;return n?(0,i.h)("div",{class:rt,key:rt},n,this.renderCloseButton()):null}render(){const{effectiveReferenceElement:e,heading:t,label:n,open:r,pointerDisabled:s,floatingLayout:l}=this,a=e&&r,c=!a,d=s?null:(0,i.h)(Xe,{floatingLayout:l,key:"floating-arrow",ref:this.storeArrowEl});return(0,i.h)(i.AA,{"aria-hidden":(0,o.t)(c),"aria-label":n,"aria-live":"polite","calcite-hydrated-hidden":c,id:this.getId(),role:"dialog"},(0,i.h)("div",{class:{[Le]:!0,[Oe]:a},ref:this.setTransitionEl},d,(0,i.h)("div",{class:{[ot]:!!t,[et]:!0}},this.renderHeader(),(0,i.h)("div",{class:it},(0,i.h)("slot",null)),t?null:this.renderCloseButton())))}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{focusTrapDisabled:["handleFocusTrapDisabled"],flipPlacements:["flipPlacementsHandler"],messageOverrides:["onMessagesChange"],offsetDistance:["offsetDistanceOffsetHandler"],offsetSkidding:["offsetSkiddingHandler"],open:["openHandler"],overlayPositioning:["overlayPositioningHandler"],placement:["placementHandler"],referenceElement:["referenceElementHandler"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host{--calcite-floating-ui-z-index:var(--calcite-popover-z-index, var(--calcite-z-index-popup));display:block;position:absolute;z-index:var(--calcite-floating-ui-z-index)}.calcite-floating-ui-anim{position:relative;transition:var(--calcite-floating-ui-transition);transition-property:transform, visibility, opacity;opacity:0;box-shadow:0 0 16px 0 rgba(0, 0, 0, 0.16);z-index:var(--calcite-z-index);border-radius:0.25rem}:host([data-placement^=bottom]) .calcite-floating-ui-anim{transform:translateY(-5px)}:host([data-placement^=top]) .calcite-floating-ui-anim{transform:translateY(5px)}:host([data-placement^=left]) .calcite-floating-ui-anim{transform:translateX(5px)}:host([data-placement^=right]) .calcite-floating-ui-anim{transform:translateX(-5px)}:host([data-placement]) .calcite-floating-ui-anim--active{opacity:1;transform:translate(0)}:host([calcite-hydrated-hidden]){visibility:hidden !important;pointer-events:none}.calcite-floating-ui-arrow{pointer-events:none;position:absolute;z-index:calc(var(--calcite-z-index) * -1);fill:var(--calcite-color-foreground-1)}.calcite-floating-ui-arrow__stroke{stroke:var(--calcite-color-border-3)}:host([scale=s]) .heading{padding-inline:0.75rem;padding-block:0.5rem;font-size:var(--calcite-font-size--1);line-height:1.375}:host([scale=m]) .heading{padding-inline:1rem;padding-block:0.75rem;font-size:var(--calcite-font-size-0);line-height:1.375}:host([scale=l]) .heading{padding-inline:1.25rem;padding-block:1rem;font-size:var(--calcite-font-size-1);line-height:1.375}:host{pointer-events:none}:host([open]){pointer-events:initial}.calcite-floating-ui-anim{border-radius:0.25rem;border-width:1px;border-style:solid;border-color:var(--calcite-color-border-3);background-color:var(--calcite-color-foreground-1)}.arrow::before{outline:1px solid var(--calcite-color-border-3)}.header{display:flex;flex:1 1 auto;align-items:stretch;justify-content:flex-start;border-width:0px;border-block-end-width:1px;border-style:solid;border-block-end-color:var(--calcite-color-border-3)}.heading{margin:0px;display:block;flex:1 1 auto;align-self:center;white-space:normal;font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-text-1);word-wrap:break-word;word-break:break-word}.container{position:relative;display:flex;block-size:100%;flex-direction:row;flex-wrap:nowrap;border-radius:0.25rem;color:var(--calcite-color-text-1)}.container.has-header{flex-direction:column}.content{display:flex;block-size:100%;inline-size:100%;flex-direction:column;flex-wrap:nowrap;align-self:center;word-wrap:break-word;word-break:break-word}.close-button-container{display:flex;overflow:hidden;flex:0 0 auto;border-start-end-radius:0.25rem;border-end-end-radius:0.25rem}::slotted(calcite-panel),::slotted(calcite-flow){block-size:100%}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-popover",{autoClose:[516,"auto-close"],closable:[516],flipDisabled:[516,"flip-disabled"],focusTrapDisabled:[516,"focus-trap-disabled"],pointerDisabled:[516,"pointer-disabled"],flipPlacements:[16],heading:[1],headingLevel:[514,"heading-level"],label:[1],messageOverrides:[1040],messages:[1040],offsetDistance:[514,"offset-distance"],offsetSkidding:[514,"offset-skidding"],open:[1540],overlayPositioning:[513,"overlay-positioning"],placement:[513],referenceElement:[1,"reference-element"],scale:[513],triggerDisabled:[516,"trigger-disabled"],effectiveLocale:[32],floatingLayout:[32],effectiveReferenceElement:[32],defaultMessages:[32],reposition:[64],setFocus:[64],updateFocusTrapElements:[64]},void 0,{focusTrapDisabled:["handleFocusTrapDisabled"],flipPlacements:["flipPlacementsHandler"],messageOverrides:["onMessagesChange"],offsetDistance:["offsetDistanceOffsetHandler"],offsetSkidding:["offsetSkiddingHandler"],open:["openHandler"],overlayPositioning:["overlayPositioningHandler"],placement:["placementHandler"],referenceElement:["referenceElementHandler"],effectiveLocale:["effectiveLocaleChange"]}]);function ft(){if("undefined"==typeof customElements)return;["calcite-popover","calcite-action","calcite-icon","calcite-loader"].forEach((e=>{switch(e){case"calcite-popover":customElements.get(e)||customElements.define(e,dt);break;case"calcite-action":customElements.get(e)||(0,Ge.d)();break;case"calcite-icon":customElements.get(e)||(0,Qe.d)();break;case"calcite-loader":customElements.get(e)||(0,Je.d)()}}))}ft()}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6663.d02c707c22906ce7560e.js.LICENSE.txt b/docs/sentinel1-explorer/6663.d02c707c22906ce7560e.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/6663.d02c707c22906ce7560e.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/6685.471f6754e2350a35ceab.js b/docs/sentinel1-explorer/6685.471f6754e2350a35ceab.js new file mode 100644 index 00000000..bf71132f --- /dev/null +++ b/docs/sentinel1-explorer/6685.471f6754e2350a35ceab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6685,5917],{6685:function(e,t,n){n.d(t,{Z:function(){return l}});var r=n(40581),a=n(62408),s=n(24270),i=n(77732),u=n(68673),o=n(15917);class l extends s.Z{constructor(e){super(e),this._relation="",this._relationGeom=null,this._relationString="",this.declaredClass="esri.arcade.featureset.actions.SpatialFilter",this._relationString=e.relationString,this._parent=e.parentfeatureset,this._maxProcessing=40,this._relation=e.relation,this._relationGeom=e.relationGeom}async _getSet(e){if(null===this._wset){await this._ensureLoaded();const t=await this._parent._getFilteredSet("esriSpatialRelRelation"!==this._relation?this._relation:this._relation+":"+this._relationString,this._relationGeom,null,null,e);return this._checkCancelled(e),this._wset=new i.Z(t._candidates.slice(0),t._known.slice(0),t._ordered,this._clonePageDefinition(t.pagesDefinition)),this._wset}return this._wset}_isInFeatureSet(e){let t=this._parent._isInFeatureSet(e);return t===u.dj.NotInFeatureSet?t:(t=this._idstates[e],void 0===t?u.dj.Unknown:t)}_getFeature(e,t,n){return this._parent._getFeature(e,t,n)}_getFeatures(e,t,n,r){return this._parent._getFeatures(e,t,n,r)}_featureFromCache(e){return this._parent._featureFromCache(e)}async executeSpatialRelationTest(e){if(null===e.geometry)return!1;switch(this._relation){case"esriSpatialRelEnvelopeIntersects":return(0,o.intersects)((0,u.SV)(this._relationGeom),(0,u.SV)(e.geometry));case"esriSpatialRelIntersects":return(0,o.intersects)(this._relationGeom,e.geometry);case"esriSpatialRelContains":return(0,o.contains)(this._relationGeom,e.geometry);case"esriSpatialRelOverlaps":return(0,o.overlaps)(this._relationGeom,e.geometry);case"esriSpatialRelWithin":return(0,o.within)(this._relationGeom,e.geometry);case"esriSpatialRelTouches":return(0,o.touches)(this._relationGeom,e.geometry);case"esriSpatialRelCrosses":return(0,o.crosses)(this._relationGeom,e.geometry);case"esriSpatialRelRelation":return(0,o.relate)(this._relationGeom,e.geometry,this._relationString??"")}}async _fetchAndRefineFeatures(e,t,n){const r=new i.Z([],e,!1,null),a=Math.min(t,e.length);await(this._parent?._getFeatures(r,-1,a,n)),this._checkCancelled(n);const s=[];for(let t=0;ts.Z.createFromGraphicLikeObject(e.geometry,e.attributes,this._parent,t)))}nextBatch(e){if(null!==this._parent._mainSetInUse)return this._parent._mainSetInUse.then((t=>this.nextBatch(e)),(t=>this.nextBatch(e)));const t={returnpromise:null,hasset:!1},n=[];return t.returnpromise=new Promise(((r,a)=>{this._parent._getSet(this._progress).then((s=>{const i=s._known;let u=i.length-1;if("GETPAGES"===i[i.length-1]&&(u-=1),this._lastId+e>u&&i.length>0&&"GETPAGES"===i[i.length-1])return void this._parent._expandPagedSet(s,this._parent._maxQueryRate(),0,0,this._progress).then((n=>{t.hasset=!0,this._parent._mainSetInUse=null,this.nextBatch(e).then(r,a)}),(e=>{t.hasset=!0,this._parent._mainSetInUse=null,a(e)}));const o=s._candidates;if(u>=this._lastId+e||0===o.length){for(let t=0;t=i.length)break;n[t]=i[e]}return this._lastId+=n.length,0===n.length&&(t.hasset=!0,this._parent._mainSetInUse=null,r([])),void this._parent._getFeatureBatch(n,this._progress).then((e=>{t.hasset=!0,this._parent._mainSetInUse=null,r(e)}),(e=>{t.hasset=!0,this._parent._mainSetInUse=null,a(e)}))}this._parent._refineSetBlock(s,this._parent._maxProcessingRate(),this._progress).then((()=>{t.hasset=!0,this._parent._mainSetInUse=null,this.nextBatch(e).then(r,a)}),(e=>{t.hasset=!0,this._parent._mainSetInUse=null,a(e)}))}),(e=>{t.hasset=!0,this._parent._mainSetInUse=null,a(e)}))})),!1===t.hasset&&(this._parent._mainSetInUse=t.returnpromise,t.hasset=!0),t.returnpromise}next(){if(null!==this._parent._mainSetInUse)return this._parent._mainSetInUse.then((e=>this.next()),(e=>this.next()));const e={returnpromise:null,hasset:!1};return e.returnpromise=new Promise(((t,n)=>{this._parent._getSet(this._progress).then((r=>{const a=r._known;this._lastId(e.hasset=!0,this._parent._mainSetInUse=null,this.next()))).then(t,n):(this._lastId+=1,this._parent._getFeature(r,a[this._lastId],this._progress).then((n=>{e.hasset=!0,this._parent._mainSetInUse=null,t(n)}),(t=>{e.hasset=!0,this._parent._mainSetInUse=null,n(t)}))):r._candidates.length>0?this._parent._refineSetBlock(r,this._parent._maxProcessingRate(),this._progress).then((()=>{e.hasset=!0,this._parent._mainSetInUse=null,this.next().then(t,n)}),(t=>{e.hasset=!0,this._parent._mainSetInUse=null,n(t)})):(e.hasset=!0,this._parent._mainSetInUse=null,t(null))}),(t=>{e.hasset=!0,this._parent._mainSetInUse=null,n(t)}))})),!1===e.hasset&&(this._parent._mainSetInUse=e.returnpromise,e.hasset=!0),e.returnpromise}async count(){if(-1!==this._parent._totalCount)return this._parent._totalCount;const e=await this._parent._getSet(this._progress),t=await this._refineAllSets(e);return this._parent._totalCount=t._known.length,this._parent._totalCount}async _refineAllSets(e){if(e._known.length>0&&"GETPAGES"===e._known[e._known.length-1])return await this._parent._expandPagedSet(e,this._parent._maxQueryRate(),0,1,this._progress),this._refineAllSets(e);if(e._candidates.length>0){if("GETPAGES"===e._known[e._candidates.length-1])return await this._parent._expandPagedSet(e,this._parent._maxQueryRate(),0,2,this._progress),this._refineAllSets(e);const t=await this._parent._refineSetBlock(e,this._parent._maxProcessingRate(),this._progress);return t._candidates.length>0?this._refineAllSets(t):t}return e}}var u=n(77732),o=n(68673),l=n(75718),c=n(78668),h=n(23709),d=n(15917),f=n(14685),p=n(28790);class _{constructor(e){this.recentlyUsedQueries=null,this.featureSetQueryInterceptor=null,this._idstates=[],this._parent=null,this._wset=null,this._mainSetInUse=null,this._maxProcessing=200,this._maxQuery=500,this._totalCount=-1,this._databaseType=o.Bj.NotEvaluated,this._databaseTypeProbed=null,this.declaredRootClass="esri.arcade.featureset.support.FeatureSet",this._featureCache=[],this.typeIdField=null,this.types=null,this.subtypeField=null,this.subtypes=null,this.fields=null,this.geometryType="",this.objectIdField="",this.globalIdField="",this.spatialReference=null,this.hasM=!1,this.hasZ=!1,this._transparent=!1,this.loaded=!1,this._loadPromise=null,this._fieldsIndex=null,this.fsetInfo=null,e?.lrucache&&(this.recentlyUsedQueries=e.lrucache),e?.interceptor&&(this.featureSetQueryInterceptor=e.interceptor)}optimisePagingFeatureQueries(e){this._parent&&this._parent.optimisePagingFeatureQueries(e)}_hasMemorySource(){return!0}prop(e,t){return void 0===t?this[e]:(void 0!==this[e]&&(this[e]=t),this)}end(){return null!==this._parent&&!0===this._parent._transparent?this._parent.end():this._parent}_ensureLoaded(){return this.load()}load(){return null===this._loadPromise&&(this._loadPromise=this.loadImpl()),this._loadPromise}async loadImpl(){return!0===this._parent?.loaded?(this._initialiseFeatureSet(),this):(await(this._parent?.load()),this._initialiseFeatureSet(),this)}_initialiseFeatureSet(){null!==this._parent?(this.fields=this._parent.fields.slice(0),this.geometryType=this._parent.geometryType,this.objectIdField=this._parent.objectIdField,this.globalIdField=this._parent.globalIdField,this.spatialReference=this._parent.spatialReference,this.hasM=this._parent.hasM,this.hasZ=this._parent.hasZ,this.typeIdField=this._parent.typeIdField,this.types=this._parent.types,this.subtypeField=this._parent.subtypeField,this.subtypes=this._parent.subtypes):(this.fields=[],this.typeIdField="",this.subtypeField="",this.objectIdField="",this.globalIdField="",this.spatialReference=new f.Z({wkid:4326}),this.geometryType=o.Qk.point)}getField(e,t){let n;return(t=t||this.fields)&&(e=e.toLowerCase(),t.some((t=>(t&&t.name.toLowerCase()===e&&(n=t),!!n)))),n}getFieldsIndex(){return null===this._fieldsIndex&&(this._fieldsIndex=p.Z.fromLayer({timeInfo:this.timeInfo,editFieldsInfo:this.editFieldsInfo,dateFieldsTimeZone:this.dateFieldsTimeZone,datesInUnknownTimezone:this.datesInUnknownTimezone,fields:this.fields})),this._fieldsIndex}_maxProcessingRate(){return null!==this._parent?Math.min(this._maxProcessing,this._parent._maxProcessingRate()):Math.min(this._maxProcessing,this._maxQueryRate())}_maxQueryRate(){return null!==this._parent?Math.max(this._maxQuery,this._parent._maxQueryRate()):this._maxQuery}_checkCancelled(e){if(null!=e&&e.aborted)throw new a.EN(a.H9.Cancelled)}nativeCapabilities(){return this._parent.nativeCapabilities()}async _canDoAggregates(e,t,n,r,a){return null!==this._parent&&this._parent._canDoAggregates(e,t,n,r,a)}async _getAggregatePagesDataSourceDefinition(e,t,n,r,s,i,u){if(null===this._parent)throw new a.EN(a.H9.NeverReach);return this._parent._getAggregatePagesDataSourceDefinition(e,t,n,r,s,i,u)}async _getAgregagtePhysicalPage(e,t,n){if(null===this._parent)throw new a.EN(a.H9.NeverReach);return this._parent._getAgregagtePhysicalPage(e,t,n)}async databaseType(){if(this._databaseType===o.Bj.NotEvaluated){if(null!==r.Z.applicationCache){const e=r.Z.applicationCache.getDatabaseType(this._cacheableFeatureSetSourceKey());if(null!==e)return e}if(null!==this._databaseTypeProbed)return this._databaseTypeProbed;try{this._databaseTypeProbed=this._getDatabaseTypeImpl(),null!==r.Z.applicationCache&&r.Z.applicationCache.setDatabaseType(this._cacheableFeatureSetSourceKey(),this._databaseTypeProbed)}catch(e){throw null!==r.Z.applicationCache&&r.Z.applicationCache.clearDatabaseType(this._cacheableFeatureSetSourceKey()),e}return this._databaseTypeProbed}return this._databaseType}async _getDatabaseTypeImpl(){const e=[{thetype:o.Bj.SqlServer,testwhere:"(CAST( '2015-01-01' as DATETIME) = CAST( '2015-01-01' as DATETIME)) AND OBJECTID<0"},{thetype:o.Bj.Oracle,testwhere:"(TO_DATE('2003-11-18','YYYY-MM-DD') = TO_DATE('2003-11-18','YYYY-MM-DD')) AND OBJECTID<0"},{thetype:o.Bj.StandardisedNoInterval,testwhere:"(date '2015-01-01 10:10:10' = date '2015-01-01 10:10:10') AND OBJECTID<0"}];for(const t of e)if(!0===await this._runDatabaseProbe(t.testwhere))return t.thetype;return o.Bj.StandardisedNoInterval}_cacheableFeatureSetSourceKey(){return"MUSTBESET"}async _runDatabaseProbe(e){if(null!==this._parent)return this._parent._runDatabaseProbe(e);throw new a.EN(a.H9.NotImplemented)}isTable(){return this._parent?.isTable()??!1}_featureFromCache(e){if(void 0!==this._featureCache[e])return this._featureCache[e]}_isInFeatureSet(e){return o.dj.Unknown}_getSet(e){throw new a.EN(a.H9.NotImplemented)}async _getFeature(e,t,n){if(this._checkCancelled(n),void 0!==this._featureFromCache(t))return this._featureFromCache(t);if(await this._getFeatures(e,t,this._maxProcessingRate(),n),this._checkCancelled(n),void 0!==this._featureFromCache(t))return this._featureFromCache(t);throw new a.EN(a.H9.MissingFeatures)}async _getFeatureBatch(e,t){this._checkCancelled(t);const n=new u.Z([],e,!1,null),r=[];await this._getFeatures(n,-1,e.length,t),this._checkCancelled(t);for(const t of e)void 0!==this._featureFromCache(t)&&r.push(this._featureFromCache(t));return r}async _getFeatures(e,t,n,r){return"success"}_getFilteredSet(e,t,n,r,s){throw new a.EN(a.H9.NotImplemented)}async _refineSetBlock(e,t,n){if(!0===this._checkIfNeedToExpandCandidatePage(e,this._maxQueryRate()))return await this._expandPagedSet(e,this._maxQueryRate(),0,0,n),this._refineSetBlock(e,t,n);this._checkCancelled(n);const r=e._candidates.length;this._refineKnowns(e,t);let a=r-e._candidates.length;if(0===e._candidates.length)return e;if(a>=t)return e;if(await this._refineIfParentKnown(e,t-a,n),this._checkCancelled(n),this._refineKnowns(e,t-a),a=r-e._candidates.length,a0){const r=t-a,s=this._prepareFetchAndRefineSet(e._candidates);return await this._fetchAndRefineFeatures(s,s.length>r?r:e._candidates.length,n),this._checkCancelled(n),this._refineKnowns(e,t-a),e}return e}_fetchAndRefineFeatures(e,t,n){return null}_prepareFetchAndRefineSet(e){const t=[];for(let n=0;n=t)break}null!==r&&a.push(r);for(let t=a.length-1;t>=0;t--)e._candidates.splice(a[t].start,a[t].end-a[t].start+1)}_refineIfParentKnown(e,t,n){const r=new u.Z([],[],e._ordered,null);return r._candidates=e._candidates.slice(0),this._parent._refineSetBlock(r,t,n)}_candidateIdTransform(e){return this._parent._candidateIdTransform(e)}_checkIfNeedToExpandKnownPage(e,t){if(null===e.pagesDefinition)return!1;let n=0;for(let r=e._lastFetchedIndex;r=t))break}return!1}_checkIfNeedToExpandCandidatePage(e,t){if(null===e.pagesDefinition)return!1;let n=0;for(let r=0;r=t)break}return!1}async _expandPagedSet(e,t,n,r,s){if(null===this._parent)throw new a.EN(a.H9.NotImplemented);return this._parent._expandPagedSet(e,t,n,r,s)}async _expandPagedSetFeatureSet(e,t,n,r,a){if(e._known.length>0&&"GETPAGES"===e._known[e._known.length-1]&&(r=1),0===r&&e._candidates.length>0&&"GETPAGES"===e._candidates[e._candidates.length-1]&&(r=2),0===r)return"finished";const s=await this._getPage(e,r,a);return n+se.pagesDefinition.resultOffset||!0===e.pagesDefinition.internal.fullyResolved){r.length=r.length-1;let t=0;for(let n=0;n=e.pagesDefinition.internal.set.length);n++)r[r.length]=e.pagesDefinition.internal.set[e.pagesDefinition.resultOffset+n],t++;e.pagesDefinition.resultOffset+=t;let n=!1;return!0===e.pagesDefinition.internal.fullyResolved&&e.pagesDefinition.internal.set.length<=e.pagesDefinition.resultOffset&&(n=!0),!1===n&&r.push("GETPAGES"),t}return await this._getPhysicalPage(e,t,n),this._getPage(e,t,n)}_getPhysicalPage(e,t,n){return null}_clonePageDefinition(e){return null===this._parent?null:this._parent._clonePageDefinition(e)}_first(e){return this.iterator(e).next()}first(e){return this._first(e)}async calculateStatistic(e,t,n,r){await this._ensureLoaded();let a=await this._stat(e,t,"",null,null,n,r);return!1===a.calculated&&(a=await this._manualStat(e,t,n,r)),a.result}async _manualStat(e,t,n,r){let a=null;switch(e.toLowerCase()){case"count":return a=await(0,l.QX)(this,r),{calculated:!0,result:a};case"distinct":return a=await(0,l.EB)(this,t,n,r),{calculated:!0,result:a};case"avg":case"mean":return a=await(0,l.J6)(this,t,r),{calculated:!0,result:a};case"stdev":return a=await(0,l.m)(this,t,r),{calculated:!0,result:a};case"variance":return a=await(0,l.CA)(this,t,r),{calculated:!0,result:a};case"sum":return a=await(0,l.Sm)(this,t,r),{calculated:!0,result:a};case"min":return a=await(0,l.VV)(this,t,r),{calculated:!0,result:a};case"max":return a=await(0,l.Fp)(this,t,r),{calculated:!0,result:a};default:return{calculated:!0,result:0}}}async _stat(e,t,n,r,a,s,i){const u=await this._parent._stat(e,t,n,r,a,s,i);return!1===u.calculated?null===a&&""===n&&null===r?this._manualStat(e,t,s,i):{calculated:!1}:u}_unionAllGeomSelf(e){const t=this.iterator(this._defaultTracker(e)),n=[];return new Promise(((e,r)=>{this._unionShapeInBatches(n,t,e,r)}))}_unionAllGeom(e){return new Promise(((t,n)=>{const r=this.iterator(this._defaultTracker(e));this._unionShapeInBatches([],r,t,n)}))}_unionShapeInBatches(e,t,n,r){t.next().then((a=>{try{null!==a&&null!==a.geometry&&e.push(a.geometry),e.length>30||null===a&&e.length>1?(0,d.union)(e).then((s=>{try{null===a?n(s):(e=[s],this._unionShapeInBatches(e,t,n,r))}catch(e){r(e)}}),r):null===a?1===e.length?n(e[0]):n(null):this._unionShapeInBatches(e,t,n,r)}catch(e){r(e)}}),r)}iterator(e){return new i(this,e)}intersection(e,t=!1){return _._featuresetFunctions.intersection.bind(this)(e,t)}difference(e,t=!1,n=!0){return _._featuresetFunctions.difference.bind(this)(e,t,n)}symmetricDifference(e,t=!1,n=!0){return _._featuresetFunctions.symmetricDifference.bind(this)(e,t,n)}morphShape(e,t,n="unknown",r=null){return _._featuresetFunctions.morphShape.bind(this)(e,t,n,r)}morphShapeAndAttributes(e,t,n="unknown"){return _._featuresetFunctions.morphShapeAndAttributes.bind(this)(e,t,n)}union(e,t=!1){return _._featuresetFunctions.union.bind(this)(e,t)}intersects(e){return _._featuresetFunctions.intersects.bind(this)(e)}envelopeIntersects(e){return _._featuresetFunctions.envelopeIntersects.bind(this)(e)}contains(e){return _._featuresetFunctions.contains.bind(this)(e)}overlaps(e){return _._featuresetFunctions.overlaps.bind(this)(e)}relate(e,t){return _._featuresetFunctions.relate.bind(this)(e,t)}within(e){return _._featuresetFunctions.within.bind(this)(e)}touches(e){return _._featuresetFunctions.touches.bind(this)(e)}top(e){return _._featuresetFunctions.top.bind(this)(e)}crosses(e){return _._featuresetFunctions.crosses.bind(this)(e)}buffer(e,t,n,r=!0){return _._featuresetFunctions.buffer.bind(this)(e,t,n,r)}filter(e,t=null){return _._featuresetFunctions.filter.bind(this)(e,t)}orderBy(e){return _._featuresetFunctions.orderBy.bind(this)(e)}dissolve(e,t){return _._featuresetFunctions.dissolve.bind(this)(e,t)}groupby(e,t){return _._featuresetFunctions.groupby.bind(this)(e,t)}reduce(e,t=null,n){return new Promise(((r,a)=>{this._reduceImpl(this.iterator(this._defaultTracker(n)),e,t,0,r,a,0)}))}_reduceImpl(e,t,n,r,a,s,i){try{if(++i>1e3)return void setTimeout((()=>{i=0,this._reduceImpl(e,t,n,r,a,s,i)}));e.next().then((u=>{try{if(null===u)a(n);else{const o=t(n,u,r,this);(0,c.y8)(o)?o.then((n=>{this._reduceImpl(e,t,n,r+1,a,s,i)}),s):this._reduceImpl(e,t,o,r+1,a,s,i)}}catch(e){s(e)}}),s)}catch(e){s(e)}}removeField(e){return _._featuresetFunctions.removeField.bind(this)(e)}addField(e,t,n=null){return _._featuresetFunctions.addField.bind(this)(e,t,n)}sumArea(e,t=!1,n){const r=(0,o.EI)(e);return this.reduce(((e,n)=>null===n.geometry?0:t?(0,d.geodesicArea)(n.geometry,r).then((t=>e+t)):(0,d.planarArea)(n.geometry,r).then((t=>e+t))),0,n)}sumLength(e,t=!1,n){const r=(0,o.Lz)(e);return this.reduce(((e,n)=>null===n.geometry?0:t?(0,d.geodesicLength)(n.geometry,r).then((t=>e+t)):(0,d.planarLength)(n.geometry,r).then((t=>e+t))),0,n)}_substituteVars(e,t){if(null!==t){const n={};for(const e in t)n[e.toLowerCase()]=t[e];e.parameters=n}}async distinct(e,t=1e3,n=null,r){await this.load();const a=h.WhereClause.create(e,this.getFieldsIndex(),this.dateFieldsTimeZoneDefaultUTC);return this._substituteVars(a,n),this.calculateStatistic("distinct",a,t,this._defaultTracker(r))}async min(e,t=null,n){await this.load();const r=h.WhereClause.create(e,this.getFieldsIndex(),this.dateFieldsTimeZoneDefaultUTC);return this._substituteVars(r,t),this.calculateStatistic("min",r,-1,this._defaultTracker(n))}async max(e,t=null,n){await this.load();const r=h.WhereClause.create(e,this.getFieldsIndex(),this.dateFieldsTimeZoneDefaultUTC);return this._substituteVars(r,t),this.calculateStatistic("max",r,-1,this._defaultTracker(n))}async avg(e,t=null,n){await this.load();const r=h.WhereClause.create(e,this.getFieldsIndex(),this.dateFieldsTimeZoneDefaultUTC);return this._substituteVars(r,t),this.calculateStatistic("avg",r,-1,this._defaultTracker(n))}async sum(e,t=null,n){await this.load();const r=h.WhereClause.create(e,this.getFieldsIndex(),this.dateFieldsTimeZoneDefaultUTC);return this._substituteVars(r,t),this.calculateStatistic("sum",r,-1,this._defaultTracker(n))}async stdev(e,t=null,n){await this.load();const r=h.WhereClause.create(e,this.getFieldsIndex(),this.dateFieldsTimeZoneDefaultUTC);return this._substituteVars(r,t),this.calculateStatistic("stdev",r,-1,this._defaultTracker(n))}async variance(e,t=null,n){await this.load();const r=h.WhereClause.create(e,this.getFieldsIndex(),this.dateFieldsTimeZoneDefaultUTC);return this._substituteVars(r,t),this.calculateStatistic("variance",r,-1,this._defaultTracker(n))}async count(e){return await this.load(),this.calculateStatistic("count",h.WhereClause.create("1",this.getFieldsIndex(),this.dateFieldsTimeZoneDefaultUTC),-1,this._defaultTracker(e))}_defaultTracker(e){return e??{aborted:!1}}forEach(e,t){return new Promise(((n,r)=>{this._forEachImpl(this.iterator(this._defaultTracker(t)),e,this,n,r,0)}))}_forEachImpl(e,t,n,r,a,s){try{if(++s>1e3)return void setTimeout((()=>{s=0,this._forEachImpl(e,t,n,r,a,s)}),0);e.next().then((i=>{try{if(null===i)r(n);else{const u=t(i);null==u?this._forEachImpl(e,t,n,r,a,s):(0,c.y8)(u)?u.then((()=>{try{this._forEachImpl(e,t,n,r,a,s)}catch(e){a(e)}}),a):this._forEachImpl(e,t,n,r,a,s)}}catch(e){a(e)}}),a)}catch(e){a(e)}}convertToJSON(e){const t={layerDefinition:{geometryType:this.geometryType,fields:[]},featureSet:{features:[],geometryType:this.geometryType}};for(let e=0;e{const r={geometry:n.geometry?.toJSON(),attributes:{}};for(const e in n.attributes)r.attributes[e]=n.attributes[e];return t.featureSet.features.push(r),1}),0,e).then((()=>t))}castToText(e=!1){return"object, FeatureSet"}queryAttachments(e,t,n,r,a){return this._parent.queryAttachments(e,t,n,r,a)}serviceUrl(){return this._parent.serviceUrl()}subtypeMetaData(){return this.subtypeField&&this.subtypes?{subtypeField:this.subtypeField,subtypes:this.subtypes?this.subtypes.map((e=>({name:e.name,code:e.code}))):[]}:this.typeIdField?{subtypeField:this.typeIdField,subtypes:this.types?this.types.map((e=>({name:e.name,code:e.id}))):[]}:null}relationshipMetaData(){return this._parent.relationshipMetaData()}get gdbVersion(){return this._parent?this._parent.gdbVersion:""}schema(){const e=[];for(const t of this.fields)e.push((0,o.Sh)(t));return{objectIdField:this.objectIdField,globalIdField:this.globalIdField,geometryType:void 0===o.q2[this.geometryType]?"esriGeometryNull":o.q2[this.geometryType],fields:e}}async convertToText(e,t){if("schema"===e)return await this._ensureLoaded(),JSON.stringify(this.schema());if("featureset"===e){await this._ensureLoaded();const e=[];await this.reduce(((t,n)=>{const r={geometry:n.geometry?n.geometry.toJSON():null,attributes:n.attributes};return null!==r.geometry&&r.geometry.spatialReference&&delete r.geometry.spatialReference,e.push(r),1}),0,t);const n=this.schema();return n.features=e,n.spatialReference=this.spatialReference.toJSON(),JSON.stringify(n)}return this.castToText()}getFeatureByObjectId(e,t){return this._parent.getFeatureByObjectId(e,t)}getOwningSystemUrl(){return this._parent.getOwningSystemUrl()}getIdentityUser(){return this._parent.getIdentityUser()}getRootFeatureSet(){return null!==this._parent?this._parent.getRootFeatureSet():this}getDataSourceFeatureSet(){return null!==this._parent?this._parent.getDataSourceFeatureSet():this}castAsJson(e=null){return"keeptype"===e?.featureset?this:"none"===e?.featureset?null:{type:"FeatureSet"}}async castAsJsonAsync(e=null,t=null){if("keeptype"===t?.featureset)return this;if("schema"===t?.featureset)return await this._ensureLoaded(),JSON.parse(JSON.stringify(this.schema()));if("none"===t?.featureset)return null;await this._ensureLoaded();const n=[];await this.reduce(((e,r)=>{const a={geometry:r.geometry?!0===t?.keepGeometryType?r.geometry:r.geometry.toJSON():null,attributes:r.attributes};return null!==a.geometry&&a.geometry.spatialReference&&!0!==t?.keepGeometryType&&delete a.geometry.spatialReference,n.push(a),1}),0,e);const r=this.schema();return r.features=n,r.spatialReference=!0===t?.keepGeometryType?this.spatialReference:this.spatialReference?.toJSON(),r}fieldTimeZone(e){return this.getFieldsIndex().getTimeZone(e)}get preferredTimeZone(){return this._parent?.preferredTimeZone??null}get dateFieldsTimeZone(){return this._parent?.dateFieldsTimeZone??null}get dateFieldsTimeZoneDefaultUTC(){if(this.datesInUnknownTimezone)return"unknown";const e=this.dateFieldsTimeZone??"UTC";return""===e?"UTC":e}get datesInUnknownTimezone(){return this._parent.datesInUnknownTimezone}get editFieldsInfo(){return this._parent?.editFieldsInfo??null}get timeInfo(){return this._parent?.timeInfo??null}set featureSetInfo(e){this.fsetInfo=e}async getFeatureSetInfo(){return this.fsetInfo??await(this._parent?.getFeatureSetInfo())??null}}_._featuresetFunctions={}},77732:function(e,t,n){n.d(t,{Z:function(){return r}});class r{constructor(e,t,n,r){this._lastFetchedIndex=0,this._ordered=!1,this.pagesDefinition=null,this._candidates=e,this._known=t,this._ordered=n,this.pagesDefinition=r}}},73566:function(e,t,n){n.d(t,{Z:function(){return r}});class r{constructor(){this._databaseTypeMetaData={},this._layerInfo={}}clearDatabaseType(e){void 0===this._databaseTypeMetaData[e]&&delete this._databaseTypeMetaData[e]}getDatabaseType(e){return"MUSTBESET"===e||void 0===this._databaseTypeMetaData[e]?null:this._databaseTypeMetaData[e]}setDatabaseType(e,t){this._databaseTypeMetaData[e]=t}getLayerInfo(e){return void 0===this._layerInfo[e]?null:this._layerInfo[e]}setLayerInfo(e,t){this._layerInfo[e]=t}clearLayerInfo(e){void 0!==this._layerInfo[e]&&delete this._layerInfo[e]}}r.applicationCache=null},62294:function(e,t,n){n.d(t,{$e:function(){return d},DT:function(){return w},TE:function(){return v},XF:function(){return c},av:function(){return g},bB:function(){return h},fz:function(){return p},hq:function(){return b},mA:function(){return _},vR:function(){return S},vn:function(){return y},wF:function(){return m},y5:function(){return E},zR:function(){return l}});var r=n(78053),a=n(62408),s=n(68673),i=n(62717),u=n(23709),o=n(17126);function l(e,t){return f(e?.parseTree,t,e?.parameters)}function c(e,t,n){return f(e,t,n)}function h(e,t,n,r){return u.WhereClause.create(f(e.parseTree,s.Bj.Standardised,e.parameters,t,n),r,e.timeZone)}function d(e,t,n="AND"){return u.WhereClause.create("(("+l(e,s.Bj.Standardised)+")"+n+"("+l(t,s.Bj.Standardised)+"))",e.fieldsIndex,e.timeZone)}function f(e,t,n,r=null,i=null){let u,o,l,c;switch(e.type){case"interval":return v(f(e.value,t,n,r,i),e.qualifier,e.op);case"case-expression":{let a=" CASE ";"simple"===e.format&&(a+=f(e.operand,t,n,r,i));for(let s=0;s":case"<":case">":case">=":case"<=":case"=":case"*":case"-":case"+":case"/":return" ("+f(e.left,t,n,r,i)+" "+e.operator+" "+f(e.right,t,n,r,i)+") ";case"||":return" ("+f(e.left,t,n,r,i)+" "+(t===s.Bj.SqlServer?"+":e.operator)+" "+f(e.right,t,n,r,i)+") "}throw new a.eS(a.f.UnsupportedOperator,{operator:e.operator});case"null":return"null";case"boolean":return!0===e.value?"1":"0";case"string":return"'"+e.value.toString().replaceAll("'","''")+"'";case"timestamp":return`timestamp '${e.value}'`;case"date":return`date '${e.value}'`;case"time":return`time '${e.value}'`;case"number":return e.value.toString();case"current-time":return S("date"===e.mode,t);case"column-reference":return r?r.toLowerCase()===e.column.toLowerCase()?"("+i+")":!0===e.delimited?`"${e.column.split('"').join('""')}"`:e.column:e.column;case"data-type":return e.value;case"function":{const a=f(e.args,t,n,r,i);return p(e.name,a,t)}}throw new a.eS(a.f.UnsupportedSyntax,{node:e.type})}function p(e,t,n){switch(e.toLowerCase().trim()){case"cos":case"sin":case"tan":case"cosh":case"tanh":case"sinh":case"acos":case"asin":case"atan":case"floor":case"log10":case"log":case"abs":if(1!==t.length)throw new a.eS(a.f.InvalidFunctionParameters,{function:e.toLowerCase().trim()});return`${e.toUpperCase().trim()}(${t[0]})`;case"ceiling":case"ceil":if(1!==t.length)throw new a.eS(a.f.InvalidFunctionParameters,{function:"ceiling"});switch(n){case s.Bj.Standardised:case s.Bj.StandardisedNoInterval:}return"CEILING("+t[0]+")";case"mod":case"power":case"nullif":if(2!==t.length)throw new a.eS(a.f.InvalidFunctionParameters,{function:e.toLowerCase().trim()});return`${e.toUpperCase().trim()}(${t[0]},${t[1]})`;case"round":if(2===t.length)return"ROUND("+t[0]+","+t[1]+")";if(1===t.length)return"ROUND("+t[0]+")";throw new a.eS(a.f.InvalidFunctionParameters,{function:"round"});case"truncate":if(t.length<1||t.length>2)throw new a.eS(a.f.InvalidFunctionParameters,{function:"truncate"});return n===s.Bj.SqlServer?"ROUND("+t[0]+(1===t.length?"0":","+t[1])+",1)":"TRUNCATE("+t[0]+(1===t.length?")":","+t[1]+")");case"char_length":case"len":if(1!==t.length)throw new a.eS(a.f.InvalidFunctionParameters,{function:"char_length"});switch(n){case s.Bj.SqlServer:return"LEN("+t[0]+")";case s.Bj.Oracle:return"LENGTH("+t[0]+")";default:return"CHAR_LENGTH("+t[0]+")"}case"coalesce":case"concat":{if(t.length<1)throw new a.eS(a.f.InvalidFunctionParameters,{function:e.toLowerCase()});let n=e.toUpperCase().trim()+"(";for(let e=0;e":case"<":case">":case">=":case"<=":case"=":return"boolean";case"IS":case"ISNOT":if("null"!==t.right.type)throw new a.eS(a.f.UnsupportedIsRhs);return"boolean";case"*":case"-":case"+":case"/":return F([T(e,t.left,n,r),T(e,t.right,n,r)]);case"||":return"string";default:throw new a.eS(a.f.UnsupportedOperator,{operator:t.operator})}case"null":return"";case"boolean":return"boolean";case"string":return"string";case"number":return null===t.value?"":t.value%1==0?"integer":"double";case"date":return"date";case"timestamp":return t.withtimezone?"timestamp-offset":"date";case"time":return"time-only";case"current-time":return"date";case"column-reference":{const n=e[t.column.toLowerCase()];return void 0===n?"":n}case"function":switch(t.name.toLowerCase()){case"cast":switch(t.args?.value[1]?.value.type??""){case"integer":case"smallint":return"integer";case"real":case"float":return"double";case"date":case"timestamp":return!0===t.args?.value[1]?.value?.withtimezone?"timestamp-offset":"date";case"time":return"time-only";case"varchar":return"string";default:return""}case"position":case"extract":case"char_length":case"mod":return"integer";case"round":if(i=T(e,t.args,n,r),i instanceof Array){if(i.length<=0)return"double";i=i[0]}return i;case"sign":return"integer";case"ceiling":case"floor":case"abs":return i=T(e,t.args,n,r),i instanceof Array&&(i=F(i)),"integer"===i||"double"===i?i:"double";case"area":case"length":case"log":case"log10":case"sin":case"cos":case"tan":case"asin":case"acos":case"atan":case"cosh":case"sinh":case"tanh":case"power":return"double";case"substring":case"trim":case"concat":case"lower":case"upper":return"string";case"truncate":return"double";case"nullif":case"coalesce":return i=T(e,t.args,n,r),i instanceof Array?i.length>0?i[0]:"":i}return""}throw new a.eS(a.f.UnsupportedSyntax,{node:t.type})}const I={boolean:1,string:2,integer:3,double:4,date:5};function F(e){if(e){let t="";for(const n of e)""!==n&&(t=""===t||I[t]=t&&-1!==t)return n}return n}(t,n);case"avg":case"mean":return l(t);case"min":return Math.min.apply(Math,t);case"sum":return d(t);case"max":return Math.max.apply(Math,t);case"stdev":case"stddev":return Math.sqrt(c(t));case"var":case"variance":return c(t);case"count":return t.length}return 0}async function _(e,t,n){const r=await I(e,t,n,!0);return 0===r.length?null:Math.min.apply(Math,r)}async function g(e,t,n){const r=await I(e,t,n,!0);return 0===r.length?null:Math.max.apply(Math,r)}async function m(e,t,n){let r="";t&&!(0,s.y5)(t)&&(r=(0,s.DT)(t,e.fields));const a=await I(e,t,n,!0);if(0===a.length)return null;const i=l(a);return null===i?i:"integer"===r?function(e){return e=+e,isFinite(e)?e-e%1||(e<0?-0:0===e?e:0):e}(i):i}async function y(e,t,n){const r=await I(e,t,n,!0);return 0===r.length?null:h(r)}async function S(e,t,n){const r=await I(e,t,n,!0);return 0===r.length?null:Math.sqrt(h(r))}async function w(e,t,n){const r=await I(e,t,n,!0);return 0===r.length?null:d(r)}async function T(e,t){return e.iterator(t).count()}async function I(e,t,n,a=!1){const s=e.iterator(n),l=[],c={ticker:0};let h=await s.next();for(;null!==h;){if(c.ticker++,n.aborted)throw new r.EN(r.H9.Cancelled);c.ticker%100==0&&(c.ticker=0,await new Promise((e=>{setTimeout(e,0)})));const e=t?.calculateValue(h);null===e?!1===a&&(l[l.length]=e):l[l.length]=e instanceof i.u||e instanceof o.n?e.toNumber():e instanceof u.H?e.toMilliseconds():e,h=await s.next()}return l}async function F(e,t,n=1e3,a=null){const s=e.iterator(a),l=[],c={},h={ticker:0};let d=await s.next();for(;null!==d;){if(h.ticker++,a&&a.aborted)throw new r.EN(r.H9.Cancelled);h.ticker%100==0&&(h.ticker=0,await new Promise((e=>{setTimeout(e,0)})));const e=t?.calculateValue(d);let f=e;if(e instanceof i.u?f="!!DATEONLY!!-"+e.toString():e instanceof u.H?f="!!TSOFFSETONLY!!-"+e.toString():e instanceof o.n?f="!!TIMEONLY!!-"+e.toString():e instanceof Date&&(f="!!DATE!!-"+e.toString()),null!=e&&void 0===c[f]&&(l.push(e),c[f]=1),l.length>=n&&-1!==n)return l;d=await s.next()}return l}},15917:function(e,t,n){n.r(t),n.d(t,{buffer:function(){return k},changeDefaultSpatialReferenceTolerance:function(){return K},clearDefaultSpatialReferenceTolerance:function(){return z},clip:function(){return p},contains:function(){return g},convexHull:function(){return v},crosses:function(){return m},cut:function(){return _},densify:function(){return $},difference:function(){return R},disjoint:function(){return F},distance:function(){return y},equals:function(){return S},extendedSpatialReferenceInfo:function(){return f},flipHorizontal:function(){return M},flipVertical:function(){return Z},generalize:function(){return H},geodesicArea:function(){return W},geodesicBuffer:function(){return L},geodesicDensify:function(){return J},geodesicLength:function(){return Y},intersect:function(){return C},intersectLinesToPoints:function(){return q},intersects:function(){return w},isSimple:function(){return A},nearestCoordinate:function(){return B},nearestVertex:function(){return O},nearestVertices:function(){return U},offset:function(){return P},overlaps:function(){return b},planarArea:function(){return V},planarLength:function(){return Q},relate:function(){return E},rotate:function(){return G},simplify:function(){return D},symmetricDifference:function(){return N},touches:function(){return T},union:function(){return x},within:function(){return I}});n(91957);var r=n(62517),a=n(67666),s=n(53736);function i(e){return Array.isArray(e)?e[0]?.spatialReference:e?.spatialReference}function u(e){return e?Array.isArray(e)?e.map(u):e.toJSON?e.toJSON():e:e}function o(e){return Array.isArray(e)?e.map((e=>(0,s.im)(e))):(0,s.im)(e)}let l;async function c(){return l||(l=(0,r.bA)("geometryEngineWorker",{strategy:"distributed"})),l}async function h(e,t){return(await c()).invoke("executeGEOperation",{operation:e,parameters:u(t)})}async function d(e,t){const n=await c();return Promise.all(n.broadcast("executeGEOperation",{operation:e,parameters:u(t)}))}function f(e){return h("extendedSpatialReferenceInfo",[e])}async function p(e,t){return o(await h("clip",[i(e),e,t]))}async function _(e,t){return o(await h("cut",[i(e),e,t]))}function g(e,t){return h("contains",[i(e),e,t])}function m(e,t){return h("crosses",[i(e),e,t])}function y(e,t,n){return h("distance",[i(e),e,t,n])}function S(e,t){return h("equals",[i(e),e,t])}function w(e,t){return h("intersects",[i(e),e,t])}function T(e,t){return h("touches",[i(e),e,t])}function I(e,t){return h("within",[i(e),e,t])}function F(e,t){return h("disjoint",[i(e),e,t])}function b(e,t){return h("overlaps",[i(e),e,t])}function E(e,t,n){return h("relate",[i(e),e,t,n])}function A(e){return h("isSimple",[i(e),e])}async function D(e){return o(await h("simplify",[i(e),e]))}async function v(e,t=!1){return o(await h("convexHull",[i(e),e,t]))}async function R(e,t){return o(await h("difference",[i(e),e,t]))}async function N(e,t){return o(await h("symmetricDifference",[i(e),e,t]))}async function C(e,t){return o(await h("intersect",[i(e),e,t]))}async function x(e,t=null){const n=function(e,t){let n;return Array.isArray(e)?n=e:(n=[],n.push(e),null!=t&&n.push(t)),n}(e,t);return o(await h("union",[i(n),n]))}async function P(e,t,n,r,a,s){return o(await h("offset",[i(e),e,t,n,r,a,s]))}async function k(e,t,n,r=!1){const a=[i(e),e,t,n,r];return o(await h("buffer",a))}async function L(e,t,n,r,a,s){const u=[i(e),e,t,n,r,a,s];return o(await h("geodesicBuffer",u))}async function B(e,t,n=!0){const r=await h("nearestCoordinate",[i(e),e,t,n]);return{...r,coordinate:a.Z.fromJSON(r.coordinate)}}async function O(e,t){const n=await h("nearestVertex",[i(e),e,t]);return{...n,coordinate:a.Z.fromJSON(n.coordinate)}}async function U(e,t,n,r){return(await h("nearestVertices",[i(e),e,t,n,r])).map((e=>({...e,coordinate:a.Z.fromJSON(e.coordinate)})))}function j(e){return"xmin"in e?e.center:"x"in e?e:e.extent?.center}async function G(e,t,n){if(null==e)throw new X;const r=e.spatialReference;if(null==(n=n??j(e)))throw new X;const a=e.constructor.fromJSON(await h("rotate",[r,e,t,n]));return a.spatialReference=r,a}async function M(e,t){if(null==e)throw new X;const n=e.spatialReference;if(null==(t=t??j(e)))throw new X;const r=e.constructor.fromJSON(await h("flipHorizontal",[n,e,t]));return r.spatialReference=n,r}async function Z(e,t){if(null==e)throw new X;const n=e.spatialReference;if(null==(t=t??j(e)))throw new X;const r=e.constructor.fromJSON(await h("flipVertical",[n,e,t]));return r.spatialReference=n,r}async function H(e,t,n,r){return o(await h("generalize",[i(e),e,t,n,r]))}async function $(e,t,n){return o(await h("densify",[i(e),e,t,n]))}async function J(e,t,n,r=0){return o(await h("geodesicDensify",[i(e),e,t,n,r]))}function V(e,t){return h("planarArea",[i(e),e,t])}function Q(e,t){return h("planarLength",[i(e),e,t])}function W(e,t,n){return h("geodesicArea",[i(e),e,t,n])}function Y(e,t,n){return h("geodesicLength",[i(e),e,t,n])}async function q(e,t){return o(await h("intersectLinesToPoints",[i(e),e,t]))}async function K(e,t){await d("changeDefaultSpatialReferenceTolerance",[e,t])}async function z(e){await d("clearDefaultSpatialReferenceTolerance",[e])}class X extends Error{constructor(){super("Illegal Argument Exception")}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6782.19dd3acda276dab89862.js b/docs/sentinel1-explorer/6782.19dd3acda276dab89862.js new file mode 100644 index 00000000..c1c23900 --- /dev/null +++ b/docs/sentinel1-explorer/6782.19dd3acda276dab89862.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6782],{6782:function(t,e,a){a.r(e),a.d(e,{default:function(){return g}});var i=a(36663),s=a(13802),r=a(78668),n=a(81977),h=(a(39994),a(4157),a(40266)),p=a(12688),d=a(66878),o=a(23134),u=a(26216),c=a(55068);let _=class extends((0,c.Z)((0,d.y)(u.Z))){update(t){this._strategy.update(t).catch((t=>{(0,r.D_)(t)||s.Z.getLogger(this).error(t)})),this.notifyChange("updating")}attach(){this._bitmapContainer=new p.c,this.container.addChild(this._bitmapContainer),this._strategy=new o.Z({container:this._bitmapContainer,fetchSource:this.fetchBitmapData.bind(this),requestUpdate:this.requestUpdate.bind(this)})}detach(){this._strategy.destroy(),this._strategy=null,this.container.removeChild(this._bitmapContainer),this._bitmapContainer.removeAllChildren()}moveStart(){}viewChange(){}moveEnd(){this.requestUpdate()}fetchBitmapData(t,e,a){return this.layer.fetchImageBitmap(t,e,a)}async doRefresh(){this.requestUpdate()}isUpdating(){return this._strategy.updating||this.updateRequested}};(0,i._)([(0,n.Cb)()],_.prototype,"_strategy",void 0),(0,i._)([(0,n.Cb)()],_.prototype,"updating",void 0),_=(0,i._)([(0,h.j)("esri.views.2d.layers.BaseDynamicLayerView2D")],_);const g=_}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6802.667b91d186b8cb149e21.js b/docs/sentinel1-explorer/6802.667b91d186b8cb149e21.js new file mode 100644 index 00000000..99c7c93e --- /dev/null +++ b/docs/sentinel1-explorer/6802.667b91d186b8cb149e21.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6802],{86802:function(e,_,a){a.r(_),a.d(_,{default:function(){return r}});const r={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"н. е.",_era_bc:"п. н. е.",A:"a",P:"p",AM:"пре подне",PM:"по подне","A.M.":"пре подне","P.M.":"по подне",January:"јануар",February:"фебруар",March:"март",April:"април",May:"мај",June:"јун",July:"јул",August:"август",September:"септембар",October:"октобар",November:"новембар",December:"децембар",Jan:"јан",Feb:"феб",Mar:"мар",Apr:"апр","May(short)":"мај",Jun:"јун",Jul:"јул",Aug:"авг",Sep:"сеп",Oct:"окт",Nov:"нов",Dec:"дец",Sunday:"недеља",Monday:"понедељак",Tuesday:"уторак",Wednesday:"среда",Thursday:"четвртак",Friday:"петак",Saturday:"субота",Sun:"нед",Mon:"пон",Tue:"уто",Wed:"сре",Thu:"чет",Fri:"пет",Sat:"суб",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Zumiranje",Play:"Reprodukuj",Stop:"Zaustavi",Legend:"Legenda","Press ENTER to toggle":"",Loading:"Učitavanje",Home:"Matična stranica",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Štampaj",Image:"Snimak",Data:"Podaci",Print:"Štampaj","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Iz %1 u %2","From %1":"Iz %1","To %1":"U %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6829.81fd856d3b22b92d29a4.js b/docs/sentinel1-explorer/6829.81fd856d3b22b92d29a4.js new file mode 100644 index 00000000..1db69dc9 --- /dev/null +++ b/docs/sentinel1-explorer/6829.81fd856d3b22b92d29a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6829],{56829:function(a,e,i){i.r(e),i.d(e,{default:function(){return t}});const t={_decimalSeparator:",",_thousandSeparator:" ",_percentPrefix:null,_percentSuffix:"%",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - yyyy-MM-dd",_date_hour:"HH:mm",_date_hour_full:"HH:mm - yyyy-MM-dd",_date_day:"MMM dd",_date_day_full:"yyyy-MM-dd",_date_week:"ww",_date_week_full:"yyyy-MM-dd",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_second:"ss",_duration_minute:"mm",_duration_hour:"hh",_duration_day:"dd",_duration_week:"ww",_duration_month:"MM",_duration_year:"yyyy",_era_ad:"m.e.",_era_bc:"p.m.e.",A:"R",P:"V",AM:"ryto",PM:"vakaro","A.M.":"ryto","P.M.":"vakaro",January:"Sausio",February:"Vasario",March:"Kovo",April:"Balandžio",May:"Gegužės",June:"Birželio",July:"Liepos",August:"Rugpjūčio",September:"Rugsėjo",October:"Spalio",November:"Lapkričio",December:"Gruodžio",Jan:"Sau",Feb:"Vas",Mar:"Kov",Apr:"Bal","May(short)":"Geg",Jun:"Bir",Jul:"Lie",Aug:"Rgp",Sep:"Rgs",Oct:"Spa",Nov:"Lap",Dec:"Gru",Sunday:"sekmadienis",Monday:"pirmadienis",Tuesday:"antradienis",Wednesday:"trečiadienis",Thursday:"ketvirtadienis",Friday:"penktadienis",Saturday:"šeštadienis",Sun:"sekm.",Mon:"pirm.",Tue:"antr.",Wed:"treč.",Thu:"ketv.",Fri:"penk.",Sat:"šešt.",_dateOrd:function(a){return"-a"},"Zoom Out":"Rodyti viską",Play:"Paleisti",Stop:"Sustabdyti",Legend:"Legenda","Press ENTER to toggle":"Spragtelkite, palieskite arba spauskite ENTER, kad perjungtumėte",Loading:"Kraunama",Home:"Pradžia",Chart:"Grafikas","Serial chart":"Serijinis grafikas","X/Y chart":"X/Y grafikas","Pie chart":"Pyrago tipo grafikas","Gauge chart":"Daviklio tipo grafikas","Radar chart":"Radaro tipo grafikas","Sankey diagram":"Sankey diagrama","Chord diagram":"Chord diagrama","Flow diagram":"Flow diagrama","TreeMap chart":"TreeMap grafikas",Series:"Serija","Candlestick Series":'"Candlestick" tipo grafiko serija',"Column Series":"Stulpelinio grafiko serija","Line Series":"Linijinio grafiko serija","Pie Slice Series":"Pyrago tipo serija","X/Y Series":"X/Y serija",Map:"Žemėlapis","Press ENTER to zoom in":"Spauskite ENTER, kad pritrauktumėte vaizdą","Press ENTER to zoom out":"Spauskite ENTER, kad atitolintumėte vaizdą","Use arrow keys to zoom in and out":"Naudokitės royklėmis vaizdo pritraukimui ar atitolinimui","Use plus and minus keys on your keyboard to zoom in and out":"Spauskite pliuso arba minuso klavišus ant klaviatūros, kad pritrautumėte arba atitolintumėte vaizdą",Export:"Eksportuoti",Image:"Vaizdas",Data:"Duomenys",Print:"Spausdinti","Press ENTER to open":"Spragtelkite arba spauskite ENTER, kad atidarytumėte","Press ENTER to print.":"Spragtelkite arba spauskite ENTER, kad spausdintumėte.","Press ENTER to export as %1.":"Spragtelkite arba spauskite ENTER, kad eksportuotumėte kaip %1.","Image Export Complete":"Paveiksliuko eksportas baigtas","Export operation took longer than expected. Something might have gone wrong.":"Eksportas užtruko ilgiau negu turėtų. Greičiausiai įvyko klaida.","Saved from":"Išsaugota iš",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"Spauskite TAB klavišą, kad pasirinktumėte žymeklius, arba kairė/dešinė klavišus, kad pakeistumėte pasirinkimą","Use left and right arrows to move selection":"Naudokitės klavišais kairė/dešinė, kad pajudintumėte pasirinkimą","Use left and right arrows to move left selection":"Naudokitės klavišais kairė/dešinė, kad pajudintumėte kairį žymeklį","Use left and right arrows to move right selection":"Naudokitės klavišais kairė/dešinė, kad pajudintumėte dešinį žymeklį","Use TAB select grip buttons or up and down arrows to change selection":"Spauskite TAB klavišą, kad pasirinktumėte žymeklius, arba aukštyn/žemyn klavišus, kad pakeistumėte pasirinkimą","Use up and down arrows to move selection":"Naudokitės klavišais aukštyn/žemyn, kad pajudintumėte pasirinkimą","Use up and down arrows to move lower selection":"Naudokitės klavišais aukštyn/žemyn, kad pajudintumėte apatinį žymeklį","Use up and down arrows to move upper selection":"Naudokitės klavišais aukštyn/žemyn, kad pajudintumėte viršutinį žymeklį","From %1 to %2":"Nuo %1 iki %2","From %1":"Nuo %1","To %1":"Iki %1","No parser available for file: %1":"Failui %1 neturime tinkamo dešifruotojo","Error parsing file: %1":"Skaitant failą %1 įvyko klaida","Unable to load file: %1":"Nepavyko užkrauti failo %1","Invalid date":"Klaidinga data"}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6857.c69b2cad6fc44ac3b9f0.js b/docs/sentinel1-explorer/6857.c69b2cad6fc44ac3b9f0.js new file mode 100644 index 00000000..0c201ef6 --- /dev/null +++ b/docs/sentinel1-explorer/6857.c69b2cad6fc44ac3b9f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6857],{24778:function(e,t,i){i.d(t,{b:function(){return f}});var s=i(70375),r=i(39994),n=i(13802),a=i(78668),h=i(14266),o=i(88013),l=i(64429),d=i(91907),u=i(18567),c=i(71449),p=i(80479);class g{constructor(e,t,i){this._texture=null,this._lastTexture=null,this._fbos={},this.texelSize=4;const{buffer:s,pixelType:r,textureOnly:n}=e,a=(0,l.UK)(r);this.blockIndex=i,this.pixelType=r,this.size=t,this.textureOnly=n,n||(this.data=new a(s)),this._resetRange()}destroy(){this._texture?.dispose();for(const e in this._fbos){const t=this._fbos[e];t&&("0"===e&&t.detachColorTexture(),t.dispose()),this._fbos[e]=null}this._texture=null}get _textureDesc(){const e=new p.X;return e.wrapMode=d.e8.CLAMP_TO_EDGE,e.samplingMode=d.cw.NEAREST,e.dataType=this.pixelType,e.width=this.size,e.height=this.size,e}setData(e,t,i){const s=(0,o.jL)(e),r=this.data,n=s*this.texelSize+t;!r||n>=r.length||(r[n]=i,this.dirtyStart=Math.min(this.dirtyStart,s),this.dirtyEnd=Math.max(this.dirtyEnd,s))}getData(e,t){if(null==this.data)return null;const i=(0,o.jL)(e)*this.texelSize+t;return!this.data||i>=this.data.length?null:this.data[i]}getTexture(e){return this._texture??this._initTexture(e)}getFBO(e,t=0){if(!this._fbos[t]){const i=0===t?this.getTexture(e):this._textureDesc;this._fbos[t]=new u.X(e,i)}return this._fbos[t]}get hasDirty(){const e=this.dirtyStart;return this.dirtyEnd>=e}updateTexture(e,t){try{const t=this.dirtyStart,i=this.dirtyEnd;if(!this.hasDirty)return;(0,r.Z)("esri-2d-update-debug"),this._resetRange();const a=this.data.buffer,h=this.getTexture(e),o=4,d=(t-t%this.size)/this.size,u=(i-i%this.size)/this.size,c=d,p=this.size,g=u,_=d*this.size*o,y=(p+g*this.size)*o-_,f=(0,l.UK)(this.pixelType),v=new f(a,_*f.BYTES_PER_ELEMENT,y),b=this.size,w=g-c+1;if(w>this.size)return void n.Z.getLogger("esri.views.2d.engine.webgl.AttributeStoreView").error(new s.Z("mapview-webgl","Out-of-bounds index when updating AttributeData"));h.updateData(0,0,c,b,w,v)}catch(e){}}update(e){const{data:t,start:i,end:s}=e;if(null!=t&&null!=this.data){const s=this.data,r=i*this.texelSize;for(let i=0;inull!=e?new g(e,this.size,t):null));else for(let e=0;e{(0,r.Z)("esri-2d-update-debug")})),this._version=e.version,this._pendingAttributeUpdates.push({inner:e,resolver:t}),(0,r.Z)("esri-2d-update-debug")}get currentEpoch(){return this._epoch}update(){if(this._locked)return;const e=this._pendingAttributeUpdates;this._pendingAttributeUpdates=[];for(const{inner:t,resolver:i}of e){const{blockData:e,initArgs:s,sendUpdateEpoch:n,version:a}=t;(0,r.Z)("esri-2d-update-debug"),this._version=a,this._epoch=n,null!=s&&this._initialize(s);const h=this._data;for(let t=0;te.destroy())),this.removeAllChildren(),this.attributeView.destroy()}doRender(e){e.context.capabilities.enable("textureFloat"),super.doRender(e)}createRenderParams(e){const t=super.createRenderParams(e);return t.attributeView=this.attributeView,t.instanceStore=this._instanceStore,t.statisticsByLevel=this._statisticsByLevel,t}}},70179:function(e,t,i){i.d(t,{Z:function(){return l}});var s=i(39994),r=i(38716),n=i(10994),a=i(22598),h=i(27946);const o=(e,t)=>e.key.level-t.key.level!=0?e.key.level-t.key.level:e.key.row-t.key.row!=0?e.key.row-t.key.row:e.key.col-t.key.col;class l extends n.Z{constructor(e){super(),this._tileInfoView=e}renderChildren(e){this.sortChildren(o),this.setStencilReference(e),super.renderChildren(e)}createRenderParams(e){const{state:t}=e,i=super.createRenderParams(e);return i.requiredLevel=this._tileInfoView.getClosestInfoForScale(t.scale).level,i.displayLevel=this._tileInfoView.tileInfo.scaleToZoom(t.scale),i}prepareRenderPasses(e){const t=super.prepareRenderPasses(e);return t.push(e.registerRenderPass({name:"stencil",brushes:[a.Z],drawPhase:r.jx.DEBUG|r.jx.MAP|r.jx.HIGHLIGHT|r.jx.LABEL,target:()=>this.getStencilTarget()})),(0,s.Z)("esri-tiles-debug")&&t.push(e.registerRenderPass({name:"tileInfo",brushes:[h.Z],drawPhase:r.jx.DEBUG,target:()=>this.children})),t}getStencilTarget(){return this.children}setStencilReference(e){let t=1;for(const e of this.children)e.stencilRef=t++}}},16699:function(e,t,i){i.d(t,{o:function(){return r}});var s=i(77206);class r{constructor(e,t,i,s,r){this._instanceId=e,this.techniqueRef=t,this._meshWriterName=i,this._input=s,this.optionalAttributes=r}get instanceId(){return(0,s.G)(this._instanceId)}createMeshInfo(e){return{id:this._instanceId,meshWriterName:this._meshWriterName,options:e,optionalAttributes:this.optionalAttributes}}getInput(){return this._input}setInput(e){this._input=e}}},66878:function(e,t,i){i.d(t,{y:function(){return b}});var s=i(36663),r=i(6865),n=i(58811),a=i(70375),h=i(76868),o=i(81977),l=(i(39994),i(13802),i(4157),i(40266)),d=i(68577),u=i(10530),c=i(98114),p=i(55755),g=i(88723),_=i(96294);let y=class extends _.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,s._)([(0,o.Cb)({type:[[[Number]]],json:{write:!0}})],y.prototype,"path",void 0),y=(0,s._)([(0,l.j)("esri.views.layers.support.Path")],y);const f=y,v=r.Z.ofType({key:"type",base:null,typeMap:{rect:p.Z,path:f,geometry:g.Z}}),b=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new v,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new a.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new u.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,h.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),h.tX),(0,h.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),h.tX),(0,h.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),h.tX),(0,h.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),h.tX),(0,h.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),h.tX),(0,h.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),h.tX),(0,h.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),h.tX),(0,h.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),h.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:i,maxScale:s}=t;return(0,d.o2)(e,i,s)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,i=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),i&&(e.outsideScaleRange=i),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,s._)([(0,o.Cb)()],t.prototype,"attached",void 0),(0,s._)([(0,o.Cb)({type:v,set(e){const t=(0,n.Z)(e,this._get("clips"),v);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,s._)([(0,o.Cb)()],t.prototype,"container",void 0),(0,s._)([(0,o.Cb)()],t.prototype,"moving",void 0),(0,s._)([(0,o.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,s._)([(0,o.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,s._)([(0,o.Cb)()],t.prototype,"updateRequested",void 0),(0,s._)([(0,o.Cb)()],t.prototype,"updateSuspended",null),(0,s._)([(0,o.Cb)()],t.prototype,"updating",null),(0,s._)([(0,o.Cb)()],t.prototype,"view",void 0),(0,s._)([(0,o.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,s._)([(0,o.Cb)({type:c.Z})],t.prototype,"highlightOptions",void 0),t=(0,s._)([(0,l.j)("esri.views.2d.layers.LayerView2D")],t),t}},96857:function(e,t,i){i.r(t),i.d(t,{default:function(){return v}});var s=i(36663),r=i(80085),n=i(7753),a=i(6865),h=i(23148),o=i(76868),l=(i(13802),i(39994),i(70375),i(40266)),d=i(26991),u=i(66878),c=i(68114),p=i(18133),g=i(26216);const _="sublayers",y="layerView";let f=class extends((0,u.y)(g.Z)){constructor(){super(...arguments),this._highlightIds=new Map}*graphicsViews(){null==this._graphicsViewsFeatureCollectionMap?null==this._graphicsViews?yield*[]:yield*this._graphicsViews:yield*this._graphicsViewsFeatureCollectionMap.keys()}async hitTest(e,t){return Array.from(this.graphicsViews(),(t=>{const i=t.hitTest(e);if(null!=this._graphicsViewsFeatureCollectionMap){const e=this._graphicsViewsFeatureCollectionMap.get(t);for(const t of i)!t.popupTemplate&&e.popupTemplate&&(t.popupTemplate=e.popupTemplate),t.sourceLayer=t.layer=this.layer}return i})).flat().map((t=>({type:"graphic",graphic:t,layer:this.layer,mapPoint:e})))}highlight(e){let t;"number"==typeof e?t=[e]:e instanceof r.Z?t=[e.uid]:Array.isArray(e)&&e.length>0?t="number"==typeof e[0]?e:e.map((e=>e&&e.uid)):a.Z.isCollection(e)&&(t=e.map((e=>e&&e.uid)).toArray());const i=t?.filter(n.pC);return i?.length?(this._addHighlight(i),(0,h.kB)((()=>this._removeHighlight(i)))):(0,h.kB)()}update(e){for(const t of this.graphicsViews())t.processUpdate(e)}attach(){const e=this.view,t=()=>this.requestUpdate(),i=this.layer.featureCollections;if(null!=i&&i.length){this._graphicsViewsFeatureCollectionMap=new Map;for(const s of i){const i=new c.Z(this.view.featuresTilingScheme),r=new p.Z({view:e,graphics:s.source,renderer:s.renderer,requestUpdateCallback:t,container:i});this._graphicsViewsFeatureCollectionMap.set(r,s),this.container.addChild(r.container),this.addHandles([(0,o.YP)((()=>s.visible),(e=>r.container.visible=e),o.nn),(0,o.YP)((()=>r.updating),(()=>this.notifyChange("updating")),o.nn)],y)}this._updateHighlight()}else null!=this.layer.sublayers&&this.addHandles((0,o.on)((()=>this.layer.sublayers),"change",(()=>this._createGraphicsViews()),{onListenerAdd:()=>this._createGraphicsViews(),onListenerRemove:()=>this._destroyGraphicsViews()}),_)}detach(){this._destroyGraphicsViews(),this.removeHandles(_)}moveStart(){}moveEnd(){}viewChange(){for(const e of this.graphicsViews())e.viewChange()}isUpdating(){for(const e of this.graphicsViews())if(e.updating)return!0;return!1}_destroyGraphicsViews(){this.container.removeAllChildren(),this.removeHandles(y);for(const e of this.graphicsViews())e.destroy();this._graphicsViews=null,this._graphicsViewsFeatureCollectionMap=null}_createGraphicsViews(){if(this._destroyGraphicsViews(),null==this.layer.sublayers)return;const e=[],t=this.view,i=()=>this.requestUpdate();for(const s of this.layer.sublayers){const r=new c.Z(this.view.featuresTilingScheme);r.fadeTransitionEnabled=!0;const n=new p.Z({view:t,graphics:s.graphics,requestUpdateCallback:i,container:r});this.addHandles([s.on("graphic-update",n.graphicUpdateHandler),(0,o.YP)((()=>s.visible),(e=>n.container.visible=e),o.nn),(0,o.YP)((()=>n.updating),(()=>this.notifyChange("updating")),o.nn)],y),this.container.addChild(n.container),e.push(n)}this._graphicsViews=e,this._updateHighlight()}_addHighlight(e){for(const t of e)if(this._highlightIds.has(t)){const e=this._highlightIds.get(t);this._highlightIds.set(t,e+1)}else this._highlightIds.set(t,1);this._updateHighlight()}_removeHighlight(e){for(const t of e)if(this._highlightIds.has(t)){const e=this._highlightIds.get(t)-1;0===e?this._highlightIds.delete(t):this._highlightIds.set(t,e)}this._updateHighlight()}_updateHighlight(){const e=Array.from(this._highlightIds.keys()),t=(0,d.ck)("highlight");for(const i of this.graphicsViews())i.setHighlight(e.map((e=>({objectId:e,highlightFlags:t}))))}};f=(0,s._)([(0,l.j)("esri.views.2d.layers.MapNotesLayerView2D")],f);const v=f},81110:function(e,t,i){i.d(t,{K:function(){return T}});var s=i(61681),r=i(24778),n=i(38716),a=i(16699),h=i(56144),o=i(77206);let l=0;function d(e,t,i){return new a.o((0,o.W)(l++),e,e.meshWriter.name,t,i)}const u={geometry:{visualVariableColor:null,visualVariableOpacity:null,visualVariableSizeMinMaxValue:null,visualVariableSizeScaleStops:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null,visualVariableRotation:null}};class c{constructor(){this.instances={fill:d(h.k2.fill,u,{zoomRange:!0}),marker:d(h.k2.marker,u,{zoomRange:!0}),line:d(h.k2.line,u,{zoomRange:!0}),text:d(h.k2.text,u,{zoomRange:!0,referenceSymbol:!1,clipAngle:!1}),complexFill:d(h.k2.complexFill,u,{zoomRange:!0}),texturedLine:d(h.k2.texturedLine,u,{zoomRange:!0})},this._instancesById=Object.values(this.instances).reduce(((e,t)=>(e.set(t.instanceId,t),e)),new Map)}getInstance(e){return this._instancesById.get(e)}}var p=i(46332),g=i(38642),_=i(45867),y=i(17703),f=i(29927),v=i(51118),b=i(64429),w=i(78951),m=i(91907),x=i(29620);const S=Math.PI/180;class R extends v.s{constructor(e){super(),this._program=null,this._vao=null,this._vertexBuffer=null,this._indexBuffer=null,this._dvsMat3=(0,g.Ue)(),this._localOrigin={x:0,y:0},this._getBounds=e}destroy(){this._vao&&(this._vao.dispose(),this._vao=null,this._vertexBuffer=null,this._indexBuffer=null),this._program=(0,s.M2)(this._program)}doRender(e){const{context:t}=e,i=this._getBounds();if(i.length<1)return;this._createShaderProgram(t),this._updateMatricesAndLocalOrigin(e),this._updateBufferData(t,i),t.setBlendingEnabled(!0),t.setDepthTestEnabled(!1),t.setStencilWriteMask(0),t.setStencilTestEnabled(!1),t.setBlendFunction(m.zi.ONE,m.zi.ONE_MINUS_SRC_ALPHA),t.setColorMask(!0,!0,!0,!0);const s=this._program;t.bindVAO(this._vao),t.useProgram(s),s.setUniformMatrix3fv("u_dvsMat3",this._dvsMat3),t.gl.lineWidth(1),t.drawElements(m.MX.LINES,8*i.length,m.g.UNSIGNED_INT,0),t.bindVAO()}_createTransforms(){return{displayViewScreenMat3:(0,g.Ue)()}}_createShaderProgram(e){if(this._program)return;this._program=e.programCache.acquire("precision highp float;\n uniform mat3 u_dvsMat3;\n\n attribute vec2 a_position;\n\n void main() {\n mediump vec3 pos = u_dvsMat3 * vec3(a_position, 1.0);\n gl_Position = vec4(pos.xy, 0.0, 1.0);\n }","precision mediump float;\n void main() {\n gl_FragColor = vec4(0.75, 0.0, 0.0, 0.75);\n }",C().attributes)}_updateMatricesAndLocalOrigin(e){const{state:t}=e,{displayMat3:i,size:s,resolution:r,pixelRatio:n,rotation:a,viewpoint:h}=t,o=S*a,{x:l,y:d}=h.targetGeometry,u=(0,f.or)(l,t.spatialReference);this._localOrigin.x=u,this._localOrigin.y=d;const c=n*s[0],g=n*s[1],v=r*c,b=r*g,w=(0,p.yR)(this._dvsMat3);(0,p.Jp)(w,w,i),(0,p.Iu)(w,w,(0,_.al)(c/2,g/2)),(0,p.bA)(w,w,(0,y.al)(s[0]/v,-g/b,1)),(0,p.U1)(w,w,-o)}_updateBufferData(e,t){const{x:i,y:s}=this._localOrigin,r=8*t.length,n=new Float32Array(r),a=new Uint32Array(8*t.length);let h=0,o=0;for(const e of t)e&&(n[2*h]=e[0]-i,n[2*h+1]=e[1]-s,n[2*h+2]=e[0]-i,n[2*h+3]=e[3]-s,n[2*h+4]=e[2]-i,n[2*h+5]=e[3]-s,n[2*h+6]=e[2]-i,n[2*h+7]=e[1]-s,a[o]=h+0,a[o+1]=h+3,a[o+2]=h+3,a[o+3]=h+2,a[o+4]=h+2,a[o+5]=h+1,a[o+6]=h+1,a[o+7]=h+0,h+=4,o+=8);if(this._vertexBuffer?this._vertexBuffer.setData(n.buffer):this._vertexBuffer=w.f.createVertex(e,m.l1.DYNAMIC_DRAW,n.buffer),this._indexBuffer?this._indexBuffer.setData(a):this._indexBuffer=w.f.createIndex(e,m.l1.DYNAMIC_DRAW,a),!this._vao){const t=C();this._vao=new x.U(e,t.attributes,t.bufferLayouts,{geometry:this._vertexBuffer},this._indexBuffer)}}}const C=()=>(0,b.cM)("bounds",{geometry:[{location:0,name:"a_position",count:2,type:m.g.FLOAT}]});class T extends r.b{constructor(e){super(e),this._instanceStore=new c,this.checkHighlight=()=>!0}destroy(){super.destroy(),this._boundsRenderer=(0,s.SC)(this._boundsRenderer)}get instanceStore(){return this._instanceStore}enableRenderingBounds(e){this._boundsRenderer=new R(e),this.requestRender()}get hasHighlight(){return this.checkHighlight()}onTileData(e,t){e.onMessage(t),this.contains(e)||this.addChild(e),this.requestRender()}_renderChildren(e,t){e.selection=t;for(const t of this.children){if(!t.visible)continue;const i=t.getDisplayList(e.drawPhase,this._instanceStore,n.gl.STRICT_ORDER);i?.render(e)}}}},68114:function(e,t,i){i.d(t,{Z:function(){return a}});var s=i(38716),r=i(81110),n=i(41214);class a extends r.K{renderChildren(e){for(const t of this.children)t.setTransform(e.state);if(super.renderChildren(e),this.attributeView.update(),this.children.some((e=>e.hasData))){switch(e.drawPhase){case s.jx.MAP:this._renderChildren(e,s.Xq.All);break;case s.jx.HIGHLIGHT:this.hasHighlight&&this._renderHighlight(e)}this._boundsRenderer&&this._boundsRenderer.doRender(e)}}_renderHighlight(e){(0,n.P9)(e,!1,(e=>{this._renderChildren(e,s.Xq.Highlight)}))}}},26216:function(e,t,i){i.d(t,{Z:function(){return g}});var s=i(36663),r=i(74396),n=i(31355),a=i(86618),h=i(13802),o=i(61681),l=i(64189),d=i(81977),u=(i(39994),i(4157),i(40266)),c=i(98940);let p=class extends((0,a.IG)((0,l.v)(n.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new c.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";h.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,o.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,s._)([(0,d.Cb)()],p.prototype,"fullOpacity",null),(0,s._)([(0,d.Cb)()],p.prototype,"layer",void 0),(0,s._)([(0,d.Cb)()],p.prototype,"parent",void 0),(0,s._)([(0,d.Cb)({readOnly:!0})],p.prototype,"suspended",null),(0,s._)([(0,d.Cb)({readOnly:!0})],p.prototype,"suspendInfo",null),(0,s._)([(0,d.Cb)({readOnly:!0})],p.prototype,"legendEnabled",null),(0,s._)([(0,d.Cb)({type:Boolean,readOnly:!0})],p.prototype,"updating",null),(0,s._)([(0,d.Cb)({readOnly:!0})],p.prototype,"updatingProgress",null),(0,s._)([(0,d.Cb)()],p.prototype,"visible",null),(0,s._)([(0,d.Cb)()],p.prototype,"view",void 0),p=(0,s._)([(0,u.j)("esri.views.layers.LayerView")],p);const g=p},88723:function(e,t,i){i.d(t,{Z:function(){return g}});var s,r=i(36663),n=(i(91957),i(81977)),a=(i(39994),i(13802),i(4157),i(40266)),h=i(20031),o=i(53736),l=i(96294),d=i(91772),u=i(89542);const c={base:h.Z,key:"type",typeMap:{extent:d.Z,polygon:u.Z}};let p=s=class extends l.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new s({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,n.Cb)({types:c,json:{read:o.im,write:!0}})],p.prototype,"geometry",void 0),p=s=(0,r._)([(0,a.j)("esri.views.layers.support.Geometry")],p);const g=p}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6867.df688ff51b1588d27cd2.js b/docs/sentinel1-explorer/6867.df688ff51b1588d27cd2.js new file mode 100644 index 00000000..9fe3e569 --- /dev/null +++ b/docs/sentinel1-explorer/6867.df688ff51b1588d27cd2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6867],{16867:function(t,e,o){o.r(e),o.d(e,{submitValidateNetworkTopologyJob:function(){return d},validateNetworkTopology:function(){return s}});var i=o(66341),a=o(70375),n=o(84238),r=o(55420);async function s(t,e,o){const a=(0,n.en)(t),s=e.toJSON();e.validationSet&&(s.validationSet=JSON.stringify(e.validationSet));const d={...s,returnEdits:!0,f:"json"},l=(0,n.cv)({...a.query,...d}),u=(0,n.lA)(l,{...o,method:"post"}),c=`${a.path}/validateNetworkTopology`,{data:p}=await(0,i.Z)(c,u),v=r.Z.fromJSON(p);return v.serviceEdits=v.serviceEdits?.map((t=>({layerId:t.id,editedFeatures:t.editedFeatures})))??[],v}async function d(t,e,o){if(!e.gdbVersion)throw new a.Z("submit-validate-network-topology-job:missing-gdb-version","version is missing");const r=(0,n.en)(t),s=e.toJSON();e.validationSet&&(s.validationSet=JSON.stringify(e.validationSet));const d=(0,n.lA)(r.query,{query:(0,n.cv)({...s,returnEdits:!0,async:!0,f:"json"}),...o,method:"post"}),l=`${r.path}/validateNetworkTopology`,{data:u}=await(0,i.Z)(l,d);return u?u.statusUrl:null}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/6883.5a6892f01140e41675ea.js b/docs/sentinel1-explorer/6883.5a6892f01140e41675ea.js new file mode 100644 index 00000000..b67f8b77 --- /dev/null +++ b/docs/sentinel1-explorer/6883.5a6892f01140e41675ea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[6883],{36883:function(e,t,s){s.r(t),s.d(t,{default:function(){return d}});var i=s(36663),r=s(6865),a=s(58811),n=s(81977),l=(s(39994),s(13802),s(4157),s(40266)),o=s(66878),p=s(26216);let h=class extends((0,o.y)(p.Z)){constructor(e){super(e),this.layerViews=new r.Z}set layerViews(e){this._set("layerViews",(0,a.Z)(e,this._get("layerViews")))}get updatingProgress(){return 0===this.layerViews.length?1:this.layerViews.reduce(((e,t)=>e+t.updatingProgress),0)/this.layerViews.length}attach(){this._updateStageChildren(),this.addAttachHandles(this.layerViews.on("after-changes",(()=>this._updateStageChildren())))}detach(){this.container.removeAllChildren()}update(e){}moveStart(){}viewChange(){}moveEnd(){}_updateStageChildren(){this.container.removeAllChildren(),this.layerViews.forEach(((e,t)=>this.container.addChildAt(e.container,t)))}};(0,i._)([(0,n.Cb)({cast:a.R})],h.prototype,"layerViews",null),(0,i._)([(0,n.Cb)({readOnly:!0})],h.prototype,"updatingProgress",null),h=(0,i._)([(0,l.j)("esri.views.2d.layers.KnowledgeGraphLayerView2D")],h);const d=h},66878:function(e,t,s){s.d(t,{y:function(){return w}});var i=s(36663),r=s(6865),a=s(58811),n=s(70375),l=s(76868),o=s(81977),p=(s(39994),s(13802),s(4157),s(40266)),h=s(68577),d=s(10530),u=s(98114),c=s(55755),y=s(88723),g=s(96294);let v=class extends g.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,i._)([(0,o.Cb)({type:[[[Number]]],json:{write:!0}})],v.prototype,"path",void 0),v=(0,i._)([(0,p.j)("esri.views.layers.support.Path")],v);const f=v,b=r.Z.ofType({key:"type",base:null,typeMap:{rect:c.Z,path:f,geometry:y.Z}}),w=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new b,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new n.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new d.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,l.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),l.tX),(0,l.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),l.tX),(0,l.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),l.tX),(0,l.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),l.tX),(0,l.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),l.tX),(0,l.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),l.tX),(0,l.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),l.tX),(0,l.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),l.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:s,maxScale:i}=t;return(0,h.o2)(e,s,i)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,s=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),s&&(e.outsideScaleRange=s),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,i._)([(0,o.Cb)()],t.prototype,"attached",void 0),(0,i._)([(0,o.Cb)({type:b,set(e){const t=(0,a.Z)(e,this._get("clips"),b);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,i._)([(0,o.Cb)()],t.prototype,"container",void 0),(0,i._)([(0,o.Cb)()],t.prototype,"moving",void 0),(0,i._)([(0,o.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,i._)([(0,o.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,i._)([(0,o.Cb)()],t.prototype,"updateRequested",void 0),(0,i._)([(0,o.Cb)()],t.prototype,"updateSuspended",null),(0,i._)([(0,o.Cb)()],t.prototype,"updating",null),(0,i._)([(0,o.Cb)()],t.prototype,"view",void 0),(0,i._)([(0,o.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,i._)([(0,o.Cb)({type:u.Z})],t.prototype,"highlightOptions",void 0),t=(0,i._)([(0,p.j)("esri.views.2d.layers.LayerView2D")],t),t}},26216:function(e,t,s){s.d(t,{Z:function(){return y}});var i=s(36663),r=s(74396),a=s(31355),n=s(86618),l=s(13802),o=s(61681),p=s(64189),h=s(81977),d=(s(39994),s(4157),s(40266)),u=s(98940);let c=class extends((0,n.IG)((0,p.v)(a.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new u.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",s=this.layer?.title||"no title";l.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${s}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,o.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,i._)([(0,h.Cb)()],c.prototype,"fullOpacity",null),(0,i._)([(0,h.Cb)()],c.prototype,"layer",void 0),(0,i._)([(0,h.Cb)()],c.prototype,"parent",void 0),(0,i._)([(0,h.Cb)({readOnly:!0})],c.prototype,"suspended",null),(0,i._)([(0,h.Cb)({readOnly:!0})],c.prototype,"suspendInfo",null),(0,i._)([(0,h.Cb)({readOnly:!0})],c.prototype,"legendEnabled",null),(0,i._)([(0,h.Cb)({type:Boolean,readOnly:!0})],c.prototype,"updating",null),(0,i._)([(0,h.Cb)({readOnly:!0})],c.prototype,"updatingProgress",null),(0,i._)([(0,h.Cb)()],c.prototype,"visible",null),(0,i._)([(0,h.Cb)()],c.prototype,"view",void 0),c=(0,i._)([(0,d.j)("esri.views.layers.LayerView")],c);const y=c},88723:function(e,t,s){s.d(t,{Z:function(){return y}});var i,r=s(36663),a=(s(91957),s(81977)),n=(s(39994),s(13802),s(4157),s(40266)),l=s(20031),o=s(53736),p=s(96294),h=s(91772),d=s(89542);const u={base:l.Z,key:"type",typeMap:{extent:h.Z,polygon:d.Z}};let c=i=class extends p.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new i({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,a.Cb)({types:u,json:{read:o.im,write:!0}})],c.prototype,"geometry",void 0),c=i=(0,r._)([(0,n.j)("esri.views.layers.support.Geometry")],c);const y=c}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/69.9fffed5792113a8444a9.js b/docs/sentinel1-explorer/69.9fffed5792113a8444a9.js new file mode 100644 index 00000000..4800d485 --- /dev/null +++ b/docs/sentinel1-explorer/69.9fffed5792113a8444a9.js @@ -0,0 +1,2 @@ +/*! For license information please see 69.9fffed5792113a8444a9.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[69],{81838:function(e,t,i){i.d(t,{d:function(){return o}});var n,a=i(77210),s=i(79145),r=i(44586);!function(e){e.valid="check-circle",e.invalid="exclamation-mark-triangle",e.idle="information"}(n||(n={}));const l=(0,a.GH)(class extends a.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.icon=void 0,this.iconFlipRtl=!1,this.scale="m",this.status="idle"}handleIconEl(){this.requestedIcon=(0,s.o)(n,this.icon,this.status)}connectedCallback(){this.requestedIcon=(0,s.o)(n,this.icon,this.status)}render(){const e=this.el.hidden;return(0,a.h)(a.AA,{"calcite-hydrated-hidden":e},this.renderIcon(this.requestedIcon),(0,a.h)("slot",null))}renderIcon(e){if(e)return(0,a.h)("calcite-icon",{class:"calcite-input-message-icon",flipRtl:this.iconFlipRtl,icon:e,scale:"s"})}get el(){return this}static get watchers(){return{status:["handleIconEl"],icon:["handleIconEl"]}}static get style(){return":host{box-sizing:border-box;display:flex;block-size:auto;inline-size:100%;align-items:center;font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-text-1);opacity:1;transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s;--calcite-input-message-spacing-value:0.25rem;margin-block-start:var(--calcite-input-message-spacing-value)}.calcite-input-message-icon{pointer-events:none;display:inline-flex;flex-shrink:0;transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s;margin-inline-end:0.5rem}:host([status=invalid]) .calcite-input-message-icon{color:var(--calcite-color-status-danger)}:host([status=warning]) .calcite-input-message-icon{color:var(--calcite-color-status-warning)}:host([status=valid]) .calcite-input-message-icon{color:var(--calcite-color-status-success)}:host([status=idle]) .calcite-input-message-icon{color:var(--calcite-color-brand)}:host([scale=s]){font-size:var(--calcite-font-size--3);line-height:0.75rem}:host([scale=m]){font-size:var(--calcite-font-size--2);line-height:1rem}:host([scale=l]){font-size:var(--calcite-font-size--1);line-height:1rem}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-input-message",{icon:[520],iconFlipRtl:[516,"icon-flip-rtl"],scale:[513],status:[513]},void 0,{status:["handleIconEl"],icon:["handleIconEl"]}]);function o(){if("undefined"==typeof customElements)return;["calcite-input-message","calcite-icon"].forEach((e=>{switch(e){case"calcite-input-message":customElements.get(e)||customElements.define(e,l);break;case"calcite-icon":customElements.get(e)||(0,r.d)()}}))}o()},70069:function(e,t,i){i.d(t,{I:function(){return K},d:function(){return j}});var n=i(77210),a=i(79145),s=i(89055),r=i(64426),l=i(25694),o=i(81629),c=i(16265),u=i(19417),d=i(85545),h=i(25177),p=i(53801),m=i(90326);const b="validation-container",v=({scale:e,status:t,icon:i,message:a})=>(0,n.h)("div",{class:b},(0,n.h)("calcite-input-message",{icon:i,scale:e,status:t},a)),g=["date","datetime-local","month","number","range","time","week"],f=["email","password","search","tel","text","url"],y=["email","password","search","tel","text","textarea","url"];function x(e,t,i,n){const a=i.toLowerCase(),s=e[i];n&&null!=s?t.setAttribute(a,`${s}`):t.removeAttribute(a)}var k=i(44586),w=i(81838),z=i(12964);const I="loader",E="clear-button",V="editing-enabled",H="inline-child",O="icon",C="prefix",D="suffix",N="number-button-wrapper",L="number-button-item--horizontal",S="element-wrapper",A="wrapper",F="action-wrapper",T="resize-icon-wrapper",B="number-button-item",M={tel:"phone",password:"lock",email:"email-address",date:"calendar",time:"clock",search:"search"},P="action",K=(0,n.GH)(class extends n.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.calciteInternalInputFocus=(0,n.yM)(this,"calciteInternalInputFocus",6),this.calciteInternalInputBlur=(0,n.yM)(this,"calciteInternalInputBlur",6),this.calciteInputInput=(0,n.yM)(this,"calciteInputInput",7),this.calciteInputChange=(0,n.yM)(this,"calciteInputChange",6),this.childElType="input",this.previousValueOrigin="initial",this.mutationObserver=(0,d.c)("mutation",(()=>this.setDisabledAction())),this.userChangedValue=!1,this.keyDownHandler=e=>{this.readOnly||this.disabled||(this.isClearable&&"Escape"===e.key&&(this.clearInputValue(e),e.preventDefault()),"Enter"!==e.key||e.defaultPrevented||(0,s.s)(this)&&e.preventDefault())},this.clearInputValue=e=>{this.setValue({committing:!0,nativeEvent:e,origin:"user",value:""})},this.emitChangeIfUserModified=()=>{"user"===this.previousValueOrigin&&this.value!==this.previousEmittedValue&&(this.calciteInputChange.emit(),this.setPreviousEmittedValue(this.value))},this.inputBlurHandler=()=>{window.clearInterval(this.nudgeNumberValueIntervalId),this.calciteInternalInputBlur.emit(),this.emitChangeIfUserModified()},this.clickHandler=e=>{if(this.disabled)return;const t=(0,a.g)(this.el,"action");e.target!==t&&this.setFocus()},this.inputFocusHandler=()=>{this.calciteInternalInputFocus.emit()},this.inputChangeHandler=()=>{"file"===this.type&&(this.files=this.childEl.files)},this.inputInputHandler=e=>{this.disabled||this.readOnly||this.setValue({nativeEvent:e,origin:"user",value:e.target.value})},this.inputKeyDownHandler=e=>{this.disabled||this.readOnly||"Enter"===e.key&&this.emitChangeIfUserModified()},this.inputNumberInputHandler=e=>{if(this.disabled||this.readOnly)return;if("Infinity"===this.value||"-Infinity"===this.value)return;const t=e.target.value;u.n.numberFormatOptions={locale:this.effectiveLocale,numberingSystem:this.numberingSystem,useGrouping:this.groupSeparator};const i=u.n.delocalize(t);"insertFromPaste"===e.inputType?((0,u.i)(i)||e.preventDefault(),this.setValue({nativeEvent:e,origin:"user",value:(0,u.p)(i)}),this.childNumberEl.value=this.displayedValue):this.setValue({nativeEvent:e,origin:"user",value:i})},this.inputNumberKeyDownHandler=e=>{if("number"!==this.type||this.disabled||this.readOnly)return;if("Infinity"===this.value||"-Infinity"===this.value)return e.preventDefault(),void("Backspace"!==e.key&&"Delete"!==e.key||this.clearInputValue(e));if("ArrowUp"===e.key)return e.preventDefault(),void this.nudgeNumberValue("up",e);if("ArrowDown"===e.key)return void this.nudgeNumberValue("down",e);const t=[...l.n,"ArrowLeft","ArrowRight","Backspace","Delete","Enter","Escape","Tab"];if(e.altKey||e.ctrlKey||e.metaKey)return;const i=e.shiftKey&&"Tab"===e.key;if(t.includes(e.key)||i)"Enter"===e.key&&this.emitChangeIfUserModified();else{if(u.n.numberFormatOptions={locale:this.effectiveLocale,numberingSystem:this.numberingSystem,useGrouping:this.groupSeparator},e.key===u.n.decimal){if(!this.value&&!this.childNumberEl.value)return;if(this.value&&-1===this.childNumberEl.value.indexOf(u.n.decimal))return}if(/[eE]/.test(e.key)){if(!this.value&&!this.childNumberEl.value)return;if(this.value&&!/[eE]/.test(this.childNumberEl.value))return}if("-"===e.key){if(!this.value&&!this.childNumberEl.value)return;if(this.value&&this.childNumberEl.value.split("-").length<=2)return}e.preventDefault()}},this.nudgeNumberValue=(e,t)=>{if(t instanceof KeyboardEvent&&t.repeat||"number"!==this.type)return;const i=this.maxString?parseFloat(this.maxString):null,n=this.minString?parseFloat(this.minString):null;this.incrementOrDecrementNumberValue(e,i,n,t),this.nudgeNumberValueIntervalId&&window.clearInterval(this.nudgeNumberValueIntervalId);let a=!0;this.nudgeNumberValueIntervalId=window.setInterval((()=>{a?a=!1:this.incrementOrDecrementNumberValue(e,i,n,t)}),150)},this.numberButtonPointerUpAndOutHandler=()=>{window.clearInterval(this.nudgeNumberValueIntervalId)},this.numberButtonPointerDownHandler=e=>{if(!(0,a.i)(e))return;e.preventDefault();const t=e.target.dataset.adjustment;this.disabled||this.nudgeNumberValue(t,e)},this.onHiddenFormInputInput=e=>{e.target.name===this.name&&this.setValue({value:e.target.value,origin:"direct"}),this.setFocus(),e.stopPropagation()},this.setChildElRef=e=>{this.childEl=e},this.setChildNumberElRef=e=>{this.childNumberEl=e},this.setInputValue=e=>{("text"!==this.type||this.childEl)&&("number"!==this.type||this.childNumberEl)&&(this[`child${"number"===this.type?"Number":""}El`].value=e)},this.setPreviousEmittedValue=e=>{this.previousEmittedValue=this.normalizeValue(e)},this.setPreviousValue=e=>{this.previousValue=this.normalizeValue(e)},this.setValue=({committing:e=!1,nativeEvent:t,origin:i,previousValue:n,value:a})=>{if(this.setPreviousValue(n??this.value),this.previousValueOrigin=i,"number"===this.type){u.n.numberFormatOptions={locale:this.effectiveLocale,numberingSystem:this.numberingSystem,useGrouping:this.groupSeparator,signDisplay:"never"};const e=this.previousValue?.length>a.length||this.value?.length>a.length,t="."===a.charAt(a.length-1),n=t&&e?a:(0,u.s)(a),s=a&&!n?(0,u.i)(this.previousValue)?this.previousValue:"":n;let r=u.n.localize(s);"connected"===i||t||(r=(0,u.a)(r,s,u.n)),this.displayedValue=t&&e?`${r}${u.n.decimal}`:r,this.userChangedValue="user"===i&&this.value!==s,this.value=["-","."].includes(s)?"":s}else this.userChangedValue="user"===i&&this.value!==a,this.value=a;if("direct"===i&&(this.setInputValue(a),this.previousEmittedValue=a),t){this.calciteInputInput.emit().defaultPrevented?(this.value=this.previousValue,this.displayedValue="number"===this.type?u.n.localize(this.previousValue):this.previousValue):e&&this.emitChangeIfUserModified()}},this.inputKeyUpHandler=()=>{window.clearInterval(this.nudgeNumberValueIntervalId)},this.alignment="start",this.autofocus=!1,this.clearable=!1,this.disabled=!1,this.form=void 0,this.groupSeparator=!1,this.icon=void 0,this.iconFlipRtl=!1,this.label=void 0,this.loading=!1,this.numberingSystem=void 0,this.localeFormat=!1,this.max=void 0,this.min=void 0,this.maxLength=void 0,this.minLength=void 0,this.validationMessage=void 0,this.validationIcon=void 0,this.name=void 0,this.numberButtonType="vertical",this.placeholder=void 0,this.prefixText=void 0,this.readOnly=!1,this.required=!1,this.scale="m",this.status="idle",this.step=void 0,this.autocomplete=void 0,this.pattern=void 0,this.accept=void 0,this.multiple=!1,this.inputMode="text",this.enterKeyHint=void 0,this.suffixText=void 0,this.editingEnabled=!1,this.type="text",this.value="",this.files=void 0,this.messages=void 0,this.messageOverrides=void 0,this.defaultMessages=void 0,this.effectiveLocale="",this.displayedValue=void 0,this.slottedActionElDisabledInternally=!1}disabledWatcher(){this.setDisabledAction()}maxWatcher(){this.maxString=this.max?.toString()||null}minWatcher(){this.minString=this.min?.toString()||null}onMessagesChange(){}valueWatcher(e,t){if(!this.userChangedValue){if("number"===this.type&&("Infinity"===e||"-Infinity"===e))return this.displayedValue=e,void(this.previousEmittedValue=e);this.setValue({origin:"direct",previousValue:t,value:null==e||""==e?"":"number"===this.type?(0,u.i)(e)?e:this.previousValue||"":e}),this.warnAboutInvalidNumberValue(e)}this.userChangedValue=!1}updateRequestedIcon(){this.requestedIcon=(0,a.o)(M,this.icon,this.type)}get isClearable(){return!this.isTextarea&&(this.clearable||"search"===this.type)&&this.value?.length>0}get isTextarea(){return"textarea"===this.childElType}effectiveLocaleChange(){(0,p.u)(this,this.effectiveLocale)}connectedCallback(){(0,r.c)(this),(0,u.c)(this),(0,p.c)(this),this.inlineEditableEl=this.el.closest("calcite-inline-editable"),this.inlineEditableEl&&(this.editingEnabled=this.inlineEditableEl.editingEnabled||!1),(0,o.c)(this),(0,s.c)(this),this.setPreviousEmittedValue(this.value),this.setPreviousValue(this.value),"number"===this.type&&("Infinity"===this.value||"-Infinity"===this.value?(this.displayedValue=this.value,this.previousEmittedValue=this.value):(this.warnAboutInvalidNumberValue(this.value),this.setValue({origin:"connected",value:(0,u.i)(this.value)?this.value:""}))),this.mutationObserver?.observe(this.el,{childList:!0}),this.setDisabledAction(),this.el.addEventListener(s.i,this.onHiddenFormInputInput)}disconnectedCallback(){(0,r.d)(this),(0,o.d)(this),(0,s.d)(this),(0,u.d)(this),(0,p.d)(this),this.mutationObserver?.disconnect(),this.el.removeEventListener(s.i,this.onHiddenFormInputInput)}async componentWillLoad(){(0,c.s)(this),this.childElType="textarea"===this.type?"textarea":"input",this.maxString=this.max?.toString(),this.minString=this.min?.toString(),this.requestedIcon=(0,a.o)(M,this.icon,this.type),await(0,p.s)(this)}componentDidLoad(){(0,c.a)(this)}componentShouldUpdate(e,t,i){return!("number"===this.type&&"value"===i&&e&&!(0,u.i)(e))||(this.setValue({origin:"reset",value:t}),!1)}componentDidRender(){(0,r.u)(this)}async setFocus(){await(0,c.c)(this),"number"===this.type?this.childNumberEl?.focus():this.childEl?.focus()}async selectText(){"number"===this.type?this.childNumberEl?.select():this.childEl?.select()}onLabelClick(){this.setFocus()}incrementOrDecrementNumberValue(e,t,i,n){const{value:a}=this;if("Infinity"===a||"-Infinity"===a)return;const s="up"===e?1:-1,r="any"===this.step?1:Math.abs(this.step||1),l=new u.B(""!==a?a:"0").add(""+r*s),o="number"==typeof i&&!isNaN(i)&&l.subtract(`${i}`).isNegative?`${i}`:"number"!=typeof t||isNaN(t)||l.subtract(`${t}`).isNegative?l.toString():`${t}`;this.setValue({committing:!0,nativeEvent:n,origin:"user",value:o})}syncHiddenFormInput(e){!function(e,t,i){i.type="textarea"===e?"text":e;const n=g.includes(e),a=t;x(a,i,"min",n),x(a,i,"max",n),x(a,i,"step",n);const s=y.includes(e),r=t;x(r,i,"minLength",s),x(r,i,"maxLength",s),x(r,i,"pattern",f.includes(e))}(this.type,this,e)}setDisabledAction(){const e=(0,a.g)(this.el,"action");e&&(this.disabled?(null==e.getAttribute("disabled")&&(this.slottedActionElDisabledInternally=!0),e.setAttribute("disabled","")):this.slottedActionElDisabledInternally&&(e.removeAttribute("disabled"),this.slottedActionElDisabledInternally=!1))}normalizeValue(e){return"number"===this.type?(0,u.i)(e)?e:"":e}warnAboutInvalidNumberValue(e){"number"===this.type&&e&&(0,u.i)(e)}render(){const e=(0,a.a)(this.el),t=(0,n.h)("div",{class:I},(0,n.h)("calcite-progress",{label:this.messages.loading,type:"indeterminate"})),i=(0,n.h)("button",{"aria-label":this.messages.clear,class:E,disabled:this.disabled||this.readOnly,onClick:this.clearInputValue,tabIndex:-1,type:"button"},(0,n.h)("calcite-icon",{icon:"x",scale:(0,m.g)(this.scale)})),l=(0,n.h)("calcite-icon",{class:O,flipRtl:this.iconFlipRtl,icon:this.requestedIcon,scale:(0,m.g)(this.scale)}),c="horizontal"===this.numberButtonType,u=(0,n.h)("button",{"aria-hidden":"true",class:{[B]:!0,[L]:c},"data-adjustment":"up",disabled:this.disabled||this.readOnly,onPointerDown:this.numberButtonPointerDownHandler,onPointerOut:this.numberButtonPointerUpAndOutHandler,onPointerUp:this.numberButtonPointerUpAndOutHandler,tabIndex:-1,type:"button"},(0,n.h)("calcite-icon",{icon:"chevron-up",scale:(0,m.g)(this.scale)})),d=(0,n.h)("button",{"aria-hidden":"true",class:{[B]:!0,[L]:c},"data-adjustment":"down",disabled:this.disabled||this.readOnly,onPointerDown:this.numberButtonPointerDownHandler,onPointerOut:this.numberButtonPointerUpAndOutHandler,onPointerUp:this.numberButtonPointerUpAndOutHandler,tabIndex:-1,type:"button"},(0,n.h)("calcite-icon",{icon:"chevron-down",scale:(0,m.g)(this.scale)})),p=(0,n.h)("div",{class:N},u,d),b=(0,n.h)("div",{class:C},this.prefixText),g=(0,n.h)("div",{class:D},this.suffixText),f="number"===this.type?(0,n.h)("input",{accept:this.accept,"aria-label":(0,o.g)(this),autocomplete:this.autocomplete,autofocus:!!this.autofocus||null,defaultValue:this.defaultValue,disabled:!!this.disabled||null,enterKeyHint:this.enterKeyHint,inputMode:this.inputMode,key:"localized-input",maxLength:this.maxLength,minLength:this.minLength,multiple:this.multiple,name:void 0,onBlur:this.inputBlurHandler,onFocus:this.inputFocusHandler,onInput:this.inputNumberInputHandler,onKeyDown:this.inputNumberKeyDownHandler,onKeyUp:this.inputKeyUpHandler,pattern:this.pattern,placeholder:this.placeholder||"",readOnly:this.readOnly,type:"text",value:this.displayedValue,ref:this.setChildNumberElRef}):null,y="number"!==this.type?[(0,n.h)(this.childElType,{accept:this.accept,"aria-label":(0,o.g)(this),autocomplete:this.autocomplete,autofocus:!!this.autofocus||null,class:{[V]:this.editingEnabled,[H]:!!this.inlineEditableEl},defaultValue:this.defaultValue,disabled:!!this.disabled||null,enterKeyHint:this.enterKeyHint,inputMode:this.inputMode,max:this.maxString,maxLength:this.maxLength,min:this.minString,minLength:this.minLength,multiple:this.multiple,name:this.name,onBlur:this.inputBlurHandler,onChange:this.inputChangeHandler,onFocus:this.inputFocusHandler,onInput:this.inputInputHandler,onKeyDown:this.inputKeyDownHandler,onKeyUp:this.inputKeyUpHandler,pattern:this.pattern,placeholder:this.placeholder||"",readOnly:this.readOnly,required:!!this.required||null,step:this.step,tabIndex:this.disabled||this.inlineEditableEl&&!this.editingEnabled?-1:null,type:this.type,value:this.value,ref:this.setChildElRef}),this.isTextarea?(0,n.h)("div",{class:T},(0,n.h)("calcite-icon",{icon:"chevron-down",scale:(0,m.g)(this.scale)})):null]:null;return(0,n.h)(n.AA,{onClick:this.clickHandler,onKeyDown:this.keyDownHandler},(0,n.h)(r.I,{disabled:this.disabled},(0,n.h)("div",{class:{[A]:!0,[h.C.rtl]:"rtl"===e}},"number"!==this.type||"horizontal"!==this.numberButtonType||this.readOnly?null:d,this.prefixText?b:null,(0,n.h)("div",{class:S},f,y,this.isClearable?i:null,this.requestedIcon?l:null,this.loading?t:null),(0,n.h)("div",{class:F},(0,n.h)("slot",{name:P})),"number"!==this.type||"vertical"!==this.numberButtonType||this.readOnly?null:p,this.suffixText?g:null,"number"!==this.type||"horizontal"!==this.numberButtonType||this.readOnly?null:u,(0,n.h)(s.H,{component:this})),this.validationMessage?(0,n.h)(v,{icon:this.validationIcon,message:this.validationMessage,scale:this.scale,status:this.status}):null))}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{disabled:["disabledWatcher"],max:["maxWatcher"],min:["minWatcher"],messageOverrides:["onMessagesChange"],value:["valueWatcher"],icon:["updateRequestedIcon"],type:["updateRequestedIcon"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:block}:host([scale=s]) input,:host([scale=s]) .prefix,:host([scale=s]) .suffix{block-size:1.5rem;padding-inline:0.5rem;font-size:var(--calcite-font-size--2);line-height:1rem}:host([scale=s]) textarea{block-size:1.5rem;min-block-size:1.5rem}:host([scale=s]) .number-button-wrapper,:host([scale=s]) .action-wrapper calcite-button,:host([scale=s]) .action-wrapper calcite-button button{block-size:1.5rem}:host([scale=s]) input[type=file]{block-size:1.5rem}:host([scale=s]) .clear-button{min-block-size:1.5rem;min-inline-size:1.5rem}:host([scale=s]) textarea{block-size:auto;padding-block:0.25rem;padding-inline:0.5rem;font-size:var(--calcite-font-size--2);line-height:1rem}:host([scale=m]) input,:host([scale=m]) .prefix,:host([scale=m]) .suffix{block-size:2rem;padding-inline:0.75rem;font-size:var(--calcite-font-size--1);line-height:1rem}:host([scale=m]) textarea{min-block-size:2rem}:host([scale=m]) .number-button-wrapper,:host([scale=m]) .action-wrapper calcite-button,:host([scale=m]) .action-wrapper calcite-button button{block-size:2rem}:host([scale=m]) input[type=file]{block-size:2rem}:host([scale=m]) .clear-button{min-block-size:2rem;min-inline-size:2rem}:host([scale=m]) textarea{block-size:auto;padding-block:0.5rem;padding-inline:0.75rem;font-size:var(--calcite-font-size--1);line-height:1rem}:host([scale=l]) input,:host([scale=l]) .prefix,:host([scale=l]) .suffix{block-size:2.75rem;padding-inline:1rem;font-size:var(--calcite-font-size-0);line-height:1.25rem}:host([scale=l]) textarea{min-block-size:2.75rem}:host([scale=l]) .number-button-wrapper,:host([scale=l]) .action-wrapper calcite-button,:host([scale=l]) .action-wrapper calcite-button button{block-size:2.75rem}:host([scale=l]) input[type=file]{block-size:2.75rem}:host([scale=l]) .clear-button{min-block-size:2.75rem;min-inline-size:2.75rem}:host([scale=l]) textarea{block-size:auto;padding-block:0.75rem;padding-inline:1rem;font-size:var(--calcite-font-size-0);line-height:1.25rem}:host([disabled]) textarea{resize:none}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}textarea,input{transition:var(--calcite-animation-timing), block-size 0, outline-offset 0s;-webkit-appearance:none;position:relative;margin:0px;box-sizing:border-box;display:flex;max-block-size:100%;inline-size:100%;max-inline-size:100%;flex:1 1 0%;border-radius:0px;background-color:var(--calcite-color-foreground-1);font-family:inherit;font-weight:var(--calcite-font-weight-normal);color:var(--calcite-color-text-1)}input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input,textarea{text-overflow:ellipsis;border-width:1px;border-style:solid;border-color:var(--calcite-color-border-input);color:var(--calcite-color-text-1)}input:placeholder-shown,textarea:placeholder-shown{text-overflow:ellipsis}input:focus,textarea:focus{border-color:var(--calcite-color-brand);color:var(--calcite-color-text-1)}input[readonly],textarea[readonly]{background-color:var(--calcite-color-background);font-weight:var(--calcite-font-weight-medium)}input[readonly]:focus,textarea[readonly]:focus{color:var(--calcite-color-text-1)}calcite-icon{color:var(--calcite-color-text-3)}textarea,input{outline-color:transparent}textarea:focus,input:focus{outline:2px solid var(--calcite-ui-focus-color, var(--calcite-color-brand-hover, var(--calcite--color-brand)));outline-offset:calc(\n -2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-offset-invert-focus),\n 1\n )\n )\n )}:host([status=invalid]) input,:host([status=invalid]) textarea{border-color:var(--calcite-color-status-danger)}:host([status=invalid]) input:focus,:host([status=invalid]) textarea:focus{outline:2px solid var(--calcite-color-status-danger);outline-offset:calc(\n -2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-offset-invert-focus),\n 1\n )\n )\n )}:host([scale=s]) .icon{inset-inline-start:0.5rem}:host([scale=m]) .icon{inset-inline-start:0.75rem}:host([scale=l]) .icon{inset-inline-start:1rem}:host([icon][scale=s]) input{padding-inline-start:2rem}:host([icon][scale=m]) input{padding-inline-start:2.5rem}:host([icon][scale=l]) input{padding-inline-start:3.5rem}.element-wrapper{position:relative;order:3;display:inline-flex;flex:1 1 0%;align-items:center}.icon{pointer-events:none;position:absolute;display:block;transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s}.icon,.resize-icon-wrapper{z-index:var(--calcite-z-index)}input[type=text]::-ms-clear,input[type=text]::-ms-reveal{display:none;block-size:0px;inline-size:0px}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration,input[type=date]::-webkit-clear-button,input[type=time]::-webkit-clear-button{display:none}.clear-button{pointer-events:initial;order:4;margin:0px;box-sizing:border-box;display:flex;min-block-size:100%;cursor:pointer;align-items:center;justify-content:center;align-self:stretch;border-width:1px;border-style:solid;border-color:var(--calcite-color-border-input);background-color:var(--calcite-color-foreground-1);outline-color:transparent;border-inline-start-width:0px}.clear-button:hover{background-color:var(--calcite-color-foreground-2);transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s}.clear-button:hover calcite-icon{color:var(--calcite-color-text-1);transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s}.clear-button:active{background-color:var(--calcite-color-foreground-3)}.clear-button:active calcite-icon{color:var(--calcite-color-text-1)}.clear-button:focus{outline:2px solid var(--calcite-ui-focus-color, var(--calcite-color-brand-hover, var(--calcite--color-brand)));outline-offset:calc(\n -2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-offset-invert-focus),\n 1\n )\n )\n )}.clear-button:disabled{opacity:var(--calcite-opacity-disabled)}.loader{inset-block-start:1px;inset-inline:1px;pointer-events:none;position:absolute;display:block}.action-wrapper{order:7;display:flex}.prefix,.suffix{box-sizing:border-box;display:flex;block-size:auto;min-block-size:100%;-webkit-user-select:none;user-select:none;align-content:center;align-items:center;overflow-wrap:break-word;border-width:1px;border-style:solid;border-color:var(--calcite-color-border-input);background-color:var(--calcite-color-background);font-weight:var(--calcite-font-weight-medium);line-height:1;color:var(--calcite-color-text-2)}.prefix{order:2;border-inline-end-width:0px}.suffix{order:5;border-inline-start-width:0px}:host([alignment=start]) textarea,:host([alignment=start]) input{text-align:start}:host([alignment=end]) textarea,:host([alignment=end]) input{text-align:end}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:textfield;margin:0px}.number-button-wrapper{pointer-events:none;order:6;box-sizing:border-box;display:flex;flex-direction:column;transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s}:host([number-button-type=vertical]) .wrapper{flex-direction:row;display:flex}:host([number-button-type=vertical]) input,:host([number-button-type=vertical]) textarea{order:2}:host([number-button-type=horizontal]) .calcite--rtl .number-button-item[data-adjustment=down] calcite-icon{transform:rotate(-90deg)}:host([number-button-type=horizontal]) .calcite--rtl .number-button-item[data-adjustment=up] calcite-icon{transform:rotate(-90deg)}.number-button-item.number-button-item--horizontal[data-adjustment=down],.number-button-item.number-button-item--horizontal[data-adjustment=up]{order:1;max-block-size:100%;min-block-size:100%;align-self:stretch}.number-button-item.number-button-item--horizontal[data-adjustment=down] calcite-icon,.number-button-item.number-button-item--horizontal[data-adjustment=up] calcite-icon{transform:rotate(90deg)}.number-button-item.number-button-item--horizontal[data-adjustment=down]{border-width:1px;border-style:solid;border-color:var(--calcite-color-border-input);border-inline-end-width:0px}.number-button-item.number-button-item--horizontal[data-adjustment=down]:hover{background-color:var(--calcite-color-foreground-2)}.number-button-item.number-button-item--horizontal[data-adjustment=down]:hover calcite-icon{color:var(--calcite-color-text-1)}.number-button-item.number-button-item--horizontal[data-adjustment=up]{order:5}.number-button-item.number-button-item--horizontal[data-adjustment=up]:hover{background-color:var(--calcite-color-foreground-2)}.number-button-item.number-button-item--horizontal[data-adjustment=up]:hover calcite-icon{color:var(--calcite-color-text-1)}:host([number-button-type=vertical]) .number-button-item[data-adjustment=down]:hover{background-color:var(--calcite-color-foreground-2)}:host([number-button-type=vertical]) .number-button-item[data-adjustment=down]:hover calcite-icon{color:var(--calcite-color-text-1)}:host([number-button-type=vertical]) .number-button-item[data-adjustment=up]:hover{background-color:var(--calcite-color-foreground-2)}:host([number-button-type=vertical]) .number-button-item[data-adjustment=up]:hover calcite-icon{color:var(--calcite-color-text-1)}:host([number-button-type=vertical]) .number-button-item[data-adjustment=down]{border-block-start-width:0px}.number-button-item{max-block-size:50%;min-block-size:50%;pointer-events:initial;margin:0px;box-sizing:border-box;display:flex;cursor:pointer;align-items:center;align-self:center;border-width:1px;border-style:solid;border-color:var(--calcite-color-border-input);background-color:var(--calcite-color-foreground-1);padding-block:0px;padding-inline:0.5rem;transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s;border-inline-start-width:0px}.number-button-item calcite-icon{pointer-events:none;transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s}.number-button-item:focus{background-color:var(--calcite-color-foreground-2)}.number-button-item:focus calcite-icon{color:var(--calcite-color-text-1)}.number-button-item:active{background-color:var(--calcite-color-foreground-3)}.number-button-item:disabled{pointer-events:none}.wrapper{position:relative;display:flex;flex-direction:row;align-items:center}:input::-webkit-calendar-picker-indicator{display:none}input[type=date]::-webkit-input-placeholder{visibility:hidden !important}textarea::-webkit-resizer{position:absolute;inset-block-end:0px;box-sizing:border-box;padding-block:0px;padding-inline:0.25rem;inset-inline-end:0}.resize-icon-wrapper{inset-block-end:2px;inset-inline-end:2px;pointer-events:none;position:absolute;block-size:0.75rem;inline-size:0.75rem;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-3)}.resize-icon-wrapper calcite-icon{inset-block-end:0.25rem;inset-inline-end:0.25rem;transform:rotate(-45deg)}.calcite--rtl .resize-icon-wrapper calcite-icon{transform:rotate(45deg)}:host([type=color]) input{padding:0.25rem}:host([type=file]) input{cursor:pointer;border-width:1px;border-style:dashed;border-color:var(--calcite-color-border-input);background-color:var(--calcite-color-foreground-1);text-align:center}:host([type=file][scale=s]) input{padding-block:1px;padding-inline:0.5rem}:host([type=file][scale=m]) input{padding-block:0.25rem;padding-inline:0.75rem}:host([type=file][scale=l]) input{padding-block:0.5rem;padding-inline:1rem}:host(.no-bottom-border) input{border-block-end-width:0px}:host(.border-top-color-one) input{border-block-start-color:var(--calcite-color-border-1)}input.inline-child{background-color:transparent;transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s}input.inline-child .editing-enabled{background-color:inherit}input.inline-child:not(.editing-enabled){display:flex;cursor:pointer;text-overflow:ellipsis;border-color:transparent;padding-inline-start:0}.validation-container{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch}:host([scale=m]) .validation-container,:host([scale=l]) .validation-container{padding-block-start:0.5rem}:host([scale=s]) .validation-container{padding-block-start:0.25rem}::slotted(input[slot=hidden-form-input]){margin:0 !important;opacity:0 !important;outline:none !important;padding:0 !important;position:absolute !important;inset:0 !important;transform:none !important;-webkit-appearance:none !important;z-index:-1 !important}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-input",{alignment:[513],autofocus:[516],clearable:[516],disabled:[516],form:[513],groupSeparator:[516,"group-separator"],icon:[520],iconFlipRtl:[516,"icon-flip-rtl"],label:[1],loading:[516],numberingSystem:[513,"numbering-system"],localeFormat:[4,"locale-format"],max:[514],min:[514],maxLength:[514,"max-length"],minLength:[514,"min-length"],validationMessage:[1,"validation-message"],validationIcon:[520,"validation-icon"],name:[513],numberButtonType:[513,"number-button-type"],placeholder:[1],prefixText:[1,"prefix-text"],readOnly:[516,"read-only"],required:[516],scale:[513],status:[513],step:[520],autocomplete:[1],pattern:[1],accept:[1],multiple:[4],inputMode:[1,"input-mode"],enterKeyHint:[1,"enter-key-hint"],suffixText:[1,"suffix-text"],editingEnabled:[1540,"editing-enabled"],type:[513],value:[1025],files:[16],messages:[1040],messageOverrides:[1040],defaultMessages:[32],effectiveLocale:[32],displayedValue:[32],slottedActionElDisabledInternally:[32],setFocus:[64],selectText:[64]},void 0,{disabled:["disabledWatcher"],max:["maxWatcher"],min:["minWatcher"],messageOverrides:["onMessagesChange"],value:["valueWatcher"],icon:["updateRequestedIcon"],type:["updateRequestedIcon"],effectiveLocale:["effectiveLocaleChange"]}]);function j(){if("undefined"==typeof customElements)return;["calcite-input","calcite-icon","calcite-input-message","calcite-progress"].forEach((e=>{switch(e){case"calcite-input":customElements.get(e)||customElements.define(e,K);break;case"calcite-icon":customElements.get(e)||(0,k.d)();break;case"calcite-input-message":customElements.get(e)||(0,w.d)();break;case"calcite-progress":customElements.get(e)||(0,z.d)()}}))}j()},12964:function(e,t,i){i.d(t,{d:function(){return l}});var n=i(77210),a=i(79145),s=i(25177);const r=(0,n.GH)(class extends n.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.type="determinate",this.value=0,this.label=void 0,this.text=void 0,this.reversed=!1}render(){const e="determinate"===this.type?{width:100*this.value+"%"}:{},t=(0,a.a)(this.el);return(0,n.h)("div",{"aria-label":this.label||this.text,"aria-valuemax":1,"aria-valuemin":0,"aria-valuenow":this.value,role:"progressbar"},(0,n.h)("div",{class:"track"},(0,n.h)("div",{class:{bar:!0,indeterminate:"indeterminate"===this.type,[s.C.rtl]:"rtl"===t,reversed:this.reversed},style:e})),this.text?(0,n.h)("div",{class:"text"},this.text):null)}get el(){return this}static get style(){return":host{position:relative;display:block;inline-size:100%}.track,.bar{position:absolute;inset-block-start:0px;block-size:2px}.track{z-index:var(--calcite-z-index);inline-size:100%;overflow:hidden;background:var(--calcite-color-border-3)}.bar{z-index:var(--calcite-z-index);background-color:var(--calcite-color-brand)}@media (forced-colors: active){.track{background-color:highlightText}.bar{background-color:linkText}}.indeterminate{inline-size:20%;animation:looping-progress-bar-ani calc(var(--calcite-internal-animation-timing-medium) / var(--calcite-internal-duration-factor) * 11 / var(--calcite-internal-duration-factor)) linear infinite}.indeterminate.calcite--rtl{animation-name:looping-progress-bar-ani-rtl}.reversed{animation-direction:reverse}.text{padding-inline:0px;padding-block:1rem 0px;text-align:center;font-size:var(--calcite-font-size--2);line-height:1rem;font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-text-2)}@keyframes looping-progress-bar-ani{0%{transform:translate3d(-100%, 0, 0)}50%{inline-size:40%}100%{transform:translate3d(600%, 0, 0)}}@keyframes looping-progress-bar-ani-rtl{0%{transform:translate3d(100%, 0, 0)}50%{inline-size:40%}100%{transform:translate3d(-600%, 0, 0)}}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-progress",{type:[513],value:[2],label:[1],text:[1],reversed:[516]}]);function l(){if("undefined"==typeof customElements)return;["calcite-progress"].forEach((e=>{if("calcite-progress"===e)customElements.get(e)||customElements.define(e,r)}))}l()}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/69.9fffed5792113a8444a9.js.LICENSE.txt b/docs/sentinel1-explorer/69.9fffed5792113a8444a9.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/69.9fffed5792113a8444a9.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/693.7daf76ab641afeb6e0f5.js b/docs/sentinel1-explorer/693.7daf76ab641afeb6e0f5.js new file mode 100644 index 00000000..a2ab263f --- /dev/null +++ b/docs/sentinel1-explorer/693.7daf76ab641afeb6e0f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[693],{80693:function(e,t,r){r.r(t),r.d(t,{default:function(){return M}});var s,i=r(36663),o=(r(91957),r(6865)),l=r(81739),n=r(15842),a=r(78668),u=r(76868),y=r(3466),p=r(81977),f=(r(39994),r(13802),r(4157),r(34248)),h=r(40266),d=r(39835),c=r(14685),b=r(38481),m=r(27668),v=r(43330),g=r(18241),_=r(12478),S=r(95874),C=r(51599),w=r(31355),k=r(82064),x=r(68309),E=r(21130),P=r(7283),I=r(91103),G=r(91772);let Z=s=class extends(w.Z.EventedMixin((0,k.eC)(x.Z))){constructor(...e){super(...e),this.description=null,this.fullExtent=null,this.id=null,this.networkLink=null,this.parent=null,this.sublayers=null,this.title=null,this.sourceJSON=null,this.layer=null,this.addHandles([(0,u.on)((()=>this.sublayers),"after-add",(({item:e})=>{e.parent=this,e.layer=this.layer}),u.Z_),(0,u.on)((()=>this.sublayers),"after-remove",(({item:e})=>{e.layer=e.parent=null}),u.Z_),(0,u.YP)((()=>this.sublayers),((e,t)=>{if(t)for(const e of t)e.layer=e.parent=null;if(e)for(const t of e)t.parent=this,t.layer=this.layer}),u.Z_),(0,u.YP)((()=>this.layer),(e=>{if(this.sublayers)for(const t of this.sublayers)t.layer=e}),u.Z_)])}initialize(){(0,u.N1)((()=>this.networkLink)).then((()=>(0,u.N1)((()=>!0===this.visible)))).then((()=>this.load()))}load(e){if(!this.networkLink)return;if(this.networkLink.viewFormat)return;const t=null!=e?e.signal:null,r=this._fetchService(this._get("networkLink")?.href??"",t).then((e=>{const t=(0,I.lm)(e.sublayers);this.fullExtent=G.Z.fromJSON(t),this.sourceJSON=e;const r=(0,P.se)(o.Z.ofType(s),(0,I.j5)(s,e));this.sublayers?this.sublayers.addMany(r):this.sublayers=r,this.layer?.emit("sublayer-update"),this.layer&&this.layer.notifyChange("visibleSublayers")}));return this.addResolvingPromise(r),Promise.resolve(this)}get visible(){return this._get("visible")}set visible(e){this._get("visible")!==e&&(this._set("visible",e),this.layer&&this.layer.notifyChange("visibleSublayers"))}readVisible(e,t){return!!t.visibility}_fetchService(e,t){return(0,I.CS)(e,this.layer.outSpatialReference,this.layer.refreshInterval,t).then((e=>(0,I.Cw)(e.data)))}};(0,i._)([(0,p.Cb)()],Z.prototype,"description",void 0),(0,i._)([(0,p.Cb)({type:G.Z})],Z.prototype,"fullExtent",void 0),(0,i._)([(0,p.Cb)()],Z.prototype,"id",void 0),(0,i._)([(0,p.Cb)({readOnly:!0,value:null})],Z.prototype,"networkLink",void 0),(0,i._)([(0,p.Cb)({json:{write:{allowNull:!0}}})],Z.prototype,"parent",void 0),(0,i._)([(0,p.Cb)({type:o.Z.ofType(Z),json:{write:{allowNull:!0}}})],Z.prototype,"sublayers",void 0),(0,i._)([(0,p.Cb)({value:null,json:{read:{source:"name",reader:e=>(0,E.Cb)(e)}}})],Z.prototype,"title",void 0),(0,i._)([(0,p.Cb)({value:!0})],Z.prototype,"visible",null),(0,i._)([(0,f.r)("visible",["visibility"])],Z.prototype,"readVisible",null),(0,i._)([(0,p.Cb)()],Z.prototype,"sourceJSON",void 0),(0,i._)([(0,p.Cb)()],Z.prototype,"layer",void 0),Z=s=(0,i._)([(0,h.j)("esri.layers.support.KMLSublayer")],Z);const O=Z,L=["kml","xml"];let F=class extends((0,m.h)((0,_.Q)((0,S.M)((0,v.q)((0,g.I)((0,n.R)(b.Z))))))){constructor(...e){super(...e),this._visibleFolders=[],this.allSublayers=new l.Z({getCollections:()=>[this.sublayers],getChildrenFunction:e=>e.sublayers}),this.outSpatialReference=c.Z.WGS84,this.path=null,this.legendEnabled=!1,this.operationalLayerType="KML",this.sublayers=null,this.type="kml",this.url=null}initialize(){this.addHandles([(0,u.YP)((()=>this.sublayers),((e,t)=>{t&&t.forEach((e=>{e.parent=null,e.layer=null})),e&&e.forEach((e=>{e.parent=this,e.layer=this}))}),u.Z_),this.on("sublayer-update",(()=>this.notifyChange("fullExtent")))])}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}readSublayersFromItemOrWebMap(e,t){this._visibleFolders=t.visibleFolders}readSublayers(e,t,r){return(0,I.j5)(O,t,r,this._visibleFolders)}writeSublayers(e,t){const r=[],s=e.toArray();for(;s.length;){const e=s[0];e.networkLink||(e.visible&&r.push(e.id),e.sublayers&&s.push(...e.sublayers.toArray())),s.shift()}t.visibleFolders=r}get title(){const e=this._get("title");return e&&"defaults"!==this.originOf("title")?e:this.url?(0,y.vt)(this.url,L)||"KML":e||""}set title(e){this._set("title",e)}get visibleSublayers(){const e=this.sublayers,t=[],r=e=>{e.visible&&(t.push(e),e.sublayers&&e.sublayers.forEach(r))};return e&&e.forEach(r),t}get fullExtent(){return this._recomputeFullExtent()}load(e){const t=null!=e?e.signal:null;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["KML"],supportsData:!1},e).catch(a.r9).then((()=>this._fetchService(t)))),Promise.resolve(this)}destroy(){super.destroy(),this.allSublayers.destroy()}async _fetchService(e){const t=await Promise.resolve().then((()=>this.resourceInfo?{ssl:!1,data:this.resourceInfo}:(0,I.CS)(this.url??"",this.outSpatialReference,this.refreshInterval,e))),r=(0,I.Cw)(t.data);r&&this.read(r,{origin:"service"})}_recomputeFullExtent(){let e=null;null!=this.extent&&(e=this.extent.clone());const t=r=>{if(r.sublayers)for(const s of r.sublayers.items)t(s),s.visible&&s.fullExtent&&(null!=e?e.union(s.fullExtent):e=s.fullExtent.clone())};return t(this),e}};(0,i._)([(0,p.Cb)({readOnly:!0})],F.prototype,"allSublayers",void 0),(0,i._)([(0,p.Cb)({type:c.Z})],F.prototype,"outSpatialReference",void 0),(0,i._)([(0,p.Cb)({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],F.prototype,"path",void 0),(0,i._)([(0,p.Cb)({readOnly:!0,json:{read:!1,write:!1}})],F.prototype,"legendEnabled",void 0),(0,i._)([(0,p.Cb)({type:["show","hide","hide-children"]})],F.prototype,"listMode",void 0),(0,i._)([(0,p.Cb)({type:["KML"]})],F.prototype,"operationalLayerType",void 0),(0,i._)([(0,p.Cb)({})],F.prototype,"resourceInfo",void 0),(0,i._)([(0,p.Cb)({type:o.Z.ofType(O),json:{write:{ignoreOrigin:!0}}})],F.prototype,"sublayers",void 0),(0,i._)([(0,f.r)(["web-map","portal-item"],"sublayers",["visibleFolders"])],F.prototype,"readSublayersFromItemOrWebMap",null),(0,i._)([(0,f.r)("service","sublayers",["sublayers"])],F.prototype,"readSublayers",null),(0,i._)([(0,d.c)("sublayers")],F.prototype,"writeSublayers",null),(0,i._)([(0,p.Cb)({readOnly:!0,json:{read:!1}})],F.prototype,"type",void 0),(0,i._)([(0,p.Cb)({json:{origins:{"web-map":{read:{source:"title"}}},write:{ignoreOrigin:!0}}})],F.prototype,"title",null),(0,i._)([(0,p.Cb)(C.HQ)],F.prototype,"url",void 0),(0,i._)([(0,p.Cb)({readOnly:!0})],F.prototype,"visibleSublayers",null),(0,i._)([(0,p.Cb)({type:G.Z})],F.prototype,"extent",void 0),(0,i._)([(0,p.Cb)()],F.prototype,"fullExtent",null),F=(0,i._)([(0,h.j)("esri.layers.KMLLayer")],F);const M=F},91103:function(e,t,r){r.d(t,{CS:function(){return b},Cw:function(){return c},Yu:function(){return g},j5:function(){return m},lm:function(){return _}});var s=r(51366),i=r(88256),o=r(80020),l=r(66341),n=r(67134),a=r(3466),u=r(14685),y=r(37116),p=r(79880),f=r(72506),h=r(51211);const d={esriGeometryPoint:"points",esriGeometryPolyline:"polylines",esriGeometryPolygon:"polygons"};function c(e){const t=e.folders||[],r=t.slice(),s=new Map,i=new Map,o=new Map,l=new Map,a=new Map,u={esriGeometryPoint:i,esriGeometryPolyline:o,esriGeometryPolygon:l};(e.featureCollection?.layers||[]).forEach((e=>{const t=(0,n.d9)(e);t.featureSet.features=[];const r=e.featureSet.geometryType;s.set(r,t);const a=e.layerDefinition.objectIdField;"esriGeometryPoint"===r?v(i,a,e.featureSet.features):"esriGeometryPolyline"===r?v(o,a,e.featureSet.features):"esriGeometryPolygon"===r&&v(l,a,e.featureSet.features)})),e.groundOverlays&&e.groundOverlays.forEach((e=>{a.set(e.id,e)})),t.forEach((t=>{t.networkLinkIds.forEach((s=>{const i=function(e,t,r){const s=function(e,t){let r;return t.some((t=>t.id===e&&(r=t,!0))),r}(e,r);return s&&(s.parentFolderId=t,s.networkLink=s),s}(s,t.id,e.networkLinks);i&&r.push(i)}))})),r.forEach((e=>{if(e.featureInfos){e.points=(0,n.d9)(s.get("esriGeometryPoint")),e.polylines=(0,n.d9)(s.get("esriGeometryPolyline")),e.polygons=(0,n.d9)(s.get("esriGeometryPolygon")),e.mapImages=[];for(const t of e.featureInfos)switch(t.type){case"esriGeometryPoint":case"esriGeometryPolyline":case"esriGeometryPolygon":{const r=u[t.type].get(t.id);r&&e[d[t.type]]?.featureSet.features.push(r);break}case"GroundOverlay":{const r=a.get(t.id);r&&e.mapImages.push(r);break}}e.fullExtent=_([e])}}));const y=_(r);return{folders:t,sublayers:r,extent:y}}function b(e,t,r,o){const n=i.id?.findCredential(e);e=(0,a.fl)(e,{token:n?.token});const u=s.default.kmlServiceUrl;return(0,l.Z)(u,{query:{url:e,model:"simple",folders:"",refresh:0!==r||void 0,outSR:JSON.stringify(t)},responseType:"json",signal:o})}function m(e,t,r=null,s=[]){const i=[],o={},l=t.sublayers,n=new Set(t.folders.map((e=>e.id)));return l.forEach((t=>{const l=new e;if(r?l.read(t,r):l.read(t),s.length&&n.has(l.id)&&(l.visible=s.includes(l.id)),o[t.id]=l,null!=t.parentFolderId&&-1!==t.parentFolderId){const e=o[t.parentFolderId];e.sublayers||(e.sublayers=[]),e.sublayers?.unshift(l)}else i.unshift(l)})),i}function v(e,t,r){r.forEach((r=>{e.set(r.attributes[t],r)}))}async function g(e){const t=h.Z.fromJSON(e.featureSet).features,r=e.layerDefinition,s=(0,f.i)(r.drawingInfo.renderer),i=o.Z.fromJSON(e.popupInfo),l=[];for(const e of t){const t=await s.getSymbolAsync(e);e.symbol=t,e.popupTemplate=i,e.visible=!0,l.push(e)}return l}function _(e){const t=(0,y.Ue)(y.G_),r=(0,y.Ue)(y.G_);for(const s of e){if(s.polygons?.featureSet?.features)for(const e of s.polygons.featureSet.features)(0,p.Yg)(t,e.geometry),(0,y.TC)(r,t);if(s.polylines?.featureSet?.features)for(const e of s.polylines.featureSet.features)(0,p.Yg)(t,e.geometry),(0,y.TC)(r,t);if(s.points?.featureSet?.features)for(const e of s.points.featureSet.features)(0,p.Yg)(t,e.geometry),(0,y.TC)(r,t);if(s.mapImages)for(const e of s.mapImages)(0,p.Yg)(t,e.extent),(0,y.TC)(r,t)}return(0,y.fS)(r,y.G_)?void 0:{xmin:r[0],ymin:r[1],zmin:r[2],xmax:r[3],ymax:r[4],zmax:r[5],spatialReference:u.Z.WGS84}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7013.cf8d53511bacdb35f7f6.js b/docs/sentinel1-explorer/7013.cf8d53511bacdb35f7f6.js new file mode 100644 index 00000000..d31ab7ab --- /dev/null +++ b/docs/sentinel1-explorer/7013.cf8d53511bacdb35f7f6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7013],{66318:function(e,t,n){function s(e){return null!=a(e)||null!=o(e)}function r(e){return l.test(e)}function i(e){return a(e)??o(e)}function o(e){const t=new Date(e);return function(e,t){if(Number.isNaN(e.getTime()))return!1;let n=!0;if(c&&/\d+\W*$/.test(t)){const e=t.match(/[a-zA-Z]{2,}/);if(e){let t=!1,s=0;for(;!t&&s<=e.length;)t=!u.test(e[s]),s++;n=!t}}return n}(t,e)?Number.isNaN(t.getTime())?null:t.getTime()-6e4*t.getTimezoneOffset():null}function a(e){const t=l.exec(e);if(!t?.groups)return null;const n=t.groups,s=+n.year,r=+n.month-1,i=+n.day,o=+(n.hours??"0"),a=+(n.minutes??"0"),u=+(n.seconds??"0");if(o>23)return null;if(a>59)return null;if(u>59)return null;const c=n.ms??"0",d=c?+c.padEnd(3,"0").substring(0,3):0;let f;if(n.isUTC||!n.offsetSign)f=Date.UTC(s,r,i,o,a,u,d);else{const e=+n.offsetHours,t=+n.offsetMinutes;f=6e4*("+"===n.offsetSign?-1:1)*(60*e+t)+Date.UTC(s,r,i,o,a,u,d)}return Number.isNaN(f)?null:f}n.d(t,{mu:function(){return r},of:function(){return s},sG:function(){return i}});const l=/^(?:(?-?\d{4,})-(?\d{2})-(?\d{2}))(?:T(?\d{2}):(?\d{2}):(?\d{2})(?:\.(?\d+))?)?(?:(?Z)|(?:(?\+|-)(?\d{2}):(?\d{2})))?$/;const u=/^((jan(uary)?)|(feb(ruary)?)|(mar(ch)?)|(apr(il)?)|(may)|(jun(e)?)|(jul(y)?)|(aug(ust)?)|(sep(tember)?)|(oct(ober)?)|(nov(ember)?)|(dec(ember)?)|(am)|(pm)|(gmt)|(utc))$/i,c=!Number.isNaN(new Date("technology 10").getTime())},94978:function(e,t,n){n.d(t,{Qc:function(){return c},WU:function(){return a},lt:function(){return u}});var s=n(21130),r=n(8108);const i={ar:[".",","],bg:[","," "],bs:[",","."],ca:[",","."],cs:[","," "],da:[",","."],de:[",","."],"de-ch":[".","’"],el:[",","."],en:[".",","],"en-au":[".",","],es:[",","."],"es-mx":[".",","],et:[","," "],fi:[","," "],fr:[","," "],"fr-ch":[","," "],he:[".",","],hi:[".",",","#,##,##0.###"],hr:[",","."],hu:[","," "],id:[",","."],it:[",","."],"it-ch":[".","’"],ja:[".",","],ko:[".",","],lt:[","," "],lv:[","," "],mk:[",","."],nb:[","," "],nl:[",","."],pl:[","," "],pt:[",","."],"pt-pt":[","," "],ro:[",","."],ru:[","," "],sk:[","," "],sl:[",","."],sr:[",","."],sv:[","," "],th:[".",","],tr:[",","."],uk:[","," "],vi:[",","."],zh:[".",","]};function o(e=(0,r.Kd)()){let t=(e=e.toLowerCase())in i;if(!t){const n=e.split("-");n.length>1&&n[0]in i&&(e=n[0],t=!0),t||(e="en")}const[n,s,o="#,##0.###"]=i[e];return{decimal:n,group:s,pattern:o}}function a(e,t){const n=o((t={...t}).locale);t.customs=n;const s=t.pattern||n.pattern;return isNaN(e)||Math.abs(e)===1/0?null:function(e,t,n){const s=(n=n||{}).customs.group,r=n.customs.decimal,i=t.split(";"),o=i[0];if((t=i[e<0?1:0]||"-"+o).includes("%"))e*=100;else if(t.includes("‰"))e*=1e3;else{if(t.includes("¤"))throw new Error("currency notation not supported");if(t.includes("E"))throw new Error("exponential notation not supported")}const a=l,u=o.match(a);if(!u)throw new Error("unable to find a number expression in pattern: "+t);return!1===n.fractional&&(n.places=0),t.replace(a,function(e,t,n){!0===(n=n||{}).places&&(n.places=0),n.places===1/0&&(n.places=6);const s=t.split("."),r="string"==typeof n.places&&n.places.indexOf(",");let i=n.places;r?i=n.places.substring(r+1):+i>=0||(i=(s[1]||[]).length),n.round<0||(e=Number(e.toFixed(Number(i))));const o=String(Math.abs(e)).split("."),a=o[1]||"";if(s[1]||n.places){r&&(n.places=n.places.substring(0,r));const e=void 0!==n.places?n.places:s[1]&&s[1].lastIndexOf("0")+1;+e>a.length&&(o[1]=a.padEnd(Number(e),"0")),+io[0].length&&(o[0]=o[0].padStart(u,"0")),l.includes("#")||(o[0]=o[0].substr(o[0].length-u)));let c,d,f=s[0].lastIndexOf(",");if(-1!==f){c=s[0].length-f-1;const e=s[0].substr(0,f);f=e.lastIndexOf(","),-1!==f&&(d=e.length-f-1)}const p=[];for(let e=o[0];e;){const t=e.length-c;p.push(t>0?e.substr(t):e),e=t>0?e.slice(0,t):"",d&&(c=d,d=void 0)}return o[0]=p.reverse().join(n.group||","),o.join(n.decimal||".")}(e,u[0],{decimal:r,group:s,places:n.places,round:n.round}))}(e,s,t)}const l=/[#0,]*[#0](?:\.0*#*)?/;function u(e){const t=o((e=e||{}).locale),n=e.pattern||t.pattern,r=t.group,i=t.decimal;let a=1;if(n.includes("%"))a/=100;else if(n.includes("‰"))a/=1e3;else if(n.includes("¤"))throw new Error("currency notation not supported");const u=n.split(";");1===u.length&&u.push("-"+u[0]);const c=f(u,(t=>(t="(?:"+(0,s.Qs)(t,".")+")").replace(l,(t=>{const n={signed:!1,separator:e.strict?r:[r,""],fractional:e.fractional,decimal:i,exponent:!1},s=t.split(".");let o=e.places;1===s.length&&1!==a&&(s[1]="###"),1===s.length||0===o?n.fractional=!1:(void 0===o&&(o=e.pattern?s[1].lastIndexOf("0")+1:1/0),o&&null==e.fractional&&(n.fractional=!0),!e.places&&+o1&&(n.groupSize=l.pop().length,l.length>1&&(n.groupSize2=l.pop().length)),"("+function(e){"places"in(e=e||{})||(e.places=1/0),"string"!=typeof e.decimal&&(e.decimal="."),"fractional"in e&&!String(e.places).startsWith("0")||(e.fractional=[!0,!1]),"exponent"in e||(e.exponent=[!0,!1]),"eSigned"in e||(e.eSigned=[!0,!1]);const t=d(e),n=f(e.fractional,(t=>{let n="";return t&&0!==e.places&&(n="\\"+e.decimal,e.places===1/0?n="(?:"+n+"\\d+)?":n+="\\d{"+e.places+"}"),n}),!0);let s=t+n;return n&&(s="(?:(?:"+s+")|(?:"+n+"))"),s+f(e.exponent,(t=>t?"([eE]"+d({signed:e.eSigned})+")":""))}(n)+")"}))),!0);return{regexp:c.replaceAll(/[\xa0 ]/g,"[\\s\\xa0]"),group:r,decimal:i,factor:a}}function c(e,t){const n=u(t),s=new RegExp("^"+n.regexp+"$").exec(e);if(!s)return NaN;let r=s[1];if(!s[1]){if(!s[2])return NaN;r=s[2],n.factor*=-1}return r=r.replaceAll(new RegExp("["+n.group+"\\s\\xa0]","g"),"").replace(n.decimal,"."),Number(r)*n.factor}function d(e){return"signed"in(e=e||{})||(e.signed=[!0,!1]),"separator"in e?"groupSize"in e||(e.groupSize=3):e.separator="",f(e.signed,(e=>e?"[-+]":""),!0)+f(e.separator,(t=>{if(!t)return"(?:\\d+)";" "===(t=(0,s.Qs)(t))?t="\\s":" "===t&&(t="\\s\\xa0");const n=e.groupSize,r=e.groupSize2;if(r){const e="(?:0|[1-9]\\d{0,"+(r-1)+"}(?:["+t+"]\\d{"+r+"})*["+t+"]\\d{"+n+"})";return n-r>0?"(?:"+e+"|(?:0|[1-9]\\d{0,"+(n-1)+"}))":e}return"(?:0|[1-9]\\d{0,"+(n-1)+"}(?:["+t+"]\\d{"+n+"})*)"}),!0)}const f=(e,t,n)=>{if(!(e instanceof Array))return t(e);const s=[];for(let n=0;n"("+(t?"?:":"")+e+")"},69400:function(e,t,n){n.d(t,{Z:function(){return h}});var s=n(7753),r=n(70375),i=n(31355),o=n(13802),a=n(37116),l=n(24568),u=n(12065),c=n(117),d=n(28098),f=n(12102);const p=(0,a.Ue)();class h{constructor(e){this.geometryInfo=e,this._boundsStore=new c.H,this._featuresById=new Map,this._markedIds=new Set,this.events=new i.Z,this.featureAdapter=f.n}get geometryType(){return this.geometryInfo.geometryType}get hasM(){return this.geometryInfo.hasM}get hasZ(){return this.geometryInfo.hasZ}get numFeatures(){return this._featuresById.size}get fullBounds(){return this._boundsStore.fullBounds}get storeStatistics(){let e=0;return this._featuresById.forEach((t=>{null!=t.geometry&&t.geometry.coords&&(e+=t.geometry.coords.length)})),{featureCount:this._featuresById.size,vertexCount:e/(this.hasZ?this.hasM?4:3:this.hasM?3:2)}}getFullExtent(e){if(null==this.fullBounds)return null;const[t,n,s,r]=this.fullBounds;return{xmin:t,ymin:n,xmax:s,ymax:r,spatialReference:(0,d.S2)(e)}}add(e){this._add(e),this._emitChanged()}addMany(e){for(const t of e)this._add(t);this._emitChanged()}upsertMany(e){const t=e.map((e=>this._upsert(e)));return this._emitChanged(),t.filter(s.pC)}clear(){this._featuresById.clear(),this._boundsStore.clear(),this._emitChanged()}removeById(e){const t=this._featuresById.get(e);return t?(this._remove(t),this._emitChanged(),t):null}removeManyById(e){this._boundsStore.invalidateIndex();for(const t of e){const e=this._featuresById.get(t);e&&this._remove(e)}this._emitChanged()}forEachBounds(e,t){for(const n of e){const e=this._boundsStore.get(n.objectId);e&&t((0,a.JR)(p,e))}}getFeature(e){return this._featuresById.get(e)}has(e){return this._featuresById.has(e)}forEach(e){this._featuresById.forEach((t=>e(t)))}forEachInBounds(e,t){this._boundsStore.forEachInBounds(e,(e=>{t(this._featuresById.get(e))}))}startMarkingUsedFeatures(){this._boundsStore.invalidateIndex(),this._markedIds.clear()}sweep(){let e=!1;this._featuresById.forEach(((t,n)=>{this._markedIds.has(n)||(e=!0,this._remove(t))})),this._markedIds.clear(),e&&this._emitChanged()}_emitChanged(){this.events.emit("changed",void 0)}_add(e){if(!e)return;const t=e.objectId;if(null==t)return void o.Z.getLogger("esri.layers.graphics.data.FeatureStore").error(new r.Z("featurestore:invalid-feature","feature id is missing",{feature:e}));const n=this._featuresById.get(t);let s;if(this._markedIds.add(t),n?(e.displayId=n.displayId,s=this._boundsStore.get(t),this._boundsStore.delete(t)):null!=this.onFeatureAdd&&this.onFeatureAdd(e),!e.geometry?.coords?.length)return this._boundsStore.set(t,null),void this._featuresById.set(t,e);s=(0,u.$)(null!=s?s:(0,l.Ue)(),e.geometry,this.geometryInfo.hasZ,this.geometryInfo.hasM),null!=s&&this._boundsStore.set(t,s),this._featuresById.set(t,e)}_upsert(e){const t=e?.objectId;if(null==t)return o.Z.getLogger("esri.layers.graphics.data.FeatureStore").error(new r.Z("featurestore:invalid-feature","feature id is missing",{feature:e})),null;const n=this._featuresById.get(t);if(!n)return this._add(e),e;this._markedIds.add(t);const{geometry:s,attributes:i}=e;for(const e in i)n.attributes[e]=i[e];return s&&(n.geometry=s,this._boundsStore.set(t,(0,u.$)((0,l.Ue)(),s,this.geometryInfo.hasZ,this.geometryInfo.hasM)??null)),n}_remove(e){null!=this.onFeatureRemove&&this.onFeatureRemove(e);const t=e.objectId;return this._markedIds.delete(t),this._boundsStore.delete(t),this._featuresById.delete(t),e}}},57013:function(e,t,n){n.r(t),n.d(t,{default:function(){return Q}});n(91957);var s=n(66341),r=n(67979),i=n(66318),o=n(70375),a=n(13802),l=n(78668),u=n(3466),c=n(28105),d=n(61107),f=n(35925),p=n(39536),h=n(59958),m=n(15540),g=n(69400),y=n(66069),_=n(66608),I=n(94978),b=n(14845);const F=/^\s*"([\S\s]*)"\s*$/,x=/""/g,N="\n",w=[","," ",";","|","\t"];function*S(e,t,n){let s=0;for(;s<=e.length;){const r=e.indexOf(t,s),i=e.substring(s,r>-1?r:void 0);s+=i.length+t.length,n&&!i.trim()||(yield i)}}function E(e){const t=e.includes("\r\n")?"\r\n":N;return S(e,t,!0)}function T(e,t){return S(e,t,!1)}function v(e,t,n){e=e.trim(),t=t?.trim();const s=[],r=Array.from(new Set([n?.delimiter,...w])).filter((e=>null!=e));for(const n of r){const r=Z(e,n).length,i=Z(t,n).length??r;r>1&&s.push({weight:Math.min(r,i),delimiter:n})}const i=s.sort((({weight:e},{weight:t})=>t-e)).map((({delimiter:e})=>e));for(const t of i){const s=B(O(e,t).names,n?.longitudeField,n?.latitudeField);if(s.longitudeFieldName&&s.latitudeFieldName)return{delimiter:t,locationInfo:s}}return{delimiter:i[0],locationInfo:null}}function*C(e,t,n,s=(()=>Object.create(null))){const r=E(e);r.next();let i="",o="",a=0,l=s(),u=0;e:for(const e of r){const r=T(e,n);for(const e of r)if(i+=o+e,o="",a+=k(e),a%2==0){if(a>0){const e=F.exec(i);if(!e){l=s(),u=0,i="",a=0;continue e}l[t[u]]=e[1].replaceAll(x,'"'),u++}else l[t[u]]=i,u++;i="",a=0}else o=n;0===a?(yield l,l=s(),u=0):o=N}}function O(e,t){const n=Z(e,t).filter((e=>null!=e)),s=n.map((e=>(0,b.q6)(e)));for(let e=s.length-1;e>=0;e--)s[e]||(s.splice(e,1),n.splice(e,1));return{names:s,aliases:n}}function Z(e,t){if(!e?.length)return[];const n=[];let s="",r="",i=0;const o=T(e,t);for(const e of o)if(s+=r+e,r="",i+=k(e),i%2==0){if(i>0){const e=F.exec(s);e&&n.push(e[1].replaceAll(x,'"'))}else n.push(s);s="",i=0}else r=t;return n}function k(e){let t=0,n=0;for(n=e.indexOf('"',n);n>=0;)t++,n=e.indexOf('"',n+1);return t}function B(e,t,n){t=(0,b.q6)(t)?.toLowerCase(),n=(0,b.q6)(n)?.toLowerCase();const s=e.map((e=>e.toLowerCase())),r=t?e[s.indexOf(t)]:null,i=n?e[s.indexOf(n)]:null;return{longitudeFieldName:r||e[s.indexOf(M.find((e=>s.includes(e))))],latitudeFieldName:i||e[s.indexOf(D.find((e=>s.includes(e))))]}}function q(e){if(!e.length)return"string";const t=/[^+\-.,0-9]/;return e.map((e=>{if(""!==e){if(!t.test(e)){let t=A(e);if(!isNaN(t))return/[.,]/.test(e)||!Number.isInteger(t)||t>214783647||t<-214783648?"double":"integer";if(e.includes("E")){if(t=Number(e),!Number.isNaN(t))return"double";if(e.includes(",")&&(e=e.replace(",","."),t=Number(e),!Number.isNaN(t)))return"double"}}return(0,i.of)(e)?"date":"string"}})).reduce(((e,t)=>void 0===e?t:void 0===t?e:e===t?t:"string"===e||"string"===t?"string":"double"===e||"double"===t?"double":void 0))}const A=function(){const e=(0,I.lt)(),t=new RegExp("^"+e.regexp+"$"),n=new RegExp("["+e.group+"\\s\\xa0]","g"),s=e.factor;return r=>{const i=t.exec(r);if(e.factor=s,!i)return NaN;let o=i[1];if(!i[1]){if(!i[2])return NaN;o=i[2],e.factor*=-1}return o=o.replace(n,"").replace(e.decimal,"."),+o*e.factor}}(),D=["lat","latitude","latitude83","latdecdeg","lat_dd","y","ycenter","point_y"],M=["lon","lng","long","longitude","longitude83","longdecdeg","long_dd","x","xcenter","point_x"];var j=n(40400),R=n(28790),U=n(72559),$=n(14685);const G=(0,j.bU)("esriGeometryPoint"),P=["csv"],z=[0,0];class L{constructor(e,t){this.x=e,this.y=t}}class Q{constructor(){this._queryEngine=null,this._snapshotFeatures=async e=>{const t=await this._fetch(e);return this._createFeatures(t)}}destroy(){this._queryEngine?.destroy(),this._queryEngine=null}async load(e,t={}){this._loadOptions=e;const[n]=await Promise.all([this._fetch(t.signal),this._checkProjection(e?.parsingOptions?.spatialReference)]),s=function(e,t){const n=t.parsingOptions||{},s={delimiter:n.delimiter,layerDefinition:null,locationInfo:{latitudeFieldName:n.latitudeField,longitudeFieldName:n.longitudeField}},r=s.layerDefinition={name:(0,u.vt)(t.url,P)||"csv",dateFieldsTimeReference:{timeZoneIANA:U.pt},drawingInfo:G,geometryType:"esriGeometryPoint",objectIdField:null,fields:[],timeInfo:n.timeInfo,extent:{xmin:Number.POSITIVE_INFINITY,ymin:Number.POSITIVE_INFINITY,xmax:Number.NEGATIVE_INFINITY,ymax:Number.NEGATIVE_INFINITY,spatialReference:n.spatialReference||{wkid:4326}}},i=E(e),a=i.next().value?.trim(),l=i.next().value?.trim();if(!a)throw new o.Z("csv-layer:empty-csv","CSV is empty",{csv:e});const{delimiter:c,locationInfo:d}=v(a,l,n);if(!c)throw new o.Z("csv-layer:invalid-delimiter","Unable to detect the delimiter from CSV",{firstLine:a,secondLine:l,parsingOptions:n});if(!d)throw new o.Z("csv-layer:location-fields-not-found","Unable to identify latitude and longitude fields from the CSV file",{firstLine:a,secondLine:l,parsingOptions:n});s.locationInfo=d,s.delimiter=c;const{names:f,aliases:p}=O(a,c),h=function(e,t,n,s,r){const i=[],o=C(e,n,t),a=[];for(const e of o){if(10===a.length)break;a.push(e)}for(let e=0;ee[t])))){case"integer":e="esriFieldTypeInteger";break;case"double":e="esriFieldTypeDouble";break;case"date":e="esriFieldTypeDate";break;default:e="esriFieldTypeString"}i.push({name:t,type:e,alias:o,length:(0,b.ZR)(e)})}}return i}(e,s.delimiter,f,p,s.locationInfo);if(n.fields?.length){const e=new R.Z(n.fields);for(const t of h){const n=e.get(t.name);n&&Object.assign(t,n)}}if(!h.some((e=>"esriFieldTypeOID"===e.type&&(r.objectIdField=e.name,!0)))){const e={name:"__OBJECTID",alias:"__OBJECTID",type:"esriFieldTypeOID",editable:!1,nullable:!1};r.objectIdField=e.name,h.unshift(e)}r.fields=h;const m=new R.Z(r.fields);if(s.locationInfo&&(s.locationInfo.latitudeFieldName=m.get(s.locationInfo.latitudeFieldName).name,s.locationInfo.longitudeFieldName=m.get(s.locationInfo.longitudeFieldName).name),r.timeInfo){const e=r.timeInfo;if(e.startTimeField){const t=m.get(e.startTimeField);t?(e.startTimeField=t.name,t.type="esriFieldTypeDate"):e.startTimeField=null}if(e.endTimeField){const t=m.get(e.endTimeField);t?(e.endTimeField=t.name,t.type="esriFieldTypeDate"):e.endTimeField=null}if(e.trackIdField){const t=m.get(e.trackIdField);e.trackIdField=t?t.name:null}e.startTimeField||e.endTimeField||(r.timeInfo=null)}return s}(n,e);this._locationInfo=s.locationInfo,this._delimiter=s.delimiter,this._queryEngine=this._createQueryEngine(s);const r=await this._createFeatures(n);this._queryEngine.featureStore.addMany(r);const{fullExtent:i,timeExtent:a}=await this._queryEngine.fetchRecomputedExtents();if(s.layerDefinition.extent=i,a){const{start:e,end:t}=a;s.layerDefinition.timeInfo.timeExtent=[e,t]}return s}async applyEdits(){throw new o.Z("csv-layer:editing-not-supported","applyEdits() is not supported on CSVLayer")}async queryFeatures(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQuery(e,t.signal)}async queryFeatureCount(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForCount(e,t.signal)}async queryObjectIds(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForIds(e,t.signal)}async queryExtent(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForExtent(e,t.signal)}async querySnapping(e,t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForSnapping(e,t.signal)}async refresh(e){this._loadOptions.customParameters=e,this._snapshotTask?.abort(),this._snapshotTask=(0,r.vr)(this._snapshotFeatures),this._snapshotTask.promise.then((e=>{this._queryEngine.featureStore.clear(),e&&this._queryEngine.featureStore.addMany(e)}),(e=>{this._queryEngine.featureStore.clear(),(0,l.D_)(e)||a.Z.getLogger("esri.layers.CSVLayer").error(new o.Z("csv-layer:refresh","An error occurred during refresh",{error:e}))})),await this._waitSnapshotComplete();const{fullExtent:t,timeExtent:n}=await this._queryEngine.fetchRecomputedExtents();return{extent:t,timeExtent:n}}async _waitSnapshotComplete(){if(this._snapshotTask&&!this._snapshotTask.finished){try{await this._snapshotTask.promise}catch{}return this._waitSnapshotComplete()}}async _fetch(e){const{url:t,customParameters:n}=this._loadOptions;if(!t)throw new o.Z("csv-layer:invalid-source","url not defined");const r=(0,u.mN)(t);return(await(0,s.Z)(r.path,{query:{...r.query,...n},responseType:"text",signal:e})).data}_createQueryEngine(e){const{objectIdField:t,fields:n,extent:s,timeInfo:r}=e.layerDefinition,i=new g.Z({geometryType:"esriGeometryPoint",hasM:!1,hasZ:!1});return new _.q({fieldsIndex:R.Z.fromLayerJSON({fields:n,dateFieldsTimeReference:{timeZoneIANA:U.pt}}),geometryType:"esriGeometryPoint",hasM:!1,hasZ:!1,timeInfo:r,objectIdField:t,spatialReference:s.spatialReference||{wkid:4326},cacheSpatialQueries:!0,featureStore:i})}async _createFeatures(e){const{latitudeFieldName:t,longitudeFieldName:n}=this._locationInfo,{objectIdField:s,fieldsIndex:r,spatialReference:o}=this._queryEngine;let a=[];const l=[],u=r.fields.filter((e=>e.name!==s)).map((e=>e.name));let g=0;const y={};for(const e of r.fields)if("esriFieldTypeOID"!==e.type&&"esriFieldTypeGlobalID"!==e.type){const t=(0,b.os)(e);void 0!==t&&(y[e.name]=t)}const _=C(e,u,this._delimiter,(0,j.Dm)(y,s));for(const e of _){const o=this._parseCoordinateValue(e[t]),u=this._parseCoordinateValue(e[n]);if(null!=u&&null!=o&&!isNaN(o)&&!isNaN(u)){e[t]=o,e[n]=u;for(const s in e)if(s!==t&&s!==n)if(r.isDateField(s))e[s]=(0,i.sG)(e[s]);else if(r.isNumericField(s)){const t=A(e[s]);isNaN(t)?e[s]=null:e[s]=t}e[s]=g,g++,a.push(new L(u,o)),l.push(e)}}if(!(0,f.fS)({wkid:4326},o))if((0,f.sS)(o))for(const e of a)[e.x,e.y]=(0,p.hG)(e.x,e.y,z);else a=(0,c.projectMany)(d.N,a,$.Z.WGS84,o,null,null);const I=[];for(let e=0;e181)&&(t=parseFloat(e)),t}async _checkProjection(e){try{await(0,y._W)(f.YU,e)}catch{throw new o.Z("csv-layer:projection-not-supported","Projection not supported")}}}},40400:function(e,t,n){n.d(t,{Dm:function(){return c},Hq:function(){return d},MS:function(){return f},bU:function(){return a}});var s=n(39994),r=n(67134),i=n(10287),o=n(86094);function a(e){return{renderer:{type:"simple",symbol:"esriGeometryPoint"===e||"esriGeometryMultipoint"===e?o.I4:"esriGeometryPolyline"===e?o.ET:o.lF}}}const l=/^[_$a-zA-Z][_$a-zA-Z0-9]*$/;let u=1;function c(e,t){if((0,s.Z)("esri-csp-restrictions"))return()=>({[t]:null,...e});try{let n=`this.${t} = null;`;for(const t in e)n+=`this${l.test(t)?`.${t}`:`["${t}"]`} = ${JSON.stringify(e[t])};`;const s=new Function(`\n return class AttributesClass$${u++} {\n constructor() {\n ${n};\n }\n }\n `)();return()=>new s}catch(n){return()=>({[t]:null,...e})}}function d(e={}){return[{name:"New Feature",description:"",prototype:{attributes:(0,r.d9)(e)}}]}function f(e,t){return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:e},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:t,supportsDelete:t,supportsEditing:t,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:t,supportsExceedsLimitStatistics:!0,supportsAsyncConvert3D:!1},query:i.g,queryRelated:{supportsCount:!0,supportsOrderBy:!0,supportsPagination:!0,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsGeometryUpdate:t,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7100.47f6937deb1dbb99d155.js b/docs/sentinel1-explorer/7100.47f6937deb1dbb99d155.js new file mode 100644 index 00000000..8cb21fd4 --- /dev/null +++ b/docs/sentinel1-explorer/7100.47f6937deb1dbb99d155.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7100],{56692:function(e,t,r){r.d(t,{SI:function(){return s},qF:function(){return a},s_:function(){return n}});r(39994);var i=r(13802);function s(e,t,r){if(null==e)return null;const s=t.readArcadeFeature();t.contextTimeZone=r.$view?.timeZone;try{return e.evaluate({...r,$feature:s},e.services)}catch(e){return i.Z.getLogger("esri.views.2d.support.arcadeOnDemand").warn("Feature arcade evaluation failed:",e),null}}function n(e){return null==e||e===1/0||e===-1/0||"number"==typeof e&&isNaN(e)}function a(e,t,r,i){if(null==e)return null!=i?i:null;const s=t.readArcadeFeature();t.contextTimeZone=r.$view?.timeZone;const a=e.evaluate({...r,$feature:s},e.services);return n(a)?null!=i?i:null:a}},7964:function(e,t,r){r.d(t,{c:function(){return n},f:function(){return s}});var i=r(21130);function s(e,t){let r;if("string"==typeof e)r=(0,i.hP)(e+`-seed(${t})`);else{let i=12;r=e^t;do{r=107*(r>>8^r)+i|0}while(0!=--i)}return(1+r/(1<<31))/2}function n(e){return Math.floor(s(e,a)*o)}const a=53290320,o=10},18470:function(e,t,r){r.d(t,{_:function(){return o}});var i=r(72797),s=r(21059);class n{get length(){return this._pos}constructor(e,t){this._pos=0;const r=t?this._roundToNearest(t,e.BYTES_PER_ELEMENT):40;this._array=new ArrayBuffer(r),this._buffer=new e(this._array),this._ctor=e,this._i16View=new Int16Array(this._array)}_roundToNearest(e,t){const r=Math.round(e);return 1===t?r:r+(t-r%t)}_ensureSize(e){if(this._pos+e>=this._buffer.length){const t=this._roundToNearest(1.25*(this._array.byteLength+e*this._buffer.BYTES_PER_ELEMENT),this._buffer.BYTES_PER_ELEMENT),r=new ArrayBuffer(t),i=new this._ctor(r);i.set(this._buffer,0),this._array=r,this._buffer=i,this._i16View=new Int16Array(this._array)}}ensureSize(e){this._ensureSize(e)}writeF32(e){this._ensureSize(1);const t=this._pos;return new Float32Array(this._array,4*this._pos,1)[0]=e,this._pos++,t}push(e){this._ensureSize(1);const t=this._pos;return this._buffer[this._pos++]=e,t}writeFixed(e){this._buffer[this._pos++]=e}setValue(e,t){this._buffer[e]=t}i1616Add(e,t,r){this._i16View[2*e]+=t,this._i16View[2*e+1]+=r}getValue(e){return this._buffer[e]}getValueF32(e){return new Float32Array(this._array,4*e,1)[0]}incr(e){if(this._buffer.length"pos"===e.name||"position"===e.name));if(!u)throw new Error("InternalError: Unable to find position attribute");this.layout={...t,position:u},this._indices=new n(Uint32Array,s),this._vertices=new n(Uint32Array,a),this._metrics=new n(Uint32Array,0),this._metricCountOffset=this._metrics.push(0),this._strideInt=o,this._instanceId=e}serialize(e){const t=this._indices.buffer(),r=this._vertices.buffer(),i=this._metrics.length?this._metrics.buffer():null;return e.push(t,r),{instanceId:this._instanceId,layout:this.layout,indices:t,vertices:r,metrics:i}}get strideInt(){return this._strideInt}get vertexCount(){return this._vertices.length/this._strideInt}get indexCount(){return this._indices.length}get indexWriter(){return this._indices}get vertexWriter(){return this._vertices}get metricWriter(){return this._metrics}vertexEnsureSize(e){this._vertices.ensureSize(e)}indexEnsureSize(e){this._indices.ensureSize(e)}writeIndex(e){this._indices.push(e)}writeVertex(e){this._vertices.push(e)}writeVertexRegion(e){this._vertices.writeRegion(e)}writeVertexF32(e){this._vertices.writeF32(e)}writeMetric(e){this._metrics.incr(this._metricCountOffset),e.serialize(this._metrics)}}class o{constructor(e,t=0){this._id=e,this._sizeHint=t,this._entityRecordCountOffset=0,this._entityCountOffset=0,this._entityIdIndex=0,this._entitySortKeyIndex=0,this._instanceIdToVertexData=new Map,this._recordIndexStart=0,this._recordIndexCount=0,this._recordVertexStart=0,this._recordVertexCount=0,this._current={metric:null,writer:null,start:0,sortKey:0,instanceId:0,layoutHash:0,indexStart:0,vertexStart:0,textureKey:0,metricBoxLenPointer:0},this._entities=new n(Uint32Array,this._sizeHint*i.Z.byteSizeHint),this._entityCountOffset=this._entities.push(0)}get id(){return this._id}serialize(){const e=new Array,t=[],r=this._entities.buffer();for(const r of this._instanceIdToVertexData.values())t.push(r.serialize(e));return{message:{data:t,entities:r},transferList:e}}vertexCount(){return this._current.writer?.vertexCount??0}indexCount(){return this._current.writer?.indexCount??0}vertexEnsureSize(e){this._current.writer.vertexEnsureSize(e)}indexEnsureSize(e){this._current.writer.indexEnsureSize(e)}vertexWrite(e){this._current.writer.writeVertex(e)}vertexWriteRegion(e){this._current.writer.writeVertexRegion(e)}vertexWriteF32(e){this._current.writer.writeVertexF32(e)}recordBounds(e,t,r,i){}indexWrite(e){this._current.writer.writeIndex(e)}metricStart(e){this._current.metric=e}metricEnd(){const e=this._current.writer;this._current.metric.bounds.length&&e.writeMetric(this._current.metric)}metricBoxWrite(e){this._current.metric.bounds.push(e)}entityStart(e,t=e){this._entityIdIndex=this._entities.push(e),this._entitySortKeyIndex=this._entities.writeF32(t),this._entityRecordCountOffset=this._entities.push(0)}entityRecordCount(){return this._entities.getValue(this._entityRecordCountOffset)}entityEnd(){0===this.entityRecordCount()?this._entities.seek(this._entityIdIndex):this._entities.incr(this._entityCountOffset)}recordCount(){return this._entities.getValue(this._entityRecordCountOffset)}recordStart(e,t,r=0){this._current.writer=this._getVertexWriter(e,t),this._current.indexStart=this._current.writer.indexCount,this._current.vertexStart=this._current.writer.vertexCount,this._current.instanceId=e,this._current.layoutHash=t.hash,this._current.textureKey=r}recordEnd(e=0){const t=this._current.vertexStart,r=this._current.writer.vertexCount-t;if(!r)return!1;const i=this._current.indexStart,n=this._current.writer.indexCount-i;return this._recordIndexStart=i,this._recordIndexCount=n,this._recordVertexStart=t,this._recordVertexCount=r,this._entities.incr(this._entityRecordCountOffset),s.Z.write(this._entities,this._current.instanceId,this._current.textureKey,i,n,t,r,e),!0}copyLast(e,t){const r=this._recordVertexStart+this._recordVertexCount;this._entities.incr(this._entityRecordCountOffset),s.Z.write(this._entities,this._current.instanceId,this._current.textureKey,this._recordIndexStart+this._recordIndexCount,this._recordIndexCount,r,this._recordVertexCount,0);const i=this._current.writer.indexWriter,n=this._current.writer.vertexWriter,a=this._recordIndexStart+this._recordIndexCount,o=this._recordVertexCount;for(let e=this._recordIndexStart;e!==a;e++){const t=i.getValue(e);i.push(t+o)}const u=this._current.writer.layout.stride/Uint32Array.BYTES_PER_ELEMENT,h=this._recordVertexStart*u,c=(this._recordVertexStart+this._recordVertexCount)*u;for(let e=h;e!==c;e++){const t=n.getValue(e);n.push(t)}const d=this._current.writer.layout.position,l=d.packPrecisionFactor??1,f=d.offset/Uint32Array.BYTES_PER_ELEMENT,_=e*l,p=t*l;for(let e=r*u;e<=n.length;e+=u)n.i1616Add(e+f,_,p);this.recordEnd()}copyLastFrom(e,t,r){const i=e._entities.getValue(e._entityIdIndex);if(i!==this._entities.getValue(this._entityIdIndex)){const t=e._entities.getValueF32(e._entitySortKeyIndex);this.entityStart(i,t)}this.recordStart(e._current.instanceId,e._current.writer.layout,e._current.textureKey);const s=this._current.writer.layout.stride/Uint32Array.BYTES_PER_ELEMENT,n=this._current.vertexStart,a=e._current.vertexStart-n,o=this._current.writer.indexWriter,u=this._current.writer.vertexWriter,h=e._current.writer.indexWriter,c=e._current.writer.vertexWriter;for(let t=e._current.indexStart;t!==h.length;t++){const e=h.getValue(t);o.push(e-a)}for(let t=e._current.vertexStart*s;t!==c.length;t++){const e=c.getValue(t);u.push(e)}const d=this._current.writer.layout.position,l=d.packPrecisionFactor??1,f=d.offset/Uint32Array.BYTES_PER_ELEMENT,_=t*l,p=r*l;for(let e=n*s;e<=u.length;e+=s)u.i1616Add(e+f,_,p);this.recordEnd()}_getVertexWriter(e,t){const{stride:r}=t,i=this._instanceIdToVertexData;return i.has(e)||i.set(e,new a(e,t,r,this._sizeHint)),i.get(e)}}},33178:function(e,t,r){r.d(t,{f:function(){return a}});var i=r(21130),s=r(64429);class n{}class a extends n{constructor(e){super(),this._fetcher=e,this._controller=new AbortController,this._pendingIds=new Set,this._pendingRequests=[],this._resourceIdToResource=new Map}destory(){this._controller.abort()}get _abortOptions(){return{signal:this._controller.signal}}enqueueRequest(e){const t=(0,s.IS)(e.resource),r=(0,i.hP)(JSON.stringify(t));return this._pendingIds.has(r)||(this._pendingIds.add(r),this._pendingRequests.push({...e,resourceId:r})),r}async fetchEnqueuedResources(){const e=this._pendingRequests;this._pendingIds.clear(),this._pendingRequests=[];const t=await this._fetcher.fetch(e,this._abortOptions);for(let r=0;r"boolean"!=typeof e&&"number"!=typeof e&&"valueExpressionInfo"in e,_=e=>e.some((e=>{for(const t in e){const r=e[t];if(f(r))return!0}return!1}));class p{static async create(e,t,r){const i={},n=new Map,a=new Map,o=new Map,u=new Map,h=new Map;for(const c in r.params){const p=r.params[c];if(null!=p&&"object"==typeof p)if(Array.isArray(p)){if("object"==typeof p[0])throw new Error(`InternalError: Cannot handle ${c}. Nested array params are not supported`);i[c]=p}else if("valueExpressionInfo"in p){if(p.value){i[c]=p.value;continue}const t=await l(e,p);if(!t){i[c]=p.defaultValue;continue}n.set(c,t),i[c]=null}else switch(p.type){case"cim-effect-infos":if(p.effectInfos.some((e=>e.overrides.length))){a.set(c,{effects:await Promise.all(p.effectInfos.map((async t=>{const r=t.overrides.map((t=>d(e,t)));return{effect:t.effect,compiledOverrides:(await Promise.all(r)).filter(s.pC)}})))});break}i[c]=p.effectInfos.map((e=>e.effect));break;case"cim-marker-placement-info":p.overrides.length&&o.set(c,{placementInfo:p,compiledOverrides:(await Promise.all(p.overrides.map((t=>d(e,t))))).filter(s.pC)}),i[c]=p.placement;break;case"text-rasterization-param":{if(p.overrides.length){const t=p.overrides.map((t=>d(e,t,p.useLegacyLabelEvaluationRules)));u.set(c,{compiledOverrides:(await Promise.all(t)).filter(s.pC),rasterizationParam:p,objectIdToResourceId:new Map});continue}const r={type:"cim-rasterization-info",resource:p.resource};i[c]=await t.fetchResourceImmediate(r)??null;break}case"sprite-rasterization-param":{if(p.overrides.length){const t=p.overrides.map((t=>d(e,t)));u.set(c,{compiledOverrides:(await Promise.all(t)).filter(s.pC),rasterizationParam:p,objectIdToResourceId:new Map});continue}if("animated"===p.resource.type){u.set(c,{compiledOverrides:[],rasterizationParam:p,objectIdToResourceId:new Map});continue}const r={type:"cim-rasterization-info",resource:p.resource};i[c]=await t.fetchResourceImmediate(r)??null;break}case"cim-marker-transform-param":{const{params:t}=p;if(_(t)){const r={compiledMarkerInfos:[]};await Promise.all(t.map((async t=>{const i={props:{}};for(const r in t)if(f(t[r])){const s=await l(e,t[r]);i.compiledExpressionMap||(i.compiledExpressionMap=new Map);const n=i.compiledExpressionMap;s&&n.set(r,s)}else i.props[r]=t[r];r.compiledMarkerInfos.push(i)}))),h.set(c,r)}else i[c]={type:"cim-marker-transform-info",infos:t};break}default:i[c]=p}else i[c]=p}return new p(r,i,n,a,o,u,h)}constructor(e,t,r,i,s,n,a){this.inputMeshParams=e,this._resolvedMeshParams=t,this._dynamicProperties=r,this._dynamicEffectProperties=i,this._dynamicPlacementProperties=s,this._dynamicAsyncProperties=n,this._dynamicTransformProperties=a,this.evaluator=e=>e}get hasDynamicProperties(){return!!(this._dynamicProperties.size||this._dynamicAsyncProperties.size||this._dynamicEffectProperties.size||this._dynamicTransformProperties.size||this._dynamicPlacementProperties.size)}get evaluatedMeshParams(){return this._evaluatedMeshParams||(this._evaluatedMeshParams=this.evaluator(this._resolvedMeshParams)),this._evaluatedMeshParams}enqueueRequest(e,t,r){for(const i of this._dynamicAsyncProperties.values()){const s=(0,a.d9)(i.rasterizationParam.resource);"animated"===i.rasterizationParam.resource.type&&i.rasterizationParam.resource.randomizeStartTime&&(s.primitiveName="__RESERVED__PRIMITIVE__NAME__",s.startGroup=(0,u.c)(t.getObjectId()||0));for(const{primitiveName:e,propertyName:a,computed:u,defaultValue:c,valueExpressionInfo:d}of i.compiledOverrides)try{const n="animated"===i.rasterizationParam.resource.type?s.primitiveName:e;(0,h.mx)(s,n,a,u,t,r,c)}catch(t){o.Z.getLogger("esri.views.2d.engine.webgl.shaderGraph.techniques.mesh.MeshWriterInputEvaluator").errorOnce(new n.Z("invalid-arcade-expression",`Encountered an error when evaluating the arcade expression '${d?.expression}' (primitive: '${e}', property: '${a}')`,t))}const c=e.enqueueRequest({type:"cim-rasterization-info",resource:s});i.objectIdToResourceId.set(t.getObjectId(),c)}}evaluateMeshParams(e,t,r){for(const[e,i]of this._dynamicProperties.entries())this._resolvedMeshParams[e]=i.computed.readWithDefault(t,r,i.defaultValue);for(const[e,i]of this._dynamicPlacementProperties.entries())for(const{computed:s,defaultValue:n,propertyName:a}of i.compiledOverrides){const o=s.readWithDefault(t,r,n);i.placementInfo.placement[a]=o,this._resolvedMeshParams[e]=i.placementInfo.placement}for(const[e,i]of this._dynamicEffectProperties.entries())for(const s of i.effects){for(const{computed:e,defaultValue:i,propertyName:n}of s.compiledOverrides){const a=e.readWithDefault(t,r,i);s.effect[n]=a}this._resolvedMeshParams[e]=i.effects.map((e=>e.effect))}for(const[e,i]of this._dynamicTransformProperties.entries()){const s={type:"cim-marker-transform-info",infos:[]};for(const e of i.compiledMarkerInfos){const i={...e.props};if(e.compiledExpressionMap)for(const[s,n]of e.compiledExpressionMap){const e=n.computed.readWithDefault(t,r,n.defaultValue);i[s]="number"==typeof e||"boolean"==typeof e?e:n.defaultValue}s.infos.push(i)}this._resolvedMeshParams[e]=s}for(const[r,i]of this._dynamicAsyncProperties.entries()){const s=i.objectIdToResourceId.get(t.getObjectId());if(null==s)continue;const n=e.getResource(s);this._resolvedMeshParams[r]=n}return this._evaluatedMeshParams=this.evaluator(this._resolvedMeshParams),this.evaluatedMeshParams}}var m=r(21606);async function y(e,t,r,i,s,n,a){const o=m.U[r],u=await p.create(e,t,s),h=new o.constructor(i,u,n,a);return await h.loadDependencies(),h}async function g(e,t,r,s){return Promise.all(r.map((r=>y(e,t,r.meshWriterName,(0,i.G)(r.id),r.options,s,r.optionalAttributes))))}},40989:function(e,t,r){r.d(t,{t:function(){return i}});class i{getObjectId(e){return e.getObjectId()}getAttributes(e){return e.readAttributes()}getAttribute(e,t){return e.readAttribute(t)}getAttributeAsTimestamp(e,t){return e.readAttributeAsTimestamp(t)}cloneWithGeometry(e,t){return e}getGeometry(e){return e.readGeometryWorldSpace()}getCentroid(e,t){return e.readCentroidForDisplay()}}i.Shared=new i},55507:function(e,t,r){r.d(t,{X:function(){return i}});class i{destroy(){}}},83491:function(e,t,r){r.d(t,{p:function(){return I}});var i=r(70375),s=r(39994),n=r(13802),a=r(27281),o=r(26991),u=r(14266),h=r(88013),c=r(64429),d=r(44255);class l{constructor(e){this.data=e,this._referenceCount=0}increment(){this._referenceCount+=1}decrement(){this._referenceCount-=1}empty(){return 0===this._referenceCount}}class f{constructor(){this._freeIdsGenerationA=[],this._freeIdsGenerationB=[],this._idCounter=1,this._freeIds=this._freeIdsGenerationA,this._objectIdToDisplayId=new Map}createIdForObjectId(e){let t=this._objectIdToDisplayId.get(e);return t?t.increment():(t=new l((0,h.QS)(this._getFreeId(),!1)),t.increment(),this._objectIdToDisplayId.set(e,t)),t.data}releaseIdForObjectId(e){const t=this._objectIdToDisplayId.get(e);t&&(t.decrement(),t.empty()&&(this._objectIdToDisplayId.delete(e),this._freeIds.push(t.data)))}releaseAll(){for(const e of this._objectIdToDisplayId.values())this._freeIds.push(e.data);this._objectIdToDisplayId.clear()}incrementGeneration(){this._freeIds=this._freeIds===this._freeIdsGenerationA?this._freeIdsGenerationB:this._freeIdsGenerationA}_getFreeId(){return this._freeIds.length?this._freeIds.pop():this._idCounter++}}var _=r(45904),p=r(91907);const m=()=>n.Z.getLogger("esri.views.layers.2d.features.support.AttributeStore"),y=((e,t)=>e&&((...e)=>t.warn("DEBUG:",...e))||(()=>null))(!1,m()),g=(0,s.Z)("esri-shared-array-buffer");(0,s.Z)("esri-atomics");class b{constructor(e,t,r){this.size=0,this.texelSize=4,this.dirtyStart=0,this.dirtyEnd=0;const{pixelType:i,layout:s,textureOnly:n}=t;this.textureOnly=n||!1,this.pixelType=i,this.layout=s,this._resetRange(),this.size=e,this.isLocal=r,n||(this.data=this._initData(i,e))}get buffer(){return this.data?.buffer}unsetComponentAllTexels(e,t){const r=this.data;for(let i=0;it)return null;this._resetRange();const i=!this.isLocal,s=this.pixelType,n=this.layout,a=this.data;return{start:e,end:t,data:i&&a.slice(e*r,(t+1)*r)||null,pixelType:s,layout:n}}_initData(e,t){const r=ArrayBuffer,i=(0,c.UK)(e),s=new i(new r(t*t*4*i.BYTES_PER_ELEMENT));for(let e=0;enull))}get referencesScale(){return this._referencesScale}get referencesGeometry(){return this._referencesGeometry}get _signal(){return this._abortController.signal}get hasHighlight(){return this._idsToHighlight.size>0}createDisplayIdForObjectId(e){return this._idGenerator.createIdForObjectId(e)}releaseDisplayIdForObjectId(e){return this._idGenerator.releaseIdForObjectId(e)}incrementDisplayIdGeneration(){this._idGenerator.incrementGeneration()}releaseAllIds(){this._idGenerator.releaseAll()}async update(e,t,r,i,n=0){const o=(0,a.Hg)(this._schema,e);if(this.version=n,o&&((0,s.Z)("esri-2d-update-debug"),this._schema=e,this._attributeComputeInfo=null,this._initialize(),null!=e))if(r&&(this._filters=await Promise.all(e.filters.map((e=>e?_.Z.create({geometryType:r.geometryType,hasM:!1,hasZ:!1,timeInfo:r.timeInfo,fieldsIndex:r.fieldsIndex,spatialReference:i??r.spatialReference,filterJSON:e}):null)))),"subtype"!==e.type)this._attributeComputeInfo={isSubtype:!1,map:new Map},await Promise.all(e.bindings.map((async e=>{const r=await this._bind(t,e);this._referencesGeometry=this._referencesGeometry||(r?.referencesGeometry()??!1),this._referencesScale=this._referencesScale||(r?.referencesScale()??!1)})));else{this._attributeComputeInfo={isSubtype:!0,subtypeField:e.subtypeField,map:new Map},this._referencesScale=!1,this._referencesGeometry=!1;for(const r in e.bindings){const i=e.bindings[r];await Promise.all(i.map((async e=>{const i=await this._bind(t,e,parseInt(r,10));this._referencesGeometry=this._referencesGeometry||(i?.referencesGeometry()??!1),this._referencesScale=this._referencesScale||(i?.referencesScale()??!1)})))}}}setHighlight(e,t){const r=this._getBlock(0);r.unsetComponentAllTexels(0,(1<{const n=1*s%4,a=Math.floor(1*s/4),o=this._getBlock(a+u.wi.VV);let h=e.field?.read(t,r);e.valueRepresentation&&(h=function(e,t){if(!e||!t)return e;switch(t){case"radius":case"distance":return 2*e;case"diameter":case"width":return e;case"area":return Math.sqrt(e)}return e}(h,e.valueRepresentation)),(null===h||isNaN(h)||h===1/0||h===-1/0)&&(h=d.k9),o.setData(i,n,h)})))}get epoch(){return this._epoch}async sendUpdates(){const e=this._blocks.map((e=>null!=e?e.toMessage():null)),t=this._getInitArgs();(0,s.Z)("esri-2d-log-updating"),await this._client.update({initArgs:t,blockData:e,version:this.version,sendUpdateEpoch:this._epoch},this._signal),this._epoch+=1,(0,s.Z)("esri-2d-log-updating")}_ensureSizeForTexel(e){for(;e>=this._size*this._size;)if(this._expand())return}async _bind(e,t,r){const i=await e.createComputedField(t),{valueRepresentation:s}=t,n=this._attributeComputeInfo;if(n.isSubtype){const e=n.map.get(r)??new Map;e.set(t.binding,{field:i,valueRepresentation:s}),n.map.set(r,e)}else n.map.set(t.binding,{field:i,valueRepresentation:s});return i}_getInitArgs(){return this._initialized?null:(this._initialized=!0,this._getBlock(u.wi.Animation),this._getBlock(u.wi.GPGPU),{blockSize:this._size,blockDescriptors:this._blocks.map((e=>null!=e?{textureOnly:e.textureOnly,buffer:e.buffer,pixelType:e.pixelType}:null))})}_getBlock(e){const t=this._blocks[e];if(null!=t)return t;y(`Initializing AttributeBlock at index ${e}`);const r=new b(this._size,this._blockDescriptors[e],this._client.isLocal);return this._blocks[e]=r,this._initialized=!1,r}_expand(){if(this._sizer.replaceAll(/{[^}]*}/g,(t=>{const r=t.slice(1,-1),i=e.metadata.fieldsIndex.get(r);if(null==i)return t;const s=e.readAttribute(r);return null==s?"":g(s,i)}))))}constructor(e){super(),this._evaluator=e}resize(e){}read(e,t){return this._evaluator(e)}readWithDefault(e,t,r){const i=this._evaluator(e);return(0,d.s_)(i)?r:i}referencesScale(){return!1}referencesGeometry(){return!1}}class I extends o.X{constructor(e,t){super(),this._field=e,this._normalizationInfo=t}resize(e){throw new Error("Method not implemented.")}read(e,t){return this._readNormalized(e)}readWithDefault(e,t){return this._readNormalized(e)}referencesScale(){return!1}referencesGeometry(){return!1}_readNormalized(e){const t=e.readAttribute(this._field);if(null==t)return null;const{normalizationField:r,normalizationTotal:i,normalizationType:s}=this._normalizationInfo,n=e.readAttribute(r);switch(s??"esriNormalizeByField"){case"esriNormalizeByField":return n?n?t/n:void 0:null;case"esriNormalizeByLog":return Math.log(t)*Math.LOG10E;case"esriNormalizeByPercentOfTotal":return i?t/i*100:null}}}var x=r(63483),w=r(85652);const S=()=>s.Z.getLogger("esri.views.2d.layers.features.support.ComputedAttributeStorage"),v=4294967295;function T(e,t,r){if(!(e.length>t))for(;e.length<=t;)e.push(r)}class E{constructor(e){this._numerics=[],this._strings=[],this._allocatedSize=256,this._bitsets=[],this._instanceIds=[],this._bounds=[],this._dirtyBitset=this.getBitset(this.createBitset()),this.compilationOptions=e}createBitset(){const e=this._bitsets.length;return this._bitsets.push(x.p.create(this._allocatedSize,a.Ht)),e+1}async createComputedField(e,t=!1){if(e.expression)try{if(!this.compilationOptions)throw new Error("InternalError: Compilation options not defined");return t?b.create(e.expression,this.compilationOptions):await l.create(e.expression,this.compilationOptions)}catch(t){const r=new i.Z("featurelayer","Failed to compile arcade expression",{error:t,expression:e.expression});return S().error(r),null}if(e.normalizationType||e.normalizationField)return new I(e.field,e);if(e.field)return new u(e.field);const r=new i.Z("featurelayer","Unable to create computed field. No expression or field found",{info:e});return S().error(r),null}async createWhereClause(e){return e?(0,w.y)(e,this.compilationOptions.fields):null}getBitset(e){return this._bitsets[e-1]}getComputedNumeric(e,t){return this.getComputedNumericAtIndex(e&a.Ht,0)}setComputedNumeric(e,t,r){return this.setComputedNumericAtIndex(e&a.Ht,r,0)}getComputedString(e,t){return this.getComputedStringAtIndex(e&a.Ht,0)}setComputedString(e,t,r){return this.setComputedStringAtIndex(e&a.Ht,0,r)}getComputedNumericAtIndex(e,t){const r=e&a.Ht;return this._ensureNumeric(t,r),this._numerics[t][r]}setComputedNumericAtIndex(e,t,r){const i=e&a.Ht;this._ensureNumeric(t,i),this._numerics[t][i]=r}getPackedChunkId(e){const t=e&a.Ht;return this._ensureInstanceId(t),this._instanceIds[t]}setPackedChunkId(e,t){const r=e&a.Ht;this._ensureInstanceId(r),this._instanceIds[r]=t}getComputedStringAtIndex(e,t){const r=e&a.Ht;return this._ensureString(t,r),this._strings[t][r]}setComputedStringAtIndex(e,t,r){const i=e&a.Ht;this._ensureString(t,i),this._strings[t][i]=r}getXMin(e){return this._bounds[4*(e&a.Ht)]}getYMin(e){return this._bounds[4*(e&a.Ht)+1]}getXMax(e){return this._bounds[4*(e&a.Ht)+2]}getYMax(e){return this._bounds[4*(e&a.Ht)+3]}setBounds(e,t,r=!1){const i=e&a.Ht;if(!r&&!this._dirtyBitset.has(e))return this._bounds[4*i]!==v;this._dirtyBitset.unset(e);const s=t.readGeometryWorldSpace();if(T(this._bounds,4*i+4,0),!s||!s.coords.length)return this._bounds[4*i]=v,this._bounds[4*i+1]=v,this._bounds[4*i+2]=v,this._bounds[4*i+3]=v,!1;let n=1/0,o=1/0,u=-1/0,h=-1/0;return s.forEachVertex(((e,t)=>{n=Math.min(n,e),o=Math.min(o,t),u=Math.max(u,e),h=Math.max(h,t)})),this._bounds[4*i]=n,this._bounds[4*i+1]=o,this._bounds[4*i+2]=u,this._bounds[4*i+3]=h,!0}getBounds(e,t){const r=this.getXMin(t),i=this.getYMin(t),s=this.getXMax(t),a=this.getYMax(t);return(0,n.bZ)(e,r,i,s,a),r!==v}_ensureNumeric(e,t){this._numerics[e]||(this._numerics[e]=[]),T(this._numerics[e],t,0)}_ensureInstanceId(e){T(this._instanceIds,e,0)}_ensureString(e,t){this._strings[e]||(this._strings[e]=[]),T(this._strings[e],t,null)}}},427:function(e,t,r){r.d(t,{J:function(){return s}});var i=r(55507);class s extends i.X{constructor(e){super(),this._value=e}resize(e){}read(e,t){return this._value}readWithDefault(e,t,r){return this._value}referencesScale(){return!1}referencesGeometry(){return!1}}},45904:function(e,t,r){r.d(t,{Z:function(){return f}});var i=r(70375),s=r(13802),n=r(24568),a=r(79880),o=r(13717),u=r(20592),h=r(53316),c=r(14136),d=r(40989),l=r(85652);class f{constructor(e){this._geometryBounds=(0,n.Ue)(),this._idToVisibility=new Map,this._serviceInfo=e}static async create(e){const t=new f(e);return await t.update(e.filterJSON,e.spatialReference),t}get hash(){return this._hash}check(e){return this._applyFilter(e)}clear(){const e=this._resetAllHiddenIds();return this.update(),{show:e,hide:[]}}invalidate(){this._idToVisibility.forEach(((e,t)=>{this._idToVisibility.set(t,0)}))}setKnownIds(e){for(const t of e)this._idToVisibility.set(t,1)}setTrue(e){const t=[],r=[],i=new Set(e);return this._idToVisibility.forEach(((e,s)=>{const n=!!(1&this._idToVisibility.get(s)),a=i.has(s);!n&&a?t.push(s):n&&!a&&r.push(s),this._idToVisibility.set(s,a?3:0)})),{show:t,hide:r}}createQuery(){const{geometry:e,spatialRel:t,where:r,timeExtent:i,objectIds:s}=this;return c.Z.fromJSON({geometry:e,spatialRel:t,where:r,timeExtent:i,objectIds:s})}async update(e,t){this._hash=JSON.stringify(e);const r=await(0,o.j6)(e,null,t);await Promise.all([this._setGeometryFilter(r),this._setIdFilter(r),this._setAttributeFilter(r),this._setTimeFilter(r)])}async _setAttributeFilter(e){if(!e?.where)return this._clause=null,void(this.where=null);this._clause=await(0,l.y)(e.where,this._serviceInfo.fieldsIndex),this.where=e.where}_setIdFilter(e){this._idsToShow=e?.objectIds&&new Set(e.objectIds),this._idsToHide=e?.hiddenIds&&new Set(e.hiddenIds),this.objectIds=e?.objectIds}async _setGeometryFilter(e){if(!e?.geometry)return this._spatialQueryOperator=null,this.geometry=null,void(this.spatialRel=null);const t=e.geometry,r=e.spatialRel||"esriSpatialRelIntersects",i=await(0,u.cW)(r,t,this._serviceInfo.geometryType,this._serviceInfo.hasZ,this._serviceInfo.hasM);(0,a.$P)(this._geometryBounds,t),this._spatialQueryOperator=i,this.geometry=t,this.spatialRel=r}_setTimeFilter(e){if(this.timeExtent=this._timeOperator=null,e?.timeExtent)if(this._serviceInfo.timeInfo)this.timeExtent=e.timeExtent,this._timeOperator=(0,h.y)(this._serviceInfo.timeInfo,e.timeExtent,d.t.Shared);else{const t=new i.Z("feature-layer-view:time-filter-not-available","Unable to apply time filter, as layer doesn't have time metadata.",e.timeExtent);s.Z.getLogger("esri.views.2d.layers.features.controllers.FeatureFilter").error(t)}}_applyFilter(e){return this._filterByGeometry(e)&&this._filterById(e)&&this._filterByTime(e)&&this._filterByExpression(e)}_filterByExpression(e){return!this.where||this._clause(e)}_filterById(e){return(!this._idsToHide?.size||!this._idsToHide.has(e.getObjectId()))&&(!this._idsToShow?.size||this._idsToShow.has(e.getObjectId()))}_filterByGeometry(e){if(!this.geometry)return!0;const t=e.readGeometryWorldSpace();return!!t&&this._spatialQueryOperator(t)}_filterByTime(e){return null==this._timeOperator||this._timeOperator(e)}_resetAllHiddenIds(){const e=[];return this._idToVisibility.forEach(((t,r)=>{1&t||(this._idToVisibility.set(r,1),e.push(r))})),e}}},60997:function(e,t,r){r.d(t,{A:function(){return n},m:function(){return a}});var i=r(14685),s=r(28790);class n{constructor(e){this._options=e,this._fieldsIndex="fieldsIndex"in e?s.Z.fromJSON(e.fieldsIndex):new s.Z(e.fields),e.spatialReference&&(this._spatialReference=i.Z.fromJSON(e.spatialReference)),this._arcadeSchema={fields:this.fieldsIndex.fields,fieldsIndex:this.fieldsIndex,geometryType:this.geometryType,objectIdField:this.objectIdField,globalIdField:this._options.globalIdField,spatialReference:this._spatialReference,timeInfo:this._options.timeInfo,typeIdField:this._options.typeIdField??void 0,types:this._options.types??void 0,subtypeField:this._options.subtypeField,subtypes:this._options.subtypes??void 0}}get fieldsIndex(){return this._fieldsIndex}get geometryType(){return this._options.geometryType}get timeInfo(){return this._options.timeInfo}get objectIdField(){return this._options.objectIdField}get globalIdField(){return this._options.globalIdField}get arcadeSchema(){return this._arcadeSchema}get spatialReference(){return this._spatialReference}get timeReferenceUnknownClient(){return this._options.timeReferenceUnknownClient}}class a extends n{static create(e){return new a({fields:[],objectIdField:"uid",geometryType:null,spatialReference:e,globalIdField:null,subtypeField:null,subtypes:null,timeInfo:null,typeIdField:null,types:null,timeReferenceUnknownClient:null})}}},28802:function(e,t,r){r.d(t,{j:function(){return s}});var i=r(63483);class s{constructor(e){this._valid=i.p.create(e),this._data=new Array(e)}has(e){return this._valid.has(e)}set(e,t){this._valid.set(e),this._data[e]=t}get(e){return this._data[e]}}},98416:function(e,t,r){r.d(t,{s:function(){return M}});r(91957);var i=r(78053),s=r(39994),n=r(61681),a=r(19980),o=r(62717),u=r(25245),h=r(37116),c=r(55769),d=r(33480),l=r(12065),f=r(59958),_=r(15540),p=r(72559),m=r(28802),y=r(63483),g=r(53736);const b=(0,s.Z)("featurelayer-simplify-thresholds")??[.5,.5,.5,.5],I=b[0],x=b[1],w=b[2],S=b[3],v=(0,s.Z)("featurelayer-simplify-payload-size-factors")??[1,2,4],T=v[0],E=v[1],C=v[2],A=(0,s.Z)("featurelayer-simplify-mobile-factor")??2,F=(0,s.Z)("esri-mobile"),z=4294967295;class M{constructor(e){this.metadata=e,this.type="FeatureSetReader",this._deleted=null,this._joined=[],this._objectIdToIndex=null,this._boundsBuffer=[],this._caches=new Map,this.arcadeDeclaredClass="esri.arcade.Feature",this._contextTimeZone=null}get isEmpty(){return null!=this._deleted&&this._deleted.countSet()===this.getSize()}getAreaSimplificationThreshold(e,t){let r=1;const i=F?A:1;t>4e6?r=C*i:t>1e6?r=E*i:t>5e5?r=T*i:t>1e5&&(r=i);let s=0;return e>4e3?s=S*r:e>2e3?s=w*r:e>100?s=x:e>15&&(s=I),s}parseTimestampOffset(e){return e}getBounds(e){if(function(e,t,r){if(!(e.length>t))for(;e.length<=t;)e.push(r)}(this._boundsBuffer,4*this.getIndex()+4,0),this.getBoundsXMin()===z)return!1;if(0===this.getBoundsXMin()){const t=this.readGeometryWorldSpace();if(!t)return this.setBoundsXMin(z),!1;let r=1/0,i=1/0,s=-1/0,n=-1/0;return t.forEachVertex(((e,t)=>{r=Math.min(r,e),i=Math.min(i,t),s=Math.max(s,e),n=Math.max(n,t)})),this.setBoundsXMin(r),this.setBoundsYMin(i),this.setBoundsXMax(s),this.setBoundsYMax(n),(0,h.bZ)(e,r,i,s,n),!0}const t=this.getBoundsXMin(),r=this.getBoundsYMin(),i=this.getBoundsXMax(),s=this.getBoundsYMax();return(0,h.bZ)(e,t,r,i,s),!0}getBoundsXMin(){return this._boundsBuffer[4*this.getIndex()]}setBoundsXMin(e){this._boundsBuffer[4*this.getIndex()]=e}getBoundsYMin(){return this._boundsBuffer[4*this.getIndex()+1]}setBoundsYMin(e){this._boundsBuffer[4*this.getIndex()+1]=e}getBoundsXMax(){return this._boundsBuffer[4*this.getIndex()+2]}setBoundsXMax(e){this._boundsBuffer[4*this.getIndex()+2]=e}getBoundsYMax(){return this._boundsBuffer[4*this.getIndex()+3]}setBoundsYMax(e){this._boundsBuffer[4*this.getIndex()+3]=e}readAttributeAsTimestamp(e){const t=this.readAttribute(e);return"string"==typeof t?new Date(t).getTime():"number"==typeof t||null==t?t:null}readAttribute(e,t=!1){const r=this._readAttribute(e,t);if(void 0!==r)return r;for(const r of this._joined){r.setIndex(this.getIndex());const i=r._readAttribute(e,t);if(void 0!==i)return i}}readAttributes(){const e=this._readAttributes();for(const t of this._joined){t.setIndex(this.getIndex());const r=t._readAttributes();for(const t of Object.keys(r))e[t]=r[t]}return e}joinAttributes(e){this._joined.push(e)}removeIds(e){if(null==this._objectIdToIndex){const e=new Map,t=this.getCursor();for(;t.next();){const r=t.getObjectId();(0,n.O3)(r),e.set(r,t.getIndex())}this._objectIdToIndex=e}const t=this._objectIdToIndex;for(const r of e.values())t.has(r)&&this._removeAtIndex(t.get(r))}readOptimizedFeatureWorldSpace(){const e=this.readGeometryWorldSpace(),t=this.readAttributes(),r=this.readCentroidWorldSpace(),i=new f.u_(e,t,r);return i.objectId=this.getObjectId(),i.displayId=this.getDisplayId(),i}readLegacyFeatureForDisplay(){const e=this.readCentroidForDisplay();return{attributes:this.readAttributes(),geometry:this.readLegacyGeometryForDisplay(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyFeatureWorldSpace(){const e=this.readCentroidWorldSpace();return{attributes:this.readAttributes(),geometry:this._readLegacyGeometryWorldSpace(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyGeometryForDisplay(){const e=this.readGeometryForDisplay();return(0,l.di)(e,this.geometryType,!1,!1)}readXForDisplay(){return this._readX()}readYForDisplay(){return this._readY()}readXWorldSpace(){const e=this._readX(),t=this.getInTransform();return null==t?e:e*t.scale[0]+t.translate[0]}readYWorldSpace(){const e=this._readY(),t=this.getInTransform();return null==t?e:t.translate[1]-e*t.scale[1]}readGeometryForDisplay(){const e=this._readGeometryDeltaDecoded(!0);if(!e){const e=this._createGeometryFromServerCentroid();return e?e.deltaDecode():null}return e}readGeometryWorldSpace(){let e=this._readGeometry();if(e||(e=this._createGeometryFromServerCentroid()),!e)return null;const t=e.clone(),r=this.getInTransform();return null!=r&&(0,l.$g)(t,t,this.hasZ,this.hasM,r),t}readCentroidForDisplay(){const e=this.readGeometryForDisplay();return e?this._computeDisplayCentroid(e):this._readServerCentroid()}readCentroidWorldSpace(){const e=this.readGeometryForDisplay(),t=e?this._computeDisplayCentroid(e):this._readServerCentroid();if(!t)return null;const r=t.clone(),i=this.getInTransform();return null!=i&&(0,l.$g)(r,r,this.hasZ,this.hasM,i),r}setCache(e){let t=this._caches.get(e);null==t&&(t=new m.j(this.getSize()),this._caches.set(e,t)),this._activeCache=t}setCachedValue(e){this._activeCache.set(this.getIndex(),e)}hasCachedValue(){return this._activeCache.has(this.getIndex())}getCachedValue(){return this._activeCache.get(this.getIndex())}_readGeometryDeltaDecoded(e){const t=this._readGeometry(e);return"esriGeometryPoint"!==this.geometryType&&t&&this.getInTransform()?t.deltaDecode():t}get contextTimeZone(){return this._contextTimeZone}set contextTimeZone(e){this._contextTimeZone=e}readArcadeFeature(){return this}hasField(e){return this.fields.has(e)||this._joined.some((t=>t.hasField(e)))}geometry(){const e=this.readGeometryWorldSpace(),t=(0,l.di)(e,this.geometryType,this.hasZ,this.hasM),r=(0,g.im)(t);if(r){if(!this.metadata.spatialReference)throw new Error("InternalError: Expected spatial reference to be defined");r.spatialReference=this.metadata.spatialReference}return r}autocastArcadeDate(e,t){return t&&t instanceof Date?this.isUnknownDateTimeField(e)?i.iG.unknownDateJSToArcadeDate(t):i.iG.dateJSAndZoneToArcadeDate(t,this.contextTimeZone??p.By):t}isUnknownDateTimeField(e){return this.metadata.fieldsIndex.getTimeZone(e)===p._4}field(e){let t=this.fields.get(e);if(t)switch(t.type){case"date-only":case"esriFieldTypeDateOnly":return a.u.fromReader(this.readAttribute(e,!1));case"time-only":case"esriFieldTypeTimeOnly":return o.n.fromReader(this.readAttribute(e,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return i.iG.fromReaderAsTimeStampOffset(this.readAttribute(e,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(e,this.readAttribute(e,!0));default:return this.readAttribute(e,!1)}for(const r of this._joined)if(r.setIndex(this.getIndex()),t=r.fields.get(e),t)switch(t.type){case"date-only":case"esriFieldTypeDateOnly":return a.u.fromReader(r._readAttribute(e,!1));case"time-only":case"esriFieldTypeTimeOnly":return o.n.fromReader(r._readAttribute(e,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return i.iG.fromReaderAsTimeStampOffset(r._readAttribute(e,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(e,r._readAttribute(e,!0));default:return this.readAttribute(e,!1)}throw new Error(`Field ${e} does not exist`)}setField(e,t){throw new Error("Unable to update feature attribute values, feature is readonly")}keys(){return this.fields.fields.map((e=>e.name))}castToText(e=!1){if(!e)return JSON.stringify(this.readLegacyFeatureForDisplay());const t=this.readLegacyFeatureForDisplay();if(!t)return JSON.stringify(null);const r={geometry:t.geometry,attributes:{...t.attributes??{}}};for(const e in r.attributes){const t=r.attributes[e];t instanceof Date&&(r.attributes[e]=t.getTime())}return JSON.stringify(r)}gdbVersion(){return null}fullSchema(){return this.metadata.arcadeSchema}castAsJson(e=null){return{attributes:this._readAttributes(),geometry:!0===e?.keepGeometryType?this.geometry():this.geometry()?.toJSON()??null}}castAsJsonAsync(e=null,t=null){return Promise.resolve(this.castAsJson(t))}_getExists(){return null==this._deleted||!this._deleted.has(this.getIndex())}_computeDisplayCentroid(e){if(null==this.getInTransform())return(0,d.Y)(new _.Z,e,this.hasM,this.hasZ);const t=u.z.fromOptimized(e,this.geometryType);t.yFactor*=-1;const r=(0,c.r)(t);return r?(r[1]*=-1,new _.Z([],r)):null}copyInto(e){e._joined=this._joined,e._deleted=this._deleted,e._objectIdToIndex=this._objectIdToIndex,e._boundsBuffer=this._boundsBuffer,e._activeCache=this._activeCache,e._caches=this._caches,e._contextTimeZone=this._contextTimeZone}_readLegacyGeometryWorldSpace(){const e=this.readGeometryWorldSpace();return(0,l.di)(e,this.geometryType,!1,!1)}_createGeometryFromServerCentroid(){const e=this._readServerCentroid();if(!e)return null;const[t,r]=e.coords;return this._createQuantizedExtrudedGeometry(t,r)}_createQuantizedExtrudedGeometry(e,t){return"esriGeometryPolyline"===this.geometryType?this._createQuantizedExtrudedLine(e,t):this._createQuantizedExtrudedQuad(e,t)}_createQuantizedExtrudedQuad(e,t){return new _.Z([5],[e-1,t,1,-1,1,1,-1,1,-1,-1])}_createQuantizedExtrudedLine(e,t){return new _.Z([2],[e-1,t+1,1,-1])}_removeAtIndex(e){null==this._deleted&&(this._deleted=y.p.create(this.getSize())),this._deleted.set(e)}}},63483:function(e,t,r){r.d(t,{p:function(){return i}});class i{static fromBuffer(e,t){return new i(e,t)}static create(e,t=4294967295){const r=new Uint32Array(Math.ceil(e/32));return new i(r,t)}constructor(e,t){this._mask=0,this._buf=e,this._mask=t}_getIndex(e){return Math.floor(e/32)}has(e){const t=this._mask&e;return!!(this._buf[this._getIndex(t)]&1<>>=1,i++}}countSet(){let e=0;return this.forEachSet((t=>{e++})),e}}},85652:function(e,t,r){r.d(t,{y:function(){return u}});var i=r(70375),s=r(13802),n=r(84684);const a=()=>s.Z.getLogger("esri.views.2d.layers.features.support.whereUtils"),o={getAttribute:(e,t)=>e.readAttribute(t)};async function u(e,t){try{const r=await(0,n.E)(e,t);if(!r.isStandardized){const e=new i.Z("mapview - bad input","Unable to apply filter's definition expression, as expression is not standardized.",r);a().error(e)}return t=>{const i=t.readArcadeFeature();try{return r.testFeature(i,o)}catch(t){return a().warn("mapview-bad-where-clause","Encountered an error when evaluating where clause",e),!0}}}catch(t){return a().warn("mapview-bad-where-clause","Encountered an error when evaluating where clause",e),e=>!0}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7102.09ce65885e17f04ace1d.js b/docs/sentinel1-explorer/7102.09ce65885e17f04ace1d.js new file mode 100644 index 00000000..ad931814 --- /dev/null +++ b/docs/sentinel1-explorer/7102.09ce65885e17f04ace1d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7102],{97102:function(e,t,n){n.r(t),n.d(t,{default:function(){return Z}});var r=n(36663),i=n(66341),o=n(70375),a=n(13802),s=n(19431),l=n(15842),u=n(78668),p=n(81977),f=(n(39994),n(4157),n(40266)),c=n(86717),y=n(81095),d=n(69442),h=n(91772),m=n(14685),g=n(22349),x=n(38481),b=n(91223),v=n(87232),_=n(63989),w=n(43330),I=n(18241),z=n(95874),A=n(51599),E=n(83772);let L=class extends((0,v.Y)((0,w.q)((0,I.I)((0,z.M)((0,l.R)((0,_.N)((0,b.V)(x.Z)))))))){constructor(e){super(e),this.operationalLayerType="IntegratedMesh3DTilesLayer",this.spatialReference=new m.Z({wkid:4326,vcsWkid:115700}),this.fullExtent=new h.Z(-180,-90,180,90,this.spatialReference),this.url=null,this.type="integrated-mesh-3dtiles",this.path=null,this.minScale=0,this.maxScale=0}set elevationInfo(e){this._set("elevationInfo",e),this._validateElevationInfo()}_verifyArray(e,t){if(!Array.isArray(e)||e.length7972671&&e[7]>7972671&&e[11]>7945940)return}const n=e.root?.transform,r=(0,y.Ue)();if(t.region&&this._verifyArray(t.region,6)){const e=t.region,n=(0,s.BV)(e[0]),r=(0,s.BV)(e[1]),i=e[4],o=(0,s.BV)(e[2]),a=(0,s.BV)(e[3]),l=e[5];this.fullExtent=new h.Z({xmin:n,ymin:r,zmin:i,xmax:o,ymax:a,zmax:l,spatialReference:this.spatialReference})}else if(t.sphere&&this._verifyArray(t.sphere,4)){const e=t.sphere,i=(0,y.al)(e[0],e[1],e[2]),o=e[3]/Math.sqrt(3),a=(0,y.Ue)();(0,c.f)(a,i,(0,y.al)(-o,-o,-o));const s=(0,y.Ue)();if((0,c.g)(s,i,(0,y.al)(o,o,o)),n&&this._verifyArray(n,16)){const e=n;(0,c.e)(r,a,e),(0,c.c)(a,r),(0,c.e)(r,s,e),(0,c.c)(s,r)}(0,g.projectBuffer)(a,d.pn,0,a,m.Z.WGS84,0,1),(0,g.projectBuffer)(s,d.pn,0,s,m.Z.WGS84,0,1);const l=(0,y.Ue)(),u=(0,y.Ue)();(0,c.y)(l,a,s),(0,c.C)(u,a,s),this.fullExtent=new h.Z({xmin:l[0],ymin:l[1],zmin:l[2],xmax:u[0],ymax:u[1],zmax:u[2],spatialReference:this.spatialReference})}else if(t.box&&this._verifyArray(t.box,12)){const e=t.box,r=(0,y.al)(e[0],e[1],e[2]),i=(0,y.al)(e[3],e[4],e[5]),o=(0,y.al)(e[6],e[7],e[8]),a=(0,y.al)(e[9],e[10],e[11]),s=[];for(let e=0;e<8;++e)s.push((0,y.Ue)());if((0,c.g)(s[0],r,i),(0,c.g)(s[0],s[0],o),(0,c.g)(s[0],s[0],a),(0,c.z)(s[1],r,i),(0,c.g)(s[1],s[1],o),(0,c.g)(s[1],s[1],a),(0,c.g)(s[2],r,i),(0,c.z)(s[2],s[2],o),(0,c.g)(s[2],s[2],a),(0,c.z)(s[3],r,i),(0,c.z)(s[3],s[3],o),(0,c.g)(s[3],s[3],a),(0,c.g)(s[4],r,i),(0,c.g)(s[4],s[4],o),(0,c.z)(s[4],s[4],a),(0,c.z)(s[5],r,i),(0,c.g)(s[5],s[5],o),(0,c.z)(s[5],s[5],a),(0,c.g)(s[6],r,i),(0,c.z)(s[6],s[6],o),(0,c.z)(s[6],s[6],a),(0,c.z)(s[7],r,i),(0,c.z)(s[7],s[7],o),(0,c.z)(s[7],s[7],a),n&&this._verifyArray(n,16)){const e=n;for(let t=0;t<8;++t)(0,c.e)(s[t],s[t],e)}const l=(0,y.al)(Number.MIN_VALUE,Number.MIN_VALUE,Number.MIN_VALUE),u=(0,y.al)(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE);for(let e=0;e<8;++e)(0,g.projectBuffer)(s[e],d.pn,0,s[e],m.Z.WGS84,0,1),(0,c.y)(u,u,s[e]),(0,c.C)(l,l,s[e]);this.fullExtent=new h.Z({xmin:u[0],ymin:u[1],zmin:u[2],xmax:l[0],ymax:l[1],zmax:l[2],spatialReference:this.spatialReference})}}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}async _doLoad(e){const t=null!=e?e.signal:null;try{await this.loadFromPortal({supportedTypes:["3DTiles Service"],validateItem:e=>{if(e.typeKeywords?.includes("IntegratedMesh"))return!0;throw new o.Z("portal:invalid-layer-item-type","Invalid layer item, expected '${expectedType}' ",{expectedType:"3DTiles Service containing IntegratedMesh"})}},e)}catch(e){(0,u.r9)(e)}if(this.url){const e=(0,i.Z)(this.url,{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:t}).then((e=>{this._initFullExtent(e.data)}),(e=>{(0,u.r9)(e)}));await e}}async fetchAttributionData(){return this.load().then((()=>({})))}_validateElevationInfo(){const e=this.elevationInfo,t="Integrated mesh 3d tiles layers";(0,E.LR)(a.Z.getLogger(this),(0,E.Uy)(t,"absolute-height",e)),(0,E.LR)(a.Z.getLogger(this),(0,E.kf)(t,e))}};(0,r._)([(0,p.Cb)({type:["IntegratedMesh3DTilesLayer"]})],L.prototype,"operationalLayerType",void 0),(0,r._)([(0,p.Cb)({type:m.Z})],L.prototype,"spatialReference",void 0),(0,r._)([(0,p.Cb)({type:h.Z})],L.prototype,"fullExtent",void 0),(0,r._)([(0,p.Cb)(A.PV)],L.prototype,"elevationInfo",null),(0,r._)([(0,p.Cb)({type:["show","hide"]})],L.prototype,"listMode",void 0),(0,r._)([(0,p.Cb)(A.HQ)],L.prototype,"url",void 0),(0,r._)([(0,p.Cb)({readOnly:!0})],L.prototype,"type",void 0),(0,r._)([(0,p.Cb)({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],L.prototype,"path",void 0),(0,r._)([(0,p.Cb)({type:Number,json:{origins:{"web-scene":{name:"layerDefinition.minScale",write:()=>{},read:()=>{}},"portal-item":{name:"layerDefinition.minScale",write:()=>{},read:()=>{}}}}})],L.prototype,"minScale",void 0),(0,r._)([(0,p.Cb)({type:Number,json:{origins:{"web-scene":{name:"layerDefinition.maxScale",write:()=>{},read:()=>{}},"portal-item":{name:"layerDefinition.maxScale",write:()=>{},read:()=>{}}}}})],L.prototype,"maxScale",void 0),L=(0,r._)([(0,f.j)("esri.layers.IntegratedMesh3DTilesLayer")],L);const Z=L},83772:function(e,t,n){n.d(t,{LR:function(){return l},Uy:function(){return o},VW:function(){return i},Wb:function(){return a},kf:function(){return s}});n(17321),n(91478);function r(e){return e?u:p}function i(e,t){return function(e,t){return t?.mode?t.mode:r(e).mode}(null!=e&&e.hasZ,t)}function o(e,t,n){return n&&n.mode!==t?`${e} only support ${t} elevation mode`:null}function a(e,t,n){return n?.mode===t?`${e} do not support ${t} elevation mode`:null}function s(e,t){return null!=t?.featureExpressionInfo&&"0"!==t.featureExpressionInfo.expression?`${e} do not support featureExpressionInfo`:null}function l(e,t){t&&e.warn(".elevationInfo=",t)}const u={mode:"absolute-height",offset:0},p={mode:"on-the-ground",offset:null}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7124.414ec20b64c0dadb91df.js b/docs/sentinel1-explorer/7124.414ec20b64c0dadb91df.js new file mode 100644 index 00000000..17123b93 --- /dev/null +++ b/docs/sentinel1-explorer/7124.414ec20b64c0dadb91df.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7124],{27124:function(e,t,r){r.r(t),r.d(t,{default:function(){return m}});var s,o=r(36663),n=r(82064),i=r(81977),p=r(7283),a=(r(4157),r(39994),r(40266));let u=s=class extends n.wq{static from(e){return(0,p.TJ)(s,e)}constructor(e){super(e),this.sessionId=void 0,this.moment=null}};(0,o._)([(0,i.Cb)({type:String,json:{write:!0}})],u.prototype,"sessionId",void 0),(0,o._)([(0,i.Cb)({type:Date,json:{type:Number,write:{writer:(e,t)=>{t.moment=e?e.getTime():null}}}})],u.prototype,"moment",void 0),u=s=(0,o._)([(0,a.j)("esri.rest.versionManagement.gdbVersion.support.PostParameters")],u);const m=u}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7253.15db11b5cee004c2958d.js b/docs/sentinel1-explorer/7253.15db11b5cee004c2958d.js new file mode 100644 index 00000000..5394f8ff --- /dev/null +++ b/docs/sentinel1-explorer/7253.15db11b5cee004c2958d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7253],{82584:function(t,e,i){i.d(e,{E9:function(){return s},I6:function(){return a},Vl:function(){return n},bN:function(){return l}});var n,r;!function(t){t[t.Unknown=0]="Unknown",t[t.Point=1]="Point",t[t.LineString=2]="LineString",t[t.Polygon=3]="Polygon"}(n||(n={}));class s{constructor(t,e){this.x=t,this.y=e}clone(){return new s(this.x,this.y)}equals(t,e){return t===this.x&&e===this.y}isEqual(t){return t.x===this.x&&t.y===this.y}setCoords(t,e){return this.x=t,this.y=e,this}normalize(){const t=this.x,e=this.y,i=Math.sqrt(t*t+e*e);return this.x/=i,this.y/=i,this}rightPerpendicular(){const t=this.x;return this.x=this.y,this.y=-t,this}leftPerpendicular(){const t=this.x;return this.x=-this.y,this.y=t,this}move(t,e){return this.x+=t,this.y+=e,this}assign(t){return this.x=t.x,this.y=t.y,this}assignAdd(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}assignSub(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}rotate(t,e){const i=this.x,n=this.y;return this.x=i*t-n*e,this.y=i*e+n*t,this}scale(t){return this.x*=t,this.y*=t,this}length(){const t=this.x,e=this.y;return Math.sqrt(t*t+e*e)}sub(t){return this.x-=t.x,this.y-=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}static distance(t,e){const i=e.x-t.x,n=e.y-t.y;return Math.sqrt(i*i+n*n)}static add(t,e){return new s(t.x+e.x,t.y+e.y)}static sub(t,e){return new s(t.x-e.x,t.y-e.y)}}class o{constructor(t,e,i){this.ratio=t,this.x=e,this.y=i}}class l{constructor(t,e,i,n=8,r=8){this._lines=[],this._starts=[],this.validateTessellation=!0,this._pixelRatio=n,this._pixelMargin=r,this._tileSize=512*n,this._dz=t,this._yPos=e,this._xPos=i}setPixelMargin(t){t!==this._pixelMargin&&(this._pixelMargin=t,this.setExtent(this._extent))}setExtent(t){this._extent=t,this._finalRatio=this._tileSize/t*(1<>this._dz;e>i&&(e=i),this._margin=e,this._xmin=i*this._xPos-e,this._ymin=i*this._yPos-e,this._xmax=this._xmin+i+2*e,this._ymax=this._ymin+i+2*e}reset(t){this._type=t,this._lines=[],this._starts=[],this._line=null,this._start=0}moveTo(t,e){this._pushLine(),this._prevIsIn=this._isIn(t,e),this._moveTo(t,e,this._prevIsIn),this._prevPt=new s(t,e),this._firstPt=new s(t,e),this._dist=0}lineTo(t,e){const i=this._isIn(t,e),n=new s(t,e),r=s.distance(this._prevPt,n);let l,a,u,_,c,h,f,p;if(i)this._prevIsIn?this._lineTo(t,e,!0):(l=this._prevPt,a=n,u=this._intersect(a,l),this._start=this._dist+r*(1-this._r),this._lineTo(u.x,u.y,!0),this._lineTo(a.x,a.y,!0));else if(this._prevIsIn)a=this._prevPt,l=n,u=this._intersect(a,l),this._lineTo(u.x,u.y,!0),this._lineTo(l.x,l.y,!1);else{const t=this._prevPt,e=n;if(t.x<=this._xmin&&e.x<=this._xmin||t.x>=this._xmax&&e.x>=this._xmax||t.y<=this._ymin&&e.y<=this._ymin||t.y>=this._ymax&&e.y>=this._ymax)this._lineTo(e.x,e.y,!1);else{const i=[];if((t.xthis._xmin||t.x>this._xmin&&e.x=this._ymax?h=!0:i.push(new o(_,this._xmin,p))),(t.xthis._xmax||t.x>this._xmax&&e.x=this._ymax?h=!0:i.push(new o(_,this._xmax,p))),(t.ythis._ymin||t.y>this._ymin&&e.y=this._xmax?c=!0:i.push(new o(_,f,this._ymin))),(t.ythis._ymax||t.y>this._ymax&&e.y=this._xmax?c=!0:i.push(new o(_,f,this._ymax))),0===i.length)c?h?this._lineTo(this._xmax,this._ymax,!0):this._lineTo(this._xmax,this._ymin,!0):h?this._lineTo(this._xmin,this._ymax,!0):this._lineTo(this._xmin,this._ymin,!0);else if(i.length>1&&i[0].ratio>i[1].ratio)this._start=this._dist+r*i[1].ratio,this._lineTo(i[1].x,i[1].y,!0),this._lineTo(i[0].x,i[0].y,!0);else{this._start=this._dist+r*i[0].ratio;for(let t=0;t2){const t=this._firstPt,e=this._prevPt;t.x===e.x&&t.y===e.y||this.lineTo(t.x,t.y);const i=this._line;let n=i.length;for(;n>=4&&(i[0].x===i[1].x&&i[0].x===i[n-2].x||i[0].y===i[1].y&&i[0].y===i[n-2].y);)i.pop(),i[0].x=i[n-2].x,i[0].y=i[n-2].y,--n}}result(t=!0){return this._pushLine(),0===this._lines.length?null:(this._type===n.Polygon&&t&&u.simplify(this._tileSize,this._margin*this._finalRatio,this._lines),this._lines)}resultWithStarts(){if(this._type!==n.LineString)throw new Error("Only valid for lines");this._pushLine();const t=this._lines,e=t.length;if(0===e)return null;const i=[];for(let n=0;n=this._xmin&&t<=this._xmax&&e>=this._ymin&&e<=this._ymax}_intersect(t,e){let i,n,r;if(e.x>=this._xmin&&e.x<=this._xmax)n=e.y<=this._ymin?this._ymin:this._ymax,r=(n-t.y)/(e.y-t.y),i=t.x+r*(e.x-t.x);else if(e.y>=this._ymin&&e.y<=this._ymax)i=e.x<=this._xmin?this._xmin:this._xmax,r=(i-t.x)/(e.x-t.x),n=t.y+r*(e.y-t.y);else{n=e.y<=this._ymin?this._ymin:this._ymax,i=e.x<=this._xmin?this._xmin:this._xmax;const s=(i-t.x)/(e.x-t.x),o=(n-t.y)/(e.y-t.y);s0&&(this._lines.push(this._line),this._starts.push(this._start)):this._type===n.LineString?this._line.length>1&&(this._lines.push(this._line),this._starts.push(this._start)):this._type===n.Polygon&&this._line.length>3&&(this._lines.push(this._line),this._starts.push(this._start))),this._line=[],this._start=0}_moveTo(t,e,i){this._type!==n.Polygon?i&&(t=Math.round((t-(this._xmin+this._margin))*this._finalRatio),e=Math.round((e-(this._ymin+this._margin))*this._finalRatio),this._line.push(new s(t,e))):(i||(tthis._xmax&&(t=this._xmax),ethis._ymax&&(e=this._ymax)),t=Math.round((t-(this._xmin+this._margin))*this._finalRatio),e=Math.round((e-(this._ymin+this._margin))*this._finalRatio),this._line.push(new s(t,e)),this._isH=!1,this._isV=!1)}_lineTo(t,e,i){let r,o;if(this._type!==n.Polygon)if(i){if(t=Math.round((t-(this._xmin+this._margin))*this._finalRatio),e=Math.round((e-(this._ymin+this._margin))*this._finalRatio),this._line.length>0&&(r=this._line[this._line.length-1],r.equals(t,e)))return;this._line.push(new s(t,e))}else this._line&&this._line.length>0&&this._pushLine();else if(i||(tthis._xmax&&(t=this._xmax),ethis._ymax&&(e=this._ymax)),t=Math.round((t-(this._xmin+this._margin))*this._finalRatio),e=Math.round((e-(this._ymin+this._margin))*this._finalRatio),this._line&&this._line.length>0){r=this._line[this._line.length-1];const i=r.x===t,n=r.y===e;if(i&&n)return;this._isH&&i||this._isV&&n?(r.x=t,r.y=e,o=this._line[this._line.length-2],o.x===t&&o.y===e?(this._line.pop(),this._line.length<=1?(this._isH=!1,this._isV=!1):(o=this._line[this._line.length-2],this._isH=o.x===t,this._isV=o.y===e)):(this._isH=o.x===t,this._isV=o.y===e)):(this._line.push(new s(t,e)),this._isH=i,this._isV=n)}else this._line.push(new s(t,e))}}class a{setExtent(t){this._ratio=4096===t?1:4096/t}get validateTessellation(){return this._ratio<1}reset(t){this._lines=[],this._line=null}moveTo(t,e){this._line&&this._lines.push(this._line),this._line=[];const i=this._ratio;this._line.push(new s(t*i,e*i))}lineTo(t,e){const i=this._ratio;this._line.push(new s(t*i,e*i))}close(){const t=this._line;t&&!t[0].isEqual(t[t.length-1])&&t.push(t[0])}result(){return this._line&&this._lines.push(this._line),0===this._lines.length?null:this._lines}}!function(t){t[t.sideLeft=0]="sideLeft",t[t.sideRight=1]="sideRight",t[t.sideTop=2]="sideTop",t[t.sideBottom=3]="sideBottom"}(r||(r={}));class u{static simplify(t,e,i){if(!i)return;const n=-e,s=t+e,o=-e,l=t+e,a=[],_=[],c=i.length;for(let t=0;tu.y?(a.push(t),a.push(i),a.push(r.sideLeft),a.push(-1)):(_.push(t),_.push(i),_.push(r.sideLeft),_.push(-1))),c.x>=s&&(c.y=l&&(c.x>u.x?(a.push(t),a.push(i),a.push(r.sideBottom),a.push(-1)):(_.push(t),_.push(i),_.push(r.sideBottom),_.push(-1)))),c=u}if(0===a.length||0===_.length)return;u.fillParent(i,_,a),u.fillParent(i,a,_);const h=[];u.calcDeltas(h,_,a),u.calcDeltas(h,a,_),u.addDeltas(h,i)}static fillParent(t,e,i){const n=i.length,s=e.length;for(let o=0;o1&&n[s-2]===r?0:(n.push(r),u.calcDelta(r,i,e,n)+1)}static addDeltas(t,e){const i=t.length;let n=0;for(let e=0;en&&(n=i)}for(let s=0;st>=e&&t<=i||t>=i&&t<=e},16358:function(t,e,i){i.r(e),i.d(e,{default:function(){return ot}});var n=i(36663),r=i(66341),s=i(67979),o=i(70375),l=i(67134),a=i(15842),u=i(78668),_=i(3466),c=i(81977),h=(i(39994),i(13802)),f=i(34248),p=i(40266),E=i(39835),T=i(91772),y=i(14685),A=i(38481),R=i(91223),m=i(89993),d=i(87232),S=i(27668),N=i(63989),C=i(43330),I=i(18241),O=i(95874);let x=null;var g=i(86098);class P{constructor(t,e){this._spriteSource=t,this._maxTextureSize=e,this.devicePixelRatio=1,this._spriteImageFormat="png",this._isRetina=!1,this._spritesData={},this.image=null,this.width=null,this.height=null,this.loadStatus="not-loaded","url"===t.type&&t.spriteFormat&&(this._spriteImageFormat=t.spriteFormat),t.pixelRatio&&(this.devicePixelRatio=t.pixelRatio),this.baseURL=t.spriteUrl}get spriteNames(){const t=[];for(const e in this._spritesData)t.push(e);return t.sort(),t}getSpriteInfo(t){return this._spritesData?this._spritesData[t]:null}async load(t){if(this.baseURL){this.loadStatus="loading";try{await this._loadSprites(t),this.loadStatus="loaded"}catch{this.loadStatus="failed"}}else this.loadStatus="failed"}async _loadSprites(t){this._isRetina=this.devicePixelRatio>1.15;const{width:e,height:i,data:n,json:r}=await this._getSpriteData(this._spriteSource,t),s=Object.keys(r);if(!s||0===s.length||!n)return this._spritesData=this.image=null,void(this.width=this.height=0);this._spritesData=r,this.width=e,this.height=i;const l=Math.max(this._maxTextureSize,4096);if(e>l||i>l){const t=`Sprite resource for style ${this.baseURL} is bigger than the maximum allowed of ${l} pixels}`;throw h.Z.getLogger("esri.layers.support.SpriteSource").error(t),new o.Z("SpriteSource",t)}let a;for(let t=0;tt.data.index))),this._tileIndexPromise}async dataKey(t,e){const i=await this.fetchTileIndex();return(0,u.k_)(e),this._getIndexedDataKey(i,t)}_getIndexedDataKey(t,e){const i=[e];if(e.level<0||e.row<0||e.col<0||e.row>>e.level>0||e.col>>e.level>0)return null;let n=e;for(;0!==n.level;)n=new G.Z(n.level-1,n.row>>1,n.col>>1,n.world),i.push(n);let r,s,o=t,l=i.pop();if(1===o)return l;for(;i.length;)if(r=i.pop(),s=(1&r.col)+((1&r.row)<<1),o){if(0===o[s]){l=null;break}if(1===o[s]){l=r;break}l=r,o=o[s]}return l}}var F=i(61681);class v{constructor(t,e){this._tilemap=t,this._tileIndexUrl=e}destroy(){this._tilemap=(0,F.SC)(this._tilemap),this._tileIndexPromise=null}async fetchTileIndex(t){return this._tileIndexPromise||(this._tileIndexPromise=(0,r.Z)(this._tileIndexUrl,{query:{...t?.query}}).then((t=>t.data.index))),this._tileIndexPromise}dataKey(t,e){const{level:i,row:n,col:r}=t,s=new G.Z(t);return this._tilemap.fetchAvailabilityUpsample(i,n,r,s,e).then((()=>(s.world=t.world,s))).catch((t=>{if((0,u.D_)(t))throw t;return null}))}}var w=i(86114);class H{constructor(t){this._tileUrl=t,this._promise=null,this._abortController=null,this._abortOptions=[]}getData(t){(null==this._promise||(0,u.Hc)(this._abortController?.signal))&&(this._promise=this._makeRequest(this._tileUrl));const e=this._abortOptions;return e.push(t),(0,u.fu)(t,(()=>{e.every((t=>(0,u.Hc)(t)))&&this._abortController.abort()})),this._promise.then((t=>(0,l.d9)(t)))}async _makeRequest(t){this._abortController=new AbortController;const{data:e}=await(0,r.Z)(t,{responseType:"array-buffer",signal:this._abortController.signal});return e}}const V=new Map;function Y(t,e){return(0,w.s1)(V,t,(()=>new H(t))).getData(e).finally((()=>V.delete(t)))}class W{constructor(t,e,i){this.tilemap=null,this.tileInfo=null,this.capabilities=null,this.fullExtent=null,this.initialExtent=null,this.name=t,this.sourceUrl=e;const n=(0,_.mN)(this.sourceUrl),r=(0,l.d9)(i),s=r.tiles;if(n)for(let t=0;tt.toLowerCase().trim())),a=!0===i?.exportTilesAllowed,u=!0===o?.includes("tilemap"),c=a&&i.hasOwnProperty("maxExportTilesCount")?i.maxExportTilesCount:0;this.capabilities={operations:{supportsExportTiles:a,supportsTileMap:u},exportTiles:a?{maxExportTilesCount:+c}:null},this.tileInfo=M.Z.fromJSON(r.tileInfo);const h=i.tileMap?(0,_.fl)((0,_.v_)(n.path,i.tileMap),n.query??{}):null;u?(this.type="vector-tile",this.tilemap=new v(new D.y({layer:{parsedUrl:n,tileInfo:this.tileInfo},minLOD:r.minLOD??this.tileInfo.lods[0].level,maxLOD:r.maxLOD??this.tileInfo.lods[this.tileInfo.lods.length-1].level}),h)):h&&(this.tilemap=new b(h)),this.fullExtent=T.Z.fromJSON(i.fullExtent),this.initialExtent=T.Z.fromJSON(i.initialExtent)}destroy(){this.tilemap?.destroy()}async getRefKey(t,e){return await(this.tilemap?.dataKey(t,e))??t}requestTile(t,e,i,n){return function(t,e,i,n,r){const s=(0,_.mN)(t),o=s.query;if(o)for(const[t,r]of Object.entries(o))switch(r){case"{x}":o[t]=n.toString();break;case"{y}":o[t]=i.toString();break;case"{z}":o[t]=e.toString()}const l=s.path;return Y((0,_.fl)(l.replaceAll(/\{z\}/gi,e.toString()).replaceAll(/\{y\}/gi,i.toString()).replaceAll(/\{x\}/gi,n.toString()),{...s.query}),r)}(this.tileServers[e%this.tileServers.length],t,e,i,n)}isCompatibleWith(t){const e=this.tileInfo,i=t.tileInfo;if(!e.spatialReference.equals(i.spatialReference))return!1;if(!e.origin.equals(i.origin))return!1;if(Math.round(e.dpi)!==Math.round(i.dpi))return!1;const n=e.lods,r=i.lods,s=Math.min(n.length,r.length);for(let t=0;t=tt||Math.abs(i.y-n.y)>=tt)return!1;let r,s;t.lods[0].scale>e.lods[0].scale?(r=t,s=e):(s=t,r=e);for(let t=r.lods[0].scale;t>=s.lods[s.lods.length-1].scale-tt;t/=2)if(Math.abs(t-s.lods[0].scale)e.lods[0].scale?t.lods[0]:e.lods[0],a=t.lods[t.lods.length-1].scale<=e.lods[e.lods.length-1].scale?t.lods[t.lods.length-1]:e.lods[e.lods.length-1],u=l.scale,_=l.resolution,c=a.scale,h=[];let f=u,p=_,E=0;for(;f>c;)h.push(new $.Z({level:E,resolution:p,scale:f})),E++,f/=2,p/=2;return new M.Z({size:[i,i],dpi:r,format:n||"pbf",origin:s,lods:h,spatialReference:o})}var nt=i(63043),rt=i(35119);let st=class extends((0,S.h)((0,O.M)((0,m.Z)((0,d.Y)((0,C.q)((0,I.I)((0,N.N)((0,R.V)((0,a.R)(A.Z)))))))))){constructor(...t){super(...t),this._spriteSourceMap=new Map,this.currentStyleInfo=null,this.isReference=null,this.operationalLayerType="VectorTileLayer",this.style=null,this.tilemapCache=null,this.type="vector-tile",this.url=null,this.path=null}normalizeCtorArgs(t,e){return"string"==typeof t?{url:t,...e}:t}destroy(){if(this.sourceNameToSource)for(const t of Object.values(this.sourceNameToSource))t?.destroy();this.primarySource?.destroy(),this._spriteSourceMap.clear()}async prefetchResources(t){await this.loadSpriteSource(globalThis.devicePixelRatio||1,t)}load(t){const e=this.loadFromPortal({supportedTypes:["Vector Tile Service"],supportsData:!1},t).catch(u.r9).then((async()=>{if(!this.portalItem?.id)return;const e=`${this.portalItem.itemCdnUrl}/resources/styles/root.json`;(await(0,r.Z)(e,{...t,query:{f:"json",...this.customParameters,token:this.apiKey}})).data&&this.read({url:e},(0,K.h)(this.portalItem,"portal-item"))})).catch(u.r9).then((()=>this._loadStyle(t)));return this.addResolvingPromise(e),Promise.resolve(this)}get attributionDataUrl(){const t=this.currentStyleInfo,e=t?.serviceUrl&&(0,_.mN)(t.serviceUrl);if(!e)return null;const i=this._getDefaultAttribution(e.path);return i?(0,_.fl)(i,{...this.customParameters,token:this.apiKey}):null}get capabilities(){const t=this.primarySource;return t?t.capabilities:{operations:{supportsExportTiles:!1,supportsTileMap:!1},exportTiles:null}}get fullExtent(){return this.primarySource?.fullExtent||null}get initialExtent(){return this.primarySource?.initialExtent||null}get parsedUrl(){return this.serviceUrl?(0,_.mN)(this.serviceUrl):null}get serviceUrl(){return this.currentStyleInfo?.serviceUrl||null}get spatialReference(){return this.tileInfo?.spatialReference??null}get styleUrl(){return this.currentStyleInfo?.styleUrl||null}writeStyleUrl(t,e){t&&(0,_.oC)(t)&&(t=`https:${t}`);const i=(0,Q.a)(t);e.styleUrl=(0,z.e)(t,i)}get tileInfo(){const t=[];for(const e in this.sourceNameToSource)t.push(this.sourceNameToSource[e]);let e=this.primarySource?.tileInfo||new M.Z;if(t.length>1)for(let i=0;i(this._spriteSourceMap.clear(),this._getSourceAndStyle(i,{signal:t}))),e)),this._loadingTask.promise}getStyleLayerId(t){return this.styleRepository.getStyleLayerId(t)}getStyleLayerIndex(t){return this.styleRepository.getStyleLayerIndex(t)}getPaintProperties(t){return(0,l.d9)(this.styleRepository?.getPaintProperties(t))}setPaintProperties(t,e){const i=this.styleRepository.isPainterDataDriven(t);this.styleRepository.setPaintProperties(t,e);const n=this.styleRepository.isPainterDataDriven(t);this.emit("paint-change",{layer:t,paint:e,isDataDriven:i||n})}getStyleLayer(t){return(0,l.d9)(this.styleRepository.getStyleLayer(t))}setStyleLayer(t,e){this.styleRepository.setStyleLayer(t,e),this.emit("style-layer-change",{layer:t,index:e})}deleteStyleLayer(t){this.styleRepository.deleteStyleLayer(t),this.emit("delete-style-layer",{layer:t})}getLayoutProperties(t){return(0,l.d9)(this.styleRepository.getLayoutProperties(t))}setLayoutProperties(t,e){this.styleRepository.setLayoutProperties(t,e),this.emit("layout-change",{layer:t,layout:e})}setStyleLayerVisibility(t,e){this.styleRepository.setStyleLayerVisibility(t,e),this.emit("style-layer-visibility-change",{layer:t,visibility:e})}getStyleLayerVisibility(t){return this.styleRepository.getStyleLayerVisibility(t)}write(t,e){return e?.origin&&!this.styleUrl?(e.messages&&e.messages.push(new o.Z("vectortilelayer:unsupported",`VectorTileLayer (${this.title}, ${this.id}) with style defined by JSON only are not supported`,{layer:this})),null):super.write(t,e)}getTileUrl(t,e,i){return null}async _getSourceAndStyle(t,e){if(!t)throw new Error("invalid style!");const i=await async function(t,e){const i={source:null,sourceBase:null,sourceUrl:null,validatedSource:null,style:null,styleBase:null,styleUrl:null,sourceNameToSource:{},primarySourceName:"",spriteFormat:"png"},[n,r]="string"==typeof t?[t,null]:[null,t.jsonUrl];return await X(i,"esri",t,r,e),{layerDefinition:i.validatedSource,url:n,serviceUrl:i.sourceUrl,style:i.style,styleUrl:i.styleUrl,spriteUrl:i.style.sprite&&k(i.styleBase,i.style.sprite),spriteFormat:i.spriteFormat,glyphsUrl:i.style.glyphs&&k(i.styleBase,i.style.glyphs),sourceNameToSource:i.sourceNameToSource,primarySourceName:i.primarySourceName}}(t,{...e,query:{...this.customParameters,token:this.apiKey}});"webp"===i.spriteFormat&&(await function(t){if(x)return x;const e={lossy:"UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",lossless:"UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",alpha:"UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==",animation:"UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA"};return x=new Promise((i=>{const n=new Image;n.onload=()=>{n.onload=n.onerror=null,i(n.width>0&&n.height>0)},n.onerror=()=>{n.onload=n.onerror=null,i(!1)},n.src="data:image/webp;base64,"+e[t]})),x}("lossy")||(i.spriteFormat="png")),this._set("currentStyleInfo",{...i}),"string"==typeof t?(this.url=t,this.style=null):(this.url=null,this.style=t),this._set("sourceNameToSource",i.sourceNameToSource),this._set("primarySource",i.sourceNameToSource[i.primarySourceName]),this._set("styleRepository",new nt.Z(i.style)),this.read(i.layerDefinition,{origin:"service"}),this.emit("load-style")}_getDefaultAttribution(t){const e=t.match(/^https?:\/\/(?:basemaps|basemapsbeta|basemapsdev)(?:-api)?\.arcgis\.com(\/[^\/]+)?\/arcgis\/rest\/services\/([^\/]+(\/[^\/]+)*)\/vectortileserver/i),i=["OpenStreetMap_v2","OpenStreetMap_Daylight_v2","OpenStreetMap_Export_v2","OpenStreetMap_FTS_v2","OpenStreetMap_GCS_v2","World_Basemap","World_Basemap_v2","World_Basemap_Export_v2","World_Basemap_GCS_v2","World_Basemap_WGS84","World_Contours_v2"];if(!e)return;const n=e[2]&&e[2].toLowerCase();if(!n)return;const r=e[1]||"";for(const t of i)if(t.toLowerCase().includes(n))return(0,_.Fv)(`//static.arcgis.com/attribution/Vector${r}/${t}`)}async _loadStyle(t){return this._loadingTask?.promise??this.loadStyle(null,t)}};(0,n._)([(0,c.Cb)({readOnly:!0})],st.prototype,"attributionDataUrl",null),(0,n._)([(0,c.Cb)({type:["show","hide"]})],st.prototype,"listMode",void 0),(0,n._)([(0,c.Cb)({json:{read:!0,write:!0}})],st.prototype,"blendMode",void 0),(0,n._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],st.prototype,"capabilities",null),(0,n._)([(0,c.Cb)({readOnly:!0})],st.prototype,"currentStyleInfo",void 0),(0,n._)([(0,c.Cb)({json:{read:!1},readOnly:!0,type:T.Z})],st.prototype,"fullExtent",null),(0,n._)([(0,c.Cb)({json:{read:!1},readOnly:!0,type:T.Z})],st.prototype,"initialExtent",null),(0,n._)([(0,c.Cb)({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],st.prototype,"isReference",void 0),(0,n._)([(0,c.Cb)({type:["VectorTileLayer"]})],st.prototype,"operationalLayerType",void 0),(0,n._)([(0,c.Cb)({readOnly:!0})],st.prototype,"parsedUrl",null),(0,n._)([(0,c.Cb)()],st.prototype,"style",void 0),(0,n._)([(0,c.Cb)({readOnly:!0})],st.prototype,"serviceUrl",null),(0,n._)([(0,c.Cb)({type:y.Z,readOnly:!0})],st.prototype,"spatialReference",null),(0,n._)([(0,c.Cb)({readOnly:!0})],st.prototype,"styleRepository",void 0),(0,n._)([(0,c.Cb)({readOnly:!0})],st.prototype,"sourceNameToSource",void 0),(0,n._)([(0,c.Cb)({readOnly:!0})],st.prototype,"primarySource",void 0),(0,n._)([(0,c.Cb)({type:String,readOnly:!0,json:{write:{ignoreOrigin:!0},origins:{"web-document":{write:{ignoreOrigin:!0,isRequired:!0}}}}})],st.prototype,"styleUrl",null),(0,n._)([(0,E.c)(["portal-item","web-document"],"styleUrl")],st.prototype,"writeStyleUrl",null),(0,n._)([(0,c.Cb)({json:{read:!1,origins:{service:{read:!1}}},readOnly:!0,type:M.Z})],st.prototype,"tileInfo",null),(0,n._)([(0,c.Cb)()],st.prototype,"tilemapCache",void 0),(0,n._)([(0,f.r)("service","tilemapCache",["capabilities","tileInfo"])],st.prototype,"readTilemapCache",null),(0,n._)([(0,c.Cb)({json:{read:!1},readOnly:!0,value:"vector-tile"})],st.prototype,"type",void 0),(0,n._)([(0,c.Cb)({json:{origins:{"web-document":{read:{source:"styleUrl"}},"portal-item":{read:{source:"url"}}},write:!1,read:!1}})],st.prototype,"url",void 0),(0,n._)([(0,c.Cb)({readOnly:!0})],st.prototype,"version",void 0),(0,n._)([(0,f.r)("version",["version","currentVersion"])],st.prototype,"readVersion",null),(0,n._)([(0,c.Cb)({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],st.prototype,"path",void 0),st=(0,n._)([(0,p.j)("esri.layers.VectorTileLayer")],st);const ot=st},25609:function(t,e,i){var n,r,s,o,l,a,u,_,c,h,f,p,E,T,y,A,R,m,d,S,N,C,I,O,x,g,P,L,M,D,U,B,G,b,F,v,w,H,V,Y,W,k,X,Z,j,q,K,Q,z,J,$,tt,et,it,nt,rt,st,ot,lt,at,ut;i.d(e,{$y:function(){return C},AH:function(){return r},CS:function(){return K},DD:function(){return _},Dd:function(){return M},Em:function(){return N},JS:function(){return j},Ky:function(){return c},Lh:function(){return Q},Qb:function(){return st},RL:function(){return n},RS:function(){return lt},TF:function(){return S},Tx:function(){return l},UR:function(){return R},UX:function(){return rt},bj:function(){return q},eZ:function(){return u},id:function(){return x},kP:function(){return v},of:function(){return f},r4:function(){return Y},sj:function(){return w},v2:function(){return s},zQ:function(){return L},zV:function(){return A}}),function(t){t[t.BUTT=0]="BUTT",t[t.ROUND=1]="ROUND",t[t.SQUARE=2]="SQUARE",t[t.UNKNOWN=4]="UNKNOWN"}(n||(n={})),function(t){t[t.BEVEL=0]="BEVEL",t[t.ROUND=1]="ROUND",t[t.MITER=2]="MITER",t[t.UNKNOWN=4]="UNKNOWN"}(r||(r={})),function(t){t[t.SCREEN=0]="SCREEN",t[t.MAP=1]="MAP"}(s||(s={})),function(t){t[t.Tint=0]="Tint",t[t.Ignore=1]="Ignore",t[t.Multiply=99]="Multiply"}(o||(o={})),function(t){t.Both="Both",t.JustBegin="JustBegin",t.JustEnd="JustEnd",t.None="None"}(l||(l={})),function(t){t[t.Mosaic=0]="Mosaic",t[t.Centered=1]="Centered"}(a||(a={})),function(t){t[t.Normal=0]="Normal",t[t.Superscript=1]="Superscript",t[t.Subscript=2]="Subscript"}(u||(u={})),function(t){t[t.MSSymbol=0]="MSSymbol",t[t.Unicode=1]="Unicode"}(_||(_={})),function(t){t[t.Unspecified=0]="Unspecified",t[t.TrueType=1]="TrueType",t[t.PSOpenType=2]="PSOpenType",t[t.TTOpenType=3]="TTOpenType",t[t.Type1=4]="Type1"}(c||(c={})),function(t){t[t.Display=0]="Display",t[t.Map=1]="Map"}(h||(h={})),function(t){t.None="None",t.Loop="Loop",t.Oscillate="Oscillate"}(f||(f={})),function(t){t[t.Z=0]="Z",t[t.X=1]="X",t[t.Y=2]="Y"}(p||(p={})),function(t){t[t.XYZ=0]="XYZ",t[t.ZXY=1]="ZXY",t[t.YXZ=2]="YXZ"}(E||(E={})),function(t){t[t.Rectangle=0]="Rectangle",t[t.RoundedRectangle=1]="RoundedRectangle",t[t.Oval=2]="Oval"}(T||(T={})),function(t){t[t.None=0]="None",t[t.Alpha=1]="Alpha",t[t.Screen=2]="Screen",t[t.Multiply=3]="Multiply",t[t.Add=4]="Add"}(y||(y={})),function(t){t[t.TTB=0]="TTB",t[t.RTL=1]="RTL",t[t.BTT=2]="BTT"}(A||(A={})),function(t){t[t.None=0]="None",t[t.SignPost=1]="SignPost",t[t.FaceNearPlane=2]="FaceNearPlane"}(R||(R={})),function(t){t[t.Float=0]="Float",t[t.String=1]="String",t[t.Boolean=2]="Boolean"}(m||(m={})),function(t){t[t.Intersect=0]="Intersect",t[t.Subtract=1]="Subtract"}(d||(d={})),function(t){t.OpenEnded="OpenEnded",t.Block="Block",t.Crossed="Crossed"}(S||(S={})),function(t){t.FullGeometry="FullGeometry",t.PerpendicularFromFirstSegment="PerpendicularFromFirstSegment",t.ReversedFirstSegment="ReversedFirstSegment",t.PerpendicularToSecondSegment="PerpendicularToSecondSegment",t.SecondSegmentWithTicks="SecondSegmentWithTicks",t.DoublePerpendicular="DoublePerpendicular",t.OppositeToFirstSegment="OppositeToFirstSegment",t.TriplePerpendicular="TriplePerpendicular",t.HalfCircleFirstSegment="HalfCircleFirstSegment",t.HalfCircleSecondSegment="HalfCircleSecondSegment",t.HalfCircleExtended="HalfCircleExtended",t.OpenCircle="OpenCircle",t.CoverageEdgesWithTicks="CoverageEdgesWithTicks",t.GapExtentWithDoubleTicks="GapExtentWithDoubleTicks",t.GapExtentMidline="GapExtentMidline",t.Chevron="Chevron",t.PerpendicularWithArc="PerpendicularWithArc",t.ClosedHalfCircle="ClosedHalfCircle",t.TripleParallelExtended="TripleParallelExtended",t.ParallelWithTicks="ParallelWithTicks",t.Parallel="Parallel",t.PerpendicularToFirstSegment="PerpendicularToFirstSegment",t.ParallelOffset="ParallelOffset",t.OffsetOpposite="OffsetOpposite",t.OffsetSame="OffsetSame",t.CircleWithArc="CircleWithArc",t.DoubleJog="DoubleJog",t.PerpendicularOffset="PerpendicularOffset",t.LineExcludingLastSegment="LineExcludingLastSegment",t.MultivertexArrow="MultivertexArrow",t.CrossedArrow="CrossedArrow",t.ChevronArrow="ChevronArrow",t.ChevronArrowOffset="ChevronArrowOffset",t.PartialFirstSegment="PartialFirstSegment",t.Arch="Arch",t.CurvedParallelTicks="CurvedParallelTicks",t.Arc90Degrees="Arc90Degrees"}(N||(N={})),function(t){t.Mitered="Mitered",t.Bevelled="Bevelled",t.Rounded="Rounded",t.Square="Square",t.TrueBuffer="TrueBuffer"}(C||(C={})),function(t){t.ClosePath="ClosePath",t.ConvexHull="ConvexHull",t.RectangularBox="RectangularBox"}(I||(I={})),function(t){t.BeginningOfLine="BeginningOfLine",t.EndOfLine="EndOfLine"}(O||(O={})),function(t){t.Mitered="Mitered",t.Bevelled="Bevelled",t.Rounded="Rounded",t.Square="Square"}(x||(x={})),function(t){t.Fast="Fast",t.Accurate="Accurate"}(g||(g={})),function(t){t.BeginningOfLine="BeginningOfLine",t.EndOfLine="EndOfLine"}(P||(P={})),function(t){t.Sinus="Sinus",t.Square="Square",t.Triangle="Triangle",t.Random="Random"}(L||(L={})),function(t){t[t.None=0]="None",t[t.Default=1]="Default",t[t.Force=2]="Force"}(M||(M={})),function(t){t[t.Buffered=0]="Buffered",t[t.Left=1]="Left",t[t.Right=2]="Right",t[t.AlongLine=3]="AlongLine"}(D||(D={})),function(t){t[t.Linear=0]="Linear",t[t.Rectangular=1]="Rectangular",t[t.Circular=2]="Circular",t[t.Buffered=3]="Buffered"}(U||(U={})),function(t){t[t.Discrete=0]="Discrete",t[t.Continuous=1]="Continuous"}(B||(B={})),function(t){t[t.AcrossLine=0]="AcrossLine",t[t.AloneLine=1]="AloneLine"}(G||(G={})),function(t){t[t.Left=0]="Left",t[t.Right=1]="Right",t[t.Center=2]="Center",t[t.Justify=3]="Justify"}(b||(b={})),function(t){t[t.Base=0]="Base",t[t.MidPoint=1]="MidPoint",t[t.ThreePoint=2]="ThreePoint",t[t.FourPoint=3]="FourPoint",t[t.Underline=4]="Underline",t[t.CircularCW=5]="CircularCW",t[t.CircularCCW=6]="CircularCCW"}(F||(F={})),function(t){t.Butt="Butt",t.Round="Round",t.Square="Square"}(v||(v={})),function(t){t.NoConstraint="NoConstraint",t.HalfPattern="HalfPattern",t.HalfGap="HalfGap",t.FullPattern="FullPattern",t.FullGap="FullGap",t.Custom="Custom"}(w||(w={})),function(t){t[t.None=-1]="None",t[t.Custom=0]="Custom",t[t.Circle=1]="Circle",t[t.OpenArrow=2]="OpenArrow",t[t.ClosedArrow=3]="ClosedArrow",t[t.Diamond=4]="Diamond"}(H||(H={})),function(t){t[t.ExtraLeading=0]="ExtraLeading",t[t.Multiple=1]="Multiple",t[t.Exact=2]="Exact"}(V||(V={})),function(t){t.Bevel="Bevel",t.Round="Round",t.Miter="Miter"}(Y||(Y={})),function(t){t[t.Default=0]="Default",t[t.String=1]="String",t[t.Numeric=2]="Numeric"}(W||(W={})),function(t){t[t.InsidePolygon=0]="InsidePolygon",t[t.PolygonCenter=1]="PolygonCenter",t[t.RandomlyInsidePolygon=2]="RandomlyInsidePolygon"}(k||(k={})),function(t){t[t.Tint=0]="Tint",t[t.Replace=1]="Replace",t[t.Multiply=2]="Multiply"}(X||(X={})),function(t){t[t.ClipAtBoundary=0]="ClipAtBoundary",t[t.RemoveIfCenterOutsideBoundary=1]="RemoveIfCenterOutsideBoundary",t[t.DoNotTouchBoundary=2]="DoNotTouchBoundary",t[t.DoNotClip=3]="DoNotClip"}(Z||(Z={})),function(t){t.NoConstraint="NoConstraint",t.WithMarkers="WithMarkers",t.WithFullGap="WithFullGap",t.WithHalfGap="WithHalfGap",t.Custom="Custom"}(j||(j={})),function(t){t.Fixed="Fixed",t.Random="Random",t.RandomFixedQuantity="RandomFixedQuantity"}(q||(q={})),function(t){t.LineMiddle="LineMiddle",t.LineBeginning="LineBeginning",t.LineEnd="LineEnd",t.SegmentMidpoint="SegmentMidpoint"}(K||(K={})),function(t){t.OnPolygon="OnPolygon",t.CenterOfMass="CenterOfMass",t.BoundingBoxCenter="BoundingBoxCenter"}(Q||(Q={})),function(t){t[t.Low=0]="Low",t[t.Medium=1]="Medium",t[t.High=2]="High"}(z||(z={})),function(t){t[t.MarkerCenter=0]="MarkerCenter",t[t.MarkerBounds=1]="MarkerBounds"}(J||(J={})),function(t){t[t.None=0]="None",t[t.PropUniform=1]="PropUniform",t[t.PropNonuniform=2]="PropNonuniform",t[t.DifUniform=3]="DifUniform",t[t.DifNonuniform=4]="DifNonuniform"}($||($={})),function(t){t.Tube="Tube",t.Strip="Strip",t.Wall="Wall"}(tt||(tt={})),function(t){t[t.Random=0]="Random",t[t.Increasing=1]="Increasing",t[t.Decreasing=2]="Decreasing",t[t.IncreasingThenDecreasing=3]="IncreasingThenDecreasing"}(et||(et={})),function(t){t[t.Relative=0]="Relative",t[t.Absolute=1]="Absolute"}(it||(it={})),function(t){t[t.Normal=0]="Normal",t[t.LowerCase=1]="LowerCase",t[t.Allcaps=2]="Allcaps"}(nt||(nt={})),function(t){t[t.LTR=0]="LTR",t[t.RTL=1]="RTL"}(rt||(rt={})),function(t){t.Draft="Draft",t.Picture="Picture",t.Text="Text"}(st||(st={})),function(t){t[t.Top=0]="Top",t[t.Center=1]="Center",t[t.Baseline=2]="Baseline",t[t.Bottom=3]="Bottom"}(ot||(ot={})),function(t){t[t.Right=0]="Right",t[t.Upright=1]="Upright"}(lt||(lt={})),function(t){t[t.Small=0]="Small",t[t.Medium=1]="Medium",t[t.Large=2]="Large"}(at||(at={})),function(t){t[t.Calm=0]="Calm",t[t.Rippled=1]="Rippled",t[t.Slight=2]="Slight",t[t.Moderate=3]="Moderate"}(ut||(ut={}))},93944:function(t,e,i){i.d(e,{DQ:function(){return h},FM:function(){return s},KU:function(){return m},Of:function(){return d},Or:function(){return f},Px:function(){return N},RD:function(){return o},Wg:function(){return I},Z0:function(){return S},k3:function(){return E},nF:function(){return _},pK:function(){return C},s5:function(){return p},sX:function(){return T},yF:function(){return l}});var n=i(38028),r=i(82584);const s=Number.POSITIVE_INFINITY,o=Math.PI,l=2*o,a=128/o,u=256/360,_=o/180,c=1/Math.LN2;function h(t,e){return(t%=e)>=0?t:t+e}function f(t){return h(t*a,256)}function p(t){return h(t*u,256)}function E(t){return Math.log(t)*c}function T(t,e,i){return t*(1-i)+e*i}const y=8,A=14,R=16;function m(t){return y+Math.max((t-A)*R,0)}function d(t,e,i){let n,r,s,o=0;for(const l of i){n=l.length;for(let i=1;ie!=s.y>e&&((s.x-r.x)*(e-r.y)-(s.y-r.y)*(t-r.x)>0?o++:o--)}return 0!==o}function S(t,e,i,r){let s,o,l,a;const u=r*r;for(const r of i){const i=r.length;if(!(i<2)){s=r[0].x,o=r[0].y;for(let _=1;_13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Suumi",Play:"Esita",Stop:"Lõpeta",Legend:"Legend","Press ENTER to toggle":"",Loading:"Laadin",Home:"Kodu",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Prindi",Image:"Pilt",Data:"Andmed",Print:"Prindi","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Alates %1 kuni %2","From %1":"Alates %1","To %1":"Kuni %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7334.6ce42b5f9b35308f7022.js b/docs/sentinel1-explorer/7334.6ce42b5f9b35308f7022.js new file mode 100644 index 00000000..99b259e2 --- /dev/null +++ b/docs/sentinel1-explorer/7334.6ce42b5f9b35308f7022.js @@ -0,0 +1,2 @@ +/*! For license information please see 7334.6ce42b5f9b35308f7022.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7334],{47334:function(t,e,i){i.r(e),i.d(e,{CalciteIcon:function(){return s},defineCustomElement:function(){return r}});var n=i(44586);const s=n.I,r=n.d},44586:function(t,e,i){i.d(e,{I:function(){return u},d:function(){return p}});var n=i(77210),s=i(79145),r=i(85545);const o="flip-rtl",c={},a={},l={s:16,m:24,l:32};async function h({icon:t,scale:e}){const i=l[e],s=function(t){const e=!isNaN(Number(t.charAt(0))),i=t.split("-");if(i.length>0){const e=/[a-z]/i;t=i.map(((t,i)=>t.replace(e,(function(t,e){return 0===i&&0===e?t:t.toUpperCase()})))).join("")}return e?`i${t}`:t}(t),r="F"===s.charAt(s.length-1),o=`${r?s.substring(0,s.length-1):s}${i}${r?"F":""}`;if(c[o])return c[o];a[o]||(a[o]=fetch((0,n.K3)(`./assets/icon/${o}.json`)).then((t=>t.json())).catch((()=>"")));const h=await a[o];return c[o]=h,h}const u=(0,n.GH)(class extends n.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.icon=null,this.flipRtl=!1,this.scale="m",this.textLabel=void 0,this.pathData=void 0,this.visible=!1}connectedCallback(){this.waitUntilVisible((()=>{this.visible=!0,this.loadIconPathData()}))}disconnectedCallback(){this.intersectionObserver?.disconnect(),this.intersectionObserver=null}async componentWillLoad(){this.loadIconPathData()}render(){const{el:t,flipRtl:e,pathData:i,scale:r,textLabel:c}=this,a=(0,s.a)(t),h=l[r],u=!!c,p=[].concat(i||"");return(0,n.h)(n.AA,{"aria-hidden":(0,s.t)(!u),"aria-label":u?c:null,role:u?"img":null},(0,n.h)("svg",{"aria-hidden":"true",class:{[o]:"rtl"===a&&e,svg:!0},fill:"currentColor",height:"100%",viewBox:`0 0 ${h} ${h}`,width:"100%",xmlns:"http://www.w3.org/2000/svg"},p.map((t=>"string"==typeof t?(0,n.h)("path",{d:t}):(0,n.h)("path",{d:t.d,opacity:"opacity"in t?t.opacity:1})))))}async loadIconPathData(){const{icon:t,scale:e,visible:i}=this;if(!n.Z5.isBrowser||!t||!i)return;const s=await h({icon:t,scale:e});t===this.icon&&(this.pathData=s)}waitUntilVisible(t){this.intersectionObserver=(0,r.c)("intersection",(e=>{e.forEach((e=>{e.isIntersecting&&(this.intersectionObserver.disconnect(),this.intersectionObserver=null,t())}))}),{rootMargin:"50px"}),this.intersectionObserver?this.intersectionObserver.observe(this.el):t()}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{icon:["loadIconPathData"],scale:["loadIconPathData"]}}static get style(){return":host{display:inline-flex;color:var(--calcite-ui-icon-color)}:host([scale=s]){inline-size:16px;block-size:16px;min-inline-size:16px;min-block-size:16px}:host([scale=m]){inline-size:24px;block-size:24px;min-inline-size:24px;min-block-size:24px}:host([scale=l]){inline-size:32px;block-size:32px;min-inline-size:32px;min-block-size:32px}.flip-rtl{transform:scaleX(-1)}.svg{display:block}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-icon",{icon:[513],flipRtl:[516,"flip-rtl"],scale:[513],textLabel:[1,"text-label"],pathData:[32],visible:[32]},void 0,{icon:["loadIconPathData"],scale:["loadIconPathData"]}]);function p(){if("undefined"==typeof customElements)return;["calcite-icon"].forEach((t=>{if("calcite-icon"===t)customElements.get(t)||customElements.define(t,u)}))}p()},85545:function(t,e,i){i.d(e,{c:function(){return s}});var n=i(77210);function s(t,e,i){if(!n.Z5.isBrowser)return;const s=function(t){class e extends window.MutationObserver{constructor(t){super(t),this.observedEntry=[],this.callback=t}observe(t,e){return this.observedEntry.push({target:t,options:e}),super.observe(t,e)}unobserve(t){const e=this.observedEntry.filter((e=>e.target!==t));this.observedEntry=[],this.callback(super.takeRecords(),this),this.disconnect(),e.forEach((t=>this.observe(t.target,t.options)))}}return"intersection"===t?window.IntersectionObserver:"mutation"===t?e:window.ResizeObserver}(t);return new s(e,i)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7334.6ce42b5f9b35308f7022.js.LICENSE.txt b/docs/sentinel1-explorer/7334.6ce42b5f9b35308f7022.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/7334.6ce42b5f9b35308f7022.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/736.3923eaa23c25401fa832.js b/docs/sentinel1-explorer/736.3923eaa23c25401fa832.js new file mode 100644 index 00000000..14cc878c --- /dev/null +++ b/docs/sentinel1-explorer/736.3923eaa23c25401fa832.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[736],{66608:function(e,t,i){i.d(t,{q:function(){return Me}});var s=i(7753),r=i(70375),n=i(82064),a=i(67134),o=i(61681),l=i(40366),u=i(78668),c=i(17321),h=i(28105),d=i(37116),m=i(24568),f=i(79880),p=i(53736),g=i(29927),y=i(35925),_=i(12065),T=i(55854),x=i(23709);var I=i(86349);const E=new class{constructor(e,t){this._cache=new T.z(e),this._invalidCache=new T.z(t)}get(e,t){const i=`${t.uid}:${e}`,s=this._cache.get(i);if(s)return s;if(null!=this._invalidCache.get(i))return null;try{const s=x.WhereClause.create(e,t);return this._cache.put(i,s),s}catch(e){return this._invalidCache.put(i,e),null}}getError(e,t){const i=`${t.uid}:${e}`;return this._invalidCache.get(i)??null}}(50,500),F="unsupported-query",S=" as ",R=new Set(["esriFieldTypeOID","esriFieldTypeSmallInteger","esriFieldTypeBigInteger","esriFieldTypeInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeLong"]),b=new Set(["esriFieldTypeDate","esriFieldTypeDateOnly","esriFieldTypeTimeOnly","esriFieldTypeTimestampOffset"]),w=new Set(["esriFieldTypeString","esriFieldTypeGUID","esriFieldTypeGlobalID",...R,...b]);function A(e,t,i={}){const s=N(t,e);if(!s){const i=E.getError(t,e);throw new r.Z(F,"invalid SQL expression",{expression:t,error:i})}const n=i.expressionName||"expression";if(i.validateStandardized&&!s.isStandardized)throw new r.Z(F,`${n} is not standard`,{expression:t});if(i.validateAggregate&&!s.isAggregate)throw new r.Z(F,`${n} does not contain a valid aggregate function`,{expression:t});return s.fieldNames}function v(e,t,i,s,n){if(!i)return!0;const a="having clause",o=A(e,i,{validateAggregate:!0,expressionName:a});D(e,t,o,{expressionName:a,query:n});const l=N(i,e),u=l?.getExpressions().every((t=>{const{aggregateType:i,field:r}=t,n=e.get(r)?.name;return s.some((t=>{const{onStatisticField:s,statisticType:r}=t,a=e.get(s)?.name;return a===n&&r.toLowerCase().trim()===i}))}));if(!u)throw new r.Z(F,"expressions in having clause should also exist in outStatistics",{having:i});return!0}function N(e,t){return e?E.get(e,t):null}function C(e){return/\((.*?)\)/.test(e)?e:e.split(S)[0]}function O(e){return e.split(S)[1]}function D(e,t,i,s={}){const n=new Map;if(function(e,t,i,s,r){const n=r.includes("*")?[...i,...r.filter((e=>"*"!==e))]:r;for(const r of n)if(t.get(r))k(e,t,i,s,r);else try{const n=A(t,C(r),{validateStandardized:!0});for(const r of n)k(e,t,i,s,r)}catch(t){e.set(r,{type:"expression-error",expression:r,error:t})}}(n,e,t,s.allowedFieldTypes??w,i),n.size){const e=s.expressionName??"expression";throw new r.Z(F,`${e} contains invalid or missing fields`,{errors:Array.from(n.values()),query:s.query})}}function k(e,t,i,s,r){const n=t.get(r);n?i.has(n.name)?"all"!==s&&!1===s?.has(n.type)&&e.set(r,{type:"invalid-type",fieldName:n.name,fieldType:I.v.fromJSON(n.type),allowedFieldTypes:Array.from(s,(e=>I.v.fromJSON(e)))}):e.set(r,{type:"missing-field",fieldName:n.name}):e.set(r,{type:"invalid-field",fieldName:r})}var V=i(28098),P=i(66069),L=i(10287),M=i(18449),Q=i(50842),G=i(7505),z=i(14845),U=i(8638),q=i(76432),Z=i(30879);class B{constructor(e,t,i){this._fieldDataCache=new Map,this._returnDistinctMap=new Map,this.returnDistinctValues=e.returnDistinctValues??!1,this.fieldsIndex=i,this.featureAdapter=t;const s=e.outFields;if(s&&!s.includes("*")){this.outFields=s;let e=0;for(const t of s){const s=C(t),r=this.fieldsIndex.get(s),n=r?null:N(s,i),a=r?r.name:O(t)||"FIELD_EXP_"+e++;this._fieldDataCache.set(t,{alias:a,clause:n})}}}countDistinctValues(e){return this.returnDistinctValues?(e.forEach((e=>this.getAttributes(e))),this._returnDistinctMap.size):e.length}getAttributes(e){const t=this._processAttributesForOutFields(e);return this._processAttributesForDistinctValues(t)}getFieldValue(e,t,i){const s=i?i.name:t;let r=null;return this._fieldDataCache.has(s)?r=this._fieldDataCache.get(s)?.clause:i||(r=N(t,this.fieldsIndex),this._fieldDataCache.set(s,{alias:s,clause:r})),i?this.featureAdapter.getAttribute(e,s):r?.calculateValue(e,this.featureAdapter)}getDataValues(e,t,i=!0){const s=t.normalizationType,r=t.normalizationTotal,n=this.fieldsIndex.get(t.field),a=(0,z.UQ)(n)||(0,z.ig)(n),o=(0,z.sX)(n);return e.map((e=>{let n=t.field&&this.getFieldValue(e,t.field,this.fieldsIndex.get(t.field));if(t.field2?(n=`${(0,q.wk)(n)}${t.fieldDelimiter}${(0,q.wk)(this.getFieldValue(e,t.field2,this.fieldsIndex.get(t.field2)))}`,t.field3&&(n=`${n}${t.fieldDelimiter}${(0,q.wk)(this.getFieldValue(e,t.field3,this.fieldsIndex.get(t.field3)))}`)):"string"==typeof n&&i&&(a?n=n?new Date(n).getTime():null:o&&(n=n?(0,U.yO)(n):null)),s&&Number.isFinite(n)){const i="field"===s&&t.normalizationField?this.getFieldValue(e,t.normalizationField,this.fieldsIndex.get(t.normalizationField)):null;n=(0,q.fk)(n,s,i,r)}return n}))}async getExpressionValues(e,t,i,s,r){const{arcadeUtils:n}=await(0,Z.LC)(),a=n.hasGeometryOperations(t);a&&await n.enableGeometryOperations();const o=n.createFunction(t),l=n.getViewInfo(i),u={fields:this.fieldsIndex.fields};return e.map((e=>{const t={attributes:this.featureAdapter.getAttributes(e),layer:u,geometry:a?{...(0,V.Op)(s.geometryType,s.hasZ,s.hasM,this.featureAdapter.getGeometry(e)),spatialReference:i?.spatialReference}:null},c=n.createExecContext(t,l,r);return n.executeFunction(o,c)}))}validateItem(e,t){return this._fieldDataCache.has(t)||this._fieldDataCache.set(t,{alias:t,clause:N(t,this.fieldsIndex)}),this._fieldDataCache.get(t)?.clause?.testFeature(e,this.featureAdapter)??!1}validateItems(e,t){return this._fieldDataCache.has(t)||this._fieldDataCache.set(t,{alias:t,clause:N(t,this.fieldsIndex)}),this._fieldDataCache.get(t)?.clause?.testSet(e,this.featureAdapter)??!1}_processAttributesForOutFields(e){const t=this.outFields;if(!t?.length)return this.featureAdapter.getAttributes(e);const i={};for(const s of t){const{alias:t,clause:r}=this._fieldDataCache.get(s);i[t]=r?r.calculateValue(e,this.featureAdapter):this.featureAdapter.getAttribute(e,t)}return i}_processAttributesForDistinctValues(e){if(null==e||!this.returnDistinctValues)return e;const t=this.outFields,i=[];if(t)for(const s of t){const{alias:t}=this._fieldDataCache.get(s);i.push(e[t])}else for(const t in e)i.push(e[t]);const s=`${(t||["*"]).join(",")}=${i.join(",")}`;let r=this._returnDistinctMap.get(s)||0;return this._returnDistinctMap.set(s,++r),r>1?null:e}}function j(e,t,i){return{objectId:e,target:t,distance:i,type:"vertex"}}function H(e,t,i,s,r,n=!1){return{objectId:e,target:t,distance:i,type:"edge",start:s,end:r,draped:n}}class ${constructor(e,t,i){this.items=e,this.query=t,this.geometryType=i.geometryType,this.hasM=i.hasM,this.hasZ=i.hasZ,this.fieldsIndex=i.fieldsIndex,this.objectIdField=i.objectIdField,this.spatialReference=i.spatialReference,this.featureAdapter=i.featureAdapter}get size(){return this.items.length}createQueryResponseForCount(){const e=new B(this.query,this.featureAdapter,this.fieldsIndex);if(!this.query.outStatistics)return e.countDistinctValues(this.items);const{groupByFieldsForStatistics:t,having:i,outStatistics:s}=this.query,r=t?.length;if(!r)return 1;const n=new Map,a=new Map,o=new Set;for(const r of s){const{statisticType:s}=r,l="exceedslimit"!==s?r.onStatisticField:void 0;if(!a.has(l)){const i=[];for(const s of t){const t=this._getAttributeValues(e,s,n);i.push(t)}a.set(l,this._calculateUniqueValues(i,e.returnDistinctValues))}const u=a.get(l);for(const t in u){const{data:s,items:r}=u[t],n=s.join(",");i&&!e.validateItems(r,i)||o.add(n)}}return o.size}async createQueryResponse(){let e;if(e=this.query.outStatistics?this.query.outStatistics.some((e=>"exceedslimit"===e.statisticType))?this._createExceedsLimitQueryResponse(this.query):await this._createStatisticsQueryResponse(this.query):this._createFeatureQueryResponse(this.query),this.query.returnQueryGeometry){const t=this.query.geometry;(0,y.JY)(this.query.outSR)&&!(0,y.fS)(t.spatialReference,this.query.outSR)?e.queryGeometry=(0,V.S2)({spatialReference:this.query.outSR,...(0,P.iV)(t,t.spatialReference,this.query.outSR)}):e.queryGeometry=(0,V.S2)({spatialReference:this.query.outSR,...t})}return e}createSnappingResponse(e,t){const i=this.featureAdapter,s=W(this.hasZ,this.hasM),{point:r,mode:n}=e,a="number"==typeof e.distance?e.distance:e.distance.x,o="number"==typeof e.distance?e.distance:e.distance.y,l={candidates:[]},u="esriGeometryPolygon"===this.geometryType,c=this._getPointCreator(n,this.spatialReference,t),h=new X(null,0),d=new X(null,0),m={x:0,y:0,z:0};for(const t of this.items){const n=i.getGeometry(t);if(null==n)continue;const{coords:f,lengths:p}=n;if(h.coords=f,d.coords=f,e.returnEdge){let e=0;for(let n=0;ne.distance-t.distance)),l}_getPointCreator(e,t,i){const s=null==i||(0,y.fS)(t,i)?e=>e:e=>(0,P.iV)(e,t,i),{hasZ:r}=this;return"3d"===e?r?({x:e,y:t,z:i})=>s({x:e,y:t,z:i}):({x:e,y:t})=>s({x:e,y:t,z:0}):({x:e,y:t})=>s({x:e,y:t})}async createSummaryStatisticsResponse(e){const{field:t,valueExpression:i,normalizationField:s,normalizationType:r,normalizationTotal:n,minValue:a,maxValue:o,scale:l,timeZone:u}=e,c=this.fieldsIndex.get(t),h=(0,z.y2)(c)||(0,z.UQ)(c)||(0,z.ig)(c),d=await this._getDataValues({field:t,valueExpression:i,normalizationField:s,normalizationType:r,normalizationTotal:n,scale:l,timeZone:u}),m=(0,q.S5)({normalizationType:r,normalizationField:s,minValue:a,maxValue:o}),f={value:.5,fieldType:c?.type},p=(0,z.qN)(c)?(0,q.H0)({values:d,supportsNullCount:m,percentileParams:f}):(0,q.i5)({values:d,minValue:a,maxValue:o,useSampleStdDev:!r,supportsNullCount:m,percentileParams:f});return(0,q.F_)(p,h)}async createUniqueValuesResponse(e){const{field:t,valueExpression:i,domains:s,returnAllCodedValues:r,scale:n,timeZone:a}=e,o=await this._getDataValues({field:t,field2:e.field2,field3:e.field3,fieldDelimiter:e.fieldDelimiter,valueExpression:i,scale:n,timeZone:a},!1),l=(0,q.eT)(o);return(0,q.Qm)(l,s,r,e.fieldDelimiter)}async createClassBreaksResponse(e){const{field:t,valueExpression:i,normalizationField:s,normalizationType:r,normalizationTotal:n,classificationMethod:a,standardDeviationInterval:o,minValue:l,maxValue:u,numClasses:c,scale:h,timeZone:d}=e,m=await this._getDataValues({field:t,valueExpression:i,normalizationField:s,normalizationType:r,normalizationTotal:n,scale:h,timeZone:d}),f=(0,q.G2)(m,{field:t,normalizationField:s,normalizationType:r,normalizationTotal:n,classificationMethod:a,standardDeviationInterval:o,minValue:l,maxValue:u,numClasses:c});return(0,q.DL)(f,a)}async createHistogramResponse(e){const{field:t,valueExpression:i,normalizationField:s,normalizationType:r,normalizationTotal:n,classificationMethod:a,standardDeviationInterval:o,minValue:l,maxValue:u,numBins:c,scale:h,timeZone:d}=e,m=await this._getDataValues({field:t,valueExpression:i,normalizationField:s,normalizationType:r,normalizationTotal:n,scale:h,timeZone:d});return(0,q.oF)(m,{field:t,normalizationField:s,normalizationType:r,normalizationTotal:n,classificationMethod:a,standardDeviationInterval:o,minValue:l,maxValue:u,numBins:c})}_sortFeatures(e,t,i){if(e.length>1&&t?.length)for(const s of t.reverse()){const t=s.split(" "),r=t[0],n=this.fieldsIndex.get(r),a=!!t[1]&&"desc"===t[1].toLowerCase(),o=(0,q.Lq)(n?.type,a);e.sort(((e,t)=>{const s=i(e,r,n),a=i(t,r,n);return o(s,a)}))}}_createFeatureQueryResponse(e){const t=this.items,{geometryType:i,hasM:s,hasZ:r,objectIdField:n,spatialReference:a}=this,{outFields:o,outSR:l,quantizationParameters:u,resultRecordCount:c,resultOffset:h,returnZ:d,returnM:m}=e,f=null!=c&&t.length>(h||0)+c,p=o&&(o.includes("*")?[...this.fieldsIndex.fields]:o.map((e=>this.fieldsIndex.get(e))));return{exceededTransferLimit:f,features:this._createFeatures(e,t),fields:p,geometryType:i,hasM:s&&m,hasZ:r&&d,objectIdFieldName:n,spatialReference:(0,V.S2)(l||a),transform:u&&(0,G.vY)(u)||null}}_createFeatures(e,t){const i=new B(e,this.featureAdapter,this.fieldsIndex),{hasM:s,hasZ:r}=this,{orderByFields:n,quantizationParameters:a,returnGeometry:o,returnCentroid:l,maxAllowableOffset:u,resultOffset:c,resultRecordCount:h,returnZ:d=!1,returnM:m=!1}=e,f=r&&d,p=s&&m;let g=[],y=0;const _=[...t];if(this._sortFeatures(_,n,((e,t,s)=>i.getFieldValue(e,t,s))),this.geometryType&&(o||l)){const e=(0,G.vY)(a)??void 0,t="esriGeometryPolygon"===this.geometryType||"esriGeometryPolyline"===this.geometryType;if(o&&!l)for(const s of _){const r=this.featureAdapter.getGeometry(s),n={attributes:i.getAttributes(s),geometry:(0,V.Op)(this.geometryType,this.hasZ,this.hasM,r,u,e,f,p)};t&&r&&!n.geometry&&(n.centroid=(0,V.EG)(this,this.featureAdapter.getCentroid(s,this),e)),g[y++]=n}else if(!o&&l)for(const t of _)g[y++]={attributes:i.getAttributes(t),centroid:(0,V.EG)(this,this.featureAdapter.getCentroid(t,this),e)};else for(const t of _)g[y++]={attributes:i.getAttributes(t),centroid:(0,V.EG)(this,this.featureAdapter.getCentroid(t,this),e),geometry:(0,V.Op)(this.geometryType,this.hasZ,this.hasM,this.featureAdapter.getGeometry(t),u,e,f,p)}}else for(const e of _){const t=i.getAttributes(e);t&&(g[y++]={attributes:t})}const T=c||0;if(null!=h){const e=T+h;g=g.slice(T,Math.min(g.length,e))}return g}_createExceedsLimitQueryResponse(e){let t=!1,i=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY;for(const t of e.outStatistics??[])if("exceedslimit"===t.statisticType){i=null!=t.maxPointCount?t.maxPointCount:Number.POSITIVE_INFINITY,s=null!=t.maxRecordCount?t.maxRecordCount:Number.POSITIVE_INFINITY,r=null!=t.maxVertexCount?t.maxVertexCount:Number.POSITIVE_INFINITY;break}if("esriGeometryPoint"===this.geometryType)t=this.items.length>i;else if(this.items.length>s)t=!0;else{const e=W(this.hasZ,this.hasM),i=this.featureAdapter;t=this.items.reduce(((e,t)=>{const s=i.getGeometry(t);return e+(null!=s&&s.coords.length||0)}),0)/e>r}return{fields:[{name:"exceedslimit",type:"esriFieldTypeInteger",alias:"exceedslimit",sqlType:"sqlTypeInteger",domain:null,defaultValue:null}],features:[{attributes:{exceedslimit:Number(t)}}]}}async _createStatisticsQueryResponse(e){const t={attributes:{}},i=[],s=new Map,r=new Map,n=new Map,a=new Map,o=new B(e,this.featureAdapter,this.fieldsIndex),l=e.outStatistics,{groupByFieldsForStatistics:u,having:c,orderByFields:h,resultRecordCount:d}=e,m=u?.length,f=!!m,p=f?u[0]:null,g=f&&!this.fieldsIndex.get(p);for(const e of l??[]){const{outStatisticFieldName:l,statisticType:h}=e,d=e,y="exceedslimit"!==h?e.onStatisticField:void 0,_="percentile_disc"===h||"percentile_cont"===h,T="EnvelopeAggregate"===h||"CentroidAggregate"===h||"ConvexHullAggregate"===h,x=f&&1===m&&(y===p||g)&&"count"===h;if(f){if(!n.has(y)){const e=[];for(const t of u){const i=this._getAttributeValues(o,t,s);e.push(i)}n.set(y,this._calculateUniqueValues(e,!T&&o.returnDistinctValues))}const e=n.get(y);if(!e)continue;const t=Object.keys(e);for(const i of t){const{count:t,data:r,items:n,itemPositions:h}=e[i],m=r.join(",");if(!c||o.validateItems(n,c)){const e=a.get(m)||{attributes:{}};if(T){e.aggregateGeometries||(e.aggregateGeometries={});const{aggregateGeometries:t,outStatisticFieldName:i}=await this._getAggregateGeometry(d,n);e.aggregateGeometries[i]=t}else{let i=null;if(x)i=t;else{const e=this._getAttributeValues(o,y,s),t=h.map((t=>e[t]));i=_&&"statisticParameters"in d?this._getPercentileValue(d,t):this._getStatisticValue(d,t,null,o.returnDistinctValues)}e.attributes[l]=i}let i=0;u.forEach(((t,s)=>e.attributes[this.fieldsIndex.get(t)?t:"EXPR_"+ ++i]=r[s])),a.set(m,e)}}}else if(T){t.aggregateGeometries||(t.aggregateGeometries={});const{aggregateGeometries:e,outStatisticFieldName:i}=await this._getAggregateGeometry(d,this.items);t.aggregateGeometries[i]=e}else{const e=this._getAttributeValues(o,y,s);t.attributes[l]=_&&"statisticParameters"in d?this._getPercentileValue(d,e):this._getStatisticValue(d,e,r,o.returnDistinctValues)}const I="min"!==h&&"max"!==h||!(0,z.qN)(this.fieldsIndex.get(y))&&!this._isAnyDateField(y)?null:this.fieldsIndex.get(y)?.type;i.push({name:l,alias:l,type:I||"esriFieldTypeDouble"})}const y=f?Array.from(a.values()):[t];return this._sortFeatures(y,h,((e,t)=>e.attributes[t])),d&&(y.length=Math.min(d,y.length)),{fields:i,features:y}}_isAnyDateField(e){const t=this.fieldsIndex.get(e);return(0,z.y2)(t)||(0,z.UQ)(t)||(0,z.ig)(t)||(0,z.sX)(t)}async _getAggregateGeometry(e,t){const{convexHull:s,union:r}=await Promise.all([i.e(9067),i.e(8923)]).then(i.bind(i,8923)),{statisticType:n,outStatisticFieldName:a}=e,{featureAdapter:o,spatialReference:l,geometryType:u,hasZ:c,hasM:h}=this,d=t.map((e=>(0,V.Op)(u,c,h,o.getGeometry(e)))),m=s(l,d,!0)[0],f={aggregateGeometries:null,outStatisticFieldName:null};if("EnvelopeAggregate"===n){const e=m?(0,Q._w)(m):(0,Q.aO)(r(l,d));f.aggregateGeometries={...e,spatialReference:l},f.outStatisticFieldName=a||"extent"}else if("CentroidAggregate"===n){const e=m?(0,M.tO)(m):(0,M.$G)((0,Q.aO)(r(l,d)));f.aggregateGeometries={x:e[0],y:e[1],spatialReference:l},f.outStatisticFieldName=a||"centroid"}else"ConvexHullAggregate"===n&&(f.aggregateGeometries=m,f.outStatisticFieldName=a||"convexHull");return f}_getStatisticValue(e,t,i,s){const{onStatisticField:r,statisticType:n}=e;let a=null;return a=i?.has(r)?i.get(r):(0,z.qN)(this.fieldsIndex.get(r))||this._isAnyDateField(r)?(0,q.H0)({values:t,returnDistinct:s}):(0,q.i5)({values:s?[...new Set(t)]:t,minValue:null,maxValue:null,useSampleStdDev:!0}),i&&i.set(r,a),a["var"===n?"variance":n]}_getPercentileValue(e,t){const{onStatisticField:i,statisticParameters:s,statisticType:r}=e,{value:n,orderBy:a}=s,o=this.fieldsIndex.get(i);return(0,q.XL)(t,{value:n,orderBy:a,fieldType:o?.type,isDiscrete:"percentile_disc"===r})}_getAttributeValues(e,t,i){if(i.has(t))return i.get(t);const s=this.fieldsIndex.get(t),r=this.items.map((i=>e.getFieldValue(i,t,s)));return i.set(t,r),r}_calculateUniqueValues(e,t){const i={},s=this.items,r=s.length;for(let n=0;n"exceedslimit"!==e.statisticType))}(s))return;const a=s.map((e=>e.onStatisticField)).filter(Boolean);D(e,t,a,{expressionName:"onStatisticFields",query:i}),o&&D(e,t,n,{expressionName:"groupByFieldsForStatistics",query:i});for(const n of s){const{onStatisticField:s,statisticType:a}=n;if("percentile_disc"!==a&&"percentile_cont"!==a||!("statisticParameters"in n))e.get(s)&&"count"!==a&&"min"!==a&&"max"!==a&&D(e,t,[s],{expressionName:`outStatistics with '${a}' statistic type`,allowedFieldTypes:se,query:i});else{const{statisticParameters:e}=n;if(!e)throw new r.Z(ee,"statisticParameters should be set for percentile type",{definition:n,query:i})}}}}(t,n,e),Promise.all([(0,K.P0)(e,i,s),(0,P._W)(s,e.outSR)]).then((()=>e))}function ie(e,t,i){const{outFields:s,orderByFields:n,returnDistinctValues:a,outStatistics:o}=i,l=o?o.map((e=>e.outStatisticFieldName&&e.outStatisticFieldName.toLowerCase())).filter(Boolean):[];if(n&&n.length>0){const s=" asc",r=" desc",a=n.map((e=>{const t=e.toLowerCase();return t.includes(s)?t.split(s)[0]:t.includes(r)?t.split(r)[0]:e})).filter((e=>!l.includes(e)));D(e,t,a,{expressionName:"orderByFields",query:i})}if(s&&s.length>0)D(e,t,s,{expressionName:"outFields",query:i,allowedFieldTypes:"all"});else if(a)throw new r.Z(ee,"outFields should be specified for returnDistinctValues",{query:i});!function(e,t,i,s){if(!i)return!0;const r="where clause";D(e,t,A(e,i,{validateStandardized:!0,expressionName:r}),{expressionName:r,query:s})}(e,t,i.where,i)}const se=new Set([...R,...b]);async function re(e,t,i,s){let n=[];if(i.valueExpression){const{arcadeUtils:e}=await(0,Z.LC)();n=e.extractFieldNames(i.valueExpression)}if(i.field&&n.push(i.field),i.field2&&n.push(i.field2),i.field3&&n.push(i.field3),i.normalizationField&&n.push(i.normalizationField),!n.length&&!i.valueExpression)throw new r.Z(ee,"field or valueExpression is required",{params:i});D(e,t,n,{expressionName:"statistics",query:s})}var ne=i(53316),ae=i(28790),oe=i(44584),le=(i(39994),i(13802)),ue=i(31168),ce=i(17135),he=i(76868),de=i(18809),me=i(12928);const fe=Symbol("Yield");class pe{constructor(){this._tasks=new Array,this._runningTasks=(0,de.t)(0)}get length(){return this._tasks.length}get running(){return this._runningTasks.value>0}destroy(){this.cancelAll()}runTask(e){if(0===this.length)return fe;for(;!e.done&&this._process(e);)e.madeProgress()}push(e,t,i){return++this._runningTasks.value,new Promise(((s,r)=>this._tasks.push(new ge(s,r,e,t,i)))).finally((()=>--this._runningTasks.value))}unshift(e,t,i){return++this._runningTasks.value,new Promise(((s,r)=>this._tasks.unshift(new ge(s,r,e,t,i)))).finally((()=>--this._runningTasks.value))}_process(e){if(0===this._tasks.length)return!1;const t=this._tasks.shift();try{const i=(0,u.Hc)(t.signal);if(i&&!t.abortCallback)t.reject((0,u.zE)());else{const s=i?t.abortCallback?.((0,u.zE)()):t.callback(e);(0,u.y8)(s)?s.then(t.resolve,t.reject):t.resolve(s)}}catch(e){t.reject(e)}return!0}cancelAll(){const e=(0,u.zE)();for(const t of this._tasks)if(t.abortCallback){const i=t.abortCallback(e);t.resolve(i)}else t.reject(e);this._tasks.length=0}}class ge{constructor(e,t,i,s=void 0,r=void 0){this.resolve=e,this.reject=t,this.callback=i,this.signal=s,this.abortCallback=r}}var ye=i(36663),_e=i(74396),Te=i(81977),xe=(i(4157),i(40266));let Ie=class extends _e.Z{constructor(){super(...arguments),this.SCHEDULER_LOG_SLOW_TASKS=!1,this.FEATURE_SERVICE_SNAPPING_SOURCE_TILE_TREE_SHOW_TILES=!1}};(0,ye._)([(0,Te.Cb)()],Ie.prototype,"SCHEDULER_LOG_SLOW_TASKS",void 0),(0,ye._)([(0,Te.Cb)()],Ie.prototype,"FEATURE_SERVICE_SNAPPING_SOURCE_TILE_TREE_SHOW_TILES",void 0),Ie=(0,ye._)([(0,xe.j)("esri.views.support.DebugFlags")],Ie);const Ee=new Ie;var Fe,Se=i(22855);!function(e){e.RESOURCE_CONTROLLER_IMMEDIATE="immediate",e.RESOURCE_CONTROLLER="schedule",e.SLIDE="slide",e.STREAM_DATA_LOADER="stream loader",e.ELEVATION_QUERY="elevation query",e.TERRAIN_SURFACE="terrain",e.SURFACE_GEOMETRY_UPDATES="surface geometry updates",e.LOD_RENDERER="LoD renderer",e.GRAPHICS_CORE="Graphics3D",e.I3S_CONTROLLER="I3S",e.POINT_CLOUD_LAYER="point cloud",e.FEATURE_TILE_FETCHER="feature fetcher",e.OVERLAY="overlay",e.STAGE="stage",e.GRAPHICS_DECONFLICTOR="graphics deconflictor",e.FILTER_VISIBILITY="Graphics3D filter visibility",e.SCALE_VISIBILITY="Graphics3D scale visibility",e.FRUSTUM_VISIBILITY="Graphics3D frustum visibility",e.POINT_OF_INTEREST_FREQUENT="POI frequent",e.POINT_OF_INTEREST_INFREQUENT="POI infrequent",e.LABELER="labeler",e.FEATURE_QUERY_ENGINE="feature query",e.FEATURE_TILE_TREE="feature tile tree",e.FEATURE_TILE_TREE_ACTIVE="fast feature tile tree",e.ELEVATION_ALIGNMENT="elevation alignment",e.ELEVATION_ALIGNMENT_SCENE="elevation alignment scene",e.TEXT_TEXTURE_ATLAS="text texture atlas",e.TEXTURE_UNLOAD="texture unload",e.LINE_OF_SIGHT_TOOL="line of sight tool",e.LINE_OF_SIGHT_TOOL_INTERACTIVE="interactive line of sight tool",e.ELEVATION_PROFILE="elevation profile",e.SNAPPING="snapping",e.SHADOW_ACCUMULATOR="shadow accumulator",e.CLOUDS_GENERATOR="clouds generator",e[e.NONE=0]="NONE",e[e.TEST_PRIO=1]="TEST_PRIO"}(Fe||(Fe={}));const Re=new Map([[Fe.RESOURCE_CONTROLLER_IMMEDIATE,0],[Fe.RESOURCE_CONTROLLER,4],[Fe.SLIDE,0],[Fe.STREAM_DATA_LOADER,0],[Fe.ELEVATION_QUERY,0],[Fe.TERRAIN_SURFACE,1],[Fe.SURFACE_GEOMETRY_UPDATES,1],[Fe.LOD_RENDERER,2],[Fe.GRAPHICS_CORE,2],[Fe.I3S_CONTROLLER,2],[Fe.POINT_CLOUD_LAYER,2],[Fe.FEATURE_TILE_FETCHER,2],[Fe.OVERLAY,4],[Fe.STAGE,4],[Fe.GRAPHICS_DECONFLICTOR,4],[Fe.FILTER_VISIBILITY,4],[Fe.SCALE_VISIBILITY,4],[Fe.FRUSTUM_VISIBILITY,4],[Fe.CLOUDS_GENERATOR,4],[Fe.POINT_OF_INTEREST_FREQUENT,6],[Fe.POINT_OF_INTEREST_INFREQUENT,30],[Fe.LABELER,8],[Fe.FEATURE_QUERY_ENGINE,8],[Fe.FEATURE_TILE_TREE,16],[Fe.FEATURE_TILE_TREE_ACTIVE,0],[Fe.ELEVATION_ALIGNMENT,12],[Fe.ELEVATION_ALIGNMENT_SCENE,14],[Fe.TEXT_TEXTURE_ATLAS,12],[Fe.TEXTURE_UNLOAD,12],[Fe.LINE_OF_SIGHT_TOOL,16],[Fe.LINE_OF_SIGHT_TOOL_INTERACTIVE,0],[Fe.SNAPPING,0],[Fe.SHADOW_ACCUMULATOR,30]]);function be(e){return Re.has(e)?Re.get(e):"number"==typeof e?e:1}const we=(0,me.HA)(6.5),Ae=(0,me.HA)(1),ve=(0,me.HA)(30),Ne=(0,me.HA)(1e3/30),Ce=(0,me.HA)(100);var Oe,De;!function(e){e.Scheduler=class{get updating(){return this._updating.value}_updatingChanged(){this._updating.value=this._tasks.some((e=>e.needsUpdate))}constructor(){this._updating=(0,de.t)(!0),this._microTaskQueued=!1,this._frameNumber=0,this.performanceInfo={total:new ue.Z("total"),tasks:new Map},this._frameTaskTimes=new Map,this._budget=new i,this._state=Se.n.INTERACTING,this._tasks=new ce.Z,this._runQueue=new ce.Z,this._load=0,this._idleStateCallbacks=new ce.Z,this._idleUpdatesStartFired=!1,this._forceTask=!1,this._debug=!1,this._debugHandle=(0,he.YP)((()=>Ee.SCHEDULER_LOG_SLOW_TASKS),(e=>this._debug=e),he.nn);for(const e of Object.keys(Fe))this.performanceInfo.tasks.set(Fe[e],new ue.Z(Fe[e]));const e=this;this._test={FRAME_SAFETY_BUDGET:we,INTERACTING_BUDGET:Ne,IDLE_BUDGET:Ce,get availableBudget(){return e._budget.budget},usedBudget:0,getBudget:()=>e._budget,setBudget:t=>e._budget=t,updateTask:e=>this._updateTask(e),getState:e=>this._getState(e),getRuntime:e=>this._getRuntime(e),frameTaskTimes:this._frameTaskTimes,resetRuntimes:()=>this._resetRuntimes(),getRunning:()=>this._getRunning()}}destroy(){this._tasks.toArray().forEach((e=>e.remove())),this._tasks.clear(),(0,o.hw)(this._debugHandle),this._microTaskQueued=!1,this._updatingChanged()}taskRunningChanged(e){this._updatingChanged(),e&&this._budget.remaining>0&&!this._microTaskQueued&&(this._microTaskQueued=!0,queueMicrotask((()=>{this._microTaskQueued&&(this._microTaskQueued=!1,this._budget.remaining>0&&this._schedule()&&this.frame())})))}registerTask(e,i){const s=new t(this,e,i);return this._tasks.push(s),this._updatingChanged(),this.performanceInfo.tasks.has(e)||this.performanceInfo.tasks.set(e,new ue.Z(e)),s}registerIdleStateCallbacks(e,t){const i={idleBegin:e,idleEnd:t};this._idleStateCallbacks.push(i),this.state===Se.n.IDLE&&this._idleUpdatesStartFired&&i.idleBegin();const s=this;return{remove:()=>this._removeIdleStateCallbacks(i),set idleBegin(e){s._idleUpdatesStartFired&&(i.idleEnd(),s._state===Se.n.IDLE&&e()),i.idleBegin=e},set idleEnd(e){i.idleEnd=e}}}get load(){return this._load}set state(e){this._state!==e&&(this._state=e,this.state!==Se.n.IDLE&&this._idleUpdatesStartFired&&(this._idleUpdatesStartFired=!1,this._idleStateCallbacks.forAll((e=>e.idleEnd()))))}get state(){return this._state}updateBudget(e){this._test.usedBudget=0,++this._frameNumber;let t=we,i=e.frameDuration,s=Ae;switch(this.state){case Se.n.IDLE:t=(0,me.HA)(0),i=(0,me.HA)(Math.max(Ce,e.frameDuration)),s=ve;break;case Se.n.INTERACTING:i=(0,me.HA)(Math.max(Ne,e.frameDuration));case Se.n.ANIMATING:}return i=(0,me.HA)(i-e.elapsedFrameTime-t),this.state!==Se.n.IDLE&&ie.idleBegin()))),this._runIdle();break;case Se.n.INTERACTING:this._runInteracting();break;default:this._runAnimating()}this._test.usedBudget=this._budget.elapsed}stopFrame(){this._budget.reset((0,me.HA)(0),this._state),this._budget.madeProgress()}_removeIdleStateCallbacks(e){this._idleUpdatesStartFired&&e.idleEnd(),this._idleStateCallbacks.removeUnordered(e)}removeTask(e){this._tasks.removeUnordered(e),this._runQueue.removeUnordered(e),this._updatingChanged()}_updateTask(e){this._tasks.forAll((t=>{t.name===e&&t.setPriority(e)}))}_getState(e){if(this._runQueue.some((t=>t.name===e)))return De.SCHEDULED;let t=De.IDLE;return this._tasks.forAll((i=>{i.name===e&&i.needsUpdate&&(i.schedulePriority<=1?t=De.READY:t!==De.READY&&(t=De.WAITING))})),t}_getRuntime(e){let t=0;return this._tasks.forAll((i=>{i.name===e&&(t+=i.runtime)})),t}_resetRuntimes(){this._tasks.forAll((e=>e.runtime=0))}_getRunning(){const e=new Map;if(this._tasks.forAll((t=>{t.needsUpdate&&e.set(t.name,(e.get(t.name)||0)+1)})),0===e.size)return null;let t="";return e.forEach(((e,i)=>{t+=e>1?` ${e}x ${i}`:` ${i}`})),t}_runIdle(){this._run()}_runInteracting(){this._run()}_runAnimating(){this._run()}_updateLoad(){const e=this._tasks.reduce(((e,t)=>t.needsUpdate?++e:e),0);this._load=.9*this._load+e*(1-.9)}_schedule(){for(this._runQueue.filterInPlace((e=>!!e.needsUpdate||(e.schedulePriority=e.basePriority,!1))),this._tasks.forAll((e=>{0===e.basePriority&&e.needsUpdate&&!this._runQueue.includes(e)&&e.blockFrame!==this._frameNumber&&this._runQueue.unshift(e)}));0===this._runQueue.length;){let e=!1,t=0;if(this._tasks.forAll((i=>{i.needsUpdate&&0!==i.schedulePriority&&0!==i.basePriority&&i.blockFrame!==this._frameNumber&&(e=!0,t=Math.max(t,i.basePriority),1===i.schedulePriority?(i.schedulePriority=0,this._runQueue.push(i)):--i.schedulePriority)})),!e)return this._updatingChanged(),!1}return this._updatingChanged(),!0}_run(){const e=this._budget.now();this._startFrameTaskTimes();do{for(;this._runQueue.length>0;){const t=this._budget.now(),i=this._runQueue.pop();this._budget.resetProgress();try{i.task.runTask(this._budget)===fe&&(i.blockFrame=this._frameNumber)}catch(e){le.Z.getLogger("esri.views.support.Scheduler").error(`Exception in task "${i.name}"`,e),i.blockFrame=this._frameNumber}!this._budget.hasProgressed&&i.blockFrame!==this._frameNumber&&i.needsUpdate&&(i.name,Fe.I3S_CONTROLLER,i.blockFrame=this._frameNumber),i.schedulePriority=i.basePriority;const s=this._budget.now()-t;if(i.runtime+=s,this._frameTaskTimes.set(i.priority,this._frameTaskTimes.get(i.priority)+s),this._debug&&this._budget.budget,this._budget.remaining<=0)return this._updatingChanged(),void this._recordFrameTaskTimes(this._budget.now()-e)}}while(this._schedule());this._updatingChanged(),this._recordFrameTaskTimes(this._budget.now()-e)}_startFrameTaskTimes(){for(const e of Object.keys(Fe))this._frameTaskTimes.set(Fe[e],0)}_recordFrameTaskTimes(e){this._frameTaskTimes.forEach(((e,t)=>this.performanceInfo.tasks.get(t).record(e))),this.performanceInfo.total.record(e)}get test(){return this._test}};class t{get task(){return this._task.value}get updating(){return this._queue.running}constructor(e,t,i){this._scheduler=e,this.name=t,this.blockFrame=0,this.runtime=0,this._queue=new pe,this._handles=new oe.Z,this._basePriority=be(t),this.schedulePriority=this._basePriority,this._task=(0,de.t)(null!=i?i:this._queue),this._handles.add((0,he.gx)((()=>this.task.running),(t=>e.taskRunningChanged(t))))}remove(){this.processQueue(ke),this._scheduler.removeTask(this),this.schedule=Ve.schedule,this.reschedule=Ve.reschedule,this._handles.destroy()}get basePriority(){return this._basePriority}setPriority(e){if(this.name===e)return;this.name=e;const t=be(e);0!==this._basePriority&&0===this.schedulePriority||(this.schedulePriority=t),this._basePriority=t}get priority(){return this.name}set priority(e){this.setPriority(e)}get needsUpdate(){return this.updating||this.task.running}schedule(e,t,i){return this._queue.push(e,t,i)}reschedule(e,t,i){return this._queue.unshift(e,t,i)}processQueue(e){return this._queue.runTask(e)}}class i{constructor(){this._begin="undefined"!=typeof performance?performance.now():0,this._budget=0,this._state=Se.n.IDLE,this._done=!1,this._progressed=!1,this._enabled=!0}run(e){return!this.done&&(!0===e()&&this.madeProgress(),!0)}get done(){return this._done}get budget(){return this._budget}madeProgress(){return this._progressed=!0,this._done=this.elapsed>=this._budget&&this._enabled,this._done}get state(){return this._state}get enabled(){return this._enabled}set enabled(e){this._enabled=e}reset(e,t){this._begin=this.now(),this._budget=e,this._state=t,this.resetProgress()}get remaining(){return Math.max(this._budget-this.elapsed,0)}now(){return performance.now()}get elapsed(){return performance.now()-this._begin}resetProgress(){this._progressed=!1,this._done=!1}get hasProgressed(){return this._progressed}}e.Budget=i}(Oe||(Oe={})),function(e){e.SCHEDULED="s",e.READY="r",e.WAITING="w",e.IDLE="i"}(De||(De={}));const ke=(()=>{const e=new Oe.Budget;return e.enabled=!1,e})();const Ve=new class{remove(){}processQueue(){}schedule(e,t,i){try{if((0,u.Hc)(t)){const e=(0,u.zE)();return i?Promise.resolve(i(e)):Promise.reject(e)}return(0,u.gx)(e(ke))}catch(e){return Promise.reject(e)}}reschedule(e,t,i){return this.schedule(e,t,i)}};const Pe=new l.WJ(2e6);let Le=0;class Me{constructor(e){this._geometryQueryCache=null,this._changeHandle=null,this.capabilities={query:L.g},this.geometryType=e.geometryType,this.hasM=!!e.hasM,this.hasZ=!!e.hasZ,this.objectIdField=e.objectIdField,this.spatialReference=e.spatialReference,this.definitionExpression=e.definitionExpression,this.featureStore=e.featureStore,this.aggregateAdapter=e.aggregateAdapter,this._changeHandle=this.featureStore.events.on("changed",(()=>this.clearCache())),this.timeInfo=e.timeInfo,e.cacheSpatialQueries&&(this._geometryQueryCache=new l.Xq(Le+++"$$",Pe)),this.fieldsIndex=(0,n.AK)(e.fieldsIndex)?e.fieldsIndex:ae.Z.fromJSON(e.fieldsIndex),!e.availableFields||1===e.availableFields.length&&"*"===e.availableFields[0]?this.availableFields=new Set(this.fieldsIndex.fields.map((e=>e.name))):this.availableFields=new Set(e.availableFields.map((e=>this.fieldsIndex.get(e)?.name)).filter((e=>null!=e))),e.scheduler&&e.priority&&(this._frameTask=e.scheduler.registerTask(e.priority))}destroy(){this._frameTask=(0,o.hw)(this._frameTask),this.clearCache(),(0,o.SC)(this._geometryQueryCache),this._changeHandle=(0,o.hw)(this._changeHandle)}get featureAdapter(){return this.featureStore.featureAdapter}clearCache(){this._geometryQueryCache?.clear(),this._allFeaturesPromise=null,this._timeExtentPromise=null,this._fullExtentPromise=null}async executeQuery(e,t){const i=(0,u.$h)(t);try{return(await this._executeQuery(e,{},i)).createQueryResponse()}catch(t){if(t!==J.Ti)throw t;return new $([],e,this).createQueryResponse()}}async executeQueryForCount(e={},t){const i=(0,u.$h)(t);try{return(await this._executeQuery(e,{returnGeometry:!1,returnCentroid:!1,outSR:null},i)).createQueryResponseForCount()}catch(e){if(e!==J.Ti)throw e;return 0}}async executeQueryForExtent(e,t){const i=(0,u.$h)(t),s=e.outSR;try{const t=await this._executeQuery(e,{returnGeometry:!0,returnCentroid:!1,outSR:null},i),r=t.size;return r?{count:r,extent:await this._getBounds(t.items,t.spatialReference,s||this.spatialReference)}:{count:0,extent:null}}catch(e){if(e===J.Ti)return{count:0,extent:null};throw e}}async executeQueryForIds(e,t){return this.executeQueryForIdSet(e,t).then((e=>Array.from(e)))}async executeQueryForIdSet(e,t){const i=(0,u.$h)(t);try{const t=await this._executeQuery(e,{returnGeometry:!0,returnCentroid:!1,outSR:null},i),s=t.items,r=new Set;return await this._reschedule((()=>{for(const e of s)r.add(t.featureAdapter.getObjectId(e))}),i),r}catch(e){if(e===J.Ti)return new Set;throw e}}async executeQueryForSnapping(e,t){const i=(0,u.$h)(t),{point:s,distance:r,returnEdge:n,vertexMode:o}=e;if(!n&&"none"===o)return{candidates:[]};let l=(0,a.d9)(e.query);l=await this._schedule((()=>(0,J.j6)(l,this.definitionExpression,this.spatialReference)),i),l=await this._reschedule((()=>te(l,{availableFields:this.availableFields,fieldsIndex:this.fieldsIndex,geometryType:this.geometryType,spatialReference:this.spatialReference})),i);const c=!(0,y.fS)(s.spatialReference,this.spatialReference);c&&await(0,P._W)(s.spatialReference,this.spatialReference);const h="number"==typeof r?r:r.x,d="number"==typeof r?r:r.y,m={xmin:s.x-h,xmax:s.x+h,ymin:s.y-d,ymax:s.y+d,spatialReference:s.spatialReference},f=c?(0,P.iV)(m,this.spatialReference):m;if(!f)return{candidates:[]};const _=(await(0,g.aX)((0,p.im)(s),null,{signal:i}))[0],T=(await(0,g.aX)((0,p.im)(f),null,{signal:i}))[0];if(null==_||null==T)return{candidates:[]};const x=new $(await this._reschedule((()=>this._searchFeatures(this._getQueryBBoxes(T.toJSON()))),i),l,this);await this._reschedule((()=>this._executeObjectIdsQuery(x)),i),await this._reschedule((()=>this._executeTimeQuery(x)),i),await this._reschedule((()=>this._executeAttributesQuery(x)),i),await this._reschedule((()=>this._executeGeometryQueryForSnapping(x,i)),i);const I=_.toJSON(),E=c?(0,P.iV)(I,this.spatialReference):I,F=c?Math.max(f.xmax-f.xmin,f.ymax-f.ymin)/2:r;return x.createSnappingResponse({...e,point:E,distance:F},s.spatialReference)}async executeQueryForLatestObservations(e,t){const i=(0,u.$h)(t);if(!this.timeInfo?.trackIdField)throw new r.Z("unsupported-query","Missing timeInfo or timeInfo.trackIdField",{query:e,timeInfo:this.timeInfo});try{const t=await this._executeQuery(e,{},i);return await this._reschedule((()=>this._filterLatest(t)),i),t.createQueryResponse()}catch(t){if(t!==J.Ti)throw t;return new $([],e,this).createQueryResponse()}}async executeQueryForSummaryStatistics(e={},t,i){const s=(0,u.$h)(i),{field:r,normalizationField:n,valueExpression:a}=t;return(await this._executeQueryForStatistics(e,{field:r,normalizationField:n,valueExpression:a},s)).createSummaryStatisticsResponse(t)}async executeQueryForUniqueValues(e={},t,i){const s=(0,u.$h)(i),{field:r,field2:n,field3:a,valueExpression:o}=t;return(await this._executeQueryForStatistics(e,{field:r,field2:n,field3:a,valueExpression:o},s)).createUniqueValuesResponse(t)}async executeQueryForClassBreaks(e={},t,i){const s=(0,u.$h)(i),{field:r,normalizationField:n,valueExpression:a}=t;return(await this._executeQueryForStatistics(e,{field:r,normalizationField:n,valueExpression:a},s)).createClassBreaksResponse(t)}async executeQueryForHistogram(e={},t,i){const s=(0,u.$h)(i),{field:r,normalizationField:n,valueExpression:a}=t;return(await this._executeQueryForStatistics(e,{field:r,normalizationField:n,valueExpression:a},s)).createHistogramResponse(t)}async fetchRecomputedExtents(e){const t=(0,u.$h)(e);this._timeExtentPromise||=(0,ne.R)(this.timeInfo,this.featureStore);const[i,s]=await Promise.all([this._getFullExtent(),this._timeExtentPromise]);return(0,u.k_)(t),{fullExtent:i,timeExtent:s}}async _getBounds(e,t,i){const s=(0,d.t8)((0,d.Ue)(),d.G_);await this.featureStore.forEachBounds(e,(e=>(0,d.TC)(s,e)));const r={xmin:s[0],ymin:s[1],xmax:s[3],ymax:s[4],spatialReference:(0,V.S2)(this.spatialReference)};this.hasZ&&isFinite(s[2])&&isFinite(s[5])&&(r.zmin=s[2],r.zmax=s[5]);const n=(0,P.iV)(r,t,i);if(n.spatialReference=(0,V.S2)(i),n.xmax-n.xmin==0){const e=(0,c.c9)(n.spatialReference);n.xmin-=e,n.xmax+=e}if(n.ymax-n.ymin==0){const e=(0,c.c9)(n.spatialReference);n.ymin-=e,n.ymax+=e}if(this.hasZ&&null!=n.zmin&&null!=n.zmax&&n.zmax-n.zmin==0){const e=(0,c.c9)(n.spatialReference);n.zmin-=e,n.zmax+=e}return n}_getFullExtent(){return this._fullExtentPromise||="getFullExtent"in this.featureStore&&this.featureStore.getFullExtent?Promise.resolve(this.featureStore.getFullExtent(this.spatialReference)):this._getAllFeatures().then((e=>this._getBounds(e,this.spatialReference,this.spatialReference))),this._fullExtentPromise}async _schedule(e,t){return null!=this._frameTask?this._frameTask.schedule(e,t):e(ke)}async _reschedule(e,t){return null!=this._frameTask?this._frameTask.reschedule(e,t):e(ke)}async _getAllFeaturesQueryEngineResult(e){return new $(await this._getAllFeatures(),e,this)}async _getAllFeatures(){if(null==this._allFeaturesPromise){const e=[];this._allFeaturesPromise=(async()=>{await this.featureStore.forEach((t=>e.push(t)))})().then((()=>e))}const e=this._allFeaturesPromise,t=await e;return e===this._allFeaturesPromise?t.slice():this._getAllFeatures()}async _executeQuery(e,t,i){e=(0,a.d9)(e),e=await this._schedule((()=>(0,J.Up)(e,this.definitionExpression,this.spatialReference)),i),e=await this._reschedule((()=>te(e,{availableFields:this.availableFields,fieldsIndex:this.fieldsIndex,geometryType:this.geometryType,spatialReference:this.spatialReference})),i),e={...e,...t};const s=await this._reschedule((()=>this._executeSceneFilterQuery(e,i)),i),r=await this._reschedule((()=>this._executeGeometryQuery(e,s,i)),i);return await this._reschedule((()=>this._executeAggregateIdsQuery(r)),i),await this._reschedule((()=>this._executeObjectIdsQuery(r)),i),await this._reschedule((()=>this._executeTimeQuery(r)),i),await this._reschedule((()=>this._executeAttributesQuery(r)),i),r}async _executeSceneFilterQuery(e,t){if(null==e.sceneFilter)return null;const{outSR:i,returnGeometry:s,returnCentroid:r}=e,n=this.featureStore.featureSpatialReference,a=e.sceneFilter.geometry,o=null==n||(0,y.fS)(n,a.spatialReference)?a:(0,P.iV)(a,n);if(!o)return null;const l=s||r,u=(0,y.JY)(i)&&!(0,y.fS)(this.spatialReference,i)&&l?async e=>this._project(e,i):e=>e,c=this.featureAdapter,h=await this._reschedule((()=>this._searchFeatures(this._getQueryBBoxes(o))),t);if("disjoint"===e.sceneFilter.spatialRelationship){if(!h.length)return null;const i=new Set;for(const e of h)i.add(c.getObjectId(e));const s=await this._reschedule((()=>this._getAllFeatures()),t),r=await this._reschedule((async()=>{const r=await(0,K.cW)("esriSpatialRelDisjoint",o,this.geometryType,this.hasZ,this.hasM),n=await this._runSpatialFilter(s,(e=>!i.has(c.getObjectId(e))||r(c.getGeometry(e))),t);return new $(n,e,this)}),t);return u(r)}if(!h.length)return new $([],e,this);if(this._canExecuteSinglePass(o,e))return u(new $(h,e,this));const d=await(0,K.cW)("esriSpatialRelContains",o,this.geometryType,this.hasZ,this.hasM),m=await this._runSpatialFilter(h,(e=>d(c.getGeometry(e))),t);return u(new $(m,e,this))}async _executeGeometryQuery(e,t,i){if(null!=t&&0===t.items.length)return t;e=null!=t?t.query:e;const{geometry:r,outSR:n,spatialRel:a,returnGeometry:o,returnCentroid:l}=e,u=this.featureStore.featureSpatialReference,c=!r||null==u||(0,y.fS)(u,r.spatialReference)?r:(0,P.iV)(r,u),h=o||l,d=(0,y.JY)(n)&&!(0,y.fS)(this.spatialReference,n),m=this._geometryQueryCache&&null==t?d&&h?JSON.stringify({originalFilterGeometry:r,spatialRelationship:a,outSpatialReference:n}):JSON.stringify({originalFilterGeometry:r,spatialRelationship:a}):null,f=m?this._geometryQueryCache.get(m):null;if(null!=f)return new $(f,e,this);const p=async e=>(d&&h&&await this._project(e,n),m&&this._geometryQueryCache.put(m,e.items,e.items.length+1),e);if(!c)return p(null!=t?t:await this._getAllFeaturesQueryEngineResult(e));const g=this.featureAdapter;let _=await this._reschedule((()=>this._searchFeatures(this._getQueryBBoxes(r))),i);if("esriSpatialRelDisjoint"===a){if(!_.length)return p(null!=t?t:await this._getAllFeaturesQueryEngineResult(e));const s=new Set;for(const e of _)s.add(g.getObjectId(e));const r=null!=t?t.items:await this._reschedule((()=>this._getAllFeatures()),i),n=await this._reschedule((async()=>{const t=await(0,K.cW)(a,c,this.geometryType,this.hasZ,this.hasM),n=await this._runSpatialFilter(r,(e=>!s.has(g.getObjectId(e))||t(g.getGeometry(e))),i);return new $(n,e,this)}),i);return p(n)}if(null!=t){const e=new s.SO;_=_.filter((i=>(0,s.cq)(t.items,i,t.items.length,e)>=0))}if(!_.length){const t=new $([],e,this);return m&&this._geometryQueryCache.put(m,t.items,1),t}if(this._canExecuteSinglePass(c,e))return p(new $(_,e,this));const T=await(0,K.cW)(a,c,this.geometryType,this.hasZ,this.hasM),x=await this._runSpatialFilter(_,(e=>T(g.getGeometry(e))),i);return p(new $(x,e,this))}async _executeGeometryQueryForSnapping(e,t){const{query:i}=e,{spatialRel:s}=i;if(!e?.items?.length||!i.geometry||!s)return;const r=await(0,K.cW)(s,i.geometry,this.geometryType,this.hasZ,this.hasM),n=await this._runSpatialFilter(e.items,(e=>r(e.geometry)),t);e.items=n}_executeAggregateIdsQuery(e){if(0===e.items.length||!e.query.aggregateIds?.length||null==this.aggregateAdapter)return;const t=new Set;for(const i of e.query.aggregateIds)this.aggregateAdapter.getFeatureObjectIds(i).forEach((e=>t.add(e)));const i=this.featureAdapter.getObjectId;e.items=e.items.filter((e=>t.has(i(e))))}_executeObjectIdsQuery(e){if(0===e.items.length||!e.query.objectIds?.length)return;const t=new Set(e.query.objectIds),i=this.featureAdapter.getObjectId;e.items=e.items.filter((e=>t.has(i(e))))}_executeTimeQuery(e){if(0===e.items.length)return;const t=(0,ne.y)(this.timeInfo,e.query.timeExtent,this.featureAdapter);null!=t&&(e.items=e.items.filter(t))}_executeAttributesQuery(e){if(0===e.items.length)return;const t=N(e.query.where,this.fieldsIndex);if(t){if(!t.isStandardized)throw new TypeError("Where clause is not standardized");e.items=e.items.filter((e=>t.testFeature(e,this.featureAdapter)))}}async _runSpatialFilter(e,t,i){if(!t)return e;if(null==this._frameTask)return e.filter((e=>t(e)));let s=0;const r=new Array,n=async a=>{for(;sn(e)),i)}};return this._reschedule((e=>n(e)),i).then((()=>r))}_filterLatest(e){const{trackIdField:t,startTimeField:i,endTimeField:s}=this.timeInfo,r=s||i,n=new Map,a=this.featureAdapter.getAttribute;for(const i of e.items){const e=a(i,t),s=a(i,r),o=n.get(e);(!o||s>a(o,r))&&n.set(e,i)}e.items=Array.from(n.values())}_canExecuteSinglePass(e,t){const{spatialRel:i}=t;return(0,K.hN)(e)&&("esriSpatialRelEnvelopeIntersects"===i||"esriGeometryPoint"===this.geometryType&&("esriSpatialRelIntersects"===i||"esriSpatialRelContains"===i))}async _project(e,t){if(!t||(0,y.fS)(this.spatialReference,t))return e;const i=this.featureAdapter;let s;try{const e=await this._getFullExtent();s=(0,h.getTransformation)(this.spatialReference,t,e)}catch{}const r=await(0,P.oj)(e.items.map((e=>(0,V.Op)(this.geometryType,this.hasZ,this.hasM,i.getGeometry(e)))),this.spatialReference,t,s);return e.items=r.map(((t,s)=>i.cloneWithGeometry(e.items[s],(0,_.GH)(t,this.hasZ,this.hasM)))),e}_getQueryBBoxes(e){if((0,K.hN)(e)){if((0,p.YX)(e))return[(0,m.al)(Math.min(e.xmin,e.xmax),Math.min(e.ymin,e.ymax),Math.max(e.xmin,e.xmax),Math.max(e.ymin,e.ymax))];if((0,p.oU)(e))return e.rings.map((e=>(0,m.al)(Math.min(e[0][0],e[2][0]),Math.min(e[0][1],e[2][1]),Math.max(e[0][0],e[2][0]),Math.max(e[0][1],e[2][1]))))}return[(0,f.$P)((0,m.Ue)(),e)]}async _searchFeatures(e){const t=new Set;await Promise.all(e.map((e=>this.featureStore.forEachInBounds(e,(e=>t.add(e))))));const i=Array.from(t.values());return t.clear(),i}async _executeQueryForStatistics(e,t,i){e=(0,a.d9)(e);try{e=await this._schedule((()=>(0,J.Up)(e,this.definitionExpression,this.spatialReference)),i),e=await this._reschedule((()=>async function(e,t,{fieldsIndex:i,geometryType:s,spatialReference:n,availableFields:a}){if((e.distance??0)<0||null!=e.geometryPrecision||e.multipatchOption||e.pixelSize||e.relationParam||e.text||e.outStatistics||e.groupByFieldsForStatistics||e.having||e.orderByFields)throw new r.Z(ee,"Unsupported query options",{query:e});return ie(i,a,e),Promise.all([re(i,a,t,e),(0,K.P0)(e,s,n),(0,P._W)(n,e.outSR)]).then((()=>e))}(e,t,{availableFields:this.availableFields,fieldsIndex:this.fieldsIndex,geometryType:this.geometryType,spatialReference:this.spatialReference})),i);const s=await this._reschedule((()=>this._executeSceneFilterQuery(e,i)),i),n=await this._reschedule((()=>this._executeGeometryQuery(e,s,i)),i);return await this._reschedule((()=>this._executeAggregateIdsQuery(n)),i),await this._reschedule((()=>this._executeObjectIdsQuery(n)),i),await this._reschedule((()=>this._executeTimeQuery(n)),i),await this._reschedule((()=>this._executeAttributesQuery(n)),i),n}catch(t){if(t!==J.Ti)throw t;return new $([],e,this)}}}},10287:function(e,t,i){i.d(t,{g:function(){return s}});const s={supportsStatistics:!0,supportsPercentileStatistics:!0,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsCentroid:!0,supportsCacheHint:!1,supportsDistance:!0,supportsDistinct:!0,supportsExtent:!0,supportsGeometryProperties:!1,supportsHavingClause:!0,supportsOrderBy:!0,supportsPagination:!0,supportsQuantization:!0,supportsQuantizationEditMode:!1,supportsQueryGeometry:!0,supportsResultType:!1,supportsSqlExpression:!0,supportsMaxRecordCountFactor:!1,supportsStandardizedQueriesOnly:!0,supportsTopFeaturesQuery:!1,supportsQueryByAnonymous:!0,supportsQueryByOthers:!0,supportsHistoricMoment:!1,supportsFormatPBF:!1,supportsDisjointSpatialRelationship:!0,supportsDefaultSpatialReference:!1,supportsFullTextSearch:!1,supportsCompactGeometry:!1,maxRecordCountFactor:void 0,maxRecordCount:void 0,standardMaxRecordCount:void 0,tileMaxRecordCount:void 0}},12102:function(e,t,i){i.d(t,{n:function(){return a}});var s=i(33480),r=i(59958),n=i(15540);const a={getObjectId:e=>e.objectId,getAttributes:e=>e.attributes,getAttribute:(e,t)=>e.attributes[t],cloneWithGeometry:(e,t)=>new r.u_(t,e.attributes,null,e.objectId),getGeometry:e=>e.geometry,getCentroid:(e,t)=>(null==e.centroid&&(e.centroid=(0,s.Y)(new n.Z,e.geometry,t.hasZ,t.hasM)),e.centroid)}},8638:function(e,t,i){i.d(t,{do:function(){return T},gq:function(){return g},qQ:function(){return y},yO:function(){return _}});i(91957),i(70375);var s=i(95550),r=i(807),n=i(14685),a=i(7505),o=i(35925),l=i(14845),u=i(94672),c=i(44415),h=i(76432),d=i(30879),m=i(67666);let f=null;const p=/^(?([0-1][0-9])|([2][0-3])):(?[0-5][0-9])(:(?[0-5][0-9]))?([.](?\d+))?$/;function g(e,t,i,s){const r=(0,o.MP)(i)?(0,o.C5)(i):null,n=r?Math.round((r.valid[1]-r.valid[0])/t.scale[0]):null;return e.map((e=>{const i=new m.Z(e.geometry);return(0,a.RF)(t,i,i,i.hasZ,i.hasM),e.geometry=r?function(e,t,i){return e.x<0?e.x+=t:e.x>i&&(e.x-=t),e}(i,n??0,s[0]):i,e}))}function y(e,t=18,i,r,n){const a=new Float64Array(r*n);t=Math.round((0,s.F2)(t));let o=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY;const c=(0,u.wx)(i);for(const{geometry:i,attributes:s}of e){const{x:e,y:h}=i,d=Math.max(0,e-t),m=Math.max(0,h-t),f=Math.min(n,h+t),p=Math.min(r,e+t),g=+c(s);for(let i=m;ie.name.toLowerCase()===s.toLowerCase())),g=!!p&&(0,l.sX)(p),y=!!p&&(0,c.a8)(p),T=e.valueExpression,x=e.normalizationType,I=e.normalizationField,E=e.normalizationTotal,F=[],S=e.viewInfoParams;let R=null,b=null;if(T){if(!f){const{arcadeUtils:e}=await(0,d.LC)();f=e}f.hasGeometryOperations(T)&&await f.enableGeometryOperations(),R=f.createFunction(T),b=S?f.getViewInfo({viewingMode:S.viewingMode,scale:S.scale,spatialReference:new n.Z(S.spatialReference)}):null}const w=e.fieldInfos,A=t[0]&&"declaredClass"in t[0]&&"esri.Graphic"===t[0].declaredClass||!w?null:{fields:w};return t.forEach((e=>{const t=e.attributes;let n;if(T){const t=A?{...e,layer:A}:e,i=f.createExecContext(t,b,m);n=f.executeFunction(R,i)}else t&&(n=t[s],r?(n=`${(0,h.wk)(n)}${o}${(0,h.wk)(t[r])}`,a&&(n=`${n}${o}${(0,h.wk)(t[a])}`)):"string"==typeof n&&i&&(y?n=n?new Date(n).getTime():null:g&&(n=n?_(n):null)));if(x&&"number"==typeof n&&isFinite(n)){const e=t&&parseFloat(t[I]);n=(0,h.fk)(n,x,e,E)}F.push(n)})),F}},44415:function(e,t,i){i.d(t,{$8:function(){return o},a8:function(){return a}});var s=i(72057),r=i(14845),n=(i(30879),i(64573),i(72559));new Set(["integer","small-integer"]);function a(e){return(0,r.y2)(e)||(0,r.UQ)(e)||(0,r.ig)(e)}function o(e,t){const{format:i,timeZoneOptions:r,fieldType:a}=t??{};let o,l;if(r&&({timeZone:o,timeZoneName:l}=(0,n.Np)(r.layerTimeZone,r.datesInUnknownTimezone,r.viewTimeZone,(0,s.Ze)(i||"short-date-short-time"),a)),"string"==typeof e&&isNaN(Date.parse("time-only"===a?`1970-01-01T${e}Z`:e)))return e;switch(a){case"date-only":{const t=(0,s.Ze)(i||"short-date");return"string"==typeof e?(0,s.o8)(e,{...t}):(0,s.p6)(e,{...t,timeZone:n.pt})}case"time-only":{const t=(0,s.Ze)(i||"short-time");return"string"==typeof e?(0,s.LJ)(e,t):(0,s.p6)(e,{...t,timeZone:n.pt})}case"timestamp-offset":{if(!o&&"string"==typeof e&&new Date(e).toISOString()!==e)return e;const t=i||r?(0,s.Ze)(i||"short-date-short-time"):void 0,n=t?{...t,timeZone:o,timeZoneName:l}:void 0;return"string"==typeof e?(0,s.i$)(e,n):(0,s.p6)(e,n)}default:{const t=i||r?(0,s.Ze)(i||"short-date-short-time"):void 0;return(0,s.p6)("string"==typeof e?new Date(e):e,t?{...t,timeZone:o,timeZoneName:l}:void 0)}}}},76432:function(e,t,i){i.d(t,{DL:function(){return M},F_:function(){return C},G2:function(){return P},H0:function(){return g},Lq:function(){return T},Qm:function(){return k},S5:function(){return p},XL:function(){return _},eT:function(){return O},fk:function(){return V},i5:function(){return y},oF:function(){return Q},wk:function(){return f}});var s=i(82392),r=i(22595);const n="",a="equal-interval",o=1,l=5,u=10,c=/\s*(\+|-)?((\d+(\.\d+)?)|(\.\d+))\s*/gi,h=new Set(["esriFieldTypeDate","esriFieldTypeInteger","esriFieldTypeSmallInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeLong","esriFieldTypeOID","esriFieldTypeBigInteger"]),d=new Set(["esriFieldTypeTimeOnly","esriFieldTypeDateOnly"]),m=["min","max","avg","stddev","count","sum","variance","nullcount","median"];function f(e){return null==e||"string"==typeof e&&!e?n:e}function p(e){const t=null!=e.normalizationField||null!=e.normalizationType,i=null!=e.minValue||null!=e.maxValue,s=!!e.sqlExpression&&e.supportsSQLExpression;return!t&&!i&&!s}function g(e){const t=e.returnDistinct?[...new Set(e.values)]:e.values,i=t.filter((e=>null!=e)).sort(),s=i.length,r={count:s,min:i[0],max:i[s-1]};return e.supportsNullCount&&(r.nullcount=t.length-s),e.percentileParams&&(r.median=_(t,e.percentileParams)),r}function y(e){const{values:t,useSampleStdDev:i,supportsNullCount:s}=e;let r=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY,a=null,o=null,l=null,u=null,c=0;const h=null==e.minValue?-1/0:e.minValue,d=null==e.maxValue?1/0:e.maxValue;for(const e of t)Number.isFinite(e)?e>=h&&e<=d&&(a=null===a?e:a+e,r=Math.min(r,e),n=Math.max(n,e),c++):"string"==typeof e&&c++;if(c&&null!=a){o=a/c;let e=0;for(const i of t)Number.isFinite(i)&&i>=h&&i<=d&&(e+=(i-o)**2);u=i?c>1?e/(c-1):0:c>0?e/c:0,l=Math.sqrt(u)}else r=null,n=null;const m={avg:o,count:c,max:n,min:r,stddev:l,sum:a,variance:u};return s&&(m.nullcount=t.length-c),e.percentileParams&&(m.median=_(t,e.percentileParams)),m}function _(e,t){const{fieldType:i,value:s,orderBy:r,isDiscrete:n}=t,a=T(i,"desc"===r);if(0===(e=[...e].filter((e=>null!=e)).sort(((e,t)=>a(e,t)))).length)return null;if(s<=0)return e[0];if(s>=1)return e[e.length-1];const o=(e.length-1)*s,l=Math.floor(o),u=l+1,c=o%1,h=e[l],d=e[u];return u>=e.length||n||"string"==typeof h||"string"==typeof d?h:h*(1-c)+d*c}function T(e,t){if(e){if(h.has(e))return v(t);if(d.has(e))return b(t,!1);if("esriFieldTypeTimestampOffset"===e)return function(e){return e?F:E}(t);const i=b(t,!0);if("esriFieldTypeString"===e)return i;if("esriFieldTypeGUID"===e||"esriFieldTypeGlobalID"===e)return(e,t)=>i(N(e),N(t))}const i=t?1:-1,s=v(t),r=b(t,!0);return(e,t)=>"number"==typeof e&&"number"==typeof t?s(e,t):"string"==typeof e&&"string"==typeof t?r(e,t):i}const x=(e,t)=>null==e?null==t?0:1:null==t?-1:null,I=(e,t)=>null==e?null==t?0:-1:null==t?1:null;const E=(e,t)=>I(e,t)??(e===t?0:new Date(e).getTime()-new Date(t).getTime()),F=(e,t)=>x(e,t)??(e===t?0:new Date(t).getTime()-new Date(e).getTime());const S=(e,t)=>I(e,t)??(e===t?0:ex(e,t)??(e===t?0:e{const s=i(e,t);return null!=s?s:(e=e.toUpperCase())>(t=t.toUpperCase())?-1:e{const s=i(e,t);return null!=s?s:(e=e.toUpperCase())<(t=t.toUpperCase())?-1:e>t?1:0}}const w=(e,t)=>x(e,t)??t-e,A=(e,t)=>I(e,t)??e-t;function v(e){return e?w:A}function N(e){return e.substr(24,12)+e.substr(19,4)+e.substr(16,2)+e.substr(14,2)+e.substr(11,2)+e.substr(9,2)+e.substr(6,2)+e.substr(4,2)+e.substr(2,2)+e.substr(0,2)}function C(e,t){let i;for(i in e)m.includes(i)&&(Number.isFinite(e[i])||(e[i]=null));return t?(["avg","stddev","variance"].forEach((t=>{null!=e[t]&&(e[t]=Math.ceil(e[t]??0))})),e):e}function O(e){const t={};for(let i of e)(null==i||"string"==typeof i&&""===i.trim())&&(i=null),null==t[i]?t[i]={count:1,data:i}:t[i].count++;return{count:t}}function D(e){return"coded-value"!==e?.type?[]:e.codedValues.map((e=>e.code))}function k(e,t,i,s){const r=e.count,n=[];if(i&&t){const e=[],i=D(t[0]);for(const r of i)if(t[1]){const i=D(t[1]);for(const n of i)if(t[2]){const i=D(t[2]);for(const t of i)e.push(`${f(r)}${s}${f(n)}${s}${f(t)}`)}else e.push(`${f(r)}${s}${f(n)}`)}else e.push(r);for(const t of e)r.hasOwnProperty(t)||(r[t]={data:t,count:0})}for(const e in r){const t=r[e];n.push({value:t.data,count:t.count,label:t.label})}return{uniqueValueInfos:n}}function V(e,t,i,s){let r=null;switch(t){case"log":0!==e&&(r=Math.log(e)*Math.LOG10E);break;case"percent-of-total":Number.isFinite(s)&&0!==s&&(r=e/s*100);break;case"field":Number.isFinite(i)&&0!==i&&(r=e/i);break;case"natural-log":e>0&&(r=Math.log(e));break;case"square-root":e>0&&(r=e**.5)}return r}function P(e,t){const i=L({field:t.field,normalizationType:t.normalizationType,normalizationField:t.normalizationField,classificationMethod:t.classificationMethod,standardDeviationInterval:t.standardDeviationInterval,breakCount:t.numClasses||l});return e=function(e,t,i){const s=t??-1/0,r=i??1/0;return e.filter((e=>Number.isFinite(e)&&e>=s&&e<=r))}(e,t.minValue,t.maxValue),(0,r.k)({definition:i,values:e,normalizationTotal:t.normalizationTotal})}function L(e){const{breakCount:t,field:i,normalizationField:r,normalizationType:n}=e,l=e.classificationMethod||a,u="standard-deviation"===l?e.standardDeviationInterval||o:void 0;return new s.Z({breakCount:t,classificationField:i,classificationMethod:l,normalizationField:"field"===n?r:void 0,normalizationType:n,standardDeviationInterval:u})}function M(e,t){let i=e.classBreaks;const s=i.length,r=i[0]?.minValue,n=i[s-1]?.maxValue,a="standard-deviation"===t,o=c;return i=i.map((e=>{const t=e.label,i={minValue:e.minValue,maxValue:e.maxValue,label:t};if(a&&t){const e=t.match(o),s=e?.map((e=>+e.trim()))??[];2===s.length?(i.minStdDev=s[0],i.maxStdDev=s[1],s[0]<0&&s[1]>0&&(i.hasAvg=!0)):1===s.length&&(t.includes("<")?(i.minStdDev=null,i.maxStdDev=s[0]):t.includes(">")&&(i.minStdDev=s[0],i.maxStdDev=null))}return i})),{minValue:r,maxValue:n,classBreakInfos:i,normalizationTotal:e.normalizationTotal}}function Q(e,t){const i=G(e,t);if(null==i.min&&null==i.max)return{bins:[],minValue:i.min,maxValue:i.max,normalizationTotal:t.normalizationTotal};const s=i.intervals,r=i.min??0,n=i.max??0,a=s.map(((e,t)=>({minValue:s[t][0],maxValue:s[t][1],count:0})));for(const t of e)if(null!=t&&t>=r&&t<=n){const e=z(s,t);e>-1&&a[e].count++}return{bins:a,minValue:r,maxValue:n,normalizationTotal:t.normalizationTotal}}function G(e,t){const{field:i,classificationMethod:s,standardDeviationInterval:r,normalizationType:n,normalizationField:a,normalizationTotal:o,minValue:l,maxValue:c}=t,h=t.numBins||u;let d=null,m=null,f=null;if(s&&"equal-interval"!==s||n){const{classBreaks:t}=P(e,{field:i,normalizationType:n,normalizationField:a,normalizationTotal:o,classificationMethod:s,standardDeviationInterval:r,minValue:l,maxValue:c,numClasses:h});d=t[0].minValue,m=t[t.length-1].maxValue,f=t.map((e=>[e.minValue,e.maxValue]))}else{if(null!=l&&null!=c)d=l,m=c;else{const t=y({values:e,minValue:l,maxValue:c,useSampleStdDev:!n,supportsNullCount:p({normalizationType:n,normalizationField:a,minValue:l,maxValue:c})});d=t.min??null,m=t.max??null}f=function(e,t,i){const s=(t-e)/i,r=[];let n,a=e;for(let e=1;e<=i;e++)n=a+s,n=Number(n.toFixed(16)),r.push([a,e===i?t:n]),a=n;return r}(d??0,m??0,h)}return{min:d,max:m,intervals:f}}function z(e,t){let i=-1;for(let s=e.length-1;s>=0;s--)if(t>=e[s][0]){i=s;break}return i}},22855:function(e,t,i){var s;i.d(t,{n:function(){return s}}),function(e){e[e.ANIMATING=0]="ANIMATING",e[e.INTERACTING=1]="INTERACTING",e[e.IDLE=2]="IDLE"}(s||(s={}))}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7435.45dffd5033fcb31d0834.js b/docs/sentinel1-explorer/7435.45dffd5033fcb31d0834.js new file mode 100644 index 00000000..1763fa1a --- /dev/null +++ b/docs/sentinel1-explorer/7435.45dffd5033fcb31d0834.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7435],{91203:function(e,t,a){a.d(t,{Z:function(){return oe}});var s=a(36663),i=a(80085),r=a(74396),n=a(76868),o=a(81977),l=(a(39994),a(13802)),c=(a(4157),a(40266)),d=a(95550);function h(e){return"constant"===e.kind?e.value[0]:e.values[e.values.length-1]}function u(e){const t=e.toRgba();return[t[0]/255,t[1]/255,t[2]/255,t[3]]}function p(e){if(!e.hasVisualVariables("size"))return{kind:"constant",value:[(0,d.F2)(e.trailWidth)]};const t=e.getVisualVariablesForType("size")[0],a=[],s=[];let i;if(t.stops){for(const e of t.stops)a.push(e.value),s.push((0,d.F2)(e.size));i=t.stops.length}else a.push(t.minDataValue,t.maxDataValue),s.push((0,d.F2)(t.minSize),(0,d.F2)(t.maxSize)),i=2;return{kind:"ramp",stops:a,values:s,count:i}}function m(e){if(!e.hasVisualVariables("opacity"))return{kind:"constant",value:[1]};const t=e.getVisualVariablesForType("opacity")[0],a=[],s=[];for(const e of t.stops)a.push(e.value),s.push(e.opacity);return{kind:"ramp",stops:a,values:s,count:t.stops.length}}function f(e,t,a,s){switch(t){case"int":e.setUniform1iv(a,s);break;case"float":e.setUniform1fv(a,s);break;case"vec2":e.setUniform2fv(a,s);break;case"vec3":e.setUniform3fv(a,s);break;case"vec4":e.setUniform4fv(a,s)}}function _(e,t,a,s){"constant"===s.kind?f(e,a,`u_${t}`,s.value):(f(e,"float",`u_${t}_stops`,s.stops),f(e,a,`u_${t}_values`,s.values),e.setUniform1i(`u_${t}_count`,s.count))}function y(e,t){return e===t||null!=e&&null!=t&&e.equals(t)}function g(e,t){if(!function(e,t){let a=!0;return a=a&&e.collisions===t.collisions,a=a&&e.density===t.density,a=a&&e.interpolate===t.interpolate,a=a&&e.lineCollisionWidth===t.lineCollisionWidth,a=a&&e.lineSpacing===t.lineSpacing,a=a&&e.maxTurnAngle===t.maxTurnAngle,a=a&&e.minSpeedThreshold===t.minSpeedThreshold,a=a&&e.segmentLength===t.segmentLength,a=a&&e.smoothing===t.smoothing,a=a&&e.velocityScale===t.velocityScale,a=a&&e.verticesPerLine===t.verticesPerLine,a}(e.simulationSettings,t.simulationSettings))return!1;if(!y(e.timeExtent,t.timeExtent))return!1;let a=!0;return a=a&&e.loadImagery===t.loadImagery,a=a&&e.createFlowMesh===t.createFlowMesh,a=a&&e.color.kind===t.color.kind,a=a&&e.opacity.kind===t.opacity.kind,a=a&&e.size.kind===t.size.kind,a}var v=a(78668),w=a(78951),x=a(91907),S=a(71449),b=a(80479),A=a(29620),D=a(41163);class R{constructor(e){this._params=e,this.animated=!1}isCompatible(e){if(!(e instanceof R))return!1;if(!y(this._params.timeExtent,e._params.timeExtent))return!1;let t=!0;return t=t&&this._params.loadImagery===e._params.loadImagery,t=t&&this._params.color.kind===e._params.color.kind,t=t&&this._params.opacity.kind===e._params.opacity.kind,t}async load(e,t){const{extent:a,size:s}=e;(0,v.k_)(t);const i=await this._params.loadImagery(a,s[0],s[1],this._params.timeExtent,t);return new z(i,{color:this._params.color,opacity:this._params.opacity})}render(e,t,a){const{context:s}=e,{program:i}=a;s.setFaceCullingEnabled(!1),s.setBlendingEnabled(!0),s.setBlendFunction(x.zi.ONE,x.zi.ONE_MINUS_SRC_ALPHA),s.useProgram(i),i.setUniformMatrix3fv("u_dvsMat3",t.dvsMat3),s.bindTexture(a.texture,0),i.setUniform1i("u_texture",0),i.setUniform1f("u_Min",a.min),i.setUniform1f("u_Max",a.max),_(i,"color","vec4",this._params.color),_(i,"opacity","float",this._params.opacity),s.bindVAO(a.vertexArray),s.drawArrays(x.MX.TRIANGLE_STRIP,0,4)}}const M=new Map;M.set("a_position",0),M.set("a_texcoord",1);const I={geometry:[new D.G("a_position",2,x.g.UNSIGNED_SHORT,0,8),new D.G("a_texcoord",2,x.g.UNSIGNED_SHORT,4,8)]},P={vsPath:"raster/flow/imagery",fsPath:"raster/flow/imagery",attributes:M};class z{constructor(e,t){this._flowData=e,this._values=t}attach(e){const{context:t}=e,{width:a,height:s}=this._flowData,i=w.f.createVertex(t,x.l1.STATIC_DRAW,new Uint16Array([0,0,0,1,a,0,1,1,0,s,0,0,a,s,1,0])),r=new A.U(t,M,I,{geometry:i}),n=[];"ramp"===this._values.color.kind&&n.push("vvColor"),"ramp"===this._values.opacity.kind&&n.push("vvOpacity");const o=e.painter.materialManager.getProgram(P,n);let l=1e6,c=-1e6;for(let e=0;e0}isCompatible(e){return e instanceof T&&g(this._params,e._params)}async load(e,t){const{extent:a,size:s}=e;(0,v.k_)(t);const i=await this._params.loadImagery(a,s[0],s[1],this._params.timeExtent,t),{vertexData:r,indexData:n}=await this._params.createFlowMesh("Particles",this._params.simulationSettings,i,t);return new C(r,n,{color:this._params.color,opacity:this._params.opacity,size:this._params.size})}render(e,t,a){const{context:s}=e,{program:i}=a;s.setFaceCullingEnabled(!1),s.setBlendingEnabled(!0),s.setBlendFunction(x.zi.ONE,x.zi.ONE_MINUS_SRC_ALPHA),s.useProgram(i),i.setUniform1f("u_time",t.time),i.setUniform1f("u_trailLength",this._params.trailLength),i.setUniform1f("u_flowSpeed",this._params.flowSpeed),i.setUniform1f("u_featheringSize",this._params.featheringSize),i.setUniform1f("u_featheringOffset",this._params.featheringOffset),i.setUniform1f("u_introFade",this._params.introFade?1:0),i.setUniform1f("u_fadeToZero",this._params.fadeToZero?1:0),i.setUniform1f("u_decayRate",this._params.decayRate),i.setUniformMatrix3fv("u_dvsMat3",t.dvsMat3),i.setUniformMatrix3fv("u_displayViewMat3",t.displayViewMat3),_(i,"color","vec4",this._params.color),_(i,"opacity","float",this._params.opacity),_(i,"size","float",this._params.size),s.bindVAO(a.vertexArray),s.drawElements(x.MX.TRIANGLES,a.indexCount,x.g.UNSIGNED_INT,0)}}const U=new Map;U.set("a_xyts0",0),U.set("a_xyts1",1),U.set("a_typeIdDurationSeed",2),U.set("a_extrudeInfo",3);const V={geometry:[new D.G("a_xyts0",4,x.g.FLOAT,0,64),new D.G("a_xyts1",4,x.g.FLOAT,16,64),new D.G("a_typeIdDurationSeed",4,x.g.FLOAT,32,64),new D.G("a_extrudeInfo",4,x.g.FLOAT,48,64)]},F={vsPath:"raster/flow/particles",fsPath:"raster/flow/particles",attributes:U};class C{constructor(e,t,a){this._vertexData=e,this._indexData=t,this._values=a}attach(e){const{context:t}=e,a=w.f.createVertex(t,x.l1.STATIC_DRAW,this._vertexData),s=w.f.createIndex(t,x.l1.STATIC_DRAW,this._indexData),i=new A.U(t,U,V,{geometry:a},s),r=[];"ramp"===this._values.color.kind&&r.push("vvColor"),"ramp"===this._values.opacity.kind&&r.push("vvOpacity"),"ramp"===this._values.size.kind&&r.push("vvSize");const n=e.painter.materialManager.getProgram(F,r);this.vertexArray=i,this.program=n,this.indexCount=this._indexData.length,this._vertexData=null,this._indexData=null}detach(){this.vertexArray.dispose()}get ready(){return this.program.compiled}}class k{constructor(e){this._styles=e}get animated(){return this._styles.reduce(((e,t)=>e||t.animated),!1)}isCompatible(e){if(!(e instanceof k))return!1;if(this._styles.length!==e._styles.length)return!1;const t=this._styles.length;for(let a=0;aa.load(e,t))));return new E(a)}render(e,t,a){for(let s=0;se&&t.ready),!0)}}class O{constructor(e){this._params=e}get animated(){return this._params.flowSpeed>0}isCompatible(e){return e instanceof O&&g(this._params,e._params)}async load(e,t){const{extent:a,size:s}=e;(0,v.k_)(t);const i=await this._params.loadImagery(a,s[0],s[1],this._params.timeExtent,t),{vertexData:r,indexData:n}=await this._params.createFlowMesh("Streamlines",this._params.simulationSettings,i,t);return new Z(r,n,{color:this._params.color,opacity:this._params.opacity,size:this._params.size})}render(e,t,a){const{context:s}=e,{program:i}=a;s.setFaceCullingEnabled(!1),s.setBlendingEnabled(!0),s.setBlendFunction(x.zi.ONE,x.zi.ONE_MINUS_SRC_ALPHA),s.useProgram(i),i.setUniform1f("u_time",t.time),i.setUniform1f("u_trailLength",this._params.trailLength),i.setUniform1f("u_flowSpeed",this._params.flowSpeed),i.setUniform1f("u_featheringSize",this._params.featheringSize),i.setUniform1f("u_featheringOffset",this._params.featheringOffset),i.setUniform1f("u_introFade",this._params.introFade?1:0),i.setUniform1f("u_fadeToZero",this._params.fadeToZero?1:0),i.setUniform1f("u_decayRate",this._params.decayRate),i.setUniformMatrix3fv("u_dvsMat3",t.dvsMat3),i.setUniformMatrix3fv("u_displayViewMat3",t.displayViewMat3),_(i,"color","vec4",this._params.color),_(i,"opacity","float",this._params.opacity),_(i,"size","float",this._params.size),s.bindVAO(a.vertexArray),s.drawElements(x.MX.TRIANGLES,a.indexCount,x.g.UNSIGNED_INT,0)}}const L=new Map;L.set("a_positionAndSide",0),L.set("a_timeInfo",1),L.set("a_extrude",2),L.set("a_speed",3);const N={geometry:[new D.G("a_positionAndSide",3,x.g.FLOAT,0,36),new D.G("a_timeInfo",3,x.g.FLOAT,12,36),new D.G("a_extrude",2,x.g.FLOAT,24,36),new D.G("a_speed",1,x.g.FLOAT,32,36)]},G={vsPath:"raster/flow/streamlines",fsPath:"raster/flow/streamlines",attributes:L};class Z{constructor(e,t,a){this._vertexData=e,this._indexData=t,this._values=a}attach(e){const{context:t}=e,a=w.f.createVertex(t,x.l1.STATIC_DRAW,this._vertexData),s=w.f.createIndex(t,x.l1.STATIC_DRAW,this._indexData),i=new A.U(t,L,N,{geometry:a},s),r=[];"ramp"===this._values.color.kind&&r.push("vvColor"),"ramp"===this._values.opacity.kind&&r.push("vvOpacity"),"ramp"===this._values.size.kind&&r.push("vvSize");const n=e.painter.materialManager.getProgram(G,r);this.vertexArray=i,this.program=n,this.indexCount=this._indexData.length,this._vertexData=null,this._indexData=null}detach(){this.vertexArray.dispose()}get ready(){return this.program.compiled}}function j(e,t){const{flowSpeed:a,trailLength:s}=e,i=function(e){const t=h(p(e)),a=t,s=Math.max(t/2,5),i=Math.round((0,d.F2)(e.maxPathLength)/s)+1,{density:r}=e;return{smoothing:(0,d.F2)(e.smoothing),interpolate:!0,velocityScale:"flow-from"===e.flowRepresentation?1:-1,verticesPerLine:i,minSpeedThreshold:.001,segmentLength:s,maxTurnAngle:1,collisions:!0,lineCollisionWidth:a,lineSpacing:10,density:r}}(e);let r=null;const n={opacity:m(e),size:p(e)};let o=function(e){if(!e.hasVisualVariables("color"))return{kind:"constant",value:u(e.color)};const t=e.getVisualVariablesForType("color")[0],a=[],s=[];for(const e of t.stops)a.push(e.value),Array.prototype.push.apply(s,u(e.color));return{kind:"ramp",stops:a,values:s,count:t.stops.length}}(e);if("none"===e.background)n.color=o;else{"constant"===o.kind&&(o={kind:"ramp",stops:[0,1],values:[0,0,0,1,o.value[0],o.value[1],o.value[2],o.value[3]],count:2});const e={loadImagery:t.loadImagery,timeExtent:t.timeExtent,color:o,opacity:{kind:"constant",value:[1]}};r=new R(e),n.color={kind:"constant",value:[.1,.1,.1,1]}}const l={loadImagery:t.loadImagery,createFlowMesh:t.createFlowMesh,simulationSettings:i,timeExtent:t.timeExtent,trailLength:s,flowSpeed:a,featheringSize:1,featheringOffset:.5,introFade:true,fadeToZero:true,decayRate:2.3,color:n.color,opacity:n.opacity,size:n.size},c="butt"===e.trailCap||h(p(e))<=4?new O(l):new T(l);return null!=r?new k([r,c]):c}var q=a(88243),H=a(38642),B=a(29316);class W extends B.Z{constructor(){super(...arguments),this._visualState={time:0,dvsMat3:(0,H.Ue)(),displayViewMat3:(0,H.Ue)()}}dispose(){}prepareState(e){const{context:t}=e;t.setColorMask(!0,!0,!0,!0),t.setStencilFunction(x.wb.EQUAL,0,255)}draw(e,t){const{requestRender:a,allowDelayedRender:s}=e,{displayData:i}=t;if(null==i)return;if("loaded"===i.state.name&&i.attach(e),"attached"!==i.state.name)return;const r=i.state.resources;!s||r.ready||null==a?(this._visualState.time=e.time/1e3,this._visualState.dvsMat3=t.transforms.displayViewScreenMat3,this._visualState.displayViewMat3=e.state.displayViewMat3,i.flowStyle.render(e,this._visualState,r),i.flowStyle.animated&&null!=a&&a()):a()}}var K=a(38716),X=a(10994);class Y extends X.Z{constructor(){super(...arguments),this.flowStyle=null}doRender(e){super.doRender(e)}prepareRenderPasses(e){const t=e.registerRenderPass({name:"flow",brushes:[W],target:()=>this.children,drawPhase:K.jx.MAP});return[...super.prepareRenderPasses(e),t]}}a(91957);var $=a(19431),J=a(67666);class Q{constructor(e,t,a,s){this.state={name:"created"},this.flowStyle=e,this.extent=t,this.size=a,this.pixelRatio=s}async load(){const e=new AbortController;this.state={name:"loading",abortController:e};const t={extent:this.extent,size:this.size,pixelRatio:this.pixelRatio},a=await this.flowStyle.load(t,e.signal);this.state={name:"loaded",resources:a}}attach(e){if("loaded"!==this.state.name)return void l.Z.getLogger("esri.views.2d.engine.flow.FlowDisplayData").error("Only loaded resources can be attached.");const t=this.state.resources;t.attach(e),this.state={name:"attached",resources:t}}detach(){if("loading"===this.state.name)return this.state.abortController.abort(),void(this.state={name:"detached"});"attached"===this.state.name&&(this.state.resources.detach(),this.state={name:"detached"})}update(e){return!!this.flowStyle.isCompatible(e.flowStyle)&&!(!this.extent.equals(e.extent)||this.size[0]!==e.size[0]||this.size[1]!==e.size[1]||this.pixelRatio!==e.pixelRatio||(this.flowStyle=e.flowStyle,0))}}var ee=a(46332),te=a(51118);class ae extends te.s{constructor(){super(...arguments),this._displayData=null}get displayData(){return this._displayData}set displayData(e){this._displayData=e,this.requestRender()}clear(){null!=this._displayData&&(this._displayData.detach(),this._displayData=null,this.requestRender())}setTransform(e){const{displayData:t}=this;if(null==t)return;const a=t.extent.xmin,s=t.extent.ymax,i=[0,0];e.toScreen(i,[a,s]);const r=(t.extent.xmax-t.extent.xmin)/t.size[0]/e.resolution,n=(0,$.Vl)(e.rotation),{displayViewScreenMat3:o}=this.transforms;(0,ee.vc)(o,[-1,1,0]),(0,ee.bA)(o,o,[2/(e.size[0]*e.pixelRatio),-2/(e.size[1]*e.pixelRatio),1]),(0,ee.Iu)(o,o,[i[0],i[1],0]),(0,ee.U1)(o,o,n),(0,ee.bA)(o,o,[r*e.pixelRatio,r*e.pixelRatio,1])}_createTransforms(){return{displayViewScreenMat3:(0,H.Ue)()}}}var se=a(91772);let ie=class extends r.Z{constructor(e){super(e),this._flowDisplayObject=new ae,this._loading=null}initialize(){this.flowContainer.addChild(this._flowDisplayObject)}destroy(){this._clear(),this.flowContainer.removeAllChildren()}get updating(){return null!=this._loading}update(e){const{flowStyle:t}=this.flowContainer;if(null==t)return void this._clear();const{extent:a,rotation:s,resolution:i,pixelRatio:r}=e.state,n=function(e,t){const a=new J.Z({x:(e.xmax+e.xmin)/2,y:(e.ymax+e.ymin)/2,spatialReference:e.spatialReference}),s=e.xmax-e.xmin,i=e.ymax-e.ymin,r=Math.abs(Math.cos((0,$.Vl)(t))),n=Math.abs(Math.sin((0,$.Vl)(t))),o=r*s+n*i,l=n*s+r*i,c=new se.Z({xmin:a.x-o/2,ymin:a.y-l/2,xmax:a.x+o/2,ymax:a.y+l/2,spatialReference:e.spatialReference});return c.centerAt(a),c}(a,s);n.expand(1.15);const o=[Math.round((n.xmax-n.xmin)/i),Math.round((n.ymax-n.ymin)/i)],c=new Q(t,n,o,r);if(null!=this._loading){if(this._loading.update(c))return;this._loading.detach(),this._loading=null}null!=this._flowDisplayObject.displayData&&this._flowDisplayObject.displayData.update(c)||(c.load().then((()=>{this._flowDisplayObject.clear(),this._flowDisplayObject.displayData=this._loading,this._loading=null}),(e=>{(0,v.D_)(e)||(l.Z.getLogger(this).error("A resource failed to load.",e),this._loading=null)})),this._loading=c)}_clear(){this._flowDisplayObject.clear(),null!=this._loading&&(this._loading.detach(),this._loading=null)}};(0,s._)([(0,o.Cb)()],ie.prototype,"_loading",void 0),(0,s._)([(0,o.Cb)()],ie.prototype,"flowContainer",void 0),(0,s._)([(0,o.Cb)()],ie.prototype,"updating",null),ie=(0,s._)([(0,c.j)("esri.views.2d.engine.flow.FlowStrategy")],ie);const re=ie;let ne=class extends r.Z{constructor(){super(...arguments),this._loadImagery=(e,t,a,s,i)=>(0,q.KK)(this.layer,e,t,a,s,i),this._createFlowMesh=(e,t,a,s)=>this.layer.createFlowMesh({meshType:e,flowData:a,simulationSettings:t},{signal:s}),this.attached=!1,this.type="flow",this.timeExtent=null,this.redrawOrRefetch=async()=>{this._updateVisualization()}}get updating(){return!this.attached||this._strategy.updating}attach(){const{layer:e}=this,t=()=>{this._loadImagery=(t,a,s,i,r)=>(0,q.KK)(e,t,a,s,i,r),this._updateVisualization()};"multidimensionalDefinition"in e?this.addHandles((0,n.YP)((()=>e.multidimensionalDefinition),t)):this.addHandles([(0,n.YP)((()=>e.mosaicRule),t),(0,n.YP)((()=>e.rasterFunction),t),(0,n.YP)((()=>e.definitionExpression),t)]),this.container=new Y,this._strategy=new re({flowContainer:this.container}),this._updateVisualization()}detach(){this._strategy.destroy(),this.container?.removeAllChildren(),this.container=null,this.removeHandles()}update(e){e.stationary?this._strategy.update(e):this.layerView.requestUpdate()}hitTest(e){return new i.Z({attributes:{},geometry:e.clone(),layer:this.layer})}moveEnd(){}async doRefresh(){}_updateVisualization(){const e=this.layer.renderer;if(null==e||"flow"!==e.type)return;const t=j(e,{loadImagery:this._loadImagery,createFlowMesh:this._createFlowMesh,timeExtent:this.timeExtent});this.container.flowStyle=t,this.layerView.requestUpdate()}};(0,s._)([(0,o.Cb)()],ne.prototype,"_strategy",void 0),(0,s._)([(0,o.Cb)()],ne.prototype,"attached",void 0),(0,s._)([(0,o.Cb)()],ne.prototype,"container",void 0),(0,s._)([(0,o.Cb)()],ne.prototype,"layer",void 0),(0,s._)([(0,o.Cb)()],ne.prototype,"layerView",void 0),(0,s._)([(0,o.Cb)()],ne.prototype,"type",void 0),(0,s._)([(0,o.Cb)()],ne.prototype,"updating",null),(0,s._)([(0,o.Cb)()],ne.prototype,"timeExtent",void 0),ne=(0,s._)([(0,c.j)("esri.views.2d.engine.flow.FlowView2D")],ne);const oe=ne},79195:function(e,t,a){a.d(t,{Z:function(){return c}});var s=a(29316),i=a(91907);const r=new Float32Array([.27058823529411763,.4588235294117647,.7098039215686275,1,.396078431372549,.5372549019607843,.7215686274509804,1,.5176470588235295,.6196078431372549,.7294117647058823,1,.6352941176470588,.7058823529411765,.7411764705882353,1,.7529411764705882,.8,.7450980392156863,1,.8705882352941177,.8901960784313725,.7490196078431373,1,1,1,.7490196078431373,1,1,.8627450980392157,.6313725490196078,1,.9803921568627451,.7254901960784313,.5176470588235295,1,.9607843137254902,.596078431372549,.4117647058823529,1,.9294117647058824,.4588235294117647,.3176470588235294,1,.9098039215686274,.08235294117647059,.08235294117647059,1]),n=new Float32Array([0,92/255,230/255,1]),o={beaufort_ft:r,beaufort_m:r,beaufort_km:r,beaufort_mi:r,beaufort_kn:new Float32Array([.1568627450980392,.5725490196078431,.7803921568627451,1,.34901960784313724,.6352941176470588,.7294117647058823,1,.5058823529411764,.7019607843137254,.6705882352941176,1,.6274509803921569,.7607843137254902,.6078431372549019,1,.7490196078431373,.8313725490196079,.5411764705882353,1,.8549019607843137,.9019607843137255,.4666666666666667,1,.9803921568627451,.9803921568627451,.39215686274509803,1,.9882352941176471,.8352941176470589,.3254901960784314,1,.9882352941176471,.7019607843137254,.4,1,.9803921568627451,.5529411764705883,.20392156862745098,1,.9686274509803922,.43137254901960786,.16470588235294117,1,.9411764705882353,.2784313725490196,.11372549019607843,1]),classified_arrow:new Float32Array([.2196078431372549,.6588235294117647,0,1,.5450980392156862,1.2117647058823529,0,1,1,1,0,1,1,.5019607843137255,0,1,1,0,0,1]),ocean_current_m:new Float32Array([.3058823529411765,.10196078431372549,.6,1,.7019607843137254,.10588235294117647,.10196078431372549,1,.792156862745098,.5019607843137255,.10196078431372549,1,.6941176470588235,.6941176470588235,.6941176470588235,1]),ocean_current_kn:new Float32Array([0,0,0,1,0,.1450980392156863,.39215686274509803,1,.3058823529411765,.10196078431372549,.6,1,.592156862745098,0,.39215686274509803,1,.7019607843137254,.10588235294117647,.10196078431372549,1,.6941176470588235,.3058823529411765,.10196078431372549,1,.792156862745098,.5019607843137255,.10196078431372549,1,.6941176470588235,.7019607843137254,.20392156862745098,1,.6941176470588235,.6941176470588235,.6941176470588235,1]),simple_scalar:n,single_arrow:n,wind_speed:new Float32Array([0,0,0,1])},l=[0,20];class c extends s.Z{constructor(){super(...arguments),this._desc={magdir:{vsPath:"raster/magdir",fsPath:"raster/magdir",attributes:new Map([["a_pos",0],["a_offset",1],["a_vv",2]])},scalar:{vsPath:"raster/scalar",fsPath:"raster/scalar",attributes:new Map([["a_pos",0],["a_offset",1],["a_vv",2]])}}}dispose(){}prepareState({context:e}){e.setBlendingEnabled(!0),e.setBlendFunctionSeparate(i.zi.ONE,i.zi.ONE_MINUS_SRC_ALPHA,i.zi.ONE,i.zi.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilOp(i.xS.KEEP,i.xS.KEEP,i.xS.REPLACE)}draw(e,t){if(null==t.source||0===t.source.validPixelCount)return;const{context:a,timeline:s}=e;if(s.begin(this.name),a.setStencilFunction(i.wb.EQUAL,t.stencilRef,255),t.updateVectorFieldVAO(e),"scalar"===e.renderPass){const a=t.vaoData.scalar;a&&this._drawScalars(e,t,a.vao,a.elementCount)}else{const a=t.vaoData.magdir;a&&this._drawTriangles(e,t,a.vao,a.elementCount)}s.end(this.name)}_drawTriangles(e,t,a,s){const{context:r,painter:n,requestRender:c,allowDelayedRender:d}=e,{symbolizerParameters:h}=t,u=h.dataRange?["dataRange"]:[];"geographic"===h.rotationType&&u.push("rotationGeographic");const p=n.materialManager.getProgram(this._desc.magdir,u);if(d&&null!=c&&!p.compiled)return void c();r.useProgram(p);const{coordScale:m,opacity:f,transforms:_}=t;p.setUniform2fv("u_coordScale",m),p.setUniform1f("u_opacity",f),p.setUniformMatrix3fv("u_dvsMat3",_.displayViewScreenMat3);const{style:y,dataRange:g,rotation:v,symbolPercentRange:w}=h;p.setUniform4fv("u_colors",o[y]),p.setUniform2fv("u_dataRange",g||l),p.setUniform1f("u_rotation",v),p.setUniform2fv("u_symbolPercentRange",w);const x=this._getSymbolSize(e,t);p.setUniform2fv("u_symbolSize",x),r.bindVAO(a),r.drawElements(i.MX.TRIANGLES,s,i.g.UNSIGNED_INT,0)}_drawScalars(e,t,a,s){const{context:r,painter:n,requestRender:o,allowDelayedRender:c}=e,{symbolizerParameters:d}=t,h=[];"wind_speed"===d.style?h.push("innerCircle"):d.dataRange&&h.push("dataRange"),"geographic"===d.rotationType&&h.push("rotationGeographic");const u=n.materialManager.getProgram(this._desc.scalar,h);if(c&&null!=o&&!u.compiled)return void o();r.useProgram(u);const{coordScale:p,opacity:m,transforms:f}=t;u.setUniform2fv("u_coordScale",p),u.setUniform1f("u_opacity",m),u.setUniformMatrix3fv("u_dvsMat3",f.displayViewScreenMat3);const{dataRange:_,symbolPercentRange:y}=d;u.setUniform2fv("u_dataRange",_||l),u.setUniform2fv("u_symbolPercentRange",y);const g=this._getSymbolSize(e,t);u.setUniform2fv("u_symbolSize",g),r.bindVAO(a),r.drawElements(i.MX.TRIANGLES,s,i.g.UNSIGNED_INT,0)}_getSymbolSize(e,t){const a=t.key?2**(e.displayLevel-t.key.level):t.resolution/e.state.resolution,{symbolTileSize:s}=t.symbolizerParameters;return[s/(Math.round((t.width-t.offset[0])/s)*s)/a,s/(Math.round((t.height-t.offset[1])/s)*s)/a]}}},84557:function(e,t,a){a.d(t,{F:function(){return u}});a(39994);var s=a(46332),i=a(38642),r=a(45867),n=a(7928),o=a(51118),l=a(64429),c=a(78951),d=a(91907),h=a(29620);class u extends o.s{constructor(e=null){super(),this._source=null,this._symbolizerParameters=null,this._vaoInvalidated=!0,this.coordScale=[1,1],this.height=null,this.key=null,this.offset=null,this.stencilRef=0,this.resolution=null,this.pixelRatio=1,this.x=0,this.y=0,this.rotation=0,this.rawPixelData=null,this.vaoData=null,this.width=null,this.source=e}destroy(){null!=this.vaoData&&(this.vaoData.magdir?.vao.dispose(),this.vaoData.scalar?.vao.dispose(),this.vaoData=null)}get symbolizerParameters(){return this._symbolizerParameters}set symbolizerParameters(e){JSON.stringify(this._symbolizerParameters)!==JSON.stringify(e)&&(this._symbolizerParameters=e,this.invalidateVAO())}get source(){return this._source}set source(e){this._source=e,this.invalidateVAO()}invalidateVAO(){this._vaoInvalidated||null==this.vaoData||(this.vaoData.magdir?.vao.dispose(),this.vaoData.scalar?.vao.dispose(),this.vaoData=null,this._vaoInvalidated=!0,this.requestRender())}updateVectorFieldVAO(e){if(this._vaoInvalidated){if(this._vaoInvalidated=!1,null!=this.source&&null==this.vaoData){const{style:t}=this.symbolizerParameters;switch(t){case"beaufort_ft":case"beaufort_km":case"beaufort_kn":case"beaufort_m":case"beaufort_mi":case"classified_arrow":case"ocean_current_kn":case"ocean_current_m":case"single_arrow":{const t=(0,n.wF)(this.source,this.symbolizerParameters),a=this._createVectorFieldVAO(e.context,t);this.vaoData={magdir:a}}break;case"simple_scalar":{const t=(0,n.K)(this.source,this.symbolizerParameters),a=this._createVectorFieldVAO(e.context,t);this.vaoData={scalar:a}}break;case"wind_speed":{const t=(0,n.wF)(this.source,this.symbolizerParameters),a=this._createVectorFieldVAO(e.context,t),s=(0,n.K)(this.source,this.symbolizerParameters),i=this._createVectorFieldVAO(e.context,s);this.vaoData={magdir:a,scalar:i}}}}this.ready(),this.requestRender()}}_createTransforms(){return{displayViewScreenMat3:(0,i.Ue)()}}setTransform(e){const t=(0,s.yR)(this.transforms.displayViewScreenMat3),[a,i]=e.toScreenNoRotation([0,0],[this.x,this.y]),n=this.resolution/this.pixelRatio/e.resolution,o=n*this.width,l=n*this.height,c=Math.PI*this.rotation/180;(0,s.Iu)(t,t,(0,r.al)(a,i)),(0,s.Iu)(t,t,(0,r.al)(o/2,l/2)),(0,s.U1)(t,t,-c),(0,s.Iu)(t,t,(0,r.al)(-o/2,-l/2)),(0,s.ex)(t,t,(0,r.al)(o,l)),(0,s.Jp)(this.transforms.displayViewScreenMat3,e.displayViewMat3,t)}onAttach(){this.invalidateVAO()}onDetach(){this.invalidateVAO()}_createVectorFieldVAO(e,t){const{vertexData:a,indexData:s}=t,i=c.f.createVertex(e,d.l1.STATIC_DRAW,new Float32Array(a)),r=c.f.createIndex(e,d.l1.STATIC_DRAW,new Uint32Array(s)),n=(0,l.cM)("vector-field",{geometry:[{location:0,name:"a_pos",count:2,type:d.g.FLOAT,normalized:!1},{location:1,name:"a_offset",count:2,type:d.g.FLOAT,normalized:!1},{location:2,name:"a_vv",count:2,type:d.g.FLOAT,normalized:!1}]});return{vao:new h.U(e,n.attributes,n.bufferLayouts,{geometry:i},r),elementCount:s.length}}}},70179:function(e,t,a){a.d(t,{Z:function(){return c}});var s=a(39994),i=a(38716),r=a(10994),n=a(22598),o=a(27946);const l=(e,t)=>e.key.level-t.key.level!=0?e.key.level-t.key.level:e.key.row-t.key.row!=0?e.key.row-t.key.row:e.key.col-t.key.col;class c extends r.Z{constructor(e){super(),this._tileInfoView=e}renderChildren(e){this.sortChildren(l),this.setStencilReference(e),super.renderChildren(e)}createRenderParams(e){const{state:t}=e,a=super.createRenderParams(e);return a.requiredLevel=this._tileInfoView.getClosestInfoForScale(t.scale).level,a.displayLevel=this._tileInfoView.tileInfo.scaleToZoom(t.scale),a}prepareRenderPasses(e){const t=super.prepareRenderPasses(e);return t.push(e.registerRenderPass({name:"stencil",brushes:[n.Z],drawPhase:i.jx.DEBUG|i.jx.MAP|i.jx.HIGHLIGHT|i.jx.LABEL,target:()=>this.getStencilTarget()})),(0,s.Z)("esri-tiles-debug")&&t.push(e.registerRenderPass({name:"tileInfo",brushes:[o.Z],drawPhase:i.jx.DEBUG,target:()=>this.children})),t}getStencilTarget(){return this.children}setStencilReference(e){let t=1;for(const e of this.children)e.stencilRef=t++}}},59439:function(e,t,a){a.d(t,{V5:function(){return r},e7:function(){return i}});var s=a(14845);async function i(e,t=e.popupTemplate){if(null==t)return[];const a=await t.getRequiredFields(e.fieldsIndex),{lastEditInfoEnabled:i}=t,{objectIdField:r,typeIdField:n,globalIdField:o,relationships:l}=e;if(a.includes("*"))return["*"];const c=i?(0,s.CH)(e):[],d=(0,s.Q0)(e.fieldsIndex,[...a,...c]);return n&&d.push(n),d&&r&&e.fieldsIndex?.has(r)&&!d.includes(r)&&d.push(r),d&&o&&e.fieldsIndex?.has(o)&&!d.includes(o)&&d.push(o),l&&l.forEach((t=>{const{keyField:a}=t;d&&a&&e.fieldsIndex?.has(a)&&!d.includes(a)&&d.push(a)})),d}function r(e,t){return e.popupTemplate?e.popupTemplate:null!=t&&t.defaultPopupTemplateEnabled&&null!=e.defaultPopupTemplate?e.defaultPopupTemplate:null}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7440.6e6f8b54af98741d1be5.js b/docs/sentinel1-explorer/7440.6e6f8b54af98741d1be5.js new file mode 100644 index 00000000..02fabdfe --- /dev/null +++ b/docs/sentinel1-explorer/7440.6e6f8b54af98741d1be5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7440],{24065:function(e,t,i){i.d(t,{R:function(){return g}});var r=i(36663),s=i(74396),a=i(84684),o=i(81977),n=(i(39994),i(13802),i(4157),i(40266)),h=i(68577),l=i(51599),p=i(21586),y=i(93698);const u={visible:"visibleSublayers",definitionExpression:"layerDefs",labelingInfo:"hasDynamicLayers",labelsVisible:"hasDynamicLayers",opacity:"hasDynamicLayers",minScale:"visibleSublayers",maxScale:"visibleSublayers",renderer:"hasDynamicLayers",source:"hasDynamicLayers"};let g=class extends s.Z{constructor(e){super(e),this.floors=null,this.scale=0}destroy(){this.layer=null}get dynamicLayers(){if(!this.hasDynamicLayers)return null;const e=this.visibleSublayers.map((e=>{const t=(0,p.f)(this.floors,e);return e.toExportImageJSON(t)}));return e.length?JSON.stringify(e):null}get hasDynamicLayers(){return this.layer&&(0,y.FN)(this.visibleSublayers,this.layer.serviceSublayers,this.layer.gdbVersion)}set layer(e){this._get("layer")!==e&&(this._set("layer",e),this.removeHandles("layer"),e&&this.addHandles([e.allSublayers.on("change",(()=>this.notifyChange("visibleSublayers"))),e.on("sublayer-update",(e=>this.notifyChange(u[e.propertyName])))],"layer"))}get layers(){const e=this.visibleSublayers;return e?e.length?"show:"+e.map((e=>e.id)).join(","):"show:-1":null}get layerDefs(){const e=!!this.floors?.length,t=this.visibleSublayers.filter((t=>null!=t.definitionExpression||e&&null!=t.floorInfo));return t.length?JSON.stringify(t.reduce(((e,t)=>{const i=(0,p.f)(this.floors,t),r=(0,a._)(i,t.definitionExpression);return null!=r&&(e[t.id]=r),e}),{})):null}get version(){this.commitProperty("layers"),this.commitProperty("layerDefs"),this.commitProperty("dynamicLayers"),this.commitProperty("timeExtent");const e=this.layer;return e&&(e.commitProperty("dpi"),e.commitProperty("imageFormat"),e.commitProperty("imageTransparency"),e.commitProperty("gdbVersion")),(this._get("version")||0)+1}get visibleSublayers(){const e=[];if(!this.layer)return e;const t=this.layer.sublayers,i=this.scale,r=t=>{t.visible&&(0===i||(0,h.o2)(i,t.minScale,t.maxScale))&&(t.sublayers?t.sublayers.forEach(r):e.unshift(t))};t&&t.forEach(r);const s=this._get("visibleSublayers");return!s||s.length!==e.length||s.some(((t,i)=>e[i]!==t))?e:s}toJSON(){const e=this.layer;let t={dpi:e.dpi,format:e.imageFormat,transparent:e.imageTransparency,gdbVersion:e.gdbVersion||null};return this.hasDynamicLayers&&this.dynamicLayers?t.dynamicLayers=this.dynamicLayers:t={...t,layers:this.layers,layerDefs:this.layerDefs},t}};(0,r._)([(0,o.Cb)({readOnly:!0})],g.prototype,"dynamicLayers",null),(0,r._)([(0,o.Cb)()],g.prototype,"floors",void 0),(0,r._)([(0,o.Cb)({readOnly:!0})],g.prototype,"hasDynamicLayers",null),(0,r._)([(0,o.Cb)()],g.prototype,"layer",null),(0,r._)([(0,o.Cb)({readOnly:!0})],g.prototype,"layers",null),(0,r._)([(0,o.Cb)({readOnly:!0})],g.prototype,"layerDefs",null),(0,r._)([(0,o.Cb)({type:Number})],g.prototype,"scale",void 0),(0,r._)([(0,o.Cb)(l.qG)],g.prototype,"timeExtent",void 0),(0,r._)([(0,o.Cb)({readOnly:!0})],g.prototype,"version",null),(0,r._)([(0,o.Cb)({readOnly:!0})],g.prototype,"visibleSublayers",null),g=(0,r._)([(0,n.j)("esri.layers.mixins.ExportImageParameters")],g)},97440:function(e,t,i){i.r(t),i.d(t,{default:function(){return S}});var r=i(36663),s=i(13802),a=i(78668),o=i(76868),n=i(81977),h=(i(39994),i(4157),i(40266)),l=i(94449),p=i(12688),y=i(66878),u=i(18133),g=i(14945),m=i(23134),c=i(26216),d=i(51599),b=i(24065);const f=e=>{let t=class extends e{initialize(){this.exportImageParameters=new b.R({layer:this.layer})}destroy(){this.exportImageParameters.destroy(),this.exportImageParameters=null}get floors(){return this.view?.floors??null}get exportImageVersion(){return this.exportImageParameters?.commitProperty("version"),this.commitProperty("timeExtent"),this.commitProperty("floors"),(this._get("exportImageVersion")||0)+1}canResume(){return!!super.canResume()&&!this.timeExtent?.isEmpty}};return(0,r._)([(0,n.Cb)()],t.prototype,"exportImageParameters",void 0),(0,r._)([(0,n.Cb)({readOnly:!0})],t.prototype,"floors",null),(0,r._)([(0,n.Cb)({readOnly:!0})],t.prototype,"exportImageVersion",null),(0,r._)([(0,n.Cb)()],t.prototype,"layer",void 0),(0,r._)([(0,n.Cb)()],t.prototype,"suspended",void 0),(0,r._)([(0,n.Cb)(d.qG)],t.prototype,"timeExtent",void 0),t=(0,r._)([(0,h.j)("esri.views.layers.MapImageLayerView")],t),t};var _=i(55068),v=i(7608),x=i(99621);let C=class extends(f((0,_.Z)((0,y.y)(c.Z)))){constructor(){super(...arguments),this._highlightGraphics=new l.J,this._updateHash=""}fetchPopupFeaturesAtLocation(e,t){return this._popupHighlightHelper.fetchPopupFeaturesAtLocation(e,t)}update(e){const t=`${this.exportImageVersion}/${e.state.id}/${e.pixelRatio}/${e.stationary}`;this._updateHash!==t&&(this._updateHash=t,this.strategy.update(e).catch((e=>{(0,a.D_)(e)||s.Z.getLogger(this).error(e)})),e.stationary&&this._popupHighlightHelper.updateHighlightedFeatures(e.state.resolution)),this._highlightView.processUpdate(e)}attach(){const{imageMaxWidth:e,imageMaxHeight:t,version:i}=this.layer,r=i>=10.3,s=i>=10;this._bitmapContainer=new p.c,this.container.addChild(this._bitmapContainer),this._highlightView=new u.Z({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new g.Z(this.view.featuresTilingScheme),defaultPointSymbolEnabled:!1}),this.container.addChild(this._highlightView.container),this._popupHighlightHelper=new v.VF({createFetchPopupFeaturesQueryGeometry:(e,t)=>(0,x.K)(e,t,this.view),highlightGraphics:this._highlightGraphics,highlightGraphicUpdated:(e,t)=>{this._highlightView.graphicUpdateHandler({graphic:e,property:t})},layerView:this,updatingHandles:this._updatingHandles}),this.strategy=new m.Z({container:this._bitmapContainer,fetchSource:this.fetchImageBitmap.bind(this),requestUpdate:this.requestUpdate.bind(this),imageMaxWidth:e,imageMaxHeight:t,imageRotationSupported:r,imageNormalizationSupported:s,hidpi:!0}),this.addAttachHandles((0,o.YP)((()=>this.exportImageVersion),(()=>this.requestUpdate()))),this.requestUpdate()}detach(){this.strategy.destroy(),this.container.removeAllChildren(),this._bitmapContainer.removeAllChildren(),this._highlightView.destroy(),this._popupHighlightHelper.destroy()}moveStart(){}viewChange(){}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return this.layer.serviceSupportsSpatialReference(e)}async doRefresh(){this._updateHash="",this.requestUpdate()}isUpdating(){return this.strategy.updating||this.updateRequested}fetchImage(e,t,i,r){return this.layer.fetchImage(e,t,i,{timeExtent:this.timeExtent,floors:this.floors,...r})}fetchImageBitmap(e,t,i,r){return this.layer.fetchImageBitmap(e,t,i,{timeExtent:this.timeExtent,floors:this.floors,...r})}highlight(e){return this._popupHighlightHelper.highlight(e)}};(0,r._)([(0,n.Cb)()],C.prototype,"strategy",void 0),(0,r._)([(0,n.Cb)()],C.prototype,"updating",void 0),C=(0,r._)([(0,h.j)("esri.views.2d.layers.MapImageLayerView2D")],C);const S=C}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7503.fd4be9f485e4ba9e8a3c.js b/docs/sentinel1-explorer/7503.fd4be9f485e4ba9e8a3c.js new file mode 100644 index 00000000..8cb5e6ec --- /dev/null +++ b/docs/sentinel1-explorer/7503.fd4be9f485e4ba9e8a3c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7503],{47503:function(e,t,r){r.r(t),r.d(t,{default:function(){return te}});var n=r(36663),i=r(66341),o=r(41151),a=r(6865),l=r(70375),s=r(15842),u=r(78668),c=r(3466),d=r(81977),p=(r(39994),r(13802)),y=(r(4157),r(40266)),m=r(38481),f=r(23148),h=r(55854),b=r(86114),g=r(27668),v=r(95874),_=r(51599),T=r(92557),I=r(94451),C=r(93968),F=r(53110),x=r(76432);class V{constructor(e,t){this.objectId=e,this.itemSource=t,this.count=0,this.layer=null,this.sortValue=void 0}}const w=new h.z(20,(e=>e.destroy()));let S=class extends((0,v.M)((0,g.h)((0,s.R)(m.Z)))){constructor(e){super(e),this._oidToReference=new Map,this._layerToReference=new Map,this._portals=new Map,this.layers=new a.Z,this.maximumVisibleSublayers=10,this.opacity=1,this.title="Layers In View",this.type="catalog-dynamic-group",this.visible=!0}load(e){return this.addResolvingPromise(this.parent.load()),Promise.resolve(this)}get _orderBy(){return this.parent.orderBy?.find((e=>!e.valueExpression&&e.field))??new I.Z({field:this.parent.objectIdField})}get _referenceComparator(){const e=this._orderBy,t=this.parent.fieldsIndex.get(e.field),r=(0,x.Lq)(t?.toJSON().type,"descending"===e.order);return(e,t)=>r(e.sortValue,t.sortValue)||e.objectId-e.objectId}acquireLayer(e){const t=e.getObjectId(),r=(0,b.s1)(this._oidToReference,t,(()=>this._createLayerReference(e)));return r.count++,(0,f.kB)((()=>{r.count--,r.count||this._disposeLayerReference(r)}))}_createLayerReference(e){const t=e.getObjectId(),r=e.getAttribute(this.parent.itemSourceField),n=new V(t,r);if(w.get(r))return this._addLayer(w.pop(r),n,e),n;let i;try{i=JSON.parse(r)}catch(e){return p.Z.getLogger(this).error(e),n}return this._createLayer(i).then((t=>{this.destroyed||0===n.count?(w.get(r)||w.put(n.itemSource,t),n.layer=null):this._addLayer(t,n,e)})).catch((()=>{})),n}_addLayer(e,t,r){this._layerToReference.set(e,t),t.sortValue=r.getAttribute(this._orderBy.field),t.layer=e,e.parent=this,this.layers.add(e),this.layers.sort(((e,t)=>this._referenceComparator(this._layerToReference.get(e),this._layerToReference.get(t))))}_disposeLayerReference(e){e.layer&&(this._layerToReference.delete(e.layer),this.layers.remove(e.layer),w.put(e.itemSource,e.layer)),this._oidToReference.delete(e.objectId)}async _createLayer(e){if(!function(e){return"object"==typeof e&&null!=e&&"itemId"in e&&"portalUrl"in e}(e))return new(await T.T.UnsupportedLayer());const{itemId:t,portalUrl:r}=e,n=(0,b.s1)(this._portals,r,(()=>new C.Z({url:r})));return m.Z.fromPortalItem(new F.default({id:t,portal:n}))}};(0,n._)([(0,d.Cb)()],S.prototype,"_orderBy",null),(0,n._)([(0,d.Cb)()],S.prototype,"_referenceComparator",null),(0,n._)([(0,d.Cb)({readOnly:!0})],S.prototype,"layers",void 0),(0,n._)([(0,d.Cb)()],S.prototype,"maximumVisibleSublayers",void 0),(0,n._)([(0,d.Cb)(_.Oh)],S.prototype,"opacity",void 0),(0,n._)([(0,d.Cb)({type:String,json:{name:"title",write:!0}})],S.prototype,"title",void 0),(0,n._)([(0,d.Cb)({json:{read:!1}})],S.prototype,"type",void 0),(0,n._)([(0,d.Cb)({type:Boolean,json:{name:"visibility",write:!0}})],S.prototype,"visible",void 0),S=(0,n._)([(0,y.j)("esri.layers.catalog.CatalogDynamicGroupLayer")],S);const L=S;var D=r(80020),j=(r(86004),r(55565),r(16192),r(71297),r(878),r(22836),r(50172),r(72043),r(72506),r(54021)),z=r(22368),N=r(26732),O=r(49341),P=r(10171);let q=class extends((0,v.M)((0,z.b)((0,g.h)((0,s.R)(m.Z))))){constructor(e){super(e),this.labelingInfo=null,this.labelsVisible=!0,this.legendEnabled=!0,this.opacity=1,this.popupEnabled=!0,this.popupTemplate=null,this.renderer=null,this.type="catalog-footprint",this.visible=!0}load(e){return this.addResolvingPromise(this.parent.load()),Promise.resolve(this)}get defaultPopupTemplate(){return this.createPopupTemplate()}get fields(){return this.parent.fields}get fieldsIndex(){return this.parent.fieldsIndex}get geometryType(){return this.parent.geometryType}get objectIdField(){return this.parent.objectIdField}get orderBy(){return this.parent.orderBy}createPopupTemplate(e){const t={fields:this.parent.fields,objectIdField:this.parent.objectIdField,title:this.title};return(0,P.eZ)(t,e)}createQuery(){return this.parent.createQuery()}queryFeatures(e,t){return this.parent.queryFeatures(e,t)}};(0,n._)([(0,d.Cb)({readOnly:!0})],q.prototype,"defaultPopupTemplate",null),(0,n._)([(0,d.Cb)({type:[N.Z],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:O.r,write:!0}})],q.prototype,"labelingInfo",void 0),(0,n._)([(0,d.Cb)(_.iR)],q.prototype,"labelsVisible",void 0),(0,n._)([(0,d.Cb)(_.rn)],q.prototype,"legendEnabled",void 0),(0,n._)([(0,d.Cb)(_.Oh)],q.prototype,"opacity",void 0),(0,n._)([(0,d.Cb)(_.C_)],q.prototype,"popupEnabled",void 0),(0,n._)([(0,d.Cb)({type:D.Z,json:{name:"popupInfo",write:!0}})],q.prototype,"popupTemplate",void 0),(0,n._)([(0,d.Cb)({types:j.A,json:{name:"layerDefinition.drawingInfo.renderer"}})],q.prototype,"renderer",void 0),(0,n._)([(0,d.Cb)({json:{read:!1}})],q.prototype,"type",void 0),(0,n._)([(0,d.Cb)({type:Boolean,json:{name:"visibility",write:!0}})],q.prototype,"visible",void 0),q=(0,n._)([(0,y.j)("esri.layers.catalog.CatalogFootprintLayer")],q);const R=q;var Z=r(87676),k=r(40400),E=r(91223),M=r(87232),B=r(63989),Q=r(3465),U=r(43330),G=r(91610),$=r(18241),A=r(12478),J=r(2030),Y=r(23556),H=r(89076),K=r(76912),X=r(14136);const W=(0,H.v)();let ee=class extends((0,Q.B)((0,g.h)((0,G.c)((0,J.n)((0,v.M)((0,A.Q)((0,M.Y)((0,U.q)((0,$.I)((0,s.R)((0,B.N)((0,E.V)((0,o.J)(m.Z)))))))))))))){constructor(e){super(e),this.dynamicGroupLayer=new L({parent:this}),this.fields=null,this.fieldsIndex=null,this.footprintLayer=new R({parent:this}),this.itemSourceField="cd_itemsource",this.itemTypeField="cd_itemtype",this.layers=new a.Z([this.dynamicGroupLayer,this.footprintLayer]),this.source=new Z.default({layer:this}),this.type="catalog"}load(e){const t=null!=e?e.signal:null,r=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(u.r9).then((async()=>{if(!this.url)throw new l.Z("catalog-layer:missing-url","Catalog layer must be created with a url");if(this.url&&null==this.layerId){const e=await this._fetchFirstValidLayerId(t);if(null==e)throw new l.Z("catalog-layer:missing-layerId","There is no Catalog Layer in the service",{service:this.url});this.layerId=e}await this.source.load(),this.source.sourceJSON&&(this.sourceJSON=this.source.sourceJSON,this.read(this.source.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl}))})).then((()=>(0,Y.nU)(this,"load",e)));return this.addResolvingPromise(r),Promise.resolve(this)}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("capabilities"),(this._get("createQueryVersion")??0)+1}get parsedUrl(){const e=(0,c.mN)(this.url);return null!=e&&null!=this.layerId&&(e.path=(0,c.v_)(e.path,this.layerId.toString())),e}createQuery(){const e=new X.Z,t=this.capabilities?.query;e.returnGeometry=!0,t&&(e.compactGeometryEnabled=t.supportsCompactGeometry,e.defaultSpatialReferenceEnabled=t.supportsDefaultSpatialReference),e.outFields=["*"];const{timeOffset:r,timeExtent:n}=this;return e.timeExtent=null!=r&&null!=n?n.offset(-r.value,r.unit):n||null,e}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){return this.fieldsIndex.get(e)?.domain}async queryFeatures(e,t){const r=await this.load(),n=await r.source.queryFeatures(X.Z.from(e)??r.createQuery(),t);if(n?.features)for(const e of n.features)e.layer=e.sourceLayer=r.footprintLayer;return n}async queryObjectIds(e,t){return(await this.load()).source.queryObjectIds(X.Z.from(e)??this.createQuery(),t)}async queryFeatureCount(e,t){return(await this.load()).source.queryFeatureCount(X.Z.from(e)??this.createQuery(),t)}async queryExtent(e,t){return(await this.load()).source.queryExtent(X.Z.from(e)??this.createQuery(),t)}serviceSupportsSpatialReference(e){return this.loaded&&(0,K.D)(this,e)}read(e,t){super.read(e,t);let r=e.footprintLayer;r||"service"!==t?.origin||(r={layerDefinition:{drawingInfo:(0,k.bU)(e.geometryType)}}),this.footprintLayer.read(r,t)}_fetchFirstValidLayerId(e){return(0,i.Z)(this.url,{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then((e=>{const t=e.data;if(t)return Array.isArray(t.layers)?t.layers.find((e=>"Catalog Layer"===e.type))?.id:void 0}))}};(0,n._)([(0,d.Cb)({readOnly:!0})],ee.prototype,"createQueryVersion",null),(0,n._)([(0,d.Cb)({...W.fields,json:{origins:{service:{name:"fields"}}}})],ee.prototype,"fields",void 0),(0,n._)([(0,d.Cb)(W.fieldsIndex)],ee.prototype,"fieldsIndex",void 0),(0,n._)([(0,d.Cb)({json:{read:!1,write:!1}})],ee.prototype,"footprintLayer",void 0),(0,n._)([(0,d.Cb)()],ee.prototype,"itemSourceField",void 0),(0,n._)([(0,d.Cb)()],ee.prototype,"itemTypeField",void 0),(0,n._)([(0,d.Cb)()],ee.prototype,"layers",void 0),(0,n._)([(0,d.Cb)({value:"CatalogLayer",type:["CatalogLayer"]})],ee.prototype,"operationalLayerType",void 0),(0,n._)([(0,d.Cb)()],ee.prototype,"outFields",void 0),(0,n._)([(0,d.Cb)({readOnly:!0})],ee.prototype,"parsedUrl",null),(0,n._)([(0,d.Cb)()],ee.prototype,"source",void 0),(0,n._)([(0,d.Cb)({json:{read:!1}})],ee.prototype,"type",void 0),ee=(0,n._)([(0,y.j)("esri.layers.CatalogLayer")],ee);const te=ee},76432:function(e,t,r){r.d(t,{DL:function(){return Z},F_:function(){return j},G2:function(){return q},H0:function(){return h},Lq:function(){return v},Qm:function(){return O},S5:function(){return f},XL:function(){return g},eT:function(){return z},fk:function(){return P},i5:function(){return b},oF:function(){return k},wk:function(){return m}});var n=r(82392),i=r(22595);const o="",a="equal-interval",l=1,s=5,u=10,c=/\s*(\+|-)?((\d+(\.\d+)?)|(\.\d+))\s*/gi,d=new Set(["esriFieldTypeDate","esriFieldTypeInteger","esriFieldTypeSmallInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeLong","esriFieldTypeOID","esriFieldTypeBigInteger"]),p=new Set(["esriFieldTypeTimeOnly","esriFieldTypeDateOnly"]),y=["min","max","avg","stddev","count","sum","variance","nullcount","median"];function m(e){return null==e||"string"==typeof e&&!e?o:e}function f(e){const t=null!=e.normalizationField||null!=e.normalizationType,r=null!=e.minValue||null!=e.maxValue,n=!!e.sqlExpression&&e.supportsSQLExpression;return!t&&!r&&!n}function h(e){const t=e.returnDistinct?[...new Set(e.values)]:e.values,r=t.filter((e=>null!=e)).sort(),n=r.length,i={count:n,min:r[0],max:r[n-1]};return e.supportsNullCount&&(i.nullcount=t.length-n),e.percentileParams&&(i.median=g(t,e.percentileParams)),i}function b(e){const{values:t,useSampleStdDev:r,supportsNullCount:n}=e;let i=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,a=null,l=null,s=null,u=null,c=0;const d=null==e.minValue?-1/0:e.minValue,p=null==e.maxValue?1/0:e.maxValue;for(const e of t)Number.isFinite(e)?e>=d&&e<=p&&(a=null===a?e:a+e,i=Math.min(i,e),o=Math.max(o,e),c++):"string"==typeof e&&c++;if(c&&null!=a){l=a/c;let e=0;for(const r of t)Number.isFinite(r)&&r>=d&&r<=p&&(e+=(r-l)**2);u=r?c>1?e/(c-1):0:c>0?e/c:0,s=Math.sqrt(u)}else i=null,o=null;const y={avg:l,count:c,max:o,min:i,stddev:s,sum:a,variance:u};return n&&(y.nullcount=t.length-c),e.percentileParams&&(y.median=g(t,e.percentileParams)),y}function g(e,t){const{fieldType:r,value:n,orderBy:i,isDiscrete:o}=t,a=v(r,"desc"===i);if(0===(e=[...e].filter((e=>null!=e)).sort(((e,t)=>a(e,t)))).length)return null;if(n<=0)return e[0];if(n>=1)return e[e.length-1];const l=(e.length-1)*n,s=Math.floor(l),u=s+1,c=l%1,d=e[s],p=e[u];return u>=e.length||o||"string"==typeof d||"string"==typeof p?d:d*(1-c)+p*c}function v(e,t){if(e){if(d.has(e))return L(t);if(p.has(e))return V(t,!1);if("esriFieldTypeTimestampOffset"===e)return function(e){return e?C:I}(t);const r=V(t,!0);if("esriFieldTypeString"===e)return r;if("esriFieldTypeGUID"===e||"esriFieldTypeGlobalID"===e)return(e,t)=>r(D(e),D(t))}const r=t?1:-1,n=L(t),i=V(t,!0);return(e,t)=>"number"==typeof e&&"number"==typeof t?n(e,t):"string"==typeof e&&"string"==typeof t?i(e,t):r}const _=(e,t)=>null==e?null==t?0:1:null==t?-1:null,T=(e,t)=>null==e?null==t?0:-1:null==t?1:null;const I=(e,t)=>T(e,t)??(e===t?0:new Date(e).getTime()-new Date(t).getTime()),C=(e,t)=>_(e,t)??(e===t?0:new Date(t).getTime()-new Date(e).getTime());const F=(e,t)=>T(e,t)??(e===t?0:e_(e,t)??(e===t?0:e{const n=r(e,t);return null!=n?n:(e=e.toUpperCase())>(t=t.toUpperCase())?-1:e{const n=r(e,t);return null!=n?n:(e=e.toUpperCase())<(t=t.toUpperCase())?-1:e>t?1:0}}const w=(e,t)=>_(e,t)??t-e,S=(e,t)=>T(e,t)??e-t;function L(e){return e?w:S}function D(e){return e.substr(24,12)+e.substr(19,4)+e.substr(16,2)+e.substr(14,2)+e.substr(11,2)+e.substr(9,2)+e.substr(6,2)+e.substr(4,2)+e.substr(2,2)+e.substr(0,2)}function j(e,t){let r;for(r in e)y.includes(r)&&(Number.isFinite(e[r])||(e[r]=null));return t?(["avg","stddev","variance"].forEach((t=>{null!=e[t]&&(e[t]=Math.ceil(e[t]??0))})),e):e}function z(e){const t={};for(let r of e)(null==r||"string"==typeof r&&""===r.trim())&&(r=null),null==t[r]?t[r]={count:1,data:r}:t[r].count++;return{count:t}}function N(e){return"coded-value"!==e?.type?[]:e.codedValues.map((e=>e.code))}function O(e,t,r,n){const i=e.count,o=[];if(r&&t){const e=[],r=N(t[0]);for(const i of r)if(t[1]){const r=N(t[1]);for(const o of r)if(t[2]){const r=N(t[2]);for(const t of r)e.push(`${m(i)}${n}${m(o)}${n}${m(t)}`)}else e.push(`${m(i)}${n}${m(o)}`)}else e.push(i);for(const t of e)i.hasOwnProperty(t)||(i[t]={data:t,count:0})}for(const e in i){const t=i[e];o.push({value:t.data,count:t.count,label:t.label})}return{uniqueValueInfos:o}}function P(e,t,r,n){let i=null;switch(t){case"log":0!==e&&(i=Math.log(e)*Math.LOG10E);break;case"percent-of-total":Number.isFinite(n)&&0!==n&&(i=e/n*100);break;case"field":Number.isFinite(r)&&0!==r&&(i=e/r);break;case"natural-log":e>0&&(i=Math.log(e));break;case"square-root":e>0&&(i=e**.5)}return i}function q(e,t){const r=R({field:t.field,normalizationType:t.normalizationType,normalizationField:t.normalizationField,classificationMethod:t.classificationMethod,standardDeviationInterval:t.standardDeviationInterval,breakCount:t.numClasses||s});return e=function(e,t,r){const n=t??-1/0,i=r??1/0;return e.filter((e=>Number.isFinite(e)&&e>=n&&e<=i))}(e,t.minValue,t.maxValue),(0,i.k)({definition:r,values:e,normalizationTotal:t.normalizationTotal})}function R(e){const{breakCount:t,field:r,normalizationField:i,normalizationType:o}=e,s=e.classificationMethod||a,u="standard-deviation"===s?e.standardDeviationInterval||l:void 0;return new n.Z({breakCount:t,classificationField:r,classificationMethod:s,normalizationField:"field"===o?i:void 0,normalizationType:o,standardDeviationInterval:u})}function Z(e,t){let r=e.classBreaks;const n=r.length,i=r[0]?.minValue,o=r[n-1]?.maxValue,a="standard-deviation"===t,l=c;return r=r.map((e=>{const t=e.label,r={minValue:e.minValue,maxValue:e.maxValue,label:t};if(a&&t){const e=t.match(l),n=e?.map((e=>+e.trim()))??[];2===n.length?(r.minStdDev=n[0],r.maxStdDev=n[1],n[0]<0&&n[1]>0&&(r.hasAvg=!0)):1===n.length&&(t.includes("<")?(r.minStdDev=null,r.maxStdDev=n[0]):t.includes(">")&&(r.minStdDev=n[0],r.maxStdDev=null))}return r})),{minValue:i,maxValue:o,classBreakInfos:r,normalizationTotal:e.normalizationTotal}}function k(e,t){const r=E(e,t);if(null==r.min&&null==r.max)return{bins:[],minValue:r.min,maxValue:r.max,normalizationTotal:t.normalizationTotal};const n=r.intervals,i=r.min??0,o=r.max??0,a=n.map(((e,t)=>({minValue:n[t][0],maxValue:n[t][1],count:0})));for(const t of e)if(null!=t&&t>=i&&t<=o){const e=M(n,t);e>-1&&a[e].count++}return{bins:a,minValue:i,maxValue:o,normalizationTotal:t.normalizationTotal}}function E(e,t){const{field:r,classificationMethod:n,standardDeviationInterval:i,normalizationType:o,normalizationField:a,normalizationTotal:l,minValue:s,maxValue:c}=t,d=t.numBins||u;let p=null,y=null,m=null;if(n&&"equal-interval"!==n||o){const{classBreaks:t}=q(e,{field:r,normalizationType:o,normalizationField:a,normalizationTotal:l,classificationMethod:n,standardDeviationInterval:i,minValue:s,maxValue:c,numClasses:d});p=t[0].minValue,y=t[t.length-1].maxValue,m=t.map((e=>[e.minValue,e.maxValue]))}else{if(null!=s&&null!=c)p=s,y=c;else{const t=b({values:e,minValue:s,maxValue:c,useSampleStdDev:!o,supportsNullCount:f({normalizationType:o,normalizationField:a,minValue:s,maxValue:c})});p=t.min??null,y=t.max??null}m=function(e,t,r){const n=(t-e)/r,i=[];let o,a=e;for(let e=1;e<=r;e++)o=a+n,o=Number(o.toFixed(16)),i.push([a,e===r?t:o]),a=o;return i}(p??0,y??0,d)}return{min:p,max:y,intervals:m}}function M(e,t){let r=-1;for(let n=e.length-1;n>=0;n--)if(t>=e[n][0]){r=n;break}return r}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7518.a73a5c96d60be8614342.js b/docs/sentinel1-explorer/7518.a73a5c96d60be8614342.js new file mode 100644 index 00000000..dc15eddd --- /dev/null +++ b/docs/sentinel1-explorer/7518.a73a5c96d60be8614342.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7518],{5992:function(t,e,n){n.d(e,{e:function(){return l}});var r,o,i,s=n(58340),a={exports:{}};r=a,o=function(){function t(t,n,o){o=o||2;var i,s,a,u,c,f,h,p=n&&n.length,g=p?n[0]*o:t.length,d=e(t,0,g,o,!0),m=[];if(!d||d.next===d.prev)return m;if(p&&(d=l(t,n,d,o)),t.length>80*o){i=a=t[0],s=u=t[1];for(var y=o;ya&&(a=c),f>u&&(u=f);h=0!==(h=Math.max(a-i,u-s))?1/h:0}return r(d,m,o,i,s,h),m}function e(t,e,n,r,o){var i,s;if(o===Z(t,e,n,r)>0)for(i=e;i=e;i-=r)s=M(i,t[i],t[i+1],s);if(s&&v(s,s.next)){var a=s.next;S(s),s=a}return s}function n(t,e){if(!t)return t;e||(e=t);var n,r=t;do{if(n=!1,r.steiner||!v(r,r.next)&&0!==x(r.prev,r,r.next))r=r.next;else{var o=r.prev;if(S(r),(r=e=o)===r.next)break;n=!0}}while(n||r!==e);return e}function r(t,e,l,u,c,f,h){if(t){!h&&f&&p(t,u,c,f);for(var g,d,m=t;t.prev!==t.next;)if(g=t.prev,d=t.next,f?i(t,u,c,f):o(t))e.push(g.i/l),e.push(t.i/l),e.push(d.i/l),S(t),t=d.next,m=d.next;else if((t=d)===m){h?1===h?r(t=s(n(t),e,l),e,l,u,c,f,2):2===h&&a(t,e,l,u,c,f):r(n(t),e,l,u,c,f,1);break}}}function o(t){var e=t.prev,n=t,r=t.next;if(x(e,n,r)>=0)return!1;for(var o=t.next.next;o!==t.prev;){if(m(e.x,e.y,n.x,n.y,r.x,r.y,o.x,o.y)&&x(o.prev,o,o.next)>=0)return!1;o=o.next}return!0}function i(t,e,n,r){var o=t.prev,i=t,s=t.next;if(x(o,i,s)>=0)return!1;for(var a=o.xi.x?o.x>s.x?o.x:s.x:i.x>s.x?i.x:s.x,c=o.y>i.y?o.y>s.y?o.y:s.y:i.y>s.y?i.y:s.y,f=g(a,l,e,n,r),h=g(u,c,e,n,r),p=t.prevZ,d=t.nextZ;p&&p.z>=f&&d&&d.z<=h;){if(p!==t.prev&&p!==t.next&&m(o.x,o.y,i.x,i.y,s.x,s.y,p.x,p.y)&&x(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,d!==t.prev&&d!==t.next&&m(o.x,o.y,i.x,i.y,s.x,s.y,d.x,d.y)&&x(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(;p&&p.z>=f;){if(p!==t.prev&&p!==t.next&&m(o.x,o.y,i.x,i.y,s.x,s.y,p.x,p.y)&&x(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;d&&d.z<=h;){if(d!==t.prev&&d!==t.next&&m(o.x,o.y,i.x,i.y,s.x,s.y,d.x,d.y)&&x(d.prev,d,d.next)>=0)return!1;d=d.nextZ}return!0}function s(t,e,r){var o=t;do{var i=o.prev,s=o.next.next;!v(i,s)&&w(i,o,o.next,s)&&_(i,s)&&_(s,i)&&(e.push(i.i/r),e.push(o.i/r),e.push(s.i/r),S(o),S(o.next),o=t=s),o=o.next}while(o!==t);return n(o)}function a(t,e,o,i,s,a){var l=t;do{for(var u=l.next.next;u!==l.prev;){if(l.i!==u.i&&y(l,u)){var c=T(l,u);return l=n(l,l.next),c=n(c,c.next),r(l,e,o,i,s,a),void r(c,e,o,i,s,a)}u=u.next}l=l.next}while(l!==t)}function l(t,r,o,i){var s,a,l,c=[];for(s=0,a=r.length;s=r.next.y&&r.next.y!==r.y){var a=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=o&&a>s){if(s=a,a===o){if(i===r.y)return r;if(i===r.next.y)return r.next}n=r.x=r.x&&r.x>=c&&o!==r.x&&m(in.x||r.x===n.x&&h(n,r)))&&(n=r,p=l)),r=r.next}while(r!==u);return n}(t,e);if(!r)return e;var o=T(r,t),i=n(r,r.next);let s=c(o);return n(s,s.next),i=c(i),c(e===r?i:e)}function h(t,e){return x(t.prev,t,e.prev)<0&&x(e.next,t,t.next)<0}function p(t,e,n,r){var o=t;do{null===o.z&&(o.z=g(o.x,o.y,e,n,r)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next}while(o!==t);o.prevZ.nextZ=null,o.prevZ=null,function(t){var e,n,r,o,i,s,a,l,u=1;do{for(n=t,t=null,i=null,s=0;n;){for(s++,r=n,a=0,e=0;e0||l>0&&r;)0!==a&&(0===l||!r||n.z<=r.z)?(o=n,n=n.nextZ,a--):(o=r,r=r.nextZ,l--),i?i.nextZ=o:t=o,o.prevZ=i,i=o;n=r}i.nextZ=null,u*=2}while(s>1)}(o)}function g(t,e,n,r,o){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*o)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-r)*o)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function d(t){var e=t,n=t;do{(e.x=0&&(t-s)*(r-a)-(n-s)*(e-a)>=0&&(n-s)*(i-a)-(o-s)*(r-a)>=0}function y(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&w(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(_(t,e)&&_(e,t)&&function(t,e){var n=t,r=!1,o=(t.x+e.x)/2,i=(t.y+e.y)/2;do{n.y>i!=n.next.y>i&&n.next.y!==n.y&&o<(n.next.x-n.x)*(i-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==t);return r}(t,e)&&(x(t.prev,t,e.prev)||x(t,e.prev,e))||v(t,e)&&x(t.prev,t,t.next)>0&&x(e.prev,e,e.next)>0)}function x(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function v(t,e){return t.x===e.x&&t.y===e.y}function w(t,e,n,r){var o=A(x(t,e,n)),i=A(x(t,e,r)),s=A(x(n,r,t)),a=A(x(n,r,e));return o!==i&&s!==a||!(0!==o||!b(t,n,e))||!(0!==i||!b(t,r,e))||!(0!==s||!b(n,t,r))||!(0!==a||!b(n,e,r))}function b(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function A(t){return t>0?1:t<0?-1:0}function _(t,e){return x(t.prev,t,t.next)<0?x(t,e,t.next)>=0&&x(t,t.prev,e)>=0:x(t,e,t.prev)<0||x(t,t.next,e)<0}function T(t,e){var n=new C(t.i,t.x,t.y),r=new C(e.i,e.x,e.y),o=t.next,i=e.prev;return t.next=e,e.prev=t,n.next=o,o.prev=n,r.next=n,n.prev=r,i.next=r,r.prev=i,r}function M(t,e,n,r){var o=new C(t,e,n);return r?(o.next=r.next,o.prev=r,r.next.prev=o,r.next=o):(o.prev=o,o.next=o),o}function S(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function C(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Z(t,e,n,r){for(var o=0,i=e,s=n-r;i0&&(r+=t[o-1].length,n.holes.push(r))}return n},t},void 0!==(i=o())&&(r.exports=i);const l=(0,s.g)(a.exports)},6766:function(t,e,n){n.d(e,{a:function(){return i},b:function(){return a},c:function(){return s},d:function(){return o},e:function(){return f},f:function(){return l},n:function(){return h},s:function(){return u},t:function(){return c}});n(39994);var r=n(45150);function o(t,e,n){i(t.typedBuffer,e.typedBuffer,n,t.typedBufferStride,e.typedBufferStride)}function i(t,e,n,r=3,o=r){if(t.length/r!==Math.ceil(e.length/o))return t;const i=t.length/r,s=n[0],a=n[1],l=n[2],u=n[4],c=n[5],f=n[6],h=n[8],p=n[9],g=n[10],d=n[12],m=n[13],y=n[14];let x=0,v=0;for(let n=0;n0){const e=1/Math.sqrt(u);t[s]=e*o,t[s+1]=e*a,t[s+2]=e*l}i+=r,s+=n}}Object.freeze(Object.defineProperty({__proto__:null,normalize:h,normalizeView:f,scale:u,scaleView:l,shiftRight:function(t,e,n){const r=Math.min(t.count,e.count),o=t.typedBuffer,i=t.typedBufferStride,s=e.typedBuffer,a=e.typedBufferStride;let l=0,u=0;for(let t=0;t>n,o[u+1]=s[l+1]>>n,o[u+2]=s[l+2]>>n,l+=a,u+=i},transformMat3:a,transformMat3View:s,transformMat4:i,transformMat4View:o,translate:c},Symbol.toStringTag,{value:"Module"}))},97518:function(t,e,n){n.d(e,{Z:function(){return re}});var r=n(36663),o=n(59801),i=n(70375),s=n(68309),a=n(13802),l=n(64189),u=n(78668),c=n(76868),f=n(81977),h=(n(39994),n(4157),n(40266)),p=n(81095),g=n(91772),d=n(20031),m=n(67666),y=n(89542),x=n(34218),v=n(77727);const w="Expected location to be a Point instance";class b extends i.Z{constructor(){super("invalid-input:location",w)}}var A=n(58626),_=n(51619),T=n(68403),M=n(124),S=n(50442),C=n(5992),Z=n(19546),U=n(38028),I=n(92570),O=n(35914),P=n(67262),F=(n(91957),n(19431)),R=n(17321),L=n(86717),j=n(39050);n(85799),n(95399),n(40526),n(21414);function N(t,e,n){const r=function(t,e,n,r){const o=(t=>!Array.isArray(t[0]))(e)?(t,n)=>e[3*t+n]:(t,n)=>e[t][n],i=r?(0,R.c9)(r)/(0,R._R)(r):1;return(0,j.zu)(t,((t,e)=>(0,L.s)(t,o(e,0)*i,o(e,1)*i,o(e,2))),n)}(E,t,e,n)?(0,j.st)(E):[0,0,1];return Math.abs(r[2])>Math.cos((0,F.Vl)(80))?Z.R.Z:Math.abs(r[1])>Math.abs(r[0])?Z.R.Y:Z.R.X}const E=(0,j.Ue)();function k(t){const e=D(t.rings,t.hasZ,W.CCW_IS_HOLE,t.spatialReference),n=new Array;let r=0,o=0;for(const t of e.polygons){const i=t.count,s=t.index,a=(0,I.Rq)(e.position,3*s,3*i),l=t.holeIndices.map((t=>t-s)),u=(0,O.mi)((0,C.e)(a,l,3));n.push({position:a,faces:u}),r+=a.length,o+=u.length}const i=function(t,e,n){if(1===t.length)return t[0];const r=(0,I.bg)(e),o=new Array(n);let i=0,s=0,a=0;for(const e of t){for(let t=0;t=0;f--){const g=t[f],d=n===W.CCW_IS_HOLE&&z(g,e,r);if(d&&1!==o)i[l++]=g;else{let t=g.length;for(let e=0;e0&&(a[c++]={index:p,count:g.length}),p=d?B(g,g.length-1,-1,h,p,g.length,e):B(g,0,1,h,p,g.length,e);for(let t=0;t0&&(a[c++]={index:p,count:r.length}),p=B(r,0,1,h,p,r.length,e)}l=0,n.count>0&&(s[u++]=n)}}for(let t=0;t0&&(a[c++]={index:p,count:n.length}),p=B(n,0,1,h,p,n.length,e)}return s.length=u,a.length=c,{position:h,polygons:s,outlines:a}}function B(t,e,n,r,o,i,s){o*=3;for(let a=0;a({name:t.name,mimeType:t.type,source:it(t)}))))}(t):async function(t,e){const n=await(0,u.OT)(t.map((async t=>{const n=await async function(t,e){const{parts:n,assetMimeType:r,assetName:o}=t;if(1===n.length)return new ft(n[0].partUrl);const i=await t.toBlob(e);return(0,u.k_)(e),ft.fromBlob(i,ht(o,r))}(t);return(0,u.k_)(e),{name:t.assetName,mimeType:t.assetMimeType,source:n}})));if((0,u.Hc)(e))throw n.forEach((t=>t.source.dispose())),(0,u.zE)();return ct(n)}(t,e)}return it(t)}(o,r);(0,u.k_)(r);const l=s(new m.Z({x:0,y:0,z:0,spatialReference:t.spatialReference}),a.url,{resolveFile:ot(a),signal:r?.signal,expectedType:a.type});l.then((()=>a.dispose()),(()=>a.dispose()));const{vertexAttributes:c,components:f}=await l;t.vertexAttributes=c,t.components=f}function ot(t){const e=(0,nt.Yd)(t.url);return n=>{const r=(0,nt.PF)(n,e,e),o=r?r.replace(/^ *\.\//,""):null;return(o?t.files.get(o):null)??n}}function it(t){return ft.fromBlob(t,ht(t.name,t.type))}const st=/^model\/gltf\+json$/,at=/^model\/gltf-binary$/,lt=/\.gltf$/i,ut=/\.glb$/i;function ct(t){const e=new Map;let n,r=null;for(const{name:o,mimeType:i,source:s}of t)null===r&&(st.test(i)||lt.test(o)?(r=s.url,n="gltf"):(at.test(i)||ut.test(o))&&(r=s.url,n="glb")),e.set(o,s.url),s.files.forEach(((t,n)=>e.set(n,t)));if(null==r)throw new i.Z("mesh-load-external:missing-files","Missing files to load external mesh source");return new ft(r,(()=>t.forEach((({source:t})=>t.dispose()))),e,n)}class ft{constructor(t,e=(()=>{}),n=new Map,r){this.url=t,this.dispose=e,this.files=n,this.type=r}static fromBlob(t,e){const n=URL.createObjectURL(t);return new ft(n,(()=>URL.revokeObjectURL(n)),void 0,e)}}function ht(t,e){return st.test(e)||lt.test(t)?"gltf":at.test(e)||lt.test(t)?"glb":void 0}var pt=n(41151),gt=n(6865),dt=n(57450);let mt=class extends pt.j{constructor(){super(),this.externalSources=new gt.Z,this._explicitDisplaySource=null,this.addHandles((0,c.on)((()=>this.externalSources),"after-remove",(({item:t})=>{t===this._explicitDisplaySource&&(this._explicitDisplaySource=null)}),{sync:!0,onListenerRemove:()=>this._explicitDisplaySource=null}))}get displaySource(){return this._explicitDisplaySource??this._implicitDisplaySource}set displaySource(t){if(null!=t&&!(0,dt.NZ)(t))throw new Error("Cannot use this source for display: it is not in a supported format.");this._explicitDisplaySource=t,t&&this.externalSources.every((e=>!(0,dt.fV)(e,t)))&&this.externalSources.add(t)}clearSources(){this.externalSources.removeAll()}getExternalSourcesOnService(t){return this.externalSources.items.filter((e=>(0,dt.JG)(e,t)))}get _implicitDisplaySource(){return this.externalSources.find(dt.NZ)}};(0,r._)([(0,f.Cb)()],mt.prototype,"externalSources",void 0),(0,r._)([(0,f.Cb)()],mt.prototype,"displaySource",null),(0,r._)([(0,f.Cb)()],mt.prototype,"_implicitDisplaySource",null),(0,r._)([(0,f.Cb)()],mt.prototype,"_explicitDisplaySource",void 0),mt=(0,r._)([(0,h.j)("esri.geometry.support.meshUtils.Metadata")],mt);var yt=n(3965);const xt={position:[-.5,-.5,0,.5,-.5,0,.5,.5,0,-.5,.5,0],normal:[0,0,1,0,0,1,0,0,1,0,0,1],uv:[0,1,1,1,1,0,0,0],faces:[0,1,2,0,2,3],facingAxisOrderSwap:{east:[3,1,2],west:[-3,-1,2],north:[-1,3,2],south:[1,-3,2],up:[1,2,3],down:[1,-2,-3]}};function vt(t,e,n){t.isPlane||function(t){for(let e=0;e{this.addHandles((0,c.YP)((()=>({vertexAttributes:this.vertexAttributes,components:this.components?.map((t=>t.clone()))})),(()=>this._clearSources()),{once:!0,sync:!0}))}))}get hasExtent(){return this.loaded?this.vertexAttributes.position.length>0&&(!this.components||this.components.length>0):null!=this.metadata.displaySource?.extent}get _transformedExtent(){const{components:t,spatialReference:e,vertexAttributes:n,vertexSpace:r}=this,o=n.position;if(0===o.length||t&&0===t.length)return new g.Z({xmin:0,ymin:0,zmin:0,xmax:0,ymax:0,zmax:0,spatialReference:e});if((0,S.zZ)(r)){const{_untransformedBounds:t,transform:n}=this;return function([t,e,n,r,o,i],s,a,l){$??=new Float64Array(24);const u=$;return u[0]=t,u[1]=e,u[2]=n,u[3]=t,u[4]=o,u[5]=n,u[6]=r,u[7]=o,u[8]=n,u[9]=r,u[10]=e,u[11]=n,u[12]=t,u[13]=e,u[14]=i,u[15]=t,u[16]=o,u[17]=i,u[18]=r,u[19]=o,u[20]=i,u[21]=r,u[22]=e,u[23]=i,(0,q.project)({positions:u,transform:s,vertexSpace:a,inSpatialReference:l,outSpatialReference:l,outPositions:u}),G(u,l)}(t,n,r,e)}return G(o,e)}get _untransformedBounds(){return H(this.vertexAttributes.position)}get anchor(){const t=(0,S.rU)(this.vertexSpace,this.spatialReference);if(null!=t)return t;const{center:e,zmin:n}=this._transformedExtent;return new m.Z({x:e.x,y:e.y,z:n,spatialReference:this.spatialReference})}get origin(){const t=(0,S.rU)(this.vertexSpace,this.spatialReference);return null!=t?t:this._transformedExtent.center}get extent(){return this.loaded||null==this.metadata?.displaySource?.extent?this._transformedExtent:this.metadata.displaySource.extent.clone()}addComponent(t){this._checkIfLoaded("addComponent()")&&(this.components||(this.components=[]),this.components.push(v.Z.from(t)),this.notifyChange("components"))}removeComponent(t){if(this._checkIfLoaded("removeComponent()")){if(this.components){const e=this.components.indexOf(t);if(-1!==e)return this.components.splice(e,1),void this.notifyChange("components")}Qt().error("removeComponent()","Provided component is not part of the list of components")}}rotate(t,e,n,r){return(0,x.qw)(t,e,n,ne),Lt(this,ne,r),this}offset(t,e,n){if(!this._checkIfLoaded("offset()"))return this;const{vertexSpace:r,vertexAttributes:o}=this,i=o?.position;if(!i)return this;if((0,S.zZ)(r)){const[o,i,s]=r.origin;r.origin=(0,p.al)(o+t,i+e,s+n)}else{for(let r=0;re.cloneWithDeduplication(t,n)))}const n={components:e,spatialReference:this.spatialReference,vertexAttributes:this.vertexAttributes.clone(),vertexSpace:t,transform:this.transform?.clone()??null,metadata:this.metadata.clone()};return new Kt(n)}cloneShallow(){return new Kt({components:this.components,spatialReference:this.spatialReference,vertexAttributes:this.vertexAttributes,vertexSpace:this.vertexSpace.clone(),transform:this.transform,metadata:this.metadata})}vertexAttributesChanged(){this.notifyChange("vertexAttributes")}async toBinaryGLTF(t){const e=n.e(627).then(n.bind(n,35743)),r=this.load(),o=await Promise.all([e,r]),{toBinaryGLTF:i}=o[0];return i(this,t)}get memoryUsage(){let t=0;if(t+=this.vertexAttributes.memoryUsage,null!=this.components)for(const e of this.components)t+=e.memoryUsage;return t}_clearSources(){this.metadata.clearSources()}_checkIfLoaded(t){return!!this.loaded||(Qt().error(t,"Mesh must be loaded before applying operations"),!1)}static createBox(t,e){if(!(t instanceof m.Z))return Qt().error(".createBox()",w),null;const n=new Kt(vt(function(){const{faceDescriptions:t,faceVertexOffsets:e,uvScales:n}=wt,r=4*t.length,o=new Float64Array(3*r),i=new Float32Array(3*r),s=new Float32Array(2*r),a=new Uint32Array(2*t.length*3);let l=0,u=0,c=0,f=0;for(let r=0;r=i&&t=4,p=2===t||4===t,g=n?e-1:e;for(let d=0;d<=g;d++){const m=d/g*2*Math.PI,y=n?0:.5;At[0]=y*Math.sin(m),At[1]=y*-Math.cos(m),At[2]=t<=2?.5:-.5;for(let e=0;e<3;e++)r[a++]=At[e],o[l++]=h?2===e?t<=1?1:-1:0:2===e?0:At[e]/y;i[u++]=(d+(n?.5:0))/e,i[u++]=t<=1?1*t/3:t<=3?1*(t-2)/3+1/3:1*(t-4)/3+2/3,p||0===t||d===e||(5!==t&&(s[c++]=f,s[c++]=f+1,s[c++]=f-e),1!==t&&(s[c++]=f,s[c++]=f-e,s[c++]=f-e-1)),f++}}return{position:r,normal:o,uv:i,faces:s}}(e?.densificationFactor||0),t,e)):(Qt().error(".createCylinder()",w),null)}static createPlane(t,e){if(!(t instanceof m.Z))return Qt().error(".createPlane()",w),null;const n=e?.facing??"up",r=function(t,e){const n="number"==typeof e?e:null!=e?e.width:1,r="number"==typeof e?e:null!=e?e.height:1;switch(t){case"up":case"down":return{width:n,depth:r};case"north":case"south":return{width:n,height:r};case"east":case"west":return{depth:n,height:r}}}(n,e?.size);return new Kt(vt(function(t){const e=xt.facingAxisOrderSwap[t],n=xt.position,r=xt.normal,o=new Float64Array(n.length),i=new Float32Array(r.length);let s=0;for(let t=0;t<4;t++){const t=s;for(let a=0;a<3;a++){const l=e[a],u=Math.abs(l)-1,c=l>=0?1:-1;o[s]=n[t+u]*c,i[s]=r[t+u]*c,s++}}return{position:o,normal:i,uv:new Float32Array(xt.uv),faces:new Uint32Array(xt.faces),isPlane:!0}}(n),t,{...e,size:r}))}static createFromPolygon(t,e){if(!(t instanceof y.Z))return Qt().error(".createFromPolygon()","Expected polygon to be a Polygon instance"),null;const n=k(t);return new Kt({vertexAttributes:new M.Q({position:n.position}),components:[new v.Z({faces:n.faces,shading:"flat",material:e?.material??null})],spatialReference:t.spatialReference,vertexSpace:new A.Z})}static async createFromGLTF(t,e,r){if(!(t instanceof m.Z)){const t=new b;throw Qt().error(".createfromGLTF()",t.message),t}const{loadGLTFMesh:o}=await(0,u.Hl)(Promise.all([n.e(8145),n.e(4682)]).then(n.bind(n,54682)),r);return new Kt(await o(t,e,r))}static async createFromFiles(t,e,n){(0,o.XV)(Qt(),"`Mesh.createFromFiles` is deprecated in favor of 'SceneLayer.convertMesh'",{replacement:"SceneLayer.convertMesh",version:"4.29"});if(!(t instanceof m.Z)){const t=new b;throw(t=>{Qt().error(".createFromFiles()",t.message)})(t),t}if(!n?.layer)throw new i.Z("invalid:no-layer","SceneLayer required for file to mesh conversion.");return n.layer.convertMesh(e,{location:t,...n})}static createWithExternalSource(t,e,n){const r=n?.extent??null,{x:o,y:i,z:s,spatialReference:a}=t,l=n?.transform?.clone()??new T.Z,u=(0,p.al)(o,i,s??0),c=(0,S.yD)(n?.vertexSpace??(0,S.dd)(a),u),f={source:e,extent:r},h=new mt;return h.externalSources.push(f),new Kt({metadata:h,transform:l,vertexSpace:c,spatialReference:a})}static createIncomplete(t,e){const{x:n,y:r,z:o,spatialReference:s}=t,a=e?.transform?.clone()??new T.Z,l=(0,p.al)(n,r,o??0),u=(0,S.yD)(e?.vertexSpace??(0,S.dd)(s),l),c=new Kt({transform:a,vertexSpace:u,spatialReference:s});return c.addResolvingPromise(Promise.reject(new i.Z("mesh-incomplete","Mesh resources are not complete"))),c}};(0,r._)([(0,f.Cb)({type:[v.Z],json:{write:!0}})],ee.prototype,"components",void 0),(0,r._)([(0,f.Cb)({nonNullable:!0,types:te,constructOnly:!0,json:{write:!0}})],ee.prototype,"vertexSpace",void 0),(0,r._)([(0,f.Cb)({type:T.Z,json:{write:!0}})],ee.prototype,"transform",void 0),(0,r._)([(0,f.Cb)({constructOnly:!0})],ee.prototype,"metadata",void 0),(0,r._)([(0,f.Cb)()],ee.prototype,"hasExtent",null),(0,r._)([(0,f.Cb)()],ee.prototype,"_transformedExtent",null),(0,r._)([(0,f.Cb)()],ee.prototype,"_untransformedBounds",null),(0,r._)([(0,f.Cb)()],ee.prototype,"anchor",null),(0,r._)([(0,f.Cb)()],ee.prototype,"origin",null),(0,r._)([(0,f.Cb)({readOnly:!0,json:{read:!1}})],ee.prototype,"extent",null),(0,r._)([(0,f.Cb)({readOnly:!0,json:{read:!1,write:!0,default:!0}})],ee.prototype,"hasZ",void 0),(0,r._)([(0,f.Cb)({readOnly:!0,json:{read:!1,write:!0,default:!1}})],ee.prototype,"hasM",void 0),(0,r._)([(0,f.Cb)({type:M.Q,nonNullable:!0,json:{write:!0}})],ee.prototype,"vertexAttributes",void 0),ee=Kt=(0,r._)([(0,h.j)(Xt)],ee);const ne=(0,x.Ue)(),re=ee},92570:function(t,e,n){n.d(e,{JK:function(){return a},QZ:function(){return i},Rq:function(){return s},bg:function(){return o},mB:function(){return l}});var r=n(86098);function o(t,e=!1){return t<=r.c8?e?new Array(t).fill(0):new Array(t):new Float64Array(t)}function i(t){return((0,r.kJ)(t)?t.length:t.byteLength/8)<=r.c8?Array.from(t):new Float64Array(t)}function s(t,e,n){return Array.isArray(t)?t.slice(e,e+n):t.subarray(e,e+n)}function a(t,e){for(let n=0;n`d:${e},t:${this.transparent},w:${t}`;return null!=this.url?e(this.url):null!=this.data?this.data instanceof HTMLImageElement||this.data instanceof HTMLVideoElement?e(this.data.src):(p.has(this.data)||p.set(this.data,++g),e(p.get(this.data))):e()}get memoryUsage(){let t=0;if(t+=null!=this.url?this.url.length:0,null!=this.data){const e=this.data;"data"in e?t+=e.data.byteLength:e instanceof HTMLImageElement?t+=e.naturalWidth*e.naturalHeight*3:e instanceof HTMLCanvasElement&&(t+=e.width*e.height*3)}return t}clone(){const t={url:this.url,data:this.data,wrap:this._cloneWrap()};return new r(t)}cloneWithDeduplication(t){const e=t.get(this);if(e)return e;const n=this.clone();return t.set(this,n),n}_cloneWrap(){return"string"==typeof this.wrap?this.wrap:{horizontal:this.wrap.horizontal,vertical:this.wrap.vertical}}_encodeImageData(t){let e="";for(let n=0;nr.Z.getLogger("esri.views.3d.support.buffer.math")},56215:function(t,e,n){n.d(e,{Jk:function(){return f},Ue:function(){return l},al:function(){return u},nF:function(){return h},zk:function(){return c}});var r=n(19431),o=n(19480),i=n(86717),s=n(81095),a=n(68817);function l(t){return t?{origin:(0,s.d9)(t.origin),vector:(0,s.d9)(t.vector)}:{origin:(0,s.Ue)(),vector:(0,s.Ue)()}}function u(t,e,n=l()){return(0,i.c)(n.origin,t),(0,i.c)(n.vector,e),n}function c(t,e,n=l()){return(0,i.c)(n.origin,t),(0,i.f)(n.vector,e,t),n}function f(t,e){const n=(0,i.f)(a.WM.get(),e,t.origin),o=(0,i.k)(t.vector,n),s=(0,i.k)(t.vector,t.vector),l=(0,r.uZ)(o/s,0,1),u=(0,i.f)(a.WM.get(),(0,i.h)(a.WM.get(),t.vector,l),n);return(0,i.k)(u,u)}function h(t,e,n){return function(t,e,n,o,s){const{vector:l,origin:u}=t,c=(0,i.f)(a.WM.get(),e,u),f=(0,i.k)(l,c)/(0,i.p)(l);return(0,i.h)(s,l,(0,r.uZ)(f,n,o)),(0,i.g)(s,s,t.origin)}(t,e,0,1,n)}(0,s.Ue)(),(0,s.Ue)(),new o.x((()=>l()))},57450:function(t,e,n){n.d(e,{CP:function(){return a},JG:function(){return g},LL:function(){return l},NZ:function(){return u},fV:function(){return d},vj:function(){return y},yT:function(){return v},zE:function(){return x}});var r=n(66341),o=n(7753),i=n(78668),s=n(13449);class a{constructor(t,e,n){this.assetName=t,this.assetMimeType=e,this.parts=n}equals(t){return this===t||this.assetName===t.assetName&&this.assetMimeType===t.assetMimeType&&(0,o.fS)(this.parts,t.parts,((t,e)=>t.equals(e)))}isOnService(t){return this.parts.every((e=>e.isOnService(t)))}makeHash(){let t="";for(const e of this.parts)t+=e.partHash;return t}async toBlob(t){const{parts:e}=this;if(1===e.length)return e[0].toBlob(t);const n=await Promise.all(e.map((e=>e.toBlob(t))));return(0,i.k_)(t),new Blob(n)}}class l{constructor(t,e){this.partUrl=t,this.partHash=e}equals(t){return this===t||this.partUrl===t.partUrl&&this.partHash===t.partHash}isOnService(t){return this.partUrl.startsWith(`${t.path}/assets/`)}async toBlob(t){const{data:e}=await(0,r.Z)(this.partUrl,{responseType:"blob"});return(0,i.k_)(t),e}}function u(t){return function(t){if(!t)return!1;if(Array.isArray(t))return t.some(p);return p(t)}(t?.source)}function c(t){return!!Array.isArray(t)&&t.every((t=>t instanceof a))}const f=/^(model\/gltf\+json)|(model\/gltf-binary)$/,h=/\.(gltf|glb)/i;function p(t){if(t instanceof File){const{type:e,name:n}=t;return f.test(e)||h.test(n)}return f.test(t.assetMimeType)||h.test(t.assetName)}function g(t,e){if(!t)return!1;const{source:n}=t;return function(t,e){if(Array.isArray(t)){const n=t;return n.length>0&&n.every((t=>m(t,e)))}return m(t,e)}(n,e)}function d(t,e){if(t===e)return!0;const{source:n}=t,{source:r}=e;if(n===r)return!0;if(c(n)&&c(r)){if(n.length!==r.length)return!1;const t=(t,e)=>t.assetNamee.assetName?1:0,e=[...n].sort(t),o=[...r].sort(t);for(let t=0;tm&&(m=e)}else m=c;const y=Math.floor(1.1*m)+1;(null==u||u.length<2*y)&&(u=new Uint32Array((0,r.Sf)(2*y)));for(let t=0;t<2*y;t++)u[t]=0;let x=0;const v=!!d&&!!p,w=v?g:c;let b=(0,o.$z)(c);const A=new Uint32Array(g),_=1.96;let T=0!==h?Math.ceil(4*_*_/(h*h)*h*(1-h)):w,M=1,S=d?d[1]:w;for(let t=0;t=y&&(i-=y)}a===x&&(u[2*i]=o,u[2*i+1]=n+1,x++),b[n]=a}if(0!==h&&1-x/c>>2)|0;return r>>>0}let u=null},67341:function(t,e,n){n.d(e,{Pq:function(){return a},Tj:function(){return s},qr:function(){return l}});var r=n(59801),o=n(13802),i=n(50442);function s(t,e){return t.isGeographic||t.isWebMercator&&(e??!0)}function a(t,e){switch(t.type){case"georeferenced":return e.isGeographic;case"local":return e.isGeographic||e.isWebMercator}}function l(t,e,n,s){if(void 0!==s){(0,r.x9)(o.Z.getLogger(t),"option: geographic",{replacement:"use mesh vertexSpace and spatial reference to control how operations are performed",version:"4.29",warnOnce:!0});const a="local"===e.type;if(!(0,i.zZ)(e)||s===a)return n.isGeographic||n.isWebMercator&&s;o.Z.getLogger(t).warnOnce(`Specifying the 'geographic' parameter (${s}) for a Mesh vertex space of type "${e.type}" is not supported. This parameter will be ignored.`)}return a(e,n)}},91780:function(t,e,n){n.d(e,{I5:function(){return A},Ne:function(){return b},O7:function(){return F},Sm:function(){return U},Yq:function(){return M},pY:function(){return C},project:function(){return S},w1:function(){return _}});var r=n(17321),o=n(3965),i=n(32114),s=n(3308),a=n(86717),l=n(81095),u=n(46332),c=n(28105),f=n(61170),h=n(43176),p=n(22349),g=n(92570),d=n(68403),m=n(50442),y=n(6766),x=n(67341),v=n(49921);function w(t,e,n){return(0,x.Tj)(e.spatialReference,n?.geographic)?C(t,e,!1,n):function(t,e,n){const r=new Float64Array(t.position.length),o=t.position,i=e.x,s=e.y,a=e.z??0,l=F(n?n.unit:null,e.spatialReference);for(let t=0;tr.Z.getLogger("esri.geometry.support.meshUtils.normalProjection");function y(t,e,n,r,o){return S(r)?(M(Z.TO_PCPF,g.ct.fromTypedArray(t),g.fP.fromTypedArray(e),g.fP.fromTypedArray(n),r,g.ct.fromTypedArray(o)),o):(m().error("Cannot convert spatial reference to PCPF"),o)}function x(t,e,n,r,o){return S(r)?(M(Z.FROM_PCPF,g.ct.fromTypedArray(t),g.fP.fromTypedArray(e),g.fP.fromTypedArray(n),r,g.ct.fromTypedArray(o)),o):(m().error("Cannot convert to spatial reference from PCPF"),o)}function v(t,e,n){return(0,f.projectBuffer)(t,e,0,n,(0,u.rS)(e),0,t.length/3),n}function w(t,e,n){return(0,f.projectBuffer)(t,(0,u.rS)(n),0,e,n,0,t.length/3),e}function b(t,e,n){return(0,o.XL)(F,n),(0,d.b)(e,t,F),(0,o.pV)(F)||(0,d.n)(e,e),e}function A(t,e,n){if((0,o.XL)(F,n),(0,d.b)(e,t,F,4),(0,o.pV)(F)||(0,d.n)(e,e,4),t!==e)for(let n=3;n=1),(0,f.hu)(3===n.size||4===n.size);const{data:r,size:i,indices:s}=n;(0,f.hu)(s.length%this._numIndexPerPrimitive==0),(0,f.hu)(s.length>=t.length*this._numIndexPerPrimitive);const a=t.length;let l=i*s[this._numIndexPerPrimitive*t[0]];p.clear(),p.push(l);const u=(0,c.al)(r[l],r[l+1],r[l+2]),h=(0,c.d9)(u);for(let e=0;e0&&++l;if(l<2)return;const u=new Array(8);for(let t=0;t<8;++t)u[t]=r[t]>0?new Uint32Array(r[t]):void 0;for(let t=0;t<8;++t)r[t]=0;for(let t=0;tx()));const w=(0,c.Ue)(),b=(0,c.Ue)();const A=(0,c.Ue)(),_=(0,c.Ue)(),T=(0,c.Ue)(),M=(0,c.Ue)();var S=n(7958);class C{constructor(t){this.channel=t,this.id=(0,S.D)()}}var Z=n(21414);n(30560);(0,c.Ue)(),new Float32Array(6);class U extends g.c{constructor(t,e,n=null,r=d.U.Mesh,o=null,s=-1){super(),this.material=t,this.mapPositions=n,this.type=r,this.objectAndLayerIdColor=o,this.edgeIndicesLength=s,this.visible=!0,this._attributes=new Map,this._boundingInfo=null;for(const[t,n]of e)this._attributes.set(t,{...n,indices:(0,i.mi)(n.indices)}),t===Z.T.POSITION&&(this.edgeIndicesLength=this.edgeIndicesLength<0?this._attributes.get(t).indices.length:this.edgeIndicesLength)}instantiate(t={}){const e=new U(t.material||this.material,[],this.mapPositions,this.type,this.objectAndLayerIdColor,this.edgeIndicesLength);return this._attributes.forEach(((t,n)=>{t.exclusive=!1,e._attributes.set(n,t)})),e._boundingInfo=this._boundingInfo,e.transformation=t.transformation||this.transformation,e}get attributes(){return this._attributes}getMutableAttribute(t){let e=this._attributes.get(t);return e&&!e.exclusive&&(e={...e,exclusive:!0,data:a(e.data)},this._attributes.set(t,e)),e}setAttributeData(t,e){const n=this._attributes.get(t);n&&this._attributes.set(t,{...n,exclusive:!0,data:e})}get indexCount(){const t=this._attributes.values().next().value.indices;return t?.length??0}get faceCount(){return this.indexCount/3}get boundingInfo(){return null==this._boundingInfo&&(this._boundingInfo=this._calculateBoundingInfo()),this._boundingInfo}computeAttachmentOrigin(t){return!!(this.type===d.U.Mesh?this._computeAttachmentOriginTriangles(t):this.type===d.U.Line?this._computeAttachmentOriginLines(t):this._computeAttachmentOriginPoints(t))&&(null!=this._transformation&&(0,o.e)(t,t,this._transformation),!0)}_computeAttachmentOriginTriangles(t){return function(t,e){if(!t)return!1;const{size:n,data:r,indices:i}=t;(0,o.s)(e,0,0,0),(0,o.s)(M,0,0,0);let s=0,a=0;for(let t=0;t0?((0,o.g)(n,n,(0,o.h)(A,A,h)),r+=h):0===r&&((0,o.g)(M,M,A),i++)}return 0!==r?((0,o.h)(n,n,1/r),!0):0!==i&&((0,o.h)(n,M,1/i),!0)}(e,function(t,e){return!(!("isClosed"in t)||!t.isClosed)&&e.indices.length>2}(this.material.parameters,e),t)}_computeAttachmentOriginPoints(t){return function(t,e){if(!t)return!1;const{size:n,data:r,indices:i}=t;(0,o.s)(e,0,0,0);let s=-1,a=0;for(let t=0;t1&&(0,o.h)(e,e,1/a),a>0}(this.attributes.get(Z.T.POSITION),t)}invalidateBoundingInfo(){this._boundingInfo=null}_calculateBoundingInfo(){const t=this.attributes.get(Z.T.POSITION);if(!t||0===t.indices.length)return null;const e=this.type===d.U.Mesh?3:1;(0,f.hu)(t.indices.length%e==0,"Indexing error: "+t.indices.length+" not divisible by "+e);const n=(0,i.KF)(t.indices.length/e);return new h(n,e,t)}get transformation(){return this._transformation??r.Wd}set transformation(t){this._transformation=t&&t!==r.Wd?(0,r.d9)(t):null}addHighlight(){const t=new C(l.V_.Highlight);return this.highlights=function(t,e){return null==t&&(t=[]),t.push(e),t}(this.highlights,t),t}removeHighlight(t){this.highlights=function(t,e){if(null==t)return null;const n=t.filter((t=>t!==e));return 0===n.length?null:n}(this.highlights,t)}}},70984:function(t,e,n){var r,o,i,s,a,l,u,c,f;n.d(e,{Gv:function(){return o},Iq:function(){return c},JJ:function(){return u},Rw:function(){return s},Ti:function(){return f},V_:function(){return l},Vr:function(){return r},hU:function(){return a}}),function(t){t[t.None=0]="None",t[t.Front=1]="Front",t[t.Back=2]="Back",t[t.COUNT=3]="COUNT"}(r||(r={})),function(t){t[t.Less=0]="Less",t[t.Lequal=1]="Lequal",t[t.COUNT=2]="COUNT"}(o||(o={})),function(t){t[t.BACKGROUND=0]="BACKGROUND",t[t.UPDATE=1]="UPDATE"}(i||(i={})),function(t){t[t.NOT_LOADED=0]="NOT_LOADED",t[t.LOADING=1]="LOADING",t[t.LOADED=2]="LOADED"}(s||(s={})),function(t){t[t.IntegratedMeshMaskExcluded=1]="IntegratedMeshMaskExcluded",t[t.OutlineVisualElementMask=2]="OutlineVisualElementMask"}(a||(a={})),function(t){t[t.Highlight=0]="Highlight",t[t.MaskOccludee=1]="MaskOccludee",t[t.COUNT=2]="COUNT"}(l||(l={})),function(t){t[t.Blend=0]="Blend",t[t.Opaque=1]="Opaque",t[t.Mask=2]="Mask",t[t.MaskBlend=3]="MaskBlend",t[t.COUNT=4]="COUNT"}(u||(u={})),function(t){t[t.OFF=0]="OFF",t[t.ON=1]="ON"}(c||(c={})),function(t){t.DDS_ENCODING="image/vnd-ms.dds",t.KTX2_ENCODING="image/ktx2",t.BASIS_ENCODING="image/x.basis"}(f||(f={}))},30560:function(t,e,n){function r(t,e,n){for(let r=0;r{t.visible=e}))}initialize(){this.addHandles([this.layerViews.on("change",(e=>this._layerViewsChangeHandler(e))),(0,h.YP)((()=>this.layer?.visibilityMode),(()=>{this.layer&&this._applyVisibility((()=>this._allLayerViewVisibility(this.visible)),(()=>this._applyExclusiveVisibility(null)))}),h.Z_),(0,h.YP)((()=>this.visible),(e=>{this._applyVisibility((()=>this._allLayerViewVisibility(e)),(()=>{}))}),h.Z_)],"grouplayerview"),this._layerViewsChangeHandler({target:null,added:this.layerViews.toArray(),removed:[],moved:[]})}set layerViews(e){this._set("layerViews",(0,l.Z)(e,this._get("layerViews")))}get updatingProgress(){return 0===this.layerViews.length?1:this.layerViews.reduce(((e,t)=>e+t.updatingProgress),0)/this.layerViews.length}isUpdating(){return this.layerViews.some((e=>e.updating))}_hasLayerViewVisibleOverrides(){return this.layerViews.some((e=>e._isOverridden("visible")))}_findLayerViewForLayer(e){return e&&this.layerViews.find((t=>t.layer===e))}_firstVisibleOnLayerOrder(){const e=this.layer.layers.find((e=>{const t=this._findLayerViewForLayer(e);return!!t?.visible}));return e&&this._findLayerViewForLayer(e)}_applyExclusiveVisibility(e){null==e&&null==(e=this._firstVisibleOnLayerOrder())&&this.layerViews.length>0&&(e=this._findLayerViewForLayer(this.layer.layers.at(0))),this.layerViews.forEach((t=>{t.visible=t===e}))}_layerViewsChangeHandler(e){this.removeHandles("grouplayerview:visible"),this.addHandles(this.layerViews.map((e=>(0,h.YP)((()=>e.visible),(t=>this._applyVisibility((()=>{t!==this.visible&&(e.visible=this.visible)}),(()=>this._applyExclusiveVisibility(t?e:null)))),h.Z_))).toArray(),"grouplayerview:visible");const t=e.added[e.added.length-1];this._applyVisibility((()=>this._allLayerViewVisibility(this.visible)),(()=>this._applyExclusiveVisibility(t?.visible?t:null)))}_applyVisibility(e,t){this._hasLayerViewVisibleOverrides()&&("inherited"===this.layer?.visibilityMode?e():"exclusive"===this.layer?.visibilityMode&&t())}};(0,s._)([(0,o.Cb)({cast:l.R})],p.prototype,"layerViews",null),(0,s._)([(0,o.Cb)({readOnly:!0})],p.prototype,"updatingProgress",null),(0,s._)([(0,o.Cb)()],p.prototype,"view",void 0),p=(0,s._)([(0,r.j)("esri.views.layers.GroupLayerView")],p);const u=p;let y=class extends((0,a.y)(u)){attach(){this._updateStageChildren(),this.addAttachHandles(this.layerViews.on("after-changes",(()=>this._updateStageChildren())))}detach(){this.container.removeAllChildren()}update(e){}moveStart(){}viewChange(){}moveEnd(){}_updateStageChildren(){this.container.removeAllChildren(),this.layerViews.forEach(((e,t)=>this.container.addChildAt(e.container,t)))}};y=(0,s._)([(0,r.j)("esri.views.2d.layers.GroupLayerView2D")],y);const c=y},66878:function(e,t,i){i.d(t,{y:function(){return _}});var s=i(36663),r=i(6865),a=i(58811),n=i(70375),l=i(76868),h=i(81977),o=(i(39994),i(13802),i(4157),i(40266)),d=i(68577),p=i(10530),u=i(98114),y=i(55755),c=i(88723),v=i(96294);let g=class extends v.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,s._)([(0,h.Cb)({type:[[[Number]]],json:{write:!0}})],g.prototype,"path",void 0),g=(0,s._)([(0,o.j)("esri.views.layers.support.Path")],g);const b=g,w=r.Z.ofType({key:"type",base:null,typeMap:{rect:y.Z,path:b,geometry:c.Z}}),_=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new w,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new n.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new p.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,l.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),l.tX),(0,l.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),l.tX),(0,l.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),l.tX),(0,l.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),l.tX),(0,l.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),l.tX),(0,l.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),l.tX),(0,l.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),l.tX),(0,l.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),l.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:i,maxScale:s}=t;return(0,d.o2)(e,i,s)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,i=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),i&&(e.outsideScaleRange=i),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,s._)([(0,h.Cb)()],t.prototype,"attached",void 0),(0,s._)([(0,h.Cb)({type:w,set(e){const t=(0,a.Z)(e,this._get("clips"),w);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"container",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"moving",void 0),(0,s._)([(0,h.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,s._)([(0,h.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"updateRequested",void 0),(0,s._)([(0,h.Cb)()],t.prototype,"updateSuspended",null),(0,s._)([(0,h.Cb)()],t.prototype,"updating",null),(0,s._)([(0,h.Cb)()],t.prototype,"view",void 0),(0,s._)([(0,h.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,s._)([(0,h.Cb)({type:u.Z})],t.prototype,"highlightOptions",void 0),t=(0,s._)([(0,o.j)("esri.views.2d.layers.LayerView2D")],t),t}},26216:function(e,t,i){i.d(t,{Z:function(){return c}});var s=i(36663),r=i(74396),a=i(31355),n=i(86618),l=i(13802),h=i(61681),o=i(64189),d=i(81977),p=(i(39994),i(4157),i(40266)),u=i(98940);let y=class extends((0,n.IG)((0,o.v)(a.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new u.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";l.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,h.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,s._)([(0,d.Cb)()],y.prototype,"fullOpacity",null),(0,s._)([(0,d.Cb)()],y.prototype,"layer",void 0),(0,s._)([(0,d.Cb)()],y.prototype,"parent",void 0),(0,s._)([(0,d.Cb)({readOnly:!0})],y.prototype,"suspended",null),(0,s._)([(0,d.Cb)({readOnly:!0})],y.prototype,"suspendInfo",null),(0,s._)([(0,d.Cb)({readOnly:!0})],y.prototype,"legendEnabled",null),(0,s._)([(0,d.Cb)({type:Boolean,readOnly:!0})],y.prototype,"updating",null),(0,s._)([(0,d.Cb)({readOnly:!0})],y.prototype,"updatingProgress",null),(0,s._)([(0,d.Cb)()],y.prototype,"visible",null),(0,s._)([(0,d.Cb)()],y.prototype,"view",void 0),y=(0,s._)([(0,p.j)("esri.views.layers.LayerView")],y);const c=y},88723:function(e,t,i){i.d(t,{Z:function(){return c}});var s,r=i(36663),a=(i(91957),i(81977)),n=(i(39994),i(13802),i(4157),i(40266)),l=i(20031),h=i(53736),o=i(96294),d=i(91772),p=i(89542);const u={base:l.Z,key:"type",typeMap:{extent:d.Z,polygon:p.Z}};let y=s=class extends o.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new s({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,a.Cb)({types:u,json:{read:h.im,write:!0}})],y.prototype,"geometry",void 0),y=s=(0,r._)([(0,n.j)("esri.views.layers.support.Geometry")],y);const c=y}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7565.b4661195ca9760c5ac75.js b/docs/sentinel1-explorer/7565.b4661195ca9760c5ac75.js new file mode 100644 index 00000000..84dc0dbe --- /dev/null +++ b/docs/sentinel1-explorer/7565.b4661195ca9760c5ac75.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7565],{30676:function(e,s,t){t.d(s,{AC:function(){return c},Fz:function(){return p},Q_:function(){return h},_C:function(){return l},fB:function(){return d},i1:function(){return g},jO:function(){return f},kE:function(){return u},ks:function(){return i},s8:function(){return m},sc:function(){return a}});var r=t(70375);const o="upload-assets",n=()=>new Error;class a extends r.Z{constructor(){super(`${o}:unsupported`,"Layer does not support asset uploads.",n())}}class i extends r.Z{constructor(){super(`${o}:no-glb-support`,"Layer does not support glb.",n())}}class u extends r.Z{constructor(){super(`${o}:no-supported-source`,"No supported external source found",n())}}class c extends r.Z{constructor(){super(`${o}:not-base-64`,"Expected gltf data in base64 format after conversion.",n())}}class l extends r.Z{constructor(){super(`${o}:unable-to-prepare-options`,"Unable to prepare uploadAsset request options.",n())}}class p extends r.Z{constructor(e,s){super(`${o}:bad-response`,`Bad response. Uploaded ${e} items and received ${s} results.`,n())}}class d extends r.Z{constructor(e,s){super(`${o}-layer:upload-failed`,`Failed to upload mesh file ${e}. Error code: ${s?.code??"-1"}. Error message: ${s?.messages??"unknown"}`,n())}}class f extends r.Z{constructor(e){super(`${o}-layer:unsupported-format`,`The service allowed us to upload an asset of FormatID ${e}, but it does not list it in its supported formats.`,n())}}class m extends r.Z{constructor(){super(`${o}:convert3D-failed`,"convert3D failed.")}}class h extends r.Z{constructor(){super("invalid-input:no-model","No supported model found")}}class g extends r.Z{constructor(){super("invalid-input:multiple-models","Multiple supported models found")}}},17565:function(e,s,t){t.d(s,{uploadAssets:function(){return M}});var r=t(66341),o=t(39994),n=t(13802),a=t(78668),i=t(12928),u=t(3466),c=t(12173),l=t(57450),p=t(30676);const d={upload:{createFromFiles:.8,loadMesh:.2},uploadAssetBlobs:{prepareAssetItems:.9,uploadAssetItems:.1},uploadConvertibleSource:{uploadEditSource:.5,serviceAssetsToGlb:.5},uploadLocalMesh:{meshToAssetBlob:.5,uploadAssetBlobs:.5}};var f=t(20692),m=t(23148),h=t(86114);function g(e,s=(e=>{}),t){return new w(e,s,t)}class w{constructor(e,s=(e=>{}),t){if(this.onProgress=s,this.taskName=t,this._progressMap=new Map,this._startTime=void 0,this._timingsMap=new Map,"number"==typeof e){this._weights={};for(let s=0;s({start:t,end:0})));1===s&&(r.end=t)}this.emitProgress()}simulate(e,s){return y((s=>this.setProgress(e,s)),s)}makeOnProgress(e){return s=>this.setProgress(e,s)}}function y(e=(e=>{}),s=k){const t=performance.now();e(0);const r=setInterval((()=>{const r=performance.now()-t,o=1-Math.exp(-r/s);e(o)}),T);return(0,m.kB)((()=>{clearInterval(r),e(1)}))}function _(e,s=P){return(0,i.up)((0,i._H)(e*v/s))}const P=10,b=10,v=8e-6,T=(0,i.HA)(50),k=(0,i.HA)(1e3),A=1e6,x=20*A,F=2e9,Z=3;async function j({data:e,name:s,description:t},o,n){let i=null;try{const l=(0,u.v_)(o,"uploads"),p=(0,u.v_)(l,"info"),{data:d}=await(0,r.Z)(p,{query:{f:"json"},responseType:"json"});(0,a.k_)(n);const m=(0,f.M8)(o),h=d.maxUploadFileSize*A,w=m?F:h,y=m?Math.min(x,h):x;if(e.size>w)throw new Error("Data too large");const P=(0,u.v_)(l,"register"),{data:b}=await(0,r.Z)(P,{query:{f:"json",itemName:(c=s,c.replaceAll("/","_").replaceAll("\\","_")),description:t},responseType:"json",method:"post"});if((0,a.k_)(n),!b.success)throw new Error("Registration failed");const{itemID:v}=b.item;i=(0,u.v_)(l,v);const T=(0,u.v_)(i,"uploadPart"),k=Math.ceil(e.size/y),j=new Array;for(let s=0;s{for(;0!==E.length;){const e=j.length-E.length,s=E.pop(),t=new FormData,o=S.simulate(e,_(s.size));try{t.append("f","json"),t.append("file",s),t.append("partId",`${e}`);const{data:o}=await(0,r.Z)(T,{timeout:0,body:t,responseType:"json",method:"post"});if((0,a.k_)(n),!o.success)throw new Error("Part upload failed")}finally{o.remove()}}};for(let e=0;es)).join(",")},responseType:"json",method:"post"});if((0,a.k_)(n),!C.success)throw new Error("Commit failed");return C.item}catch(e){if(null!=i){const e=(0,u.v_)(i,"delete");await(0,r.Z)(e,{query:{f:"json"},responseType:"json",method:"post"})}throw e}var c}var E=t(13449);async function M(e,s,t){const r=e.length;if(!r)return t?.onProgress?.(1),[];const o=g(r,t?.onProgress,"uploadAssets");return Promise.all(e.map(((e,r)=>async function(e,{layer:s,ongoingUploads:t},r){const o=t.get(e);if(o)return o;if(!function(e){return!!e.infoFor3D&&!!e.url}(s))throw new p.sc;if(function(e,s){const{parsedUrl:t}=s;return null!=t&&e.metadata.externalSources.some((e=>(0,l.JG)(e,t)))}(e,s))return r?.onProgress?.(1),e;const n=async function(e,s,t){const{metadata:r}=e,{displaySource:o}=r,n=S(o?.source,s),u=!!n,l=r.externalSources.length>0,f=u?async function(e,s,t){return{source:await I(e,s,t),original:!0}}(n,s,t):l?async function(e,s,t){const r=U(s),{externalSources:o}=e.metadata,n=function(e,s){for(const t of e){const e=S(t.source,s);if(e)return e}return null}(o,s);if(!n)throw new p.kE;const a=g(d.uploadConvertibleSource,t?.onProgress,"uploadConvertibleSource"),u=await I(n,s,{onProgress:a.makeOnProgress("uploadEditSource")});e.addExternalSources([{source:u,original:!0}]);const c=n.reduce(((e,{asset:s})=>s instanceof File?e+s.size:e),0),l=a.simulate("serviceAssetsToGlb",function(e,s=b){return(0,i.up)((0,i._H)(e*v/s))}(c));try{return{source:await D(u,s,r)}}finally{l.remove()}}(e,s,t):async function(e,s,t){const r=g(d.uploadLocalMesh,t?.onProgress,"uploadLocalMesh"),o=async function(e,s,t){const r=U(s),o=await e.load(t),n=await o.toBinaryGLTF({ignoreLocalTransform:!0});(0,a.k_)(t);const i=await n.buffer();return(0,a.k_)(t),{blob:new Blob([i.data],{type:i.type}),assetName:`${(0,c.zS)()}.glb`,assetType:r}}(e,s,{...t,onProgress:r.makeOnProgress("meshToAssetBlob")});return{source:await C([o],s,{...t,onProgress:r.makeOnProgress("uploadAssetBlobs")}),extent:e.extent.clone(),original:!0}}(e,s,t),m=await f;return(0,a.k_)(t),e.addExternalSources([m]),e}(e,s,r);t.set(e,n);try{await n}finally{t.delete(e)}return e}(e,s,{...t,onProgress:o.makeOnProgress(r)}))))}function S(e,s){if(!e)return null;const{infoFor3D:{supportedFormats:t,editFormats:r}}=s,o=(0,l.zE)(e),n=new Array;let a=!1;for(let e=0;easync function(e,s){const{asset:t,assetType:r}=e;if(t instanceof File)return{blob:t,assetName:t.name,assetType:r};const o=await t.toBlob(s);return(0,a.k_)(s),{blob:o,assetName:t.assetName,assetType:r}}(e,t))),s,t)}async function C(e,s,t){const r=g(d.uploadAssetBlobs,t?.onProgress,"uploadAssetBlobs"),o=await function(e,s,t){const r=g(e.length,t?.onProgress,"prepareAssetItems");return Promise.all(e.map((async(e,o)=>{const i=async function(e,s,t){const{blob:r,assetType:o,assetName:i}=e;let c=null;try{const e=await j({data:r,name:i},s.url,t);(0,a.k_)(t),c={assetType:o,assetUploadId:e.itemID}}catch(e){(0,a.r9)(e),n.Z.getLogger("esri.layers.graphics.sources.support.uploadAssets").warnOnce(`Service ${s.url} does not support the REST Uploads API.`)}if(!c){const e=await(0,u.IR)(r);if((0,a.k_)(t),!e.isBase64)throw new p.AC;c={assetType:o,assetData:e.data}}if(!c)throw new p._C;return{item:c,assetName:i}}(await e,s,{...t,onProgress:r.makeOnProgress(o)});return(0,a.k_)(t),i})))}(e,s,{...t,onProgress:r.makeOnProgress("prepareAssetItems")});(0,a.k_)(t);const i=o.map((({item:e})=>e)),{uploadResults:c}=await N(i,s,{...t,onProgress:r.makeOnProgress("uploadAssetItems")});return(0,a.k_)(t),e.map(((e,t)=>function(e,s,t){const{success:r}=s;if(!r){const{error:t}=s;throw new p.fB(e.assetName,t)}const{assetHash:o}=s,{assetName:n,item:{assetType:a}}=e,{infoFor3D:{supportedFormats:i}}=t,u=(0,E.d1)(a,i);if(!u)throw new p.jO(a);return new l.CP(n,u,[new l.LL(`${t.parsedUrl.path}/assets/${o}`,o)])}(o[t],c[t],s)))}async function N(e,s,t){const o=y(t?.onProgress);try{const o=await(0,r.Z)((0,u.v_)(s.parsedUrl.path,"uploadAssets"),{timeout:0,query:{f:"json",assets:JSON.stringify(e)},method:"post",responseType:"json"});if((0,a.k_)(t),o.data.uploadResults.length!==e.length)throw new p.Fz(e.length,o.data.uploadResults.length);return o.data}finally{o.remove()}}async function D(e,s,t){const r=e.map((({assetName:e,parts:s})=>({assetName:e,assetHash:s[0].partHash}))),o=s.capabilities?.operations.supportsAsyncConvert3D,n={f:"json",assets:JSON.stringify(r),transportType:"esriTransportTypeUrl",targetFormat:t,async:o},a=(0,u.v_)(s.parsedUrl.path,"convert3D");let i;try{i=(await(o?O:B)(a,{query:n,responseType:"json",timeout:0})).data}catch(e){throw new p.s8}const{supportedFormats:c}=s.infoFor3D;return i.assets.map((e=>{const s=(0,E.S0)(e.contentType,c);if(!s)throw new p.jO(s);return new l.CP(e.assetName,e.contentType,[new l.LL(e.assetURL,e.assetHash)])}))}function B(e,s){return(0,r.Z)(e,s)}async function O(e,s){const t=(await(0,r.Z)(e,s)).data.statusUrl;for(;;){const e=(await(0,r.Z)(t,{query:{f:"json"},responseType:"json"})).data;switch(e.status){case"Completed":return(0,r.Z)(e.resultUrl,{query:{f:"json"},responseType:"json"});case"CompletedWithErrors":throw new Error(e.status);case"Failed ImportChanges":case"InProgress":case"Pending":case"ExportAttachments":case"ExportChanges":case"ExportingData":case"ExportingSnapshot":case"ImportAttachments":case"ProvisioningReplica":case"UnRegisteringReplica":break;default:throw new Error}await(0,a.e4)(L)}}function U(e){const{infoFor3D:s}=e,t=(0,E.S0)("model/gltf-binary",s.supportedFormats)??(0,E.Ow)("glb",s.supportedFormats);if(!t)throw new p.ks;return t}const L=(0,i.HA)(1e3)}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7578.87302960514eb76d7af7.js b/docs/sentinel1-explorer/7578.87302960514eb76d7af7.js new file mode 100644 index 00000000..ec78944f --- /dev/null +++ b/docs/sentinel1-explorer/7578.87302960514eb76d7af7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7578],{97578:function(e,a,r){r.r(a),r.d(a,{default:function(){return o}});const o={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - dd MMM",_date_hour:"HH:mm",_date_hour_full:"HH:mm - dd MMM",_date_day:"dd MMM",_date_day_full:"dd MMM",_date_week:"ww",_date_week_full:"dd MMM",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_second:"ss",_duration_minute:"mm",_duration_hour:"hh",_duration_day:"dd",_duration_week:"ww",_duration_month:"MM",_duration_year:"yyyy",_era_ad:"DC",_era_bc:"AC",A:"",P:"",AM:"",PM:"","A.M.":"","P.M.":"",January:"Janeiro",February:"Fevereiro",March:"Março",April:"Abril",May:"Maio",June:"Junho",July:"Julho",August:"Agosto",September:"Setembro",October:"Outubro",November:"Novembro",December:"Dezembro",Jan:"Jan",Feb:"Fev",Mar:"Mar",Apr:"Abr","May(short)":"Mai",Jun:"Jun",Jul:"Jul",Aug:"Ago",Sep:"Set",Oct:"Out",Nov:"Nov",Dec:"Dez",Sunday:"Domingo",Monday:"Segunda-feira",Tuesday:"Terça-feira",Wednesday:"Quarta-feira",Thursday:"Quinta-feira",Friday:"Sexta-feira",Saturday:"Sábado",Sun:"Dom",Mon:"Seg",Tue:"Ter",Wed:"Qua",Thu:"Qui",Fri:"Sex",Sat:"Sáb",_dateOrd:function(e){return"º"},"Zoom Out":"Reduzir Zoom",Play:"Play",Stop:"Parar",Legend:"Legenda","Press ENTER to toggle":"Clique, toque ou pressione ENTER para alternar",Loading:"Carregando",Home:"Início",Chart:"Gráfico","Serial chart":"Gráfico Serial","X/Y chart":"Gráfico XY","Pie chart":"Gráfico de Pizza","Gauge chart":"Gráfico Indicador","Radar chart":"Gráfico de Radar","Sankey diagram":"Diagrama Sankey","Chord diagram":"Diagram Chord","Flow diagram":"Diagrama Flow","TreeMap chart":"Gráfico de Mapa de Árvore",Series:"Séries","Candlestick Series":"Séries do Candlestick","Column Series":"Séries de Colunas","Line Series":"Séries de Linhas","Pie Slice Series":"Séries de Fatias de Pizza","X/Y Series":"Séries de XY",Map:"Mapa","Press ENTER to zoom in":"Pressione ENTER para aumentar o zoom","Press ENTER to zoom out":"Pressione ENTER para diminuir o zoom","Use arrow keys to zoom in and out":"Use as setas para diminuir ou aumentar o zoom","Use plus and minus keys on your keyboard to zoom in and out":"Use as teclas mais ou menos no seu teclado para diminuir ou aumentar o zoom",Export:"Exportar",Image:"Imagem",Data:"Dados",Print:"Imprimir","Press ENTER to open":"Clique, toque ou pressione ENTER para abrir","Press ENTER to print.":"Clique, toque ou pressione ENTER para imprimir","Press ENTER to export as %1.":"Clique, toque ou pressione ENTER para exportar como %1.","(Press ESC to close this message)":"(Pressione ESC para fechar esta mensagem)","Image Export Complete":"A exportação da imagem foi completada","Export operation took longer than expected. Something might have gone wrong.":"A exportação da imagem demorou mais do que o experado. Algo deve ter dado errado.","Saved from":"Salvo de",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"Use TAB para selecionar os botões ou setas para a direita ou esquerda para mudar a seleção","Use left and right arrows to move selection":"Use as setas para a esquerda ou direita para mover a seleção","Use left and right arrows to move left selection":"Use as setas para a esquerda ou direita para mover a seleção da esquerda","Use left and right arrows to move right selection":"Use as setas para a esquerda ou direita para mover a seleção da direita","Use TAB select grip buttons or up and down arrows to change selection":"Use TAB para selecionar os botões ou setas para cima ou para baixo para mudar a seleção","Use up and down arrows to move selection":"Use as setas para cima ou para baixo para mover a seleção","Use up and down arrows to move lower selection":"Use as setas para cima ou para baixo para mover a seleção de baixo","Use up and down arrows to move upper selection":"Use as setas para cima ou para baixo para mover a seleção de cima","From %1 to %2":"De %1 até %2","From %1":"De %1","To %1":"Até %1","No parser available for file: %1":"Não há um interpretador para este arquivo: %1","Error parsing file: %1":"Erro analizando o arquivo: %1","Unable to load file: %1":"O arquivo não pôde ser carregado: %1","Invalid date":"Data inválida"}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7595.4dbe338126689d8b66ec.js b/docs/sentinel1-explorer/7595.4dbe338126689d8b66ec.js new file mode 100644 index 00000000..edbcf575 --- /dev/null +++ b/docs/sentinel1-explorer/7595.4dbe338126689d8b66ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7595],{69400:function(e,t,s){s.d(t,{Z:function(){return f}});var i=s(7753),r=s(70375),n=s(31355),o=s(13802),a=s(37116),l=s(24568),u=s(12065),h=s(117),d=s(28098),c=s(12102);const _=(0,a.Ue)();class f{constructor(e){this.geometryInfo=e,this._boundsStore=new h.H,this._featuresById=new Map,this._markedIds=new Set,this.events=new n.Z,this.featureAdapter=c.n}get geometryType(){return this.geometryInfo.geometryType}get hasM(){return this.geometryInfo.hasM}get hasZ(){return this.geometryInfo.hasZ}get numFeatures(){return this._featuresById.size}get fullBounds(){return this._boundsStore.fullBounds}get storeStatistics(){let e=0;return this._featuresById.forEach((t=>{null!=t.geometry&&t.geometry.coords&&(e+=t.geometry.coords.length)})),{featureCount:this._featuresById.size,vertexCount:e/(this.hasZ?this.hasM?4:3:this.hasM?3:2)}}getFullExtent(e){if(null==this.fullBounds)return null;const[t,s,i,r]=this.fullBounds;return{xmin:t,ymin:s,xmax:i,ymax:r,spatialReference:(0,d.S2)(e)}}add(e){this._add(e),this._emitChanged()}addMany(e){for(const t of e)this._add(t);this._emitChanged()}upsertMany(e){const t=e.map((e=>this._upsert(e)));return this._emitChanged(),t.filter(i.pC)}clear(){this._featuresById.clear(),this._boundsStore.clear(),this._emitChanged()}removeById(e){const t=this._featuresById.get(e);return t?(this._remove(t),this._emitChanged(),t):null}removeManyById(e){this._boundsStore.invalidateIndex();for(const t of e){const e=this._featuresById.get(t);e&&this._remove(e)}this._emitChanged()}forEachBounds(e,t){for(const s of e){const e=this._boundsStore.get(s.objectId);e&&t((0,a.JR)(_,e))}}getFeature(e){return this._featuresById.get(e)}has(e){return this._featuresById.has(e)}forEach(e){this._featuresById.forEach((t=>e(t)))}forEachInBounds(e,t){this._boundsStore.forEachInBounds(e,(e=>{t(this._featuresById.get(e))}))}startMarkingUsedFeatures(){this._boundsStore.invalidateIndex(),this._markedIds.clear()}sweep(){let e=!1;this._featuresById.forEach(((t,s)=>{this._markedIds.has(s)||(e=!0,this._remove(t))})),this._markedIds.clear(),e&&this._emitChanged()}_emitChanged(){this.events.emit("changed",void 0)}_add(e){if(!e)return;const t=e.objectId;if(null==t)return void o.Z.getLogger("esri.layers.graphics.data.FeatureStore").error(new r.Z("featurestore:invalid-feature","feature id is missing",{feature:e}));const s=this._featuresById.get(t);let i;if(this._markedIds.add(t),s?(e.displayId=s.displayId,i=this._boundsStore.get(t),this._boundsStore.delete(t)):null!=this.onFeatureAdd&&this.onFeatureAdd(e),!e.geometry?.coords?.length)return this._boundsStore.set(t,null),void this._featuresById.set(t,e);i=(0,u.$)(null!=i?i:(0,l.Ue)(),e.geometry,this.geometryInfo.hasZ,this.geometryInfo.hasM),null!=i&&this._boundsStore.set(t,i),this._featuresById.set(t,e)}_upsert(e){const t=e?.objectId;if(null==t)return o.Z.getLogger("esri.layers.graphics.data.FeatureStore").error(new r.Z("featurestore:invalid-feature","feature id is missing",{feature:e})),null;const s=this._featuresById.get(t);if(!s)return this._add(e),e;this._markedIds.add(t);const{geometry:i,attributes:n}=e;for(const e in n)s.attributes[e]=n[e];return i&&(s.geometry=i,this._boundsStore.set(t,(0,u.$)((0,l.Ue)(),i,this.geometryInfo.hasZ,this.geometryInfo.hasM)??null)),s}_remove(e){null!=this.onFeatureRemove&&this.onFeatureRemove(e);const t=e.objectId;return this._markedIds.delete(t),this._boundsStore.delete(t),this._featuresById.delete(t),e}}},67595:function(e,t,s){s.r(t),s.d(t,{default:function(){return Ee}});var i=s(36663),r=(s(91957),s(31355)),n=s(78668),o=s(76868),a=s(81977),l=(s(39994),s(13802)),u=(s(4157),s(40266)),h=s(98940),d=s(14685),c=s(69400),_=s(66608),f=s(81590),p=s(14136),g=s(74710),y=s(55854),m=s(86114),C=s(17321),F=s(91478);function E(e=!1,t){if(e){const{elevationInfo:e,alignPointsInFeatures:s}=t;return new v(e,s)}return new b}class b{async alignCandidates(e,t,s){return e}notifyElevationSourceChange(){}}class v{constructor(e,t){this._elevationInfo=e,this._alignPointsInFeatures=t,this._alignmentsCache=new y.z(1024),this._cacheVersion=0}async alignCandidates(e,t,s){const i=this._elevationInfo;return null==i||"absolute-height"!==i.mode||i.featureExpressionInfo?this._alignComputedElevationCandidates(e,t,s):(this._alignAbsoluteElevationCandidates(e,t,i),e)}notifyElevationSourceChange(){this._alignmentsCache.clear(),this._cacheVersion++}_alignAbsoluteElevationCandidates(e,t,s){const{offset:i,unit:r}=s;if(null==i)return;const n=(0,C._R)(t),o=i*((0,F.Z7)(r??"meters")/n);for(const t of e)switch(t.type){case"edge":t.start.z+=o,t.end.z+=o;continue;case"vertex":t.target.z+=o;continue}}async _alignComputedElevationCandidates(e,t,s){const i=new Map;for(const t of e)(0,m.s1)(i,t.objectId,S).push(t);const[r,o,a]=this._prepareQuery(i,t),l=await this._alignPointsInFeatures(r,s);if((0,n.k_)(s),a!==this._cacheVersion)return this._alignComputedElevationCandidates(e,t,s);this._applyCacheAndResponse(r,l,o);const{drapedObjectIds:u,failedObjectIds:h}=l,d=[];for(const t of e){const{objectId:e}=t;u.has(e)&&"edge"===t.type&&(t.draped=!0),h.has(e)||d.push(t)}return d}_prepareQuery(e,t){const s=[],i=[];for(const[t,r]of e){const e=[];for(const s of r)this._addToQueriesOrCachedResult(t,s.target,e,i),"edge"===s.type&&(this._addToQueriesOrCachedResult(t,s.start,e,i),this._addToQueriesOrCachedResult(t,s.end,e,i));0!==e.length&&s.push({objectId:t,points:e})}return[{spatialReference:t.toJSON(),pointsInFeatures:s},i,this._cacheVersion]}_addToQueriesOrCachedResult(e,t,s,i){const r=T(e,t),n=this._alignmentsCache.get(r);null==n?s.push(t):i.push(new I(t,n))}_applyCacheAndResponse(e,{elevations:t,drapedObjectIds:s,failedObjectIds:i},r){for(const e of r)e.apply();let n=0;const o=this._alignmentsCache;for(const{objectId:r,points:a}of e.pointsInFeatures){if(i.has(r)){n+=a.length;continue}const e=!s.has(r);for(const s of a){const i=T(r,s),a=t[n++];s.z=a,e&&o.put(i,a,1)}}}}class I{constructor(e,t){this.point=e,this.z=t}apply(){this.point.z=this.z}}function T(e,{x:t,y:s,z:i,spatialReference:r}){return`${e}-${t}-${s}-${i??0}}-wkid:${r?.wkid}`}function S(){return[]}class w{filter(e,t){return t}notifyElevationSourceChange(){}}class O{filter(e,t){const{point:s,distance:i}=e,{z:r}=s;if(null==r)return t;if(0===t.length)return t;const n=function(e){return"number"==typeof e?{x:e,y:e,z:e}:e}(i),o=this._updateCandidatesTo3D(t,s,n).filter(x);return o.sort(P),o}_updateCandidatesTo3D(e,t,s){for(const i of e)switch(i.type){case"edge":R(i,t,s);continue;case"vertex":H(i,t,s);continue}return e}}function x(e){return e.distance<=1}function A(e=!1){return e?new O:new w}function R(e,t,{x:s,y:i,z:r}){const{start:n,end:o,target:a}=e;e.draped||function(e,t,s,i){const r=i.x-s.x,n=i.y-s.y,o=i.z-s.z,a=r*r+n*n+o*o,l=(t.x-s.x)*r+(t.y-s.y)*n+o*(t.z-s.z),u=Math.min(1,Math.max(0,l/a)),h=s.x+r*u,d=s.y+n*u,c=s.z+o*u;e.x=h,e.y=d,e.z=c}(a,t,n,o);const l=(t.x-a.x)/s,u=(t.y-a.y)/i,h=(t.z-a.z)/r;e.distance=Math.sqrt(l*l+u*u+h*h)}function H(e,t,{x:s,y:i,z:r}){const{target:n}=e,o=(t.x-n.x)/s,a=(t.y-n.y)/i,l=(t.z-n.z)/r,u=Math.sqrt(o*o+a*a+l*l);e.distance=u}function P(e,t){return e.distance-t.distance}var z=s(67134),k=s(21130);function M(e=!1,t){return e?new B(t):new D}class D{async fetch(){return[]}notifySymbologyChange(){}}class B{constructor(e){this._getSymbologyCandidates=e,this._candidatesCache=new y.z(1024),this._cacheVersion=0}async fetch(e,t){if(0===e.length)return[];const s=[],i=[],r=this._candidatesCache;for(const t of e){const e=N(t),n=r.get(e);if(n)for(const e of n)i.push((0,z.d9)(e));else s.push(t),r.put(e,[],1)}if(0===s.length)return i;const o=this._cacheVersion,{candidates:a,sourceCandidateIndices:l}=await this._getSymbologyCandidates(s,t);if((0,n.k_)(t),o!==this._cacheVersion)return this.fetch(e,t);const u=[],{length:h}=a;for(let e=0;ee.callback(t))).catch((()=>{})).then((()=>{this._pending.shift(),this._process()}))}};(0,i._)([(0,a.Cb)()],Z.prototype,"updating",void 0),Z=(0,i._)([(0,u.j)("esri.core.AsyncSequence")],Z);var q,V=s(67979),$=s(23148),J=s(19784),L=s(91772),G=s(24568),Q=s(12065),W=s(20692),K=s(21425),Y=s(28500);class X{constructor(e,t){this.data=e,this.resolution=t,this.state={type:q.CREATED},this.alive=!0}process(e){switch(this.state.type){case q.CREATED:return this.state=this._gotoFetchCount(this.state,e),this.state.task.promise.then(e.resume,e.resume);case q.FETCH_COUNT:break;case q.FETCHED_COUNT:return this.state=this._gotoFetchFeatures(this.state,e),this.state.task.promise.then(e.resume,e.resume);case q.FETCH_FEATURES:break;case q.FETCHED_FEATURES:this.state=this._goToDone(this.state,e);case q.DONE:}return null}get debugInfo(){return{data:this.data,featureCount:this._featureCount,state:this._stateToString}}get _featureCount(){switch(this.state.type){case q.CREATED:case q.FETCH_COUNT:return 0;case q.FETCHED_COUNT:return this.state.featureCount;case q.FETCH_FEATURES:return this.state.previous.featureCount;case q.FETCHED_FEATURES:return this.state.features.length;case q.DONE:return this.state.previous.features.length}}get _stateToString(){switch(this.state.type){case q.CREATED:return"created";case q.FETCH_COUNT:return"fetch-count";case q.FETCHED_COUNT:return"fetched-count";case q.FETCH_FEATURES:return"fetch-features";case q.FETCHED_FEATURES:return"fetched-features";case q.DONE:return"done"}}_gotoFetchCount(e,t){return{type:q.FETCH_COUNT,previous:e,task:(0,V.vr)((async e=>{const s=await(0,V.mt)(t.fetchCount(this,e));this.state.type===q.FETCH_COUNT&&(this.state=this._gotoFetchedCount(this.state,s.ok?s.value:1/0))}))}}_gotoFetchedCount(e,t){return{type:q.FETCHED_COUNT,featureCount:t,previous:e}}_gotoFetchFeatures(e,t){return{type:q.FETCH_FEATURES,previous:e,task:(0,V.vr)((async s=>{const i=await(0,V.mt)(t.fetchFeatures(this,e.featureCount,s));this.state.type===q.FETCH_FEATURES&&(this.state=this._gotoFetchedFeatures(this.state,i.ok?i.value:[]))}))}}_gotoFetchedFeatures(e,t){return{type:q.FETCHED_FEATURES,previous:e,features:t}}_goToDone(e,t){return t.finish(this,e.features),{type:q.DONE,previous:e}}reset(){const e=this.state;switch(this.state={type:q.CREATED},e.type){case q.CREATED:case q.FETCHED_COUNT:case q.FETCHED_FEATURES:case q.DONE:break;case q.FETCH_COUNT:case q.FETCH_FEATURES:e.task.abort()}}intersects(e){return null==e||!this.data.extent||((0,G.oJ)(e,ee),(0,G.kK)(this.data.extent,ee))}}!function(e){e[e.CREATED=0]="CREATED",e[e.FETCH_COUNT=1]="FETCH_COUNT",e[e.FETCHED_COUNT=2]="FETCHED_COUNT",e[e.FETCH_FEATURES=3]="FETCH_FEATURES",e[e.FETCHED_FEATURES=4]="FETCHED_FEATURES",e[e.DONE=5]="DONE"}(q||(q={}));const ee=(0,G.Ue)();let te=class extends j.Z{get _minimumVerticesPerFeature(){switch(this.store?.featureStore.geometryType){case"esriGeometryPoint":case"esriGeometryMultipoint":return 1;case"esriGeometryPolygon":return 4;case"esriGeometryPolyline":return 2}}get _mandatoryOutFields(){const e=new Set;return this.objectIdField&&e.add(this.objectIdField),this.globalIdField&&e.add(this.globalIdField),e}set outFields(e){const t=this._get("outFields"),s=(0,J.G0)(e,this._mandatoryOutFields);(0,J.fS)(s,t)||(this._set("outFields",s),(0,J.ik)(s,t)||this.refresh())}get outFields(){return this._get("outFields")??this._mandatoryOutFields}set filter(e){const t=this._get("filter"),s=this._filterProperties(e);JSON.stringify(t)!==JSON.stringify(s)&&this._set("filter",s)}set customParameters(e){const t=this._get("customParameters");JSON.stringify(t)!==JSON.stringify(e)&&this._set("customParameters",e)}get _configuration(){return{filter:this.filter,customParameters:this.customParameters,tileInfo:this.tileInfo,tileSize:this.tileSize}}set tileInfo(e){const t=this._get("tileInfo");t!==e&&(null!=e&&null!=t&&JSON.stringify(e)===JSON.stringify(t)||(this._set("tileInfo",e),this.store.tileInfo=e))}set tileSize(e){this._get("tileSize")!==e&&this._set("tileSize",e)}get updating(){return this.updatingExcludingEdits||this._pendingEdits.updating}get updatingExcludingEdits(){return this._updatingHandles.updating}get hasZ(){return this.store.featureStore.hasZ}constructor(e){super(e),this.suspended=!0,this.tilesOfInterest=[],this.availability=0,this._pendingTiles=new Map,this._updatingHandles=new h.R,this._pendingEdits=new Z,this._pendingEditsAbortController=new AbortController}initialize(){this._initializeFetchExtent(),this._updatingHandles.add((()=>this._configuration),(()=>this.refresh())),this._updatingHandles.add((()=>this.tilesOfInterest),((e,t)=>{(0,U.fS)(e,t,(({id:e},{id:t})=>e===t))||this._process()}),o.Z_),this.addHandles((0,o.gx)((()=>!this.suspended),(()=>this._process())))}destroy(){this._pendingTiles.forEach((e=>this._deletePendingTile(e))),this._pendingTiles.clear(),this.store.destroy(),this.tilesOfInterest.length=0,this._pendingEditsAbortController.abort(),this._pendingEditsAbortController=null,this._updatingHandles.destroy()}refresh(){this.store.refresh(),this._pendingTiles.forEach((e=>this._deletePendingTile(e))),this._process()}applyEdits(e){this._pendingEdits.push(e,(async e=>{if(0===e.addedFeatures.length&&0===e.updatedFeatures.length&&0===e.deletedFeatures.length)return;for(const[,e]of this._pendingTiles)e.reset();const t={...e,deletedFeatures:e.deletedFeatures.map((({objectId:e,globalId:t})=>e&&-1!==e?e:this._lookupObjectIdByGlobalId(t)))};await this._updatingHandles.addPromise(this.store.processEdits(t,((e,t)=>this._queryFeaturesById(e,t)),this._pendingEditsAbortController.signal)),this._processPendingTiles()}))}_initializeFetchExtent(){if(!this.capabilities.query.supportsExtent||!(0,W.M8)(this.url))return;const e=(0,V.vr)((async e=>{try{const t=await(0,Y.Vr)(this.url,new p.Z({where:"1=1",outSpatialReference:this.spatialReference,cacheHint:this.capabilities.query.supportsCacheHint??void 0}),{query:this._configuration.customParameters,signal:e});this.store.extent=L.Z.fromJSON(t.data?.extent)}catch(e){(0,n.r9)(e),l.Z.getLogger(this).warn("Failed to fetch data extent",e)}}));this._updatingHandles.addPromise(e.promise.then((()=>this._process()))),this.addHandles((0,$.kB)((()=>e.abort())))}get debugInfo(){return{numberOfFeatures:this.store.featureStore.numFeatures,tilesOfInterest:this.tilesOfInterest,pendingTiles:Array.from(this._pendingTiles.values()).map((e=>e.debugInfo)),storedTiles:this.store.debugInfo}}_process(){this._markTilesNotAlive(),this._createPendingTiles(),this._deletePendingTiles(),this._processPendingTiles()}_markTilesNotAlive(){for(const[,e]of this._pendingTiles)e.alive=!1}_createPendingTiles(){if(this.suspended)return;const e=this._collectMissingTilesInfo();if(this._setAvailability(null==e?1:e.coveredArea/e.fullArea),null!=e)for(const{data:t,resolution:s}of e.missingTiles){const e=this._pendingTiles.get(t.id);e?(e.resolution=s,e.alive=!0):this._createPendingTile(t,s)}}_collectMissingTilesInfo(){let e=null;for(let t=this.tilesOfInterest.length-1;t>=0;t--){const s=this.tilesOfInterest[t],i=this.store.process(s,((e,t)=>this._verifyTileComplexity(e,t)),this.outFields);null==e?e=i:e.prepend(i)}return e}_deletePendingTiles(){for(const[,e]of this._pendingTiles)e.alive||this._deletePendingTile(e)}_processPendingTiles(){const e={fetchCount:(e,t)=>this._fetchCount(e,t),fetchFeatures:(e,t,s)=>this._fetchFeatures(e,t,s),finish:(e,t)=>this._finishPendingTile(e,t),resume:()=>this._processPendingTiles()};if(this._ensureFetchAllCounts(e))for(const[,t]of this._pendingTiles)this._verifyTileComplexity(this.store.getFeatureCount(t.data),t.resolution)&&this._updatingHandles.addPromise(t.process(e))}_verifyTileComplexity(e,t){return this._verifyVertexComplexity(e)&&this._verifyFeatureDensity(e,t)}_verifyVertexComplexity(e){return e*this._minimumVerticesPerFeature{e===r.attributes[t]&&(i=r.objectId??r.attributes[s])})),null==i)throw new Error(`Expected to find a feature with globalId ${e}`);return i}_queryFeaturesById(e,t){const s=this._createFeaturesQuery();return s.objectIds=e,this._queryFeatures(s,t)}_queryFeatures(e,t){return this.capabilities.query.supportsFormatPBF?this._queryFeaturesPBF(e,t):this._queryFeaturesJSON(e,t)}async _queryFeaturesPBF(e,t){const{sourceSpatialReference:s}=this,{data:i}=await(0,Y.qp)(this.url,e,new K.J({sourceSpatialReference:s}),{query:this._configuration.customParameters,timeout:ie,signal:t});return(0,Q.lM)(i)}async _queryFeaturesJSON(e,t){const{sourceSpatialReference:s}=this,{data:i}=await(0,Y.JT)(this.url,e,s,{query:this._configuration.customParameters,timeout:ie,signal:t});return(0,Q.h_)(i,this.objectIdField)}_createCountQuery(e){const t=this._createBaseQuery(e);return this.capabilities.query.supportsCacheHint&&(t.cacheHint=!0),t}_createFeaturesQuery(e=null){const t=this._createBaseQuery(e),s=null!=e?.data?this.store.getAttributesForTile(e?.data?.id):null,i=(0,J.G0)((0,J.e5)(this.outFields,s??new Set),this._mandatoryOutFields);return t.outFields=Array.from(i),t.returnGeometry=!0,null!=e&&(this.capabilities.query.supportsResultType?t.resultType="tile":this.capabilities.query.supportsCacheHint&&(t.cacheHint=!0)),t}_createBaseQuery(e){const t=new p.Z({returnZ:this.hasZ,returnM:!1,geometry:null!=this.tileInfo&&null!=e?(0,G.HH)(e.data.extent,this.tileInfo.spatialReference):void 0}),s=this._configuration.filter;return null!=s&&(t.where=s.where,t.gdbVersion=s.gdbVersion,t.timeExtent=s.timeExtent),t.outSpatialReference=this.spatialReference,t}_setPagingParameters(e,t,s){if(!this.capabilities.query.supportsPagination)return!1;const{supportsMaxRecordCountFactor:i,supportsCacheHint:r,tileMaxRecordCount:n,maxRecordCount:o,supportsResultType:a}=this.capabilities.query,l=i?p.Z.MAX_MAX_RECORD_COUNT_FACTOR:1,u=l*((a||r)&&n?n:o||se);return e.start=t,i?(e.maxRecordCountFactor=Math.min(l,Math.ceil(s/u)),e.num=Math.min(s,e.maxRecordCountFactor*u)):e.num=Math.min(s,u),!0}};(0,i._)([(0,a.Cb)({constructOnly:!0})],te.prototype,"url",void 0),(0,i._)([(0,a.Cb)({constructOnly:!0})],te.prototype,"objectIdField",void 0),(0,i._)([(0,a.Cb)({constructOnly:!0})],te.prototype,"globalIdField",void 0),(0,i._)([(0,a.Cb)({constructOnly:!0})],te.prototype,"capabilities",void 0),(0,i._)([(0,a.Cb)({constructOnly:!0})],te.prototype,"sourceSpatialReference",void 0),(0,i._)([(0,a.Cb)({constructOnly:!0})],te.prototype,"spatialReference",void 0),(0,i._)([(0,a.Cb)({constructOnly:!0})],te.prototype,"store",void 0),(0,i._)([(0,a.Cb)({readOnly:!0})],te.prototype,"_minimumVerticesPerFeature",null),(0,i._)([(0,a.Cb)()],te.prototype,"_mandatoryOutFields",null),(0,i._)([(0,a.Cb)()],te.prototype,"outFields",null),(0,i._)([(0,a.Cb)()],te.prototype,"suspended",void 0),(0,i._)([(0,a.Cb)()],te.prototype,"filter",null),(0,i._)([(0,a.Cb)()],te.prototype,"customParameters",null),(0,i._)([(0,a.Cb)({readOnly:!0})],te.prototype,"_configuration",null),(0,i._)([(0,a.Cb)()],te.prototype,"tileInfo",null),(0,i._)([(0,a.Cb)()],te.prototype,"tileSize",null),(0,i._)([(0,a.Cb)()],te.prototype,"tilesOfInterest",void 0),(0,i._)([(0,a.Cb)({readOnly:!0})],te.prototype,"updating",null),(0,i._)([(0,a.Cb)({readOnly:!0})],te.prototype,"updatingExcludingEdits",null),(0,i._)([(0,a.Cb)({readOnly:!0})],te.prototype,"availability",void 0),(0,i._)([(0,a.Cb)()],te.prototype,"hasZ",null),te=(0,i._)([(0,u.j)("esri.views.interactive.snapping.featureSources.featureServiceSource.FeatureServiceTiledFetcher")],te);const se=2e3,ie=6e5,re=1e6,ne=25,oe=1;var ae=s(4745),le=s(25015),ue=s(117),he=s(23758);class de{constructor(){this._store=new Map,this._byteSize=0}set(e,t){this.delete(e),this._store.set(e,t),this._byteSize+=t.byteSize}delete(e){const t=this._store.get(e);return!!this._store.delete(e)&&(null!=t&&(this._byteSize-=t.byteSize),!0)}get(e){return this._used(e),this._store.get(e)}has(e){return this._used(e),this._store.has(e)}clear(){this._store.clear()}applyByteSizeLimit(e,t){for(const[s,i]of this._store){if(this._byteSize<=e)break;this.delete(s),t(i)}}values(){return this._store.values()}[Symbol.iterator](){return this._store[Symbol.iterator]()}_used(e){const t=this._store.get(e);t&&(this._store.delete(e),this._store.set(e,t))}}let ce=class extends j.Z{constructor(e){super(e),this.tileInfo=null,this.extent=null,this.maximumByteSize=10*le.Y.MEGABYTES,this._tileBounds=new ue.H,this._tiles=new de,this._refCounts=new Map,this._tileFeatureCounts=new Map,this._tmpBoundingRect=(0,G.Ue)()}add(e,t){for(const e of t)this._referenceFeature(e.objectId);const s=this.featureStore.upsertMany(t),i=s.map((e=>new Set(Object.keys(e.attributes)))).reduce(((e,t)=>(0,J.jV)(e,t)),new Set(Object.keys(s[0]?.attributes??[])));this._addTileStorage(e,new Set(s.map((e=>e.objectId))),function(e){return e.reduce(((e,t)=>e+function(e){return 32+function(e){if(null==e)return 0;const t=(0,ae.do)(e.lengths,4);return 32+(0,ae.do)(e.coords,8)+t}(e.geometry)+(0,ae.f2)(e.attributes)}(t)),0)}(s),i),this._tiles.applyByteSizeLimit(this.maximumByteSize,(e=>this._removeTileStorage(e)))}getAttributesForTile(e){return e?this._tiles.get(e)?.attributeKeys:null}destroy(){this.clear(),this._tileFeatureCounts.clear()}clear(){this.featureStore.clear(),this._tileBounds.clear(),this._tiles.clear(),this._refCounts.clear()}refresh(){this.clear(),this._tileFeatureCounts.clear()}processEdits(e,t,s){return this._processEditsDelete(e.deletedFeatures.concat(e.updatedFeatures)),this._processEditsRefetch(e.addedFeatures.concat(e.updatedFeatures),t,s)}_addTileStorage(e,t,s,i){const r=e.id;this._tiles.set(r,new _e(e,t,s,i)),this._tileBounds.set(r,e.extent),this._tileFeatureCounts.set(r,t.size)}_remove({id:e}){const t=this._tiles.get(e);t&&this._removeTileStorage(t)}_removeTileStorage(e){const t=[];for(const s of e.objectIds)this._unreferenceFeature(s)===me.REMOVED&&t.push(s);this.featureStore.removeManyById(t);const s=e.data.id;this._tiles.delete(s),this._tileBounds.delete(s)}_processEditsDelete(e){this.featureStore.removeManyById(e);for(const[,t]of this._tiles){for(const s of e)t.objectIds.delete(s);this._tileFeatureCounts.set(t.data.id,t.objectIds.size)}for(const t of e)this._refCounts.delete(t)}async _processEditsRefetch(e,t,s){const i=(await t(e,s)).features,{hasZ:r,hasM:n}=this.featureStore;for(const e of i){const t=(0,Q.$)(this._tmpBoundingRect,e.geometry,r,n);null!=t&&this._tileBounds.forEachInBounds(t,(t=>{const s=this._tiles.get(t);this.featureStore.add(e);const i=e.objectId;s.objectIds.has(i)||(s.objectIds.add(i),this._referenceFeature(i),this._tileFeatureCounts.set(s.data.id,s.objectIds.size))}))}}process(e,t=(()=>!0),s){if(null==this.tileInfo||!e.extent||null!=this.extent&&!(0,G.kK)((0,G.oJ)(this.extent,this._tmpBoundingRect),e.extent))return new pe(e);const i=this.getAttributesForTile(e.id);if((0,J.ik)(s,i))return new pe(e);const r=this._createTileTree(e,this.tileInfo);return this._simplify(r,t,null,0,1),this._collectMissingTiles(e,r,this.tileInfo,s)}get debugInfo(){return Array.from(this._tiles.values()).map((({data:e})=>({data:e,featureCount:this._tileFeatureCounts.get(e.id)||0})))}getFeatureCount(e){return this._tileFeatureCounts.get(e.id)??0}async fetchCount(e,t,s,i){const r=this._tileFeatureCounts.get(e.id);if(null!=r)return r;const n=await(0,Y.hH)(t,s,i);return this._tileFeatureCounts.set(e.id,n.data.count),n.data.count}_createTileTree(e,t){const s=new fe(e.level,e.row,e.col);return t.updateTileInfo(s,f.Z.ExtrapolateOptions.POWER_OF_TWO),this._tileBounds.forEachInBounds(e.extent,(i=>{const r=this._tiles.get(i)?.data;r&&this._tilesAreRelated(e,r)&&this._populateChildren(s,r,t,this._tileFeatureCounts.get(r.id)||0)})),s}_tilesAreRelated(e,t){if(!e||!t)return!1;if(e.level===t.level)return e.row===t.row&&e.col===t.col;const s=e.level>r,o=t.col>>r,a=e.row<<1,l=o-(e.col<<1)+(n-a<<1),u=e.children[l];if(null!=u)this._populateChildren(u,t,s,i);else{const r=new fe(e.level+1,n,o);s.updateTileInfo(r,f.Z.ExtrapolateOptions.POWER_OF_TWO),e.children[l]=r,this._populateChildren(r,t,s,i)}}_simplify(e,t,s,i,r){const n=r*r;if(e.isLeaf)return t(this.getFeatureCount(e),r)?0:(this._remove(e),null!=s&&(s.children[i]=null),n);const o=r/2,a=o*o;let l=0;for(let s=0;s{const r=this._tiles.get(e.id);if(r){s=s?(0,J.jV)(s,r.attributeKeys):new Set(r.attributeKeys),i+=r.byteSize;for(const e of r.objectIds)t.has(e)||(t.add(e),this._referenceFeature(e));this._remove(e)}})),this._addTileStorage(e,t,i,s??new Set),e.isLeaf=!0,e.children[0]=e.children[1]=e.children[2]=e.children[3]=null,this._tileFeatureCounts.set(e.id,t.size)}_forEachLeaf(e,t){for(const s of e.children)null!=s&&(s.isLeaf?t(s):this._forEachLeaf(s,t))}_purge(e){if(null!=e)if(e.isLeaf)this._remove(e);else for(let t=0;t>1),(e.col<<1)+(1&s),o):this._collectMissingTilesRecurse(r,t,o,i)}}_referenceFeature(e){const t=(this._refCounts.get(e)||0)+1;return this._refCounts.set(e,t),1===t?me.ADDED:me.UNCHANGED}_unreferenceFeature(e){const t=(this._refCounts.get(e)||0)-1;return 0===t?(this._refCounts.delete(e),me.REMOVED):(t>0&&this._refCounts.set(e,t),me.UNCHANGED)}get test(){return{tiles:Array.from(this._tiles.values()).map((e=>`${e.data.id}:[${Array.from(e.objectIds)}]`)),featureReferences:Array.from(this._refCounts.keys()).map((e=>`${e}:${this._refCounts.get(e)}`))}}};(0,i._)([(0,a.Cb)({constructOnly:!0})],ce.prototype,"featureStore",void 0),(0,i._)([(0,a.Cb)()],ce.prototype,"tileInfo",void 0),(0,i._)([(0,a.Cb)()],ce.prototype,"extent",void 0),(0,i._)([(0,a.Cb)()],ce.prototype,"maximumByteSize",void 0),ce=(0,i._)([(0,u.j)("esri.views.interactive.snapping.featureSources.featureServiceSource.FeatureServiceTileStore")],ce);class _e{constructor(e,t,s,i){this.data=e,this.objectIds=t,this.byteSize=s,this.attributeKeys=i}}class fe{constructor(e,t,s){this.level=e,this.row=t,this.col=s,this.isLeaf=!1,this.extent=null,this.children=[null,null,null,null]}get hasChildren(){return!this.isLeaf&&(null!=this.children[0]||null!=this.children[1]||null!=this.children[2]||null!=this.children[3])}}class pe{constructor(e,t=[]){this.missingTiles=t,this.fullArea=0,this.coveredArea=0,this.fullArea=(0,G.SO)(e.extent),this.coveredArea=this.fullArea}prepend(e){this.missingTiles=e.missingTiles.concat(this.missingTiles),this.coveredArea+=e.coveredArea,this.fullArea+=e.fullArea}}class ge{constructor(e,t,s){this._tileInfo=e,this._extent=null,this.info=new pe(t),null!=s&&(this._extent=(0,G.oJ)(s))}addMissing(e,t,s,i){const r=new he.f(null,e,t,s);this._tileInfo.updateTileInfo(r,f.Z.ExtrapolateOptions.POWER_OF_TWO),null==r.extent||null!=this._extent&&!(0,G.kK)(this._extent,r.extent)||(this.info.missingTiles.push({data:r,resolution:i}),this.info.coveredArea-=(0,G.SO)(r.extent))}}const ye=.18751;var me;!function(e){e[e.ADDED=0]="ADDED",e[e.REMOVED=1]="REMOVED",e[e.UNCHANGED=2]="UNCHANGED"}(me||(me={}));var Ce=s(53736);let Fe=class extends r.Z.EventedAccessor{constructor(){super(...arguments),this._isInitializing=!0,this.remoteClient=null,this._whenSetup=(0,n.hh)(),this._elevationAligner=E(),this._elevationFilter=A(),this._symbologyCandidatesFetcher=M(),this._updatingHandles=new h.R,this._editsUpdatingHandles=new h.R,this._pendingApplyEdits=new Map,this._alignPointsInFeatures=async(e,t)=>{const s={query:e},i=await this.remoteClient.invoke("alignElevation",s,{signal:t});return(0,n.k_)(t),i},this._getSymbologyCandidates=async(e,t)=>{const s={candidates:e,spatialReference:this._spatialReference.toJSON()},i=await this.remoteClient.invoke("getSymbologyCandidates",s,{signal:t});return(0,n.k_)(t),i}}get updating(){return this.updatingExcludingEdits||this._editsUpdatingHandles.updating||this._featureFetcher.updating}get updatingExcludingEdits(){return this._featureFetcher.updatingExcludingEdits||this._isInitializing||this._updatingHandles.updating}destroy(){this._featureFetcher?.destroy(),this._queryEngine?.destroy(),this._featureStore?.clear()}async setup(e){if(this.destroyed)return{result:{}};const{geometryType:t,objectIdField:s,timeInfo:i,fieldsIndex:r}=e.serviceInfo,{hasZ:n}=e,a=d.Z.fromJSON(e.spatialReference);this._spatialReference=a,this._featureStore=new c.Z({...e.serviceInfo,hasZ:n,hasM:!1}),this._queryEngine=new _.q({spatialReference:e.spatialReference,featureStore:this._featureStore,geometryType:t,fieldsIndex:r,hasZ:n,hasM:!1,objectIdField:s,timeInfo:i}),this._featureFetcher=new te({store:new ce({featureStore:this._featureStore}),url:e.serviceInfo.url,objectIdField:e.serviceInfo.objectIdField,globalIdField:e.serviceInfo.globalIdField,capabilities:e.serviceInfo.capabilities,spatialReference:a,sourceSpatialReference:d.Z.fromJSON(e.serviceInfo.spatialReference),customParameters:e.configuration.customParameters});const l="3d"===e.configuration.viewType;return this._elevationAligner=E(l,{elevationInfo:null!=e.elevationInfo?g.Z.fromJSON(e.elevationInfo):null,alignPointsInFeatures:this._alignPointsInFeatures}),this._elevationFilter=A(l),this.addHandles([(0,o.YP)((()=>this._featureFetcher.availability),(e=>this.emit("notify-availability",{availability:e})),o.Z_),(0,o.YP)((()=>this.updating),(()=>this._notifyUpdating()))]),this._whenSetup.resolve(),this._isInitializing=!1,this.configure(e.configuration)}async configure(e){return await this._updatingHandles.addPromise(this._whenSetup.promise),this._updateFeatureFetcherConfiguration(e),be}async setSuspended(e,t){return await this._updatingHandles.addPromise(this._whenSetup.promise),(0,n.k_)(t),this._featureFetcher.suspended=e,be}async updateOutFields(e,t){return await this._updatingHandles.addPromise(this._whenSetup.promise),(0,n.k_)(t),this._featureFetcher.outFields=new Set(e??[]),be}async fetchCandidates(e,t){await this._whenSetup.promise,(0,n.k_)(t);const s=function(e){if(!e.filter)return{...e,query:{where:"1=1"}};const{distance:t,units:s,spatialRel:i,where:r,timeExtent:n,objectIds:o}=e.filter,a={geometry:e.filter.geometry?(0,Ce.im)(e.filter.geometry):void 0,distance:t,units:s,spatialRel:i,timeExtent:n,objectIds:o,where:r??"1=1"};return{...e,query:a}}(e),i=t?.signal,r=await this._queryEngine.executeQueryForSnapping(s,i);(0,n.k_)(i);const o=await this._elevationAligner.alignCandidates(r.candidates,d.Z.fromJSON(e.point.spatialReference)??d.Z.WGS84,i);(0,n.k_)(i);const a=await this._symbologyCandidatesFetcher.fetch(o,i);(0,n.k_)(i);const l=0===a.length?o:o.concat(a);return{result:{candidates:this._elevationFilter.filter(s,l)}}}async updateTiles(e,t){return await this._updatingHandles.addPromise(this._whenSetup.promise),(0,n.k_)(t),this._featureFetcher.tileSize=e.tileSize,this._featureFetcher.tilesOfInterest=e.tiles,this._featureFetcher.tileInfo=null!=e.tileInfo?f.Z.fromJSON(e.tileInfo):null,be}async refresh(e,t){return await this._updatingHandles.addPromise(this._whenSetup.promise),(0,n.k_)(t),this._featureFetcher.refresh(),be}async whenNotUpdating(e,t){return await this._updatingHandles.addPromise(this._whenSetup.promise),(0,n.k_)(t),await(0,o.N1)((()=>!this.updatingExcludingEdits),t),(0,n.k_)(t),be}async getDebugInfo(e,t){return(0,n.k_)(t),{result:this._featureFetcher.debugInfo}}async beginApplyEdits(e,t){this._updatingHandles.addPromise(this._whenSetup.promise),(0,n.k_)(t);const s=(0,n.hh)();return this._pendingApplyEdits.set(e.id,s),this._featureFetcher.applyEdits(s.promise),this._editsUpdatingHandles.addPromise(s.promise),be}async endApplyEdits(e,t){const s=this._pendingApplyEdits.get(e.id);return s&&s.resolve(e.edits),(0,n.k_)(t),be}async notifyElevationSourceChange(e,t){return this._elevationAligner.notifyElevationSourceChange(),be}async notifySymbologyChange(e,t){return this._symbologyCandidatesFetcher.notifySymbologyChange(),be}async setSymbologySnappingSupported(e){return this._symbologyCandidatesFetcher=M(e,this._getSymbologyCandidates),be}_updateFeatureFetcherConfiguration(e){this._featureFetcher.filter=null!=e.filter?p.Z.fromJSON(e.filter):null,this._featureFetcher.customParameters=e.customParameters}_notifyUpdating(){this.emit("notify-updating",{updating:this.updating})}};(0,i._)([(0,a.Cb)({readOnly:!0})],Fe.prototype,"updating",null),(0,i._)([(0,a.Cb)({readOnly:!0})],Fe.prototype,"updatingExcludingEdits",null),(0,i._)([(0,a.Cb)()],Fe.prototype,"_isInitializing",void 0),Fe=(0,i._)([(0,u.j)("esri.views.interactive.snapping.featureSources.featureServiceSource.FeatureServiceSnappingSourceWorker")],Fe);const Ee=Fe;const be={result:{}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7653.f6f17072d9c6684b049b.js b/docs/sentinel1-explorer/7653.f6f17072d9c6684b049b.js new file mode 100644 index 00000000..1e3cd992 --- /dev/null +++ b/docs/sentinel1-explorer/7653.f6f17072d9c6684b049b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7653],{57653:function(e,_,a){a.r(_),a.d(_,{default:function(){return r}});const r={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"n. e.",_era_bc:"p. n. e.",A:"prijepodne",P:"popodne",AM:"AM",PM:"PM","A.M.":"prijepodne","P.M.":"popodne",January:"januar",February:"februar",March:"mart",April:"april",May:"maj",June:"juni",July:"juli",August:"august",September:"septembar",October:"oktobar",November:"novembar",December:"decembar",Jan:"jan",Feb:"feb",Mar:"mar",Apr:"apr","May(short)":"maj",Jun:"jun",Jul:"jul",Aug:"aug",Sep:"sep",Oct:"okt",Nov:"nov",Dec:"dec",Sunday:"nedjelja",Monday:"ponedjeljak",Tuesday:"utorak",Wednesday:"srijeda",Thursday:"četvrtak",Friday:"petak",Saturday:"subota",Sun:"ned",Mon:"pon",Tue:"uto",Wed:"sri",Thu:"čet",Fri:"pet",Sat:"sub",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Povećaj",Play:"Reproduciraj",Stop:"Zaustavi",Legend:"Legenda","Press ENTER to toggle":"",Loading:"Učitavanje",Home:"Početna",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Ispis",Image:"Slika",Data:"Podaci",Print:"Ispis","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Od %1 do %2","From %1":"Od %1","To %1":"Do %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7660.01603e9902b573642aa0.js b/docs/sentinel1-explorer/7660.01603e9902b573642aa0.js new file mode 100644 index 00000000..6af0c7c5 --- /dev/null +++ b/docs/sentinel1-explorer/7660.01603e9902b573642aa0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7660],{17660:function(e,_,r){r.r(_),r.d(_,{default:function(){return a}});const a={_decimalSeparator:",",_thousandSeparator:" ",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - dd. MMM yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - dd. MMM yyyy",_date_day:"dd. MMM",_date_day_full:"dd. MMM yyyy",_date_week:"ww",_date_week_full:"dd. MMM yyyy",_date_month:"MMM",_date_month_full:"MMM yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"e.Kr.",_era_bc:"f.Kr.",A:"a",P:"p",AM:"a.m.",PM:"p.m.","A.M.":"a.m.","P.M.":"p.m.",January:"januar",February:"februar",March:"mars",April:"april",May:"mai",June:"juni",July:"juli",August:"august",September:"september",October:"oktober",November:"november",December:"desember",Jan:"jan.",Feb:"feb.",Mar:"mar.",Apr:"apr.","May(short)":"mai",Jun:"jun.",Jul:"jul.",Aug:"aug.",Sep:"sep.",Oct:"okt.",Nov:"nov.",Dec:"des.",Sunday:"søndag",Monday:"mandag",Tuesday:"tirsdag",Wednesday:"onsdag",Thursday:"torsdag",Friday:"fredag",Saturday:"lørdag",Sun:"søn.",Mon:"man.",Tue:"tir.",Wed:"ons.",Thu:"tor.",Fri:"fre.",Sat:"lør.",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Zoom",Play:"Spill av",Stop:"Stopp",Legend:"Tegnforklaring","Press ENTER to toggle":"",Loading:"Laster inn",Home:"Hjem",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Skriv ut",Image:"Bilde",Data:"Data",Print:"Skriv ut","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Fra %1 til %2","From %1":"Fra %1","To %1":"Til %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7676.7bfd2ac20f65646f6f87.js b/docs/sentinel1-explorer/7676.7bfd2ac20f65646f6f87.js new file mode 100644 index 00000000..436a512a --- /dev/null +++ b/docs/sentinel1-explorer/7676.7bfd2ac20f65646f6f87.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7676,3261],{6766:function(e,t,r){r.d(t,{a:function(){return n},b:function(){return o},c:function(){return i},d:function(){return s},e:function(){return p},f:function(){return u},n:function(){return c},s:function(){return l},t:function(){return d}});r(39994);var a=r(45150);function s(e,t,r){n(e.typedBuffer,t.typedBuffer,r,e.typedBufferStride,t.typedBufferStride)}function n(e,t,r,a=3,s=a){if(e.length/a!==Math.ceil(t.length/s))return e;const n=e.length/a,i=r[0],o=r[1],u=r[2],l=r[4],d=r[5],p=r[6],c=r[8],h=r[9],y=r[10],f=r[12],g=r[13],m=r[14];let b=0,w=0;for(let r=0;r0){const t=1/Math.sqrt(l);e[i]=t*s,e[i+1]=t*o,e[i+2]=t*u}n+=a,i+=r}}Object.freeze(Object.defineProperty({__proto__:null,normalize:c,normalizeView:p,scale:l,scaleView:u,shiftRight:function(e,t,r){const a=Math.min(e.count,t.count),s=e.typedBuffer,n=e.typedBufferStride,i=t.typedBuffer,o=t.typedBufferStride;let u=0,l=0;for(let e=0;e>r,s[l+1]=i[u+1]>>r,s[l+2]=i[u+2]>>r,u+=o,l+=n},transformMat3:o,transformMat3View:i,transformMat4:n,transformMat4View:s,translate:d},Symbol.toStringTag,{value:"Module"}))},58626:function(e,t,r){r.d(t,{Z:function(){return d}});var a=r(36663),s=r(41151),n=r(82064),i=r(81977),o=(r(39994),r(13802),r(4157),r(79438)),u=r(40266);let l=class extends((0,s.J)(n.wq)){constructor(e){super(e),this.type="georeferenced",this.origin=null}};(0,a._)([(0,o.J)({georeferenced:"georeferenced"},{readOnly:!0})],l.prototype,"type",void 0),(0,a._)([(0,i.Cb)({type:[Number],nonNullable:!1,json:{write:!0}})],l.prototype,"origin",void 0),l=(0,a._)([(0,u.j)("esri.geometry.support.MeshGeoreferencedVertexSpace")],l);const d=l},51619:function(e,t,r){r.d(t,{Z:function(){return p}});var a=r(36663),s=r(41151),n=r(82064),i=r(81977),o=(r(39994),r(13802),r(4157),r(79438)),u=r(40266),l=r(81095);let d=class extends((0,s.J)(n.wq)){constructor(e){super(e),this.type="local",this.origin=(0,l.Ue)()}};(0,a._)([(0,o.J)({local:"local"},{readOnly:!0})],d.prototype,"type",void 0),(0,a._)([(0,i.Cb)({type:[Number],nonNullable:!0,json:{write:!0}})],d.prototype,"origin",void 0),d=(0,a._)([(0,u.j)("esri.geometry.support.MeshLocalVertexSpace")],d);const p=d},45150:function(e,t,r){r.d(t,{M:function(){return s}});var a=r(13802);const s=()=>a.Z.getLogger("esri.views.3d.support.buffer.math")},57450:function(e,t,r){r.d(t,{CP:function(){return o},JG:function(){return y},LL:function(){return u},NZ:function(){return l},fV:function(){return f},vj:function(){return m},yT:function(){return w},zE:function(){return b}});var a=r(66341),s=r(7753),n=r(78668),i=r(13449);class o{constructor(e,t,r){this.assetName=e,this.assetMimeType=t,this.parts=r}equals(e){return this===e||this.assetName===e.assetName&&this.assetMimeType===e.assetMimeType&&(0,s.fS)(this.parts,e.parts,((e,t)=>e.equals(t)))}isOnService(e){return this.parts.every((t=>t.isOnService(e)))}makeHash(){let e="";for(const t of this.parts)e+=t.partHash;return e}async toBlob(e){const{parts:t}=this;if(1===t.length)return t[0].toBlob(e);const r=await Promise.all(t.map((t=>t.toBlob(e))));return(0,n.k_)(e),new Blob(r)}}class u{constructor(e,t){this.partUrl=e,this.partHash=t}equals(e){return this===e||this.partUrl===e.partUrl&&this.partHash===e.partHash}isOnService(e){return this.partUrl.startsWith(`${e.path}/assets/`)}async toBlob(e){const{data:t}=await(0,a.Z)(this.partUrl,{responseType:"blob"});return(0,n.k_)(e),t}}function l(e){return function(e){if(!e)return!1;if(Array.isArray(e))return e.some(h);return h(e)}(e?.source)}function d(e){return!!Array.isArray(e)&&e.every((e=>e instanceof o))}const p=/^(model\/gltf\+json)|(model\/gltf-binary)$/,c=/\.(gltf|glb)/i;function h(e){if(e instanceof File){const{type:t,name:r}=e;return p.test(t)||c.test(r)}return p.test(e.assetMimeType)||c.test(e.assetName)}function y(e,t){if(!e)return!1;const{source:r}=e;return function(e,t){if(Array.isArray(e)){const r=e;return r.length>0&&r.every((e=>g(e,t)))}return g(e,t)}(r,t)}function f(e,t){if(e===t)return!0;const{source:r}=e,{source:a}=t;if(r===a)return!0;if(d(r)&&d(a)){if(r.length!==a.length)return!1;const e=(e,t)=>e.assetNamet.assetName?1:0,t=[...r].sort(e),s=[...a].sort(e);for(let e=0;e{(t.addedFeatures.length||t.updatedFeatures.length||t.deletedFeatures.length||t.addedAttachments.length||t.updatedAttachments.length||t.deletedAttachments.length)&&e.emit("edits",t)}));const t={result:l.promise};e.emit("apply-edits",t)}try{const{results:u,edits:p}=await async function(e,t,r,a){if(await e.load(),!m(t))throw new n.Z(`${e.type}-layer:no-editing-support`,"Layer source does not support applyEdits capability",{layer:e});if(!(0,g.ln)(e))throw new n.Z(`${e.type}-layer:editing-disabled`,"Editing is disabled for layer",{layer:e});const{edits:i,options:u}=await async function(e,t,r){const a=(0,g.S1)(e),i=t&&(t.addFeatures||t.updateFeatures||t.deleteFeatures),u=t&&(t.addAttachments||t.updateAttachments||t.deleteAttachments),l=null!=e.infoFor3D;if(function(e,t,r,a,s,i){if(!e||!a&&!s)throw new n.Z(`${i}:missing-parameters`,"'addFeatures', 'updateFeatures', 'deleteFeatures', 'addAttachments', 'updateAttachments' or 'deleteAttachments' parameter is required");if(!t.editing.supportsGlobalId&&r?.globalIdUsed)throw new n.Z(`${i}:invalid-parameter`,"This layer does not support 'globalIdUsed' parameter. See: 'capabilities.editing.supportsGlobalId'");if(!t.editing.supportsGlobalId&&s)throw new n.Z(`${i}:invalid-parameter`,"'addAttachments', 'updateAttachments' and 'deleteAttachments' are applicable only if the layer supports global ids. See: 'capabilities.editing.supportsGlobalId'");if(!r?.globalIdUsed&&s)throw new n.Z(`${i}:invalid-parameter`,"When 'addAttachments', 'updateAttachments' or 'deleteAttachments' is specified, globalIdUsed should be set to true")}(t,a,r,!!i,!!u,`${e.type}-layer`),!a.data.isVersioned&&r?.gdbVersion)throw new n.Z(`${e.type}-layer:invalid-parameter`,"'gdbVersion' is applicable only if the layer supports versioned data. See: 'capabilities.data.isVersioned'");if(!a.editing.supportsRollbackOnFailure&&r?.rollbackOnFailureEnabled)throw new n.Z(`${e.type}-layer:invalid-parameter`,"This layer does not support 'rollbackOnFailureEnabled' parameter. See: 'capabilities.editing.supportsRollbackOnFailure'");const p={...r};if(null!=p.rollbackOnFailureEnabled||a.editing.supportsRollbackOnFailure||(p.rollbackOnFailureEnabled=!0),p.rollbackOnFailureEnabled||"original-and-current-features"!==p.returnServiceEditsOption||(!1===p.rollbackOnFailureEnabled&&o.Z.getLogger("esri.layers.graphics.editingSupport").warn(`${e.type}-layer:invalid-parameter`,"'original-and-current-features' is valid for 'returnServiceEditsOption' only when 'rollBackOnFailure' is true, but 'rollBackOnFailure' was set to false. 'rollBackOnFailure' has been overwritten and set to true."),p.rollbackOnFailureEnabled=!0),!a.editing.supportsReturnServiceEditsInSourceSpatialReference&&p.returnServiceEditsInSourceSR)throw new n.Z(`${e.type}-layer:invalid-parameter`,"This layer does not support 'returnServiceEditsInSourceSR' parameter. See: 'capabilities.editing.supportsReturnServiceEditsInSourceSpatialReference'");if(p.returnServiceEditsInSourceSR&&"original-and-current-features"!==p.returnServiceEditsOption)throw new n.Z(`${e.type}-layer:invalid-parameter`,"'returnServiceEditsInSourceSR' is valid only when 'returnServiceEditsOption' is set to 'original-and-current-features'");const c=function(e,t,r){const a=function(e){return{addFeatures:Array.from(e?.addFeatures??[]),updateFeatures:Array.from(e?.updateFeatures??[]),deleteFeatures:e&&s.Z.isCollection(e.deleteFeatures)?e.deleteFeatures.toArray():e.deleteFeatures||[],addAttachments:e.addAttachments||[],updateAttachments:e.updateAttachments||[],deleteAttachments:e.deleteAttachments||[]}}(e);if(a.addFeatures?.length&&!t.operations.supportsAdd)throw new n.Z(`${r}:unsupported-operation`,"Layer does not support adding features.");if(a.updateFeatures?.length&&!t.operations.supportsUpdate)throw new n.Z(`${r}:unsupported-operation`,"Layer does not support updating features.");if(a.deleteFeatures?.length&&!t.operations.supportsDelete)throw new n.Z(`${r}:unsupported-operation`,"Layer does not support deleting features.");return a.addFeatures=a.addFeatures.map(O),a.updateFeatures=a.updateFeatures.map(O),a.addAssetFeatures=[],a}(t,a,`${e.type}-layer`),h=r?.globalIdUsed||l,y=e.fields.filter((e=>"big-integer"===e.type||"oid"===e.type&&(e.length||0)>=8));if(h){const{globalIdField:t}=e;if(null==t)throw new n.Z(`${e.type}-layer:invalid-parameter`,"Layer does not specify a global id field.");c.addFeatures.forEach((e=>function(e,t){const{attributes:r}=e;null==r[t]&&(r[t]=(0,d.zS)())}(e,t)))}return c.addFeatures.forEach((t=>function(e,t,r,a){v(e,t,r,a),R(e,t)}(t,e,h,y))),c.updateFeatures.forEach((t=>function(e,t,r,a){v(e,t,r,a),R(e,t);const s=(0,g.S1)(t);if("geometry"in e&&null!=e.geometry&&!s?.editing.supportsGeometryUpdate)throw new n.Z(`${t.type}-layer:unsupported-operation`,"Layer does not support geometry updates.")}(t,e,h,y))),c.deleteFeatures.forEach((t=>function(e,t,r,a){v(e,t,r,a)}(t,e,h,y))),c.addAttachments.forEach((t=>I(t,e))),c.updateAttachments.forEach((t=>I(t,e))),l&&await async function(e,t){if(null==t.infoFor3D)return;const{infoFor3D:r}=t,a=(0,f.S0)("model/gltf-binary",r.supportedFormats)??(0,f.Ow)("glb",r.supportedFormats);if(!a||!r.editFormats.includes(a))throw new n.Z(`${t.type}-layer:binary-gltf-asset-not-supported`,"3DObjectFeatureLayer requires binary glTF (.glb) support for updating mesh geometry.");e.addAssetFeatures??=[];const{addAssetFeatures:s}=e;for(const t of e.addFeatures??[])Z(t)&&s.push(t);for(const t of e.updateFeatures??[])Z(t)&&s.push(t)}(c,e),{edits:await E(c),options:p}}(e,r,a);return i.addFeatures?.length||i.updateFeatures?.length||i.deleteFeatures?.length||i.addAttachments?.length||i.updateAttachments?.length||i.deleteAttachments?.length?{edits:i,results:await t.applyEdits(i,u)}:{edits:i,results:{addFeatureResults:[],updateFeatureResults:[],deleteFeatureResults:[],addAttachmentResults:[],updateAttachmentResults:[],deleteAttachmentResults:[]}}}(e,t,r,a),c=e=>e.filter((e=>!e.error)).map(i.d9),h={edits:p,addedFeatures:c(u.addFeatureResults),updatedFeatures:c(u.updateFeatureResults),deletedFeatures:c(u.deleteFeatureResults),addedAttachments:c(u.addAttachmentResults),updatedAttachments:c(u.updateAttachmentResults),deletedAttachments:c(u.deleteAttachmentResults),exceededTransferLimit:!1,historicMoment:u.editMoment?new Date(u.editMoment):null,globalIdToObjectId:a.globalIdToObjectId};return u.editedFeatureResults?.length&&(h.editedFeatures=u.editedFeatureResults),l.resolve(h),u}catch(e){throw l.reject(e),e}}function v(e,t,r,a){if(r){if("attributes"in e&&!e.attributes[t.globalIdField])throw new n.Z(`${t.type}-layer:invalid-parameter`,`Feature should have '${t.globalIdField}' when 'globalIdUsed' is true`);if(!("attributes"in e)&&!e.globalId)throw new n.Z(`${t.type}-layer:invalid-parameter`,"`'globalId' of the feature should be passed when 'globalIdUsed' is true")}if(a.length&&"attributes"in e)for(const r of a){const a=e.attributes[r.name];if(void 0!==a&&!(0,y.d2)(r,a))throw new n.Z(`${t.type}-layer:invalid-parameter`,`Big-integer field '${r.name}' of the feature must be less than ${Number.MAX_SAFE_INTEGER}`,{feature:e})}if("geometry"in e&&null!=e.geometry){if(e.geometry.hasZ&&!1===t.capabilities?.data.supportsZ)throw new n.Z(`${t.type}-layer:z-unsupported`,"Layer does not support z values while feature has z values.");if(e.geometry.hasM&&!1===t.capabilities?.data.supportsM)throw new n.Z(`${t.type}-layer:m-unsupported`,"Layer does not support m values while feature has m values.")}}function R(e,t){if("geometry"in e&&"mesh"===e.geometry?.type&&null!=t.infoFor3D&&null!=t.spatialReference){const{geometry:r}=e,{spatialReference:a,vertexSpace:s}=r,i=t.spatialReference,o="local"===s.type,u=(0,c.sT)(i),l=(0,c.fS)(i,a),d=l||(0,c.oR)(i)&&((0,c.oR)(a)||(0,c.sS)(a));if(!(o&&u&&d||!o&&!u&&l))throw new n.Z(`${t.type}-layer:mesh-unsupported`,`Uploading a mesh with a ${s.type} vertex space and a spatial reference wkid:${a.wkid} to a layer with a spatial reference wkid:${i.wkid} is not supported.`)}}function I(e,t){const{feature:r,attachment:a}=e;if(!r||"attributes"in r&&!r.attributes[t.globalIdField])throw new n.Z(`${t.type}-layer:invalid-parameter`,"Attachment should have reference to a feature with 'globalId'");if(!("attributes"in r)&&!r.globalId)throw new n.Z(`${t.type}-layer:invalid-parameter`,"Attachment should have reference to 'globalId' of the parent feature");if(!a.globalId)throw new n.Z(`${t.type}-layer:invalid-parameter`,"Attachment should have 'globalId'");if(!a.data&&!a.uploadId)throw new n.Z(`${t.type}-layer:invalid-parameter`,"Attachment should have 'data' or 'uploadId'");if(!(a.data instanceof File&&a.data.name||a.name))throw new n.Z(`${t.type}-layer:invalid-parameter`,"'name' is required when attachment is specified as Base64 encoded string using 'data'");if(!t.capabilities?.editing.supportsUploadWithItemId&&a.uploadId)throw new n.Z(`${t.type}-layer:invalid-parameter`,"This layer does not support 'uploadId' parameter. See: 'capabilities.editing.supportsUploadWithItemId'");if("string"==typeof a.data){const e=(0,l.sJ)(a.data);if(e&&!e.isBase64)throw new n.Z(`${t.type}-layer:invalid-parameter`,"Attachment 'data' should be a Blob, File or Base64 encoded string")}}async function E(e){const t=e.addFeatures??[],r=e.updateFeatures??[],a=t.concat(r).map((e=>e.geometry)),s=await(0,p.aX)(a),n=t.length,i=r.length;return s.slice(0,n).forEach(((e,r)=>t[r].geometry=e)),s.slice(n,n+i).forEach(((e,t)=>r[t].geometry=e)),e}function O(e){const t=new a.Z;return e.attributes||(e.attributes={}),t.geometry=e.geometry,t.attributes=e.attributes,t}function Z(e){return"mesh"===e?.geometry?.type}function q(e,t,r,a){if(!m(t))throw new n.Z(`${e.type}-layer:no-editing-support`,"Layer source does not support applyEdits capability",{layer:e});if(!t.uploadAssets)throw new n.Z(`${e.type}-layer:no-asset-upload-support`,"Layer source does not support uploadAssets capability",{layer:e});return t.uploadAssets(r,a)}},87676:function(e,t,r){r.r(t),r.d(t,{default:function(){return H}});var a=r(36663),s=(r(91957),r(88256)),n=r(66341),i=r(37956),o=r(7753),u=r(70375),l=r(39994),d=r(25709),p=r(68309),c=r(13802),h=r(86745),y=r(78668),f=r(3466),g=r(12173),m=r(81977),b=r(40266),w=r(91772),S=r(50442),F=r(57450),A=r(80085),v=r(17321),R=r(28105),I=r(53736),E=r(35925),O=r(23261);async function Z(e,t,r){const{geometry:a}=t,s={...t.attributes};if(null!=r&&"mesh"===a?.type){const{transformFieldRoles:t}=r,{origin:n,spatialReference:i,transform:o,vertexSpace:u}=a,l="local"===u.type,d=e.spatialReference,p=d.isGeographic,c=(0,E.fS)(d,i),h=c||(0,E.oR)(d)&&((0,E.oR)(i)||(0,E.sS)(i));if(!(l&&p&&h||!l&&!p&&c))return null;const y=(0,R.projectWithoutEngine)(n,i,d);if(null==y)return null;if(s[t.originX]=y.x,s[t.originY]=y.y,s[t.originZ]=y.z??0,null!=o){const{translation:e,scale:r,rotation:a}=o,n=l?1:(0,v.r6)(i)/(0,v.r6)(d);s[t.translationX]=e[0]*n,s[t.translationY]=e[2]*n,s[t.translationZ]=-e[1]*n,s[t.scaleX]=r[0],s[t.scaleY]=r[2],s[t.scaleZ]=r[1],s[t.rotationX]=a[0],s[t.rotationY]=a[2],s[t.rotationZ]=-a[1],s[t.rotationDeg]=a[3]}return{attributes:s}}return null==a?{attributes:s}:"mesh"===a.type||"extent"===a.type?null:{geometry:a.toJSON(),attributes:s}}async function q(e,t){const r=await Promise.all((t.addAttachments??[]).map((t=>x(e,t)))),a=await Promise.all((t.updateAttachments??[]).map((t=>x(e,t)))),s=t.deleteAttachments??[];return r.length||a.length||s.length?{adds:r,updates:a,deletes:[...s]}:null}async function x(e,t){const{feature:r,attachment:a}=t,{globalId:s,name:n,contentType:i,data:o,uploadId:u}=a,l={globalId:s};if(r&&("attributes"in r?l.parentGlobalId=r.attributes?.[e.globalIdField]:r.globalId&&(l.parentGlobalId=r.globalId)),u)l.uploadId=u;else if(o){const e=await(0,f.IR)(o);e&&(l.contentType=e.mediaType,l.data=e.data),o instanceof File&&(l.name=o.name)}return n&&(l.name=n),i&&(l.contentType=i),l}function _(e){const t=!0===e.success?null:e.error||{code:void 0,description:void 0};return{objectId:e.objectId,globalId:e.globalId,error:t?new u.Z("feature-layer-source:edit-failure",t.description,{code:t.code}):null}}function M(e,t){return new A.Z({attributes:e.attributes,geometry:(0,I.im)({...e.geometry,spatialReference:t})})}function T(e,t){return{adds:e?.adds?.map((e=>M(e,t)))||[],updates:e?.updates?.map((e=>({original:M(e[0],t),current:M(e[1],t)})))||[],deletes:e?.deletes?.map((e=>M(e,t)))||[],spatialReference:t}}var $=r(40400),U=r(44269),C=r(20692),N=r(23556),k=r(13449),B=r(96027),j=r(66565),L=r(14136),D=r(43980),J=r(14685);const P=new d.X({originalAndCurrentFeatures:"original-and-current-features",none:"none"}),Q=new Set(["Feature Layer","Oriented Imagery Layer","Table","Catalog Layer"]),G=new d.X({Started:"published",Publishing:"publishing",Stopped:"unavailable"});let V=class extends p.Z{constructor(){super(...arguments),this.type="feature-layer",this.refresh=(0,y.Ds)((async()=>{await this.load();const e=this.sourceJSON.editingInfo?.lastEditDate;if(null==e)return{dataChanged:!0,updates:{}};try{await this._fetchService(null)}catch{return{dataChanged:!0,updates:{}}}const t=e!==this.sourceJSON.editingInfo?.lastEditDate;return{dataChanged:t,updates:t?{editingInfo:this.sourceJSON.editingInfo,extent:this.sourceJSON.extent}:null}})),this._ongoingAssetUploads=new Map}load(e){const t=this.layer.sourceJSON,r=this._fetchService(t,{...e}).then((()=>this.layer.setUserPrivileges(this.sourceJSON.serviceItemId,e))).then((()=>this._ensureLatestMetadata(e)));return this.addResolvingPromise(r),Promise.resolve(this)}get queryTask(){const{capabilities:e,parsedUrl:t,dynamicDataSource:r,infoFor3D:a,gdbVersion:s,spatialReference:n,fieldsIndex:i}=this.layer,o=(0,l.Z)("featurelayer-pbf")&&e?.query.supportsFormatPBF&&null==a,u=e?.operations?.supportsQueryAttachments??!1;return new U.Z({url:t.path,pbfSupported:o,fieldsIndex:i,infoFor3D:a,dynamicDataSource:r,gdbVersion:s,sourceSpatialReference:n,queryAttachmentsSupported:u})}async addAttachment(e,t){await this.load();const{layer:r}=this;await(0,N.nU)(r,"editing");const a=e.attributes[r.objectIdField],s=r.parsedUrl.path+"/"+a+"/addAttachment",i=this._getLayerRequestOptions(),o=this._getFormDataForAttachment(t,i.query);try{return _((await(0,n.Z)(s,{body:o})).data.addAttachmentResult)}catch(e){throw this._createAttachmentErrorResult(a,e)}}async updateAttachment(e,t,r){await this.load();const{layer:a}=this;await(0,N.nU)(a,"editing");const s=e.attributes[a.objectIdField],i=a.parsedUrl.path+"/"+s+"/updateAttachment",o=this._getLayerRequestOptions({query:{attachmentId:t}}),u=this._getFormDataForAttachment(r,o.query);try{return _((await(0,n.Z)(i,{body:u})).data.updateAttachmentResult)}catch(e){throw this._createAttachmentErrorResult(s,e)}}async applyEdits(e,t){await this.load();const{layer:r}=this;await(0,N.nU)(r,"editing");const a=r.infoFor3D,i=null!=a,l=i||(t?.globalIdUsed??!1),d=i?await this._uploadMeshesAndGetAssetMapEditsJSON(e):null,p=e.addFeatures?.map((e=>Z(this.layer,e,a)))??[],c=(await Promise.all(p)).filter(o.pC),h=e.updateFeatures?.map((e=>Z(this.layer,e,a)))??[],y=(await Promise.all(h)).filter(o.pC),f=function(e,t,r){if(!t||0===t.length)return[];if(r&&(0,O.Ey)(t))return t.map((e=>e.globalId));if((0,O.aw)(t))return t.map((e=>e.objectId));const a=r?e.globalIdField:e.objectIdField;return a?t.map((e=>e.getAttribute(a))):[]}(this.layer,e.deleteFeatures,l);(0,j.P)(c,y,r.spatialReference);const g=await q(this.layer,e),m=r.capabilities.editing.supportsAsyncApplyEdits&&i,b=t?.gdbVersion||r.gdbVersion,w={gdbVersion:b,rollbackOnFailure:t?.rollbackOnFailureEnabled,useGlobalIds:l,returnEditMoment:t?.returnEditMoment,usePreviousEditMoment:t?.usePreviousEditMoment,async:m};await(0,D.Px)(this.layer.url,b,!0);const S=(0,D.JV)(this.layer.url,b||null);if(await(0,D.r9)(r.url,b,r.historicMoment))throw new u.Z("feature-layer-source:historic-version","Editing a historic version is not allowed");t?.returnServiceEditsOption?(w.edits=JSON.stringify([{id:r.layerId,adds:c,updates:y,deletes:f,attachments:g,assetMaps:d}]),w.returnServiceEditsOption=P.toJSON(t?.returnServiceEditsOption),w.returnServiceEditsInSourceSR=t?.returnServiceEditsInSourceSR):(w.adds=c.length?JSON.stringify(c):null,w.updates=y.length?JSON.stringify(y):null,w.deletes=f.length?l?JSON.stringify(f):f.join(","):null,w.attachments=g&&JSON.stringify(g),w.assetMaps=null!=d?JSON.stringify(d):void 0);const F=this._getLayerRequestOptions({method:"post",query:w});S&&(F.authMode="immediate",F.query.returnEditMoment=!0,F.query.sessionId=D.U8);const A=t?.returnServiceEditsOption?r.url:r.parsedUrl.path;let v;try{v=m?await this._asyncApplyEdits(A+"/applyEdits",F):await(0,n.Z)(A+"/applyEdits",F)}catch(e){if(!function(e){const t=e.details.raw,r=+t.code,a=+t.extendedCode;return 500===r&&(-2147217144===a||-2147467261===a)}(e))throw e;F.authMode="immediate",v=m?await this._asyncApplyEdits(A+"/applyEdits",F):await(0,n.Z)(A+"/applyEdits",F)}if(!r.capabilities.operations?.supportsEditing&&r.effectiveCapabilities?.operations?.supportsEditing){const e=s.id?.findCredential(r.url);await(e?.refreshToken())}return this._createEditsResult(v)}async deleteAttachments(e,t){await this.load();const{layer:r}=this;await(0,N.nU)(r,"editing");const a=e.attributes[r.objectIdField],s=r.parsedUrl.path+"/"+a+"/deleteAttachments";try{return(await(0,n.Z)(s,this._getLayerRequestOptions({query:{attachmentIds:t.join(",")},method:"post"}))).data.deleteAttachmentResults.map(_)}catch(e){throw this._createAttachmentErrorResult(a,e)}}fetchRecomputedExtents(e={}){const t=e.signal;return this.load({signal:t}).then((async()=>{const t=this._getLayerRequestOptions({...e,query:{returnUpdates:!0}}),{layerId:r,url:a}=this.layer,{data:s}=await(0,n.Z)(`${a}/${r}`,t),{id:o,extent:u,fullExtent:l,timeExtent:d}=s,p=u||l;return{id:o,fullExtent:p&&w.Z.fromJSON(p),timeExtent:d&&i.Z.fromJSON({start:d[0],end:d[1]})}}))}async queryAttachments(e,t={}){await this.load();const r=this._getLayerRequestOptions(t);return this.queryTask.executeAttachmentQuery(e,r)}async queryFeatures(e,t){await this.load();const r=await this.queryTask.execute(e,{...t,query:this._createRequestQueryOptions(t)});return e.outStatistics?.length&&r.features.length&&r.features.forEach((t=>{const r=t.attributes;e.outStatistics?.forEach((({outStatisticFieldName:e})=>{if(e){const t=e.toLowerCase();t&&t in r&&e!==t&&(r[e]=r[t],delete r[t])}}))})),r}async queryFeaturesJSON(e,t){return await this.load(),this.queryTask.executeJSON(e,{...t,query:this._createRequestQueryOptions(t)})}async queryObjectIds(e,t){return await this.load(),this.queryTask.executeForIds(e,{...t,query:this._createRequestQueryOptions(t)})}async queryFeatureCount(e,t){return await this.load(),this.queryTask.executeForCount(e,{...t,query:this._createRequestQueryOptions(t)})}async queryExtent(e,t){return await this.load(),this.queryTask.executeForExtent(e,{...t,query:this._createRequestQueryOptions(t)})}async queryRelatedFeatures(e,t){return await this.load(),this.queryTask.executeRelationshipQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryRelatedFeaturesCount(e,t){return await this.load(),this.queryTask.executeRelationshipQueryForCount(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopFeatures(e,t){return await this.load(),this.queryTask.executeTopFeaturesQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopObjectIds(e,t){return await this.load(),this.queryTask.executeForTopIds(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopExtents(e,t){return await this.load(),this.queryTask.executeForTopExtents(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopCount(e,t){return await this.load(),this.queryTask.executeForTopCount(e,{...t,query:this._createRequestQueryOptions(t)})}async fetchPublishingStatus(){if(!(0,C.M8)(this.layer.url))return"unavailable";const e=(0,f.v_)(this.layer.url,"status"),t=await(0,n.Z)(e,{query:{f:"json"}});return G.fromJSON(t.data.status)}async uploadAssets(e,t){const{uploadAssets:a}=await r.e(7565).then(r.bind(r,17565));return a(e,{layer:this.layer,ongoingUploads:this._ongoingAssetUploads},t)}async _asyncApplyEdits(e,t){const r=(await(0,n.Z)(e,t)).data.statusUrl;for(;;){const e=(await(0,n.Z)(r,{query:{f:"json"},responseType:"json"})).data;switch(e.status){case"Completed":return(0,n.Z)(e.resultUrl,{query:{f:"json"},responseType:"json"});case"CompletedWithErrors":throw new u.Z("async-applyEdits-failed","asynchronous applyEdits call failed.");case"Failed ImportChanges":case"InProgress":case"Pending":case"ExportAttachments":case"ExportChanges":case"ExportingData":case"ExportingSnapshot":case"ImportAttachments":case"ProvisioningReplica":case"UnRegisteringReplica":break;default:throw new u.Z("async-applyEdits-failed","asynchronous applyEdits call failed (undefined response status)")}await(0,y.e4)(z)}}_createRequestQueryOptions(e){const t={...this.layer.customParameters,token:this.layer.apiKey,...e?.query};return this.layer.datesInUnknownTimezone&&(t.timeReferenceUnknownClient=!0),t}async _fetchService(e,t){if(!e){const r={};(0,l.Z)("featurelayer-advanced-symbols")&&(r.returnAdvancedSymbols=!0),t?.cacheBust&&(r._ts=Date.now());const{data:a}=await(0,n.Z)(this.layer.parsedUrl.path,this._getLayerRequestOptions({query:r,signal:t?.signal}));e=a}this.sourceJSON=await this._patchServiceJSON(e,t?.signal);const r=e.type;if(!Q.has(r))throw new u.Z("feature-layer-source:unsupported-type",`Source type "${r}" is not supported`)}async _patchServiceJSON(e,t){if("Table"!==e.type&&e.geometryType&&!e?.drawingInfo?.renderer&&!e.defaultSymbol){const t=(0,$.bU)(e.geometryType).renderer;(0,h.RB)("drawingInfo.renderer",t,e)}if("esriGeometryMultiPatch"===e.geometryType&&e.infoFor3D&&(e.geometryType="mesh"),null==e.extent)try{const{data:r}=await(0,n.Z)(this.layer.url,this._getLayerRequestOptions({signal:t}));r.spatialReference&&(e.extent={xmin:0,ymin:0,xmax:0,ymax:0,spatialReference:r.spatialReference})}catch(e){(0,y.r9)(e)}return e}async _ensureLatestMetadata(e){if(this.layer.userHasUpdateItemPrivileges&&this.sourceJSON.cacheMaxAge>0)return this._fetchService(null,{...e,cacheBust:!0})}async _uploadMeshesAndGetAssetMapEditsJSON(e){const{addAssetFeatures:t}=e;if(!t?.length)return null;const r=await this._filterRedundantAssetMaps(t);if(!t?.length)return null;const a=new Array,s=new Map;for(const e of r){const{geometry:t}=e,{vertexSpace:r}=t;if((0,S.zZ)(r))a.push(t);else{const r=(0,S.wm)(t);s.set(r,t),e.geometry=r,a.push(r)}}await this.uploadAssets(a);for(const[e,t]of s)t.addExternalSources(e.metadata.externalSources.items);return{adds:this._getAssetMapEditsJSON(r),updates:[],deletes:[]}}_getAssetMapEditsJSON(e){const t=new Array,r=this.layer.globalIdField,a=this.layer.parsedUrl;for(const s of e){const e=s.geometry,{metadata:n}=e,i=n.getExternalSourcesOnService(a),o=s.getAttribute(r);if(0===i.length){c.Z.getLogger(this).error(`Skipping feature ${o}. The mesh it is associated with has not been uploaded to the service and cannot be mapped to it.`);continue}const{source:u}=i.find(F.yT)??i[0];for(const e of u)1===e.parts.length?t.push({globalId:(0,g.zS)(),parentGlobalId:o,assetName:e.assetName,assetHash:e.parts[0].partHash,flags:[]}):c.Z.getLogger(this).error(`Skipping asset ${e.assetName}. It does not have exactly one part, so we cannot map it to a feature.`)}return t}_createEditsResult(e){const t=e.data,{layerId:r}=this.layer,a=[];let s=null;if(Array.isArray(t))for(const e of t)a.push({id:e.id,editedFeatures:e.editedFeatures}),e.id===r&&(s={addResults:e.addResults??[],updateResults:e.updateResults??[],deleteResults:e.deleteResults??[],attachments:e.attachments,editMoment:e.editMoment});else s=t;const n=function(e){const t=e?.assetMaps;if(t){for(const e of t.addResults)e.success||c.Z.getLogger("esri.layers.graphics.sources.support.sourceUtils").error(`Failed to map asset to feature with globalId ${e.globalId}.`);for(const e of t.updateResults)e.success||c.Z.getLogger("esri.layers.graphics.sources.support.sourceUtils").error(`Failed to map asset to feature with globalId ${e.globalId}.`)}const r=e?.attachments,a={addFeatureResults:e?.addResults?.map(_)??[],updateFeatureResults:e?.updateResults?.map(_)??[],deleteFeatureResults:e?.deleteResults?.map(_)??[],addAttachmentResults:r?.addResults?r.addResults.map(_):[],updateAttachmentResults:r?.updateResults?r.updateResults.map(_):[],deleteAttachmentResults:r?.deleteResults?r.deleteResults.map(_):[]};return e?.editMoment&&(a.editMoment=e.editMoment),a}(s);if(a.length>0){n.editedFeatureResults=[];for(const e of a){const{editedFeatures:t}=e,r=t?.spatialReference?new J.Z(t.spatialReference):null;n.editedFeatureResults.push({layerId:e.id,editedFeatures:T(t,r)})}}return n}_createAttachmentErrorResult(e,t){const r=t.details.messages?.[0]||t.message,a=t.details.httpStatus||t.details.messageCode;return{objectId:e,globalId:null,error:new u.Z("feature-layer-source:attachment-failure",r,{code:a})}}_getFormDataForAttachment(e,t){const r=e instanceof FormData?e:e&&e.elements?new FormData(e):null;if(r)for(const e in t){const a=t[e];null!=a&&(r.set?r.set(e,a):r.append(e,a))}return r}_getLayerRequestOptions(e={}){const{parsedUrl:t,gdbVersion:r,dynamicDataSource:a}=this.layer;return{...e,query:{gdbVersion:r,layer:a?JSON.stringify({source:a}):void 0,...t.query,f:"json",...this._createRequestQueryOptions(e)},responseType:"json"}}async _filterRedundantAssetMaps(e){const{layer:t}=this,{globalIdField:r,infoFor3D:a,parsedUrl:s}=t;if(null==a||null==r)return e;const n=(0,k.$6)(a);if(null==n)return e;const i=(0,f.v_)(s.path,`../${n.id}`),u=new Array,l=new Array;for(const t of e)t.geometry.metadata.getExternalSourcesOnService(s).length>0?l.push(t):u.push(t);const d=l.map((e=>e.getAttribute(r))).filter(o.pC);if(0===d.length)return e;const{assetMapFieldRoles:{parentGlobalId:p,assetHash:c}}=a,h=new L.Z;h.where=`${p} IN (${d.map((e=>`'${e}'`))})`,h.outFields=[c,p],h.returnGeometry=!1;const y=await(0,B.e)(i,h),{features:g}=y;return 0===g.length?e:[...u,...l.filter((e=>{const t=e.getAttribute(r);if(!t)return!0;const{metadata:a}=e.geometry,n=g.filter((e=>e.getAttribute(p)===t));if(0===n.length)return!0;const i=n.map((e=>e.getAttribute(c)));return a.getExternalSourcesOnService(s).flatMap((({source:e})=>e.flatMap((e=>e.parts.map((e=>e.partHash)))))).some((e=>i.every((t=>e!==t))))}))]}};(0,a._)([(0,m.Cb)()],V.prototype,"type",void 0),(0,a._)([(0,m.Cb)({constructOnly:!0})],V.prototype,"layer",void 0),(0,a._)([(0,m.Cb)({readOnly:!0})],V.prototype,"queryTask",null),V=(0,a._)([(0,b.j)("esri.layers.graphics.sources.FeatureLayerSource")],V);const z=1e3,H=V},40400:function(e,t,r){r.d(t,{Dm:function(){return d},Hq:function(){return p},MS:function(){return c},bU:function(){return o}});var a=r(39994),s=r(67134),n=r(10287),i=r(86094);function o(e){return{renderer:{type:"simple",symbol:"esriGeometryPoint"===e||"esriGeometryMultipoint"===e?i.I4:"esriGeometryPolyline"===e?i.ET:i.lF}}}const u=/^[_$a-zA-Z][_$a-zA-Z0-9]*$/;let l=1;function d(e,t){if((0,a.Z)("esri-csp-restrictions"))return()=>({[t]:null,...e});try{let r=`this.${t} = null;`;for(const t in e)r+=`this${u.test(t)?`.${t}`:`["${t}"]`} = ${JSON.stringify(e[t])};`;const a=new Function(`\n return class AttributesClass$${l++} {\n constructor() {\n ${r};\n }\n }\n `)();return()=>new a}catch(r){return()=>({[t]:null,...e})}}function p(e={}){return[{name:"New Feature",description:"",prototype:{attributes:(0,s.d9)(e)}}]}function c(e,t){return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:e},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:t,supportsDelete:t,supportsEditing:t,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:t,supportsExceedsLimitStatistics:!0,supportsAsyncConvert3D:!1},query:n.g,queryRelated:{supportsCount:!0,supportsOrderBy:!0,supportsPagination:!0,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsGeometryUpdate:t,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7700.f9c937d150b1ca7c827c.js b/docs/sentinel1-explorer/7700.f9c937d150b1ca7c827c.js new file mode 100644 index 00000000..18199e47 --- /dev/null +++ b/docs/sentinel1-explorer/7700.f9c937d150b1ca7c827c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7700,8427],{48427:function(e,n,t){t.r(n),t.d(n,{hydratedAdapter:function(){return o}});var r=t(91772),i=t(74304),u=t(67666),a=t(89542),c=t(90819);const o={convertToGEGeometry:function(e,n){if(null==n)return null;let t="cache"in n?n.cache._geVersion:void 0;return null==t&&(t=e.convertJSONToGeometry(n),"cache"in n&&(n.cache._geVersion=t)),t},exportPoint:function(e,n,t){const r=e.hasZ(n),i=e.hasM(n),a=new u.Z({x:e.getPointX(n),y:e.getPointY(n),spatialReference:t});return r&&(a.z=e.getPointZ(n)),i&&(a.m=e.getPointM(n)),a.cache._geVersion=n,a},exportPolygon:function(e,n,t){const r=new a.Z({rings:e.exportPaths(n),hasZ:e.hasZ(n),hasM:e.hasM(n),spatialReference:t});return r.cache._geVersion=n,r},exportPolyline:function(e,n,t){const r=new c.Z({paths:e.exportPaths(n),hasZ:e.hasZ(n),hasM:e.hasM(n),spatialReference:t});return r.cache._geVersion=n,r},exportMultipoint:function(e,n,t){const r=new i.Z({hasZ:e.hasZ(n),hasM:e.hasM(n),points:e.exportPoints(n),spatialReference:t});return r.cache._geVersion=n,r},exportExtent:function(e,n,t){const i=e.hasZ(n),u=e.hasM(n),a=new r.Z({xmin:e.getXMin(n),ymin:e.getYMin(n),xmax:e.getXMax(n),ymax:e.getYMax(n),spatialReference:t});if(i){const t=e.getZExtent(n);a.zmin=t.vmin,a.zmax=t.vmax}if(u){const t=e.getMExtent(n);a.mmin=t.vmin,a.mmax=t.vmax}return a.cache._geVersion=n,a}}},17700:function(e,n,t){t.r(n),t.d(n,{buffer:function(){return P},changeDefaultSpatialReferenceTolerance:function(){return Y},clearDefaultSpatialReferenceTolerance:function(){return j},clip:function(){return c},contains:function(){return f},convexHull:function(){return w},crosses:function(){return s},cut:function(){return o},densify:function(){return C},difference:function(){return R},disjoint:function(){return G},distance:function(){return d},equals:function(){return l},extendedSpatialReferenceInfo:function(){return a},flipHorizontal:function(){return L},flipVertical:function(){return b},generalize:function(){return k},geodesicArea:function(){return O},geodesicBuffer:function(){return S},geodesicDensify:function(){return H},geodesicLength:function(){return I},intersect:function(){return Z},intersectLinesToPoints:function(){return X},intersects:function(){return p},isSimple:function(){return x},nearestCoordinate:function(){return _},nearestVertex:function(){return D},nearestVertices:function(){return T},offset:function(){return V},overlaps:function(){return A},planarArea:function(){return J},planarLength:function(){return N},relate:function(){return g},rotate:function(){return E},simplify:function(){return m},symmetricDifference:function(){return M},touches:function(){return h},union:function(){return v},within:function(){return y}});var r=t(89067),i=t(48427);function u(e){return Array.isArray(e)?e[0].spatialReference:e&&e.spatialReference}function a(e){return r.G.extendedSpatialReferenceInfo(e)}function c(e,n){return r.G.clip(i.hydratedAdapter,u(e),e,n)}function o(e,n){return r.G.cut(i.hydratedAdapter,u(e),e,n)}function f(e,n){return r.G.contains(i.hydratedAdapter,u(e),e,n)}function s(e,n){return r.G.crosses(i.hydratedAdapter,u(e),e,n)}function d(e,n,t){return r.G.distance(i.hydratedAdapter,u(e),e,n,t)}function l(e,n){return r.G.equals(i.hydratedAdapter,u(e),e,n)}function p(e,n){return r.G.intersects(i.hydratedAdapter,u(e),e,n)}function h(e,n){return r.G.touches(i.hydratedAdapter,u(e),e,n)}function y(e,n){return r.G.within(i.hydratedAdapter,u(e),e,n)}function G(e,n){return r.G.disjoint(i.hydratedAdapter,u(e),e,n)}function A(e,n){return r.G.overlaps(i.hydratedAdapter,u(e),e,n)}function g(e,n,t){return r.G.relate(i.hydratedAdapter,u(e),e,n,t)}function x(e){return r.G.isSimple(i.hydratedAdapter,u(e),e)}function m(e){return r.G.simplify(i.hydratedAdapter,u(e),e)}function w(e,n=!1){return r.G.convexHull(i.hydratedAdapter,u(e),e,n)}function R(e,n){return r.G.difference(i.hydratedAdapter,u(e),e,n)}function M(e,n){return r.G.symmetricDifference(i.hydratedAdapter,u(e),e,n)}function Z(e,n){return r.G.intersect(i.hydratedAdapter,u(e),e,n)}function v(e,n=null){return r.G.union(i.hydratedAdapter,u(e),e,n)}function V(e,n,t,a,c,o){return r.G.offset(i.hydratedAdapter,u(e),e,n,t,a,c,o)}function P(e,n,t,a=!1){return r.G.buffer(i.hydratedAdapter,u(e),e,n,t,a)}function S(e,n,t,a,c,o){return r.G.geodesicBuffer(i.hydratedAdapter,u(e),e,n,t,a,c,o)}function _(e,n,t=!0){return r.G.nearestCoordinate(i.hydratedAdapter,u(e),e,n,t)}function D(e,n){return r.G.nearestVertex(i.hydratedAdapter,u(e),e,n)}function T(e,n,t,a){return r.G.nearestVertices(i.hydratedAdapter,u(e),e,n,t,a)}function z(e){return"xmin"in e?"center"in e?e.center:null:"x"in e?e:"extent"in e?e.extent?.center??null:null}function E(e,n,t){if(null==e)throw new q;const i=e.spatialReference;if(null==(t=t??z(e)))throw new q;const u=e.constructor.fromJSON(r.G.rotate(e,n,t));return u.spatialReference=i,u}function L(e,n){if(null==e)throw new q;const t=e.spatialReference;if(null==(n=n??z(e)))throw new q;const i=e.constructor.fromJSON(r.G.flipHorizontal(e,n));return i.spatialReference=t,i}function b(e,n){if(null==e)throw new q;const t=e.spatialReference;if(null==(n=n??z(e)))throw new q;const i=e.constructor.fromJSON(r.G.flipVertical(e,n));return i.spatialReference=t,i}function k(e,n,t,a){return r.G.generalize(i.hydratedAdapter,u(e),e,n,t,a)}function C(e,n,t){return r.G.densify(i.hydratedAdapter,u(e),e,n,t)}function H(e,n,t,a=0){return r.G.geodesicDensify(i.hydratedAdapter,u(e),e,n,t,a)}function J(e,n){return r.G.planarArea(i.hydratedAdapter,u(e),e,n)}function N(e,n){return r.G.planarLength(i.hydratedAdapter,u(e),e,n)}function O(e,n,t){return r.G.geodesicArea(i.hydratedAdapter,u(e),e,n,t)}function I(e,n,t){return r.G.geodesicLength(i.hydratedAdapter,u(e),e,n,t)}function X(e,n){return r.G.intersectLinesToPoints(i.hydratedAdapter,u(e),e,n)}function Y(e,n){r.G.changeDefaultSpatialReferenceTolerance(e,n)}function j(e){r.G.clearDefaultSpatialReferenceTolerance(e)}class q extends Error{constructor(){super("Illegal Argument Exception")}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7710.6e291eb192d0c7bbcea0.js b/docs/sentinel1-explorer/7710.6e291eb192d0c7bbcea0.js new file mode 100644 index 00000000..d1f19a29 --- /dev/null +++ b/docs/sentinel1-explorer/7710.6e291eb192d0c7bbcea0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7710],{57989:function(e,t,n){function l(e){return e=e||globalThis.location.hostname,m.some((t=>null!=e?.match(t)))}function a(e,t){return e&&(t=t||globalThis.location.hostname)?null!=t.match(r)||null!=t.match(s)?e.replace("static.arcgis.com","staticdev.arcgis.com"):null!=t.match(o)||null!=t.match(i)?e.replace("static.arcgis.com","staticqa.arcgis.com"):e:e}n.d(t,{XO:function(){return l},pJ:function(){return a}});const r=/^devext.arcgis.com$/,o=/^qaext.arcgis.com$/,s=/^[\w-]*\.mapsdevext.arcgis.com$/,i=/^[\w-]*\.mapsqa.arcgis.com$/,m=[/^([\w-]*\.)?[\w-]*\.zrh-dev-local.esri.com$/,r,o,/^jsapps.esri.com$/,s,i]},77710:function(e,t,n){n.d(t,{resolveWebStyleSymbol:function(){return y}});var l=n(4905),a=n(57989),r=n(70375),o=n(3466),s=n(93968),i=n(16641),m=n(47308),c=n(85068),u=n(11644),p=n(3032);function y(e,t,n,y){const f=e.name;return null==f?Promise.reject(new r.Z("symbolstyleutils:style-symbol-reference-name-missing","Missing name in style symbol reference")):e.styleName&&"Esri2DPointSymbolsStyle"===e.styleName?function(e,t,n){const l=u.wm.replaceAll(/\{SymbolName\}/gi,e),a=null!=t.portal?t.portal:s.Z.getDefault();return(0,u.EJ)(l,n).then((e=>{const t=(0,u.KV)(e.data);return(0,m.im)(t,{portal:a,url:(0,o.mN)((0,o.Yd)(l)),origin:"portal-item"})}))}(f,t,y):(0,u.n2)(e,t,y).then((e=>function(e,t,n,y,f,g){const b=null!=n?.portal?n.portal:s.Z.getDefault(),h={portal:b,url:(0,o.mN)(e.baseUrl),origin:"portal-item"},d=function(e,t){return t.items.find((t=>t.name===e))}(t,e.data);if(!d){const e=`The symbol name '${t}' could not be found`;return Promise.reject(new r.Z("symbolstyleutils:symbol-name-not-found",e,{symbolName:t}))}let w=(0,i.f)(f(d,y),h),N=d.thumbnail?.href??null;const $=d.thumbnail?.imageData;(0,a.XO)()&&(w=(0,a.pJ)(w)??"",N=(0,a.pJ)(N));const v={portal:b,url:(0,o.mN)((0,o.Yd)(w)),origin:"portal-item"};return(0,u.EJ)(w,g).then((a=>{const r="cimRef"===y?(0,u.KV)(a.data):a.data,o=(0,m.im)(r,v);if(o&&(0,l.dU)(o)){if(N){const e=(0,i.f)(N,h);o.thumbnail=new p.p({url:e})}else $&&(o.thumbnail=new p.p({url:`data:image/png;base64,${$}`}));e.styleUrl?o.styleOrigin=new c.Z({portal:n.portal,styleUrl:e.styleUrl,name:t}):e.styleName&&(o.styleOrigin=new c.Z({portal:n.portal,styleName:e.styleName,name:t}))}return o}))}(e,f,t,n,u.v9,y)))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7714.1cb4669a88b829b7f71e.js b/docs/sentinel1-explorer/7714.1cb4669a88b829b7f71e.js new file mode 100644 index 00000000..e9ed0b4f --- /dev/null +++ b/docs/sentinel1-explorer/7714.1cb4669a88b829b7f71e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7714],{57714:function(t,e,n){n.r(e),n.d(e,{executeAttachmentQuery:function(){return h},fetchAttachments:function(){return f},processAttachmentQueryResult:function(){return p}});var o=n(88256),a=n(66341),s=n(3466),r=n(27707),c=n(42544);function u(t){const e=t.toJSON();return e.attachmentTypes&&(e.attachmentTypes=e.attachmentTypes.join(",")),e.keywords&&(e.keywords=e.keywords.join(",")),e.globalIds&&(e.globalIds=e.globalIds.join(",")),e.objectIds&&(e.objectIds=e.objectIds.join(",")),e.size&&(e.size=e.size.join(",")),e}function p(t,e){const n={};for(const a of e){const{parentObjectId:e,parentGlobalId:r,attachmentInfos:u}=a;for(const a of u){const{id:u}=a,p=(0,s.qg)((0,o.Dp)(`${t.path}/${e}/attachments/${u}`)),h=c.Z.fromJSON(a);h.set({url:p,parentObjectId:e,parentGlobalId:r}),n[e]?n[e].push(h):n[e]=[h]}}return n}function h(t,e,n){let o={query:(0,r.A)({...t.query,f:"json",...u(e)})};return n&&(o={...n,...o,query:{...n.query,...o.query}}),(0,a.Z)(t.path+"/queryAttachments",o).then((t=>t.data.attachmentGroups))}async function f(t,e,n){const{objectIds:o}=e,s=[];for(const e of o)s.push((0,a.Z)(t.path+"/"+e+"/attachments",n));return Promise.all(s).then((t=>o.map(((e,n)=>({parentObjectId:e,attachmentInfos:t[n].data.attachmentInfos})))))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7877.7600c2217e458a2811b4.js b/docs/sentinel1-explorer/7877.7600c2217e458a2811b4.js new file mode 100644 index 00000000..71b2c438 --- /dev/null +++ b/docs/sentinel1-explorer/7877.7600c2217e458a2811b4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7877,7710],{57989:function(e,t,i){function n(e){return e=e||globalThis.location.hostname,d.some((t=>null!=e?.match(t)))}function s(e,t){return e&&(t=t||globalThis.location.hostname)?null!=t.match(o)||null!=t.match(a)?e.replace("static.arcgis.com","staticdev.arcgis.com"):null!=t.match(r)||null!=t.match(l)?e.replace("static.arcgis.com","staticqa.arcgis.com"):e:e}i.d(t,{XO:function(){return n},pJ:function(){return s}});const o=/^devext.arcgis.com$/,r=/^qaext.arcgis.com$/,a=/^[\w-]*\.mapsdevext.arcgis.com$/,l=/^[\w-]*\.mapsqa.arcgis.com$/,d=[/^([\w-]*\.)?[\w-]*\.zrh-dev-local.esri.com$/,o,r,/^jsapps.esri.com$/,a,l]},21758:function(e,t,i){i.d(t,{D2:function(){return l},NM:function(){return c},WU:function(){return h},f1:function(){return d}});i(87090);var n=i(25741);const s=/^-?(\d+)(\.(\d+))?$/i;function o(e,t){return e-t}function r(e,t){let i,n;return i=Number(e.toFixed(t)),i0;s||(t=Math.abs(t));const o=l(e);return s?(o.integer+=t,t>o.fractional?o.fractional=0:o.fractional-=t):(o.fractional+=t,t>o.integer?o.integer=1:o.integer-=t),o}}return{integer:0,fractional:0}}function d(e,t,i,n){const s={previous:null,next:null};if(null!=i){const n=e-i,o=t-i-n;s.previous=Math.floor(Math.abs(100*o/n))}if(null!=n){const i=n-e,o=n-t-i;s.next=Math.floor(Math.abs(100*o/i))}return s}function c(e,t={}){const i=e.slice(0),{tolerance:n=2,strictBounds:s=!1,indexes:d=i.map(((e,t)=>t))}=t;d.sort(o);for(let e=0;e{if("icon"!==r.type&&"object"!==r.type)return;const l="icon"===r.type?r.size&&(0,a.F2)(r.size):0,C=i||l?Math.ceil(Math.min(i||l,s||g)):f;if(r?.resource?.href){const t=async function(e,t){if(e.thumbnail?.url)return e.thumbnail.url;if("icon"===t.type){const e=t?.resource?.href;if(e)return(0,p.nf)(t)}const i=(0,n.V)("esri/images/Legend/legend3dsymboldefault.png");if(e.styleOrigin&&(e.styleOrigin.styleName||e.styleOrigin.styleUrl)){const t=await(0,m.resolveWebStyleSymbol)(e.styleOrigin,{portal:e.styleOrigin.portal},"webRef").catch((()=>null));if(t&&"thumbnail"in t&&t.thumbnail?.url)return t.thumbnail.url}return i}(e,r).then((e=>{const t=r?.material?.color,i=function(e){return"icon"===e.type?"multiply":"tint"}(r);return(0,h.rG)(e,C,t,i,o)})).then((e=>{const t=e.width,i=e.height;return b=Math.max(b,t),w=Math.max(w,i),[{shape:{type:"image",x:0,y:0,width:t,height:i,src:e.url},fill:null,stroke:null}]}));y.push(t)}else{let e=C;"icon"===r.type&&F&&i&&(e=C*(l/F));const n="tall"===t?.symbolConfig||t?.symbolConfig?.isTall||"object"===r.type&&function(e){const t=e.depth,i=e.height,n=e.width;return 0!==n&&0!==t&&0!==i&&n===t&&null!=n&&null!=i&&n{"fulfilled"===e.status?x.push(e.value):e.reason&&r.Z.getLogger("esri.symbols.support.previewSymbol3D").warn("error while building swatchInfo!",e.reason)})),(0,h.wh)(x,[b,w],{node:t?.node,scale:!1,opacity:t?.opacity,ariaLabel:t?.ariaLabel})}function P(e,t){if(0===e.symbolLayers.length)return Promise.reject(new o.Z("symbolPreview: renderPreviewHTML3D","No symbolLayers in the symbol."));switch(e.type){case"point-3d":return k(e,t);case"line-3d":return function(e,t){const i=e.symbolLayers,n=[],s=(0,p.YW)(e),o=E(t),r=(t?.maxSize?(0,a.F2)(t.maxSize):null)||y;let l,d=0,c=0;return i.forEach(((e,t)=>{if(!e)return;if("line"!==e.type&&"path"!==e.type)return;const i=[];switch(e.type){case"line":{const n=x(e,0);if(null==n)break;const s=n?.width||0;0===t&&(l=s);const a=Math.min(o||s,r),u=0===t?a:o?a*(s/l):a,h=u>b/2?2*u:b;c=Math.max(c,u),d=Math.max(d,h),n.width=u,i.push({shape:{type:"path",path:[{command:"M",values:[0,.5*c]},{command:"L",values:[d,.5*c]}]},stroke:n});break}case"path":{const t=Math.min(o||f,r),n=M(e,0),s=M(e,-.2),a=A(e,-.4),l=a?{color:a,width:1}:{};if("quad"===e.profile){const t=e.width,o=e.height,r=(0,u.eb)(t&&o?t/o:1,0===o,0===t),a={...l,join:"bevel"};i.push({shape:r[0],fill:s,stroke:a},{shape:r[1],fill:s,stroke:a},{shape:r[2],fill:n,stroke:a})}else i.push({shape:u.JZ.pathSymbol3DLayer[0],fill:s,stroke:l},{shape:u.JZ.pathSymbol3DLayer[1],fill:n,stroke:l});c=Math.max(c,t),d=c}}n.push(i)})),Promise.resolve((0,h.wh)(n,[d,c],{node:t?.node,scale:s,opacity:t?.opacity,ariaLabel:t?.ariaLabel}))}(e,t);case"polygon-3d":case"mesh-3d":return async function(e,t){const i="mesh-3d"===e.type,n=e.symbolLayers,s=E(t),o=t?.maxSize?(0,a.F2)(t.maxSize):null,r=s||f,l=[];let d=0,c=0,p=!1;for(let e=0;e1&&(r*=1.25);let a=s,l=s;return t&&i&&(o=r=a=l=0),[{type:"path",path:[{command:"M",values:[a,0]},{command:"L",values:[i?a:.875*a,0]},{command:"L",values:[i?o-.5*a:0,r-.5*l]},{command:"L",values:[o-.5*a,r-.5*l]},{command:"Z",values:[]}]},{type:"path",path:[{command:"M",values:[a,0]},{command:"L",values:[a,t?0:.125*l]},{command:"L",values:[o-.5*a,t?r-.5*l:l]},{command:"L",values:[o-.5*a,r-.5*l]},{command:"Z",values:[]}]},{type:"path",path:[{command:"M",values:[o-.5*a,r-.5*l]},{command:"L",values:[i?o-.5*a:0,r-.5*l]},{command:"L",values:[i?o-.5*a:0,t?r-.5*l:l]},{command:"L",values:[o-.5*a,t?r-.5*l:l]},{command:"Z",values:[]}]}]}function l(e){const t=n.size,i=.5*e;return[{type:"path",path:[{command:"M",values:[0,.7*t*.5]},{command:"L",values:[.3*t,.7*t]},{command:"L",values:[.3*t,.7*t+i]},{command:"L",values:[0,.7*t+i-.7*t*.5]},{command:"Z",values:[]}]},{type:"path",path:[{command:"M",values:[.3*t,.7*t]},{command:"L",values:[.3*t,.7*t+i]},{command:"L",values:[t,i]},{command:"L",values:[t,0]},{command:"Z",values:[]}]},{type:"path",path:[{command:"M",values:[.3*t,0]},{command:"L",values:[t,0]},{command:"L",values:[.3*t,.7*t]},{command:"L",values:[0,.7*t*.5]},{command:"Z",values:[]}]}]}function d(){return[{type:"path",path:"M80,80.2v-27c-1.5,0.7-2.8,1.6-3.9,2.8c-1.8,2.1-4.4,3.3-7.1,3.5c-2.7-0.1-5.3-1.4-7.1-3.4c-2.2-2.3-4.7-3.6-7.4-3.6s-5.1,1.3-7.3,3.6c-1.8,2.1-4.4,3.3-7.2,3.4c-2.7-0.1-5.3-1.4-7.1-3.4c-2.2-2.3-4.7-3.6-7.4-3.6s-5.1,1.3-7.4,3.6c-1.8,2.1-4.4,3.3-7.2,3.4C8.3,59.3,5.7,58,3.9,56c-1.1-1.2-2.4-2.1-3.9-2.8v27"},{type:"path",path:"M11,59.4c2.7-0.1,5.3-1.4,7.1-3.4c2.2-2.3,4.7-3.6,7.4-3.6s5.1,1.3,7.4,3.6c1.8,2,4.4,3.3,7.2,3.4c2.7-0.1,5.3-1.4,7.1-3.4c2.2-2.3,4.7-3.6,7.3-3.6s5.1,1.3,7.4,3.6c1.8,2.1,4.4,3.3,7.2,3.4c2.7-0.1,5.3-1.4,7.1-3.4c1.1-1.2,2.4-2.1,3.9-2.8v-24c-1.5,0.7-2.8,1.6-3.9,2.8c-1.8,2.1-4.4,3.3-7.1,3.5c-2.7-0.1-5.3-1.4-7.1-3.4c-2.2-2.3-4.7-3.6-7.4-3.6s-5.1,1.3-7.3,3.6c-1.8,2.1-4.4,3.3-7.2,3.4c-2.7-0.1-5.3-1.4-7.1-3.4c-2.2-2.3-4.7-3.6-7.4-3.6s-5.1,1.3-7.4,3.6c-1.8,2.1-4.4,3.3-7.2,3.4c-2.7-0.1-5.3-1.4-7.1-3.4c-1.1-1.2-2.4-2.1-3.9-2.8v24c1.5,0.7,2.8,1.6,3.9,2.8C5.7,58,8.3,59.3,11,59.4z"},{type:"path",path:"M11,35.4c2.7-0.1,5.3-1.4,7.1-3.4c2.2-2.3,4.7-3.6,7.4-3.6s5.1,1.3,7.4,3.6c1.8,2,4.4,3.3,7.2,3.4c2.7-0.1,5.3-1.4,7.1-3.4c2.2-2.3,4.7-3.6,7.3-3.6s5.1,1.3,7.4,3.6c1.8,2.1,4.4,3.3,7.2,3.4c2.7-0.1,5.3-1.4,7.1-3.4c1.1-1.2,2.4-2.1,3.9-2.8V3.6c-1.5,0.7-2.8,1.6-3.9,2.8c-2.2,2.1-4.6,3.4-7.1,3.4s-5-1.3-7.1-3.4s-4.7-3.6-7.4-3.6s-5.1,1.3-7.3,3.6S42.5,9.9,40,9.9s-5-1.3-7.1-3.4s-4.7-3.6-7.4-3.6s-5.1,1.3-7.3,3.6c-1.8,2.1-4.4,3.3-7.2,3.4c-2.5,0-5-1.3-7.1-3.4C2.8,5.3,1.4,4.3,0,3.6v25.6c1.5,0.7,2.8,1.6,3.9,2.8C5.7,34.1,8.3,35.3,11,35.4z"}]}function c(e,t){let i=t?n.tallSymbolWidth:e;const s=e,o=t?4:6;i<=n.size?i-=.5*o:i-=o;const r=t?.35*i:.5*i;return[{type:"path",path:[{command:"M",values:[.5*i,0]},{command:"L",values:[i,.5*r]},{command:"L",values:[.5*i,r]},{command:"L",values:[0,.5*r]},{command:"Z",values:[]}]},{type:"path",path:[{command:"M",values:[0,.5*r]},{command:"L",values:[.5*i,r]},{command:"L",values:[.5*i,s]},{command:"L",values:[0,s-.5*r]},{command:"Z",values:[]}]},{type:"path",path:[{command:"M",values:[.5*i,r]},{command:"L",values:[.5*i,s]},{command:"L",values:[i,s-.5*r]},{command:"L",values:[i,.5*r]},{command:"Z",values:[]}]}]}function u(e,t){let i=t?n.tallSymbolWidth:e;const s=e,o=t?4:6;i<=n.size?i-=.5*o:i-=o;const r=.5*i,a=.15*i,l=s-a;return[{type:"ellipse",cx:.5*i,cy:l,rx:r,ry:a},{type:"path",path:[{command:"M",values:[0,a]},{command:"L",values:[0,l]},{command:"L",values:[i,l]},{command:"L",values:[i,a]},{command:"Z",values:[]}]},{type:"ellipse",cx:.5*i,cy:a,rx:r,ry:a}]}function h(e,t){let i=t?n.tallSymbolWidth:e;const s=e,o=t?4:6;i<=n.size?i-=.5*o:i-=o;const r=.15*i,a=s-r;return[{type:"ellipse",cx:.5*i,cy:a,rx:.5*i,ry:r},{type:"path",path:[{command:"M",values:[.5*i,0]},{command:"L",values:[i,a]},{command:"L",values:[0,a]},{command:"Z",values:[]}]}]}function p(e){let t=e;const i=e;t!!e.length)))return null;const o=i?.node||document.createElement("div");return null!=i.opacity&&(o.style.opacity=i.opacity.toString()),null!=i.effectView&&(o.style.filter=(0,c.wJ)(i.effectView)),h(o,(()=>(0,d.KB)(e,n,s,i))),o}function m(e,t,i,n,s){switch(s){case"multiply":e[t]*=i[0],e[t+1]*=i[1],e[t+2]*=i[2],e[t+3]*=i[3];break;default:{const s=(0,o._Y)({r:e[t],g:e[t+1],b:e[t+2]});s.h=n.h,s.s=n.s,s.v=s.v/100*n.v;const r=(0,o.xr)(s);e[t]=r.r,e[t+1]=r.g,e[t+2]=r.b,e[t+3]*=i[3];break}}}function f(e,t,i,l,d){return function(e,t,i){return e?(0,s.Z)(e,{responseType:"image"}).then((e=>{const n=e.data,s=n.width,o=n.height,r=s/o;let a=t;if(i){const e=Math.max(s,o);a=Math.min(a,e)}return{image:n,width:r<=1?Math.ceil(a*r):a,height:r<=1?a:Math.ceil(a/r)}})):Promise.reject(new r.Z("renderUtils: imageDataSize","href not provided."))}(e,t,d).then((s=>{const r=s.width??t,d=s.height??t;if(s.image&&function(e,t){return!(!e||"ignore"===t||"multiply"===t&&255===e.r&&255===e.g&&255===e.b&&1===e.a)}(i,l)){let t=s.image.width,n=s.image.height;(0,a.Z)("edge")&&/\.svg$/i.test(e)&&(t-=1,n-=1);const c=function(e,t){e=Math.ceil(e),t=Math.ceil(t);const i=document.createElement("canvas");i.width=e,i.height=t,i.style.width=e+"px",i.style.height=t+"px";const n=i.getContext("2d");return n.clearRect(0,0,e,t),n}(r,d);c.drawImage(s.image,0,0,t,n,0,0,r,d);const u=c.getImageData(0,0,r,d),h=[i.r/255,i.g/255,i.b/255,i.a],p=(0,o._Y)(i);for(let e=0;e({url:e,width:t,height:t})))}},13266:function(e,t,i){i.d(t,{A5:function(){return $},KB:function(){return N},al:function(){return S},ch:function(){return x},iL:function(){return Z},jA:function(){return F},kQ:function(){return I},vq:function(){return M}});var n=i(30936),s=i(39994),o=i(61681),r=i(43056),a=i(76231),l=i(89298),d=(i(54956),i(26451));const c="http://www.w3.org/2000/svg";let u=0,h=0;const p=(0,s.Z)("android"),m=(0,s.Z)("chrome")||p&&p>=4?"auto":"optimizeLegibility",f={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},g=/([A-DF-Za-df-z])|([-+]?\d*[.]?\d+(?:[eE][-+]?\d+)?)/g;let y={},b={};const _=Math.PI;let v=1;function w(e,t){const i=e*(_/180);return Math.abs(t*Math.sin(i))+Math.abs(t*Math.cos(i))}function C(e){return e.map((e=>`${e.command} ${e.values.join(" ")}`)).join(" ").trim()}function M(e,t,i,n,s){if(e){if("circle"===e.type)return(0,d.u)("circle",{cx:e.cx,cy:e.cy,fill:t,"fill-rule":"evenodd",r:e.r,stroke:i.color,"stroke-dasharray":i.dashArray,"stroke-dashoffset":i.dashOffset,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-miterlimit":"4","stroke-width":i.width});if("ellipse"===e.type)return(0,d.u)("ellipse",{cx:e.cx,cy:e.cy,fill:t,"fill-rule":"evenodd",rx:e.rx,ry:e.ry,stroke:i.color,"stroke-dasharray":i.dashArray,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-miterlimit":"4","stroke-width":i.width});if("rect"===e.type)return(0,d.u)("rect",{fill:t,"fill-rule":"evenodd",height:e.height,stroke:i.color,"stroke-dasharray":i.dashArray,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-miterlimit":"4","stroke-width":i.width,width:e.width,x:e.x,y:e.y});if("image"===e.type)return(0,d.u)("image",{alt:s||"image",height:e.height,href:e.src,preserveAspectRatio:"none",width:e.width,x:e.x,y:e.y});if("path"===e.type){const n="string"!=typeof e.path?C(e.path):e.path;return(0,d.u)("path",{d:n,fill:t,"fill-rule":"evenodd",stroke:i.color,"stroke-dasharray":i.dashArray,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-miterlimit":"4","stroke-width":i.width})}if("text"===e.type)return(0,o.O3)(n),(0,d.u)("text",{"dominant-baseline":n.dominantBaseline,fill:t,"fill-rule":"evenodd","font-family":n.font.family,"font-size":n.font.size,"font-style":n.font.style,"font-variant":n.font.variant,"font-weight":n.font.weight,kerning:n.kerning,rotate:n.rotate,stroke:i.color,"stroke-dasharray":i.dashArray,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-miterlimit":"4","stroke-width":i.width,"text-anchor":n.align,"text-decoration":n.decoration,"text-rendering":m,x:e.x,y:e.y},e.text)}return null}function F(e){const t={fill:"none",pattern:null,linearGradient:null};if(e)if("type"in e&&"pattern"===e.type){const i="patternId-"+ ++u;t.fill=`url(#${i})`,t.pattern={id:i,x:e.x,y:e.y,width:e.width,height:e.height,image:{x:0,y:0,width:e.width,height:e.height,href:e.src}}}else if("type"in e&&"linear"===e.type){const i="linearGradientId-"+ ++h;t.fill=`url(#${i})`,t.linearGradient={id:i,x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,stops:e.colors.map((e=>({offset:e.offset,color:e.color&&new n.Z(e.color).toString()})))}}else if(e){const i=new n.Z(e);t.fill=i.toString()}return t}function I(e){const t={color:"none",width:1,cap:"butt",join:"4",dashArray:"none",dashOffset:"0"};return e&&(null!=e.width&&(t.width=e.width),e.cap&&(t.cap=e.cap),e.join&&(t.join=e.join.toString()),e.color&&(t.color=new n.Z(e.color).toString()),e.dashArray&&(t.dashArray=e.dashArray),e.dashoffset&&(t.dashOffset=e.dashoffset),e.style&&!e.dashArray&&(t.dashArray=(0,l.iI)(e).join(",")||"none")),t}function A(e,t){const i={align:null,decoration:null,kerning:null,rotate:null,font:{style:null,variant:null,weight:null,size:null,family:null}};if(e){const n=e.alignBaseline,s="baseline"===n?"auto":"top"===n?"text-top":"bottom"===n?"hanging":n;i.align=e.align,i.dominantBaseline=s,i.decoration=e.decoration,i.kerning=e.kerning?"auto":"0",i.rotate=e.rotated?"90":"0",(0,o.O3)(t),i.font.style=t.style||"normal",i.font.variant=t.variant||"normal",i.font.weight=t.weight||"normal",i.font.size=t.size&&t.size.toString()||"10pt",i.font.family=t.family||"serif"}return i}function x(e){const{pattern:t,linearGradient:i}=e;if(t)return(0,d.u)("pattern",{height:t.height,id:t.id,patternUnits:"userSpaceOnUse",width:t.width,x:t.x,y:t.y},(0,d.u)("image",{height:t.image.height,href:t.image.href,width:t.image.width,x:t.image.x,y:t.image.y}));if(i){const e=i.stops.map(((e,t)=>(0,d.u)("stop",{key:`${t}-stop`,offset:e.offset,"stop-color":e.color})));return(0,d.u)("linearGradient",{gradientUnits:"userSpaceOnUse",id:i.id,x1:i.x1,x2:i.x2,y1:i.y1,y2:i.y2},e)}return null}function L(e,t){if(!e||0===e.length)return null;const i=[];for(const t of e){const{shape:e,fill:n,stroke:s,font:o}=t,r=F(n),a=I(s),l="text"===e.type?A(e,o):null,d=M(e,r.fill,a,l);d&&i.push(d)}return(0,d.u)("mask",{id:t,maskUnits:"userSpaceOnUse"},(0,d.u)("g",null,i))}function E(e,t,i){return(0,a.Iu)(e,(0,a.yR)(e),[t,i])}function k(e,t,i,n,s){return(0,a.bA)(e,(0,a.yR)(e),[t,i]),e[4]=e[4]*t-n*t+n,e[5]=e[5]*i-s*i+s,e}function P(e,t){y&&"left"in y?(null!=y.left&&y.left>e&&(y.left=e),(null==y.right||y.rightt)&&(y.top=t),(null==y.bottom||y.bottom=n&&(s={action:e,args:t.slice(0,t.length-t.length%n)},i.push(s),T(s)):(s={action:e,args:[]},i.push(s),T(s)))}function $(e){const t={x:0,y:0,width:0,height:0};if("circle"===e.type)t.x=e.cx-e.r,t.y=e.cy-e.r,t.width=2*e.r,t.height=2*e.r;else if("ellipse"===e.type)t.x=e.cx-e.rx,t.y=e.cy-e.ry,t.width=2*e.rx,t.height=2*e.ry;else if("image"===e.type||"rect"===e.type)t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height;else if("path"===e.type){const i=function(e){const t=("string"!=typeof e.path?C(e.path):e.path).match(g),i=[];if(y={},b={},!t)return null;let n="",s=[];const o=t.length;for(let e=0;ei?t:i;let s=1,o=1;isNaN(n)||(e>1?(s=n/p,o=n/e/m):(o=n/m,s=n*e/p)),(0,a.Jp)(g,g,k(f,s,o,u,h)),y=!0}const b=e.x+(p-n)/2,_=e.y+(m-n)/2;if((0,a.Jp)(g,g,E(f,u-b,h-_)),!y&&(p>t||m>i)){const e=p/t>m/i,n=(e?t:i)/(e?p:m);(0,a.Jp)(g,g,k(f,n,n,b,_))}return o&&(0,a.Jp)(g,g,function(e,t,i,n){const s=t%360*Math.PI/180;(0,a.U1)(e,(0,a.yR)(e),s);const o=Math.cos(s),r=Math.sin(s),l=e[4],d=e[5];return e[4]=l*o-d*r+n*r-i*o+i,e[5]=d*o+l*r-i*r-n*o+n,e}(f,o,b,_)),d&&(0,a.Jp)(g,g,E(f,d[0],d[1])),`matrix(${g[0]},${g[1]},${g[2]},${g[3]},${g[4]},${g[5]})`}function N(e,t,i,n={}){const s=[],r=[],a=++v,l=function(e,t,i){const n=e?.effects.find((e=>"bloom"===e.type));if(!n)return null;const{strength:s,radius:o}=n,r=s>0?o:0,a=(s+r)*t,l=4*s+1;return(0,d.u)("filter",{filterUnits:"userSpaceOnUse",height:"300%",id:`bloom${i}`,width:"300%",x:"-100%",y:"-100%"},(0,d.u)("feMorphology",{in:"SourceGraphic",operator:"dilate",radius:(s+.5*r)*(5**(t/100)*(.4+t/100)),result:"dilate"}),(0,d.u)("feGaussianBlur",{in:"dilate",result:"blur",stdDeviation:a/25}),(0,d.u)("feGaussianBlur",{in:"blur",result:"intensityBlur",stdDeviation:a/50}),(0,d.u)("feComponentTransfer",{in:"SourceGraphic",result:"intensityBrightness"},(0,d.u)("feFuncR",{slope:l,type:"linear"}),(0,d.u)("feFuncG",{slope:l,type:"linear"}),(0,d.u)("feFuncB",{slope:l,type:"linear"})),(0,d.u)("feMerge",null,(0,d.u)("feMergeNode",{in:"intensityBlur"}),(0,d.u)("feMergeNode",{in:"intensityBrightness"}),(0,d.u)("feGaussianBlur",{stdDeviation:s/10})))}(n.effectView,t,a);let u=null;if(l){const e=n.effectView?.effects.find((e=>"bloom"===e.type)),s=(e.strength?e.strength+e.radius/2:0)/3,o=t+t*s,r=i+i*s;u=[Math.max(o,10),Math.max(r,10)]}for(let o=0;o{const t=(0,u.KV)(e.data);return(0,d.im)(t,{portal:s,url:(0,r.mN)((0,r.Yd)(n)),origin:"portal-item"})}))}(m,t,p):(0,u.n2)(e,t,p).then((e=>function(e,t,i,p,m,f){const g=null!=i?.portal?i.portal:a.Z.getDefault(),y={portal:g,url:(0,r.mN)(e.baseUrl),origin:"portal-item"},b=function(e,t){return t.items.find((t=>t.name===e))}(t,e.data);if(!b){const e=`The symbol name '${t}' could not be found`;return Promise.reject(new o.Z("symbolstyleutils:symbol-name-not-found",e,{symbolName:t}))}let _=(0,l.f)(m(b,p),y),v=b.thumbnail?.href??null;const w=b.thumbnail?.imageData;(0,s.XO)()&&(_=(0,s.pJ)(_)??"",v=(0,s.pJ)(v));const C={portal:g,url:(0,r.mN)((0,r.Yd)(_)),origin:"portal-item"};return(0,u.EJ)(_,f).then((s=>{const o="cimRef"===p?(0,u.KV)(s.data):s.data,r=(0,d.im)(o,C);if(r&&(0,n.dU)(r)){if(v){const e=(0,l.f)(v,y);r.thumbnail=new h.p({url:e})}else w&&(r.thumbnail=new h.p({url:`data:image/png;base64,${w}`}));e.styleUrl?r.styleOrigin=new c.Z({portal:i.portal,styleUrl:e.styleUrl,name:t}):e.styleName&&(r.styleOrigin=new c.Z({portal:i.portal,styleName:e.styleName,name:t}))}return r}))}(e,m,t,i,u.v9,p)))}},31129:function(e,t,i){i.d(t,{getRampStops:function(){return a}});var n=i(30936),s=i(17075);const o=new n.Z([64,64,64]);function r(e,t){const i=[],n=e.length-1;return 5===e.length?i.push(0,2,4):i.push(0,n),e.map(((e,o)=>i.includes(o)?(0,s.MN)(e,o,n,t):null))}async function a(e,t,n){let s=!1,o=[],a=[];if(e.stops){const t=e.stops;o=t.map((e=>e.value)),s=t.some((e=>!!e.label)),s&&(a=t.map((e=>e.label)))}const d=o[0],c=o[o.length-1];if(null==d&&null==c)return null;const u=s?null:r(o,n);return(await Promise.all(o.map((async(n,o)=>({value:n,color:"opacity"===e.type?await l(n,e,t):(await Promise.resolve().then(i.bind(i,36496))).getColor(e,n),label:s?a[o]:u?.[o]??""}))))).reverse()}async function l(e,t,s){const r=new n.Z(s??o),a=(await Promise.resolve().then(i.bind(i,36496))).getOpacity(t,e);return null!=a&&(r.a=a),r}},17075:function(e,t,i){i.d(t,{MN:function(){return c},getDateFormatOptions:function(){return h},y$:function(){return u}});i(4905);var n=i(807),s=i(14845),o=i(21758),r=i(44415),a=i(15498);const l="<",d=">";function c(e,t,i,n){let s="";return 0===t?s=`${l} `:t===i&&(s=`${d} `),s+(n?(0,r.$8)(e,n):(0,o.WU)(e))}async function u(e,t){const n=e.trailCap,s=e.trailWidth||1,o=t||await async function(e){if(!("visualVariables"in e)||!e.visualVariables)return null;const t=e.visualVariables.find((e=>"color"===e.type));if(!t)return null;let n=null,s=null;if(t.stops){if(1===t.stops.length)return t.stops[0].color;n=t.stops[0].value,s=t.stops[t.stops.length-1].value}const o=null!=n&&null!=s?n+(s-n)/2:0,{getColor:r}=await Promise.resolve().then(i.bind(i,36496));return r(t,o)??null}(e)||e.color;return new a.Z({cap:n,color:o,width:s})}function h(e,t,i){const o=function(e,t){if(!t.field)return null;if("featureReduction"in e)switch(e.featureReduction?.type){case"cluster":case"binning":{const i=e.featureReduction.fields.find((({name:e})=>e.toLowerCase()===t.field.toLowerCase()));return i&&"getField"in e?e.getField(i.onStatisticField):null}}return"getField"in e?e.getField?.(t.field):null}(e,t);if(!o||!(0,r.a8)(o)&&!(0,s.sX)(o))return null;let a=function(e,t){const i="popupTemplate"in e?e.popupTemplate?.fieldInfos:null;if(i?.length&&t)return i.find((e=>e.fieldName?.toLowerCase()===t.toLowerCase()))?.format?.dateFormat}(e,o.name);if(!a&&"date"===o.type){let e=0,i=0;t.stops?(e=t.stops?.at(0)?.value??e,i=t.stops?.at(-1)?.value??i):"minDataValue"in t&&"maxDataValue"in t&&(e=t.minDataValue??e,i=t.maxDataValue??i),a=i-e>2*n.fM.days?"short-date":"short-date-short-time"}return{fieldType:o.type,format:a,timeZoneOptions:{layerTimeZone:"preferredTimeZone"in e?e.preferredTimeZone:null,viewTimeZone:i,datesInUnknownTimezone:"datesInUnknownTimezone"in e&&e.datesInUnknownTimezone}}}},27877:function(e,t,i){i.r(t),i.d(t,{default:function(){return Vn}});var n=i(36663),s=i(59801),o=i(13802),r=i(76868),a=i(81977),l=(i(39994),i(4157),i(40266)),d=i(97837),c=(i(87090),i(6865));function u(e,t,i,n){let s=null,o=1e3;"number"==typeof t?(o=t,n=i):(s=t??null,o=i);let r,a=0;const l=()=>{a=0,e.apply(n,r)},d=(...e)=>{s&&s.apply(n,e),r=e,o?a||(a=setTimeout(l,o)):l()};return d.remove=()=>{a&&(clearTimeout(a),a=0)},d.forceUpdate=()=>{a&&(clearTimeout(a),l())},d.hasPendingUpdates=()=>!!a,d}var h=i(76777),p=i(61547);function m(e){return e?{backgroundImage:`url(${e})`}:{}}var f=i(69236),g=i(35679),y=i(70375),b=i(25015),_=(i(16068),i(19431)),v=i(17321);function w(e,t,i="arithmetic"){return{type:(0,v.UF)(t),value:e,unit:t,rotationType:i}}(function(e,t){(0,v.UF)(t)})(0,"meters"),function(e,t){(0,v.UF)(t)}(0,"square-meters"),w(0,"radians"),w(0,"degrees"),w(0,"degrees","geographic");var C=i(21130),M=i(25741);new Map;const F=["B","kB","MB","GB","TB"];var I=i(80085),A=i(74396),x=i(42544),L=i(67692),E=i(72057),k=i(14845),P=i(54957),T=i(44415),R=i(30879),$=i(72559);const S=()=>o.Z.getLogger("esri.widgets.Feature.support.featureUtils"),Z=/href=(""|'')/gi,N=/(\{([^\{\r\n]+)\})/g,O=/\'/g,V=/^\s*expression\//i,z=/(\n)/gi,B=/[\u00A0-\u9999<>\&]/gim,D=/href\s*=\s*(?:\"([^\"]+)\"|\'([^\']+)\')/gi,j=/^(?:mailto:|tel:)/,W="relationships/",q=(0,E.Ze)("short-date-short-time");function H(e){if(null!=e)return(e.sourceLayer||e.layer)??void 0}async function Y(e,t){return"function"==typeof e?e(t):e}function U(e=""){if(e)return!j.test(e.trim().toLowerCase())}function G(e){return!!e&&V.test(e)}function Q(e,t){const i=function(e,t){if(!G(t)||!e)return;const i=t.replace(V,"").toLowerCase();return e.find((({name:e})=>e.toLowerCase()===i))}(t,e?.fieldName);return i?i.title||null:e?e.label||e.fieldName:null}function J(e,t){const i=X(t,e);return i?i.name:e}function X(e,t){return e&&"function"==typeof e.getField&&t?e.getField(t)??null:null}function K(e){return`${e}`.trim()}function ee({attributes:e,globalAttributes:t,layer:i,text:n,expressionAttributes:s,fieldInfoMap:o}){return n?te({formattedAttributes:t,template:se(n,{...t,...s,...e},i),fieldInfoMap:o}):""}function te({formattedAttributes:e,template:t,fieldInfoMap:i}){return K(function(e){return e.replaceAll(Z,"")}((0,C.gx)((0,C.gx)(t,(e=>function(e,t){const i=t.get(e.toLowerCase());return`{${i?.fieldName||e}}`}(e,i))),e)))}function ie(e,t=!1){const i={...e};return Object.keys(i).forEach((e=>function(e,t,i=!1){const n=t[e];if("string"==typeof n){const s="%27",o=(i?encodeURIComponent(n):n).replaceAll(O,s);t[e]=o}}(e,i,t))),i}function ne(e,t){return e.replaceAll(N,((e,i,n)=>{const s=X(t,n);return s?`{${s.name}}`:i}))}function se(e,t,i){const n=ne(e,i);return n?n.replaceAll(D,((e,i,n)=>function(e,t,i){const n=(t=K(t))&&"{"!==t[0];return(0,C.gx)(e,ie(i,n||!1))}(e,i||n,t))):n}function oe(e){return function(e){return null!=e&&"object"==typeof e&&"fieldsIndex"in e&&"geometryType"in e&&"getField"in e&&"load"in e&&"loaded"in e&&"objectIdField"in e&&"spatialReference"in e&&"type"in e&&("feature"===e.type||"scene"===e.type)&&"when"in e}(e)&&function(e){return null!=e&&"object"==typeof e&&"createQuery"in e&&"queryFeatureCount"in e&&"queryObjectIds"in e&&"queryRelatedFeatures"in e&&"queryRelatedFeaturesCount"in e&&"relationships"in e}(e)}function re(e,t){const{fieldInfos:i,fieldName:n,preventPlacesFormatting:s,layer:o,timeZone:r}=t,a=le(i,n),l=X(o,n);if(a&&!(0,k.Ec)(n)){const t=l?.type,i=a.format?.dateFormat;if("date"===t||"date-only"===t||"time-only"===t||"timestamp-offset"===t||i)return(0,T.$8)(e,{format:i,fieldType:t,timeZoneOptions:{layerTimeZone:o&&"preferredTimeZone"in o?o.preferredTimeZone:null,viewTimeZone:r,datesInUnknownTimezone:!(!o||!("datesInUnknownTimezone"in o)||!o.datesInUnknownTimezone)}})}const d=a?.format;return"string"==typeof e&&(0,k.Ec)(n)&&d?function(e,t){return e=e.trim(),/\d{2}-\d{2}/.test(e)?e:e.includes(",")?ae(e,",",", ",t):e.includes(";")?ae(e,";","; ",t):e.includes(" ")?ae(e," "," ",t):(0,M.uf)(Number(e),(0,M.sh)(t))}(e,d):"string"==typeof(e=function(e,t){if("string"==typeof e&&t&&null==t.dateFormat&&(null!=t.places||null!=t.digitSeparator)){const t=Number(e);if(!isNaN(t))return t}return e}(e,d))||null==e||null==d?ue(e):(0,M.uf)(e,s?{...(0,M.sh)(d),minimumFractionDigits:0,maximumFractionDigits:20}:(0,M.sh)(d))}function ae(e,t,i,n){return e.trim().split(t).map((e=>(0,M.uf)(Number(e),(0,M.sh)(n)))).join(i)}function le(e,t){if(e?.length&&t)return e.find((e=>e.fieldName?.toLowerCase()===t.toLowerCase()))}function de(e){const t=[];if(!e)return t;const{fieldInfos:i,content:n}=e;return i&&t.push(...i),n&&Array.isArray(n)?(n.forEach((e=>{if("fields"===e.type){const i=e?.fieldInfos;i&&t.push(...i)}})),t):t}function ce(e){return e.replaceAll(B,(e=>`&#${e.charCodeAt(0)};`))}function ue(e){return"string"==typeof e?e.replaceAll(z,'
'):e}function he(e){const{value:t,fieldName:i,fieldInfos:n,fieldInfoMap:s,layer:o,graphic:r,timeZone:a}=e;if(null==t)return"";const l=function({fieldName:e,value:t,graphic:i,layer:n}){if(ge(e))return null;if(!n||"function"!=typeof n.getFieldDomain)return null;const s=i&&n.getFieldDomain(e,{feature:i});return s&&"coded-value"===s.type?s.getName(t):null}({fieldName:i,value:t,graphic:r,layer:o});if(l)return l;const d=function({fieldName:e,graphic:t,layer:i}){if(ge(e))return null;if(!i||"function"!=typeof i.getFeatureType)return null;const{typeIdField:n}=i;if(!n||e!==n)return null;const s=i.getFeatureType(t);return s?s.name:null}({fieldName:i,graphic:r,layer:o});if(d)return d;if(s.get(i.toLowerCase()))return re(t,{fieldInfos:n||Array.from(s.values()),fieldName:i,layer:o,timeZone:a});const c=o?.fieldsIndex?.get(i);return c&&((0,T.a8)(c)||(0,k.sX)(c))?(0,T.$8)(t,{fieldType:c.type,timeZoneOptions:{layerTimeZone:o&&"preferredTimeZone"in o?o.preferredTimeZone:null,viewTimeZone:a,datesInUnknownTimezone:!(!o||!("datesInUnknownTimezone"in o)||!o.datesInUnknownTimezone)}}):ue(t)}function pe({fieldInfos:e,attributes:t,layer:i,graphic:n,fieldInfoMap:s,relatedInfos:o,timeZone:r}){const a={};return o?.forEach((t=>function({attributes:e,relatedInfo:t,fieldInfoMap:i,fieldInfos:n,layer:s,timeZone:o}){e&&t&&(t.relatedFeatures?.forEach((r=>ye({attributes:e,graphic:r,relatedInfo:t,fieldInfoMap:i,fieldInfos:n,layer:s,timeZone:o}))),t.relatedStatsFeatures?.forEach((r=>ye({attributes:e,graphic:r,relatedInfo:t,fieldInfoMap:i,fieldInfos:n,layer:s,timeZone:o}))))}({attributes:a,relatedInfo:t,fieldInfoMap:s,fieldInfos:e,layer:i,timeZone:r}))),t&&Object.keys(t).forEach((o=>{const l=t[o];a[o]=he({fieldName:o,fieldInfos:e,fieldInfoMap:s,layer:i,value:l,graphic:n,timeZone:r})})),a}async function me(e,t){const{layer:i,graphic:n,outFields:s,objectIds:o,returnGeometry:r,spatialReference:a}=e,l=o[0];if("number"!=typeof l&&"string"!=typeof l){const e="Could not query required fields for the specified feature. The feature's ID is invalid.",t={layer:i,graphic:n,objectId:l,requiredFields:s};return S().warn(e,t),null}if(!(0,P.S1)(i)?.operations?.supportsQuery){const e="The specified layer cannot be queried. The following fields will not be available.",t={layer:i,graphic:n,requiredFields:s,returnGeometry:r};return S().warn(e,t),null}const d=i.createQuery();return d.objectIds=o,d.outFields=s?.length?s:[i.objectIdField],d.returnGeometry=!!r,d.returnZ=!!r,d.returnM=!!r,d.outSpatialReference=a,(await i.queryFeatures(d,t)).features[0]}async function fe({graphic:e,popupTemplate:t,layer:i,spatialReference:n},s){if(!i||!t)return;if("function"==typeof i.load&&await i.load(s),!e.attributes)return;const o=e.attributes[i.objectIdField];if(null==o)return;const r=[o],a=await t.getRequiredFields(i.fieldsIndex),l=(0,k.R9)(a,e),d=l?[]:a,c=t.returnGeometry||await async function(e){if(!e.expressionInfos?.length)return!1;const t=await(0,R.LC)(),{arcadeUtils:{hasGeometryFunctions:i}}=t;return i(e)}(t);if(l&&!c)return;const u=await me({layer:i,graphic:e,outFields:d,objectIds:r,returnGeometry:c,spatialReference:n},s);u&&(u.geometry&&(e.geometry=u.geometry),u.attributes&&(e.attributes={...e.attributes,...u.attributes}))}function ge(e=""){return!!e&&e.includes(W)}function ye({attributes:e,graphic:t,relatedInfo:i,fieldInfos:n,fieldInfoMap:s,layer:o,timeZone:r}){e&&t&&i&&Object.keys(t.attributes).forEach((a=>{const l=function(e){return e?`${W}${e.layerId}/${e.fieldName}`:""}({layerId:i.relation.id.toString(),fieldName:a}),d=t.attributes[a];e[l]=he({fieldName:l,fieldInfos:n,fieldInfoMap:s,layer:o,value:d,graphic:t,timeZone:r})}))}const be=e=>{if(!e)return!1;const t=e.toUpperCase();return t.includes("CURRENT_TIMESTAMP")||t.includes("CURRENT_DATE")||t.includes("CURRENT_TIME")},_e=({layer:e,method:t,query:i,definitionExpression:n})=>{if(!e.capabilities?.query?.supportsCacheHint||"attachments"===t)return;const s=null!=i.where?i.where:null,o=null!=i.geometry?i.geometry:null;be(n)||be(s)||"extent"===o?.type||"tile"===i.resultType||(i.cacheHint=!0)};function ve(e,t,{relatedTableId:i}){const n="scene"===t.type&&t.associatedLayer?t.associatedLayer.url:t.url;return e.filter(oe).find((e=>e!==t&&e.url===n&&e.layerId===i))}const we={editing:!1,operations:{add:!0,update:!0,delete:!0}},Ce=c.Z.ofType(x.Z);let Me=class extends A.Z{constructor(e){super(e),this._getAttachmentsPromise=null,this._attachmentLayer=null,this.capabilities={...we},this.activeAttachmentInfo=null,this.activeFileInfo=null,this.attachmentInfos=new Ce,this.fileInfos=new c.Z,this.graphic=null,this.mode="view",this.filesEnabled=!1,this.addHandles((0,r.YP)((()=>this.graphic),(()=>this._graphicChanged()),r.nn))}destroy(){this._attachmentLayer=null,this.graphic=null}castCapabilities(e){return{...we,...e}}get state(){return this._getAttachmentsPromise?"loading":this.graphic?"ready":"disabled"}get supportsResizeAttachments(){const{graphic:e}=this;if(!e)return!1;const t=e.layer||e.sourceLayer;return t?.loaded&&"capabilities"in t&&t.capabilities&&"operations"in t.capabilities&&"supportsResizeAttachments"in t.capabilities.operations&&t.capabilities.operations.supportsResizeAttachments||!1}async getAttachments(){const{_attachmentLayer:e,attachmentInfos:t}=this;if(!e||"function"!=typeof e.queryAttachments)throw new y.Z("invalid-layer","getAttachments(): A valid layer is required.");const i=this._getObjectId(),n=new L.Z({objectIds:[i],returnMetadata:!0}),s=[],o=e.queryAttachments(n).then((e=>e[i]||s)).catch((()=>s));this._getAttachmentsPromise=o,this.notifyChange("state");const r=await o;return t.removeAll(),r.length&&t.addMany(r),this._getAttachmentsPromise=null,this.notifyChange("state"),r}async addAttachment(e,t=this.graphic){const{_attachmentLayer:i,attachmentInfos:n,capabilities:s}=this;if(!t)throw new y.Z("invalid-graphic","addAttachment(): A valid graphic is required.",{graphic:t});if(!e)throw new y.Z("invalid-attachment","addAttachment(): An attachment is required.",{attachment:e});if(!s.operations?.add)throw new y.Z("invalid-capabilities","addAttachment(): add capabilities are required.");if(!i||"function"!=typeof i.addAttachment)throw new y.Z("invalid-layer","addAttachment(): A valid layer is required.");const o=i.addAttachment(t,e).then((e=>this._queryAttachment(e.objectId,t))),r=await o;return n.add(r),r}async deleteAttachment(e){const{_attachmentLayer:t,attachmentInfos:i,graphic:n,capabilities:s}=this;if(!e)throw new y.Z("invalid-attachment-info","deleteAttachment(): An attachmentInfo is required.",{attachmentInfo:e});if(!s.operations?.delete)throw new y.Z("invalid-capabilities","deleteAttachment(): delete capabilities are required.");if(!t||"function"!=typeof t.deleteAttachments)throw new y.Z("invalid-layer","deleteAttachment(): A valid layer is required.");if(!n)throw new y.Z("invalid-graphic","deleteAttachment(): A graphic is required.");const o=t.deleteAttachments(n,[e.id]).then((()=>e)),r=await o;return i.remove(r),r}async updateAttachment(e,t=this.activeAttachmentInfo){const{_attachmentLayer:i,attachmentInfos:n,graphic:s,capabilities:o}=this;if(!e)throw new y.Z("invalid-attachment","updateAttachment(): An attachment is required.",{attachment:e});if(!t)throw new y.Z("invalid-attachment-info","updateAttachment(): An attachmentInfo is required.",{attachmentInfo:t});if(!o.operations?.update)throw new y.Z("invalid-capabilities","updateAttachment(): Update capabilities are required.");const r=n.indexOf(t);if(!i||"function"!=typeof i.updateAttachment)throw new y.Z("invalid-layer","updateAttachment(): A valid layer is required.");if(!s)throw new y.Z("invalid-graphic","updateAttachment(): A graphic is required.");const a=i.updateAttachment(s,t.id,e).then((e=>this._queryAttachment(e.objectId))),l=await a;return n.splice(r,1,l),l}async commitFiles(){return await Promise.all(this.fileInfos.items.map((e=>this.addAttachment(e.form)))),this.fileInfos.removeAll(),this.getAttachments()}addFile(e,t){if(!e||!t)return null;const i={file:e,form:t};return this.fileInfos.add(i),i}updateFile(e,t,i=this.activeFileInfo){if(!e||!t||!i)return null;const n=this.fileInfos.indexOf(i);return n>-1&&this.fileInfos.splice(n,1,{file:e,form:t}),this.fileInfos.items[n]}deleteFile(e){const t=this.fileInfos.find((t=>t.file===e));return t?(this.fileInfos.remove(t),t):null}async _queryAttachment(e,t){const{_attachmentLayer:i}=this;if(!e||!i?.queryAttachments)throw new y.Z("invalid-attachment-id","Could not query attachment.");const n=this._getObjectId(t),s=new L.Z({objectIds:[n],attachmentsWhere:`AttachmentId=${e}`,returnMetadata:!0});return i.queryAttachments(s).then((e=>e[n][0]))}_getObjectId(e=this.graphic){return e?.getObjectId()??null}_graphicChanged(){this.graphic&&(this._setAttachmentLayer(),this.getAttachments().catch((()=>{})))}_setAttachmentLayer(){const{graphic:e}=this,t=H(e);this._attachmentLayer=t?"scene"===t.type&&null!=t.associatedLayer?t.associatedLayer:t:null}};(0,n._)([(0,a.Cb)()],Me.prototype,"capabilities",void 0),(0,n._)([(0,f.p)("capabilities")],Me.prototype,"castCapabilities",null),(0,n._)([(0,a.Cb)()],Me.prototype,"activeAttachmentInfo",void 0),(0,n._)([(0,a.Cb)()],Me.prototype,"activeFileInfo",void 0),(0,n._)([(0,a.Cb)({readOnly:!0,type:Ce})],Me.prototype,"attachmentInfos",void 0),(0,n._)([(0,a.Cb)()],Me.prototype,"fileInfos",void 0),(0,n._)([(0,a.Cb)({type:I.Z})],Me.prototype,"graphic",void 0),(0,n._)([(0,a.Cb)()],Me.prototype,"mode",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],Me.prototype,"state",null),(0,n._)([(0,a.Cb)()],Me.prototype,"filesEnabled",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],Me.prototype,"supportsResizeAttachments",null),Me=(0,n._)([(0,l.j)("esri.widgets.Attachments.AttachmentsViewModel")],Me);const Fe=Me;var Ie=i(36567);function Ae(e){const t=e.toLowerCase();return"image/bmp"===t||"image/emf"===t||"image/exif"===t||"image/gif"===t||"image/x-icon"===t||"image/jpeg"===t||"image/png"===t||"image/tiff"===t||"image/x-wmf"===t}var xe=i(24379),Le=i(49590),Ee=i(28650),ke=i(54956),Pe=i(34236),Te=i(26451);const Re={addButton:!0,addSubmitButton:!0,cancelAddButton:!0,cancelUpdateButton:!0,deleteButton:!0,errorMessage:!0,progressBar:!0,updateButton:!0},$e="esri-attachments",Se={base:$e,loaderContainer:`${$e}__loader-container`,loader:`${$e}__loader`,fadeIn:`${$e}--fade-in`,container:`${$e}__container`,containerList:`${$e}__container--list`,containerPreview:`${$e}__container--preview`,actions:`${$e}__actions`,deleteButton:`${$e}__delete-button`,addAttachmentButton:`${$e}__add-attachment-button`,errorMessage:`${$e}__error-message`,items:`${$e}__items`,item:`${$e}__item`,itemButton:`${$e}__item-button`,itemMask:`${$e}__item-mask`,itemMaskIcon:`${$e}__item-mask--icon`,itemImage:`${$e}__image`,itemImageResizable:`${$e}__image--resizable`,itemLabel:`${$e}__label`,itemFilename:`${$e}__filename`,itemChevronIcon:`${$e}__item-chevron-icon`,itemLink:`${$e}__item-link`,itemLinkOverlay:`${$e}__item-link-overlay`,itemLinkOverlayIcon:`${$e}__item-link-overlay-icon`,itemEditIcon:`${$e}__item-edit-icon`,itemAddIcon:`${$e}__item-add-icon`,itemAddButton:`${$e}__item-add-button`,formNode:`${$e}__form-node`,fileFieldset:`${$e}__file-fieldset`,fileLabel:`${$e}__file-label`,fileName:`${$e}__file-name`,fileInput:`${$e}__file-input`,metadata:`${$e}__metadata`,metadataFieldset:`${$e}__metadata-fieldset`,progressBar:`${$e}__progress-bar`},Ze=window.CSS;let Ne=class extends g.Z{constructor(e,t){super(e,t),this.displayType="auto",this.messages=null,this.messagesUnits=null,this.selectedFile=null,this.submitting=!1,this.viewModel=null,this.visibleElements={...Re},this._supportsImageOrientation=Ze&&Ze.supports&&Ze.supports("image-orientation","from-image"),this._addAttachmentForm=null,this._updateAttachmentForm=null}normalizeCtorArgs(e){return e?.viewModel||(e={viewModel:new Fe,...e}),e}initialize(){this.addHandles([(0,r.on)((()=>this.viewModel?.attachmentInfos),"change",(()=>this.scheduleRender())),(0,r.on)((()=>this.viewModel?.fileInfos),"change",(()=>this.scheduleRender())),(0,r.YP)((()=>this.viewModel?.mode),(()=>this._modeChanged()),r.nn)])}loadDependencies(){return(0,xe.h)({icon:()=>Promise.all([i.e(9145),i.e(7334)]).then(i.bind(i,47334))})}get capabilities(){return this.viewModel.capabilities}set capabilities(e){this.viewModel.capabilities=e}get effectiveDisplayType(){const{displayType:e}=this;return e&&"auto"!==e?e:this.viewModel.supportsResizeAttachments?"preview":"list"}get graphic(){return this.viewModel.graphic}set graphic(e){this.viewModel.graphic=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}castVisibleElements(e){return{...Re,...e}}addAttachment(){const{_addAttachmentForm:e,viewModel:t}=this;return this._set("submitting",!0),this._set("error",null),t.addAttachment(e).then((e=>(this._set("submitting",!1),this._set("error",null),t.mode="view",e))).catch((e=>{throw this._set("submitting",!1),this._set("error",new y.Z("attachments:add-attachment",this.messages.addErrorMessage,e)),e}))}deleteAttachment(e){const{viewModel:t}=this;return this._set("submitting",!0),this._set("error",null),t.deleteAttachment(e).then((e=>(this._set("submitting",!1),this._set("error",null),t.mode="view",e))).catch((e=>{throw this._set("submitting",!1),this._set("error",new y.Z("attachments:delete-attachment",this.messages.deleteErrorMessage,e)),e}))}updateAttachment(){const{viewModel:e}=this,{_updateAttachmentForm:t}=this;return this._set("submitting",!0),this._set("error",null),e.updateAttachment(t).then((t=>(this._set("submitting",!1),this._set("error",null),e.mode="view",t))).catch((e=>{throw this._set("submitting",!1),this._set("error",new y.Z("attachments:update-attachment",this.messages.updateErrorMessage,e)),e}))}addFile(){const e=this.viewModel.addFile(this.selectedFile,this._addAttachmentForm);return this.viewModel.mode="view",e}updateFile(){const{viewModel:e}=this,t=e.updateFile(this.selectedFile,this._updateAttachmentForm,e.activeFileInfo);return e.mode="view",t}deleteFile(e){const t=this.viewModel.deleteFile(e||this.viewModel.activeFileInfo?.file);return this.viewModel.mode="view",t}render(){const{submitting:e,viewModel:t}=this,{state:i}=t;return(0,Te.u)("div",{class:this.classes(Se.base,Le.z.widget)},e?this._renderProgressBar():null,"loading"===i?this._renderLoading():this._renderAttachments(),this._renderErrorMessage())}_renderErrorMessage(){const{error:e,visibleElements:t}=this;return e&&t.errorMessage?(0,Te.u)("div",{class:Se.errorMessage,key:"error-message"},e.message):null}_renderAttachments(){const{activeFileInfo:e,mode:t,activeAttachmentInfo:i}=this.viewModel;return"add"===t?this._renderAddForm():"edit"===t?this._renderDetailsForm(i||e):this._renderAttachmentContainer()}_renderLoading(){return(0,Te.u)("div",{class:Se.loaderContainer,key:"loader"},(0,Te.u)("div",{class:Se.loader}))}_renderProgressBar(){return this.visibleElements.progressBar?(0,Te.u)("div",{class:Se.progressBar,key:"progress-bar"}):null}_renderAddForm(){const{submitting:e,selectedFile:t}=this,i=e||!t,n=this.visibleElements.cancelAddButton?(0,Te.u)("button",{bind:this,class:this.classes(Le.z.button,Le.z.buttonTertiary,Le.z.buttonSmall,Le.z.buttonHalf,e&&Le.z.buttonDisabled),disabled:e,onclick:this._cancelForm,type:"button"},this.messages.cancel):null,s=this.visibleElements.addSubmitButton?(0,Te.u)("button",{class:this.classes(Le.z.button,Le.z.buttonSecondary,Le.z.buttonSmall,Le.z.buttonHalf,{[Le.z.buttonDisabled]:i}),disabled:i,type:"submit"},this.messages.add):null,o=t?(0,Te.u)("span",{class:Se.fileName,key:"file-name"},t.name):null,r=(0,Te.u)("form",{afterCreate:ke.Yo,afterRemoved:ke.pV,bind:this,"data-node-ref":"_addAttachmentForm",onsubmit:this._submitAddAttachment},(0,Te.u)("fieldset",{class:Se.fileFieldset},o,(0,Te.u)("label",{class:this.classes(Se.fileLabel,Le.z.button,Le.z.buttonSecondary)},t?this.messages.changeFile:this.messages.selectFile,(0,Te.u)("input",{bind:this,class:Se.fileInput,name:"attachment",onchange:this._handleFileInputChange,type:"file"}))),s,n);return(0,Te.u)("div",{class:Se.formNode,key:"add-form-container"},r)}_renderDetailsForm(e){const{visibleElements:t,viewModel:i,selectedFile:n,submitting:s}=this,{capabilities:o}=i,r=s||!n;let a,l,d,c;n?(a=n.type,l=n.name,d=n.size):e&&"file"in e?(a=e.file.type,l=e.file.name,d=e.file.size):e&&"contentType"in e&&(a=e.contentType,l=e.name,d=e.size,c=e.url);const u=o.editing&&o.operations?.delete&&t.deleteButton?(0,Te.u)("button",{bind:this,class:this.classes(Le.z.button,Le.z.buttonSmall,Le.z.buttonTertiary,Se.deleteButton,{[Le.z.buttonDisabled]:s}),disabled:s,key:"delete-button",onclick:t=>this._submitDeleteAttachment(t,e),type:"button"},this.messages.delete):void 0,h=o.editing&&o.operations?.update&&t.updateButton?(0,Te.u)("button",{class:this.classes(Le.z.button,Le.z.buttonSmall,Le.z.buttonThird,{[Le.z.buttonDisabled]:r}),disabled:r,key:"update-button",type:"submit"},this.messages.update):void 0,p=this.visibleElements.cancelUpdateButton?(0,Te.u)("button",{bind:this,class:this.classes(Le.z.button,Le.z.buttonSmall,Le.z.buttonTertiary,Le.z.buttonThird,{[Le.z.buttonDisabled]:s}),disabled:s,key:"cancel-button",onclick:this._cancelForm,type:"button"},this.messages.cancel):void 0,m=o.editing&&o.operations?.update?(0,Te.u)("fieldset",{class:Se.fileFieldset,key:"file"},(0,Te.u)("span",{class:Se.fileName,key:"file-name"},l),(0,Te.u)("label",{class:this.classes(Se.fileLabel,Le.z.button,Le.z.buttonSecondary)},this.messages.changeFile,(0,Te.u)("input",{bind:this,class:Se.fileInput,name:"attachment",onchange:this._handleFileInputChange,type:"file"}))):void 0,f=(0,Te.u)("fieldset",{class:Se.metadataFieldset,key:"size"},(0,Te.u)("label",null,function(e,t){let i=0===(t=Math.round(t))?0:Math.floor(Math.log(t)/Math.log(b.Y.KILOBYTES));i=(0,_.uZ)(i,0,F.length-1);const n=(0,M.uf)(t/b.Y.KILOBYTES**i,{maximumFractionDigits:2});return(0,C.gx)(e.units.bytes[F[i]],{fileSize:n})}(this.messagesUnits,d??0))),g=(0,Te.u)("fieldset",{class:Se.metadataFieldset,key:"content-type"},(0,Te.u)("label",null,a)),y=null!=c?(0,Te.u)("a",{class:Se.itemLink,href:c,rel:"noreferrer",target:"_blank"},this._renderImageMask(e,400),(0,Te.u)("div",{class:Se.itemLinkOverlay},(0,Te.u)("span",{class:Se.itemLinkOverlayIcon},(0,Te.u)("calcite-icon",{icon:"launch"})))):this._renderImageMask(e,400),v=(0,Te.u)("form",{afterCreate:ke.Yo,afterRemoved:ke.pV,bind:this,"data-node-ref":"_updateAttachmentForm",onsubmit:t=>this._submitUpdateAttachment(t,e)},(0,Te.u)("div",{class:Se.metadata},f,g),m,(0,Te.u)("div",{class:Se.actions},u,p,h));return(0,Te.u)("div",{class:Se.formNode,key:"edit-form-container"},y,v)}_renderImageMask(e,t){return e?"file"in e?this._renderGenericImageMask(e.file.name,e.file.type):this._renderImageMaskForAttachment(e,t):null}_renderGenericImageMask(e,t){const{supportsResizeAttachments:i}=this.viewModel,n=function(e){const t=(0,Ie.V)("esri/themes/base/images/files/");return e?"text/plain"===e?`${t}text-32.svg`:"application/pdf"===e?`${t}pdf-32.svg`:"text/csv"===e?`${t}csv-32.svg`:"application/gpx+xml"===e?`${t}gpx-32.svg`:"application/x-dwf"===e?`${t}cad-32.svg`:"application/postscript"===e||"application/json"===e||"text/xml"===e||"model/vrml"===e?`${t}code-32.svg`:"application/x-zip-compressed"===e||"application/x-7z-compressed"===e||"application/x-gzip"===e||"application/x-tar"===e||"application/x-gtar"===e||"application/x-bzip2"===e||"application/gzip"===e||"application/x-compress"===e||"application/x-apple-diskimage"===e||"application/x-rar-compressed"===e||"application/zip"===e?`${t}zip-32.svg`:e.includes("image/")?`${t}image-32.svg`:e.includes("audio/")?`${t}sound-32.svg`:e.includes("video/")?`${t}video-32.svg`:e.includes("msexcel")||e.includes("ms-excel")||e.includes("spreadsheetml")?`${t}excel-32.svg`:e.includes("msword")||e.includes("ms-word")||e.includes("wordprocessingml")?`${t}word-32.svg`:e.includes("powerpoint")||e.includes("presentationml")?`${t}report-32.svg`:`${t}generic-32.svg`:`${t}generic-32.svg`}(t),s={[Se.itemImageResizable]:i};return(0,Te.u)("div",{class:this.classes(Se.itemMaskIcon,Se.itemMask),key:n},(0,Te.u)("img",{alt:e,class:this.classes(s,Se.itemImage),src:n,title:e}))}_renderImageMaskForAttachment(e,t){const{supportsResizeAttachments:i}=this.viewModel;if(!e)return null;const{contentType:n,name:s,url:o}=e;if(!i||!Ae(n))return this._renderGenericImageMask(s,n);const r=this._getCSSTransform(e),a=r?{transform:r,"image-orientation":"none"}:{},l=`${o}${o?.includes("?")?"&":"?"}w=${t}`,d={[Se.itemImageResizable]:i};return(0,Te.u)("div",{class:this.classes(Se.itemMask),key:l},(0,Te.u)("img",{alt:s,class:this.classes(d,Se.itemImage),src:l,styles:a,title:s}))}_renderFile(e){const{file:t}=e;return(0,Te.u)("li",{class:Se.item,key:t},(0,Te.u)("button",{"aria-label":this.messages.attachmentDetails,bind:this,class:Se.itemButton,key:"details-button",onclick:()=>this._startEditFile(e),title:this.messages.attachmentDetails,type:"button"},this._renderImageMask(e),(0,Te.u)("label",{class:Se.itemLabel},(0,Te.u)("span",{class:Se.itemFilename},t.name||this.messages.noTitle),(0,Te.u)("span",{"aria-hidden":"true",class:this.classes(Se.itemChevronIcon,(0,ke.dZ)(this.container)?Ee.W.left:Ee.W.right)}))))}_renderAttachmentInfo({attachmentInfo:e,displayType:t}){const{viewModel:i,effectiveDisplayType:n}=this,{capabilities:s,supportsResizeAttachments:o}=i,{contentType:r,name:a,url:l}=e,d=this._renderImageMask(e,"list"===t?48:400),c=s.editing?(0,Te.u)("span",{"aria-hidden":"true",class:this.classes(Se.itemChevronIcon,(0,ke.dZ)(this.container)?Ee.W.left:Ee.W.right)}):null,u=[d,"preview"===n&&o&&Ae(r)?null:(0,Te.u)("label",{class:Se.itemLabel},(0,Te.u)("span",{class:Se.itemFilename},a||this.messages.noTitle),c)],h=s.editing?(0,Te.u)("button",{"aria-label":this.messages.attachmentDetails,bind:this,class:Se.itemButton,"data-attachment-info-id":e.id,key:"details-button",onclick:()=>this._startEditAttachment(e),title:this.messages.attachmentDetails,type:"button"},u):(0,Te.u)("a",{class:Se.itemButton,href:l??void 0,key:"details-link",target:"_blank"},u);return(0,Te.u)("li",{class:Se.item,key:e},h)}_renderAttachmentContainer(){const{effectiveDisplayType:e,viewModel:t,visibleElements:i}=this,{attachmentInfos:n,capabilities:s,fileInfos:o}=t,r=!!n?.length,a=!!o?.length,l={[Se.containerList]:"preview"!==e,[Se.containerPreview]:"preview"===e},d=s.editing&&s.operations?.add&&i.addButton?(0,Te.u)("button",{bind:this,class:this.classes(Le.z.button,Le.z.buttonTertiary,Se.addAttachmentButton),onclick:()=>this._startAddAttachment(),type:"button"},(0,Te.u)("span",{"aria-hidden":"true",class:this.classes(Se.itemAddIcon,Ee.W.plus)}),this.messages.add):void 0,c=r?(0,Te.u)("ul",{class:Se.items,key:"attachments-list"},n.toArray().map((t=>this._renderAttachmentInfo({attachmentInfo:t,displayType:e})))):void 0,u=a?(0,Te.u)("ul",{class:Se.items,key:"file-list"},o.toArray().map((e=>this._renderFile(e)))):void 0,h=a||r?void 0:(0,Te.u)("div",{class:Le.z.empty},this.messages.noAttachments);return(0,Te.u)("div",{class:this.classes(Se.container,l),key:"attachments-container"},c,u,h,d)}_modeChanged(){this._set("error",null),this._set("selectedFile",null)}_handleFileInputChange(e){const t=e.target,i=t.files?.item(0);this._set("selectedFile",i)}_submitDeleteAttachment(e,t){e.preventDefault(),t&&("file"in t?this.deleteFile(t.file):t&&this.deleteAttachment(t))}_submitAddAttachment(e){e.preventDefault(),this.viewModel.filesEnabled?this.addFile():this.addAttachment()}_submitUpdateAttachment(e,t){e.preventDefault(),t&&"file"in t?this.updateFile():this.updateAttachment()}_startEditAttachment(e){const{viewModel:t}=this;t.activeFileInfo=null,t.activeAttachmentInfo=e,t.mode="edit"}_startEditFile(e){const{viewModel:t}=this;t.activeAttachmentInfo=null,t.activeFileInfo=e,t.mode="edit"}_startAddAttachment(){this.viewModel.mode="add"}_cancelForm(e){e.preventDefault(),this.viewModel.mode="view"}_getCSSTransform(e){const{orientationInfo:t}=e;return!this._supportsImageOrientation&&t?[t.rotation?`rotate(${t.rotation}deg)`:"",t.mirrored?"scaleX(-1)":""].join(" "):""}};(0,n._)([(0,a.Cb)()],Ne.prototype,"capabilities",null),(0,n._)([(0,a.Cb)()],Ne.prototype,"displayType",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],Ne.prototype,"effectiveDisplayType",null),(0,n._)([(0,a.Cb)()],Ne.prototype,"graphic",null),(0,n._)([(0,a.Cb)()],Ne.prototype,"label",null),(0,n._)([(0,a.Cb)(),(0,Pe.H)("esri/widgets/Attachments/t9n/Attachments")],Ne.prototype,"messages",void 0),(0,n._)([(0,a.Cb)(),(0,Pe.H)("esri/core/t9n/Units")],Ne.prototype,"messagesUnits",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],Ne.prototype,"selectedFile",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],Ne.prototype,"submitting",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],Ne.prototype,"error",void 0),(0,n._)([(0,a.Cb)({type:Fe})],Ne.prototype,"viewModel",void 0),(0,n._)([(0,a.Cb)()],Ne.prototype,"visibleElements",void 0),(0,n._)([(0,f.p)("visibleElements")],Ne.prototype,"castVisibleElements",null),Ne=(0,n._)([(0,l.j)("esri.widgets.Attachments")],Ne);const Oe=Ne;let Ve=class extends Fe{constructor(e){super(e),this.description=null,this.title=null}};(0,n._)([(0,a.Cb)()],Ve.prototype,"description",void 0),(0,n._)([(0,a.Cb)()],Ve.prototype,"title",void 0),Ve=(0,n._)([(0,l.j)("esri.widgets.Feature.FeatureAttachments.FeatureAttachmentsViewModel")],Ve);const ze=Ve;function Be({level:e,class:t,...i},n){const s=De(e);return(0,Te.u)(`h${s}`,{...i,"aria-level":String(s),class:(0,ke.Sh)(Le.z.heading,t),role:"heading"},n)}function De(e){return(0,_.uZ)(Math.ceil(e),1,6)}const je="esri-feature-element-info",We={base:je,title:`${je}__title`,description:`${je}__description`};let qe=class extends g.Z{constructor(e,t){super(e,t),this.description=null,this.headingLevel=2,this.title=null}render(){return(0,Te.u)("div",{class:We.base},this._renderTitle(),this._renderDescription())}_renderTitle(){const{title:e}=this;return e?(0,Te.u)(Be,{class:We.title,level:this.headingLevel},e):null}_renderDescription(){const{description:e}=this;return e?(0,Te.u)("div",{class:We.description,key:"description"},e):null}};(0,n._)([(0,a.Cb)()],qe.prototype,"description",void 0),(0,n._)([(0,a.Cb)()],qe.prototype,"headingLevel",void 0),(0,n._)([(0,a.Cb)()],qe.prototype,"title",void 0),qe=(0,n._)([(0,l.j)("esri.widgets.Feature.support.FeatureElementInfo")],qe);const He=qe,Ye="esri-feature-attachments";let Ue=class extends g.Z{constructor(e,t){super(e,t),this._featureElementInfo=null,this.attachmentsWidget=new Oe,this.headingLevel=2,this.viewModel=new ze}initialize(){this._featureElementInfo=new He,this.addHandles([(0,r.YP)((()=>[this.viewModel?.description,this.viewModel?.title,this.headingLevel]),(()=>this._setupFeatureElementInfo()),r.nn),(0,r.YP)((()=>this.viewModel),(e=>this.attachmentsWidget.viewModel=e),r.nn)])}destroy(){this.attachmentsWidget.viewModel=null,this.attachmentsWidget.destroy(),this._featureElementInfo?.destroy()}get description(){return this.viewModel.description}set description(e){this.viewModel.description=e}get displayType(){return this.attachmentsWidget.displayType}set displayType(e){this.attachmentsWidget.displayType=e}get graphic(){return this.viewModel.graphic}set graphic(e){this.viewModel.graphic=e}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}render(){const{attachmentsWidget:e}=this;return(0,Te.u)("div",{class:Ye},this._featureElementInfo?.render(),e?.render())}_setupFeatureElementInfo(){const{description:e,title:t,headingLevel:i}=this;this._featureElementInfo?.set({description:e,title:t,headingLevel:i})}};(0,n._)([(0,a.Cb)({readOnly:!0})],Ue.prototype,"attachmentsWidget",void 0),(0,n._)([(0,a.Cb)()],Ue.prototype,"description",null),(0,n._)([(0,a.Cb)()],Ue.prototype,"displayType",null),(0,n._)([(0,a.Cb)()],Ue.prototype,"graphic",null),(0,n._)([(0,a.Cb)()],Ue.prototype,"headingLevel",void 0),(0,n._)([(0,a.Cb)()],Ue.prototype,"title",null),(0,n._)([(0,a.Cb)({type:ze})],Ue.prototype,"viewModel",void 0),Ue=(0,n._)([(0,l.j)("esri.widgets.Feature.FeatureAttachments")],Ue);const Ge=Ue;let Qe=class extends A.Z{constructor(e){super(e),this._loadingPromise=null,this.created=null,this.creator=null,this.destroyer=null,this.graphic=null,this.addHandles((0,r.YP)((()=>this.creator),(e=>{this._destroyContent(),this._createContent(e)}),r.nn))}destroy(){this._destroyContent()}get state(){return this._loadingPromise?"loading":"ready"}_destroyContent(){const{created:e,graphic:t,destroyer:i}=this;e&&t&&(Y(i,{graphic:t}).catch((()=>null)),this._set("created",null))}async _createContent(e){const t=this.graphic;if(!t||!e)return;const i=Y(e,{graphic:t}).catch((()=>null));this._loadingPromise=i,this.notifyChange("state");const n=await i;i===this._loadingPromise&&(this._loadingPromise=null,this.notifyChange("state"),this._set("created",n))}};(0,n._)([(0,a.Cb)({readOnly:!0})],Qe.prototype,"created",void 0),(0,n._)([(0,a.Cb)()],Qe.prototype,"creator",void 0),(0,n._)([(0,a.Cb)()],Qe.prototype,"destroyer",void 0),(0,n._)([(0,a.Cb)({type:I.Z})],Qe.prototype,"graphic",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],Qe.prototype,"state",null),Qe=(0,n._)([(0,l.j)("esri.widgets.Feature.FeatureContent.FeatureContentViewModel")],Qe);const Je=Qe;i(92165);function Xe(e){return e&&"function"==typeof e.render}const Ke="esri-feature-content",et={base:Ke,loaderContainer:`${Ke}__loader-container`,loader:`${Ke}__loader`};let tt=class extends g.Z{constructor(e,t){super(e,t),this.viewModel=null,this._addTargetToAnchors=e=>{Array.from(e.querySelectorAll("a")).forEach((e=>{U(e.href)&&!e.hasAttribute("target")&&e.setAttribute("target","_blank")}))}}get creator(){return this.viewModel?.creator}set creator(e){this.viewModel&&(this.viewModel.creator=e)}get graphic(){return this.viewModel?.graphic}set graphic(e){this.viewModel&&(this.viewModel.graphic=e)}render(){const e=this.viewModel?.state;return(0,Te.u)("div",{class:et.base},"loading"===e?this._renderLoading():this._renderCreated())}_renderLoading(){return(0,Te.u)("div",{class:et.loaderContainer,key:"loader"},(0,Te.u)("div",{class:et.loader}))}_renderCreated(){const e=this.viewModel?.created;return e?e instanceof HTMLElement?(0,Te.u)("div",{afterCreate:this._attachToNode,bind:e,key:e}):Xe(e)?(0,Te.u)("div",{key:e},!e.destroyed&&e.render()):(0,Te.u)("div",{afterCreate:this._addTargetToAnchors,innerHTML:e,key:e}):null}_attachToNode(e){e.appendChild(this)}};(0,n._)([(0,a.Cb)()],tt.prototype,"creator",null),(0,n._)([(0,a.Cb)()],tt.prototype,"graphic",null),(0,n._)([(0,a.Cb)({type:Je})],tt.prototype,"viewModel",void 0),tt=(0,n._)([(0,l.j)("esri.widgets.Feature.FeatureContent")],tt);const it=tt;var nt=i(18228),st=i(78213);let ot=class extends A.Z{constructor(e){super(e),this.attributes=null,this.expressionInfos=null,this.description=null,this.fieldInfos=null,this.title=null}get formattedFieldInfos(){const{expressionInfos:e,fieldInfos:t}=this,i=[];return t?.forEach((t=>{if(t.hasOwnProperty("visible")&&!t.visible)return;const n=t.clone();n.label=Q(n,e),i.push(n)})),i}};(0,n._)([(0,a.Cb)()],ot.prototype,"attributes",void 0),(0,n._)([(0,a.Cb)({type:[nt.Z]})],ot.prototype,"expressionInfos",void 0),(0,n._)([(0,a.Cb)()],ot.prototype,"description",void 0),(0,n._)([(0,a.Cb)({type:[st.Z]})],ot.prototype,"fieldInfos",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],ot.prototype,"formattedFieldInfos",null),(0,n._)([(0,a.Cb)()],ot.prototype,"title",void 0),ot=(0,n._)([(0,l.j)("esri.widgets.Feature.FeatureFields.FeatureFieldsViewModel")],ot);const rt=ot,at=[{pattern:/^\s*(https?:\/\/([^\s]+))\s*$/i,target:"_blank",label:"{messages.view}"},{pattern:/^\s*(tel:([^\s]+))\s*$/i,label:"{hierPart}"},{pattern:/^\s*(mailto:([^\s]+))\s*$/i,label:"{hierPart}"},{pattern:/^\s*(arcgis-appstudio-player:\/\/([^\s]+))\s*$/i,label:"{messages.openInApp}",appName:"App Studio Player"},{pattern:/^\s*(arcgis-collector:\/\/([^\s]+))\s*$/i,label:"{messages.openInApp}",appName:"Collector"},{pattern:/^\s*(arcgis-explorer:\/\/([^\s]+))\s*$/i,label:"{messages.openInApp}",appName:"Explorer"},{pattern:/^\s*(arcgis-navigator:\/\/([^\s]+))\s*$/i,label:"{messages.openInApp}",appName:"Navigator"},{pattern:/^\s*(arcgis-survey123:\/\/([^\s]+))\s*$/i,label:"{messages.openInApp}",appName:"Survey123"},{pattern:/^\s*(arcgis-trek2there:\/\/([^\s]+))\s*$/i,label:"{messages.openInApp}",appName:"Trek2There"},{pattern:/^\s*(arcgis-workforce:\/\/([^\s]+))\s*$/i,label:"{messages.openInApp}",appName:"Workforce"},{pattern:/^\s*(iform:\/\/([^\s]+))\s*$/i,label:"{messages.openInApp}",appName:"iForm"},{pattern:/^\s*(flow:\/\/([^\s]+))\s*$/i,label:"{messages.openInApp}",appName:"FlowFinity"},{pattern:/^\s*(lfmobile:\/\/([^\s]+))\s*$/i,label:"{messages.openInApp}",appName:"Laserfische"},{pattern:/^\s*(mspbi:\/\/([^\s]+))\s*$/i,label:"{messages.openInApp}",appName:"Microsoft Power Bi"}];const lt="esri-feature-fields",dt={base:lt,fieldHeader:`${lt}__field-header`,fieldData:`${lt}__field-data`,fieldDataDate:`${lt}__field-data--date`};let ct=class extends g.Z{constructor(e,t){super(e,t),this._featureElementInfo=null,this.viewModel=new rt,this.messages=null,this.messagesURIUtils=null}initialize(){this._featureElementInfo=new He,this.addHandles((0,r.YP)((()=>[this.viewModel?.description,this.viewModel?.title]),(()=>this._setupFeatureElementInfo()),r.nn))}destroy(){this._featureElementInfo?.destroy()}get attributes(){return this.viewModel.attributes}set attributes(e){this.viewModel.attributes=e}get description(){return this.viewModel.description}set description(e){this.viewModel.description=e}get expressionInfos(){return this.viewModel.expressionInfos}set expressionInfos(e){this.viewModel.expressionInfos=e}get fieldInfos(){return this.viewModel.fieldInfos}set fieldInfos(e){this.viewModel.fieldInfos=e}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}render(){return(0,Te.u)("div",{class:dt.base},this._featureElementInfo?.render(),this._renderFields())}_renderFieldInfo(e,t){const{attributes:i}=this.viewModel,n=e.fieldName,s=e.label||n,o=i?null==i[n]?"":i[n]:"",r=!(!e.format||!e.format.dateFormat),a="number"!=typeof o||r?function(e,t){if("string"!=typeof t||!t)return t;const i=at.find((e=>e.pattern.test(t)));if(!i)return t;const n=t.match(i.pattern),s=n&&n[2],o=(0,C.gx)((0,C.gx)(i.label,{messages:e,hierPart:s}),{appName:i.appName}),r=i.target?` target="${i.target}"`:"",a="_blank"===i.target?' rel="noreferrer"':"";return t.replace(i.pattern,`${o}
`)}(this.messagesURIUtils,o):this._forceLTR(o),l={[dt.fieldDataDate]:r};return(0,Te.u)("tr",{key:`fields-element-info-row-${n}-${t}`},(0,Te.u)("th",{class:dt.fieldHeader,innerHTML:s,key:`fields-element-info-row-header-${n}-${t}`}),(0,Te.u)("td",{class:this.classes(dt.fieldData,l),innerHTML:a,key:`fields-element-info-row-data-${n}-${t}`}))}_renderFields(){const{formattedFieldInfos:e}=this.viewModel;return e?.length?(0,Te.u)("table",{class:Le.z.table,summary:this.messages.fieldsSummary},(0,Te.u)("tbody",null,e.map(((e,t)=>this._renderFieldInfo(e,t))))):null}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo?.set({description:e,title:t})}_forceLTR(e){return`‎${e}`}};(0,n._)([(0,a.Cb)()],ct.prototype,"attributes",null),(0,n._)([(0,a.Cb)()],ct.prototype,"description",null),(0,n._)([(0,a.Cb)()],ct.prototype,"expressionInfos",null),(0,n._)([(0,a.Cb)()],ct.prototype,"fieldInfos",null),(0,n._)([(0,a.Cb)()],ct.prototype,"title",null),(0,n._)([(0,a.Cb)({type:rt,nonNullable:!0})],ct.prototype,"viewModel",void 0),(0,n._)([(0,a.Cb)(),(0,Pe.H)("esri/widgets/Feature/t9n/Feature")],ct.prototype,"messages",void 0),(0,n._)([(0,a.Cb)(),(0,Pe.H)("esri/widgets/support/t9n/uriUtils")],ct.prototype,"messagesURIUtils",void 0),ct=(0,n._)([(0,l.j)("esri.widgets.Feature.FeatureFields")],ct);const ut=ct;var ht=i(7753),pt=i(86114),mt=(i(21758),i(68844),i(59672)),ft=i(31129),gt=i(7541);(0,E.Ze)("short-date");async function yt(e,t,i){(0,pt.s1)(e,t,(()=>[])).push(...i)}async function bt(e){const t=new Map;if(!e)return t;if("visualVariables"in e&&e.visualVariables){const i=e.visualVariables.filter((e=>"color"===e.type));for(const e of i){const i=(await(0,ft.getRampStops)(e)??[]).map((e=>e.color));await yt(t,e.field||e.valueExpression,i)}}if("heatmap"===e.type){const i=function(e){if(!e.colorStops)return[];const t=[...e.colorStops].filter((e=>e.color?.a>0));let i=t.length-1;if(t&&t[0]){const e=t[i];e&&1!==e.ratio&&(t.push(new gt.Z({ratio:1,color:e.color})),i++)}return t.map(((t,n)=>{let s="";return 0===n?s=e.legendOptions?.minLabel||"low":n===i&&(s=e.legendOptions?.maxLabel||"high"),{color:t.color,label:s,ratio:t.ratio}})).reverse()}(e).map((e=>e.color));await yt(t,e.field||e.valueExpression,i)}else if("pie-chart"===e.type){for(const i of e.attributes)await yt(t,i.field||i.valueExpression,[i.color]);await yt(t,"default",[e?.othersCategory?.color,(0,mt._h)(e.backgroundFillSymbol,null)])}else if("dot-density"===e.type){for(const i of e.attributes)await yt(t,i.field||i.valueExpression,[i.color]);await yt(t,"default",[e.backgroundColor])}else if("unique-value"===e.type)if("predominance"===e.authoringInfo?.type)for(const i of e.uniqueValueInfos??[])await yt(t,i.value.toString(),[(0,mt._h)(i.symbol,null)]);else{const i=(e.uniqueValueInfos??[]).map((e=>(0,mt._h)(e.symbol,null))),{field:n,field2:s,field3:o,valueExpression:r}=e;(n||r)&&await yt(t,n||r,i),s&&await yt(t,s,i),o&&await yt(t,o,i)}else if("class-breaks"===e.type){const i=e.classBreakInfos.map((e=>(0,mt._h)(e.symbol,null))),{field:n,valueExpression:s}=e;await yt(t,n??s,i)}else"simple"===e.type&&await yt(t,"default",[(0,mt._h)(e.symbol,null)]);return"defaultSymbol"in e&&e.defaultSymbol&&await yt(t,"default",[(0,mt._h)(e.defaultSymbol,null)]),t.forEach(((e,i)=>{const n=(0,ht.Tw)(e.filter(Boolean),((e,t)=>JSON.stringify(e)===JSON.stringify(t)));t.set(i,n)})),t}var _t=i(94268),vt=i(66341),wt=i(78668),Ct=(i(10743),i(96027)),Mt=(i(51366),i(88256),i(3466),i(69442),i(35925),i(37116),i(91772),i(20031),i(74304),i(67666)),Ft=(i(89542),i(90819),i(25266),i(14685),i(14260),i(91957),i(76480),i(51211),i(14136)),It=i(8284),At=(i(12621),i(53631));const xt=()=>o.Z.getLogger("esri.widgets.Feature.support.relatedFeatureUtils"),Lt=new Map;function Et(e){if(!ge(e))return null;const[t,i]=e.split("/").slice(1);return{layerId:t,fieldName:i}}function kt(e,t){const i=function(e,t){if(!t.relationships)return null;let i=null;const{relationships:n}=t;return n.some((t=>t.id===parseInt(e,10)&&(i=t,!0))),i}(e,t);if(i)return{url:`${t.url}/${i.relatedTableId}`,sourceSpatialReference:t.spatialReference,relation:i,relatedFields:[],outStatistics:[]}}async function Pt(e,t,i,n){const s=i.layerId.toString(),{layerInfo:o,relation:r,relatedFields:a,outStatistics:l,url:d,sourceSpatialReference:c}=t,u=function(e){return e?(0,ht.Tw)(e):void 0}(a),h=function(e){return e?(0,ht.Tw)(e,((e,t)=>JSON.stringify(e.toJSON())===JSON.stringify(t.toJSON()))):void 0}(l);if(!o||!r)return null;const p=function({originRelationship:e,relationships:t,layerId:i}){return t.find((({relatedTableId:t,id:n})=>`${t}`===i&&n===e?.id))??null}({originRelationship:r,relationships:o.relationships,layerId:s});if(p?.relationshipTableId&&p.keyFieldInRelationshipTable){const t=(await function(e,t,i,n){const s=new It.default;return s.outFields=["*"],s.relationshipId="number"==typeof t.id?t.id:parseInt(t.id,10),s.objectIds=[e.attributes[i.objectIdField]],i.queryRelatedFeatures?.(s,n)??Promise.resolve({})}(e,p,i,n))[e.attributes[i.objectIdField]];if(!t)return null;const s=t.features.map((e=>e.attributes[o.objectIdField]));if(h?.length&&o.supportsStatistics){const e=new Ft.Z;e.where=function(e,t,i){let n=0;const s=[];for(;n{const{relation:s}=e;if(!s){const e=new y.Z("relation-required","A relation is required on a layer to retrieve related records.");throw xt().error(e),e}const{relatedTableId:o}=s;if("number"!=typeof o){const e=new y.Z("A related table ID is required on a layer to retrieve related records.");throw xt().error(e),e}const r=`${t.url}/${o}`,a=Lt.get(r),l=a??function(e,t){return(0,vt.Z)(e,{query:{f:"json"},signal:t?.signal})}(r);a||Lt.set(r,l),n[i]=l})),(0,wt.Hl)((0,wt.as)(n),i)}const Rt={chartAnimation:!0};let $t=class extends A.Z{constructor(e){super(e),this.abilities={...Rt},this.activeMediaInfoIndex=0,this.attributes=null,this.description=null,this.fieldInfoMap=null,this.formattedAttributes=null,this.expressionAttributes=null,this.isAggregate=!1,this.layer=null,this.mediaInfos=null,this.popupTemplate=null,this.relatedInfos=null,this.title=null}castAbilities(e){return{...Rt,...e}}get activeMediaInfo(){return this.formattedMediaInfos[this.activeMediaInfoIndex]||null}get formattedMediaInfos(){return this._formatMediaInfos()||[]}get formattedMediaInfoCount(){return this.formattedMediaInfos.length}setActiveMedia(e){this._setContentElementMedia(e)}next(){this._pageContentElementMedia(1)}previous(){this._pageContentElementMedia(-1)}_setContentElementMedia(e){const{formattedMediaInfoCount:t}=this,i=(e+t)%t;this.activeMediaInfoIndex=i}_pageContentElementMedia(e){const{activeMediaInfoIndex:t}=this,i=t+e;this._setContentElementMedia(i)}_formatMediaInfos(){const{mediaInfos:e,layer:t}=this,i=this.attributes??{},n=this.formattedAttributes??{},s=this.expressionAttributes??{},o=this.fieldInfoMap??new Map;return e?.map((e=>{const r=e?.clone();if(!r)return null;if(r.title=ee({attributes:i,fieldInfoMap:o,globalAttributes:n,expressionAttributes:s,layer:t,text:r.title}),r.caption=ee({attributes:i,fieldInfoMap:o,globalAttributes:n,expressionAttributes:s,layer:t,text:r.caption}),r.altText=ee({attributes:i,fieldInfoMap:o,globalAttributes:n,expressionAttributes:s,layer:t,text:r.altText}),"image"===r.type){const{value:e}=r;return this._setImageValue({value:e,formattedAttributes:n,layer:t}),r.value.sourceURL?r:void 0}if("pie-chart"===r.type||"line-chart"===r.type||"column-chart"===r.type||"bar-chart"===r.type){const{value:e}=r;return this._setChartValue({value:e,chartType:r.type,attributes:i,formattedAttributes:n,layer:t,expressionAttributes:s}),r}return null})).filter(ht.pC)??[]}_setImageValue(e){const t=this.fieldInfoMap??new Map,{value:i,formattedAttributes:n,layer:s}=e,{linkURL:o,sourceURL:r}=i;if(r){const e=ne(r,s);i.sourceURL=te({formattedAttributes:n,template:e,fieldInfoMap:t})}if(o){const e=ne(o,s);i.linkURL=te({formattedAttributes:n,template:e,fieldInfoMap:t})}}_setChartValue(e){const{value:t,attributes:i,formattedAttributes:n,chartType:s,layer:o,expressionAttributes:r}=e,{popupTemplate:a,relatedInfos:l}=this,{fields:d,normalizeField:c}=t,u=o;if(t.fields=function(e,t){return e&&e.map((e=>J(e,t)))}(d,u),c&&(t.normalizeField=J(c,u)),!d.some((e=>!!(null!=n[e]||ge(e)&&l?.size))))return;const h=a?.fieldInfos??[];d.forEach(((e,o)=>{const a=t.colors?.[o];if(ge(e))return void(t.series=[...t.series,...this._getRelatedChartInfos({fieldInfos:h,fieldName:e,formattedAttributes:n,chartType:s,value:t,color:a})]);const l=this._getChartOption({value:t,attributes:i,chartType:s,formattedAttributes:n,expressionAttributes:r,fieldName:e,fieldInfos:h,color:a});t.series.push(l)}))}_getRelatedChartInfos(e){const{fieldInfos:t,fieldName:i,formattedAttributes:n,chartType:s,value:o,color:r}=e,a=[],l=Et(i),d=l&&this.relatedInfos?.get(l.layerId.toString());if(!d)return a;const{relatedFeatures:c,relation:u}=d;if(!u||!c)return a;const{cardinality:h}=u;return c.forEach((e=>{const{attributes:d}=e;d&&Object.keys(d).forEach((e=>{e===l.fieldName&&a.push(this._getChartOption({value:o,attributes:d,formattedAttributes:n,fieldName:i,chartType:s,relatedFieldName:e,hasMultipleRelatedFeatures:c?.length>1,fieldInfos:t,color:r}))}))})),"one-to-many"===h||"many-to-many"===h?a:[a[0]]}_getTooltip({label:e,value:t,chartType:i}){return"pie-chart"===i?`${e}`:`${e}: ${t}`}_getChartOption(e){const{value:t,attributes:i,formattedAttributes:n,expressionAttributes:s,fieldName:o,relatedFieldName:r,fieldInfos:a,chartType:l,hasMultipleRelatedFeatures:d,color:c}=e,u=this.layer,h=this.fieldInfoMap??new Map,{normalizeField:p,tooltipField:m}=t,f=p?ge(p)?i[Et(p).fieldName]:i[p]:null,g=G(o)&&s&&void 0!==s[o]?s[o]:r&&void 0!==i[r]?i[r]:void 0!==i[o]?i[o]:n[o],y=new _t.Z({fieldName:o,color:c,value:void 0===g?null:g&&f?g/f:g});if(ge(o)){const e=h.get(o.toLowerCase()),t=m&&h.get(m.toLowerCase()),s=e?.fieldName??o,a=d&&m?Et(m).fieldName:t?.fieldName??m,c=d&&a?i[a]:n[a]??e?.label??e?.fieldName??r,u=d&&r?i[r]:n[s];return y.tooltip=this._getTooltip({label:c,value:u,chartType:l}),y}const b=le(a,o),_=J(o,u),v=m&&void 0!==n[m]?n[m]:Q(b||new st.Z({fieldName:_}),this.popupTemplate?.expressionInfos),w=n[_];return y.tooltip=this._getTooltip({label:v,value:w,chartType:l}),y}};(0,n._)([(0,a.Cb)()],$t.prototype,"abilities",void 0),(0,n._)([(0,f.p)("abilities")],$t.prototype,"castAbilities",null),(0,n._)([(0,a.Cb)()],$t.prototype,"activeMediaInfoIndex",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],$t.prototype,"activeMediaInfo",null),(0,n._)([(0,a.Cb)()],$t.prototype,"attributes",void 0),(0,n._)([(0,a.Cb)()],$t.prototype,"description",void 0),(0,n._)([(0,a.Cb)()],$t.prototype,"fieldInfoMap",void 0),(0,n._)([(0,a.Cb)()],$t.prototype,"formattedAttributes",void 0),(0,n._)([(0,a.Cb)()],$t.prototype,"expressionAttributes",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],$t.prototype,"formattedMediaInfos",null),(0,n._)([(0,a.Cb)()],$t.prototype,"isAggregate",void 0),(0,n._)([(0,a.Cb)()],$t.prototype,"layer",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],$t.prototype,"formattedMediaInfoCount",null),(0,n._)([(0,a.Cb)()],$t.prototype,"mediaInfos",void 0),(0,n._)([(0,a.Cb)()],$t.prototype,"popupTemplate",void 0),(0,n._)([(0,a.Cb)()],$t.prototype,"relatedInfos",void 0),(0,n._)([(0,a.Cb)()],$t.prototype,"title",void 0),$t=(0,n._)([(0,l.j)("esri.widgets.Feature.FeatureMedia.FeatureMediaViewModel")],$t);const St=$t;var Zt=i(3368);const Nt="esri-feature-media",Ot={base:Nt,mediaContainer:`${Nt}__container`,mediaItemContainer:`${Nt}__item-container`,mediaItem:`${Nt}__item`,mediaItemText:`${Nt}__item-text`,mediaItemTitle:`${Nt}__item-title`,mediaItemCaption:`${Nt}__item-caption`,mediaNavigation:`${Nt}__item-navigation`,mediaPagination:`${Nt}__pagination`,mediaPaginationText:`${Nt}__pagination-text`,mediaPrevious:`${Nt}__previous`,mediaPreviousIconLTR:`${Nt}__previous-icon`,mediaPreviousIconRTL:`${Nt}__previous-icon--rtl`,mediaNext:`${Nt}__next`,mediaNextIconLTR:`${Nt}__next-icon`,mediaNextIconRTL:`${Nt}__next-icon--rtl`,mediaChart:`${Nt}__chart`,mediaPaginationButton:`${Nt}__pagination-button`,mediaPaginationIcon:`${Nt}__pagination-icon`,mediaChartRendered:`${Nt}__chart--rendered`},Vt="category",zt="value";let Bt=class extends g.Z{constructor(e,t){super(e,t),this._refreshTimer=null,this._refreshIntervalInfo=null,this._featureElementInfo=null,this._chartRootMap=new WeakMap,this.viewModel=new St,this.messages=null,this._disposeChart=e=>{this._chartRootMap.get(e)?.dispose(),this._chartRootMap.delete(e)},this._createChart=async e=>{const{destroyed:t,viewModel:n}=this;if(t||!n||!e)return;const{createRoot:s}=await Promise.all([i.e(3027),i.e(5109)]).then(i.bind(i,85109)),o=await s(e);this._chartRootMap.set(e,o),this._renderChart({mediaInfo:n.activeMediaInfo,root:o})}}initialize(){this._featureElementInfo=new He,this.addHandles([(0,r.YP)((()=>[this.viewModel?.activeMediaInfo,this.viewModel?.activeMediaInfoIndex]),(()=>this._setupMediaRefreshTimer()),r.nn),(0,r.YP)((()=>[this.viewModel?.description,this.viewModel?.title]),(()=>this._setupFeatureElementInfo()),r.nn)])}loadDependencies(){return(0,xe.h)({icon:()=>Promise.all([i.e(9145),i.e(7334)]).then(i.bind(i,47334))})}destroy(){this._clearMediaRefreshTimer(),this._featureElementInfo?.destroy()}get attributes(){return this.viewModel.attributes}set attributes(e){this.viewModel.attributes=e}get activeMediaInfoIndex(){return this.viewModel.activeMediaInfoIndex}set activeMediaInfoIndex(e){this.viewModel.activeMediaInfoIndex=e}get description(){return this.viewModel.description}set description(e){this.viewModel.description=e}get fieldInfoMap(){return this.viewModel.fieldInfoMap}set fieldInfoMap(e){this.viewModel.fieldInfoMap=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get mediaInfos(){return this.viewModel.mediaInfos}set mediaInfos(e){this.viewModel.mediaInfos=e}get popupTemplate(){return this.viewModel.popupTemplate}set popupTemplate(e){this.viewModel.popupTemplate=e}get relatedInfos(){return this.viewModel.relatedInfos}set relatedInfos(e){this.viewModel.relatedInfos=e}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}render(){return(0,Te.u)("div",{bind:this,class:Ot.base,onkeyup:this._handleMediaKeyup},this._featureElementInfo?.render(),this._renderMedia())}_renderMedia(){const{formattedMediaInfoCount:e,activeMediaInfoIndex:t}=this.viewModel,i=this._renderMediaText();return e?(0,Te.u)("div",{class:Ot.mediaContainer,key:"media-element-container"},this._renderMediaInfo(),(0,Te.u)("div",{class:Ot.mediaNavigation},i,e>1?(0,Te.u)("div",{class:Ot.mediaPagination},this._renderMediaPageButton("previous"),(0,Te.u)("span",{class:Ot.mediaPaginationText},(0,p.n)(this.messages.pageText,{index:t+1,total:e})),this._renderMediaPageButton("next")):null)):null}_renderMediaText(){const{activeMediaInfo:e}=this.viewModel;if(!e)return null;const t=e&&e.title?(0,Te.u)("div",{class:Ot.mediaItemTitle,innerHTML:e.title,key:"media-title"}):null,i=e&&e.caption?(0,Te.u)("div",{class:Ot.mediaItemCaption,innerHTML:e.caption,key:"media-caption"}):null;return t||i?(0,Te.u)("div",{class:Ot.mediaItemText,key:"media-text"},t,i):null}_renderImageMediaInfo(e){const{_refreshIntervalInfo:t}=this,{activeMediaInfoIndex:i,formattedMediaInfoCount:n}=this.viewModel,{value:s,refreshInterval:o,altText:r,title:a,type:l}=e,{sourceURL:d,linkURL:c}=s,u=U(c??void 0)?"_blank":"_self",h="_blank"===u?"noreferrer":"",p=o?t:null,m=p?p.timestamp:0,f=p?p.sourceURL:d,g=(0,Te.u)("img",{alt:r||a,key:`media-${l}-${i}-${n}-${m}`,src:f??void 0});return(c?(0,Te.u)("a",{href:c,rel:h,target:u,title:a},g):null)??g}_renderChartMediaInfo(e){const{activeMediaInfoIndex:t,formattedMediaInfoCount:i}=this.viewModel;return(0,Te.u)("div",{afterCreate:this._createChart,afterRemoved:this._disposeChart,bind:this,class:Ot.mediaChart,key:`media-${e.type}-${t}-${i}`})}_renderMediaInfoType(){const{activeMediaInfo:e}=this.viewModel;return e?"image"===e.type?this._renderImageMediaInfo(e):e.type.includes("chart")?this._renderChartMediaInfo(e):null:null}_renderMediaInfo(){const{activeMediaInfo:e}=this.viewModel;return e?(0,Te.u)("div",{class:Ot.mediaItemContainer,key:"media-container"},(0,Te.u)("div",{class:Ot.mediaItem,key:"media-item-container"},this._renderMediaInfoType())):null}_renderMediaPageButton(e){if(this.viewModel.formattedMediaInfoCount<2)return null;const t="previous"===e,i=t?this.messages.previous:this.messages.next,n=t?"chevron-left":"chevron-right",s=t?"media-previous":"media-next",o=t?this._previous:this._next;return(0,Te.u)("button",{"aria-label":i,bind:this,class:Ot.mediaPaginationButton,key:s,onclick:o,tabIndex:0,title:i,type:"button"},(0,Te.u)("calcite-icon",{class:Ot.mediaPaginationIcon,icon:n,scale:"s"}))}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo?.set({description:e,title:t})}_next(){this.viewModel.next()}_previous(){this.viewModel.previous()}_getRenderer(){if(!this.viewModel)return;const{isAggregate:e,layer:t}=this.viewModel;return e&&t?.featureReduction&&"renderer"in t.featureReduction?t.featureReduction.renderer:t?.renderer}async _getSeriesColors(e){const{colorAm5:t}=await Promise.all([i.e(3027),i.e(9229)]).then(i.bind(i,9229)),n=new Map;return e.forEach((e=>{e.color&&n.set(e,t(e.color.toCss(!0)))})),n}async _getRendererColors(){const{colorAm5:e}=await Promise.all([i.e(3027),i.e(9229)]).then(i.bind(i,9229)),t=new Map,n=this._getRenderer();if(!n)return t;const s=await bt(n);return s.delete("default"),Array.from(s.values()).every((e=>1===e?.length))?(Array.from(s.keys()).forEach((i=>{const n=s.get(i)?.[0]?.toCss(!0);n&&t.set(i,e(n))})),t):t}_handleMediaKeyup(e){const{key:t}=e;"ArrowLeft"===t&&(e.stopPropagation(),this.viewModel.previous()),"ArrowRight"===t&&(e.stopPropagation(),this.viewModel.next())}_canAnimateChart(){return!!this.viewModel&&!!this.viewModel.abilities.chartAnimation&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches}_getChartAnimationMS(){return this._canAnimateChart()?250:0}_getChartSeriesAnimationMS(){return this._canAnimateChart()?500:0}async _renderChart(e){const{root:t,mediaInfo:n}=e,{value:s,type:o}=n,{ResponsiveThemeAm5:r,DarkThemeAm5:a,AnimatedThemeAm5:l,ColorSetAm5:d,ThemeAm5:c,esriChartColorSet:u}=await Promise.all([i.e(3027),i.e(9229)]).then(i.bind(i,9229)),h=c.new(t);h.rule("ColorSet").set("colors",u),h.rule("ColorSet").set("reuse",!0);const p=[r.new(t),h];(0,Zt.$o)()&&p.push(a.new(t)),this._canAnimateChart()&&p.push(l.new(t)),t.setThemes(p);const m=await this._getRendererColors(),f=await this._getSeriesColors(s.series),g=d.new(t,{}),y=f.get(s.series[0]),b=y?{lineSettings:{stroke:y}}:void 0,_=s.series.map(((e,t)=>{const i=f.get(e)||m.get(e.fieldName)||g.getIndex(t);return{[Vt]:e.tooltip,[zt]:e.value,columnSettings:{fill:i,stroke:i},...b}})).filter((e=>"pie-chart"!==o||null!=e.value&&e.value>0));"pie-chart"===o?this._createPieChart(e,_):this._createXYChart(e,_)}_getDirection(){return(0,ke.dZ)(this.container)?"rtl":"ltr"}_isInversed(){return!!(0,ke.dZ)(this.container)}async _customizeChartTooltip(e,t="horizontal"){const{colorAm5:n}=await Promise.all([i.e(3027),i.e(9229)]).then(i.bind(i,9229));e.setAll({pointerOrientation:t}),e.get("background")?.setAll({stroke:n("rgba(50, 50, 50, 1)")}),e.label.setAll({direction:this._getDirection(),oversizedBehavior:"wrap",maxWidth:200})}async _createPieChart(e,t){const{TooltipAm5:n}=await Promise.all([i.e(3027),i.e(9229)]).then(i.bind(i,9229)),{PieChartAm5:s,PieSeriesAm5:o}=await Promise.all([i.e(3027),i.e(3711),i.e(5310)]).then(i.bind(i,29679)),{mediaInfo:r,root:a}=e,{title:l}=r,d=r?.altText||r?.title||"",c=a.container.children.push(s.new(a,{ariaLabel:d,focusable:!0,paddingBottom:5,paddingTop:5,paddingLeft:5,paddingRight:5})),u="{category}: {valuePercentTotal.formatNumber('0.00')}%\n ({value})",h=n.new(a,{labelText:u}),p=c.series.push(o.new(a,{name:l,valueField:zt,categoryField:Vt,tooltip:h}));p.ticks.template.set("forceHidden",!0),p.labels.template.set("forceHidden",!0),p.slices.template.states.create("active",{shiftRadius:5}),this._customizeChartTooltip(h),p.slices.template.setAll({ariaLabel:u,focusable:!0,templateField:"columnSettings"}),p.data.setAll(t),p.appear(this._getChartSeriesAnimationMS()),c.appear(this._getChartAnimationMS()),c.root.dom.classList.toggle(Ot.mediaChartRendered,!0)}_getMinSeriesValue(e){let t=0;return e.forEach((e=>t=Math.min(e.value,t))),t}async _createColumnChart(e,t,n){const{TooltipAm5:s,ScrollbarAm5:o}=await Promise.all([i.e(3027),i.e(9229)]).then(i.bind(i,9229)),{CategoryAxisAm5:r,AxisRendererXAm5:a,ValueAxisAm5:l,AxisRendererYAm5:d,ColumnSeriesAm5:c}=await Promise.all([i.e(3027),i.e(3711),i.e(2727)]).then(i.bind(i,32727)),{mediaInfo:u,root:h}=t,{value:p,title:m}=u;e.setAll({wheelX:"panX",wheelY:"zoomX"});const f=e.xAxes.push(r.new(h,{renderer:a.new(h,{inversed:this._isInversed()}),categoryField:Vt}));f.get("renderer").labels.template.setAll({forceHidden:!0});const g=e.yAxes.push(l.new(h,{renderer:d.new(h,{inside:!1}),min:this._getMinSeriesValue(p.series)}));g.get("renderer").labels.template.setAll({direction:this._getDirection()});const y="{categoryX}",b=s.new(h,{labelText:y}),_=e.series.push(c.new(h,{name:m,xAxis:f,yAxis:g,valueYField:zt,categoryXField:Vt,tooltip:b}));this._customizeChartTooltip(b),_.columns.template.setAll({ariaLabel:y,focusable:!0,templateField:"columnSettings"}),p.series.length>15&&e.set("scrollbarX",o.new(h,{orientation:"horizontal"})),f.data.setAll(n),_.data.setAll(n),_.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createBarChart(e,t,n){const{TooltipAm5:s,ScrollbarAm5:o}=await Promise.all([i.e(3027),i.e(9229)]).then(i.bind(i,9229)),{CategoryAxisAm5:r,AxisRendererXAm5:a,ValueAxisAm5:l,AxisRendererYAm5:d,ColumnSeriesAm5:c}=await Promise.all([i.e(3027),i.e(3711),i.e(2727)]).then(i.bind(i,32727)),{mediaInfo:u,root:h}=t,{value:p,title:m}=u;e.setAll({wheelX:"panY",wheelY:"zoomY"});const f=e.yAxes.push(r.new(h,{renderer:d.new(h,{inversed:!0}),categoryField:Vt}));f.get("renderer").labels.template.setAll({forceHidden:!0});const g=e.xAxes.push(l.new(h,{renderer:a.new(h,{inside:!1,inversed:this._isInversed()}),min:this._getMinSeriesValue(p.series)}));g.get("renderer").labels.template.setAll({direction:this._getDirection()});const y="{categoryY}",b=s.new(h,{labelText:y}),_=e.series.push(c.new(h,{name:m,xAxis:g,yAxis:f,valueXField:zt,categoryYField:Vt,tooltip:b}));this._customizeChartTooltip(b,"vertical"),_.columns.template.setAll({ariaLabel:y,focusable:!0,templateField:"columnSettings"}),p.series.length>15&&e.set("scrollbarY",o.new(h,{orientation:"vertical"})),f.data.setAll(n),_.data.setAll(n),_.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createLineChart(e,t,n){const{TooltipAm5:s,ScrollbarAm5:o}=await Promise.all([i.e(3027),i.e(9229)]).then(i.bind(i,9229)),{CategoryAxisAm5:r,AxisRendererXAm5:a,ValueAxisAm5:l,AxisRendererYAm5:d,LineSeriesAm5:c}=await Promise.all([i.e(3027),i.e(3711),i.e(2727)]).then(i.bind(i,32727)),{root:u,mediaInfo:h}=t,{value:p,title:m}=h;e.setAll({wheelX:"panX",wheelY:"zoomX"});const f=e.xAxes.push(r.new(u,{renderer:a.new(u,{inversed:this._isInversed()}),categoryField:Vt}));f.get("renderer").labels.template.setAll({forceHidden:!0});const g=e.yAxes.push(l.new(u,{renderer:d.new(u,{inside:!1}),min:this._getMinSeriesValue(p.series)}));g.get("renderer").labels.template.setAll({direction:this._getDirection()});const y=n[0]?.lineSettings?.stroke,b=s.new(u,{getFillFromSprite:!y,labelText:"{categoryX}"});y&&b.get("background")?.setAll({fill:y});const _=e.series.push(c.new(u,{name:m,xAxis:f,yAxis:g,valueYField:zt,categoryXField:Vt,tooltip:b}));_.strokes.template.setAll({templateField:"lineSettings"}),this._customizeChartTooltip(b,"vertical"),p.series.length>15&&e.set("scrollbarX",o.new(u,{orientation:"horizontal"})),f.data.setAll(n),_.data.setAll(n),_.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createXYChart(e,t){const{XYChartAm5:n,XYCursorAm5:s}=await Promise.all([i.e(3027),i.e(3711),i.e(2727)]).then(i.bind(i,32727)),{root:o,mediaInfo:r}=e,{type:a}=r,l=r?.altText||r?.title||"",d=o.container.children.push(n.new(o,{ariaLabel:l,focusable:!0,panX:!0,panY:!0}));d.set("cursor",s.new(o,{})),"column-chart"===a&&await this._createColumnChart(d,e,t),"bar-chart"===a&&await this._createBarChart(d,e,t),"line-chart"===a&&await this._createLineChart(d,e,t),d.root.dom.classList.toggle(Ot.mediaChartRendered,!0)}_clearMediaRefreshTimer(){const{_refreshTimer:e}=this;e&&(clearTimeout(e),this._refreshTimer=null)}_updateMediaInfoTimestamp(e){const t=Date.now();this._refreshIntervalInfo={timestamp:t,sourceURL:e&&this._getImageSource(e,t)}}_setupMediaRefreshTimer(){this._clearMediaRefreshTimer();const{activeMediaInfo:e}=this.viewModel;e&&"image"===e.type&&e.refreshInterval&&this._setRefreshTimeout(e)}_setRefreshTimeout(e){const{refreshInterval:t,value:i}=e;if(!t)return;const n=6e4*t;this._updateMediaInfoTimestamp(i.sourceURL);const s=setInterval((()=>{this._updateMediaInfoTimestamp(i.sourceURL)}),n);this._refreshTimer=s}_getImageSource(e,t){const i=e.includes("?")?"&":"?",[n,s=""]=e.split("#");return`${n}${i}timestamp=${t}${s?"#":""}${s}`}};(0,n._)([(0,a.Cb)()],Bt.prototype,"_refreshIntervalInfo",void 0),(0,n._)([(0,a.Cb)()],Bt.prototype,"attributes",null),(0,n._)([(0,a.Cb)()],Bt.prototype,"activeMediaInfoIndex",null),(0,n._)([(0,a.Cb)()],Bt.prototype,"description",null),(0,n._)([(0,a.Cb)()],Bt.prototype,"fieldInfoMap",null),(0,n._)([(0,a.Cb)()],Bt.prototype,"layer",null),(0,n._)([(0,a.Cb)()],Bt.prototype,"mediaInfos",null),(0,n._)([(0,a.Cb)()],Bt.prototype,"popupTemplate",null),(0,n._)([(0,a.Cb)()],Bt.prototype,"relatedInfos",null),(0,n._)([(0,a.Cb)()],Bt.prototype,"title",null),(0,n._)([(0,a.Cb)({type:St})],Bt.prototype,"viewModel",void 0),(0,n._)([(0,a.Cb)(),(0,Pe.H)("esri/widgets/Feature/t9n/Feature")],Bt.prototype,"messages",void 0),Bt=(0,n._)([(0,l.j)("esri.widgets.Feature.FeatureMedia")],Bt);const Dt=Bt;i(24834),i(17814),i(15902),i(32776);var jt=i(29893),Wt=i(21363),qt=(i(83373),i(58106)),Ht=i(4970),Yt=i(12926);const Ut=()=>o.Z.getLogger("esri.widgets.Feature.support.arcadeFeatureUtils");function Gt(e){return"string"==typeof e?ue(ce(e)):Array.isArray(e)?function(e){return`
    ${e.map((e=>`
  • ${"string"==typeof e?ue(ce(e)):e}
  • `)).join("")}
`}(e):"esri.arcade.Dictionary"===e?.declaredClass?function(e){const t=e.keys().map((t=>{const i=e.field(t);return`${t}${"string"==typeof i?ue(ce(i)):i}`})).join("");return`${t}
`}(e):e}function Qt(){return i.e(2688).then(i.bind(i,22688))}async function Jt({graphic:e,view:t,options:i}){const{isAggregate:n,layer:s}=e;if(!n||!s||"2d"!==t?.type)return[];const o=await t.whenLayerView(s);if(!function(e){return"createQuery"in e&&"queryFeatures"in e}(o))return[];const r=o.createQuery(),a=e.getObjectId();r.aggregateIds=null!=a?[a]:[];const{features:l}=await o.queryFeatures(r,i);return l}async function Xt({expressionInfo:e,arcade:t,interceptor:i,spatialReference:n,map:s,graphic:o,location:r,view:a,options:l}){if(!e?.expression)return null;const{isAggregate:d}=o,c=(o.sourceLayer||o.layer)??void 0,u=d?"feature-reduction-popup":"popup",h=t.createArcadeProfile(u),p=t.createArcadeExecutor(e.expression,h).catch((t=>Ut().error("arcade-executor-error",{error:t,expressionInfo:e}))),[m,f]=await Promise.all([Jt({graphic:o,view:a,options:l}),p]);if(!f)return null;const g="feature-reduction-popup"===u?function({layer:e,aggregatedFeatures:t,interceptor:i}){const{fields:n,objectIdField:s,geometryType:o,spatialReference:r,displayField:a}=e;return new Yt.default({fields:n,objectIdField:s,geometryType:o,spatialReference:r,displayField:a,interceptor:i,..."feature"===e.type?{templates:e.templates,typeIdField:e.typeIdField,types:e.types}:null,source:t})}({layer:c,aggregatedFeatures:m,interceptor:i}):void 0,y={..."feature-reduction-popup"===u?{$aggregatedFeatures:g}:{$datastore:c?.url,$layer:"feature"===c?.type||"subtype-sublayer"===c?.type?c:"scene"===c?.type&&null!=c.associatedLayer?c.associatedLayer:void 0,$map:s,$userInput:r,$graph:"knowledge-graph-sublayer"===c?.type?c?.parentCompositeLayer?.knowledgeGraph:void 0},$feature:o},b={abortSignal:l?.signal??void 0,interceptor:i??void 0,rawOutput:!0,spatialReference:n??void 0,timeZone:a?.timeZone};return await f.executeAsync(y,b).catch((t=>Ut().error("arcade-execution-error",{error:t,graphic:o,expressionInfo:e}))).finally((()=>g?.destroy()))}async function Kt({expressionInfos:e,spatialReference:t,graphic:i,interceptor:n,map:s,view:o,location:r,options:a}){if(!e?.length)return{};const l=await Qt(),d={};for(const c of e)d[`expression/${c.name}`]=Xt({expressionInfo:c,arcade:l,interceptor:n,spatialReference:t,map:s,graphic:i,location:r,view:o,options:a});const c=await(0,wt.as)(d),u={};for(const e in c)u[e]=Gt(c[e].value);return u}let ei=class extends A.Z{constructor(e){super(e),this._abortController=null,this.expressionInfo=null,this.graphic=null,this.contentElement=null,this.contentElementViewModel=null,this.interceptor=null,this.location=null,this.view=null,this._cancelQuery=()=>{const{_abortController:e}=this;e&&e.abort(),this._abortController=null},this._createVM=()=>{const e=this.contentElement?.type;this.contentElementViewModel?.destroy();const t="fields"===e?new rt:"media"===e?new St:"text"===e?new Je:null;this._set("contentElementViewModel",t)},this._compile=async()=>{this._cancelQuery();const e=new AbortController;this._abortController=e,await this._compileExpression(),this._abortController===e&&(this._abortController=null)},this._compileThrottled=u(this._compile,1,this),this._compileExpression=async()=>{const{expressionInfo:e,graphic:t,interceptor:i,spatialReference:n,map:s,location:o,view:r,_abortController:a}=this;if(!e||!t)return void this._set("contentElement",null);const l=await Qt();if(a!==this._abortController)return;const d=await Xt({arcade:l,expressionInfo:e,graphic:t,location:o,interceptor:i,map:s,spatialReference:n,view:r});if(!d||"esri.arcade.Dictionary"!==d.declaredClass)return void this._set("contentElement",null);const c=await d.castAsJsonAsync(a?.signal),u=c?.type,h="media"===u?Wt.Z.fromJSON(c):"text"===u?qt.Z.fromJSON(c):"fields"===u?jt.Z.fromJSON(c):null;this._set("contentElement",h)},this.addHandles([(0,r.YP)((()=>[this.expressionInfo,this.graphic,this.map,this.spatialReference,this.view]),(()=>this._compileThrottled()),r.nn),(0,r.YP)((()=>[this.contentElement]),(()=>this._createVM()),r.nn)])}initialize(){this.addHandles(this._compileThrottled)}destroy(){this._cancelQuery(),this.contentElementViewModel?.destroy(),this._set("contentElementViewModel",null),this._set("contentElement",null)}get spatialReference(){return this.view?.spatialReference??null}set spatialReference(e){this._override("spatialReference",e)}get state(){const{_abortController:e,contentElement:t,contentElementViewModel:i}=this;return e?"loading":t||i?"ready":"disabled"}get map(){return this.view?.map??null}set map(e){this._override("map",e)}};(0,n._)([(0,a.Cb)()],ei.prototype,"_abortController",void 0),(0,n._)([(0,a.Cb)({type:Ht.Z})],ei.prototype,"expressionInfo",void 0),(0,n._)([(0,a.Cb)({type:I.Z})],ei.prototype,"graphic",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],ei.prototype,"contentElement",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],ei.prototype,"contentElementViewModel",void 0),(0,n._)([(0,a.Cb)()],ei.prototype,"interceptor",void 0),(0,n._)([(0,a.Cb)({type:Mt.Z})],ei.prototype,"location",void 0),(0,n._)([(0,a.Cb)()],ei.prototype,"spatialReference",null),(0,n._)([(0,a.Cb)({readOnly:!0})],ei.prototype,"state",null),(0,n._)([(0,a.Cb)()],ei.prototype,"map",null),(0,n._)([(0,a.Cb)()],ei.prototype,"view",void 0),ei=(0,n._)([(0,l.j)("esri.widgets.Feature.FeatureExpression.FeatureExpressionViewModel")],ei);const ti=ei,ii="esri-feature",ni={base:`${ii}-expression`,loadingSpinnerContainer:`${ii}__loading-container`,spinner:`${ii}__loading-spinner`};let si=class extends g.Z{constructor(e,t){super(e,t),this._contentWidget=null,this.viewModel=new ti}initialize(){this.addHandles((0,r.YP)((()=>this.viewModel?.contentElementViewModel),(()=>this._setupExpressionWidget()),r.nn))}destroy(){this._destroyContentWidget()}render(){const{state:e}=this.viewModel;return(0,Te.u)("div",{class:ni.base},"loading"===e?this._renderLoading():"disabled"===e?null:this._contentWidget?.render())}_renderLoading(){return(0,Te.u)("div",{class:ni.loadingSpinnerContainer,key:"loading-container"},(0,Te.u)("span",{class:this.classes(Ee.W.loadingIndicator,Le.z.rotating,ni.spinner)}))}_destroyContentWidget(){const{_contentWidget:e}=this;e&&(e.viewModel=null,e.destroy()),this._contentWidget=null}_setupExpressionWidget(){const{contentElementViewModel:e,contentElement:t}=this.viewModel,i=t?.type;this._destroyContentWidget();const n=e?"fields"===i?new ut({viewModel:e}):"media"===i?new Dt({viewModel:e}):"text"===i?new it({viewModel:e}):null:null;this._contentWidget=n,this.scheduleRender()}};(0,n._)([(0,a.Cb)({type:ti})],si.prototype,"viewModel",void 0),si=(0,n._)([(0,l.j)("esri.widgets.Feature.FeatureExpression")],si);const oi=si;var ri=i(61681),ai=i(41151),li=i(86618);i(27755),i(69143),i(78756);var di;!function(e){e.TOO_SHORT="length-validation-error::too-short"}(di||(di={}));const ci=e=>{const t=[];if(e.formTemplate){const{description:i,title:n}=e.formTemplate;e.fields?.forEach((e=>{const s=n&&(0,C.pZ)(n,e.name),o=i&&(0,C.pZ)(i,e.name);(s||o)&&t.push(e.name)}))}return t};let ui=class extends((0,ai.J)((0,li.IG)(A.Z))){constructor(e){super(e),this._loaded=!1,this._queryAbortController=null,this._queryPageAbortController=null,this._queryFeatureCountAbortController=null,this.featuresPerPage=10,this.description=null,this.graphic=null,this.layer=null,this.map=null,this.orderByFields=null,this.featureCount=0,this.relationshipId=null,this.showAllEnabled=!1,this.title=null,this._cancelQuery=()=>{const{_queryAbortController:e}=this;e&&e.abort(),this._queryAbortController=null},this._cancelQueryFeatureCount=()=>{const{_queryFeatureCountAbortController:e}=this;e&&e.abort(),this._queryFeatureCountAbortController=null},this._cancelQueryPage=()=>{const{_queryPageAbortController:e}=this;e&&e.abort(),this._queryPageAbortController=null},this._queryController=async()=>{this._cancelQuery();const e=new AbortController;this._queryAbortController=e,await(0,wt.R8)(this._query()),this._queryAbortController===e&&(this._queryAbortController=null)},this._queryFeatureCountController=async()=>{this._loaded=!1,this._cancelQueryFeatureCount();const e=new AbortController;this._queryFeatureCountAbortController=e,await(0,wt.R8)(this._queryFeatureCount()),this._queryFeatureCountAbortController===e&&(this._queryFeatureCountAbortController=null),this._loaded=!0},this._queryPageController=async()=>{const e=new AbortController;this._queryPageAbortController=e,await(0,wt.R8)(this._queryPage()),this._queryPageAbortController===e&&(this._queryPageAbortController=null)},this._queryDebounced=(0,wt.Ds)(this._queryController,100),this._queryFeatureCountDebounced=(0,wt.Ds)(this._queryFeatureCountController,100),this._queryPageDebounced=(0,wt.Ds)(this._queryPageController,100),this._query=async()=>{const{_queryAbortController:e,relatedFeatures:t}=this;this.featureCount&&(this._destroyRelatedFeatureViewModels(),this.featurePage=1,t.removeAll(),this.destroyed||t.addMany(this._sliceFeatures(await this._queryRelatedFeatures({signal:e?.signal}))))},this.addHandles([(0,r.YP)((()=>[this.displayCount,this.graphic,this.layer,this.layer?.loaded,this.map,this.orderByFields,this.relationshipId,this.featuresPerPage,this.showAllEnabled,this.canQuery,this.featureCount]),(()=>this._queryDebounced()),r.nn),(0,r.YP)((()=>[this.featurePage,this.showAllEnabled]),(()=>this._queryPageDebounced())),(0,r.YP)((()=>[this.layer,this.relationshipId,this.objectId,this.canQuery]),(()=>this._queryFeatureCountDebounced()))])}destroy(){this._destroyRelatedFeatureViewModels(),this.relatedFeatures.removeAll(),this._cancelQuery(),this._cancelQueryFeatureCount(),this._cancelQueryPage()}set featurePage(e){const{featuresPerPage:t,featureCount:i}=this,n=Math.ceil(i/t)||1;this._set("featurePage",Math.min(Math.max(e,1),n))}get featurePage(){return this._get("featurePage")}get orderByFieldsFixedCasing(){const{orderByFields:e,relatedLayer:t}=this;return e&&t?.loaded?e.map((e=>{const i=e.clone();return i.field=J(e.field,t),i})):e??[]}get supportsCacheHint(){return!!this.layer?.capabilities?.queryRelated?.supportsCacheHint}get canLoad(){return!!this.map&&"number"==typeof this.relationshipId&&"number"==typeof this.objectId}get canQuery(){const e=this.layer?.capabilities?.queryRelated;return!!(this.relatedLayer&&this.relationship&&"number"==typeof this.relationshipId&&"number"==typeof this.objectId&&e?.supportsCount&&e?.supportsPagination)}get itemDescriptionFieldName(){return this.orderByFieldsFixedCasing[0]?.field||null}set displayCount(e){this._set("displayCount",Math.min(Math.max(e,0),10))}get displayCount(){return this._get("displayCount")}get objectId(){return(this.objectIdField&&this.graphic?.attributes?.[this.objectIdField])??null}get objectIdField(){return this.layer?.objectIdField||null}get relatedFeatures(){return this._get("relatedFeatures")||new c.Z}get relatedLayer(){const{layer:e,map:t,relationship:i}=this;return e?.loaded&&t&&i?function(e,t,i){return e&&t&&i?ve(e.allLayers,t,i)||ve(e.allTables,t,i):null}(t,e,i)??null:null}get relationship(){const{relationshipId:e,layer:t}=this;return"number"==typeof e?t?.relationships?.find((({id:t})=>t===e))??null:null}get relatedFeatureViewModels(){return this._get("relatedFeatureViewModels")||new c.Z}get state(){const{_queryAbortController:e,_queryFeatureCountAbortController:t,_queryPageAbortController:i,canQuery:n,_loaded:s,canLoad:o}=this;return t||o&&!s?"loading":e||i?"querying":n?"ready":"disabled"}getRelatedFeatureByObjectId(e){return this.relatedFeatures.find((t=>t.getObjectId()===e))}refresh(){this._queryFeatureCountDebounced()}_destroyRelatedFeatureViewModels(){this.relatedFeatureViewModels?.forEach((e=>!e.destroyed&&e.destroy())),this.relatedFeatureViewModels.removeAll()}async _queryFeatureCount(){const{layer:e,relatedLayer:t,relationshipId:i,objectId:n,_queryFeatureCountAbortController:s,canQuery:o,supportsCacheHint:r}=this;if(await(e?.load()),await(t?.load()),!o||!e||!t)return void this._set("featureCount",0);const a=t.createQuery(),l=new It.default({cacheHint:r,relationshipId:i,returnGeometry:!1,objectIds:[n],where:a.where??void 0}),d=await e.queryRelatedFeaturesCount(l,{signal:s?.signal});this._set("featureCount",d[n]||0)}_sliceFeatures(e){const{showAllEnabled:t,displayCount:i}=this;return t?e:i?e.slice(0,i):[]}async _queryPage(){const{relatedFeatures:e,featurePage:t,showAllEnabled:i,_queryPageAbortController:n,featureCount:s}=this;!i||t<2||!s||e.addMany(await this._queryRelatedFeatures({signal:n?.signal}))}async _queryRelatedFeatures(e){const{orderByFieldsFixedCasing:t,showAllEnabled:i,featuresPerPage:n,displayCount:s,layer:o,relationshipId:r,featurePage:a,featureCount:l,relatedLayer:d,supportsCacheHint:c}=this,{canQuery:u,objectId:h}=this;if(!u||!o||!d)return[];const p=i?((a-1)*n+l)%l:0,m=i?n:s,f=d.objectIdField,g=[...t.map((e=>e.field)),...ci(d),f].filter(ht.pC),y=t.map((e=>`${e.field} ${e.order}`)),b=d.createQuery(),_=new It.default({orderByFields:y,start:p,num:m,outFields:g,cacheHint:c,relationshipId:r,returnGeometry:!1,objectIds:[h],where:b.where??void 0}),v=await o.queryRelatedFeatures(_,{signal:e?.signal}),w=v[h]?.features||[];return w.forEach((e=>{e.sourceLayer=d,e.layer=d})),w}};(0,n._)([(0,a.Cb)()],ui.prototype,"_loaded",void 0),(0,n._)([(0,a.Cb)()],ui.prototype,"_queryAbortController",void 0),(0,n._)([(0,a.Cb)()],ui.prototype,"_queryPageAbortController",void 0),(0,n._)([(0,a.Cb)()],ui.prototype,"_queryFeatureCountAbortController",void 0),(0,n._)([(0,a.Cb)({value:1})],ui.prototype,"featurePage",null),(0,n._)([(0,a.Cb)()],ui.prototype,"featuresPerPage",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],ui.prototype,"orderByFieldsFixedCasing",null),(0,n._)([(0,a.Cb)({readOnly:!0})],ui.prototype,"supportsCacheHint",null),(0,n._)([(0,a.Cb)({readOnly:!0})],ui.prototype,"canLoad",null),(0,n._)([(0,a.Cb)({readOnly:!0})],ui.prototype,"canQuery",null),(0,n._)([(0,a.Cb)()],ui.prototype,"description",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],ui.prototype,"itemDescriptionFieldName",null),(0,n._)([(0,a.Cb)({value:3})],ui.prototype,"displayCount",null),(0,n._)([(0,a.Cb)({type:I.Z})],ui.prototype,"graphic",void 0),(0,n._)([(0,a.Cb)()],ui.prototype,"layer",void 0),(0,n._)([(0,a.Cb)()],ui.prototype,"map",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],ui.prototype,"objectId",null),(0,n._)([(0,a.Cb)({readOnly:!0})],ui.prototype,"objectIdField",null),(0,n._)([(0,a.Cb)()],ui.prototype,"orderByFields",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],ui.prototype,"relatedFeatures",null),(0,n._)([(0,a.Cb)({readOnly:!0})],ui.prototype,"relatedLayer",null),(0,n._)([(0,a.Cb)({readOnly:!0})],ui.prototype,"relationship",null),(0,n._)([(0,a.Cb)()],ui.prototype,"featureCount",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],ui.prototype,"relatedFeatureViewModels",null),(0,n._)([(0,a.Cb)()],ui.prototype,"relationshipId",void 0),(0,n._)([(0,a.Cb)()],ui.prototype,"showAllEnabled",void 0),(0,n._)([(0,a.Cb)()],ui.prototype,"state",null),(0,n._)([(0,a.Cb)()],ui.prototype,"title",void 0),ui=(0,n._)([(0,l.j)("esri.widgets.Feature.FeatureRelationship.FeatureRelationshipViewModel")],ui);const hi=ui,pi="esri-feature",mi=`${pi}-relationship`,fi={base:mi,listContainer:`${mi}__list`,listItem:`${mi}__list-item`,listItemHidden:`${mi}__list-item--hidden`,listContainerQuerying:`${mi}__list--querying`,featureObserver:`${pi}__feature-observer`,stickySpinnerContainer:`${pi}__sticky-loading-container`,loadingSpinnerContainer:`${pi}__loading-container`,spinner:`${pi}__loading-spinner`},gi={title:!0,description:!0};let yi=class extends g.Z{constructor(e,t){super(e,t),this._featureElementInfo=null,this._relatedFeatureIntersectionObserverNode=null,this._relatedFeatureIntersectionObserver=new IntersectionObserver((([e])=>{e?.isIntersecting&&this._increaseFeaturePage()}),{root:window.document}),this.headingLevel=2,this.viewModel=new hi,this.messages=null,this.messagesCommon=null,this.visibleElements={...gi},this._increaseFeaturePage=()=>{const{state:e,showAllEnabled:t,relatedFeatures:i,featuresPerPage:n,featurePage:s}=this.viewModel;"ready"===e&&t&&i.length>=n*s&&this.viewModel.featurePage++}}initialize(){this._featureElementInfo=new He,this.addHandles([(0,r.YP)((()=>[this.viewModel.description,this.viewModel.title,this.headingLevel]),(()=>this._setupFeatureElementInfo()),r.nn),(0,r.YP)((()=>[this.viewModel.state,this.viewModel.showAllEnabled,this._relatedFeatureIntersectionObserverNode]),(()=>this._handleRelatedFeatureObserverChange())),(0,r.on)((()=>this.viewModel.relatedFeatureViewModels),"change",(()=>this._setupRelatedFeatureViewModels()))])}loadDependencies(){return(0,xe.h)({icon:()=>Promise.all([i.e(9145),i.e(7334)]).then(i.bind(i,47334)),list:()=>Promise.all([i.e(9145),i.e(2149),i.e(6324),i.e(69),i.e(4578)]).then(i.bind(i,4578)),"list-item":()=>Promise.all([i.e(9145),i.e(2149),i.e(9516),i.e(5693)]).then(i.bind(i,45693)),notice:()=>Promise.all([i.e(9145),i.e(2149),i.e(5247)]).then(i.bind(i,55247))})}destroy(){this._unobserveRelatedFeatureObserver(),this._featureElementInfo=(0,ri.SC)(this._featureElementInfo)}get displayShowAllButton(){const{showAllEnabled:e,featureCount:t,displayCount:i,state:n}=this.viewModel;return!e&&!!t&&"ready"===n&&(t>i||0===i)}get displayListItems(){return this.displayShowAllButton||this.viewModel.relatedFeatureViewModels.length>0}get description(){return this.viewModel.description}set description(e){this.viewModel.description=e}get featureCountDescription(){const{messages:e}=this,{featureCount:t}=this.viewModel;return(0,p.n)(e?.numberRecords,{number:t})}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}castVisibleElements(e){return{...gi,...e}}render(){const{state:e}=this.viewModel;return(0,Te.u)("div",{class:this.classes(fi.base,Le.z.widget)},this._featureElementInfo?.render(),"loading"===e?this._renderLoading():"disabled"===e?this._renderRelationshipNotFound():this._renderRelatedFeatures())}_renderStickyLoading(){return"querying"===this.viewModel.state?(0,Te.u)("div",{class:fi.stickySpinnerContainer,key:"sticky-loader"},this._renderLoadingIcon()):null}_renderLoadingIcon(){return(0,Te.u)("span",{class:this.classes(Ee.W.loadingIndicator,Le.z.rotating,fi.spinner)})}_renderLoading(){return(0,Te.u)("div",{class:fi.loadingSpinnerContainer,key:"loading-container"},this._renderLoadingIcon())}_renderShowAllIconNode(){return(0,Te.u)("calcite-icon",{icon:"list",scale:"s",slot:"content-end"})}_renderChevronIconNode(){const e=(0,ke.dZ)(this.container)?"chevron-left":"chevron-right";return(0,Te.u)("calcite-icon",{icon:e,scale:"s",slot:"content-end"})}_renderRelatedFeature(e){const{itemDescriptionFieldName:t}=this.viewModel,i=e.title;e.description=t&&e.formattedAttributes?.global[t];const n="loading"===e.state;return(0,Te.u)("calcite-list-item",{class:this.classes(fi.listItem,{[fi.listItemHidden]:n}),description:e.description??"",key:e.uid,label:i,onCalciteListItemSelect:()=>this.emit("select-record",{featureViewModel:e})},this._renderChevronIconNode())}_renderShowAllListItem(){return this.displayShowAllButton?(0,Te.u)("calcite-list-item",{description:this.featureCountDescription,key:"show-all-item",label:this.messages?.showAll,onCalciteListItemSelect:()=>this.emit("show-all-records")},this._renderShowAllIconNode()):null}_renderNoRelatedFeaturesMessage(){return(0,Te.u)("calcite-notice",{icon:"information",key:"no-related-features-message",kind:"brand",open:!0,scale:"s",width:"full"},(0,Te.u)("div",{slot:"message"},this.messages?.noRelatedFeatures))}_renderFeatureObserver(){return(0,Te.u)("div",{afterCreate:this._relatedFeatureIntersectionObserverCreated,bind:this,class:fi.featureObserver,key:"feature-observer"})}_renderList(){const{relatedFeatureViewModels:e}=this.viewModel;return(0,Te.u)("calcite-list",null,e.toArray().map((e=>this._renderRelatedFeature(e))),this._renderShowAllListItem())}_renderRelatedFeatures(){const{displayListItems:e}=this,{state:t}=this.viewModel;return(0,Te.u)("div",{class:this.classes(fi.listContainer,{[fi.listContainerQuerying]:"querying"===t}),key:"list-container"},e?this._renderList():"ready"===t?this._renderNoRelatedFeaturesMessage():null,this._renderStickyLoading(),this._renderFeatureObserver())}_renderRelationshipNotFound(){return(0,Te.u)("calcite-notice",{icon:"exclamation-mark-triangle",key:"relationship-not-found",kind:"danger",open:!0,scale:"s",width:"full"},(0,Te.u)("div",{slot:"message"},this.messages?.relationshipNotFound))}_setupRelatedFeatureViewModels(){const{relatedFeatureViewModels:e}=this.viewModel,t="related-feature-viewmodels";this.removeHandles(t),e?.forEach((e=>{this.addHandles((0,r.YP)((()=>[e.title,e.state]),(()=>this.scheduleRender()),r.nn),t)})),this.scheduleRender()}_setupFeatureElementInfo(){const{headingLevel:e,visibleElements:t}=this,i=t.description&&this.description,n=t.title&&this.title;this._featureElementInfo?.set({description:i,title:n,headingLevel:e})}async _handleRelatedFeatureObserverChange(){this._unobserveRelatedFeatureObserver();const{state:e,showAllEnabled:t}=this.viewModel;await(0,wt.e4)(0),this._relatedFeatureIntersectionObserverNode&&"ready"===e&&t&&this._relatedFeatureIntersectionObserver.observe(this._relatedFeatureIntersectionObserverNode)}_relatedFeatureIntersectionObserverCreated(e){this._relatedFeatureIntersectionObserverNode=e}_unobserveRelatedFeatureObserver(){this._relatedFeatureIntersectionObserverNode&&this._relatedFeatureIntersectionObserver.unobserve(this._relatedFeatureIntersectionObserverNode)}};(0,n._)([(0,a.Cb)()],yi.prototype,"_relatedFeatureIntersectionObserverNode",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],yi.prototype,"displayShowAllButton",null),(0,n._)([(0,a.Cb)({readOnly:!0})],yi.prototype,"displayListItems",null),(0,n._)([(0,a.Cb)()],yi.prototype,"description",null),(0,n._)([(0,a.Cb)({readOnly:!0})],yi.prototype,"featureCountDescription",null),(0,n._)([(0,a.Cb)()],yi.prototype,"headingLevel",void 0),(0,n._)([(0,a.Cb)()],yi.prototype,"title",null),(0,n._)([(0,a.Cb)({type:hi})],yi.prototype,"viewModel",void 0),(0,n._)([(0,a.Cb)(),(0,Pe.H)("esri/widgets/Feature/t9n/Feature")],yi.prototype,"messages",void 0),(0,n._)([(0,a.Cb)(),(0,Pe.H)("esri/t9n/common")],yi.prototype,"messagesCommon",void 0),(0,n._)([(0,a.Cb)()],yi.prototype,"visibleElements",void 0),(0,n._)([(0,f.p)("visibleElements")],yi.prototype,"castVisibleElements",null),yi=(0,n._)([(0,l.j)("esri.widgets.Feature.FeatureRelationship")],yi);const bi=yi;var _i;const vi="content-view-models",wi="relationship-view-models",Ci={attachmentsContent:!0,chartAnimation:!0,customContent:!0,expressionContent:!0,fieldsContent:!0,mediaContent:!0,textContent:!0,relationshipContent:!0};let Mi=_i=class extends((0,li.IG)(A.Z)){constructor(e){super(e),this._error=null,this._featureAbortController=null,this._graphicChangedThrottled=u(this._graphicChanged,1,this),this._expressionAttributes=null,this._graphicExpressionAttributes=null,this.abilities={...Ci},this.content=null,this.contentViewModels=[],this.description=null,this.defaultPopupTemplateEnabled=!1,this.formattedAttributes=null,this.lastEditInfo=null,this.location=null,this.relatedInfos=new Map,this.title="",this.view=null,this._isAllowedContentType=e=>{const{abilities:t}=this;return"attachments"===e.type&&!!t.attachmentsContent||"custom"===e.type&&!!t.customContent||"fields"===e.type&&!!t.fieldsContent||"media"===e.type&&!!t.mediaContent||"text"===e.type&&!!t.textContent||"expression"===e.type&&!!t.expressionContent||"relationship"===e.type&&!!t.relationshipContent},this.addHandles((0,r.YP)((()=>[this.graphic,this._effectivePopupTemplate,this.abilities,this.timeZone]),(()=>this._graphicChangedThrottled()),r.nn))}initialize(){this.addHandles(this._graphicChangedThrottled)}destroy(){this._clear(),this._cancelFeatureQuery(),this._error=null,this.graphic=null,this._destroyContentViewModels(),this.relatedInfos.clear()}get _effectivePopupTemplate(){return null!=this.graphic?this.graphic.getEffectivePopupTemplate(this.defaultPopupTemplateEnabled):null}get _fieldInfoMap(){return function(e,t){const i=new Map;return e?(e.forEach((e=>{const n=J(e.fieldName,t);e.fieldName=n,i.set(n.toLowerCase(),e)})),i):i}(de(this._effectivePopupTemplate),this._sourceLayer)}get _sourceLayer(){return H(this.graphic)}castAbilities(e){return{...Ci,...e}}get isTable(){return this._sourceLayer?.isTable||!1}get state(){return this.graphic?this._error?"error":this.waitingForContent?"loading":"ready":"disabled"}set graphic(e){this._set("graphic",e?.clone()??null)}get spatialReference(){return this.view?.spatialReference??null}set spatialReference(e){this._override("spatialReference",e)}get timeZone(){return this.view?.timeZone??$.By}set timeZone(e){this._overrideIfSome("timeZone",e)}get map(){return this.view?.map||null}set map(e){this._override("map",e)}get waitingForContent(){return!!this._featureAbortController}setActiveMedia(e,t){const i=this.contentViewModels[e];i instanceof St&&i.setActiveMedia(t)}nextMedia(e){const t=this.contentViewModels[e];t instanceof St&&t.next()}previousMedia(e){const t=this.contentViewModels[e];t instanceof St&&t.previous()}async updateGeometry(){const{graphic:e,spatialReference:t,_sourceLayer:i}=this;await(i?.load());const n=i?.objectIdField;if(!n||!e||!i)return;const s=e?.attributes?.[n];if(null==s)return;const o=[s];if(!e.geometry){const n=await me({layer:i,graphic:e,outFields:[],objectIds:o,returnGeometry:!0,spatialReference:t}),s=n?.geometry;s&&(e.geometry=s)}}_clear(){this._set("title",""),this._set("content",null),this._set("formattedAttributes",null)}async _graphicChanged(){this._cancelFeatureQuery(),this._error=null,this._clear();const{graphic:e}=this;if(!e)return;const t=new AbortController;this._featureAbortController=t;try{await this._queryFeature({signal:t.signal})}catch(t){(0,wt.D_)(t)||(this._error=t,o.Z.getLogger(this).error("error","The popupTemplate could not be displayed for this feature.",{error:t,graphic:e,popupTemplate:this._effectivePopupTemplate}))}this._featureAbortController===t&&(this._featureAbortController=null)}_cancelFeatureQuery(){const{_featureAbortController:e}=this;e&&e.abort(),this._featureAbortController=null}_compileContentElement(e,t){return"attachments"===e.type?this._compileAttachments(e,t):"custom"===e.type?this._compileCustom(e,t):"fields"===e.type?this._compileFields(e,t):"media"===e.type?this._compileMedia(e,t):"text"===e.type?this._compileText(e,t):"expression"===e.type?this._compileExpression(e,t):"relationship"===e.type?this._compileRelationship(e,t):void 0}_compileContent(e){if(this._destroyContentViewModels(),this.graphic)return Array.isArray(e)?e.filter(this._isAllowedContentType).map(((e,t)=>this._compileContentElement(e,t))).filter(ht.pC):"string"==typeof e?this._compileText(new qt.Z({text:e}),0).text:e}_destroyContentViewModels(){this.removeHandles(wi),this.removeHandles(vi),this.contentViewModels.forEach((e=>e&&!e.destroyed&&e.destroy())),this._set("contentViewModels",[])}_matchesFeature(e,t){const i=e?.graphic?.getObjectId(),n=t?.getObjectId();return null!=i&&null!=n&&i===n}_setRelatedFeaturesViewModels({relatedFeatureViewModels:e,relatedFeatures:t,map:i}){const{view:n,spatialReference:s}=this;t?.filter(Boolean).forEach((t=>{e.some((e=>this._matchesFeature(e,t)))||e.add(new _i({abilities:{relationshipContent:!1},map:i,view:n,spatialReference:s,graphic:t}))})),e.forEach((i=>{const n=t?.find((e=>this._matchesFeature(i,e)));n||e.remove(i)}))}_setExpressionContentVM(e,t){const i=this.formattedAttributes,{contentElement:n,contentElementViewModel:s}=e,o=n?.type;s&&o&&("fields"===o&&(this._createFieldsFormattedAttributes({contentElement:n,contentElementIndex:t,formattedAttributes:i}),s.set(this._createFieldsVMParams(n,t))),"media"===o&&(this._createMediaFormattedAttributes({contentElement:n,contentElementIndex:t,formattedAttributes:i}),s.set(this._createMediaVMParams(n,t))),"text"===o&&s.set(this._createTextVMParams(n)))}_compileRelationship(e,t){const{displayCount:i,orderByFields:n,relationshipId:s,title:o,description:a}=e,{_sourceLayer:l,graphic:d,map:c}=this;if(!oe(l))return;const u=new hi({displayCount:i,graphic:d,orderByFields:n,relationshipId:s,layer:l,map:c,...this._compileTitleAndDesc({title:o,description:a})});return this.contentViewModels[t]=u,this.addHandles((0,r.on)((()=>u.relatedFeatures),"change",(()=>this._setRelatedFeaturesViewModels(u))),wi),e}_compileExpression(e,t){const{expressionInfo:i}=e,{graphic:n,map:s,spatialReference:o,view:a,location:l}=this,d=new ti({expressionInfo:i,graphic:n,interceptor:_i.interceptor,map:s,spatialReference:o,view:a,location:l});return this.contentViewModels[t]=d,this.addHandles((0,r.YP)((()=>d.contentElementViewModel),(()=>this._setExpressionContentVM(d,t)),r.nn),vi),e}_compileAttachments(e,t){const{graphic:i}=this,{description:n,title:s}=e;return this.contentViewModels[t]=new ze({graphic:i,...this._compileTitleAndDesc({title:s,description:n})}),e}_compileCustom(e,t){const{graphic:i}=this,{creator:n,destroyer:s}=e;return this.contentViewModels[t]=new Je({graphic:i,creator:n,destroyer:s}),e}_compileTitleAndDesc({title:e,description:t}){const{_fieldInfoMap:i,_sourceLayer:n,graphic:s,formattedAttributes:o}=this,r=s?.attributes,a=this._expressionAttributes,l=o.global;return{title:ee({attributes:r,fieldInfoMap:i,globalAttributes:l,expressionAttributes:a,layer:n,text:e}),description:ee({attributes:r,fieldInfoMap:i,globalAttributes:l,expressionAttributes:a,layer:n,text:t})}}_createFieldsVMParams(e,t){const i=this._effectivePopupTemplate,n=this.formattedAttributes,s={...n?.global,...n?.content[t]},o=e?.fieldInfos||i?.fieldInfos,r=o?.filter((({fieldName:e})=>G(e)||ge(e)||s.hasOwnProperty(e))),a=i?.expressionInfos,{description:l,title:d}=e;return{attributes:s,expressionInfos:a,fieldInfos:r,...this._compileTitleAndDesc({title:d,description:l})}}_compileFields(e,t){const i=e.clone(),n=new rt(this._createFieldsVMParams(e,t));return this.contentViewModels[t]=n,i.fieldInfos=n.formattedFieldInfos.slice(0),i}_createMediaVMParams(e,t){const{abilities:i,graphic:n,_fieldInfoMap:s,_effectivePopupTemplate:o,relatedInfos:r,_sourceLayer:a,_expressionAttributes:l}=this,d=this.formattedAttributes,c=n?.attributes??{},{description:u,mediaInfos:h,title:p}=e;return{abilities:{chartAnimation:i.chartAnimation},activeMediaInfoIndex:e.activeMediaInfoIndex||0,attributes:c,isAggregate:n?.isAggregate,layer:a,fieldInfoMap:s,formattedAttributes:{...d?.global,...d?.content[t]},expressionAttributes:l,mediaInfos:h,popupTemplate:o,relatedInfos:r,...this._compileTitleAndDesc({title:p,description:u})}}_compileMedia(e,t){const i=e.clone(),n=new St(this._createMediaVMParams(e,t));return i.mediaInfos=n.formattedMediaInfos.slice(0),this.contentViewModels[t]=n,i}_createTextVMParams(e){const{graphic:t,_fieldInfoMap:i,_sourceLayer:n,_expressionAttributes:s}=this;if(e&&e.text){const o=t?.attributes??{},r=this.formattedAttributes?.global??{};e.text=ee({attributes:o,fieldInfoMap:i,globalAttributes:r,expressionAttributes:s,layer:n,text:e.text})}return{graphic:t,creator:e.text}}_compileText(e,t){const i=e.clone();return this.contentViewModels[t]=new Je(this._createTextVMParams(i)),i}_compileLastEditInfo(){const{_effectivePopupTemplate:e,_sourceLayer:t,graphic:i,timeZone:n}=this;if(!e)return;const{lastEditInfoEnabled:s}=e,o=t?.editFieldsInfo;return s&&o?function(e,t,i,n){const{creatorField:s,creationDateField:o,editorField:r,editDateField:a}=e;if(!t)return;const l=(0,$.Np)(n&&"preferredTimeZone"in n?n.preferredTimeZone:null,!(!n||!("datesInUnknownTimezone"in n)||!n.datesInUnknownTimezone),i,q,"date"),d={...q,...l},c=t[a];if("number"==typeof c){const e=t[r];return{type:"edit",date:(0,E.p6)(c,d),user:e}}const u=t[o];if("number"==typeof u){const e=t[s];return{type:"create",date:(0,E.p6)(u,d),user:e}}return null}(o,i?.attributes,n,t):void 0}_compileTitle(e){const{_fieldInfoMap:t,_sourceLayer:i,graphic:n,_expressionAttributes:s}=this;return ee({attributes:n?.attributes??{},fieldInfoMap:t,globalAttributes:this.formattedAttributes?.global??{},expressionAttributes:s,layer:i,text:e})}async _getTitle(){const{_effectivePopupTemplate:e,graphic:t}=this;if(!t)return null;const i=e?.title;return Y(i,{graphic:t})}async _getContent(){const{_effectivePopupTemplate:e,graphic:t}=this;if(!t)return null;const i=e?.content;return Y(i,{graphic:t})}async _queryFeature(e){const{_featureAbortController:t,_sourceLayer:i,graphic:n,_effectivePopupTemplate:s}=this,o=this.map,r=this.view,a=this.spatialReference,l=this.location;if(t!==this._featureAbortController||!n)return;await fe({graphic:n,popupTemplate:s,layer:i,spatialReference:a},e);const{content:{value:d},title:{value:c}}=await(0,wt.as)({content:this._getContent(),title:this._getTitle()}),{expressionAttributes:{value:u}}=await(0,wt.as)({checkForRelatedFeatures:this._checkForRelatedFeatures(e),expressionAttributes:Kt({expressionInfos:s?.expressionInfos,spatialReference:a,graphic:n,map:o,interceptor:_i.interceptor,view:r,options:e,location:l})});t===this._featureAbortController&&n&&(this._expressionAttributes=u,this._graphicExpressionAttributes={...n.attributes,...u},this._set("formattedAttributes",this._createFormattedAttributes(d)),this._set("title",this._compileTitle(c)),this._set("lastEditInfo",this._compileLastEditInfo()||null),this._set("content",this._compileContent(d)||null))}_createMediaFormattedAttributes({contentElement:e,contentElementIndex:t,formattedAttributes:i}){const{_effectivePopupTemplate:n,graphic:s,relatedInfos:o,_sourceLayer:r,_fieldInfoMap:a,_graphicExpressionAttributes:l,timeZone:d}=this;i.content[t]=pe({fieldInfos:n?.fieldInfos,graphic:s,attributes:{...l,...e.attributes},layer:r,fieldInfoMap:a,relatedInfos:o,timeZone:d})}_createFieldsFormattedAttributes({contentElement:e,contentElementIndex:t,formattedAttributes:i}){if(e.fieldInfos){const{graphic:n,relatedInfos:s,_sourceLayer:o,_fieldInfoMap:r,_graphicExpressionAttributes:a,timeZone:l}=this;i.content[t]=pe({fieldInfos:e.fieldInfos,graphic:n,attributes:{...a,...e.attributes},layer:o,fieldInfoMap:r,relatedInfos:s,timeZone:l})}}_createFormattedAttributes(e){const{_effectivePopupTemplate:t,graphic:i,relatedInfos:n,_sourceLayer:s,_fieldInfoMap:o,_graphicExpressionAttributes:r,timeZone:a}=this,l=t?.fieldInfos,d={global:pe({fieldInfos:l,graphic:i,attributes:r,layer:s,fieldInfoMap:o,relatedInfos:n,timeZone:a}),content:[]};return Array.isArray(e)&&e.forEach(((e,t)=>{"fields"===e.type&&this._createFieldsFormattedAttributes({contentElement:e,contentElementIndex:t,formattedAttributes:d}),"media"===e.type&&this._createMediaFormattedAttributes({contentElement:e,contentElementIndex:t,formattedAttributes:d})})),d}_checkForRelatedFeatures(e){const{graphic:t,_effectivePopupTemplate:i}=this;return this._queryRelatedInfos(t,de(i),e)}async _queryRelatedInfos(e,t,i){const{relatedInfos:n,_sourceLayer:s}=this;n.clear();const o=null!=s?.associatedLayer?await(s?.associatedLayer.load(i)):s;if(!o||!e)return;const r=t.filter((e=>e&&ge(e.fieldName)));if(!r?.length)return;t.forEach((e=>this._configureRelatedInfo(e,o)));const a=await Tt({relatedInfos:n,layer:o},i);Object.keys(a).forEach((e=>{const t=n.get(e.toString()),i=a[e]?.value;t&&i&&(t.layerInfo=i.data)}));const l=await function({graphic:e,relatedInfos:t,layer:i},n){const s={};return t.forEach(((t,o)=>{t.layerInfo&&(s[o]=Pt(e,t,i,n))})),(0,wt.as)(s)}({graphic:e,relatedInfos:n,layer:o},i);Object.keys(l).forEach((e=>{!function(e,t){if(!t)return;if(!e)return;const{features:i,statsFeatures:n}=e,s=i?.value;t.relatedFeatures=s?s.features:[];const o=n?.value;t.relatedStatsFeatures=o?o.features:[]}(l[e]?.value,n.get(e.toString()))}))}_configureRelatedInfo(e,t){const{relatedInfos:i}=this,n=Et(e.fieldName);if(!n)return;const{layerId:s,fieldName:o}=n;if(!s)return;const r=i.get(s.toString())||kt(s,t);r&&(function({relatedInfo:e,fieldName:t,fieldInfo:i}){if(e.relatedFields?.push(t),i.statisticType){const n=new At.Z({statisticType:i.statisticType,onStatisticField:t,outStatisticFieldName:t});e.outStatistics?.push(n)}}({relatedInfo:r,fieldName:o,fieldInfo:e}),this.relatedInfos.set(s,r))}};Mi.interceptor=new class{constructor(e,t){this.preLayerQueryCallback=e,this.preRequestCallback=t,this.preLayerQueryCallback||(this.preLayerQueryCallback=e=>{}),this.preRequestCallback||(this.preLayerQueryCallback=e=>{})}}((({query:e,layer:t,method:i})=>{_e({layer:t,method:i,query:e,definitionExpression:`${t.definitionExpression} ${t.serviceDefinitionExpression}`})}),(({queryPayload:e,layer:t,method:i})=>{_e({layer:t,method:i,query:e,definitionExpression:`${t.definitionExpression} ${t.serviceDefinitionExpression}`})})),(0,n._)([(0,a.Cb)()],Mi.prototype,"_error",void 0),(0,n._)([(0,a.Cb)()],Mi.prototype,"_featureAbortController",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],Mi.prototype,"_effectivePopupTemplate",null),(0,n._)([(0,a.Cb)({readOnly:!0})],Mi.prototype,"_fieldInfoMap",null),(0,n._)([(0,a.Cb)({readOnly:!0})],Mi.prototype,"_sourceLayer",null),(0,n._)([(0,a.Cb)()],Mi.prototype,"abilities",void 0),(0,n._)([(0,f.p)("abilities")],Mi.prototype,"castAbilities",null),(0,n._)([(0,a.Cb)({readOnly:!0})],Mi.prototype,"content",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],Mi.prototype,"contentViewModels",void 0),(0,n._)([(0,a.Cb)()],Mi.prototype,"description",void 0),(0,n._)([(0,a.Cb)({type:Boolean})],Mi.prototype,"defaultPopupTemplateEnabled",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],Mi.prototype,"isTable",null),(0,n._)([(0,a.Cb)({readOnly:!0})],Mi.prototype,"state",null),(0,n._)([(0,a.Cb)({readOnly:!0})],Mi.prototype,"formattedAttributes",void 0),(0,n._)([(0,a.Cb)({type:I.Z,value:null})],Mi.prototype,"graphic",null),(0,n._)([(0,a.Cb)({readOnly:!0})],Mi.prototype,"lastEditInfo",void 0),(0,n._)([(0,a.Cb)({type:Mt.Z})],Mi.prototype,"location",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],Mi.prototype,"relatedInfos",void 0),(0,n._)([(0,a.Cb)()],Mi.prototype,"spatialReference",null),(0,n._)([(0,a.Cb)()],Mi.prototype,"timeZone",null),(0,n._)([(0,a.Cb)({readOnly:!0})],Mi.prototype,"title",void 0),(0,n._)([(0,a.Cb)()],Mi.prototype,"map",null),(0,n._)([(0,a.Cb)({readOnly:!0})],Mi.prototype,"waitingForContent",null),(0,n._)([(0,a.Cb)()],Mi.prototype,"view",void 0),Mi=_i=(0,n._)([(0,l.j)("esri.widgets.Feature.FeatureViewModel")],Mi);const Fi=Mi,Ii="esri-feature",Ai={base:Ii,container:`${Ii}__size-container`,title:`${Ii}__title`,main:`${Ii}__main-container`,btn:`${Ii}__button`,icon:`${Ii}__icon`,content:`${Ii}__content`,contentNode:`${Ii}__content-node`,contentNodeText:`${Ii}__content-node--text`,contentElement:`${Ii}__content-element`,text:`${Ii}__text`,lastEditedInfo:`${Ii}__last-edited-info`,fields:`${Ii}__fields`,fieldHeader:`${Ii}__field-header`,fieldData:`${Ii}__field-data`,fieldDataDate:`${Ii}__field-data--date`,loadingSpinnerContainer:`${Ii}__loading-container`,spinner:`${Ii}__loading-spinner`},xi=e=>{let t=class extends e{constructor(){super(...arguments),this.renderNodeContent=e=>Xe(e)&&!e.destroyed?(0,Te.u)("div",{class:Ai.contentNode,key:e},e.render()):e instanceof HTMLElement?(0,Te.u)("div",{afterCreate:this._attachToNode,bind:e,class:Ai.contentNode,key:e}):function(e){return e&&"function"==typeof e.postMixInProperties&&"function"==typeof e.buildRendering&&"function"==typeof e.postCreate&&"function"==typeof e.startup}(e)?(0,Te.u)("div",{afterCreate:this._attachToNode,bind:e.domNode,class:Ai.contentNode,key:e}):null}_attachToNode(e){e.appendChild(this)}};return t=(0,n._)([(0,l.j)("esri.widgets.Feature.ContentMixin")],t),t};var Li;const Ei={title:!0,content:!0,lastEditedInfo:!0},ki="relationship-handles";let Pi=Li=class extends(xi(g.Z)){constructor(e,t){super(e,t),this._contentWidgets=[],this.flowItems=null,this.headingLevel=2,this.messages=null,this.messagesCommon=null,this.visibleElements={...Ei},this.viewModel=new Fi}initialize(){this.addHandles((0,r.YP)((()=>this.viewModel?.contentViewModels),(()=>this._setupContentWidgets()),r.nn))}loadDependencies(){return(0,xe.h)({notice:()=>Promise.all([i.e(9145),i.e(2149),i.e(5247)]).then(i.bind(i,55247))})}destroy(){this._destroyContentWidgets()}get graphic(){return this.viewModel.graphic}set graphic(e){this.viewModel.graphic=e}get defaultPopupTemplateEnabled(){return this.viewModel.defaultPopupTemplateEnabled}set defaultPopupTemplateEnabled(e){this.viewModel.defaultPopupTemplateEnabled=e}get isTable(){return this.viewModel.isTable}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get spatialReference(){return this.viewModel.spatialReference}set spatialReference(e){this.viewModel.spatialReference=e}get timeZone(){return this.viewModel.timeZone}set timeZone(e){this.viewModel.timeZone=e}get title(){return this.viewModel.title}castVisibleElements(e){return{...Ei,...e}}get map(){return this.viewModel.map}set map(e){this.viewModel.map=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}setActiveMedia(e,t){return this.viewModel.setActiveMedia(e,t)}nextMedia(e){return this.viewModel.nextMedia(e)}previousMedia(e){return this.viewModel.previousMedia(e)}render(){const{state:e}=this.viewModel,t=(0,Te.u)("div",{class:Ai.container,key:"container"},this._renderTitle(),"error"===e?this._renderError():"loading"===e?this._renderLoading():this._renderContentContainer());return(0,Te.u)("div",{class:this.classes(Ai.base,Le.z.widget)},t)}_renderError(){const{messagesCommon:e,messages:t,visibleElements:i}=this;return(0,Te.u)("calcite-notice",{icon:"exclamation-mark-circle",kind:"danger",open:!0,scale:"s"},i.title?(0,Te.u)("div",{key:"error-title",slot:"title"},e.errorMessage):null,(0,Te.u)("div",{key:"error-message",slot:"message"},t.loadingError))}_renderLoading(){return(0,Te.u)("div",{class:Ai.loadingSpinnerContainer,key:"loading-container"},(0,Te.u)("span",{class:this.classes(Ee.W.loadingIndicator,Le.z.rotating,Ai.spinner)}))}_renderContentContainer(){const{visibleElements:e}=this;return e.content?(0,Te.u)("div",{class:Ai.main},[this._renderContent(),this._renderLastEditInfo()]):null}_renderTitle(){const{visibleElements:e,title:t}=this;return e.title?(0,Te.u)(Be,{class:Ai.title,innerHTML:t,level:this.headingLevel}):null}_renderContent(){const e=this.viewModel.content,t="content";if(!e)return null;if(Array.isArray(e))return e.length?(0,Te.u)("div",{class:Ai.contentNode,key:`${t}-content-elements`},e.map(this._renderContentElement,this)):null;if("string"==typeof e){const e=this._contentWidgets[0];return!e||e.destroyed?null:(0,Te.u)("div",{class:this.classes(Ai.contentNode,Ai.contentNodeText),key:`${t}-content`},e.render())}return this.renderNodeContent(e)}_renderContentElement(e,t){const{visibleElements:i}=this;if("boolean"!=typeof i.content&&!i.content?.[e.type])return null;switch(e.type){case"attachments":return this._renderAttachments(t);case"custom":return this._renderCustom(e,t);case"fields":return this._renderFields(t);case"media":return this._renderMedia(t);case"text":return this._renderText(e,t);case"expression":return this._renderExpression(t);case"relationship":return this._renderRelationship(t);default:return null}}_renderAttachments(e){const t=this._contentWidgets[e];if(!t||t.destroyed)return null;const{state:i,attachmentInfos:n}=t.viewModel;return"loading"===i||n.length>0?(0,Te.u)("div",{class:this.classes(Ai.contentElement),key:this._buildKey("attachments-element",e)},t.render()):null}_renderRelationship(e){const t=this._contentWidgets[e];return t&&!t.destroyed&&this.flowItems?(0,Te.u)("div",{class:Ai.contentElement,key:this._buildKey("relationship-element",e)},t.render()):null}_renderExpression(e){const t=this._contentWidgets[e];return!t||t.destroyed?null:(0,Te.u)("div",{class:Ai.contentElement,key:this._buildKey("expression-element",e)},t.render())}_renderCustom(e,t){const{creator:i}=e,n=this._contentWidgets[t];return!n||n.destroyed?null:i?(0,Te.u)("div",{class:Ai.contentElement,key:this._buildKey("custom-element",t)},n.render()):null}_renderFields(e){const t=this._contentWidgets[e];return!t||t.destroyed?null:(0,Te.u)("div",{class:Ai.contentElement,key:this._buildKey("fields-element",e)},t.render())}_renderMedia(e){const t=this._contentWidgets[e];return!t||t.destroyed?null:(0,Te.u)("div",{class:Ai.contentElement,key:this._buildKey("media-element",e)},t.render())}_renderLastEditInfo(){const{visibleElements:e,messages:t}=this,{lastEditInfo:i}=this.viewModel;if(!i||!e.lastEditedInfo)return null;const{date:n,user:s}=i,o="edit"===i.type?s?t.lastEditedByUser:t.lastEdited:s?t.lastCreatedByUser:t.lastCreated,r=(0,p.n)(o,{date:n,user:s});return(0,Te.u)("div",{class:this.classes(Ai.lastEditedInfo,Ai.contentElement),key:"edit-info-element"},r)}_renderText(e,t){const i=e.text,n=this._contentWidgets[t];return!n||n.destroyed?null:i?(0,Te.u)("div",{class:this.classes(Ai.contentElement,Ai.text),key:this._buildKey("text-element",t)},n.render()):null}_buildKey(e,...t){return`${e}__${this.viewModel?.graphic?.uid||"0"}-${t.join("-")}`}_destroyContentWidget(e){e&&(e.viewModel=null,!e.destroyed&&e.destroy())}_destroyContentWidgets(){this.removeHandles(ki),this._contentWidgets.forEach((e=>this._destroyContentWidget(e))),this._contentWidgets=[]}_addFeatureRelationshipHandles(e){const{flowItems:t,visibleElements:i}=this;this.addHandles([(0,r.on)((()=>e),"select-record",(({featureViewModel:e})=>{t&&(e.abilities={relationshipContent:!0},t.push(new Li({flowItems:t,viewModel:e,visibleElements:i})))})),(0,r.on)((()=>e),"show-all-records",(()=>{if(!t)return;const{viewModel:i}=e;i.showAllEnabled=!0;const n=new bi({visibleElements:{title:!1,description:!1},viewModel:i});this._addFeatureRelationshipHandles(n),t.push(n)}))],ki)}_setupContentWidgets(){this._destroyContentWidgets();const{headingLevel:e,visibleElements:t}=this,i=this.viewModel?.content,{contentViewModels:n}=this.viewModel;if(Array.isArray(i))i.forEach(((i,s)=>{if("attachments"===i.type&&(this._contentWidgets[s]=new Ge({displayType:i.displayType,headingLevel:t.title?e+1:e,viewModel:n[s]})),"fields"===i.type&&(this._contentWidgets[s]=new ut({viewModel:n[s]})),"media"===i.type&&(this._contentWidgets[s]=new Dt({viewModel:n[s]})),"text"===i.type&&(this._contentWidgets[s]=new it({viewModel:n[s]})),"custom"===i.type&&(this._contentWidgets[s]=new it({viewModel:n[s]})),"expression"===i.type&&(this._contentWidgets[s]=new oi({viewModel:n[s]})),"relationship"===i.type){const e=new bi({viewModel:n[s]});this._addFeatureRelationshipHandles(e),this._contentWidgets[s]=e}}),this);else{const e=n[0];e&&!e.destroyed&&(this._contentWidgets[0]=new it({viewModel:e}))}this.scheduleRender()}};(0,n._)([(0,a.Cb)()],Pi.prototype,"graphic",null),(0,n._)([(0,a.Cb)()],Pi.prototype,"defaultPopupTemplateEnabled",null),(0,n._)([(0,a.Cb)()],Pi.prototype,"flowItems",void 0),(0,n._)([(0,a.Cb)()],Pi.prototype,"headingLevel",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],Pi.prototype,"isTable",null),(0,n._)([(0,a.Cb)()],Pi.prototype,"label",null),(0,n._)([(0,a.Cb)(),(0,Pe.H)("esri/widgets/Feature/t9n/Feature")],Pi.prototype,"messages",void 0),(0,n._)([(0,a.Cb)(),(0,Pe.H)("esri/t9n/common")],Pi.prototype,"messagesCommon",void 0),(0,n._)([(0,a.Cb)()],Pi.prototype,"spatialReference",null),(0,n._)([(0,a.Cb)()],Pi.prototype,"timeZone",null),(0,n._)([(0,a.Cb)({readOnly:!0})],Pi.prototype,"title",null),(0,n._)([(0,a.Cb)()],Pi.prototype,"visibleElements",void 0),(0,n._)([(0,f.p)("visibleElements")],Pi.prototype,"castVisibleElements",null),(0,n._)([(0,a.Cb)()],Pi.prototype,"map",null),(0,n._)([(0,a.Cb)()],Pi.prototype,"view",null),(0,n._)([(0,a.Cb)({type:Fi})],Pi.prototype,"viewModel",void 0),Pi=Li=(0,n._)([(0,l.j)("esri.widgets.Feature")],Pi);const Ti=Pi;var Ri=i(31355),$i=i(28105);let Si=class extends Ri.Z.EventedAccessor{constructor(e){super(e),this.location=null,this.screenLocationEnabled=!1,this.view=null,this.addHandles([(0,r.gx)((()=>{const e=this.screenLocationEnabled?this.view:null;return e?[e.size,"3d"===e.type?e.camera:e.viewpoint]:null}),(()=>this.notifyChange("screenLocation"))),(0,r.YP)((()=>this.screenLocation),((e,t)=>{null!=e&&null!=t&&this.emit("view-change")}))])}destroy(){this.view=null}get screenLocation(){const{location:e,view:t,screenLocationEnabled:i}=this,n=t?.spatialReference,s=n?(0,$i.projectOrLoad)(e,n).geometry:null;return i&&s&&t?.ready?t.toScreen(s):null}};(0,n._)([(0,a.Cb)()],Si.prototype,"location",void 0),(0,n._)([(0,a.Cb)()],Si.prototype,"screenLocation",null),(0,n._)([(0,a.Cb)()],Si.prototype,"screenLocationEnabled",void 0),(0,n._)([(0,a.Cb)()],Si.prototype,"view",void 0),Si=(0,n._)([(0,l.j)("esri.widgets.support.AnchorElementViewModel")],Si);const Zi=Si;let Ni=class extends Zi{constructor(e){super(e),this.visible=!1}};(0,n._)([(0,a.Cb)()],Ni.prototype,"visible",void 0),Ni=(0,n._)([(0,l.j)("esri.widgets.CompassViewModel")],Ni);const Oi=Ni,Vi="esri-spinner",zi=Vi,Bi=`${Vi}--start`,Di=`${Vi}--finish`;let ji=class extends g.Z{constructor(e,t){super(e,t),this._animationDelay=500,this._animationPromise=null,this.viewModel=new Oi}initialize(){this.addHandles((0,r.YP)((()=>this.visible),(e=>this._visibleChange(e))))}destroy(){this._animationPromise=null}get location(){return this.viewModel.location}set location(e){this.viewModel.location=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}show(e){const{location:t,promise:i}=e??{};t&&(this.viewModel.location=t),this.visible=!0;i&&i.catch((()=>{})).then((()=>this.hide()))}hide(){this.visible=!1}render(){const{visible:e}=this,{screenLocation:t}=this.viewModel,i=!!t,n={[Bi]:e&&i,[Di]:!e&&i},s=this._getPositionStyles();return(0,Te.u)("div",{class:this.classes(zi,n),styles:s})}_visibleChange(e){if(e)return void(this.viewModel.screenLocationEnabled=!0);const t=(0,wt.e4)(this._animationDelay);this._animationPromise=t,t.catch((()=>{})).then((()=>{this._animationPromise===t&&(this.viewModel.screenLocationEnabled=!1,this._animationPromise=null)}))}_getPositionStyles(){const{screenLocation:e,view:t}=this.viewModel;if(null==t||null==e)return{};const{padding:i}=t;return{left:e.x-i.left+"px",top:e.y-i.top+"px"}}};(0,n._)([(0,a.Cb)()],ji.prototype,"location",null),(0,n._)([(0,a.Cb)()],ji.prototype,"view",null),(0,n._)([(0,a.Cb)({type:Oi})],ji.prototype,"viewModel",void 0),(0,n._)([(0,a.Cb)()],ji.prototype,"visible",null),ji=(0,n._)([(0,l.j)("esri.widgets.Spinner")],ji);const Wi=ji,qi="esri-features",Hi={icon:`${qi}__icon`,actionImage:`${qi}__action-image`,base:qi,container:`${qi}__container`,contentContainer:`${qi}__content-container`,contentFeature:`${qi}__content-feature`,flowItemCollapsed:`${qi}__flow-item--collapsed`,header:`${qi}__header`,footer:`${qi}__footer`,featureMenuObserver:`${qi}__feature-menu-observer`,actionExit:`${qi}__action--exit`,loader:`${qi}__loader`,featuresHeading:`${qi}__heading`,paginationActionBar:`${qi}__pagination-action-bar`,paginationPrevious:`${qi}__pagination-previous`,paginationNext:`${qi}__pagination-next`};let Yi=class extends g.Z{constructor(e,t){super(e,t),this.messages=null,this.closed=!1,this.closable=!0,this._handleOpenRelatedFeature=e=>{this.emit("open-related-feature",{feature:e})}}loadDependencies(){return(0,xe.h)({action:()=>Promise.all([i.e(9145),i.e(2149),i.e(9516),i.e(953)]).then(i.bind(i,30953)),"flow-item":()=>Promise.all([i.e(9145),i.e(2149),i.e(9516),i.e(85),i.e(6663),i.e(9060)]).then(i.bind(i,49060))})}render(){const{flowItems:e}=this,t=e?.toArray();return(0,Te.u)(Te.D,null,t?.map((e=>this._renderRelatedRecordsFlowItem(e))))}_handleCloseClick(){this.emit("close")}_handleExitClick(){this.emit("exit")}_handleRelatedRecordsBackClick(){const e=this.flowItems?.pop();e&&("showAllEnabled"in e.viewModel&&(e.viewModel.showAllEnabled=!1),e&&(e.viewModel=null,e.destroy()))}_renderRelatedRecordsFlowItem(e){const{messages:t,closable:i,closed:n}=this,s="graphic"in e&&!e.isTable;return(0,Te.u)("calcite-flow-item",{bind:this,closable:i,closed:n,description:this._getRelatedRecordsFlowItemDescription(e),heading:e.title??"",key:`flow-item-${e.viewModel.uid}`,onCalciteFlowItemBack:e=>{e.preventDefault(),this._handleRelatedRecordsBackClick()},onCalciteFlowItemClose:this._handleCloseClick},(0,Te.u)("calcite-action",{appearance:"transparent",bind:this,class:Hi.actionExit,icon:"move-up",key:"exit-related-records-action",label:t.exitRelatedRecords,onclick:this._handleExitClick,scale:"m",slot:"header-actions-start",text:t.exitRelatedRecords,title:t.exitRelatedRecords}),s?(0,Te.u)("calcite-action",{appearance:"transparent",bind:this,icon:"zoom-to-object",key:"open-related-feature-action",label:t.selectFeature,onclick:()=>this._handleOpenRelatedFeature(e),scale:"m",slot:"header-actions-end",text:t.selectFeature,title:t.selectFeature}):null,(0,Te.u)("div",{class:Hi.container},e.render()))}_getRelatedRecordsFlowItemDescription(e){return"featureCountDescription"in e?e.featureCountDescription:e.viewModel.description??""}};(0,n._)([(0,a.Cb)()],Yi.prototype,"flowItems",void 0),(0,n._)([(0,a.Cb)(),(0,Pe.H)("esri/widgets/Features/t9n/Features")],Yi.prototype,"messages",void 0),(0,n._)([(0,a.Cb)()],Yi.prototype,"closed",void 0),(0,n._)([(0,a.Cb)()],Yi.prototype,"closable",void 0),Yi=(0,n._)([(0,l.j)("esri.widgets.Features.FeaturesRelatedRecords")],Yi);const Ui=Yi;i(4905);var Gi=i(55860),Qi=i(26096);class Ji{constructor(e){this._observable=new Qi.s,this._set=new Set(e)}get size(){return(0,Gi.it)(this._observable),this._set.size}add(e){const t=this._set.size;return this._set.add(e),this._set.size!==t&&this._observable.notify(),this}clear(){this._set.size>0&&(this._set.clear(),this._observable.notify())}delete(e){const t=this._set.delete(e);return t&&this._observable.notify(),t}entries(){return(0,Gi.it)(this._observable),this._set.entries()}forEach(e,t){(0,Gi.it)(this._observable),this._set.forEach(((i,n)=>e.call(t,i,n,this)),t)}has(e){return(0,Gi.it)(this._observable),this._set.has(e)}keys(){return(0,Gi.it)(this._observable),this._set.keys()}values(){return(0,Gi.it)(this._observable),this._set.values()}[Symbol.iterator](){return(0,Gi.it)(this._observable),this._set[Symbol.iterator]()}get[Symbol.toStringTag](){return this._set[Symbol.toStringTag]}}var Xi=i(39536),Ki=i(38481);const en="OBJECTID";i(89298),i(83773),i(5840),i(13266);i(67134),i(7073);function tn(e){return e&&"opacity"in e?e.opacity*tn(e.parent):1}async function nn(e,t){if(!e)return;const n=e.sourceLayer,s=(null!=t&&t.useSourceLayer?n:e.layer)??n,o=tn(s);if(null!=e.symbol&&(null==t||!0!==t.ignoreGraphicSymbol)){const i="web-style"===e.symbol.type?await(0,mt.Q8)(e.symbol,{...t,cache:null!=t?t.webStyleCache:null}):e.symbol.clone();return(0,mt.tb)(i,null,o),i}const r=t?.renderer??sn(s);let a=r&&"getSymbolAsync"in r?await r.getSymbolAsync(e,t):null;if(!a)return;if(a="web-style"===a.type?await a.fetchSymbol({...t,cache:null!=t?t.webStyleCache:null}):a.clone(),!r||!("visualVariables"in r)||!r.visualVariables?.length)return(0,mt.tb)(a,null,o),a;if("arcadeRequiredForVisualVariables"in r&&r.arcadeRequiredForVisualVariables&&null==t?.arcade){const e={...t};e.arcade=await(0,R.LC)(),t=e}const{getColor:l,getOpacity:d,getAllSizes:c,getRotationAngle:u}=await Promise.resolve().then(i.bind(i,36496)),h=[],p=[],m=[],f=[];for(const e of r.visualVariables)switch(e.type){case"color":h.push(e);break;case"opacity":p.push(e);break;case"rotation":f.push(e);break;case"size":e.target||m.push(e)}const g=!!h.length&&h[h.length-1],y=g?l(g,e,t):null,b=!!p.length&&p[p.length-1];let _=b?d(b,e,t):null;if(null!=o&&(_=null!=_?_*o:o),(0,mt.tb)(a,y,_),m.length){const i=c(m,e,t);await(0,mt.e3)(a,i)}for(const i of f)(0,mt.BR)(a,u(i,e,t),i.axis);return a}function sn(e){if(e)return"renderer"in e?e.renderer:void 0}var on=i(42780),rn=i(83258),an=i(15600);const ln=c.Z.ofType({key:"type",defaultKeyValue:"button",base:rn.Z,typeMap:{button:d.Z,toggle:an.Z}}),dn=new d.Z({icon:"magnifying-glass-plus",id:"zoom-to-feature",title:"{messages.zoom}",className:Ee.W.zoomInMagnifyingGlass}),cn=new d.Z({icon:"trash",id:"remove-selected-feature",title:"{messages.remove}",className:Ee.W.trash}),un=new d.Z({icon:"magnifying-glass-plus",id:"zoom-to-clustered-features",title:"{messages.zoom}",className:Ee.W.zoomInMagnifyingGlass}),hn=new an.Z({icon:"table",id:"browse-clustered-features",title:"{messages.browseClusteredFeatures}",className:Ee.W.table,value:!1}),pn=()=>o.Z.getLogger("esri.widgets.Popup.PopupViewModel"),mn=e=>{const{event:t,view:i,viewModel:n}=e,{action:s}=t;if(!s)return Promise.reject(new y.Z("trigger-action:missing-arguments","Event has no action"));const{disabled:o,id:r}=s;if(!r)return Promise.reject(new y.Z("trigger-action:invalid-action","action.id is missing"));if(o)return Promise.reject(new y.Z("trigger-action:invalid-action","Action is disabled"));if(r===dn.id)return async function(e){const{location:t,selectedFeature:i,view:n,zoomFactor:s}=e,o=fn(e);if(!n||!o){const e=new y.Z("zoom-to:invalid-target-or-view","Cannot zoom to location without a target and view.",{target:o,view:n});throw pn().error(e),e}const r=n.scale/s,a=e.selectedFeature?.geometry,l=a??t,d=null!=l&&"point"===l.type&&await async function(e,t){if("3d"!==t?.type||!e||"esri.Graphic"!==e.declaredClass)return!0;const i=t.getViewForGraphic(e);if(i&&"whenGraphicBounds"in i){let t=null;try{t=await i.whenGraphicBounds(e,{useViewElevation:!0})}catch(e){}return!t||!t.boundingBox||t.boundingBox[0]===t.boundingBox[3]&&t.boundingBox[1]===t.boundingBox[4]&&t.boundingBox[2]===t.boundingBox[5]}return!0}(i,n);dn.active=!0,dn.disabled=!0;try{await e.zoomTo({target:{target:o,scale:d?r:void 0}})}catch(e){const t=new y.Z("zoom-to:invalid-graphic","Could not zoom to the location of the graphic.",{graphic:i});pn().error(t)}finally{dn.active=!1,dn.disabled=!1,e.zoomToLocation=null,d&&(e.location=l)}}(n).catch(wt.H9);if(r===un.id)return async function(e){const{selectedFeature:t,view:i}=e;if("2d"!==i?.type){const e=new y.Z("zoomToCluster:invalid-view","View must be 2d MapView.",{view:i});throw pn().error(e),e}if(!t||!gn(t)){const e=new y.Z("zoomToCluster:invalid-selectedFeature","Selected feature must represent an aggregate/cluster graphic.",{selectedFeature:t});throw pn().error(e),e}const[n,s]=await yn(i,t);un.active=!0,un.disabled=!0;const{extent:o}=await n.queryExtent(s);o&&await e.zoomTo({target:o}),un.active=!1,un.disabled=!1}(n);if(r===hn.id)return n.browseClusterEnabled=!n.browseClusterEnabled,n.featureMenuOpen=n.browseClusterEnabled,Promise.resolve();if(r===cn.id){n.visible=!1;const{selectedFeature:e}=n;if(!e)return Promise.reject(new y.Z(`trigger-action:${cn.id}`,"selectedFeature is required",{selectedFeature:e}));const{sourceLayer:t}=e;return t?t.remove(e):i?.graphics.remove(e),Promise.resolve()}return Promise.resolve()};function fn(e){const{selectedFeature:t,location:i,view:n}=e;return n?t??i??null:null}function gn(e){return!!e&&e.isAggregate&&"cluster"===e.sourceLayer?.featureReduction?.type}async function yn(e,t){const i=await e.whenLayerView(t.sourceLayer),n=i.createQuery(),s=t.getObjectId();return n.aggregateIds=null!=s?[s]:[],[i,n]}var bn=i(68266),_n=i(43411);let vn=null;let wn=class extends((0,bn._)(Zi)){constructor(e){super(e),this._pendingPromises=new Ji,this._fetchFeaturesController=null,this._highlightSelectedFeaturePromise=null,this._highlightActiveFeaturePromise=null,this._selectedClusterFeature=null,this._locationScaleHandle=null,this.actions=new ln,this.activeFeature=null,this.autoCloseEnabled=!1,this.autoOpenEnabled=!0,this.browseClusterEnabled=!1,this.content=null,this.defaultPopupTemplateEnabled=!1,this.featurePage=null,this.featuresPerPage=20,this.featureMenuOpen=!1,this.featureViewModelAbilities=null,this.featureViewModels=[],this.highlightEnabled=!0,this.includeDefaultActions=!0,this.selectedClusterBoundaryFeature=new I.Z({symbol:new _n.Z({outline:{width:1.5,color:"cyan"},style:"none"})}),this.title=null,this.updateLocationEnabled=!1,this.view=null,this.visible=!1,this.zoomFactor=4,this.zoomToLocation=null,this._debouncedLocationUpdate=(0,wt.Ds)((async e=>{const{view:t}=this,n=this.selectedFeature?.geometry?.type,s=this.location??e;if("mesh"!==n&&t&&s&&this.selectedFeature)if("point"!==n)try{const{pendingFeatures:e}=await this._fetchFeaturesWithController({mapPoint:s}),n=(await Promise.all(e)).flat().filter(Boolean);if(!n.length)return;if(n.length!==this.features.length){const e=this._getHighlightLayer(this.selectedFeature),t="imagery"===e?.type?void 0:e&&"objectIdField"in e?e.objectIdField||en:null;if(t){const i=this.selectedFeature.getObjectId(),s=n.findIndex((n=>{const s=this._getHighlightLayer(n);return s?.uid===e?.uid&&n.attributes[t]===i}));this.features=n,this.selectedFeatureIndex=s}}const o=n[this.selectedFeatureIndex]?.geometry,r=("mesh"!==o?.type?o:null)??this.selectedFeature.geometry,a=r?(0,$i.project)(r,t.spatialReference):null;if(!a)return;vn||(vn=await i.e(5917).then(i.bind(i,15917))),await vn.intersects(a,s)||(this.location=(await vn.nearestCoordinate(a,s)).coordinate??s)}catch(e){(0,wt.D_)(e)||o.Z.getLogger(this).error(e)}else this.location=(0,h.$J)(this.selectedFeature.geometry)??s}))}initialize(){this.addHandles([this.on("view-change",(()=>this._autoClose())),(0,r.YP)((()=>[this.highlightEnabled,this.selectedFeature,this.visible,this.view]),(()=>this._highlightSelectedFeature())),(0,r.YP)((()=>[this.highlightEnabled,this.activeFeature,this.visible,this.view]),(()=>this._highlightActiveFeature())),(0,r.YP)((()=>this.view?.animation?.state),(e=>this._animationStateChange(e))),(0,r.YP)((()=>this.location),(e=>this._locationChange(e))),(0,r.YP)((()=>this.selectedFeature),(e=>this._selectedFeatureChange(e))),(0,r.YP)((()=>[this.selectedFeatureIndex,this.featureCount,this.featuresPerPage]),(()=>this._selectedFeatureIndexChange())),(0,r.YP)((()=>[this.featurePage,this.selectedFeatureIndex,this.featureCount,this.featuresPerPage,this.featureViewModels]),(()=>this._setGraphicOnFeatureViewModels())),(0,r.YP)((()=>this.featureViewModels),(()=>this._featureViewModelsChange())),this.on("trigger-action",(e=>mn({event:e,viewModel:this,view:this.view}))),(0,r.gx)((()=>!this.waitingForResult),(()=>this._waitingForResultChange()),r.Z_),(0,r.YP)((()=>[this.features,this.view?.map,this.view?.spatialReference,this.view?.timeZone]),(()=>this._updateFeatureVMs())),(0,r.YP)((()=>this.view?.scale),(()=>this._viewScaleChange())),(0,r.gx)((()=>!this.visible),(()=>this.browseClusterEnabled=!1)),(0,r.YP)((()=>this.browseClusterEnabled),(e=>e?this.enableClusterBrowsing():this.disableClusterBrowsing()))])}destroy(){this._cancelFetchingFeatures(),this._pendingPromises.clear(),this.browseClusterEnabled=!1,this.view=null,this._locationScaleHandle?.remove(),this._locationScaleHandle=null}get active(){return!(!this.visible||this.waitingForResult)}get allActions(){const e=this._get("allActions")||new ln;e.removeAll();const{actions:t,defaultActions:i,defaultPopupTemplateEnabled:n,includeDefaultActions:s,selectedFeature:o}=this,r=s?i.concat(t):t,a=o&&("function"==typeof o.getEffectivePopupTemplate&&o.getEffectivePopupTemplate(n)||o.popupTemplate),l=a?.actions,d=a?.overwriteActions?l:l?.concat(r)??r;return d?.filter(Boolean).forEach((t=>e.add(t))),e}get defaultActions(){const e=this._get("defaultActions")||new ln;return e.removeAll(),e.addMany(gn(this.selectedFeature)?[un.clone(),hn.clone()]:[dn.clone()]),e}get featureCount(){return this.features.length}set features(e){const t=e||[];this._set("features",t);const{pendingPromisesCount:i,promiseCount:n,selectedFeatureIndex:s}=this,o=n&&t.length;o&&i&&-1===s?this.selectedFeatureIndex=0:o&&-1!==s||(this.selectedFeatureIndex=t.length?0:-1)}set location(e){let t=e;const i=this.view?.spatialReference?.isWebMercator,n=e?.spatialReference?.isWGS84;n&&i&&(t=(0,Xi.$)(e)),this._set("location",t)}get pendingPromisesCount(){return this._pendingPromises.size}get promiseCount(){return this.promises.length}get promises(){return this._get("promises")||[]}set promises(e){this._pendingPromises.clear(),this.features=[],Array.isArray(e)&&e.length?(this._set("promises",e),(e=e.slice(0)).forEach((e=>this._pendingPromises.add(e))),e.reduce(((e,t)=>e.finally((()=>t.then((e=>{this._pendingPromises.has(t)&&this._updateFeatures(e)})).finally((()=>this._pendingPromises.delete(t))).catch((()=>{}))))),Promise.resolve())):this._set("promises",[])}get selectedFeature(){const{features:e,selectedFeatureIndex:t}=this;return-1===t?null:e[t]||null}get selectedFeatureIndex(){const e=this._get("selectedFeatureIndex");return"number"==typeof e?e:-1}set selectedFeatureIndex(e){const{featureCount:t}=this;e=isNaN(e)||e<-1||!t?-1:(e+t)%t,this.activeFeature=null,this._set("selectedFeatureIndex",e)}get selectedFeatureViewModel(){return this.featureViewModels[this.selectedFeatureIndex]||null}get state(){return this.view?.ready?"ready":"disabled"}get waitingForContents(){return this.featureViewModels.some((e=>e.waitingForContent))}get waitingForResult(){return!(!(this._fetchFeaturesController||this.pendingPromisesCount>0)||0!==this.featureCount)}centerAtLocation(){const{view:e}=this,t=fn(this);return t&&e?this.callGoTo({target:{target:t,scale:e.scale}}):Promise.reject(new y.Z("center-at-location:invalid-target-or-view","Cannot center at a location without a target and view.",{target:t,view:e}))}zoomTo(e){return this.callGoTo(e)}clear(){this.set({promises:[],features:[],content:null,title:null,location:null,activeFeature:null})}fetchFeatures(e,t){const{view:i}=this;if(!i||!e)throw new y.Z("fetch-features:invalid-screenpoint-or-view","Cannot fetch features without a screenPoint and view.",{screenPoint:e,view:i});return i.fetchPopupFeatures(e,{pointerType:t?.event?.pointerType,defaultPopupTemplateEnabled:this.defaultPopupTemplateEnabled,signal:t?.signal})}open(e){const t={updateLocationEnabled:!1,promises:[],fetchFeatures:!1,...e,visible:!0},{fetchFeatures:i}=t;delete t.fetchFeatures,i&&this._setFetchFeaturesPromises(t.location);const n=["actionsMenuOpen","collapsed"];for(const e of n)delete t[e];this.set(t)}triggerAction(e){const t=this.allActions.at(e);t&&!t.disabled&&this.emit("trigger-action",{action:t})}next(){return this.selectedFeatureIndex++,this}previous(){return this.selectedFeatureIndex--,this}disableClusterBrowsing(){(function(e){hn.value=!1;const t=e.features.filter((e=>gn(e)));t.length&&(e.features=t)})(this),this._clearBrowsedClusterGraphics()}async enableClusterBrowsing(){const{view:e,selectedFeature:t}=this;"2d"===e?.type?gn(t)?(await async function(e){const{view:t,selectedFeature:i}=e;if(!t||!i)return;const[n,s]=await yn(t,i),{extent:o}=await n.queryExtent(s);e.selectedClusterBoundaryFeature.geometry=o,t.graphics.add(e.selectedClusterBoundaryFeature)}(this),await async function(e){const{selectedFeature:t,view:i}=e;if(!i||!t)return;const[n,s]=await yn(i,t);hn.active=!0,hn.disabled=!0;const{features:o}=await n.queryFeatures(s);hn.active=!1,hn.disabled=!1,hn.value=!0,e?.open({features:[t].concat(o),featureMenuOpen:!0})}(this)):o.Z.getLogger(this).warn("enableClusterBrowsing:invalid-selectedFeature: Selected feature must represent an aggregate/cluster graphic.",t):o.Z.getLogger(this).warn("enableClusterBrowsing:invalid-view: View must be 2d MapView.",t)}handleViewClick(e){this.autoOpenEnabled&&this._fetchFeaturesAndOpen(e)}_animationStateChange(e){this.zoomToLocation||(dn.disabled="waiting-for-target"===e)}_clearBrowsedClusterGraphics(){const e=[this.selectedClusterBoundaryFeature,this._selectedClusterFeature].filter(ht.pC);this.view?.graphics?.removeMany(e),this._selectedClusterFeature=null,this.selectedClusterBoundaryFeature.geometry=null}_viewScaleChange(){if(gn(this.selectedFeature))return this.browseClusterEnabled=!1,this.visible=!1,void this.clear();this.browseClusterEnabled&&(this.features=this.selectedFeature?[this.selectedFeature]:[])}_locationChange(e){const{selectedFeature:t,updateLocationEnabled:i}=this;i&&e&&(!t||t.geometry)&&this.centerAtLocation()}_selectedFeatureIndexChange(){this.featurePage=this.featureCount>1?Math.floor(this.selectedFeatureIndex/this.featuresPerPage)+1:null}_featureViewModelsChange(){this.featurePage=this.featureCount>1?1:null}_setGraphicOnFeatureViewModels(){const{features:e,featureCount:t,featurePage:i,featuresPerPage:n,featureViewModels:s}=this;if(null===i)return;const o=((i-1)*n+t)%t,r=o+n;s.slice(o,r).forEach(((t,i)=>{t&&(t.graphic??=e[o+i])}))}async _selectedFeatureChange(e){const{location:t,updateLocationEnabled:i,view:n}=this;if(e&&n){if(this.browseClusterEnabled){if(this._selectedClusterFeature&&(n.graphics.remove(this._selectedClusterFeature),this._selectedClusterFeature=null),gn(e))return;return e.symbol=await nn(e),this._selectedClusterFeature=e,void n.graphics.add(this._selectedClusterFeature)}if(e.symbol=await nn(e),!i&&t||!e.geometry){if(i&&!e.geometry){await this.centerAtLocation();const e=n.center?.clone();e&&(this.location=e)}}else this.location=(0,h.$J)(e.geometry)}}_waitingForResultChange(){!this.featureCount&&this.promises&&(this.visible=!1)}async _setFetchFeaturesPromises(e){const{pendingFeatures:t}=await this._fetchFeaturesWithController({mapPoint:e});this.promises=t}_destroyFeatureVMs(){this.featureViewModels.forEach((e=>e&&!e.destroyed&&e.destroy())),this._set("featureViewModels",[])}_updateFeatureVMs(){const{selectedFeature:e,features:t,featureViewModels:i,view:n}=this;if(gn(e)||(this.browseClusterEnabled=!1),this._destroyFeatureVMs(),!t?.length)return;const s=i.slice(0),o=[];t.forEach(((t,i)=>{if(!t)return;let r=null;if(s.some(((e,i)=>(e&&e.graphic===t&&(r=e,s.splice(i,1)),!!r))),r)o[i]=r;else{const s=new Fi({abilities:this.featureViewModelAbilities,defaultPopupTemplateEnabled:this.defaultPopupTemplateEnabled,spatialReference:n?.spatialReference,graphic:t===e?t:null,location:this.location,map:n?.map,view:n});o[i]=s}})),s.forEach((e=>e&&!e.destroyed&&e.destroy())),this._set("featureViewModels",o)}async _getScreenPoint(e,t){const{view:i}=this;await(i?.when());const n=e?.spatialReference,s=i?.spatialReference;return n&&s?(await(0,$i.initializeProjection)(n,s,null,t),i.toScreen(e)):null}_cancelFetchingFeatures(){const e=this._fetchFeaturesController;e&&e.abort(),this._fetchFeaturesController=null}async _projectScreenPointAndFetchFeatures({mapPoint:e,screenPoint:t,event:i,signal:n}){return this.fetchFeatures(t??await this._getScreenPoint(e??this.location,{signal:n}),{signal:n,event:i})}_fetchFeaturesWithController({mapPoint:e,screenPoint:t,event:i}){this._cancelFetchingFeatures();const n=new AbortController,{signal:s}=n;this._fetchFeaturesController=n;const o=this._projectScreenPointAndFetchFeatures({mapPoint:e,screenPoint:t,signal:s,event:i});return o.catch((()=>{})).then((()=>{this._fetchFeaturesController=null})),o}async _fetchFeaturesAndOpen(e){const{mapPoint:t,screenPoint:i}=e,{view:n}=this;this._locationScaleHandle?.remove(),this._locationScaleHandle=(0,r.YP)((()=>this.view?.scale),(()=>this._debouncedLocationUpdate(t).catch((e=>{(0,wt.D_)(e)||o.Z.getLogger(this).error(e)}))));const{pendingFeatures:s}=await this._fetchFeaturesWithController({mapPoint:t,screenPoint:i,event:e});n?.popup&&"open"in n.popup&&n.popup.open({location:t??void 0,promises:s})}_autoClose(){this.autoCloseEnabled&&(this.visible=!1)}async _getLayerView(e,t){return await e.when(),e.whenLayerView(t)}_getHighlightLayer(e){const{layer:t,sourceLayer:i}=e;return i&&"layer"in i&&i.layer?i.layer:"map-notes"===i?.type||"subtype-group"===i?.type?i:t}_getHighlightTarget(e,t,i){if(function(e,t){return"building-scene"===e||"2d"===t&&("map-image"===e||"tile"===e||"imagery"===e||"imagery-tile"===e)}(t.type,i))return e;const n=e.getObjectId();if(null!=n)return n;const s="imagery"===t.type?void 0:"objectIdField"in t?t.objectIdField||en:null,o=e.attributes;return o&&s&&o[s]||e}_mapIncludesLayer(e){return!!this.view?.map?.allLayers?.includes(e)}async _highlightActiveFeature(){const e="highlight-active-feature";this.removeHandles(e);const{highlightEnabled:t,view:i,activeFeature:n,visible:s}=this;if(!(n&&i&&t&&s))return;const o=this._getHighlightLayer(n);if(!(o&&o instanceof Ki.Z&&this._mapIncludesLayer(o)))return;const r=this._getLayerView(i,o);this._highlightActiveFeaturePromise=r;const a=await r;if(!(a&&(0,on.tl)(a)&&this._highlightActiveFeaturePromise===r&&this.activeFeature&&this.highlightEnabled))return;const l=a.highlight(this._getHighlightTarget(n,o,i.type));this.addHandles(l,e)}async _highlightSelectedFeature(){const e="highlight-selected-feature";this.removeHandles(e);const{selectedFeature:t,highlightEnabled:i,view:n,visible:s}=this;if(!(t&&n&&i&&s))return;const o=this._getHighlightLayer(t);if(!(o&&o instanceof Ki.Z&&this._mapIncludesLayer(o)))return;const r=this._getLayerView(n,o);this._highlightSelectedFeaturePromise=r;const a=await r;if(!(a&&(0,on.tl)(a)&&this._highlightSelectedFeaturePromise===r&&this.selectedFeature&&this.highlightEnabled&&this.visible))return;const l=a.highlight(this._getHighlightTarget(t,o,n.type));this.addHandles(l,e)}_updateFeatures(e){const{features:t}=this,i=e.filter((e=>!t.includes(e)));i?.length&&(this.features=t.concat(i))}};(0,n._)([(0,a.Cb)()],wn.prototype,"_fetchFeaturesController",void 0),(0,n._)([(0,a.Cb)({type:ln})],wn.prototype,"actions",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],wn.prototype,"active",null),(0,n._)([(0,a.Cb)()],wn.prototype,"activeFeature",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],wn.prototype,"allActions",null),(0,n._)([(0,a.Cb)()],wn.prototype,"autoCloseEnabled",void 0),(0,n._)([(0,a.Cb)()],wn.prototype,"autoOpenEnabled",void 0),(0,n._)([(0,a.Cb)()],wn.prototype,"browseClusterEnabled",void 0),(0,n._)([(0,a.Cb)()],wn.prototype,"content",void 0),(0,n._)([(0,a.Cb)({type:ln,readOnly:!0})],wn.prototype,"defaultActions",null),(0,n._)([(0,a.Cb)({type:Boolean})],wn.prototype,"defaultPopupTemplateEnabled",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],wn.prototype,"featureCount",null),(0,n._)([(0,a.Cb)()],wn.prototype,"featurePage",void 0),(0,n._)([(0,a.Cb)({value:[]})],wn.prototype,"features",null),(0,n._)([(0,a.Cb)()],wn.prototype,"featuresPerPage",void 0),(0,n._)([(0,a.Cb)()],wn.prototype,"featureMenuOpen",void 0),(0,n._)([(0,a.Cb)()],wn.prototype,"featureViewModelAbilities",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],wn.prototype,"featureViewModels",void 0),(0,n._)([(0,a.Cb)()],wn.prototype,"highlightEnabled",void 0),(0,n._)([(0,a.Cb)()],wn.prototype,"includeDefaultActions",void 0),(0,n._)([(0,a.Cb)({type:Mt.Z})],wn.prototype,"location",null),(0,n._)([(0,a.Cb)({readOnly:!0})],wn.prototype,"pendingPromisesCount",null),(0,n._)([(0,a.Cb)({readOnly:!0})],wn.prototype,"promiseCount",null),(0,n._)([(0,a.Cb)()],wn.prototype,"promises",null),(0,n._)([(0,a.Cb)({readOnly:!0})],wn.prototype,"selectedClusterBoundaryFeature",void 0),(0,n._)([(0,a.Cb)({value:null,readOnly:!0})],wn.prototype,"selectedFeature",null),(0,n._)([(0,a.Cb)({value:-1})],wn.prototype,"selectedFeatureIndex",null),(0,n._)([(0,a.Cb)({readOnly:!0})],wn.prototype,"selectedFeatureViewModel",null),(0,n._)([(0,a.Cb)({readOnly:!0})],wn.prototype,"state",null),(0,n._)([(0,a.Cb)()],wn.prototype,"title",void 0),(0,n._)([(0,a.Cb)()],wn.prototype,"updateLocationEnabled",void 0),(0,n._)([(0,a.Cb)()],wn.prototype,"view",void 0),(0,n._)([(0,a.Cb)()],wn.prototype,"visible",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],wn.prototype,"waitingForContents",null),(0,n._)([(0,a.Cb)({readOnly:!0})],wn.prototype,"waitingForResult",null),(0,n._)([(0,a.Cb)()],wn.prototype,"zoomFactor",void 0),(0,n._)([(0,a.Cb)()],wn.prototype,"zoomToLocation",void 0),(0,n._)([(0,a.Cb)()],wn.prototype,"centerAtLocation",null),wn=(0,n._)([(0,l.j)("esri.widgets.Features.FeaturesViewModel")],wn);const Cn=wn;let Mn=class extends A.Z{constructor(){super(...arguments),this.actionBar=!0,this.closeButton=!0,this.collapseButton=!1,this.featureNavigation=!0,this.flow=!0,this.heading=!0,this.spinner=!0}};(0,n._)([(0,a.Cb)({type:Boolean,nonNullable:!0})],Mn.prototype,"actionBar",void 0),(0,n._)([(0,a.Cb)({type:Boolean,nonNullable:!0})],Mn.prototype,"closeButton",void 0),(0,n._)([(0,a.Cb)({type:Boolean,nonNullable:!0})],Mn.prototype,"collapseButton",void 0),(0,n._)([(0,a.Cb)({type:Boolean,nonNullable:!0})],Mn.prototype,"featureNavigation",void 0),(0,n._)([(0,a.Cb)({type:Boolean,nonNullable:!0})],Mn.prototype,"flow",void 0),(0,n._)([(0,a.Cb)({type:Boolean,nonNullable:!0})],Mn.prototype,"heading",void 0),(0,n._)([(0,a.Cb)({type:Boolean,nonNullable:!0})],Mn.prototype,"spinner",void 0),Mn=(0,n._)([(0,l.j)("esri.widgets.Features.FeaturesVisibleElements")],Mn);const Fn=Mn;var In=i(34147);const An="selected-index",xn="features-spinner";let Ln=class extends(xi(g.Z)){constructor(e,t){super(e,t),this._featureMenuIntersectionObserverCallback=([e])=>{e?.isIntersecting&&null!=this.viewModel.featurePage&&this.viewModel.featurePage++},this._featureMenuIntersectionObserver=new IntersectionObserver(this._featureMenuIntersectionObserverCallback,{root:window.document}),this._featureMenuIntersectionObserverNode=null,this._focusOn=null,this._spinner=null,this._feature=null,this._relatedRecordsFlowItems=new c.Z,this._relatedRecordsWidget=new Ui({flowItems:this._relatedRecordsFlowItems}),this._rootFlowItemNode=null,this._featureMenuViewportNode=null,this._actionBarMenuNode=null,this.collapsed=!1,this.icon=null,this.featureNavigationTop=!1,this.headerActions=new ln,this.headingLevel=2,this.messages=null,this.messagesCommon=null,this.responsiveActionsEnabled=!1,this.viewModel=new Cn,this.visibleElements=new Fn,this._renderAction=(e,t)=>{const i=this._getActionTitle(e),{type:n,active:s,uid:o,disabled:r,indicator:a}=e;return e.visible?(0,Te.u)("calcite-action",{active:"toggle"===n&&e.value,appearance:"solid",bind:this,"data-action-uid":o,disabled:r,icon:this._getActionIcon(e),indicator:a,key:`action-${t}`,loading:s,onclick:this._triggerAction,scale:"s",text:i,title:this._hideActionText?i:void 0},this._getFallbackIcon(e)):null},this._openFeatureMenu=()=>{this.featureMenuOpen=!0,this._focusOn="menu-flow-item"},this._previousFeature=()=>{this.viewModel.selectedFeatureIndex--},this._nextFeature=()=>{this.viewModel.selectedFeatureIndex++},this._handleFeatureMenuBack=()=>{this.featureMenuOpen&&(this._focusOn="root-flow-item",this.featureMenuOpen=!1)},this._focusFlowItemNode=e=>{this._focusOn===e&&requestAnimationFrame((async()=>{switch(e){case"menu-flow-item":await(this._featureMenuViewportNode?.setFocus());break;case"root-flow-item":await(this._rootFlowItemNode?.setFocus())}this._focusOn=null}))},this._focusFlowItemNodeThrottled=u(this._focusFlowItemNode,50),this._displaySpinnerThrottled=u((()=>this._displaySpinner()),0),this._addSelectedFeatureIndexHandle(),this.addHandles([this._displaySpinnerThrottled,this._focusFlowItemNodeThrottled,(0,r.YP)((()=>this.viewModel?.active),(()=>this._toggleScreenLocationEnabled())),(0,r.YP)((()=>this.viewModel?.active),(e=>this._relatedRecordsWidget.closed=!e)),(0,r.YP)((()=>this.visibleElements?.closeButton),(e=>this._relatedRecordsWidget.closable=e)),(0,r.YP)((()=>this.visibleElements?.spinner),(e=>this._spinnerEnabledChange(e))),(0,r.YP)((()=>this.viewModel?.view),((e,t)=>this._viewChange(e,t))),(0,r.YP)((()=>this.viewModel?.view?.ready),((e,t)=>this._viewReadyChange(e??!1,t??!1))),(0,r.YP)((()=>[this.viewModel?.waitingForResult,this.viewModel?.location]),(()=>{this._hideSpinner(),this._displaySpinnerThrottled()})),(0,r.YP)((()=>this.viewModel?.screenLocation),(()=>this._closeOpenActionMenu())),(0,r.YP)((()=>this.selectedFeatureWidget),(()=>this._destroyRelatedRecordsFlowItemWidgets())),(0,r.YP)((()=>{const e=this.selectedFeatureWidget?.viewModel;return[e?.title,e?.state]}),(()=>this._setTitleFromFeatureWidget())),(0,r.YP)((()=>{const e=this.selectedFeatureWidget?.viewModel;return[e?.content,e?.state]}),(()=>this._setContentFromFeatureWidget())),(0,r.YP)((()=>this.viewModel?.featureViewModels),(()=>this._featureMenuViewportScrollTop())),this._relatedRecordsWidget.on("close",(()=>this.close())),this._relatedRecordsWidget.on("exit",(()=>this._destroyRelatedRecordsFlowItemWidgets())),this._relatedRecordsWidget.on("open-related-feature",(({feature:e})=>this._openRelatedFeature(e)))])}loadDependencies(){return(0,xe.h)({action:()=>Promise.all([i.e(9145),i.e(2149),i.e(9516),i.e(953)]).then(i.bind(i,30953)),"action-bar":()=>Promise.all([i.e(9145),i.e(2149),i.e(9516),i.e(85),i.e(6663),i.e(2338)]).then(i.bind(i,62338)),"action-group":()=>Promise.all([i.e(9145),i.e(2149),i.e(9516),i.e(85),i.e(6663),i.e(880)]).then(i.bind(i,30880)),button:()=>Promise.all([i.e(9145),i.e(2149),i.e(6324),i.e(5048)]).then(i.bind(i,25048)),flow:()=>i.e(3483).then(i.bind(i,83483)),"flow-item":()=>Promise.all([i.e(9145),i.e(2149),i.e(9516),i.e(85),i.e(6663),i.e(9060)]).then(i.bind(i,49060)),list:()=>Promise.all([i.e(9145),i.e(2149),i.e(6324),i.e(69),i.e(4578)]).then(i.bind(i,4578)),"list-item":()=>Promise.all([i.e(9145),i.e(2149),i.e(9516),i.e(5693)]).then(i.bind(i,45693)),"list-item-group":()=>i.e(4950).then(i.bind(i,74950)),loader:()=>i.e(4323).then(i.bind(i,44323))})}destroy(){this._destroyRelatedRecordsFlowItemWidgets(),this._destroySelectedFeatureWidget(),this._destroySpinner(),this._unobserveFeatureMenuObserver(),this._featureMenuIntersectionObserver?.disconnect(),this._relatedRecordsWidget?.destroy()}get _hideActionText(){if(!this.responsiveActionsEnabled)return!1;const e=this.view?.widthBreakpoint;return"xsmall"===e||"small"===e||"medium"===e}get _featureNavigationVisible(){return this.viewModel.active&&this.viewModel.featureCount>1&&this.visibleElements.featureNavigation}get _isCollapsed(){return this._collapseEnabled&&this.collapsed}get _collapseEnabled(){return this.visibleElements.collapseButton&&!!this.title&&!!this.content}get content(){return this.viewModel.content}set content(e){this.viewModel.content=e}get featureMenuOpen(){return this.viewModel.featureMenuOpen}set featureMenuOpen(e){this.viewModel.featureMenuOpen=e}get features(){return this.viewModel.features}set features(e){this.viewModel.features=e}get location(){return this.viewModel.location}set location(e){this.viewModel.location=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get promises(){return this.viewModel.promises}set promises(e){this.viewModel.promises=e}get selectedFeature(){return this.viewModel.selectedFeature}get selectedFeatureIndex(){return this.viewModel.selectedFeatureIndex}set selectedFeatureIndex(e){this.viewModel.selectedFeatureIndex=e}get selectedFeatureWidget(){const{_feature:e,headingLevel:t,_relatedRecordsFlowItems:i}=this,{selectedFeatureViewModel:n}=this.viewModel,s={title:!1};return n?(e?(e.viewModel=n,e.visibleElements=s):this._feature=new Ti({flowItems:i,headingLevel:t+1,viewModel:n,visibleElements:s}),this._feature):null}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}get updateLocationEnabled(){return this.viewModel.updateLocationEnabled}set updateLocationEnabled(e){this.viewModel.updateLocationEnabled=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}blur(){const{active:e}=this.viewModel;e?this._rootFlowItemNode?.blur():o.Z.getLogger(this).warn("Features can only be blurred when currently active.")}clear(){return this.viewModel.clear()}close(){this.viewModel.visible=!1}fetchFeatures(e,t){return this.viewModel.fetchFeatures(e,t)}focus(){const{active:e}=this.viewModel;e?this._setFocusOn():o.Z.getLogger(this).warn("Features can only be focused when currently active.")}next(){return this.viewModel.next()}open(e){this.removeHandles(An);const t={collapsed:e?.collapsed??!1};this.set(t),this.viewModel.open(e),this.addHandles((0,r.gx)((()=>!this.viewModel.waitingForResult),(()=>this._addSelectedFeatureIndexHandle()),{once:!0}))}previous(){return this.viewModel.previous()}triggerAction(e){return this.viewModel.triggerAction(e)}render(){return(0,Te.u)("div",{bind:this,class:this.classes(Hi.base,Le.z.widget,Le.z.panel),onkeydown:this._onMainKeydown},this._renderHeader(),this._renderContentContainer())}_renderFeatureNavigation(){return[this._renderPagination(),this._renderFeatureMenuButton()]}_renderHeader(){return!this.featureMenuOpen&&this.featureNavigationTop&&this._featureNavigationVisible?(0,Te.u)("div",{class:Hi.header,key:"header-actions"},this._renderFeatureNavigation()):null}_renderFooter(){return this.featureMenuOpen||this.featureNavigationTop||!this._featureNavigationVisible?null:(0,Te.u)("div",{class:Hi.footer,key:"footer-actions",slot:"footer"},this._renderFeatureNavigation())}_renderFeatureMenuButton(){const{messages:e,viewModel:t}=this,{featureCount:i,selectedFeatureIndex:n,pendingPromisesCount:s}=t;return(0,Te.u)("calcite-action",{appearance:"solid",bind:this,icon:"list",key:"feature-menu-button",label:e.selectFeature,loading:s>0,onclick:this._openFeatureMenu,scale:"s",text:(0,p.n)(e.pageText,{index:(0,M.uf)(n+1),total:(0,M.uf)(i)}),textEnabled:!0,title:e.selectFeature})}_renderPagination(){const{previous:e,next:t}=this.messagesCommon.pagination;return(0,Te.u)("calcite-action-bar",{class:Hi.paginationActionBar,expandDisabled:!0,key:"pagination-action-bar",layout:"horizontal",overflowActionsDisabled:!0,scale:"s"},(0,Te.u)("calcite-action-group",{scale:"s"},(0,Te.u)("calcite-action",{appearance:"solid",class:Hi.paginationPrevious,icon:"chevron-left",iconFlipRtl:!0,label:e,onclick:this._previousFeature,scale:"s",text:e,title:e}),(0,Te.u)("calcite-action",{appearance:"solid",icon:"chevron-right",iconFlipRtl:!0,label:t,onclick:this._nextFeature,scale:"s",text:t,title:t})))}_renderFeatureMenuItem(e){const{selectedFeatureViewModel:t,featureViewModels:i}=this.viewModel,n=e===t,s=i.indexOf(e);return(0,Te.u)("calcite-list-item",{bind:this,"data-feature-index":s,key:`feature-menu-item-${e.uid}`,onblur:this._removeActiveFeature,onfocus:this._setActiveFeature,onmouseleave:this._removeActiveFeature,onmouseover:this._setActiveFeature,selected:n,onCalciteListItemSelect:this._selectFeature},(0,Te.u)("span",{innerHTML:e.title||this.messagesCommon.untitled,slot:"content"}))}_groupResultsByLayer(){const{featureViewModels:e}=this.viewModel,t=new Map;return e.forEach((e=>{const i=e?.graphic;if(!i)return;const n=i.sourceLayer??i.layer,s=t.get(n)??[];t.set(n,[...s,e])})),t}_renderFeatureMenu(){const{featureViewModels:e}=this.viewModel,t=this._groupResultsByLayer();return e.length?(0,Te.u)("calcite-list",{selectionAppearance:"icon",selectionMode:"single"},Array.from(t.keys()).map((e=>(0,Te.u)("calcite-list-item-group",{heading:e?.title??this.messagesCommon.untitled,key:e?.uid||"untitled"},t.get(e)?.map((e=>this._renderFeatureMenuItem(e))))))):null}_renderHeaderAction(e,t){return e.visible?(0,Te.u)("calcite-action",{active:"toggle"===e.type&&e.value,appearance:"solid",bind:this,"data-action-uid":e.uid,disabled:e.disabled,icon:e.icon||"",indicator:e.indicator,key:`header-action-${t}`,loading:e.active,onclick:this._triggerHeaderAction,scale:"m",slot:"header-actions-end",text:e.title||"",title:e.title||""}):null}_renderHeaderActions(){return this.headerActions.map(((e,t)=>this._renderHeaderAction(e,t))).toArray()}_renderContentFeature(){const{headingLevel:e,visibleElements:t,_isCollapsed:i,_collapseEnabled:n,featureNavigationTop:s}=this,{title:o,active:r}=this.viewModel,a=t.heading&&o?o:"";return(0,Te.u)("calcite-flow-item",{afterCreate:this._storeRootFlowItemNode,afterUpdate:this._focusRootFlowItemNode,bind:this,class:this.classes({[Hi.contentFeature]:!0,[Hi.flowItemCollapsed]:i}),closable:t.closeButton,closed:!r,collapsed:i,collapseDirection:s?"down":"up",collapsible:n,headingLevel:e,key:"root-flow-item",onCalciteFlowItemClose:this.close,onCalciteFlowItemToggle:this._handleCollapseToggle},a?(0,Te.u)(Be,{class:this.classes(Hi.featuresHeading,Le.z.heading),innerHTML:a,key:"header-content",level:this.headingLevel,slot:"header-content"}):null,this._renderHeaderActions(),this._renderActionBar(),i?null:(0,Te.u)("div",{class:this.classes(Hi.container,Hi.contentContainer)},this._renderContent()),this._renderFooter())}_renderFeatureMenuContainer(){const{viewModel:e,featureMenuOpen:t,messages:i,messagesCommon:n}=this,{active:s,featureViewModels:o,pendingPromisesCount:r}=e;return t?(0,Te.u)("calcite-flow-item",{afterCreate:this._storeFeatureMenuFlowItemNode,afterUpdate:this._focusFeatureMenuFlowItemNode,bind:this,closable:!1,closed:!s,description:(0,p.n)(i.total,{total:o.length}),heading:i.selectFeature,key:"feature-menu",loading:e.waitingForContents,onCalciteFlowItemBack:e=>{e.preventDefault(),this._handleFeatureMenuBack()}},r>0?(0,Te.u)("calcite-loader",{class:Hi.loader,inline:!0,key:"feature-menu-loader",label:n.loading,scale:"m",slot:"header-actions-end"}):null,(0,Te.u)("div",{class:Hi.container},this._renderFeatureMenu()),(0,Te.u)("div",{afterCreate:this._featureMenuIntersectionObserverCreated,bind:this,class:Hi.featureMenuObserver}),(0,Te.u)("calcite-button",{appearance:"transparent",onclick:this._handleFeatureMenuBack,slot:"footer-actions",width:"full"},n.back)):null}_renderContentContainer(){const e=[this._renderContentFeature(),this._renderFeatureMenuContainer(),this._relatedRecordsWidget.render()];return this.visibleElements.flow?(0,Te.u)("calcite-flow",{key:"content-container"},e):e}_getFallbackIcon(e){const{className:t,icon:i}=e;if(i)return null;const n=function({action:e,feature:t}){const i=t?.attributes,n="image"in e?e.image:void 0;return n&&i?(0,p.n)(n,i):n??""}({action:e,feature:this.selectedFeature}),s={[Hi.icon]:!!t,[Hi.actionImage]:!!n};return t&&(s[t]=!0),n||t?(0,Te.u)("span",{"aria-hidden":"true",class:this.classes(Hi.icon,s),key:"icon",styles:m(n)}):null}_renderActionBar(){return!this._isCollapsed&&this.visibleElements.actionBar&&this.viewModel.allActions?.length?(0,Te.u)("calcite-action-bar",{expandDisabled:!0,expanded:!this._hideActionText,key:"header-action-bar",scale:"s",slot:"action-bar"},(0,Te.u)("calcite-action-group",{afterCreate:e=>this._actionBarMenuNode=e,overlayPositioning:"fixed",scale:"s"},this._renderActions())):null}_renderActions(){return this.viewModel.allActions.toArray().map(this._renderAction)}_renderContent(){const e=this.viewModel?.content;return e?"string"==typeof e?(0,Te.u)("div",{class:Ai.contentNode,innerHTML:e,key:e}):this.renderNodeContent(e):null}_setFocusOn(){this.renderNow(),requestAnimationFrame((()=>{this._focusOn=this.featureMenuOpen?"menu-flow-item":"root-flow-item"}))}_handleCollapseToggle(){this.collapsed=!this.collapsed}async _openRelatedFeature(e){await e.viewModel.updateGeometry();const t=e.graphic,i=t?.geometry;if(null==i||null==t)return;this._destroyRelatedRecordsFlowItemWidgets(),await this.viewModel.zoomTo({target:i});const n=(0,h.$J)(i);this.open({features:[t],location:null!=n?n:void 0})}_focusRootFlowItemNode(){this._focusFlowItemNodeThrottled("root-flow-item")}_focusFeatureMenuFlowItemNode(){this._focusFlowItemNodeThrottled("menu-flow-item")}_storeRootFlowItemNode(e){this._rootFlowItemNode=e,this._focusFlowItemNodeThrottled("root-flow-item")}_storeFeatureMenuFlowItemNode(e){this._featureMenuViewportNode=e,this._focusFlowItemNodeThrottled("menu-flow-item")}_setActiveFeature(e){const{viewModel:t}=this,i=e.currentTarget["data-feature-index"];t.activeFeature=t.features?.[i]||null}_removeActiveFeature(){this.viewModel.activeFeature=null}_selectFeature(e){const t=e.currentTarget["data-feature-index"];isNaN(t)||(this.viewModel.selectedFeatureIndex=t),this._handleFeatureMenuBack()}_unobserveFeatureMenuObserver(){this._featureMenuIntersectionObserverNode&&this._featureMenuIntersectionObserver.unobserve(this._featureMenuIntersectionObserverNode)}_featureMenuIntersectionObserverCreated(e){this._unobserveFeatureMenuObserver(),this._featureMenuIntersectionObserver.observe(e),this._featureMenuIntersectionObserverNode=e}_getActionIcon(e){return e.icon?e.icon:e.image||e.className?void 0:"question"}_getActionTitle(e){const{messages:t,selectedFeature:i,messagesCommon:n}=this,{id:s}=e,o=i?.attributes,r=e.title??"",a="zoom-to-feature"===s?(0,p.n)(r,{messages:t}):"remove-selected-feature"===s?(0,p.n)(r,{messages:n}):"zoom-to-clustered-features"===s||"browse-clustered-features"===s?(0,p.n)(r,{messages:t}):e.title;return a&&o?(0,p.n)(a,o):a??""}_onMainKeydown(e){const{key:t}=e;"ArrowLeft"===t&&(e.stopPropagation(),this._handleFeatureMenuBack(),this.previous()),"ArrowRight"===t&&(e.stopPropagation(),this._handleFeatureMenuBack(),this.next())}_featureMenuViewportScrollTop(){this._featureMenuViewportNode&&this._featureMenuViewportNode.scrollContentTo({top:0})}_setContentFromFeatureWidget(){const{selectedFeatureWidget:e}=this;e&&(this.viewModel.content=e)}_setTitleFromFeatureWidget(){const{selectedFeatureWidget:e,messagesCommon:t}=this,i=e?.viewModel;e&&(this.viewModel.title="error"===i?.state?t?.errorMessage:i?.title||"")}_addSelectedFeatureIndexHandle(){const e=(0,r.YP)((()=>this.viewModel?.selectedFeatureIndex),((e,t)=>this._selectedFeatureIndexUpdated(e,t)));this.addHandles(e,An)}_selectedFeatureIndexUpdated(e,t){const{featureCount:i}=this.viewModel;i&&e!==t&&-1!==e&&(this._destroyRelatedRecordsFlowItemWidgets(),this._rootFlowItemNode&&this._rootFlowItemNode.scrollContentTo({top:0}))}_triggerHeaderAction(e){const t=e.currentTarget;if(t.disabled)return;const i=t.dataset.actionUid,n=this.headerActions.find((({uid:e})=>e===i));n&&!n.disabled&&("toggle"===n?.type&&(n.value=!n.value),this.emit("trigger-header-action",{action:n}))}_triggerAction(e){const t=e.currentTarget;if(t.disabled)return;const i=t.dataset.actionUid,{allActions:n}=this.viewModel,s=n.findIndex((e=>e.uid===i)),o=n.at(s);o&&"toggle"===o.type&&(o.value=!o.value),this.viewModel.triggerAction(s)}_createSpinner(e){e&&(this._spinner=new Wi({view:e}),e.ui.add(this._spinner,{key:xn,position:"manual",internal:!0}))}_wireUpView(e){this._destroySpinner(),e&&this.visibleElements?.spinner&&this._createSpinner(e)}_hideSpinner(){const{_spinner:e}=this;e&&(e.location=null,e.hide())}_viewReadyChange(e,t){e?this._wireUpView(this.viewModel?.view):t&&this.viewModel.clear()}_viewChange(e,t){e&&t&&this.viewModel.clear()}_destroySelectedFeatureWidget(){const{_feature:e}=this;e&&(e.viewModel=null,!e.destroyed&&e.destroy()),this._feature=null}_closeOpenActionMenu(){const{_actionBarMenuNode:e}=this;e&&(e.menuOpen=!1)}_destroyRelatedRecordsFlowItemWidgets(){this._relatedRecordsFlowItems.removeAll().forEach((e=>{"showAllEnabled"in e.viewModel&&(e.viewModel.showAllEnabled=!1),e.viewModel=null,e.destroy()}))}_toggleScreenLocationEnabled(){const{viewModel:e}=this;e&&(e.screenLocationEnabled=e.active)}_displaySpinner(){const{_spinner:e}=this;if(!e)return;const{location:t,waitingForResult:i}=this.viewModel;i&&t?e.show({location:t}):e.hide()}_destroySpinner(){const{_spinner:e,view:t}=this;e&&(t?.ui?.remove(e,xn),e.destroy(),this._spinner=null)}_spinnerEnabledChange(e){this._destroySpinner(),e&&this._createSpinner(this.viewModel?.view)}};(0,n._)([(0,a.Cb)()],Ln.prototype,"_focusOn",void 0),(0,n._)([(0,a.Cb)()],Ln.prototype,"_relatedRecordsFlowItems",void 0),(0,n._)([(0,a.Cb)()],Ln.prototype,"_hideActionText",null),(0,n._)([(0,a.Cb)()],Ln.prototype,"_featureNavigationVisible",null),(0,n._)([(0,a.Cb)()],Ln.prototype,"_isCollapsed",null),(0,n._)([(0,a.Cb)()],Ln.prototype,"_collapseEnabled",null),(0,n._)([(0,a.Cb)()],Ln.prototype,"collapsed",void 0),(0,n._)([(0,a.Cb)()],Ln.prototype,"content",null),(0,n._)([(0,a.Cb)()],Ln.prototype,"icon",void 0),(0,n._)([(0,a.Cb)()],Ln.prototype,"featureMenuOpen",null),(0,n._)([(0,a.Cb)()],Ln.prototype,"featureNavigationTop",void 0),(0,n._)([(0,a.Cb)()],Ln.prototype,"features",null),(0,n._)([(0,a.Cb)({type:ln})],Ln.prototype,"headerActions",void 0),(0,n._)([(0,a.Cb)()],Ln.prototype,"headingLevel",void 0),(0,n._)([(0,a.Cb)()],Ln.prototype,"location",null),(0,n._)([(0,a.Cb)()],Ln.prototype,"label",null),(0,n._)([(0,a.Cb)(),(0,Pe.H)("esri/widgets/Features/t9n/Features")],Ln.prototype,"messages",void 0),(0,n._)([(0,a.Cb)(),(0,Pe.H)("esri/t9n/common")],Ln.prototype,"messagesCommon",void 0),(0,n._)([(0,a.Cb)()],Ln.prototype,"promises",null),(0,n._)([(0,a.Cb)()],Ln.prototype,"responsiveActionsEnabled",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],Ln.prototype,"selectedFeature",null),(0,n._)([(0,a.Cb)()],Ln.prototype,"selectedFeatureIndex",null),(0,n._)([(0,a.Cb)({readOnly:!0})],Ln.prototype,"selectedFeatureWidget",null),(0,n._)([(0,a.Cb)()],Ln.prototype,"title",null),(0,n._)([(0,a.Cb)()],Ln.prototype,"updateLocationEnabled",null),(0,n._)([(0,a.Cb)()],Ln.prototype,"view",null),(0,n._)([(0,a.Cb)({type:Cn}),(0,In.s)(["triggerAction","trigger-action"])],Ln.prototype,"viewModel",void 0),(0,n._)([(0,a.Cb)({type:Fn,nonNullable:!0})],Ln.prototype,"visibleElements",void 0),(0,n._)([(0,a.Cb)()],Ln.prototype,"visible",null),Ln=(0,n._)([(0,l.j)("esri.widgets.Features")],Ln);const En=Ln,kn="esri-popup",Pn=`${kn}--is-docked`,Tn={base:kn,main:`${kn}__main-container`,shadow:`${kn}--shadow`,isDocked:Pn,isDockedTopLeft:`${Pn}-top-left`,isDockedTopCenter:`${Pn}-top-center`,isDockedTopRight:`${Pn}-top-right`,isDockedBottomLeft:`${Pn}-bottom-left`,isDockedBottomCenter:`${Pn}-bottom-center`,isDockedBottomRight:`${Pn}-bottom-right`,alignTopCenter:`${kn}--aligned-top-center`,alignBottomCenter:`${kn}--aligned-bottom-center`,alignTopLeft:`${kn}--aligned-top-left`,alignBottomLeft:`${kn}--aligned-bottom-left`,alignTopRight:`${kn}--aligned-top-right`,alignBottomRight:`${kn}--aligned-bottom-right`,pointer:`${kn}__pointer`,pointerDirection:`${kn}__pointer-direction`};let Rn=class extends Cn{constructor(e){super(e)}};Rn=(0,n._)([(0,l.j)("esri.widgets.Popup.PopupViewModel")],Rn);const $n=Rn;let Sn=class extends A.Z{constructor(){super(...arguments),this.actionBar=!0,this.closeButton=!0,this.collapseButton=!0,this.featureNavigation=!0,this.heading=!0,this.spinner=!0}};(0,n._)([(0,a.Cb)({type:Boolean,nonNullable:!0})],Sn.prototype,"actionBar",void 0),(0,n._)([(0,a.Cb)({type:Boolean,nonNullable:!0})],Sn.prototype,"closeButton",void 0),(0,n._)([(0,a.Cb)({type:Boolean,nonNullable:!0})],Sn.prototype,"collapseButton",void 0),(0,n._)([(0,a.Cb)({type:Boolean,nonNullable:!0})],Sn.prototype,"featureNavigation",void 0),(0,n._)([(0,a.Cb)({type:Boolean,nonNullable:!0})],Sn.prototype,"heading",void 0),(0,n._)([(0,a.Cb)({type:Boolean,nonNullable:!0})],Sn.prototype,"spinner",void 0),Sn=(0,n._)([(0,l.j)("esri.widgets.Features.PopupVisibleElements")],Sn);const Zn=Sn,Nn={buttonEnabled:!0,position:"auto",breakpoint:{width:544}};let On=class extends g.Z{constructor(e,t){super(e,t),this._dockAction=new d.Z({id:"popup-dock-action"}),this._featuresWidget=new En({responsiveActionsEnabled:!0}),this._containerNode=null,this._mainContainerNode=null,this._pointerOffsetInPx=16,this.alignment="auto",this.collapsed=!1,this.dockEnabled=!1,this.headingLevel=2,this.messages=null,this.viewModel=new $n,this.visibleElements=new Zn}initialize(){this.addHandles([(0,r.YP)((()=>[this.viewModel?.view?.widthBreakpoint,this.dockEnabled]),(()=>this._handleDockIcon()),r.nn),(0,r.YP)((()=>[this.dockEnabled,this.messages?.undock,this.messages?.dock]),(()=>this._handleDockEnabled()),r.nn),(0,r.YP)((()=>this.dockOptions),(e=>{const{_dockAction:t}=this,i=this._featuresWidget.headerActions;i.remove(t),e.buttonEnabled&&i.add(t)}),r.nn),(0,r.YP)((()=>this.viewModel?.screenLocation),(()=>this._positionContainer())),(0,r.YP)((()=>[this.viewModel?.active,this.dockEnabled]),(()=>this._toggleScreenLocationEnabled())),(0,r.YP)((()=>[this.viewModel?.screenLocation,this.viewModel?.view?.padding,this.viewModel?.view?.size,this.viewModel?.active,this.viewModel?.location,this.alignment]),(()=>this.reposition())),(0,r.YP)((()=>this.viewModel?.view?.size),((e,t)=>this._updateDockEnabledForViewSize(e,t))),(0,r.YP)((()=>this.viewModel?.view),((e,t)=>this._viewChange(e,t))),(0,r.YP)((()=>this.viewModel?.view?.ready),((e,t)=>this._viewReadyChange(e??!1,t??!1))),(0,r.YP)((()=>this.viewModel),(()=>this._featuresWidget.viewModel=this.viewModel),r.nn),(0,r.YP)((()=>this._featureNavigationTop),(e=>this._featuresWidget.featureNavigationTop=e),r.nn),(0,r.YP)((()=>this.headingLevel),(e=>this._featuresWidget.headingLevel=e),r.nn),(0,r.YP)((()=>this.collapsed),(e=>this._featuresWidget.collapsed=e),r.nn),(0,r.YP)((()=>this.visibleElements.actionBar),(e=>this._featuresWidget.visibleElements.actionBar=!!e),r.nn),(0,r.YP)((()=>this.visibleElements.closeButton),(e=>this._featuresWidget.visibleElements.closeButton=!!e),r.nn),(0,r.YP)((()=>this.visibleElements.collapseButton),(e=>this._featuresWidget.visibleElements.collapseButton=!!e),r.nn),(0,r.YP)((()=>this.visibleElements.heading),(e=>this._featuresWidget.visibleElements.heading=!!e),r.nn),(0,r.YP)((()=>this.visibleElements.spinner),(e=>this._featuresWidget.visibleElements.spinner=!!e),r.nn),(0,r.YP)((()=>this.visibleElements.featureNavigation),(e=>this._featuresWidget.visibleElements.featureNavigation=!!e),r.nn),(0,r.on)((()=>this._featuresWidget),"trigger-header-action",(e=>{e.action===this._dockAction&&(this.dockEnabled=!this.dockEnabled)}))])}normalizeCtorArgs(e){const t={...e};return null!=e?.visibleElements&&(t.visibleElements=new Zn(e.visibleElements),null!=e.collapseEnabled&&(t.visibleElements.collapseButton=e.collapseEnabled),null!=e.spinnerEnabled&&(t.visibleElements.spinner=e.spinnerEnabled)),t}destroy(){this._dockAction.destroy(),this._featuresWidget?.destroy()}get _featureNavigationTop(){const{currentAlignment:e,currentDockPosition:t}=this;return"bottom-left"===e||"bottom-center"===e||"bottom-right"===e||"top-left"===t||"top-center"===t||"top-right"===t}get actions(){return this.viewModel.actions}set actions(e){this.viewModel.actions=e}get autoCloseEnabled(){return this.viewModel.autoCloseEnabled}set autoCloseEnabled(e){this.viewModel.autoCloseEnabled=e}get autoOpenEnabled(){return(0,s.Mr)(o.Z.getLogger(this),"autoOpenEnabled",{replacement:"MapView/SceneView.popupEnabled",version:"4.27"}),this.viewModel.autoOpenEnabled}set autoOpenEnabled(e){(0,s.Mr)(o.Z.getLogger(this),"autoOpenEnabled",{replacement:"MapView/SceneView.popupEnabled",version:"4.27"}),this.viewModel.autoOpenEnabled=e}get defaultPopupTemplateEnabled(){return this.viewModel.defaultPopupTemplateEnabled}set defaultPopupTemplateEnabled(e){this.viewModel.defaultPopupTemplateEnabled=e}get content(){return this.viewModel.content}set content(e){this.viewModel.content=e}get collapseEnabled(){return(0,s.Mr)(o.Z.getLogger(this),"collapseEnabled",{replacement:"PopupVisibleElements.collapseButton",version:"4.29"}),this.visibleElements.collapseButton}set collapseEnabled(e){(0,s.Mr)(o.Z.getLogger(this),"collapseEnabled",{replacement:"PopupVisibleElements.collapseButton",version:"4.29"}),this.visibleElements.collapseButton=e}get currentAlignment(){return this._getCurrentAlignment()}get currentDockPosition(){return this._getCurrentDockPosition()}get dockOptions(){return this._get("dockOptions")||Nn}set dockOptions(e){const t={...Nn},i=this.viewModel?.view?.breakpoints,n={};i&&(n.width=i.xsmall,n.height=i.xsmall);const s={...t,...e},o={...t.breakpoint,...n},{breakpoint:r}=s;"object"==typeof r?s.breakpoint={...o,...r}:r&&(s.breakpoint=o),this._set("dockOptions",s),this._setCurrentDockPosition(),this.reposition()}get featureCount(){return this.viewModel.featureCount}get featureMenuOpen(){return this.viewModel.featureMenuOpen}set featureMenuOpen(e){this.viewModel.featureMenuOpen=e}get features(){return this.viewModel.features}set features(e){this.viewModel.features=e}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get highlightEnabled(){return this.viewModel.highlightEnabled}set highlightEnabled(e){this.viewModel.highlightEnabled=e}get location(){return this.viewModel.location}set location(e){this.viewModel.location=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get promises(){return this.viewModel.promises}set promises(e){this.viewModel.promises=e}get selectedFeature(){return this.viewModel.selectedFeature}get selectedFeatureIndex(){return this.viewModel.selectedFeatureIndex}set selectedFeatureIndex(e){this.viewModel.selectedFeatureIndex=e}get selectedFeatureWidget(){return this._featuresWidget.selectedFeatureWidget}get spinnerEnabled(){return(0,s.Mr)(o.Z.getLogger(this),"spinnerEnabled",{replacement:"PopupVisibleElements.spinner",version:"4.29"}),this.visibleElements.spinner}set spinnerEnabled(e){(0,s.Mr)(o.Z.getLogger(this),"spinnerEnabled",{replacement:"PopupVisibleElements.spinner",version:"4.29"}),this.visibleElements.spinner=e}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}get updateLocationEnabled(){return this.viewModel.updateLocationEnabled}set updateLocationEnabled(e){this.viewModel.updateLocationEnabled=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}blur(){const{active:e}=this.viewModel;e||o.Z.getLogger(this).warn("Popup can only be blurred when currently active."),this._featuresWidget.blur()}clear(){return this.viewModel.clear()}close(){this.visible=!1}fetchFeatures(e,t){return this.viewModel.fetchFeatures(e,t)}focus(){const{active:e}=this.viewModel;e||o.Z.getLogger(this).warn("Popup can only be focused when currently active."),this.reposition(),requestAnimationFrame((()=>{this._featuresWidget.focus()}))}next(){return this.viewModel.next()}open(e){const t=!!e&&!!e.featureMenuOpen,i={collapsed:!!e&&!!e.collapsed,featureMenuOpen:t};this.set(i),this.viewModel.open(e),this._shouldFocus(e)}previous(){return this.viewModel.previous()}reposition(){this.renderNow(),this._positionContainer(),this._setCurrentAlignment()}triggerAction(e){return this.viewModel.triggerAction(e)}render(){const{dockEnabled:e,currentAlignment:t,currentDockPosition:i}=this,{active:n}=this.viewModel,s=n&&e,o=n&&!e,r=this.selectedFeature?.layer?.title,a=this.selectedFeature?.layer?.id,l={[Tn.alignTopCenter]:"top-center"===t,[Tn.alignBottomCenter]:"bottom-center"===t,[Tn.alignTopLeft]:"top-left"===t,[Tn.alignBottomLeft]:"bottom-left"===t,[Tn.alignTopRight]:"top-right"===t,[Tn.alignBottomRight]:"bottom-right"===t,[Tn.isDocked]:s,[Tn.shadow]:o,[Tn.isDockedTopLeft]:"top-left"===i,[Tn.isDockedTopCenter]:"top-center"===i,[Tn.isDockedTopRight]:"top-right"===i,[Tn.isDockedBottomLeft]:"bottom-left"===i,[Tn.isDockedBottomCenter]:"bottom-center"===i,[Tn.isDockedBottomRight]:"bottom-right"===i};return(0,Te.u)("div",{afterCreate:this._positionContainer,afterUpdate:this._positionContainer,bind:this,class:this.classes(Tn.base,l),"data-layer-id":a,"data-layer-title":r,role:"presentation"},n?[this._renderMainContainer(),this._renderPointer()]:null)}_renderPointer(){return this.dockEnabled?null:(0,Te.u)("div",{class:Tn.pointer,key:"popup-pointer",role:"presentation"},(0,Te.u)("div",{class:this.classes(Tn.pointerDirection,Tn.shadow)}))}_renderMainContainer(){const{dockEnabled:e}=this,t={[Tn.shadow]:e};return(0,Te.u)("div",{afterCreate:this._setMainContainerNode,afterUpdate:this._setMainContainerNode,bind:this,class:this.classes(Tn.main,Le.z.widget,t)},this._featuresWidget.render())}async _shouldFocus(e){e?.shouldFocus&&(await(0,r.N1)((()=>!0===this.viewModel?.active)),this.focus())}_isOutsideView(e){const{popupHeight:t,popupWidth:i,screenLocation:n,side:s,view:o}=e;if(isNaN(i)||isNaN(t)||!o||!n)return!1;const r=o.padding;return"right"===s&&n.x+i/2>o.width-r.right||"left"===s&&n.x-i/2o.height-r.bottom}_calculateAutoAlignment(e){if("auto"!==e)return e;const{_pointerOffsetInPx:t,_containerNode:i,_mainContainerNode:n,viewModel:s}=this,{screenLocation:o,view:r}=s;if(null==o||!r||!i)return"top-center";function a(e){return parseInt(e.replaceAll(/[^-\d\.]/g,""),10)}const l=n?window.getComputedStyle(n,null):null,d=l?a(l.getPropertyValue("max-height")):0,c=l?a(l.getPropertyValue("height")):0,{height:u,width:h}=i.getBoundingClientRect(),p=h+t,m=Math.max(u,d,c)+t,f=this._isOutsideView({popupHeight:m,popupWidth:p,screenLocation:o,side:"right",view:r}),g=this._isOutsideView({popupHeight:m,popupWidth:p,screenLocation:o,side:"left",view:r}),y=this._isOutsideView({popupHeight:m,popupWidth:p,screenLocation:o,side:"top",view:r}),b=this._isOutsideView({popupHeight:m,popupWidth:p,screenLocation:o,side:"bottom",view:r});return g?y?"bottom-right":"top-right":f?y?"bottom-left":"top-left":y?b?"top-center":"bottom-center":"top-center"}_callCurrentAlignment(e){return"function"==typeof e?e.call(this):e}_getCurrentAlignment(){const{alignment:e,dockEnabled:t}=this;return t||!this.viewModel.active?null:this._calculatePositionResult(this._calculateAutoAlignment(this._callCurrentAlignment(e)))}_setCurrentAlignment(){this._set("currentAlignment",this._getCurrentAlignment())}_setCurrentDockPosition(){this._set("currentDockPosition",this._getCurrentDockPosition())}_calculatePositionResult(e){const t=["left","right"];return(0,ke.dZ)(this.container)&&t.reverse(),e?.replace(/leading/gi,t[0]).replaceAll(/trailing/gi,t[1])}_callDockPosition(e){return"function"==typeof e?e.call(this):e}_getDockPosition(){return this._calculatePositionResult(this._calculateAutoDockPosition(this._callDockPosition(this.dockOptions?.position)))}_getCurrentDockPosition(){return this.dockEnabled&&this.viewModel.active?this._getDockPosition():null}_calculateAutoDockPosition(e){if("auto"!==e)return e;const t=this.viewModel?.view,i=(0,ke.dZ)(this.container)?"top-left":"top-right";if(!t)return i;const n=t.padding||{left:0,right:0,top:0,bottom:0},s=t.width-n.left-n.right,{breakpoints:o}=t;return o&&s<=o.xsmall?"bottom-center":i}_getDockIcon(){const e=this._getDockPosition();if(this.dockEnabled)return"minimize";switch(e){case"top-left":case"bottom-left":return"dock-left";case"top-center":return"maximize";case"bottom-center":return"dock-bottom";default:return"dock-right"}}_handleDockIcon(){this._dockAction.icon=this._getDockIcon()}_handleDockEnabled(){this._dockAction.title=this.dockEnabled?this.messages?.undock:this.messages?.dock}_setMainContainerNode(e){this._mainContainerNode=e}_positionContainer(e=this._containerNode){if(e&&(this._containerNode=e),!this._containerNode)return;const{screenLocation:t}=this.viewModel,{width:i}=this._containerNode.getBoundingClientRect(),n=this._calculatePositionStyle(t,i);n&&Object.assign(this._containerNode.style,n)}_calculateFullWidth(e){const{currentAlignment:t,_pointerOffsetInPx:i}=this;return"top-left"===t||"bottom-left"===t||"top-right"===t||"bottom-right"===t?e+i:e}_calculateAlignmentPosition(e,t,i,n){const{currentAlignment:s,_pointerOffsetInPx:o}=this;if(!i)return;const{padding:r}=i,a=n/2,l=i.height-t,d=i.width-e;return"bottom-center"===s?{top:t+o-r.top,left:e-a-r.left}:"top-left"===s?{bottom:l+o-r.bottom,right:d+o-r.right}:"bottom-left"===s?{top:t+o-r.top,right:d+o-r.right}:"top-right"===s?{bottom:l+o-r.bottom,left:e+o-r.left}:"bottom-right"===s?{top:t+o-r.top,left:e+o-r.left}:"top-center"===s?{bottom:l+o-r.bottom,left:e-a-r.left}:void 0}_calculatePositionStyle(e,t){const{dockEnabled:i,view:n}=this;if(!n)return;if(i)return{left:"",top:"",right:"",bottom:""};if(null==e||!t)return;const s=this._calculateFullWidth(t),o=this._calculateAlignmentPosition(e.x,e.y,n,s);return o?{top:void 0!==o.top?`${o.top}px`:"auto",left:void 0!==o.left?`${o.left}px`:"auto",bottom:void 0!==o.bottom?`${o.bottom}px`:"auto",right:void 0!==o.right?`${o.right}px`:"auto"}:void 0}_viewChange(e,t){e&&t&&(this.close(),this.clear())}_viewReadyChange(e,t){e?this._wireUpView():t&&(this.close(),this.clear())}_wireUpView(){this._setDockEnabledForViewSize(this.dockOptions)}_dockingThresholdCrossed(e,t,i){const[n,s]=e,[o,r]=t,{width:a=0,height:l=0}=i??{};return n<=a&&o>a||n>a&&o<=a||s<=l&&r>l||s>l&&r<=l}_updateDockEnabledForViewSize(e,t){if(!e||!t)return;const i=this.viewModel?.view?.padding||{left:0,right:0,top:0,bottom:0},n=i.left+i.right,s=i.top+i.bottom,o=[],r=[];o[0]=e[0]-n,o[1]=e[1]-s,r[0]=t[0]-n,r[1]=t[1]-s;const{dockOptions:a}=this,l=a.breakpoint;this._dockingThresholdCrossed(o,r,l)&&this._setDockEnabledForViewSize(a),this._setCurrentDockPosition()}_toggleScreenLocationEnabled(){const{dockEnabled:e,viewModel:t}=this;if(!t)return;const i=t.active&&!e;t.screenLocationEnabled=i}_shouldDockAtCurrentViewSize(e){const t=e.breakpoint,i=this.viewModel?.view?.ui;if(!i)return!1;const{width:n,height:s}=i;if(isNaN(n)||isNaN(s))return!1;if(!t)return!1;const o=t.hasOwnProperty("width")&&n<=(t.width??0),r=t.hasOwnProperty("height")&&s<=(t.height??0);return o||r}_setDockEnabledForViewSize(e){e.breakpoint&&(this.dockEnabled=this._shouldDockAtCurrentViewSize(e))}};(0,n._)([(0,a.Cb)({readOnly:!0})],On.prototype,"_featureNavigationTop",null),(0,n._)([(0,a.Cb)()],On.prototype,"actions",null),(0,n._)([(0,a.Cb)()],On.prototype,"alignment",void 0),(0,n._)([(0,a.Cb)()],On.prototype,"autoCloseEnabled",null),(0,n._)([(0,a.Cb)()],On.prototype,"autoOpenEnabled",null),(0,n._)([(0,a.Cb)()],On.prototype,"defaultPopupTemplateEnabled",null),(0,n._)([(0,a.Cb)()],On.prototype,"content",null),(0,n._)([(0,a.Cb)()],On.prototype,"collapsed",void 0),(0,n._)([(0,a.Cb)()],On.prototype,"collapseEnabled",null),(0,n._)([(0,a.Cb)({readOnly:!0})],On.prototype,"currentAlignment",null),(0,n._)([(0,a.Cb)({readOnly:!0})],On.prototype,"currentDockPosition",null),(0,n._)([(0,a.Cb)()],On.prototype,"dockOptions",null),(0,n._)([(0,a.Cb)()],On.prototype,"dockEnabled",void 0),(0,n._)([(0,a.Cb)({readOnly:!0})],On.prototype,"featureCount",null),(0,n._)([(0,a.Cb)()],On.prototype,"featureMenuOpen",null),(0,n._)([(0,a.Cb)()],On.prototype,"features",null),(0,n._)([(0,a.Cb)()],On.prototype,"goToOverride",null),(0,n._)([(0,a.Cb)()],On.prototype,"headingLevel",void 0),(0,n._)([(0,a.Cb)()],On.prototype,"highlightEnabled",null),(0,n._)([(0,a.Cb)()],On.prototype,"location",null),(0,n._)([(0,a.Cb)()],On.prototype,"label",null),(0,n._)([(0,a.Cb)(),(0,Pe.H)("esri/widgets/Popup/t9n/Popup")],On.prototype,"messages",void 0),(0,n._)([(0,a.Cb)()],On.prototype,"promises",null),(0,n._)([(0,a.Cb)({readOnly:!0})],On.prototype,"selectedFeature",null),(0,n._)([(0,a.Cb)()],On.prototype,"selectedFeatureIndex",null),(0,n._)([(0,a.Cb)({readOnly:!0})],On.prototype,"selectedFeatureWidget",null),(0,n._)([(0,a.Cb)()],On.prototype,"spinnerEnabled",null),(0,n._)([(0,a.Cb)()],On.prototype,"title",null),(0,n._)([(0,a.Cb)()],On.prototype,"updateLocationEnabled",null),(0,n._)([(0,a.Cb)()],On.prototype,"view",null),(0,n._)([(0,a.Cb)({type:$n}),(0,In.s)(["triggerAction","trigger-action"])],On.prototype,"viewModel",void 0),(0,n._)([(0,a.Cb)()],On.prototype,"visible",null),(0,n._)([(0,a.Cb)({type:Zn,nonNullable:!0})],On.prototype,"visibleElements",void 0),On=(0,n._)([(0,l.j)("esri.widgets.Popup")],On);const Vn=On}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/791.cb144fd9976c061d96b4.js b/docs/sentinel1-explorer/791.cb144fd9976c061d96b4.js new file mode 100644 index 00000000..940734e0 --- /dev/null +++ b/docs/sentinel1-explorer/791.cb144fd9976c061d96b4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[791],{10791:function(e,r,a){a.r(r),a.d(r,{default:function(){return o}});const o={_decimalSeparator:",",_thousandSeparator:" ",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - dd MMM",_date_hour:"HH:mm",_date_hour_full:"HH:mm - dd MMM",_date_day:"dd MMM",_date_day_full:"dd MMM",_date_week:"ww",_date_week_full:"dd MMM",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"AD",_era_bc:"BC",A:"A",P:"P",AM:"AM",PM:"PM","A.M.":"A.M.","P.M.":"P.M.",January:"Janvier",February:"Février",March:"Mars",April:"Avril",May:"Mai",June:"Juin",July:"Juillet",August:"Août",September:"Septembre",October:"Octobre",November:"Novembre",December:"Décembre",Jan:"Jan",Feb:"Fév",Mar:"Mar",Apr:"Avr","May(short)":"Mai",Jun:"Jui",Jul:"Jul",Aug:"Aoû",Sep:"Sep",Oct:"Oct",Nov:"Nov",Dec:"Déc",Sunday:"Dimanche",Monday:"Lundi",Tuesday:"Mardi",Wednesday:"Mercredi",Thursday:"Jeudi",Friday:"Vendredi",Saturday:"Samedi",Sun:"Dim",Mon:"Lun",Tue:"Mar",Wed:"Mer",Thu:"Jeu",Fri:"Ven",Sat:"Sam",_dateOrd:function(e){let r="e";return(e<11||e>13)&&e%10==1&&(r="er"),r},"Zoom Out":"Zoom Arrière",Play:"Joue",Stop:"Arrête",Legend:"Légende","Press ENTER to toggle":"cliquez, appuyez ou appuyez sur entrée pour basculer",Loading:"Charger",Home:"Accueil",Chart:"Graphique","Serial chart":"Graphique sérial","X/Y chart":"Graphique X/Y","Pie chart":"Camembert","Gauge chart":"Jauge graphique","Radar chart":"Carte radar","Sankey diagram":"Graphique Sankey","Flow diagram":"représentation schématique","Chord diagram":"diagramme d'accord","TreeMap chart":"carte de l'arbre","Sliced chart":"graphique en tranches",Series:"Séries","Candlestick Series":"Séries chandelier","OHLC Series":"Séries OHLC","Column Series":"Séries de colonnes","Line Series":"Série de lignes","Pie Slice Series":"Tarte tranche Séries","Funnel Series":"Séries d'entonnoir","Pyramid Series":"Séries pyramidale","X/Y Series":"Séries X/Y",Map:"Mappe","Press ENTER to zoom in":"Appuyez sur ENTER pour zoomer","Press ENTER to zoom out":"Appuyez sur ENTER pour effectuer un zoom arrière","Use arrow keys to zoom in and out":"Utilisez les touches fléchées pour zoomer et dézoomer","Use plus and minus keys on your keyboard to zoom in and out":"Utilisez les touches plus et moins de votre clavier pour effectuer un zoom avant ou arrière",Export:"Exporter",Image:"Image",Data:"Data",Print:"Imprimer","Press ENTER to open":"Cliquez, appuyez ou appuyez sur ENTER pour ouvrir","Press ENTER to print.":"Cliquez, appuyez ou appuyez sur ENTER pour imprimer","Press ENTER to export as %1.":"Cliquez, appuyez ou appuyez sur ENTER pour exporter comme %1","(Press ESC to close this message)":"(Appuyez sur ESC pour fermer ce message)","Image Export Complete":"Exportation d'image terminée","Export operation took longer than expected. Something might have gone wrong.":"L'exportation a pris plus de temps que prévu. Quelque chose aurait mal tourné.","Saved from":"Enregistré de",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"Utilisez la touche TAB pour sélectionner les boutons des poignées ou les flèches gauche et droite pour modifier la sélection.","Use left and right arrows to move selection":"Utilisez les flèches gauche et droite pour déplacer la sélection","Use left and right arrows to move left selection":"Utilisez les flèches gauche et droite pour déplacer la sélection gauche","Use left and right arrows to move right selection":"Utilisez les flèches gauche et droite pour déplacer la sélection droite","Use TAB select grip buttons or up and down arrows to change selection":"Utilisez les boutons de sélection TAB ou les flèches vers le haut et le bas pour modifier la sélection.","Use up and down arrows to move selection":"Utilisez les flèches haut et bas pour déplacer la sélection","Use up and down arrows to move lower selection":"Utilisez les flèches haut et bas pour déplacer la sélection inférieure","Use up and down arrows to move upper selection":"Utilisez les flèches haut et bas pour déplacer la sélection supérieure","From %1 to %2":"De %1 à %2","From %1":"De %1","To %1":"à %1","No parser available for file: %1":"Aucun analyseur disponible pour le fichier: %1","Error parsing file: %1":"Erreur d'analyse du fichier: %1","Unable to load file: %1":"Impossible de charger le fichier: %1","Invalid date":"Date invalide"}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7946.ba98d941346228ba72fe.js b/docs/sentinel1-explorer/7946.ba98d941346228ba72fe.js new file mode 100644 index 00000000..4083658e --- /dev/null +++ b/docs/sentinel1-explorer/7946.ba98d941346228ba72fe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7946],{47946:function(e,_,a){a.r(_),a.d(_,{default:function(){return o}});const o={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"po. Kr.",_era_bc:"pr. Kr.",A:"AM",P:"PM",AM:"AM",PM:"PM","A.M.":"AM","P.M.":"PM",January:"siječnja",February:"veljače",March:"ožujka",April:"travnja",May:"svibnja",June:"lipnja",July:"srpnja",August:"kolovoza",September:"rujna",October:"listopada",November:"studenoga",December:"prosinca",Jan:"sij",Feb:"velj",Mar:"ožu",Apr:"tra","May(short)":"svi",Jun:"lip",Jul:"srp",Aug:"kol",Sep:"ruj",Oct:"lis",Nov:"stu",Dec:"pro",Sunday:"nedjelja",Monday:"ponedjeljak",Tuesday:"utorak",Wednesday:"srijeda",Thursday:"četvrtak",Friday:"petak",Saturday:"subota",Sun:"ned",Mon:"pon",Tue:"uto",Wed:"sri",Thu:"čet",Fri:"pet",Sat:"sub",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Povećaj",Play:"Reproduciraj",Stop:"Zaustavi",Legend:"Legenda","Press ENTER to toggle":"",Loading:"Učitavanje",Home:"Početna",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Ispis",Image:"Slika",Data:"Podaci",Print:"Ispis","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Od %1 do %2","From %1":"Od %1","To %1":"Do %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/7981.7c86bbed904e147278eb.js b/docs/sentinel1-explorer/7981.7c86bbed904e147278eb.js new file mode 100644 index 00000000..9b1555cb --- /dev/null +++ b/docs/sentinel1-explorer/7981.7c86bbed904e147278eb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[7981],{87981:function(t,e,n){n.r(e),n.d(e,{l:function(){return s}});var r=n(58340);var i,o,a,u={exports:{}};i=u,o="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,a=function(t={}){var e,n,r=t;r.ready=new Promise(((t,r)=>{e=t,n=r}));var i=Object.assign({},r),a="object"==typeof window,u="function"==typeof importScripts;"object"==typeof process&&"object"==typeof process.versions&&process.versions.node;var f,s="";(a||u)&&(u?s=self.location.href:"undefined"!=typeof document&&document.currentScript&&(s=document.currentScript.src),o&&(s=o),s=0!==s.indexOf("blob:")?s.substr(0,s.replace(/[?#].*/,"").lastIndexOf("/")+1):"",u&&(f=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}));var c,l,p=r.print||void 0,h=r.printErr||void 0;Object.assign(r,i),i=null,r.arguments&&r.arguments,r.thisProgram&&r.thisProgram,r.quit&&r.quit,r.wasmBinary&&(c=r.wasmBinary),"object"!=typeof WebAssembly&&P("no native wasm support detected");var m,y,d=!1;function v(){var t=l.buffer;r.HEAP8=new Int8Array(t),r.HEAP16=new Int16Array(t),r.HEAPU8=m=new Uint8Array(t),r.HEAPU16=new Uint16Array(t),r.HEAP32=new Int32Array(t),r.HEAPU32=y=new Uint32Array(t),r.HEAPF32=new Float32Array(t),r.HEAPF64=new Float64Array(t)}var g=[],b=[],w=[];function A(t){g.unshift(t)}function E(t){w.unshift(t)}var R=0,_=null;function P(t){r.onAbort?.(t),h(t="Aborted("+t+")"),d=!0,t+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(t);throw n(e),e}var S,H=t=>t.startsWith("data:application/octet-stream;base64,");function x(t){if(t==S&&c)return new Uint8Array(c);if(f)return f(t);throw"both async and sync fetching of the wasm failed"}function I(t,e,n){return function(t){return c||!a&&!u||"function"!=typeof fetch?Promise.resolve().then((()=>x(t))):fetch(t,{credentials:"same-origin"}).then((e=>{if(!e.ok)throw"failed to load wasm binary file at '"+t+"'";return e.arrayBuffer()})).catch((()=>x(t)))}(t).then((t=>WebAssembly.instantiate(t,e))).then((t=>t)).then(n,(t=>{h(`failed to asynchronously prepare wasm: ${t}`),P(t)}))}H(S="libtess.wasm")||(S=function(t){return r.locateFile?r.locateFile(t,s):s+t}(S));var T=t=>{for(;t.length>0;)t.shift()(r)};r.noExitRuntime;var j,C=t=>{var e=(t-l.buffer.byteLength+65535)/65536;try{return l.grow(e),v(),1}catch(t){}},O=[null,[],[]],W="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,F=(t,e)=>{var n=O[t];0===e||10===e?((1===t?p:h)(((t,e,n)=>{for(var r=e+n,i=e;t[i]&&!(i>=r);)++i;if(i-e>16&&t.buffer&&W)return W.decode(t.subarray(e,i));for(var o="";e>10,56320|1023&s)}}else o+=String.fromCharCode((31&a)<<6|u)}else o+=String.fromCharCode(a)}return o})(n,0)),n.length=0):n.push(e)},M=[],k=t=>{var e=M[t];return e||(t>=M.length&&(M.length=t+1),M[t]=e=j.get(t)),e},U={e:()=>{throw 1/0},g:(t,e,n)=>m.copyWithin(t,e,e+n),f:t=>{var e=m.length,n=2147483648;if((t>>>=0)>n)return!1;for(var r=(t,e)=>t+(e-t%e)%e,i=1;i<=4;i*=2){var o=e*(1+.2/i);o=Math.min(o,t+100663296);var a=Math.min(n,r(Math.max(t,o),65536));if(C(a))return!0}return!1},c:(t,e,n,r)=>{for(var i=0,o=0;o>2],u=y[e+4>>2];e+=8;for(var f=0;f>2]=i,0},b:function(t,e){var n=L();try{return k(t)(e)}catch(t){if(z(n),t!==t+0)throw t;q(1,0)}},h:function(t,e,n,r){var i=L();try{return k(t)(e,n,r)}catch(t){if(z(i),t!==t+0)throw t;q(1,0)}},d:function(t,e){var n=L();try{k(t)(e)}catch(t){if(z(n),t!==t+0)throw t;q(1,0)}},a:function(t,e,n){var r=L();try{k(t)(e,n)}catch(t){if(z(r),t!==t+0)throw t;q(1,0)}}},B=function(){var t={a:U};function e(t,e){return B=t.exports,l=B.i,v(),j=B.m,function(t){b.unshift(t)}(B.j),function(t){if(R--,r.monitorRunDependencies?.(R),0==R&&_){var e=_;_=null,e()}}(),B}if(R++,r.monitorRunDependencies?.(R),r.instantiateWasm)try{return r.instantiateWasm(t,e)}catch(t){h(`Module.instantiateWasm callback failed with error: ${t}`),n(t)}return function(t,e,n,r){return t||"function"!=typeof WebAssembly.instantiateStreaming||H(e)||"function"!=typeof fetch?I(e,n,r):fetch(e,{credentials:"same-origin"}).then((t=>WebAssembly.instantiateStreaming(t,n).then(r,(function(t){return h(`wasm streaming compile failed: ${t}`),h("falling back to ArrayBuffer instantiation"),I(e,n,r)}))))}(c,S,t,(function(t){e(t.instance)})).catch(n),{}}();r._malloc=t=>(r._malloc=B.k)(t),r._free=t=>(r._free=B.l)(t),r._triangulate=(t,e,n,i,o,a)=>(r._triangulate=B.n)(t,e,n,i,o,a);var D,q=(t,e)=>(q=B.o)(t,e),L=()=>(L=B.p)(),z=t=>(z=B.q)(t);function N(){function t(){D||(D=!0,r.calledRun=!0,d||(T(b),e(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)E(r.postRun.shift());T(w)}()))}R>0||(function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)A(r.preRun.shift());T(g)}(),R>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("")}),1),t()}),1)):t()))}if(_=function t(){D||N(),D||(_=t)},r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();N();let $=null,Y=null,G=null,X=null;let J=0;return r.triangulate=(t,e,n)=>{$||($=r._triangulate);let i=r.HEAPF32;const o=r.HEAP32.BYTES_PER_ELEMENT,a=i.BYTES_PER_ELEMENT;n>J&&(J=n,G&&(r._free(G),G=0),Y&&(r._free(Y),Y=0)),G||(G=r._malloc(n*a)),X||(X=r._malloc(4e3*o));const u=2*n;Y||(Y=r._malloc(u*a)),i=r.HEAPF32,i.set(t,G/a),r.HEAP32.set(e,X/o);const f=u/2,s=$(G,X,Math.min(e.length,4e3),2,Y,f),c=2*s;i=r.HEAPF32;const l=i.slice(Y/a,Y/a+c),p={};return p.buffer=l,p.vertexCount=s,p},t.ready},i.exports=a;var f=u.exports;const s=function(t,e){for(var n=0;nr[e]})}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}({__proto__:null,default:(0,r.g)(f)},[f])}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8009.13e7115b69144e160ede.js b/docs/sentinel1-explorer/8009.13e7115b69144e160ede.js new file mode 100644 index 00000000..c563aa45 --- /dev/null +++ b/docs/sentinel1-explorer/8009.13e7115b69144e160ede.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8009],{33455:function(e,t,i){i.d(t,{Z:function(){return s}});class s{constructor(){this.declaredRootClass="esri.arcade.featureSetCollection",this._layerById={},this._layerByName={}}add(e,t,i){this._layerById[t]=i,this._layerByName[e]=i}async featureSetByName(e,t=!0,i=["*"]){return void 0===this._layerByName[e]?null:this._layerByName[e]}async featureSetById(e,t=!0,i=["*"]){return void 0===this._layerById[e]?null:this._layerById[e]}castToText(e=!1){return"object, FeatureSetCollection"}}},88009:function(e,t,i){i.r(t),i.d(t,{constructAssociationMetaDataFeatureSetFromUrl:function(){return oe},constructFeatureSet:function(){return ne},constructFeatureSetFromPortalItem:function(){return _e},constructFeatureSetFromRelationship:function(){return ue},constructFeatureSetFromUrl:function(){return ae},convertToFeatureSet:function(){return pe},createFeatureSetCollectionFromMap:function(){return ce},createFeatureSetCollectionFromService:function(){return fe},initialiseMetaDataCache:function(){return se}});var s=i(66341),r=i(33455),a=i(94837),n=i(62700),l=i(80085),o=i(45712),u=i(2441),d=i(62408),h=i(24270),c=i(77732),f=i(7429),p=i(68673),_=i(62294),y=i(75718),g=i(23709);class m{constructor(){this.field="",this.tofieldname="",this.typeofstat="MIN",this.workingexpr=null}clone(){const e=new m;return e.field=this.field,e.tofieldname=this.tofieldname,e.typeofstat=this.typeofstat,e.workingexpr=this.workingexpr,e}static parseStatField(e,t,i,s){const r=new m;r.field=e;const a=g.WhereClause.create(t,i,s),n=function(e){if("function"===e.parseTree.type){if(0===e.parseTree.args.value.length)return{name:e.parseTree.name,expr:null};if(e.parseTree.args.value.length>1)throw new d.eS(d.f.MissingStatisticParameters);const t=g.WhereClause.create((0,_.XF)(e.parseTree.args.value[0],p.Bj.Standardised,e.parameters),e.fieldsIndex,e.timeZone);return{name:e.parseTree.name,expr:t}}return null}(a);if(null===n)throw new d.eS(d.f.UnsupportedSqlFunction,{function:""});const l=n.name.toUpperCase().trim();if("MIN"===l){if(r.typeofstat="MIN",r.workingexpr=n.expr,null===a)throw new d.eS(d.f.InvalidFunctionParameters,{function:"min"})}else if("MAX"===l){if(r.typeofstat="MAX",r.workingexpr=n.expr,null===a)throw new d.eS(d.f.InvalidFunctionParameters,{function:"max"})}else if("COUNT"===l)r.typeofstat="COUNT",r.workingexpr=n.expr;else if("STDEV"===l){if(r.typeofstat="STDDEV",r.workingexpr=n.expr,null===a)throw new d.eS(d.f.InvalidFunctionParameters,{function:"stdev"})}else if("SUM"===l){if(r.typeofstat="SUM",r.workingexpr=n.expr,null===a)throw new d.eS(d.f.InvalidFunctionParameters,{function:"sum"})}else if("MEAN"===l){if(r.typeofstat="AVG",r.workingexpr=n.expr,null===a)throw new d.eS(d.f.InvalidFunctionParameters,{function:l})}else if("AVG"===l){if(r.typeofstat="AVG",r.workingexpr=n.expr,null===a)throw new d.eS(d.f.InvalidFunctionParameters,{function:"avg"})}else{if("VAR"!==l)throw new d.eS(d.f.UnsupportedSqlFunction,{function:l});if(r.typeofstat="VAR",r.workingexpr=n.expr,null===a)throw new d.eS(d.f.InvalidFunctionParameters,{function:"var"})}return r}toStatisticsName(){switch(this.typeofstat.toUpperCase()){case"MIN":return"min";case"MAX":return"max";case"SUM":return"sum";case"COUNT":default:return"count";case"VAR":return"var";case"STDDEV":return"stddev";case"AVG":return"avg"}}}var w=i(86630),F=i(19980),S=i(52192),b=i(62717),I=i(14685),C=i(12512),D=i(28790);function T(e){if(!e)return"COUNT";switch(e.toLowerCase()){case"max":return"MAX";case"var":case"variance":return"VAR";case"avg":case"average":case"mean":return"AVG";case"min":return"MIN";case"sum":return"SUM";case"stdev":case"stddev":return"STDDEV";case"count":return"COUNT"}return"COUNT"}class R extends h.Z{constructor(e){super(e),this._decodedStatsfield=[],this._decodedGroupbyfield=[],this._candosimplegroupby=!0,this.phsyicalgroupbyfields=[],this.objectIdField="ROW__ID",this._internalObjectIdField="ROW__ID",this._adaptedFields=[],this.declaredClass="esri.arcade.featureset.actions.Aggregate",this._uniqueIds=1,this._maxQuery=10,this._maxProcessing=10,this._parent=e.parentfeatureset,this._config=e}isTable(){return!0}async _getSet(e){if(null===this._wset){const t=await this._getFilteredSet("",null,null,null,e);return this._wset=t,this._wset}return this._wset}_isInFeatureSet(){return p.dj.InFeatureSet}_nextUniqueName(e){for(;1===e["T"+this._uniqueIds.toString()];)this._uniqueIds++;const t="T"+this._uniqueIds.toString();return e[t]=1,t}_convertToEsriFieldType(e){return e}_initialiseFeatureSet(){const e={};let t=!1,i=1;const s=this._parent?this._parent.getFieldsIndex():new D.Z([]);for(this.objectIdField="ROW__ID",this.globalIdField="";!1===t;){let e=!1;for(let t=0;t0)for(const e of this._parent.fields)this._adaptedFields.push(new o.$X(e));for(let t=0;t0&&(d=new o.Xx({parentfeatureset:this._parent,adaptedFields:this._adaptedFields,extraFilter:null})),!0===l.nowhereclause)a=new c.Z(["GETPAGES"],[],!1,{aggregatefeaturesetpagedefinition:!0,resultOffset:0,resultRecordCount:this._maxQuery,internal:{fullyResolved:!1,workingItem:null,type:"manual",iterator:null,set:[],subfeatureset:new u.Z({parentfeatureset:d,orderbyclause:new f.Z(this.phsyicalgroupbyfields.join(",")+","+this._parent.objectIdField+" ASC")})}});else{let e=d;if(null!==i){let t=null;i&&(t=this._reformulateWhereClauseWithoutGroupByFields(i)),e=new n.Z({parentfeatureset:e,whereclause:t})}a=new c.Z(["GETPAGES"],[],!1,{aggregatefeaturesetpagedefinition:!0,resultOffset:0,resultRecordCount:this._maxQuery,internal:{fullyResolved:!1,workingItem:null,type:"manual",iterator:null,set:[],subfeatureset:new u.Z({parentfeatureset:e,orderbyclause:new f.Z(this.phsyicalgroupbyfields.join(",")+","+this._parent.objectIdField+" ASC")})}})}return a}_reformulateWhereClauseWithoutStatsFields(e){for(const t of this._decodedStatsfield)e=(0,_.bB)(e,t.tofieldname,(0,_.zR)(t.workingexpr,p.Bj.Standardised),this._parent.getFieldsIndex());return e}_reformulateWhereClauseWithoutGroupByFields(e){for(const t of this._decodedGroupbyfield)t.tofieldname!==t.name&&(e=(0,_.bB)(e,t.tofieldname,(0,_.zR)(t.expression,p.Bj.Standardised),this._parent.getFieldsIndex()));return e}_reformulateOrderClauseWithoutGroupByFields(e){const t=[];for(const e of this._decodedGroupbyfield)e.tofieldname!==e.name&&t.push({field:e.tofieldname,newfield:e.name});return t.length>0?e.replaceFields(t):e}_clonePageDefinition(e){return null===e?null:!0===e.aggregatefeaturesetpagedefinition?{aggregatefeaturesetpagedefinition:!0,resultRecordCount:e.resultRecordCount,resultOffset:e.resultOffset,internal:e.internal}:this._parent._clonePageDefinition(e)}async _refineSetBlock(e,t,i){if(!0===this._checkIfNeedToExpandCandidatePage(e,this._maxQuery))return await this._expandPagedSet(e,this._maxQuery,0,0,i),this._refineSetBlock(e,t,i);this._checkCancelled(i);e._candidates.length;return this._refineKnowns(e,t),e._candidates.length,e._candidates.length,e}_expandPagedSet(e,t,i,s,r){return this._expandPagedSetFeatureSet(e,t,i,s,r)}async _getPhysicalPage(e,t,i){if(!0===e.pagesDefinition.aggregatefeaturesetpagedefinition)return this._sequentialGetPhysicalItem(e,e.pagesDefinition.resultRecordCount,i,[]);const s=await this._getAgregagtePhysicalPage(e,t,i);for(const e of s){const t={geometry:e.geometry,attributes:{}},i={};for(const t in e.attributes)i[t.toLowerCase()]=e.attributes[t];for(const e of this._decodedGroupbyfield)t.attributes[e.tofieldname]=i[e.name.toLowerCase()];for(const e of this._decodedStatsfield)t.attributes[e.tofieldname]=i[e.field.toLowerCase()];this._featureCache[t.attributes[this.objectIdField]]=new l.Z(t)}return s.length}_sequentialGetPhysicalItem(e,t,i,s){return new Promise(((r,a)=>{null===e.pagesDefinition.internal.iterator&&(e.pagesDefinition.internal.iterator=e.pagesDefinition.internal.subfeatureset.iterator(i)),!0===e.pagesDefinition.internal.fullyResolved||0===t?r(s.length):this._nextAggregateItem(e,t,i,s,(a=>{null===a?r(s.length):(t-=1,r(this._sequentialGetPhysicalItem(e,t,i,s)))}),a)}))}_nextAggregateItem(e,t,i,s,r,n){try{(0,a.a2)(e.pagesDefinition.internal.iterator.next()).then((a=>{if(null===a)if(null!==e.pagesDefinition.internal.workingItem){const t=this._calculateAndAppendAggregateItem(e.pagesDefinition.internal.workingItem);s.push(t),e.pagesDefinition.internal.workingItem=null,e.pagesDefinition.internal.set.push(t.attributes[this.objectIdField]),e.pagesDefinition.internal.fullyResolved=!0,r(null)}else e.pagesDefinition.internal.fullyResolved=!0,r(null);else{const l=this._generateAggregateHash(a);if(null===e.pagesDefinition.internal.workingItem)e.pagesDefinition.internal.workingItem={features:[a],id:l};else{if(l!==e.pagesDefinition.internal.workingItem.id){const i=this._calculateAndAppendAggregateItem(e.pagesDefinition.internal.workingItem);return s.push(i),e.pagesDefinition.internal.workingItem=null,e.pagesDefinition.internal.set.push(i.attributes[this.objectIdField]),t-=1,e.pagesDefinition.internal.workingItem={features:[a],id:l},void r(i)}e.pagesDefinition.internal.workingItem.features.push(a)}this._nextAggregateItem(e,t,i,s,r,n)}}),n)}catch(e){n(e)}}_calculateFieldStat(e,t,i){const s=[];for(let i=0;i=10.61&&(this._databaseType=p.Bj.Standardised)):null!=e&&(e>=10.5&&(this._databaseType=p.Bj.StandardisedNoInterval,this._requestStandardised=!0),e>=10.61&&(this._databaseType=p.Bj.Standardised))}this.objectIdField=this._layer.objectIdField;for(const e of this.fields)"global-id"===e.type&&(this.globalIdField=e.name);this._layer instanceof Z.default?(this.subtypeField=this._layer.subtypeField??"",this.subtypes=this._layer.subtypes,this.types=null,this.typeIdField=null):(this.typeIdField=this._layer.typeIdField??"",this.types=this._layer.types,this.subtypeField=this._layer.subtypeField,this.subtypes=this._layer.subtypes)}_isInFeatureSet(){return p.dj.InFeatureSet}async _refineSetBlock(e){return e}_candidateIdTransform(e){return e}async _getSet(e){if(null===this._wset){await this._ensureLoaded();const t=await this._getFilteredSet("",null,null,null,e);return this._wset=t,t}return this._wset}async _runDatabaseProbe(e){await this._ensureLoaded();const t=new Q.Z;this.datesInUnknownTimezone&&(t.timeReferenceUnknownClient=!0),t.where=e.replace("OBJECTID",this._layer.objectIdField);try{return await this._layer.queryObjectIds(t),!0}catch(e){return!1}}_canUsePagination(){return!(!this._layer.capabilities||!this._layer.capabilities.query||!0!==this._layer.capabilities.query.supportsPagination)}_cacheableFeatureSetSourceKey(){return this._layer.url}pbfSupportedForQuery(e){const t=this._layer?.capabilities?.query;return!e.outStatistics&&!0===t?.supportsFormatPBF&&!0===t?.supportsQuantizationEditMode}async queryPBF(e){return e.quantizationParameters={mode:"edit"},(await V(this._layer.parsedUrl,e,{format:"pbf"},{})).unquantize()}get gdbVersion(){return this._layer&&this._layer.capabilities&&this._layer.capabilities.data&&this._layer.capabilities.data.isVersioned?this._layer.gdbVersion||"SDE.DEFAULT":""}nativeCapabilities(){return{title:this._layer.title??"",source:this,canQueryRelated:!0,capabilities:this._layer.capabilities,databaseType:this._databaseType,requestStandardised:this._requestStandardised}}executeQuery(e,t){e.returnZ=this.hasZ,e.returnM=this.hasM;const i="execute"===t?G.e:"executeForCount"===t?J.P:K.G,s="execute"===t&&this.pbfSupportedForQuery(e);let r=null;if(this.recentlyUsedQueries){const t=this.convertQueryToLruCacheKey(e);r=this.recentlyUsedQueries.getFromCache(t),null===r&&(r=!0!==s?i(this._layer.parsedUrl.path,e):this.queryPBF(e),this.recentlyUsedQueries.addToCache(t,r),r=r.catch((e=>{throw this.recentlyUsedQueries?.removeFromCache(t),e})))}return this.featureSetQueryInterceptor&&this.featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:e,method:t}),null===r&&(r=!0!==s?i(this._layer.parsedUrl.path,e):this.queryPBF(e)),r}async _getFilteredSet(e,t,i,s,r){const a=await this.databaseType();if(this.isTable()&&t&&null!==e&&""!==e)return new c.Z([],[],!0,null);if(this._canUsePagination())return this._getFilteredSetUsingPaging(e,t,i,s,r);let n="",l=!1;null!==s&&this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsOrderBy&&(n=s.constructClause(),l=!0);const o=new Q.Z;this.datesInUnknownTimezone&&(o.timeReferenceUnknownClient=!0),o.where=null===i?null===t?"1=1":"":(0,_.zR)(i,a),this._requestStandardised&&(o.sqlFormat="standard"),o.spatialRelationship=this._makeRelationshipEnum(e),o.outSpatialReference=this.spatialReference,o.orderByFields=""!==n?n.split(","):null,o.geometry=null===t?null:t,o.relationParameter=this._makeRelationshipParam(e);let u=await this.executeQuery(o,"executeForIds");return null===u&&(u=[]),this._checkCancelled(r),new c.Z([],u,l,null)}_expandPagedSet(e,t,i,s,r){return this._expandPagedSetFeatureSet(e,t,i,s,r)}async _getFilteredSetUsingPaging(e,t,i,s,r){let a="",n=!1;null!==s&&this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsOrderBy&&(a=s.constructClause(),n=!0);const l=await this.databaseType();let o=null===i?null===t?"1=1":"":(0,_.zR)(i,l);this._layer.definitionExpression&&this._useDefinitionExpression&&(o=""!==o?"(("+this._layer.definitionExpression+") AND ("+o+"))":this._layer.definitionExpression);let u=this._maxQueryRate();const d=this._layer.capabilities?.query.maxRecordCount;null!=d&&d=this._maxProcessingRate()-1))break}if(a>=i&&0===r.length)break}if(0===r.length)return"success";const n=new Q.Z;this._requestStandardised&&(n.sqlFormat="standard"),this.datesInUnknownTimezone&&(n.timeReferenceUnknownClient=!0),n.objectIds=r,n.outFields=this._overrideFields??this._fieldsIncludingObjectId(["*"]),n.returnGeometry=!0,!0===this._removeGeometry&&(n.returnGeometry=!1),n.outSpatialReference=this.spatialReference;const l=await this.executeQuery(n,"execute");if(this._checkCancelled(s),void 0!==l.error)throw new d.EN(d.H9.RequestFailed,{reason:l.error});const o=this._layer.objectIdField;for(let e=0;e=n)break}return 0===y.features.length?l:y.features.length===this._layer.capabilities?.query.maxRecordCount&&l.length"+e.pagesDefinition.internal.lastMaxId.toString()+")":e.pagesDefinition.generatedOid+">"+e.pagesDefinition.internal.lastMaxId.toString());const r=e.pagesDefinition.internal.lastRetrieved,a=r,n=e.pagesDefinition.internal.lastPage,o=new Q.Z;if(this._requestStandardised&&(o.sqlFormat="standard"),o.where=s,o.spatialRelationship=e.pagesDefinition.spatialRel,o.relationParameter=e.pagesDefinition.relationParam,o.outFields=e.pagesDefinition.outFields,o.outStatistics=e.pagesDefinition.outStatistics,o.geometry=e.pagesDefinition.geometry,o.groupByFieldsForStatistics=e.pagesDefinition.groupByFieldsForStatistics,o.num=e.pagesDefinition.resultRecordCount,o.start=e.pagesDefinition.internal.lastPage,o.returnGeometry=e.pagesDefinition.returnGeometry,this.datesInUnknownTimezone&&(o.timeReferenceUnknownClient=!0),o.orderByFields=""!==e.pagesDefinition.orderByFields?e.pagesDefinition.orderByFields.split(","):null,this.isTable()&&o.geometry&&o.spatialRelationship)return[];const u=await this.executeQuery(o,"execute");if(this._checkCancelled(i),!u.hasOwnProperty("features"))throw new d.EN(d.H9.InvalidStatResponse);const h=[];if(e.pagesDefinition.internal.lastPage!==n)return[];u.features.length>0&&void 0===u.features[0].attributes[e.pagesDefinition.generatedOid]&&(e.pagesDefinition.generatedOid=e.pagesDefinition.generatedOid.toLowerCase());for(let t=0;t0||i&&i>0)&&(a.size=[t&&t>0?t:0,i&&i>0?i:t+1]),s&&s.length>0&&(a.attachmentTypes=s),this.featureSetQueryInterceptor&&this.featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:a,method:"attachments"});const n=await this._layer.queryAttachments(a),l=[];return n&&n[e]&&n[e].forEach((t=>{const i=this._layer.parsedUrl.path+"/"+e.toString()+"/attachments/"+t.id.toString();let s=null;r&&t.exifInfo&&(s=A.Z.convertJsonToArcade(t.exifInfo,"system",!0)),l.push(new N.Z(t.id,t.name,t.contentType,t.size,i,s,t.keywords??null))})),l}return[]}async queryRelatedFeatures(e){const t={f:"json",relationshipId:e.relationshipId.toString(),definitionExpression:e.where,outFields:e.outFields?.join(","),returnGeometry:e.returnGeometry.toString()};void 0!==e.resultOffset&&null!==e.resultOffset&&(t.resultOffset=e.resultOffset.toString()),void 0!==e.resultRecordCount&&null!==e.resultRecordCount&&(t.resultRecordCount=e.resultRecordCount.toString()),e.orderByFields&&(t.orderByFields=e.orderByFields.join(",")),e.objectIds&&e.objectIds.length>0&&(t.objectIds=e.objectIds.join(",")),e.outSpatialReference&&(t.outSR=(0,E.B9)(e.outSpatialReference)),this.featureSetQueryInterceptor&&this.featureSetQueryInterceptor.preRequestCallback({layer:this._layer,queryPayload:t,method:"relatedrecords",url:this._layer.parsedUrl.path+"/queryRelatedRecords"});const i=await(0,s.Z)(this._layer.parsedUrl.path+"/queryRelatedRecords",{responseType:"json",query:t});if(i.data){const e={},t=i.data;if(t?.relatedRecordGroups){const i=t.spatialReference;for(const s of t.relatedRecordGroups){const r=s.objectId,a=[];for(const e of s.relatedRecords){e.geometry&&(e.geometry.spatialReference=i);const t=new l.Z({geometry:e.geometry?(0,L.im)(e.geometry):null,attributes:e.attributes});a.push(t)}e[r]={features:a,exceededTransferLimit:!0===t.exceededTransferLimit}}}return e}throw new d.EN(d.H9.InvalidRequest)}async getFeatureByObjectId(e,t){const i=new Q.Z;i.outFields=t,i.returnGeometry=!1,i.outSpatialReference=this.spatialReference,i.where=this.objectIdField+"="+e.toString(),this.datesInUnknownTimezone&&(i.timeReferenceUnknownClient=!0),this.featureSetQueryInterceptor&&this.featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:i,method:"execute"});const s=await(0,G.e)(this._layer.parsedUrl.path,i);return 1===s.features.length?s.features[0]:null}async getIdentityUser(){await this.load();const e=x.id?.findCredential(this._layer.url);return e?e.userId:null}async getOwningSystemUrl(){await this.load();const e=x.id?.findServerInfo(this._layer.url);if(e)return e.owningSystemUrl;let t=this._layer.url;const i=t.toLowerCase().indexOf("/rest/services");if(t=i>-1?t.substring(0,i):t,t){t+="/rest/info";try{const e=await(0,s.Z)(t,{query:{f:"json"}});let i="";return e.data?.owningSystemUrl&&(i=e.data.owningSystemUrl),i}catch(e){return""}}return""}getDataSourceFeatureSet(){const e=new $({layer:this._layer,spatialReference:this.spatialReference??void 0,outFields:this._overrideFields??void 0,includeGeometry:!this._removeGeometry,lrucache:this.recentlyUsedQueries??void 0,interceptor:this.featureSetQueryInterceptor??void 0});return e._useDefinitionExpression=!1,e}get preferredTimeZone(){return this._layer.preferredTimeZone??null}get dateFieldsTimeZone(){return this._layer.dateFieldsTimeZone??null}get datesInUnknownTimezone(){return this._layer.datesInUnknownTimezone}get editFieldsInfo(){return this._layer.editFieldsInfo??null}get timeInfo(){return this._layer.timeInfo??null}async getFeatureSetInfo(){if(this.fsetInfo)return this.fsetInfo;let e=null,{parsedUrl:{path:t},serviceItemId:i=null}=this._layer;if(t){const r=await(0,s.Z)(t,{responseType:"json",query:{f:"json"}});e=r?.data?.name??null,i=r?.data?.serviceItemId??null}const r=this._layer.title&&null!==(this._layer.parent??null);return this.featureSetInfo={layerId:this._layer.layerId,layerName:""===e?null:e,itemId:""===i?null:i,serviceLayerUrl:""===t?null:t,webMapLayerId:r?this._layer.id??null:null,webMapLayerTitle:r?this._layer.title??null:null,className:null,objectClassId:null},this.fsetInfo}}var Y=i(20155);class ee extends h.Z{constructor(e){super(e),this.declaredClass="esri.arcade.featureset.sources.FeatureLayerRelated",this._findObjectId=-1,this._requestStandardised=!1,this._removeGeometry=!1,this._overrideFields=null,this.featureObjectId=null,e.spatialReference&&(this.spatialReference=e.spatialReference),this._transparent=!0,this._maxProcessing=1e3,this._layer=e.layer,this._wset=null,this._findObjectId=e.objectId,this.featureObjectId=e.objectId,this.relationship=e.relationship,this._relatedLayer=e.relatedLayer,void 0!==e.outFields&&(this._overrideFields=e.outFields),void 0!==e.includeGeometry&&(this._removeGeometry=!1===e.includeGeometry)}_maxQueryRate(){return p.tI}end(){return this._layer}optimisePagingFeatureQueries(){}async loadImpl(){return await Promise.all([this._layer.load(),this._relatedLayer?.load()]),this._initialiseFeatureSet(),this}nativeCapabilities(){return this._relatedLayer.nativeCapabilities()}_initialiseFeatureSet(){if(null==this.spatialReference&&(this.spatialReference=this._layer.spatialReference),this.geometryType=this._relatedLayer.geometryType,this.fields=this._relatedLayer.fields.slice(0),this.hasZ=this._relatedLayer.hasZ,this.hasM=this._relatedLayer.hasM,null!==this._overrideFields)if(1===this._overrideFields.length&&"*"===this._overrideFields[0])this._overrideFields=null;else{const e=[],t=[];for(const i of this.fields)if("oid"===i.type)e.push(i),t.push(i.name);else for(const s of this._overrideFields)if(s.toLowerCase()===i.name.toLowerCase()){e.push(i),t.push(i.name);break}this.fields=e,this._overrideFields=t}const e=this._layer.nativeCapabilities();e&&(this._databaseType=e.databaseType,this._requestStandardised=e.requestStandardised),this.objectIdField=this._relatedLayer.objectIdField,this.globalIdField=this._relatedLayer.globalIdField,this.hasM=this._relatedLayer.supportsM,this.hasZ=this._relatedLayer.supportsZ,this.typeIdField=this._relatedLayer.typeIdField,this.types=this._relatedLayer.types,this.subtypeField=this._relatedLayer.subtypeField,this.subtypes=this._relatedLayer.subtypes}async databaseType(){return await this._relatedLayer.databaseType(),this._databaseType=this._relatedLayer._databaseType,this._databaseType}isTable(){return this._relatedLayer.isTable()}_isInFeatureSet(){return p.dj.InFeatureSet}_candidateIdTransform(e){return e}async _getSet(e){if(null===this._wset){await this._ensureLoaded();const t=await this._getFilteredSet("",null,null,null,e);return this._wset=t,t}return this._wset}_changeFeature(e){const t={};for(const i of this.fields)t[i.name]=e.attributes[i.name];return new l.Z({geometry:!0===this._removeGeometry?null:e.geometry,attributes:t})}async _getFilteredSet(e,t,i,s,r){if(await this.databaseType(),this.isTable()&&t&&null!==e&&""!==e)return new c.Z([],[],!0,null);const a=this._layer.nativeCapabilities();if(!1===a.canQueryRelated)return new c.Z([],[],!0,null);if(a.capabilities?.queryRelated&&a.capabilities.queryRelated.supportsPagination)return this._getFilteredSetUsingPaging(e,t,i,s,r);let n="",l=!1;null!==s&&a.capabilities?.queryRelated&&!0===a.capabilities.queryRelated.supportsOrderBy&&(n=s.constructClause(),l=!0);const o=new H.default;o.objectIds=[this._findObjectId];const u=null!==this._overrideFields?this._overrideFields:this._fieldsIncludingObjectId(this._relatedLayer.fields?this._relatedLayer.fields.map((e=>e.name)):["*"]);o.outFields=u,o.relationshipId=this.relationship.id,o.where="1=1";let d=!0;!0===this._removeGeometry&&(d=!1),o.returnGeometry=d,this._requestStandardised&&(o.sqlFormat="standard"),o.outSpatialReference=this.spatialReference,o.orderByFields=""!==n?n.split(","):null;const h=await a.source.queryRelatedFeatures(o);this._checkCancelled(r);const f=h[this._findObjectId]?h[this._findObjectId].features:[],p=[];for(let e=0;ee.name)):["*"]);return f=new c.Z(d||h?["GETPAGES"]:[],d||h?[]:["GETPAGES"],n,{outFields:_.join(","),resultRecordCount:o,resultOffset:0,objectIds:[this._findObjectId],where:"1=1",orderByFields:a,returnGeometry:p,returnIdsOnly:"false",internal:{set:[],lastRetrieved:0,lastPage:0,fullyResolved:!1}}),await this._expandPagedSet(f,o,0,0,r),f}_expandPagedSet(e,t,i,s,r){return this._expandPagedSetFeatureSet(e,t,i,s,r)}_clonePageDefinition(e){return null===e?null:!0!==e.groupbypage?{groupbypage:!1,outFields:e.outFields,resultRecordCount:e.resultRecordCount,resultOffset:e.resultOffset,where:e.where,objectIds:e.objectIds,orderByFields:e.orderByFields,returnGeometry:e.returnGeometry,returnIdsOnly:e.returnIdsOnly,internal:e.internal}:{groupbypage:!0,outFields:e.outFields,resultRecordCount:e.resultRecordCount,useOIDpagination:e.useOIDpagination,generatedOid:e.generatedOid,groupByFieldsForStatistics:e.groupByFieldsForStatistics,resultOffset:e.resultOffset,outStatistics:e.outStatistics,geometry:e.geometry,where:e.where,objectIds:e.objectIds,orderByFields:e.orderByFields,returnGeometry:e.returnGeometry,returnIdsOnly:e.returnIdsOnly,internal:e.internal}}async _getPhysicalPage(e,t,i){const s=e.pagesDefinition.internal.lastRetrieved,r=s,a=e.pagesDefinition.internal.lastPage,n=this._layer.nativeCapabilities(),l=new H.default;!0===this._requestStandardised&&(l.sqlFormat="standard"),l.relationshipId=this.relationship.id,l.objectIds=e.pagesDefinition.objectIds,l.resultOffset=e.pagesDefinition.internal.lastPage,l.resultRecordCount=e.pagesDefinition.resultRecordCount,l.outFields=e.pagesDefinition.outFields.split(","),l.where=e.pagesDefinition.where,l.orderByFields=""!==e.pagesDefinition.orderByFields?e.pagesDefinition.orderByFields.split(","):null,l.returnGeometry=e.pagesDefinition.returnGeometry,l.outSpatialReference=this.spatialReference;const o=await n.source.queryRelatedFeatures(l);if(this._checkCancelled(i),e.pagesDefinition.internal.lastPage!==a)return 0;const u=o[this._findObjectId]?o[this._findObjectId].features:[];for(let t=0;ti)))&&!(n>=i&&0===r.length);s++);if(0===r.length)return"success";throw new d.EN(d.H9.MissingFeatures)}async _refineSetBlock(e,t,i){return e}async _stat(e,t,i,s,r,a,n){return{calculated:!1}}get gdbVersion(){return this._relatedLayer.gdbVersion}async _canDoAggregates(e,t,i,s,r){return!1}relationshipMetaData(){return this._relatedLayer.relationshipMetaData()}serviceUrl(){return this._relatedLayer.serviceUrl()}queryAttachments(e,t,i,s,r){return this._relatedLayer.queryAttachments(e,t,i,s,r)}getFeatureByObjectId(e,t){return this._relatedLayer.getFeatureByObjectId(e,t)}getOwningSystemUrl(){return this._relatedLayer.getOwningSystemUrl()}getIdentityUser(){return this._relatedLayer.getIdentityUser()}getDataSourceFeatureSet(){return this._relatedLayer}get preferredTimeZone(){return this._relatedLayer?.preferredTimeZone??null}get dateFieldsTimeZone(){return this._relatedLayer?.dateFieldsTimeZone??null}get datesInUnknownTimezone(){return this._relatedLayer?.datesInUnknownTimezone}get editFieldsInfo(){return this._relatedLayer?.editFieldsInfo??null}get timeInfo(){return this._relatedLayer?.timeInfo??null}async getFeatureSetInfo(){return this.fsetInfo??this._layer.featureSetInfo}}var te=i(73566),ie=i(53110);function se(){null===te.Z.applicationCache&&(te.Z.applicationCache=new te.Z)}async function re(e,t){if(te.Z.applicationCache){const i=te.Z.applicationCache.getLayerInfo(e);if(i){const s=await i;return new O.default({url:e,outFields:t,sourceJSON:s})}const s=new O.default({url:e,outFields:t}),r=(async()=>(await s.load(),s.sourceJSON))();if(te.Z.applicationCache){te.Z.applicationCache.setLayerInfo(e,r);try{return await r,s}catch(t){throw te.Z.applicationCache.clearLayerInfo(e),t}}return await r,s}return new O.default({url:e,outFields:t})}async function ae(e,t,i,s,r,a=null){return ne(await re(e,["*"]),t,i,s,r,a)}function ne(e,t=null,i=null,s=!0,r=null,n=null){if(e instanceof O.default||(0,a.a0)(e)){const a={layer:e,spatialReference:t,outFields:i,includeGeometry:s,lrucache:r,interceptor:n};return 1==!(e.url||!e.source)?new Y.Z(a):new $(a)}const l=ne(e.parent,t,i,s,r,n);return l.filter(g.WhereClause.create(e.parent.subtypeField+"="+e.subtypeCode.toString(),e.parent.fieldsIndex,l.dateFieldsTimeZoneDefaultUTC))}async function le(e){if(null!==te.Z.applicationCache){const t=te.Z.applicationCache.getLayerInfo(e);if(null!==t)return t}const t=(async()=>{const t=await(0,s.Z)(e,{responseType:"json",query:{f:"json"}});if(t.data){const e=t.data;return e.layers||(e.layers=[]),e.tables||(e.tables=[]),e}return{layers:[],tables:[]}})();if(null!==te.Z.applicationCache){te.Z.applicationCache.setLayerInfo(e,t);try{return await t}catch(t){throw te.Z.applicationCache.clearLayerInfo(e),t}}return t}async function oe(e,t){const i={metadata:null,networkId:-1,unVersion:3,terminals:[],queryelem:null,layerNameLkp:{},lkp:null},r=await le(e);if(i.metadata=r,void 0!==r.controllerDatasetLayers?.utilityNetworkLayerId&&null!==r.controllerDatasetLayers.utilityNetworkLayerId){if(r.layers)for(const e of r.layers)i.layerNameLkp[e.id]=e.name;if(r.tables)for(const e of r.tables)i.layerNameLkp[e.id]=e.name;const a=r.controllerDatasetLayers.utilityNetworkLayerId;i.networkId=a;const n=await async function(e,t){const i="QUERYDATAELEMTS:"+t.toString()+":"+e;if(null!==te.Z.applicationCache){const e=te.Z.applicationCache.getLayerInfo(i);if(null!==e)return e}const r=(async()=>{const i=await(0,s.Z)(e+"/queryDataElements",{method:"post",responseType:"json",query:{layers:JSON.stringify([t.toString()]),f:"json"}});if(i.data){const e=i.data;if(e.layerDataElements?.[0])return e.layerDataElements[0]}throw new d.EN(d.H9.DataElementsNotFound)})();if(null!==te.Z.applicationCache){te.Z.applicationCache.setLayerInfo(i,r);try{return await r}catch(e){throw te.Z.applicationCache.clearLayerInfo(i),e}}return r}(e,a);if(n){i.queryelem=n,i.queryelem?.dataElement&&void 0!==i.queryelem.dataElement.schemaGeneration&&(i.unVersion=i.queryelem.dataElement.schemaGeneration),i.lkp={},i.queryelem.dataElement.domainNetworks||(i.queryelem.dataElement.domainNetworks=[]);for(const e of i.queryelem.dataElement.domainNetworks){for(const t of e.edgeSources??[]){const e={layerId:t.layerId,sourceId:t.sourceId,className:i.layerNameLkp[t.layerId]??null};e.className&&(i.lkp[e.className]=e)}for(const t of e.junctionSources??[]){const e={layerId:t.layerId,sourceId:t.sourceId,className:i.layerNameLkp[t.layerId]??null};e.className&&(i.lkp[e.className]=e)}}if(i.queryelem.dataElement.terminalConfigurations)for(const e of i.queryelem.dataElement.terminalConfigurations)for(const t of e.terminals)i.terminals.push({terminalId:t.terminalId,terminalName:t.terminalName});const r=await async function(e){if(null!==te.Z.applicationCache){const t=te.Z.applicationCache.getLayerInfo(e);if(null!==t)return t}const t=(async()=>{const t=await(0,s.Z)(e,{responseType:"json",query:{f:"json"}});return t.data?t.data:null})();if(null!==te.Z.applicationCache){te.Z.applicationCache.setLayerInfo(e,t);try{return await t}catch(t){throw te.Z.applicationCache.clearLayerInfo(e),t}}return t}(e+"/"+a);if(void 0!==r.systemLayers?.associationsTableId&&null!==r.systemLayers.associationsTableId){const s=[];i.unVersion>=4&&(s.push("STATUS"),s.push("PERCENTALONG"));let a=await ae(e+"/"+r.systemLayers.associationsTableId.toString(),t,["OBJECTID","FROMNETWORKSOURCEID","TONETWORKSOURCEID","FROMGLOBALID","TOGLOBALID","TOTERMINALID","FROMTERMINALID","ASSOCIATIONTYPE","ISCONTENTVISIBLE","GLOBALID",...s],!1,null,null);return await a.load(),i.unVersion>=4&&(a=a.filter(g.WhereClause.create("STATUS NOT IN (1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63)",a.getFieldsIndex(),a.dateFieldsTimeZoneDefaultUTC)),await a.load()),{lkp:i.lkp,associations:a,unVersion:i.unVersion,terminals:i.terminals}}return{associations:null,unVersion:i.unVersion,lkp:null,terminals:[]}}return{associations:null,unVersion:i.unVersion,lkp:null,terminals:[]}}return{associations:null,unVersion:i.unVersion,lkp:null,terminals:[]}}async function ue(e,t,i,s=null,r=null,a=!0,n=null,l=null){let o=e.serviceUrl();if(!o)return null;o="/"===o.charAt(o.length-1)?o+t.relatedTableId.toString():o+"/"+t.relatedTableId.toString();const u=await ae(o,s,r,a,n,l);return new ee({layer:e,relatedLayer:u,relationship:t,objectId:i,spatialReference:s,outFields:r,includeGeometry:a,lrucache:n,interceptor:l})}n.Z.registerAction(),R.registerAction(),u.Z.registerAction(),v.Z.registerAction(),k.Z.registerAction();class de extends r.Z{constructor(e,t=null,i=null,s=null){super(),this._map=e,this._overridespref=t,this._lrucache=i,this._interceptor=s,this._instantLayers=[]}_makeAndAddFeatureSet(e,t=!0,i=null){const s=ne(e,this._overridespref,null===i?["*"]:i,t,this._lrucache,this._interceptor);return this._instantLayers.push({featureset:s,opitem:e,includeGeometry:t,outFields:JSON.stringify(i)}),s}async featureSetByName(e,t=!0,i=null){if(void 0!==this._map.loaded&&void 0!==this._map.load&&!1===this._map.loaded)return await this._map.load(),this.featureSetByName(e,t,i);null===i&&(i=["*"]),i=(i=i.slice(0)).sort();const s=JSON.stringify(i);for(let i=0;i{if(t instanceof O.default){if(t.title===e)return!0}else if((0,a.a0)(t)&&t.title===e)return!0;return!1}));if(r)return this._makeAndAddFeatureSet(r,t,i);if(this._map.tables){const s=this._map.tables.find((t=>!!(t.title&&t.title===e||t.title&&t.title===e)));if(s){if(s instanceof O.default)return this._makeAndAddFeatureSet(s,t,i);if(s._materializedTable);else{const e=s.outFields?s:{...s,outFields:["*"]};s._materializedTable=new O.default(e)}return await s._materializedTable.load(),this._makeAndAddFeatureSet(s._materializedTable,t,i)}}return null}async featureSetById(e,t=!0,i=["*"]){if(void 0!==this._map.loaded&&void 0!==this._map.load&&!1===this._map.loaded)return await this._map.load(),this.featureSetById(e,t,i);null===i&&(i=["*"]),i=(i=i.slice(0)).sort();const s=JSON.stringify(i);for(let i=0;i{if(t instanceof O.default){if(t.id===e)return!0}else if((0,a.a0)(t)&&t.id===e)return!0;return!1}));if(r)return this._makeAndAddFeatureSet(r,t,i);if(this._map.tables){const s=this._map.tables.find((t=>t.id===e));if(s){if(s instanceof O.default)return this._makeAndAddFeatureSet(s,t,i);if(s._materializedTable);else{const e={...s,outFields:["*"]};s._materializedTable=new O.default(e)}return await s._materializedTable.load(),this._makeAndAddFeatureSet(s._materializedTable,t,i)}}return null}}class he extends r.Z{constructor(e,t=null,i=null,s=null){super(),this._url=e,this._overridespref=t,this._lrucache=i,this._interceptor=s,this.metadata=null,this._instantLayers=[]}get url(){return this._url}_makeAndAddFeatureSet(e,t=!0,i=null){const s=ne(e,this._overridespref,null===i?["*"]:i,t,this._lrucache);return this._instantLayers.push({featureset:s,opitem:e,includeGeometry:t,outFields:JSON.stringify(i)}),s}async _loadMetaData(){const e=await le(this._url);return this.metadata=e,e}load(){return this._loadMetaData()}clone(){return new he(this._url,this._overridespref,this._lrucache,this._interceptor)}async featureSetByName(e,t=!0,i=null){null===i&&(i=["*"]),i=(i=i.slice(0)).sort();const s=JSON.stringify(i);for(let i=0;i":case"=":if("column-reference"===e.left.type&&"string"===e.right.type){if(e.left.column.toUpperCase()===this.field.name.toUpperCase()&&void 0!==this.lkp[e.right.value.toString()])return" ("+s+" "+e.operator+" "+this.lkp[e.right.value.toString()].toString()+") "}else if("column-reference"===e.right.type&&"string"===e.left.type&&e.right.column.toUpperCase()===this.field.name.toUpperCase())return" ("+this.lkp[e.right.value.toString()].toString()+" "+e.operator+" "+s+") ";return" ("+this.evaluateNodeToWhereClause(e.left,t,i,y.BADNESS,r)+" "+e.operator+" "+this.evaluateNodeToWhereClause(e.right,t,i,y.BADNESS,r)+") ";case"<":case">":case">=":case"<=":case"*":case"-":case"+":case"/":case"||":return" ("+this.evaluateNodeToWhereClause(e.left,t,i,y.BADNESS,r)+" "+e.operator+" "+this.evaluateNodeToWhereClause(e.right,t,i,y.BADNESS,r)+") "}case"null":return"null";case"boolean":return!0===e.value?"1":"0";case"string":return"'"+e.value.toString().replaceAll("'","''")+"'";case"timestamp":return`timestamp '${e.value}'`;case"date":return`date '${e.value}'`;case"time":return`time '${e.value}'`;case"number":return e.value.toString();case"current-time":return(0,u.vR)("date"===e.mode,t);case"column-reference":return i&&i.toLowerCase()===e.column.toLowerCase()?"("+s+")":e.column;case"data-type":return e.value;case"function":{const s=this.evaluateNodeToWhereClause(e.args,t,i,y.BADNESS,r);return(0,u.fz)(e.name,s,t)}}throw new a.eS(a.f.UnsupportedSyntax,{node:e.type})}extractValue(e){return this.codefield instanceof h.WhereClause?this.reverseLkp[h.WhereClause.convertValueToStorageFormat(this.codefield.calculateValueCompiled(e))]:this.reverseLkp[e.attributes[this.codefield]]}}y.BADNESS="_!!!_BAD_LKP_!!!!";class g extends f{constructor(e,t){super(e),this._sql=t}rewriteSql(e,t){return{rewritten:!0,where:(0,u.bB)(e,this.field.name,(0,u.zR)(this._sql,o.Bj.Standardised),t.getFieldsIndex())}}extractValue(e){return h.WhereClause.convertValueToStorageFormat(this._sql.calculateValueCompiled(e),this.field.type)}}class m extends n.Z{static findField(e,t){for(const i of e)if(i.name.toLowerCase()===t.toString().toLowerCase())return i;return null}constructor(e){super(e),this._calcFunc=null,this.declaredClass="esri.arcade.featureset.actions.Adapted",this.adaptedFields=[],this._extraFilter=null,this._extraFilter=e.extraFilter,this._parent=e.parentfeatureset,this._maxProcessing=30,this.adaptedFields=e.adaptedFields}_initialiseFeatureSet(){null!==this._parent?(this.geometryType=this._parent.geometryType,this.objectIdField=this._parent.objectIdField,this.globalIdField=this._parent.globalIdField,this.spatialReference=this._parent.spatialReference,this.hasM=this._parent.hasM,this.hasZ=this._parent.hasZ,this.typeIdField=this._parent.typeIdField,this.types=this._parent.types):(this.spatialReference=new c.Z({wkid:4326}),this.objectIdField="",this.globalIdField="",this.geometryType=o.Qk.point,this.typeIdField="",this.types=null,this.subtypeField=null,this.subtypes=null),this.fields=[];for(const e of this.adaptedFields)e.postInitialization(this,this._parent),this.fields.push(e.field)}async _getSet(e){if(null===this._wset){await this._ensureLoaded();let t=null;return t=this._extraFilter?await this._getFilteredSet("",null,null,null,e):await(this._parent?._getSet(e)),this._checkCancelled(e),(0,d.O3)(t),this._wset=new l.Z(t._candidates.slice(0),t._known.slice(0),t._ordered,this._clonePageDefinition(t.pagesDefinition)),this._wset}return this._wset}_isInFeatureSet(e){return this._parent._isInFeatureSet(e)}async _getFeatures(e,t,i,a){const n=[];-1!==t&&void 0===this._featureCache[t]&&n.push(t);const o=this._maxQueryRate();if(!0===this._checkIfNeedToExpandKnownPage(e,o))return await this._expandPagedSet(e,o,0,0,a),this._getFeatures(e,t,i,a);let u=0;for(let s=e._lastFetchedIndex;s=o)));s++);if(0===n.length)return"success";e=new l.Z([],n,e._ordered,null);const d=Math.min(n.length,i);await(this._parent?._getFeatures(e,-1,d,a)),this._checkCancelled(a);const h=[];for(let e=0;e0&&(s=s.replaceFields(e))}null!==i?null!==this._extraFilter&&(i=(0,u.$e)(this._extraFilter,i)):i=this._extraFilter,await this._ensureLoaded();const d=await this._parent._getFilteredSet(e,t,i,s,r);let h;return this._checkCancelled(r),h=!0===a?new l.Z(d._candidates.slice(0).concat(d._known.slice(0)),[],!0===o&&d._ordered,this._clonePageDefinition(d.pagesDefinition)):new l.Z(d._candidates.slice(0),d._known.slice(0),!0===o&&d._ordered,this._clonePageDefinition(d.pagesDefinition)),h}_reformulateWithoutAdaptions(e){const t={cannot:!1,where:e};if(null!==e)for(const i of this.adaptedFields)if(!0===(0,u.hq)(e,i.field.name)){const s=i.rewriteSql(e,this);if(!0!==s.rewritten){t.cannot=!0,t.where=null;break}t.where=s.where}return t}async _stat(e,t,i,s,r,a,n){let l=!1,o=this._reformulateWithoutAdaptions(t);if(l=o.cannot,t=o.where,o=this._reformulateWithoutAdaptions(r),l=l||o.cannot,null!==(r=o.where)?null!==this._extraFilter&&(r=(0,u.$e)(this._extraFilter,r)):r=this._extraFilter,!0===l)return null===r&&""===i&&null===s?this._manualStat(e,t,a,n):{calculated:!1};const d=await this._parent._stat(e,t,i,s,r,a,n);return!1===d.calculated?null===r&&""===i&&null===s?this._manualStat(e,t,a,n):{calculated:!1}:d}async _canDoAggregates(e,t,i,s,r){if(null===this._parent)return!1;for(let t=0;t0?(await(0,s.a2)(this._refineSetBlock(e,this._maxProcessingRate(),r)),this._checkCancelled(r),this.getIdColumnDictionary(e,t,i,r)):t}_isInFeatureSet(e){return this._parent._isInFeatureSet(e)}_getFeatures(e,t,i,s){return this._parent._getFeatures(e,t,i,s)}_featureFromCache(e){if(void 0===this._featureCache[e]){const t=this._parent._featureFromCache(e);if(void 0===t)return;return null===t?null:(this._featureCache[e]=t,t)}return this._featureCache[e]}async _fetchAndRefineFeatures(){throw new r.EN(r.H9.NeverReach)}async _getFilteredSet(e,t,i,s,r){await this._ensureLoaded();const a=await this._parent._getFilteredSet(e,t,i,null===s?this._orderbyclause:s,r);this._checkCancelled(r);const l=new n.Z(a._candidates.slice(0),a._known.slice(0),a._ordered,this._clonePageDefinition(a.pagesDefinition));let o=!0;if(a._candidates.length>0&&(o=!1),!1===l._ordered){let e=await this.manualOrderSet(l,r);return!1===o&&(null===t&&null===i||(e=new n.Z(e._candidates.slice(0).concat(e._known.slice(0)),[],e._ordered,this._clonePageDefinition(e.pagesDefinition)))),e}return l}static registerAction(){a.Z._featuresetFunctions.orderBy=function(e){return""===e?this:new o({parentfeatureset:this,orderbyclause:new l.Z(e)})}}getFieldsIndex(){return this._parent.getFieldsIndex()}}},81273:function(e,t,i){i.d(t,{Z:function(){return l}});var s=i(62408),r=i(24270),a=i(77732),n=i(68673);class l extends r.Z{constructor(e){super(e),this._topnum=0,this.declaredClass="esri.arcade.featureset.actions.Top",this._countedin=0,this._maxProcessing=100,this._topnum=e.topnum,this._parent=e.parentfeatureset}async _getSet(e){if(null===this._wset){await this._ensureLoaded();const t=await this._parent._getSet(e);return this._wset=new a.Z(t._candidates.slice(0),t._known.slice(0),!1,this._clonePageDefinition(t.pagesDefinition)),this._setKnownLength(this._wset)>this._topnum&&(this._wset._known=this._wset._known.slice(0,this._topnum)),this._setKnownLength(this._wset)>=this._topnum&&(this._wset._candidates=[]),this._wset}return this._wset}_setKnownLength(e){return e._known.length>0&&"GETPAGES"===e._known[e._known.length-1]?e._known.length-1:e._known.length}_isInFeatureSet(e){const t=this._parent._isInFeatureSet(e);if(t===n.dj.NotInFeatureSet)return t;const i=this._idstates[e];return i===n.dj.InFeatureSet||i===n.dj.NotInFeatureSet?i:t===n.dj.InFeatureSet&&void 0===i?this._countedinthis._topnum&&(t=this._topnum),this._countedin>=this._topnum&&e.pagesDefinition.internal.set.length<=e.pagesDefinition.resultOffset){let t=e._known.length;return t>0&&"GETPAGES"===e._known[t-1]&&(e._known.length=t-1),t=e._candidates.length,t>0&&"GETPAGES"===e._candidates[t-1]&&(e._candidates.length=t-1),"success"}const n=await this._parent._expandPagedSet(e,t,i,r,a);return this._setKnownLength(e)>this._topnum&&(e._known.length=this._topnum),this._setKnownLength(e)>=this._topnum&&(e._candidates.length=0),n}async _getFeatures(e,t,i,s){const r=[],n=this._maxQueryRate();if(!0===this._checkIfNeedToExpandKnownPage(e,n))return await this._expandPagedSet(e,n,0,0,s),this._getFeatures(e,t,i,s);-1!==t&&void 0===this._featureCache[t]&&r.push(t);let l=0;for(let s=e._lastFetchedIndex;sn)));s++);if(0===r.length)return"success";const o=new a.Z([],r,!1,null),u=Math.min(r.length,i);await this._parent._getFeatures(o,-1,u,s);for(let e=0;e=this._topnum)break}else if(l===n.dj.NotInFeatureSet)null===s?s={start:a,end:a}:s.end===a-1?s.end=a:(r.push(s),s={start:a,end:a}),i+=1;else if(l===n.dj.Unknown)break;if(i>=t)break}null!==s&&r.push(s);for(let t=r.length-1;t>=0;t--)e._candidates.splice(r[t].start,r[t].end-r[t].start+1);this._setKnownLength(e)>this._topnum&&(e._known=e._known.slice(0,this._topnum)),this._setKnownLength(e)>=this._topnum&&(e._candidates=[])}async _stat(){return{calculated:!1}}async _canDoAggregates(){return!1}static registerAction(){r.Z._featuresetFunctions.top=function(e){return new l({parentfeatureset:this,topnum:e})}}getFieldsIndex(){return this._parent.getFieldsIndex()}}},20155:function(e,t,i){i.d(t,{Z:function(){return _}});var s=i(80085),r=i(62408),a=i(24270),n=i(77732),l=i(68673),o=i(62294),u=i(20031),d=i(12926),h=i(14765),c=i(18160),f=i(12512),p=i(14136);class _ extends a.Z{constructor(e){super(e),this.declaredClass="esri.arcade.featureset.sources.FeatureLayerMemory",this._removeGeometry=!1,this._overrideFields=null,this._forceIsTable=!1,e.spatialReference&&(this.spatialReference=e.spatialReference),this._transparent=!0,this._maxProcessing=1e3,this._layer=e.layer,this._wset=null,!0===e.isTable&&(this._forceIsTable=!0),void 0!==e.outFields&&(this._overrideFields=e.outFields),void 0!==e.includeGeometry&&(this._removeGeometry=!1===e.includeGeometry)}_maxQueryRate(){return l.tI}end(){return this._layer}optimisePagingFeatureQueries(){}async loadImpl(){return!0===this._layer.loaded?(this._initialiseFeatureSet(),this):(await this._layer.load(),this._initialiseFeatureSet(),this)}get gdbVersion(){return""}_initialiseFeatureSet(){if(null==this.spatialReference&&(this.spatialReference=this._layer.spatialReference),this.geometryType=this._layer.geometryType,this.fields=this._layer.fields.slice(0),null!==this._overrideFields)if(1===this._overrideFields.length&&"*"===this._overrideFields[0])this._overrideFields=null;else{const e=[],t=[];for(const i of this.fields)if("oid"===i.type)e.push(i),t.push(i.name);else for(const s of this._overrideFields)if(s.toLowerCase()===i.name.toLowerCase()){e.push(i),t.push(i.name);break}this.fields=e,this._overrideFields=t}this.objectIdField=this._layer.objectIdField;for(const e of this.fields)"global-id"===e.type&&(this.globalIdField=e.name);this._databaseType=l.Bj.Standardised,this.hasZ=!0===this._layer?.capabilities?.data?.supportsZ,this.hasM=!0===this._layer?.capabilities?.data?.supportsM,this._layer instanceof h.default?(this.subtypeField=this._layer.subtypeField??"",this.subtypes=this._layer.subtypes,this.types=null,this.typeIdField=null):(this.typeIdField=this._layer.typeIdField??"",this.types=this._layer.types,this.subtypeField=this._layer.subtypeField,this.subtypes=this._layer.subtypes)}isTable(){return this._forceIsTable||this._layer.isTable||"table"===this._layer.type||!this._layer.geometryType}_isInFeatureSet(){return l.dj.InFeatureSet}_candidateIdTransform(e){return e}async _getSet(e){if(null===this._wset){await this._ensureLoaded();const t=await this._getFilteredSet("",null,null,null,e);return this._wset=t,t}return this._wset}_changeFeature(e){const t={};for(const i of this.fields)t[i.name]=e.attributes[i.name];return new s.Z({geometry:!0===this._removeGeometry?null:e.geometry,attributes:t})}async _getFilteredSet(e,t,i,s,r){let a="",u=!1;if(null!==s&&(a=s.constructClause(),u=!0),this.isTable()&&t&&null!==e&&""!==e)return new n.Z([],[],!0,null);const d=new p.Z;d.returnZ=this.hasZ,d.returnM=this.hasM,d.where=null===i?null===t?"1=1":"":(0,o.zR)(i,l.Bj.Standardised),d.spatialRelationship=this._makeRelationshipEnum(e),d.outSpatialReference=this.spatialReference,d.orderByFields=""!==a?a.split(","):null,d.geometry=null===t?null:t,d.returnGeometry=!0,d.relationParameter=this._makeRelationshipParam(e);const h=await this._layer.queryFeatures(d);if(null===h)return new n.Z([],[],u,null);this._checkCancelled(r);const c=[];return h.features.forEach((e=>{const t=e.attributes[this._layer.objectIdField];c.push(t),this._featureCache[t]=this._changeFeature(e)})),new n.Z([],c,u,null)}_makeRelationshipEnum(e){if(e.includes("esriSpatialRelRelation"))return"relation";switch(e){case"esriSpatialRelRelation":return"relation";case"esriSpatialRelIntersects":return"intersects";case"esriSpatialRelContains":return"contains";case"esriSpatialRelOverlaps":return"overlaps";case"esriSpatialRelWithin":return"within";case"esriSpatialRelTouches":return"touches";case"esriSpatialRelCrosses":return"crosses";case"esriSpatialRelEnvelopeIntersects":return"envelope-intersects"}return e}_makeRelationshipParam(e){return e.includes("esriSpatialRelRelation")?e.split(":")[1]:""}async _queryAllFeatures(){if(this._wset)return this._wset;const e=new p.Z;if(e.where="1=1",await this._ensureLoaded(),this._layer.source&&this._layer.source.items){const e=[];return this._layer.source.items.forEach((t=>{const i=t.attributes[this._layer.objectIdField];e.push(i),this._featureCache[i]=this._changeFeature(t)})),this._wset=new n.Z([],e,!1,null),this._wset}e.returnZ=this.hasZ,e.returnM=this.hasM;const t=await this._layer.queryFeatures(e),i=[];return t.features.forEach((e=>{const t=e.attributes[this._layer.objectIdField];i.push(t),this._featureCache[t]=this._changeFeature(e)})),this._wset=new n.Z([],i,!1,null),this._wset}async _getFeatures(e,t,i){const s=[];-1!==t&&void 0===this._featureCache[t]&&s.push(t);for(let r=e._lastFetchedIndex;ri)));r++);if(0===s.length)return"success";throw new r.EN(r.H9.MissingFeatures)}async _refineSetBlock(e){return e}async _stat(){return{calculated:!1}}async _canDoAggregates(){return!1}relationshipMetaData(){return[]}static _cloneAttr(e){const t={};for(const i in e)t[i]=e[i];return t}nativeCapabilities(){return{title:this._layer.title??"",canQueryRelated:!1,source:this,capabilities:this._layer.capabilities,databaseType:this._databaseType,requestStandardised:!0}}static create(e,t){let i=e.layerDefinition.objectIdField;const s=e.layerDefinition.typeIdField??"",r=[];if(e.layerDefinition.types)for(const t of e.layerDefinition.types)r.push(c.Z.fromJSON(t));let a=e.layerDefinition.geometryType;void 0===a&&(a=e.featureSet.geometryType||"");let n=e.featureSet.features;const l=t.toJSON();if(!i){let t=!1;for(const s of e.layerDefinition.fields)if("oid"===s.type||"esriFieldTypeOID"===s.type){i=s.name,t=!0;break}if(!1===t){let t="FID",s=!0,r=0;for(;s;){let i=!0;for(const s of e.layerDefinition.fields)if(s.name===t){i=!1;break}!0===i?s=!1:(r++,t="FID"+r.toString())}e.layerDefinition.fields.push({type:"esriFieldTypeOID",name:t,alias:t});const a=[];for(let i=0;i{for(let i=0;i{(0,a.l)(e)&&r&&e.originOf(t)!==r&&e.updateOrigin(t,r)}))}},71760:function(e,t,r){function a(e){return e&&"getAtOrigin"in e&&"originOf"in e}r.d(t,{l:function(){return a}})},8015:function(e,t,r){r.d(t,{save:function(){return P},saveAs:function(){return N}});var a=r(7753),n=(r(70375),r(50516),r(21011)),o=r(20692),i=r(8308),s=r(54957),u=r(92557),c=r(31370);const l="Feature Service",f="feature-layer-utils",y=`${f}-save`,p=`${f}-save-as`;function d(e){return{isValid:(0,s.fP)(e)&&("feature"!==e.type||!e.dynamicDataSource),errorMessage:"Feature layer should be a layer or table in a map or feature service"}}function m(e){const t=[],r=[];for(const{layer:a,layerJSON:n}of e)a.isTable?r.push(n):t.push(n);return{layers:t,tables:r}}function w(e){return m([e])}async function h(e,t){return/\/\d+\/?$/.test(e.url)?w(t[0]):v(t,e)}async function v(e,t){if(e.reverse(),!t)return m(e);const r=await async function(e,t){let r=await e.fetchData("json");if(function(e){return!!(e&&Array.isArray(e.layers)&&Array.isArray(e.tables))}(r))return r;r||={},function(e){e.layers||=[],e.tables||=[]}(r);const{layer:{url:a,customParameters:n,apiKey:o}}=t[0];return await async function(e,t,r){const{url:a,customParameters:n,apiKey:o}=t,{serviceJSON:s,layersJSON:c}=await(0,i.V)(a,{customParameters:n,apiKey:o}),l=T(e.layers,s.layers,r),f=T(e.tables,s.tables,r);e.layers=l.itemResources,e.tables=f.itemResources;const y=[...l.added,...f.added],p=c?[...c.layers,...c.tables]:[];await async function(e,t,r,a){const n=await async function(e){const t=[];e.forEach((({type:e})=>{const r=function(e){let t;switch(e){case"Feature Layer":case"Table":t="FeatureLayer";break;case"Oriented Imagery Layer":t="OrientedImageryLayer";break;case"Catalog Layer":t="CatalogLayer"}return t}(e),a=u.T[r];t.push(a())}));const r=await Promise.all(t),a=new Map;return e.forEach((({type:e},t)=>{a.set(e,r[t])})),a}(t),o=t.map((({id:e,type:t})=>new(n.get(t))({url:r,layerId:e,sourceJSON:a.find((({id:t})=>t===e))})));await Promise.allSettled(o.map((e=>e.load()))),o.forEach((t=>{const{layerId:r,loaded:a,defaultPopupTemplate:n}=t;if(!a||null==n)return;const o={id:r,popupInfo:n.toJSON()};"ArcGISFeatureLayer"!==t.operationalLayerType&&(o.layerType=t.operationalLayerType),S(t,o,e)}))}(e,y,a,p)}(r,{url:a??"",customParameters:n,apiKey:o},t.map((e=>e.layer.layerId))),r}(t,e);for(const t of e)S(t.layer,t.layerJSON,r);return function(e,t){const r=[],a=[];for(const{layer:e}of t){const{isTable:t,layerId:n}=e;t?a.push(n):r.push(n)}b(e.layers,r),b(e.tables,a)}(r,e),r}function b(e,t){if(e.length<2)return;const r=[];for(const{id:t}of e)r.push(t);(0,a.fS)(r.sort(I),t.slice().sort(I))&&e.sort(((e,r)=>{const a=t.indexOf(e.id),n=t.indexOf(r.id);return an?1:0}))}function I(e,t){return et?1:0}function T(e,t,r){const n=(0,a.e5)(e,t,((e,t)=>e.id===t.id));e=e.filter((e=>!n.removed.some((t=>t.id===e.id))));const o=n.added;return o.forEach((({id:t})=>{e.push({id:t})})),{itemResources:e,added:o.filter((({id:e})=>!r.includes(e)))}}function S(e,t,r){e.isTable?g(r.tables,t):g(r.layers,t)}function g(e,t){const r=e.findIndex((({id:e})=>e===t.id));-1===r?e.push(t):e[r]=t}async function O(e,t){const{url:r,layerId:a,title:n,fullExtent:i,isTable:s}=e,u=(0,o.Qc)(r);t.url="FeatureServer"===u?.serverType?r:`${r}/${a}`,t.title||=n,t.extent=null,s||null==i||(t.extent=await(0,c.$o)(i)),(0,c.ck)(t,c.hz.METADATA),(0,c.ck)(t,c.hz.MULTI_LAYER),(0,c.qj)(t,c.hz.SINGLE_LAYER),s&&(0,c.qj)(t,c.hz.TABLE)}async function P(e,t){return(0,n.a1)({layer:e,itemType:l,validateLayer:d,createItemData:(e,t)=>h(t,[e]),errorNamePrefix:y},t)}async function N(e,t,r){return(0,n.po)({layer:e,itemType:l,validateLayer:d,createItemData:(e,t)=>Promise.resolve(w(e)),errorNamePrefix:p,newItem:t,setItemProperties:O},r)}},21011:function(e,t,r){r.d(t,{DC:function(){return f},Nw:function(){return v},UY:function(){return b},V3:function(){return h},Ym:function(){return m},a1:function(){return T},jX:function(){return I},po:function(){return S},uT:function(){return w},xG:function(){return p}});var a=r(70375),n=r(50516),o=r(93968),i=r(53110),s=r(84513),u=r(31370),c=r(76990),l=r(60629);function f(e,t,r){const n=r(e);if(!n.isValid)throw new a.Z(`${t}:invalid-parameters`,n.errorMessage,{layer:e})}async function y(e){const{layer:t,errorNamePrefix:r,validateLayer:a}=e;await t.load(),f(t,r,a)}function p(e,t){return`Layer (title: ${e.title}, id: ${e.id}) of type '${e.declaredClass}' ${t}`}function d(e){const{item:t,errorNamePrefix:r,layer:n,validateItem:o}=e;if((0,c.w)(t),function(e){const{item:t,itemType:r,additionalItemType:n,errorNamePrefix:o,layer:i}=e,s=[r];if(n&&s.push(n),!s.includes(t.type)){const e=s.map((e=>`'${e}'`)).join(", ");throw new a.Z(`${o}:portal-item-wrong-type`,`Portal item type should be one of: "${e}"`,{item:t,layer:i})}}(e),o){const e=o(t);if(!e.isValid)throw new a.Z(`${r}:invalid-parameters`,e.errorMessage,{layer:n})}}function m(e){const{layer:t,errorNamePrefix:r}=e,{portalItem:n}=t;if(!n)throw new a.Z(`${r}:portal-item-not-set`,p(t,"requires the portalItem property to be set"));if(!n.loaded)throw new a.Z(`${r}:portal-item-not-loaded`,p(t,"cannot be saved to a portal item that does not exist or is inaccessible"));d({...e,item:n})}function w(e){const{newItem:t,itemType:r}=e;let a=i.default.from(t);return a.id&&(a=a.clone(),a.id=null),a.type??=r,a.portal??=o.Z.getDefault(),d({...e,item:a}),a}function h(e){return(0,s.Y)(e,"portal-item")}async function v(e,t,r){"beforeSave"in e&&"function"==typeof e.beforeSave&&await e.beforeSave();const a=e.write({},t);return await Promise.all(t.resources?.pendingOperations??[]),(0,l.z)(t,{errorName:"layer-write:unsupported"},r),a}function b(e){(0,u.qj)(e,u.hz.JSAPI),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}async function I(e,t,r){const a=e.portal;await a.signIn(),await(a.user?.addItem({item:e,data:t,folder:r?.folder}))}async function T(e,t){const{layer:r,createItemData:a,createJSONContext:o,saveResources:i,supplementalUnsupportedErrors:s}=e;await y(e),m(e);const u=r.portalItem,c=o?o(u):h(u),l=await v(r,c,{...t,supplementalUnsupportedErrors:s}),f=await a({layer:r,layerJSON:l},u);return b(u),await u.update({data:f}),(0,n.D)(c),await(i?.(u,c)),u}async function S(e,t){const{layer:r,createItemData:a,createJSONContext:o,setItemProperties:i,saveResources:s,supplementalUnsupportedErrors:u}=e;await y(e);const c=w(e),l=o?o(c):h(c),f=await v(r,l,{...t,supplementalUnsupportedErrors:u}),p=await a({layer:r,layerJSON:f},c);return await i(r,c),b(c),await I(c,p,t),r.portalItem=c,(0,n.D)(l),await(s?.(c,l)),c}},8308:function(e,t,r){r.d(t,{V:function(){return n}});var a=r(40371);async function n(e,t){const{loadContext:r,...n}=t||{},o=r?await r.fetchServiceMetadata(e,n):await(0,a.T)(e,n);l(o),s(o);const i={serviceJSON:o};if((o.currentVersion??0)<10.5)return i;const u=`${e}/layers`,c=r?await r.fetchServiceMetadata(u,n):await(0,a.T)(u,n);return l(c),s(c),i.layersJSON={layers:c.layers,tables:c.tables},i}function o(e){return"Feature Layer"===e.type||"Oriented Imagery Layer"===e.type}function i(e){return"Table"===e.type}function s(e){e.layers=e.layers?.filter(o),e.tables=e.tables?.filter(i)}function u(e){e.type||="Feature Layer"}function c(e){e.type||="Table"}function l(e){e.layers?.forEach(u),e.tables?.forEach(c)}},40371:function(e,t,r){r.d(t,{T:function(){return n}});var a=r(66341);async function n(e,t){const{data:r}=await(0,a.Z)(e,{responseType:"json",query:{f:"json",...t?.customParameters,token:t?.apiKey}});return r}},76990:function(e,t,r){r.d(t,{w:function(){return i}});var a=r(51366),n=r(70375),o=r(99522);function i(e){if(a.default.apiKey&&(0,o.r)(e.portal.url))throw new n.Z("save-api-key-utils:api-key-not-supported",`Saving is not supported on ${e.portal.url} when using an api key`)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8060.42f9d80f8aed026ba729.js b/docs/sentinel1-explorer/8060.42f9d80f8aed026ba729.js new file mode 100644 index 00000000..a070fb99 --- /dev/null +++ b/docs/sentinel1-explorer/8060.42f9d80f8aed026ba729.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8060],{8060:function(e,r,t){t.r(r),t.d(r,{getGeometryServiceURL:function(){return c},projectGeometry:function(){return u}});var n=t(51366),i=t(70375),o=t(93968),a=t(94466),l=t(41268);async function c(e=null,r){if(n.default.geometryServiceUrl)return n.default.geometryServiceUrl;if(!e)throw new i.Z("internal:geometry-service-url-not-configured");let t;t="portal"in e?e.portal||o.Z.getDefault():e,await t.load({signal:r});const a=t.helperServices?.geometry?.url;if(!a)throw new i.Z("internal:geometry-service-url-not-configured");return a}async function u(e,r,t=null,n){const o=await c(t,n),u=new l.Z;u.geometries=[e],u.outSpatialReference=r;const s=await(0,a.i)(o,u,{signal:n});if(s&&Array.isArray(s)&&1===s.length)return s[0];throw new i.Z("internal:geometry-service-projection-failed")}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/81.1155da79443400b793b2.js b/docs/sentinel1-explorer/81.1155da79443400b793b2.js new file mode 100644 index 00000000..52ed3c79 --- /dev/null +++ b/docs/sentinel1-explorer/81.1155da79443400b793b2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[81],{40081:function(e,r,n){n.r(r),n.d(r,{default:function(){return c}});var o=n(36663),s=n(70375),t=n(15842),i=n(17262),p=n(81977),a=(n(39994),n(13802),n(4157),n(40266)),l=n(38481),u=n(18241);let y=class extends((0,u.I)((0,t.R)(l.Z))){constructor(e){super(e),this.resourceInfo=null,this.type="unknown"}initialize(){this.addResolvingPromise(new Promise(((e,r)=>{(0,i.Os)((()=>{const e=this.resourceInfo&&(this.resourceInfo.layerType||this.resourceInfo.type);let n="Unknown layer type";e&&(n+=" "+e),r(new s.Z("layer:unknown-layer-type",n,{layerType:e}))}))})))}read(e,r){super.read({resourceInfo:e},r)}write(e,r){return null}};(0,o._)([(0,p.Cb)({readOnly:!0})],y.prototype,"resourceInfo",void 0),(0,o._)([(0,p.Cb)({type:["show","hide"]})],y.prototype,"listMode",void 0),(0,o._)([(0,p.Cb)({json:{read:!1},readOnly:!0,value:"unknown"})],y.prototype,"type",void 0),y=(0,o._)([(0,a.j)("esri.layers.UnknownLayer")],y);const c=y}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8145.9e5bb10721369e880f6b.js b/docs/sentinel1-explorer/8145.9e5bb10721369e880f6b.js new file mode 100644 index 00000000..c111f5d1 --- /dev/null +++ b/docs/sentinel1-explorer/8145.9e5bb10721369e880f6b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8145],{15642:function(e,t,r){function n(e,t){const r=e.count;t||(t=new e.TypedArrayConstructor(r));for(let n=0;n0){const e=1/Math.sqrt(f);n[t]=e*i,n[t+1]=e*u,n[t+2]=e*c}}}function i(e,t,r){u(e.typedBuffer,t,r,e.typedBufferStride)}function u(e,t,r,n=4){const o=Math.min(e.length/n,t.count),s=t.typedBuffer,a=t.typedBufferStride;let i=0,u=0;for(let t=0;t{const r=()=>{o(),e(i)},n=e=>{o(),t(e)},o=()=>{URL.revokeObjectURL(a),i.removeEventListener("load",r),i.removeEventListener("error",n)};i.addEventListener("load",r),i.addEventListener("error",n),i.src=a}));try{i.src=a,await i.decode()}catch(e){}return URL.revokeObjectURL(a),i}},85636:function(e,t,r){r.d(t,{Q:function(){return P}});var n=r(13802),o=r(3308),s=r(91907);var a,i,u=r(70375),c=r(86114),f=r(78668),l=r(3466),d=r(26139),p=r(32114),h=r(1845),m=r(96303),g=r(81936),w=r(15642);r(39994);class y{constructor(e){this._data=e,this._offset4=0,this._dataUint32=new Uint32Array(this._data,0,Math.floor(this._data.byteLength/4))}readUint32(){const e=this._offset4;return this._offset4+=1,this._dataUint32[e]}readUint8Array(e){const t=4*this._offset4;return this._offset4+=e/4,new Uint8Array(this._data,t,e)}remainingBytes(){return this._data.byteLength-4*this._offset4}}!function(e){e.SCALAR="SCALAR",e.VEC2="VEC2",e.VEC3="VEC3",e.VEC4="VEC4",e.MAT2="MAT2",e.MAT3="MAT3",e.MAT4="MAT4"}(a||(a={})),function(e){e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER"}(i||(i={}));var T=r(27755);const b={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1},_={pbrMetallicRoughness:b,emissiveFactor:[0,0,0],alphaMode:"OPAQUE",alphaCutoff:.5,doubleSided:!1},x={ESRI_externalColorMixMode:"tint",ESRI_receiveShadows:!0,ESRI_receiveAmbientOcclusion:!0},S=(e={})=>{const t={...b,...e.pbrMetallicRoughness},r=function(e){switch(e.ESRI_externalColorMixMode){case"multiply":case"tint":case"ignore":case"replace":break;default:(0,T.Bg)(e.ESRI_externalColorMixMode),e.ESRI_externalColorMixMode="tint"}return e}({...x,...e.extras});return{..._,...e,pbrMetallicRoughness:t,extras:r}};const A={magFilter:s.cw.LINEAR,minFilter:s.cw.LINEAR_MIPMAP_LINEAR,wrapS:s.e8.REPEAT,wrapT:s.e8.REPEAT};var O=r(95970);const R=1179937895,v=1313821514,E=5130562;class N{constructor(e,t,r,n){if(this._context=e,this.uri=t,this.json=r,this._glbBuffer=n,this._bufferLoaders=new Map,this._textureLoaders=new Map,this._textureCache=new Map,this._materialCache=new Map,this._nodeParentMap=new Map,this._nodeTransformCache=new Map,this._supportedExtensions=["KHR_texture_basisu","KHR_texture_transform"],this._baseUri=function(e){let t,r;return e.replace(/^(.*\/)?([^/]*)$/,((e,n,o)=>(t=n||"",r=o||"",""))),{dirPart:t,filePart:r}}(this.uri).dirPart,this._checkVersionSupported(),this._checkRequiredExtensionsSupported(),null==r.scenes)throw new u.Z("gltf-loader-unsupported-feature","Scenes must be defined.");if(null==r.meshes)throw new u.Z("gltf-loader-unsupported-feature","Meshes must be defined");if(null==r.nodes)throw new u.Z("gltf-loader-unsupported-feature","Nodes must be defined.");this._computeNodeParents()}static async load(e,t,r){if((0,l.HK)(t)){const r=(0,l.sJ)(t);if(r&&"model/gltf-binary"!==r.mediaType)try{const n=JSON.parse(r.isBase64?atob(r.data):r.data);return new N(e,t,n)}catch{}const n=(0,l.AH)(t);if(N._isGLBData(n))return this._fromGLBData(e,t,n)}if(F.test(t)||"gltf"===r?.expectedType){const n=await e.loadJSON(t,r);return new N(e,t,n)}const n=await e.loadBinary(t,r);if(N._isGLBData(n))return this._fromGLBData(e,t,n);if(U.test(t)||"glb"===r?.expectedType)throw new u.Z("gltf-loader-invalid-glb","This is not a valid glb file.");const o=await e.loadJSON(t,r);return new N(e,t,o)}static _isGLBData(e){if(null==e)return!1;const t=new y(e);return t.remainingBytes()>=4&&t.readUint32()===R}static async _fromGLBData(e,t,r){const n=await N._parseGLBData(r);return new N(e,t,n.json,n.binaryData)}static async _parseGLBData(e){const t=new y(e);if(t.remainingBytes()<12)throw new u.Z("gltf-loader-error","glb binary data is insufficiently large.");const r=t.readUint32(),o=t.readUint32(),s=t.readUint32();if(r!==R)throw new u.Z("gltf-loader-error","Magic first 4 bytes do not fit to expected glb value.");if(e.byteLength=8;){const e=t.readUint32(),r=t.readUint32();if(0===c){if(r!==v)throw new u.Z("gltf-loader-error","First glb chunk must be JSON.");if(e<0)throw new u.Z("gltf-loader-error","No JSON data found.");a=await(0,O.i$)(t.readUint8Array(e))}else if(1===c){if(r!==E)throw new u.Z("gltf-loader-unsupported-feature","Second glb chunk expected to be BIN.");i=t.readUint8Array(e)}else n.Z.getLogger("esri.views.3d.glTF").warn("[Unsupported Feature] More than 2 glb chunks detected. Skipping.");c+=1}if(!a)throw new u.Z("gltf-loader-error","No glb JSON chunk detected.");return{json:a,binaryData:i}}async getBuffer(e,t){const r=this.json.buffers[e];if(null==r.uri){if(null==this._glbBuffer)throw new u.Z("gltf-loader-error","glb buffer not present");return this._glbBuffer}const n=await this._getBufferLoader(e,t);if(n.byteLength!==r.byteLength)throw new u.Z("gltf-loader-error","Buffer byte lengths should match.");return n}async _getBufferLoader(e,t){const r=this._bufferLoaders.get(e);if(r)return r;const n=this.json.buffers[e].uri,o=this._context.loadBinary(this._resolveUri(n),t).then((e=>new Uint8Array(e)));return this._bufferLoaders.set(e,o),o}async getAccessor(e,t){if(!this.json.accessors)throw new u.Z("gltf-loader-unsupported-feature","Accessors missing.");const r=this.json.accessors[e];if(null==r?.bufferView)throw new u.Z("gltf-loader-unsupported-feature","Some accessor does not specify a bufferView.");if(r.type in[a.MAT2,a.MAT3,a.MAT4])throw new u.Z("gltf-loader-unsupported-feature",`AttributeType ${r.type} is not supported`);const n=this.json.bufferViews[r.bufferView],o=await this.getBuffer(n.buffer,t),s=B[r.type],i=L[r.componentType],c=s*i,f=n.byteStride||c;return{raw:o.buffer,byteStride:f,byteOffset:o.byteOffset+(n.byteOffset||0)+(r.byteOffset||0),entryCount:r.count,isDenselyPacked:f===c,componentCount:s,componentByteSize:i,componentType:r.componentType,min:r.min,max:r.max,normalized:!!r.normalized}}async getIndexData(e,t){if(null==e.indices)return;const r=await this.getAccessor(e.indices,t);if(r.isDenselyPacked)switch(r.componentType){case s.g.UNSIGNED_BYTE:return new Uint8Array(r.raw,r.byteOffset,r.entryCount);case s.g.UNSIGNED_SHORT:return new Uint16Array(r.raw,r.byteOffset,r.entryCount);case s.g.UNSIGNED_INT:return new Uint32Array(r.raw,r.byteOffset,r.entryCount)}else switch(r.componentType){case s.g.UNSIGNED_BYTE:return(0,w.m)(this._wrapAccessor(g.D_,r));case s.g.UNSIGNED_SHORT:return(0,w.m)(this._wrapAccessor(g.av,r));case s.g.UNSIGNED_INT:return(0,w.m)(this._wrapAccessor(g.Nu,r))}}async getPositionData(e,t){if(null==e.attributes.POSITION)throw new u.Z("gltf-loader-unsupported-feature","No POSITION vertex data found.");const r=await this.getAccessor(e.attributes.POSITION,t);if(r.componentType!==s.g.FLOAT)throw new u.Z("gltf-loader-unsupported-feature","Expected type FLOAT for POSITION vertex attribute, but found "+s.g[r.componentType]);if(3!==r.componentCount)throw new u.Z("gltf-loader-unsupported-feature","POSITION vertex attribute must have 3 components, but found "+r.componentCount.toFixed());return this._wrapAccessor(g.ct,r)}async getNormalData(e,t){if(null==e.attributes.NORMAL)throw new u.Z("gltf-loader-error","No NORMAL vertex data found.");const r=await this.getAccessor(e.attributes.NORMAL,t);if(r.componentType!==s.g.FLOAT)throw new u.Z("gltf-loader-unsupported-feature","Expected type FLOAT for NORMAL vertex attribute, but found "+s.g[r.componentType]);if(3!==r.componentCount)throw new u.Z("gltf-loader-unsupported-feature","NORMAL vertex attribute must have 3 components, but found "+r.componentCount.toFixed());return this._wrapAccessor(g.ct,r)}async getTangentData(e,t){if(null==e.attributes.TANGENT)throw new u.Z("gltf-loader-error","No TANGENT vertex data found.");const r=await this.getAccessor(e.attributes.TANGENT,t);if(r.componentType!==s.g.FLOAT)throw new u.Z("gltf-loader-unsupported-feature","Expected type FLOAT for TANGENT vertex attribute, but found "+s.g[r.componentType]);if(4!==r.componentCount)throw new u.Z("gltf-loader-unsupported-feature","TANGENT vertex attribute must have 4 components, but found "+r.componentCount.toFixed());return new g.ek(r.raw,r.byteOffset,r.byteStride,r.byteOffset+r.byteStride*r.entryCount)}async getTextureCoordinates(e,t){if(null==e.attributes.TEXCOORD_0)throw new u.Z("gltf-loader-error","No TEXCOORD_0 vertex data found.");const r=await this.getAccessor(e.attributes.TEXCOORD_0,t);if(2!==r.componentCount)throw new u.Z("gltf-loader-unsupported-feature","TEXCOORD_0 vertex attribute must have 2 components, but found "+r.componentCount.toFixed());if(r.componentType===s.g.FLOAT)return this._wrapAccessor(g.Eu,r);if(!r.normalized)throw new u.Z("gltf-loader-unsupported-feature","Integer component types are only supported for a normalized accessor for TEXCOORD_0.");return function(e){switch(e.componentType){case s.g.BYTE:return new g.Vs(e.raw,e.byteOffset,e.byteStride,e.byteOffset+e.byteStride*e.entryCount);case s.g.UNSIGNED_BYTE:return new g.xA(e.raw,e.byteOffset,e.byteStride,e.byteOffset+e.byteStride*e.entryCount);case s.g.SHORT:return new g.or(e.raw,e.byteOffset,e.byteStride,e.byteOffset+e.byteStride*e.entryCount);case s.g.UNSIGNED_SHORT:return new g.TS(e.raw,e.byteOffset,e.byteStride,e.byteOffset+e.byteStride*e.entryCount);case s.g.UNSIGNED_INT:return new g.qt(e.raw,e.byteOffset,e.byteStride,e.byteOffset+e.byteStride*e.entryCount);case s.g.FLOAT:return new g.Eu(e.raw,e.byteOffset,e.byteStride,e.byteOffset+e.byteStride*e.entryCount)}}(r)}async getVertexColors(e,t){if(null==e.attributes.COLOR_0)throw new u.Z("gltf-loader-error","No COLOR_0 vertex data found.");const r=await this.getAccessor(e.attributes.COLOR_0,t);if(4!==r.componentCount&&3!==r.componentCount)throw new u.Z("gltf-loader-unsupported-feature","COLOR_0 attribute must have 3 or 4 components, but found "+r.componentCount.toFixed());if(4===r.componentCount){if(r.componentType===s.g.FLOAT)return this._wrapAccessor(g.ek,r);if(r.componentType===s.g.UNSIGNED_BYTE)return this._wrapAccessor(g.mc,r);if(r.componentType===s.g.UNSIGNED_SHORT)return this._wrapAccessor(g.v6,r)}else if(3===r.componentCount){if(r.componentType===s.g.FLOAT)return this._wrapAccessor(g.ct,r);if(r.componentType===s.g.UNSIGNED_BYTE)return this._wrapAccessor(g.ne,r);if(r.componentType===s.g.UNSIGNED_SHORT)return this._wrapAccessor(g.mw,r)}throw new u.Z("gltf-loader-unsupported-feature","Unsupported component type for COLOR_0 attribute: "+s.g[r.componentType])}hasPositions(e){return void 0!==e.attributes.POSITION}hasNormals(e){return void 0!==e.attributes.NORMAL}hasVertexColors(e){return void 0!==e.attributes.COLOR_0}hasTextureCoordinates(e){return void 0!==e.attributes.TEXCOORD_0}hasTangents(e){return void 0!==e.attributes.TANGENT}async getMaterial(e,t,r){let n=e.material?this._materialCache.get(e.material):void 0;if(!n){const o=null!=e.material?S(this.json.materials[e.material]):S(),s=o.pbrMetallicRoughness,a=this.hasVertexColors(e),i=this.getTexture(s.baseColorTexture,t),u=this.getTexture(o.normalTexture,t),c=r?this.getTexture(o.occlusionTexture,t):void 0,f=r?this.getTexture(o.emissiveTexture,t):void 0,l=r?this.getTexture(s.metallicRoughnessTexture,t):void 0,d=null!=e.material?e.material:-1;n={alphaMode:o.alphaMode,alphaCutoff:o.alphaCutoff,color:s.baseColorFactor,doubleSided:!!o.doubleSided,colorTexture:await i,normalTexture:await u,name:o.name,id:d,occlusionTexture:await c,emissiveTexture:await f,emissiveFactor:o.emissiveFactor,metallicFactor:s.metallicFactor,roughnessFactor:s.roughnessFactor,metallicRoughnessTexture:await l,hasVertexColors:a,ESRI_externalColorMixMode:o.extras.ESRI_externalColorMixMode,colorTextureTransform:s?.baseColorTexture?.extensions?.KHR_texture_transform,normalTextureTransform:o.normalTexture?.extensions?.KHR_texture_transform,occlusionTextureTransform:o.occlusionTexture?.extensions?.KHR_texture_transform,emissiveTextureTransform:o.emissiveTexture?.extensions?.KHR_texture_transform,metallicRoughnessTextureTransform:s?.metallicRoughnessTexture?.extensions?.KHR_texture_transform,receiveAmbientOcclusion:o.extras.ESRI_receiveAmbientOcclusion,receiveShadows:o.extras.ESRI_receiveShadows}}return n}async getTexture(e,t){if(!e)return;if(0!==(e.texCoord||0))throw new u.Z("gltf-loader-unsupported-feature","Only TEXCOORD with index 0 is supported.");const r=e.index,n=this.json.textures[r],o=(f=null!=n.sampler?this.json.samplers[n.sampler]:{},{...A,...f}),s=this._getTextureSourceId(n),a=this.json.images[s],i=await this._loadTextureImageData(r,n,t);var f;return(0,c.s1)(this._textureCache,r,(()=>{const e=e=>33071===e||33648===e||10497===e,t=e=>{throw new u.Z("gltf-loader-error",`Unexpected TextureSampler WrapMode: ${e}`)};return{data:i,wrapS:e(o.wrapS)?o.wrapS:t(o.wrapS),wrapT:e(o.wrapT)?o.wrapT:t(o.wrapT),minFilter:o.minFilter,name:a.name,id:r}}))}getNodeTransform(e){if(void 0===e)return M;let t=this._nodeTransformCache.get(e);if(!t){const r=this.getNodeTransform(this._getNodeParent(e)),n=this.json.nodes[e];n.matrix?t=(0,p.Jp)((0,o.Ue)(),r,n.matrix):n.translation||n.rotation||n.scale?(t=(0,o.d9)(r),n.translation&&(0,p.Iu)(t,t,n.translation),n.rotation&&(I[3]=(0,h.Bh)(I,n.rotation),(0,p.U1)(t,t,I[3],I)),n.scale&&(0,p.bA)(t,t,n.scale)):t=(0,o.d9)(r),this._nodeTransformCache.set(e,t)}return t}_wrapAccessor(e,t){return new e(t.raw,t.byteOffset,t.byteStride,t.byteOffset+t.byteStride*(t.entryCount-1)+t.componentByteSize*t.componentCount)}_resolveUri(e){return(0,l.hF)(e,this._baseUri)}_getNodeParent(e){return this._nodeParentMap.get(e)}_checkVersionSupported(){const e=d.G.parse(this.json.asset.version,"glTF");C.validate(e)}_checkRequiredExtensionsSupported(){const e=this.json;if(e.extensionsRequired&&!e.extensionsRequired.every((e=>this._supportedExtensions.includes(e))))throw new u.Z("gltf-loader-unsupported-feature","gltf loader was not able to load unsupported feature. Required extensions: "+e.extensionsRequired.join(", "))}_computeNodeParents(){this.json.nodes.forEach(((e,t)=>{e.children&&e.children.forEach((e=>{this._nodeParentMap.set(e,t)}))}))}async _loadTextureImageData(e,t,r){const n=this._textureLoaders.get(e);if(n)return n;const o=this._createTextureLoader(t,r);return this._textureLoaders.set(e,o),o}_getTextureSourceId(e){if(void 0!==e.extensions&&null!==e.extensions.KHR_texture_basisu)return e.extensions.KHR_texture_basisu.source;if(null!==e.source)return e.source;throw new u.Z("gltf-loader-unsupported-feature","Source is expected to be defined for a texture. It can also be omitted in favour of an KHR_texture_basisu extension tag.")}async _createTextureLoader(e,t){const r=this._getTextureSourceId(e),n=this.json.images[r];if(n.uri){if(n.uri.endsWith(".ktx2")){const e=await this._context.loadBinary(this._resolveUri(n.uri),t);return new O.NM(new Uint8Array(e))}return this._context.loadImage(this._resolveUri(n.uri),t)}if(null==n.bufferView)throw new u.Z("gltf-loader-unsupported-feature","Image bufferView must be defined.");if(null==n.mimeType)throw new u.Z("gltf-loader-unsupported-feature","Image mimeType must be defined.");const o=this.json.bufferViews[n.bufferView],s=await this.getBuffer(o.buffer,t);if(null!=o.byteStride)throw new u.Z("gltf-loader-unsupported-feature","byteStride not supported for image buffer");const a=s.byteOffset+(o.byteOffset||0);return(0,O.Ml)(new Uint8Array(s.buffer,a,o.byteLength),n.mimeType)}async getLoadedBuffersSize(){if(this._glbBuffer)return this._glbBuffer.byteLength;const e=await(0,f.OT)(Array.from(this._bufferLoaders.values())),t=await(0,f.OT)(Array.from(this._textureLoaders.values()));return e.reduce(((e,t)=>e+(t?.byteLength??0)),0)+t.reduce(((e,t)=>e+(t?(0,O.$A)(t)?t.data.byteLength:t.width*t.height*4:0)),0)}}const M=(0,p.aC)((0,o.Ue)(),Math.PI/2),C=new d.G(2,0,"glTF"),I=(0,m.Ue)(),B={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},L={[s.g.BYTE]:1,[s.g.UNSIGNED_BYTE]:1,[s.g.SHORT]:2,[s.g.UNSIGNED_SHORT]:2,[s.g.FLOAT]:4,[s.g.INT]:4,[s.g.UNSIGNED_INT]:4};const F=/\.gltf$/i,U=/\.glb$/i;let D=0;async function P(e,t,r={},a=!0){const i=await N.load(e,t,r),u="gltf_"+D++,c={lods:[],materials:new Map,textures:new Map,meta:Z(i)},f=!(!i.json.asset.extras||"symbolResource"!==i.json.asset.extras.ESRI_type),l=i.json.asset.extras?.ESRI_webstyleSymbol?.webstyle,d=new Map;await j(i,(async(e,t,f,l)=>{const p=d.get(f)??0;d.set(f,p+1);const h=void 0!==e.mode?e.mode:s.MX.TRIANGLES,m=h===s.MX.TRIANGLES||h===s.MX.TRIANGLE_STRIP||h===s.MX.TRIANGLE_FAN?h:null;if(null==m)return void n.Z.getLogger("esri.views.3d.glTF").warn("[Unsupported Feature] Unsupported primitive mode ("+s.MX[h]+"). Skipping primitive.");if(!i.hasPositions(e))return void n.Z.getLogger("esri.views.3d.glTF").warn("Skipping primitive without POSITION vertex attribute.");const g=i.getPositionData(e,r),w=i.getMaterial(e,r,a),y=i.hasNormals(e)?i.getNormalData(e,r):null,T=i.hasTangents(e)?i.getTangentData(e,r):null,b=i.hasTextureCoordinates(e)?i.getTextureCoordinates(e,r):null,_=i.hasVertexColors(e)?i.getVertexColors(e,r):null,x=i.getIndexData(e,r),S={name:l,transform:(0,o.d9)(t),attributes:{position:await g,normal:y?await y:null,texCoord0:b?await b:null,color:_?await _:null,tangent:T?await T:null},indices:await x,primitiveType:m,material:V(c,await w,u)};let A=null;null!=c.meta?.ESRI_lod&&"screenSpaceRadius"===c.meta.ESRI_lod.metric&&(A=c.meta.ESRI_lod.thresholds[f]),c.lods[f]=c.lods[f]||{parts:[],name:l,lodThreshold:A},c.lods[f].parts[p]=S}));for(const e of c.lods)e.parts=e.parts.filter((e=>!!e));const p=await i.getLoadedBuffersSize();return{model:c,meta:{isEsriSymbolResource:f,uri:i.uri,ESRI_webstyle:l},customMeta:{},size:p}}function Z(e){const t=e.json;let r=null;return t.nodes.forEach((e=>{const t=e.extras;null!=t&&(t.ESRI_proxyEllipsoid||t.ESRI_lod)&&(r=t)})),r}async function j(e,t){const r=e.json,o=r.scenes[r.scene||0].nodes,s=o.length>1,a=[];for(const e of o){const t=r.nodes[e];a.push(i(e,0)),G(t)&&!s&&t.extensions.MSFT_lod.ids.forEach(((e,t)=>i(e,t+1)))}async function i(o,s){const u=r.nodes[o],c=e.getNodeTransform(o);if(null!=u.weights&&n.Z.getLogger("esri.views.3d.glTF").warn("[Unsupported Feature] Morph targets are not supported."),null!=u.mesh){const e=r.meshes[u.mesh];for(const r of e.primitives)a.push(t(r,c,s,e.name))}for(const e of u.children||[])a.push(i(e,s))}await Promise.all(a)}function G(e){return e.extensions?.MSFT_lod&&Array.isArray(e.extensions.MSFT_lod.ids)}function V(e,t,r){const n=t=>{const n=`${r}_tex_${t&&t.id}${t?.name?"_"+t.name:""}`;if(t&&!e.textures.has(n)){const r=function(e,t={}){return{data:e,parameters:{wrap:{s:s.e8.REPEAT,t:s.e8.REPEAT,...t.wrap},noUnpackFlip:!0,mipmap:!1,...t}}}(t.data,{wrap:{s:t.wrapS,t:t.wrapT},mipmap:k.has(t.minFilter),noUnpackFlip:!0});e.textures.set(n,r)}return n},o=`${r}_mat_${t.id}_${t.name}`;if(!e.materials.has(o)){const r=function(e={}){return{color:[1,1,1],opacity:1,alphaMode:"OPAQUE",alphaCutoff:.5,doubleSided:!1,castShadows:!0,receiveShadows:!0,receiveAmbientOcclustion:!0,textureColor:null,textureNormal:null,textureOcclusion:null,textureEmissive:null,textureMetallicRoughness:null,colorTextureTransform:null,normalTextureTransform:null,occlusionTextureTransform:null,emissiveTextureTransform:null,metallicRoughnessTextureTransform:null,emissiveFactor:[0,0,0],metallicFactor:1,roughnessFactor:1,colorMixMode:"multiply",...e}}({color:[t.color[0],t.color[1],t.color[2]],opacity:t.color[3],alphaMode:t.alphaMode,alphaCutoff:t.alphaCutoff,doubleSided:t.doubleSided,colorMixMode:t.ESRI_externalColorMixMode,textureColor:t.colorTexture?n(t.colorTexture):void 0,textureNormal:t.normalTexture?n(t.normalTexture):void 0,textureOcclusion:t.occlusionTexture?n(t.occlusionTexture):void 0,textureEmissive:t.emissiveTexture?n(t.emissiveTexture):void 0,textureMetallicRoughness:t.metallicRoughnessTexture?n(t.metallicRoughnessTexture):void 0,emissiveFactor:[t.emissiveFactor[0],t.emissiveFactor[1],t.emissiveFactor[2]],colorTextureTransform:t.colorTextureTransform,normalTextureTransform:t.normalTextureTransform,occlusionTextureTransform:t.occlusionTextureTransform,emissiveTextureTransform:t.emissiveTextureTransform,metallicRoughnessTextureTransform:t.metallicRoughnessTextureTransform,metallicFactor:t.metallicFactor,roughnessFactor:t.roughnessFactor,receiveShadows:t.receiveShadows,receiveAmbientOcclustion:t.receiveAmbientOcclusion});e.materials.set(o,r)}return o}const k=new Set([s.cw.LINEAR_MIPMAP_LINEAR,s.cw.LINEAR_MIPMAP_NEAREST])},14634:function(e,t,r){r.d(t,{j:function(){return n}});const n=2.1}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8229.c03f7b2b5ca84a513838.js b/docs/sentinel1-explorer/8229.c03f7b2b5ca84a513838.js new file mode 100644 index 00000000..3501cba6 --- /dev/null +++ b/docs/sentinel1-explorer/8229.c03f7b2b5ca84a513838.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8229],{88229:function(e,_,r){r.r(_),r.d(_,{default:function(){return d}});const d={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"μ.Χ.",_era_bc:"π.Χ.",A:"πμ",P:"μμ",AM:"π.μ.",PM:"μ.μ.","A.M.":"π.μ.","P.M.":"μ.μ.",January:"Ιανουαρίου",February:"Φεβρουαρίου",March:"Μαρτίου",April:"Απριλίου",May:"Μαΐου",June:"Ιουνίου",July:"Ιουλίου",August:"Αυγούστου",September:"Σεπτεμβρίου",October:"Οκτωβρίου",November:"Νοεμβρίου",December:"Δεκεμβρίου",Jan:"Ιαν",Feb:"Φεβ",Mar:"Μαρ",Apr:"Απρ","May(short)":"Μαΐ",Jun:"Ιουν",Jul:"Ιουλ",Aug:"Αυγ",Sep:"Σεπ",Oct:"Οκτ",Nov:"Νοε",Dec:"Δεκ",Sunday:"Κυριακή",Monday:"Δευτέρα",Tuesday:"Τρίτη",Wednesday:"Τετάρτη",Thursday:"Πέμπτη",Friday:"Παρασκευή",Saturday:"Σάββατο",Sun:"Κυρ",Mon:"Δευ",Tue:"Τρί",Wed:"Τετ",Thu:"Πέμ",Fri:"Παρ",Sat:"Σάβ",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Εστίαση",Play:"Αναπαραγωγή",Stop:"Στάση",Legend:"Υπόμνημα","Press ENTER to toggle":"",Loading:"Φόρτωση",Home:"Αρχική",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Εκτύπωση",Image:"Image",Data:"Δεδομένα",Print:"Εκτύπωση","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Από %1 έως %2","From %1":"Από %1","To %1":"Έως %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8243.bed43b242bad700f7f7e.js b/docs/sentinel1-explorer/8243.bed43b242bad700f7f7e.js new file mode 100644 index 00000000..c7401d5e --- /dev/null +++ b/docs/sentinel1-explorer/8243.bed43b242bad700f7f7e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8243],{48243:function(e,a,_){_.r(a),_.d(a,{default:function(){return r}});const r={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"M",_era_bc:"SM",A:"AM",P:"PM",AM:"AM",PM:"PM","A.M.":"AM","P.M.":"PM",January:"Januari",February:"Februari",March:"Maret",April:"April",May:"Mei",June:"Juni",July:"Juli",August:"Agustus",September:"September",October:"Oktober",November:"November",December:"Desember",Jan:"Jan",Feb:"Feb",Mar:"Mar",Apr:"Apr","May(short)":"Mei",Jun:"Jun",Jul:"Jul",Aug:"Agu",Sep:"Sep",Oct:"Okt",Nov:"Nov",Dec:"Des",Sunday:"Minggu",Monday:"Senin",Tuesday:"Selasa",Wednesday:"Rabu",Thursday:"Kamis",Friday:"Jumat",Saturday:"Sabtu",Sun:"Min",Mon:"Sen",Tue:"Sel",Wed:"Rab",Thu:"Kam",Fri:"Jum",Sat:"Sab",_dateOrd:function(e){let a="th";if(e<11||e>13)switch(e%10){case 1:a="st";break;case 2:a="nd";break;case 3:a="rd"}return a},"Zoom Out":"Perkecil",Play:"Putar",Stop:"Hentikan",Legend:"Legenda","Press ENTER to toggle":"Klik, ketuk atau tekan ENTER untuk beralih",Loading:"Memuat",Home:"Beranda",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"Peta","Press ENTER to zoom in":"Tekan ENTER untuk memperbesar","Press ENTER to zoom out":"Tekan ENTER untuk memperkecil","Use arrow keys to zoom in and out":"Gunakan tombol panah untuk memperbesar dan memperkecil","Use plus and minus keys on your keyboard to zoom in and out":"Gunakan tombol plus dan minus pada keyboard Anda untuk memperbesar dan memperkecil",Export:"Cetak",Image:"Gambar",Data:"Data",Print:"Cetak","Press ENTER to open":"Klik, ketuk atau tekan ENTER untuk membuka","Press ENTER to print.":"Klik, ketuk atau tekan ENTER untuk mencetak","Press ENTER to export as %1.":"Klik, ketuk atau tekan ENTER untuk mengekspor sebagai %1","(Press ESC to close this message)":"Tekan ESC untuk menutup pesan ini","Image Export Complete":"Ekspor gambar selesai","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Dari %1 ke %2","From %1":"Dari %1","To %1":"Ke %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/829.a73028980ac04b8da6f8.js b/docs/sentinel1-explorer/829.a73028980ac04b8da6f8.js new file mode 100644 index 00000000..c2f3273b --- /dev/null +++ b/docs/sentinel1-explorer/829.a73028980ac04b8da6f8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[829],{10829:function(r,e,t){t.r(e),t.d(e,{l:function(){return l}});var n,o,a,i=t(58340),s={exports:{}};n=s,o="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,a=function(r={}){var e,t,n=r;n.ready=new Promise(((r,n)=>{e=r,t=n}));var a,s,u=Object.assign({},n),l="./this.program",d=(r,e)=>{throw e},c=!0,f="";"undefined"!=typeof document&&document.currentScript&&(f=document.currentScript.src),o&&(f=o),f=0!==f.indexOf("blob:")?f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):"",a=r=>{var e=new XMLHttpRequest;return e.open("GET",r,!1),e.send(null),e.responseText},s=(r,e,t)=>{var n=new XMLHttpRequest;n.open("GET",r,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?e(n.response):t()},n.onerror=t,n.send(null)};var h,m,p=n.print||void 0,v=n.printErr||void 0;Object.assign(n,u),u=null,n.arguments&&n.arguments,n.thisProgram&&(l=n.thisProgram),n.quit&&(d=n.quit),n.wasmBinary&&(h=n.wasmBinary),"object"!=typeof WebAssembly&&z("no native wasm support detected");var y,w,g,E,_,b,k,F,A=!1;function S(r,e){r||z(e)}function D(){var r=m.buffer;n.HEAP8=y=new Int8Array(r),n.HEAP16=g=new Int16Array(r),n.HEAPU8=w=new Uint8Array(r),n.HEAPU16=E=new Uint16Array(r),n.HEAP32=_=new Int32Array(r),n.HEAPU32=b=new Uint32Array(r),n.HEAPF32=k=new Float32Array(r),n.HEAPF64=F=new Float64Array(r)}var P=[],T=[],$=[];function C(r){P.unshift(r)}function M(r){$.unshift(r)}var j=0,x=null;function R(r){j++,n.monitorRunDependencies&&n.monitorRunDependencies(j)}function O(r){if(j--,n.monitorRunDependencies&&n.monitorRunDependencies(j),0==j&&x){var e=x;x=null,e()}}function z(r){n.onAbort&&n.onAbort(r),v(r="Aborted("+r+")"),A=!0,r+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(r);throw t(e),e}var W,N,L,B=r=>r.startsWith("data:application/octet-stream;base64,");function U(r){if(r==W&&h)return new Uint8Array(h);throw"both async and sync fetching of the wasm failed"}function I(r,e,t){return function(r){return!h&&c&&"function"==typeof fetch?fetch(r,{credentials:"same-origin"}).then((e=>{if(!e.ok)throw"failed to load wasm binary file at '"+r+"'";return e.arrayBuffer()})).catch((()=>U(r))):Promise.resolve().then((()=>U(r)))}(r).then((r=>WebAssembly.instantiate(r,e))).then((r=>r)).then(t,(r=>{v(`failed to asynchronously prepare wasm: ${r}`),z(r)}))}function H(r){this.name="ExitStatus",this.message=`Program terminated with exit(${r})`,this.status=r}B(W="lyr3DWorker.wasm")||(W=function(r){return n.locateFile?n.locateFile(r,f):f+r}(W));var Y=r=>{for(;r.length>0;)r.shift()(n)},q=n.noExitRuntime||!0;function V(r){this.excPtr=r,this.ptr=r-24,this.set_type=function(r){b[this.ptr+4>>2]=r},this.get_type=function(){return b[this.ptr+4>>2]},this.set_destructor=function(r){b[this.ptr+8>>2]=r},this.get_destructor=function(){return b[this.ptr+8>>2]},this.set_caught=function(r){r=r?1:0,y[this.ptr+12>>0]=r},this.get_caught=function(){return 0!=y[this.ptr+12>>0]},this.set_rethrown=function(r){r=r?1:0,y[this.ptr+13>>0]=r},this.get_rethrown=function(){return 0!=y[this.ptr+13>>0]},this.init=function(r,e){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(e)},this.set_adjusted_ptr=function(r){b[this.ptr+16>>2]=r},this.get_adjusted_ptr=function(){return b[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Me(this.get_type()))return b[this.excPtr>>2];var r=this.get_adjusted_ptr();return 0!==r?r:this.excPtr}}var X={isAbs:r=>"/"===r.charAt(0),splitPath:r=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(r).slice(1),normalizeArray:(r,e)=>{for(var t=0,n=r.length-1;n>=0;n--){var o=r[n];"."===o?r.splice(n,1):".."===o?(r.splice(n,1),t++):t&&(r.splice(n,1),t--)}if(e)for(;t;t--)r.unshift("..");return r},normalize:r=>{var e=X.isAbs(r),t="/"===r.substr(-1);return(r=X.normalizeArray(r.split("/").filter((r=>!!r)),!e).join("/"))||e||(r="."),r&&t&&(r+="/"),(e?"/":"")+r},dirname:r=>{var e=X.splitPath(r),t=e[0],n=e[1];return t||n?(n&&(n=n.substr(0,n.length-1)),t+n):"."},basename:r=>{if("/"===r)return"/";var e=(r=(r=X.normalize(r)).replace(/\/$/,"")).lastIndexOf("/");return-1===e?r:r.substr(e+1)},join:function(){var r=Array.prototype.slice.call(arguments);return X.normalize(r.join("/"))},join2:(r,e)=>X.normalize(r+"/"+e)},G=r=>(G=(()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return r=>crypto.getRandomValues(r);z("initRandomDevice")})())(r),J={resolve:function(){for(var r="",e=!1,t=arguments.length-1;t>=-1&&!e;t--){var n=t>=0?arguments[t]:lr.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";r=n+"/"+r,e=X.isAbs(n)}return(e?"/":"")+(r=X.normalizeArray(r.split("/").filter((r=>!!r)),!e).join("/"))||"."},relative:(r,e)=>{function t(r){for(var e=0;e=0&&""===r[t];t--);return e>t?[]:r.slice(e,t-e+1)}r=J.resolve(r).substr(1),e=J.resolve(e).substr(1);for(var n=t(r.split("/")),o=t(e.split("/")),a=Math.min(n.length,o.length),i=a,s=0;s{for(var n=e+t,o=e;r[o]&&!(o>=n);)++o;if(o-e>16&&r.buffer&&K)return K.decode(r.subarray(e,o));for(var a="";e>10,56320|1023&l)}}else a+=String.fromCharCode((31&i)<<6|s)}else a+=String.fromCharCode(i)}return a},Q=[],rr=r=>{for(var e=0,t=0;t=55296&&n<=57343?(e+=4,++t):e+=3}return e},er=(r,e,t,n)=>{if(!(n>0))return 0;for(var o=t,a=t+n-1,i=0;i=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&r.charCodeAt(++i)),s<=127){if(t>=a)break;e[t++]=s}else if(s<=2047){if(t+1>=a)break;e[t++]=192|s>>6,e[t++]=128|63&s}else if(s<=65535){if(t+2>=a)break;e[t++]=224|s>>12,e[t++]=128|s>>6&63,e[t++]=128|63&s}else{if(t+3>=a)break;e[t++]=240|s>>18,e[t++]=128|s>>12&63,e[t++]=128|s>>6&63,e[t++]=128|63&s}}return e[t]=0,t-o};function tr(r,e,t){var n=t>0?t:rr(r)+1,o=new Array(n),a=er(r,o,0,o.length);return e&&(o.length=a),o}var nr={ttys:[],init(){},shutdown(){},register(r,e){nr.ttys[r]={input:[],output:[],ops:e},lr.registerDevice(r,nr.stream_ops)},stream_ops:{open(r){var e=nr.ttys[r.node.rdev];if(!e)throw new lr.ErrnoError(43);r.tty=e,r.seekable=!1},close(r){r.tty.ops.fsync(r.tty)},fsync(r){r.tty.ops.fsync(r.tty)},read(r,e,t,n,o){if(!r.tty||!r.tty.ops.get_char)throw new lr.ErrnoError(60);for(var a=0,i=0;i(()=>{if(!Q.length){var r=null;if("undefined"!=typeof window&&"function"==typeof window.prompt?null!==(r=window.prompt("Input: "))&&(r+="\n"):"function"==typeof readline&&null!==(r=readline())&&(r+="\n"),!r)return null;Q=tr(r,!0)}return Q.shift()})(),put_char(r,e){null===e||10===e?(p(Z(r.output,0)),r.output=[]):0!=e&&r.output.push(e)},fsync(r){r.output&&r.output.length>0&&(p(Z(r.output,0)),r.output=[])},ioctl_tcgets:r=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(r,e,t)=>0,ioctl_tiocgwinsz:r=>[24,80]},default_tty1_ops:{put_char(r,e){null===e||10===e?(v(Z(r.output,0)),r.output=[]):0!=e&&r.output.push(e)},fsync(r){r.output&&r.output.length>0&&(v(Z(r.output,0)),r.output=[])}}},or=r=>{z()},ar={ops_table:null,mount:r=>ar.createNode(null,"/",16895,0),createNode(r,e,t,n){if(lr.isBlkdev(t)||lr.isFIFO(t))throw new lr.ErrnoError(63);ar.ops_table||(ar.ops_table={dir:{node:{getattr:ar.node_ops.getattr,setattr:ar.node_ops.setattr,lookup:ar.node_ops.lookup,mknod:ar.node_ops.mknod,rename:ar.node_ops.rename,unlink:ar.node_ops.unlink,rmdir:ar.node_ops.rmdir,readdir:ar.node_ops.readdir,symlink:ar.node_ops.symlink},stream:{llseek:ar.stream_ops.llseek}},file:{node:{getattr:ar.node_ops.getattr,setattr:ar.node_ops.setattr},stream:{llseek:ar.stream_ops.llseek,read:ar.stream_ops.read,write:ar.stream_ops.write,allocate:ar.stream_ops.allocate,mmap:ar.stream_ops.mmap,msync:ar.stream_ops.msync}},link:{node:{getattr:ar.node_ops.getattr,setattr:ar.node_ops.setattr,readlink:ar.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ar.node_ops.getattr,setattr:ar.node_ops.setattr},stream:lr.chrdev_stream_ops}});var o=lr.createNode(r,e,t,n);return lr.isDir(o.mode)?(o.node_ops=ar.ops_table.dir.node,o.stream_ops=ar.ops_table.dir.stream,o.contents={}):lr.isFile(o.mode)?(o.node_ops=ar.ops_table.file.node,o.stream_ops=ar.ops_table.file.stream,o.usedBytes=0,o.contents=null):lr.isLink(o.mode)?(o.node_ops=ar.ops_table.link.node,o.stream_ops=ar.ops_table.link.stream):lr.isChrdev(o.mode)&&(o.node_ops=ar.ops_table.chrdev.node,o.stream_ops=ar.ops_table.chrdev.stream),o.timestamp=Date.now(),r&&(r.contents[e]=o,r.timestamp=o.timestamp),o},getFileDataAsTypedArray:r=>r.contents?r.contents.subarray?r.contents.subarray(0,r.usedBytes):new Uint8Array(r.contents):new Uint8Array(0),expandFileStorage(r,e){var t=r.contents?r.contents.length:0;if(!(t>=e)){e=Math.max(e,t*(t<1048576?2:1.125)>>>0),0!=t&&(e=Math.max(e,256));var n=r.contents;r.contents=new Uint8Array(e),r.usedBytes>0&&r.contents.set(n.subarray(0,r.usedBytes),0)}},resizeFileStorage(r,e){if(r.usedBytes!=e)if(0==e)r.contents=null,r.usedBytes=0;else{var t=r.contents;r.contents=new Uint8Array(e),t&&r.contents.set(t.subarray(0,Math.min(e,r.usedBytes))),r.usedBytes=e}},node_ops:{getattr(r){var e={};return e.dev=lr.isChrdev(r.mode)?r.id:1,e.ino=r.id,e.mode=r.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=r.rdev,lr.isDir(r.mode)?e.size=4096:lr.isFile(r.mode)?e.size=r.usedBytes:lr.isLink(r.mode)?e.size=r.link.length:e.size=0,e.atime=new Date(r.timestamp),e.mtime=new Date(r.timestamp),e.ctime=new Date(r.timestamp),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr(r,e){void 0!==e.mode&&(r.mode=e.mode),void 0!==e.timestamp&&(r.timestamp=e.timestamp),void 0!==e.size&&ar.resizeFileStorage(r,e.size)},lookup(r,e){throw lr.genericErrors[44]},mknod:(r,e,t,n)=>ar.createNode(r,e,t,n),rename(r,e,t){if(lr.isDir(r.mode)){var n;try{n=lr.lookupNode(e,t)}catch(r){}if(n)for(var o in n.contents)throw new lr.ErrnoError(55)}delete r.parent.contents[r.name],r.parent.timestamp=Date.now(),r.name=t,e.contents[t]=r,e.timestamp=r.parent.timestamp,r.parent=e},unlink(r,e){delete r.contents[e],r.timestamp=Date.now()},rmdir(r,e){var t=lr.lookupNode(r,e);for(var n in t.contents)throw new lr.ErrnoError(55);delete r.contents[e],r.timestamp=Date.now()},readdir(r){var e=[".",".."];for(var t in r.contents)r.contents.hasOwnProperty(t)&&e.push(t);return e},symlink(r,e,t){var n=ar.createNode(r,e,41471,0);return n.link=t,n},readlink(r){if(!lr.isLink(r.mode))throw new lr.ErrnoError(28);return r.link}},stream_ops:{read(r,e,t,n,o){var a=r.node.contents;if(o>=r.node.usedBytes)return 0;var i=Math.min(r.node.usedBytes-o,n);if(i>8&&a.subarray)e.set(a.subarray(o,o+i),t);else for(var s=0;s0||t+e(ar.stream_ops.write(r,e,0,n,t,!1),0)}},ir=(r,e,t,n)=>{var o=n?"":`al ${r}`;s(r,(t=>{S(t,`Loading data file "${r}" failed (no arrayBuffer).`),e(new Uint8Array(t)),o&&O()}),(e=>{if(!t)throw`Loading data file "${r}" failed.`;t()})),o&&R()},sr=n.preloadPlugins||[],ur=(r,e)=>{var t=0;return r&&(t|=365),e&&(t|=146),t},lr={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(r,e={}){if(!(r=J.resolve(r)))return{path:"",node:null};if((e=Object.assign({follow_mount:!0,recurse_count:0},e)).recurse_count>8)throw new lr.ErrnoError(32);for(var t=r.split("/").filter((r=>!!r)),n=lr.root,o="/",a=0;a40)throw new lr.ErrnoError(32)}}return{path:o,node:n}},getPath(r){for(var e;;){if(lr.isRoot(r)){var t=r.mount.mountpoint;return e?"/"!==t[t.length-1]?`${t}/${e}`:t+e:t}e=e?`${r.name}/${e}`:r.name,r=r.parent}},hashName(r,e){for(var t=0,n=0;n>>0)%lr.nameTable.length},hashAddNode(r){var e=lr.hashName(r.parent.id,r.name);r.name_next=lr.nameTable[e],lr.nameTable[e]=r},hashRemoveNode(r){var e=lr.hashName(r.parent.id,r.name);if(lr.nameTable[e]===r)lr.nameTable[e]=r.name_next;else for(var t=lr.nameTable[e];t;){if(t.name_next===r){t.name_next=r.name_next;break}t=t.name_next}},lookupNode(r,e){var t=lr.mayLookup(r);if(t)throw new lr.ErrnoError(t,r);for(var n=lr.hashName(r.id,e),o=lr.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===r.id&&a===e)return o}return lr.lookup(r,e)},createNode(r,e,t,n){var o=new lr.FSNode(r,e,t,n);return lr.hashAddNode(o),o},destroyNode(r){lr.hashRemoveNode(r)},isRoot:r=>r===r.parent,isMountpoint:r=>!!r.mounted,isFile:r=>32768==(61440&r),isDir:r=>16384==(61440&r),isLink:r=>40960==(61440&r),isChrdev:r=>8192==(61440&r),isBlkdev:r=>24576==(61440&r),isFIFO:r=>4096==(61440&r),isSocket:r=>49152==(49152&r),flagsToPermissionString(r){var e=["r","w","rw"][3&r];return 512&r&&(e+="w"),e},nodePermissions:(r,e)=>lr.ignorePermissions||(!e.includes("r")||292&r.mode)&&(!e.includes("w")||146&r.mode)&&(!e.includes("x")||73&r.mode)?0:2,mayLookup(r){return lr.nodePermissions(r,"x")||(r.node_ops.lookup?0:2)},mayCreate(r,e){try{return lr.lookupNode(r,e),20}catch(r){}return lr.nodePermissions(r,"wx")},mayDelete(r,e,t){var n;try{n=lr.lookupNode(r,e)}catch(r){return r.errno}var o=lr.nodePermissions(r,"wx");if(o)return o;if(t){if(!lr.isDir(n.mode))return 54;if(lr.isRoot(n)||lr.getPath(n)===lr.cwd())return 10}else if(lr.isDir(n.mode))return 31;return 0},mayOpen:(r,e)=>r?lr.isLink(r.mode)?32:lr.isDir(r.mode)&&("r"!==lr.flagsToPermissionString(e)||512&e)?31:lr.nodePermissions(r,lr.flagsToPermissionString(e)):44,MAX_OPEN_FDS:4096,nextfd(){for(var r=0;r<=lr.MAX_OPEN_FDS;r++)if(!lr.streams[r])return r;throw new lr.ErrnoError(33)},getStreamChecked(r){var e=lr.getStream(r);if(!e)throw new lr.ErrnoError(8);return e},getStream:r=>lr.streams[r],createStream:(r,e=-1)=>(lr.FSStream||(lr.FSStream=function(){this.shared={}},lr.FSStream.prototype={},Object.defineProperties(lr.FSStream.prototype,{object:{get(){return this.node},set(r){this.node=r}},isRead:{get(){return 1!=(2097155&this.flags)}},isWrite:{get(){return 0!=(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(r){this.shared.flags=r}},position:{get(){return this.shared.position},set(r){this.shared.position=r}}})),r=Object.assign(new lr.FSStream,r),-1==e&&(e=lr.nextfd()),r.fd=e,lr.streams[e]=r,r),closeStream(r){lr.streams[r]=null},chrdev_stream_ops:{open(r){var e=lr.getDevice(r.node.rdev);r.stream_ops=e.stream_ops,r.stream_ops.open&&r.stream_ops.open(r)},llseek(){throw new lr.ErrnoError(70)}},major:r=>r>>8,minor:r=>255&r,makedev:(r,e)=>r<<8|e,registerDevice(r,e){lr.devices[r]={stream_ops:e}},getDevice:r=>lr.devices[r],getMounts(r){for(var e=[],t=[r];t.length;){var n=t.pop();e.push(n),t.push.apply(t,n.mounts)}return e},syncfs(r,e){"function"==typeof r&&(e=r,r=!1),lr.syncFSRequests++,lr.syncFSRequests>1&&v(`warning: ${lr.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=lr.getMounts(lr.root.mount),n=0;function o(r){return lr.syncFSRequests--,e(r)}function a(r){if(r)return a.errored?void 0:(a.errored=!0,o(r));++n>=t.length&&o(null)}t.forEach((e=>{if(!e.type.syncfs)return a(null);e.type.syncfs(e,r,a)}))},mount(r,e,t){var n,o="/"===t,a=!t;if(o&&lr.root)throw new lr.ErrnoError(10);if(!o&&!a){var i=lr.lookupPath(t,{follow_mount:!1});if(t=i.path,n=i.node,lr.isMountpoint(n))throw new lr.ErrnoError(10);if(!lr.isDir(n.mode))throw new lr.ErrnoError(54)}var s={type:r,opts:e,mountpoint:t,mounts:[]},u=r.mount(s);return u.mount=s,s.root=u,o?lr.root=u:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),u},unmount(r){var e=lr.lookupPath(r,{follow_mount:!1});if(!lr.isMountpoint(e.node))throw new lr.ErrnoError(28);var t=e.node,n=t.mounted,o=lr.getMounts(n);Object.keys(lr.nameTable).forEach((r=>{for(var e=lr.nameTable[r];e;){var t=e.name_next;o.includes(e.mount)&&lr.destroyNode(e),e=t}})),t.mounted=null;var a=t.mount.mounts.indexOf(n);t.mount.mounts.splice(a,1)},lookup:(r,e)=>r.node_ops.lookup(r,e),mknod(r,e,t){var n=lr.lookupPath(r,{parent:!0}).node,o=X.basename(r);if(!o||"."===o||".."===o)throw new lr.ErrnoError(28);var a=lr.mayCreate(n,o);if(a)throw new lr.ErrnoError(a);if(!n.node_ops.mknod)throw new lr.ErrnoError(63);return n.node_ops.mknod(n,o,e,t)},create:(r,e)=>(e=void 0!==e?e:438,e&=4095,e|=32768,lr.mknod(r,e,0)),mkdir:(r,e)=>(e=void 0!==e?e:511,e&=1023,e|=16384,lr.mknod(r,e,0)),mkdirTree(r,e){for(var t=r.split("/"),n="",o=0;o(void 0===t&&(t=e,e=438),e|=8192,lr.mknod(r,e,t)),symlink(r,e){if(!J.resolve(r))throw new lr.ErrnoError(44);var t=lr.lookupPath(e,{parent:!0}).node;if(!t)throw new lr.ErrnoError(44);var n=X.basename(e),o=lr.mayCreate(t,n);if(o)throw new lr.ErrnoError(o);if(!t.node_ops.symlink)throw new lr.ErrnoError(63);return t.node_ops.symlink(t,n,r)},rename(r,e){var t,n,o=X.dirname(r),a=X.dirname(e),i=X.basename(r),s=X.basename(e);if(t=lr.lookupPath(r,{parent:!0}).node,n=lr.lookupPath(e,{parent:!0}).node,!t||!n)throw new lr.ErrnoError(44);if(t.mount!==n.mount)throw new lr.ErrnoError(75);var u,l=lr.lookupNode(t,i),d=J.relative(r,a);if("."!==d.charAt(0))throw new lr.ErrnoError(28);if("."!==(d=J.relative(e,o)).charAt(0))throw new lr.ErrnoError(55);try{u=lr.lookupNode(n,s)}catch(r){}if(l!==u){var c=lr.isDir(l.mode),f=lr.mayDelete(t,i,c);if(f)throw new lr.ErrnoError(f);if(f=u?lr.mayDelete(n,s,c):lr.mayCreate(n,s))throw new lr.ErrnoError(f);if(!t.node_ops.rename)throw new lr.ErrnoError(63);if(lr.isMountpoint(l)||u&&lr.isMountpoint(u))throw new lr.ErrnoError(10);if(n!==t&&(f=lr.nodePermissions(t,"w")))throw new lr.ErrnoError(f);lr.hashRemoveNode(l);try{t.node_ops.rename(l,n,s)}catch(r){throw r}finally{lr.hashAddNode(l)}}},rmdir(r){var e=lr.lookupPath(r,{parent:!0}).node,t=X.basename(r),n=lr.lookupNode(e,t),o=lr.mayDelete(e,t,!0);if(o)throw new lr.ErrnoError(o);if(!e.node_ops.rmdir)throw new lr.ErrnoError(63);if(lr.isMountpoint(n))throw new lr.ErrnoError(10);e.node_ops.rmdir(e,t),lr.destroyNode(n)},readdir(r){var e=lr.lookupPath(r,{follow:!0}).node;if(!e.node_ops.readdir)throw new lr.ErrnoError(54);return e.node_ops.readdir(e)},unlink(r){var e=lr.lookupPath(r,{parent:!0}).node;if(!e)throw new lr.ErrnoError(44);var t=X.basename(r),n=lr.lookupNode(e,t),o=lr.mayDelete(e,t,!1);if(o)throw new lr.ErrnoError(o);if(!e.node_ops.unlink)throw new lr.ErrnoError(63);if(lr.isMountpoint(n))throw new lr.ErrnoError(10);e.node_ops.unlink(e,t),lr.destroyNode(n)},readlink(r){var e=lr.lookupPath(r).node;if(!e)throw new lr.ErrnoError(44);if(!e.node_ops.readlink)throw new lr.ErrnoError(28);return J.resolve(lr.getPath(e.parent),e.node_ops.readlink(e))},stat(r,e){var t=lr.lookupPath(r,{follow:!e}).node;if(!t)throw new lr.ErrnoError(44);if(!t.node_ops.getattr)throw new lr.ErrnoError(63);return t.node_ops.getattr(t)},lstat:r=>lr.stat(r,!0),chmod(r,e,t){var n;if(!(n="string"==typeof r?lr.lookupPath(r,{follow:!t}).node:r).node_ops.setattr)throw new lr.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&e|-4096&n.mode,timestamp:Date.now()})},lchmod(r,e){lr.chmod(r,e,!0)},fchmod(r,e){var t=lr.getStreamChecked(r);lr.chmod(t.node,e)},chown(r,e,t,n){var o;if(!(o="string"==typeof r?lr.lookupPath(r,{follow:!n}).node:r).node_ops.setattr)throw new lr.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown(r,e,t){lr.chown(r,e,t,!0)},fchown(r,e,t){var n=lr.getStreamChecked(r);lr.chown(n.node,e,t)},truncate(r,e){if(e<0)throw new lr.ErrnoError(28);var t;if(!(t="string"==typeof r?lr.lookupPath(r,{follow:!0}).node:r).node_ops.setattr)throw new lr.ErrnoError(63);if(lr.isDir(t.mode))throw new lr.ErrnoError(31);if(!lr.isFile(t.mode))throw new lr.ErrnoError(28);var n=lr.nodePermissions(t,"w");if(n)throw new lr.ErrnoError(n);t.node_ops.setattr(t,{size:e,timestamp:Date.now()})},ftruncate(r,e){var t=lr.getStreamChecked(r);if(0==(2097155&t.flags))throw new lr.ErrnoError(28);lr.truncate(t.node,e)},utime(r,e,t){var n=lr.lookupPath(r,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(e,t)})},open(r,e,t){if(""===r)throw new lr.ErrnoError(44);var o;if(t=void 0===t?438:t,t=64&(e="string"==typeof e?(r=>{var e={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[r];if(void 0===e)throw new Error(`Unknown file open mode: ${r}`);return e})(e):e)?4095&t|32768:0,"object"==typeof r)o=r;else{r=X.normalize(r);try{o=lr.lookupPath(r,{follow:!(131072&e)}).node}catch(r){}}var a=!1;if(64&e)if(o){if(128&e)throw new lr.ErrnoError(20)}else o=lr.mknod(r,t,0),a=!0;if(!o)throw new lr.ErrnoError(44);if(lr.isChrdev(o.mode)&&(e&=-513),65536&e&&!lr.isDir(o.mode))throw new lr.ErrnoError(54);if(!a){var i=lr.mayOpen(o,e);if(i)throw new lr.ErrnoError(i)}512&e&&!a&&lr.truncate(o,0),e&=-131713;var s=lr.createStream({node:o,path:lr.getPath(o),flags:e,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1});return s.stream_ops.open&&s.stream_ops.open(s),!n.logReadFiles||1&e||(lr.readFiles||(lr.readFiles={}),r in lr.readFiles||(lr.readFiles[r]=1)),s},close(r){if(lr.isClosed(r))throw new lr.ErrnoError(8);r.getdents&&(r.getdents=null);try{r.stream_ops.close&&r.stream_ops.close(r)}catch(r){throw r}finally{lr.closeStream(r.fd)}r.fd=null},isClosed:r=>null===r.fd,llseek(r,e,t){if(lr.isClosed(r))throw new lr.ErrnoError(8);if(!r.seekable||!r.stream_ops.llseek)throw new lr.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new lr.ErrnoError(28);return r.position=r.stream_ops.llseek(r,e,t),r.ungotten=[],r.position},read(r,e,t,n,o){if(n<0||o<0)throw new lr.ErrnoError(28);if(lr.isClosed(r))throw new lr.ErrnoError(8);if(1==(2097155&r.flags))throw new lr.ErrnoError(8);if(lr.isDir(r.node.mode))throw new lr.ErrnoError(31);if(!r.stream_ops.read)throw new lr.ErrnoError(28);var a=void 0!==o;if(a){if(!r.seekable)throw new lr.ErrnoError(70)}else o=r.position;var i=r.stream_ops.read(r,e,t,n,o);return a||(r.position+=i),i},write(r,e,t,n,o,a){if(n<0||o<0)throw new lr.ErrnoError(28);if(lr.isClosed(r))throw new lr.ErrnoError(8);if(0==(2097155&r.flags))throw new lr.ErrnoError(8);if(lr.isDir(r.node.mode))throw new lr.ErrnoError(31);if(!r.stream_ops.write)throw new lr.ErrnoError(28);r.seekable&&1024&r.flags&&lr.llseek(r,0,2);var i=void 0!==o;if(i){if(!r.seekable)throw new lr.ErrnoError(70)}else o=r.position;var s=r.stream_ops.write(r,e,t,n,o,a);return i||(r.position+=s),s},allocate(r,e,t){if(lr.isClosed(r))throw new lr.ErrnoError(8);if(e<0||t<=0)throw new lr.ErrnoError(28);if(0==(2097155&r.flags))throw new lr.ErrnoError(8);if(!lr.isFile(r.node.mode)&&!lr.isDir(r.node.mode))throw new lr.ErrnoError(43);if(!r.stream_ops.allocate)throw new lr.ErrnoError(138);r.stream_ops.allocate(r,e,t)},mmap(r,e,t,n,o){if(0!=(2&n)&&0==(2&o)&&2!=(2097155&r.flags))throw new lr.ErrnoError(2);if(1==(2097155&r.flags))throw new lr.ErrnoError(2);if(!r.stream_ops.mmap)throw new lr.ErrnoError(43);return r.stream_ops.mmap(r,e,t,n,o)},msync:(r,e,t,n,o)=>r.stream_ops.msync?r.stream_ops.msync(r,e,t,n,o):0,munmap:r=>0,ioctl(r,e,t){if(!r.stream_ops.ioctl)throw new lr.ErrnoError(59);return r.stream_ops.ioctl(r,e,t)},readFile(r,e={}){if(e.flags=e.flags||0,e.encoding=e.encoding||"binary","utf8"!==e.encoding&&"binary"!==e.encoding)throw new Error(`Invalid encoding type "${e.encoding}"`);var t,n=lr.open(r,e.flags),o=lr.stat(r).size,a=new Uint8Array(o);return lr.read(n,a,0,o,0),"utf8"===e.encoding?t=Z(a,0):"binary"===e.encoding&&(t=a),lr.close(n),t},writeFile(r,e,t={}){t.flags=t.flags||577;var n=lr.open(r,t.flags,t.mode);if("string"==typeof e){var o=new Uint8Array(rr(e)+1),a=er(e,o,0,o.length);lr.write(n,o,0,a,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(e))throw new Error("Unsupported data type");lr.write(n,e,0,e.byteLength,void 0,t.canOwn)}lr.close(n)},cwd:()=>lr.currentPath,chdir(r){var e=lr.lookupPath(r,{follow:!0});if(null===e.node)throw new lr.ErrnoError(44);if(!lr.isDir(e.node.mode))throw new lr.ErrnoError(54);var t=lr.nodePermissions(e.node,"x");if(t)throw new lr.ErrnoError(t);lr.currentPath=e.path},createDefaultDirectories(){lr.mkdir("/tmp"),lr.mkdir("/home"),lr.mkdir("/home/web_user")},createDefaultDevices(){lr.mkdir("/dev"),lr.registerDevice(lr.makedev(1,3),{read:()=>0,write:(r,e,t,n,o)=>n}),lr.mkdev("/dev/null",lr.makedev(1,3)),nr.register(lr.makedev(5,0),nr.default_tty_ops),nr.register(lr.makedev(6,0),nr.default_tty1_ops),lr.mkdev("/dev/tty",lr.makedev(5,0)),lr.mkdev("/dev/tty1",lr.makedev(6,0));var r=new Uint8Array(1024),e=0,t=()=>(0===e&&(e=G(r).byteLength),r[--e]);lr.createDevice("/dev","random",t),lr.createDevice("/dev","urandom",t),lr.mkdir("/dev/shm"),lr.mkdir("/dev/shm/tmp")},createSpecialDirectories(){lr.mkdir("/proc");var r=lr.mkdir("/proc/self");lr.mkdir("/proc/self/fd"),lr.mount({mount(){var e=lr.createNode(r,"fd",16895,73);return e.node_ops={lookup(r,e){var t=+e,n=lr.getStreamChecked(t),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return o.parent=o,o}},e}},{},"/proc/self/fd")},createStandardStreams(){n.stdin?lr.createDevice("/dev","stdin",n.stdin):lr.symlink("/dev/tty","/dev/stdin"),n.stdout?lr.createDevice("/dev","stdout",null,n.stdout):lr.symlink("/dev/tty","/dev/stdout"),n.stderr?lr.createDevice("/dev","stderr",null,n.stderr):lr.symlink("/dev/tty1","/dev/stderr"),lr.open("/dev/stdin",0),lr.open("/dev/stdout",1),lr.open("/dev/stderr",1)},ensureErrnoError(){lr.ErrnoError||(lr.ErrnoError=function(r,e){this.name="ErrnoError",this.node=e,this.setErrno=function(r){this.errno=r},this.setErrno(r),this.message="FS error"},lr.ErrnoError.prototype=new Error,lr.ErrnoError.prototype.constructor=lr.ErrnoError,[44].forEach((r=>{lr.genericErrors[r]=new lr.ErrnoError(r),lr.genericErrors[r].stack=""})))},staticInit(){lr.ensureErrnoError(),lr.nameTable=new Array(4096),lr.mount(ar,{},"/"),lr.createDefaultDirectories(),lr.createDefaultDevices(),lr.createSpecialDirectories(),lr.filesystems={MEMFS:ar}},init(r,e,t){lr.init.initialized=!0,lr.ensureErrnoError(),n.stdin=r||n.stdin,n.stdout=e||n.stdout,n.stderr=t||n.stderr,lr.createStandardStreams()},quit(){lr.init.initialized=!1;for(var r=0;rthis.length-1||r<0)){var e=r%this.chunkSize,t=r/this.chunkSize|0;return this.getter(t)[e]}},a.prototype.setDataGetter=function(r){this.getter=r},a.prototype.cacheLength=function(){var r=new XMLHttpRequest;if(r.open("HEAD",t,!1),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+t+". Status: "+r.status);var e,n=Number(r.getResponseHeader("Content-length")),o=(e=r.getResponseHeader("Accept-Ranges"))&&"bytes"===e,a=(e=r.getResponseHeader("Content-Encoding"))&&"gzip"===e,i=1048576;o||(i=n);var s=(r,e)=>{if(r>e)throw new Error("invalid range ("+r+", "+e+") or no bytes requested!");if(e>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",t,!1),n!==i&&o.setRequestHeader("Range","bytes="+r+"-"+e),o.responseType="arraybuffer",o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+t+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):tr(o.responseText||"",!0)},u=this;u.setDataGetter((r=>{var e=r*i,t=(r+1)*i-1;if(t=Math.min(t,n-1),void 0===u.chunks[r]&&(u.chunks[r]=s(e,t)),void 0===u.chunks[r])throw new Error("doXHR failed!");return u.chunks[r]})),!a&&n||(i=n=1,n=this.getter(0).length,i=n,p("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=i,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var i={isDevice:!1,url:t},s=lr.createFile(r,e,i,n,o);i.contents?s.contents=i.contents:i.url&&(s.contents=null,s.url=i.url),Object.defineProperties(s,{usedBytes:{get:function(){return this.contents.length}}});var u={};function l(r,e,t,n,o){var a=r.node.contents;if(o>=a.length)return 0;var i=Math.min(a.length-o,n);if(a.slice)for(var s=0;s{var e=s.stream_ops[r];u[r]=function(){return lr.forceLoadFile(s),e.apply(null,arguments)}})),u.read=(r,e,t,n,o)=>(lr.forceLoadFile(s),l(r,e,t,n,o)),u.mmap=(r,e,t,n,o)=>{lr.forceLoadFile(s);var a=or();if(!a)throw new lr.ErrnoError(48);return l(r,y,a,e,t),{ptr:a,allocated:!0}},s.stream_ops=u,s}},dr=(r,e)=>r?Z(w,r,e):"",cr={DEFAULT_POLLMASK:5,calculateAt(r,e,t){if(X.isAbs(e))return e;var n;if(n=-100===r?lr.cwd():cr.getStreamFromFD(r).path,0==e.length){if(!t)throw new lr.ErrnoError(44);return n}return X.join2(n,e)},doStat(r,e,t){try{var n=r(e)}catch(r){if(r&&r.node&&X.normalize(e)!==X.normalize(lr.getPath(r.node)))return-54;throw r}_[t>>2]=n.dev,_[t+4>>2]=n.mode,b[t+8>>2]=n.nlink,_[t+12>>2]=n.uid,_[t+16>>2]=n.gid,_[t+20>>2]=n.rdev,L=[n.size>>>0,(N=n.size,+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],_[t+24>>2]=L[0],_[t+28>>2]=L[1],_[t+32>>2]=4096,_[t+36>>2]=n.blocks;var o=n.atime.getTime(),a=n.mtime.getTime(),i=n.ctime.getTime();return L=[Math.floor(o/1e3)>>>0,(N=Math.floor(o/1e3),+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],_[t+40>>2]=L[0],_[t+44>>2]=L[1],b[t+48>>2]=o%1e3*1e3,L=[Math.floor(a/1e3)>>>0,(N=Math.floor(a/1e3),+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],_[t+56>>2]=L[0],_[t+60>>2]=L[1],b[t+64>>2]=a%1e3*1e3,L=[Math.floor(i/1e3)>>>0,(N=Math.floor(i/1e3),+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],_[t+72>>2]=L[0],_[t+76>>2]=L[1],b[t+80>>2]=i%1e3*1e3,L=[n.ino>>>0,(N=n.ino,+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],_[t+88>>2]=L[0],_[t+92>>2]=L[1],0},doMsync(r,e,t,n,o){if(!lr.isFile(e.node.mode))throw new lr.ErrnoError(43);if(2&n)return 0;var a=w.slice(r,r+t);lr.msync(e,a,o,t,n)},varargs:void 0,get(){var r=_[+cr.varargs>>2];return cr.varargs+=4,r},getp:()=>cr.get(),getStr:r=>dr(r),getStreamFromFD:r=>lr.getStreamChecked(r)};var fr={},hr=r=>{for(;r.length;){var e=r.pop();r.pop()(e)}};function mr(r){return this.fromWireType(_[r>>2])}var pr,vr,yr,wr={},gr={},Er={},_r=r=>{throw new pr(r)},br=(r,e,t)=>{function n(e){var n=t(e);n.length!==r.length&&_r("Mismatched type converter count");for(var o=0;o{gr.hasOwnProperty(r)?o[e]=gr[r]:(a.push(r),wr.hasOwnProperty(r)||(wr[r]=[]),wr[r].push((()=>{o[e]=gr[r],++i===a.length&&n(o)})))})),0===a.length&&n(o)},kr=r=>{for(var e="",t=r;w[t];)e+=vr[w[t++]];return e},Fr=r=>{throw new yr(r)};function Ar(r,e,t={}){if(!("argPackAdvance"in e))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(r,e,t={}){var n=e.name;if(r||Fr(`type "${n}" must have a positive integer typeid pointer`),gr.hasOwnProperty(r)){if(t.ignoreDuplicateRegistrations)return;Fr(`Cannot register type '${n}' twice`)}if(gr[r]=e,delete Er[r],wr.hasOwnProperty(r)){var o=wr[r];delete wr[r],o.forEach((r=>r()))}}(r,e,t)}var Sr=8;function Dr(){this.allocated=[void 0],this.freelist=[]}var Pr=new Dr,Tr=r=>{r>=Pr.reserved&&0==--Pr.get(r).refcount&&Pr.free(r)},$r=()=>{for(var r=0,e=Pr.reserved;e(r||Fr("Cannot use deleted val. handle = "+r),Pr.get(r).value),Mr=r=>{switch(r){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Pr.allocate({refcount:1,value:r})}},jr=(r,e)=>{switch(e){case 4:return function(r){return this.fromWireType(k[r>>2])};case 8:return function(r){return this.fromWireType(F[r>>3])};default:throw new TypeError(`invalid float width (${e}): ${r}`)}},xr=r=>{if(void 0===r)return"_unknown";var e=(r=r.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return e>=48&&e<=57?`_${r}`:r};var Rr,Or=(r,e,t)=>{if(void 0===r[e].overloadTable){var n=r[e];r[e]=function(){return r[e].overloadTable.hasOwnProperty(arguments.length)||Fr(`Function '${t}' called with an invalid number of arguments (${arguments.length}) - expects one of (${r[e].overloadTable})!`),r[e].overloadTable[arguments.length].apply(this,arguments)},r[e].overloadTable=[],r[e].overloadTable[n.argCount]=n}},zr=(r,e,t)=>{n.hasOwnProperty(r)?((void 0===t||void 0!==n[r].overloadTable&&void 0!==n[r].overloadTable[t])&&Fr(`Cannot register public name '${r}' twice`),Or(n,r,r),n.hasOwnProperty(t)&&Fr(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),n[r].overloadTable[t]=e):(n[r]=e,void 0!==t&&(n[r].numArguments=t))},Wr=(r,e,t)=>{n.hasOwnProperty(r)||_r("Replacing nonexistant public symbol"),void 0!==n[r].overloadTable&&void 0!==t?n[r].overloadTable[t]=e:(n[r]=e,n[r].argCount=t)},Nr=[],Lr=r=>{var e=Nr[r];return e||(r>=Nr.length&&(Nr.length=r+1),Nr[r]=e=Rr.get(r)),e},Br=(r,e,t)=>r.includes("j")?((r,e,t)=>{var o=n["dynCall_"+r];return t&&t.length?o.apply(null,[e].concat(t)):o.call(null,e)})(r,e,t):Lr(e).apply(null,t),Ur=(r,e)=>{var t=(r=kr(r)).includes("j")?((r,e)=>{var t=[];return function(){return t.length=0,Object.assign(t,arguments),Br(r,e,t)}})(r,e):Lr(e);return"function"!=typeof t&&Fr(`unknown function pointer with signature ${r}: ${e}`),t};var Ir,Hr=r=>{var e=De(r),t=kr(e);return Fe(e),t},Yr=(r,e,t)=>{switch(e){case 1:return t?r=>y[r>>0]:r=>w[r>>0];case 2:return t?r=>g[r>>1]:r=>E[r>>1];case 4:return t?r=>_[r>>2]:r=>b[r>>2];default:throw new TypeError(`invalid integer width (${e}): ${r}`)}};function qr(r){return this.fromWireType(b[r>>2])}var Vr="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,Xr=(r,e)=>{for(var t=r,n=t>>1,o=n+e/2;!(n>=o)&&E[n];)++n;if((t=n<<1)-r>32&&Vr)return Vr.decode(w.subarray(r,t));for(var a="",i=0;!(i>=e/2);++i){var s=g[r+2*i>>1];if(0==s)break;a+=String.fromCharCode(s)}return a},Gr=(r,e,t)=>{if(void 0===t&&(t=2147483647),t<2)return 0;for(var n=e,o=(t-=2)<2*r.length?t/2:r.length,a=0;a>1]=i,e+=2}return g[e>>1]=0,e-n},Jr=r=>2*r.length,Kr=(r,e)=>{for(var t=0,n="";!(t>=e/4);){var o=_[r+4*t>>2];if(0==o)break;if(++t,o>=65536){var a=o-65536;n+=String.fromCharCode(55296|a>>10,56320|1023&a)}else n+=String.fromCharCode(o)}return n},Zr=(r,e,t)=>{if(void 0===t&&(t=2147483647),t<4)return 0;for(var n=e,o=n+t-4,a=0;a=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&r.charCodeAt(++a)),_[e>>2]=i,(e+=4)+4>o)break}return _[e>>2]=0,e-n},Qr=r=>{for(var e=0,t=0;t=55296&&n<=57343&&++t,e+=4}return e},re=(r,e)=>{var t=gr[r];return void 0===t&&Fr(e+" has unknown type "+Hr(r)),t},ee={},te=r=>{var e=ee[r];return void 0===e?kr(r):e},ne=[],oe=()=>{if("object"==typeof globalThis)return globalThis;function r(r){r.$$$embind_global$$$=r;var e="object"==typeof $$$embind_global$$$&&r.$$$embind_global$$$==r;return e||delete r.$$$embind_global$$$,e}if("object"==typeof $$$embind_global$$$)return $$$embind_global$$$;if("object"==typeof i.c&&r(i.c)?$$$embind_global$$$=i.c:"object"==typeof self&&r(self)&&($$$embind_global$$$=self),"object"==typeof $$$embind_global$$$)return $$$embind_global$$$;throw Error("unable to get global object.")},ae=r=>{var e=(r-m.buffer.byteLength+65535)/65536;try{return m.grow(e),D(),1}catch(r){}},ie={},se=()=>{if(!se.strings){var r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:l||"./this.program"};for(var e in ie)void 0===ie[e]?delete r[e]:r[e]=ie[e];var t=[];for(var e in r)t.push(`${e}=${r[e]}`);se.strings=t}return se.strings},ue=r=>{q||(n.onExit&&n.onExit(r),A=!0),d(r,new H(r))};var le,de=r=>r%4==0&&(r%100!=0||r%400==0),ce=[31,29,31,30,31,30,31,31,30,31,30,31],fe=[31,28,31,30,31,30,31,31,30,31,30,31],he=(r,e,t,n)=>{var o=b[n+40>>2],a={tm_sec:_[n>>2],tm_min:_[n+4>>2],tm_hour:_[n+8>>2],tm_mday:_[n+12>>2],tm_mon:_[n+16>>2],tm_year:_[n+20>>2],tm_wday:_[n+24>>2],tm_yday:_[n+28>>2],tm_isdst:_[n+32>>2],tm_gmtoff:_[n+36>>2],tm_zone:o?dr(o):""},i=dr(t),s={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var u in s)i=i.replace(new RegExp(u,"g"),s[u]);var l=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],d=["January","February","March","April","May","June","July","August","September","October","November","December"];function c(r,e,t){for(var n="number"==typeof r?r.toString():r||"";n.length0?1:0}var n;return 0===(n=t(r.getFullYear()-e.getFullYear()))&&0===(n=t(r.getMonth()-e.getMonth()))&&(n=t(r.getDate()-e.getDate())),n}function m(r){switch(r.getDay()){case 0:return new Date(r.getFullYear()-1,11,29);case 1:return r;case 2:return new Date(r.getFullYear(),0,3);case 3:return new Date(r.getFullYear(),0,2);case 4:return new Date(r.getFullYear(),0,1);case 5:return new Date(r.getFullYear()-1,11,31);case 6:return new Date(r.getFullYear()-1,11,30)}}function p(r){var e=((r,e)=>{for(var t=new Date(r.getTime());e>0;){var n=de(t.getFullYear()),o=t.getMonth(),a=(n?ce:fe)[o];if(!(e>a-t.getDate()))return t.setDate(t.getDate()+e),t;e-=a-t.getDate()+1,t.setDate(1),o<11?t.setMonth(o+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return t})(new Date(r.tm_year+1900,0,1),r.tm_yday),t=new Date(e.getFullYear(),0,4),n=new Date(e.getFullYear()+1,0,4),o=m(t),a=m(n);return h(o,e)<=0?h(a,e)<=0?e.getFullYear()+1:e.getFullYear():e.getFullYear()-1}var v={"%a":r=>l[r.tm_wday].substring(0,3),"%A":r=>l[r.tm_wday],"%b":r=>d[r.tm_mon].substring(0,3),"%B":r=>d[r.tm_mon],"%C":r=>f((r.tm_year+1900)/100|0,2),"%d":r=>f(r.tm_mday,2),"%e":r=>c(r.tm_mday,2," "),"%g":r=>p(r).toString().substring(2),"%G":r=>p(r),"%H":r=>f(r.tm_hour,2),"%I":r=>{var e=r.tm_hour;return 0==e?e=12:e>12&&(e-=12),f(e,2)},"%j":r=>f(r.tm_mday+((r,e)=>{for(var t=0,n=0;n<=e;t+=r[n++]);return t})(de(r.tm_year+1900)?ce:fe,r.tm_mon-1),3),"%m":r=>f(r.tm_mon+1,2),"%M":r=>f(r.tm_min,2),"%n":()=>"\n","%p":r=>r.tm_hour>=0&&r.tm_hour<12?"AM":"PM","%S":r=>f(r.tm_sec,2),"%t":()=>"\t","%u":r=>r.tm_wday||7,"%U":r=>{var e=r.tm_yday+7-r.tm_wday;return f(Math.floor(e/7),2)},"%V":r=>{var e=Math.floor((r.tm_yday+7-(r.tm_wday+6)%7)/7);if((r.tm_wday+371-r.tm_yday-2)%7<=2&&e++,e){if(53==e){var t=(r.tm_wday+371-r.tm_yday)%7;4==t||3==t&&de(r.tm_year)||(e=1)}}else{e=52;var n=(r.tm_wday+7-r.tm_yday-1)%7;(4==n||5==n&&de(r.tm_year%400-1))&&e++}return f(e,2)},"%w":r=>r.tm_wday,"%W":r=>{var e=r.tm_yday+7-(r.tm_wday+6)%7;return f(Math.floor(e/7),2)},"%y":r=>(r.tm_year+1900).toString().substring(2),"%Y":r=>r.tm_year+1900,"%z":r=>{var e=r.tm_gmtoff,t=e>=0;return e=(e=Math.abs(e)/60)/60*100+e%60,(t?"+":"-")+String("0000"+e).slice(-4)},"%Z":r=>r.tm_zone,"%%":()=>"%"};for(var u in i=i.replace(/%%/g,"\0\0"),v)i.includes(u)&&(i=i.replace(new RegExp(u,"g"),v[u](a)));var w=tr(i=i.replace(/\0\0/g,"%"),!1);return w.length>e?0:(((r,e)=>{y.set(r,e)})(w,r),w.length-1)},me=(r,e)=>{r<128?e.push(r):e.push(r%128|128,r>>7)},pe=(r,e)=>{if("function"==typeof WebAssembly.Function)return new WebAssembly.Function((r=>{for(var e={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},t={parameters:[],results:"v"==r[0]?[]:[e[r[0]]]},n=1;n{var t=r.slice(0,1),n=r.slice(1),o={i:127,p:127,j:126,f:125,d:124,e:111};e.push(96),me(n.length,e);for(var a=0;a(le||(le=new WeakMap,((r,e)=>{if(le)for(var t=r;t{Rr.set(r,e),Nr[r]=Rr.get(r)},ge=function(r,e,t,n){r||(r=this),this.parent=r,this.mount=r.mount,this.mounted=null,this.id=lr.nextInode++,this.name=e,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n},Ee=365,_e=146;Object.defineProperties(ge.prototype,{read:{get:function(){return(this.mode&Ee)===Ee},set:function(r){r?this.mode|=Ee:this.mode&=~Ee}},write:{get:function(){return(this.mode&_e)===_e},set:function(r){r?this.mode|=_e:this.mode&=~_e}},isFolder:{get:function(){return lr.isDir(this.mode)}},isDevice:{get:function(){return lr.isChrdev(this.mode)}}}),lr.FSNode=ge,lr.createPreloadedFile=(r,e,t,n,o,a,i,s,u,l)=>{var d=e?J.resolve(X.join2(r,e)):r;function c(t){function c(t){l&&l(),s||((r,e,t,n,o,a)=>{lr.createDataFile(r,e,t,n,o,a)})(r,e,t,n,o,u),a&&a(),O()}((r,e,t,n)=>{"undefined"!=typeof Browser&&Browser.init();var o=!1;return sr.forEach((a=>{o||a.canHandle(e)&&(a.handle(r,e,t,n),o=!0)})),o})(t,d,c,(()=>{i&&i(),O()}))||c(t)}R(),"string"==typeof t?ir(t,(r=>c(r)),i):c(t)},lr.staticInit(),n.FS_createPath=lr.createPath,n.FS_createDataFile=lr.createDataFile,n.FS_createPreloadedFile=lr.createPreloadedFile,n.FS_unlink=lr.unlink,n.FS_createLazyFile=lr.createLazyFile,n.FS_createDevice=lr.createDevice,pr=n.InternalError=class extends Error{constructor(r){super(r),this.name="InternalError"}},(()=>{for(var r=new Array(256),e=0;e<256;++e)r[e]=String.fromCharCode(e);vr=r})(),yr=n.BindingError=class extends Error{constructor(r){super(r),this.name="BindingError"}},Object.assign(Dr.prototype,{get(r){return this.allocated[r]},has(r){return void 0!==this.allocated[r]},allocate(r){var e=this.freelist.pop()||this.allocated.length;return this.allocated[e]=r,e},free(r){this.allocated[r]=void 0,this.freelist.push(r)}}),Pr.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Pr.reserved=Pr.allocated.length,n.count_emval_handles=$r,Ir=n.UnboundTypeError=((r,e)=>{var t=function(r,e){return{[r=xr(r)]:function(){return e.apply(this,arguments)}}[r]}(e,(function(r){this.name=e,this.message=r;var t=new Error(r).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return t.prototype=Object.create(r.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},t})(Error,"UnboundTypeError");var be={m:(r,e,t)=>{throw new V(r).init(e,t),r},x:function(r,e,t){cr.varargs=t;try{var n=cr.getStreamFromFD(r);switch(e){case 0:if((o=cr.get())<0)return-28;for(;lr.streams[o];)o++;return lr.createStream(n,o).fd;case 1:case 2:case 6:case 7:return 0;case 3:return n.flags;case 4:var o=cr.get();return n.flags|=o,0;case 5:return o=cr.getp(),g[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return(r=>{_[Se()>>2]=r})(28),-1}}catch(r){if(void 0===lr||"ErrnoError"!==r.name)throw r;return-r.errno}},N:function(r,e,t){cr.varargs=t;try{var n=cr.getStreamFromFD(r);switch(e){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return n.tty?0:-59;case 21505:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcgets){var o=n.tty.ops.ioctl_tcgets(n),a=cr.getp();_[a>>2]=o.c_iflag||0,_[a+4>>2]=o.c_oflag||0,_[a+8>>2]=o.c_cflag||0,_[a+12>>2]=o.c_lflag||0;for(var i=0;i<32;i++)y[a+i+17>>0]=o.c_cc[i]||0;return 0}return 0;case 21506:case 21507:case 21508:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcsets){a=cr.getp();var s=_[a>>2],u=_[a+4>>2],l=_[a+8>>2],d=_[a+12>>2],c=[];for(i=0;i<32;i++)c.push(y[a+i+17>>0]);return n.tty.ops.ioctl_tcsets(n.tty,e,{c_iflag:s,c_oflag:u,c_cflag:l,c_lflag:d,c_cc:c})}return 0;case 21519:return n.tty?(a=cr.getp(),_[a>>2]=0,0):-59;case 21520:return n.tty?-28:-59;case 21531:return a=cr.getp(),lr.ioctl(n,e,a);case 21523:if(!n.tty)return-59;if(n.tty.ops.ioctl_tiocgwinsz){var f=n.tty.ops.ioctl_tiocgwinsz(n.tty);a=cr.getp(),g[a>>1]=f[0],g[a+2>>1]=f[1]}return 0;default:return-28}}catch(r){if(void 0===lr||"ErrnoError"!==r.name)throw r;return-r.errno}},O:function(r,e,t,n){cr.varargs=n;try{e=cr.getStr(e),e=cr.calculateAt(r,e);var o=n?cr.get():0;return lr.open(e,t,o).fd}catch(r){if(void 0===lr||"ErrnoError"!==r.name)throw r;return-r.errno}},V:r=>{var e=fr[r];delete fr[r];var t=e.rawConstructor,n=e.rawDestructor,o=e.fields,a=o.map((r=>r.getterReturnType)).concat(o.map((r=>r.setterArgumentType)));br([r],a,(r=>{var a={};return o.forEach(((e,t)=>{var n=e.fieldName,i=r[t],s=e.getter,u=e.getterContext,l=r[t+o.length],d=e.setter,c=e.setterContext;a[n]={read:r=>i.fromWireType(s(u,r)),write:(r,e)=>{var t=[];d(c,r,l.toWireType(t,e)),hr(t)}}})),[{name:e.name,fromWireType:r=>{var e={};for(var t in a)e[t]=a[t].read(r);return n(r),e},toWireType:(r,e)=>{for(var o in a)if(!(o in e))throw new TypeError(`Missing field: "${o}"`);var i=t();for(o in a)a[o].write(i,e[o]);return null!==r&&r.push(n,i),i},argPackAdvance:Sr,readValueFromPointer:mr,destructorFunction:n}]}))},G:(r,e,t,n,o)=>{},R:(r,e,t,n)=>{Ar(r,{name:e=kr(e),fromWireType:function(r){return!!r},toWireType:function(r,e){return e?t:n},argPackAdvance:Sr,readValueFromPointer:function(r){return this.fromWireType(w[r])},destructorFunction:null})},Q:(r,e)=>{Ar(r,{name:e=kr(e),fromWireType:r=>{var e=Cr(r);return Tr(r),e},toWireType:(r,e)=>Mr(e),argPackAdvance:Sr,readValueFromPointer:mr,destructorFunction:null})},z:(r,e,t)=>{Ar(r,{name:e=kr(e),fromWireType:r=>r,toWireType:(r,e)=>e,argPackAdvance:Sr,readValueFromPointer:jr(e,t),destructorFunction:null})},r:(r,e,t,n,o,a,i)=>{var s=((r,e)=>{for(var t=[],n=0;n>2]);return t})(e,t);r=(r=>{const e=(r=r.trim()).indexOf("(");return-1!==e?(S(")"==r[r.length-1],"Parentheses for argument names should match."),r.substr(0,e)):r})(r=kr(r)),o=Ur(n,o),zr(r,(function(){((r,e)=>{var t=[],n={};throw e.forEach((function r(e){n[e]||gr[e]||(Er[e]?Er[e].forEach(r):(t.push(e),n[e]=!0))})),new Ir(`${r}: `+t.map(Hr).join([", "]))})(`Cannot call ${r} due to unbound types`,s)}),e-1),br([],s,(function(t){var n=[t[0],null].concat(t.slice(1));return Wr(r,function(r,e,t,n,o,a){var i=e.length;i<2&&Fr("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var s=null!==e[1]&&null!==t,u=!1,l=1;l{e=kr(e);var a=r=>r;if(0===n){var i=32-8*t;a=r=>r<>>i}var s=e.includes("unsigned");Ar(r,{name:e,fromWireType:a,toWireType:s?function(r,e){return this.name,e>>>0}:function(r,e){return this.name,e},argPackAdvance:Sr,readValueFromPointer:Yr(e,t,0!==n),destructorFunction:null})},b:(r,e,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];function o(r){var e=b[r>>2],t=b[r+4>>2];return new n(y.buffer,t,e)}Ar(r,{name:t=kr(t),fromWireType:o,argPackAdvance:Sr,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},y:(r,e)=>{var t="std::string"===(e=kr(e));Ar(r,{name:e,fromWireType(r){var e,n=b[r>>2],o=r+4;if(t)for(var a=o,i=0;i<=n;++i){var s=o+i;if(i==n||0==w[s]){var u=dr(a,s-a);void 0===e?e=u:(e+=String.fromCharCode(0),e+=u),a=s+1}}else{var l=new Array(n);for(i=0;i>2]=n,t&&o)((r,e,t)=>{er(r,w,e,t)})(e,i,n+1);else if(o)for(var s=0;s255&&(Fe(i),Fr("String has UTF-16 code units that do not fit in 8 bits")),w[i+s]=u}else for(s=0;s{var n,o,a,i,s;t=kr(t),2===e?(n=Xr,o=Gr,i=Jr,a=()=>E,s=1):4===e&&(n=Kr,o=Zr,i=Qr,a=()=>b,s=2),Ar(r,{name:t,fromWireType:r=>{for(var t,o=b[r>>2],i=a(),u=r+4,l=0;l<=o;++l){var d=r+4+l*e;if(l==o||0==i[d>>s]){var c=n(u,d-u);void 0===t?t=c:(t+=String.fromCharCode(0),t+=c),u=d+e}}return Fe(r),t},toWireType:(r,n)=>{"string"!=typeof n&&Fr(`Cannot pass non-string to C++ string type ${t}`);var a=i(n),u=Ae(4+a+e);return b[u>>2]=a>>s,o(n,u+4,a+e),null!==r&&r.push(Fe,u),u},argPackAdvance:Sr,readValueFromPointer:mr,destructorFunction(r){Fe(r)}})},W:(r,e,t,n,o,a)=>{fr[r]={name:kr(e),rawConstructor:Ur(t,n),rawDestructor:Ur(o,a),fields:[]}},j:(r,e,t,n,o,a,i,s,u,l)=>{fr[r].fields.push({fieldName:kr(e),getterReturnType:t,getter:Ur(n,o),getterContext:a,setterArgumentType:i,setter:Ur(s,u),setterContext:l})},S:(r,e)=>{Ar(r,{isVoid:!0,name:e=kr(e),argPackAdvance:0,fromWireType:()=>{},toWireType:(r,e)=>{}})},U:r=>{do{var e=b[r>>2],t=b[(r+=4)>>2],n=b[(r+=4)>>2];r+=4;var o=dr(e);lr.createPath("/",X.dirname(o),!0,!0),lr.createDataFile(o,null,y.subarray(n,n+t),!0,!0,!0)}while(b[r>>2])},I:()=>{throw 1/0},Y:(r,e,t)=>{r=Cr(r),e=re(e,"emval::as");var n=[],o=Mr(n);return b[t>>2]=o,e.toWireType(n,r)},A:(r,e,t,n,o)=>{var a=[],i=(r=ne[r])(e=Cr(e),t=te(t),a,o);return a.length&&(b[n>>2]=Mr(a)),i},a:Tr,Z:r=>0===r?Mr(oe()):(r=te(r),Mr(oe()[r])),B:(r,e)=>{var t=((r,e)=>{for(var t=new Array(r),n=0;n>2],"parameter "+n);return t})(r,e),n=t.shift();r--;var o=new Array(r);return(r=>{var e=ne.length;return ne.push(r),e})(((e,a,i,s)=>{for(var u=0,l=0;l(r=Cr(r),e=Cr(e),Mr(r[e])),g:r=>{r>4&&(Pr.get(r).refcount+=1)},C:()=>Mr([]),h:r=>Mr(te(r)),s:r=>{var e=Cr(r);hr(e),Tr(r)},X:(r,e,t)=>{r=Cr(r),e=Cr(e),t=Cr(t),r[e]=t},k:(r,e)=>{var t=(r=re(r,"_emval_take_value")).readValueFromPointer(e);return Mr(t)},q:()=>{z("")},P:(r,e,t)=>w.copyWithin(r,e,e+t),J:r=>{var e=w.length,t=2147483648;if((r>>>=0)>t)return!1;for(var n=(r,e)=>r+(e-r%e)%e,o=1;o<=4;o*=2){var a=e*(1+.2/o);a=Math.min(a,r+100663296);var i=Math.min(t,n(Math.max(r,a),65536));if(ae(i))return!0}return!1},K:(r,e)=>{var t=0;return se().forEach(((n,o)=>{var a=e+t;b[r+4*o>>2]=a,((r,e)=>{for(var t=0;t>0]=r.charCodeAt(t);y[e>>0]=0})(n,a),t+=n.length+1})),0},L:(r,e)=>{var t=se();b[r>>2]=t.length;var n=0;return t.forEach((r=>n+=r.length+1)),b[e>>2]=n,0},T:(r,e)=>{ue(r)},v:function(r){try{var e=cr.getStreamFromFD(r);return lr.close(e),0}catch(r){if(void 0===lr||"ErrnoError"!==r.name)throw r;return r.errno}},M:function(r,e,t,n){try{var o=((r,e,t,n)=>{for(var o=0,a=0;a>2],s=b[e+4>>2];e+=8;var u=lr.read(r,y,i,s,n);if(u<0)return-1;if(o+=u,u>2]=o,0}catch(r){if(void 0===lr||"ErrnoError"!==r.name)throw r;return r.errno}},F:function(r,e,t,n,o){var a=((r,e)=>e+2097152>>>0<4194305-!!r?(r>>>0)+4294967296*e:NaN)(e,t);try{if(isNaN(a))return 61;var i=cr.getStreamFromFD(r);return lr.llseek(i,a,n),L=[i.position>>>0,(N=i.position,+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],_[o>>2]=L[0],_[o+4>>2]=L[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0}catch(r){if(void 0===lr||"ErrnoError"!==r.name)throw r;return r.errno}},w:function(r,e,t,n){try{var o=((r,e,t,n)=>{for(var o=0,a=0;a>2],s=b[e+4>>2];e+=8;var u=lr.write(r,y,i,s,n);if(u<0)return-1;o+=u,void 0!==n&&(n+=u)}return o})(cr.getStreamFromFD(r),e,t);return b[n>>2]=o,0}catch(r){if(void 0===lr||"ErrnoError"!==r.name)throw r;return r.errno}},n:function(r,e){var t=$e();try{return Lr(r)(e)}catch(r){if(Ce(t),r!==r+0)throw r;Te(1,0)}},i:function(r,e,t){var n=$e();try{return Lr(r)(e,t)}catch(r){if(Ce(n),r!==r+0)throw r;Te(1,0)}},o:function(r,e,t,n){var o=$e();try{return Lr(r)(e,t,n)}catch(r){if(Ce(o),r!==r+0)throw r;Te(1,0)}},t:function(r,e,t,n,o){var a=$e();try{return Lr(r)(e,t,n,o)}catch(r){if(Ce(a),r!==r+0)throw r;Te(1,0)}},E:function(r,e,t,n,o,a,i,s,u,l){var d=$e();try{return Lr(r)(e,t,n,o,a,i,s,u,l)}catch(r){if(Ce(d),r!==r+0)throw r;Te(1,0)}},u:function(r){var e=$e();try{Lr(r)()}catch(r){if(Ce(e),r!==r+0)throw r;Te(1,0)}},c:function(r,e){var t=$e();try{Lr(r)(e)}catch(r){if(Ce(t),r!==r+0)throw r;Te(1,0)}},D:function(r,e,t,n){var o=$e();try{Lr(r)(e,t,n)}catch(r){if(Ce(o),r!==r+0)throw r;Te(1,0)}},e:function(r,e,t){var n=$e();try{Lr(r)(e,t)}catch(r){if(Ce(n),r!==r+0)throw r;Te(1,0)}},f:function(r,e,t,n){var o=$e();try{Lr(r)(e,t,n)}catch(r){if(Ce(o),r!==r+0)throw r;Te(1,0)}},H:(r,e,t,n,o)=>he(r,e,t,n)},ke=function(){var r={a:be};function e(r,e){return ke=r.exports,m=ke._,D(),Rr=ke.aa,function(r){T.unshift(r)}(ke.$),O(),ke}if(R(),n.instantiateWasm)try{return n.instantiateWasm(r,e)}catch(r){v(`Module.instantiateWasm callback failed with error: ${r}`),t(r)}return function(r,e,t,n){return r||"function"!=typeof WebAssembly.instantiateStreaming||B(e)||"function"!=typeof fetch?I(e,t,n):fetch(e,{credentials:"same-origin"}).then((r=>WebAssembly.instantiateStreaming(r,t).then(n,(function(r){return v(`wasm streaming compile failed: ${r}`),v("falling back to ArrayBuffer instantiation"),I(e,t,n)}))))}(h,W,r,(function(r){e(r.instance)})).catch(t),{}}(),Fe=n._free=r=>(Fe=n._free=ke.ba)(r),Ae=n._malloc=r=>(Ae=n._malloc=ke.ca)(r),Se=()=>(Se=ke.da)(),De=r=>(De=ke.ea)(r);n.__embind_initialize_bindings=()=>(n.__embind_initialize_bindings=ke.fa)();var Pe,Te=(r,e)=>(Te=ke.ga)(r,e),$e=()=>($e=ke.ha)(),Ce=r=>(Ce=ke.ia)(r),Me=r=>(Me=ke.ja)(r);function je(){function r(){Pe||(Pe=!0,n.calledRun=!0,A||(n.noFSInit||lr.init.initialized||lr.init(),lr.ignorePermissions=!1,Y(T),e(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),function(){if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)M(n.postRun.shift());Y($)}()))}j>0||(function(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)C(n.preRun.shift());Y(P)}(),j>0||(n.setStatus?(n.setStatus("Running..."),setTimeout((function(){setTimeout((function(){n.setStatus("")}),1),r()}),1)):r()))}if(n.dynCall_viji=(r,e,t,o,a)=>(n.dynCall_viji=ke.ka)(r,e,t,o,a),n.dynCall_ji=(r,e)=>(n.dynCall_ji=ke.la)(r,e),n.dynCall_jiji=(r,e,t,o,a)=>(n.dynCall_jiji=ke.ma)(r,e,t,o,a),n.dynCall_viijii=(r,e,t,o,a,i,s)=>(n.dynCall_viijii=ke.na)(r,e,t,o,a,i,s),n.dynCall_iiiiij=(r,e,t,o,a,i,s)=>(n.dynCall_iiiiij=ke.oa)(r,e,t,o,a,i,s),n.dynCall_iiiiijj=(r,e,t,o,a,i,s,u,l)=>(n.dynCall_iiiiijj=ke.pa)(r,e,t,o,a,i,s,u,l),n.dynCall_iiiiiijj=(r,e,t,o,a,i,s,u,l,d)=>(n.dynCall_iiiiiijj=ke.qa)(r,e,t,o,a,i,s,u,l,d),n.___emscripten_embedded_file_data=1273112,n.addRunDependency=R,n.removeRunDependency=O,n.FS_createPath=lr.createPath,n.FS_createLazyFile=lr.createLazyFile,n.FS_createDevice=lr.createDevice,n.addFunction=(r,e)=>{var t=ve(r);if(t)return t;var n=(()=>{if(ye.length)return ye.pop();try{Rr.grow(1)}catch(r){if(!(r instanceof RangeError))throw r;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return Rr.length-1})();try{we(n,r)}catch(t){if(!(t instanceof TypeError))throw t;var o=pe(r,e);we(n,o)}return le.set(r,n),n},n.UTF8ToString=dr,n.FS_createPreloadedFile=lr.createPreloadedFile,n.FS_createDataFile=lr.createDataFile,n.FS_unlink=lr.unlink,x=function r(){Pe||je(),Pe||(x=r)},n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return je(),r.ready},n.exports=a;const u=(0,i.g)(s.exports),l=Object.freeze(Object.defineProperty({__proto__:null,default:u},Symbol.toStringTag,{value:"Module"}))}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8298.8ed0085c3e6db4d05ade.js b/docs/sentinel1-explorer/8298.8ed0085c3e6db4d05ade.js new file mode 100644 index 00000000..258866ef --- /dev/null +++ b/docs/sentinel1-explorer/8298.8ed0085c3e6db4d05ade.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8298],{50516:function(e,t,r){r.d(t,{D:function(){return n}});var a=r(71760);function n(e){e?.writtenProperties&&e.writtenProperties.forEach((({target:e,propName:t,newOrigin:r})=>{(0,a.l)(e)&&r&&e.originOf(t)!==r&&e.updateOrigin(t,r)}))}},71760:function(e,t,r){function a(e){return e&&"getAtOrigin"in e&&"originOf"in e}r.d(t,{l:function(){return a}})},38298:function(e,t,r){r.d(t,{save:function(){return y},saveAs:function(){return m}});var a=r(21011),n=r(31370);const i="Image Service",o="imagery-layer-save",s="imagery-layer-save-as",u="imagery-tile-layer-save",l="imagery-tile-layer-save-as";function c(e){if("imagery"===e.type)return{isValid:!0};const{raster:t}=e,r="Function"===t?.datasetFormat?t.primaryRasters?.rasters[0]:t;return{isValid:"RasterTileServer"===r?.datasetFormat&&("Raster"===r.tileType||"Map"===r.tileType),errorMessage:"imagery tile layer should be created from a tiled image service."}}function p(e){const t=e.layerJSON;return Promise.resolve(t&&Object.keys(t).length?t:null)}async function f(e,t){const{parsedUrl:r,title:a,fullExtent:i}=e;t.url=r.path,t.title||=a;try{t.extent=await(0,n.$o)(i)}catch{t.extent=void 0}(0,n.ck)(t,n.hz.METADATA),"imagery-tile"===e.type&&(0,n.qj)(t,n.hz.TILED_IMAGERY)}async function y(e,t){const r="imagery"===e.type?o:u;return(0,a.a1)({layer:e,itemType:i,validateLayer:c,createItemData:p,errorNamePrefix:r},t)}async function m(e,t,r){const n="imagery"===e.type?s:l;return(0,a.po)({layer:e,itemType:i,validateLayer:c,createItemData:p,errorNamePrefix:n,newItem:t,setItemProperties:f},r)}},21011:function(e,t,r){r.d(t,{DC:function(){return p},Nw:function(){return v},UY:function(){return h},V3:function(){return g},Ym:function(){return d},a1:function(){return x},jX:function(){return I},po:function(){return N},uT:function(){return w},xG:function(){return y}});var a=r(70375),n=r(50516),i=r(93968),o=r(53110),s=r(84513),u=r(31370),l=r(76990),c=r(60629);function p(e,t,r){const n=r(e);if(!n.isValid)throw new a.Z(`${t}:invalid-parameters`,n.errorMessage,{layer:e})}async function f(e){const{layer:t,errorNamePrefix:r,validateLayer:a}=e;await t.load(),p(t,r,a)}function y(e,t){return`Layer (title: ${e.title}, id: ${e.id}) of type '${e.declaredClass}' ${t}`}function m(e){const{item:t,errorNamePrefix:r,layer:n,validateItem:i}=e;if((0,l.w)(t),function(e){const{item:t,itemType:r,additionalItemType:n,errorNamePrefix:i,layer:o}=e,s=[r];if(n&&s.push(n),!s.includes(t.type)){const e=s.map((e=>`'${e}'`)).join(", ");throw new a.Z(`${i}:portal-item-wrong-type`,`Portal item type should be one of: "${e}"`,{item:t,layer:o})}}(e),i){const e=i(t);if(!e.isValid)throw new a.Z(`${r}:invalid-parameters`,e.errorMessage,{layer:n})}}function d(e){const{layer:t,errorNamePrefix:r}=e,{portalItem:n}=t;if(!n)throw new a.Z(`${r}:portal-item-not-set`,y(t,"requires the portalItem property to be set"));if(!n.loaded)throw new a.Z(`${r}:portal-item-not-loaded`,y(t,"cannot be saved to a portal item that does not exist or is inaccessible"));m({...e,item:n})}function w(e){const{newItem:t,itemType:r}=e;let a=o.default.from(t);return a.id&&(a=a.clone(),a.id=null),a.type??=r,a.portal??=i.Z.getDefault(),m({...e,item:a}),a}function g(e){return(0,s.Y)(e,"portal-item")}async function v(e,t,r){"beforeSave"in e&&"function"==typeof e.beforeSave&&await e.beforeSave();const a=e.write({},t);return await Promise.all(t.resources?.pendingOperations??[]),(0,c.z)(t,{errorName:"layer-write:unsupported"},r),a}function h(e){(0,u.qj)(e,u.hz.JSAPI),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}async function I(e,t,r){const a=e.portal;await a.signIn(),await(a.user?.addItem({item:e,data:t,folder:r?.folder}))}async function x(e,t){const{layer:r,createItemData:a,createJSONContext:i,saveResources:o,supplementalUnsupportedErrors:s}=e;await f(e),d(e);const u=r.portalItem,l=i?i(u):g(u),c=await v(r,l,{...t,supplementalUnsupportedErrors:s}),p=await a({layer:r,layerJSON:c},u);return h(u),await u.update({data:p}),(0,n.D)(l),await(o?.(u,l)),u}async function N(e,t){const{layer:r,createItemData:a,createJSONContext:i,setItemProperties:o,saveResources:s,supplementalUnsupportedErrors:u}=e;await f(e);const l=w(e),c=i?i(l):g(l),p=await v(r,c,{...t,supplementalUnsupportedErrors:u}),y=await a({layer:r,layerJSON:p},l);return await o(r,l),h(l),await I(l,y,t),r.portalItem=l,(0,n.D)(c),await(s?.(l,c)),l}},76990:function(e,t,r){r.d(t,{w:function(){return o}});var a=r(51366),n=r(70375),i=r(99522);function o(e){if(a.default.apiKey&&(0,i.r)(e.portal.url))throw new n.Z("save-api-key-utils:api-key-not-supported",`Saving is not supported on ${e.portal.url} when using an api key`)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8385.85e977bc875eed101a18.js b/docs/sentinel1-explorer/8385.85e977bc875eed101a18.js new file mode 100644 index 00000000..3f941ed3 --- /dev/null +++ b/docs/sentinel1-explorer/8385.85e977bc875eed101a18.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8385],{28385:function(e,_,a){a.r(_),a.d(_,{default:function(){return r}});const r={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:"%",_percentSuffix:null,_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"MS",_era_bc:"MÖ",A:"öö",P:"ös",AM:"ÖÖ",PM:"ÖS","A.M.":"ÖÖ","P.M.":"ÖS",January:"Ocak",February:"Şubat",March:"Mart",April:"Nisan",May:"Mayıs",June:"Haziran",July:"Temmuz",August:"Ağustos",September:"Eylül",October:"Ekim",November:"Kasım",December:"Aralık",Jan:"Oca",Feb:"Şub",Mar:"Mar",Apr:"Nis","May(short)":"May",Jun:"Haz",Jul:"Tem",Aug:"Ağu",Sep:"Eyl",Oct:"Eki",Nov:"Kas",Dec:"Ara",Sunday:"Pazar",Monday:"Pazartesi",Tuesday:"Salı",Wednesday:"Çarşamba",Thursday:"Perşembe",Friday:"Cuma",Saturday:"Cumartesi",Sun:"Paz",Mon:"Pzt",Tue:"Sal",Wed:"Çar",Thu:"Per",Fri:"Cum",Sat:"Cmt",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Yakınlaştır",Play:"Oynat",Stop:"Durdur",Legend:"Gösterge","Press ENTER to toggle":"",Loading:"Yükleniyor",Home:"Giriş Sayfası",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Yazdır",Image:"Görüntü",Data:"Veri",Print:"Yazdır","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Kaynak %1 hedef %2","From %1":"Kaynak %1","To %1":"Hedef %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8414.c899e5c93fd1da51b195.js b/docs/sentinel1-explorer/8414.c899e5c93fd1da51b195.js new file mode 100644 index 00000000..c7ed8ed2 --- /dev/null +++ b/docs/sentinel1-explorer/8414.c899e5c93fd1da51b195.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8414],{78414:function(e,t,r){r.r(t),r.d(t,{default:function(){return H}});var o=r(36663),l=(r(91957),r(80085)),i=(r(4905),r(6865)),n=r(70375),a=r(67134),s=r(15842),y=r(86745),p=r(96863),u=r(81977),d=(r(39994),r(13802),r(34248)),c=r(40266),f=r(39835),m=r(28105),b=r(24568),g=r(29927),h=r(35925),S=r(12926),O=r(45857),C=r(38481),_=r(93711),w=r(27668),N=r(43330),L=r(18241),J=r(95874),v=r(12512),x=r(43411),T=r(15498),M=r(1759),I=r(27624),j=r(14685),Z=r(91772);function R(e){return"markup"===e.featureCollectionType||e.layers.some((e=>null!=e.layerDefinition.visibilityField||!E(e)))}function E({layerDefinition:e,featureSet:t}){const r=e.geometryType??t.geometryType;return B.find((t=>r===t.geometryTypeJSON&&e.drawingInfo?.renderer?.symbol?.type===t.identifyingSymbol.type))}function D(){return new Z.Z({xmin:-180,ymin:-90,xmax:180,ymax:90})}const G=new v.Z({name:"OBJECTID",alias:"OBJECTID",type:"oid",nullable:!1,editable:!1}),P=new v.Z({name:"title",alias:"Title",type:"string",nullable:!0,editable:!0,length:255});let F=class extends O.Z{constructor(e){super(e),this.visibilityMode="inherited"}initialize(){for(const e of this.graphics)e.sourceLayer=this.layer;this.graphics.on("after-add",(e=>{e.item.sourceLayer=this.layer})),this.graphics.on("after-remove",(e=>{e.item.sourceLayer=null}))}get fullExtent(){const e=this.layer?.spatialReference,t=this.fullBounds;return e?null==t?(0,m.projectOrLoad)(D(),e).geometry:(0,b.HH)(t,e):null}get fullBounds(){const e=this.layer?.spatialReference;if(!e)return null;const t=(0,b.cS)();return this.graphics.forEach((r=>{const o=null!=r.geometry?(0,m.projectOrLoad)(r.geometry,e).geometry:null;null!=o&&(0,b.jn)(t,"point"===o.type?o:o.extent,t)})),(0,b.fS)(t,b.G_)?null:t}get sublayers(){return this.graphics}};(0,o._)([(0,u.Cb)({readOnly:!0})],F.prototype,"fullExtent",null),(0,o._)([(0,u.Cb)({readOnly:!0})],F.prototype,"fullBounds",null),(0,o._)([(0,u.Cb)({readOnly:!0})],F.prototype,"sublayers",null),(0,o._)([(0,u.Cb)()],F.prototype,"layer",void 0),(0,o._)([(0,u.Cb)()],F.prototype,"layerId",void 0),(0,o._)([(0,u.Cb)({readOnly:!0})],F.prototype,"visibilityMode",void 0),F=(0,o._)([(0,c.j)("esri.layers.MapNotesLayer.MapNotesSublayer")],F);const B=[{geometryType:"polygon",geometryTypeJSON:"esriGeometryPolygon",id:"polygonLayer",layerId:0,title:"Polygons",identifyingSymbol:(new x.Z).toJSON()},{geometryType:"polyline",geometryTypeJSON:"esriGeometryPolyline",id:"polylineLayer",layerId:1,title:"Polylines",identifyingSymbol:(new T.Z).toJSON()},{geometryType:"multipoint",geometryTypeJSON:"esriGeometryMultipoint",id:"multipointLayer",layerId:2,title:"Multipoints",identifyingSymbol:(new M.Z).toJSON()},{geometryType:"point",geometryTypeJSON:"esriGeometryPoint",id:"pointLayer",layerId:3,title:"Points",identifyingSymbol:(new M.Z).toJSON()},{geometryType:"point",geometryTypeJSON:"esriGeometryPoint",id:"textLayer",layerId:4,title:"Text",identifyingSymbol:(new I.Z).toJSON()}];let k=class extends((0,w.h)((0,J.M)((0,N.q)((0,L.I)((0,s.R)(C.Z)))))){constructor(e){super(e),this.capabilities={operations:{supportsMapNotesEditing:!0}},this.featureCollections=null,this.featureCollectionJSON=null,this.featureCollectionType="notes",this.legendEnabled=!1,this.listMode="hide-children",this.minScale=0,this.maxScale=0,this.spatialReference=j.Z.WGS84,this.sublayers=new i.Z(B.map((e=>new F({id:e.id,layerId:e.layerId,title:e.title,layer:this})))),this.title="Map Notes",this.type="map-notes",this.visibilityMode="inherited"}readCapabilities(e,t,r){return{operations:{supportsMapNotesEditing:!R(t)&&"portal-item"!==r?.origin}}}readFeatureCollections(e,t,r){if(!R(t))return null;const o=t.layers.map((e=>{const t=new S.default;return t.read(e,r),t}));return new i.Z({items:o})}readLegacyfeatureCollectionJSON(e,t){return R(t)?(0,a.d9)(t.featureCollection):null}get fullExtent(){const e=this.spatialReference,t=(0,b.cS)();return null!=this.sublayers?this.sublayers.forEach((({fullBounds:e})=>null!=e?(0,b.jn)(t,e,t):t),t):this.featureCollectionJSON?.layers.some((e=>e.layerDefinition.extent))&&this.featureCollectionJSON.layers.forEach((r=>{const o=(0,m.projectOrLoad)(r.layerDefinition.extent,e).geometry;null!=o&&(0,b.jn)(t,o,t)})),(0,b.fS)(t,b.G_)?(0,m.projectOrLoad)(D(),e).geometry:(0,b.HH)(t,e)}readMinScale(e,t){for(const e of t.layers)if(null!=e.layerDefinition.minScale)return e.layerDefinition.minScale;return 0}readMaxScale(e,t){for(const e of t.layers)if(null!=e.layerDefinition.maxScale)return e.layerDefinition.maxScale;return 0}get multipointLayer(){return this._findSublayer("multipointLayer")}get pointLayer(){return this._findSublayer("pointLayer")}get polygonLayer(){return this._findSublayer("polygonLayer")}get polylineLayer(){return this._findSublayer("polylineLayer")}readSpatialReference(e,t){return t.layers.length?j.Z.fromJSON(t.layers[0].layerDefinition.spatialReference):j.Z.WGS84}readSublayers(e,t,r){if(R(t))return null;const o=[];let n=t.layers.reduce(((e,t)=>Math.max(e,t.layerDefinition.id??-1)),-1)+1;for(const e of t.layers){const{layerDefinition:t,featureSet:r}=e,i=t.id??n++,a=E(e);if(null!=a){const e=new F({id:a.id,title:t.name,layerId:i,layer:this,graphics:r.features.map((({geometry:e,symbol:t,attributes:r,popupInfo:o})=>l.Z.fromJSON({attributes:r,geometry:e,symbol:t,popupTemplate:o})))});o.push(e)}}return new i.Z(o)}writeSublayers(e,t,r,o){const{minScale:l,maxScale:i}=this;if(null==e)return;const a=e.some((e=>e.graphics.length>0));if(!this.capabilities.operations.supportsMapNotesEditing)return void(a&&o?.messages?.push(new n.Z("map-notes-layer:editing-not-supported","New map notes cannot be added to this layer")));const s=[];let p=this.spatialReference.toJSON();e:for(const t of e)for(const e of t.graphics)if(null!=e.geometry){p=e.geometry.spatialReference.toJSON();break e}for(const t of B){const r=e.find((e=>t.id===e.id));this._writeMapNoteSublayer(s,r,t,l,i,p,o)}(0,y.RB)("featureCollection.layers",s,t)}get textLayer(){return this._findSublayer("textLayer")}load(e){return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Feature Collection"]},e)),Promise.resolve(this)}read(e,t){"featureCollection"in e&&(e=(0,a.d9)(e),Object.assign(e,e.featureCollection)),super.read(e,t)}async beforeSave(){if(null==this.sublayers)return;let e=null;const t=[];for(const r of this.sublayers)for(const o of r.graphics)if(null!=o.geometry){const r=o.geometry;e?(0,h.fS)(r.spatialReference,e)||((0,m.canProjectWithoutEngine)(r.spatialReference,e)||(0,m.isLoaded)()||await(0,m.load)(),o.geometry=(0,m.project)(r,e)):e=r.spatialReference,t.push(o)}const r=await(0,g.aX)(t.map((e=>e.geometry)));t.forEach(((e,t)=>e.geometry=r[t]))}_findSublayer(e){return null==this.sublayers?null:this.sublayers?.find((t=>t.id===e))??null}_writeMapNoteSublayer(e,t,r,o,l,i,n){const s=[];if(null!=t){for(const e of t.graphics)this._writeMapNote(s,e,r.geometryType,n);this._normalizeObjectIds(s,G),e.push({layerDefinition:{name:t.title,drawingInfo:{renderer:{type:"simple",symbol:(0,a.d9)(r.identifyingSymbol)}},id:t.layerId,geometryType:r.geometryTypeJSON,minScale:o,maxScale:l,objectIdField:"OBJECTID",fields:[G.toJSON(),P.toJSON()],spatialReference:i},featureSet:{features:s,geometryType:r.geometryTypeJSON}})}}_writeMapNote(e,t,r,o){if(null==t)return;const{geometry:l,symbol:i,popupTemplate:n}=t;if(null==l)return;if(l.type!==r)return void o?.messages?.push(new p.Z("map-notes-layer:invalid-geometry-type",`Geometry "${l.type}" cannot be saved in "${r}" layer`,{graphic:t}));if(null==i)return void o?.messages?.push(new p.Z("map-notes-layer:no-symbol","Skipping map notes with no symbol",{graphic:t}));const a={attributes:{...t.attributes},geometry:l.toJSON(),symbol:i.toJSON()};null!=n&&(a.popupInfo=n.toJSON()),e.push(a)}_normalizeObjectIds(e,t){const r=t.name;let o=(0,_.S)(r,e)+1;const l=new Set;for(const t of e){t.attributes||(t.attributes={});const{attributes:e}=t;(null==e[r]||l.has(e[r]))&&(e[r]=o++),l.add(e[r])}}};(0,o._)([(0,u.Cb)({readOnly:!0})],k.prototype,"capabilities",void 0),(0,o._)([(0,d.r)(["portal-item","web-map"],"capabilities",["layers"])],k.prototype,"readCapabilities",null),(0,o._)([(0,u.Cb)({readOnly:!0})],k.prototype,"featureCollections",void 0),(0,o._)([(0,d.r)(["web-map","portal-item"],"featureCollections",["layers"])],k.prototype,"readFeatureCollections",null),(0,o._)([(0,u.Cb)({readOnly:!0,json:{origins:{"web-map":{write:{enabled:!0,target:"featureCollection"}}}}})],k.prototype,"featureCollectionJSON",void 0),(0,o._)([(0,d.r)(["web-map","portal-item"],"featureCollectionJSON",["featureCollection"])],k.prototype,"readLegacyfeatureCollectionJSON",null),(0,o._)([(0,u.Cb)({readOnly:!0,json:{read:!0,write:{enabled:!0,ignoreOrigin:!0}}})],k.prototype,"featureCollectionType",void 0),(0,o._)([(0,u.Cb)({readOnly:!0})],k.prototype,"fullExtent",null),(0,o._)([(0,u.Cb)({readOnly:!0,json:{origins:{"web-map":{write:{target:"featureCollection.showLegend",overridePolicy(){return{enabled:null!=this.featureCollectionJSON}}}}}}})],k.prototype,"legendEnabled",void 0),(0,o._)([(0,u.Cb)({type:["show","hide","hide-children"]})],k.prototype,"listMode",void 0),(0,o._)([(0,u.Cb)({type:Number,nonNullable:!0,json:{write:!1}})],k.prototype,"minScale",void 0),(0,o._)([(0,d.r)(["web-map","portal-item"],"minScale",["layers"])],k.prototype,"readMinScale",null),(0,o._)([(0,u.Cb)({type:Number,nonNullable:!0,json:{write:!1}})],k.prototype,"maxScale",void 0),(0,o._)([(0,d.r)(["web-map","portal-item"],"maxScale",["layers"])],k.prototype,"readMaxScale",null),(0,o._)([(0,u.Cb)({readOnly:!0})],k.prototype,"multipointLayer",null),(0,o._)([(0,u.Cb)({value:"ArcGISFeatureLayer",type:["ArcGISFeatureLayer"]})],k.prototype,"operationalLayerType",void 0),(0,o._)([(0,u.Cb)({readOnly:!0})],k.prototype,"pointLayer",null),(0,o._)([(0,u.Cb)({readOnly:!0})],k.prototype,"polygonLayer",null),(0,o._)([(0,u.Cb)({readOnly:!0})],k.prototype,"polylineLayer",null),(0,o._)([(0,u.Cb)({type:j.Z})],k.prototype,"spatialReference",void 0),(0,o._)([(0,d.r)(["web-map","portal-item"],"spatialReference",["layers"])],k.prototype,"readSpatialReference",null),(0,o._)([(0,u.Cb)({readOnly:!0,json:{origins:{"web-map":{write:{ignoreOrigin:!0}}}}})],k.prototype,"sublayers",void 0),(0,o._)([(0,d.r)("web-map","sublayers",["layers"])],k.prototype,"readSublayers",null),(0,o._)([(0,f.c)("web-map","sublayers")],k.prototype,"writeSublayers",null),(0,o._)([(0,u.Cb)({readOnly:!0})],k.prototype,"textLayer",null),(0,o._)([(0,u.Cb)()],k.prototype,"title",void 0),(0,o._)([(0,u.Cb)({readOnly:!0,json:{read:!1}})],k.prototype,"type",void 0),k=(0,o._)([(0,c.j)("esri.layers.MapNotesLayer")],k);const H=k},93711:function(e,t,r){r.d(t,{S:function(){return l},X:function(){return o}});const o=1;function l(e,t){let r=0;for(const o of t){const t=o.attributes?.[e];"number"==typeof t&&isFinite(t)&&(r=Math.max(r,t))}return r}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8427.facf5662282383f566a4.js b/docs/sentinel1-explorer/8427.facf5662282383f566a4.js new file mode 100644 index 00000000..005a18cf --- /dev/null +++ b/docs/sentinel1-explorer/8427.facf5662282383f566a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8427],{48427:function(e,n,t){t.r(n),t.d(n,{hydratedAdapter:function(){return c}});var a=t(91772),r=t(74304),o=t(67666),s=t(89542),i=t(90819);const c={convertToGEGeometry:function(e,n){if(null==n)return null;let t="cache"in n?n.cache._geVersion:void 0;return null==t&&(t=e.convertJSONToGeometry(n),"cache"in n&&(n.cache._geVersion=t)),t},exportPoint:function(e,n,t){const a=e.hasZ(n),r=e.hasM(n),s=new o.Z({x:e.getPointX(n),y:e.getPointY(n),spatialReference:t});return a&&(s.z=e.getPointZ(n)),r&&(s.m=e.getPointM(n)),s.cache._geVersion=n,s},exportPolygon:function(e,n,t){const a=new s.Z({rings:e.exportPaths(n),hasZ:e.hasZ(n),hasM:e.hasM(n),spatialReference:t});return a.cache._geVersion=n,a},exportPolyline:function(e,n,t){const a=new i.Z({paths:e.exportPaths(n),hasZ:e.hasZ(n),hasM:e.hasM(n),spatialReference:t});return a.cache._geVersion=n,a},exportMultipoint:function(e,n,t){const a=new r.Z({hasZ:e.hasZ(n),hasM:e.hasM(n),points:e.exportPoints(n),spatialReference:t});return a.cache._geVersion=n,a},exportExtent:function(e,n,t){const r=e.hasZ(n),o=e.hasM(n),s=new a.Z({xmin:e.getXMin(n),ymin:e.getYMin(n),xmax:e.getXMax(n),ymax:e.getYMax(n),spatialReference:t});if(r){const t=e.getZExtent(n);s.zmin=t.vmin,s.zmax=t.vmax}if(o){const t=e.getMExtent(n);s.mmin=t.vmin,s.mmax=t.vmax}return s.cache._geVersion=n,s}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8434.1ba8d0cdb597381bc6f6.js b/docs/sentinel1-explorer/8434.1ba8d0cdb597381bc6f6.js new file mode 100644 index 00000000..47ee6d9f --- /dev/null +++ b/docs/sentinel1-explorer/8434.1ba8d0cdb597381bc6f6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8434],{29573:function(e,t,i){i.d(t,{$7:function(){return h},$e:function(){return n},E0:function(){return o},N5:function(){return l},lW:function(){return a}});i(39994);var s=i(70375),r=i(3466);function n(e){const t=o(e);return null!=t?t.toDataURL():""}async function a(e){const t=o(e);if(null==t)throw new s.Z("imageToArrayBuffer","Unsupported image type");const i=await async function(e){if(!(e instanceof HTMLImageElement))return"image/png";const t=e.src;if((0,r.HK)(t)){const e=(0,r.sJ)(t);return"image/jpeg"===e?.mediaType?e.mediaType:"image/png"}return/\.png$/i.test(t)?"image/png":/\.(jpg|jpeg)$/i.test(t)?"image/jpeg":"image/png"}(e),n=await new Promise((e=>t.toBlob(e,i)));if(!n)throw new s.Z("imageToArrayBuffer","Failed to encode image");return{data:await n.arrayBuffer(),type:i}}function o(e){if(e instanceof HTMLCanvasElement)return e;if(e instanceof HTMLVideoElement)return null;const t=document.createElement("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");return e instanceof HTMLImageElement?i.drawImage(e,0,0,e.width,e.height):e instanceof ImageData&&i.putImageData(e,0,0),t}function l(e){const t=[],i=new Uint8Array(e);for(let e=0;er;)r+=this.timeToFrame,this.nextFrame();const n=this._animation.getFrame(this._currentFrame);this._onFrameData(n)}nextFrame(){if(this._currentFrame+=this._direction,this._direction>0){if(this._currentFrame===this._animation.frameDurations.length)switch(this._repeatType){case n.of.None:this._currentFrame-=this._direction;break;case n.of.Loop:this._currentFrame=0;break;case n.of.Oscillate:this._currentFrame-=this._direction,this._direction=-1}}else if(-1===this._currentFrame)switch(this._repeatType){case n.of.None:this._currentFrame-=this._direction;break;case n.of.Loop:this._currentFrame=this._animation.frameDurations.length-1;break;case n.of.Oscillate:this._currentFrame-=this._direction,this._direction=1}this.timeToFrame=this._animation.frameDurations[this._currentFrame];const e=this._animation.getFrame(this._currentFrame);this._onFrameData(e)}}function h(e,t,i,s){let h,{repeatType:u}=t;if(null==u&&(u=n.of.Loop),!0===t.reverseAnimation&&(e=function(e){const{width:t,height:i}=e,s=e.frameDurations.reverse();return{frameCount:e.frameCount,duration:e.duration,frameDurations:s,getFrame:t=>{const i=e.frameDurations.length-1-t;return e.getFrame(i)},width:t,height:i}}(e)),null!=t.duration&&(e=function(e,t){const{width:i,height:s,getFrame:n}=e,a=t/e.duration,o=e.frameDurations.map((e=>(0,r.HA)(e*a)));return{frameCount:e.frameCount,duration:e.duration,frameDurations:o,getFrame:n,width:i,height:s}}(e,(0,r.HA)(1e3*t.duration))),null!=t.repeatDelay){const i=1e3*t.repeatDelay;u===n.of.Loop?e=o(e,(0,r.HA)(i)):u===n.of.Oscillate&&(e=function(e,t){const{width:i,height:s,getFrame:n}=e,a=e.frameDurations.slice(),o=a.shift();return a.unshift((0,r.HA)(o+t)),{frameCount:e.frameCount,duration:e.duration+t,frameDurations:a,getFrame:n,width:i,height:s}}(o(e,(0,r.HA)(i/2)),(0,r.HA)(i/2)))}if(null!=t.startTimeOffset)h=(0,r.HA)(1e3*t.startTimeOffset);else if(null!=t.randomizeStartTime){const s=82749913,n=null!=t.randomizeStartSeed?t.randomizeStartSeed:s,o=(0,a.f)(i,n);h=(0,r.HA)(o*function(e){return(0,r.HA)(e.frameDurations.reduce(((e,t)=>e+t),0))}(e))}else h=(0,r.HA)(0);return new l(e,h,u,s)}function u(e,t,i,r){const n=null==t.playAnimation||t.playAnimation,a=h(e,t,i,r);let o,l=a.timeToFrame;return function e(){o=n?setTimeout((()=>{a.nextFrame(),l=a.timeToFrame,e()}),l):void 0}(),(0,s.kB)((()=>n&&clearTimeout(o)))}},66878:function(e,t,i){i.d(t,{y:function(){return v}});var s=i(36663),r=i(6865),n=i(58811),a=i(70375),o=i(76868),l=i(81977),h=(i(39994),i(13802),i(4157),i(40266)),u=i(68577),c=i(10530),d=i(98114),p=i(55755),m=i(88723),f=i(96294);let y=class extends f.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,s._)([(0,l.Cb)({type:[[[Number]]],json:{write:!0}})],y.prototype,"path",void 0),y=(0,s._)([(0,h.j)("esri.views.layers.support.Path")],y);const g=y,_=r.Z.ofType({key:"type",base:null,typeMap:{rect:p.Z,path:g,geometry:m.Z}}),v=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new _,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new a.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new c.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,o.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),o.tX),(0,o.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),o.tX),(0,o.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),o.tX),(0,o.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),o.tX),(0,o.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),o.tX),(0,o.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),o.tX),(0,o.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),o.tX),(0,o.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),o.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:i,maxScale:s}=t;return(0,u.o2)(e,i,s)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,i=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),i&&(e.outsideScaleRange=i),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,s._)([(0,l.Cb)()],t.prototype,"attached",void 0),(0,s._)([(0,l.Cb)({type:_,set(e){const t=(0,n.Z)(e,this._get("clips"),_);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"container",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"moving",void 0),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"updateRequested",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"updateSuspended",null),(0,s._)([(0,l.Cb)()],t.prototype,"updating",null),(0,s._)([(0,l.Cb)()],t.prototype,"view",void 0),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,s._)([(0,l.Cb)({type:d.Z})],t.prototype,"highlightOptions",void 0),t=(0,s._)([(0,h.j)("esri.views.2d.layers.LayerView2D")],t),t}},58434:function(e,t,i){i.r(t),i.d(t,{default:function(){return te}});var s=i(36663),r=(i(91957),i(80085),i(86004),i(55565),i(16192),i(71297),i(878),i(22836),i(50172),i(72043),i(72506),i(13802)),n=(i(4905),i(6865)),a=(i(39994),i(86114)),o=i(78668),l=i(76868),h=i(81977),u=(i(4157),i(40266)),c=i(24568),d=i(27127),p=i(68668),m=i(7014),f=i(70375),y=(i(17262),i(38488),i(39043),i(51366),i(5975),i(34596),i(91772)),g=(i(20031),i(74304),i(67666),i(89542),i(90819),i(19546),i(35925)),_=(i(82584),i(75707),i(59443),i(50880),i(66303),i(31180),i(29903),i(32707),i(15593),i(363),i(40932),i(7831),i(50292),i(43842),i(13287),i(37521),i(13813),i(75276),i(41959),i(8505),i(80732),i(73675),i(25609)),v=(i(19431),i(14266),i(45867)),w=(i(31090),i(5310),i(98591),i(73534),i(88464),i(51118)),b=(i(41214),i(31355),i(38716)),R=(i(69118),i(55939),i(6174),i(91907)),C=(i(18567),i(88338),i(43106),i(71449)),S=(i(96227),i(27894),i(87241),i(72797),i(8530),i(20627),i(17429),i(61296),i(43405),i(58536),i(66341),i(3466),i(76480),i(24204),i(41028),i(54689),i(56144),i(17346),i(23410),i(12045),i(61581),i(70187),i(18133),i(5992),i(37116),i(17703)),T=(i(25266),i(14685),i(14260),i(88256),i(98863),i(67979),i(82729),i(64970),i(17224)),x=i(23656),A=i(49546),M=i(61681),E=i(11777),D=i(3965),F=i(36531),V=i(84164),H=i(43344),P=i(78951),q=i(80479),O=i(29620);const U=(0,D.Ue)(),I={none:_.of.None,loop:_.of.Loop,oscillate:_.of.Oscillate};class L extends w.s{constructor(e){super(),this.elementView=e,this.isWrapAround=!1,this.perspectiveTransform=(0,V.Ue)(),this._playHandle=null,this._vertices=new Float32Array(20),this._handles=[],this._handles.push((0,l.YP)((()=>this.elementView.element.opacity),(e=>this.opacity=e),l.nn),(0,l.YP)((()=>[this.elementView.coords]),(()=>{this.requestRender()}),l.nn),(0,l.YP)((()=>["animationOptions"in this.elementView.element&&this.elementView.element.animationOptions]),(()=>{this._playHandle?.remove(),this.texture=(0,M.M2)(this.texture),this.requestRender()}),l.nn),(0,l.gx)((()=>this.elementView.element.loaded),(()=>{const e=this.elementView.element;this.ready(),"video"===e.type&&null!=e.content&&this._handles.push((0,A.on)(e.content,"play",(()=>this.requestRender())))}),l.nn)),e.element.load().catch((t=>{r.Z.getLogger("esri.views.2d.layers.MediaLayerView2D").error(new f.Z("element-load-error","Element cannot be displayed",{element:e,error:t}))}))}getMesh(e){throw new Error("Method not implemented.")}destroy(){this._playHandle?.remove(),this._handles.forEach((e=>e.remove())),this.texture=(0,M.M2)(this.texture)}get dvsMat3(){return this.parent.dvsMat3}beforeRender(e){const{context:t}=e,i=this.elementView.element.content;if(null!=i){const e=i instanceof HTMLImageElement,s=i instanceof HTMLVideoElement,r=e?i.naturalWidth:s?i.videoWidth:i.width,n=e?i.naturalHeight:s?i.videoHeight:i.height;if(this._updatePerspectiveTransform(r,n),this.texture)s&&!i.paused&&(this.texture.setData(i),this.requestRender(),this.texture.generateMipmap());else{const e=new q.X;if(e.wrapMode=R.e8.CLAMP_TO_EDGE,e.preMultiplyAlpha=!0,e.width=r,e.height=n,"getFrame"in i){const s=i=>{this.texture?this.texture.setData(i):this.texture=new C.x(t,e,i),this.requestRender()};"animationOptions"in this.elementView.element&&(this._playHandle=(0,H.hY)(i,function(e){return e?{...e,playAnimation:e.playing,repeatType:e.repeatType?I[e.repeatType]:void 0}:{}}(this.elementView.element.animationOptions),null,s))}else this.texture=new C.x(t,e,i);this.texture.generateMipmap(),s&&!i.paused&&this.requestRender()}}super.beforeRender(e)}_createTransforms(){return null}updateDrawCoords(e,t){const i=this.elementView.coords;if(null==i)return;const[s,r,n,a]=i.rings[0],o=this._vertices,{x:l,y:h}=e,u=0!==t;u?o.set([r[0]-l,r[1]-h,s[0]-l,s[1]-h,n[0]-l,n[1]-h,a[0]-l,a[1]-h,a[0]-l,a[1]-h,r[0]+t-l,r[1]-h,r[0]+t-l,r[1]-h,s[0]+t-l,s[1]-h,n[0]+t-l,n[1]-h,a[0]+t-l,a[1]-h]):o.set([r[0]-l,r[1]-h,s[0]-l,s[1]-h,n[0]-l,n[1]-h,a[0]-l,a[1]-h]),this.isWrapAround=u}getVAO(e,t,i){if(null==this.elementView.coords)return null;const s=this._vertices;if(this._vao)this._geometryVbo.setData(s);else{this._geometryVbo=P.f.createVertex(e,R.l1.DYNAMIC_DRAW,s);const r=P.f.createVertex(e,R.l1.STATIC_DRAW,new Uint16Array([0,0,0,1,1,0,1,1,1,1,0,0,0,0,0,1,1,0,1,1]));this._vao=new O.U(e,i,t,{geometry:this._geometryVbo,tex:r})}return this._vao}_updatePerspectiveTransform(e,t){const i=this._vertices;(0,E.E)(U,[0,0,e,0,0,t,e,t],[i[0],i[1],i[4],i[5],i[2],i[3],i[6],i[7]]),(0,F.t8)(this.perspectiveTransform,U[6]/U[8]*e,U[7]/U[8]*t)}}var Z=i(95550),j=i(46332),G=i(38642),k=i(29927),z=i(69050),Y=i(98831),W=i(10994);class N extends W.Z{constructor(){super(...arguments),this._localOrigin=(0,Z.vW)(0,0),this._viewStateId=-1,this._dvsMat3=(0,G.Ue)()}get dvsMat3(){return this._dvsMat3}beforeRender(e){this._updateMatrices(e),this._updateOverlays(e,this.children);for(const t of this.children)t.beforeRender(e)}prepareRenderPasses(e){const t=e.registerRenderPass({name:"overlay",brushes:[Y.U.overlay],target:()=>this.children,drawPhase:b.jx.MAP});return[...super.prepareRenderPasses(e),t]}_updateMatrices(e){const{state:t}=e,{id:i,size:s,pixelRatio:r,resolution:n,rotation:a,viewpoint:o,displayMat3:l}=t;if(this._viewStateId===i)return;const h=Math.PI/180*a,u=r*s[0],c=r*s[1],{x:d,y:p}=o.targetGeometry,m=(0,k.or)(d,t.spatialReference);this._localOrigin.x=m,this._localOrigin.y=p;const f=n*u,y=n*c,g=(0,j.yR)(this._dvsMat3);(0,j.Jp)(g,g,l),(0,j.Iu)(g,g,(0,v.al)(u/2,c/2)),(0,j.bA)(g,g,(0,S.al)(u/f,-c/y,1)),(0,j.U1)(g,g,-h),this._viewStateId=i}_updateOverlays(e,t){const{state:i}=e,{rotation:s,spatialReference:r,worldScreenWidth:n,size:a,viewpoint:o}=i,l=this._localOrigin;let h=0;const u=(0,g.C5)(r);if(u&&r.isWrappable){const e=a[0],c=a[1],d=180/Math.PI*s,p=Math.abs(Math.cos(d)),m=Math.abs(Math.sin(d)),f=Math.round(e*p+c*m),[y,g]=u.valid,_=(0,z.ut)(r),{x:v,y:w}=o.targetGeometry,b=[v,w],R=[0,0];i.toScreen(R,b);const C=[0,0];let S;S=f>n?.5*n:.5*f;const T=Math.floor((v+.5*_)/_),x=y+T*_,A=g+T*_,M=[R[0]+S,0];i.toMap(C,M),C[0]>A&&(h=_),M[0]=R[0]-S,i.toMap(C,M),C[0]y?e.updateDrawCoords(l,_):s>g&&ithis.layer.effectiveSource),"refresh",(()=>{this._tileStrategy.refresh((e=>this._updateTile(e))),this.requestUpdate()})),(0,l.on)((()=>this.layer.effectiveSource),"change",(({element:e})=>this._elementUpdateHandler(e)))]),this._overlayContainer=new N,this.container.addChild(this._overlayContainer),this._fetchQueue=new T.Z({tileInfoView:this.view.featuresTilingScheme,concurrency:10,process:(e,t)=>this._queryElements(e,t)}),this._tileStrategy=new x.Z({cachePolicy:"purge",resampling:!0,acquireTile:e=>this._acquireTile(e),releaseTile:e=>this._releaseTile(e),tileInfoView:this.view.featuresTilingScheme}),this.requestUpdate()}detach(){this.elements.removeAll(),this._tileStrategy.destroy(),this._fetchQueue.destroy(),this._overlayContainer.removeAllChildren(),this.container.removeAllChildren(),this._elementReferences.clear(),this._debugGraphicsView?.destroy()}supportsSpatialReference(e){return!0}moveStart(){this.requestUpdate()}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}update(e){this._tileStrategy.update(e),this._debugGraphicsView?.update(e)}async hitTest(e,t){const i=[],s=e.normalize(),r=[s.x,s.y];for(const{projectedElement:{normalizedCoords:t,element:s}}of this._elementReferences.values())null!=t&&(0,d.wP)(t.rings,r)&&i.push({type:"media",element:s,layer:this.layer,mapPoint:e,sourcePoint:s.toSource(e)});return i.reverse()}canResume(){return null!=this.layer.source&&super.canResume()}async doRefresh(){this._fetchQueue.reset(),this._tileStrategy.refresh((e=>this._updateTile(e)))}_acquireTile(e){const t=new ee(e.clone());return this._updateTile(t),t}_updateTile(e){this._updatingHandles.addPromise(this._fetchQueue.push(e.key).then((t=>{const[i,s]=e.setElements(t);this._referenceElements(e,i),this._dereferenceElements(e,s),this.requestUpdate()}),(e=>{(0,o.D_)(e)||r.Z.getLogger(this).error(e)})))}_releaseTile(e){this._fetchQueue.abort(e.key.id),e.elements&&this._dereferenceElements(e,e.elements),this.requestUpdate()}async _queryElements(e,t){const i=this.layer.effectiveSource;if(null==i)return[];this.view.featuresTilingScheme.getTileBounds($,e,!0);const s=new y.Z({xmin:$[0],ymin:$[1],xmax:$[2],ymax:$[3],spatialReference:this.view.spatialReference});return i.queryElements(s,t)}_referenceElements(e,t){if(null!=this.layer.source)for(const i of t)this._referenceElement(e,i)}_referenceElement(e,t){(0,a.s1)(this._elementReferences,t.uid,(()=>{const e=new m.L({element:t,spatialReference:this.view.spatialReference}),i=new L(e);this._overlayContainer.addChild(i),this.elements.add(t);return{tiles:new Set,projectedElement:e,overlay:i,debugGraphic:null}})).tiles.add(e)}_dereferenceElements(e,t){for(const i of t)this._dereferenceElement(e,i)}_dereferenceElement(e,t){const i=this._elementReferences.get(t.uid);i.tiles.delete(e),i.tiles.size||(this._overlayContainer.removeChild(i.overlay),i.overlay.destroy(),i.projectedElement.destroy(),this._elementReferences.delete(t.uid),this.elements.remove(t),this._debugGraphicsView?.graphics.remove(i.debugGraphic))}_elementUpdateHandler(e){let t=this._elementReferences.get(e.uid);if(t){const i=t.projectedElement.normalizedCoords;if(null==i)return this._overlayContainer.removeChild(t.overlay),t.overlay.destroy(),t.projectedElement.destroy(),this._elementReferences.delete(e.uid),this.elements.remove(e),void this._debugGraphicsView?.graphics.remove(t.debugGraphic);const s=[],r=[];for(const e of this._tileStrategy.tiles){const n=K(this.view.featuresTilingScheme,e,i);t.tiles.has(e)?n||r.push(e):n&&s.push(e)}for(const t of s)this._referenceElement(t,e);for(const t of r)this._dereferenceElement(t,e);return t=this._elementReferences.get(e.uid),void(t?.debugGraphic&&(t.debugGraphic.geometry=t.projectedElement.normalizedCoords,this._debugGraphicsView.graphicUpdateHandler({graphic:t.debugGraphic,property:"geometry"})))}const i=new m.L({element:e,spatialReference:this.view.spatialReference}).normalizedCoords;if(null!=i)for(const t of this._tileStrategy.tiles)K(this.view.featuresTilingScheme,t,i)&&this._referenceElement(t,e)}};(0,s._)([(0,h.Cb)()],Q.prototype,"layer",void 0),(0,s._)([(0,h.Cb)({readOnly:!0})],Q.prototype,"elements",void 0),Q=(0,s._)([(0,u.j)("esri.views.2d.layers.MediaLayerView2D")],Q);const $=(0,c.Ue)(),J={xmin:0,ymin:0,xmax:0,ymax:0};function K(e,t,i){return e.getTileBounds($,t.key,!0),J.xmin=$[0],J.ymin=$[1],J.xmax=$[2],J.ymax=$[3],(0,p.Nl)(J,i)}class ee{constructor(e){this.key=e,this.elements=null,this.isReady=!1,this.visible=!0}setElements(e){const t=[],i=new Set(this.elements);this.elements=e;for(const s of e)i.has(s)?i.delete(s):t.push(s);return this.isReady=!0,[t,Array.from(i)]}destroy(){}}const te=Q},26216:function(e,t,i){i.d(t,{Z:function(){return m}});var s=i(36663),r=i(74396),n=i(31355),a=i(86618),o=i(13802),l=i(61681),h=i(64189),u=i(81977),c=(i(39994),i(4157),i(40266)),d=i(98940);let p=class extends((0,a.IG)((0,h.v)(n.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new d.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";o.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,l.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,s._)([(0,u.Cb)()],p.prototype,"fullOpacity",null),(0,s._)([(0,u.Cb)()],p.prototype,"layer",void 0),(0,s._)([(0,u.Cb)()],p.prototype,"parent",void 0),(0,s._)([(0,u.Cb)({readOnly:!0})],p.prototype,"suspended",null),(0,s._)([(0,u.Cb)({readOnly:!0})],p.prototype,"suspendInfo",null),(0,s._)([(0,u.Cb)({readOnly:!0})],p.prototype,"legendEnabled",null),(0,s._)([(0,u.Cb)({type:Boolean,readOnly:!0})],p.prototype,"updating",null),(0,s._)([(0,u.Cb)({readOnly:!0})],p.prototype,"updatingProgress",null),(0,s._)([(0,u.Cb)()],p.prototype,"visible",null),(0,s._)([(0,u.Cb)()],p.prototype,"view",void 0),p=(0,s._)([(0,c.j)("esri.views.layers.LayerView")],p);const m=p},88723:function(e,t,i){i.d(t,{Z:function(){return m}});var s,r=i(36663),n=(i(91957),i(81977)),a=(i(39994),i(13802),i(4157),i(40266)),o=i(20031),l=i(53736),h=i(96294),u=i(91772),c=i(89542);const d={base:o.Z,key:"type",typeMap:{extent:u.Z,polygon:c.Z}};let p=s=class extends h.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new s({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,n.Cb)({types:d,json:{read:l.im,write:!0}})],p.prototype,"geometry",void 0),p=s=(0,r._)([(0,a.j)("esri.views.layers.support.Geometry")],p);const m=p}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/846.2715fba2814b139f09d7.js b/docs/sentinel1-explorer/846.2715fba2814b139f09d7.js new file mode 100644 index 00000000..f2aaaf1d --- /dev/null +++ b/docs/sentinel1-explorer/846.2715fba2814b139f09d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[846],{30846:function(t,e,n){n.r(e),n.d(e,{executeTopFeaturesQuery:function(){return l}});var r=n(84238),o=n(46960),u=n(51211),i=n(12621);async function l(t,e,n,l){const s=(0,r.en)(t),y={...l},{data:a}=await(0,o.IJ)(s,i.Z.from(e),n,y);return u.Z.fromJSON(a)}},46960:function(t,e,n){n.d(e,{IJ:function(){return d},m5:function(){return f},vB:function(){return m},w7:function(){return p}});var r=n(66341),o=n(3466),u=n(53736),i=n(29927),l=n(35925),s=n(27707),y=n(13097);const a="Layer does not support extent calculation.";function c(t,e){const n=t.geometry,r=t.toJSON(),o=r;if(null!=n&&(o.geometry=JSON.stringify(n),o.geometryType=(0,u.Ji)(n),o.inSR=(0,l.B9)(n.spatialReference)),r.topFilter?.groupByFields&&(o.topFilter.groupByFields=r.topFilter.groupByFields.join(",")),r.topFilter?.orderByFields&&(o.topFilter.orderByFields=r.topFilter.orderByFields.join(",")),r.topFilter&&(o.topFilter=JSON.stringify(o.topFilter)),r.objectIds&&(o.objectIds=r.objectIds.join(",")),r.orderByFields&&(o.orderByFields=r.orderByFields.join(",")),r.outFields&&!(e?.returnCountOnly||e?.returnExtentOnly||e?.returnIdsOnly)?r.outFields.includes("*")?o.outFields="*":o.outFields=r.outFields.join(","):delete o.outFields,r.outSR?o.outSR=(0,l.B9)(r.outSR):n&&r.returnGeometry&&(o.outSR=o.inSR),r.returnGeometry&&delete r.returnGeometry,r.timeExtent){const t=r.timeExtent,{start:e,end:n}=t;null==e&&null==n||(o.time=e===n?e:`${e??"null"},${n??"null"}`),delete r.timeExtent}return o}async function d(t,e,n,r){const o=await F(t,e,"json",r);return(0,y.p)(e,n,o.data),o}async function p(t,e,n){return null!=e.timeExtent&&e.timeExtent.isEmpty?{data:{objectIds:[]}}:F(t,e,"json",n,{returnIdsOnly:!0})}async function f(t,e,n){return null!=e.timeExtent&&e.timeExtent.isEmpty?{data:{count:0,extent:null}}:F(t,e,"json",n,{returnExtentOnly:!0,returnCountOnly:!0}).then((t=>{const e=t.data;if(e.hasOwnProperty("extent"))return t;if(e.features)throw new Error(a);if(e.hasOwnProperty("count"))throw new Error(a);return t}))}function m(t,e,n){return null!=e.timeExtent&&e.timeExtent.isEmpty?Promise.resolve({data:{count:0}}):F(t,e,"json",n,{returnIdsOnly:!0,returnCountOnly:!0})}function F(t,e,n,u={},l={}){const y="string"==typeof t?(0,o.mN)(t):t,a=e.geometry?[e.geometry]:[];return u.responseType="pbf"===n?"array-buffer":"json",(0,i.aX)(a,null,u).then((t=>{const i=t?.[0];null!=i&&((e=e.clone()).geometry=i);const a=(0,s.A)({...y.query,f:n,...l,...c(e,l)});return(0,r.Z)((0,o.v_)(y.path,"queryTopFeatures"),{...u,query:{...a,...u.query}})}))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/85.28559a31ee9560e4e711.js b/docs/sentinel1-explorer/85.28559a31ee9560e4e711.js new file mode 100644 index 00000000..c744b69d --- /dev/null +++ b/docs/sentinel1-explorer/85.28559a31ee9560e4e711.js @@ -0,0 +1,2 @@ +/*! For license information please see 85.28559a31ee9560e4e711.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[85],{38652:function(e,t,n){n.d(t,{a:function(){return g},c:function(){return E},d:function(){return O},u:function(){return N}});var o=n(79145);function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t0){var n=e[e.length-1];n!==t&&n.pause()}var o=e.indexOf(t);-1===o||e.splice(o,1),e.push(t)},u=function(e,t){var n=e.indexOf(t);-1!==n&&e.splice(n,1),e.length>0&&e[e.length-1].unpause()},c=function(e){return"Tab"===(null==e?void 0:e.key)||9===(null==e?void 0:e.keyCode)},l=function(e){return c(e)&&!e.shiftKey},f=function(e){return c(e)&&e.shiftKey},d=function(e){return setTimeout(e,0)},v=function(e,t){var n=-1;return e.every((function(e,o){return!t(e)||(n=o,!1)})),n},b=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o1?n-1:0),a=1;a=0)e=r.activeElement;else{var t=h.tabbableGroups[0];e=t&&t.firstTabbableNode||g("fallbackFocus")}if(!e)throw new Error("Your focus-trap needs to have at least one focusable element");return e},N=function(){if(h.containerGroups=h.containers.map((function(e){var t=(0,o.h)(e,y.tabbableOptions),n=(0,o.j)(e,y.tabbableOptions),r=t.length>0?t[0]:void 0,a=t.length>0?t[t.length-1]:void 0,i=n.find((function(e){return(0,o.k)(e)})),s=n.slice().reverse().find((function(e){return(0,o.k)(e)})),u=!!t.find((function(e){return(0,o.l)(e)>0}));return{container:e,tabbableNodes:t,focusableNodes:n,posTabIndexesFound:u,firstTabbableNode:r,lastTabbableNode:a,firstDomTabbableNode:i,lastDomTabbableNode:s,nextTabbableNode:function(e){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],a=t.indexOf(e);return a<0?r?n.slice(n.indexOf(e)+1).find((function(e){return(0,o.k)(e)})):n.slice(0,n.indexOf(e)).reverse().find((function(e){return(0,o.k)(e)})):t[a+(r?1:-1)]}}})),h.tabbableGroups=h.containerGroups.filter((function(e){return e.tabbableNodes.length>0})),h.tabbableGroups.length<=0&&!g("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(h.containerGroups.find((function(e){return e.posTabIndexesFound}))&&h.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},k=function e(t){var n=t.activeElement;if(n)return n.shadowRoot&&null!==n.shadowRoot.activeElement?e(n.shadowRoot):n},T=function e(t){!1!==t&&t!==k(document)&&(t&&t.focus?(t.focus({preventScroll:!!y.preventScroll}),h.mostRecentlyFocusedNode=t,function(e){return e.tagName&&"input"===e.tagName.toLowerCase()&&"function"==typeof e.select}(t)&&t.select()):e(O()))},F=function(e){var t=g("setReturnFocus",e);return t||!1!==t&&e},P=function(e){var t=e.target,n=e.event,r=e.isBackward,a=void 0!==r&&r;t=t||p(n),N();var i=null;if(h.tabbableGroups.length>0){var s=E(t,n),u=s>=0?h.containerGroups[s]:void 0;if(s<0)i=a?h.tabbableGroups[h.tabbableGroups.length-1].lastTabbableNode:h.tabbableGroups[0].firstTabbableNode;else if(a){var l=v(h.tabbableGroups,(function(e){var n=e.firstTabbableNode;return t===n}));if(l<0&&(u.container===t||(0,o.m)(t,y.tabbableOptions)&&!(0,o.k)(t,y.tabbableOptions)&&!u.nextTabbableNode(t,!1))&&(l=s),l>=0){var f=0===l?h.tabbableGroups.length-1:l-1,d=h.tabbableGroups[f];i=(0,o.l)(t)>=0?d.lastTabbableNode:d.lastDomTabbableNode}else c(n)||(i=u.nextTabbableNode(t,!1))}else{var b=v(h.tabbableGroups,(function(e){var n=e.lastTabbableNode;return t===n}));if(b<0&&(u.container===t||(0,o.m)(t,y.tabbableOptions)&&!(0,o.k)(t,y.tabbableOptions)&&!u.nextTabbableNode(t))&&(b=s),b>=0){var m=b===h.tabbableGroups.length-1?0:b+1,w=h.tabbableGroups[m];i=(0,o.l)(t)>=0?w.firstTabbableNode:w.firstDomTabbableNode}else c(n)||(i=u.nextTabbableNode(t))}}else i=g("fallbackFocus");return i},D=function(e){var t=p(e);E(t,e)>=0||(b(y.clickOutsideDeactivates,e)?n.deactivate({returnFocus:y.returnFocusOnDeactivate}):b(y.allowOutsideClick,e)||e.preventDefault())},G=function(e){var t=p(e),n=E(t,e)>=0;if(n||t instanceof Document)n&&(h.mostRecentlyFocusedNode=t);else{var r;e.stopImmediatePropagation();var a=!0;if(h.mostRecentlyFocusedNode)if((0,o.l)(h.mostRecentlyFocusedNode)>0){var i=E(h.mostRecentlyFocusedNode),s=h.containerGroups[i].tabbableNodes;if(s.length>0){var u=s.findIndex((function(e){return e===h.mostRecentlyFocusedNode}));u>=0&&(y.isKeyForward(h.recentNavEvent)?u+1=0&&(r=s[u-1],a=!1))}}else h.containerGroups.some((function(e){return e.tabbableNodes.some((function(e){return(0,o.l)(e)>0}))}))||(a=!1);else a=!1;a&&(r=P({target:h.mostRecentlyFocusedNode,isBackward:y.isKeyBackward(h.recentNavEvent)})),T(r||(h.mostRecentlyFocusedNode||O()))}h.recentNavEvent=void 0},L=function(e){if(!(t=e,"Escape"!==(null==t?void 0:t.key)&&"Esc"!==(null==t?void 0:t.key)&&27!==(null==t?void 0:t.keyCode)||!1===b(y.escapeDeactivates,e)))return e.preventDefault(),void n.deactivate();var t;(y.isKeyForward(e)||y.isKeyBackward(e))&&function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];h.recentNavEvent=e;var n=P({event:e,isBackward:t});n&&(c(e)&&e.preventDefault(),T(n))}(e,y.isKeyBackward(e))},C=function(e){var t=p(e);E(t,e)>=0||b(y.clickOutsideDeactivates,e)||b(y.allowOutsideClick,e)||(e.preventDefault(),e.stopImmediatePropagation())},x=function(){if(h.active)return s(i,n),h.delayInitialFocusTimer=y.delayInitialFocus?d((function(){T(O())})):T(O()),r.addEventListener("focusin",G,!0),r.addEventListener("mousedown",D,{capture:!0,passive:!1}),r.addEventListener("touchstart",D,{capture:!0,passive:!1}),r.addEventListener("click",C,{capture:!0,passive:!1}),r.addEventListener("keydown",L,{capture:!0,passive:!1}),n},R=function(){if(h.active)return r.removeEventListener("focusin",G,!0),r.removeEventListener("mousedown",D,!0),r.removeEventListener("touchstart",D,!0),r.removeEventListener("click",C,!0),r.removeEventListener("keydown",L,!0),n},j="undefined"!=typeof window&&"MutationObserver"in window?new MutationObserver((function(e){e.some((function(e){return Array.from(e.removedNodes).some((function(e){return e===h.mostRecentlyFocusedNode}))}))&&T(O())})):void 0,B=function(){j&&(j.disconnect(),h.active&&!h.paused&&h.containers.map((function(e){j.observe(e,{subtree:!0,childList:!0})})))};return(n={get active(){return h.active},get paused(){return h.paused},activate:function(e){if(h.active)return this;var t=w(e,"onActivate"),n=w(e,"onPostActivate"),o=w(e,"checkCanFocusTrap");o||N(),h.active=!0,h.paused=!1,h.nodeFocusedBeforeActivation=r.activeElement,null==t||t();var a=function(){o&&N(),x(),B(),null==n||n()};return o?(o(h.containers.concat()).then(a,a),this):(a(),this)},deactivate:function(e){if(!h.active)return this;var t=a({onDeactivate:y.onDeactivate,onPostDeactivate:y.onPostDeactivate,checkCanReturnFocus:y.checkCanReturnFocus},e);clearTimeout(h.delayInitialFocusTimer),h.delayInitialFocusTimer=void 0,R(),h.active=!1,h.paused=!1,B(),u(i,n);var o=w(t,"onDeactivate"),r=w(t,"onPostDeactivate"),s=w(t,"checkCanReturnFocus"),c=w(t,"returnFocus","returnFocusOnDeactivate");null==o||o();var l=function(){d((function(){c&&T(F(h.nodeFocusedBeforeActivation)),null==r||r()}))};return c&&s?(s(F(h.nodeFocusedBeforeActivation)).then(l,l),this):(l(),this)},pause:function(e){if(h.paused||!h.active)return this;var t=w(e,"onPause"),n=w(e,"onPostPause");return h.paused=!0,null==t||t(),R(),B(),null==n||n(),this},unpause:function(e){if(!h.paused||!h.active)return this;var t=w(e,"onUnpause"),n=w(e,"onPostUnpause");return h.paused=!1,null==t||t(),N(),x(),B(),null==n||n(),this},updateContainerElements:function(e){var t=[].concat(e).filter(Boolean);return h.containers=t.map((function(e){return"string"==typeof e?r.querySelector(e):e})),h.active&&N(),B(),this}}).updateContainerElements(e),n};const h=globalThis.calciteConfig,w=h?.focusTrapStack||[];function E(e,t){const{el:n}=e,r=t?.focusTrapEl||n;if(!r)return;const a={clickOutsideDeactivates:!0,escapeDeactivates:!1,fallbackFocus:r,setReturnFocus:e=>((0,o.e)(e),!1),...t?.focusTrapOptions,document:n.ownerDocument,tabbableOptions:o.n,trapStack:w};e.focusTrap=y(r,a)}function g(e,t){e.focusTrapDisabled||e.focusTrap?.activate(t)}function O(e,t){e.focusTrap?.deactivate(t)}function N(e){e.focusTrap?.updateContainerElements(e.el)}},18811:function(e,t,n){n.d(t,{o:function(){return i}});var o=n(77210);function r(e){return"opened"in e?e.opened:e.open}function a(e,t=!1){(t?e[e.transitionProp]:r(e))?e.onBeforeOpen():e.onBeforeClose(),(t?e[e.transitionProp]:r(e))?e.onOpen():e.onClose()}function i(e,t=!1){(0,o.wj)((()=>{if(e.transitionEl){const{transitionDuration:n,transitionProperty:o}=getComputedStyle(e.transitionEl),i=n.split(","),s=i[o.split(",").indexOf(e.openTransitionProp)]??i[0];if("0s"===s)return void a(e,t);const u=setTimeout((()=>{e.transitionEl.removeEventListener("transitionstart",c),e.transitionEl.removeEventListener("transitionend",l),e.transitionEl.removeEventListener("transitioncancel",l),a(e,t)}),1e3*parseFloat(s));function c(n){n.propertyName===e.openTransitionProp&&n.target===e.transitionEl&&(clearTimeout(u),e.transitionEl.removeEventListener("transitionstart",c),(t?e[e.transitionProp]:r(e))?e.onBeforeOpen():e.onBeforeClose())}function l(n){n.propertyName===e.openTransitionProp&&n.target===e.transitionEl&&((t?e[e.transitionProp]:r(e))?e.onOpen():e.onClose(),e.transitionEl.removeEventListener("transitionend",l),e.transitionEl.removeEventListener("transitioncancel",l))}e.transitionEl.addEventListener("transitionstart",c),e.transitionEl.addEventListener("transitionend",l),e.transitionEl.addEventListener("transitioncancel",l)}}))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/85.28559a31ee9560e4e711.js.LICENSE.txt b/docs/sentinel1-explorer/85.28559a31ee9560e4e711.js.LICENSE.txt new file mode 100644 index 00000000..4b3b4a04 --- /dev/null +++ b/docs/sentinel1-explorer/85.28559a31ee9560e4e711.js.LICENSE.txt @@ -0,0 +1,10 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ + +/*! +* focus-trap 7.5.4 +* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE +*/ diff --git a/docs/sentinel1-explorer/8506.49f8c8d8b451db730d8e.js b/docs/sentinel1-explorer/8506.49f8c8d8b451db730d8e.js new file mode 100644 index 00000000..7832f7c8 --- /dev/null +++ b/docs/sentinel1-explorer/8506.49f8c8d8b451db730d8e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8506],{28506:function(e,t,_){_.r(t),_.d(t,{p:function(){return s}});var r,o,n,p=_(58340),i={exports:{}};r=i,o="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,"undefined"!=typeof __filename&&(o=o||__filename),n=function(e={}){var t,_,r=e;r.ready=new Promise(((e,r)=>{t=e,_=r}));var n,p,i,c=Object.assign({},r),s="./this.program",P="object"==typeof window,a="function"==typeof importScripts,g="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,y="";if(g){var u=require("fs"),d=require("path");y=a?d.dirname(y)+"/":__dirname+"/",n=(e,t)=>(e=Y(e)?new URL(e):d.normalize(e),u.readFileSync(e,t?void 0:"utf8")),i=e=>{var t=n(e,!0);return t.buffer||(t=new Uint8Array(t)),t},p=(e,t,_,r=!0)=>{e=Y(e)?new URL(e):d.normalize(e),u.readFile(e,r?void 0:"utf8",((e,o)=>{e?_(e):t(r?o.buffer:o)}))},!r.thisProgram&&process.argv.length>1&&(s=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),r.inspect=()=>"[Emscripten Module object]"}else(P||a)&&(a?y=self.location.href:"undefined"!=typeof document&&document.currentScript&&(y=document.currentScript.src),o&&(y=o),y=0!==y.indexOf("blob:")?y.substr(0,y.replace(/[?#].*/,"").lastIndexOf("/")+1):"",n=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},a&&(i=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),p=(e,t,_)=>{var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=()=>{200==r.status||0==r.status&&r.response?t(r.response):_()},r.onerror=_,r.send(null)});var f,E,b=void 0;Object.assign(r,c),c=null,"object"!=typeof WebAssembly&&j("no native wasm support detected");var m,T,O,S,N,h,l,M=!1;function v(e,t){e||j(t)}function D(){var e=E.buffer;r.HEAP8=m=new Int8Array(e),r.HEAP16=O=new Int16Array(e),r.HEAPU8=T=new Uint8Array(e),r.HEAPU16=new Uint16Array(e),r.HEAP32=S=new Int32Array(e),r.HEAPU32=N=new Uint32Array(e),r.HEAPF32=h=new Float32Array(e),r.HEAPF64=l=new Float64Array(e)}var R=[],A=[],G=[];var C=0,I=null;function j(e){b(e="Aborted("+e+")"),M=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw _(t),t}var U,L="data:application/octet-stream;base64,";function F(e){return e.startsWith(L)}function Y(e){return e.startsWith("file://")}function w(e){if(e==U&&f)return new Uint8Array(f);if(i)return i(e);throw"both async and sync fetching of the wasm failed"}function x(e,t,_){return function(e){if(P||a){if("function"==typeof fetch&&!Y(e))return fetch(e,{credentials:"same-origin"}).then((t=>{if(!t.ok)throw"failed to load wasm binary file at '"+e+"'";return t.arrayBuffer()})).catch((()=>w(e)));if(p)return new Promise(((t,_)=>{p(e,(e=>t(new Uint8Array(e))),_)}))}return Promise.resolve().then((()=>w(e)))}(e).then((e=>WebAssembly.instantiate(e,t))).then((e=>e)).then(_,(e=>{b(`failed to asynchronously prepare wasm: ${e}`),j(e)}))}F(U="pe-wasm.wasm")||(U=function(e){return r.locateFile?r.locateFile(e,y):y+e}(U));var H=e=>{for(;e.length>0;)e.shift()(r)};var X="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,z=(e,t,_)=>{for(var r=t+_,o=t;e[o]&&!(o>=r);)++o;if(o-t>16&&e.buffer&&X)return X.decode(e.subarray(t,o));for(var n="";t>10,56320|1023&s)}}else n+=String.fromCharCode((31&p)<<6|i)}else n+=String.fromCharCode(p)}return n},Z=(e,t)=>e?z(T,e,t):"";var W=(e,t,_,r)=>{if(!(r>0))return 0;for(var o=_,n=_+r-1,p=0;p=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++p)),i<=127){if(_>=n)break;t[_++]=i}else if(i<=2047){if(_+1>=n)break;t[_++]=192|i>>6,t[_++]=128|63&i}else if(i<=65535){if(_+2>=n)break;t[_++]=224|i>>12,t[_++]=128|i>>6&63,t[_++]=128|63&i}else{if(_+3>=n)break;t[_++]=240|i>>18,t[_++]=128|i>>12&63,t[_++]=128|i>>6&63,t[_++]=128|63&i}}return t[_]=0,_-o};var B=[0,31,60,91,121,152,182,213,244,274,305,335],K=[0,31,59,90,120,151,181,212,243,273,304,334];var V=e=>{for(var t=0,_=0;_=55296&&r<=57343?(t+=4,++_):t+=3}return t},k=e=>{var t=V(e)+1,_=oe(t);return _&&((e,t,_)=>{W(e,T,t,_)})(e,_,t),_},q=e=>{var t=(e-E.buffer.byteLength+65535)/65536;try{return E.grow(t),D(),1}catch(e){}},J={},$=()=>{if(!$.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:s||"./this.program"};for(var t in J)void 0===J[t]?delete e[t]:e[t]=J[t];var _=[];for(var t in e)_.push(`${t}=${e[t]}`);$.strings=_}return $.strings};var Q=[null,[],[]],ee=(e,t)=>{var _=Q[e];0===t||10===t?((1===e?undefined:b)(z(_,0)),_.length=0):_.push(t)};var te={c:function(e,t,_){return 0},r:(e,t,_)=>{},h:function(e,t,_){return 0},d:function(e,t,_,r){},p:e=>{},o:(e,t)=>{},q:(e,t,_)=>{},j:function(e,t,_){var r=((e,t)=>t+2097152>>>0<4194305-!!e?(e>>>0)+4294967296*t:NaN)(e,t),o=new Date(1e3*r);S[_>>2]=o.getSeconds(),S[_+4>>2]=o.getMinutes(),S[_+8>>2]=o.getHours(),S[_+12>>2]=o.getDate(),S[_+16>>2]=o.getMonth(),S[_+20>>2]=o.getFullYear()-1900,S[_+24>>2]=o.getDay();var n=0|(e=>((e=>e%4==0&&(e%100!=0||e%400==0))(e.getFullYear())?B:K)[e.getMonth()]+e.getDate()-1)(o);S[_+28>>2]=n,S[_+36>>2]=-60*o.getTimezoneOffset();var p=new Date(o.getFullYear(),0,1),i=new Date(o.getFullYear(),6,1).getTimezoneOffset(),c=p.getTimezoneOffset(),s=0|(i!=c&&o.getTimezoneOffset()==Math.min(c,i));S[_+32>>2]=s},n:(e,t,_)=>{var r=(new Date).getFullYear(),o=new Date(r,0,1),n=new Date(r,6,1),p=o.getTimezoneOffset(),i=n.getTimezoneOffset(),c=Math.max(p,i);function s(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}N[e>>2]=60*c,S[t>>2]=Number(p!=i);var P=s(o),a=s(n),g=k(P),y=k(a);i>2]=g,N[_+4>>2]=y):(N[_>>2]=y,N[_+4>>2]=g)},l:()=>{j("")},i:()=>Date.now(),s:(e,t,_)=>T.copyWithin(e,t,t+_),m:e=>{var t=T.length,_=2147483648;if((e>>>=0)>_)return!1;for(var r=(e,t)=>e+(t-e%t)%t,o=1;o<=4;o*=2){var n=t*(1+.2/o);n=Math.min(n,e+100663296);var p=Math.min(_,r(Math.max(e,n),65536));if(q(p))return!0}return!1},e:(e,t)=>{var _=0;return $().forEach(((r,o)=>{var n=t+_;N[e+4*o>>2]=n,((e,t)=>{for(var _=0;_>0]=e.charCodeAt(_);m[t>>0]=0})(r,n),_+=r.length+1})),0},f:(e,t)=>{var _=$();N[e>>2]=_.length;var r=0;return _.forEach((e=>r+=e.length+1)),N[t>>2]=r,0},a:e=>52,g:(e,t,_,r)=>52,k:function(e,t,_,r,o){return 70},b:(e,t,_,r)=>{for(var o=0,n=0;n<_;n++){var p=N[t>>2],i=N[t+4>>2];t+=8;for(var c=0;c>2]=o,0}},_e=function(){function e(e,t){return _e=e.exports,E=_e.t,D(),function(e){A.unshift(e)}(_e.u),function(e){if(0==--C&&I){var t=I;I=null,t()}}(),_e}return C++,function(e,t,_,r){return e||"function"!=typeof WebAssembly.instantiateStreaming||F(t)||Y(t)||g||"function"!=typeof fetch?x(t,_,r):fetch(t,{credentials:"same-origin"}).then((e=>WebAssembly.instantiateStreaming(e,_).then(r,(function(e){return b(`wasm streaming compile failed: ${e}`),b("falling back to ArrayBuffer instantiation"),x(t,_,r)}))))}(f,U,{a:te},(function(t){e(t.instance)})).catch(_),{}}();r._webidl_free=e=>(r._webidl_free=_e.v)(e),r._webidl_malloc=e=>(r._webidl_malloc=_e.w)(e);var re,oe=e=>(oe=_e.x)(e),ne=r._emscripten_bind_PeObject_getCode_0=e=>(ne=r._emscripten_bind_PeObject_getCode_0=_e.y)(e),pe=r._emscripten_bind_PeObject_getName_1=(e,t)=>(pe=r._emscripten_bind_PeObject_getName_1=_e.z)(e,t),ie=r._emscripten_bind_PeObject_getType_0=e=>(ie=r._emscripten_bind_PeObject_getType_0=_e.A)(e),ce=r._emscripten_bind_PeCoordsys_getCode_0=e=>(ce=r._emscripten_bind_PeCoordsys_getCode_0=_e.B)(e),se=r._emscripten_bind_PeCoordsys_getName_1=(e,t)=>(se=r._emscripten_bind_PeCoordsys_getName_1=_e.C)(e,t),Pe=r._emscripten_bind_PeCoordsys_getType_0=e=>(Pe=r._emscripten_bind_PeCoordsys_getType_0=_e.D)(e),ae=r._emscripten_bind_VoidPtr___destroy___0=e=>(ae=r._emscripten_bind_VoidPtr___destroy___0=_e.E)(e),ge=r._emscripten_bind_PeDatum_getSpheroid_0=e=>(ge=r._emscripten_bind_PeDatum_getSpheroid_0=_e.F)(e),ye=r._emscripten_bind_PeDatum_getCode_0=e=>(ye=r._emscripten_bind_PeDatum_getCode_0=_e.G)(e),ue=r._emscripten_bind_PeDatum_getName_1=(e,t)=>(ue=r._emscripten_bind_PeDatum_getName_1=_e.H)(e,t),de=r._emscripten_bind_PeDatum_getType_0=e=>(de=r._emscripten_bind_PeDatum_getType_0=_e.I)(e),fe=r._emscripten_bind_PeDefs_get_PE_BUFFER_MAX_0=e=>(fe=r._emscripten_bind_PeDefs_get_PE_BUFFER_MAX_0=_e.J)(e),Ee=r._emscripten_bind_PeDefs_get_PE_NAME_MAX_0=e=>(Ee=r._emscripten_bind_PeDefs_get_PE_NAME_MAX_0=_e.K)(e),be=r._emscripten_bind_PeDefs_get_PE_MGRS_MAX_0=e=>(be=r._emscripten_bind_PeDefs_get_PE_MGRS_MAX_0=_e.L)(e),me=r._emscripten_bind_PeDefs_get_PE_USNG_MAX_0=e=>(me=r._emscripten_bind_PeDefs_get_PE_USNG_MAX_0=_e.M)(e),Te=r._emscripten_bind_PeDefs_get_PE_DD_MAX_0=e=>(Te=r._emscripten_bind_PeDefs_get_PE_DD_MAX_0=_e.N)(e),Oe=r._emscripten_bind_PeDefs_get_PE_DMS_MAX_0=e=>(Oe=r._emscripten_bind_PeDefs_get_PE_DMS_MAX_0=_e.O)(e),Se=r._emscripten_bind_PeDefs_get_PE_DDM_MAX_0=e=>(Se=r._emscripten_bind_PeDefs_get_PE_DDM_MAX_0=_e.P)(e),Ne=r._emscripten_bind_PeDefs_get_PE_UTM_MAX_0=e=>(Ne=r._emscripten_bind_PeDefs_get_PE_UTM_MAX_0=_e.Q)(e),he=r._emscripten_bind_PeDefs_get_PE_PARM_MAX_0=e=>(he=r._emscripten_bind_PeDefs_get_PE_PARM_MAX_0=_e.R)(e),le=r._emscripten_bind_PeDefs_get_PE_TYPE_NONE_0=e=>(le=r._emscripten_bind_PeDefs_get_PE_TYPE_NONE_0=_e.S)(e),Me=r._emscripten_bind_PeDefs_get_PE_TYPE_GEOGCS_0=e=>(Me=r._emscripten_bind_PeDefs_get_PE_TYPE_GEOGCS_0=_e.T)(e),ve=r._emscripten_bind_PeDefs_get_PE_TYPE_PROJCS_0=e=>(ve=r._emscripten_bind_PeDefs_get_PE_TYPE_PROJCS_0=_e.U)(e),De=r._emscripten_bind_PeDefs_get_PE_TYPE_GEOGTRAN_0=e=>(De=r._emscripten_bind_PeDefs_get_PE_TYPE_GEOGTRAN_0=_e.V)(e),Re=r._emscripten_bind_PeDefs_get_PE_TYPE_COORDSYS_0=e=>(Re=r._emscripten_bind_PeDefs_get_PE_TYPE_COORDSYS_0=_e.W)(e),Ae=r._emscripten_bind_PeDefs_get_PE_TYPE_UNIT_0=e=>(Ae=r._emscripten_bind_PeDefs_get_PE_TYPE_UNIT_0=_e.X)(e),Ge=r._emscripten_bind_PeDefs_get_PE_TYPE_LINUNIT_0=e=>(Ge=r._emscripten_bind_PeDefs_get_PE_TYPE_LINUNIT_0=_e.Y)(e),Ce=r._emscripten_bind_PeDefs_get_PE_STR_OPTS_NONE_0=e=>(Ce=r._emscripten_bind_PeDefs_get_PE_STR_OPTS_NONE_0=_e.Z)(e),Ie=r._emscripten_bind_PeDefs_get_PE_STR_AUTH_NONE_0=e=>(Ie=r._emscripten_bind_PeDefs_get_PE_STR_AUTH_NONE_0=_e._)(e),je=r._emscripten_bind_PeDefs_get_PE_STR_AUTH_TOP_0=e=>(je=r._emscripten_bind_PeDefs_get_PE_STR_AUTH_TOP_0=_e.$)(e),Ue=r._emscripten_bind_PeDefs_get_PE_STR_NAME_CANON_0=e=>(Ue=r._emscripten_bind_PeDefs_get_PE_STR_NAME_CANON_0=_e.aa)(e),Le=r._emscripten_bind_PeDefs_get_PE_STR_FMT_WKT_0=e=>(Le=r._emscripten_bind_PeDefs_get_PE_STR_FMT_WKT_0=_e.ba)(e),Fe=r._emscripten_bind_PeDefs_get_PE_STR_FMT_WKT2_0=e=>(Fe=r._emscripten_bind_PeDefs_get_PE_STR_FMT_WKT2_0=_e.ca)(e),Ye=r._emscripten_bind_PeDefs_get_PE_PARM_X0_0=e=>(Ye=r._emscripten_bind_PeDefs_get_PE_PARM_X0_0=_e.da)(e),we=r._emscripten_bind_PeDefs_get_PE_PARM_ND_0=e=>(we=r._emscripten_bind_PeDefs_get_PE_PARM_ND_0=_e.ea)(e),xe=r._emscripten_bind_PeDefs_get_PE_TRANSFORM_1_TO_2_0=e=>(xe=r._emscripten_bind_PeDefs_get_PE_TRANSFORM_1_TO_2_0=_e.fa)(e),He=r._emscripten_bind_PeDefs_get_PE_TRANSFORM_2_TO_1_0=e=>(He=r._emscripten_bind_PeDefs_get_PE_TRANSFORM_2_TO_1_0=_e.ga)(e),Xe=r._emscripten_bind_PeDefs_get_PE_TRANSFORM_P_TO_G_0=e=>(Xe=r._emscripten_bind_PeDefs_get_PE_TRANSFORM_P_TO_G_0=_e.ha)(e),ze=r._emscripten_bind_PeDefs_get_PE_TRANSFORM_G_TO_P_0=e=>(ze=r._emscripten_bind_PeDefs_get_PE_TRANSFORM_G_TO_P_0=_e.ia)(e),Ze=r._emscripten_bind_PeDefs_get_PE_HORIZON_RECT_0=e=>(Ze=r._emscripten_bind_PeDefs_get_PE_HORIZON_RECT_0=_e.ja)(e),We=r._emscripten_bind_PeDefs_get_PE_HORIZON_POLY_0=e=>(We=r._emscripten_bind_PeDefs_get_PE_HORIZON_POLY_0=_e.ka)(e),Be=r._emscripten_bind_PeDefs_get_PE_HORIZON_LINE_0=e=>(Be=r._emscripten_bind_PeDefs_get_PE_HORIZON_LINE_0=_e.la)(e),Ke=r._emscripten_bind_PeDefs_get_PE_HORIZON_DELTA_0=e=>(Ke=r._emscripten_bind_PeDefs_get_PE_HORIZON_DELTA_0=_e.ma)(e),Ve=r._emscripten_bind_PeFactory_initialize_1=(e,t)=>(Ve=r._emscripten_bind_PeFactory_initialize_1=_e.na)(e,t),ke=r._emscripten_bind_PeFactory_factoryByType_2=(e,t,_)=>(ke=r._emscripten_bind_PeFactory_factoryByType_2=_e.oa)(e,t,_),qe=r._emscripten_bind_PeFactory_fromString_2=(e,t,_)=>(qe=r._emscripten_bind_PeFactory_fromString_2=_e.pa)(e,t,_),Je=r._emscripten_bind_PeFactory_getCode_1=(e,t)=>(Je=r._emscripten_bind_PeFactory_getCode_1=_e.qa)(e,t),$e=r._emscripten_bind_PeGCSExtent_PeGCSExtent_6=(e,t,_,o,n,p)=>($e=r._emscripten_bind_PeGCSExtent_PeGCSExtent_6=_e.ra)(e,t,_,o,n,p),Qe=r._emscripten_bind_PeGCSExtent_getLLon_0=e=>(Qe=r._emscripten_bind_PeGCSExtent_getLLon_0=_e.sa)(e),et=r._emscripten_bind_PeGCSExtent_getSLat_0=e=>(et=r._emscripten_bind_PeGCSExtent_getSLat_0=_e.ta)(e),tt=r._emscripten_bind_PeGCSExtent_getRLon_0=e=>(tt=r._emscripten_bind_PeGCSExtent_getRLon_0=_e.ua)(e),_t=r._emscripten_bind_PeGCSExtent_getNLat_0=e=>(_t=r._emscripten_bind_PeGCSExtent_getNLat_0=_e.va)(e),rt=r._emscripten_bind_PeGCSExtent___destroy___0=e=>(rt=r._emscripten_bind_PeGCSExtent___destroy___0=_e.wa)(e),ot=r._emscripten_bind_PeGeogcs_getDatum_0=e=>(ot=r._emscripten_bind_PeGeogcs_getDatum_0=_e.xa)(e),nt=r._emscripten_bind_PeGeogcs_getPrimem_0=e=>(nt=r._emscripten_bind_PeGeogcs_getPrimem_0=_e.ya)(e),pt=r._emscripten_bind_PeGeogcs_getUnit_0=e=>(pt=r._emscripten_bind_PeGeogcs_getUnit_0=_e.za)(e),it=r._emscripten_bind_PeGeogcs_getCode_0=e=>(it=r._emscripten_bind_PeGeogcs_getCode_0=_e.Aa)(e),ct=r._emscripten_bind_PeGeogcs_getName_1=(e,t)=>(ct=r._emscripten_bind_PeGeogcs_getName_1=_e.Ba)(e,t),st=r._emscripten_bind_PeGeogcs_getType_0=e=>(st=r._emscripten_bind_PeGeogcs_getType_0=_e.Ca)(e),Pt=r._emscripten_bind_PeGeogtran_isEqual_1=(e,t)=>(Pt=r._emscripten_bind_PeGeogtran_isEqual_1=_e.Da)(e,t),at=r._emscripten_bind_PeGeogtran_getGeogcs1_0=e=>(at=r._emscripten_bind_PeGeogtran_getGeogcs1_0=_e.Ea)(e),gt=r._emscripten_bind_PeGeogtran_getGeogcs2_0=e=>(gt=r._emscripten_bind_PeGeogtran_getGeogcs2_0=_e.Fa)(e),yt=r._emscripten_bind_PeGeogtran_getParameters_0=e=>(yt=r._emscripten_bind_PeGeogtran_getParameters_0=_e.Ga)(e),ut=r._emscripten_bind_PeGeogtran_loadConstants_0=e=>(ut=r._emscripten_bind_PeGeogtran_loadConstants_0=_e.Ha)(e),dt=r._emscripten_bind_PeGeogtran_getCode_0=e=>(dt=r._emscripten_bind_PeGeogtran_getCode_0=_e.Ia)(e),ft=r._emscripten_bind_PeGeogtran_getName_1=(e,t)=>(ft=r._emscripten_bind_PeGeogtran_getName_1=_e.Ja)(e,t),Et=r._emscripten_bind_PeGeogtran_getType_0=e=>(Et=r._emscripten_bind_PeGeogtran_getType_0=_e.Ka)(e),bt=r._emscripten_bind_PeGTlistExtended_getGTlist_6=(e,t,_,o,n,p,i)=>(bt=r._emscripten_bind_PeGTlistExtended_getGTlist_6=_e.La)(e,t,_,o,n,p,i),mt=r._emscripten_bind_PeGTlistExtended_get_PE_GTLIST_OPTS_COMMON_0=e=>(mt=r._emscripten_bind_PeGTlistExtended_get_PE_GTLIST_OPTS_COMMON_0=_e.Ma)(e),Tt=r._emscripten_bind_PeGTlistExtendedEntry_getEntries_0=e=>(Tt=r._emscripten_bind_PeGTlistExtendedEntry_getEntries_0=_e.Na)(e),Ot=r._emscripten_bind_PeGTlistExtendedEntry_getSteps_0=e=>(Ot=r._emscripten_bind_PeGTlistExtendedEntry_getSteps_0=_e.Oa)(e),St=r._emscripten_bind_PeGTlistExtendedEntry_Delete_1=(e,t)=>(St=r._emscripten_bind_PeGTlistExtendedEntry_Delete_1=_e.Pa)(e,t),Nt=r._emscripten_bind_PeGTlistExtendedGTs_getDirection_0=e=>(Nt=r._emscripten_bind_PeGTlistExtendedGTs_getDirection_0=_e.Qa)(e),ht=r._emscripten_bind_PeGTlistExtendedGTs_getGeogtran_0=e=>(ht=r._emscripten_bind_PeGTlistExtendedGTs_getGeogtran_0=_e.Ra)(e),lt=r._emscripten_bind_PeHorizon_getNump_0=e=>(lt=r._emscripten_bind_PeHorizon_getNump_0=_e.Sa)(e),Mt=r._emscripten_bind_PeHorizon_getKind_0=e=>(Mt=r._emscripten_bind_PeHorizon_getKind_0=_e.Ta)(e),vt=r._emscripten_bind_PeHorizon_getInclusive_0=e=>(vt=r._emscripten_bind_PeHorizon_getInclusive_0=_e.Ua)(e),Dt=r._emscripten_bind_PeHorizon_getSize_0=e=>(Dt=r._emscripten_bind_PeHorizon_getSize_0=_e.Va)(e),Rt=r._emscripten_bind_PeHorizon_getCoord_0=e=>(Rt=r._emscripten_bind_PeHorizon_getCoord_0=_e.Wa)(e),At=r._emscripten_bind_PeInteger_PeInteger_1=e=>(At=r._emscripten_bind_PeInteger_PeInteger_1=_e.Xa)(e),Gt=r._emscripten_bind_PeInteger_get_val_0=e=>(Gt=r._emscripten_bind_PeInteger_get_val_0=_e.Ya)(e),Ct=r._emscripten_bind_PeInteger_set_val_1=(e,t)=>(Ct=r._emscripten_bind_PeInteger_set_val_1=_e.Za)(e,t),It=r._emscripten_bind_PeInteger___destroy___0=e=>(It=r._emscripten_bind_PeInteger___destroy___0=_e._a)(e),jt=r._emscripten_bind_PeNotationMgrs_get_PE_MGRS_STYLE_NEW_0=e=>(jt=r._emscripten_bind_PeNotationMgrs_get_PE_MGRS_STYLE_NEW_0=_e.$a)(e),Ut=r._emscripten_bind_PeNotationMgrs_get_PE_MGRS_STYLE_OLD_0=e=>(Ut=r._emscripten_bind_PeNotationMgrs_get_PE_MGRS_STYLE_OLD_0=_e.ab)(e),Lt=r._emscripten_bind_PeNotationMgrs_get_PE_MGRS_STYLE_AUTO_0=e=>(Lt=r._emscripten_bind_PeNotationMgrs_get_PE_MGRS_STYLE_AUTO_0=_e.bb)(e),Ft=r._emscripten_bind_PeNotationMgrs_get_PE_MGRS_180_ZONE_1_PLUS_0=e=>(Ft=r._emscripten_bind_PeNotationMgrs_get_PE_MGRS_180_ZONE_1_PLUS_0=_e.cb)(e),Yt=r._emscripten_bind_PeNotationMgrs_get_PE_MGRS_ADD_SPACES_0=e=>(Yt=r._emscripten_bind_PeNotationMgrs_get_PE_MGRS_ADD_SPACES_0=_e.db)(e),wt=r._emscripten_bind_PeNotationUtm_get_PE_UTM_OPTS_NONE_0=e=>(wt=r._emscripten_bind_PeNotationUtm_get_PE_UTM_OPTS_NONE_0=_e.eb)(e),xt=r._emscripten_bind_PeNotationUtm_get_PE_UTM_OPTS_NS_0=e=>(xt=r._emscripten_bind_PeNotationUtm_get_PE_UTM_OPTS_NS_0=_e.fb)(e),Ht=r._emscripten_bind_PeNotationUtm_get_PE_UTM_OPTS_NS_STRICT_0=e=>(Ht=r._emscripten_bind_PeNotationUtm_get_PE_UTM_OPTS_NS_STRICT_0=_e.gb)(e),Xt=r._emscripten_bind_PeNotationUtm_get_PE_UTM_OPTS_ADD_SPACES_0=e=>(Xt=r._emscripten_bind_PeNotationUtm_get_PE_UTM_OPTS_ADD_SPACES_0=_e.hb)(e),zt=r._emscripten_bind_PeParameter_getValue_0=e=>(zt=r._emscripten_bind_PeParameter_getValue_0=_e.ib)(e),Zt=r._emscripten_bind_PeParameter_getCode_0=e=>(Zt=r._emscripten_bind_PeParameter_getCode_0=_e.jb)(e),Wt=r._emscripten_bind_PeParameter_getName_1=(e,t)=>(Wt=r._emscripten_bind_PeParameter_getName_1=_e.kb)(e,t),Bt=r._emscripten_bind_PeParameter_getType_0=e=>(Bt=r._emscripten_bind_PeParameter_getType_0=_e.lb)(e),Kt=r._emscripten_bind_PePCSInfo_getCentralMeridian_0=e=>(Kt=r._emscripten_bind_PePCSInfo_getCentralMeridian_0=_e.mb)(e),Vt=r._emscripten_bind_PePCSInfo_getDomainMinx_0=e=>(Vt=r._emscripten_bind_PePCSInfo_getDomainMinx_0=_e.nb)(e),kt=r._emscripten_bind_PePCSInfo_getDomainMiny_0=e=>(kt=r._emscripten_bind_PePCSInfo_getDomainMiny_0=_e.ob)(e),qt=r._emscripten_bind_PePCSInfo_getDomainMaxx_0=e=>(qt=r._emscripten_bind_PePCSInfo_getDomainMaxx_0=_e.pb)(e),Jt=r._emscripten_bind_PePCSInfo_getDomainMaxy_0=e=>(Jt=r._emscripten_bind_PePCSInfo_getDomainMaxy_0=_e.qb)(e),$t=r._emscripten_bind_PePCSInfo_getNorthPoleLocation_0=e=>($t=r._emscripten_bind_PePCSInfo_getNorthPoleLocation_0=_e.rb)(e),Qt=r._emscripten_bind_PePCSInfo_getNorthPoleGeometry_0=e=>(Qt=r._emscripten_bind_PePCSInfo_getNorthPoleGeometry_0=_e.sb)(e),e_=r._emscripten_bind_PePCSInfo_getSouthPoleLocation_0=e=>(e_=r._emscripten_bind_PePCSInfo_getSouthPoleLocation_0=_e.tb)(e),t_=r._emscripten_bind_PePCSInfo_getSouthPoleGeometry_0=e=>(t_=r._emscripten_bind_PePCSInfo_getSouthPoleGeometry_0=_e.ub)(e),__=r._emscripten_bind_PePCSInfo_isDensificationNeeded_0=e=>(__=r._emscripten_bind_PePCSInfo_isDensificationNeeded_0=_e.vb)(e),r_=r._emscripten_bind_PePCSInfo_isGcsHorizonMultiOverlap_0=e=>(r_=r._emscripten_bind_PePCSInfo_isGcsHorizonMultiOverlap_0=_e.wb)(e),o_=r._emscripten_bind_PePCSInfo_isPannableRectangle_0=e=>(o_=r._emscripten_bind_PePCSInfo_isPannableRectangle_0=_e.xb)(e),n_=r._emscripten_bind_PePCSInfo_generate_2=(e,t,_)=>(n_=r._emscripten_bind_PePCSInfo_generate_2=_e.yb)(e,t,_),p_=r._emscripten_bind_PePCSInfo_get_PE_PCSINFO_OPTION_NONE_0=e=>(p_=r._emscripten_bind_PePCSInfo_get_PE_PCSINFO_OPTION_NONE_0=_e.zb)(e),i_=r._emscripten_bind_PePCSInfo_get_PE_PCSINFO_OPTION_DOMAIN_0=e=>(i_=r._emscripten_bind_PePCSInfo_get_PE_PCSINFO_OPTION_DOMAIN_0=_e.Ab)(e),c_=r._emscripten_bind_PePCSInfo_get_PE_POLE_OUTSIDE_BOUNDARY_0=e=>(c_=r._emscripten_bind_PePCSInfo_get_PE_POLE_OUTSIDE_BOUNDARY_0=_e.Bb)(e),s_=r._emscripten_bind_PePCSInfo_get_PE_POLE_POINT_0=e=>(s_=r._emscripten_bind_PePCSInfo_get_PE_POLE_POINT_0=_e.Cb)(e),P_=r._emscripten_bind_PePrimem_getLongitude_0=e=>(P_=r._emscripten_bind_PePrimem_getLongitude_0=_e.Db)(e),a_=r._emscripten_bind_PePrimem_getCode_0=e=>(a_=r._emscripten_bind_PePrimem_getCode_0=_e.Eb)(e),g_=r._emscripten_bind_PePrimem_getName_1=(e,t)=>(g_=r._emscripten_bind_PePrimem_getName_1=_e.Fb)(e,t),y_=r._emscripten_bind_PePrimem_getType_0=e=>(y_=r._emscripten_bind_PePrimem_getType_0=_e.Gb)(e),u_=r._emscripten_bind_PeProjcs_getGeogcs_0=e=>(u_=r._emscripten_bind_PeProjcs_getGeogcs_0=_e.Hb)(e),d_=r._emscripten_bind_PeProjcs_getParameters_0=e=>(d_=r._emscripten_bind_PeProjcs_getParameters_0=_e.Ib)(e),f_=r._emscripten_bind_PeProjcs_getUnit_0=e=>(f_=r._emscripten_bind_PeProjcs_getUnit_0=_e.Jb)(e),E_=r._emscripten_bind_PeProjcs_loadConstants_0=e=>(E_=r._emscripten_bind_PeProjcs_loadConstants_0=_e.Kb)(e),b_=r._emscripten_bind_PeProjcs_horizonGcsGenerate_0=e=>(b_=r._emscripten_bind_PeProjcs_horizonGcsGenerate_0=_e.Lb)(e),m_=r._emscripten_bind_PeProjcs_horizonPcsGenerate_0=e=>(m_=r._emscripten_bind_PeProjcs_horizonPcsGenerate_0=_e.Mb)(e),T_=r._emscripten_bind_PeProjcs_getCode_0=e=>(T_=r._emscripten_bind_PeProjcs_getCode_0=_e.Nb)(e),O_=r._emscripten_bind_PeProjcs_getName_1=(e,t)=>(O_=r._emscripten_bind_PeProjcs_getName_1=_e.Ob)(e,t),S_=r._emscripten_bind_PeProjcs_getType_0=e=>(S_=r._emscripten_bind_PeProjcs_getType_0=_e.Pb)(e),N_=r._emscripten_bind_PeSpheroid_getAxis_0=e=>(N_=r._emscripten_bind_PeSpheroid_getAxis_0=_e.Qb)(e),h_=r._emscripten_bind_PeSpheroid_getFlattening_0=e=>(h_=r._emscripten_bind_PeSpheroid_getFlattening_0=_e.Rb)(e),l_=r._emscripten_bind_PeSpheroid_getCode_0=e=>(l_=r._emscripten_bind_PeSpheroid_getCode_0=_e.Sb)(e),M_=r._emscripten_bind_PeSpheroid_getName_1=(e,t)=>(M_=r._emscripten_bind_PeSpheroid_getName_1=_e.Tb)(e,t),v_=r._emscripten_bind_PeSpheroid_getType_0=e=>(v_=r._emscripten_bind_PeSpheroid_getType_0=_e.Ub)(e),D_=r._emscripten_bind_PeUnit_getUnitFactor_0=e=>(D_=r._emscripten_bind_PeUnit_getUnitFactor_0=_e.Vb)(e),R_=r._emscripten_bind_PeUnit_getCode_0=e=>(R_=r._emscripten_bind_PeUnit_getCode_0=_e.Wb)(e),A_=r._emscripten_bind_PeUnit_getName_1=(e,t)=>(A_=r._emscripten_bind_PeUnit_getName_1=_e.Xb)(e,t),G_=r._emscripten_bind_PeUnit_getType_0=e=>(G_=r._emscripten_bind_PeUnit_getType_0=_e.Yb)(e),C_=r._emscripten_bind_PeVersion_version_string_0=e=>(C_=r._emscripten_bind_PeVersion_version_string_0=_e.Zb)(e);function I_(){C>0||(H(R),C>0||re||(re=!0,r.calledRun=!0,M||(H(A),t(r),H(G))))}function j_(){}function U_(e){return(e||j_).__cache__}function L_(e,t){var _=U_(t),r=_[e];return r||((r=Object.create((t||j_).prototype)).ptr=e,_[e]=r)}r._pe_getPeGTlistExtendedEntrySize=()=>(r._pe_getPeGTlistExtendedEntrySize=_e._b)(),r._pe_getPeGTlistExtendedGTsSize=()=>(r._pe_getPeGTlistExtendedGTsSize=_e.$b)(),r._pe_getPeHorizonSize=()=>(r._pe_getPeHorizonSize=_e.ac)(),r._pe_geog_to_geog=(e,t,_,o,n)=>(r._pe_geog_to_geog=_e.cc)(e,t,_,o,n),r._pe_geog_to_proj=(e,t,_)=>(r._pe_geog_to_proj=_e.dc)(e,t,_),r._pe_geog_to_dd=(e,t,_,o,n)=>(r._pe_geog_to_dd=_e.ec)(e,t,_,o,n),r._pe_dd_to_geog=(e,t,_,o)=>(r._pe_dd_to_geog=_e.fc)(e,t,_,o),r._pe_geog_to_ddm=(e,t,_,o,n)=>(r._pe_geog_to_ddm=_e.gc)(e,t,_,o,n),r._pe_ddm_to_geog=(e,t,_,o)=>(r._pe_ddm_to_geog=_e.hc)(e,t,_,o),r._pe_geog_to_dms=(e,t,_,o,n)=>(r._pe_geog_to_dms=_e.ic)(e,t,_,o,n),r._pe_dms_to_geog=(e,t,_,o)=>(r._pe_dms_to_geog=_e.jc)(e,t,_,o),r._pe_geog_to_mgrs_extended=(e,t,_,o,n,p,i)=>(r._pe_geog_to_mgrs_extended=_e.kc)(e,t,_,o,n,p,i),r._pe_mgrs_to_geog_extended=(e,t,_,o,n)=>(r._pe_mgrs_to_geog_extended=_e.lc)(e,t,_,o,n),r._pe_geog_to_usng=(e,t,_,o,n,p,i)=>(r._pe_geog_to_usng=_e.mc)(e,t,_,o,n,p,i),r._pe_usng_to_geog=(e,t,_,o)=>(r._pe_usng_to_geog=_e.nc)(e,t,_,o),r._pe_geog_to_utm=(e,t,_,o,n)=>(r._pe_geog_to_utm=_e.oc)(e,t,_,o,n),r._pe_utm_to_geog=(e,t,_,o,n)=>(r._pe_utm_to_geog=_e.pc)(e,t,_,o,n),r._pe_object_to_string_ext=(e,t,_)=>(r._pe_object_to_string_ext=_e.qc)(e,t,_),r._pe_proj_to_geog_center=(e,t,_,o)=>(r._pe_proj_to_geog_center=_e.rc)(e,t,_,o),r.___start_em_js=2033306,r.___stop_em_js=2033404,r.getValue=function(e,t="i8"){switch(t.endsWith("*")&&(t="*"),t){case"i1":case"i8":return m[e>>0];case"i16":return O[e>>1];case"i32":return S[e>>2];case"i64":j("to do getValue(i64) use WASM_BIGINT");case"float":return h[e>>2];case"double":return l[e>>3];case"*":return N[e>>2];default:j(`invalid type for getValue: ${t}`)}},r.UTF8ToString=Z,I=function e(){re||I_(),re||(I=e)},I_(),j_.prototype=Object.create(j_.prototype),j_.prototype.constructor=j_,j_.prototype.__class__=j_,j_.__cache__={},r.WrapperObject=j_,r.getCache=U_,r.wrapPointer=L_,r.castObject=function(e,t){return L_(e.ptr,t)},r.NULL=L_(0),r.destroy=function(e){if(!e.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";e.__destroy__(),delete U_(e.__class__)[e.ptr]},r.compare=function(e,t){return e.ptr===t.ptr},r.getPointer=function(e){return e.ptr},r.getClass=function(e){return e.__class__};var F_={buffer:0,size:0,pos:0,temps:[],needed:0,prepare(){if(F_.needed){for(var e=0;e=F_.size?(v(n>0),F_.needed+=n,_=r._webidl_malloc(n),F_.temps.push(_)):(_=F_.buffer+F_.pos,F_.pos+=n),_},copy(e,t,_){switch(_>>>=0,t.BYTES_PER_ELEMENT){case 2:_>>>=1;break;case 4:_>>>=2;break;case 8:_>>>=3}for(var r=0;r0?_:V(e)+1,o=new Array(r),n=W(e,o,0,o.length);return t&&(o.length=n),o}(e),_=F_.alloc(t,m);return F_.copy(t,m,_),_}return e}function w_(e){if("object"==typeof e){var t=F_.alloc(e,m);return F_.copy(e,m,t),t}return e}function x_(){throw"cannot construct a PeObject, no constructor in IDL"}function H_(){throw"cannot construct a PeCoordsys, no constructor in IDL"}function X_(){throw"cannot construct a VoidPtr, no constructor in IDL"}function z_(){throw"cannot construct a PeDatum, no constructor in IDL"}function Z_(){throw"cannot construct a PeDefs, no constructor in IDL"}function W_(){throw"cannot construct a PeFactory, no constructor in IDL"}function B_(e,t,_,r,o,n){e&&"object"==typeof e&&(e=e.ptr),t&&"object"==typeof t&&(t=t.ptr),_&&"object"==typeof _&&(_=_.ptr),r&&"object"==typeof r&&(r=r.ptr),o&&"object"==typeof o&&(o=o.ptr),n&&"object"==typeof n&&(n=n.ptr),this.ptr=$e(e,t,_,r,o,n),U_(B_)[this.ptr]=this}function K_(){throw"cannot construct a PeGeogcs, no constructor in IDL"}function V_(){throw"cannot construct a PeGeogtran, no constructor in IDL"}function k_(){throw"cannot construct a PeGTlistExtended, no constructor in IDL"}function q_(){throw"cannot construct a PeGTlistExtendedEntry, no constructor in IDL"}function J_(){throw"cannot construct a PeGTlistExtendedGTs, no constructor in IDL"}function $_(){throw"cannot construct a PeHorizon, no constructor in IDL"}function Q_(e){e&&"object"==typeof e&&(e=e.ptr),this.ptr=At(e),U_(Q_)[this.ptr]=this}function er(){throw"cannot construct a PeNotationMgrs, no constructor in IDL"}function tr(){throw"cannot construct a PeNotationUtm, no constructor in IDL"}function _r(){throw"cannot construct a PeParameter, no constructor in IDL"}function rr(){throw"cannot construct a PePCSInfo, no constructor in IDL"}function or(){throw"cannot construct a PePrimem, no constructor in IDL"}function nr(){throw"cannot construct a PeProjcs, no constructor in IDL"}function pr(){throw"cannot construct a PeSpheroid, no constructor in IDL"}function ir(){throw"cannot construct a PeUnit, no constructor in IDL"}function cr(){throw"cannot construct a PeVersion, no constructor in IDL"}return x_.prototype=Object.create(j_.prototype),x_.prototype.constructor=x_,x_.prototype.__class__=x_,x_.__cache__={},r.PeObject=x_,x_.prototype.getCode=x_.prototype.getCode=function(){var e=this.ptr;return ne(e)},x_.prototype.getName=x_.prototype.getName=function(e){var t=this.ptr;return F_.prepare(),"object"==typeof e&&(e=w_(e)),Z(pe(t,e))},x_.prototype.getType=x_.prototype.getType=function(){var e=this.ptr;return ie(e)},H_.prototype=Object.create(x_.prototype),H_.prototype.constructor=H_,H_.prototype.__class__=H_,H_.__cache__={},r.PeCoordsys=H_,H_.prototype.getCode=H_.prototype.getCode=function(){var e=this.ptr;return ce(e)},H_.prototype.getName=H_.prototype.getName=function(e){var t=this.ptr;return F_.prepare(),"object"==typeof e&&(e=w_(e)),Z(se(t,e))},H_.prototype.getType=H_.prototype.getType=function(){var e=this.ptr;return Pe(e)},X_.prototype=Object.create(j_.prototype),X_.prototype.constructor=X_,X_.prototype.__class__=X_,X_.__cache__={},r.VoidPtr=X_,X_.prototype.__destroy__=X_.prototype.__destroy__=function(){var e=this.ptr;ae(e)},z_.prototype=Object.create(x_.prototype),z_.prototype.constructor=z_,z_.prototype.__class__=z_,z_.__cache__={},r.PeDatum=z_,z_.prototype.getSpheroid=z_.prototype.getSpheroid=function(){var e=this.ptr;return L_(ge(e),pr)},z_.prototype.getCode=z_.prototype.getCode=function(){var e=this.ptr;return ye(e)},z_.prototype.getName=z_.prototype.getName=function(e){var t=this.ptr;return F_.prepare(),"object"==typeof e&&(e=w_(e)),Z(ue(t,e))},z_.prototype.getType=z_.prototype.getType=function(){var e=this.ptr;return de(e)},Z_.prototype=Object.create(j_.prototype),Z_.prototype.constructor=Z_,Z_.prototype.__class__=Z_,Z_.__cache__={},r.PeDefs=Z_,Z_.prototype.get_PE_BUFFER_MAX=Z_.prototype.get_PE_BUFFER_MAX=function(){var e=this.ptr;return fe(e)},Object.defineProperty(Z_.prototype,"PE_BUFFER_MAX",{get:Z_.prototype.get_PE_BUFFER_MAX}),Z_.prototype.get_PE_NAME_MAX=Z_.prototype.get_PE_NAME_MAX=function(){var e=this.ptr;return Ee(e)},Object.defineProperty(Z_.prototype,"PE_NAME_MAX",{get:Z_.prototype.get_PE_NAME_MAX}),Z_.prototype.get_PE_MGRS_MAX=Z_.prototype.get_PE_MGRS_MAX=function(){var e=this.ptr;return be(e)},Object.defineProperty(Z_.prototype,"PE_MGRS_MAX",{get:Z_.prototype.get_PE_MGRS_MAX}),Z_.prototype.get_PE_USNG_MAX=Z_.prototype.get_PE_USNG_MAX=function(){var e=this.ptr;return me(e)},Object.defineProperty(Z_.prototype,"PE_USNG_MAX",{get:Z_.prototype.get_PE_USNG_MAX}),Z_.prototype.get_PE_DD_MAX=Z_.prototype.get_PE_DD_MAX=function(){var e=this.ptr;return Te(e)},Object.defineProperty(Z_.prototype,"PE_DD_MAX",{get:Z_.prototype.get_PE_DD_MAX}),Z_.prototype.get_PE_DMS_MAX=Z_.prototype.get_PE_DMS_MAX=function(){var e=this.ptr;return Oe(e)},Object.defineProperty(Z_.prototype,"PE_DMS_MAX",{get:Z_.prototype.get_PE_DMS_MAX}),Z_.prototype.get_PE_DDM_MAX=Z_.prototype.get_PE_DDM_MAX=function(){var e=this.ptr;return Se(e)},Object.defineProperty(Z_.prototype,"PE_DDM_MAX",{get:Z_.prototype.get_PE_DDM_MAX}),Z_.prototype.get_PE_UTM_MAX=Z_.prototype.get_PE_UTM_MAX=function(){var e=this.ptr;return Ne(e)},Object.defineProperty(Z_.prototype,"PE_UTM_MAX",{get:Z_.prototype.get_PE_UTM_MAX}),Z_.prototype.get_PE_PARM_MAX=Z_.prototype.get_PE_PARM_MAX=function(){var e=this.ptr;return he(e)},Object.defineProperty(Z_.prototype,"PE_PARM_MAX",{get:Z_.prototype.get_PE_PARM_MAX}),Z_.prototype.get_PE_TYPE_NONE=Z_.prototype.get_PE_TYPE_NONE=function(){var e=this.ptr;return le(e)},Object.defineProperty(Z_.prototype,"PE_TYPE_NONE",{get:Z_.prototype.get_PE_TYPE_NONE}),Z_.prototype.get_PE_TYPE_GEOGCS=Z_.prototype.get_PE_TYPE_GEOGCS=function(){var e=this.ptr;return Me(e)},Object.defineProperty(Z_.prototype,"PE_TYPE_GEOGCS",{get:Z_.prototype.get_PE_TYPE_GEOGCS}),Z_.prototype.get_PE_TYPE_PROJCS=Z_.prototype.get_PE_TYPE_PROJCS=function(){var e=this.ptr;return ve(e)},Object.defineProperty(Z_.prototype,"PE_TYPE_PROJCS",{get:Z_.prototype.get_PE_TYPE_PROJCS}),Z_.prototype.get_PE_TYPE_GEOGTRAN=Z_.prototype.get_PE_TYPE_GEOGTRAN=function(){var e=this.ptr;return De(e)},Object.defineProperty(Z_.prototype,"PE_TYPE_GEOGTRAN",{get:Z_.prototype.get_PE_TYPE_GEOGTRAN}),Z_.prototype.get_PE_TYPE_COORDSYS=Z_.prototype.get_PE_TYPE_COORDSYS=function(){var e=this.ptr;return Re(e)},Object.defineProperty(Z_.prototype,"PE_TYPE_COORDSYS",{get:Z_.prototype.get_PE_TYPE_COORDSYS}),Z_.prototype.get_PE_TYPE_UNIT=Z_.prototype.get_PE_TYPE_UNIT=function(){var e=this.ptr;return Ae(e)},Object.defineProperty(Z_.prototype,"PE_TYPE_UNIT",{get:Z_.prototype.get_PE_TYPE_UNIT}),Z_.prototype.get_PE_TYPE_LINUNIT=Z_.prototype.get_PE_TYPE_LINUNIT=function(){var e=this.ptr;return Ge(e)},Object.defineProperty(Z_.prototype,"PE_TYPE_LINUNIT",{get:Z_.prototype.get_PE_TYPE_LINUNIT}),Z_.prototype.get_PE_STR_OPTS_NONE=Z_.prototype.get_PE_STR_OPTS_NONE=function(){var e=this.ptr;return Ce(e)},Object.defineProperty(Z_.prototype,"PE_STR_OPTS_NONE",{get:Z_.prototype.get_PE_STR_OPTS_NONE}),Z_.prototype.get_PE_STR_AUTH_NONE=Z_.prototype.get_PE_STR_AUTH_NONE=function(){var e=this.ptr;return Ie(e)},Object.defineProperty(Z_.prototype,"PE_STR_AUTH_NONE",{get:Z_.prototype.get_PE_STR_AUTH_NONE}),Z_.prototype.get_PE_STR_AUTH_TOP=Z_.prototype.get_PE_STR_AUTH_TOP=function(){var e=this.ptr;return je(e)},Object.defineProperty(Z_.prototype,"PE_STR_AUTH_TOP",{get:Z_.prototype.get_PE_STR_AUTH_TOP}),Z_.prototype.get_PE_STR_NAME_CANON=Z_.prototype.get_PE_STR_NAME_CANON=function(){var e=this.ptr;return Ue(e)},Object.defineProperty(Z_.prototype,"PE_STR_NAME_CANON",{get:Z_.prototype.get_PE_STR_NAME_CANON}),Z_.prototype.get_PE_STR_FMT_WKT=Z_.prototype.get_PE_STR_FMT_WKT=function(){var e=this.ptr;return Le(e)},Object.defineProperty(Z_.prototype,"PE_STR_FMT_WKT",{get:Z_.prototype.get_PE_STR_FMT_WKT}),Z_.prototype.get_PE_STR_FMT_WKT2=Z_.prototype.get_PE_STR_FMT_WKT2=function(){var e=this.ptr;return Fe(e)},Object.defineProperty(Z_.prototype,"PE_STR_FMT_WKT2",{get:Z_.prototype.get_PE_STR_FMT_WKT2}),Z_.prototype.get_PE_PARM_X0=Z_.prototype.get_PE_PARM_X0=function(){var e=this.ptr;return Ye(e)},Object.defineProperty(Z_.prototype,"PE_PARM_X0",{get:Z_.prototype.get_PE_PARM_X0}),Z_.prototype.get_PE_PARM_ND=Z_.prototype.get_PE_PARM_ND=function(){var e=this.ptr;return we(e)},Object.defineProperty(Z_.prototype,"PE_PARM_ND",{get:Z_.prototype.get_PE_PARM_ND}),Z_.prototype.get_PE_TRANSFORM_1_TO_2=Z_.prototype.get_PE_TRANSFORM_1_TO_2=function(){var e=this.ptr;return xe(e)},Object.defineProperty(Z_.prototype,"PE_TRANSFORM_1_TO_2",{get:Z_.prototype.get_PE_TRANSFORM_1_TO_2}),Z_.prototype.get_PE_TRANSFORM_2_TO_1=Z_.prototype.get_PE_TRANSFORM_2_TO_1=function(){var e=this.ptr;return He(e)},Object.defineProperty(Z_.prototype,"PE_TRANSFORM_2_TO_1",{get:Z_.prototype.get_PE_TRANSFORM_2_TO_1}),Z_.prototype.get_PE_TRANSFORM_P_TO_G=Z_.prototype.get_PE_TRANSFORM_P_TO_G=function(){var e=this.ptr;return Xe(e)},Object.defineProperty(Z_.prototype,"PE_TRANSFORM_P_TO_G",{get:Z_.prototype.get_PE_TRANSFORM_P_TO_G}),Z_.prototype.get_PE_TRANSFORM_G_TO_P=Z_.prototype.get_PE_TRANSFORM_G_TO_P=function(){var e=this.ptr;return ze(e)},Object.defineProperty(Z_.prototype,"PE_TRANSFORM_G_TO_P",{get:Z_.prototype.get_PE_TRANSFORM_G_TO_P}),Z_.prototype.get_PE_HORIZON_RECT=Z_.prototype.get_PE_HORIZON_RECT=function(){var e=this.ptr;return Ze(e)},Object.defineProperty(Z_.prototype,"PE_HORIZON_RECT",{get:Z_.prototype.get_PE_HORIZON_RECT}),Z_.prototype.get_PE_HORIZON_POLY=Z_.prototype.get_PE_HORIZON_POLY=function(){var e=this.ptr;return We(e)},Object.defineProperty(Z_.prototype,"PE_HORIZON_POLY",{get:Z_.prototype.get_PE_HORIZON_POLY}),Z_.prototype.get_PE_HORIZON_LINE=Z_.prototype.get_PE_HORIZON_LINE=function(){var e=this.ptr;return Be(e)},Object.defineProperty(Z_.prototype,"PE_HORIZON_LINE",{get:Z_.prototype.get_PE_HORIZON_LINE}),Z_.prototype.get_PE_HORIZON_DELTA=Z_.prototype.get_PE_HORIZON_DELTA=function(){var e=this.ptr;return Ke(e)},Object.defineProperty(Z_.prototype,"PE_HORIZON_DELTA",{get:Z_.prototype.get_PE_HORIZON_DELTA}),W_.prototype=Object.create(j_.prototype),W_.prototype.constructor=W_,W_.prototype.__class__=W_,W_.__cache__={},r.PeFactory=W_,W_.prototype.initialize=W_.prototype.initialize=function(e){var t=this.ptr;F_.prepare(),e=e&&"object"==typeof e?e.ptr:Y_(e),Ve(t,e)},W_.prototype.factoryByType=W_.prototype.factoryByType=function(e,t){var _=this.ptr;return e&&"object"==typeof e&&(e=e.ptr),t&&"object"==typeof t&&(t=t.ptr),L_(ke(_,e,t),x_)},W_.prototype.fromString=W_.prototype.fromString=function(e,t){var _=this.ptr;return F_.prepare(),e&&"object"==typeof e&&(e=e.ptr),t=t&&"object"==typeof t?t.ptr:Y_(t),L_(qe(_,e,t),x_)},W_.prototype.getCode=W_.prototype.getCode=function(e){var t=this.ptr;return e&&"object"==typeof e&&(e=e.ptr),Je(t,e)},B_.prototype=Object.create(j_.prototype),B_.prototype.constructor=B_,B_.prototype.__class__=B_,B_.__cache__={},r.PeGCSExtent=B_,B_.prototype.getLLon=B_.prototype.getLLon=function(){var e=this.ptr;return Qe(e)},B_.prototype.getSLat=B_.prototype.getSLat=function(){var e=this.ptr;return et(e)},B_.prototype.getRLon=B_.prototype.getRLon=function(){var e=this.ptr;return tt(e)},B_.prototype.getNLat=B_.prototype.getNLat=function(){var e=this.ptr;return _t(e)},B_.prototype.__destroy__=B_.prototype.__destroy__=function(){var e=this.ptr;rt(e)},K_.prototype=Object.create(H_.prototype),K_.prototype.constructor=K_,K_.prototype.__class__=K_,K_.__cache__={},r.PeGeogcs=K_,K_.prototype.getDatum=K_.prototype.getDatum=function(){var e=this.ptr;return L_(ot(e),z_)},K_.prototype.getPrimem=K_.prototype.getPrimem=function(){var e=this.ptr;return L_(nt(e),or)},K_.prototype.getUnit=K_.prototype.getUnit=function(){var e=this.ptr;return L_(pt(e),ir)},K_.prototype.getCode=K_.prototype.getCode=function(){var e=this.ptr;return it(e)},K_.prototype.getName=K_.prototype.getName=function(e){var t=this.ptr;return F_.prepare(),"object"==typeof e&&(e=w_(e)),Z(ct(t,e))},K_.prototype.getType=K_.prototype.getType=function(){var e=this.ptr;return st(e)},V_.prototype=Object.create(x_.prototype),V_.prototype.constructor=V_,V_.prototype.__class__=V_,V_.__cache__={},r.PeGeogtran=V_,V_.prototype.isEqual=V_.prototype.isEqual=function(e){var t=this.ptr;return e&&"object"==typeof e&&(e=e.ptr),!!Pt(t,e)},V_.prototype.getGeogcs1=V_.prototype.getGeogcs1=function(){var e=this.ptr;return L_(at(e),K_)},V_.prototype.getGeogcs2=V_.prototype.getGeogcs2=function(){var e=this.ptr;return L_(gt(e),K_)},V_.prototype.getParameters=V_.prototype.getParameters=function(){var e=this.ptr;return yt(e)},V_.prototype.loadConstants=V_.prototype.loadConstants=function(){var e=this.ptr;return!!ut(e)},V_.prototype.getCode=V_.prototype.getCode=function(){var e=this.ptr;return dt(e)},V_.prototype.getName=V_.prototype.getName=function(e){var t=this.ptr;return F_.prepare(),"object"==typeof e&&(e=w_(e)),Z(ft(t,e))},V_.prototype.getType=V_.prototype.getType=function(){var e=this.ptr;return Et(e)},k_.prototype=Object.create(j_.prototype),k_.prototype.constructor=k_,k_.prototype.__class__=k_,k_.__cache__={},r.PeGTlistExtended=k_,k_.prototype.getGTlist=k_.prototype.getGTlist=function(e,t,_,r,o,n){var p=this.ptr;return e&&"object"==typeof e&&(e=e.ptr),t&&"object"==typeof t&&(t=t.ptr),_&&"object"==typeof _&&(_=_.ptr),r&&"object"==typeof r&&(r=r.ptr),o&&"object"==typeof o&&(o=o.ptr),n&&"object"==typeof n&&(n=n.ptr),L_(bt(p,e,t,_,r,o,n),q_)},k_.prototype.get_PE_GTLIST_OPTS_COMMON=k_.prototype.get_PE_GTLIST_OPTS_COMMON=function(){var e=this.ptr;return mt(e)},Object.defineProperty(k_.prototype,"PE_GTLIST_OPTS_COMMON",{get:k_.prototype.get_PE_GTLIST_OPTS_COMMON}),q_.prototype=Object.create(j_.prototype),q_.prototype.constructor=q_,q_.prototype.__class__=q_,q_.__cache__={},r.PeGTlistExtendedEntry=q_,q_.prototype.getEntries=q_.prototype.getEntries=function(){var e=this.ptr;return L_(Tt(e),J_)},q_.prototype.getSteps=q_.prototype.getSteps=function(){var e=this.ptr;return Ot(e)},q_.prototype.Delete=q_.prototype.Delete=function(e){var t=this.ptr;e&&"object"==typeof e&&(e=e.ptr),St(t,e)},J_.prototype=Object.create(j_.prototype),J_.prototype.constructor=J_,J_.prototype.__class__=J_,J_.__cache__={},r.PeGTlistExtendedGTs=J_,J_.prototype.getDirection=J_.prototype.getDirection=function(){var e=this.ptr;return Nt(e)},J_.prototype.getGeogtran=J_.prototype.getGeogtran=function(){var e=this.ptr;return L_(ht(e),V_)},$_.prototype=Object.create(j_.prototype),$_.prototype.constructor=$_,$_.prototype.__class__=$_,$_.__cache__={},r.PeHorizon=$_,$_.prototype.getNump=$_.prototype.getNump=function(){var e=this.ptr;return lt(e)},$_.prototype.getKind=$_.prototype.getKind=function(){var e=this.ptr;return Mt(e)},$_.prototype.getInclusive=$_.prototype.getInclusive=function(){var e=this.ptr;return vt(e)},$_.prototype.getSize=$_.prototype.getSize=function(){var e=this.ptr;return Dt(e)},$_.prototype.getCoord=$_.prototype.getCoord=function(){var e=this.ptr;return Rt(e)},Q_.prototype=Object.create(j_.prototype),Q_.prototype.constructor=Q_,Q_.prototype.__class__=Q_,Q_.__cache__={},r.PeInteger=Q_,Q_.prototype.get_val=Q_.prototype.get_val=function(){var e=this.ptr;return Gt(e)},Q_.prototype.set_val=Q_.prototype.set_val=function(e){var t=this.ptr;e&&"object"==typeof e&&(e=e.ptr),Ct(t,e)},Object.defineProperty(Q_.prototype,"val",{get:Q_.prototype.get_val,set:Q_.prototype.set_val}),Q_.prototype.__destroy__=Q_.prototype.__destroy__=function(){var e=this.ptr;It(e)},er.prototype=Object.create(j_.prototype),er.prototype.constructor=er,er.prototype.__class__=er,er.__cache__={},r.PeNotationMgrs=er,er.prototype.get_PE_MGRS_STYLE_NEW=er.prototype.get_PE_MGRS_STYLE_NEW=function(){var e=this.ptr;return jt(e)},Object.defineProperty(er.prototype,"PE_MGRS_STYLE_NEW",{get:er.prototype.get_PE_MGRS_STYLE_NEW}),er.prototype.get_PE_MGRS_STYLE_OLD=er.prototype.get_PE_MGRS_STYLE_OLD=function(){var e=this.ptr;return Ut(e)},Object.defineProperty(er.prototype,"PE_MGRS_STYLE_OLD",{get:er.prototype.get_PE_MGRS_STYLE_OLD}),er.prototype.get_PE_MGRS_STYLE_AUTO=er.prototype.get_PE_MGRS_STYLE_AUTO=function(){var e=this.ptr;return Lt(e)},Object.defineProperty(er.prototype,"PE_MGRS_STYLE_AUTO",{get:er.prototype.get_PE_MGRS_STYLE_AUTO}),er.prototype.get_PE_MGRS_180_ZONE_1_PLUS=er.prototype.get_PE_MGRS_180_ZONE_1_PLUS=function(){var e=this.ptr;return Ft(e)},Object.defineProperty(er.prototype,"PE_MGRS_180_ZONE_1_PLUS",{get:er.prototype.get_PE_MGRS_180_ZONE_1_PLUS}),er.prototype.get_PE_MGRS_ADD_SPACES=er.prototype.get_PE_MGRS_ADD_SPACES=function(){var e=this.ptr;return Yt(e)},Object.defineProperty(er.prototype,"PE_MGRS_ADD_SPACES",{get:er.prototype.get_PE_MGRS_ADD_SPACES}),tr.prototype=Object.create(j_.prototype),tr.prototype.constructor=tr,tr.prototype.__class__=tr,tr.__cache__={},r.PeNotationUtm=tr,tr.prototype.get_PE_UTM_OPTS_NONE=tr.prototype.get_PE_UTM_OPTS_NONE=function(){var e=this.ptr;return wt(e)},Object.defineProperty(tr.prototype,"PE_UTM_OPTS_NONE",{get:tr.prototype.get_PE_UTM_OPTS_NONE}),tr.prototype.get_PE_UTM_OPTS_NS=tr.prototype.get_PE_UTM_OPTS_NS=function(){var e=this.ptr;return xt(e)},Object.defineProperty(tr.prototype,"PE_UTM_OPTS_NS",{get:tr.prototype.get_PE_UTM_OPTS_NS}),tr.prototype.get_PE_UTM_OPTS_NS_STRICT=tr.prototype.get_PE_UTM_OPTS_NS_STRICT=function(){var e=this.ptr;return Ht(e)},Object.defineProperty(tr.prototype,"PE_UTM_OPTS_NS_STRICT",{get:tr.prototype.get_PE_UTM_OPTS_NS_STRICT}),tr.prototype.get_PE_UTM_OPTS_ADD_SPACES=tr.prototype.get_PE_UTM_OPTS_ADD_SPACES=function(){var e=this.ptr;return Xt(e)},Object.defineProperty(tr.prototype,"PE_UTM_OPTS_ADD_SPACES",{get:tr.prototype.get_PE_UTM_OPTS_ADD_SPACES}),_r.prototype=Object.create(x_.prototype),_r.prototype.constructor=_r,_r.prototype.__class__=_r,_r.__cache__={},r.PeParameter=_r,_r.prototype.getValue=_r.prototype.getValue=function(){var e=this.ptr;return zt(e)},_r.prototype.getCode=_r.prototype.getCode=function(){var e=this.ptr;return Zt(e)},_r.prototype.getName=_r.prototype.getName=function(e){var t=this.ptr;return F_.prepare(),"object"==typeof e&&(e=w_(e)),Z(Wt(t,e))},_r.prototype.getType=_r.prototype.getType=function(){var e=this.ptr;return Bt(e)},rr.prototype=Object.create(j_.prototype),rr.prototype.constructor=rr,rr.prototype.__class__=rr,rr.__cache__={},r.PePCSInfo=rr,rr.prototype.getCentralMeridian=rr.prototype.getCentralMeridian=function(){var e=this.ptr;return Kt(e)},rr.prototype.getDomainMinx=rr.prototype.getDomainMinx=function(){var e=this.ptr;return Vt(e)},rr.prototype.getDomainMiny=rr.prototype.getDomainMiny=function(){var e=this.ptr;return kt(e)},rr.prototype.getDomainMaxx=rr.prototype.getDomainMaxx=function(){var e=this.ptr;return qt(e)},rr.prototype.getDomainMaxy=rr.prototype.getDomainMaxy=function(){var e=this.ptr;return Jt(e)},rr.prototype.getNorthPoleLocation=rr.prototype.getNorthPoleLocation=function(){var e=this.ptr;return $t(e)},rr.prototype.getNorthPoleGeometry=rr.prototype.getNorthPoleGeometry=function(){var e=this.ptr;return Qt(e)},rr.prototype.getSouthPoleLocation=rr.prototype.getSouthPoleLocation=function(){var e=this.ptr;return e_(e)},rr.prototype.getSouthPoleGeometry=rr.prototype.getSouthPoleGeometry=function(){var e=this.ptr;return t_(e)},rr.prototype.isDensificationNeeded=rr.prototype.isDensificationNeeded=function(){var e=this.ptr;return!!__(e)},rr.prototype.isGcsHorizonMultiOverlap=rr.prototype.isGcsHorizonMultiOverlap=function(){var e=this.ptr;return!!r_(e)},rr.prototype.isPannableRectangle=rr.prototype.isPannableRectangle=function(){var e=this.ptr;return!!o_(e)},rr.prototype.generate=rr.prototype.generate=function(e,t){var _=this.ptr;return e&&"object"==typeof e&&(e=e.ptr),t&&"object"==typeof t&&(t=t.ptr),L_(n_(_,e,t),rr)},rr.prototype.get_PE_PCSINFO_OPTION_NONE=rr.prototype.get_PE_PCSINFO_OPTION_NONE=function(){var e=this.ptr;return p_(e)},Object.defineProperty(rr.prototype,"PE_PCSINFO_OPTION_NONE",{get:rr.prototype.get_PE_PCSINFO_OPTION_NONE}),rr.prototype.get_PE_PCSINFO_OPTION_DOMAIN=rr.prototype.get_PE_PCSINFO_OPTION_DOMAIN=function(){var e=this.ptr;return i_(e)},Object.defineProperty(rr.prototype,"PE_PCSINFO_OPTION_DOMAIN",{get:rr.prototype.get_PE_PCSINFO_OPTION_DOMAIN}),rr.prototype.get_PE_POLE_OUTSIDE_BOUNDARY=rr.prototype.get_PE_POLE_OUTSIDE_BOUNDARY=function(){var e=this.ptr;return c_(e)},Object.defineProperty(rr.prototype,"PE_POLE_OUTSIDE_BOUNDARY",{get:rr.prototype.get_PE_POLE_OUTSIDE_BOUNDARY}),rr.prototype.get_PE_POLE_POINT=rr.prototype.get_PE_POLE_POINT=function(){var e=this.ptr;return s_(e)},Object.defineProperty(rr.prototype,"PE_POLE_POINT",{get:rr.prototype.get_PE_POLE_POINT}),or.prototype=Object.create(x_.prototype),or.prototype.constructor=or,or.prototype.__class__=or,or.__cache__={},r.PePrimem=or,or.prototype.getLongitude=or.prototype.getLongitude=function(){var e=this.ptr;return P_(e)},or.prototype.getCode=or.prototype.getCode=function(){var e=this.ptr;return a_(e)},or.prototype.getName=or.prototype.getName=function(e){var t=this.ptr;return F_.prepare(),"object"==typeof e&&(e=w_(e)),Z(g_(t,e))},or.prototype.getType=or.prototype.getType=function(){var e=this.ptr;return y_(e)},nr.prototype=Object.create(H_.prototype),nr.prototype.constructor=nr,nr.prototype.__class__=nr,nr.__cache__={},r.PeProjcs=nr,nr.prototype.getGeogcs=nr.prototype.getGeogcs=function(){var e=this.ptr;return L_(u_(e),K_)},nr.prototype.getParameters=nr.prototype.getParameters=function(){var e=this.ptr;return d_(e)},nr.prototype.getUnit=nr.prototype.getUnit=function(){var e=this.ptr;return L_(f_(e),ir)},nr.prototype.loadConstants=nr.prototype.loadConstants=function(){var e=this.ptr;return!!E_(e)},nr.prototype.horizonGcsGenerate=nr.prototype.horizonGcsGenerate=function(){var e=this.ptr;return L_(b_(e),$_)},nr.prototype.horizonPcsGenerate=nr.prototype.horizonPcsGenerate=function(){var e=this.ptr;return L_(m_(e),$_)},nr.prototype.getCode=nr.prototype.getCode=function(){var e=this.ptr;return T_(e)},nr.prototype.getName=nr.prototype.getName=function(e){var t=this.ptr;return F_.prepare(),"object"==typeof e&&(e=w_(e)),Z(O_(t,e))},nr.prototype.getType=nr.prototype.getType=function(){var e=this.ptr;return S_(e)},pr.prototype=Object.create(x_.prototype),pr.prototype.constructor=pr,pr.prototype.__class__=pr,pr.__cache__={},r.PeSpheroid=pr,pr.prototype.getAxis=pr.prototype.getAxis=function(){var e=this.ptr;return N_(e)},pr.prototype.getFlattening=pr.prototype.getFlattening=function(){var e=this.ptr;return h_(e)},pr.prototype.getCode=pr.prototype.getCode=function(){var e=this.ptr;return l_(e)},pr.prototype.getName=pr.prototype.getName=function(e){var t=this.ptr;return F_.prepare(),"object"==typeof e&&(e=w_(e)),Z(M_(t,e))},pr.prototype.getType=pr.prototype.getType=function(){var e=this.ptr;return v_(e)},ir.prototype=Object.create(x_.prototype),ir.prototype.constructor=ir,ir.prototype.__class__=ir,ir.__cache__={},r.PeUnit=ir,ir.prototype.getUnitFactor=ir.prototype.getUnitFactor=function(){var e=this.ptr;return D_(e)},ir.prototype.getCode=ir.prototype.getCode=function(){var e=this.ptr;return R_(e)},ir.prototype.getName=ir.prototype.getName=function(e){var t=this.ptr;return F_.prepare(),"object"==typeof e&&(e=w_(e)),Z(A_(t,e))},ir.prototype.getType=ir.prototype.getType=function(){var e=this.ptr;return G_(e)},cr.prototype=Object.create(j_.prototype),cr.prototype.constructor=cr,cr.prototype.__class__=cr,cr.__cache__={},r.PeVersion=cr,cr.prototype.version_string=cr.prototype.version_string=function(){var e=this.ptr;return Z(C_(e))},r.ensureCache=F_,r.ensureString=Y_,r.ensureInt8=w_,r.ensureInt16=function(e){if("object"==typeof e){var t=F_.alloc(e,O);return F_.copy(e,O,t),t}return e},r.ensureInt32=function(e){if("object"==typeof e){var t=F_.alloc(e,S);return F_.copy(e,S,t),t}return e},r.ensureFloat32=function(e){if("object"==typeof e){var t=F_.alloc(e,h);return F_.copy(e,h,t),t}return e},r.ensureFloat64=function(e){if("object"==typeof e){var t=F_.alloc(e,l);return F_.copy(e,l,t),t}return e},e.ready},r.exports=n;const c=(0,p.g)(i.exports),s=Object.freeze(Object.defineProperty({__proto__:null,default:c},Symbol.toStringTag,{value:"Module"}))}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8534.1ca2b1e215e746612893.js b/docs/sentinel1-explorer/8534.1ca2b1e215e746612893.js new file mode 100644 index 00000000..281548f8 --- /dev/null +++ b/docs/sentinel1-explorer/8534.1ca2b1e215e746612893.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8534],{18534:function(e,s,t){t.r(s),t.d(s,{default:function(){return d}});var r=t(36663),p=t(81977),a=(t(39994),t(13802),t(4157),t(40266)),n=t(15881);let u=class extends n.default{get updateSuspended(){const e=this.parent?.dynamicGroupLayerView;return this.suspended&&(!e||!0===e.suspended)}};(0,r._)([(0,p.Cb)()],u.prototype,"updateSuspended",null),u=(0,r._)([(0,a.j)("esri.views.2d.layers.CatalogFootprintLayerView2D")],u);const d=u}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8536.98d8552ac3d1cbf034ba.js b/docs/sentinel1-explorer/8536.98d8552ac3d1cbf034ba.js new file mode 100644 index 00000000..ee4dd45a --- /dev/null +++ b/docs/sentinel1-explorer/8536.98d8552ac3d1cbf034ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8536],{66318:function(e,t,s){function n(e){return null!=u(e)||null!=o(e)}function r(e){return a.test(e)}function i(e){return u(e)??o(e)}function o(e){const t=new Date(e);return function(e,t){if(Number.isNaN(e.getTime()))return!1;let s=!0;if(d&&/\d+\W*$/.test(t)){const e=t.match(/[a-zA-Z]{2,}/);if(e){let t=!1,n=0;for(;!t&&n<=e.length;)t=!l.test(e[n]),n++;s=!t}}return s}(t,e)?Number.isNaN(t.getTime())?null:t.getTime()-6e4*t.getTimezoneOffset():null}function u(e){const t=a.exec(e);if(!t?.groups)return null;const s=t.groups,n=+s.year,r=+s.month-1,i=+s.day,o=+(s.hours??"0"),u=+(s.minutes??"0"),l=+(s.seconds??"0");if(o>23)return null;if(u>59)return null;if(l>59)return null;const d=s.ms??"0",c=d?+d.padEnd(3,"0").substring(0,3):0;let f;if(s.isUTC||!s.offsetSign)f=Date.UTC(n,r,i,o,u,l,c);else{const e=+s.offsetHours,t=+s.offsetMinutes;f=6e4*("+"===s.offsetSign?-1:1)*(60*e+t)+Date.UTC(n,r,i,o,u,l,c)}return Number.isNaN(f)?null:f}s.d(t,{mu:function(){return r},of:function(){return n},sG:function(){return i}});const a=/^(?:(?-?\d{4,})-(?\d{2})-(?\d{2}))(?:T(?\d{2}):(?\d{2}):(?\d{2})(?:\.(?\d+))?)?(?:(?Z)|(?:(?\+|-)(?\d{2}):(?\d{2})))?$/;const l=/^((jan(uary)?)|(feb(ruary)?)|(mar(ch)?)|(apr(il)?)|(may)|(jun(e)?)|(jul(y)?)|(aug(ust)?)|(sep(tember)?)|(oct(ober)?)|(nov(ember)?)|(dec(ember)?)|(am)|(pm)|(gmt)|(utc))$/i,d=!Number.isNaN(new Date("technology 10").getTime())},69400:function(e,t,s){s.d(t,{Z:function(){return h}});var n=s(7753),r=s(70375),i=s(31355),o=s(13802),u=s(37116),a=s(24568),l=s(12065),d=s(117),c=s(28098),f=s(12102);const p=(0,u.Ue)();class h{constructor(e){this.geometryInfo=e,this._boundsStore=new d.H,this._featuresById=new Map,this._markedIds=new Set,this.events=new i.Z,this.featureAdapter=f.n}get geometryType(){return this.geometryInfo.geometryType}get hasM(){return this.geometryInfo.hasM}get hasZ(){return this.geometryInfo.hasZ}get numFeatures(){return this._featuresById.size}get fullBounds(){return this._boundsStore.fullBounds}get storeStatistics(){let e=0;return this._featuresById.forEach((t=>{null!=t.geometry&&t.geometry.coords&&(e+=t.geometry.coords.length)})),{featureCount:this._featuresById.size,vertexCount:e/(this.hasZ?this.hasM?4:3:this.hasM?3:2)}}getFullExtent(e){if(null==this.fullBounds)return null;const[t,s,n,r]=this.fullBounds;return{xmin:t,ymin:s,xmax:n,ymax:r,spatialReference:(0,c.S2)(e)}}add(e){this._add(e),this._emitChanged()}addMany(e){for(const t of e)this._add(t);this._emitChanged()}upsertMany(e){const t=e.map((e=>this._upsert(e)));return this._emitChanged(),t.filter(n.pC)}clear(){this._featuresById.clear(),this._boundsStore.clear(),this._emitChanged()}removeById(e){const t=this._featuresById.get(e);return t?(this._remove(t),this._emitChanged(),t):null}removeManyById(e){this._boundsStore.invalidateIndex();for(const t of e){const e=this._featuresById.get(t);e&&this._remove(e)}this._emitChanged()}forEachBounds(e,t){for(const s of e){const e=this._boundsStore.get(s.objectId);e&&t((0,u.JR)(p,e))}}getFeature(e){return this._featuresById.get(e)}has(e){return this._featuresById.has(e)}forEach(e){this._featuresById.forEach((t=>e(t)))}forEachInBounds(e,t){this._boundsStore.forEachInBounds(e,(e=>{t(this._featuresById.get(e))}))}startMarkingUsedFeatures(){this._boundsStore.invalidateIndex(),this._markedIds.clear()}sweep(){let e=!1;this._featuresById.forEach(((t,s)=>{this._markedIds.has(s)||(e=!0,this._remove(t))})),this._markedIds.clear(),e&&this._emitChanged()}_emitChanged(){this.events.emit("changed",void 0)}_add(e){if(!e)return;const t=e.objectId;if(null==t)return void o.Z.getLogger("esri.layers.graphics.data.FeatureStore").error(new r.Z("featurestore:invalid-feature","feature id is missing",{feature:e}));const s=this._featuresById.get(t);let n;if(this._markedIds.add(t),s?(e.displayId=s.displayId,n=this._boundsStore.get(t),this._boundsStore.delete(t)):null!=this.onFeatureAdd&&this.onFeatureAdd(e),!e.geometry?.coords?.length)return this._boundsStore.set(t,null),void this._featuresById.set(t,e);n=(0,l.$)(null!=n?n:(0,a.Ue)(),e.geometry,this.geometryInfo.hasZ,this.geometryInfo.hasM),null!=n&&this._boundsStore.set(t,n),this._featuresById.set(t,e)}_upsert(e){const t=e?.objectId;if(null==t)return o.Z.getLogger("esri.layers.graphics.data.FeatureStore").error(new r.Z("featurestore:invalid-feature","feature id is missing",{feature:e})),null;const s=this._featuresById.get(t);if(!s)return this._add(e),e;this._markedIds.add(t);const{geometry:n,attributes:i}=e;for(const e in i)s.attributes[e]=i[e];return n&&(s.geometry=n,this._boundsStore.set(t,(0,l.$)((0,a.Ue)(),n,this.geometryInfo.hasZ,this.geometryInfo.hasM)??null)),s}_remove(e){null!=this.onFeatureRemove&&this.onFeatureRemove(e);const t=e.objectId;return this._markedIds.delete(t),this._boundsStore.delete(t),this._featuresById.delete(t),e}}},93711:function(e,t,s){s.d(t,{S:function(){return r},X:function(){return n}});const n=1;function r(e,t){let s=0;for(const n of t){const t=n.attributes?.[e];"number"==typeof t&&isFinite(t)&&(s=Math.max(s,t))}return s}},98536:function(e,t,s){s.r(t),s.d(t,{default:function(){return E}});var n=s(70375),r=s(53736),i=s(35925),o=s(12065),u=s(93711),a=s(69400),l=s(66069),d=s(66608),c=s(40400),f=s(24366),p=s(28790),h=s(86349),y=s(14845),m=s(72559);const g=i.YU,I={xmin:-180,ymin:-90,xmax:180,ymax:90,spatialReference:i.YU},b={hasAttachments:!1,capabilities:"query, editing, create, delete, update",useStandardizedQueries:!0,supportsCoordinatesQuantization:!0,supportsReturningQueryGeometry:!0,advancedQueryCapabilities:{supportsQueryAttachments:!1,supportsStatistics:!0,supportsPercentileStatistics:!0,supportsReturningGeometryCentroid:!0,supportsQueryWithDistance:!0,supportsDistinct:!0,supportsReturningQueryExtent:!0,supportsReturningGeometryProperties:!1,supportsHavingClause:!0,supportsOrderBy:!0,supportsPagination:!0,supportsQueryWithResultType:!1,supportsSqlExpression:!0,supportsDisjointSpatialRel:!0}};function _(e){return(0,r.wp)(e)?null!=e.z:!!e.hasZ}function F(e){return(0,r.wp)(e)?null!=e.m:!!e.hasM}class E{constructor(){this._queryEngine=null,this._nextObjectId=null}destroy(){this._queryEngine?.destroy(),this._queryEngine=this._createDefaultAttributes=null}async load(e){const t=[],{features:s}=e,r=this._inferLayerProperties(s,e.fields),i=e.fields||[],o=null!=e.hasM?e.hasM:!!r.hasM,f=null!=e.hasZ?e.hasZ:!!r.hasZ,_=!e.spatialReference&&!r.spatialReference,F=_?g:e.spatialReference||r.spatialReference,E=_?I:null,T=e.geometryType||r.geometryType,v=!T;let S=e.objectIdField||r.objectIdField,x=e.timeInfo;const w=new p.Z(i);if(!v&&(_&&t.push({name:"feature-layer:spatial-reference-not-found",message:"Spatial reference not provided or found in features. Defaults to WGS84"}),!T))throw new n.Z("feature-layer:missing-property","geometryType not set and couldn't be inferred from the provided features");if(!S)throw new n.Z("feature-layer:missing-property","objectIdField not set and couldn't be found in the provided fields");if(r.objectIdField&&S!==r.objectIdField&&(t.push({name:"feature-layer:duplicated-oid-field",message:`Provided objectIdField "${S}" doesn't match the field name "${r.objectIdField}", found in the provided fields`}),S=r.objectIdField),S&&!r.objectIdField){const e=w.get(S);e?(S=e.name,e.type="esriFieldTypeOID",e.editable=!1,e.nullable=!1):i.unshift({alias:S,name:S,type:"esriFieldTypeOID",editable:!1,nullable:!1})}for(const e of i){if(null==e.name&&(e.name=e.alias),null==e.alias&&(e.alias=e.name),!e.name)throw new n.Z("feature-layer:invalid-field-name","field name is missing",{field:e});if(e.name===S&&(e.type="esriFieldTypeOID"),!h.v.jsonValues.includes(e.type))throw new n.Z("feature-layer:invalid-field-type",`invalid type for field "${e.name}"`,{field:e});null==e.length&&(e.length=(0,y.ZR)(e))}const j={};for(const e of i)if("esriFieldTypeOID"!==e.type&&"esriFieldTypeGlobalID"!==e.type){const t=(0,y.os)(e);void 0!==t&&(j[e.name]=t)}if(x){if(x.startTimeField){const e=w.get(x.startTimeField);e?(x.startTimeField=e.name,e.type="esriFieldTypeDate"):x.startTimeField=null}if(x.endTimeField){const e=w.get(x.endTimeField);e?(x.endTimeField=e.name,e.type="esriFieldTypeDate"):x.endTimeField=null}if(x.trackIdField){const e=w.get(x.trackIdField);e?x.trackIdField=e.name:(x.trackIdField=null,t.push({name:"feature-layer:invalid-timeInfo-trackIdField",message:"trackIdField is missing",details:{timeInfo:x}}))}x.startTimeField||x.endTimeField||(t.push({name:"feature-layer:invalid-timeInfo",message:"startTimeField and endTimeField are missing or invalid",details:{timeInfo:x}}),x=null)}const R=w.dateFields.length?{timeZoneIANA:e.dateFieldsTimeZone??m.pt}:null;this._createDefaultAttributes=(0,c.Dm)(j,S);const Z={warnings:t,featureErrors:[],layerDefinition:{...b,drawingInfo:(0,c.bU)(T),templates:(0,c.Hq)(j),extent:E,geometryType:T,objectIdField:S,fields:i,hasZ:f,hasM:o,timeInfo:x,dateFieldsTimeReference:R},assignedObjectIds:{}};if(this._queryEngine=new d.q({fieldsIndex:p.Z.fromLayerJSON({fields:i,timeInfo:x,dateFieldsTimeReference:R}),geometryType:T,hasM:o,hasZ:f,objectIdField:S,spatialReference:F,featureStore:new a.Z({geometryType:T,hasM:o,hasZ:f}),timeInfo:x,cacheSpatialQueries:!0}),!s?.length)return this._nextObjectId=u.X,Z;const q=(0,u.S)(S,s);return this._nextObjectId=q+1,await(0,l._W)(s,F),this._loadInitialFeatures(Z,s)}async applyEdits(e){const{spatialReference:t,geometryType:s}=this._queryEngine;return await Promise.all([(0,f.b)(t,s),(0,l._W)(e.adds,t),(0,l._W)(e.updates,t)]),this._applyEdits(e)}queryFeatures(e,t={}){return this._queryEngine.executeQuery(e,t.signal)}queryFeatureCount(e,t={}){return this._queryEngine.executeQueryForCount(e,t.signal)}queryObjectIds(e,t={}){return this._queryEngine.executeQueryForIds(e,t.signal)}queryExtent(e,t={}){return this._queryEngine.executeQueryForExtent(e,t.signal)}querySnapping(e,t={}){return this._queryEngine.executeQueryForSnapping(e,t.signal)}_inferLayerProperties(e,t){let s,n,i=null,o=null,u=null;for(const t of e){const e=t.geometry;if(null!=e&&(i||(i=(0,r.Ji)(e)),o||(o=e.spatialReference),null==s&&(s=_(e)),null==n&&(n=F(e)),i&&o&&null!=s&&null!=n))break}if(t&&t.length){let e=null;t.some((t=>{const s="esriFieldTypeOID"===t.type,n=!t.type&&t.name&&"objectid"===t.name.toLowerCase();return e=t,s||n}))&&(u=e.name)}return{geometryType:i,spatialReference:o,objectIdField:u,hasM:n,hasZ:s}}async _loadInitialFeatures(e,t){const{geometryType:s,hasM:n,hasZ:i,objectIdField:u,spatialReference:a,featureStore:d,fieldsIndex:c}=this._queryEngine,p=[];for(const n of t){if(null!=n.uid&&(e.assignedObjectIds[n.uid]=-1),n.geometry&&s!==(0,r.Ji)(n.geometry)){e.featureErrors.push((0,f.av)("Incorrect geometry type."));continue}const t=this._createDefaultAttributes(),i=(0,f.O0)(c,t,n.attributes,!0);i?e.featureErrors.push(i):(this._assignObjectId(t,n.attributes,!0),n.attributes=t,null!=n.uid&&(e.assignedObjectIds[n.uid]=n.attributes[u]),null!=n.geometry&&(n.geometry=(0,l.iV)(n.geometry,n.geometry.spatialReference,a)),p.push(n))}d.addMany((0,o.Yn)([],p,s,i,n,u));const{fullExtent:h,timeExtent:y}=await this._queryEngine.fetchRecomputedExtents();if(e.layerDefinition.extent=h,y){const{start:t,end:s}=y;e.layerDefinition.timeInfo.timeExtent=[t,s]}return e}async _applyEdits(e){const{adds:t,updates:s,deletes:n}=e,r={addResults:[],deleteResults:[],updateResults:[],uidToObjectId:{}};if(t?.length&&this._applyAddEdits(r,t),s?.length&&this._applyUpdateEdits(r,s),n?.length){for(const e of n)r.deleteResults.push((0,f.d1)(e));this._queryEngine.featureStore.removeManyById(n)}const{fullExtent:i,timeExtent:o}=await this._queryEngine.fetchRecomputedExtents();return{extent:i,timeExtent:o,featureEditResults:r}}_applyAddEdits(e,t){const{addResults:s}=e,{geometryType:n,hasM:i,hasZ:u,objectIdField:a,spatialReference:d,featureStore:c,fieldsIndex:p}=this._queryEngine,h=[];for(const i of t){if(i.geometry&&n!==(0,r.Ji)(i.geometry)){s.push((0,f.av)("Incorrect geometry type."));continue}const t=this._createDefaultAttributes(),o=(0,f.O0)(p,t,i.attributes);if(o)s.push(o);else{if(this._assignObjectId(t,i.attributes),i.attributes=t,null!=i.uid){const t=i.attributes[a];e.uidToObjectId[i.uid]=t}if(null!=i.geometry){const e=i.geometry.spatialReference??d;i.geometry=(0,l.iV)((0,f.og)(i.geometry,e),e,d)}h.push(i),s.push((0,f.d1)(i.attributes[a]))}}c.addMany((0,o.Yn)([],h,n,u,i,a))}_applyUpdateEdits({updateResults:e},t){const{geometryType:s,hasM:n,hasZ:i,objectIdField:u,spatialReference:a,featureStore:d,fieldsIndex:c}=this._queryEngine;for(const p of t){const{attributes:t,geometry:h}=p,y=t?.[u];if(null==y){e.push((0,f.av)(`Identifier field ${u} missing`));continue}if(!d.has(y)){e.push((0,f.av)(`Feature with object id ${y} missing`));continue}const m=(0,o.EI)(d.getFeature(y),s,i,n);if(null!=h){if(s!==(0,r.Ji)(h)){e.push((0,f.av)("Incorrect geometry type."));continue}const t=h.spatialReference??a;m.geometry=(0,l.iV)((0,f.og)(h,t),t,a)}if(t){const s=(0,f.O0)(c,m.attributes,t);if(s){e.push(s);continue}}d.add((0,o.XA)(m,s,i,n,u)),e.push((0,f.d1)(y))}}_assignObjectId(e,t,s=!1){const n=this._queryEngine.objectIdField;s&&t&&isFinite(t[n])?e[n]=t[n]:e[n]=this._nextObjectId++}}},40400:function(e,t,s){s.d(t,{Dm:function(){return d},Hq:function(){return c},MS:function(){return f},bU:function(){return u}});var n=s(39994),r=s(67134),i=s(10287),o=s(86094);function u(e){return{renderer:{type:"simple",symbol:"esriGeometryPoint"===e||"esriGeometryMultipoint"===e?o.I4:"esriGeometryPolyline"===e?o.ET:o.lF}}}const a=/^[_$a-zA-Z][_$a-zA-Z0-9]*$/;let l=1;function d(e,t){if((0,n.Z)("esri-csp-restrictions"))return()=>({[t]:null,...e});try{let s=`this.${t} = null;`;for(const t in e)s+=`this${a.test(t)?`.${t}`:`["${t}"]`} = ${JSON.stringify(e[t])};`;const n=new Function(`\n return class AttributesClass$${l++} {\n constructor() {\n ${s};\n }\n }\n `)();return()=>new n}catch(s){return()=>({[t]:null,...e})}}function c(e={}){return[{name:"New Feature",description:"",prototype:{attributes:(0,r.d9)(e)}}]}function f(e,t){return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:e},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:t,supportsDelete:t,supportsEditing:t,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:t,supportsExceedsLimitStatistics:!0,supportsAsyncConvert3D:!1},query:i.g,queryRelated:{supportsCount:!0,supportsOrderBy:!0,supportsPagination:!0,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsGeometryUpdate:t,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}},24366:function(e,t,s){s.d(t,{O0:function(){return f},av:function(){return a},b:function(){return m},d1:function(){return d},og:function(){return y}});var n=s(66318),r=s(35925),i=s(14845);class o{constructor(){this.code=null,this.description=null}}class u{constructor(e){this.error=new o,this.globalId=null,this.objectId=null,this.success=!1,this.uniqueId=null,this.error.description=e}}function a(e){return new u(e)}class l{constructor(e){this.globalId=null,this.success=!0,this.objectId=this.uniqueId=e}}function d(e){return new l(e)}const c=new Set;function f(e,t,s,n=!1){c.clear();for(const r in s){const o=e.get(r);if(!o)continue;const u=p(o,s[r]);if(c.add(o.name),o&&(n||o.editable)){const e=(0,i.Qc)(o,u);if(e)return a((0,i.vP)(e,o,u));t[o.name]=u}}for(const t of e?.requiredFields??[])if(!c.has(t.name))return a(`missing required field "${t.name}"`);return null}function p(e,t){let s=t;return(0,i.H7)(e)&&"string"==typeof t?s=parseFloat(t):(0,i.qN)(e)&&null!=t&&"string"!=typeof t?s=String(t):(0,i.y2)(e)&&"string"==typeof t&&(s=(0,n.sG)(t)),(0,i.Pz)(s)}let h;function y(e,t){if(!e||!(0,r.JY)(t))return e;if("rings"in e||"paths"in e){if(null==h)throw new TypeError("geometry engine not loaded");return h.simplify(t,e)}return e}async function m(e,t){!(0,r.JY)(e)||"esriGeometryPolygon"!==t&&"esriGeometryPolyline"!==t||await async function(){return null==h&&(h=await Promise.all([s.e(9067),s.e(3296)]).then(s.bind(s,8923))),h}()}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8575.437b23809333bb041473.js b/docs/sentinel1-explorer/8575.437b23809333bb041473.js new file mode 100644 index 00000000..5ebe7d3c --- /dev/null +++ b/docs/sentinel1-explorer/8575.437b23809333bb041473.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8575],{88338:function(t,e,i){i.d(e,{b:function(){return f},l:function(){return o},o:function(){return c}});var r,n=i(58340),s={exports:{}};void 0!==(r=["precision","highp","mediump","lowp","attribute","const","uniform","varying","break","continue","do","for","while","if","else","in","out","inout","float","int","void","bool","true","false","discard","return","mat2","mat3","mat4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","sampler1D","sampler2D","sampler3D","samplerCube","sampler1DShadow","sampler2DShadow","struct","asm","class","union","enum","typedef","template","this","packed","goto","switch","default","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler2DRect","sampler3DRect","sampler2DRectShadow","sizeof","cast","namespace","using"])&&(s.exports=r);const o=(0,n.g)(s.exports);var a,h={exports:{}};a=h,function(t){var e=["<<=",">>=","++","--","<<",">>","<=",">=","==","!=","&&","||","+=","-=","*=","/=","%=","&=","^^","^=","|=","(",")","[","]",".","!","~","*","/","%","+","-","<",">","&","^","|","?",":","=",",",";","{","}"];void 0!==e&&(a.exports=e)}();const c=(0,n.g)(h.exports);var l,u={exports:{}};l=u,function(t){var e=["abs","acos","all","any","asin","atan","ceil","clamp","cos","cross","dFdx","dFdy","degrees","distance","dot","equal","exp","exp2","faceforward","floor","fract","gl_BackColor","gl_BackLightModelProduct","gl_BackLightProduct","gl_BackMaterial","gl_BackSecondaryColor","gl_ClipPlane","gl_ClipVertex","gl_Color","gl_DepthRange","gl_DepthRangeParameters","gl_EyePlaneQ","gl_EyePlaneR","gl_EyePlaneS","gl_EyePlaneT","gl_Fog","gl_FogCoord","gl_FogFragCoord","gl_FogParameters","gl_FragColor","gl_FragCoord","gl_FragData","gl_FragDepth","gl_FragDepthEXT","gl_FrontColor","gl_FrontFacing","gl_FrontLightModelProduct","gl_FrontLightProduct","gl_FrontMaterial","gl_FrontSecondaryColor","gl_LightModel","gl_LightModelParameters","gl_LightModelProducts","gl_LightProducts","gl_LightSource","gl_LightSourceParameters","gl_MaterialParameters","gl_MaxClipPlanes","gl_MaxCombinedTextureImageUnits","gl_MaxDrawBuffers","gl_MaxFragmentUniformComponents","gl_MaxLights","gl_MaxTextureCoords","gl_MaxTextureImageUnits","gl_MaxTextureUnits","gl_MaxVaryingFloats","gl_MaxVertexAttribs","gl_MaxVertexTextureImageUnits","gl_MaxVertexUniformComponents","gl_ModelViewMatrix","gl_ModelViewMatrixInverse","gl_ModelViewMatrixInverseTranspose","gl_ModelViewMatrixTranspose","gl_ModelViewProjectionMatrix","gl_ModelViewProjectionMatrixInverse","gl_ModelViewProjectionMatrixInverseTranspose","gl_ModelViewProjectionMatrixTranspose","gl_MultiTexCoord0","gl_MultiTexCoord1","gl_MultiTexCoord2","gl_MultiTexCoord3","gl_MultiTexCoord4","gl_MultiTexCoord5","gl_MultiTexCoord6","gl_MultiTexCoord7","gl_Normal","gl_NormalMatrix","gl_NormalScale","gl_ObjectPlaneQ","gl_ObjectPlaneR","gl_ObjectPlaneS","gl_ObjectPlaneT","gl_Point","gl_PointCoord","gl_PointParameters","gl_PointSize","gl_Position","gl_ProjectionMatrix","gl_ProjectionMatrixInverse","gl_ProjectionMatrixInverseTranspose","gl_ProjectionMatrixTranspose","gl_SecondaryColor","gl_TexCoord","gl_TextureEnvColor","gl_TextureMatrix","gl_TextureMatrixInverse","gl_TextureMatrixInverseTranspose","gl_TextureMatrixTranspose","gl_Vertex","greaterThan","greaterThanEqual","inversesqrt","length","lessThan","lessThanEqual","log","log2","matrixCompMult","max","min","mix","mod","normalize","not","notEqual","pow","radians","reflect","refract","sign","sin","smoothstep","sqrt","step","tan","texture2D","texture2DLod","texture2DProj","texture2DProjLod","textureCube","textureCubeLod","texture2DLodEXT","texture2DProjLodEXT","textureCubeLodEXT","texture2DGradEXT","texture2DProjGradEXT","textureCubeGradEXT","textureSize","texelFetch"];void 0!==e&&(l.exports=e)}();const f=(0,n.g)(u.exports)},78951:function(t,e,i){i.d(e,{f:function(){return c}});var r=i(7753),n=i(13802),s=i(86098),o=i(6174),a=i(91907);const h=()=>n.Z.getLogger("esri.views.webgl.BufferObject");class c{static createIndex(t,e,i){return new c(t,a.w0.ELEMENT_ARRAY_BUFFER,e,i)}static createVertex(t,e,i){return new c(t,a.w0.ARRAY_BUFFER,e,i)}static createUniform(t,e,i){return new c(t,a.w0.UNIFORM_BUFFER,e,i)}static createPixelPack(t,e=a.l1.STREAM_READ,i){const r=new c(t,a.w0.PIXEL_PACK_BUFFER,e);return i&&r.setSize(i),r}static createPixelUnpack(t,e=a.l1.STREAM_DRAW,i){return new c(t,a.w0.PIXEL_UNPACK_BUFFER,e,i)}static createTransformFeedback(t,e=a.l1.STATIC_DRAW,i){const r=new c(t,a.w0.TRANSFORM_FEEDBACK_BUFFER,e);return r.setSize(i),r}constructor(t,e,i,r){this._context=t,this.bufferType=e,this.usage=i,this._glName=null,this._size=-1,this._indexType=void 0,t.instanceCounter.increment(a._g.BufferObject,this),this._glName=this._context.gl.createBuffer(),(0,o.zu)(this._context.gl),r&&this.setData(r)}get glName(){return this._glName}get size(){return this._size}get indexType(){return this._indexType}get usedMemory(){return this.bufferType===a.w0.ELEMENT_ARRAY_BUFFER?this._indexType===a.g.UNSIGNED_INT?4*this._size:2*this._size:this._size}get _isVAOAware(){return this.bufferType===a.w0.ELEMENT_ARRAY_BUFFER||this.bufferType===a.w0.ARRAY_BUFFER}dispose(){this._context?.gl?(this._glName&&(this._context.gl.deleteBuffer(this._glName),this._glName=null),this._context.instanceCounter.decrement(a._g.BufferObject,this),this._context=null):this._glName&&h().warn("Leaked WebGL buffer object")}setSize(t,e=null){if(t<=0&&h().error("Buffer size needs to be positive!"),this.bufferType===a.w0.ELEMENT_ARRAY_BUFFER&&null!=e)switch(this._indexType=e,e){case a.g.UNSIGNED_SHORT:t*=2;break;case a.g.UNSIGNED_INT:t*=4}this._setBufferData(t)}setData(t){if(!t)return;let e=t.byteLength;this.bufferType===a.w0.ELEMENT_ARRAY_BUFFER&&((0,s.Uc)(t)&&(e/=2,this._indexType=a.g.UNSIGNED_SHORT),(0,s.ZY)(t)&&(e/=4,this._indexType=a.g.UNSIGNED_INT)),this._setBufferData(e,t)}_setBufferData(t,e=null){this._size=t;const i=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);const r=this._context.gl;null!=e?r.bufferData(this.bufferType,e,this.usage):r.bufferData(this.bufferType,t,this.usage),(0,o.zu)(r),this._isVAOAware&&this._context.bindVAO(i)}setSubData(t,e,i,r){if(!t)return;(e<0||e*t.BYTES_PER_ELEMENT>=this.usedMemory)&&h().error("offset is out of range!"),i>=r&&h().error("end must be bigger than start!"),(e+(r-i))*t.BYTES_PER_ELEMENT>this.usedMemory&&h().error("An attempt to write beyond the end of the buffer!");const n=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);const{gl:s}=this._context;s.bufferSubData(this.bufferType,e*t.BYTES_PER_ELEMENT,t,i,r-i),(0,o.zu)(s),this._isVAOAware&&this._context.bindVAO(n)}getSubData(t,e=0,i,n){if(i<0||n<0)return void h().error("Problem getting subdata: offset and length were less than zero!");const s=function(t){return(0,r.zG)(t)}(t)?t.BYTES_PER_ELEMENT:1;if(s*((i??0)+(n??0))>t.byteLength)return void h().error("Problem getting subdata: offset and length exceeded destination size!");e+s*(n??0)>this.usedMemory&&h().warn("Potential problem getting subdata: requested data exceeds buffer size!");const o=this._context.gl;this.bufferType===a.w0.TRANSFORM_FEEDBACK_BUFFER?(this._context.bindBuffer(this,a.w0.TRANSFORM_FEEDBACK_BUFFER),o.getBufferSubData(a.w0.TRANSFORM_FEEDBACK_BUFFER,e,t,i,n),this._context.unbindBuffer(a.w0.TRANSFORM_FEEDBACK_BUFFER)):(this._context.bindBuffer(this,a.w0.COPY_READ_BUFFER),o.getBufferSubData(a.w0.COPY_READ_BUFFER,e,t,i,n),this._context.unbindBuffer(a.w0.COPY_READ_BUFFER))}async getSubDataAsync(t,e=0,i,r){await this._context.clientWaitAsync(),this.getSubData(t,e,i,r)}}},18567:function(t,e,i){i.d(e,{X:function(){return u}});i(39994);var r=i(13802),n=i(61681),s=i(78951),o=i(6174),a=i(91907),h=i(43106),c=i(37165),l=i(71449);class u{constructor(t,e,i=null){this._context=t,this._glName=null,this._colorAttachments=new Map,this._depthStencilBuffer=null,this._depthStencilTexture=null,this._initialized=!1,t.instanceCounter.increment(a._g.FramebufferObject,this);const r=f(e)?e:new l.x(this._context,e);if(this._colorAttachments.set(a.VY.COLOR_ATTACHMENT0,r),this._validateTextureDescriptor(r.descriptor),this._validateColorAttachmentPoint(a.VY.COLOR_ATTACHMENT0),null!=i)if(function(t){return f(t)||null!=t&&"pixelFormat"in t}(i))this._context.capabilities.depthTexture,this._depthStencilTexture=f(i)?i:new l.x(this._context,i),this._validateTextureDescriptor(this._depthStencilTexture.descriptor);else{const t=function(t){return null!=t&&"type"in t&&t.type===h.B.RenderBuffer}(i)?i:new c.r(this._context,i);this._depthStencilBuffer=t,this._validateRenderBufferDescriptor(t.descriptor)}}dispose(){if(0===this._colorAttachments.size&&!this._glName)return;const t=this._context.getBoundFramebufferObject();this._colorAttachments.forEach(((t,e)=>this.detachColorTexture(e)?.dispose())),this.detachDepthStencilBuffer()?.dispose(),this.detachDepthStencilTexture()?.dispose(),this._glName&&(this._context.gl.deleteFramebuffer(this._glName),this._glName=null),this._context.bindFramebuffer(t),this._context.instanceCounter.decrement(a._g.FramebufferObject,this)}get glName(){return this._glName}get colorTexture(){return this._colorAttachments.get(a.VY.COLOR_ATTACHMENT0)}get depthStencil(){return this._depthStencilTexture||this._depthStencilBuffer}get depthStencilTexture(){return this._depthStencilTexture}get width(){const t=this._colorAttachments.get(a.VY.COLOR_ATTACHMENT0);return t?.descriptor?.width??0}get height(){const t=this._colorAttachments.get(a.VY.COLOR_ATTACHMENT0);return t?.descriptor?.height??0}get usedMemory(){return[...this._colorAttachments].reduce(((t,[e,i])=>t+i.usedMemory),this.depthStencil?.usedMemory??0)}getColorTexture(t){const e=this._colorAttachments.get(t);return e&&f(e)?e:null}get colorAttachments(){return[...this._colorAttachments.keys()]}attachColorTexture(t,e=a.VY.COLOR_ATTACHMENT0){if(!t)return;this._validateColorAttachmentPoint(e);const i=t.descriptor;this._validateTextureDescriptor(i),this.detachColorTexture(e)?.dispose(),this._initialized&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(t.glName,e)),this._colorAttachments.set(e,t)}detachColorTexture(t=a.VY.COLOR_ATTACHMENT0){const e=this._colorAttachments.get(t);if(e){if(this._initialized){const e=this._context.getBoundFramebufferObject();this._context.bindFramebuffer(this),this._framebufferTexture2D(null,t),this._context.bindFramebuffer(e)}return this._colorAttachments.delete(t),e}}setColorTextureTarget(t,e=a.VY.COLOR_ATTACHMENT0){const i=this._colorAttachments.get(e);i&&this._framebufferTexture2D(i.glName,e,t)}attachDepthStencil(t){if(t)switch(t.type){case h.B.Texture:return this._attachDepthStencilTexture(t);case h.B.RenderBuffer:return this._attachDepthStencilBuffer(t)}}_attachDepthStencilTexture(t){if(null==t)return;const e=t.descriptor;e.pixelFormat!==a.VI.DEPTH_STENCIL&&(e.pixelFormat,a.VI.DEPTH24_STENCIL8),e.dataType,a.Br.UNSIGNED_INT_24_8,this._context.capabilities.depthTexture,this._validateTextureDescriptor(e),this._disposeDepthStencilAttachments(),this._initialized&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(t.glName,a.Lu)),this._depthStencilTexture?.dispose(),this._depthStencilTexture=t}detachDepthStencilTexture(){const t=this._depthStencilTexture;return t&&this._initialized&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(null,a.Lu)),this._depthStencilTexture=null,t}_attachDepthStencilBuffer(t){if(null==t)return;const e=t.descriptor;if(this._validateRenderBufferDescriptor(e),this._disposeDepthStencilAttachments(),this._initialized){this._context.bindFramebuffer(this);const i=this._context.gl,r=this._getGLAttachmentPoint(e);i.framebufferRenderbuffer(a.qi.FRAMEBUFFER,r,i.RENDERBUFFER,t.glName)}this._depthStencilBuffer=t}detachDepthStencilBuffer(){const t=this._depthStencilBuffer;if(t&&this._initialized){this._context.bindFramebuffer(this);const e=this._context.gl,i=this._getGLAttachmentPoint(t.descriptor);e.framebufferRenderbuffer(a.qi.FRAMEBUFFER,i,e.RENDERBUFFER,null)}return this._depthStencilBuffer=null,t}copyToTexture(t,e,i,r,n,s,o){const h=o.descriptor;o.descriptor.target,a.No.TEXTURE_2D,null==h?.width||null==h?.height||t+i>this.width||e+r>this.height||n+i>h.width||h.height;const c=this._context,u=c.bindTexture(o,l.x.TEXTURE_UNIT_FOR_UPDATES);c.setActiveTexture(l.x.TEXTURE_UNIT_FOR_UPDATES),c.bindFramebuffer(this),c.gl.copyTexSubImage2D(a.No.TEXTURE_2D,0,n,s,t,e,i,r),c.bindTexture(u,l.x.TEXTURE_UNIT_FOR_UPDATES)}readPixels(t,e,i,r,n,s,o){this._context.bindFramebuffer(this),this._context.gl.readPixels(t,e,i,r,n,s,o)}async readPixelsAsync(t,e,i,r,n,o,h){const{gl:c}=this._context,l=s.f.createPixelPack(this._context,a.l1.STREAM_READ,h.byteLength);this._context.bindBuffer(l),this._context.bindFramebuffer(this),c.readPixels(t,e,i,r,n,o,0),this._context.unbindBuffer(a.w0.PIXEL_PACK_BUFFER),await l.getSubDataAsync(h),l.dispose()}resize(t,e){if(this.width===t&&this.height===e)return;const i={width:t,height:e};_(i,this._context.parameters.maxTextureSize),this._colorAttachments.forEach((t=>t.resize(i.width,i.height))),this._depthStencilTexture?.resize(i.width,i.height),this._initialized&&(_(i,this._context.parameters.maxRenderbufferSize),this._depthStencilBuffer?.resize(i.width,i.height),this._context.getBoundFramebufferObject()===this&&this._context.bindFramebuffer(null),this._initialized=!1)}initializeAndBind(t=a.qi.FRAMEBUFFER){const e=this._context.gl;if(this._initialized)return void e.bindFramebuffer(t,this.glName);this._glName&&e.deleteFramebuffer(this._glName);const i=e.createFramebuffer();if(e.bindFramebuffer(t,i),this._colorAttachments.forEach(((e,i)=>this._framebufferTexture2D(e.glName,i,d(e),t))),this._depthStencilBuffer){const i=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);e.framebufferRenderbuffer(t,i,e.RENDERBUFFER,this._depthStencilBuffer.glName)}else this._depthStencilTexture&&this._framebufferTexture2D(this._depthStencilTexture.glName,e.DEPTH_STENCIL_ATTACHMENT,d(this._depthStencilTexture),t);(0,o.hZ)()&&(e.checkFramebufferStatus(t),e.FRAMEBUFFER_COMPLETE),this._glName=i,this._initialized=!0}_framebufferTexture2D(t,e=a.VY.COLOR_ATTACHMENT0,i=a.No.TEXTURE_2D,r=a.qi.FRAMEBUFFER,n=0){this._context.gl.framebufferTexture2D(r,e,i,t,n)}_disposeDepthStencilAttachments(){const t=this._context.gl;if(this._depthStencilBuffer){if(this._initialized){this._context.bindFramebuffer(this);const e=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);t.framebufferRenderbuffer(a.qi.FRAMEBUFFER,e,t.RENDERBUFFER,null)}this._depthStencilBuffer=(0,n.M2)(this._depthStencilBuffer)}this._depthStencilTexture&&(this._initialized&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(null,t.DEPTH_STENCIL_ATTACHMENT)),this._depthStencilTexture=(0,n.M2)(this._depthStencilTexture))}_validateTextureDescriptor(t){t.target!==a.No.TEXTURE_2D&&(t.target,a.No.TEXTURE_CUBE_MAP),_(t,this._context.parameters.maxTextureSize),this._validateBufferDimensions(t)}_validateRenderBufferDescriptor(t){_(t,this._context.parameters.maxRenderbufferSize),this._validateBufferDimensions(t)}_validateBufferDimensions(t){t.width<=0&&(t.width=this.width),t.height<=0&&(t.height=this.height),this.width>0&&this.height>0&&this.width===t.width&&(this.height,t.height)}_getGLAttachmentPoint(t){switch(t.internalFormat){case a.Tg.DEPTH_COMPONENT16:case a.Tg.DEPTH_COMPONENT24:case a.Tg.DEPTH_COMPONENT32F:return this._context.gl.DEPTH_ATTACHMENT;case a.Tg.DEPTH24_STENCIL8:case a.Tg.DEPTH32F_STENCIL8:case a.Tg.DEPTH_STENCIL:return this._context.gl.DEPTH_STENCIL_ATTACHMENT;case a.Tg.STENCIL_INDEX8:return this._context.gl.STENCIL_ATTACHMENT}}_validateColorAttachmentPoint(t){if(-1===u._MAX_COLOR_ATTACHMENTS){const{gl:t}=this._context;u._MAX_COLOR_ATTACHMENTS=t.getParameter(t.MAX_COLOR_ATTACHMENTS)}const e=t-a.VY.COLOR_ATTACHMENT0;e+1>u._MAX_COLOR_ATTACHMENTS&&r.Z.getLogger("esri.views.webgl.FrameBufferObject").error("esri.FrameBufferObject",`illegal attachment point for color attachment: ${e+1}. Implementation supports up to ${u._MAX_COLOR_ATTACHMENTS} color attachments`)}}function f(t){return null!=t&&"type"in t&&t.type===h.B.Texture}function _(t,e){const i=Math.max(t.width,t.height);if(i>e){r.Z.getLogger("esri.views.webgl.FramebufferObject").warn(`Resizing FBO attachment size ${t.width}x${t.height} to device limit ${e}`);const n=e/i;return t.width=Math.round(t.width*n),t.height=Math.round(t.height*n),!1}return!0}function d(t){return t.descriptor.target===a.No.TEXTURE_CUBE_MAP?a.No.TEXTURE_CUBE_MAP_POSITIVE_X:a.No.TEXTURE_2D}u._MAX_COLOR_ATTACHMENTS=-1},69609:function(t,e,i){i.d(e,{$:function(){return B}});i(39994);var r=i(6174),n=i(91907);const s=["layout","centroid","smooth","case","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","uint","uvec2","uvec3","uvec4","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","coherent","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","image1DShadow","image2DShadow","image1DArrayShadow","image2DArrayShadow","imageBuffer","iimageBuffer","uimageBuffer","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray","trunc","round","roundEven","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","outerProduct","transpose","determinant","inverse","texture","textureSize","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset"],o={enableCache:!1};var a=i(88338),h=999,c=9999,l=0,u=1,f=2,_=3,d=4,g=5,m=6,p=7,x=8,T=9,E=10,b=11,A=["block-comment","line-comment","preprocessor","operator","integer","float","ident","builtin","keyword","whitespace","eof","integer"];function S(){var t,e,i,r=0,n=0,s=h,o=[],S=[],R=1,D=0,F=0,M=!1,w=!1,C="";return function(t){return S=[],null!==t?U(t.replace?t.replace(/\r\n/g,"\n"):t):(o.length&&y(o.join("")),s=E,y("(eof)"),S)};function y(t){t.length&&S.push({type:A[s],data:t,position:F,line:R,column:D})}function U(e){var o;for(r=0,i=(C+=e).length;t=C[r],r0)continue;i=t.slice(0,1).join("")}return y(i),F+=i.length,(o=o.slice(i.length)).length}}function k(){return/[^a-fA-F0-9]/.test(t)?(y(o.join("")),s=h,r):(o.push(t),e=t,r+1)}function H(){return"."===t||/[eE]/.test(t)?(o.push(t),s=g,e=t,r+1):"x"===t&&1===o.length&&"0"===o[0]?(s=b,o.push(t),e=t,r+1):/[^\d]/.test(t)?(y(o.join("")),s=h,r):(o.push(t),e=t,r+1)}function I(){return"f"===t&&(o.push(t),e=t,r+=1),/[eE]/.test(t)||"-"===t&&/[eE]/.test(e)?(o.push(t),e=t,r+1):/[^\d]/.test(t)?(y(o.join("")),s=h,r):(o.push(t),e=t,r+1)}function V(){if(/[^\d\w_]/.test(t)){var i=o.join("");return s=a.l.indexOf(i)>-1?x:a.b.indexOf(i)>-1?p:m,y(o.join("")),s=h,r}return o.push(t),e=t,r+1}}function R(t){return function(t){var e=S(),i=[];return(i=i.concat(e(t))).concat(e(null))}(t)}const D=new Set(["GL_OES_standard_derivatives","GL_EXT_frag_depth","GL_EXT_draw_buffers","GL_EXT_shader_texture_lod"]);function F(t,e){for(let i=e-1;i>=0;i--){const e=t[i];if("whitespace"!==e.type&&"block-comment"!==e.type){if("keyword"!==e.type)break;if("attribute"===e.data||"in"===e.data)return!0}}return!1}function M(t,e,i,r){r=r||i;for(const n of t)if("ident"===n.type&&n.data===i)return r in e?e[r]++:e[r]=0,M(t,e,r+"_"+e[r],r);return i}function w(t,e,i="afterVersion"){function r(t,e){for(let i=e;ie=0;--t){const e=a[t];if("preprocessor"===e.type){const i=e.data.match(/\#extension\s+(.*)\:/);if(i&&i[1]&&D.has(i[1].trim())){const e=a[t+1];a.splice(t,e&&"whitespace"===e.type?2:1)}const r=e.data.match(/\#ifdef\s+(.*)/);r&&r[1]&&D.has(r[1].trim())&&(e.data="#if 1");const n=e.data.match(/\#ifndef\s+(.*)/);n&&n[1]&&D.has(n[1].trim())&&(e.data="#if 0")}}return function(t,e){return o.enableCache&&v.set(t,e),e}(t,function(t){return t.map((t=>"eof"!==t.type?t.data:"")).join("")}(a))}const v=new Map;class B{constructor(t,e,i,s,o=new Map,a=[]){this._context=t,this._locations=s,this._uniformBlockBindings=o,this._transformFeedbackVaryings=a,this._refCount=1,this._compiled=!1,this._linesOfCode=0,this._nameToUniformLocation=new Map,this._nameToUniform1=new Map,this._nameToUniform1v=new Map,this._nameToUniform2=new Map,this._nameToUniform3=new Map,this._nameToUniform4=new Map,this._nameToUniformMatrix3=new Map,this._nameToUniformMatrix4=new Map,e.length,e=N(e,n.Ho.VERTEX_SHADER),i=N(i,n.Ho.FRAGMENT_SHADER),this._vShader=P(this._context,n.Ho.VERTEX_SHADER,e),this._fShader=P(this._context,n.Ho.FRAGMENT_SHADER,i),O.enabled&&(this._linesOfCode=e.match(/\n/g).length+i.match(/\n/g).length+2,this._context.instanceCounter.increment(n._g.LinesOfCode,this._vShader,this._linesOfCode)),this._vShader&&this._fShader,this._context.instanceCounter.increment(n._g.Shader,this),(0,r.CG)()&&(this.vertexShader=e,this.fragmentShader=i),this.usedMemory=e.length+i.length;const h=this._context.gl,c=h.createProgram();h.attachShader(c,this._vShader),h.attachShader(c,this._fShader),this._locations.forEach(((t,e)=>h.bindAttribLocation(c,t,e))),this._transformFeedbackVaryings?.length&&h.transformFeedbackVaryings(c,this._transformFeedbackVaryings,h.SEPARATE_ATTRIBS),h.linkProgram(c),(0,r.CG)()&&h.getProgramParameter(c,h.LINK_STATUS);for(const[t,e]of this._uniformBlockBindings){const i=h.getUniformBlockIndex(c,t);i<4294967295&&h.uniformBlockBinding(c,i,e)}this._glName=c,this._context.instanceCounter.increment(n._g.Program,this)}get glName(){return this._glName}get hasGLName(){return null!=this._glName}get hasTransformFeedbackVaryings(){return!!this._transformFeedbackVaryings?.length}get compiled(){if(this._compiled)return!0;const t=this._context.gl.getExtension("KHR_parallel_shader_compile");return null==t||null==this.glName?(this._compiled=!0,!0):(this._compiled=!!this._context.gl.getProgramParameter(this.glName,t.COMPLETION_STATUS_KHR),this._compiled)}dispose(){if(--this._refCount>0)return;const t=this._context.gl,e=this._context.instanceCounter;this._nameToUniformLocation.forEach((t=>t&&e.decrement(n._g.Uniform,t))),this._nameToUniformLocation.clear(),this._vShader&&(this._linesOfCode>0&&(e.decrement(n._g.LinesOfCode,this._vShader,this._linesOfCode),this._linesOfCode=0),t.deleteShader(this._vShader),this._vShader=null,e.decrement(n._g.Shader,this)),this._fShader&&(t.deleteShader(this._fShader),this._fShader=null),this._glName&&(t.deleteProgram(this._glName),this._glName=null,e.decrement(n._g.Program,this))}ref(){++this._refCount}_getUniformLocation(t){const e=this._nameToUniformLocation.get(t);if(void 0!==e)return e;if(this.glName){const e=this._context.gl.getUniformLocation(this.glName,t);return this._nameToUniformLocation.set(t,e),e&&this._context.instanceCounter.increment(n._g.Uniform,e),e}return null}hasUniform(t){return null!=this._getUniformLocation(t)}setUniform1i(t,e){const i=this._nameToUniform1.get(t);void 0!==i&&e===i||(this._context.gl.uniform1i(this._getUniformLocation(t),e),this._nameToUniform1.set(t,e))}setUniform1iv(t,e){L(this._nameToUniform1v,t,e)&&this._context.gl.uniform1iv(this._getUniformLocation(t),e)}setUniform2iv(t,e){L(this._nameToUniform2,t,e)&&this._context.gl.uniform2iv(this._getUniformLocation(t),e)}setUniform3iv(t,e){L(this._nameToUniform3,t,e)&&this._context.gl.uniform3iv(this._getUniformLocation(t),e)}setUniform4iv(t,e){L(this._nameToUniform4,t,e)&&this._context.gl.uniform4iv(this._getUniformLocation(t),e)}setUniform1f(t,e){const i=this._nameToUniform1.get(t);void 0!==i&&e===i||(this._context.gl.uniform1f(this._getUniformLocation(t),e),this._nameToUniform1.set(t,e))}setUniform1fv(t,e){L(this._nameToUniform1v,t,e)&&this._context.gl.uniform1fv(this._getUniformLocation(t),e)}setUniform2f(t,e,i){const r=this._nameToUniform2.get(t);void 0===r?(this._context.gl.uniform2f(this._getUniformLocation(t),e,i),this._nameToUniform2.set(t,[e,i])):e===r[0]&&i===r[1]||(this._context.gl.uniform2f(this._getUniformLocation(t),e,i),r[0]=e,r[1]=i)}setUniform2fv(t,e){L(this._nameToUniform2,t,e)&&this._context.gl.uniform2fv(this._getUniformLocation(t),e)}setUniform3f(t,e,i,r){const n=this._nameToUniform3.get(t);void 0===n?(this._context.gl.uniform3f(this._getUniformLocation(t),e,i,r),this._nameToUniform3.set(t,[e,i,r])):e===n[0]&&i===n[1]&&r===n[2]||(this._context.gl.uniform3f(this._getUniformLocation(t),e,i,r),n[0]=e,n[1]=i,n[2]=r)}setUniform3fv(t,e){const i=this._getUniformLocation(t);null!=i&&L(this._nameToUniform3,t,e)&&this._context.gl.uniform3fv(i,e)}setUniform4f(t,e,i,r,n){const s=this._nameToUniform4.get(t);void 0===s?(this._context.gl.uniform4f(this._getUniformLocation(t),e,i,r,n),this._nameToUniform4.set(t,[e,i,r,n])):void 0!==s&&e===s[0]&&i===s[1]&&r===s[2]&&n===s[3]||(this._context.gl.uniform4f(this._getUniformLocation(t),e,i,r,n),s[0]=e,s[1]=i,s[2]=r,s[3]=n)}setUniform4fv(t,e){const i=this._getUniformLocation(t);null!=i&&L(this._nameToUniform4,t,e)&&this._context.gl.uniform4fv(i,e)}setUniformMatrix3fv(t,e,i=!1){const r=this._getUniformLocation(t);null!=r&&L(this._nameToUniformMatrix3,t,e)&&this._context.gl.uniformMatrix3fv(r,i,e)}setUniformMatrix4fv(t,e,i=!1){const r=this._getUniformLocation(t);null!=r&&L(this._nameToUniformMatrix4,t,e)&&this._context.gl.uniformMatrix4fv(r,i,e)}stop(){}}function P(t,e,i){const n=t.gl,s=n.createShader(e);return n.shaderSource(s,i),n.compileShader(s),(0,r.CG)()&&n.getShaderParameter(s,n.COMPILE_STATUS),s}function L(t,e,i){const r=t.get(e);if(!r)return t.set(e,Array.from(i)),!0;const n=i.length;if(r.length!==n)return t.set(e,Array.from(i)),!0;for(let t=0;t({created:new Date(t),size:r,resource:e.resourceFromPath(s)})))}}async function c(e,t,r,s){const a=new Map;for(const{resource:e,content:s,compress:n,access:c}of t){if(!e.hasPath())throw new o.Z(`portal-item-resource-${r}:invalid-path`,"Resource does not have a valid path");const[t,u]=i(e.path),l=`${t}/${n??""}/${c??""}`;a.has(l)||a.set(l,{prefix:t,compress:n,access:c,files:[]}),a.get(l).files.push({fileName:u,content:s})}await e.load(s);const c=(0,n.v_)(e.userItemUrl,"add"===r?"addResources":"updateResources");for(const{prefix:t,compress:r,access:o,files:n}of a.values()){const a=25;for(let u=0;uPromise.all([s.e(9145),s.e(2149),s.e(6324),s.e(5048)]).then(s.bind(s,25048)),input:()=>Promise.all([s.e(9145),s.e(2149),s.e(6324),s.e(69),s.e(5027)]).then(s.bind(s,95027)),label:()=>Promise.all([s.e(9145),s.e(5618)]).then(s.bind(s,85618)),modal:()=>Promise.all([s.e(9145),s.e(2149),s.e(85),s.e(9758)]).then(s.bind(s,79758)),notice:()=>Promise.all([s.e(9145),s.e(2149),s.e(5247)]).then(s.bind(s,55247))})}get title(){return this.commonMessages?.auth.signIn}render(){const{open:e,title:t,messages:s,signingIn:r,oAuthPrompt:i,server:n,resource:o,error:a}=this,{info:h,oAuthInfo:l,lblItem:c,invalidUser:d,noAuthService:u,lblUser:p,lblPwd:_,lblCancel:f,lblSigning:g,lblOk:m}=s;return(0,w.u)("div",{class:this.classes(k.base,(0,S.rk)())},(0,w.u)("form",{bind:this,onsubmit:this._submit},(0,w.u)("calcite-modal",{bind:this,open:e,outsideCloseDisabled:!0,scale:"s",widthScale:"s",onCalciteModalClose:this._cancel,onCalciteModalOpen:this._focusUsernameInput},(0,w.u)("div",{slot:"header"},t),(0,w.u)("div",{slot:"content"},(0,w.u)("div",{class:k.info},(0,I.n)(i?l:h,{server:n&&/\.arcgis\.com/i.test(n)?"ArcGIS Online":n,resource:`(${o||c})`})),a?(0,w.u)("calcite-notice",{class:k.notice,icon:"exclamation-mark-triangle",kind:"danger",open:!0},(0,w.u)("div",{slot:"message"},a.details?.httpStatus?d:u)):null,i?null:[(0,w.u)("calcite-label",null,p,(0,w.u)("calcite-input",{afterCreate:e=>this._usernameInputNode=e,autocomplete:"off",bind:this,name:"username",required:!0,spellcheck:!1,type:"text",value:""})),(0,w.u)("calcite-label",null,_,(0,w.u)("calcite-input",{afterCreate:e=>this._passwordInputNode=e,bind:this,name:"password",required:!0,type:"password",value:""}))]),(0,w.u)("calcite-button",{appearance:"outline",bind:this,onclick:this._cancel,slot:"secondary",type:"button",width:"full"},f),(0,w.u)("calcite-button",{loading:!!r,slot:"primary",type:"submit",width:"full"},r?g:m))))}_focusUsernameInput(){requestAnimationFrame((()=>{this._usernameInputNode?.setFocus()}))}_cancel(){this._set("signingIn",!1),this.open=!1,this._usernameInputNode&&(this._usernameInputNode.value=""),this._passwordInputNode&&(this._passwordInputNode.value=""),this.emit("cancel")}_submit(e){e.preventDefault(),this._set("signingIn",!0);const t=this.oAuthPrompt?{}:{username:this._usernameInputNode?.value,password:this._passwordInputNode?.value};this.emit("submit",t)}};(0,i._)([(0,_.Cb)({readOnly:!0})],A.prototype,"container",void 0),(0,i._)([(0,_.Cb)(),(0,v.H)("esri/t9n/common")],A.prototype,"commonMessages",void 0),(0,i._)([(0,_.Cb)()],A.prototype,"error",void 0),(0,i._)([(0,_.Cb)(),(0,v.H)("esri/identity/t9n/identity")],A.prototype,"messages",void 0),(0,i._)([(0,_.Cb)()],A.prototype,"oAuthPrompt",void 0),(0,i._)([(0,_.Cb)()],A.prototype,"open",void 0),(0,i._)([(0,_.Cb)()],A.prototype,"signingIn",void 0),(0,i._)([(0,_.Cb)()],A.prototype,"server",void 0),(0,i._)([(0,_.Cb)({readOnly:!0})],A.prototype,"title",null),(0,i._)([(0,_.Cb)()],A.prototype,"resource",void 0),A=(0,i._)([(0,f.j)("esri.identity.IdentityModal")],A);const U=A,b="esriJSAPIOAuth";class T{constructor(e,t){this.oAuthInfo=null,this.storage=null,this.appId=null,this.codeVerifier=null,this.expires=null,this.refreshToken=null,this.ssl=null,this.stateUID=null,this.token=null,this.userId=null,this.oAuthInfo=e,this.storage=t,this._init()}isValid(){let e=!1;if(this.oAuthInfo&&this.userId&&(this.refreshToken||this.token))if(null==this.expires&&this.refreshToken)e=!0;else if(this.expires){const t=Date.now();this.expires>t&&(this.expires-t)/1e3>60*this.oAuthInfo.minTimeUntilExpiration&&(e=!0)}return e}save(){if(!this.storage)return!1;const e=this._load(),t=this.oAuthInfo;if(t&&t.authNamespace&&t.portalUrl){let s=e[t.authNamespace];s||(s=e[t.authNamespace]={}),this.appId||(this.appId=t.appId),s[t.portalUrl]={appId:this.appId,codeVerifier:this.codeVerifier,expires:this.expires,refreshToken:this.refreshToken,ssl:this.ssl,stateUID:this.stateUID,token:this.token,userId:this.userId};try{this.storage.setItem(b,JSON.stringify(e))}catch(e){return!1}return!0}return!1}destroy(){const e=this._load(),t=this.oAuthInfo;if(t?.appId&&t?.portalUrl&&(null==this.expires||this.expires>Date.now())&&(this.refreshToken||this.token)){const e=t.portalUrl.replace(/^http:/i,"https:")+"/sharing/rest/oauth2/revokeToken",s=new FormData;if(s.append("f","json"),s.append("auth_token",this.refreshToken||this.token),s.append("client_id",t.appId),s.append("token_type_hint",this.refreshToken?"refresh_token":"access_token"),"function"==typeof navigator.sendBeacon)navigator.sendBeacon(e,s);else{const t=new XMLHttpRequest;t.open("POST",e),t.send(s)}}if(t&&t.authNamespace&&t.portalUrl&&this.storage){const s=e[t.authNamespace];if(s){delete s[t.portalUrl];try{this.storage.setItem(b,JSON.stringify(e))}catch(e){}}}t&&(t._oAuthCred=null,this.oAuthInfo=null)}_init(){const e=this._load(),t=this.oAuthInfo;if(t&&t.authNamespace&&t.portalUrl){let s=e[t.authNamespace];s&&(s=s[t.portalUrl],s&&(this.appId=s.appId,this.codeVerifier=s.codeVerifier,this.expires=s.expires,this.refreshToken=s.refreshToken,this.ssl=s.ssl,this.stateUID=s.stateUID,this.token=s.token,this.userId=s.userId))}}_load(){let e={};if(this.storage){const t=this.storage.getItem(b);if(t)try{e=JSON.parse(t)}catch(e){}}return e}}T.prototype.declaredClass="esri.identity.OAuthCredential";var x,C=s(82064);let O=x=class extends C.wq{constructor(e){super(e),this._oAuthCred=null,this.appId=null,this.authNamespace="/",this.expiration=20160,this.flowType="auto",this.forceLogin=!1,this.forceUserId=!1,this.locale=null,this.minTimeUntilExpiration=30,this.popup=!1,this.popupCallbackUrl="oauth-callback.html",this.popupWindowFeatures="height=490,width=800,resizable,scrollbars,status",this.portalUrl="https://www.arcgis.com",this.preserveUrlHash=!1,this.userId=null}clone(){return x.fromJSON(this.toJSON())}};(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"appId",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"authNamespace",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"expiration",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"flowType",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"forceLogin",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"forceUserId",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"locale",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"minTimeUntilExpiration",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"popup",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"popupCallbackUrl",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"popupWindowFeatures",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"portalUrl",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"preserveUrlHash",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],O.prototype,"userId",void 0),O=x=(0,i._)([(0,f.j)("esri.identity.OAuthInfo")],O);const P=O;let R=class extends C.wq{constructor(e){super(e),this.adminTokenServiceUrl=null,this.currentVersion=null,this.hasPortal=null,this.hasServer=null,this.owningSystemUrl=null,this.owningTenant=null,this.server=null,this.shortLivedTokenValidity=null,this.tokenServiceUrl=null,this.webTierAuth=null}};(0,i._)([(0,_.Cb)({json:{write:!0}})],R.prototype,"adminTokenServiceUrl",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],R.prototype,"currentVersion",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],R.prototype,"hasPortal",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],R.prototype,"hasServer",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],R.prototype,"owningSystemUrl",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],R.prototype,"owningTenant",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],R.prototype,"server",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],R.prototype,"shortLivedTokenValidity",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],R.prototype,"tokenServiceUrl",void 0),(0,i._)([(0,_.Cb)({json:{write:!0}})],R.prototype,"webTierAuth",void 0),R=(0,i._)([(0,f.j)("esri.identity.ServerInfo")],R);const D=R;var q=s(72800);const j={},N=e=>{const t=new p.R9(e.owningSystemUrl).host,s=new p.R9(e.server).host,r=/.+\.arcgis\.com$/i;return r.test(t)&&r.test(s)},V=(e,t)=>!!(N(e)&&t&&t.some((t=>t.test(e.server))));let L=null,E=null;try{L=window.localStorage,E=window.sessionStorage}catch{}class z extends h.Z{constructor(){super(),this._portalConfig=globalThis.esriGeowConfig,this.serverInfos=[],this.oAuthInfos=[],this.credentials=[],this._soReqs=[],this._xoReqs=[],this._portals=[],this._defaultOAuthInfo=null,this._defaultTokenValidity=60,this.dialog=null,this.tokenValidity=null,this.normalizeWebTierAuth=!1,this._appOrigin="null"!==window.origin?window.origin:window.location.origin,this._appUrlObj=(0,p.mN)(window.location.href),this._busy=null,this._rejectOnPersistedPageShow=!1,this._oAuthLocationParams=null,this._gwTokenUrl="/sharing/rest/generateToken",this._agsRest="/rest/services",this._agsPortal=/\/sharing(\/|$)/i,this._agsAdmin=/(https?:\/\/[^\/]+\/[^\/]+)\/admin\/?(\/.*)?$/i,this._adminSvcs=/\/rest\/admin\/services(\/|$)/i,this._gwDomains=[{regex:/^https?:\/\/www\.arcgis\.com/i,customBaseUrl:"maps.arcgis.com",tokenServiceUrl:"https://www.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:dev|[a-z\d-]+\.mapsdev)\.arcgis\.com/i,customBaseUrl:"mapsdev.arcgis.com",tokenServiceUrl:"https://dev.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:devext|[a-z\d-]+\.mapsdevext)\.arcgis\.com/i,customBaseUrl:"mapsdevext.arcgis.com",tokenServiceUrl:"https://devext.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/(?:qaext|[a-z\d-]+\.mapsqa)\.arcgis\.com/i,customBaseUrl:"mapsqa.arcgis.com",tokenServiceUrl:"https://qaext.arcgis.com/sharing/rest/generateToken"},{regex:/^https?:\/\/[a-z\d-]+\.maps\.arcgis\.com/i,customBaseUrl:"maps.arcgis.com",tokenServiceUrl:"https://www.arcgis.com/sharing/rest/generateToken"}],this._legacyFed=[],this._regexSDirUrl=/http.+\/rest\/services\/?/gi,this._regexServerType=/(\/(FeatureServer|GPServer|GeoDataServer|GeocodeServer|GeoenrichmentServer|GeometryServer|GlobeServer|ImageServer|KnowledgeGraphServer|MapServer|MissionServer|MobileServer|NAServer|NetworkDiagramServer|OGCFeatureServer|ParcelFabricServer|RelationalCatalogServer|SceneServer|StreamServer|UtilityNetworkServer|ValidationServer|VectorTileServer|VersionManagementServer|VideoServer)).*/gi,this._gwUser=/http.+\/users\/([^\/]+)\/?.*/i,this._gwItem=/http.+\/items\/([^\/]+)\/?.*/i,this._gwGroup=/http.+\/groups\/([^\/]+)\/?.*/i,this._rePortalTokenSvc=/\/sharing(\/rest)?\/generatetoken/i,this._createDefaultOAuthInfo=!0,this._hasTestedIfAppIsOnPortal=!1,this._getOAuthLocationParams(),window.addEventListener("pageshow",(e=>{this._pageShowHandler(e)}))}registerServers(e){const t=this.serverInfos;t?(e=e.filter((e=>!this.findServerInfo(e.server))),this.serverInfos=t.concat(e)):this.serverInfos=e,e.forEach((e=>{e.owningSystemUrl&&this._portals.push(e.owningSystemUrl),e.hasPortal&&this._portals.push(e.server)}))}registerOAuthInfos(e){const t=this.oAuthInfos;if(t){for(const s of e){const e=this.findOAuthInfo(s.portalUrl);e&&t.splice(t.indexOf(e),1)}this.oAuthInfos=t.concat(e)}else this.oAuthInfos=e}registerToken(e){e={...e};const t=this._sanitizeUrl(e.server),s=this._isServerRsrc(t);let r,i=this.findServerInfo(t),n=!0;i||(i=new D,i.server=this._getServerInstanceRoot(t),s?i.hasServer=!0:(i.tokenServiceUrl=this._getTokenSvcUrl(t),i.hasPortal=!0),this.registerServers([i])),r=this._findCredential(t),r?(delete e.server,Object.assign(r,e),n=!1):(r=new M({userId:e.userId,server:i.server,token:e.token,expires:e.expires,ssl:e.ssl,scope:s?"server":"portal"}),r.resources=[t],this.credentials.push(r)),r.emitTokenChange(!1),n||r.refreshServerTokens()}toJSON(){return(0,c.yd)({serverInfos:this.serverInfos.map((e=>e.toJSON())),oAuthInfos:this.oAuthInfos.map((e=>e.toJSON())),credentials:this.credentials.map((e=>e.toJSON()))})}initialize(e){if(!e)return;"string"==typeof e&&(e=JSON.parse(e));const t=e.serverInfos,s=e.oAuthInfos,r=e.credentials;if(t){const e=[];t.forEach((t=>{t.server&&t.tokenServiceUrl&&e.push(t.declaredClass?t:new D(t))})),e.length&&this.registerServers(e)}if(s){const e=[];s.forEach((t=>{t.appId&&e.push(t.declaredClass?t:new P(t))})),e.length&&this.registerOAuthInfos(e)}r&&r.forEach((e=>{e.server&&e.token&&e.expires&&e.expires>Date.now()&&((e=e.declaredClass?e:new M(e)).emitTokenChange(),this.credentials.push(e))}))}findServerInfo(e){let t;e=this._sanitizeUrl(e);for(const s of this.serverInfos)if(this._hasSameServerInstance(s.server,e)){t=s;break}return t}findOAuthInfo(e){let t;e=this._sanitizeUrl(e);for(const s of this.oAuthInfos)if(this._hasSameServerInstance(s.portalUrl,e)){t=s;break}return t}findCredential(e,t){if(!e)return;let s;e=this._sanitizeUrl(e);const r=this._isServerRsrc(e)?"server":"portal";if(t){for(const i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&t===i.userId&&i.scope===r){s=i;break}}else for(const t of this.credentials)if(this._hasSameServerInstance(t.server,e)&&-1!==this._getIdenticalSvcIdx(e,t)&&t.scope===r){s=t;break}return s}getCredential(e,t){let s,r,i=!0;t&&(s=!!t.token,r=t.error,i=!1!==t.prompt),t={...t},e=this._sanitizeUrl(e);const n=new AbortController,o=(0,u.hh)();if(t.signal&&(0,u.fu)(t.signal,(()=>{n.abort()})),(0,u.fu)(n,(()=>{o.reject(new a.Z("identity-manager:user-aborted","ABORTED"))})),(0,u.Hc)(n))return o.promise;t.signal=n.signal;const h=this._isAdminResource(e),l=s?this.findCredential(e):null;let c;if(l&&r&&r.details&&498===r.details.httpStatus)l.destroy();else if(l)return c=new a.Z("identity-manager:not-authorized","You are currently signed in as: '"+l.userId+"'. You do not have access to this resource: "+e,{error:r}),o.reject(c),o.promise;const d=this._findCredential(e,t);if(d)return o.resolve(d),o.promise;let _=this.findServerInfo(e);if(_)!_.hasPortal&&_.server&&_.owningSystemUrl&&this._hasSameServerInstance(_.server,_.owningSystemUrl)&&(_.hasPortal=!0),!_.hasServer&&this._isServerRsrc(e)&&(_._restInfoPms=this._getTokenSvcUrl(e),_.hasServer=!0);else{const t=this._getTokenSvcUrl(e);if(!t)return c=new a.Z("identity-manager:unknown-resource","Unknown resource - could not find token service endpoint."),o.reject(c),o.promise;_=new D,_.server=this._getServerInstanceRoot(e),"string"==typeof t?(_.tokenServiceUrl=t,_.hasPortal=!0):(_._restInfoPms=t,_.hasServer=!0),this.registerServers([_])}return _.hasPortal&&void 0===_._selfReq&&(i||(0,p.D6)(_.tokenServiceUrl,this._appOrigin)||this._gwDomains.some((e=>e.tokenServiceUrl===_.tokenServiceUrl)))&&(_._selfReq={owningTenant:t?.owningTenant,selfDfd:this._getPortalSelf(_.tokenServiceUrl.replace(this._rePortalTokenSvc,"/sharing/rest/portals/self"),e)}),this._enqueue(e,_,t,o,h)}getResourceName(e){return this._isRESTService(e)?e.replace(this._regexSDirUrl,"").replace(this._regexServerType,"")||"":this._gwUser.test(e)&&e.replace(this._gwUser,"$1")||this._gwItem.test(e)&&e.replace(this._gwItem,"$1")||this._gwGroup.test(e)&&e.replace(this._gwGroup,"$1")||""}generateToken(e,t,s){const r=this._rePortalTokenSvc.test(e.tokenServiceUrl),i=new p.R9(this._appOrigin),n=e.shortLivedTokenValidity;let h,l,c,d,u,_,f,g;t&&(g=this.tokenValidity||n||this._defaultTokenValidity,g>n&&n>0&&(g=n)),s&&(h=s.isAdmin,l=s.serverUrl,c=s.token,_=s.signal,f=s.ssl,e.customParameters=s.customParameters),h?d=e.adminTokenServiceUrl:(d=e.tokenServiceUrl,u=new p.R9(d.toLowerCase()),e.webTierAuth&&s?.serverUrl&&!f&&"http"===i.scheme&&((0,p.D6)(i.uri,d,!0)||"https"===u.scheme&&i.host===u.host&&"7080"===i.port&&"7443"===u.port)&&(d=d.replace(/^https:/i,"http:").replace(/:7443/i,":7080")));const m={query:{request:"getToken",username:t?.username,password:t?.password,serverUrl:l,token:c,expiration:g,referer:h||r?this._appOrigin:null,client:h?"referer":null,f:"json",...e.customParameters},method:"post",authMode:"anonymous",useProxy:this._useProxy(e,s),signal:_,...s?.ioArgs};return r||(m.withCredentials=!1),(0,o.Z)(d,m).then((s=>{const r=s.data;if(!r?.token)return new a.Z("identity-manager:authentication-failed","Unable to generate token");const i=e.server;return j[i]||(j[i]={}),t&&(j[i][t.username]=t.password),r.validity=g,r}))}isBusy(){return!!this._busy}checkSignInStatus(e){return this.checkAppAccess(e,"").then((e=>e.credential))}checkAppAccess(e,t,s){let r=!1;return this.getCredential(e,{prompt:!1}).then((i=>{let n;const h={f:"json"};if("portal"===i.scope)if(t&&(this._doPortalSignIn(e)||s?.force))n=i.server+"/sharing/rest/oauth2/validateAppAccess",h.client_id=t;else{if(!i.token)return{credential:i};n=i.server+"/sharing/rest"}else{if(!i.token)return{credential:i};n=i.server+"/rest/services"}return i.token&&(h.token=i.token),(0,o.Z)(n,{query:h,authMode:"anonymous"}).then((e=>{if(!1===e.data.valid)throw new a.Z("identity-manager:not-authorized",`You are currently signed in as: '${i.userId}'.`,e.data);return r=!!e.data.viewOnlyUserTypeApp,{credential:i}})).catch((e=>{if("identity-manager:not-authorized"===e.name)throw e;const t=e.details?.httpStatus;if(498===t)throw i.destroy(),new a.Z("identity-manager:not-authenticated","User is not signed in.");if(400===t)throw new a.Z("identity-manager:invalid-request");return{credential:i}}))})).then((e=>({credential:e.credential,viewOnly:r})))}setOAuthResponseHash(e){e&&("#"===e.charAt(0)&&(e=e.substring(1)),this._processOAuthPopupParams((0,p.u0)(e)))}setOAuthRedirectionHandler(e){this._oAuthRedirectFunc=e}setProtocolErrorHandler(e){this._protocolFunc=e}signIn(e,t,s={}){const r=(0,u.hh)(),i=()=>{h?.remove(),l?.remove(),this.dialog?.destroy(),this.dialog=h=l=null},n=()=>{i(),this._oAuthDfd=null,r.reject(new a.Z("identity-manager:user-aborted","ABORTED"))};s.signal&&(0,u.fu)(s.signal,(()=>{n()}));const o=new U({open:!0,resource:this.getResourceName(e),server:t.server});this.dialog=o,this.emit("dialog-create");let h=o.on("cancel",n),l=o.on("submit",(e=>{this.generateToken(t,e,{isAdmin:s.isAdmin,signal:s.signal}).then((n=>{i();const o=new M({userId:e.username,server:t.server,token:n.token,expires:null!=n.expires?Number(n.expires):null,ssl:!!n.ssl,isAdmin:s.isAdmin,validity:n.validity});r.resolve(o)})).catch((e=>{o.error=e,o.signingIn=!1}))}));return r.promise}oAuthSignIn(e,t,s,r){this._oAuthDfd=(0,u.hh)();const i=this._oAuthDfd;let n;r?.signal&&(0,u.fu)(r.signal,(()=>{const e=this._oAuthDfd&&this._oAuthDfd.oAuthWin_;e&&!e.closed?e.close():this.dialog&&c()})),i.resUrl_=e,i.sinfo_=t,i.oinfo_=s;const o=s._oAuthCred;if(o.storage&&("authorization-code"===s.flowType||"auto"===s.flowType&&t.currentVersion>=8.4)){let e=crypto.getRandomValues(new Uint8Array(32));n=(0,p.rS)(e),o.codeVerifier=n,e=crypto.getRandomValues(new Uint8Array(32)),o.stateUID=(0,p.rS)(e),o.save()||(o.codeVerifier=n=null)}else o.codeVerifier=null;let h,l;this._getCodeChallenge(n).then((i=>{const n=!r||!1!==r.oAuthPopupConfirmation;if(!s.popup||!n)return void this._doOAuthSignIn(e,t,s,i);const o=new U({oAuthPrompt:!0,server:t.server,open:!0});this.dialog=o,this.emit("dialog-create"),h=o.on("cancel",c),l=o.on("submit",(()=>{d(),this._doOAuthSignIn(e,t,s,i)}))}));const c=()=>{d(),this._oAuthDfd=null,i.reject(new a.Z("identity-manager:user-aborted","ABORTED"))},d=()=>{h?.remove(),l?.remove(),this.dialog?.destroy(),this.dialog=null};return i.promise}destroyCredentials(){this.credentials&&this.credentials.slice().forEach((e=>{e.destroy()})),this.emit("credentials-destroy")}enablePostMessageAuth(e="https://www.arcgis.com/sharing/rest"){this._postMessageAuthHandle&&this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=(0,l.on)(window,"message",(t=>{if((t.origin===this._appOrigin||t.origin.endsWith(".arcgis.com"))&&"arcgis:auth:requestCredential"===t.data?.type){const s=t.source;this.getCredential(e).then((e=>{s.postMessage({type:"arcgis:auth:credential",credential:{expires:e.expires,server:e.server,ssl:e.ssl,token:e.token,userId:e.userId}},t.origin)})).catch((e=>{s.postMessage({type:"arcgis:auth:error",error:{name:e.name,message:e.message}},t.origin)}))}}))}disablePostMessageAuth(){this._postMessageAuthHandle&&(this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=null)}_getOAuthLocationParams(){let e=window.location.hash;if(e){"#"===e.charAt(0)&&(e=e.substring(1));const t=(0,p.u0)(e);let s=!1;if(t.access_token&&t.expires_in&&t.state&&t.hasOwnProperty("username"))try{t.state=JSON.parse(t.state),t.state.portalUrl&&(this._oAuthLocationParams=t,s=!0)}catch{}else if(t.error&&t.error_description&&"access_denied"===t.error&&(s=!0,t.state))try{t.state=JSON.parse(t.state)}catch{}s&&(window.location.hash=t.state?.hash||"")}let t=window.location.search;if(t){"?"===t.charAt(0)&&(t=t.substring(1));const e=(0,p.u0)(t);let s=!1;if(e.code&&e.state)try{e.state=JSON.parse(e.state),e.state.portalUrl&&e.state.uid&&(this._oAuthLocationParams=e,s=!0)}catch{}else if(e.error&&e.error_description&&"access_denied"===e.error&&(s=!0,e.state))try{e.state=JSON.parse(e.state)}catch{}if(s){const t={...e};["code","error","error_description","message_code","persist","state"].forEach((e=>{delete t[e]}));const s=(0,p.B7)(t),r=window.location.pathname+(s?`?${s}`:"")+(e.state?.hash||"");window.history.replaceState(window.history.state,"",r)}}}_getOAuthToken(e,t,s,r,i){return e=e.replace(/^http:/i,"https:"),(0,o.Z)(`${e}/sharing/rest/oauth2/token`,{authMode:"anonymous",method:"post",query:r&&i?{grant_type:"authorization_code",code:t,redirect_uri:r,client_id:s,code_verifier:i}:{grant_type:"refresh_token",refresh_token:t,client_id:s}}).then((e=>e.data))}_getCodeChallenge(e){if(e&&globalThis.isSecureContext){const t=(new TextEncoder).encode(e);return crypto.subtle.digest("SHA-256",t).then((e=>(0,p.rS)(new Uint8Array(e))))}return Promise.resolve(null)}_pageShowHandler(e){if(e.persisted&&this.isBusy()&&this._rejectOnPersistedPageShow){const e=new a.Z("identity-manager:user-aborted","ABORTED");this._errbackFunc(e)}}_findCredential(e,t){let s,r,i,n,o=-1;const a=t?.token,h=t?.resource,l=this._isServerRsrc(e)?"server":"portal",c=this.credentials.filter((t=>this._hasSameServerInstance(t.server,e)&&t.scope===l));if(e=h||e,c.length)if(1===c.length){if(s=c[0],i=this.findServerInfo(s.server),r=i?.owningSystemUrl,n=r?this.findCredential(r,s.userId):void 0,o=this._getIdenticalSvcIdx(e,s),!a)return-1===o&&s.resources.push(e),this._addResource(e,n),s;-1!==o&&(s.resources.splice(o,1),this._removeResource(e,n))}else{let t,s;if(c.some((a=>(s=this._getIdenticalSvcIdx(e,a),-1!==s&&(t=a,i=this.findServerInfo(t.server),r=i?.owningSystemUrl,n=r?this.findCredential(r,t.userId):void 0,o=s,!0)))),a)t&&(t.resources.splice(o,1),this._removeResource(e,n));else if(t)return this._addResource(e,n),t}}_findOAuthInfo(e){let t=this.findOAuthInfo(e);if(!t)for(const s of this.oAuthInfos)if(this._isIdProvider(s.portalUrl,e)){t=s;break}return t}_addResource(e,t){t&&-1===this._getIdenticalSvcIdx(e,t)&&t.resources.push(e)}_removeResource(e,t){let s=-1;t&&(s=this._getIdenticalSvcIdx(e,t),s>-1&&t.resources.splice(s,1))}_useProxy(e,t){return t?.isAdmin&&!(0,p.D6)(e.adminTokenServiceUrl,this._appOrigin)||!this._isPortalDomain(e.tokenServiceUrl)&&"10.1"===String(e.currentVersion)&&!(0,p.D6)(e.tokenServiceUrl,this._appOrigin)}_getOrigin(e){const t=new p.R9(e);return t.scheme+"://"+t.host+(null!=t.port?":"+t.port:"")}_getServerInstanceRoot(e){const t=e.toLowerCase();let s=t.indexOf(this._agsRest);return-1===s&&this._isAdminResource(e)&&(s=this._agsAdmin.test(e)?e.replace(this._agsAdmin,"$1").length:e.search(this._adminSvcs)),-1!==s||(0,q.P)(t)||(s=t.indexOf("/sharing")),-1===s&&"/"===t.substr(-1)&&(s=t.length-1),s>-1?e.substring(0,s):e}_hasSameServerInstance(e,t){return"/"===e.substr(-1)&&(e=e.slice(0,-1)),e=e.toLowerCase(),t=this._getServerInstanceRoot(t).toLowerCase(),e=this._normalizeAGOLorgDomain(e),t=this._normalizeAGOLorgDomain(t),(e=e.substr(e.indexOf(":")))===t.substr(t.indexOf(":"))}_normalizeAGOLorgDomain(e){const t=/^https?:\/\/(?:cdn|[a-z\d-]+\.maps)\.arcgis\.com/i,s=/^https?:\/\/(?:cdndev|[a-z\d-]+\.mapsdevext)\.arcgis\.com/i,r=/^https?:\/\/(?:cdnqa|[a-z\d-]+\.mapsqa)\.arcgis\.com/i;return t.test(e)?e=e.replace(t,"https://www.arcgis.com"):s.test(e)?e=e.replace(s,"https://devext.arcgis.com"):r.test(e)&&(e=e.replace(r,"https://qaext.arcgis.com")),e}_sanitizeUrl(e){const t=(n.default.request.proxyUrl||"").toLowerCase(),s=t?e.toLowerCase().indexOf(t+"?"):-1;return-1!==s&&(e=e.substring(s+t.length+1)),e=(0,p.Fv)(e),(0,p.mN)(e).path}_isRESTService(e){return e.includes(this._agsRest)}_isAdminResource(e){return this._agsAdmin.test(e)||this._adminSvcs.test(e)}_isServerRsrc(e){return this._isRESTService(e)||this._isAdminResource(e)}_isIdenticalService(e,t){let s=!1;if(this._isRESTService(e)&&this._isRESTService(t)){const r=this._getSuffix(e).toLowerCase(),i=this._getSuffix(t).toLowerCase();if(s=r===i,!s){const e=/(.*)\/(MapServer|FeatureServer|UtilityNetworkServer).*/gi;s=r.replaceAll(e,"$1")===i.replaceAll(e,"$1")}}else this._isAdminResource(e)&&this._isAdminResource(t)?s=!0:this._isServerRsrc(e)||this._isServerRsrc(t)||!this._isPortalDomain(e)||(s=!0);return s}_isPortalDomain(e){const t=new p.R9(e.toLowerCase()),s=this._portalConfig;let r=this._gwDomains.some((e=>e.regex.test(t.uri)));return!r&&s&&(r=this._hasSameServerInstance(this._getServerInstanceRoot(s.restBaseUrl),t.uri)),r||n.default.portalUrl&&(r=(0,p.D6)(t,n.default.portalUrl,!0)),r||(r=this._portals.some((e=>this._hasSameServerInstance(e,t.uri)))),r=r||this._agsPortal.test(t.path),r}_isIdProvider(e,t){let s=-1,r=-1;this._gwDomains.forEach(((i,n)=>{-1===s&&i.regex.test(e)&&(s=n),-1===r&&i.regex.test(t)&&(r=n)}));let i=!1;if(s>-1&&r>-1&&(0===s||4===s?0!==r&&4!==r||(i=!0):1===s?1!==r&&2!==r||(i=!0):2===s?2===r&&(i=!0):3===s&&3===r&&(i=!0)),!i){const s=this.findServerInfo(t),r=s?.owningSystemUrl;r&&N(s)&&this._isPortalDomain(r)&&this._isIdProvider(e,r)&&(i=!0)}return i}_getIdenticalSvcIdx(e,t){let s=-1;for(let r=0;re.data)),{adminUrl:t,promise:s}}if(this._isPortalDomain(e)){let t="";if(this._gwDomains.some((s=>(s.regex.test(e)&&(t=s.tokenServiceUrl),!!t))),t||this._portals.some((s=>(this._hasSameServerInstance(s,e)&&(t=s+this._gwTokenUrl),!!t))),t||(r=e.toLowerCase().indexOf("/sharing"),-1!==r&&(t=e.substring(0,r)+this._gwTokenUrl)),t||(t=this._getOrigin(e)+this._gwTokenUrl),t){const s=new p.R9(e).port;/^http:\/\//i.test(e)&&"7080"===s&&(t=t.replace(/:7080/i,":7443")),t=t.replace(/http:/i,"https:")}return t}if(e.toLowerCase().includes("premium.arcgisonline.com"))return"https://premium.arcgisonline.com/server/tokens"}_processOAuthResponseParams(e,t,s){const r=t._oAuthCred;if(e.code){const i=r.codeVerifier;return r.codeVerifier=null,r.stateUID=null,r.save(),this._getOAuthToken(s.server,e.code,t.appId,this._getRedirectURI(t,!0),i).then((i=>{const n=new M({userId:i.username,server:s.server,token:i.access_token,expires:Date.now()+1e3*i.expires_in,ssl:i.ssl,oAuthState:e.state,_oAuthCred:r});return t.userId=n.userId,r.storage=i.persist?L:E,r.refreshToken=i.refresh_token,r.token=null,r.expires=i.refresh_token_expires_in?Date.now()+1e3*i.refresh_token_expires_in:null,r.userId=n.userId,r.ssl=n.ssl,r.save(),n}))}const i=new M({userId:e.username,server:s.server,token:e.access_token,expires:Date.now()+1e3*Number(e.expires_in),ssl:"true"===e.ssl,oAuthState:e.state,_oAuthCred:r});return t.userId=i.userId,r.storage=e.persist?L:E,r.refreshToken=null,r.token=i.token,r.expires=i.expires,r.userId=i.userId,r.ssl=i.ssl,r.save(),Promise.resolve(i)}_processOAuthPopupParams(e){const t=this._oAuthDfd;if(this._oAuthDfd=null,t)if(clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle?.remove(),e.error){const s="access_denied"===e.error,r=new a.Z(s?"identity-manager:user-aborted":"identity-manager:authentication-failed",s?"ABORTED":"OAuth: "+e.error+" - "+e.error_description);t.reject(r)}else this._processOAuthResponseParams(e,t.oinfo_,t.sinfo_).then((e=>{t.resolve(e)})).catch((e=>{t.reject(e)}))}_setOAuthResponseQueryString(e){e&&("?"===e.charAt(0)&&(e=e.substring(1)),this._processOAuthPopupParams((0,p.u0)(e)))}_exchangeToken(e,t,s){return(0,o.Z)(`${e}/sharing/rest/oauth2/exchangeToken`,{authMode:"anonymous",method:"post",query:{f:"json",client_id:t,token:s}}).then((e=>e.data.token))}_getPlatformSelf(e,t){return e=e.replace(/^http:/i,"https:"),(0,o.Z)(`${e}/sharing/rest/oauth2/platformSelf`,{authMode:"anonymous",headers:{"X-Esri-Auth-Client-Id":t,"X-Esri-Auth-Redirect-Uri":window.location.href.replace(/#.*$/,"")},method:"post",query:{f:"json",expiration:30},withCredentials:!0}).then((e=>e.data))}_getPortalSelf(e,t){let s;return this._gwDomains.some((t=>(t.regex.test(e)&&(s=t.customBaseUrl),!!s))),s?Promise.resolve({allSSL:!0,currentVersion:"8.4",customBaseUrl:s,portalMode:"multitenant",supportsOAuth:!0}):(this._appOrigin.startsWith("https:")?e=e.replace(/^http:/i,"https:").replace(/:7080/i,":7443"):/^http:/i.test(t)&&(e=e.replace(/^https:/i,"http:").replace(/:7443/i,":7080")),(0,o.Z)(e,{query:{f:"json"},authMode:"anonymous",withCredentials:!0}).then((e=>e.data)))}_doPortalSignIn(e){const t=this._portalConfig,s=window.location.href,r=this.findServerInfo(e);return!(!t&&!this._isPortalDomain(s)||!(r?r.hasPortal||r.owningSystemUrl&&this._isPortalDomain(r.owningSystemUrl):this._isPortalDomain(e))||!(this._isIdProvider(s,e)||t&&(this._hasSameServerInstance(this._getServerInstanceRoot(t.restBaseUrl),e)||this._isIdProvider(t.restBaseUrl,e))||(0,p.D6)(s,e,!0)))}_checkProtocol(e,t,s,r){let i=!0;const n=r?t.adminTokenServiceUrl:t.tokenServiceUrl;return n.trim().toLowerCase().startsWith("https:")&&!this._appOrigin.startsWith("https:")&&(0,p.ed)(n)&&(i=!!this._protocolFunc&&!!this._protocolFunc({resourceUrl:e,serverInfo:t}),!i)&&s(new a.Z("identity-manager:aborted","Aborted the Sign-In process to avoid sending password over insecure connection.")),i}_enqueue(e,t,s,r,i,n){return r||(r=(0,u.hh)()),r.resUrl_=e,r.sinfo_=t,r.options_=s,r.admin_=i,r.refresh_=n,this._busy?this._hasSameServerInstance(this._getServerInstanceRoot(e),this._busy.resUrl_)?(this._oAuthDfd&&this._oAuthDfd.oAuthWin_&&this._oAuthDfd.oAuthWin_.focus(),this._soReqs.push(r)):this._xoReqs.push(r):this._doSignIn(r),r.promise}_doSignIn(e){this._busy=e,this._rejectOnPersistedPageShow=!1;const t=t=>{const s=e.options_?.resource,r=e.resUrl_,i=e.refresh_;let n=!1;this.credentials.includes(t)||(i&&this.credentials.includes(i)?(i.userId=t.userId,i.token=t.token,i.expires=t.expires,i.validity=t.validity,i.ssl=t.ssl,i.creationTime=t.creationTime,n=!0,t=i):this.credentials.push(t)),t.resources||(t.resources=[]),t.resources.includes(s||r)||t.resources.push(s||r),t.scope=this._isServerRsrc(r)?"server":"portal",t.emitTokenChange();const o=this._soReqs,a={};this._soReqs=[],o.forEach((e=>{if(!this._isIdenticalService(r,e.resUrl_)){const s=this._getSuffix(e.resUrl_);a[s]||(a[s]=!0,t.resources.push(e.resUrl_))}})),e.resolve(t),o.forEach((e=>{this._hasSameServerInstance(this._getServerInstanceRoot(r),e.resUrl_)?e.resolve(t):this._soReqs.push(e)})),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,n||this.emit("credential-create",{credential:t}),this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},s=t=>{e.reject(t),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},r=(i,n,o,h)=>{const c=e.sinfo_,d=!e.options_||!1!==e.options_.prompt,_=c.hasPortal&&this._findOAuthInfo(e.resUrl_);let f,g;if(i)t(new M({userId:i,server:c.server,token:o||null,expires:null!=h?Number(h):null,ssl:!!n}));else if(window!==window.parent&&this._appUrlObj.query?.["arcgis-auth-origin"]&&this._appUrlObj.query?.["arcgis-auth-portal"]&&this._hasSameServerInstance(this._getServerInstanceRoot(this._appUrlObj.query["arcgis-auth-portal"]),e.resUrl_)){window.parent.postMessage({type:"arcgis:auth:requestCredential"},this._appUrlObj.query["arcgis-auth-origin"]);const r=(0,l.on)(window,"message",(e=>{e.source===window.parent&&e.data&&("arcgis:auth:credential"===e.data.type?(r.remove(),e.data.credential.expires{r.remove()}))}else if(_){let i=_._oAuthCred;if(!i){const e=new T(_,L),t=new T(_,E);e.isValid()&&t.isValid()?e.expires>t.expires?(i=e,t.destroy()):(i=t,e.destroy()):i=e.isValid()?e:t,_._oAuthCred=i}if(i.isValid()){f=new M({userId:i.userId,server:c.server,token:i.token,expires:i.expires,ssl:i.ssl,_oAuthCred:i});const s=_.appId!==i.appId&&this._doPortalSignIn(e.resUrl_);s||i.refreshToken?(e._pendingDfd=i.refreshToken?this._getOAuthToken(c.server,i.refreshToken,i.appId).then((e=>(f.expires=Date.now()+1e3*e.expires_in,f.token=e.access_token,f))):Promise.resolve(f),e._pendingDfd.then((e=>s?this._exchangeToken(e.server,_.appId,e.token).then((t=>(e.token=t,e))).catch((()=>e)):e)).then((e=>{t(e)})).catch((()=>{i?.destroy(),r()}))):t(f)}else if(this._oAuthLocationParams&&this._hasSameServerInstance(_.portalUrl,this._oAuthLocationParams.state.portalUrl)&&(this._oAuthLocationParams.access_token||this._oAuthLocationParams.code&&this._oAuthLocationParams.state.uid===i.stateUID&&i.codeVerifier)){const r=this._oAuthLocationParams;this._oAuthLocationParams=null,e._pendingDfd=this._processOAuthResponseParams(r,_,c).then((e=>{t(e)})).catch(s)}else{const r=()=>{d?e._pendingDfd=this.oAuthSignIn(e.resUrl_,c,_,e.options_).then(t,s):(g=new a.Z("identity-manager:not-authenticated","User is not signed in."),s(g))};this._doPortalSignIn(e.resUrl_)?e._pendingDfd=this._getPlatformSelf(c.server,_.appId).then((e=>{(0,p.D6)(e.portalUrl,this._appOrigin,!0)?(f=new M({userId:e.username,server:c.server,expires:Date.now()+1e3*e.expires_in,token:e.token}),t(f)):r()})).catch(r):r()}}else if(d){if(this._checkProtocol(e.resUrl_,c,s,e.admin_)){let r=e.options_;e.admin_&&(r=r||{},r.isAdmin=!0),e._pendingDfd=this.signIn(e.resUrl_,c,r).then(t,s)}}else g=new a.Z("identity-manager:not-authenticated","User is not signed in."),s(g)},i=()=>{const r=e.sinfo_,i=r.owningSystemUrl,n=e.options_;let o,a,h,l;if(n&&(o=n.token,a=n.error,h=n.prompt),l=this._findCredential(i,{token:o,resource:e.resUrl_}),!l)for(const e of this.credentials)if(this._isIdProvider(i,e.server)){l=e;break}if(l){const i=this.findCredential(e.resUrl_,l.userId);if(i)t(i);else if(V(r,this._legacyFed)){const e=l.toJSON();e.server=r.server,e.resources=null,t(new M(e))}else(e._pendingDfd=this.generateToken(this.findServerInfo(l.server),null,{serverUrl:e.resUrl_,token:l.token,signal:e.options_.signal,ssl:l.ssl})).then((s=>{t(new M({userId:l?.userId,server:r.server,token:s.token,expires:null!=s.expires?Number(s.expires):null,ssl:!!s.ssl,isAdmin:e.admin_,validity:s.validity}))}),s)}else this._busy=null,o&&(e.options_.token=null),(e._pendingDfd=this.getCredential(i.replace(/\/?$/,"/sharing"),{resource:e.resUrl_,owningTenant:r.owningTenant,signal:e.options_.signal,token:o,error:a,prompt:h})).then((()=>{this._enqueue(e.resUrl_,e.sinfo_,e.options_,e,e.admin_)}),(t=>{e.resUrl_=e.sinfo_=e.refresh_=null,e.reject(t)}))};this._errbackFunc=s;const n=e.sinfo_.owningSystemUrl,o=this._isServerRsrc(e.resUrl_),h=e.sinfo_._restInfoPms;h?h.promise.then((t=>{const s=e.sinfo_;if(s._restInfoPms){s.adminTokenServiceUrl=s._restInfoPms.adminUrl,s._restInfoPms=null,s.tokenServiceUrl=((0,d.hS)("authInfo.tokenServicesUrl",t)||(0,d.hS)("authInfo.tokenServiceUrl",t)||(0,d.hS)("tokenServiceUrl",t))??null,s.shortLivedTokenValidity=(0,d.hS)("authInfo.shortLivedTokenValidity",t)??null,s.currentVersion=t.currentVersion,s.owningTenant=t.owningTenant;const e=s.owningSystemUrl=t.owningSystemUrl;e&&this._portals.push(e)}o&&s.owningSystemUrl?i():r()}),(()=>{e.sinfo_._restInfoPms=null;const t=new a.Z("identity-manager:server-identification-failed","Unknown resource - could not find token service endpoint.");s(t)})):o&&n?i():e.sinfo_._selfReq?e.sinfo_._selfReq.selfDfd.then((t=>{const s={};let r,i,n,o;return t&&(r=t.user?.username,s.username=r,s.allSSL=t.allSSL,i=t.supportsOAuth,o=parseFloat(t.currentVersion),"multitenant"===t.portalMode&&(n=t.customBaseUrl),e.sinfo_.currentVersion=o),e.sinfo_.webTierAuth=!!r,r&&this.normalizeWebTierAuth?this.generateToken(e.sinfo_,null,{ssl:s.allSSL}).catch((()=>null)).then((e=>(s.portalToken=e&&e.token,s.tokenExpiration=e&&e.expires,s))):!r&&i&&o>=4.4&&!this._findOAuthInfo(e.resUrl_)?this._generateOAuthInfo({portalUrl:e.sinfo_.server,customBaseUrl:n,owningTenant:e.sinfo_._selfReq.owningTenant}).catch((()=>null)).then((()=>s)):s})).catch((()=>null)).then((t=>{e.sinfo_._selfReq=null,t?r(t.username,t.allSSL,t.portalToken,t.tokenExpiration):r()})):r()}_generateOAuthInfo(e){let t,s=null,r=e.portalUrl;const i=e.customBaseUrl,n=e.owningTenant,a=!this._defaultOAuthInfo&&this._createDefaultOAuthInfo&&!this._hasTestedIfAppIsOnPortal;if(a){s=window.location.href;let e=s.indexOf("?");e>-1&&(s=s.slice(0,e)),e=s.search(/\/(apps|home)\//),s=e>-1?s.slice(0,e):null}return a&&s?(this._hasTestedIfAppIsOnPortal=!0,t=(0,o.Z)(s+"/sharing/rest",{query:{f:"json"}}).then((()=>{this._defaultOAuthInfo=new P({appId:"arcgisonline",popupCallbackUrl:s+"/home/oauth-callback.html"})}))):t=Promise.resolve(),t.then((()=>{if(this._defaultOAuthInfo)return r=r.replace(/^http:/i,"https:"),(0,o.Z)(r+"/sharing/rest/oauth2/validateRedirectUri",{query:{accountId:n,client_id:this._defaultOAuthInfo.appId,redirect_uri:(0,p.hF)(this._defaultOAuthInfo.popupCallbackUrl),f:"json"}}).then((e=>{if(e.data.valid){const t=this._defaultOAuthInfo.clone();e.data.urlKey&&i?t.portalUrl="https://"+e.data.urlKey.toLowerCase()+"."+i:t.portalUrl=r,t.popup=window!==window.top||!((0,p.D6)(r,this._appOrigin)||this._gwDomains.some((e=>e.regex.test(r)&&e.regex.test(this._appOrigin)))),this.oAuthInfos.push(t)}}))}))}_doOAuthSignIn(e,t,s,r){const i=s._oAuthCred,n={portalUrl:s.portalUrl};!s.popup&&s.preserveUrlHash&&window.location.hash&&(n.hash=window.location.hash),i.stateUID&&(n.uid=i.stateUID);const o={client_id:s.appId,response_type:i.codeVerifier?"code":"token",state:JSON.stringify(n),expiration:s.expiration,locale:s.locale,redirect_uri:this._getRedirectURI(s,!!i.codeVerifier)};s.forceLogin&&(o.force_login=!0),s.forceUserId&&s.userId&&(o.prepopulatedusername=s.userId),!s.popup&&this._doPortalSignIn(e)&&(o.redirectToUserOrgUrl=!0),i.codeVerifier&&(o.code_challenge=r||i.codeVerifier,o.code_challenge_method=r?"S256":"plain");const h=s.portalUrl.replace(/^http:/i,"https:")+"/sharing/oauth2/authorize",c=h+"?"+(0,p.B7)(o);if(s.popup){const e=window.open(c,"esriJSAPIOAuth",s.popupWindowFeatures);if(e)e.focus(),this._oAuthDfd.oAuthWin_=e,this._oAuthIntervalId=setInterval((()=>{if(e.closed){clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle.remove();const e=this._oAuthDfd;if(e){const t=new a.Z("identity-manager:user-aborted","ABORTED");e.reject(t)}}}),500),this._oAuthOnPopupHandle=(0,l.on)(window,["arcgis:auth:hash","arcgis:auth:location:search"],(e=>{"arcgis:auth:hash"===e.type?this.setOAuthResponseHash(e.detail):this._setOAuthResponseQueryString(e.detail)}));else{const e=new a.Z("identity-manager:popup-blocked","ABORTED");this._oAuthDfd.reject(e)}}else this._rejectOnPersistedPageShow=!0,this._oAuthRedirectFunc?this._oAuthRedirectFunc({authorizeParams:o,authorizeUrl:h,resourceUrl:e,serverInfo:t,oAuthInfo:s}):window.location.href=c}_getRedirectURI(e,t){const s=window.location.href.replace(/#.*$/,"");if(e.popup)return(0,p.hF)(e.popupCallbackUrl);if(t){const e=(0,p.mN)(s);return e.query&&["code","error","error_description","message_code","persist","state"].forEach((t=>{delete e.query[t]})),(0,p.fl)(e.path,e.query)}return s}}z.prototype.declaredClass="esri.identity.IdentityManagerBase";let M=class extends h.Z.EventedAccessor{constructor(e){super(e),this._oAuthCred=null,this.tokenRefreshBuffer=2,e?._oAuthCred&&(this._oAuthCred=e._oAuthCred)}initialize(){this.resources=this.resources||[],null==this.creationTime&&(this.creationTime=Date.now())}refreshToken(){const e=r.id.findServerInfo(this.server),t=e?.owningSystemUrl,s=!!t&&"server"===this.scope,i=s&&V(e,r.id._legacyFed),n=e.webTierAuth,o=n&&r.id.normalizeWebTierAuth,a=j[this.server],h=a?.[this.userId];let l,c=this.resources&&this.resources[0],d=s?r.id.findServerInfo(t):null,u={username:this.userId,password:h};if(n&&!o)return;s&&!d&&r.id.serverInfos.some((e=>(r.id._isIdProvider(t,e.server)&&(d=e),!!d)));const p=d?r.id.findCredential(d.server,this.userId):null;if(!s||p){if(!i){if(s)l={serverUrl:c,token:p?.token,ssl:p&&p.ssl};else if(o)u=null,l={ssl:this.ssl};else{if(!h){let t;return c&&(c=r.id._sanitizeUrl(c),this._enqueued=1,t=r.id._enqueue(c,e,null,null,this.isAdmin,this),t.then((()=>{this._enqueued=0,this.refreshServerTokens()})).catch((()=>{this._enqueued=0}))),t}this.isAdmin&&(l={isAdmin:!0})}return r.id.generateToken(s?d:e,s?null:u,l).then((e=>{this.token=e.token,this.expires=null!=e.expires?Number(e.expires):null,this.creationTime=Date.now(),this.validity=e.validity,this.emitTokenChange(),this.refreshServerTokens()})).catch((()=>{}))}p?.refreshToken()}}refreshServerTokens(){"portal"===this.scope&&r.id.credentials.forEach((e=>{const t=r.id.findServerInfo(e.server),s=t?.owningSystemUrl;e!==this&&e.userId===this.userId&&s&&"server"===e.scope&&(r.id._hasSameServerInstance(this.server,s)||r.id._isIdProvider(s,this.server))&&(V(t,r.id._legacyFed)?(e.token=this.token,e.expires=this.expires,e.creationTime=this.creationTime,e.validity=this.validity,e.emitTokenChange()):e.refreshToken())}))}emitTokenChange(e){clearTimeout(this._refreshTimer);const t=this.server?r.id.findServerInfo(this.server):null,s=t?.owningSystemUrl,i=s?r.id.findServerInfo(s):null;!1===e||s&&"portal"!==this.scope&&(!i?.webTierAuth||r.id.normalizeWebTierAuth)||null==this.expires&&null==this.validity||this._startRefreshTimer(),this.emit("token-change")}destroy(){this.userId=this.server=this.token=this.expires=this.validity=this.resources=this.creationTime=null,this._oAuthCred&&(this._oAuthCred.destroy(),this._oAuthCred=null);const e=r.id.credentials.indexOf(this);e>-1&&r.id.credentials.splice(e,1),this.emitTokenChange(),this.emit("destroy")}toJSON(){const e=(0,c.yd)({userId:this.userId,server:this.server,token:this.token,expires:this.expires,validity:this.validity,ssl:this.ssl,isAdmin:this.isAdmin,creationTime:this.creationTime,scope:this.scope}),t=this.resources;return t&&t.length>0&&(e.resources=t.slice()),e}_startRefreshTimer(){clearTimeout(this._refreshTimer);const e=6e4*this.tokenRefreshBuffer,t=2**31-1;let s=(this.validity?this.creationTime+6e4*this.validity:this.expires)-Date.now();s<0?s=0:s>t&&(s=t),this._refreshTimer=setTimeout(this.refreshToken.bind(this),s>e?s-e:s)}};(0,i._)([(0,_.Cb)()],M.prototype,"creationTime",void 0),(0,i._)([(0,_.Cb)()],M.prototype,"expires",void 0),(0,i._)([(0,_.Cb)()],M.prototype,"isAdmin",void 0),(0,i._)([(0,_.Cb)()],M.prototype,"oAuthState",void 0),(0,i._)([(0,_.Cb)()],M.prototype,"resources",void 0),(0,i._)([(0,_.Cb)()],M.prototype,"scope",void 0),(0,i._)([(0,_.Cb)()],M.prototype,"server",void 0),(0,i._)([(0,_.Cb)()],M.prototype,"ssl",void 0),(0,i._)([(0,_.Cb)()],M.prototype,"token",void 0),(0,i._)([(0,_.Cb)()],M.prototype,"tokenRefreshBuffer",void 0),(0,i._)([(0,_.Cb)()],M.prototype,"userId",void 0),(0,i._)([(0,_.Cb)()],M.prototype,"validity",void 0),M=(0,i._)([(0,f.j)("esri.identity.Credential")],M);class Z extends z{}Z.prototype.declaredClass="esri.identity.IdentityManager";const B=new Z;(0,r.qh)(B)}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8690.cf2b0443fa650b6f43f7.js b/docs/sentinel1-explorer/8690.cf2b0443fa650b6f43f7.js new file mode 100644 index 00000000..1508019e --- /dev/null +++ b/docs/sentinel1-explorer/8690.cf2b0443fa650b6f43f7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8690],{29573:function(e,t,i){i.d(t,{$7:function(){return h},$e:function(){return a},E0:function(){return o},N5:function(){return l},lW:function(){return n}});i(39994);var r=i(70375),s=i(3466);function a(e){const t=o(e);return null!=t?t.toDataURL():""}async function n(e){const t=o(e);if(null==t)throw new r.Z("imageToArrayBuffer","Unsupported image type");const i=await async function(e){if(!(e instanceof HTMLImageElement))return"image/png";const t=e.src;if((0,s.HK)(t)){const e=(0,s.sJ)(t);return"image/jpeg"===e?.mediaType?e.mediaType:"image/png"}return/\.png$/i.test(t)?"image/png":/\.(jpg|jpeg)$/i.test(t)?"image/jpeg":"image/png"}(e),a=await new Promise((e=>t.toBlob(e,i)));if(!a)throw new r.Z("imageToArrayBuffer","Failed to encode image");return{data:await a.arrayBuffer(),type:i}}function o(e){if(e instanceof HTMLCanvasElement)return e;if(e instanceof HTMLVideoElement)return null;const t=document.createElement("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");return e instanceof HTMLImageElement?i.drawImage(e,0,0,e.width,e.height):e instanceof ImageData&&i.putImageData(e,0,0),t}function l(e){const t=[],i=new Uint8Array(e);for(let e=0;e({width:e.width,height:e.height}))):(r=(0,s.n$)(e,t),this._inFlightResourceMap.set(e,r),r.then((t=>(this._inFlightResourceMap.delete(e),this._resourceMap.set(e,t),{width:t.width,height:t.height})),(()=>({width:0,height:0}))))}deleteResource(e){this._inFlightResourceMap.delete(e),this._resourceMap.delete(e)}loadFont(e){return(0,r.mx)(e)}}},89626:function(e,t,i){i.d(t,{Fp:function(){return o},RL:function(){return u},UV:function(){return c},bk:function(){return h}});var r=i(73534),s=i(53736),a=i(10927),n=i(14266);function o(e){switch(e.type){case"CIMPointSymbol":{const t=e.symbolLayers;if(!t||1!==t.length)return null;const i=t[0];return"CIMVectorMarker"!==i.type?null:o(i)}case"CIMVectorMarker":{const t=e.markerGraphics;if(!t||1!==t.length)return null;const i=t[0];if(!i)return null;const r=i.geometry;if(!r)return null;const s=i.symbol;return!s||"CIMPolygonSymbol"!==s.type&&"CIMLineSymbol"!==s.type||s.symbolLayers?.some((e=>!!e.effects))?null:{type:"sdf",geom:r,asFill:"CIMPolygonSymbol"===s.type}}}}function l(e){let t=1/0,i=-1/0,r=1/0,s=-1/0;for(const a of e)for(const e of a)e[0]i&&(i=e[0]),e[1]s&&(s=e[1]);return[t,r,i,s]}function h(e){return e?e.rings?l(e.rings):e.paths?l(e.paths):(0,s.YX)(e)?[e.xmin,e.ymin,e.xmax,e.ymax]:null:null}function c(e,t,i,r,s){const[a,o,l,h]=e;if(l0&&(b=(t.xmax-t.xmin)/(t.ymax-t.ymin),y=r.x/(i*b),v=r.y/i):(y=r.x,v=r.y)),t&&(y=.5*(t.xmax+t.xmin)+y*(t.xmax-t.xmin),v=.5*(t.ymax+t.ymin)+v*(t.ymax-t.ymin)),y-=a,v-=o,y*=_,v*=_,y+=p,v+=p;let w=y/m-.5,x=v/f-.5;return s&&i&&(w*=i*b,x*=i),[g,w,x,b]}function u(e){const t=function(e){return e?e.rings?e.rings:e.paths?e.paths:void 0!==e.xmin&&void 0!==e.ymin&&void 0!==e.xmax&&void 0!==e.ymax?[[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]]:null:null}(e.geom),i=function(e){let t=1/0,i=-1/0,r=1/0,s=-1/0;for(const a of e)for(const e of a)e[0]i&&(i=e[0]),e[1]s&&(s=e[1]);return new a.Z(t,r,i-t,s-r)}(t),r=n.s4,s=Math.floor(.5*(64-r)),o=(128-2*(s+r))/Math.max(i.width,i.height),l=Math.round(i.width*o)+2*s,h=Math.round(i.height*o)+2*s,c=[];for(const r of t)if(r&&r.length>1){const t=[];for(const a of r){let[r,n]=a;r-=i.x,n-=i.y,r*=o,n*=o,r+=s-.5,n+=s-.5,e.asFill?t.push([r,n]):t.push([Math.round(r),Math.round(n)])}if(e.asFill){const e=t.length-1;t[0][0]===t[e][0]&&t[0][1]===t[e][1]||t.push(t[0])}c.push(t)}const u=function(e,t,i,r){const s=t*i,a=new Array(s),n=r*r+1;for(let e=0;et&&(p=t),_<0&&(_=0),m>i&&(m=i);const f=o[0]-e[0],g=o[1]-e[1],y=f*f+g*g;for(let r=d;ry?(n=o[0],l=o[1]):(h/=y,n=e[0]+h*f,l=e[1]+h*g);const c=(r-n)*(r-n)+(s-l)*(s-l),u=(i-s-1)*t+r;ct-r&&(p=t-r),_i-r&&(m=i-r);for(let a=_;aa==o[1]>a)continue;const n=(i-a-1)*t;for(let t=d;t"vertical"===e||"horizontal"===e||"cross"===e||"esriSFSCross"===e||"esriSFSVertical"===e||"esriSFSHorizontal"===e;function o(e,t,i){const r=t.style,a=(0,s.fp)(Math.ceil(i)),o=n(r)?8*a:16*a,l=2*a;e.width=o,e.height=o;const h=e.getContext("2d");h.strokeStyle="#FFFFFF",h.lineWidth=a,h.beginPath(),"vertical"!==r&&"cross"!==r&&"esriSFSCross"!==r&&"esriSFSVertical"!==r||(h.moveTo(o/2,-l),h.lineTo(o/2,o+l)),"horizontal"!==r&&"cross"!==r&&"esriSFSCross"!==r&&"esriSFSHorizontal"!==r||(h.moveTo(-l,o/2),h.lineTo(o+l,o/2)),"backward-diagonal"!==r&&"diagonal-cross"!==r&&"esriSFSDiagonalCross"!==r&&"esriSFSBackwardDiagonal"!==r||(h.moveTo(-l,-l),h.lineTo(o+l,o+l),h.moveTo(o-l,-l),h.lineTo(o+l,l),h.moveTo(-l,o-l),h.lineTo(l,o+l)),"forward-diagonal"!==r&&"diagonal-cross"!==r&&"esriSFSForwardDiagonal"!==r&&"esriSFSDiagonalCross"!==r||(h.moveTo(o+l,-l),h.lineTo(-l,o+l),h.moveTo(l,-l),h.lineTo(-l,l),h.moveTo(o+l,o-l),h.lineTo(o-l,o+l)),h.stroke();const c=h.getImageData(0,0,e.width,e.height),u=new Uint8Array(c.data);let d;for(let e=0;es;)s+=this.timeToFrame,this.nextFrame();const a=this._animation.getFrame(this._currentFrame);this._onFrameData(a)}nextFrame(){if(this._currentFrame+=this._direction,this._direction>0){if(this._currentFrame===this._animation.frameDurations.length)switch(this._repeatType){case a.of.None:this._currentFrame-=this._direction;break;case a.of.Loop:this._currentFrame=0;break;case a.of.Oscillate:this._currentFrame-=this._direction,this._direction=-1}}else if(-1===this._currentFrame)switch(this._repeatType){case a.of.None:this._currentFrame-=this._direction;break;case a.of.Loop:this._currentFrame=this._animation.frameDurations.length-1;break;case a.of.Oscillate:this._currentFrame-=this._direction,this._direction=1}this.timeToFrame=this._animation.frameDurations[this._currentFrame];const e=this._animation.getFrame(this._currentFrame);this._onFrameData(e)}}function h(e,t,i,r){let h,{repeatType:c}=t;if(null==c&&(c=a.of.Loop),!0===t.reverseAnimation&&(e=function(e){const{width:t,height:i}=e,r=e.frameDurations.reverse();return{frameCount:e.frameCount,duration:e.duration,frameDurations:r,getFrame:t=>{const i=e.frameDurations.length-1-t;return e.getFrame(i)},width:t,height:i}}(e)),null!=t.duration&&(e=function(e,t){const{width:i,height:r,getFrame:a}=e,n=t/e.duration,o=e.frameDurations.map((e=>(0,s.HA)(e*n)));return{frameCount:e.frameCount,duration:e.duration,frameDurations:o,getFrame:a,width:i,height:r}}(e,(0,s.HA)(1e3*t.duration))),null!=t.repeatDelay){const i=1e3*t.repeatDelay;c===a.of.Loop?e=o(e,(0,s.HA)(i)):c===a.of.Oscillate&&(e=function(e,t){const{width:i,height:r,getFrame:a}=e,n=e.frameDurations.slice(),o=n.shift();return n.unshift((0,s.HA)(o+t)),{frameCount:e.frameCount,duration:e.duration+t,frameDurations:n,getFrame:a,width:i,height:r}}(o(e,(0,s.HA)(i/2)),(0,s.HA)(i/2)))}if(null!=t.startTimeOffset)h=(0,s.HA)(1e3*t.startTimeOffset);else if(null!=t.randomizeStartTime){const r=82749913,a=null!=t.randomizeStartSeed?t.randomizeStartSeed:r,o=(0,n.f)(i,a);h=(0,s.HA)(o*function(e){return(0,s.HA)(e.frameDurations.reduce(((e,t)=>e+t),0))}(e))}else h=(0,s.HA)(0);return new l(e,h,c,r)}function c(e,t,i,s){const a=null==t.playAnimation||t.playAnimation,n=h(e,t,i,s);let o,l=n.timeToFrame;return function e(){o=a?setTimeout((()=>{n.nextFrame(),l=n.timeToFrame,e()}),l):void 0}(),(0,r.kB)((()=>a&&clearTimeout(o)))}},58690:function(e,t,i){i.r(t),i.d(t,{GraphicContainer:function(){return si.Z},GraphicsView2D:function(){return ri.Z},LabelManager:function(){return ii.Q},MagnifierView2D:function(){return pi},MapViewNavigation:function(){return ai.Z},Stage:function(){return ti}});var r=i(70375),s=i(39994),a=i(61681),n=i(17262),o=i(18809),l=i(38642),h=i(39043),c=i(69079),u=i(67134),d=i(13802),p=i(95550),_=i(21130),m=i(95215),f=i(42512),g=i(25609),y=i(98591),v=i(89626),b=i(60789),w=i(29882),x=i(14266);function M(e){const t=e.markerPlacement;return t&&t.angleToLine?g.v2.MAP:g.v2.SCREEN}class S{constructor(e){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[],e&&(this._resourceManager=e)}analyzeSymbolReference(e,t,i){if(this._cimLayers=i??[],!e)return this._cimLayers;if(this._reset(),e.primitiveOverrides){this._primitiveOverrides=e.primitiveOverrides;for(const e of this._primitiveOverrides){const t=e.valueExpressionInfo;if(t)this._setPoMap(e.primitiveName,e.propertyName,t);else if(null!=e.value){let t=e.value;e.propertyName.includes("Color")&&((0,h.jQ)(t)&&(t=(0,b.nn)(t)),t=(0,b.oY)(t)),this._setPoMap(e.primitiveName,e.propertyName,t)}}}return this._analyzeSymbol(e.symbol,t),this._cimLayers}_reset(){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[]}_analyzeSymbol(e,t){switch(e?.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":this._analyzeMultiLayerSymbol(e,t)}}_analyzeMultiLayerSymbol(e,t){const i=e?.symbolLayers;if(!i)return;const r=e.effects;let s=g.v2.SCREEN;const a=(0,b.ap)(e)??0;"CIMPointSymbol"===e.type&&"Map"===e.angleAlignment&&(s=g.v2.MAP);const n="CIMPolygonSymbol"===e.type;let o=i.length;for(;o--;){const l=i[o];if(!l||!1===l.enable)continue;let h;r?.length&&(h=[...r]);const c=l.effects;c?.length&&(r?h.push(...c):h=[...c]);let u=null;if(h){u=[];for(const e of h){const t=y.E.findEffectOverrides(e,this._primitiveOverrides);t&&u.push(t)}}const p=[];switch(y.E.findApplicableOverrides(l,this._primitiveOverrides,p),l.type){case"CIMSolidFill":this._analyzeSolidFill(l,u);break;case"CIMPictureFill":this._analyzePictureFill(l,u);break;case"CIMHatchFill":this._analyzeHatchFill(l,u);break;case"CIMGradientFill":this._analyzeGradientFill(l,u);break;case"CIMSolidStroke":this._analyzeSolidStroke(l,u,n,a);break;case"CIMPictureStroke":this._analyzePictureStroke(l,u,n,a);break;case"CIMGradientStroke":this._analyzeGradientStroke(l,u,n,a);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":{"CIMLineSymbol"!==e.type&&"CIMPolygonSymbol"!==e.type||(s=M(l));const i=[],r=l.primitiveName;r&&i.push(r);const o=n&&(0,b.gJ)(l.markerPlacement);this._analyzeMarker(l,u,null,i,s,a,t,[],!1,o);break}default:d.Z.getLogger("esri.symbols.cim.cimAnalyzer").error("Cannot analyze CIM layer",l.type)}}}_analyzeSolidFill(e,t){const{primitiveName:i,type:r}=e,s=(0,b.oY)(e.color);this._cimLayers.push({type:"fill",spriteRasterizationParam:null,colorLocked:!!e.colorLocked,color:this._getValueOrOverrideExpression(r,i,"Color",s),height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,effects:t,applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!1})}_analyzePictureFill(e,t){const{primitiveName:i,type:r}=e,s=(0,b.cO)(e),a=(0,b.NA)(e.height,f.E.CIMPictureFill.height);let n=(0,b.NA)(e.scaleX,1);if("width"in e&&"number"==typeof e.width){const t=e.width;let i=1;const r=this._resourceManager.getResource(e.url);null!=r&&(i=r.width/r.height),n/=i*(a/t)}const o={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(i,r)};this._cimLayers.push({type:"fill",spriteRasterizationParam:o,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(r,i,"TintColor",s),height:this._getValueOrOverrideExpression(r,i,"Height",a),scaleX:this._getValueOrOverrideExpression(r,i,"ScaleX",n),angle:this._getValueOrOverrideExpression(r,i,"Rotation",(0,b.NA)(e.rotation)),offsetX:this._getValueOrOverrideExpression(r,i,"OffsetX",(0,b.NA)(e.offsetX)),offsetY:this._getValueOrOverrideExpression(r,i,"OffsetY",(0,b.NA)(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!1,hasUnresolvedReplacementColor:!1})}_analyzeHatchFill(e,t){const{primitiveName:i,type:r}=e,s=this._analyzeMaterialOverrides(i,["Rotation","OffsetX","OffsetY"]),a=this._normalizePrimitiveOverrideProps(s);let n=[255,255,255,1],o=!1;if(e.lineSymbol?.symbolLayers)for(const t of e.lineSymbol.symbolLayers){if("CIMSolidStroke"!==t.type)continue;const e=t.primitiveName??i;o||!e||t.colorLocked||null==this._poMap[e]?.Color&&null==this._poMap[e]?.StrokeColor||(n=(0,b.oY)(t.color),n=this._maybeGetValueOrOverrideExpression(e,"StrokeColor")??this._getValueOrOverrideExpression(r,e,"Color",n),o=!0);const s=this._maybeGetValueOrOverrideExpression(e,"StrokeWidth");if(s){let t=null,i=null;"number"==typeof s?t=s:i=s.valueExpressionInfo;let n=a.find((e=>"strokeWidth"===e.propertyName));n?n.propertyName="width":(n={type:"CIMPrimitiveOverride",primitiveName:e,propertyName:"width",valueExpressionInfo:i,value:t,defaultValue:(0,b.dT)(r,"width")},a.push(n))}}const l={type:"sprite-rasterization-param",resource:e,overrides:a};this._cimLayers.push({type:"fill",spriteRasterizationParam:l,colorLocked:!!e.colorLocked,effects:t,color:n,height:this._getValueOrOverrideExpression(r,i,"Separation",(0,b.NA)(e.separation,f.E.CIMHatchFill.separation)),scaleX:1,angle:this._getValueOrOverrideExpression(r,i,"Rotation",(0,b.NA)(e.rotation)),offsetX:this._getValueOrOverrideExpression(r,i,"OffsetX",(0,b.NA)(e.offsetX)),offsetY:this._getValueOrOverrideExpression(r,i,"OffsetY",(0,b.NA)(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!o})}_analyzeGradientFill(e,t){this._cimLayers.push({type:"fill",spriteRasterizationParam:null,colorLocked:!!e.colorLocked,effects:t,color:[128,128,128,1],height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,applyRandomOffset:!1,sampleAlphaOnly:!1,hasUnresolvedReplacementColor:!1})}_analyzeSolidStroke(e,t,i,r){const{primitiveName:s,type:a}=e,n=(0,b.oY)(e.color),o=(0,b.NA)(e.width,f.E.CIMSolidStroke.width),l=(0,b.vn)(e.capStyle,f.E.CIMSolidStroke.capstyle),h=(0,b.vn)(e.joinStyle,f.E.CIMSolidStroke.joinstyle),c=e.miterLimit;let u,d,p=[];if(this._analyzePrimitiveOverrides(s,t,null,null)&&(p=this._getPrimitiveMaterialOverrides(s,a)),t&&t instanceof Array&&t.length>0){const e=t[t.length-1].effect;e&&"CIMGeometricEffectDashes"===e.type&&"NoConstraint"===e.lineDashEnding&&null===e.offsetAlongLine&&(u=e.dashTemplate,d=e.scaleDash,(t=[...t]).pop())}const _=void 0!==u?{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:u,capStyle:l},overrides:p}:null;this._cimLayers.push({type:"line",spriteRasterizationParam:_,isOutline:i,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(a,s,"Color",n),width:this._getValueOrOverrideExpression(a,s,"Width",o),cap:this._getValueOrOverrideExpression(a,s,"CapStyle",l),join:this._getValueOrOverrideExpression(a,s,"JoinStyle",h),miterLimit:c&&this._getValueOrOverrideExpression(a,s,"MiterLimit",c),referenceWidth:r,zOrder:O(e.name),dashTemplate:u,scaleDash:d,sampleAlphaOnly:!0})}_analyzePictureStroke(e,t,i,r){const{primitiveName:s,type:a}=e,n=(0,b.cO)(e),o=(0,b.NA)(e.width,f.E.CIMPictureStroke.width),l=(0,b.vn)(e.capStyle,f.E.CIMPictureStroke.capstyle),h=(0,b.vn)(e.joinStyle,f.E.CIMPictureStroke.joinstyle),c=e.miterLimit,u={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(s,a)};this._cimLayers.push({type:"line",spriteRasterizationParam:u,isOutline:i,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(a,s,"TintColor",n),width:this._getValueOrOverrideExpression(a,s,"Width",o),cap:this._getValueOrOverrideExpression(a,s,"CapStyle",l),join:this._getValueOrOverrideExpression(a,s,"JoinStyle",h),miterLimit:c&&this._getValueOrOverrideExpression(a,s,"MiterLimit",c),referenceWidth:r,zOrder:O(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1})}_analyzeGradientStroke(e,t,i,r){const{primitiveName:s,type:a}=e,n=(0,b.NA)(e.width,f.E.CIMSolidStroke.width),o=(0,b.vn)(e.capStyle,f.E.CIMGradientStroke.capstyle),l=(0,b.vn)(e.joinStyle,f.E.CIMGradientStroke.joinstyle),h=e.miterLimit;this._cimLayers.push({type:"line",spriteRasterizationParam:null,isOutline:i,colorLocked:!!e.colorLocked,effects:t,color:[128,128,128,1],width:this._getValueOrOverrideExpression(a,s,"Width",n),cap:this._getValueOrOverrideExpression(a,s,"CapStyle",o),join:this._getValueOrOverrideExpression(a,s,"JoinStyle",l),miterLimit:h&&this._getValueOrOverrideExpression(a,s,"MiterLimit",h),referenceWidth:r,zOrder:O(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1})}_analyzeMarker(e,t,i,r,s,a,n,o,l=!1,h=!1){if(l||=!!e.colorLocked,this._analyzeMarkerInsidePolygon(e,t,l))return;const c=(0,b.NA)(e.size,f.E.CIMVectorMarker.size),u=(0,b.NA)(e.rotation),d=(0,b.NA)(e.offsetX),p=(0,b.NA)(e.offsetY),{primitiveName:_,type:m}=e,g=this._getValueOrOverrideExpression(m,_,"Size",c),y=this._getValueOrOverrideExpression(m,_,"Rotation",u),v=this._getValueOrOverrideExpression(m,_,"OffsetX",d),w=this._getValueOrOverrideExpression(m,_,"OffsetY",p);switch(e.type){case"CIMPictureMarker":this._analyzePictureMarker(e,t,i,r,s,a,g,y,v,w,o,l,h);break;case"CIMVectorMarker":this._analyzeVectorMarker(e,t,i,r,s,a,g,y,v,w,o,n,l,h)}}_analyzeMarkerInsidePolygon(e,t,i){const{markerPlacement:r,type:s}=e;if(!r||"CIMMarkerPlacementInsidePolygon"!==r.type)return!1;if("CIMVectorMarker"===s||"CIMPictureMarker"===s){const i=e.primitiveName;if(i&&this._analyzePrimitiveOverrides([i],t,null,null))return!1;const a=r.primitiveName;if(a&&this._analyzePrimitiveOverrides([a],t,null,null))return!1;if("CIMVectorMarker"===s){const{markerGraphics:t}=e;if(t)for(const e of t){const{symbol:t}=e;if("CIMPolygonSymbol"===t?.type&&t.symbolLayers){const{symbolLayers:e}=t;for(const t of e)if("CIMSolidStroke"===t.type)return!1}}}else{const{animatedSymbolProperties:t}=e;if(t)return!1}}const a=Math.abs(r.stepX),n=Math.abs(r.stepY);if(0===a||0===n)return!0;let o,l;if("Random"===r.gridType){const e=(0,p.Wz)(x.KA),t=Math.max(Math.floor(e/a),1);o=n*Math.max(Math.floor(e/n),1),l=t*a/o}else r.shiftOddRows?(o=2*n,l=a/n*.5):(o=n,l=a/n);const h=(0,b.cO)(e),c="CIMCharacterMarker"===e.type?null:{type:"sprite-rasterization-param",resource:e,overrides:[]};return this._cimLayers.push({type:"fill",spriteRasterizationParam:c,colorLocked:i,effects:t,color:h,height:o,scaleX:l,angle:r.gridAngle,offsetX:(0,b.NA)(r.offsetX),offsetY:(0,b.NA)(r.offsetY),applyRandomOffset:"Random"===r.gridType,sampleAlphaOnly:"CIMPictureMarker"!==e.type,hasUnresolvedReplacementColor:!0}),!0}_analyzePictureMarker(e,t,i,r,s,a,n,o,l,h,c,d,p){const{primitiveName:m,type:f}=e;let g=(0,b.NA)(e.scaleX,1);const y=(0,b.cO)(e);i||(i=this._createMarkerPlacementOverrideExpression(e.markerPlacement));const v=this._createAnimatedSymbolPropertiesOverrideExpression(e.animatedSymbolProperties),w=e.anchorPoint??{x:0,y:0};if("width"in e&&"number"==typeof e.width){const t=e.width;let i=1;const r=this._resourceManager.getResource(e.url);null!=r&&(i=r.width/r.height),g/=i*((0,b.NA)(e.size)/t)}const x=[...r];let M;e.primitiveName&&x.push(e.primitiveName),e.animatedSymbolProperties||v?M={type:"animated",url:e.url,urlHash:"H"+(0,_.hP)(e.url),playAnimation:e.animatedSymbolProperties?.playAnimation,reverseAnimation:e.animatedSymbolProperties?.reverseAnimation,randomizeStartTime:e.animatedSymbolProperties?.randomizeStartTime,randomizeStartSeed:e.animatedSymbolProperties?.randomizeStartSeed,startTimeOffset:e.animatedSymbolProperties?.startTimeOffset,duration:e.animatedSymbolProperties?.duration,repeatType:e.animatedSymbolProperties?.repeatType,repeatDelay:e.animatedSymbolProperties?.repeatDelay}:(M=(0,u.d9)(e),M.markerPlacement=null);const S={type:"sprite-rasterization-param",resource:M,overrides:this._getMaterialOverrides(x,f)};v&&S.overrides.push(...v.overrides),this._cimLayers.push({type:"marker",spriteRasterizationParam:S,colorLocked:d,effects:t,scaleSymbolsProportionally:!1,alignment:s,size:n,scaleX:this._getValueOrOverrideExpression(f,m,"ScaleX",g),rotation:o,offsetX:l,offsetY:h,transform:{type:"cim-marker-transform-param",params:c},color:this._getValueOrOverrideExpression(f,m,"TintColor",y),anchorPoint:{x:w.x,y:w.y},isAbsoluteAnchorPoint:"Relative"!==e.anchorPointUnits,outlineColor:[0,0,0,0],outlineWidth:0,frameHeight:0,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:a,sizeRatio:1,isOutline:p,markerPlacement:i,animatedSymbolProperties:v})}_analyzeVectorMarker(e,t,i,r,s,a,n,o,l,h,c,u,d,p){const _=e.markerGraphics;if(!_)return;const m=e.frame;let f=0;if(f=m?m.ymax-m.ymin:a,f){const t={offsetX:l,offsetY:h,rotation:o,size:n,frameHeight:f,rotateClockWise:!!e.rotateClockwise};c=[...c,t]}i||(i=this._createMarkerPlacementOverrideExpression(e.markerPlacement));for(const n of _)if(n){const o=n.symbol;if(!o)continue;const l=n.primitiveName;let h;if(l&&r.push(l),("CIMPointSymbol"===o.type||"CIMTextSymbol"===o.type)&&m){let t=0,i=0;const r=n.geometry;"x"in r&&"y"in r&&(t+=r.x-.5*(m.xmin+m.xmax),i+=r.y-.5*(m.ymin+m.ymax));const s=e.anchorPoint;s&&("Absolute"===e.anchorPointUnits?(t-=s.x,i-=s.y):m&&(t-=(m.xmax-m.xmin)*s.x,i-=(m.ymax-m.ymin)*s.y));const a={offsetX:t,offsetY:i,rotation:0,size:0,frameHeight:0,rotateClockWise:!1};h=[...c,a]}switch(o.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":u||T(o)?this._analyzeMultiLayerGraphicNonSDF(e,t,i,null,n,r,s,a,h??c,f,d,p):this._analyzeMultiLayerGraphic(e,t,i,null,n,r,s,a,h??c,f,d,p);break;case"CIMTextSymbol":this._analyzeTextGraphic(t,i,n,r,s,a,h??c,d)}l&&r.pop()}}_analyzeMultiLayerGraphic(e,t,i,r,s,a,n,o,l,h,c,u){const d=s.symbol,p=d.symbolLayers;if(!p)return;let _=p.length;if(P(p))return void this._analyzeCompositeMarkerGraphic(e,t,i,r,s,p,n,o,l,h,c,u);const m=this._resourceManager.geometryEngine,f=w.j.applyEffects(d.effects,s.geometry,m);if(f)for(;_--;){const d=p[_];if(!d||!1===d.enable)continue;const g=d.primitiveName;switch(g&&a.push(g),d.type){case"CIMSolidFill":case"CIMSolidStroke":{const a=w.j.applyEffects(d.effects,f,m),p=(0,v.bk)(a);if(!p)continue;const _="Relative"!==e.anchorPointUnits,[y,x,M,S]=(0,v.UV)(p,e.frame,e.size,e.anchorPoint,_),O="CIMSolidFill"===d.type,P={type:"sdf",geom:a,asFill:O},{path:T}=d,C=O?(0,b.oY)((0,b.W7)(d)):null==T?(0,b.oY)((0,b.$Z)(d)):[0,0,0,0],z=O?[0,0,0,0]:(0,b.oY)((0,b.$Z)(d)),F=(0,b.F)(d)??0;if(!O&&!F)break;const E=s.primitiveName;let R=null;O&&!d.colorLocked&&(R=this._maybeGetValueOrOverrideExpression(E,"FillColor"));let A=null;O||d.colorLocked||(A=this._maybeGetValueOrOverrideExpression(E,"StrokeColor"));const k=R??this._getValueOrOverrideExpression(d.type,g,"Color",C),B=A??this._getValueOrOverrideExpression(d.type,g,"Color",z),I=this._maybeGetValueOrOverrideExpression(E,"StrokeWidth")??this._getValueOrOverrideExpression(d.type,g,"Width",F),D=T?{type:"sprite-rasterization-param",resource:{type:"path",path:T,asFill:O},overrides:[]}:{type:"sprite-rasterization-param",resource:P,overrides:[]};this._cimLayers.push({type:"marker",spriteRasterizationParam:D,colorLocked:!!d.colorLocked||!!c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:n,anchorPoint:{x:x,y:M},isAbsoluteAnchorPoint:_,size:h,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:h,widthRatio:S,rotateClockwise:!1,referenceSize:o,sizeRatio:y,color:k,outlineColor:B,outlineWidth:I,isOutline:u,markerPlacement:i,animatedSymbolProperties:r});break}case"CIMPictureMarker":case"CIMVectorMarker":d.markerPlacement?this._analyzeMultiLayerGraphicNonSDF(e,t,i,r,s,a,n,o,l,h,!!d.colorLocked||!!c,u):this._analyzeMarker(d,t,i,a,n,o,!1,l,c,u);break;default:this._analyzeMultiLayerGraphicNonSDF(e,t,i,r,s,a,n,o,l,h,!!d.colorLocked||!!c,u)}g&&a.pop()}}_analyzeTextGraphic(e,t,i,r,s,a,n,o){y.E.findApplicableOverrides(i,this._primitiveOverrides,[]);const l=i.geometry;if(!("x"in l)||!("y"in l))return;const h=i.symbol,u=(0,b.BX)(h),d=(0,b.wi)(h.fontStyleName),p=(0,c.BN)(h.fontFamilyName);h.font={family:p,decoration:u,...d};const _=(0,b.NA)(h.height,f.E.CIMTextSymbol.height),m=(0,b.NA)(h.angle),g=(0,b.NA)(h.offsetX),v=(0,b.NA)(h.offsetY),w=(0,b.oY)((0,b.W7)(h));let x=(0,b.oY)((0,b.$Z)(h)),M=(0,b.F)(h)??0;M||(x=(0,b.oY)((0,b.W7)(h.haloSymbol)),M=(0,b.NA)(h.haloSize));let S=!1;if(h.symbol?.symbolLayers)for(const e of h.symbol.symbolLayers)null!=(0,b.oY)((0,b.W7)(e))&&(S=!!e.colorLocked);const O=i.primitiveName;let P=null;S||(P=this._maybeGetValueOrOverrideExpression(O,"FillColor"));const T=this._maybeGetValueOrOverrideExpression(O,"TextSize"),C=this._maybeGetValueOrOverrideExpression(O,"TextAngle"),z=this._maybeGetValueOrOverrideExpression(O,"TextOffsetX"),F=this._maybeGetValueOrOverrideExpression(O,"TextOffsetY");let E=null,R=null,A=0;if(h.callout&&"CIMBackgroundCallout"===h.callout.type){const e=h.callout;if(e.backgroundSymbol){const t=e.backgroundSymbol.symbolLayers;if(t)for(const e of t)"CIMSolidFill"===e.type?E=(0,b.oY)(e.color):"CIMSolidStroke"===e.type&&(R=(0,b.oY)(e.color),A=(0,b.NA)(e.width,f.E.CIMSolidStroke.width))}}const k=this._getValueOrOverrideExpression(h.type,i.primitiveName,"TextString",i.textString??"");if(null==k)return;const{fontStyleName:B}=h,I=p+(B?"-"+B.toLowerCase():"-regular"),D=this._getMaterialOverrides(r,h.type);D.push(...this._getPrimitiveMaterialOverrides(i.primitiveName,h.type));const N={type:"text-rasterization-param",resource:{type:"text",textString:i.textString??"",font:h.font,symbol:h,primitiveName:i.primitiveName},overrides:D};this._cimLayers.push({type:"text",lineWidth:null,textRasterizationParam:N,colorLocked:!!o||!!S,effects:e,alignment:s,anchorPoint:{x:0,y:0},isAbsoluteAnchorPoint:!1,fontName:I,decoration:u,weight:d.weight,style:d.style,size:T??_,angle:C??m,offsetX:z??g,offsetY:F??v,transform:{type:"cim-marker-transform-param",params:n},horizontalAlignment:(0,b.X_)(h.horizontalAlignment),verticalAlignment:(0,b.FG)(h.verticalAlignment),text:k,color:P??this._getValueOrOverrideExpression(h.type,i.primitiveName,"Color",w),outlineColor:x,outlineSize:M,backgroundColor:E,borderLineColor:R,borderLineWidth:A,referenceSize:a,sizeRatio:1,markerPlacement:t})}_analyzeMultiLayerGraphicNonSDF(e,t,i,r,s,a,n,o,l,h,c,u){const d=this._buildSimpleMarker(e,s),_=e.primitiveName,f=this._analyzeMaterialOverrides(_,["Rotation","OffsetX","OffsetY"]),g=this._normalizePrimitiveOverrideProps(f),[y,v,b]=m.B$.getTextureAnchor(d,this._resourceManager),w=this._getMaterialOverrides(a,e.type);w.push(...g);const x={type:"sprite-rasterization-param",resource:{...d,avoidSDFRasterization:!0},overrides:w};this._cimLayers.push({type:"marker",spriteRasterizationParam:x,colorLocked:c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:n,anchorPoint:{x:y,y:v},isAbsoluteAnchorPoint:!1,size:h,rotation:0,offsetX:0,offsetY:0,transform:{type:"cim-marker-transform-param",params:l},color:[255,255,255,1],outlineColor:[0,0,0,0],outlineWidth:0,scaleX:1,frameHeight:h,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:o,sizeRatio:b/(0,p.F2)(e.size),isOutline:u,markerPlacement:i,animatedSymbolProperties:r})}_createMarkerPlacementOverrideExpression(e){if(!e)return null;const t=[];return y.E.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-marker-placement-info",placement:e,overrides:C(t)}}_createAnimatedSymbolPropertiesOverrideExpression(e){if(!e)return null;const t=[];return y.E.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-animation-info",animation:e,overrides:C(t)}}_buildSimpleMarker(e,t){return{type:e.type,enable:!0,name:e.name,colorLocked:e.colorLocked,primitiveName:e.primitiveName,anchorPoint:e.anchorPoint,anchorPointUnits:e.anchorPointUnits,offsetX:0,offsetY:0,rotateClockwise:e.rotateClockwise,rotation:0,size:e.size,billboardMode3D:e.billboardMode3D,depth3D:e.depth3D,frame:e.frame,markerGraphics:[t],scaleSymbolsProportionally:e.scaleSymbolsProportionally,respectFrame:e.respectFrame,clippingPath:e.clippingPath}}_analyzeCompositeMarkerGraphic(e,t,i,r,s,a,n,o,l,h,c,u){const d=s.geometry,p=a[0],_=a[1],m=(0,v.bk)(d);if(!m)return;const g="Relative"!==e.anchorPointUnits,[y,w,x,M]=(0,v.UV)(m,e.frame,e.size,e.anchorPoint,g),{path:S}=_,O=_.primitiveName,P=p.primitiveName,T=s.primitiveName;let C=null;_.colorLocked||c||(C=this._maybeGetValueOrOverrideExpression(T,"FillColor"));const z=C??this._getValueOrOverrideExpression(_.type,O,"Color",(0,b.oY)(_.color));let F=null;p.colorLocked||c||(F=this._maybeGetValueOrOverrideExpression(T,"StrokeColor"));const E=F??this._getValueOrOverrideExpression(p.type,P,"Color",(0,b.oY)(p.color)),R=this._maybeGetValueOrOverrideExpression(T,"StrokeWidth")??this._getValueOrOverrideExpression(p.type,P,"Width",(0,b.NA)(p.width,f.E.CIMSolidStroke.width)),A={type:"sprite-rasterization-param",resource:S?{type:"path",path:S,asFill:!0}:{type:"sdf",geom:d,asFill:!0},overrides:[]};this._cimLayers.push({type:"marker",spriteRasterizationParam:A,colorLocked:c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:n,anchorPoint:{x:w,y:x},isAbsoluteAnchorPoint:g,size:h,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:h,widthRatio:M,rotateClockwise:!1,referenceSize:o,sizeRatio:y,color:z,outlineColor:E,outlineWidth:R,isOutline:u,markerPlacement:i,animatedSymbolProperties:r})}_setPoMap(e,t,i){let r;this._poMap[e]?r=this._poMap[e]:(r={},this._poMap[e]=r),r[t]=i}_maybeGetValueOrOverrideExpression(e,t,i){return this._getValueOrOverrideExpression("",e,t,i,!1)}_getValueOrOverrideExpression(e,t,i,r,s=!0){if(s&&!(0,b.Mk)(r)&&(r=(0,b.dT)(e,i.toLowerCase())),null==t)return r;const a=this._poMap[t];if(null==a)return r;const n=a[i];return"string"==typeof n||"number"==typeof n||Array.isArray(n)?n:n?{valueExpressionInfo:n,defaultValue:r}:r}_analyzePrimitiveOverrides(e,t,i,r){if(null==e)return!1;"string"==typeof e&&(e=[e]);for(const t of this._primitiveOverrides)if(e.includes(t.primitiveName)&&t.valueExpressionInfo)return!0;if(null!=t)for(const e of t)if(e?.overrides.length>0)return!0;if(null!=i)for(const e of i)if(e?.overrides.length>0)return!0;if(null!=r)for(const e of r)if(e?.overrides.length>0)return!0;return!1}_getMaterialOverrides(e,t){if(!e)return[];const i=[];for(const r of e)i.push(...this._getPrimitiveMaterialOverrides(r,t));return i}_getPrimitiveMaterialOverrides(e,t){if(!e)return[];const i=this._normalizePrimitiveOverrideProps(this._primitiveOverrides.filter((t=>t.primitiveName===e)));return i.forEach((e=>e.defaultValue=(0,b.dT)(t,e.propertyName.toLowerCase()))),i}_analyzeMaterialOverrides(e,t){return this._primitiveOverrides.filter((i=>i.primitiveName!==e||!t.includes(i.propertyName)))}_normalizePrimitiveOverrideProps(e){return e.map((e=>({...e,propertyName:(0,b.Le)(e.propertyName)})))}}function O(e){if(e&&0===e.indexOf("Level_")){const t=parseInt(e.substr(6),10);if(!isNaN(t))return t}return 0}const P=e=>e&&2===e.length&&e[0].enable&&e[1].enable&&"CIMSolidStroke"===e[0].type&&"CIMSolidFill"===e[1].type&&null==e[0].path&&null==e[1].path&&!e[0].effects&&!e[1].effects;function T(e){const t=e.symbolLayers;if(!t||2!==t.length)return!1;const i=t.find((e=>e.effects?.find((e=>"CIMGeometricEffectDashes"===e.type&&null!=e.dashTemplate)))),r=t.find((e=>e.effects?.find((e=>"CIMGeometricEffectAddControlPoints"===e.type))));return!!i||!!r}function C(e){return(0,u.d9)(e).map((e=>({...e,propertyName:(0,b.Le)(e.propertyName)})))}var z=i(10530),F=i(31355),E=i(49546),R=i(23148),A=i(19431),k=i(76231),B=i(71508),I=i(8396);class D{constructor(e){this.events=new F.Z,this._hasMajorPerformanceCaveat=!1,this._lastRenderFrameCounter=0,this._canvas=document.createElement("canvas"),this._canvas.setAttribute("style","width: 100%; height:100%; display:block; willChange:transform");const t={failIfMajorPerformanceCaveat:!0,alpha:!0,antialias:!1,depth:!0,stencil:!0};e.appendChild(this._canvas);let i=(0,I.k)(this._canvas,t);i||(i=(0,I.k)(this._canvas,{...t,failIfMajorPerformanceCaveat:!1}),this._hasMajorPerformanceCaveat=!0),this._gl=i,this._handles=(0,R.AL)([(0,E.on)(this._canvas,"webglcontextlost",(e=>this.events.emit("webgl-context-lost",e)))])}destroy(){this._canvas.parentNode?.removeChild(this._canvas),this._canvas=null,this._handles.remove(),this._gl=null}get gl(){return this._gl}render(e,t){if(this._hasMajorPerformanceCaveat||(0,s.Z)("esri-force-performance-mode")){if(++this._lastRenderFrameCounter>=(0,s.Z)("esri-performance-mode-frames-between-render")&&(t(),this._lastRenderViewState=e.state.clone(),this._lastRenderFrameCounter=0),this._lastRenderViewState){const[t,i,r,s,a,n]=this._computeViewTransform(this._lastRenderViewState,e.state);this._canvas.style.transform=`matrix(${t}, ${i}, ${r}, ${s}, ${a}, ${n})`}}else t()}resize(e){const t=this._canvas,i=t.style,{state:{size:r},pixelRatio:s}=e,a=r[0],n=r[1],o=Math.round(a*s),l=Math.round(n*s);t.width===o&&t.height===l||(t.width=o,t.height=l),i.width=a+"px",i.height=n+"px"}_computeViewTransform(e,t){const[i,r]=e.center,[s,a]=t.center,[n,o]=e.toScreen([0,0],s,a),[l,h]=e.toScreen([0,0],i,r),c=l-n,u=h-o,d=e.scale/t.scale,p=t.rotation-e.rotation,_=(0,B.Ue)();return(0,k.yR)(_),(0,k.bA)(_,_,[d,d]),(0,k.U1)(_,_,(0,A.Vl)(p)),(0,k.Iu)(_,_,[c,u]),_}}var N=i(38716),L=i(98831),U=i(43405);const V={background:{"background.frag":"#ifdef PATTERN\nuniform lowp float u_opacity;\nuniform lowp sampler2D u_texture;\nvarying mediump vec4 v_tlbr;\nvarying mediump vec2 v_tileTextureCoord;\n#else\nuniform lowp vec4 u_color;\n#endif\nvoid main() {\n#ifdef PATTERN\nmediump vec2 normalizedTextureCoord = mod(v_tileTextureCoord, 1.0);\nmediump vec2 samplePos = mix(v_tlbr.xy, v_tlbr.zw, normalizedTextureCoord);\nlowp vec4 color = texture2D(u_texture, samplePos);\ngl_FragColor = u_opacity * color;\n#else\ngl_FragColor = u_color;\n#endif\n}","background.vert":"precision mediump float;\nattribute vec2 a_pos;\nuniform highp mat3 u_dvsMat3;\nuniform mediump float u_coord_range;\nuniform mediump float u_depth;\n#ifdef PATTERN\nuniform mediump mat3 u_pattern_matrix;\nvarying mediump vec2 v_tileTextureCoord;\nuniform mediump vec4 u_tlbr;\nuniform mediump vec2 u_mosaicSize;\nvarying mediump vec4 v_tlbr;\n#endif\nvoid main() {\ngl_Position = vec4((u_dvsMat3 * vec3(u_coord_range * a_pos, 1.0)).xy, u_depth, 1.0);\n#ifdef PATTERN\nv_tileTextureCoord = (u_pattern_matrix * vec3(a_pos, 1.0)).xy;\nv_tlbr = u_tlbr / u_mosaicSize.xyxy;\n#endif\n}"},circle:{"circle.frag":"precision lowp float;\nvarying lowp vec4 v_color;\nvarying lowp vec4 v_stroke_color;\nvarying mediump float v_blur;\nvarying mediump float v_stroke_width;\nvarying mediump float v_radius;\nvarying mediump vec2 v_offset;\nvoid main()\n{\nmediump float dist = length(v_offset);\nmediump float alpha = smoothstep(0.0, -v_blur, dist - 1.0);\nlowp float color_mix_ratio = v_stroke_width < 0.01 ? 0.0 : smoothstep(-v_blur, 0.0, dist - v_radius / (v_radius + v_stroke_width));\ngl_FragColor = alpha * mix(v_color, v_stroke_color, color_mix_ratio);\n}","circle.vert":"precision mediump float;\nattribute vec2 a_pos;\n#pragma header\nvarying lowp vec4 v_color;\nvarying lowp vec4 v_stroke_color;\nvarying mediump float v_blur;\nvarying mediump float v_stroke_width;\nvarying mediump float v_radius;\nvarying mediump vec2 v_offset;\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform mediump vec2 u_circleTranslation;\nuniform mediump float u_depth;\nuniform mediump float u_antialiasingWidth;\nvoid main()\n{\n#pragma main\nv_color = color * opacity;\nv_stroke_color = stroke_color * stroke_opacity;\nv_stroke_width = stroke_width;\nv_radius = radius;\nv_blur = max(blur, u_antialiasingWidth / (radius + stroke_width));\nmediump vec2 offset = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\nv_offset = offset;\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos * 0.5, 1.0) + u_displayMat3 * vec3((v_radius + v_stroke_width) * offset + u_circleTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth, 1.0);\n}"},fill:{"fill.frag":"precision lowp float;\n#ifdef PATTERN\nuniform lowp sampler2D u_texture;\nvarying mediump vec2 v_tileTextureCoord;\nvarying mediump vec4 v_tlbr;\n#endif\nvarying lowp vec4 v_color;\nvec4 mixColors(vec4 color1, vec4 color2) {\nfloat compositeAlpha = color2.a + color1.a * (1.0 - color2.a);\nvec3 compositeColor = color2.rgb + color1.rgb * (1.0 - color2.a);\nreturn vec4(compositeColor, compositeAlpha);\n}\nvoid main()\n{\n#ifdef PATTERN\nmediump vec2 normalizedTextureCoord = fract(v_tileTextureCoord);\nmediump vec2 samplePos = mix(v_tlbr.xy, v_tlbr.zw, normalizedTextureCoord);\nlowp vec4 color = texture2D(u_texture, samplePos);\ngl_FragColor = v_color[3] * color;\n#else\ngl_FragColor = v_color;\n#endif\n}","fill.vert":"precision mediump float;\nattribute vec2 a_pos;\n#pragma header\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform mediump float u_depth;\nuniform mediump vec2 u_fillTranslation;\n#ifdef PATTERN\n#include \nuniform mediump vec2 u_mosaicSize;\nuniform mediump float u_patternFactor;\nvarying mediump vec2 v_tileTextureCoord;\nvarying mediump vec4 v_tlbr;\n#endif\nvarying lowp vec4 v_color;\nvoid main()\n{\n#pragma main\nv_color = color * opacity;\n#ifdef PATTERN\nfloat patternWidth = nextPOT(tlbr.z - tlbr.x);\nfloat patternHeight = nextPOT(tlbr.w - tlbr.y);\nfloat scaleX = 1.0 / (patternWidth * u_patternFactor);\nfloat scaleY = 1.0 / (patternHeight * u_patternFactor);\nmat3 patterMat = mat3(scaleX, 0.0, 0.0,\n0.0, -scaleY, 0.0,\n0.0, 0.0, 1.0);\nv_tileTextureCoord = (patterMat * vec3(a_pos, 1.0)).xy;\nv_tlbr = tlbr / u_mosaicSize.xyxy;\n#endif\nvec3 pos = u_dvsMat3 * vec3(a_pos, 1.0) + u_displayMat3 * vec3(u_fillTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth, 1.0);\n}"},icon:{"icon.frag":"precision mediump float;\nuniform lowp sampler2D u_texture;\n#ifdef SDF\nuniform lowp vec4 u_color;\nuniform lowp vec4 u_outlineColor;\n#endif\nvarying mediump vec2 v_tex;\nvarying lowp float v_opacity;\nvarying mediump vec2 v_size;\nvarying lowp vec4 v_color;\n#ifdef SDF\nvarying mediump flaot v_halo_width;\n#endif\n#include \nvec4 mixColors(vec4 color1, vec4 color2) {\nfloat compositeAlpha = color2.a + color1.a * (1.0 - color2.a);\nvec3 compositeColor = color2.rgb + color1.rgb * (1.0 - color2.a);\nreturn vec4(compositeColor, compositeAlpha);\n}\nvoid main()\n{\n#ifdef SDF\nlowp vec4 fillPixelColor = v_color;\nfloat d = rgba2float(texture2D(u_texture, v_tex)) - 0.5;\nconst float softEdgeRatio = 0.248062016;\nfloat size = max(v_size.x, v_size.y);\nfloat dist = d * softEdgeRatio * size;\nfillPixelColor *= clamp(0.5 - dist, 0.0, 1.0);\nif (v_halo_width > 0.25) {\nlowp vec4 outlinePixelColor = u_outlineColor;\nconst float outlineLimitRatio = (16.0 / 86.0);\nfloat clampedOutlineSize = softEdgeRatio * min(v_halo_width, outlineLimitRatio * max(v_size.x, v_size.y));\noutlinePixelColor *= clamp(0.5 - (abs(dist) - clampedOutlineSize), 0.0, 1.0);\ngl_FragColor = v_opacity * mixColors(fillPixelColor, outlinePixelColor);\n}\nelse {\ngl_FragColor = v_opacity * fillPixelColor;\n}\n#else\nlowp vec4 texColor = texture2D(u_texture, v_tex);\ngl_FragColor = v_opacity * texColor;\n#endif\n}","icon.vert":"attribute vec2 a_pos;\nattribute vec2 a_vertexOffset;\nattribute vec4 a_texAngleRange;\nattribute vec4 a_levelInfo;\nattribute float a_opacityInfo;\n#pragma header\nvarying lowp vec4 v_color;\n#ifdef SDF\nvarying mediump float v_halo_width;\n#endif\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform highp mat3 u_displayViewMat3;\nuniform mediump vec2 u_iconTranslation;\nuniform vec2 u_mosaicSize;\nuniform mediump float u_depth;\nuniform mediump float u_mapRotation;\nuniform mediump float u_level;\nuniform lowp float u_keepUpright;\nuniform mediump float u_fadeDuration;\nvarying mediump vec2 v_tex;\nvarying lowp float v_opacity;\nvarying mediump vec2 v_size;\nconst float C_OFFSET_PRECISION = 1.0 / 8.0;\nconst float C_256_TO_RAD = 3.14159265359 / 128.0;\nconst float C_DEG_TO_RAD = 3.14159265359 / 180.0;\nconst float tileCoordRatio = 1.0 / 8.0;\nuniform highp float u_time;\nvoid main()\n{\n#pragma main\nv_color = color;\nv_opacity = opacity;\n#ifdef SDF\nv_halo_width = halo_width;\n#endif\nfloat modded = mod(a_opacityInfo, 128.0);\nfloat targetOpacity = (a_opacityInfo - modded) / 128.0;\nfloat startOpacity = modded / 127.0;\nfloat interpolatedOpacity = clamp(startOpacity + 2.0 * (targetOpacity - 0.5) * u_time / u_fadeDuration, 0.0, 1.0);\nv_opacity *= interpolatedOpacity;\nmediump float a_angle = a_levelInfo[1];\nmediump float a_minLevel = a_levelInfo[2];\nmediump float a_maxLevel = a_levelInfo[3];\nmediump vec2 a_tex = a_texAngleRange.xy;\nmediump float delta_z = 0.0;\nmediump float rotated = mod(a_angle + u_mapRotation, 256.0);\ndelta_z += (1.0 - step(u_keepUpright, 0.0)) * step(64.0, rotated) * (1.0 - step(192.0, rotated));\ndelta_z += 1.0 - step(a_minLevel, u_level);\ndelta_z += step(a_maxLevel, u_level);\ndelta_z += step(v_opacity, 0.0);\nvec2 offset = C_OFFSET_PRECISION * a_vertexOffset;\nv_size = abs(offset);\n#ifdef SDF\noffset = (120.0 / 86.0) * offset;\n#endif\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos, 1.0) + u_displayViewMat3 * vec3(size * offset, 0.0) + u_displayMat3 * vec3(u_iconTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth + delta_z, 1.0);\nv_tex = a_tex.xy / u_mosaicSize;\n}"},line:{"line.frag":"precision lowp float;\nvarying mediump vec2 v_normal;\nvarying highp float v_accumulatedDistance;\nvarying mediump float v_lineHalfWidth;\nvarying lowp vec4 v_color;\nvarying mediump float v_blur;\n#if defined (PATTERN) || defined(SDF)\nvarying mediump vec4 v_tlbr;\nvarying mediump vec2 v_patternSize;\nvarying mediump float v_widthRatio;\nuniform sampler2D u_texture;\nuniform mediump float u_antialiasing;\n#endif\n#ifdef SDF\n#include \n#endif\nvoid main()\n{\nmediump float fragDist = length(v_normal) * v_lineHalfWidth;\nlowp float alpha = clamp((v_lineHalfWidth - fragDist) / v_blur, 0.0, 1.0);\n#ifdef PATTERN\nmediump float relativeTexX = fract(v_accumulatedDistance / (v_patternSize.x * v_widthRatio));\nmediump float relativeTexY = 0.5 + v_normal.y * v_lineHalfWidth / (v_patternSize.y * v_widthRatio);\nmediump vec2 texCoord = mix(v_tlbr.xy, v_tlbr.zw, vec2(relativeTexX, relativeTexY));\nlowp vec4 color = texture2D(u_texture, texCoord);\ngl_FragColor = alpha * v_color[3] * color;\n#elif defined(SDF)\nmediump float relativeTexX = fract((v_accumulatedDistance * 0.5) / (v_patternSize.x * v_widthRatio));\nmediump float relativeTexY = 0.5 + 0.25 * v_normal.y;\nmediump vec2 texCoord = mix(v_tlbr.xy, v_tlbr.zw, vec2(relativeTexX, relativeTexY));\nmediump float d = rgba2float(texture2D(u_texture, texCoord)) - 0.5;\nfloat dist = d * (v_lineHalfWidth + u_antialiasing / 2.0);\ngl_FragColor = alpha * clamp(0.5 - dist, 0.0, 1.0) * v_color;\n#else\ngl_FragColor = alpha * v_color;\n#endif\n}","line.vert":"precision mediump float;\nattribute vec2 a_pos;\nattribute vec4 a_extrude_offset;\nattribute vec4 a_dir_normal;\nattribute vec2 a_accumulatedDistance;\n#pragma header\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform highp mat3 u_displayViewMat3;\nuniform mediump float u_zoomFactor;\nuniform mediump vec2 u_lineTranslation;\nuniform mediump float u_antialiasing;\nuniform mediump float u_depth;\nvarying mediump vec2 v_normal;\nvarying highp float v_accumulatedDistance;\nconst float scale = 1.0 / 31.0;\nconst mediump float tileCoordRatio = 8.0;\n#if defined (SDF)\nconst mediump float sdfPatternHalfWidth = 15.5;\n#endif\n#if defined (PATTERN) || defined(SDF)\nuniform mediump vec2 u_mosaicSize;\nvarying mediump vec4 v_tlbr;\nvarying mediump vec2 v_patternSize;\nvarying mediump float v_widthRatio;\n#endif\nvarying lowp vec4 v_color;\nvarying mediump float v_lineHalfWidth;\nvarying mediump float v_blur;\nvoid main()\n{\n#pragma main\nv_color = color * opacity;\nv_blur = blur + u_antialiasing;\nv_normal = a_dir_normal.zw * scale;\n#if defined (PATTERN) || defined(SDF)\nv_tlbr = tlbr / u_mosaicSize.xyxy;\nv_patternSize = vec2(tlbr.z - tlbr.x, tlbr.y - tlbr.w);\n#if defined (PATTERN)\nv_widthRatio = width / v_patternSize.y;\n#else\nv_widthRatio = width / sdfPatternHalfWidth / 2.0;\n#endif\n#endif\nv_lineHalfWidth = (width + u_antialiasing) * 0.5;\nmediump vec2 dir = a_dir_normal.xy * scale;\nmediump vec2 offset_ = a_extrude_offset.zw * scale * offset;\nmediump vec2 dist = v_lineHalfWidth * scale * a_extrude_offset.xy;\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos + offset_ * tileCoordRatio / u_zoomFactor, 1.0) + u_displayViewMat3 * vec3(dist, 0.0) + u_displayMat3 * vec3(u_lineTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth, 1.0);\n#if defined (PATTERN) || defined(SDF)\nv_accumulatedDistance = a_accumulatedDistance.x * u_zoomFactor / tileCoordRatio + dot(dir, dist + offset_);\n#endif\n}"},outline:{"outline.frag":"varying lowp vec4 v_color;\nvarying mediump vec2 v_normal;\nvoid main()\n{\nlowp float dist = abs(v_normal.y);\nlowp float alpha = smoothstep(1.0, 0.0, dist);\ngl_FragColor = alpha * v_color;\n}","outline.vert":"attribute vec2 a_pos;\nattribute vec2 a_offset;\nattribute vec2 a_xnormal;\n#pragma header\nvarying lowp vec4 v_color;\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform mediump vec2 u_fillTranslation;\nuniform mediump float u_depth;\nuniform mediump float u_outline_width;\nvarying lowp vec2 v_normal;\nconst float scale = 1.0 / 15.0;\nvoid main()\n{\n#pragma main\nv_color = color * opacity;\nv_normal = a_xnormal;\nmediump vec2 dist = u_outline_width * scale * a_offset;\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos, 1.0) + u_displayMat3 * vec3(dist + u_fillTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth, 1.0);\n}"},text:{"text.frag":"uniform lowp sampler2D u_texture;\nvarying lowp vec2 v_tex;\nvarying lowp vec4 v_color;\nvarying mediump float v_edgeWidth;\nvarying mediump float v_edgeDistance;\nvoid main()\n{\nlowp float dist = texture2D(u_texture, v_tex).a;\nmediump float alpha = smoothstep(v_edgeDistance - v_edgeWidth, v_edgeDistance + v_edgeWidth, dist);\ngl_FragColor = alpha * v_color;\n}","text.vert":"attribute vec2 a_pos;\nattribute vec2 a_vertexOffset;\nattribute vec4 a_texAngleRange;\nattribute vec4 a_levelInfo;\nattribute float a_opacityInfo;\n#pragma header\nvarying lowp vec4 v_color;\nuniform highp mat3 u_dvsMat3;\nuniform highp mat3 u_displayMat3;\nuniform highp mat3 u_displayViewMat3;\nuniform mediump vec2 u_textTranslation;\nuniform vec2 u_mosaicSize;\nuniform mediump float u_depth;\nuniform mediump float u_mapRotation;\nuniform mediump float u_level;\nuniform lowp float u_keepUpright;\nuniform mediump float u_fadeDuration;\nvarying lowp vec2 v_tex;\nconst float offsetPrecision = 1.0 / 8.0;\nconst mediump float edgePos = 0.75;\nuniform mediump float u_antialiasingWidth;\nvarying mediump float v_edgeDistance;\nvarying mediump float v_edgeWidth;\nuniform lowp float u_halo;\nconst float sdfFontScale = 1.0 / 24.0;\nconst float sdfPixel = 3.0;\nuniform highp float u_time;\nvoid main()\n{\n#pragma main\nif (u_halo > 0.5)\n{\nv_color = halo_color * opacity;\nhalo_width *= sdfPixel;\nhalo_blur *= sdfPixel;\n}\nelse\n{\nv_color = color * opacity;\nhalo_width = 0.0;\nhalo_blur = 0.0;\n}\nfloat modded = mod(a_opacityInfo, 128.0);\nfloat targetOpacity = (a_opacityInfo - modded) / 128.0;\nfloat startOpacity = modded / 127.0;\nfloat interpolatedOpacity = clamp(startOpacity + 2.0 * (targetOpacity - 0.5) * u_time / u_fadeDuration, 0.0, 1.0);\nv_color *= interpolatedOpacity;\nmediump float a_angle = a_levelInfo[1];\nmediump float a_minLevel = a_levelInfo[2];\nmediump float a_maxLevel = a_levelInfo[3];\nmediump vec2 a_tex = a_texAngleRange.xy;\nmediump float a_visMinAngle = a_texAngleRange.z;\nmediump float a_visMaxAngle = a_texAngleRange.w;\nmediump float delta_z = 0.0;\nmediump float angle = mod(a_angle + u_mapRotation, 256.0);\nif (a_visMinAngle < a_visMaxAngle)\n{\ndelta_z += (1.0 - step(u_keepUpright, 0.0)) * (step(a_visMaxAngle, angle) + (1.0 - step(a_visMinAngle, angle)));\n}\nelse\n{\ndelta_z += (1.0 - step(u_keepUpright, 0.0)) * (step(a_visMaxAngle, angle) * (1.0 - step(a_visMinAngle, angle)));\n}\ndelta_z += 1.0 - step(a_minLevel, u_level);\ndelta_z += step(a_maxLevel, u_level);\ndelta_z += step(v_color[3], 0.0);\nv_tex = a_tex.xy / u_mosaicSize;\nv_edgeDistance = edgePos - halo_width / size;\nv_edgeWidth = (u_antialiasingWidth + halo_blur) / size;\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos, 1.0) + sdfFontScale * u_displayViewMat3 * vec3(offsetPrecision * size * a_vertexOffset, 0.0) + u_displayMat3 * vec3(u_textTranslation, 0.0);\ngl_Position = vec4(pos.xy, u_depth + delta_z, 1.0);\n}"},util:{"encoding.glsl":"const vec4 rgba2float_factors = vec4(\n255.0 / (256.0),\n255.0 / (256.0 * 256.0),\n255.0 / (256.0 * 256.0 * 256.0),\n255.0 / (256.0 * 256.0 * 256.0 * 256.0)\n);\nfloat rgba2float(vec4 rgba) {\nreturn dot(rgba, rgba2float_factors);\n}","util.glsl":"float nextPOT(in float x) {\nreturn pow(2.0, ceil(log2(abs(x))));\n}"}};const G=new(i(78311).B)((function(e){let t=V;return e.split("/").forEach((e=>{t&&(t=t[e])})),t}));function H(e){return G.resolveIncludes(e)}var W=i(73353);const q=e=>(0,W.K)({PATTERN:e.pattern}),X={shaders:e=>({vertexShader:q(e)+H("background/background.vert"),fragmentShader:q(e)+H("background/background.frag")})},Y={shaders:e=>({vertexShader:H("circle/circle.vert"),fragmentShader:H("circle/circle.frag")})},Z=e=>(0,W.K)({PATTERN:e.pattern}),j={shaders:e=>({vertexShader:Z(e)+H("fill/fill.vert"),fragmentShader:Z(e)+H("fill/fill.frag")})},$={shaders:e=>({vertexShader:H("outline/outline.vert"),fragmentShader:H("outline/outline.frag")})},K=e=>(0,W.K)({SDF:e.sdf}),J={shaders:e=>({vertexShader:K(e)+H("icon/icon.vert"),fragmentShader:K(e)+H("icon/icon.frag")})},Q=e=>(0,W.K)({PATTERN:e.pattern,SDF:e.sdf}),ee={shaders:e=>({vertexShader:Q(e)+H("line/line.vert"),fragmentShader:Q(e)+H("line/line.frag")})},te={shaders:e=>({vertexShader:H("text/text.vert"),fragmentShader:H("text/text.frag")})};class ie{constructor(){this._programByKey=new Map}dispose(){this._programByKey.forEach((e=>e.dispose())),this._programByKey.clear()}getMaterialProgram(e,t,i){const r=t.key<<3|this._getMaterialOptionsValue(t.type,i);if(this._programByKey.has(r))return this._programByKey.get(r);const s=this._getProgramTemplate(t.type),{shaders:a}=s,{vertexShader:n,fragmentShader:o}=a(i),l=t.getShaderHeader(),h=t.getShaderMain(),c=n.replace("#pragma header",l).replace("#pragma main",h),u=e.programCache.acquire(c,o,t.getAttributeLocations());return this._programByKey.set(r,u),u}_getMaterialOptionsValue(e,t){switch(e){case U._K.BACKGROUND:case U._K.FILL:return(t.pattern?1:0)<<1;case U._K.OUTLINE:return 0;case U._K.LINE:{const e=t;return(e.sdf?1:0)<<2|(e.pattern?1:0)<<1}case U._K.ICON:return(t.sdf?1:0)<<1;case U._K.CIRCLE:case U._K.TEXT:default:return 0}}_getProgramTemplate(e){switch(e){case U._K.BACKGROUND:return X;case U._K.CIRCLE:return Y;case U._K.FILL:return j;case U._K.ICON:return J;case U._K.LINE:return ee;case U._K.OUTLINE:return $;case U._K.TEXT:return te;default:return null}}}var re=i(27894),se=i(58536),ae=i(78951),ne=i(91907),oe=i(84172),le=i(29620);class he{constructor(){this._initialized=!1}dispose(){this._program=(0,a.M2)(this._program),this._vertexArrayObject=(0,a.M2)(this._vertexArrayObject)}render(e,t,i,r){e&&(this._initialized||this._initialize(e),e.setBlendFunctionSeparate(ne.zi.ONE,ne.zi.ONE_MINUS_SRC_ALPHA,ne.zi.ONE,ne.zi.ONE_MINUS_SRC_ALPHA),e.bindVAO(this._vertexArrayObject),e.useProgram(this._program),t.setSamplingMode(i),e.bindTexture(t,0),this._program.setUniform1i("u_tex",0),this._program.setUniform1f("u_opacity",r),e.drawArrays(ne.MX.TRIANGLE_STRIP,0,4),e.bindTexture(null,0),e.bindVAO())}_initialize(e){if(this._initialized)return!0;const t=(0,oe.H)(e,se.Q);if(!t)return!1;const i=new Int8Array(16);i[0]=-1,i[1]=-1,i[2]=0,i[3]=0,i[4]=1,i[5]=-1,i[6]=1,i[7]=0,i[8]=-1,i[9]=1,i[10]=0,i[11]=1,i[12]=1,i[13]=1,i[14]=1,i[15]=1;const r=se.Q.attributes,s=new le.U(e,r,re.As,{geometry:ae.f.createVertex(e,ne.l1.STATIC_DRAW,i)});return this._program=t,this._vertexArrayObject=s,this._initialized=!0,!0}}var ce=i(3316);class ue{constructor(e){this._rctx=e,this._programByKey=new Map}dispose(){this._programByKey.forEach((e=>e.dispose())),this._programByKey.clear()}getProgram(e,t=[]){const i=e.vsPath+"."+e.fsPath+JSON.stringify(t);if(this._programByKey.has(i))return this._programByKey.get(i);const r={...t.map((e=>"string"==typeof e?{name:e,value:!0}:e)).reduce(((e,t)=>({...e,[t.name]:t.value})),{})},{vsPath:s,fsPath:a,attributes:n}=e,o=(0,ce.s)(s,a,n,r),l=this._rctx.programCache.acquire(o.shaders.vertexShader,o.shaders.fragmentShader,o.attributes);if(!l)throw new Error("Unable to get program for key: ${key}");return this._programByKey.set(i,l),l}}var de=i(51366),pe=i(66341),_e=i(89060),me=i(78668),fe=i(19849),ge=i(7937),ye=i(10927);class ve{constructor(e){this._resourceManager=e,this._cachedRasterizationCanvas=null}dispose(){this._cachedRasterizationCanvas=null}get _canvas(){return this._cachedRasterizationCanvas||(this._cachedRasterizationCanvas=document.createElement("canvas")),this._cachedRasterizationCanvas}rasterizeJSONResource(e,t){switch(e.type){case"dash":{const t=e.dashTemplate,i=e.capStyle,[r,s,a]=(0,ge.m)(t,i);return{size:[s,a],image:new Uint32Array(r.buffer),sdf:!0,simplePattern:!0,anchorX:0,anchorY:0}}case"fill-style":{const[i,r,s,a]=(0,ge.Y)(this._canvas,e,t);return{size:[r,s],image:new Uint32Array(i.buffer),sdf:!1,simplePattern:!0,anchorX:0,anchorY:0,rasterizationScale:a}}case"sdf":return this._rasterizeSDFInfo(e);case"CIMHatchFill":case"CIMVectorMarker":case"CIMPictureMarker":return this._rasterizeCIMJSONResource(e,t)}}_rasterizeCIMJSONResource(e,t){switch(e.type){case"CIMHatchFill":{const i=m.B$.fromCIMHatchFill(e,t);return this._rasterizeCIMVectorMarker(i)}case"CIMPictureMarker":{const t=m.B$.fromCIMInsidePolygon(e);return this._rasterizeCIMVectorMarker(t)}case"CIMVectorMarker":{if("CIMMarkerPlacementInsidePolygon"===e.markerPlacement?.type){const t=m.B$.fromCIMInsidePolygon(e);return this._rasterizeCIMVectorMarker(t)}const t=(0,v.Fp)(e);return t&&!e.avoidSDFRasterization?this._rasterizeSDFInfo(t):this._rasterizeCIMVectorMarker(e,!1)}}}_rasterizeSDFInfo(e){if(!e)return null;const[t,i,r]=(0,v.RL)(e);return t?{size:[i,r],image:new Uint32Array(t.buffer),sdf:!0,simplePattern:!0,anchorX:0,anchorY:0}:null}_rasterizeCIMVectorMarker(e,t=!0){const i=t?ye.Z.fromExtent(e.frame):null,[r,s,a,n,o]=m.B$.rasterize(this._canvas,e,i,this._resourceManager);return r?{size:[s,a],image:new Uint32Array(r.buffer),sdf:!1,simplePattern:!1,anchorX:n,anchorY:o}:null}rasterizeImageResource(e,t,i,r){this._canvas.width=e,this._canvas.height=t;const s=this._canvas.getContext("2d",{willReadFrequently:!0});i instanceof ImageData?s.putImageData(i,0,0):(i.setAttribute("width",`${e}px`),i.setAttribute("height",`${t}px`),s.drawImage(i,0,0,e,t));const a=s.getImageData(0,0,e,t),n=new Uint8Array(a.data);if(r)for(const e of r)if(e&&e.oldColor&&4===e.oldColor.length&&e.newColor&&4===e.newColor.length){const[t,i,r,s]=e.oldColor,[a,o,l,h]=e.newColor;if(t===a&&i===o&&r===l&&s===h)continue;for(let e=0;e=u||c>=u){const i=h/c;i>1?(h=u,c=Math.round(u/i)):(c=u,h=Math.round(u*i)),l=new Uint8Array(4*h*c);const r=new Uint8ClampedArray(l.buffer);(0,b.TT)(n,e,t,r,h,c,!1)}return{size:[h,c],image:new Uint32Array(l.buffer),sdf:!1,simplePattern:!1,anchorX:0,anchorY:0}}}var be=i(4655);class we{constructor(e,t){this._width=0,this._height=0,this._free=[],this._width=e,this._height=t,this._free.push(new be.Z(0,0,e,t))}get width(){return this._width}get height(){return this._height}allocate(e,t){if(e>this._width||t>this._height)return new be.Z;let i=null,r=-1;for(let s=0;se&&this._free.push(new be.Z(i.x+e,i.y,i.width-e,t)),i.height>t&&this._free.push(new be.Z(i.x,i.y+t,i.width,i.height-t))):(i.width>e&&this._free.push(new be.Z(i.x+e,i.y,i.width-e,i.height)),i.height>t&&this._free.push(new be.Z(i.x,i.y+t,e,i.height-t))),new be.Z(i.x,i.y,e,t))}release(e){for(let t=0;tMath.floor(e/256);class Oe{constructor(e,t,i){this.width=0,this.height=0,this._dirties=[],this._glyphData=[],this._currentPage=0,this._glyphCache={},this._textures=[],this._rangePromises=new Map,this._preloadCache={},this.width=e,this.height=t,this._glyphSource=i,this._binPack=new we(e-4,t-4),this._glyphData.push(new Uint8Array(e*t)),this._dirties.push(!0),this._textures.push(null),this._initDecorationGlyphs()}dispose(){this._binPack=null;for(const e of this._textures)e&&e.dispose();this._textures.length=0,this._glyphData.length=0}_initDecorationGlyphs(){const e=[117,149,181,207,207,181,149,117],t=[],i=[];for(let r=0;r=3&&r<5&&e>=3&&e<8?255:0;t.push(s),i.push(a)}}const r={metrics:{width:5,height:2,left:0,top:0,advance:0},bitmap:new Uint8Array(t)},s={metrics:{width:5,height:2,left:0,top:0,advance:0},bitmap:new Uint8Array(i)};this._recordGlyph(r),this._recordGlyph(s)}getTexture(e,t){if(!this._textures[t]){const i=new Me.X;i.pixelFormat=ne.VI.ALPHA,i.wrapMode=ne.e8.CLAMP_TO_EDGE,i.width=this.width,i.height=this.height,this._textures[t]=new xe.x(e,i,new Uint8Array(this.width*this.height))}return this._dirties[t]&&(this._textures[t].setData(this._glyphData[t]),this._dirties[t]=!1),this._textures[t]}async getGlyphItems(e,t,i){const r=this._getGlyphCache(e);return await this._fetchRanges(e,t,i),t.map((t=>this._getMosaicItem(r,e,t)))}bind(e,t,i,r){const s=this.getTexture(e,i);s.setSamplingMode(t),e.bindTexture(s,r)}preloadASCIIGlyphCache(e){const t=this._preloadCache[e];if(null!=t)return t;const i=this._glyphSource.preloadASCIIRange(e).then((()=>{const t=this._getGlyphCache(e);for(let i=0;i<256;i++)this._getMosaicItem(t,e,i)}));return this._preloadCache[e]=i,i}_getGlyphCache(e){return this._glyphCache[e]||(this._glyphCache[e]={}),this._glyphCache[e]}_invalidate(){this._dirties[this._currentPage]=!0}async _fetchRanges(e,t,i){const r=function(e){const t=new Set;for(const i of e)t.add(Se(i));return t}(t),s=[];r.forEach((t=>{s.push(this._fetchRange(e,t,i))})),await Promise.all(s)}async _fetchRange(e,t,i){if(t>256)return;const r=e+t;return function(e,t,i){return e.has(t)||e.set(t,i().then((()=>{e.delete(t)})).catch((i=>{e.delete(t),(0,me.H9)(i)}))),e.get(t)}(this._rangePromises,r,(()=>this._glyphSource.getRange(e,t,i)))}_getMosaicItem(e,t,i){if(!e[i]){const r=this._glyphSource.getGlyph(t,i);if(!r?.metrics)return(e=>({rect:new be.Z(0,0,0,0),page:0,metrics:{left:0,width:0,height:0,advance:0,top:0},code:e,sdf:!0}))(i);const s=this._recordGlyph(r),a=this._currentPage,n=r.metrics;e[i]={rect:s,page:a,metrics:n,code:i,sdf:!0},this._invalidate()}return e[i]}_recordGlyph(e){const t=e.metrics;let i;if(0===t.width)i=new be.Z(0,0,0,0);else{const r=3,a=t.width+2*r,n=t.height+2*r;i=this._binPack.allocate(a,n),i.isEmpty&&(this._dirties[this._currentPage]||(this._glyphData[this._currentPage]=null),this._currentPage=this._glyphData.length,this._glyphData.push(new Uint8Array(this.width*this.height)),this._dirties.push(!0),this._textures.push(null),this._initDecorationGlyphs(),this._binPack=new we(this.width-4,this.height-4),i=this._binPack.allocate(a,n));const o=this._glyphData[this._currentPage],l=e.bitmap;let h,c;if(l)for(let e=0;e{r.addRange(t,new Te(new Pe.Z(new Uint8Array(e.data),new DataView(e.data))))}))}async preloadASCIIRange(e){const t=this._getFontStack(e),i=this._baseURL.replace("{fontstack}",e).replace("{range}","0-255"),r=await(0,pe.Z)(i,{responseType:"array-buffer"}),s=new Te(new Pe.Z(new Uint8Array(r.data),new DataView(r.data)));for(let e=0;e<=255;e++)t.getRange(e)||t.addRange(e,s)}getGlyph(e,t){const i=this._getFontStack(e);if(!i)return;const r=Math.floor(t/256),s=i.getRange(r);return s?{metrics:s.getMetrics(t),bitmap:s.getBitmap(t)}:void 0}_getFontStack(e){let t=this._glyphInfo[e];return t||(t=this._glyphInfo[e]=new Ce),t}}var Fe=i(73534);const Ee=1e20;class Re{constructor(e){this._svg=null,this.size=e;const t=document.createElement("canvas");t.width=t.height=e,this._context=t.getContext("2d",{willReadFrequently:!1}),this._gridOuter=new Float64Array(e*e),this._gridInner=new Float64Array(e*e),this._f=new Float64Array(e),this._d=new Float64Array(e),this._z=new Float64Array(e+1),this._v=new Int16Array(e)}dispose(){this._context=this._gridOuter=this._gridInner=this._f=this._d=this._z=this._v=null,this._svg&&(document.body.removeChild(this._svg),this._svg=null)}draw(e,t,i,r=31){this._initSVG();const s=this.createSVGString(e,t);return new Promise(((e,t)=>{const a=new Image;a.src="data:image/svg+xml; charset=utf8, "+encodeURIComponent(s),a.onload=()=>{a.onload=null,this._context.clearRect(0,0,this.size,this.size),this._context.drawImage(a,0,0,this.size,this.size);const t=this._context.getImageData(0,0,this.size,this.size),i=new Uint8Array(this.size*this.size*4);for(let e=0;et((0,me.zE)())))}))}_initSVG(){if(!this._svg){const e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("style","position: absolute;"),e.setAttribute("width","0"),e.setAttribute("height","0"),e.setAttribute("aria-hidden","true"),e.setAttribute("role","presentation"),document.body.appendChild(e),this._svg=e}return this._svg}createSVGString(e,t){const i=this._initSVG(),r=document.createElementNS("http://www.w3.org/2000/svg","path");r.setAttribute("d",e),i.appendChild(r);const s=r.getBBox(),a=s.width/s.height,n=this.size/2;let o,l,h;if(a>1){o=n/s.width;const e=n*(1/a);l=this.size/4,h=n-e/2}else o=n/s.height,l=n-n*a/2,h=this.size/4;const c=-s.x*o+l,u=-s.y*o+h;r.setAttribute("style",`transform: matrix(${o}, 0, 0, ${o}, ${c}, ${u})`),r.setAttribute("stroke-width",""+.5/o);const d=`${i.innerHTML}`;return i.removeChild(r),d}_edt(e,t,i){const r=this._f,s=this._d,a=this._v,n=this._z;for(let o=0;o0&&(this._maxItemSize=i),this.pixelRatio=window.devicePixelRatio||1,this._binPack=new we(this._pageWidth,this._pageHeight);const r=Math.floor(this._pageWidth),s=Math.floor(this._pageHeight);this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(r*s)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0})}getWidth(e){return e>=this._mosaicPages.length?-1:this._mosaicPages[e].size[0]}getHeight(e){return e>=this._mosaicPages.length?-1:this._mosaicPages[e].size[1]}getPageTexture(e){return e=this._mosaicPages.length)return;const t=this._mosaicPages[e.page],i=t.mosaicsData;if(!ke(t.mosaicsData))throw new r.Z("mapview-invalid-resource","unsuitable data type!");const s=e.spriteData,a=i.data;Be._copyBits(s,e.spriteSize[0],0,0,a,e.pageSize[0],e.rect.x+x.s4,e.rect.y+x.s4,e.spriteSize[0],e.spriteSize[1],e.repeat),t.dirty=!0}_allocateImage(e,t){e+=2*x.s4,t+=2*x.s4;const i=Math.max(e,t);if(this._maxItemSize&&this._maxItemSize{this._frameData=e,t.requestRender()}))}destroy(){this._playHandle.remove()}loadFrame(e){const t=this._frameData;if(null==t)return;const i="width"in t?t.width:t.codedWidth,r="height"in t?t.height:t.codedHeight;e.updateData(0,x.s4,x.s4,i,r,t),this._frameData=null}}var Ve=i(99542);const Ge="arial-unicode-ms-regular",He=(e,t,i)=>d.Z.getLogger("esri.views.2d.engine.webgl.TextureManager").error(new r.Z(e,t,i));class We{static fromMosaic(e,t){return new We(e,t.page,t.sdf)}constructor(e,t,i){this.mosaicType=e,this.page=t,this.sdf=i}}class qe{constructor(e){this._requestRender=e,this._resourceManager=new fe.Z,this._invalidFontsMap=new Map,this._sdfConverter=new Re(x.qu),this._bindingInfos=new Array,this._hashToBindingIndex=new Map,this._ongoingRasterizations=new Map,this._imageRequestQueue=new Ve.e({concurrency:10,process:async(e,t)=>{(0,me.k_)(t);try{return await(0,pe.Z)(e,{responseType:"image",signal:t})}catch(t){if(!(0,me.D_)(t))throw new r.Z("mapview-invalid-resource",`Could not fetch requested resource at ${e}`,t);throw t}}}),this._spriteMosaic=new Be(2048,2048,500),this._glyphSource=new ze(`${de.default.fontsUrl}/{fontstack}/{range}.pbf`),this._glyphMosaic=new Oe(1024,1024,this._glyphSource),this._rasterizer=new ve(this.resourceManager)}dispose(){this._spriteMosaic.dispose(),this._glyphMosaic.dispose(),this._rasterizer.dispose(),this._sdfConverter.dispose(),this._spriteMosaic=null,this._glyphMosaic=null,this._sdfConverter=null,this._hashToBindingIndex.clear(),this._hashToBindingIndex=null,this._bindingInfos=null,this._ongoingRasterizations.clear(),this._ongoingRasterizations=null,this._imageRequestQueue.clear(),this._imageRequestQueue=null,this._resourceManager.destroy()}get sprites(){return this._spriteMosaic}get glyphs(){return this._glyphMosaic}get resourceManager(){return this._resourceManager}async rasterizeItem(e,t){if(null==e)return He("mapview-null-resource","Unable to rasterize null resource"),null;if("cim-rasterization-info"!==e.type)return He("mapview-unexpected-resource","Unable to rasterize resource"),null;const{resource:i}=e;if("text"===i.type){const e=await this._rasterizeText(i,t);for(const t of e.glyphs)this._setTextureBinding(N.Un.GLYPH,t);return e}const r=await this._rasterizeSprite(i,t);return r&&this._setTextureBinding(N.Un.SPRITE,r),r}getMosaicInfo(e,t,i=!1){const r=this._getTextureBindingInfo(e,t,i);return r?{size:r.size,texture:{texture:r.texture,unit:"sprite"===r.type?x.Kt:x.wJ}}:(He("mapview-invalid-resource",`Unable to find resource for ${t}`),{size:[0,0],texture:{texture:null,unit:0}})}_getTextureBindingInfo(e,t,i){const r=this._bindingInfos[t-1],s=r.page,a=i?ne.cw.LINEAR_MIPMAP_LINEAR:ne.cw.LINEAR;switch(r.mosaicType){case N.Un.SPRITE:{const t=[this.sprites.getWidth(s),this.sprites.getHeight(s)],i=this._spriteMosaic.getTexture(e,s);return i.setSamplingMode(a),{type:"sprite",texture:i,size:t}}case N.Un.GLYPH:{const t=[this.glyphs.width,this.glyphs.height],i=this._glyphMosaic.getTexture(e,s);return this._glyphMosaic.bind(e,a,s,x.wJ),i.setSamplingMode(a),{type:"glyph",texture:i,size:t}}default:return He("mapview-texture-manager",`Cannot handle unknown type ${r.mosaicType}`),null}}_hashMosaic(e,t){return 1|e<<1|(t.sdf?1:0)<<2|t.page<<3}_setTextureBinding(e,t){const i=this._hashMosaic(e,t);if(!this._hashToBindingIndex.has(i)){const r=We.fromMosaic(e,t),s=this._bindingInfos.length+1;this._hashToBindingIndex.set(i,s),this._bindingInfos.push(r)}t.textureBinding=this._hashToBindingIndex.get(i)}async _rasterizeText(e,t){const{font:i,textString:r}=e,a=(0,c.Yc)(i),n=this._invalidFontsMap.has(a),[o,l]=(0,_e.E)(r),h=(0,Ne.Jq)(o);try{const e=n?Ge:a;return(0,s.Z)("esri-2d-stabilize-glyphs")&&await this._glyphMosaic.preloadASCIIGlyphCache(e),{type:"glyphs",glyphs:await this._glyphMosaic.getGlyphItems(e,h,t),isRightToLeft:l}}catch(e){return He("mapview-invalid-resource",`Couldn't find font ${a}. Falling back to Arial Unicode MS Regular`),this._invalidFontsMap.set(a,!0),{type:"glyphs",glyphs:await this._glyphMosaic.getGlyphItems(Ge,h,t),isRightToLeft:l}}}_hashSpriteResource(e){switch(e.type){case"path":return`path:${e.path}.${e.asFill?1:0}`;case"CIMPictureMarker":return`${e.type}:${e.url}:${e.size}`;case"CIMPictureFill":return`${e.type}:${e.url}:${e.height}`;case"CIMPictureStroke":return`${e.type}:${e.url}:${e.width}`;case"dash":return`dash:${e.capStyle}.${e.dashTemplate.join("")}`;case"sdf":return`sdf:${JSON.stringify(e.geom)}.${e.asFill?1:0}`;case"fill-style":return`fill_style:${e.style}`;case"animated":return JSON.stringify((0,Ne.IS)(e));case"CIMHatchFill":case"CIMVectorMarker":return JSON.stringify(e)}}async _rasterizeSprite(e,t){if(!e)return null;const i=(0,_.hP)(this._hashSpriteResource(e));if(this._spriteMosaic.has(i))return this._spriteMosaic.getSpriteItem(i);if("url"in e&&e.url||"CIMPictureFill"===e.type||"CIMPictureStroke"===e.type||"CIMPictureMarker"===e.type||"CIMVectorMarker"===e.type){const t=[];m.B$.fetchResources({type:"CIMPointSymbol",symbolLayers:[e]},this._resourceManager,t),t.length>0&&await Promise.all(t)}switch(e.type){case"CIMPictureMarker":return"CIMMarkerPlacementInsidePolygon"===e.markerPlacement?.type?this._rasterizeJSONResource(i,e):this._handleAsyncResource(i,e,t);case"animated":case"CIMPictureFill":case"CIMPictureStroke":case"path":return this._handleAsyncResource(i,e,t);case"sdf":case"dash":case"fill-style":case"CIMVectorMarker":case"CIMHatchFill":return this._rasterizeJSONResource(i,e)}}_rasterizeJSONResource(e,t){const i=this._rasterizer.rasterizeJSONResource(t,function(e){switch(e.type){case"fill-style":case"CIMHatchFill":return x.FM}return 1}(t));if(i){const{size:r,image:s,sdf:a,simplePattern:n,rasterizationScale:o}=i;return this._addItemToMosaic(e,r,{type:"static",data:s},Xe(t),a,n,o)}return null}async _handleAsyncResource(e,t,i){if(this._ongoingRasterizations.has(e))return this._ongoingRasterizations.get(e);let r;return r="path"===t.type?this._handleSVG(t,e,i):this._handleImage(t,e,i),this._ongoingRasterizations.set(e,r),r.finally((()=>this._ongoingRasterizations.delete(e))),r}async _handleSVG(e,t,i){const r=[x.qu,x.qu],{asFill:s}=e,a=await this._sdfConverter.draw(e.path,s,i);return this._addItemToMosaic(t,r,{type:"static",data:new Uint32Array(a.buffer)},!1,!0,!0)}async _handleGIFOrPNG(e,t,i){const r=e.url,s=this.resourceManager.getResource(r);if(null==s)return null;const{width:a,height:n}=s;if(s instanceof HTMLImageElement){if("animated"===e.type)return He("mapview-unexpected-resource","Attempt to configure animations for a non-animated image."),null;const i="colorSubstitutions"in e?e.colorSubstitutions:void 0,{size:r,sdf:o,image:l}=this._rasterizer.rasterizeImageResource(a,n,s,i);return this._addItemToMosaic(t,r,{type:"static",data:l},Xe(e),o,!1)}let o,l,h;"animated"===e.type?(o=!1,l={playAnimation:e.playAnimation,reverseAnimation:e.reverseAnimation,randomizeStartTime:e.randomizeStartTime,randomizeStartSeed:e.randomizeStartSeed,startTimeOffset:e.startTimeOffset,duration:e.duration,repeatType:e.repeatType,repeatDelay:e.repeatDelay},h=e.startGroup||0):(o=Xe(e),l={},h=0);const c=new Ue(s,this._requestRender,l,h);return this._addItemToMosaic(t,[c.width,c.height],{type:"animated",data:c},o,!1,!1)}async _handleImage(e,t,i){const s=e.url;if(Ye(s)||Ze(s))return this._handleGIFOrPNG(e,t,i);if("animated"===e.type)return He("mapview-unexpected-resource","Attempt to configure animations for a non-animated image."),null;try{let r;const a=this.resourceManager.getResource(s);if(null!=a&&a instanceof HTMLImageElement)r=a;else{const{data:e}=await this._imageRequestQueue.push(s,{...i});r=e}if((0,Ne.TB)(s))if("width"in e&&"height"in e)r.width=(0,p.F2)(e.width),r.height=(0,p.F2)(e.height);else if("cim"in e){const t=e;r.width=(0,p.F2)(t.width??t.scaleX*t.size),r.height=(0,p.F2)(t.size)}if(!r.width||!r.height)return null;const n=r.width,o=r.height,l="colorSubstitutions"in e?e.colorSubstitutions:void 0,{size:h,sdf:c,image:u}=this._rasterizer.rasterizeImageResource(n,o,r,l);return this._addItemToMosaic(t,h,{type:"static",data:u},Xe(e),c,!1)}catch(e){if(!(0,me.D_)(e))throw new r.Z("mapview-invalid-resource",`Could not fetch requested resource at ${s}. ${e.message}`);throw e}}_addItemToMosaic(e,t,i,r,s,a,n){return this._spriteMosaic.addSpriteItem(e,t,i,r,s,a,n)}}function Xe(e){switch(e.type){case"CIMVectorMarker":case"CIMPictureMarker":return je(e);default:return!0}}const Ye=e=>e&&(e.includes(".gif")||(e=>null!=e&&e.startsWith("data:image/gif"))(e)),Ze=e=>e&&(e.includes(".png")||(e=>null!=e&&e.startsWith("data:image/png"))(e)),je=e=>e&&"markerPlacement"in e&&e.markerPlacement&&"CIMMarkerPlacementInsidePolygon"===e.markerPlacement.type;class $e{constructor(e){this._queue=[],this._refreshable=e}destroy(){this._queue=[]}enqueueTextureUpdate(e,t){const i=(0,me.hh)(),r=e,s=x.Uz,a=Math.ceil(r.height/s);(0,me.k_)(t);for(let n=0;ni.reject(e))),i.promise}upload(){let e=0;for(;this._queue.length;){const t=performance.now(),i=this._queue.shift();if(i){if(null!=i.options.signal&&i.options.signal.aborted)continue;switch(i.type){case"chunk":this._uploadChunk(i);break;case"no-chunk":this._uploadNoChunk(i)}const r=performance.now()-t;if(e+=r,e+r>=x.NG)break}}this._queue.length&&this._refreshable.requestRender()}_uploadChunk(e){const{request:t,resolver:i,chunkOffset:r,chunkIsLast:s,destHeight:a}=e,{data:n,texture:o,width:l}=t;null!=n&&(o.updateData(0,0,r,l,a,n,r),s&&i.resolve())}_uploadNoChunk(e){const{request:t,resolver:i}=e,{data:r,texture:s}=t;s.setData(r),i.resolve()}}var Ke=i(86424),Je=i(40201),Qe=i(46332),et=i(84164),tt=i(86717),it=i(81095),rt=i(24204);const st=(0,et.al)(-.5,-.5);class at{constructor(){this._centerNdc=(0,it.Ue)(),this._pxToNdc=(0,it.Ue)(),this._worldDimensionsPx=(0,it.Ue)(),this._mat3=(0,l.Ue)(),this._initialized=!1}dispose(){this._program=(0,a.M2)(this._program),this._quad=(0,a.M2)(this._quad)}render(e,t,i){const{context:r}=e,s=this._updateGeometry(e,i);if(null!=t){const{r:e,g:i,b:s,a:a}=t;r.setClearColor(a*e/255,a*i/255,a*s/255,a)}else r.setClearColor(0,0,0,0);if(r.setStencilFunction(ne.wb.ALWAYS,0,255),r.setStencilWriteMask(255),!s)return r.setClearStencil(1),void r.clear(r.gl.STENCIL_BUFFER_BIT|r.gl.COLOR_BUFFER_BIT);r.setClearStencil(0),r.clear(r.gl.STENCIL_BUFFER_BIT|r.gl.COLOR_BUFFER_BIT),this._initialized||this._initialize(r),r.setDepthWriteEnabled(!1),r.setDepthTestEnabled(!1),r.setColorMask(!1,!1,!1,!1),r.setBlendingEnabled(!1),r.setStencilOp(ne.xS.KEEP,ne.xS.KEEP,ne.xS.REPLACE),r.setStencilFunction(ne.wb.ALWAYS,1,255),r.setStencilTestEnabled(!0),r.useProgram(this._program),this._program.setUniformMatrix3fv("u_worldExtent",this._mat3),this._quad.draw(),this._quad.unbind()}_initialize(e){if(this._initialized)return;const t=(0,oe.H)(e,rt.H);t&&(this._program=t,this._quad=new Ke.Z(e,[0,0,1,0,0,1,1,1]),this._initialized=!0)}_updateGeometry(e,t){const{state:i,pixelRatio:r}=e,{size:s,rotation:a}=i,n=Math.round(s[0]*r),o=Math.round(s[1]*r);if(!i.spatialReference.isWrappable)return!1;const l=(0,Je.c$)(a),h=Math.abs(Math.cos(l)),c=Math.abs(Math.sin(l)),u=Math.round(n*h+o*c),d=Math.round(i.worldScreenWidth);if(u<=d)return!1;const p=n*c+o*h,_=d*r,m=(t.left-t.right)*r/n,f=(t.bottom-t.top)*r/o;(0,tt.s)(this._worldDimensionsPx,_,p,1),(0,tt.s)(this._pxToNdc,2/n,-2/o,1),(0,tt.s)(this._centerNdc,m,f,1);const g=this._mat3;return(0,Qe.vc)(g,this._centerNdc),(0,Qe.bA)(g,g,this._pxToNdc),0!==a&&(0,Qe.U1)(g,g,l),(0,Qe.bA)(g,g,this._worldDimensionsPx),(0,Qe.Iu)(g,g,st),!0}}class nt{constructor(){this.name=this.constructor.name}createOptions(e,t){return null}}class ot extends nt{constructor(){super(...arguments),this.defines=[],this._desc={vsPath:"fx/integrate",fsPath:"fx/integrate",attributes:new Map([["a_position",0]])}}dispose(){this._quad&&this._quad.dispose()}bind(){}unbind(){}draw(e,t){if(!t?.size)return;const{context:i,renderingOptions:r}=e;this._quad||(this._quad=new Ke.Z(i,[0,0,1,0,0,1,1,1]));const a=i.getBoundFramebufferObject(),{x:n,y:o,width:l,height:h}=i.getViewport(),c=t.getBlock(x.wi.Animation);if(null==c)return;const u=t.getUniforms(i);i.setViewport(0,0,t.size,t.size);const d=u.filterFlags,p=u.animation,_=(0,s.Z)("featurelayer-animation-enabled")?r.labelsAnimationTime:1,m=c.getFBO(i,1);i.unbindTexture(m.colorTexture),this._computeDelta(e,m,p,d,_);const f=c.getFBO(i);i.unbindTexture(f.colorTexture),this._updateAnimationState(e,m,f),i.bindFramebuffer(a),i.setViewport(n,o,l,h)}_computeDelta(e,t,i,r,s){const{context:a,painter:n,displayLevel:o}=e,l=n.materialManager.getProgram(this._desc,["delta"]);if(a.bindFramebuffer(t),a.setColorMask(!0,!0,!0,!0),a.setClearColor(0,0,0,0),a.clear(a.gl.COLOR_BUFFER_BIT),a.useProgram(l),!("type"in r.texture)||!("type"in i.texture))throw new Error("InternalError: Expected to find texture");a.bindTexture(r.texture,r.unit),a.bindTexture(i.texture,i.unit),l.setUniform1i("u_maskTexture",r.unit),l.setUniform1i("u_sourceTexture",i.unit),l.setUniform1f("u_timeDelta",e.deltaTime),l.setUniform1f("u_animationTime",s),l.setUniform1f("u_zoomLevel",Math.round(10*o)),this._quad.draw()}_updateAnimationState(e,t,i){const{context:r,painter:s}=e,a=s.materialManager.getProgram(this._desc,["update"]);r.bindTexture(t.colorTexture,1),r.useProgram(a),a.setUniform1i("u_sourceTexture",1),r.bindFramebuffer(i),r.setColorMask(!0,!0,!0,!0),r.setClearColor(0,0,0,0),r.clear(r.gl.COLOR_BUFFER_BIT),this._quad.draw()}}var lt=i(74580);const ht=e=>`#define ${(e=>e.replace("-","_").toUpperCase())(e)}\n`;function ct(e){return{attributes:new Map([["a_pos",0],["a_tex",1]]),shaders:{vertexShader:ht(e)+(0,lt.w)("blend/blend.vert"),fragmentShader:ht(e)+(0,lt.w)("blend/blend.frag")}}}const ut=()=>d.Z.getLogger("esri.views.2d.engine.webgl.effects.blendEffects.BlendEffect");class dt{constructor(){this._size=[0,0]}dispose(e){this._backBufferTexture=(0,a.M2)(this._backBufferTexture),this._quad=(0,a.M2)(this._quad)}draw(e,t,i,s,a){const{context:n,drawPhase:o}=e;if(this._setupShader(n),s&&"normal"!==s&&o!==N.jx.LABEL)return void this._drawBlended(e,t,i,s,a);const l=ct("normal"),h=n.programCache.acquire(l.shaders.vertexShader,l.shaders.fragmentShader,l.attributes);if(!h)return void ut().error(new r.Z("mapview-BlendEffect",'Error creating shader program for blend mode "normal"'));n.useProgram(h),t.setSamplingMode(i),n.bindTexture(t,0),h.setUniform1i("u_layerTexture",0),h.setUniform1f("u_opacity",a),n.setBlendingEnabled(!0),n.setBlendFunction(ne.zi.ONE,ne.zi.ONE_MINUS_SRC_ALPHA);const c=this._quad;c.draw(),c.unbind(),h.dispose()}_drawBlended(e,t,i,s,a){const{context:n,state:o,pixelRatio:l,inFadeTransition:h}=e,{size:c}=o,u=n.getBoundFramebufferObject();let d,p;null!=u?(d=u.width,p=u.height):(d=Math.round(l*c[0]),p=Math.round(l*c[1])),this._createOrResizeTexture(e,d,p);const _=this._backBufferTexture;u.copyToTexture(0,0,d,p,0,0,_),n.setStencilTestEnabled(!1),n.setStencilWriteMask(0),n.setBlendingEnabled(!0),n.setDepthTestEnabled(!1),n.setDepthWriteEnabled(!1);const m=ct(s),f=n.programCache.acquire(m.shaders.vertexShader,m.shaders.fragmentShader,m.attributes);if(!f)return void ut().error(new r.Z("mapview-BlendEffect",`Error creating shader program for blend mode ${s}`));n.useProgram(f),_.setSamplingMode(i),n.bindTexture(_,0),f.setUniform1i("u_backbufferTexture",0),t.setSamplingMode(i),n.bindTexture(t,1),f.setUniform1i("u_layerTexture",1),f.setUniform1f("u_opacity",a),f.setUniform1f("u_inFadeOpacity",h?1:0),n.setBlendFunction(ne.zi.ONE,ne.zi.ZERO);const g=this._quad;g.draw(),g.unbind(),f.dispose(),n.setBlendFunction(ne.zi.ONE,ne.zi.ONE_MINUS_SRC_ALPHA)}_setupShader(e){this._quad||(this._quad=new Ke.Z(e,[-1,-1,1,-1,-1,1,1,1]))}_createOrResizeTexture(e,t,i){const{context:r}=e;if(null===this._backBufferTexture||t!==this._size[0]||i!==this._size[1]){if(this._backBufferTexture)this._backBufferTexture.resize(t,i);else{const e=new Me.X;e.internalFormat=ne.VI.RGBA,e.wrapMode=ne.e8.CLAMP_TO_EDGE,e.width=t,e.height=i,this._backBufferTexture=new xe.x(r,e)}this._size[0]=t,this._size[1]=i}}}class pt extends nt{constructor(e){super(),this.name=this.constructor.name,this.defines=[e]}dispose(){}bind({context:e,painter:t}){this._prev=e.getBoundFramebufferObject();const i=t.getFbos().effect0;e.bindFramebuffer(i),e.setColorMask(!0,!0,!0,!0),e.setClearColor(0,0,0,0),e.clear(e.gl.COLOR_BUFFER_BIT)}unbind(){}draw(e,t){const{context:i,painter:r}=e,s=r.getPostProcessingEffects(t),a=i.getBoundFramebufferObject();for(const{postProcessingEffect:t,effect:i}of s)t.draw(e,a,i);i.bindFramebuffer(this._prev),i.setStencilTestEnabled(!1),r.blitTexture(i,a.colorTexture,ne.cw.NEAREST),i.setStencilTestEnabled(!0)}}var _t=i(28434),mt=i(41028),ft=i(41163);class gt{constructor(){this._width=void 0,this._height=void 0,this._resources=null}dispose(){this._resources&&(this._resources.quadGeometry.dispose(),this._resources.quadVAO.dispose(),this._resources.highlightProgram.dispose(),this._resources.blurProgram.dispose(),this._resources=null)}preBlur(e,t){e.bindTexture(t,x.Zt),e.useProgram(this._resources.blurProgram),this._resources.blurProgram.setUniform4fv("u_direction",[1,0,1/this._width,0]),this._resources.blurProgram.setUniformMatrix4fv("u_channelSelector",_t.bM),e.bindVAO(this._resources.quadVAO),e.drawArrays(ne.MX.TRIANGLE_STRIP,0,4),e.bindVAO()}finalBlur(e,t){e.bindTexture(t,x.Zt),e.useProgram(this._resources.blurProgram),this._resources.blurProgram.setUniform4fv("u_direction",[0,1,0,1/this._height]),this._resources.blurProgram.setUniformMatrix4fv("u_channelSelector",_t.dl),e.bindVAO(this._resources.quadVAO),e.drawArrays(ne.MX.TRIANGLE_STRIP,0,4),e.bindVAO()}renderHighlight(e,t,i){e.bindTexture(t,x.Zt),e.useProgram(this._resources.highlightProgram),i.applyHighlightOptions(e,this._resources.highlightProgram),e.bindVAO(this._resources.quadVAO),e.setBlendingEnabled(!0),e.setBlendFunction(ne.zi.ONE,ne.zi.ONE_MINUS_SRC_ALPHA),e.drawArrays(ne.MX.TRIANGLE_STRIP,0,4),e.bindVAO()}_initialize(e,t,i){this._width=t,this._height=i;const r=ae.f.createVertex(e,ne.l1.STATIC_DRAW,new Int8Array([-1,-1,0,0,1,-1,1,0,-1,1,0,1,1,1,1,1]).buffer),s=new le.U(e,new Map([["a_position",0],["a_texcoord",1]]),{geometry:[new ft.G("a_position",2,ne.g.BYTE,0,4),new ft.G("a_texcoord",2,ne.g.UNSIGNED_BYTE,2,4)]},{geometry:r}),a=(0,oe.H)(e,mt.C),n=(0,oe.H)(e,mt.y);e.useProgram(a),a.setUniform1i("u_texture",x.Zt),a.setUniform1i("u_shade",x.Sf),a.setUniform1f("u_sigma",_t.pW),e.useProgram(n),n.setUniform1i("u_texture",x.Zt),n.setUniform1f("u_sigma",_t.pW),this._resources={quadGeometry:r,quadVAO:s,highlightProgram:a,blurProgram:n}}setup(e,t,i){this._resources?(this._width=t,this._height=i):this._initialize(e,t,i)}}var yt=i(18567),vt=i(56109);function bt(e,t,i){const r=new Me.X(t,i);return r.wrapMode=ne.e8.CLAMP_TO_EDGE,new yt.X(e,r,new vt.Y(ne.Tg.STENCIL_INDEX8,t,i))}class wt{constructor(){this._width=void 0,this._height=void 0,this._resources=null}dispose(){this._resources&&(this._resources.sharedBlur1Fbo.dispose(),this._resources.sharedBlur2Fbo.dispose(),this._resources=null)}_initialize(e,t,i){this._width=t,this._height=i;const r=bt(e,t,i),s=bt(e,t,i);this._resources={sharedBlur1Fbo:r,sharedBlur2Fbo:s}}setup(e,t,i){!this._resources||this._width===t&&this._height===i||this.dispose(),this._resources||this._initialize(e,t,i)}get sharedBlur1Tex(){return this._resources.sharedBlur1Fbo.colorTexture}get sharedBlur1Fbo(){return this._resources.sharedBlur1Fbo}get sharedBlur2Tex(){return this._resources.sharedBlur2Fbo.colorTexture}get sharedBlur2Fbo(){return this._resources.sharedBlur2Fbo}}class xt extends nt{constructor(){super(...arguments),this.defines=["highlight"],this._hlRenderer=new gt,this._width=void 0,this._height=void 0,this._boundFBO=null,this._hlSurfaces=new wt,this._adjustedWidth=void 0,this._adjustedHeight=void 0,this._blitRenderer=new he}dispose(){this._hlSurfaces?.dispose(),this._hlRenderer?.dispose(),this._boundFBO=null}bind(e){const{context:t,painter:i}=e,{width:r,height:s}=t.getViewport(),a=i.getFbos().effect0;this.setup(e,r,s),t.bindFramebuffer(a),t.setColorMask(!0,!0,!0,!0),t.setClearColor(0,0,0,0),t.clear(t.gl.COLOR_BUFFER_BIT)}unbind(){}setup({context:e},t,i){this._width=t,this._height=i;const r=t%4,s=i%4;t+=r<2?-r:4-r,i+=s<2?-s:4-s,this._adjustedWidth=t,this._adjustedHeight=i,this._boundFBO=e.getBoundFramebufferObject();const a=Math.round(1*t),n=Math.round(1*i);this._hlRenderer.setup(e,a,n),this._hlSurfaces.setup(e,a,n)}draw(e){const{context:t,passOptions:i}=e,r=i.activeGradient,s=t.getBoundFramebufferObject();t.setViewport(0,0,1*this._adjustedWidth,1*this._adjustedHeight),t.bindFramebuffer(this._hlSurfaces.sharedBlur1Fbo),t.setStencilTestEnabled(!1),t.setClearColor(0,0,0,0),t.clear(t.gl.COLOR_BUFFER_BIT),this._blitRenderer.render(t,s.colorTexture,ne.cw.NEAREST,1),t.setStencilTestEnabled(!1),t.setBlendingEnabled(!1),t.setColorMask(!1,!1,!1,!0),t.bindFramebuffer(this._hlSurfaces.sharedBlur2Fbo),t.setClearColor(0,0,0,0),t.clear(t.gl.COLOR_BUFFER_BIT),this._hlRenderer.preBlur(t,this._hlSurfaces.sharedBlur1Tex),t.bindFramebuffer(this._hlSurfaces.sharedBlur1Fbo),t.setClearColor(0,0,0,0),t.clear(t.gl.COLOR_BUFFER_BIT),this._hlRenderer.finalBlur(t,this._hlSurfaces.sharedBlur2Tex),t.bindFramebuffer(this._boundFBO),t.setBlendingEnabled(!0),t.setColorMask(!0,!0,!0,!0),t.setViewport(0,0,this._width,this._height),this._hlRenderer.renderHighlight(t,this._hlSurfaces.sharedBlur1Tex,r),this._boundFBO=null}}class Mt extends nt{constructor(){super(...arguments),this.name=this.constructor.name,this.defines=["hittest"]}dispose(){null!=this._fbo&&this._fbo.dispose()}createOptions({pixelRatio:e},t,i=x.nY){if(!t.length)return null;const r=t.shift(),s=r.x,a=r.y;return this._outstanding=r,{type:"hittest",distance:i*e,smallSymbolDistance:0,smallSymbolSizeThreshold:3,position:[s,a]}}bind(e){const{context:t,attributeView:i}=e;if(!i.size)return;const r=i.getBlock(x.wi.GPGPU);if(null==r)return;const s=r.getFBO(t);t.setViewport(0,0,i.size,i.size),t.bindFramebuffer(s),t.setColorMask(!0,!0,!0,!0),t.setClearColor(0,0,0,0),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT)}unbind(){}draw(e){if(null==this._outstanding)return;const t=this._outstanding;this._outstanding=null,this._resolve(e,t.resolvers)}async _resolve(e,t){const{context:i,attributeView:r}=e,s=r.getBlock(x.wi.GPGPU);if(null==s)return void t.forEach((e=>e.resolve([])));const a=s.getFBO(i),n=new Uint8Array(a.width*a.height*4);try{await a.readPixelsAsync(0,0,a.width,a.height,ne.VI.RGBA,ne.Br.UNSIGNED_BYTE,n)}catch(e){return void t.forEach((e=>e.resolve([])))}const o=[];for(let e=0;ee.resolve(o)))}}class St extends nt{constructor(){super(...arguments),this.name=this.constructor.name,this.defines=["id"],this._lastSize=0,this._boundFBO=null}dispose(){null!=this._fbo&&this._fbo.dispose()}bind({context:e,painter:t}){this._boundFBO=e.getBoundFramebufferObject();const i=t.getFbos().effect0;e.bindFramebuffer(i),e.setColorMask(!0,!0,!0,!0),e.setClearColor(0,0,0,0),e.clear(e.gl.COLOR_BUFFER_BIT)}unbind({context:e}){e.bindFramebuffer(this._boundFBO),this._boundFBO=null}draw(e,t,i=2*x.nY){this._resolve(e,t,i)}async _resolve({context:e,state:t,pixelRatio:i},r,s){const a=e.getBoundFramebufferObject(),n=t.size[1]*i,o=Math.round(s*i),l=o/2,h=o/2;this._ensureBuffer(o),r.forEach((async(e,t)=>{const s=new Map,c=Math.floor(t.x*i-o/2),u=Math.floor(n-t.y*i-o/2);await a.readPixelsAsync(c,u,o,o,ne.VI.RGBA,ne.Br.UNSIGNED_BYTE,this._buf);for(let e=0;ee[1]-t[1])).map((e=>e[0]));e.resolve(d),r.delete(t)}))}_ensureBuffer(e){this._lastSize!==e&&(this._lastSize=e,this._buf=new Uint8Array(4*e*e),this._buf32=new Uint32Array(this._buf.buffer))}}const Ot=[1,0],Pt=[0,1],Tt=[1,.8,.6,.4,.2],Ct=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];class zt{constructor(){this._intensityFBO=null,this._compositeFBO=null,this._mipsFBOs=new Array(5),this._nMips=5,this._kernelSizeArray=[3,5,7,9,11],this._size=[0,0],this._programDesc={luminosityHighPass:{vsPath:"post-processing/pp",fsPath:"post-processing/bloom/luminosityHighPass",attributes:new Map([["a_position",0]])},gaussianBlur:{vsPath:"post-processing/pp",fsPath:"post-processing/bloom/gaussianBlur",attributes:new Map([["a_position",0]])},composite:{vsPath:"post-processing/pp",fsPath:"post-processing/bloom/composite",attributes:new Map([["a_position",0]])},blit:{vsPath:"post-processing/pp",fsPath:"post-processing/blit",attributes:new Map([["a_position",0]])}}}dispose(){if(this._quad=(0,a.M2)(this._quad),this._intensityFBO=(0,a.M2)(this._intensityFBO),this._compositeFBO=(0,a.M2)(this._compositeFBO),this._mipsFBOs){for(let e=0;enew At,blur:()=>new Rt,bloom:()=>new zt,opacity:()=>new Dt,"drop-shadow":()=>new It};class Ut{constructor(){this._effectMap=new Map}dispose(){this._effectMap.forEach((e=>e.dispose())),this._effectMap.clear()}getPostProcessingEffects(e){if(!e||0===e.length)return[];const t=[];for(const i of e){const e=Nt(i.type);let r=this._effectMap.get(e);r||(r=Lt[e](),this._effectMap.set(e,r)),t.push({postProcessingEffect:r,effect:i})}return t}}var Vt=i(7753);class Gt{constructor(e,t){this.brushes=e,this.name=t.name,this.drawPhase=t.drawPhase||N.jx.MAP,this._targetFn=t.target,this.effects=t.effects||[],this.enableDefaultDraw=t.enableDefaultDraw??(()=>!0),this.forceDrawByDisplayOrder=!!t.forceDrawByDisplayOrder}render(e){const{context:t,profiler:i}=e,r=this._targetFn(),s=this.drawPhase&e.drawPhase;if(i.recordPassStart(this.name),s){this.enableDefaultDraw()&&this._doRender(e,r),i.recordPassEnd();for(const i of this.effects){if(!i.enable())continue;const s=i.apply,a=i.args?.(),n=t.getViewport(),o=t.getBoundFramebufferObject(),l=e.passOptions;this._bindEffect(e,s,a),this._doRender(e,r,s.defines),this._drawAndUnbindEffect(e,s,n,o,l,a)}}}_doRender(e,t,i){if(null==t)return;const{profiler:r,context:s}=e;for(const a of this.brushes){if(r.recordBrushStart(a.name),null!=a.brushEffect){const r=s.getViewport(),n=s.getBoundFramebufferObject(),o=e.passOptions;this._bindEffect(e,a.brushEffect),this._drawWithBrush(a,e,t,i),this._drawAndUnbindEffect(e,a.brushEffect,r,n,o)}else this._drawWithBrush(a,e,t,i);r.recordBrushEnd()}}_drawWithBrush(e,t,i,r){(0,Vt.zG)(i)?(e.prepareState(t,r),e.drawMany(t,i,r)):i.visible&&(e.prepareState(t,r),e.draw(t,i,r))}_bindEffect(e,t,i){const{profiler:r}=e;r.recordPassStart(this.name+"."+t.name),t.bind(e,i);const s=t.createOptions(e,i);e.passOptions=s}_drawAndUnbindEffect(e,t,i,r,s,a){const{profiler:n,context:o}=e;e.passOptions=s,n.recordBrushStart(t.name),t.draw(e,a),t.unbind(e,a),o.bindFramebuffer(r);const{x:l,y:h,width:c,height:u}=i;o.setViewport(l,h,c,u),n.recordBrushEnd(),n.recordPassEnd()}}class Ht{constructor(){this._programCache=new Map}destroy(){for(const e of this._programCache.values())e.destroy();this._programCache.clear()}getProgram(e,t,i,r,s){const a=e.getShaderKey(t,i,r,s);let n=this._programCache.get(a);return n||(n=e.getProgram(t,i,r,s),this._programCache.set(a,n)),n}}var Wt=i(37165);class qt{constructor(e,t){this.context=e,this._currentPipelineStateNeedsUpdate=!1,this._blitRenderer=new he,this._worldExtentRenderer=new at,this._brushCache=new Map,this._lastWidth=null,this._lastHeight=null,this._vtlMaterialManager=new ie,this._blendEffect=new dt,this._stencilBuf=null,this._prevBeforeLayerFBOStack=[],this._fboPool=[],this.effects={highlight:new xt,hittest:new Mt,hittestVTL:new St,integrate:new ot,insideEffect:new pt("inside"),outsideEffect:new pt("outside")},this._programCache=new Ht,this._shaderState={shader:null,uniforms:null,defines:null,optionalAttributes:null,useComputeBuffer:!1},this.materialManager=new ue(e),this.textureManager=new qe(t),this.textureUploadManager=new $e(t),this._effectsManager=new Ut,this._quadMesh=new Ke.Z(e,[0,0,1,0,0,1,1,1])}dispose(){if(this._programCache.destroy(),this.materialManager.dispose(),this.textureManager.dispose(),this.textureUploadManager.destroy(),this._blitRenderer=(0,a.M2)(this._blitRenderer),this._worldExtentRenderer=(0,a.M2)(this._worldExtentRenderer),this._quadMesh.dispose(),this._brushCache&&(this._brushCache.forEach((e=>e.dispose())),this._brushCache.clear(),this._brushCache=null),this._fbos){let e;for(e in this._fbos)this._fbos[e]&&this._fbos[e].dispose()}for(const e of this._fboPool)e.dispose();if(this._fboPool.length=0,this.effects){let e;for(e in this.effects)this.effects[e]&&this.effects[e].dispose()}this._effectsManager.dispose(),this._blendEffect.dispose(this.context),this._vtlMaterialManager=(0,a.M2)(this._vtlMaterialManager)}clearShaderCache(){this._programCache.destroy(),this._programCache=new Ht}get blitRenderer(){return this._blitRenderer}get vectorTilesMaterialManager(){return this._vtlMaterialManager}getFbos(){if(!this._fbos)throw new Error("InternalError: Painter FBOs not initialized");return this._fbos}acquireFbo(e,t){let i;if(this._fboPool.length>0)i=this._fboPool.pop();else{const r=new Me.X(e,t);r.samplingMode=ne.cw.NEAREST,r.wrapMode=ne.e8.CLAMP_TO_EDGE,i=new yt.X(this.context,r,this._stencilBuf)}return i.width===e&&i.height===t||i.resize(e,t),i}releaseFbo(e){this._fboPool.push(e)}getSharedStencilBuffer(){return this._stencilBuf}beforeRenderPhases(e,t,i){const{context:r}=e;this._worldExtentRenderer.render(e,t,i);const{width:s,height:a}=r.getViewport();if(this.updateFBOs(s,a),this._prevFBO=r.getBoundFramebufferObject(),r.bindFramebuffer(this.getFbos().output),r.setColorMask(!0,!0,!0,!0),null!=t){const{r:e,g:i,b:s,a:a}=t;r.setClearColor(a*e/255,a*i/255,a*s/255,a)}else r.setClearColor(0,0,0,0);r.setDepthWriteEnabled(!0),r.setClearDepth(1),r.clear(r.gl.COLOR_BUFFER_BIT|r.gl.DEPTH_BUFFER_BIT),r.setDepthWriteEnabled(!1)}afterRenderPhases(e){const{context:t}=e;t.bindFramebuffer(this._prevFBO),t.setStencilFunction(ne.wb.EQUAL,1,255),t.setStencilTestEnabled(!0),t.setDepthTestEnabled(!1),this.blitTexture(t,this.getFbos().output.colorTexture,ne.cw.NEAREST)}beforeRenderLayer(e,t,i){const{context:r,blendMode:s,effects:a,drawPhase:n,requireFBO:o}=e;if(o||Xt(n,s,a,i)){const e=r.getBoundFramebufferObject();this._prevBeforeLayerFBOStack.push(e);const{width:t,height:i}=r.getViewport(),s=this.acquireFbo(t,i);r.bindFramebuffer(s),r.setColorMask(!0,!0,!0,!0),r.setClearColor(0,0,0,0),r.setDepthWriteEnabled(!0),r.setClearDepth(1),r.clear(r.gl.COLOR_BUFFER_BIT|r.gl.DEPTH_BUFFER_BIT),r.setDepthWriteEnabled(!1)}r.setDepthWriteEnabled(!1),r.setDepthTestEnabled(!1),r.setStencilTestEnabled(!0),r.setClearStencil(t),r.setStencilWriteMask(255),r.clear(r.gl.STENCIL_BUFFER_BIT)}afterRenderLayer(e,t){const{context:i,blendMode:r,effects:s,requireFBO:a,drawPhase:n}=e;if(a||Xt(n,r,s,t)){const a=i.getBoundFramebufferObject();null!=s&&s.length>0&&n===N.jx.MAP&&(i.setColorMask(!0,!0,!0,!0),this._applyEffects(e,s,a)),i.bindFramebuffer(this._prevBeforeLayerFBOStack.pop()),i.setStencilTestEnabled(!1),i.setStencilWriteMask(0),i.setBlendingEnabled(!0),i.setBlendFunctionSeparate(ne.zi.ONE,ne.zi.ONE_MINUS_SRC_ALPHA,ne.zi.ONE,ne.zi.ONE_MINUS_SRC_ALPHA),i.setColorMask(!0,!0,!0,!0);const o=null==r||n===N.jx.HIGHLIGHT?"normal":r;this._blendEffect.draw(e,a.colorTexture,ne.cw.NEAREST,o,t),this.releaseFbo(a)}}renderObject(e,t,i,r){const s=L.U[i];if(!s)return;let a=this._brushCache.get(s);void 0===a&&(a=new s,this._brushCache.set(s,a)),a.prepareState(e),a.draw(e,t,r)}renderObjects(e,t,i,r){const s=L.U[i];if(!s)return;let a=this._brushCache.get(s);void 0===a&&(a=new s,this._brushCache.set(s,a)),a.drawMany(e,t,r)}registerRenderPass(e){const t=e.brushes.map((e=>(this._brushCache.has(e)||this._brushCache.set(e,new e),this._brushCache.get(e))));return new Gt(t,e)}blitTexture(e,t,i,r=1){e.setBlendingEnabled(!0),e.setBlendFunctionSeparate(ne.zi.ONE,ne.zi.ONE_MINUS_SRC_ALPHA,ne.zi.ONE,ne.zi.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),this._blitRenderer.render(e,t,i,r),this._currentPipelineStateNeedsUpdate=!0}getPostProcessingEffects(e){return this._effectsManager.getPostProcessingEffects(e)}updateFBOs(e,t){if(e!==this._lastWidth||t!==this._lastHeight){if(this._lastWidth=e,this._lastHeight=t,this._fbos){let i;for(i in this._fbos)this._fbos[i].resize(e,t);return}const i=new Me.X(e,t);i.samplingMode=ne.cw.NEAREST,i.wrapMode=ne.e8.CLAMP_TO_EDGE;const r=new vt.Y(ne.Tg.DEPTH_STENCIL,e,t);this._stencilBuf=new Wt.r(this.context,r),this._fbos={output:new yt.X(this.context,i,this._stencilBuf),effect0:new yt.X(this.context,i,this._stencilBuf)}}}_applyEffects(e,t,i){const{context:r}=e,s=this._effectsManager.getPostProcessingEffects(t);for(const{postProcessingEffect:t,effect:a}of s)r.bindFramebuffer(i),t.draw(e,i,a);this._currentPipelineStateNeedsUpdate=!0}setShader(e){this._shaderState.shader=e.shader,this._shaderState.uniforms=e.uniforms,this._shaderState.defines=e.defines,this._shaderState.optionalAttributes=e.optionalAttributes,this._shaderState.useComputeBuffer=e.useComputeBuffer??!1}setPipelineState(e){e!==this._currentPipelineState&&(this._currentPipelineState=e,this._currentPipelineStateNeedsUpdate=!0)}submitDraw(e,t){const{instance:i}=t,r=i.instanceId,{shader:s,uniforms:a,defines:n,optionalAttributes:o,useComputeBuffer:l}=this._shaderState,h=t.target.getMesh(r),c={useComputeBuffer:l,locationInfo:s.locationInfo,computeAttributeMap:s.computeAttributes},u=h.getLayout(c);if(null==u)return null;const{primitive:d,count:p,offset:_}=h.getDrawArgs(ne.MX.TRIANGLES,t.count,t.start*Uint32Array.BYTES_PER_ELEMENT,l),m=this._programCache.getProgram(s,u,a,n??{},o??{});m.setUniforms(a),m.bind(e),this.updatePipelineState(e),this._updateStencilRef(e,t.target);const f=h.getVAO(e,s.locationInfo,c);return e.bindVAO(f),e.drawElements(d,p,ne.g.UNSIGNED_INT,_),e.bindVAO(null),m.cleanupTemporaryTextures(),{vertexShader:m.vertexShader,fragmentShader:m.fragmentShader}}submitDrawQuad(e){const{shader:t,uniforms:i,defines:r,optionalAttributes:s}=this._shaderState,a=this._programCache.getProgram(t,this._quadMesh.layout,i,r??{},s??{});a.setUniforms(i),a.bind(e),this.updatePipelineState(e),this._updateStencilRef(e,null),this._quadMesh.draw(),e.bindVAO(null),a.cleanupTemporaryTextures()}submitDrawMesh(e,t,i){const{shader:r,uniforms:s,defines:a,optionalAttributes:n}=this._shaderState,o=this._programCache.getProgram(r,t.layout,s,a??{},n??{});if(o.setUniforms(s),o.bind(e),this.updatePipelineState(e),this._updateStencilRef(e,null),i)for(const r of i)t.bind(e,r),t.draw(e);else for(let i=0;i0)}var Yt=i(20627),Zt=i(54689);class jt{constructor(){this._candidateTiles=[]}schedule(e){this._candidateTiles.includes(e)||this._candidateTiles.push(e)}reshuffle(e){const t=[];for(const i of this._candidateTiles)e>0?(i.reshuffle(),e--):t.push(i);this._candidateTiles=t}}var $t=i(56144),Kt=i(45479),Jt=i(994),Qt=i(76729),ei=i(8955);class ti extends z.W{constructor(e,t){super(),this._trash=new Set,this._renderRemainingTime=0,this._lastFrameRenderTime=0,this._renderRequested=(0,o.t)(!1),this.stage=this,this._stationary=!0,this._reshuffleManager=new jt,this._canvas=new D(e),this.context=new Qt.x(this._canvas.gl,t.contextOptions??{}),this.painter=new qt(this.context,this),this._cimAnalyzer=new S(this.painter.textureManager.resourceManager),(0,s.Z)("esri-2d-profiler")&&(this._debugOutput=document.createElement("div"),this._debugOutput.setAttribute("style","margin: 24px 64px; position: absolute; color: red;"),e.appendChild(this._debugOutput));const i=()=>this._highlightGradient;this._renderParameters={drawPhase:0,state:this.state,pixelRatio:window.devicePixelRatio,stationary:!1,globalOpacity:1,blendMode:null,deltaTime:-1,time:0,inFadeTransition:!1,effects:null,context:this.context,painter:this.painter,timeline:t.timeline||new Kt.T,renderingOptions:t.renderingOptions,requestRender:()=>this.requestRender(),allowDelayedRender:!1,requireFBO:!1,profiler:new Zt.Q(this.context,this._debugOutput),dataUploadCounter:0,get highlightGradient(){return i()},reshuffleManager:this._reshuffleManager,backgroundColor:t.backgroundColor},this._taskHandle=(0,n.A)({render:e=>this.renderFrame(e)}),this._taskHandle.pause(),this._lostWebGLContextHandle=this._canvas.events.on("webgl-context-lost",(e=>this.emit("webgl-error",{error:new r.Z("webgl-context-lost",e.statusMessage)}))),this._bufferPool=new Yt.o,(0,$t.W4)()}destroy(){(0,$t.IG)(this.context),this.removeAllChildren(),this._emptyTrash(),this._taskHandle=(0,a.hw)(this._taskHandle),this._lostWebGLContextHandle=(0,a.hw)(this._lostWebGLContextHandle),this._canvas.destroy(),this._debugOutput?.parentNode?.removeChild(this._debugOutput),this._bufferPool.destroy(),this.painter.dispose(),this.context.dispose(),this._canvas=null}get textureManager(){return this.painter.textureManager}get backgroundColor(){return this._renderParameters.backgroundColor}set backgroundColor(e){this._renderParameters.backgroundColor=e,this.requestRender()}get bufferPool(){return this._bufferPool}get cimAnalyzer(){return this._cimAnalyzer}get renderingOptions(){return this._renderingOptions}set renderingOptions(e){this._renderingOptions=e,this.requestRender()}get renderRequested(){return this._renderRequested.value}get state(){return this._state}set state(e){this._state=e,this.requestRender()}get stationary(){return this._stationary}set stationary(e){this._stationary!==e&&(this._stationary=e,this.requestRender())}trashDisplayObject(e){this._trash.add(e),this.requestRender()}untrashDisplayObject(e){return this._trash.delete(e)}requestRender(){this._renderRemainingTime=2e3,this.renderRequested||(this._renderRequested.value=!0,this._taskHandle.resume())}renderFrame(e){const t=this._lastFrameRenderTime?e.time-this._lastFrameRenderTime:0;this._renderRemainingTime-=t,this._renderRemainingTime<=0&&this._taskHandle.pause(),this._lastFrameRenderTime=e.time,this._renderRequested.value=!1,this._renderParameters.state=this._state,this._renderParameters.stationary=this.stationary,this._renderParameters.pixelRatio=window.devicePixelRatio,this._renderParameters.globalOpacity=1,this._renderParameters.time=e.time,this._renderParameters.deltaTime=e.deltaTime,this._renderParameters.effects=null,this.processRender(this._renderParameters),this._emptyTrash()}_createTransforms(){return{displayViewScreenMat3:(0,l.Ue)()}}renderChildren(e){for(const t of this.children)t.beforeRender(e);this._reshuffleManager.reshuffle(x.BZ),this._canvas.render(e,(()=>this._renderChildren(this.children,e)));for(const t of this.children)t.afterRender(e)}_renderChildren(e,t){const i=this.context;this.painter.textureUploadManager.upload(),i.resetInfo(),t.profiler.recordStart("drawLayers"),t.dataUploadCounter=0,this.painter.beforeRenderPhases(t,t.backgroundColor,this.state.padding),t.drawPhase=N.jx.MAP;for(const i of e)i.processRender(t);if(this.children.some((e=>e.hasHighlight))){t.drawPhase=N.jx.HIGHLIGHT;for(const i of e)i.processRender(t)}if(this.children.some((e=>e.hasLabels))){t.drawPhase=N.jx.LABEL;for(const i of e)i.processRender(t)}if((0,s.Z)("esri-tiles-debug")){t.drawPhase=N.jx.DEBUG;for(const i of e)i.processRender(t)}this.painter.afterRenderPhases(t),t.profiler.recordEnd("drawLayers"),i.logInfo()}doRender(e){const t=this.context,{state:i,pixelRatio:r}=e;this._canvas.resize(e),t.setViewport(0,0,r*i.size[0],r*i.size[1]),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),this.renderChildren(e)}async takeScreenshot(e,t,i,r){const s=Math.round(this.state.size[0]*e.resolutionScale),a=Math.round(this.state.size[1]*e.resolutionScale),n=e.resolutionScale,o=this.context,l=this._state.clone();if(null!=r){const e=l.viewpoint;l.viewpoint.rotation=r,l.viewpoint=e}const h={...this._renderParameters,drawPhase:null,globalOpacity:1,stationary:!0,state:l,pixelRatio:n,time:performance.now(),deltaTime:0,blendMode:null,effects:null,inFadeTransition:!1,backgroundColor:i},c=new Me.X(s,a);c.wrapMode=ne.e8.CLAMP_TO_EDGE,c.internalFormat=ne.lP.RGBA8,c.isImmutable=!0;const u=new yt.X(o,c,new vt.Y(ne.Tg.DEPTH_STENCIL,s,a)),d=o.getBoundFramebufferObject(),p=o.getViewport();o.bindFramebuffer(u),o.setViewport(0,0,s,a),this._renderChildren(t??this.children,h);const _=this._readbackScreenshot(u,{...e.cropArea,y:a-(e.cropArea.y+e.cropArea.height)});o.bindFramebuffer(d),o.setViewport(p.x,p.y,p.width,p.height),this.requestRender();const m=await _;let f;return 1===e.outputScale?f=m:(f=new ImageData(Math.round(m.width*e.outputScale),Math.round(m.height*e.outputScale)),(0,Jt.TT)(m,f,!0)),u.dispose(),f}async _readbackScreenshot(e,t){const i=(0,ei.r7)(t.width,t.height,document.createElement("canvas"));return await e.readPixelsAsync(t.x,t.y,t.width,t.height,ne.VI.RGBA,ne.Br.UNSIGNED_BYTE,new Uint8Array(i.data.buffer)),i}_emptyTrash(){for(;this._trash.size>0;){const e=Array.from(this._trash);this._trash.clear();for(const t of e)t.processDetach()}}}var ii=i(70187),ri=i(18133),si=i(68114),ai=i(98863),ni=i(67979),oi=i(44584),li=i(76868),hi=i(3466),ci=i(51118),ui=i(82729),di=i(44883);class pi extends ci.s{constructor(){super(),this._handles=new oi.Z,this._resourcePixelRatio=1,this.visible=!1}destroy(){this._handles=(0,a.SC)(this._handles),this._disposeRenderResources(),this._resourcesTask=(0,a.IM)(this._resourcesTask)}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){this._backgroundColor=e,this.requestRender()}get magnifier(){return this._magnifier}set magnifier(e){this._magnifier=e,this._handles.removeAll(),this._handles.add([(0,li.YP)((()=>e.version),(()=>{this.visible=e.visible&&null!=e.position&&e.size>0,this.requestRender()}),li.nn),(0,li.YP)((()=>[e.maskUrl,e.overlayUrl]),(()=>this._reloadResources())),(0,li.YP)((()=>e.size),(()=>{this._disposeRenderResources(),this.requestRender()}))])}_createTransforms(){return{displayViewScreenMat3:(0,l.Ue)()}}doRender(e){const t=e.context;if(!this._resourcesTask)return void this._reloadResources();if(e.drawPhase!==N.jx.MAP||!this._canRender())return;this._updateResources(e);const i=this._magnifier;if(null==i.position)return;const r=e.pixelRatio,s=i.size*r,a=1/i.factor,n=Math.ceil(a*s);this._readbackTexture.resize(n,n);const{size:o}=e.state,l=r*o[0],h=r*o[1],c=.5*n,u=.5*n,d=(0,A.uZ)(r*i.position.x,c,l-c-1),p=(0,A.uZ)(h-r*i.position.y,u,h-u-1);t.setBlendingEnabled(!0);const _=d-c,m=p-u,f=this._readbackTexture;t.bindTexture(f,0),t.gl.copyTexImage2D(f.descriptor.target,0,f.descriptor.pixelFormat,_,m,n,n,0);const g=this.backgroundColor,y=g?[g.a*g.r/255,g.a*g.g/255,g.a*g.b/255,g.a]:[1,1,1,1],v=(d+i.offset.x*r)/l*2-1,b=(p-i.offset.y*r)/h*2-1,w=s/l*2,x=s/h*2,M=this._program;t.bindVAO(this._vertexArrayObject),t.bindTexture(this._overlayTexture,6),t.bindTexture(this._maskTexture,7),t.useProgram(M),M.setUniform4fv("u_background",y),M.setUniform1i("u_readbackTexture",0),M.setUniform1i("u_overlayTexture",6),M.setUniform1i("u_maskTexture",7),M.setUniform4f("u_drawPos",v,b,w,x),M.setUniform1i("u_maskEnabled",i.maskEnabled?1:0),M.setUniform1i("u_overlayEnabled",i.overlayEnabled?1:0),t.setStencilTestEnabled(!1),t.setColorMask(!0,!0,!0,!0),t.drawArrays(ne.MX.TRIANGLE_STRIP,0,4),t.bindVAO()}_canRender(){return this.mask&&this.overlay&&null!=this._magnifier}_reloadResources(){this._resourcesTask&&this._resourcesTask.abort();const e=null!=this._magnifier?this._magnifier.maskUrl:null,t=null!=this._magnifier?this._magnifier.overlayUrl:null;this._resourcesTask=(0,ni.vr)((async r=>{const s=null==e||null==t?async function(e){const t=i.e(2030).then(i.bind(i,12030)),r=i.e(9110).then(i.bind(i,49110)),s=(0,di.t)((await t).default,{signal:e}),a=(0,di.t)((await r).default,{signal:e}),n={mask:await s,overlay:await a};return(0,me.k_)(e),n}(r):null,a=null!=e?(0,pe.Z)(e,{responseType:"image",signal:r}).then((e=>e.data)):s.then((e=>e.mask)),n=null!=t?(0,pe.Z)(t,{responseType:"image",signal:r}).then((e=>e.data)):s.then((e=>e.overlay)),[o,l]=await Promise.all([a,n]);this.mask=o,this.overlay=l,this._disposeRenderResources(),this.requestRender()}))}_disposeRenderResources(){this._readbackTexture=(0,a.M2)(this._readbackTexture),this._overlayTexture=(0,a.M2)(this._overlayTexture),this._maskTexture=(0,a.M2)(this._maskTexture),this._vertexArrayObject=(0,a.M2)(this._vertexArrayObject),this._program=(0,a.M2)(this._program)}_updateResources(e){if(e.pixelRatio!==this._resourcePixelRatio&&this._disposeRenderResources(),this._readbackTexture)return;const t=e.context;this._resourcePixelRatio=e.pixelRatio;const i=Math.ceil(this._magnifier.size*e.pixelRatio);this._program=(0,ui.F)(t);const r=new Uint16Array([0,1,0,0,1,1,1,0]),s=ui.c.attributes;this._vertexArrayObject=new le.U(t,s,re.cD,{geometry:ae.f.createVertex(t,ne.l1.STATIC_DRAW,r)}),this.overlay.width=i,this.overlay.height=i;const a=new Me.X;a.internalFormat=ne.VI.RGBA,a.wrapMode=ne.e8.CLAMP_TO_EDGE,a.samplingMode=ne.cw.NEAREST,a.flipped=!0,a.preMultiplyAlpha=!(0,hi.zd)(this.overlay.src)||!e.context.driverTest.svgPremultipliesAlpha.result,this._overlayTexture=new xe.x(t,a,this.overlay),this.mask.width=i,this.mask.height=i,a.pixelFormat=a.internalFormat=ne.VI.ALPHA,this._maskTexture=new xe.x(t,a,this.mask);const n=1/this._magnifier.factor;a.pixelFormat=a.internalFormat=ne.VI.RGBA,a.width=a.height=Math.ceil(n*i),a.samplingMode=ne.cw.LINEAR,a.flipped=!1,this._readbackTexture=new xe.x(t,a)}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8699.c71e79c9823fd475bb26.js b/docs/sentinel1-explorer/8699.c71e79c9823fd475bb26.js new file mode 100644 index 00000000..667ed3b7 --- /dev/null +++ b/docs/sentinel1-explorer/8699.c71e79c9823fd475bb26.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8699],{98699:function(n,t,e){e.r(t),e.d(t,{registerFunctions:function(){return l}});var a=e(78053),r=e(7182),i=e(94837),u=e(45573),c=e(52192),o=e(23709);async function s(n,t,e,a,r,c){if(1===a.length){if((0,i.o)(a[0]))return(0,u.t)(n,a[0],(0,i.K)(a[1],-1));if((0,i.q)(a[0]))return(0,u.t)(n,a[0].toArray(),(0,i.K)(a[1],-1))}else if(2===a.length){if((0,i.o)(a[0]))return(0,u.t)(n,a[0],(0,i.K)(a[1],-1));if((0,i.q)(a[0]))return(0,u.t)(n,a[0].toArray(),(0,i.K)(a[1],-1));if((0,i.u)(a[0])){const e=await a[0].load(),u=await d(o.WhereClause.create(a[1],e.getFieldsIndex(),e.dateFieldsTimeZoneDefaultUTC),c,r);return f(r,await a[0].calculateStatistic(n,u,(0,i.K)(a[2],1e3),t.abortSignal))}}else if(3===a.length&&(0,i.u)(a[0])){const e=await a[0].load(),u=await d(o.WhereClause.create(a[1],e.getFieldsIndex(),e.dateFieldsTimeZoneDefaultUTC),c,r);return f(r,await a[0].calculateStatistic(n,u,(0,i.K)(a[2],1e3),t.abortSignal))}return(0,u.t)(n,a,-1)}function f(n,t){return t instanceof c.H?a.iG.fromReaderAsTimeStampOffset(t.toStorageFormat()):t instanceof Date?a.iG.dateJSAndZoneToArcadeDate(t,(0,i.N)(n)):t}async function d(n,t,e){const a=n.getVariables();if(a.length>0){const r=[];for(let n=0;ns("stdev",e,0,r,t,n)))},n.functions.variance=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>s("variance",e,0,r,t,n)))},n.functions.average=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>s("mean",e,0,r,t,n)))},n.functions.mean=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>s("mean",e,0,r,t,n)))},n.functions.sum=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>s("sum",e,0,r,t,n)))},n.functions.min=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>s("min",e,0,r,t,n)))},n.functions.max=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>s("max",e,0,r,t,n)))},n.functions.count=function(t,e){return n.standardFunctionAsync(t,e,((n,a,u)=>{if((0,i.H)(u,1,1,t,e),(0,i.u)(u[0]))return u[0].count(n.abortSignal);if((0,i.o)(u[0])||(0,i.c)(u[0]))return u[0].length;if((0,i.q)(u[0]))return u[0].length();throw new r.aV(t,r.rH.InvalidParameter,e)}))})}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8705.538394f9dcbac3697a37.js b/docs/sentinel1-explorer/8705.538394f9dcbac3697a37.js new file mode 100644 index 00000000..3b5085cc --- /dev/null +++ b/docs/sentinel1-explorer/8705.538394f9dcbac3697a37.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8705],{8705:function(e,t,r){r.r(t),r.d(t,{createConnection:function(){return R}});var s=r(36663),o=(r(91957),r(66341)),n=r(70375),i=r(13802),c=r(78668),a=r(3466),u=(r(39994),r(4157),r(40266)),l=r(81977),h=r(95247),d=r(31355);let g=class extends d.Z.EventedAccessor{destroy(){this.emit("destroy")}get connectionError(){return this.errorString?new n.Z("stream-connection",this.errorString):null}onFeature(e){this.emit("data-received",e)}onMessage(e){this.emit("message-received",e)}};(0,s._)([(0,l.Cb)({readOnly:!0})],g.prototype,"connectionError",null),g=(0,s._)([(0,u.j)("esri.layers.support.StreamConnection")],g);const f=g;var _,y;(y=_||(_={}))[y.CONNECTING=0]="CONNECTING",y[y.OPEN=1]="OPEN",y[y.CLOSING=2]="CLOSING",y[y.CLOSED=3]="CLOSED";let p=class extends f{constructor(e){super({}),this._outstandingMessages=[],this.errorString=null;const{geometryType:t,spatialReference:r,sourceSpatialReference:s}=e;this._config=e,this._featureZScaler=(0,h.k)(t,s,r),this._open()}normalizeCtorArgs(){return{}}async _open(){await this._tryCreateWebSocket(),this.destroyed||await this._handshake()}destroy(){super.destroy(),null!=this._websocket&&(this._websocket.onopen=null,this._websocket.onclose=null,this._websocket.onerror=null,this._websocket.onmessage=null,this._websocket.close()),this._websocket=null}get connectionStatus(){if(null==this._websocket)return"disconnected";switch(this._websocket.readyState){case _.CONNECTING:case _.OPEN:return"connected";case _.CLOSING:case _.CLOSED:return"disconnected"}}sendMessageToSocket(e){null!=this._websocket?this._websocket.send(JSON.stringify(e)):this._outstandingMessages.push(e)}sendMessageToClient(e){this._onMessage(e)}updateCustomParameters(e){this._config.customParameters=e,null!=this._websocket&&this._websocket.close()}async _tryCreateWebSocket(e=this._config.source.path,t=1e3,r=0){try{if(this.destroyed)return;const t=(0,a.fl)(e,this._config.customParameters??{});this._websocket=await this._createWebSocket(t),this.notifyChange("connectionStatus")}catch(s){const o=t/1e3;return this._config.maxReconnectionAttempts&&r>=this._config.maxReconnectionAttempts?(i.Z.getLogger(this).error(new n.Z("websocket-connection","Exceeded maxReconnectionAttempts attempts. No further attempts will be made")),void this.destroy()):(i.Z.getLogger(this).error(new n.Z("websocket-connection",`Failed to connect. Attempting to reconnect in ${o}s`,s)),await(0,c.e4)(t),this._tryCreateWebSocket(e,Math.min(1.5*t,1e3*this._config.maxReconnectionInterval),r+1))}}_setWebSocketJSONParseHandler(e){e.onmessage=e=>{try{const t=JSON.parse(e.data);this._onMessage(t)}catch(e){return void i.Z.getLogger(this).error(new n.Z("websocket-connection","Failed to parse message, invalid JSON",{error:e}))}}}_createWebSocket(e){return new Promise(((t,r)=>{const s=new WebSocket(e);s.onopen=()=>{if(s.onopen=null,this.destroyed)return s.onclose=null,void s.close();s.onclose=e=>this._onClose(e),s.onerror=e=>this._onError(e),this._setWebSocketJSONParseHandler(s),t(s)},s.onclose=e=>{s.onopen=s.onclose=null,r(e)}}))}async _handshake(e=1e4){const t=this._websocket;if(null==t)return;const r=(0,c.hh)(),s=t.onmessage,{filter:o,outFields:a,spatialReference:u}=this._config;return r.timeout(e),t.onmessage=e=>{let c=null;try{c=JSON.parse(e.data)}catch(e){}c&&"object"==typeof c||(i.Z.getLogger(this).error(new n.Z("websocket-connection","Protocol violation. Handshake failed - malformed message",e.data)),r.reject(),this.destroy()),c.spatialReference?.wkid!==u?.wkid&&(i.Z.getLogger(this).error(new n.Z("websocket-connection",`Protocol violation. Handshake failed - expected wkid of ${u.wkid}`,e.data)),r.reject(),this.destroy()),"json"!==c.format&&(i.Z.getLogger(this).error(new n.Z("websocket-connection","Protocol violation. Handshake failed - format is not set",e.data)),r.reject(),this.destroy()),o&&c.filter!==o&&i.Z.getLogger(this).error(new n.Z("websocket-connection","Tried to set filter, but server doesn't support it")),a&&c.outFields!==a&&i.Z.getLogger(this).error(new n.Z("websocket-connection","Tried to set outFields, but server doesn't support it")),t.onmessage=s;for(const e of this._outstandingMessages)t.send(JSON.stringify(e));this._outstandingMessages=[],r.resolve()},t.send(JSON.stringify({filter:o,outFields:a,format:"json",spatialReference:{wkid:u.wkid}})),r.promise}_onMessage(e){if(this.onMessage(e),"type"in e)switch(e.type){case"features":case"featureResult":for(const t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}}_onError(e){const t="Encountered an error over WebSocket connection";this._set("errorString",t),i.Z.getLogger(this).error("websocket-connection",t)}_onClose(e){this._websocket=null,this.notifyChange("connectionStatus"),1e3!==e.code&&i.Z.getLogger(this).error("websocket-connection",`WebSocket closed unexpectedly with error code ${e.code}`),this.destroyed||this._open()}};(0,s._)([(0,l.Cb)()],p.prototype,"connectionStatus",null),(0,s._)([(0,l.Cb)()],p.prototype,"errorString",void 0),p=(0,s._)([(0,u.j)("esri.layers.graphics.sources.connections.WebSocketConnection")],p);var w=r(28500),m=r(14136),S=r(53736),b=r(14685);const k={maxQueryDepth:5,maxRecordCountFactor:3};let v=class extends p{constructor(e){super({...k,...e}),this._buddyServicesQuery=null,this._relatedFeatures=null}async _open(){const e=await this._fetchServiceDefinition(this._config.source);e.timeInfo.trackIdField||i.Z.getLogger(this).warn("GeoEvent service was configured without a TrackIdField. This may result in certain functionality being disabled. The purgeOptions.maxObservations property will have no effect.");const t=this._fetchWebSocketUrl(e.streamUrls,this._config.spatialReference);this._buddyServicesQuery||(this._buddyServicesQuery=this._queryBuddyServices()),await this._buddyServicesQuery,await this._tryCreateWebSocket(t);const{filter:r,outFields:s}=this._config;this.destroyed||this._setFilter(r,s)}_onMessage(e){if("attributes"in e){let t;try{t=this._enrich(e),null!=this._featureZScaler&&this._featureZScaler(t.geometry)}catch(e){return void i.Z.getLogger(this).error(new n.Z("geoevent-connection","Failed to parse message",e))}this.onFeature(t)}else this.onMessage(e)}async _fetchServiceDefinition(e){const t={f:"json",...this._config.customParameters},r=(0,o.Z)(e.path,{query:t,responseType:"json"}),s=(await r).data;return this._serviceDefinition=s,s}_fetchWebSocketUrl(e,t){const r=e[0],{urls:s,token:o}=r,n=this._inferWebSocketBaseUrl(s);return(0,a.fl)(`${n}/subscribe`,{outSR:""+t.wkid,token:o})}_inferWebSocketBaseUrl(e){if(1===e.length)return e[0];for(const t of e)if(t.includes("wss"))return t;return i.Z.getLogger(this).error(new n.Z("geoevent-connection","Unable to infer WebSocket url",e)),null}async _setFilter(e,t){const r=this._websocket;if(null==r||null==e&&null==t)return;const s=JSON.stringify({filter:this._serializeFilter(e,t)});let o=!1;const a=(0,c.hh)();return r.onmessage=e=>{const t=JSON.parse(e.data);t.filter&&(t.error&&(i.Z.getLogger(this).error(new n.Z("geoevent-connection","Failed to set service filter",t.error)),this._set("errorString",`Could not set service filter - ${t.error}`),a.reject(t.error)),this._setWebSocketJSONParseHandler(r),o=!0,a.resolve())},r.send(s),setTimeout((()=>{o||(this.destroyed||this._websocket!==r||i.Z.getLogger(this).error(new n.Z("geoevent-connection","Server timed out when setting filter")),a.reject())}),1e4),a.promise}_serializeFilter(e,t){const r={};if(null==e&&null==t)return r;if(e?.geometry)try{const t=(0,S.im)(e.geometry);if("extent"!==t.type)throw new n.Z(`Expected extent but found type ${t.type}`);r.geometry=JSON.stringify(t.shiftCentralMeridian())}catch(e){i.Z.getLogger(this).error(new n.Z("geoevent-connection","Encountered an error when setting connection geometryDefinition",e))}return e?.where&&"1 = 1"!==e.where&&"1=1"!==e.where&&(r.where=e.where),null!=t&&(r.outFields=t.join(",")),r}_enrich(e){if(!this._relatedFeatures)return e;const t=this._serviceDefinition.relatedFeatures.joinField,r=e.attributes[t],s=this._relatedFeatures.get(r);if(!s)return i.Z.getLogger(this).warn("geoevent-connection","Feature join failed. Is the join field configured correctly?",e),e;const{attributes:o,geometry:c}=s;for(const t in o)e.attributes[t]=o[t];return c&&(e.geometry=c),e.geometry||e.centroid||i.Z.getLogger(this).error(new n.Z("geoevent-connection","Found malformed feature - no geometry found",e)),e}async _queryBuddyServices(){try{const{relatedFeatures:e,keepLatestArchive:t}=this._serviceDefinition,r=this._queryRelatedFeatures(e),s=this._queryArchive(t);await r;const o=await s;if(!o)return;for(const e of o.features)this.onFeature(this._enrich(e))}catch(e){i.Z.getLogger(this).error(new n.Z("geoevent-connection","Encountered an error when querying buddy services",{error:e}))}}async _queryRelatedFeatures(e){if(!e)return;const t=await this._queryBuddy(e.featuresUrl);this._addRelatedFeatures(t)}async _queryArchive(e){if(e)return this._queryBuddy(e.featuresUrl)}async _queryBuddy(e){const t=new((await Promise.resolve().then(r.bind(r,12926))).default)({url:e}),{capabilities:s}=await t.load(),o=s.query.supportsMaxRecordCountFactor,n=s.query.supportsPagination,i=s.query.supportsCentroid,c=this._config.maxRecordCountFactor,a=t.capabilities.query.maxRecordCount,u=o?a*c:a,l=new m.Z;if(l.outFields=this._config.outFields??["*"],l.where=this._config.filter?.where??"1=1",l.returnGeometry=!0,l.returnExceededLimitFeatures=!0,l.outSpatialReference=b.Z.fromJSON(this._config.spatialReference),i&&(l.returnCentroid=!0),o&&(l.maxRecordCountFactor=c),n)return l.num=u,t.destroy(),this._queryPages(e,l);const h=await(0,w.JT)(e,l,this._config.sourceSpatialReference);return t.destroy(),h.data}async _queryPages(e,t,r=[],s=0){t.start=null!=t.num?s*t.num:null;const{data:o}=await(0,w.JT)(e,t,this._config.sourceSpatialReference);return o.exceededTransferLimit&&s<(this._config.maxQueryDepth??0)?(o.features.forEach((e=>r.push(e))),this._queryPages(e,t,r,s+1)):(r.forEach((e=>o.features.push(e))),o)}_addRelatedFeatures(e){const t=new Map,r=e.features,s=this._serviceDefinition.relatedFeatures.joinField;for(const e of r){const r=e.attributes[s];t.set(r,e)}this._relatedFeatures=t}};v=(0,s._)([(0,u.j)("esri.layers.graphics.sources.connections.GeoEventConnection")],v);const C=v;let Z=class extends f{constructor(e){super({}),this.connectionStatus="connected",this.errorString=null;const{geometryType:t,spatialReference:r,sourceSpatialReference:s}=e;this._featureZScaler=(0,h.k)(t,s,r)}normalizeCtorArgs(){return{}}updateCustomParameters(e){}sendMessageToSocket(e){}sendMessageToClient(e){if("type"in e)switch(e.type){case"features":case"featureResult":for(const t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}this.onMessage(e)}};function F(e,t){if(null==e&&null==t)return null;const r={};return null!=t&&(r.geometry=t),null!=e&&(r.where=e),r}function R(e,t,r,s,o,n,i,c,a){const u={source:e,sourceSpatialReference:t,spatialReference:r,geometryType:s,filter:F(o,n),maxReconnectionAttempts:i,maxReconnectionInterval:c,customParameters:a};return e?e.path.startsWith("wss://")||e.path.startsWith("ws://")?new p(u):new C(u):new Z(u)}(0,s._)([(0,l.Cb)()],Z.prototype,"connectionStatus",void 0),(0,s._)([(0,l.Cb)()],Z.prototype,"errorString",void 0),Z=(0,s._)([(0,u.j)("esri.layers.support.ClientSideConnection")],Z)}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8718.037cd46360db7181fc4f.js b/docs/sentinel1-explorer/8718.037cd46360db7181fc4f.js new file mode 100644 index 00000000..1291d3c0 --- /dev/null +++ b/docs/sentinel1-explorer/8718.037cd46360db7181fc4f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8718],{98718:function(e,_,o){o.r(_),o.d(_,{default:function(){return a}});const a={_decimalSeparator:",",_thousandSeparator:" ",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - yyyy-MM-dd",_date_hour:"HH:mm",_date_hour_full:"HH:mm - yyyy-MM-dd",_date_day:"MMM dd",_date_day_full:"yyyy-MM-dd",_date_week:"ww",_date_week_full:"yyyy-MM-dd",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"n. l.",_era_bc:"pr. n. l.",A:"dop.",P:"odp.",AM:"dop.",PM:"odp.","A.M.":"dop.","P.M.":"odp.",January:"januára",February:"februára",March:"marca",April:"apríla",May:"mája",June:"júna",July:"júla",August:"augusta",September:"septembra",October:"októbra",November:"novembra",December:"decembra",Jan:"jan",Feb:"feb",Mar:"mar",Apr:"apr","May(short)":"máj",Jun:"jún",Jul:"júl",Aug:"aug",Sep:"sep",Oct:"okt",Nov:"nov",Dec:"dec",Sunday:"nedela",Monday:"pondelok",Tuesday:"utorok",Wednesday:"streda",Thursday:"štvrtok",Friday:"piatok",Saturday:"sobota",Sun:"ne",Mon:"po",Tue:"ut",Wed:"st",Thu:"št",Fri:"pi",Sat:"so",_dateOrd:function(e){return"."},"Zoom Out":"Zväčšenie",Play:"Prehrať",Stop:"Ukončiť iteráciu (Stop)",Legend:"Legenda","Click, tap or press ENTER to toggle":"",Loading:"Načítanie",Home:"Domov",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Export",Image:"Obrázok",Data:"Data",Print:"Tlač","Click, tap or press ENTER to open":"","Click, tap or press ENTER to print.":"","Click, tap or press ENTER to export as %1.":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"Od %1 do %2","From %1":"Od %1","To %1":"Do %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8754.141e349f8c70fdd833e0.js b/docs/sentinel1-explorer/8754.141e349f8c70fdd833e0.js new file mode 100644 index 00000000..58ad9cd1 --- /dev/null +++ b/docs/sentinel1-explorer/8754.141e349f8c70fdd833e0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8754],{49999:function(e,t,r){r.d(t,{j:function(){return p}});var a=r(36663),s=r(74396),i=r(81977),n=(r(39994),r(13802),r(4157),r(40266));const o={visible:"visibleSublayers"};let p=class extends s.Z{constructor(e){super(e),this.scale=0}set layer(e){this._get("layer")!==e&&(this._set("layer",e),this.removeHandles("layer"),e&&this.addHandles([e.sublayers.on("change",(()=>this.notifyChange("visibleSublayers"))),e.on("wms-sublayer-update",(e=>this.notifyChange(o[e.propertyName])))],"layer"))}get layers(){return this.visibleSublayers.filter((({name:e})=>e)).map((({name:e})=>e)).join()}get version(){this.commitProperty("layers");const e=this.layer;return e&&e.commitProperty("imageTransparency"),(this._get("version")||0)+1}get visibleSublayers(){const{layer:e,scale:t}=this,r=e?.sublayers,a=[],s=e=>{const{minScale:r,maxScale:i,sublayers:n,visible:o}=e;o&&(0===t||(0===r||t<=r)&&(0===i||t>=i))&&(n?n.forEach(s):a.push(e))};return r?.forEach(s),a}toJSON(){const{layer:e,layers:t}=this,{imageFormat:r,imageTransparency:a,version:s}=e;return{format:r,request:"GetMap",service:"WMS",styles:"",transparent:a?"TRUE":"FALSE",version:s,layers:t}}};(0,a._)([(0,i.Cb)()],p.prototype,"layer",null),(0,a._)([(0,i.Cb)({readOnly:!0})],p.prototype,"layers",null),(0,a._)([(0,i.Cb)({type:Number})],p.prototype,"scale",void 0),(0,a._)([(0,i.Cb)({readOnly:!0})],p.prototype,"version",null),(0,a._)([(0,i.Cb)({readOnly:!0})],p.prototype,"visibleSublayers",null),p=(0,a._)([(0,n.j)("esri.layers.support.ExportWMSImageParameters")],p)},78754:function(e,t,r){r.r(t),r.d(t,{default:function(){return w}});var a=r(36663),s=r(13802),i=r(61681),n=r(78668),o=r(76868),p=r(81977),h=(r(39994),r(4157),r(40266)),l=r(91772),u=r(12688),y=r(66878),c=r(23134),m=r(26216),d=r(55068),g=r(70375),b=r(51599),x=r(49999);const f=e=>{let t=class extends e{initialize(){this.exportImageParameters=new x.j({layer:this.layer})}destroy(){this.exportImageParameters=(0,i.SC)(this.exportImageParameters)}get exportImageVersion(){return this.exportImageParameters?.commitProperty("version"),this.commitProperty("timeExtent"),(this._get("exportImageVersion")||0)+1}async fetchPopupFeaturesAtLocation(e,t){const{layer:r}=this;if(!e)throw new g.Z("wmslayerview:fetchPopupFeatures","Nothing to fetch without area",{layer:r});const{popupEnabled:a}=r;if(!a)throw new g.Z("wmslayerview:fetchPopupFeatures","popupEnabled should be true",{popupEnabled:a});const s=this.createFetchPopupFeaturesQuery(e);if(!s)return[];const{extent:i,width:o,height:p,x:h,y:l}=s;if(!(i&&o&&p))throw new g.Z("wmslayerview:fetchPopupFeatures","WMSLayer does not support fetching features.",{extent:i,width:o,height:p});const u=await r.fetchFeatureInfo(i,o,p,h,l);return(0,n.k_)(t),u}};return(0,a._)([(0,p.Cb)()],t.prototype,"exportImageParameters",void 0),(0,a._)([(0,p.Cb)({readOnly:!0})],t.prototype,"exportImageVersion",null),(0,a._)([(0,p.Cb)()],t.prototype,"layer",void 0),(0,a._)([(0,p.Cb)(b.qG)],t.prototype,"timeExtent",void 0),t=(0,a._)([(0,h.j)("esri.layers.mixins.WMSLayerView")],t),t};let v=class extends(f((0,d.Z)((0,y.y)(m.Z)))){constructor(){super(...arguments),this.bitmapContainer=new u.c}supportsSpatialReference(e){return this.layer.serviceSupportsSpatialReference(e)}update(e){this.strategy.update(e).catch((e=>{(0,n.D_)(e)||s.Z.getLogger(this).error(e)}))}attach(){const{layer:e}=this,{imageMaxHeight:t,imageMaxWidth:r}=e;this.bitmapContainer=new u.c,this.container.addChild(this.bitmapContainer),this.strategy=new c.Z({container:this.bitmapContainer,fetchSource:this.fetchImage.bind(this),requestUpdate:this.requestUpdate.bind(this),imageMaxHeight:t,imageMaxWidth:r,imageRotationSupported:!1,imageNormalizationSupported:!1,hidpi:!1}),this.addAttachHandles((0,o.YP)((()=>this.exportImageVersion),(()=>this.requestUpdate())))}detach(){this.strategy=(0,i.SC)(this.strategy),this.container.removeAllChildren()}moveStart(){}viewChange(){}moveEnd(){this.requestUpdate()}createFetchPopupFeaturesQuery(e){const{view:t,bitmapContainer:r}=this,{x:a,y:s}=e,{spatialReference:i}=t;let n,o=0,p=0;if(r.children.some((e=>{const{width:t,height:r,resolution:h,x:u,y:y}=e,c=u+h*t,m=y-h*r;return a>=u&&a<=c&&s<=y&&s>=m&&(n=new l.Z({xmin:u,ymin:m,xmax:c,ymax:y,spatialReference:i}),o=t,p=r,!0)})),!n)return null;const h=n.width/o,u=Math.round((a-n.xmin)/h),y=Math.round((n.ymax-s)/h);return{extent:n,width:o,height:p,x:u,y:y}}async doRefresh(){this.requestUpdate()}isUpdating(){return this.strategy.updating||this.updateRequested}fetchImage(e,t,r,a){return this.layer.fetchImageBitmap(e,t,r,{timeExtent:this.timeExtent,...a})}};(0,a._)([(0,p.Cb)()],v.prototype,"strategy",void 0),(0,a._)([(0,p.Cb)()],v.prototype,"updating",void 0),v=(0,a._)([(0,h.j)("esri.views.2d.layers.WMSLayerView2D")],v);const w=v}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/880.55e604c3fe36955cc0f9.js b/docs/sentinel1-explorer/880.55e604c3fe36955cc0f9.js new file mode 100644 index 00000000..4491f392 --- /dev/null +++ b/docs/sentinel1-explorer/880.55e604c3fe36955cc0f9.js @@ -0,0 +1,2 @@ +/*! For license information please see 880.55e604c3fe36955cc0f9.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[880],{44925:function(e,t,o){o.d(t,{A:function(){return v},S:function(){return p},d:function(){return x}});var n=o(77210),c=o(14974),s=o(16265),i=o(19417),a=o(53801),l=o(86663),r=o(79145),u=o(19516),d=o(44586),h=o(92708),g=o(18888);const p={menuActions:"menu-actions",menuTooltip:"menu-tooltip"},m="ellipsis",f="container",v=(0,n.GH)(class extends n.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.setMenuOpen=e=>{this.menuOpen=!!e.target.open},this.handleMenuActionsSlotChange=e=>{this.hasMenuActions=(0,r.d)(e)},this.expanded=!1,this.label=void 0,this.layout="vertical",this.columns=void 0,this.menuOpen=!1,this.overlayPositioning="absolute",this.scale=void 0,this.messages=void 0,this.messageOverrides=void 0,this.effectiveLocale="",this.defaultMessages=void 0,this.hasMenuActions=!1}expandedHandler(){this.menuOpen=!1}onMessagesChange(){}effectiveLocaleChange(){(0,a.u)(this,this.effectiveLocale)}async setFocus(){await(0,s.c)(this),this.el.focus()}connectedCallback(){(0,i.c)(this),(0,a.c)(this),(0,c.c)(this)}disconnectedCallback(){(0,i.d)(this),(0,a.d)(this),(0,c.d)(this)}async componentWillLoad(){(0,s.s)(this),await(0,a.s)(this)}componentDidLoad(){(0,s.a)(this)}renderMenu(){const{expanded:e,menuOpen:t,scale:o,layout:c,messages:s,overlayPositioning:i,hasMenuActions:a}=this;return(0,n.h)("calcite-action-menu",{expanded:e,flipPlacements:["left","right"],hidden:!a,label:s.more,onCalciteActionMenuOpen:this.setMenuOpen,open:t,overlayPositioning:i,placement:"horizontal"===c?"bottom-start":"leading-start",scale:o},(0,n.h)("calcite-action",{icon:m,scale:o,slot:l.S.trigger,text:s.more,textEnabled:e}),(0,n.h)("slot",{name:p.menuActions,onSlotchange:this.handleMenuActionsSlotChange}),(0,n.h)("slot",{name:p.menuTooltip,slot:l.S.tooltip}))}render(){return(0,n.h)("div",{"aria-label":this.label,class:f,role:"group"},(0,n.h)("slot",null),this.renderMenu())}static get delegatesFocus(){return!0}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{expanded:["expandedHandler"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return':host{box-sizing:border-box;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2);font-size:var(--calcite-font-size--1)}:host *{box-sizing:border-box}:host{display:flex;flex-direction:column;padding:0px;--calcite-action-group-columns:3;--calcite-action-group-gap:1px;--calcite-action-group-padding:1px}.container{display:flex;flex-grow:1;flex-direction:column}:host([columns="1"]){--calcite-action-group-columns:1}:host([columns="2"]){--calcite-action-group-columns:2}:host([columns="3"]){--calcite-action-group-columns:3}:host([columns="4"]){--calcite-action-group-columns:4}:host([columns="5"]){--calcite-action-group-columns:5}:host([columns="6"]){--calcite-action-group-columns:6}:host(:first-child){padding-block-start:0px}:host([layout=horizontal]),:host([layout=horizontal]) .container{flex-direction:row}:host([layout=grid]){display:grid}:host([layout=grid]) .container{display:grid;place-content:stretch;background-color:var(--calcite-color-background);gap:var(--calcite-action-group-gap);padding:var(--calcite-action-group-gap);grid-template-columns:repeat(var(--calcite-action-group-columns), auto)}:host([hidden]){display:none}[hidden]{display:none}'}},[17,"calcite-action-group",{expanded:[516],label:[1],layout:[513],columns:[514],menuOpen:[1540,"menu-open"],overlayPositioning:[513,"overlay-positioning"],scale:[513],messages:[1040],messageOverrides:[1040],effectiveLocale:[32],defaultMessages:[32],hasMenuActions:[32],setFocus:[64]},void 0,{expanded:["expandedHandler"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}]);function x(){if("undefined"==typeof customElements)return;["calcite-action-group","calcite-action","calcite-action-menu","calcite-icon","calcite-loader","calcite-popover"].forEach((e=>{switch(e){case"calcite-action-group":customElements.get(e)||customElements.define(e,v);break;case"calcite-action":customElements.get(e)||(0,u.d)();break;case"calcite-action-menu":customElements.get(e)||(0,l.d)();break;case"calcite-icon":customElements.get(e)||(0,d.d)();break;case"calcite-loader":customElements.get(e)||(0,h.d)();break;case"calcite-popover":customElements.get(e)||(0,g.d)()}}))}x()},30880:function(e,t,o){o.r(t),o.d(t,{CalciteActionGroup:function(){return c},defineCustomElement:function(){return s}});var n=o(44925);const c=n.A,s=n.d},14974:function(e,t,o){o.d(t,{c:function(){return l},d:function(){return r}});var n=o(77210),c=o(85545);const s=new Set;let i;const a={childList:!0};function l(e){i||(i=(0,c.c)("mutation",u)),i.observe(e.el,a)}function r(e){s.delete(e.el),u(i.takeRecords()),i.disconnect();for(const[e]of s.entries())i.observe(e,a)}function u(e){e.forEach((({target:e})=>{(0,n.xE)(e)}))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/880.55e604c3fe36955cc0f9.js.LICENSE.txt b/docs/sentinel1-explorer/880.55e604c3fe36955cc0f9.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/880.55e604c3fe36955cc0f9.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/8808.e3b2e7af8faa4c9a9d7f.js b/docs/sentinel1-explorer/8808.e3b2e7af8faa4c9a9d7f.js new file mode 100644 index 00000000..62c5dc83 --- /dev/null +++ b/docs/sentinel1-explorer/8808.e3b2e7af8faa4c9a9d7f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8808],{38808:function(e,l,n){n.d(l,{getRampStops:function(){return g}});var t=n(30936),i=n(4905),o=n(21758),s=n(97500),r=n(59672),a=n(17075),u=(n(54956),n(3368)),c=n(1759),f=n(15498);const m=30,y=12,p=[255,255,255],h=[200,200,200],b=[128,128,128],d=20,w=5;async function g(e,l,n,t,i,s,u){const c=l.legendOptions,f=c?.customValues,m=u||await z(e,n),y=l.stops,p=!!m,h=!!f,b=null!=l.minSize&&null!=l.maxSize,d=y&&y.length>1,w=!!l.target;if(!p||!h&&!(b||d&&!w))return;const g=(0,r.YW)(m);let k=!1,x=null,C=null;x=g&&!d?(0,o.NM)([l.minDataValue,l.maxDataValue]):f??await M(l,m,t,i?.type);const I=e?.authoringInfo,N="univariate-color-size"===I?.type,P=N&&"above-and-below"===I?.univariateTheme;if(!x&&d&&(x=y.map((e=>e.value)),k=y.some((e=>!!e.label)),"flow"===e.type&&(x=(0,o.NM)(x)),k&&(C=y.map((e=>e.label)))),g&&null!=x&&x?.length>2&&!P&&(x=[x[0],x[x.length-1]]),!x)return null;N&&5!==x?.length&&(x=V({minSize:x[0],maxSize:x[x.length-1]}));const Z=g?v(e,x):null,_=(0,r.Y6)(m),B=k?null:function(e,l){const n=e.length-1;return e.map(((e,t)=>(0,a.MN)(e,t,n,l)))}(x,s);return(await Promise.all(x.map((async(n,o)=>{const s=g?Z[o]:await D(l,m,n,t,i?.type);return{value:n,symbol:L(P&&"class-breaks"===e.type?S(e,o):m,s),label:k?C[o]:B[o],size:s,outlineSize:_}})))).reverse()}function v(e,l){const n=e?.authoringInfo,t="univariate-color-size"===n?.type;let i=[y,m];if(t){const e=l[0],n=l[l.length-1],t=y,o=m;i=l.map((l=>t+(l-e)/(n-e)*(o-t)))}return t&&"below"===n?.univariateTheme&&i.reverse(),i}function S(e,l){const n=e.classBreakInfos,t=n.length,i=t<2||!(l>=2)?n[0].symbol.clone():n[t-1].symbol.clone();return e.visualVariables.some((e=>"color"===e.type))&&(i.type.includes("3d")?k(i):x(i)),i}async function z(e,l){if("flow"===e.type)return(0,a.y$)(e,l);if("pie-chart"===e.type)return new c.Z({color:null,outline:e.outline?.width?e.outline:new f.Z});let n=null,t=null;if("simple"===e.type)n=e.symbol;else if("class-breaks"===e.type){const l=e.classBreakInfos;n=l&&l[0]&&l[0].symbol,t=l.length>1}else if("unique-value"===e.type){const l=e.uniqueValueInfos;n=l?.[0]?.symbol,t=null!=l&&l.length>1}return!n||function(e){if(e)return(0,i.dU)(e)?!!e.symbolLayers&&e.symbolLayers.some((e=>e&&"fill"===e.type)):e.type.includes("fill");return!1}(n)?null:(n=n.clone(),(l||t)&&(n.type.includes("3d")?k(n):x(n)),n)}function k(e){"line-3d"===e.type?e.symbolLayers.forEach((e=>{e.material={color:b}})):e.symbolLayers.forEach((e=>{"icon"!==e.type||e.resource?.href?e.material={color:h}:(e.material={color:p},e.outline={color:b,size:1.5})}))}function x(e){const l=(0,u.$o)();if("cim"===e.type)(0,s.ZB)(e,new t.Z(h));else if(e.type.includes("line"))e.color=b;else if(e.color=l?b:p,"simple-marker"===e.type)if(e.outline){const l=e.outline?.color?.toHex();"#ffffff"===l&&(e.outline.color=b)}else e.outline={color:b,width:1.5}}async function M(e,l,t,i){const s=(await Promise.resolve().then(n.bind(n,36496))).getSizeRangeAtScale(e,t,i),r=s&&V(s);if(!s||!r)return;let a=r.map((l=>function(e,l,n){const t=n.minSize,i=n.maxSize,o=l.minDataValue,s=l.maxDataValue;let r;r=e<=t?o:e>=i?s:(e-t)/(i-t)*(s-o)+o;return r}(l,e,s)));a=(0,o.NM)(a);for(let n=1;n0&&n<1&&(y=10**c,m=(0,o.D2)(n*=y).integer);for(let t=m-1;t>=0;t--){const u=10**t;let c=Math.floor(n/u)*u,m=Math.ceil(n/u)*u;null!=y&&(c/=y,m/=y);let h=(c+m)/2;[,h]=(0,o.NM)([c,h,m],{indexes:[1]});const b=await D(e,l,c,i,s),d=await D(e,l,m,i,s),w=await D(e,l,h,i,s),g=(0,o.f1)(r,b,a,null),v=(0,o.f1)(r,d,a,null),S=(0,o.f1)(r,w,a,null);let z=g.previous<=f,k=v.previous<=f;if(z&&k&&(g.previous<=v.previous?(z=!0,k=!1):(k=!0,z=!1)),z?p=[c,b]:k?p=[m,d]:S.previous<=f&&(p=[h,w]),p)break}return p}async function D(e,l,t,i,o){const{getSize:s}=await Promise.resolve().then(n.bind(n,36496));return s(e,t,{scale:i,view:o,shape:"simple-marker"===l.type?l.style:null})}function L(e,l){const n=e.clone();if((0,i.dU)(n))(0,r.YW)(n)||n.symbolLayers.forEach((e=>{"fill"!==e.type&&(e.size=l)}));else if(function(e){return"esri.symbols.SimpleMarkerSymbol"===e.declaredClass}(n))n.size=l;else if(function(e){return"esri.symbols.PictureMarkerSymbol"===e.declaredClass}(n)){const e=n.width,t=n.height;n.height=l,n.width=l*(e/t)}else!function(e){return"esri.symbols.SimpleLineSymbol"===e.declaredClass}(n)?function(e){return"esri.symbols.TextSymbol"===e.declaredClass}(n)&&n.font&&(n.font.size=l):n.width=l;return n}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8858.a8aaa12af2b97e623c04.js b/docs/sentinel1-explorer/8858.a8aaa12af2b97e623c04.js new file mode 100644 index 00000000..f6eaf7a3 --- /dev/null +++ b/docs/sentinel1-explorer/8858.a8aaa12af2b97e623c04.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8858],{12916:function(e,t,i){i.d(t,{q:function(){return l}});var r=i(7753),s=i(23148),a=i(13802),o=i(78668),n=i(62517);class l{constructor(e,t,i,r,s={}){this._mainMethod=t,this._transferLists=i,this._listeners=[],this._promise=(0,n.bA)(e,{...s,schedule:r}).then((e=>{if(void 0===this._thread){this._thread=e,this._promise=null,s.hasInitialize&&this.broadcast({},"initialize");for(const e of this._listeners)this._connectListener(e)}else e.close()})),this._promise.catch((t=>a.Z.getLogger("esri.core.workers.WorkerHandle").error(`Failed to initialize ${e} worker: ${t}`)))}on(e,t){const i={removed:!1,eventName:e,callback:t,threadHandle:null};return this._listeners.push(i),this._connectListener(i),(0,s.kB)((()=>{i.removed=!0,(0,r.Od)(this._listeners,i),this._thread&&null!=i.threadHandle&&i.threadHandle.remove()}))}destroy(){this._thread&&(this._thread.close(),this._thread=null),this._promise=null,this._listeners.length=0,this._transferLists={}}invoke(e,t){return this.invokeMethod(this._mainMethod,e,t)}invokeMethod(e,t,i){if(this._thread){const r=this._transferLists[e],s=r?r(t):[];return this._thread.invoke(e,t,{transferList:s,signal:i})}return this._promise?this._promise.then((()=>((0,o.k_)(i),this.invokeMethod(e,t,i)))):Promise.reject(null)}broadcast(e,t){return this._thread?Promise.all(this._thread.broadcast(t,e)).then((()=>{})):this._promise?this._promise.then((()=>this.broadcast(e,t))):Promise.reject()}get promise(){return this._promise}_connectListener(e){this._thread&&this._thread.on(e.eventName,e.callback).then((t=>{e.removed||(e.threadHandle=t)}))}}},68858:function(e,t,i){i.r(t),i.d(t,{default:function(){return S}});var r=i(36663),s=i(66341),a=i(70375),o=i(61681),n=i(15842),l=i(78668),h=i(3466),d=i(81977),u=(i(39994),i(13802),i(4157),i(34248)),p=i(40266),c=i(64307),_=i(38481),y=i(89993),v=i(87232),m=i(43330),f=i(18241),g=i(51599);class b{constructor(e,t,i,r){this._hasNoDataValues=null,this._minValue=null,this._maxValue=null,"pixelData"in e?(this.values=e.pixelData,this.width=e.width,this.height=e.height,this.noDataValue=e.noDataValue):(this.values=e,this.width=t,this.height=i,this.noDataValue=r)}get hasNoDataValues(){if(null==this._hasNoDataValues){const e=this.noDataValue;this._hasNoDataValues=this.values.includes(e)}return this._hasNoDataValues}get minValue(){return this._ensureBounds(),this._minValue}get maxValue(){return this._ensureBounds(),this._maxValue}_ensureBounds(){if(null!=this._minValue)return;const{noDataValue:e,values:t}=this;let i=1/0,r=-1/0,s=!0;for(const a of t)a===e?this._hasNoDataValues=!0:(i=ar?a:r,s=!1);s?(this._minValue=0,this._maxValue=0):(this._minValue=i,this._maxValue=r>-3e38?r:0)}}var w=i(12916);class V extends w.q{constructor(e=null){super("LercWorker","_decode",{_decode:e=>[e.buffer]},e,{strategy:"dedicated"}),this.schedule=e,this.ref=0}decode(e,t,i){return e&&0!==e.byteLength?this.invoke({buffer:e,options:t},i):Promise.resolve(null)}release(){--this.ref<=0&&(T.forEach(((e,t)=>{e===this&&T.delete(t)})),this.destroy())}}const T=new Map;let k=class extends((0,y.Z)((0,v.Y)((0,m.q)((0,f.I)((0,n.R)(_.Z)))))){constructor(...e){super(...e),this.capabilities={operations:{supportsTileMap:!1}},this.copyright=null,this.heightModelInfo=null,this.path=null,this.minScale=void 0,this.maxScale=void 0,this.opacity=1,this.operationalLayerType="ArcGISTiledElevationServiceLayer",this.sourceJSON=null,this.type="elevation",this.url=null,this.version=null,this._lercDecoder=function(e=null){let t=T.get(e);return t||(null!=e?(t=new V((t=>e.immediate.schedule(t))),T.set(e,t)):(t=new V,T.set(null,t))),++t.ref,t}()}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}destroy(){this._lercDecoder=(0,o.RY)(this._lercDecoder)}readCapabilities(e,t){const i=t.capabilities&&t.capabilities.split(",").map((e=>e.toLowerCase().trim()));return i?{operations:{supportsTileMap:i.includes("tilemap")}}:{operations:{supportsTileMap:!1}}}readVersion(e,t){let i=t.currentVersion;return i||(i=9.3),i}load(e){const t=null!=e?e.signal:null;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Image Service"],supportsData:!1,validateItem:e=>{if(e.typeKeywords)for(let t=0;tthis._fetchImageService(t)))),Promise.resolve(this)}fetchTile(e,t,i,r){const a=null!=(r=r||{signal:null}).signal?r.signal:r.signal=(new AbortController).signal,o={responseType:"array-buffer",signal:a},n={noDataValue:r.noDataValue,returnFileInfo:!0};return this.load().then((()=>this._fetchTileAvailability(e,t,i,r))).then((()=>(0,s.Z)(this.getTileUrl(e,t,i),o))).then((e=>this._lercDecoder.decode(e.data,n,a))).then((e=>new b(e)))}getTileUrl(e,t,i){const r=!this.capabilities.operations.supportsTileMap&&this.supportsBlankTile,s=(0,h.B7)({...this.parsedUrl.query,blankTile:!r&&null});return`${this.parsedUrl.path}/tile/${e}/${t}/${i}${s?"?"+s:""}`}async queryElevation(e,t){const{ElevationQuery:r}=await i.e(2420).then(i.bind(i,22420));return(0,l.k_)(t),(new r).query(this,e,t)}async createElevationSampler(e,t){const{ElevationQuery:r}=await i.e(2420).then(i.bind(i,22420));return(0,l.k_)(t),(new r).createSampler(this,e,t)}_fetchTileAvailability(e,t,i,r){return this.tilemapCache?this.tilemapCache.fetchAvailability(e,t,i,r):Promise.resolve("unknown")}async _fetchImageService(e){if(this.sourceJSON)return this.sourceJSON;const t={query:{f:"json",...this.parsedUrl.query},responseType:"json",signal:e},i=await(0,s.Z)(this.parsedUrl.path,t);i.ssl&&(this.url=this.url?.replace(/^http:/i,"https:")),this.sourceJSON=i.data,this.read(i.data,{origin:"service",url:this.parsedUrl})}get hasOverriddenFetchTile(){return!this.fetchTile[C]}};(0,r._)([(0,d.Cb)({readOnly:!0})],k.prototype,"capabilities",void 0),(0,r._)([(0,u.r)("service","capabilities",["capabilities"])],k.prototype,"readCapabilities",null),(0,r._)([(0,d.Cb)({json:{read:{source:"copyrightText"}}})],k.prototype,"copyright",void 0),(0,r._)([(0,d.Cb)({readOnly:!0,type:c.Z})],k.prototype,"heightModelInfo",void 0),(0,r._)([(0,d.Cb)({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],k.prototype,"path",void 0),(0,r._)([(0,d.Cb)({type:["show","hide"]})],k.prototype,"listMode",void 0),(0,r._)([(0,d.Cb)({json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}},readOnly:!0})],k.prototype,"minScale",void 0),(0,r._)([(0,d.Cb)({json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}},readOnly:!0})],k.prototype,"maxScale",void 0),(0,r._)([(0,d.Cb)({json:{read:!1,write:!1,origins:{"web-document":{read:!1,write:!1}}}})],k.prototype,"opacity",void 0),(0,r._)([(0,d.Cb)({type:["ArcGISTiledElevationServiceLayer"]})],k.prototype,"operationalLayerType",void 0),(0,r._)([(0,d.Cb)()],k.prototype,"sourceJSON",void 0),(0,r._)([(0,d.Cb)({json:{read:!1},value:"elevation",readOnly:!0})],k.prototype,"type",void 0),(0,r._)([(0,d.Cb)(g.HQ)],k.prototype,"url",void 0),(0,r._)([(0,d.Cb)()],k.prototype,"version",void 0),(0,r._)([(0,u.r)("version",["currentVersion"])],k.prototype,"readVersion",null),k=(0,r._)([(0,p.j)("esri.layers.ElevationLayer")],k);const C=Symbol("default-fetch-tile");k.prototype.fetchTile[C]=!0;const S=k}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/890.3390fa60d23cb041ad42.js b/docs/sentinel1-explorer/890.3390fa60d23cb041ad42.js new file mode 100644 index 00000000..31c0b448 --- /dev/null +++ b/docs/sentinel1-explorer/890.3390fa60d23cb041ad42.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[890],{86602:function(e,t,i){i.d(t,{JZ:function(){return d},RL:function(){return c},eY:function(){return g}});var s=i(78668),r=i(46332),n=i(38642),a=i(45867),h=i(51118),l=i(7349),o=i(91907),u=i(71449),p=i(80479);function d(e){return e&&"render"in e}function c(e){const t=document.createElement("canvas");return t.width=e.width,t.height=e.height,e.render(t.getContext("2d")),t}class g extends h.s{constructor(e=null,t=!1){super(),this.blendFunction="standard",this._sourceWidth=0,this._sourceHeight=0,this._textureInvalidated=!1,this._texture=null,this.stencilRef=0,this.coordScale=[1,1],this._height=void 0,this.pixelRatio=1,this.resolution=0,this.rotation=0,this._source=null,this._width=void 0,this.x=0,this.y=0,this.immutable=t,this.source=e,this.requestRender=this.requestRender.bind(this)}destroy(){this._texture&&(this._texture.dispose(),this._texture=null),null!=this._uploadStatus&&(this._uploadStatus.controller.abort(),this._uploadStatus=null)}get isSourceScaled(){return this.width!==this._sourceWidth||this.height!==this._sourceHeight}get height(){return void 0!==this._height?this._height:this._sourceHeight}set height(e){this._height=e}get source(){return this._source}set source(e){null==e&&null==this._source||(this._source=e,this.invalidateTexture(),this.requestRender())}get width(){return void 0!==this._width?this._width:this._sourceWidth}set width(e){this._width=e}beforeRender(e){super.beforeRender(e),this.updateTexture(e)}async setSourceAsync(e,t){null!=this._uploadStatus&&this._uploadStatus.controller.abort();const i=new AbortController,r=(0,s.hh)();return(0,s.$F)(t,(()=>i.abort())),(0,s.$F)(i,(e=>r.reject(e))),this._uploadStatus={controller:i,resolver:r},this.source=e,r.promise}invalidateTexture(){this._textureInvalidated||(this._textureInvalidated=!0,this._source instanceof HTMLImageElement?(this._sourceHeight=this._source.naturalHeight,this._sourceWidth=this._source.naturalWidth):this._source&&(this._sourceHeight=this._source.height,this._sourceWidth=this._source.width))}updateTransitionProperties(e,t){e>=64&&(this.fadeTransitionEnabled=!1,this.inFadeTransition=!1),super.updateTransitionProperties(e,t)}setTransform(e){const t=(0,r.yR)(this.transforms.displayViewScreenMat3),[i,s]=e.toScreenNoRotation([0,0],[this.x,this.y]),n=this.resolution/this.pixelRatio/e.resolution,h=n*this.width,l=n*this.height,o=Math.PI*this.rotation/180;(0,r.Iu)(t,t,(0,a.al)(i,s)),(0,r.Iu)(t,t,(0,a.al)(h/2,l/2)),(0,r.U1)(t,t,-o),(0,r.Iu)(t,t,(0,a.al)(-h/2,-l/2)),(0,r.ex)(t,t,(0,a.al)(h,l)),(0,r.Jp)(this.transforms.displayViewScreenMat3,e.displayViewMat3,t)}setSamplingProfile(e){this._texture&&(e.mips&&!this._texture.descriptor.hasMipmap&&this._texture.generateMipmap(),this._texture.setSamplingMode(e.samplingMode))}bind(e,t){this._texture&&e.bindTexture(this._texture,t)}async updateTexture({context:e,painter:t}){if(!this._textureInvalidated)return;if(this._textureInvalidated=!1,this._texture||(this._texture=this._createTexture(e)),!this.source)return void this._texture.setData(null);this._texture.resize(this._sourceWidth,this._sourceHeight);const i=function(e){return d(e)?e instanceof l.Z?e.getRenderedRasterPixels()?.renderedRasterPixels:c(e):e}(this.source);try{if(null!=this._uploadStatus){const{controller:e,resolver:s}=this._uploadStatus,r={signal:e.signal},{width:n,height:a}=this,h=this._texture,l=t.textureUploadManager;await l.enqueueTextureUpdate({data:i,texture:h,width:n,height:a},r),s.resolve(),this._uploadStatus=null}else this._texture.setData(i);this.ready()}catch(e){(0,s.H9)(e)}}onDetach(){this.destroy()}_createTransforms(){return{displayViewScreenMat3:(0,n.Ue)()}}_createTexture(e){const t=this.immutable,i=new p.X;return i.internalFormat=t?o.lP.RGBA8:o.VI.RGBA,i.wrapMode=o.e8.CLAMP_TO_EDGE,i.isImmutable=t,i.width=this._sourceWidth,i.height=this._sourceHeight,new u.x(e,i)}}},7349:function(e,t,i){i.d(t,{Z:function(){return s}});class s{constructor(e,t,i){this.pixelBlock=e,this.extent=t,this.originalPixelBlock=i}get width(){return null!=this.pixelBlock?this.pixelBlock.width:0}get height(){return null!=this.pixelBlock?this.pixelBlock.height:0}render(e){const t=this.pixelBlock;if(null==t)return;const i=this.filter({extent:this.extent,pixelBlock:this.originalPixelBlock??t});if(null==i.pixelBlock)return;i.pixelBlock.maskIsAlpha&&(i.pixelBlock.premultiplyAlpha=!0);const s=i.pixelBlock.getAsRGBA(),r=e.createImageData(i.pixelBlock.width,i.pixelBlock.height);r.data.set(s),e.putImageData(r,0,0)}getRenderedRasterPixels(){const e=this.filter({extent:this.extent,pixelBlock:this.pixelBlock});return null==e.pixelBlock?null:(e.pixelBlock.maskIsAlpha&&(e.pixelBlock.premultiplyAlpha=!0),{width:e.pixelBlock.width,height:e.pixelBlock.height,renderedRasterPixels:new Uint8Array(e.pixelBlock.getAsRGBA().buffer)})}}},38553:function(e,t,i){i.d(t,{Y:function(){return g}});var s=i(36663),r=(i(13802),i(39994),i(4157),i(70375),i(40266)),n=i(24568),a=i(38642),h=i(86602),l=i(27954);class o extends l.I{constructor(e,t,i,s,r,n,a=null){super(e,t,i,s,r,n),this.bitmap=new h.eY(a),this.bitmap.coordScale=[r,n],this.bitmap.once("isReady",(()=>this.ready()))}destroy(){super.destroy(),this.bitmap.destroy()}beforeRender(e){this.bitmap.beforeRender(e),super.beforeRender(e)}afterRender(e){this.bitmap.afterRender(e),super.afterRender(e)}set stencilRef(e){this.bitmap.stencilRef=e}get stencilRef(){return this.bitmap.stencilRef}_createTransforms(){return{displayViewScreenMat3:(0,a.Ue)(),tileMat3:(0,a.Ue)()}}setTransform(e){super.setTransform(e),this.bitmap.transforms.displayViewScreenMat3=this.transforms.displayViewScreenMat3}onAttach(){this.bitmap.stage=this.stage}onDetach(){this.bitmap&&(this.bitmap.stage=null)}}var u=i(98831),p=i(38716),d=i(70179);class c extends d.Z{get requiresDedicatedFBO(){return this.children.some((e=>"additive"===e.bitmap.blendFunction))}createTile(e){const t=this._tileInfoView.getTileBounds((0,n.Ue)(),e),i=this._tileInfoView.getTileResolution(e.level),[s,r]=this._tileInfoView.tileInfo.size;return new o(e,i,t[0],t[3],s,r)}prepareRenderPasses(e){const t=e.registerRenderPass({name:"bitmap (tile)",brushes:[u.U.bitmap],target:()=>this.children.map((e=>e.bitmap)),drawPhase:p.jx.MAP});return[...super.prepareRenderPasses(e),t]}doRender(e){this.visible&&e.drawPhase===p.jx.MAP&&super.doRender(e)}}const g=e=>{let t=class extends e{attach(){this.view.timeline.record(`${this.layer.title} (BitmapTileLayer) Attach`),this._bitmapView=new c(this._tileInfoView),this.container.addChild(this._bitmapView)}detach(){this.container.removeChild(this._bitmapView),this._bitmapView?.removeAllChildren(),this._bitmapView=null}};return t=(0,s._)([(0,r.j)("esri.views.2d.layers.BitmapTileLayerView2D")],t),t}},66878:function(e,t,i){i.d(t,{y:function(){return w}});var s=i(36663),r=i(6865),n=i(58811),a=i(70375),h=i(76868),l=i(81977),o=(i(39994),i(13802),i(4157),i(40266)),u=i(68577),p=i(10530),d=i(98114),c=i(55755),g=i(88723),y=i(96294);let f=class extends y.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,s._)([(0,l.Cb)({type:[[[Number]]],json:{write:!0}})],f.prototype,"path",void 0),f=(0,s._)([(0,o.j)("esri.views.layers.support.Path")],f);const _=f,m=r.Z.ofType({key:"type",base:null,typeMap:{rect:c.Z,path:_,geometry:g.Z}}),w=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new m,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new a.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new p.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,h.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),h.tX),(0,h.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),h.tX),(0,h.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),h.tX),(0,h.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),h.tX),(0,h.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),h.tX),(0,h.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),h.tX),(0,h.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),h.tX),(0,h.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),h.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:i,maxScale:s}=t;return(0,u.o2)(e,i,s)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,i=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),i&&(e.outsideScaleRange=i),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,s._)([(0,l.Cb)()],t.prototype,"attached",void 0),(0,s._)([(0,l.Cb)({type:m,set(e){const t=(0,n.Z)(e,this._get("clips"),m);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"container",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"moving",void 0),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"updateRequested",void 0),(0,s._)([(0,l.Cb)()],t.prototype,"updateSuspended",null),(0,s._)([(0,l.Cb)()],t.prototype,"updating",null),(0,s._)([(0,l.Cb)()],t.prototype,"view",void 0),(0,s._)([(0,l.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,s._)([(0,l.Cb)({type:d.Z})],t.prototype,"highlightOptions",void 0),t=(0,s._)([(0,o.j)("esri.views.2d.layers.LayerView2D")],t),t}},10890:function(e,t,i){i.r(t),i.d(t,{default:function(){return C}});var s=i(36663),r=i(23148),n=i(13802),a=i(78668),h=i(81977),l=(i(39994),i(4157),i(40266)),o=i(35925),u=i(94449),p=(i(70375),i(17262),i(38488),i(39043),i(51366),i(19431),i(91772),i(5975),i(34596),i(20031),i(74304),i(67666),i(89542),i(90819),i(19546),i(82584),i(75707),i(59443),i(50880),i(66303),i(31180),i(29903),i(32707),i(15593),i(363),i(40932),i(7831),i(50292),i(43842),i(13287),i(37521),i(13813),i(75276),i(41959),i(8505),i(80732),i(73675),i(25609),i(14266),i(45867),i(31090),i(5310),i(98591),i(73534),i(88464),i(51118),i(41214),i(31355),i(38716),i(69118),i(55939),i(6174),i(91907),i(18567),i(88338),i(43106),i(71449),i(96227),i(27894),i(87241)),d=(i(72797),i(8530),i(20627),i(17429),i(61296),i(43405),i(58536),i(66341),i(3466),i(76480),i(24204),i(41028),i(54689),i(56144),i(17346),i(23410),i(12045),i(61581),i(70187),i(18133)),c=(i(67979),i(6865),i(81509),i(24163),i(5992),i(37116),i(17703),i(25266),i(14685),i(14260),i(91957),i(88256),i(98863),i(82729),i(38553)),g=i(66878),y=i(14945),f=i(2144),_=i(64970),m=i(17224),w=i(23656),v=i(26216),b=i(55068),x=i(7608),R=i(99621);const S=[0,0];let I=class extends((0,b.Z)((0,c.Y)((0,g.y)(v.Z)))){constructor(){super(...arguments),this._fetchQueue=null,this._highlightGraphics=new u.J,this._highlightView=null,this._popupHighlightHelper=null,this._tileStrategy=null,this.layer=null}get resampling(){return!("resampling"in this.layer)||!1!==this.layer.resampling}get tilemapCache(){return"tilemapCache"in this.layer?this.layer.tilemapCache:null}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume(),this._highlightView?.processUpdate(e)}attach(){const e="tileServers"in this.layer?this.layer.tileServers:null,t=this.tilemapCache;if(this._tileInfoView=new _.Z(this.layer.tileInfo,this.layer.fullExtent,t?.effectiveMinLOD,t?.effectiveMaxLOD),this._fetchQueue=new m.Z({tileInfoView:this._tileInfoView,concurrency:e&&10*e.length||10,process:(e,t)=>this.fetchTile(e,t)}),this._tileStrategy=new w.Z({cachePolicy:"keep",resampling:this.resampling,acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView}),(0,x.Uf)(this,this.layer)){const e=this._highlightView=new d.Z({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new y.Z(this.view.featuresTilingScheme),defaultPointSymbolEnabled:!1});this.container.addChild(this._highlightView.container),this._popupHighlightHelper=new x.VF({createFetchPopupFeaturesQueryGeometry:(e,t)=>(0,R.K)(e,t,this.view),highlightGraphics:this._highlightGraphics,highlightGraphicUpdated:(t,i)=>{e.graphicUpdateHandler({graphic:t,property:i})},layerView:this,updatingHandles:this._updatingHandles})}this.requestUpdate(),this.addAttachHandles(this._updatingHandles.add((()=>this.resampling),(()=>{this.doRefresh()}))),super.attach()}detach(){super.detach(),this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._popupHighlightHelper?.destroy(),this._highlightView?.destroy(),this._fetchQueue=this._tileStrategy=this._tileInfoView=this._popupHighlightHelper=null}async fetchPopupFeaturesAtLocation(e,t){return this._popupHighlightHelper?this._popupHighlightHelper.fetchPopupFeaturesAtLocation(e,t):[]}highlight(e){return this._popupHighlightHelper?this._popupHighlightHelper.highlight(e):(0,r.kB)()}moveStart(){this.requestUpdate()}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return(0,o.fS)(this.layer.tileInfo?.spatialReference,e)}async doRefresh(){if(this.attached){if(this.suspended)return this._tileStrategy.clear(),void this.requestUpdate();this._fetchQueue.reset(),this._tileStrategy.refresh((e=>this._updatingHandles.addPromise(this._enqueueTileFetch(e))))}}acquireTile(e){const t=this._bitmapView.createTile(e),i=t.bitmap;return[i.x,i.y]=this._tileInfoView.getTileCoords(S,t.key),i.resolution=this._tileInfoView.getTileResolution(t.key),[i.width,i.height]=this._tileInfoView.tileInfo.size,this._updatingHandles.addPromise(this._enqueueTileFetch(t)),this._bitmapView.addChild(t),this.requestUpdate(),t}releaseTile(e){this._fetchQueue.abort(e.key.id),this._bitmapView.removeChild(e),e.once("detach",(()=>e.destroy())),this.requestUpdate()}async fetchTile(e,t={}){const i=this.tilemapCache,{signal:s,resamplingLevel:r=0}=t;if(!i)try{return await this._fetchImage(e,s)}catch(i){if(!(0,a.D_)(i)&&!this.resampling)return(0,f.V)(this._tileInfoView.tileInfo.size);if(r<3){const i=this._tileInfoView.getTileParentId(e.id);if(i){const s=new p.Z(i),n=await this.fetchTile(s,{...t,resamplingLevel:r+1});return(0,f.i)(this._tileInfoView,n,s,e)}}throw i}const n=new p.Z(0,0,0,0);let h;try{if(await i.fetchAvailabilityUpsample(e.level,e.row,e.col,n,{signal:s}),n.level!==e.level&&!this.resampling)return(0,f.V)(this._tileInfoView.tileInfo.size);h=await this._fetchImage(n,s)}catch(t){if((0,a.D_)(t))throw t;h=await this._fetchImage(e,s)}return this.resampling?(0,f.i)(this._tileInfoView,h,n,e):h}async _enqueueTileFetch(e){if(!this._fetchQueue.has(e.key.id)){try{const t=await this._fetchQueue.push(e.key);e.bitmap.source=t,e.bitmap.width=this._tileInfoView.tileInfo.size[0],e.bitmap.height=this._tileInfoView.tileInfo.size[1],e.once("attach",(()=>this.requestUpdate()))}catch(e){(0,a.D_)(e)||n.Z.getLogger(this).error(e)}this.requestUpdate()}}async _fetchImage(e,t){return this.layer.fetchImageBitmapTile(e.level,e.row,e.col,{signal:t})}};(0,s._)([(0,h.Cb)()],I.prototype,"resampling",null),(0,s._)([(0,h.Cb)()],I.prototype,"tilemapCache",null),I=(0,s._)([(0,l.j)("esri.views.2d.layers.TileLayerView2D")],I);const C=I},2144:function(e,t,i){function s(e,t,i,s){if(i.level===s.level)return t;const n=e.tileInfo.size,a=e.getTileResolution(i.level),h=e.getTileResolution(s.level);let l=e.getLODInfoAt(s.level);const o=l.getXForColumn(s.col),u=l.getYForRow(s.row);l=e.getLODInfoAt(i.level);const p=l.getXForColumn(i.col),d=l.getYForRow(i.row),c=function(e){return e instanceof HTMLImageElement?e.naturalWidth:e.width}(t)/n[0],g=function(e){return e instanceof HTMLImageElement?e.naturalHeight:e.height}(t)/n[1],y=Math.round(c*((o-p)/a)),f=Math.round(g*(-(u-d)/a)),_=Math.round(c*n[0]*(h/a)),m=Math.round(g*n[1]*(h/a)),w=r(n);return w.getContext("2d").drawImage(t,y,f,_,m,0,0,n[0],n[1]),w}function r(e){const t=document.createElement("canvas");return[t.width,t.height]=e,t}i.d(t,{V:function(){return r},i:function(){return s}})},26216:function(e,t,i){i.d(t,{Z:function(){return g}});var s=i(36663),r=i(74396),n=i(31355),a=i(86618),h=i(13802),l=i(61681),o=i(64189),u=i(81977),p=(i(39994),i(4157),i(40266)),d=i(98940);let c=class extends((0,a.IG)((0,o.v)(n.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new d.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";h.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,l.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,s._)([(0,u.Cb)()],c.prototype,"fullOpacity",null),(0,s._)([(0,u.Cb)()],c.prototype,"layer",void 0),(0,s._)([(0,u.Cb)()],c.prototype,"parent",void 0),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"suspended",null),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"suspendInfo",null),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"legendEnabled",null),(0,s._)([(0,u.Cb)({type:Boolean,readOnly:!0})],c.prototype,"updating",null),(0,s._)([(0,u.Cb)({readOnly:!0})],c.prototype,"updatingProgress",null),(0,s._)([(0,u.Cb)()],c.prototype,"visible",null),(0,s._)([(0,u.Cb)()],c.prototype,"view",void 0),c=(0,s._)([(0,p.j)("esri.views.layers.LayerView")],c);const g=c},55068:function(e,t,i){i.d(t,{Z:function(){return l}});var s=i(36663),r=i(13802),n=i(78668),a=i(76868),h=(i(39994),i(4157),i(70375),i(40266));const l=e=>{let t=class extends e{initialize(){this.addHandles((0,a.on)((()=>this.layer),"refresh",(e=>{this.doRefresh(e.dataChanged).catch((e=>{(0,n.D_)(e)||r.Z.getLogger(this).error(e)}))})),"RefreshableLayerView")}};return t=(0,s._)([(0,h.j)("esri.layers.mixins.RefreshableLayerView")],t),t}},88723:function(e,t,i){i.d(t,{Z:function(){return g}});var s,r=i(36663),n=(i(91957),i(81977)),a=(i(39994),i(13802),i(4157),i(40266)),h=i(20031),l=i(53736),o=i(96294),u=i(91772),p=i(89542);const d={base:h.Z,key:"type",typeMap:{extent:u.Z,polygon:p.Z}};let c=s=class extends o.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new s({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,n.Cb)({types:d,json:{read:l.im,write:!0}})],c.prototype,"geometry",void 0),c=s=(0,r._)([(0,a.j)("esri.views.layers.support.Geometry")],c);const g=c}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8902.f3e4df7fc2ef89ee1139.js b/docs/sentinel1-explorer/8902.f3e4df7fc2ef89ee1139.js new file mode 100644 index 00000000..60087be4 --- /dev/null +++ b/docs/sentinel1-explorer/8902.f3e4df7fc2ef89ee1139.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8902,8611],{50516:function(e,t,r){r.d(t,{D:function(){return n}});var o=r(71760);function n(e){e?.writtenProperties&&e.writtenProperties.forEach((({target:e,propName:t,newOrigin:r})=>{(0,o.l)(e)&&r&&e.originOf(t)!==r&&e.updateOrigin(t,r)}))}},71760:function(e,t,r){function o(e){return e&&"getAtOrigin"in e&&"originOf"in e}r.d(t,{l:function(){return o}})},93902:function(e,t,r){r.d(t,{xp:function(){return Z},Vt:function(){return T}});var o=r(36663),n=r(66341),s=r(70375),i=r(13802),a=r(78668),l=r(3466),p=r(81977),u=(r(39994),r(4157),r(34248)),c=r(40266),d=r(39835),h=r(50516),y=r(91772),f=r(64307),m=r(14685),v=r(20692),g=r(51599),w=r(40909);let b=null;function _(){return b}var S=r(93968),x=r(53110),I=r(84513),C=r(83415),R=r(76990),N=r(60629);const T=e=>{let t=class extends e{constructor(){super(...arguments),this.spatialReference=null,this.fullExtent=null,this.heightModelInfo=null,this.minScale=0,this.maxScale=0,this.version={major:Number.NaN,minor:Number.NaN,versionString:""},this.copyright=null,this.sublayerTitleMode="item-title",this.title=null,this.layerId=null,this.indexInfo=null,this._debouncedSaveOperations=(0,a.Ds)((async(e,t,r)=>{switch(e){case Z.SAVE:return this._save(t);case Z.SAVE_AS:return this._saveAs(r,t)}}))}readSpatialReference(e,t){return this._readSpatialReference(t)}_readSpatialReference(e){if(null!=e.spatialReference)return m.Z.fromJSON(e.spatialReference);const t=e.store,r=t.indexCRS||t.geographicCRS,o=r&&parseInt(r.substring(r.lastIndexOf("/")+1,r.length),10);return null!=o?new m.Z(o):null}readFullExtent(e,t,r){if(null!=e&&"object"==typeof e){const o=null==e.spatialReference?{...e,spatialReference:this._readSpatialReference(t)}:e;return y.Z.fromJSON(o,r)}const o=t.store,n=this._readSpatialReference(t);return null==n||null==o?.extent||!Array.isArray(o.extent)||o.extent.some((e=>e=2&&(t.major=parseInt(r[0],10),t.minor=parseInt(r[1],10)),t}readVersion(e,t){const r=t.store,o=null!=r.version?r.version.toString():"";return this.parseVersionString(o)}readTitlePortalItem(e){return"item-title"!==this.sublayerTitleMode?void 0:e}readTitleService(e,t){const r=this.portalItem?.title;if("item-title"===this.sublayerTitleMode)return(0,v.a7)(this.url,t.name);let o=t.name;if(!o&&this.url){const e=(0,v.Qc)(this.url);null!=e&&(o=e.title)}return"item-title-and-service-name"===this.sublayerTitleMode&&r&&(o=r+" - "+o),(0,v.ld)(o)}set url(e){const t=(0,v.XG)({layer:this,url:e,nonStandardUrlAllowed:!1,logger:i.Z.getLogger(this)});this._set("url",t.url),null!=t.layerId&&this._set("layerId",t.layerId)}writeUrl(e,t,r,o){(0,v.wH)(this,e,"layers",t,o)}get parsedUrl(){const e=this._get("url"),t=(0,l.mN)(e);return null!=this.layerId&&(t.path=`${t.path}/layers/${this.layerId}`),t}async _fetchIndexAndUpdateExtent(e,t){this.indexInfo=(0,w.T)(this.parsedUrl.path,this.rootNode,e,this.customParameters,this.apiKey,i.Z.getLogger(this),t),null==this.fullExtent||this.fullExtent.hasZ||this._updateExtent(await this.indexInfo)}_updateExtent(e){if("page"===e?.type){const t=e.rootIndex%e.pageSize,r=e.rootPage?.nodes?.[t];if(null==r?.obb?.center||null==r.obb.halfSize)throw new s.Z("sceneservice:invalid-node-page","Invalid node page.");if(r.obb.center[0]0)return t.data.layers[0].id}async _fetchServiceLayer(e){const t=await(0,n.Z)(this.parsedUrl?.path??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e});t.ssl&&(this.url=this.url.replace(/^http:/i,"https:"));let r=!1;if(t.data.layerType&&"Voxel"===t.data.layerType&&(r=!0),r)return this._fetchVoxelServiceLayer();const o=t.data;this.read(o,this._getServiceContext()),this.validateLayer(o)}async _fetchVoxelServiceLayer(e){const t=(await(0,n.Z)(this.parsedUrl?.path+"/layer",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e})).data;this.read(t,this._getServiceContext()),this.validateLayer(t)}_getServiceContext(){return{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl}}async _ensureLoadBeforeSave(){await this.load(),"beforeSave"in this&&"function"==typeof this.beforeSave&&await this.beforeSave()}validateLayer(e){}_updateTypeKeywords(e,t,r){e.typeKeywords||(e.typeKeywords=[]);const o=t.getTypeKeywords();for(const t of o)e.typeKeywords.push(t);e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)),r===P.newItem&&(e.typeKeywords=e.typeKeywords.filter((e=>"Hosted Service"!==e))))}async _saveAs(e,t){const r={...U,...t};let o=x.default.from(e);if(!o)throw new s.Z("sceneservice:portal-item-required","_saveAs() requires a portal item to save to");(0,R.w)(o),o.id&&(o=o.clone(),o.id=null);const n=o.portal||S.Z.getDefault();await this._ensureLoadBeforeSave(),o.type=E,o.portal=n;const i=(0,I.Y)(o,"portal-item",!0),a={layers:[this.write({},i)]};return await Promise.all(i.resources.pendingOperations??[]),await this._validateAgainstJSONSchema(a,i,r),o.url=this.url,o.title||(o.title=this.title),this._updateTypeKeywords(o,r,P.newItem),await n.signIn(),await(n.user?.addItem({item:o,folder:r?.folder,data:a})),await(0,C.H)(this.resourceReferences,i),this.portalItem=o,(0,h.D)(i),i.portalItem=o,o}async _save(e){const t={...U,...e};if(!this.portalItem)throw new s.Z("sceneservice:portal-item-not-set","Portal item to save to has not been set on this SceneService");if((0,R.w)(this.portalItem),this.portalItem.type!==E)throw new s.Z("sceneservice:portal-item-wrong-type",`Portal item needs to have type "${E}"`);await this._ensureLoadBeforeSave();const r=(0,I.Y)(this.portalItem,"portal-item",!0),o={layers:[this.write({},r)]};return await Promise.all(r.resources.pendingOperations??[]),await this._validateAgainstJSONSchema(o,r,t),this.portalItem.url=this.url,this.portalItem.title||(this.portalItem.title=this.title),this._updateTypeKeywords(this.portalItem,t,P.existingItem),await(0,C.b)(this.portalItem,o,this.resourceReferences,r),(0,h.D)(r),this.portalItem}async _validateAgainstJSONSchema(e,t,r){const o=r?.validationOptions;(0,N.z)(t,{errorName:"sceneservice:save"},{ignoreUnsupported:o?.ignoreUnsupported,supplementalUnsupportedErrors:["scenemodification:unsupported"]});const n=o?.enabled,a=_();if(n&&a){const t=(await a()).validate(e,r.portalItemLayerType);if(!t.length)return;const n=`Layer item did not validate:\n${t.join("\n")}`;if(i.Z.getLogger(this).error(`_validateAgainstJSONSchema(): ${n}`),"throw"===o.failPolicy){const e=t.map((e=>new s.Z("sceneservice:schema-validation",e)));throw new s.Z("sceneservice-validate:error","Failed to save layer item due to schema validation, see `details.errors`.",{validationErrors:e})}}}};return(0,o._)([(0,p.Cb)(g.id)],t.prototype,"id",void 0),(0,o._)([(0,p.Cb)({type:m.Z})],t.prototype,"spatialReference",void 0),(0,o._)([(0,u.r)("spatialReference",["spatialReference","store.indexCRS","store.geographicCRS"])],t.prototype,"readSpatialReference",null),(0,o._)([(0,p.Cb)({type:y.Z})],t.prototype,"fullExtent",void 0),(0,o._)([(0,u.r)("fullExtent",["fullExtent","store.extent","spatialReference","store.indexCRS","store.geographicCRS"])],t.prototype,"readFullExtent",null),(0,o._)([(0,p.Cb)({readOnly:!0,type:f.Z})],t.prototype,"heightModelInfo",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:{source:"minScale"},write:!1}}}})],t.prototype,"minScale",void 0),(0,o._)([(0,p.Cb)({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:{source:"maxScale"},write:!1}}}})],t.prototype,"maxScale",void 0),(0,o._)([(0,p.Cb)({readOnly:!0})],t.prototype,"version",void 0),(0,o._)([(0,u.r)("version",["store.version"])],t.prototype,"readVersion",null),(0,o._)([(0,p.Cb)({type:String,json:{read:{source:"copyrightText"}}})],t.prototype,"copyright",void 0),(0,o._)([(0,p.Cb)({type:String,json:{read:!1}})],t.prototype,"sublayerTitleMode",void 0),(0,o._)([(0,p.Cb)({type:String})],t.prototype,"title",void 0),(0,o._)([(0,u.r)("portal-item","title")],t.prototype,"readTitlePortalItem",null),(0,o._)([(0,u.r)("service","title",["name"])],t.prototype,"readTitleService",null),(0,o._)([(0,p.Cb)({type:Number,json:{origins:{service:{read:{source:"id"}},"portal-item":{write:{target:"id",isRequired:!0,ignoreOrigin:!0},read:!1}}}})],t.prototype,"layerId",void 0),(0,o._)([(0,p.Cb)(g.HQ)],t.prototype,"url",null),(0,o._)([(0,d.c)("url")],t.prototype,"writeUrl",null),(0,o._)([(0,p.Cb)()],t.prototype,"parsedUrl",null),(0,o._)([(0,p.Cb)({readOnly:!0})],t.prototype,"store",void 0),(0,o._)([(0,p.Cb)({type:String,readOnly:!0,json:{read:{source:"store.rootNode"}}})],t.prototype,"rootNode",void 0),t=(0,o._)([(0,c.j)("esri.layers.mixins.SceneService")],t),t},j=-1e38;var P,O;(O=P||(P={}))[O.existingItem=0]="existingItem",O[O.newItem=1]="newItem";const E="Scene Service",U={getTypeKeywords:()=>[],portalItemLayerType:"unknown",validationOptions:{enabled:!0,ignoreUnsupported:!1,failPolicy:"throw"}};var Z;!function(e){e[e.SAVE=0]="SAVE",e[e.SAVE_AS=1]="SAVE_AS"}(Z||(Z={}))},40909:function(e,t,r){r.d(t,{T:function(){return s}});var o=r(66341),n=r(70375);async function s(e,t,r,s,i,a,l){let p=null;if(null!=r){const t=`${e}/nodepages/`,n=t+Math.floor(r.rootIndex/r.nodesPerPage);try{return{type:"page",rootPage:(await(0,o.Z)(n,{query:{f:"json",...s,token:i},responseType:"json",signal:l})).data,rootIndex:r.rootIndex,pageSize:r.nodesPerPage,lodMetric:r.lodSelectionMetricType,urlPrefix:t}}catch(e){null!=a&&a.warn("#fetchIndexInfo()","Failed to load root node page. Falling back to node documents.",n,e),p=e}}if(!t)return null;const u=t?.split("/").pop(),c=`${e}/nodes/`,d=c+u;try{return{type:"node",rootNode:(await(0,o.Z)(d,{query:{f:"json",...s,token:i},responseType:"json",signal:l})).data,urlPrefix:c}}catch(e){throw new n.Z("sceneservice:root-node-missing","Root node missing.",{pageError:p,nodeError:e,url:d})}}},97304:function(e,t,r){r.d(t,{H3:function(){return v},QI:function(){return c},U4:function(){return l},Yh:function(){return h}});var o=r(36663),n=r(82064),s=r(81977),i=(r(39994),r(13802),r(4157),r(79438)),a=r(40266);let l=class extends n.wq{constructor(){super(...arguments),this.nodesPerPage=null,this.rootIndex=0,this.lodSelectionMetricType=null}};(0,o._)([(0,s.Cb)({type:Number})],l.prototype,"nodesPerPage",void 0),(0,o._)([(0,s.Cb)({type:Number})],l.prototype,"rootIndex",void 0),(0,o._)([(0,s.Cb)({type:String})],l.prototype,"lodSelectionMetricType",void 0),l=(0,o._)([(0,a.j)("esri.layer.support.I3SNodePageDefinition")],l);let p=class extends n.wq{constructor(){super(...arguments),this.factor=1}};(0,o._)([(0,s.Cb)({type:Number,json:{read:{source:"textureSetDefinitionId"}}})],p.prototype,"id",void 0),(0,o._)([(0,s.Cb)({type:Number})],p.prototype,"factor",void 0),p=(0,o._)([(0,a.j)("esri.layer.support.I3SMaterialTexture")],p);let u=class extends n.wq{constructor(){super(...arguments),this.baseColorFactor=[1,1,1,1],this.baseColorTexture=null,this.metallicRoughnessTexture=null,this.metallicFactor=1,this.roughnessFactor=1}};(0,o._)([(0,s.Cb)({type:[Number]})],u.prototype,"baseColorFactor",void 0),(0,o._)([(0,s.Cb)({type:p})],u.prototype,"baseColorTexture",void 0),(0,o._)([(0,s.Cb)({type:p})],u.prototype,"metallicRoughnessTexture",void 0),(0,o._)([(0,s.Cb)({type:Number})],u.prototype,"metallicFactor",void 0),(0,o._)([(0,s.Cb)({type:Number})],u.prototype,"roughnessFactor",void 0),u=(0,o._)([(0,a.j)("esri.layer.support.I3SMaterialPBRMetallicRoughness")],u);let c=class extends n.wq{constructor(){super(...arguments),this.alphaMode="opaque",this.alphaCutoff=.25,this.doubleSided=!1,this.cullFace="none",this.normalTexture=null,this.occlusionTexture=null,this.emissiveTexture=null,this.emissiveFactor=null,this.pbrMetallicRoughness=null}};(0,o._)([(0,i.J)({opaque:"opaque",mask:"mask",blend:"blend"})],c.prototype,"alphaMode",void 0),(0,o._)([(0,s.Cb)({type:Number})],c.prototype,"alphaCutoff",void 0),(0,o._)([(0,s.Cb)({type:Boolean})],c.prototype,"doubleSided",void 0),(0,o._)([(0,i.J)({none:"none",back:"back",front:"front"})],c.prototype,"cullFace",void 0),(0,o._)([(0,s.Cb)({type:p})],c.prototype,"normalTexture",void 0),(0,o._)([(0,s.Cb)({type:p})],c.prototype,"occlusionTexture",void 0),(0,o._)([(0,s.Cb)({type:p})],c.prototype,"emissiveTexture",void 0),(0,o._)([(0,s.Cb)({type:[Number]})],c.prototype,"emissiveFactor",void 0),(0,o._)([(0,s.Cb)({type:u})],c.prototype,"pbrMetallicRoughness",void 0),c=(0,o._)([(0,a.j)("esri.layer.support.I3SMaterialDefinition")],c);let d=class extends n.wq{};(0,o._)([(0,s.Cb)({type:String,json:{read:{source:["name","index"],reader:(e,t)=>null!=e?e:`${t.index}`}}})],d.prototype,"name",void 0),(0,o._)([(0,i.J)({jpg:"jpg",png:"png",dds:"dds","ktx-etc2":"ktx-etc2",ktx2:"ktx2",basis:"basis"})],d.prototype,"format",void 0),d=(0,o._)([(0,a.j)("esri.layer.support.I3STextureFormat")],d);let h=class extends n.wq{constructor(){super(...arguments),this.atlas=!1}};(0,o._)([(0,s.Cb)({type:[d]})],h.prototype,"formats",void 0),(0,o._)([(0,s.Cb)({type:Boolean})],h.prototype,"atlas",void 0),h=(0,o._)([(0,a.j)("esri.layer.support.I3STextureSetDefinition")],h);let y=class extends n.wq{};(0,o._)([(0,i.J)({Float32:"Float32",UInt64:"UInt64",UInt32:"UInt32",UInt16:"UInt16",UInt8:"UInt8"})],y.prototype,"type",void 0),(0,o._)([(0,s.Cb)({type:Number})],y.prototype,"component",void 0),y=(0,o._)([(0,a.j)("esri.layer.support.I3SGeometryAttribute")],y);let f=class extends n.wq{};(0,o._)([(0,i.J)({draco:"draco"})],f.prototype,"encoding",void 0),(0,o._)([(0,s.Cb)({type:[String]})],f.prototype,"attributes",void 0),f=(0,o._)([(0,a.j)("esri.layer.support.I3SGeometryCompressedAttributes")],f);let m=class extends n.wq{constructor(){super(...arguments),this.offset=0}};(0,o._)([(0,s.Cb)({type:Number})],m.prototype,"offset",void 0),(0,o._)([(0,s.Cb)({type:y})],m.prototype,"position",void 0),(0,o._)([(0,s.Cb)({type:y})],m.prototype,"normal",void 0),(0,o._)([(0,s.Cb)({type:y})],m.prototype,"uv0",void 0),(0,o._)([(0,s.Cb)({type:y})],m.prototype,"color",void 0),(0,o._)([(0,s.Cb)({type:y})],m.prototype,"uvRegion",void 0),(0,o._)([(0,s.Cb)({type:y})],m.prototype,"featureId",void 0),(0,o._)([(0,s.Cb)({type:y})],m.prototype,"faceRange",void 0),(0,o._)([(0,s.Cb)({type:f})],m.prototype,"compressedAttributes",void 0),m=(0,o._)([(0,a.j)("esri.layer.support.I3SGeometryBuffer")],m);let v=class extends n.wq{};(0,o._)([(0,i.J)({triangle:"triangle"})],v.prototype,"topology",void 0),(0,o._)([(0,s.Cb)()],v.prototype,"geometryBuffers",void 0),v=(0,o._)([(0,a.j)("esri.layer.support.I3SGeometryDefinition")],v)},68611:function(e,t,r){r.d(t,{FO:function(){return d},W7:function(){return h},addOrUpdateResources:function(){return a},fetchResources:function(){return i},removeAllResources:function(){return p},removeResource:function(){return l}});var o=r(66341),n=r(70375),s=r(3466);async function i(e,t={},r){await e.load(r);const o=(0,s.v_)(e.itemUrl,"resources"),{start:n=1,num:i=10,sortOrder:a="asc",sortField:l="resource"}=t,p={query:{start:n,num:i,sortOrder:a,sortField:l,token:e.apiKey},signal:r?.signal},u=await e.portal.request(o,p);return{total:u.total,nextStart:u.nextStart,resources:u.resources.map((({created:t,size:r,resource:o})=>({created:new Date(t),size:r,resource:e.resourceFromPath(o)})))}}async function a(e,t,r,o){const i=new Map;for(const{resource:e,content:o,compress:s,access:a}of t){if(!e.hasPath())throw new n.Z(`portal-item-resource-${r}:invalid-path`,"Resource does not have a valid path");const[t,l]=u(e.path),p=`${t}/${s??""}/${a??""}`;i.has(p)||i.set(p,{prefix:t,compress:s,access:a,files:[]}),i.get(p).files.push({fileName:l,content:o})}await e.load(o);const a=(0,s.v_)(e.userItemUrl,"add"===r?"addResources":"updateResources");for(const{prefix:t,compress:r,access:n,files:s}of i.values()){const i=25;for(let l=0;le.resource.path))),u=new Set,c=[];p.forEach((t=>{l.delete(t),e.paths.push(t)}));const d=[],h=[],y=[];for(const r of t.resources.toUpdate)if(l.delete(r.resource.path),p.has(r.resource.path)||u.has(r.resource.path)){const{resource:t,content:o,finish:n}=r,a=(0,i.W7)(t,(0,s.DO)());e.paths.push(a.path),d.push({resource:a,content:await(0,i.FO)(o),compress:r.compress}),n&&y.push((()=>n(a)))}else{e.paths.push(r.resource.path),h.push({resource:r.resource,content:await(0,i.FO)(r.content),compress:r.compress});const t=r.finish;t&&y.push((()=>t(r.resource))),u.add(r.resource.path)}for(const r of t.resources.toAdd)if(e.paths.push(r.resource.path),l.has(r.resource.path))l.delete(r.resource.path);else{d.push({resource:r.resource,content:await(0,i.FO)(r.content),compress:r.compress});const e=r.finish;e&&y.push((()=>e(r.resource)))}if(d.length||h.length){const{addOrUpdateResources:e}=await Promise.resolve().then(r.bind(r,68611));await e(t.portalItem,d,"add",a),await e(t.portalItem,h,"update",a)}if(y.forEach((e=>e())),0===c.length)return l;const f=await(0,n.UO)(c);if((0,n.k_)(a),f.length>0)throw new o.Z("save:resources","Failed to save one or more resources",{errors:f});return l}async function u(e,t,r){if(!e||!t.portalItem)return;const o=[];for(const n of e){const e=t.portalItem.resourceFromPath(n);o.push(e.portalItem.removeResource(e,r))}await(0,n.as)(o)}},76990:function(e,t,r){r.d(t,{w:function(){return i}});var o=r(51366),n=r(70375),s=r(99522);function i(e){if(o.default.apiKey&&(0,s.r)(e.portal.url))throw new n.Z("save-api-key-utils:api-key-not-supported",`Saving is not supported on ${e.portal.url} when using an api key`)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8923.daf50acb34302afd773d.js b/docs/sentinel1-explorer/8923.daf50acb34302afd773d.js new file mode 100644 index 00000000..6eeba3ef --- /dev/null +++ b/docs/sentinel1-explorer/8923.daf50acb34302afd773d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8923],{4279:function(n,e,t){t.d(e,{A:function(){return z},B:function(){return V},C:function(){return E},D:function(){return H},E:function(){return I},F:function(){return _},G:function(){return j},H:function(){return C},I:function(){return k},J:function(){return q},K:function(){return B},L:function(){return P},M:function(){return M},N:function(){return F},a:function(){return o},b:function(){return f},c:function(){return c},d:function(){return a},e:function(){return i},f:function(){return l},g:function(){return J},h:function(){return s},i:function(){return p},j:function(){return g},k:function(){return m},l:function(){return x},m:function(){return D},n:function(){return S},o:function(){return N},p:function(){return w},q:function(){return v},r:function(){return h},s:function(){return y},t:function(){return G},u:function(){return R},v:function(){return A},w:function(){return d},x:function(){return L},y:function(){return b},z:function(){return T}});var r=t(89067),u=t(61107);function i(n){return r.G.extendedSpatialReferenceInfo(n)}function c(n,e,t){return r.G.clip(u.N,n,e,t)}function o(n,e,t){return r.G.cut(u.N,n,e,t)}function f(n,e,t){return r.G.contains(u.N,n,e,t)}function a(n,e,t){return r.G.crosses(u.N,n,e,t)}function l(n,e,t,i){return r.G.distance(u.N,n,e,t,i)}function s(n,e,t){return r.G.equals(u.N,n,e,t)}function p(n,e,t){return r.G.intersects(u.N,n,e,t)}function G(n,e,t){return r.G.touches(u.N,n,e,t)}function d(n,e,t){return r.G.within(u.N,n,e,t)}function g(n,e,t){return r.G.disjoint(u.N,n,e,t)}function N(n,e,t){return r.G.overlaps(u.N,n,e,t)}function h(n,e,t,i){return r.G.relate(u.N,n,e,t,i)}function m(n,e){return r.G.isSimple(u.N,n,e)}function y(n,e){return r.G.simplify(u.N,n,e)}function x(n,e,t=!1){return r.G.convexHull(u.N,n,e,t)}function D(n,e,t){return r.G.difference(u.N,n,e,t)}function S(n,e,t){return r.G.symmetricDifference(u.N,n,e,t)}function w(n,e,t){return r.G.intersect(u.N,n,e,t)}function R(n,e,t=null){return r.G.union(u.N,n,e,t)}function v(n,e,t,i,c,o,f){return r.G.offset(u.N,n,e,t,i,c,o,f)}function A(n,e,t,i,c=!1){return r.G.buffer(u.N,n,e,t,i,c)}function L(n,e,t,i,c,o,f){return r.G.geodesicBuffer(u.N,n,e,t,i,c,o,f)}function b(n,e,t,i=!0){return r.G.nearestCoordinate(u.N,n,e,t,i)}function T(n,e,t){return r.G.nearestVertex(u.N,n,e,t)}function z(n,e,t,i,c){return r.G.nearestVertices(u.N,n,e,t,i,c)}function V(n,e,t,u){if(null==e||null==u)throw new Error("Illegal Argument Exception");const i=r.G.rotate(e,t,u);return i.spatialReference=n,i}function E(n,e,t){if(null==e||null==t)throw new Error("Illegal Argument Exception");const u=r.G.flipHorizontal(e,t);return u.spatialReference=n,u}function H(n,e,t){if(null==e||null==t)throw new Error("Illegal Argument Exception");const u=r.G.flipVertical(e,t);return u.spatialReference=n,u}function I(n,e,t,i,c){return r.G.generalize(u.N,n,e,t,i,c)}function _(n,e,t,i){return r.G.densify(u.N,n,e,t,i)}function j(n,e,t,i,c=0){return r.G.geodesicDensify(u.N,n,e,t,i,c)}function C(n,e,t){return r.G.planarArea(u.N,n,e,t)}function k(n,e,t){return r.G.planarLength(u.N,n,e,t)}function q(n,e,t,i){return r.G.geodesicArea(u.N,n,e,t,i)}function B(n,e,t,i){return r.G.geodesicLength(u.N,n,e,t,i)}function P(n,e,t){return null==e||null==t?[]:r.G.intersectLinesToPoints(u.N,n,e,t)}function M(n,e){r.G.changeDefaultSpatialReferenceTolerance(n,e)}function F(n){r.G.clearDefaultSpatialReferenceTolerance(n)}const J=Object.freeze(Object.defineProperty({__proto__:null,buffer:A,changeDefaultSpatialReferenceTolerance:M,clearDefaultSpatialReferenceTolerance:F,clip:c,contains:f,convexHull:x,crosses:a,cut:o,densify:_,difference:D,disjoint:g,distance:l,equals:s,extendedSpatialReferenceInfo:i,flipHorizontal:E,flipVertical:H,generalize:I,geodesicArea:q,geodesicBuffer:L,geodesicDensify:j,geodesicLength:B,intersect:w,intersectLinesToPoints:P,intersects:p,isSimple:m,nearestCoordinate:b,nearestVertex:T,nearestVertices:z,offset:v,overlaps:N,planarArea:C,planarLength:k,relate:h,rotate:V,simplify:y,symmetricDifference:S,touches:G,union:R,within:d},Symbol.toStringTag,{value:"Module"}))},8923:function(n,e,t){t.r(e),t.d(e,{buffer:function(){return r.v},changeDefaultSpatialReferenceTolerance:function(){return r.M},clearDefaultSpatialReferenceTolerance:function(){return r.N},clip:function(){return r.c},contains:function(){return r.b},convexHull:function(){return r.l},crosses:function(){return r.d},cut:function(){return r.a},densify:function(){return r.F},difference:function(){return r.m},disjoint:function(){return r.j},distance:function(){return r.f},equals:function(){return r.h},extendedSpatialReferenceInfo:function(){return r.e},flipHorizontal:function(){return r.C},flipVertical:function(){return r.D},generalize:function(){return r.E},geodesicArea:function(){return r.J},geodesicBuffer:function(){return r.x},geodesicDensify:function(){return r.G},geodesicLength:function(){return r.K},intersect:function(){return r.p},intersectLinesToPoints:function(){return r.L},intersects:function(){return r.i},isSimple:function(){return r.k},nearestCoordinate:function(){return r.y},nearestVertex:function(){return r.z},nearestVertices:function(){return r.A},offset:function(){return r.q},overlaps:function(){return r.o},planarArea:function(){return r.H},planarLength:function(){return r.I},relate:function(){return r.r},rotate:function(){return r.B},simplify:function(){return r.s},symmetricDifference:function(){return r.n},touches:function(){return r.t},union:function(){return r.u},within:function(){return r.w}});t(89067),t(61107);var r=t(4279)}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/8943.360302f619fb649356f7.js b/docs/sentinel1-explorer/8943.360302f619fb649356f7.js new file mode 100644 index 00000000..6d3706b1 --- /dev/null +++ b/docs/sentinel1-explorer/8943.360302f619fb649356f7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[8943],{58943:function(t,e,n){n.r(e),n.d(e,{executeForTopCount:function(){return i}});var r=n(84238),o=n(46960),u=n(12621);async function i(t,e,n){const i=(0,r.en)(t);return(await(0,o.vB)(i,u.Z.from(e),{...n})).data.count}},46960:function(t,e,n){n.d(e,{IJ:function(){return d},m5:function(){return f},vB:function(){return m},w7:function(){return p}});var r=n(66341),o=n(3466),u=n(53736),i=n(29927),l=n(35925),s=n(27707),y=n(13097);const c="Layer does not support extent calculation.";function a(t,e){const n=t.geometry,r=t.toJSON(),o=r;if(null!=n&&(o.geometry=JSON.stringify(n),o.geometryType=(0,u.Ji)(n),o.inSR=(0,l.B9)(n.spatialReference)),r.topFilter?.groupByFields&&(o.topFilter.groupByFields=r.topFilter.groupByFields.join(",")),r.topFilter?.orderByFields&&(o.topFilter.orderByFields=r.topFilter.orderByFields.join(",")),r.topFilter&&(o.topFilter=JSON.stringify(o.topFilter)),r.objectIds&&(o.objectIds=r.objectIds.join(",")),r.orderByFields&&(o.orderByFields=r.orderByFields.join(",")),r.outFields&&!(e?.returnCountOnly||e?.returnExtentOnly||e?.returnIdsOnly)?r.outFields.includes("*")?o.outFields="*":o.outFields=r.outFields.join(","):delete o.outFields,r.outSR?o.outSR=(0,l.B9)(r.outSR):n&&r.returnGeometry&&(o.outSR=o.inSR),r.returnGeometry&&delete r.returnGeometry,r.timeExtent){const t=r.timeExtent,{start:e,end:n}=t;null==e&&null==n||(o.time=e===n?e:`${e??"null"},${n??"null"}`),delete r.timeExtent}return o}async function d(t,e,n,r){const o=await F(t,e,"json",r);return(0,y.p)(e,n,o.data),o}async function p(t,e,n){return null!=e.timeExtent&&e.timeExtent.isEmpty?{data:{objectIds:[]}}:F(t,e,"json",n,{returnIdsOnly:!0})}async function f(t,e,n){return null!=e.timeExtent&&e.timeExtent.isEmpty?{data:{count:0,extent:null}}:F(t,e,"json",n,{returnExtentOnly:!0,returnCountOnly:!0}).then((t=>{const e=t.data;if(e.hasOwnProperty("extent"))return t;if(e.features)throw new Error(c);if(e.hasOwnProperty("count"))throw new Error(c);return t}))}function m(t,e,n){return null!=e.timeExtent&&e.timeExtent.isEmpty?Promise.resolve({data:{count:0}}):F(t,e,"json",n,{returnIdsOnly:!0,returnCountOnly:!0})}function F(t,e,n,u={},l={}){const y="string"==typeof t?(0,o.mN)(t):t,c=e.geometry?[e.geometry]:[];return u.responseType="pbf"===n?"array-buffer":"json",(0,i.aX)(c,null,u).then((t=>{const i=t?.[0];null!=i&&((e=e.clone()).geometry=i);const c=(0,s.A)({...y.query,f:n,...l,...a(e,l)});return(0,r.Z)((0,o.v_)(y.path,"queryTopFeatures"),{...u,query:{...c,...u.query}})}))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/895.de8f7ff9f336c530f91e.js b/docs/sentinel1-explorer/895.de8f7ff9f336c530f91e.js new file mode 100644 index 00000000..647ef839 --- /dev/null +++ b/docs/sentinel1-explorer/895.de8f7ff9f336c530f91e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[895],{70895:function(t,e,n){n.r(e),n.d(e,{executeForTopIds:function(){return i}});var r=n(84238),o=n(46960),u=n(12621);async function i(t,e,n){const i=(0,r.en)(t);return(await(0,o.w7)(i,u.Z.from(e),{...n})).data.objectIds}},46960:function(t,e,n){n.d(e,{IJ:function(){return a},m5:function(){return f},vB:function(){return m},w7:function(){return p}});var r=n(66341),o=n(3466),u=n(53736),i=n(29927),s=n(35925),l=n(27707),y=n(13097);const c="Layer does not support extent calculation.";function d(t,e){const n=t.geometry,r=t.toJSON(),o=r;if(null!=n&&(o.geometry=JSON.stringify(n),o.geometryType=(0,u.Ji)(n),o.inSR=(0,s.B9)(n.spatialReference)),r.topFilter?.groupByFields&&(o.topFilter.groupByFields=r.topFilter.groupByFields.join(",")),r.topFilter?.orderByFields&&(o.topFilter.orderByFields=r.topFilter.orderByFields.join(",")),r.topFilter&&(o.topFilter=JSON.stringify(o.topFilter)),r.objectIds&&(o.objectIds=r.objectIds.join(",")),r.orderByFields&&(o.orderByFields=r.orderByFields.join(",")),r.outFields&&!(e?.returnCountOnly||e?.returnExtentOnly||e?.returnIdsOnly)?r.outFields.includes("*")?o.outFields="*":o.outFields=r.outFields.join(","):delete o.outFields,r.outSR?o.outSR=(0,s.B9)(r.outSR):n&&r.returnGeometry&&(o.outSR=o.inSR),r.returnGeometry&&delete r.returnGeometry,r.timeExtent){const t=r.timeExtent,{start:e,end:n}=t;null==e&&null==n||(o.time=e===n?e:`${e??"null"},${n??"null"}`),delete r.timeExtent}return o}async function a(t,e,n,r){const o=await F(t,e,"json",r);return(0,y.p)(e,n,o.data),o}async function p(t,e,n){return null!=e.timeExtent&&e.timeExtent.isEmpty?{data:{objectIds:[]}}:F(t,e,"json",n,{returnIdsOnly:!0})}async function f(t,e,n){return null!=e.timeExtent&&e.timeExtent.isEmpty?{data:{count:0,extent:null}}:F(t,e,"json",n,{returnExtentOnly:!0,returnCountOnly:!0}).then((t=>{const e=t.data;if(e.hasOwnProperty("extent"))return t;if(e.features)throw new Error(c);if(e.hasOwnProperty("count"))throw new Error(c);return t}))}function m(t,e,n){return null!=e.timeExtent&&e.timeExtent.isEmpty?Promise.resolve({data:{count:0}}):F(t,e,"json",n,{returnIdsOnly:!0,returnCountOnly:!0})}function F(t,e,n,u={},s={}){const y="string"==typeof t?(0,o.mN)(t):t,c=e.geometry?[e.geometry]:[];return u.responseType="pbf"===n?"array-buffer":"json",(0,i.aX)(c,null,u).then((t=>{const i=t?.[0];null!=i&&((e=e.clone()).geometry=i);const c=(0,l.A)({...y.query,f:n,...s,...d(e,s)});return(0,r.Z)((0,o.v_)(y.path,"queryTopFeatures"),{...u,query:{...c,...u.query}})}))}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9018.847ee0fe18f852fd0583.js b/docs/sentinel1-explorer/9018.847ee0fe18f852fd0583.js new file mode 100644 index 00000000..31dfd047 --- /dev/null +++ b/docs/sentinel1-explorer/9018.847ee0fe18f852fd0583.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9018],{99018:function(e,r,p){p.r(r),p.d(r,{build:function(){return u.b}});p(86717),p(55208),p(31227),p(26482),p(93072),p(24603),p(23410),p(3961),p(37649),p(15176);var u=p(24756)}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9024.2a43be43faaa3d7c5f6c.js b/docs/sentinel1-explorer/9024.2a43be43faaa3d7c5f6c.js new file mode 100644 index 00000000..b263a945 --- /dev/null +++ b/docs/sentinel1-explorer/9024.2a43be43faaa3d7c5f6c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9024],{17703:function(e,t,s){function r(){return new Float32Array(3)}function i(e){const t=new Float32Array(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function o(e,t,s){const r=new Float32Array(3);return r[0]=e,r[1]=t,r[2]=s,r}function n(){return r()}function a(){return o(1,1,1)}function h(){return o(1,0,0)}function c(){return o(0,1,0)}function u(){return o(0,0,1)}s.d(t,{Ue:function(){return r},al:function(){return o},d9:function(){return i}});const l=n(),d=a(),p=h(),m=c(),_=u();Object.freeze(Object.defineProperty({__proto__:null,ONES:d,UNIT_X:p,UNIT_Y:m,UNIT_Z:_,ZEROS:l,clone:i,create:r,createView:function(e,t){return new Float32Array(e,t,3)},fromValues:o,ones:a,unitX:h,unitY:c,unitZ:u,zeros:n},Symbol.toStringTag,{value:"Module"}))},18133:function(e,t,s){s.d(t,{Z:function(){return se}});var r=s(36663),i=s(74396),o=s(7753),n=s(39994),a=s(86618),h=s(61681),c=s(78668),u=s(76868),l=s(81977),d=(s(13802),s(40266)),p=s(24568),m=s(53736),_=s(28790),y=s(95215),f=s(98591),g=s(5310),b=s(14266),w=s(605),I=s(18470),v=s(33178),S=s(47684),x=s(89978);var R=s(99254),T=s(77206),M=s(54746),C=s(83491),G=s(46878),U=s(60997),Z=s(18449),z=s(12065),O=s(15540),P=s(98416);class k extends P.s{static from(e,t,s){return new k(e,t,s)}constructor(e,t,s){super(s),this._items=e,this._tile=t,this._index=-1,this._cachedGeometry=null;const r=t.lod;r.wrap&&(this._wrappingInfo={worldSizeX:r.worldSize[0]})}get _current(){return this._items[this._index]}getItem(){return this._current}getZOrder(){return this._current.zOrder}getMeshWriters(){return this._current.symbolResource?.symbolInfo.meshWriters??[]}hasField(e){return null!=this._current.attributes[e]}field(e){return this.readAttribute(e)}get geometryType(){const e=(0,m.Ji)(this._current.geometry);return"esriGeometryPoint"===e?"esriGeometryMultipoint":e}getCursor(){return this.copy()}copy(){const e=new k(this._items,this._tile,this.metadata);return this.copyInto(e),e}copyInto(e){super.copyInto(e),e._cachedGeometry=this._cachedGeometry,e._index=this._index}get fields(){throw new Error("Fields reading not supported to graphics.")}get hasFeatures(){return!!this._items.length}get hasNext(){return this._index+1b.i9*(r-1)&&(e[i]=o-b.i9*r)}_readX(){const e=this._readGeometry();return null!=e?e.coords[0]:0}_readY(){const e=this._readGeometry();return null!=e?e.coords[1]:0}_readServerCentroid(){switch(this.geometryType){case"esriGeometryPolygon":{const e=(0,Z.tO)(this._current.projectedGeometry),t=new O.Z([],e);return(0,z.Nh)(new O.Z,t,this.hasZ,this.hasM,this.geometryType,this._tile.transform)}case"esriGeometryPolyline":{const e=this._current.projectedGeometry,t=(0,Z.a)(e.paths,this.hasZ),s=new O.Z([],t);return(0,z.Nh)(new O.Z,s,this.hasZ,this.hasM,this.geometryType,this._tile.transform)}}return null}_readAttribute(e,t){const s=this._current.attributes[e];if(void 0!==s)return s;const r=e.toLowerCase();for(const e in this._current.attributes)if(e.toLowerCase()===r)return this._current.attributes[e]}_readAttributes(){return this._current.attributes}}var F=s(95550),j=s(39947),A=s(79880),E=s(29927),q=s(35925),D=s(31014),W=s(38028),H=s(60797),N=s(66069),V=s(89542);s(58005);function L(e){if(!e)return null;const{xmin:t,ymin:s,xmax:r,ymax:i,spatialReference:o}=e;return new V.Z({rings:[[[t,s],[t,i],[r,i],[r,s],[t,s]]],spatialReference:o})}class X{static fromGraphic(e,t,s,r){return new X(e.geometry,t,e.attributes,e.visible,e.uid,s,r)}constructor(e,t,s,r,i,o,n){this.geometry=e,this.symbol=t,this.attributes=s,this.visible=r,this.objectId=i,this.zOrder=o,this.displayId=n,this.bounds=(0,p.Ue)(),this.prevBounds=(0,p.Ue)(),this.size=[0,0,0,0]}get linearCIM(){return this.symbolResource?.symbolInfo.linearCIM}update(e,t,s){return(this.geometry!==e.geometry||this.attributes!==e.attributes||this.symbol!==t||this.zOrder!==s||this.visible!==e.visible)&&(this.prevBounds=this.bounds,this.bounds=(0,p.Ue)(),this.zOrder=s,this.geometry=e.geometry,this.attributes=e.attributes,this.symbol=t,this.visible=e.visible,this.symbolResource=null,this.projectedGeometry=null,!0)}async projectAndNormalize(e){let t=this.geometry;if(!t||!t.spatialReference||"mesh"===t.type)return;"extent"===t.type&&(t=L(t)),await(0,N._W)(t.spatialReference,e);const s=(0,H.SR)(t);if(!s)return;const r=(0,N.iV)(s,t.spatialReference,e);r&&(0,W.pW)(r),this.projectedGeometry=(0,m.YX)(r)?L(r):r}}class Y{constructor(e,t,s){this.added=e,this.updated=t,this.removed=s}hasAnyUpdate(){return!!(this.added.length||this.updated.length||this.removed.length)}}const B=1e-5;function Q(e,t){return t.zOrder-e.zOrder}class J{constructor(e,t,s,r,i){this._items=new Map,this._boundsDirty=!1,this._outSpatialReference=e,this._cimResourceManager=t,this._hittestDrawHelper=new D.Tu(t),this._tileInfoView=s,this._store=i;const o=s.getClosestInfoForScale(r);this._resolution=this._tileInfoView.getTileResolution(o.level)}items(){return this._items.values()}getItem(e){return this._items.get(e)}async update(e,t,s){const r=[],i=[],o=[],n=new Set,a=[];let h=0;for(const o of e.items){h++;const e=o.uid,c=this._items.get(e),u=t(o);if(n.add(e),c){c.update(o,u,h)&&(i.push(c),a.push(this._updateItem(c,s)));continue}const l=this._store.createDisplayIdForObjectId(e),d=X.fromGraphic(o,u,h,l);a.push(this._updateItem(d,s)),this._items.set(d.objectId,d),r.push(d)}for(const[e,t]of this._items.entries())n.has(e)||(this._store.releaseDisplayIdForObjectId(e),this._items.delete(e),o.push(t));return await Promise.all(a),this._index=null,new Y(r,i,o)}updateLevel(e){this._resolution!==e&&(this._index=null,this._boundsDirty=!0,this._resolution=e)}hitTest(e,t,s,r,i){const o=(0,n.Z)("esri-mobile"),a=(0,n.Z)(o?"hittest-2d-mobile-tolerance":"hittest-2d-desktop-tolerance"),h=a+(o?0:(0,n.Z)("hittest-2d-small-symbol-tolerance"));e=(0,E.or)(e,this._tileInfoView.spatialReference);const c=r*window.devicePixelRatio*h,u=(0,p.Ue)();u[0]=e-c,u[1]=t-c,u[2]=e+c,u[3]=t+c;const l=r*window.devicePixelRatio*a,d=(0,p.Ue)();d[0]=e-l,d[1]=t-l,d[2]=e+l,d[3]=t+l;const m=.5*r*(h+50),_=this._searchIndex(e-m,t-m,e+m,t+m);if(!_||0===_.length)return[];const y=[],f=(0,p.Ue)(),g=(0,p.Ue)();for(const e of _){if(!e.visible)continue;const{projectedGeometry:t,symbolResource:s}=e;this._getSymbolBounds(f,s,t,g,i),g[3]=g[2]=g[1]=g[0]=0,(0,p.kK)(f,u)&&y.push(e)}if(0===y.length)return[];const b=this._hittestDrawHelper,w=[];for(const e of y){const{projectedGeometry:t,symbolResource:s}=e;if(!s)continue;const{textInfo:o,symbolInfo:n}=s,a=n.cimSymbol;b.hitTest(d,a.symbol,t,o,i,r)&&w.push(e)}return w.sort(Q),w.map((e=>e.objectId))}queryItems(e){return 0===this._items.size?[]:this._searchForItems(e)}clear(){this._items.clear(),this._index=null}async _updateItem(e,t){await e.projectAndNormalize(this._outSpatialReference),await t(e);const{size:s}=e;s[0]=s[1]=s[2]=s[3]=0,this._getSymbolBounds(e.bounds,e.symbolResource,e.projectedGeometry,e.size,0)}_searchIndex(e,t,s,r){return this._boundsDirty&&(this._items.forEach((e=>this._getSymbolBounds(e.bounds,e.symbolResource,e.projectedGeometry,e.size,0))),this._boundsDirty=!1),this._index||(this._index=(0,j.r)(9,(e=>({minX:e.bounds[0],minY:e.bounds[1],maxX:e.bounds[2],maxY:e.bounds[3]}))),this._index.load(Array.from(this._items.values()))),this._index.search({minX:e,minY:t,maxX:s,maxY:r})}_searchForItems(e){const t=this._tileInfoView.spatialReference,s=e.bounds,r=(0,q.C5)(t);if(r&&t.isWrappable){const[t,i]=r.valid,o=Math.abs(s[2]-i){switch(e.type){case"processed-edit":throw new Error("InternalError: Unsupported command");case"update":return this._update()}}}),this.graphicUpdateHandler=this.graphicUpdateHandler.bind(this)}destroy(){this.container.destroy(),this.view=null,this.renderer=null,this._set("graphics",null),this._controller.abort(),this._graphicStore.clear(),this._attributeStore=null,this._hashToSymbolInfo.clear(),this._updateTracking.destroy(),this._commandQueue.destroy()}_initAttributeStore(){this._storage=new G.O({spatialReference:this.view.spatialReference,fields:new _.Z}),this._attributeStore=new C.p({isLocal:!0,update:async e=>{(0,n.Z)("esri-2d-update-debug");const t=this.container.attributeView.requestUpdate(e);this.container.requestRender(),await t,(0,n.Z)("esri-2d-update-debug")}});const e=(0,M.$F)(null,[]);this._attributeStore.update(e,this._storage,null),this.container.checkHighlight=()=>this._attributeStore.hasHighlight}initialize(){this._initAttributeStore(),this._metadata=U.m.create(this.view.spatialReference),this._resourceProxy=new v.f({fetch:e=>Promise.all(e.map((e=>this.view.stage.textureManager.rasterizeItem(e)))),fetchDictionary:e=>{throw new Error("InternalError: Graphics do not support Dictionary requests")}}),this.addHandles([(0,u.YP)((()=>this._effectiveRenderer),(()=>this._pushUpdate())),this.view.graphicsTileStore.on("update",this._onTileUpdate.bind(this)),this.container.on("attach",(()=>{this.addHandles([this.graphics.on("change",(()=>this._pushUpdate()))]),this._graphicStore=new J(this.view.spatialReference,this._cimResourceManager,this.view.featuresTilingScheme,this.view.state.scale,this._attributeStore),this._attached=!0,this.requestUpdate(),this._pushUpdate()}))]),this._updateTracking.addUpdateTracking("CommandQueue",this._commandQueue.updateTracking);const e=this.view.graphicsTileStore.tiles;this._onTileUpdate({added:e,removed:[]})}get _effectiveRenderer(){return"function"==typeof this.renderer?this.renderer():this.renderer}get _cimResourceManager(){return this.view.stage.textureManager.resourceManager}get updating(){const e=!this._attached||this._updateTracking.updating;return(0,n.Z)("esri-2d-log-updating"),e}hitTest(e){if(!this.view||this.view.suspended)return[];const{resolution:t,rotation:s}=this.view.state,r=this._graphicStore.hitTest(e.x,e.y,2,t,s),i=new Set(r),n=this.graphics.items.reduce(((e,t)=>(i.has(t.uid)&&e.set(t.uid,t),e)),new Map);return r.map((e=>n.get(e))).filter(o.pC)}requestUpdate(){this.updateRequested||(this.updateRequested=!0,this.requestUpdateCallback()),this.notifyChange("updating")}processUpdate(e){this.updateRequested&&(this.updateRequested=!1,this.update(e))}viewChange(){this.requestUpdate()}setHighlight(e){const t=[];for(const{objectId:s,highlightFlags:r}of e){const e=this._graphicStore.getItem(s)?.displayId;t.push({objectId:s,highlightFlags:r,displayId:e})}this._attributeStore.setHighlight(t,e),this._pushUpdate()}graphicUpdateHandler(e){this._pushUpdate()}update(e){this.updateRequested=!1,this._attached&&this._graphicStore.updateLevel(e.state.resolution)}_pushUpdate(){(0,c.R8)(this._commandQueue.push({type:"update"}))}async _update(){try{(0,n.Z)("esri-2d-update-debug");const e=await this._graphicStore.update(this.graphics,(e=>this._getSymbolForGraphic(e)),(e=>this._ensureSymbolResource(e)));if(!e.hasAnyUpdate())return void await this._attributeStore.sendUpdates();e.removed.length&&(this._cleanupRequired=!0),(0,n.Z)("esri-2d-update-debug");const t=this._createTileMessages(e);await this._fetchResources(t),this._write(t);for(const t of e.added)this._setFilterState(t);for(const t of e.updated)this._setFilterState(t);(0,n.Z)("esri-2d-update-debug"),await this._attributeStore.sendUpdates(),(0,n.Z)("esri-2d-update-debug")}catch(e){}this._cleanupSharedResources()}_createTileMessages(e){const t=new Map;for(const s of e.added){const e=this.view.graphicsTileStore.getIntersectingTiles(s.bounds);for(const r of e)ee.getOrCreate(r,t,this._metadata).addedOrModified.push(s)}for(const s of e.updated){const e=this.view.graphicsTileStore.getIntersectingTiles(s.prevBounds),r=this.view.graphicsTileStore.getIntersectingTiles(s.bounds);for(const r of e)ee.getOrCreate(r,t,this._metadata).removed.push(s.displayId);for(const e of r)ee.getOrCreate(e,t,this._metadata).addedOrModified.push(s)}for(const s of e.removed){const e=this.view.graphicsTileStore.getIntersectingTiles(s.bounds);for(const r of e)ee.getOrCreate(r,t,this._metadata).removed.push(s.displayId)}return Array.from(t.values())}async _fetchResources(e){for(const{tile:t,reader:s}of e){(0,n.Z)("esri-2d-update-debug");const e=s.getCursor();for(;e.next();)for(const s of e.getMeshWriters())s.enqueueRequest(this._resourceProxy,e,t.createArcadeEvaluationOptions(this.view.timeZone))}await this._resourceProxy.fetchEnqueuedResources()}_write(e){for(const t of e){(0,n.Z)("esri-2d-update-debug");const e=this._writeMeshes(t);let s=this._tiles.get(t.tile.key);s||(s=this._createFeatureTile(t.tile.key)),(0,n.Z)("esri-2d-update-debug"),this.container.onTileData(s,{type:"update",modify:e,remove:t.removed,end:!1,attributeEpoch:this._attributeStore.epoch}),this.container.requestRender()}}_writeMeshes(e){const t=new I._(e.tile.id),s=e.reader.getCursor();for(;s.next();){t.entityStart(s.getDisplayId(),s.getZOrder());for(const r of s.getMeshWriters())r.write(t,this._resourceProxy,s,e.tile.createArcadeEvaluationOptions(this.view.timeZone),e.tile.level);t.entityEnd()}return{...t.serialize().message,tileId:e.tile.id}}_setFilterState(e){const t=e.displayId,s=this._attributeStore.getHighlightFlags(e.objectId);this._attributeStore.setData(t,0,0,s|(e.visible?b.g3:0))}_getSymbolForGraphic(e){return null!=e.symbol?e.symbol:null!=this._effectiveRenderer?this._effectiveRenderer.getSymbol(e):this._getNullSymbol(e)}async _ensureSymbolResource(e){if(!e.symbol)return;const t=await this._getSymbolInfo(e.symbol);if(!t)return;const s=t.linearCIM.filter((e=>"text"===e.type));if(s.length>0){const r=await this._getTextResources(e,s);e.symbolResource={symbolInfo:t,textInfo:r}}else e.symbolResource={symbolInfo:t}}_getSymbolInfo(e){const t=e.hash();return this._hashToSymbolInfo.has(t)||this._hashToSymbolInfo.set(t,this._createSymbolInfo(t,e).catch((e=>null))),this._hashToSymbolInfo.get(t)}async _createSymbolInfo(e,t){const s=await this._convertToCIMSymbol(t),r=await this._createLinearCIM(s);if("text"===t.type)for(const e of r)"text"===e.type&&(e.lineWidth=t.lineWidth);return{hash:e,cimSymbol:s,linearCIM:r,meshWriters:await this._createMeshWriters(s,r)}}async _convertToCIMSymbol(e){const t=(0,y.rW)(e);return"web-style"===t.type?(await t.fetchCIMSymbol()).data:t}async _createLinearCIM(e){return await Promise.all(y.B$.fetchResources(e.symbol,this._cimResourceManager,[])),this.view.stage.cimAnalyzer.analyzeSymbolReference(e,!1)}async _createMeshWriters(e,t){(0,c.k_)(this._controller.signal);const s=this.container.instanceStore,r=await async function(e,t,s){const r=[],i={scaleInfo:(0,x.UX)(e),scaleExpression:null};for(const e of t)switch(e.type){case"marker":r.push(...(0,x.zw)(s.instances.marker,e,S.Jh,i));break;case"fill":null==e.spriteRasterizationParam?r.push(...(0,x.U9)(s.instances.fill,e,i)):r.push(...(0,x.ep)(s.instances.complexFill,e,!1,i));break;case"line":e.spriteRasterizationParam?r.push(...(0,x.cs)(s.instances.texturedLine,e,!1,i)):r.push(...(0,x.KR)(s.instances.line,e,!1,i));break;case"text":r.push(...(0,x.QA)(s.instances.text,e,S.Jh,i))}return r}(e,t,s);return Promise.all(r.map((e=>(0,R.fQ)(this._storage,this._resourceProxy,e.meshWriterName,(0,T.G)(e.id),e.options,{tileInfo:this.view.featuresTilingScheme.tileInfo},e.optionalAttributes))))}_onTileUpdate(e){if(e.added&&e.added.length>0)for(const t of e.added)this._updateTracking.addPromise(this._addTile(t));if(e.removed&&e.removed.length>0)for(const t of e.removed)this._removeTile(t.key)}_createFeatureTile(e){const t=this.view.featuresTilingScheme.getTileBounds((0,p.Ue)(),e),s=this.view.featuresTilingScheme.getTileResolution(e.level),r=new w.$(e,s,t[0],t[3]);return this._tiles.set(e,r),this.container.addChild(r),r}async _addTile(e){if(!this._attached)return;const t=this._graphicStore.queryItems(e);if(!t.length)return;const s=this._createFeatureTile(e.key),r=ee.fromItems(e,t,this._metadata);await this._fetchResources([r]);const i=this._writeMeshes(r);s.onMessage({type:"append",append:i,clear:!1,end:!0,attributeEpoch:this._attributeStore.epoch})}_removeTile(e){if(!this._tiles.has(e))return;const t=this._tiles.get(e);this.container.removeChild(t),t.destroy(),this._tiles.delete(e)}_getNullSymbol(e){const t=e.geometry;return(0,m.l9)(t)?g.mW:(0,m.oU)(t)||(0,m.YX)(t)?g.kD:this.defaultPointSymbolEnabled?g.G:null}async _getTextResources(e,t){const s=new Array,r=new Array;for(let i=0;i0){const t=f.E.resolveSymbolOverrides({type:"CIMSymbolReference",primitiveOverrides:a,symbol:{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,size:n.symbol.height,anchorPointUnits:"Relative",frame:{xmin:-5,ymin:-5,xmax:5,ymax:5},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{x:0,y:0},symbol:n.symbol,textString:n.textString}],scaleSymbolsProportionally:!0,respectFrame:!0}]}},e,this.view.spatialReference,null,(0,m.Ji)(e.projectedGeometry),null,null);t.then((e=>{const t=e.symbolLayers[0],{textString:s}=t.markerGraphics[0];r.push({type:"cim-rasterization-info",resource:{type:"text",textString:s||"",font:n.font}}),o.text=n.textString=s||""})),s.push(t)}else r.push({type:"cim-rasterization-info",resource:n})}s.length>0&&await Promise.all(s);const i=r.map((e=>this.view.stage.textureManager.rasterizeItem(e))),o=await Promise.all(i);(0,h.O3)(o);const n=new Map;for(let e=0;ethis.resizeHandler())),this.resizeHandler=()=>{const{panelScrollEl:e}=this;e&&"number"==typeof e.scrollHeight&&"number"==typeof e.offsetHeight&&(e.tabIndex=e.scrollHeight>e.offsetHeight?0:-1)},this.setContainerRef=e=>{this.containerEl=e},this.panelKeyDownHandler=e=>{this.closable&&"Escape"===e.key&&!e.defaultPrevented&&(this.close(),e.preventDefault())},this.close=()=>{this.closed=!0,this.calcitePanelClose.emit()},this.collapse=()=>{this.collapsed=!this.collapsed,this.calcitePanelToggle.emit()},this.panelScrollHandler=()=>{this.calcitePanelScroll.emit()},this.handleHeaderActionsStartSlotChange=e=>{this.hasStartActions=(0,s.d)(e)},this.handleHeaderActionsEndSlotChange=e=>{this.hasEndActions=(0,s.d)(e)},this.handleHeaderMenuActionsSlotChange=e=>{this.hasMenuItems=(0,s.d)(e)},this.handleActionBarSlotChange=e=>{const t=(0,s.s)(e).filter((e=>e?.matches("calcite-action-bar")));t.forEach((e=>e.layout="horizontal")),this.hasActionBar=!!t.length},this.handleHeaderContentSlotChange=e=>{this.hasHeaderContent=(0,s.d)(e)},this.handleFooterSlotChange=e=>{this.hasFooterContent=(0,s.d)(e)},this.handleFooterActionsSlotChange=e=>{this.hasFooterActions=(0,s.d)(e)},this.handleFabSlotChange=e=>{this.hasFab=(0,s.d)(e)},this.setPanelScrollEl=e=>{this.panelScrollEl=e,this.resizeObserver?.disconnect(),e&&(this.resizeObserver?.observe(e),this.resizeHandler())},this.closed=!1,this.disabled=!1,this.closable=!1,this.collapsed=!1,this.collapseDirection="down",this.collapsible=!1,this.headingLevel=void 0,this.loading=!1,this.heading=void 0,this.description=void 0,this.menuOpen=!1,this.messageOverrides=void 0,this.messages=void 0,this.overlayPositioning="absolute",this.hasStartActions=!1,this.hasEndActions=!1,this.hasMenuItems=!1,this.hasHeaderContent=!1,this.hasActionBar=!1,this.hasFooterContent=!1,this.hasFooterActions=!1,this.hasFab=!1,this.defaultMessages=void 0,this.effectiveLocale="",this.showHeaderContent=!1}onMessagesChange(){}connectedCallback(){(0,o.c)(this),(0,l.c)(this),(0,c.c)(this)}async componentWillLoad(){(0,n.s)(this),await(0,c.s)(this)}componentDidLoad(){(0,n.a)(this)}componentDidRender(){(0,o.u)(this)}disconnectedCallback(){(0,o.d)(this),(0,l.d)(this),(0,c.d)(this),this.resizeObserver?.disconnect()}effectiveLocaleChange(){(0,c.u)(this,this.effectiveLocale)}async setFocus(){await(0,n.c)(this),(0,s.f)(this.containerEl)}async scrollContentTo(e){this.panelScrollEl?.scrollTo(e)}renderHeaderContent(){const{heading:e,headingLevel:t,description:i,hasHeaderContent:s}=this,o=e?(0,a.h)(h.H,{class:x,level:t},e):null,n=i?(0,a.h)("span",{class:w},i):null;return s||!o&&!n?null:(0,a.h)("div",{class:S,key:"header-content"},o,n)}renderActionBar(){return(0,a.h)("div",{class:f,hidden:!this.hasActionBar},(0,a.h)("slot",{name:I,onSlotchange:this.handleActionBarSlotChange}))}renderHeaderSlottedContent(){return(0,a.h)("div",{class:S,hidden:!this.hasHeaderContent,key:"slotted-header-content"},(0,a.h)("slot",{name:R,onSlotchange:this.handleHeaderContentSlotChange}))}renderHeaderStartActions(){const{hasStartActions:e}=this;return(0,a.h)("div",{class:{[H]:!0,[E]:!0},hidden:!e,key:"header-actions-start"},(0,a.h)("slot",{name:D,onSlotchange:this.handleHeaderActionsStartSlotChange}))}renderHeaderActionsEnd(){const{hasEndActions:e,messages:t,closable:i,collapsed:o,collapseDirection:n,collapsible:l,hasMenuItems:c}=this,{collapse:r,expand:d,close:h}=t,g=[B,O];"up"===n&&g.reverse();const m=l?(0,a.h)("calcite-action",{"aria-expanded":(0,s.t)(!o),"aria-label":r,"data-test":"collapse",icon:o?g[0]:g[1],onClick:this.collapse,text:r,title:o?d:r}):null,u=i?(0,a.h)("calcite-action",{"aria-label":h,"data-test":"close",icon:M,onClick:this.close,text:h,title:h}):null,p=(0,a.h)("slot",{name:_,onSlotchange:this.handleHeaderActionsEndSlotChange}),b=e||m||u||c;return(0,a.h)("div",{class:{[z]:!0,[E]:!0},hidden:!b,key:"header-actions-end"},p,this.renderMenu(),m,u)}renderMenu(){const{hasMenuItems:e,messages:t,menuOpen:i}=this;return(0,a.h)("calcite-action-menu",{flipPlacements:["top","bottom"],hidden:!e,key:"menu",label:t.options,open:i,overlayPositioning:this.overlayPositioning,placement:"bottom-end"},(0,a.h)("calcite-action",{icon:P,slot:d.S.trigger,text:t.options}),(0,a.h)("slot",{name:T,onSlotchange:this.handleHeaderMenuActionsSlotChange}))}renderHeaderNode(){const{hasHeaderContent:e,hasStartActions:t,hasEndActions:i,closable:s,collapsible:o,hasMenuItems:n,hasActionBar:l}=this,c=this.renderHeaderContent(),r=e||!!c||t||i||o||s||n;return this.showHeaderContent=r,(0,a.h)("header",{class:C,hidden:!(r||l)},(0,a.h)("div",{class:{[k]:!0,[y]:l},hidden:!r},this.renderHeaderStartActions(),this.renderHeaderSlottedContent(),c,this.renderHeaderActionsEnd()),this.renderActionBar())}renderFooterNode(){const{hasFooterContent:e,hasFooterActions:t}=this,i=e||t;return(0,a.h)("footer",{class:A,hidden:!i},(0,a.h)("slot",{key:"footer-slot",name:W,onSlotchange:this.handleFooterSlotChange}),(0,a.h)("slot",{key:"footer-actions-slot",name:j,onSlotchange:this.handleFooterActionsSlotChange}))}renderContent(){return(0,a.h)("div",{class:F,hidden:this.collapsible&&this.collapsed,onScroll:this.panelScrollHandler,ref:this.setPanelScrollEl},(0,a.h)("slot",null),this.renderFab())}renderFab(){return(0,a.h)("div",{class:L,hidden:!this.hasFab},(0,a.h)("slot",{name:N,onSlotchange:this.handleFabSlotChange}))}render(){const{disabled:e,loading:t,panelKeyDownHandler:i,closed:n,closable:l}=this,c=(0,a.h)("article",{"aria-busy":(0,s.t)(t),class:v,hidden:n,onKeyDown:i,tabIndex:l?0:-1,ref:this.setContainerRef},this.renderHeaderNode(),this.renderContent(),this.renderFooterNode());return(0,a.h)(o.I,{disabled:e},t?(0,a.h)("calcite-scrim",{loading:t}):null,c)}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host{box-sizing:border-box;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2);font-size:var(--calcite-font-size--1)}:host *{box-sizing:border-box}:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{position:relative;display:flex;block-size:100%;inline-size:100%;flex:1 1 auto;overflow:hidden;--calcite-min-header-height:calc(var(--calcite-icon-size) * 3)}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.header{margin:0px;display:flex;align-content:space-between;align-items:center;fill:var(--calcite-color-text-2);color:var(--calcite-color-text-2)}.heading{margin:0px;padding:0px;font-weight:var(--calcite-font-weight-medium)}.header .heading{flex:1 1 auto;padding:0.5rem}.container{margin:0px;display:flex;inline-size:100%;flex:1 1 auto;flex-direction:column;align-items:stretch;background-color:var(--calcite-color-background);padding:0px;transition:max-block-size var(--calcite-animation-timing), inline-size var(--calcite-animation-timing)}.container[hidden]{display:none}.header{z-index:var(--calcite-z-index-header);display:flex;flex-direction:column;background-color:var(--calcite-color-foreground-1);border-block-end:var(--calcite-panel-header-border-block-end, 1px solid var(--calcite-color-border-3))}.header-container{display:flex;inline-size:100%;flex-direction:row;align-items:stretch;justify-content:flex-start;flex:0 0 auto}.header-container--border-end{border-block-end:1px solid var(--calcite-color-border-3)}.action-bar-container{inline-size:100%}.action-bar-container ::slotted(calcite-action-bar){inline-size:100%}.header-content{display:flex;flex-direction:column;overflow:hidden;padding-inline:0.75rem;padding-block:0.875rem;margin-inline-end:auto}.header-content .heading,.header-content .description{display:block;overflow-wrap:break-word;padding:0px}.header-content .heading{margin-inline:0px;margin-block:0px 0.25rem;font-size:var(--calcite-font-size-0);line-height:1.25rem;font-weight:var(--calcite-font-weight-medium)}.header-content .heading:only-child{margin-block-end:0px}.header-content .description{font-size:var(--calcite-font-size--1);line-height:1rem;color:var(--calcite-color-text-2)}.back-button{border-width:0px;border-style:solid;border-color:var(--calcite-color-border-3);border-inline-end-width:1px}.header-actions{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch}.header-actions--end{margin-inline-start:auto}.content-wrapper{display:flex;block-size:100%;flex:1 1 auto;flex-direction:column;flex-wrap:nowrap;align-items:stretch;overflow:auto;background-color:var(--calcite-color-background)}.footer{display:flex;inline-size:100%;justify-content:space-evenly;background-color:var(--calcite-color-foreground-1);flex:0 0 auto;padding:var(--calcite-panel-footer-padding, 0.5rem);border-block-start:1px solid var(--calcite-color-border-3)}.fab-container{position:sticky;inset-block-end:0px;z-index:var(--calcite-z-index-sticky);margin-block:0px;margin-inline:auto;display:block;padding:0.5rem;inset-inline:0;inline-size:-moz-fit-content;inline-size:fit-content}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-panel",{closed:[1540],disabled:[516],closable:[516],collapsed:[516],collapseDirection:[1,"collapse-direction"],collapsible:[516],headingLevel:[514,"heading-level"],loading:[516],heading:[1],description:[1],menuOpen:[516,"menu-open"],messageOverrides:[1040],messages:[1040],overlayPositioning:[513,"overlay-positioning"],hasStartActions:[32],hasEndActions:[32],hasMenuItems:[32],hasHeaderContent:[32],hasActionBar:[32],hasFooterContent:[32],hasFooterActions:[32],hasFab:[32],defaultMessages:[32],effectiveLocale:[32],showHeaderContent:[32],setFocus:[64],scrollContentTo:[64]},void 0,{messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}]);function K(){if("undefined"==typeof customElements)return;["calcite-panel","calcite-action","calcite-action-menu","calcite-icon","calcite-loader","calcite-popover","calcite-scrim"].forEach((e=>{switch(e){case"calcite-panel":customElements.get(e)||customElements.define(e,G);break;case"calcite-action":customElements.get(e)||(0,g.d)();break;case"calcite-action-menu":customElements.get(e)||(0,d.d)();break;case"calcite-icon":customElements.get(e)||(0,m.d)();break;case"calcite-loader":customElements.get(e)||(0,u.d)();break;case"calcite-popover":customElements.get(e)||(0,p.d)();break;case"calcite-scrim":customElements.get(e)||(0,b.d)()}}))}K();const q="back-button",J="chevron-left",Q="chevron-right",U="action-bar",V="header-actions-start",X="header-actions-end",Y="header-menu-actions",Z="header-content",$="fab",ee="footer",te="footer-actions",ie=(0,a.GH)(class extends a.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.calciteFlowItemBack=(0,a.yM)(this,"calciteFlowItemBack",7),this.calciteFlowItemScroll=(0,a.yM)(this,"calciteFlowItemScroll",6),this.calciteFlowItemClose=(0,a.yM)(this,"calciteFlowItemClose",6),this.calciteFlowItemToggle=(0,a.yM)(this,"calciteFlowItemToggle",6),this.handlePanelScroll=e=>{e.stopPropagation(),this.calciteFlowItemScroll.emit()},this.handlePanelClose=e=>{e.stopPropagation(),this.calciteFlowItemClose.emit()},this.handlePanelToggle=e=>{e.stopPropagation(),this.collapsed=e.target.collapsed,this.calciteFlowItemToggle.emit()},this.backButtonClick=()=>{this.calciteFlowItemBack.emit()},this.setBackRef=e=>{this.backButtonEl=e},this.setContainerRef=e=>{this.containerEl=e},this.closable=!1,this.closed=!1,this.collapsed=!1,this.collapseDirection="down",this.collapsible=!1,this.beforeBack=void 0,this.description=void 0,this.disabled=!1,this.heading=void 0,this.headingLevel=void 0,this.loading=!1,this.menuOpen=!1,this.messageOverrides=void 0,this.messages=void 0,this.overlayPositioning="absolute",this.showBackButton=!1,this.defaultMessages=void 0,this.effectiveLocale=""}onMessagesChange(){}connectedCallback(){(0,o.c)(this),(0,l.c)(this),(0,c.c)(this)}async componentWillLoad(){await(0,c.s)(this),(0,n.s)(this)}componentDidRender(){(0,o.u)(this)}disconnectedCallback(){(0,o.d)(this),(0,l.d)(this),(0,c.d)(this)}componentDidLoad(){(0,n.a)(this)}effectiveLocaleChange(){(0,c.u)(this,this.effectiveLocale)}async setFocus(){await(0,n.c)(this);const{backButtonEl:e,containerEl:t}=this;return e?e.setFocus():t?t.setFocus():void 0}async scrollContentTo(e){await(this.containerEl?.scrollContentTo(e))}renderBackButton(){const{el:e}=this,t="rtl"===(0,s.a)(e),{showBackButton:i,backButtonClick:o,messages:n}=this,l=n.back,c=t?Q:J;return i?(0,a.h)("calcite-action",{"aria-label":l,class:q,icon:c,key:"flow-back-button",onClick:o,scale:"s",slot:"header-actions-start",text:l,title:l,ref:this.setBackRef}):null}render(){const{collapsed:e,collapseDirection:t,collapsible:i,closable:s,closed:n,description:l,disabled:c,heading:r,headingLevel:d,loading:h,menuOpen:g,messages:m,overlayPositioning:u}=this;return(0,a.h)(a.AA,null,(0,a.h)(o.I,{disabled:c},(0,a.h)("calcite-panel",{closable:s,closed:n,collapseDirection:t,collapsed:e,collapsible:i,description:l,disabled:c,heading:r,headingLevel:d,loading:h,menuOpen:g,messageOverrides:m,onCalcitePanelClose:this.handlePanelClose,onCalcitePanelScroll:this.handlePanelScroll,onCalcitePanelToggle:this.handlePanelToggle,overlayPositioning:u,ref:this.setContainerRef},this.renderBackButton(),(0,a.h)("slot",{name:U,slot:I}),(0,a.h)("slot",{name:V,slot:D}),(0,a.h)("slot",{name:X,slot:_}),(0,a.h)("slot",{name:Z,slot:R}),(0,a.h)("slot",{name:Y,slot:T}),(0,a.h)("slot",{name:$,slot:N}),(0,a.h)("slot",{name:te,slot:j}),(0,a.h)("slot",{name:ee,slot:W}),(0,a.h)("slot",null))))}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host{box-sizing:border-box;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2);font-size:var(--calcite-font-size--1)}:host *{box-sizing:border-box}:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{position:relative;display:flex;inline-size:100%;flex:1 1 auto;overflow:hidden}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.back-button{border-width:0px;border-style:solid;border-color:var(--calcite-color-border-3);border-inline-end-width:1px}calcite-panel{--calcite-panel-footer-padding:var(--calcite-flow-item-footer-padding);--calcite-panel-header-border-block-end:var(--calcite-flow-item-header-border-block-end)}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-flow-item",{closable:[516],closed:[516],collapsed:[516],collapseDirection:[1,"collapse-direction"],collapsible:[516],beforeBack:[16],description:[1],disabled:[516],heading:[1],headingLevel:[514,"heading-level"],loading:[516],menuOpen:[516,"menu-open"],messageOverrides:[1040],messages:[1040],overlayPositioning:[513,"overlay-positioning"],showBackButton:[4,"show-back-button"],defaultMessages:[32],effectiveLocale:[32],setFocus:[64],scrollContentTo:[64]},void 0,{messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}]);function ae(){if("undefined"==typeof customElements)return;["calcite-flow-item","calcite-action","calcite-action-menu","calcite-icon","calcite-loader","calcite-panel","calcite-popover","calcite-scrim"].forEach((e=>{switch(e){case"calcite-flow-item":customElements.get(e)||customElements.define(e,ie);break;case"calcite-action":customElements.get(e)||(0,g.d)();break;case"calcite-action-menu":customElements.get(e)||(0,d.d)();break;case"calcite-icon":customElements.get(e)||(0,m.d)();break;case"calcite-loader":customElements.get(e)||(0,u.d)();break;case"calcite-panel":customElements.get(e)||K();break;case"calcite-popover":customElements.get(e)||(0,p.d)();break;case"calcite-scrim":customElements.get(e)||(0,b.d)()}}))}ae();const se=ie,oe=ae},45067:function(e,t,i){i.d(t,{d:function(){return u}});var a=i(77210),s=i(19417),o=i(53801),n=i(85545),l=i(79145),c=i(92708);const r="scrim",d="content",h=72,g=480,m=(0,a.GH)(class extends a.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.resizeObserver=(0,n.c)("resize",(()=>this.handleResize())),this.handleDefaultSlotChange=e=>{this.hasContent=(0,l.r)(e)},this.storeLoaderEl=e=>{this.loaderEl=e,this.handleResize()},this.loading=!1,this.messages=void 0,this.messageOverrides=void 0,this.loaderScale=void 0,this.defaultMessages=void 0,this.effectiveLocale="",this.hasContent=!1}onMessagesChange(){}effectiveLocaleChange(){(0,o.u)(this,this.effectiveLocale)}connectedCallback(){(0,s.c)(this),(0,o.c)(this),this.resizeObserver?.observe(this.el)}async componentWillLoad(){await(0,o.s)(this)}disconnectedCallback(){(0,s.d)(this),(0,o.d)(this),this.resizeObserver?.disconnect()}render(){const{hasContent:e,loading:t,messages:i}=this;return(0,a.h)("div",{class:r},t?(0,a.h)("calcite-loader",{label:i.loading,scale:this.loaderScale,ref:this.storeLoaderEl}):null,(0,a.h)("div",{class:d,hidden:!e},(0,a.h)("slot",{onSlotchange:this.handleDefaultSlotChange})))}getScale(e){return e=g?"l":"m"}handleResize(){const{loaderEl:e,el:t}=this;e&&(this.loaderScale=this.getScale(Math.min(t.clientHeight,t.clientWidth)??0))}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host{--calcite-scrim-background:var(--calcite-color-transparent-scrim);position:absolute;inset:0px;z-index:var(--calcite-z-index-overlay);display:flex;block-size:100%;inline-size:100%;flex-direction:column;align-items:stretch}@keyframes calcite-scrim-fade-in{0%{--tw-bg-opacity:0}100%{--tw-text-opacity:1}}.scrim{position:absolute;inset:0px;display:flex;flex-direction:column;align-content:center;align-items:center;justify-content:center;overflow:hidden;animation:calcite-scrim-fade-in var(--calcite-internal-animation-timing-medium) ease-in-out;background-color:var(--calcite-scrim-background, var(--calcite-color-transparent-scrim))}.content{padding:1rem}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-scrim",{loading:[516],messages:[1040],messageOverrides:[1040],loaderScale:[32],defaultMessages:[32],effectiveLocale:[32],hasContent:[32]},void 0,{messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}]);function u(){if("undefined"==typeof customElements)return;["calcite-scrim","calcite-loader"].forEach((e=>{switch(e){case"calcite-scrim":customElements.get(e)||customElements.define(e,m);break;case"calcite-loader":customElements.get(e)||(0,c.d)()}}))}u()}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9060.52eeae005e65d61004cd.js.LICENSE.txt b/docs/sentinel1-explorer/9060.52eeae005e65d61004cd.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/9060.52eeae005e65d61004cd.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/9067.2437439b6dd9482dc391.js b/docs/sentinel1-explorer/9067.2437439b6dd9482dc391.js new file mode 100644 index 00000000..ab5cea11 --- /dev/null +++ b/docs/sentinel1-explorer/9067.2437439b6dd9482dc391.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9067],{89067:function(t,i,s){s.r(i),s.d(i,{G:function(){return e},g:function(){return o}});var n=s(58340);var h={exports:{}};!function(t,i){var s=function(){function t(t){if("number"==typeof t)return Q.Tc.Zg(t);if(null==t)return null;if(null!=rt[t])return Q.Tc.Zg(rt[t]);throw Error("Unrecognised Unit Type")}function i(t){if("number"==typeof t)return Q.Tc.Zg(t);if(null==t)return null;if(null!=et[t])return Q.Tc.Zg(et[t]);throw Error("Unrecognised Unit Type")}function s(t){if(t)switch(t){case"loxodrome":return 1;case"great-elliptic":return 2;case"normal-section":return 3;case"shape-preserving":return 4}return 0}function n(t,i,s,n){if(null==s||s.B())return null;switch(s.getType()){case Q.qn.Point:return t.exportPoint(i,s,n);case Q.qn.Polygon:return t.exportPolygon(i,s,n);case Q.qn.Polyline:return t.exportPolyline(i,s,n);case Q.qn.MultiPoint:return t.exportMultipoint(i,s,n);case Q.qn.Envelope:return t.exportExtent(i,s,n)}return null}function h(t,i,s,n){if(s.getType()!==Q.qn.Point)throw Error("Geometry not Point");return t.exportPoint(i,s,n)}function r(t,i,s){return t.convertToGEGeometry(i,s)}function e(t){var i=t.wkid;t=t.wkt2||t.wkt;var s=ot.get(i||t);return null==s&&(-1!==i&&null!=i?(s=Q.Eg.create(i),ot.set(i,s)):t&&(s=Q.Eg.qP(t),ot.set(t,s)),ut.has(i||t)&&s.VW(ut.get(i||t))),s}function o(t){var i,s,n;if(null==t)return null;var h=e(t);return t=h.Hd(),h=h.Kn(),(i={}).tolerance=h,i.unitType=null==t?-1:t.od,i.unitID=null==t?-1:t.Ec(),i.unitBaseFactor=null==t?0:t.ai,i.unitSquareDerivative=null==t?0:null!==(n=null===(s=Q.Tc.aG(t))||void 0===s?void 0:s.Ec())&&void 0!==n?n:0,i}function a(t,i,s,h){return null==s?null:(s=Q.$b.clip(r(t,at,s),r(t,at,h),e(i)),n(t,at,s,i))}function u(t,i,s,h){s=Q.$b.dl(r(t,at,s),r(t,at,h),e(i)),h=[];for(var o=0;o>6)>>1},i.Rn=function(t){return 0!=(32&t)},i.US=function(t){return 0!=(128&t)},i.yd=function(t){return 0!=(256&t)},i.xj=function(t){return 0!=(512&t)},i.Hc=function(t){return 0!=(1024&t)},i.prototype.Of=function(){var t=this.Ia();return this.copyTo(t),t},i.prototype.mg=function(){return null},i.jg=function(t){var i=t.Ia();return t.copyTo(i),i},i.prototype.vc=function(){0<=this.VA&&(this.VA+=2147483649)},i.Ax=function(s){var n=s.getType();if(i.xj(n))return s.I();if(s.B())return 0;if(197==n)return 4;if(33==n)return 1;if(i.yd(n))return 2;throw t.i.fa("missing type")},i}();t.aa=s}(Q||(Q={})),$=Q||(Q={}),Z=function(){function t(){this.y=this.x=0}return t.construct=function(i,s){var n=new t;return n.x=i,n.y=s,n},t.al=function(i){var s=new t;return s.x=i.x,s.y=i.y,s},t.prototype.ma=function(t,i){this.x=t,this.y=i},t.prototype.L=function(t){this.x=t.x,this.y=t.y},t.prototype.fq=function(t,i){return this.x===t&&this.y===i},t.prototype.Rz=function(t){return 2220446049250313e-31>=Math.abs(this.x-t.x)&&2220446049250313e-31>=Math.abs(this.y-t.y)},t.prototype.qb=function(t){return this.x===t.x&&this.y===t.y},t.prototype.Nb=function(i){return i==this||i instanceof t&&this.x==i.x&&this.y==i.y},t.prototype.sub=function(t){this.x-=t.x,this.y-=t.y},t.prototype.uc=function(t,i){this.x=t.x-i.x,this.y=t.y-i.y},t.prototype.add=function(t,i){void 0!==i?(this.x=t.x+i.x,this.y=t.y+i.y):(this.x+=t.x,this.y+=t.y)},t.prototype.Sq=function(){this.x=-this.x,this.y=-this.y},t.prototype.mt=function(t){this.x=-t.x,this.y=-t.y},t.prototype.NS=function(t,i,s){this.x=t.x*(1-s)+i.x*s,this.y=t.y*(1-s)+i.y*s},t.prototype.Ct=function(t,i){this.x=this.x*t+i.x,this.y=this.y*t+i.y},t.prototype.HW=function(t,i,s){this.x=i.x*t+s.x,this.y=i.y*t+s.y},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.compare=function(t){return this.yt.y?1:this.xt.x?1:0},t.prototype.normalize=function(){var t=this.length();0==t&&(this.x=1,this.y=0),this.x/=t,this.y/=t},t.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.Sk=function(){return this.x*this.x+this.y*this.y},t.tb=function(t,i){return Math.sqrt(this.yc(t,i))},t.Oy=function(t,i,s,n){return t-=s,i-=n,Math.sqrt(t*t+i*i)},t.prototype.Qh=function(t){return this.x*t.x+this.y*t.y},t.prototype.fD=function(t){return Math.abs(this.x*t.x)+Math.abs(this.y*t.y)},t.prototype.wi=function(t){return this.x*t.y-this.y*t.x},t.prototype.Bt=function(t,i){var s=-this.x*i+this.y*t;this.x=this.x*t+this.y*i,this.y=s},t.prototype.Hv=function(){var t=this.x;this.x=-this.y,this.y=t},t.prototype.MG=function(t){this.x=-t.y,this.y=t.x},t.prototype.ar=function(){var t=this.x;this.x=this.y,this.y=-t},t.prototype.qu=function(){return 0(t=t.wi(i))?1:0(s=n.value())?-1:0t?-1:0=s?t+(i-t)*s:i-(i-t)*(1-s)},t.OG=function(t,i,s,n){.5>=s?(n.x=t.x+(i.x-t.x)*s,n.y=t.y+(i.y-t.y)*s):(n.x=i.x-(i.x-t.x)*(1-s),n.y=i.y-(i.y-t.y)*(1-s))},t.lT=function(t,i,s,n,h,r){.5>=h?(r.x=t+(s-t)*h,r.y=i+(n-i)*h):(r.x=s-(s-t)*(1-h),r.y=n-(n-i)*(1-h))},t}()}(Q||(Q={})),function(t){var i=function(i){function s(){var t=i.call(this)||this;return t.sa=0,t.na=0,t.pa=0,t.la=0,t.ka=null,t}return _(s,i),s.prototype.ac=function(){return t.h.construct(this.sa,this.na)},s.prototype.Yp=function(t){t.x=this.sa,t.y=this.na},s.prototype.Dc=function(t){this.em(0,t)},s.prototype.ZB=function(i,s){this.em(0,t.h.construct(i,s))},s.prototype.To=function(t){this.hD(0,t)},s.prototype.setStart=function(t){this.uD(0,t)},s.prototype.wv=function(t,i){return this.Od(0,t,i)},s.prototype.YB=function(t,i,s){this.tn(0,t,i,s)},s.prototype.wc=function(){return t.h.construct(this.pa,this.la)},s.prototype.Tr=function(t){t.x=this.pa,t.y=this.la},s.prototype.Qc=function(t){this.em(1,t)},s.prototype.Ql=function(i,s){this.em(1,t.h.construct(i,s))},s.prototype.Po=function(t){this.hD(1,t)},s.prototype.setEnd=function(t){this.uD(1,t)},s.prototype.gv=function(t,i){return this.Od(1,t,i)},s.prototype.OB=function(t,i,s){this.tn(1,t,i,s)},s.prototype.Db=function(){return 1},s.prototype.B=function(){return this.Ac()},s.prototype.Oa=function(){},s.prototype.Ke=function(){return 0},s.prototype.Ea=function(t,i,s,n,h){return this.KM(t,i,s,n,h)},s.prototype.isIntersecting=function(t,i){return 0!=this.zr(t,i,!1)},s.prototype.qs=function(t,i){return this.ru(t,i,!1)},s.prototype.ru=function(){return null},s.prototype.Ac=function(){return!1},s.prototype.ay=function(i){if(this.vc(),null==this.ka&&0=t.ra.Va(n))throw t.i.ce();var r=this.description.Pf(n);return 0<=r?(null!=this.ka&&this.ay(this.description.Ae.length-2),this.ka[s.Gg(this.description,i)+this.description.$j(r)-2+h]):t.ra.se(n)},s.prototype.tn=function(i,n,h,r){if(this.vc(),h>=t.ra.Va(n))throw t.i.ce();var e=this.description.Pf(n);0>e&&(this.re(n),e=this.description.Pf(n)),0==n?0!=i?0!=h?this.la=r:this.pa=r:0!=h?this.na=r:this.sa=r:(null==this.ka&&this.ay(this.description.Ae.length-2),this.ka[s.Gg(this.description,i)+this.description.$j(e)-2+h]=r)},s.prototype.copyTo=function(i){if(i.getType()!=this.getType())throw t.i.N();i.description=this.description,i.ay(this.description.Ae.length-2),s.gM(this.ka,i.ka,2*(this.description.Ae.length-2)),i.sa=this.sa,i.na=this.na,i.pa=this.pa,i.la=this.la,i.vc(),this.op(i)},s.prototype.Tg=function(i,s){var n=new t.Nc;return this.Ac()?(n.Oa(),n):(n.oa=this.Od(0,i,s),n.va=n.oa,n.Lk(this.Od(1,i,s)),n)},s.prototype.ZI=function(t){this.Ac()?t.Oa():(t.oa=this.Od(0,0,0),t.va=t.oa,t.Lk(this.Od(1,0,0)))},s.prototype.Tw=function(i,s){s.Nf(this.description),s.Cb(this.hc(i));for(var n=1,h=this.description.Aa;ni||i>=this.wa)throw t.i.fa("index out of bounds");this.mc(),s.Nf(this.description),s.B()&&s.un();for(var n=0;ni||i>=this.I())throw t.i.ce();this.mc(),this.za[0].tc(2*i,s)},s.prototype.Na=function(i){var s=new t.h;return this.D(i,s),s},s.prototype.Gc=function(t,i){this.za[0].tc(2*t,i)},s.prototype.Cb=function(i,s,n){if(0>i||i>=this.wa)throw t.i.ce();this.mc();var h=this.za[0];void 0!==n?(h.write(2*i,s),h.write(2*i+1,n)):h.Tt(2*i,s),this.Pc(1993)},s.prototype.Cz=function(){if(void 0>=this.I())throw t.i.ce();this.mc();var i=this.za[0],s=new t.Nd;return s.x=i.read(NaN),s.y=i.read(NaN),s.z=this.hasAttribute(1)?this.za[1].eg():t.ra.se(1),s},s.prototype.dC=function(i){if(0>i||i>=this.I())throw t.i.ce();this.re(1),this.mc(),this.Pc(1993);var s=this.za[0];s.write(2*i,(void 0).x),s.write(2*i+1,(void 0).y),this.za[1].pr(i,(void 0).z)},s.prototype.Uc=function(i,s,n){if(0>s||s>=this.wa)throw t.i.ce();var h=t.ra.Va(i);if(n>=h)throw t.i.ce();this.mc();var r=this.description.Pf(i);return 0<=r?this.za[r].eg(s*h+n):t.ra.se(i)},s.prototype.yF=function(t,i){return this.Uc(t,i)},s.prototype.setAttribute=function(i,s,n,h){if(0>s||s>=this.wa)throw t.i.ce();var r=t.ra.Va(i);if(n>=r)throw t.i.ce();this.re(i),this.mc(),i=this.description.Pf(i),this.Pc(1993),this.za[i].pr(s*r+n,h)},s.prototype.ub=function(t){return this.wx(),this.re(t),this.mc(),this.za[this.description.Pf(t)]},s.prototype.hn=function(i,s){if(null!=s&&t.ra.Tp(i)!=s.Tp())throw t.i.N();this.re(i),i=this.description.Pf(i),null==this.za&&(this.za=t.Yc.qI(this.description.Aa)),this.za[i]=s,this.Pc(16777215)},s.prototype.sn=function(i){var s=null;if(null!=this.za){var n=t.ee.Iw(i,this.description);s=[];for(var h=0,r=i.Aa;hthis.wa+5?(5*this.wa+3)/4:this.wa),this.za[i].resize(h*n,t.ra.se(s))),hi)throw t.i.N();i!=this.wa&&(this.wa=i,this.Pc(65535))},s.prototype.om=function(t){if(!this.ak(1)){if(!this.ak(2))return 0;if(this.QT>=t)return this.ak(8)?1:2}return-1},s.prototype.Ch=function(i,s){if(this.QT=s,-1==i)this.Lf(1,!0),this.Lf(8,!0);else if(this.Lf(1,!1),this.Lf(8,!0),0==i)this.Lf(2,!1),this.Lf(4,!1);else if(1==i)this.Lf(2,!0),this.Lf(4,!1);else{if(2!=i)throw t.i.fa("internal error.");this.Lf(2,!0),this.Lf(4,!0)}},s.prototype.lM=function(){null!=this.Bb&&(this.Bb=null)},s.prototype.kD=function(i,s,n,h){if(0>i||i>=this.wa)throw t.i.fa("index out of bounds");if(0>s||s>=this.wa)throw t.i.fa("index out of bounds");this.mc(),h.Nf(this.description),h.B()&&h.un();for(var r=0;ri||i>=this.wa)throw t.i.ce();this.mc();var s=new t.Sa;s.Nf(this.description),s.B()&&s.un();for(var n=0;ni||i>=this.wa)throw t.i.ce();if(s.B())throw t.i.N();this.mc();for(var n=s.description,h=0;ht.O.bB(this.Tm)>>1:-1!=s)?i=s:h=o,s=!0;;){if(0>h){if(-1==(o=e[7*i])){h=i,n=this.ob.Ll([-1,-1,i,n,this.gl(),-1,-1]),(e=this.ob.o)[7*i]=n;break}i=o}else{if(-1==(o=e[7*i+1])){h=e[7*i+6],n=this.ob.Ll([-1,-1,i,n,this.gl(),-1,-1]),(e=this.ob.o)[7*i+1]=n;break}i=o}s&&(h*=-1,s=!1)}return this.oy(n,e),-1===e[7*n+2]&&(e[7*r]=n),this.vp(h,n,r,e),n},i.prototype.FF=function(){return this.iR(this.Qe)},i.prototype.vd=function(t,i){i=-1==i?this.Qe:i,this.Rv?this.LP(t,i):this.iY(t,i)},i.prototype.search=function(t,i){for(i=this.sv(i);-1!=i;){var s=this.Zn.compare(this,t,i);if(0==s)return i;i=0>s?this.ll(i):this.Xp(i)}return-1},i.prototype.IW=function(t){for(var i=this.sv(-1),s=-1;-1!=i;){var n=t.compare(this,i);if(0==n)return i;0>n?i=this.ll(i):(s=i,i=this.Xp(i))}return s},i.prototype.uJ=function(t){for(var i=this.sv(-1),s=-1;-1!=i;){var n=t.compare(this,i);if(0==n)return i;0>n?(s=i,i=this.ll(i)):i=this.Xp(i)}return s},i.prototype.ja=function(t){return this.ob.T(t,3)},i.prototype.ll=function(t){return this.ob.T(t,0)},i.prototype.Xp=function(t){return this.ob.T(t,1)},i.prototype.getParent=function(t){return this.ob.T(t,2)},i.prototype.lb=function(t){return this.ob.T(t,6)},i.prototype.we=function(t){return this.ob.T(t,5)},i.prototype.rc=function(t){return-1==t?this.kl(this.Qe):this.kl(t)},i.prototype.Fc=function(t){return-1==t?this.Zr(this.Qe):this.Zr(t)},i.prototype.ZR=function(t){return-1==t?this.bG(this.Qe):this.bG(t)},i.prototype.Sj=function(t,i){this.NB(t,i)},i.prototype.sv=function(t){return-1==t?this.YF(this.Qe):this.YF(t)},i.prototype.clear=function(){this.ob.mj(!1),this.Qe=-1},i.prototype.size=function(t){return-1==t?this.$F(this.Qe):this.$F(t)},i.prototype.KN=function(t,i){for(var s=i[7*t],n=i[7*t+1],h=i[7*t+4];-1!=s||-1!=n;){var r=-1!=s?i[7*s+4]:2147483647;if(n=-1!=n?i[7*n+4]:2147483647,h<=Math.min(r,n))break;r<=n?this.sJ(s,i):this.rJ(t,i),s=i[7*t],n=i[7*t+1]}},i.prototype.oy=function(t,i){if(this.Rv)for(var s=i[7*t+4],n=i[7*t+2];-1!=n&&i[7*n+4]>s;)i[7*n]==t?this.sJ(t,i):this.rJ(n,i),n=i[7*t+2]},i.prototype.rJ=function(t,i){var s=i[7*t+1];i[7*s+2]=i[7*t+2],i[7*t+2]=s;var n=i[7*s];i[7*t+1]=n,-1!=n&&(i[7*n+2]=t),i[7*s]=t,-1!=(n=i[7*s+2])&&(i[7*n]==t?i[7*n]=s:i[7*n+1]=s)},i.prototype.sJ=function(t,i){var s=i[7*t+2];i[7*t+2]=i[7*s+2],i[7*s+2]=t;var n=i[7*t+1];i[7*s]=n,-1!=n&&(i[7*n+2]=s),i[7*t+1]=s,-1!=(n=i[7*t+2])&&(i[7*n]===s?i[7*n]=t:i[7*n+1]=t)},i.prototype.Pk=function(t,i){this.ob.S(t,2,i)},i.prototype.TB=function(t,i){this.ob.S(t,0,i)},i.prototype.XB=function(t,i){this.ob.S(t,1,i)},i.prototype.WB=function(t,i){this.ob.S(t,5,i)},i.prototype.ex=function(t,i){this.ob.S(t,6,i)},i.prototype.XJ=function(t,i){this.ob.S(i,0,t)},i.prototype.rX=function(t){this.ob.S(t,4,0)},i.prototype.uX=function(t,i){this.ob.S(i,5,t)},i.prototype.YF=function(t){return-1==t?-1:this.ob.T(t,0)},i.prototype.kl=function(t){return-1==t?-1:this.ob.T(t,1)},i.prototype.Zr=function(t){return-1==t?-1:this.ob.T(t,2)},i.prototype.iR=function(t){return-1==t?-1:this.ob.T(t,3)},i.prototype.$F=function(t){return-1==t?0:this.ob.T(t,4)},i.prototype.bG=function(t){return this.ob.T(t,5)},i.prototype.Pw=function(){return this.ob.Ll([-1,-1,-1,void 0,this.gl(),-1,-1])},i.prototype.fl=function(t){-1!=t&&this.ob.jd(t)},i.prototype.gl=function(){return this.Tm=t.O.bB(this.Tm),1073741823&this.Tm},i.prototype.FD=function(t,i,s){var n=this.ob.o;if(-1==s||-1==n[7*s])return t=this.ob.Ll([-1,-1,-1,t,this.gl(),-1,-1]),(n=this.ob.o)[7*s]=t,this.vp(-1,t,s,n),t;for(var h=-1==s?-1:n[7*s];;){var r=-1==i?1:this.Zn.compare(this,t,h);if(0>r){if(-1==(r=this.ll(h))){i=h,t=this.ob.Ll([-1,-1,h,t,this.gl(),-1,-1]),(n=this.ob.o)[7*h]=t;break}h=r}else{if(1==i&&0==r)return n[7*s+3]=h,-1;if(-1==(r=n[7*h+1])){i=n[7*h+6],t=this.ob.Ll([-1,-1,h,t,this.gl(),-1,-1]),(n=this.ob.o)[7*h+1]=t;break}h=r}}return this.oy(t,n),-1===n[7*t+2]&&(n[7*s]=t),this.vp(i,t,s,n),t},i.prototype.vp=function(t,i,s,n){if(-1!=t){var h=n[7*t+5];n[7*t+5]=i}else h=-1==s?-1:n[7*s+2];n[7*i+5]=h,-1!=h&&(n[7*h+6]=i),n[7*i+6]=t,t==(-1==s?-1:n[7*s+1])&&(n[7*s+1]=i),-1==t&&(n[7*s+2]=i),n[7*s+4]=(-1==s?0:n[7*s+4])+1},i.prototype.AB=function(t,i){var s=this.ob.o,n=s[7*t+5];t=s[7*t+6],-1!=n?s[7*n+6]=t:s[7*i+1]=t,-1!=t?s[7*t+5]=n:s[7*i+2]=n,s[7*i+4]=-1===i?-1:s[7*i+4]-1},i.prototype.iY=function(i,s){this.AB(i,s);var n=this.ll(i),h=this.Xp(i),r=this.getParent(i),e=i;if(-1!=n&&-1!=h){this.Tm=t.O.bB(this.Tm);var o=1073741823=t.oa:t.va>=this.oa},i.prototype.move=function(t){this.B()||(this.oa+=t,this.va+=t)},i.prototype.normalize=function(){if(!isNaN(this.oa)){if(this.oa>this.va){var t=this.oa;this.oa=this.va,this.va=t}isNaN(this.va)&&this.Oa()}},i.prototype.Oa=function(){this.va=this.oa=NaN},i.prototype.B=function(){return isNaN(this.oa)},i.prototype.Zb=function(t){"number"==typeof t?this.B()?this.va=this.oa=t:this.Lk(t):t.B()||(this.B()?(this.oa=t.oa,this.va=t.va):(this.oa>t.oa&&(this.oa=t.oa),this.vathis.va&&this.Oa()))},i.prototype.Lk=function(t){tthis.va&&(this.va=t)},i.prototype.contains=function(t){return"number"==typeof t?t>=this.oa&&t<=this.va:t.oa>=this.oa&&t.va<=this.va},i.prototype.Ea=function(t){this.B()||t.B()?this.Oa():(this.oat.va&&(this.va=t.va),this.oa>this.va&&this.Oa())},i.prototype.W=function(t){this.B()||(this.oa-=t,this.va+=t,this.vai?(this.oa=i,this.va=t):(this.oa=t,this.va=i)},i.prototype.It=function(i){return t.O.Rk(i,this.oa,this.va)},i.prototype.R=function(){return this.va-this.oa},i.prototype.sf=function(){return.5*(this.oa+this.va)},i.prototype.Nb=function(t){return t==this||t instanceof i&&(!(!this.B()||!t.B())||this.oa==t.oa&&this.va==t.va)},i.prototype.cc=function(){return t.O.uj(t.O.uj())},i}();t.Nc=i}(Q||(Q={})),function(t){var i=new t.Nc,s=new t.Nc,n=function(){this.ne=null,this.pb=-1,this.sb=new t.yb,this.qA=55555555,this.Tv=this.Vv=!1,this.Uf=new t.Nc,this.Uf.KB(0,0)};t.IY=n;var h=function(){function h(i,s,h){this.g=i,this.Hk=NaN,this.NH=this.Kq=0,this.OH=NaN,this.qa=s,this.Nq=10*s,this.PH=this.QH=NaN,this.rg=!1,this.Dm=this.gt=this.Lo=this.Xs=this.Ws=-1,this.gA=h,this.TA=new n,this.YH=new n,t.O.truncate(3*i.fd/2)}return h.prototype.mG=function(t,i,s,n){t.ne=null===n?null:n[s[5*i]],t.Tv=null!=t.ne,t.Tv||(-1!==(n=s[5*i+2])&&this.g.mW(s[5*i],s[5*n],t.sb),t.ne=t.sb,t.Uf.KB(t.sb.sa,t.sb.pa),t.Uf.va+=this.qa,t.sb.rI(),t.Vv=t.sb.la==t.sb.na,t.Vv||(t.qA=(t.sb.pa-t.sb.sa)/(t.sb.la-t.sb.na)))},h.prototype.OO=function(t,i){var s=t.zr(i,this.qa,!0);return 0!=s?2==s?this.Qy():this.xi():(t.Yp(it),t.Tr(st),i.Yp(nt),i.Tr(ht),tt.ma(this.Kq,this.Hk),it.qb(nt)&&this.Hk==it.y?0>st.compare(ht)?tt.L(st):tt.L(ht):it.qb(ht)&&this.Hk==it.y?0>st.compare(nt)?tt.L(st):tt.L(nt):nt.qb(st)&&this.Hk==nt.y?0>it.compare(ht)?tt.L(it):tt.L(ht):st.qb(ht)&&this.Hk==st.y&&(0>it.compare(nt)?tt.L(it):tt.L(nt)),t.Pe(tt.y,tt.x)s&&0>t?-1:0i.pa){if(i.pa>i.sa&&i.la-i.na<2*this.qa&&t.vi(i.pa,i.la,this.qa))return this.xi()}else if((i.la-i.na)/(i.pa-i.sa)*(t.pa-t.sa)i.sa&&i.la-i.na<2*this.qa&&t.vi(i.pa,i.la,this.qa))return this.xi()}else if((i.la-i.na)/(i.pa-i.sa)*(t.sa-t.pa)h&&0>n?-1:0i+r?s:n.vi(t.sa,t.na,this.qa)?this.xi():hi+r?s:n.vi(t.pa,t.la,this.qa)?this.xi():he?1:0)},h.prototype.Kr=function(){this.rg=!1},h.prototype.rm=function(){return this.Ni},h.prototype.$J=function(t,i){this.Hk=t,this.Kq=i,this.gt=this.Lo=this.Xs=this.Ws=-1},h.prototype.compare=function(t,i,s){return this.rg?-1:(t=t.ja(s),this.Dm=s,this.RE(i,i,t,t))},h.prototype.RE=function(t,i,s,n){if(this.Lo==i)var h=this.TA;else this.Lo=i,h=this.TA,this.TA.pb=t,this.mG(h,i,this.g.td.o,this.g.We);if(null==r){this.gt=n;var r=this.YH;this.YH.pb=s,this.mG(r,n,this.g.td.o,this.g.We)}return h.Tv||r.Tv?this.NO(i,n,h,r):h.Uf.vathis.Uf.va)return 1;if(this.ie.na==this.ie.la)return this.Dm=i,this.rg=!0,0;this.ie.rI(),n=this.ie.ac(),(s=new t.h).uc(this.ie.wc(),n),s.ar();var h=new t.h;return h.uc(this.Gq,n),n=s.Qh(h),(n/=s.length())<10*-this.qa?-1:n>10*this.qa?1:this.ie.qs(this.Gq,this.qa)&&((s=Math.abs(n))n?-1:1},i}();t.aM=i}(Q||(Q={})),function(t){function i(t,i,s,n){s=new Float64Array(t.subarray(s,n)),t.set(s,i)}var s=function(){function s(t){this.Pb=this.pk=!1,this.o=null;var i=t;2>i&&(i=2),this.o=new Float64Array(i),this.size=t}return s.prototype.rotate=function(i,s,n){if(this.Pb)throw t.i.fa("invalid_call");if(sn||i>n)throw t.i.N();i!=s&&n!=s&&(this.ni(i,s-i,1),this.ni(s,n-s,1),this.ni(i,n-i,1))},s.qf=function(t,i){var n=new s(t),h=n.o;if(2>t&&(t=2),0!==i)for(var r=0;ri&&(n.size=i),2>(i=n.size)&&(i=2),n.o=new Float64Array(i),n.o.set(t.o.length<=i?t.o:t.o.subarray(0,i),0),n},s.prototype.Jb=function(t){0>=t||(null==this.o?this.o=new Float64Array(t):t<=this.o.length||(0this.o.length&&(n=t.O.truncate(64>i?Math.max(2*i,4):5*i/4),(n=new Float64Array(n)).set(this.o),this.o=n),n=this.o;for(var h=this.size;hthis.o.length)&&this.resize(i),this.pk)throw t.i.fa("invalid call. Attribute Stream is locked and cannot be resized.");this.size=i},s.prototype.pr=function(t,i){this.write(t,i)},s.prototype.An=function(i,s,n){for(var h=this.size;sh||n>r&&h!=r)return!1;for(n>h&&(n=h);ir||0!=n%r))throw t.i.N();var e=this.size;if(this.resize(e+n),h)this.o.set(i.o.subarray(s,s+n),e);else{h=n;for(var o=0;oo||0!=r%o))throw t.i.N();var u=this.size-a;if(uo&&(o=this.size),this.size+2*r>this.o.length?this.resize(this.size+2*r):this.size+=2*r,i(this.o,s+2*r,s,s+(o-s)),e)for(e=0;ei||0>s||0>h)throw t.i.N();if(!r&&(0>=e||0!=s%e))throw t.i.N();if(n.sizethis.size)throw t.i.Hb();0n||0!=s%n)throw t.i.Hb();for(var h=s>>1,r=0;rs||0>n||0>s||n+s>this.size)throw t.i.N();for(var h=s;hi||0>s||0>h)throw t.i.N();if(0!=s)for(this.size<(s<<1)+i&&this.resize((s<<1)+i),r||(i+=s-1<<1),r=r?2:-2,s+=h;hi||0>s)throw t.i.N();if(0!=s){this.size<(s<<1)+i&&this.resize((s<<1)+i),s+=0;for(var h=0;hi||0>s||0>h||this.sizei||0>s||this.size<(s>>1)+i)throw t.i.N();if(0!=s){s=0+s;for(var h=0;hi&&(i=2),this.o=new Int32Array(i),this.size=t}return s.prototype.rotate=function(i,s,n){if(this.Pb)throw t.i.fa("invalid_call");if(sn||i>n)throw t.i.N();i!=s&&n!=s&&(this.ni(i,s-i,1),this.ni(s,n-s,1),this.ni(i,n-i,1))},s.qf=function(t,i){var n=new s(t),h=n.o;if(2>t&&(t=2),0!==i)for(var r=0;ri&&(n.size=i),2>(i=n.size)&&(i=2),n.o=new Int32Array(i),n.o.set(t.o.length<=i?t.o:t.o.subarray(0,i),0),n},s.prototype.Jb=function(t){0>=t||(null==this.o?this.o=new Int32Array(t):t<=this.o.length||(0this.o.length&&(n=t.O.truncate(64>i?Math.max(2*i,4):5*i/4),(n=new Int32Array(n)).set(this.o),this.o=n),n=this.o;for(var h=this.size;hthis.o.length)&&this.resize(i),this.pk)throw t.i.fa("invalid call. Attribute Stream is locked and cannot be resized.");this.size=i},s.prototype.pr=function(t,i){this.write(t,i)},s.prototype.An=function(i,s,n){for(var h=this.size;sh||n>r&&h!=r)return!1;for(n>h&&(n=h);ir||0!=n%r))throw t.i.N();var e=this.size;if(this.resize(e+n),h)this.o.set(i.o.subarray(s,s+n),e);else{h=n;for(var o=0;oo||0!=r%o))throw t.i.N();if(i(this.o,s+r,s,s+(a-s)),this.o==n.o&&so&&(o=this.size),this.size+2*r>this.o.length?this.resize(this.size+2*r):this.size+=2*r,i(this.o,s+2*r,s,s+(o-s)),e)for(e=0;ei||0>s||0>h)throw t.i.N();if(!r&&(0>=e||0!=s%e))throw t.i.N();if(n.sizethis.size)throw t.i.Hb();0n||0!=s%n)throw t.i.Hb();for(var h=s>>1,r=0;rs||0>n||0>s||n+s>this.size)throw t.i.N();for(var h=s;hi||0>s||0>h)throw t.i.N();if(0!=s)for(this.size<(s<<1)+i&&this.resize((s<<1)+i),r||(i+=s-1<<1),r=r?2:-2,s+=h;hi||0>s||0>h||this.sizei-t?s.rG(this.o,t,i,n):s.qB(this.o,t,i-1,n)},s.prototype.Tp=function(){return 2},s.prototype.Fc=function(){return this.o[this.size-1]},s.prototype.If=function(){this.resize(this.size-1)},s.prototype.bX=function(t){this.o[this.size-1]=t},s.prototype.SV=function(t){t=i&&0=n))for(;;){if(9>n-i){s.rG(t,i,n+1,h);break}var r=t[i];s.tx(t,i,n);for(var e=i,o=i;o=h(t[o],r)&&(s.tx(t,e,o),e+=1);s.tx(t,e,n),e-ii&&(i=2),this.o=new Int8Array(i),this.size=t}return s.prototype.rotate=function(i,s,n){if(this.Pb)throw t.i.fa("invalid_call");if(sn||i>n)throw t.i.N();i!=s&&n!=s&&(this.ni(i,s-i,1),this.ni(s,n-s,1),this.ni(i,n-i,1))},s.qf=function(t,i){var n=new s(t),h=n.o;if(2>t&&(t=2),0!==i)for(var r=0;ri&&(n.size=i),2>(i=n.size)&&(i=2),n.o=new Int8Array(i),n.o.set(t.o.length<=i?t.o:t.o.subarray(0,i),0),n},s.prototype.Jb=function(t){0>=t||(null==this.o?this.o=new Int8Array(t):t<=this.o.length||(0this.o.length&&(n=t.O.truncate(64>i?Math.max(2*i,4):5*i/4),(n=new Int8Array(n)).set(this.o),this.o=n),n=this.o;for(var h=this.size;hthis.o.length)&&this.resize(i),this.pk)throw t.i.fa("invalid call. Attribute Stream is locked and cannot be resized.");this.size=i},s.prototype.pr=function(t,i){this.write(t,i)},s.prototype.An=function(i,s,n){for(var h=this.size;sh||n>r&&h!=r)return!1;for(n>h&&(n=h);ir||0!=n%r))throw t.i.N();var e=this.size;if(this.resize(e+n),h)this.o.set(i.o.subarray(s,s+n),e);else{h=n;for(var o=0;oo||0!=r%o))throw t.i.N();if(i(this.o,s+r,s,s+(a-s)),this.o==n.o&&so&&(o=this.size),this.size+2*r>this.o.length?this.resize(this.size+2*r):this.size+=2*r,i(this.o,s+2*r,s,s+(o-s)),e)for(e=0;ei||0>s||0>h)throw t.i.N();if(!r&&(0>=e||0!=s%e))throw t.i.N();if(n.sizethis.size)throw t.i.Hb();0n||0!=s%n)throw t.i.Hb();for(var h=s>>1,r=0;rs||0>n||0>s||n+s>this.size)throw t.i.N();for(var h=s;hi||0>s||0>h)throw t.i.N();if(0!=s)for(this.size<(s<<1)+i&&this.resize((s<<1)+i),r||(i+=s-1<<1),r=r?2:-2,s+=h;hi||0>s||0>h||this.sizet?-t:t},t.ti=function(t){return 3552713678800501e-30>t},t.KC=function(i,s,n){return t.P(i-s)<=n*(1+(t.P(i)+t.P(s))/2)},t.Y=function(i,s){return t.KC(i,s,3552713678800501e-30)},t.FL=function(i){return 3552713678800501e-30>=t.P(i)},t.Cd=function(i){return t.FL(i)},t}();t.s=i,t.F=function(){function s(){}return s.gp=function(t,s){var n=0;return 0!=(t=i.P(t))+(s=i.P(s))&&(t>s?(n=s/t,n=t*Math.sqrt(1+n*n)):(n=t/s,n=s*Math.sqrt(1+n*n))),n},s.Wq=function(t,n,h,r,e){for(var o=[0,0,0],a=[0,0,0],u=0;2>=u;u++)n[u]-=t[u],h[u]-=n[u];h=o[1]*a[2]-o[2]*a[1],n=o[2]*a[0]-o[0]*a[2],o=o[0]*a[1]-o[1]*a[0],t=-1*(h*t[0]+n*t[1]+o*t[2]),r[0]=h,r[1]=n,r[2]=o,r[3]=t,a=s.on(r),r[0]/=a,r[1]/=a,r[2]/=a,r[3]/=a,0!=e&&(a=i.Cd(o)?i.Cd(t)?i.Mb(1,n):-i.Mb(1,t):i.Mb(1,o),a*=i.Mb(1,e),r[0]*=a,r[1]*=a,r[2]*=a,r[3]*=a)},s.zx=function(t,i,s){s[0]=t[1]*i[2]-i[1]*t[2],s[1]=t[2]*i[0]-i[2]*t[0],s[2]=t[0]*i[1]-i[0]*t[1]},s.St=function(t,i){return t[0]*i[0]+t[1]*i[1]+t[2]*i[2]},s.on=function(t){return s.gp(s.gp(t[0],t[1]),t[2])},s.cl=function(t,i,n,h,r,e,o,a){t=s.n(t,i,n);var u=Math.cos(n);e.u=(t+r)*u*Math.cos(h),o.u=(t+r)*u*Math.sin(h),a.u=(t*(1-i)+r)*Math.sin(n)},s.jO=function(t,n,h,r,e,o,a){var u=s.gp(n,h),f=1*Math.sqrt(1-t),c=f/1;if(i.Y(u,0))o.u=0,e.u=i.Mb(1.570796326794897,r),a.u=i.P(r)-f;else{o.u=Math.atan2(h,n),h=Math.atan2(1*r,f*u),o=Math.cos(h);var l=Math.sin(h);n=f*t/(1-t),t*=1,h=Math.atan2(r+n*l*l*l,u-t*o*o*o),3.141592653589793t){var h=Math.sqrt(1-t),r=(1-h)/(1+h),e=r*r,o=r*e,a=r*o,u=r*a,f=r*u,c=r*f,l=1.572916666666667*o-3.2578125*u+4.295068359375*c;t=2.142578125*a-6.071484375*f,h=3.129296875*u-11.249837239583334*c;var p=4.775276692708333*f,v=7.958636765252976*c,y=Math.cos(2*n);return n+Math.sin(2*n)*(1.5*r-.84375*o+.525390625*u-.2688395182291667*c-l+h-v+y*(2*(1.3125*e-1.71875*a+1.650146484375*f)-4*t+6*p+y*(4*l-12*h+24*v+y*(8*t-32*p+y*(16*h-80*v+y*(32*p+64*y*v))))))}for(h=1-t,r=t/2,o=(e=i.P(n))*s.Zu(t)/(1.570796326794897*h),a=9999,f=e,e=0;1e-16e;e++)c=s.w(t,f),u=f-(l=(u=(s.kG(f,t)-r*Math.sin(2*f)/c)/h-o)/(c=1/(c*c*c))),a=i.P(l),f=u;return 0<=n?f:-f},s.qW=function(t,n){return i.ti(n)?t:t*s.Zu(n)/1.570796326794897},s.ba=function(t){return 0>(t=s.pF(t,6.283185307179586))?t+6.283185307179586:3.141592653589793>i.P(t)||i.Y(i.P(t),3.141592653589793)?t:t-6.283185307179586},s.pF=function(t,i){return t-Math.floor(t/i)*i},s.Ah=function(t,i){if(.006884661117170036>i){var n=(i=(1-(i=Math.sqrt(1-i)))/(1+i))*i,h=n*n;return t/(1+i)*(1+.25*n+.015625*h+.00390625*n*h)*1.570796326794897}return t*s.Zu(i)},s.Vq=function(t,n){var h=i.Mb(1,Math.sin(n));return n=1.570796326794897>=(n=i.P(s.pF(n,3.141592653589793)))?n:3.141592653589793-n,(i.Y(n,1.570796326794897)?n:Math.atan(Math.sqrt(1-t)*Math.tan(n)))*h},s.q=function(t,i,n){if(.006884661117170036>i){var h=(i=(1-(i=Math.sqrt(1-i)))/(1+i))*i,r=i*h,e=i*r,o=i*e,a=i*o,u=i*a,f=-.7291666666666666*r+.2278645833333333*o+.03987630208333334*u,c=.615234375*e-.21533203125*a,l=-.54140625*o+.20302734375*u,p=.48876953125*a,v=-.4488699776785715*u,y=Math.cos(2*n);return t/(1+i)*((1+.25*h+.015625*e+.00390625*a)*n+Math.sin(2*n)*(-1.5*i+.1875*r+.0234375*o+.00732421875*u-f+l-v+y*(2*(.9375*h-.234375*e-.03662109375*a)-4*c+6*p+y*(4*f-12*l+24*v+y*(8*c-32*p+y*(16*l-80*v+y*(32*p+64*y*v)))))))}return t*(s.kG(n,i)-.5*i*Math.sin(2*n)/s.w(i,n))},s.w=function(t,i){return i=Math.sin(i),Math.sqrt(1-t*i*i)},s.Zu=function(t){return i.KC(t,1,2220446049250313e-31)?1:1>t?s.Xw(0,1-t)-t/3*s.Uw(0,1-t):NaN},s.kG=function(n,h){var r=i.Mb(1,n);n=i.P(n);var e=Math.floor(n/1.570796326794897);if(1i.P(h)&&1e-4>i.P(r)&&1e-4>i.P(e));)e=Math.sqrt(a),s+=t/((n=Math.sqrt(u))*(u+(e=Math.sqrt(o)*(e+n)+e*n))),t*=.25,o=.25*(o+e),a=.25*(a+e),u=.25*(u+e);return a=(o=h*r)-(u=e*e),3*s+t*(1+(u=o-6*u)*(.10227272727272728*u-.2142857142857143-.1730769230769231*e*(h=u+a+a))+e*(.1666666666666667*h+e*(-.4090909090909091*a+.1153846153846154*e*o)))/(n*Math.sqrt(n))},s.Xw=function(t,s){for(var n,h,r,e,o=1;h=2-((n=(t+s+o)/3)+t)/n,r=2-(n+s)/n,e=2-(n+o)/n,!(1e-4>i.P(h)&&1e-4>i.P(r)&&1e-4>i.P(e));o=.25*(o+n))n=Math.sqrt(s),h=Math.sqrt(o),t=.25*(t+(n=Math.sqrt(t)*(n+h)+n*h)),s=.25*(s+n);return(1+(.04166666666666666*(t=h*r-e*e)-.1-.06818181818181818*(s=h*r*e))*t+.07142857142857142*s)/Math.sqrt(n)},s.Qw=function(t,s){if(i.ti(t)||0==s||i.Y(i.P(s),1.570796326794897))return s;if(.006884661117170036>t){var n=t*t,h=t*n,r=t*h,e=t*r,o=t*e,a=t*o,u=-(.02708333333333333*h+.03430059523809524*r+.03149181547619048*e+.02634359154541446*o+.02156896735835538*a),f=.007669890873015873*r+.01299603174603175*e+.0148051353064374*o+.01454454953803912*a,c=-(.002275545634920635*e+.004830845032667949*o+.006558395368616723*a),l=.0006957236677288761*o+.001775193002406544*a,p=-.000217324089394402*a,v=Math.cos(2*s);return s+Math.sin(2*s)*(-(.5*t+.2083333333333333*n+.09375*h+.04878472222222222*r+.02916666666666667*e+.01938905423280423*o+.01388255931712963*a)-u+c-p+v*(2*(.1041666666666667*n+.0875*h+.06050347222222222*r+.04151785714285714*e+.02958958540013228*o+.02203667534722222*a)-4*f+6*l+v*(4*u-12*c+24*p+v*(8*f-32*l+v*(16*c-80*p+v*(32*l+64*v*p))))))}return 0==s||i.Y(i.P(s),1.570796326794897)?n=s:(r=(h=Math.sqrt(t))*Math.sin(s),n=Math.tan(.7853981633974483+s/2)*Math.pow((1-r)/(1+r),h/2),n=2*Math.atan(n)-1.570796326794897),n},s.yO=function(t,s){if(i.ti(t)||0==s||i.Y(i.P(s),1.570796326794897))return s;if(.006884661117170036>t){var n=t*(l=t*(c=t*(v=t*t))),h=t*(p=t*n),r=.05833333333333333*c+.07232142857142858*l+.05634300595238095*n+.0355325796406526*p+.020235546186067*h,e=.02653149801587302*l+.04379960317460317*n+.0429211791776896*p+.03255384637546096*h,o=.01294022817460318*n+.02668104344536636*p+.03155651254609588*h,a=.00659454790965208*p+.0163075268674227*h,u=.003463473736911237*h,f=Math.cos(2*s);return s+Math.sin(2*s)*(.5*t+.2083333333333333*v+.08333333333333333*c+.03611111111111111*l+.01875*n+.01195601851851852*p+.008863673941798942*h-r+o-u+f*(2*(.1458333333333333*v+.1208333333333333*c+.07039930555555556*l+.03616071428571429*n+.01839451058201058*p+.01017113095238095*h)-4*e+6*a+f*(4*r-12*o+24*u+f*(8*e-32*a+f*(16*o-80*u+f*(32*a+64*f*u))))))}var c=Math.sqrt(t),l=c/2,p=Math.tan(.7853981633974483+s/2);t=0,r=1;for(var v=s;0!=r;v=h)n=c*Math.sin(v),h=p*Math.pow((1+n)/(1-n),l),h=2*Math.atan(h)-1.570796326794897,t++,(i.Y(h,v)||3e4this.Kk&&(this.Kk=0);var n=this.Ue.getType();if(this.jH=n==t.Sc.PE_TYPE_PROJCS?2:1,n==t.Sc.PE_TYPE_PROJCS&&!i.loadConstants())throw t.i.N("PeProjcs.loadConstants failed");s=n==t.Sc.PE_TYPE_GEOGCS?this.Ue:this.Ue.getGeogcs(),n!=t.Sc.PE_TYPE_GEOGCS&&t.pf.getCode(s),this.Eo=i.getUnit(),this.RH=s.getPrimem().getLongitude(),this.wH=i=s.getUnit().getUnitFactor(),i=Math.PI/(180*i),1e-10>Math.abs(i-1)&&(i=1),this.GA=i,0!=(n&t.Sc.PE_TYPE_PROJCS)?(s=this.Ue,this.HA=1/s.getUnit().getUnitFactor(),this.sw=.001/this.Ue.getUnit().getUnitFactor(),this.tw=t.Cg.generate(s,t.Cg.PE_PCSINFO_OPTION_NONE),this.zl=this.tw.isPannableRectangle(),this.bA=t.zb.qN(this.tw.getCentralMeridian(),this.GA)):(this.KA=this.zl=!0,this.HA=0,n=1/s.getUnit().getUnitFactor(),this.sw=.001/s.getDatum().getSpheroid().getAxis()*n,this.bA=0),this.zl&&(this.xx(),this.DK(),this.nY(),this.CK(),this.lY(),this.mY())}return i.prototype.$r=function(){return this.Kk},i.prototype.kk=function(){return this.tw},i.Py=function(t,i){return t==i||null!=t&&null!=i&&0==t.Kk&&0==i.Kk&&t.As===i.As},i.prototype.Wc=function(){return this.zl},i.prototype.gh=function(t){t.K(this.so)},i.prototype.pv=function(){return this.so.v},i.prototype.ov=function(){return this.so.C},i.prototype.GR=function(t){t.K(this.uw)},i.prototype.lY=function(){var i=this.Ue.getType();if(i==t.Sc.PE_TYPE_PROJCS){i=this.Ue;var s=this.kk().getCentralMeridian(),n=i.getGeogcs();if(null==n)throw t.i.fa("internal error");s=[[s+(n=1/n.getUnit().getUnitFactor()*Math.PI),0]],t.ej.geogToProj(i,1,s),s=s[0][0],n=i.getParameters()[t.Sc.PE_PARM_X0].getValue();var h=this.ml();i=new t.l,h.A(i),s=(h=Math.abs(s-n))+n,n=-1*h+n,h=i.H,i=i.G;var r=new t.l;r.K(n,i,s,h),null==this.so&&(this.so=r)}else{if(i!=t.Sc.PE_TYPE_GEOGCS)throw t.i.fa("internal error");n=1/this.Ue.getUnit().getUnitFactor()*Math.PI,(i=new t.l).K(-n,-n/2,n,n/2),null==this.so&&(this.so=i)}},i.prototype.mY=function(){var i=this.Ue.getType();if(i==t.Sc.PE_TYPE_PROJCS){var s=this.Ue;if(i=this.kk().getCentralMeridian(),null==(s=s.getGeogcs()))throw t.i.fa("internal error");s=1/s.getUnit().getUnitFactor()*Math.PI;var n=this.Vr(),h=new t.l;n.A(h),(n=new t.l).K(i-s,h.G,i+s,h.H),null==this.uw&&(this.uw=n)}else{if(i!=t.Sc.PE_TYPE_GEOGCS)throw t.i.fa("internal error");s=1/this.Ue.getUnit().getUnitFactor()*Math.PI,(i=new t.l).K(-s,-s/2,s,s/2),null==this.uw&&(this.uw=i)}},i.prototype.bf=function(){return this.GA},i.prototype.pm=function(){return this.HA},i.prototype.Vr=function(){if(this.zl)return this.ul;var t=this.ul;return null!=t?t:(this.xx(),this.ul)},i.prototype.Wr=function(){return this.zl?null:(null!=this.ul||this.xx(),this.YG)},i.prototype.xx=function(){if(this.Ue.getType()==t.Sc.PE_TYPE_PROJCS){var i=this.Ue,s=i.getGeogcs(),n=i.horizonGcsGenerate();if(null!=n){var h=n[0].getNump(),r=n[0].getKind();i=0u&&(n=-400*e,c.K(n,c.G,n+5*a,c.H)),n=new t.Fh(c),null==this.ul&&(this.ul=n,this.Iv=i);else{if(u=new t.Da,a=this.kk().isGcsHorizonMultiOverlap(),c=t.gu.bF(s,t.hu.Integer64),a){for(u=new t.gL,f=t.Gh.local().V(u,c,null),p=0;pthis.ss&&(this.ss=0),this.Eo=s=this.KT.getUnit(),this.IH=1/s.getUnitFactor(),t.pf.getCode(i)}return i.Py=function(t,i){return t==i||null!=t&&null!=i&&0==t.ss&&0==i.ss&&t.As===i.As},i.prototype.$r=function(){return this.ss},i}();t.PL=i}(Q||(Q={})),function(t){t.Yg=function(){function i(){}return i.tb=function(i,s,n,h,r,e,o,a){if(null!=e||null!=o||null!=a){h=t.F.ba(h),s=t.F.ba(s),n=t.F.ba(n),r=t.F.ba(r),1.570796326794897n?h:t.F.ba(3.141592653589793-h):Math.atan2(l*y,f*p-c*l*v)),null!=a&&(t.s.Y(t.s.P(r),1.570796326794897)?a.u=0>r?s:t.F.ba(3.141592653589793-s):(a.u=Math.atan2(f*y,p*f*v-l*c),a.u=t.F.ba(a.u+3.141592653589793)))}}},i.rf=function(i,s,n,h,r,e,o){if(null!=e||null!=o){s=t.F.ba(s),n=t.F.ba(n),1.570796326794897p?r:t.F.ba(3.141592653589793-r):s:t.s.Y(t.s.P(n),1.570796326794897)&&t.s.Y(i,3.141592653589793)?0>n?r:t.F.ba(3.141592653589793-r):t.F.ba(s+Math.atan2(l*u,f*h-c*l*a)))}},i}()}(Q||(Q={})),function(t){t.Wk=function(){function i(){}return i.tb=function(i,s,n,h,r,e,o,a,u){var f=new t.ga(0),c=new t.ga(0),l=[0,0,0],p=[0,0,0],v=[0,0,0],y=new t.ga(0),d=new t.ga(0),b=new t.ga(0),g=new t.ga(0),w=new t.ga(0);if(null!=o||null!=a||null!=u)if(t.s.ti(s))t.Yg.tb(i,n,h,r,e,o,a,u);else{r=t.F.ba(r),n=t.F.ba(n);var x=t.F.ba(r-n);if(t.s.Y(h,e)&&(t.s.Y(n,r)||t.s.Y(t.s.P(h),1.570796326794897)))null!=o&&(o.u=0),null!=a&&(a.u=0),null!=u&&(u.u=0);else{if(t.s.Y(h,-e)){if(t.s.Y(t.s.P(h),1.570796326794897))return null!=o&&(o.u=2*t.F.Ah(i,s)),null!=a&&(a.u=0x){m=1;var j=n;n=r,r=j,j=h,h=e,e=j}x=t.F.ot(s,h);var M=t.F.ot(s,e);null==a&&null==u||(t.Yg.tb(i,n,x,r,M,null,f,c),f=Math.atan2(Math.sin(f.u)*Math.cos(h-x),Math.cos(f.u)),c=Math.atan2(Math.sin(c.u)*Math.cos(e-M),Math.cos(c.u)),0!=m&&(j=f,f=c,c=j),null!=a&&(a.u=f),null!=u&&(u.u=c)),null!=o&&(t.F.cl(1,s,h,n,0,b,g,w),l[0]=b.u,l[1]=g.u,l[2]=w.u,t.F.cl(1,s,e,r,0,b,g,w),p[0]=b.u,p[1]=g.u,p[2]=w.u,v[0]=l[1]*p[2]-p[1]*l[2],v[1]=-(l[0]*p[2]-p[0]*l[2]),v[2]=l[0]*p[1]-p[0]*l[1],s=1-t.F.w(s,t.F.Vq(s,t.F.Qj(s,Math.acos(v[2]/Math.sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]))))),s*=2-s,a=Math.atan2(-v[1],-v[0]),v=t.F.ba(a-1.570796326794897),a=t.F.ba(a+1.570796326794897),v=t.s.P(t.F.ba(n-v))<=t.s.P(t.F.ba(n-a))?v:a,t.Yg.tb(1,v,0,n,x,y,null,null),t.Yg.tb(1,v,0,r,M,d,null,null),3.141592653589793r&&(r=t.s.P(r),e=t.F.ba(e+3.141592653589793)),n=t.F.ba(n),h=t.F.ba(h),1.570796326794897=t.s.P(e)?1:-1);e=t.F.ba(n+Math.atan(Math.tan(e)*-Math.sin(b))),t.Yg.tb(i,e,0,n,b,null,c,null),b=t.s.P(1.570796326794897-t.s.P(c.u)),b=t.F.Qj(s,b),b=1-t.F.w(s,t.F.Vq(s,b)),b*=2-b,t.F.cl(1,s,0,e,0,v,y,d),l[0]=v.u,l[1]=y.u,l[2]=d.u,t.F.cl(1,s,h,n,0,v,y,d),p[0]=v.u,p[1]=y.u,p[2]=d.u,h=Math.acos((l[0]*p[0]+l[1]*p[1]+l[2]*p[2])/Math.sqrt(p[0]*p[0]+p[1]*p[1]+p[2]*p[2])),h=t.F.Qj(b,h),r=0<(h=t.F.q(i,b,h)+r*g)?c.u:t.F.ba(c.u+3.141592653589793),i=t.s.P(h)/t.F.Ah(i,b)*1.570796326794897,i=t.F.Rq(b,i),i=t.F.ot(b,i),t.Yg.rf(1,e,0,i,r,o,f),null!=a&&(u=f.u),null!=a&&(a.u=t.F.Qj(s,u))}},i}()}(Q||(Q={})),function(t){t.cu=function(){function i(){}return i.tb=function(i,s,n,h,r,e,o,a,u){var f=0,c=0,l=0;if(null!=o||null!=a||null!=u)if(t.s.ti(s))t.Yg.tb(i,n,h,r,e,o,a,u);else{var p=t.F.ba(r-n);if(t.s.Y(h,e)&&(t.s.Cd(p)||t.s.Y(t.s.P(h),1.570796326794897)))null!=o&&(o.u=0),null!=a&&(a.u=0),null!=u&&(u.u=0);else{if(t.s.Y(h,-e)){if(t.s.Y(t.s.P(h),1.570796326794897))return null!=o&&(o.u=2*t.F.Ah(i,s)),null!=a&&(a.u=0=z&&!t.s.Y(A,m));if(0!=k)v=(y*=f)*(256+y*(y*(74-47*y)-128))/1024,null!=o&&(o.u=d*(1+y*(4096+y*(y*(320-175*y)-768))/16384)*(T-v*N*(c+v/4*(I*(2*l-1)-v/6*c*(4*N*N-3)*(4*l-3))))),null!=a&&(a.u=t.s.Y(t.s.P(h),1.570796326794897)?0>h?r:t.F.ba(3.141592653589793-r):Math.atan2(w*M,s*x-g*w*j)),null!=u&&(t.s.Y(t.s.P(e),1.570796326794897)?u.u=0>e?n:t.F.ba(3.141592653589793-n):(u.u=Math.atan2(s*M,s*x*j-g*w),u.u=t.F.ba(u.u+3.141592653589793)));else{m=t.s.Mb(3.141592653589793,p),I=g*x-s*w,T=Math.acos(I),N=Math.sin(T),f=1,z=C=0;do{l=C,j=1-.25*(C=v*(f*=f)*(1+v+v*v))+.1875*(c=v*v*(j=f*f)*(1+2.25*v))-.1953125*(k=v*v*v*j*f),C=.25*C-.25*c+.29296875*k,M=.03125*c-.05859375*k,k*=.00651041666666667,c=I-2*g*x/f,1=z&&!t.s.Y(l,C));null!=o&&(j=1+(y*=f*=f)*(4096+y*(y*(320-175*y)-768))/16384,t.s.Y(h,-e)?o.u=3.141592653589793*d*j:(c=I-2*g*x/f,f=Math.acos(c),I=Math.cos(2*f),A=Math.cos(3*f),o.u=d*(j*T+y*(y*(128+y*(35*y-60))-512)/2048*N*c+y*(5*y-4)/6144*y*y*Math.sin(2*T)*I+k*Math.sin(3*T)*A+-762939453125e-16*y*y*y*y*Math.sin(4*T)*Math.cos(4*f)))),null!=a&&(t.s.Cd(h)&&t.s.Cd(e)?(f=Math.sqrt(1-C*C),a.u=Math.acos(f),0>p&&(a.u*=-1)):t.s.Y(t.s.P(h),1.570796326794897)?a.u=0>h?r:t.F.ba(3.141592653589793-r):(o=C/s,d=Math.sqrt(1-o*o),0>s*x-g*w*Math.cos(m)&&(d*=-1),a.u=Math.atan2(o,d),t.s.Y(h,-e)&&t.s.P(t.F.ba(n-r))>3.141592653589793*(1-v*Math.cos(h))&&(0t.s.P(a.u)||0>h&&1.570796326794897e?n:t.F.ba(3.141592653589793-n):(p=C/w,o=Math.sqrt(1-p*p),d=Math.sin(m/2),0>Math.sin(b-i)-2*s*x*d*d&&(o*=-1),u.u=Math.atan2(p,o),u.u=t.F.ba(u.u+3.141592653589793),t.s.Y(h,-e)&&!t.s.Cd(h)&&!t.s.Y(t.s.P(h),1.570796326794897)&&t.s.P(t.F.ba(n-r))>3.141592653589793*(1-v*Math.cos(h))&&(null!=a?d=a.u:(o=C/s,d=Math.sqrt(1-o*o),0>s*x-g*w*Math.cos(m)&&(d*=-1),d=Math.atan2(o,d),t.s.Y(h,-e)&&t.s.P(t.F.ba(n-r))>3.141592653589793*(1-v*Math.cos(h))&&(0t.s.P(d)||0>h&&1.570796326794897=t.s.P(d)&&1.570796326794897t.s.P(u.u))&&(u.u=-1*t.F.ba(u.u+3.141592653589793))))}}}},i.rf=function(i,s,n,h,r,e,o,a){if(null!=o||null!=a)if(t.s.ti(s))t.Yg.rf(i,n,h,r,e,o,a);else if(e=t.F.ba(e),t.s.Y(t.s.P(h),1.570796326794897)||t.s.Cd(e)||t.s.Y(t.s.P(e),3.141592653589793))t.Wk.rf(i,s,n,h,r,e,o,a);else{var u=1.570796326794897==t.s.P(e)?0:Math.cos(e),f=3.141592653589793==t.s.P(e)?0:Math.sin(e);t.s.Y(t.s.P(h),1.570796326794897)&&(n=0),e=1-Math.sqrt(1-s);var c=t.F.Vq(s,h);h=1.570796326794897==t.s.P(c)?0:Math.cos(c);var l=Math.sin(c);c=Math.atan2(Math.tan(c),u);var p=h*f,v=p*p,y=1-v,d=s/(1-s)*y,b=(s=d*(256+d*(d*(74-47*d)-128))/1024)/4,g=s/6,w=r/(i*(1-e)*(1+d*(4096+d*(d*(320-175*d)-768))/16384)),x=w;do{var m=x;r=1.570796326794897==t.s.P(x)?0:Math.cos(x);var j=(d=3.141592653589793==t.s.P(x)?0:Math.sin(x))*d;x=s*d*((i=Math.cos(2*c+x))+b*(r*(2*(x=i*i)-1)-g*i*(4*j-3)*(4*x-3)))+w}while(!t.s.Y(m,x));r=1.570796326794897==t.s.P(x)?0:Math.cos(x),d=3.141592653589793==t.s.P(x)?0:Math.sin(x),null!=o&&(f=Math.atan2(d*f,h*r-l*d*u),y=e/16*y*(4+e*(4-3*y)),i=Math.cos(2*c+x),o.u=t.F.ba(n+(f-(1-y)*e*p*(x+y*d*(i+y*r*(2*i*i-1)))))),null!=a&&(y=l*d-h*r*u,y=(1-e)*Math.sqrt(v+y*y),a.u=Math.atan2(l*r+h*d*u,y))}},i}()}(Q||(Q={})),function(t){t.PC=function(){function i(){}return i.tb=function(i,s,n,h,r,e,o,a,u){var f=t.F.ba(r-n),c=t.s.Y(t.s.P(h),1.570796326794897),l=t.s.Y(t.s.P(e),1.570796326794897);if(t.s.Y(h,e)&&(t.s.Cd(f)||c))null!=o&&(o.u=0),null!=a&&(a.u=0),null!=u&&(u.u=0);else{if(t.s.ti(s)){var p=Math.sin(h),v=Math.sin(e);p=Math.sqrt((1+p)/(1-p)),v=Math.sqrt((1+v)/(1-v)),p=Math.log(v)-Math.log(p),p=Math.atan2(f,p),null!=o&&(o.u=t.s.Y(h,e)?t.s.P(i*Math.cos(h)*f):t.s.P((i*e-i*h)/Math.cos(p)))}else v=t.F.Qw(s,e),p=Math.sin(t.F.Qw(s,h)),v=Math.sin(v),p=Math.sqrt((1+p)/(1-p)),v=Math.sqrt((1+v)/(1-v)),p=Math.log(v)-Math.log(p),p=Math.atan2(f,p),null!=o&&(t.s.Y(h,e)?o.u=t.s.P(i*f*Math.cos(h)/t.F.w(s,h)):(f=t.F.q(i,s,h),i=t.F.q(i,s,e),o.u=t.s.P((i-f)/Math.cos(p))));null==a&&null==u||(o=t.F.ba(p+3.141592653589793),c&&l||!c&&!l||(c?p=0>h?r:t.F.ba(3.141592653589793-r):l&&(o=0>e?n:t.F.ba(3.141592653589793-n))),null!=a&&(a.u=p),null!=u&&(u.u=o))}},i.rf=function(i,s,n,h,r,e,o,a){e=t.F.ba(e),0>r&&(r=t.s.P(r),e=t.F.ba(e+3.141592653589793)),t.s.ti(s)?t.s.Y(t.s.P(h),1.570796326794897)?(n=0>h?e:t.F.ba(3.141592653589793-e),3.141592653589793>=(e=r/i%6.283185307179586)?i=h-t.s.Mb(e,h):(n=t.F.ba(n+3.141592653589793),i=-h+t.s.Mb(e-3.141592653589793,h))):t.s.Y(t.s.P(e),1.570796326794897)?(n=t.F.ba(n+t.s.Mb(r,e)/(i*Math.cos(h))),i=h):(i=h+r*Math.cos(e)/i,1.570796326794897h?e:t.F.ba(3.141592653589793-e),e=r/t.F.qW(i,s),3.141592653589793>=(e%=6.283185307179586)?i=h-t.s.Mb(e,h):(n=t.F.ba(n+3.141592653589793),i=-h+t.s.Mb(e-3.141592653589793,h)),i=t.F.Rq(s,i)):t.s.Y(t.s.P(e),1.570796326794897)?(n=t.F.ba(n+t.s.Mb(r,e)*t.F.w(s,h)/(i*Math.cos(h))),i=h):(i=1.570796326794897*(r*Math.cos(e)+t.F.q(i,s,h))/t.F.Ah(i,s),1.570796326794897Math.PI||Math.abs(h.y)>.5*Math.PI||Math.abs(r.y)>.5*Math.PI||(Math.abs(h.y)==.5*Math.PI||Math.abs(r.y)==.5*Math.PI)&&h.x!=r.x)return NaN;if(e=n.cB(e,Math.min(h.x,r.x),Math.max(h.x,r.x)),!new t.Nc(h.x,r.x).contains(e))return NaN;var o=i.construct(h);if(r=i.construct(r),o=n.Yu(s,o),r=n.Yu(s,r),(r=o.cF(r)).z.qg())return h.y;var a=new t.Wb;a.set(r.x),a.jm(r.z),a.No(-1);var u=new t.Wb;u.set(r.y),u.jm(r.z),u.No(-1);var f=new t.Wb;return f.set(u),f.Ag(u),(o=new t.Wb).set(a),o.Ag(a),o.add(f),o.sqrt(),o.qg()||a.qg()&&u.qg()?h.y:(h=Math.atan2(u.value(),a.value()),h=Math.atan2(o.value()*Math.cos(h-e),1-s),e=n.DP(s,t.h.construct(e,h)),s=new t.Nd(e.x,e.y,-e.z),e=r.value().Qh(e),s=r.value().Qh(s),Math.abs(s)Math.PI||Math.abs(h.y)>.5*Math.PI||Math.abs(r.y)>.5*Math.PI||(Math.abs(h.y)==.5*Math.PI||Math.abs(r.y)==.5*Math.PI)&&h.x!=r.x||Math.abs(e)>=.5*Math.PI||0e&&r.y>e||0>h.y&&0>r.y&&h.yMath.abs(o[1]-h.x)&&(h=o[0],o[0]=o[1],o[1]=h)),e))},n.cB=function(t,i,s){return t>s?t-=2*(i=Math.ceil((t-s)/(2*Math.PI)))*Math.PI:tr.x?(r.x-=r.x%360,-180>r.x&&(r.x+=360)):180r.y&&(r.y=-90);for(var e=-180,o=180,a=(s=40)-1,u=(n=(s+31)/32)-1;0<=u;u--)for(var f=a-32*u,c=Math.min(32,s-32*u),l=1;l=p?(h[u]|=1<=p?(h[u]|=1<>r&31;if(31<(r+=5)){var a=37-r;o&=(1<i)for(e=0;e=t[0]?t:'"'+t.trim()+'"'}var s=[];t.XC=function(){function n(){}return n.EQ=function(h){try{for(var r=0;ri||i>this.Aa)throw t.i.N();return this.bg[i]},i.prototype.Pf=function(t){return this.uh[t]},i.lz=function(t){return i.JM[t]},i.Tp=function(t){return i.SM[t]},i.Va=function(t){return i.rM[t]},i.prototype.hasAttribute=function(t){return 0<=this.uh[t]},i.prototype.iG=function(){return this.hasAttribute(1)},i.se=function(t){return i.eD[t]},i.prototype.LR=function(t){return this.Vs[t]},i.DG=function(t,s){return i.eD[t]===s},i.prototype.Nb=function(t){return this===t},i.prototype.An=function(){for(var i=t.O.Th(this.bg[0]),s=1;s++i&&s(t,r,o.eu),e[0]?n?r=i:(e=t.c,r=t.e+r+1):++r;e.lengtht.Bd&&e[0]?"-":"")+(1r?"e":"e+")+r:t.toString()}function s(t,i,s,h){var r=t.c,e=t.e+i+1;if(1===s?h=5<=r[e]:2===s?h=5e||void 0!==r[e+1]||1&r[e-1]):3===s?h=h||void 0!==r[e]||0>e:(h=!1,0!==s&&n("!Big.RM!")),1>e||!r[0])h?(t.e=-i,t.c=[1]):t.c=[t.e=0];else{if(r.length=e--,h)for(;9<++r[e];)r[e]=0,e--||(++t.e,r.unshift(1));for(e=r.length;!r[--e];r.pop());}return t}function n(t){throw(t=Error(t)).name="BigError",t}var h=-7,r=21,e=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,o=function(){function t(i){if(i instanceof t)this.Bd=i.Bd,this.e=i.e,this.c=i.c.slice();else{var s,h,r;for(0===i&&0>1/i?i="-0":e.test(i+="")||n(NaN),this.Bd="-"==i.charAt(0)?(i=i.slice(1),-1):1,-1<(s=i.indexOf("."))&&(i=i.replace(".","")),0<(h=i.search(/e/i))?(0>s&&(s=h),s+=+i.slice(h+1),i=i.substring(0,h)):0>s&&(s=i.length),h=0;"0"==i.charAt(h);h++);if(h==(r=i.length))this.c=[this.e=0];else{for(;"0"==i.charAt(--r););for(this.e=s-h-1,this.c=[],s=0;h<=r;this.c[s++]=+i.charAt(h++));}}}return t.prototype.abs=function(){var i=new t(this);return i.Bd=1,i},t.prototype.cmp=function(i){var s=this.c,n=(i=new t(i)).c,h=this.Bd,r=i.Bd,e=this.e,o=i.e;if(!s[0]||!n[0])return s[0]?h:n[0]?-r:0;if(h!=r)return h;if(i=0>h,e!=o)return e>(o^i)?1:-1;for(h=-1,r=(e=s.length)<(o=n.length)?e:o;++h(n[h]^i)?1:-1;return e==o?0:e>(o^i)?1:-1},t.prototype.jm=function(i){var h=this.c,r=(i=new t(i)).c,e=this.Bd==i.Bd?1:-1,o=t.rr;if((o!==~~o||0>o||1e6g?0:g,f.unshift(0);v++u;u++){if(a!=(v=p.length))var w=a>v?1:-1;else{var x=-1;for(w=0;++xp[x]?1:-1;break}}if(!(0>w))break;for(i=v==a?r:f;v;){if(p[--v]g&&s(y,o,t.eu,void 0!==p[0]),y},t.prototype.fS=function(){return 0this.cmp(0)},t.prototype.jt=function(i){var s,n=this.Bd,h=(i=new t(i)).Bd;if(n!=h)return i.Bd=-h,this.tI(i);var r=this.c.slice(),e=this.e,o=i.c,a=i.e;if(!r[0]||!o[0])return o[0]?(i.Bd=-h,i):new t(r[0]?this:0);if(n=e-a){for((s=0>n)?(n=-n,e=r):(a=e,e=o),e.reverse(),h=n;h--;e.push(0));e.reverse()}else for(e=((s=r.lengthn;){if(r[--e]h.length-e.length&&(n=e,e=h,h=n),s=e.length,n=0;s;)n=(h[--s]=h[s]+e[s]+n)/10|0,h[s]%=10;for(n&&(h.unshift(n),++r),s=h.length;0==h[--s];h.pop());return i.c=h,i.e=r,i},t.prototype.pow=function(i){var s=this,h=new t(1),r=h,e=0>i;for((i!==~~i||-1e6>i||1e6>=1;)s=s.lr(s);return e?h.jm(r):r},t.prototype.round=function(i,h){var r=this;return null==i?i=0:(i!==~~i||0>i||1e6h&&n(NaN),0==(h=Math.sqrt(this.toString()))||h==1/0?((h=i.join("")).length+r&1||(h+="0"),(i=new t(Math.sqrt(h).toString())).e=((r+1)/2|0)-(0>r||1&r)):i=new t(h.toString()),h=i.e+(t.rr+=4);do{r=i,i=e.lr(r.tI(this.jm(r)))}while(r.c.slice(0,h).join("")!==i.c.slice(0,h).join(""));return s(i,t.rr-=4,t.eu),i},t.prototype.lr=function(i){var s=this.c,n=(i=new t(i)).c,h=s.length,r=n.length,e=this.e,o=i.e;if(i.Bd=this.Bd==i.Bd?1:-1,!s[0]||!n[0])return new t(0*i.Bd);if(i.e=e+o,he;)r=a[o]+n[e]*s[o-e-1]+r,a[o--]=r%10,r=r/10|0;a[o]=(a[o]+r)%10}for(r&&++i.e,a[0]||a.shift(),e=a.length;!a[--e];a.pop());return i.c=a,i},t.prototype.toString=function(){var t=this.e,i=this.c.join(""),s=i.length;if(t<=h||t>=r)i=i.charAt(0)+(1t?"e":"e+")+t;else if(0>t){for(;++t;i="0"+i);i="0."+i}else if(0s)for(t-=s;t--;i+="0");else tthis.Bd&&this.c[0]?"-"+i:i},t.prototype.toExponential=function(t){return null==t?t=this.c.length-1:(t!==~~t||0>t||1e6=t&&(o=i(this,this.e+t),0>this.Bd&&this.c[0]&&0>o.indexOf("-")&&(o="-"+o));return h=s,r=e,o||n("!toFix!"),o},t.prototype.toPrecision=function(t){return null==t?this.toString():((t!==~~t||1>t||1e6e.get(p)?(e.set(u,2147483647),u=p):e.set(p,2147483647),f++;else{if(0==(1&f))e.set(u,2147483647);else if(n)return null!=h&&(h[0]=!0),null;a.L(l),u=p,f=1}if(0==(1&f))e.set(u,2147483647);else if(n)return null!=h&&(h[0]=!0),null;if(!n)for(e.Vd(0,e.size,(function(t,i){return t-i})),p=0,v=e.size;ps-i)n.nr(i,s,t);else{var h=!0;try{for(var r=1/0,e=-1/0,o=i;oe&&(e=a)}if(this.reset(s-i,r,e,s-i)){for(o=i;oh&&n.nr(i+h,i+s,t);100t||n==s||(t=Math.min(i.hL,t),this.yf.Jb(t),this.yf.resize(t),this.yf.Wj(0,0,this.yf.size),this.EH=s,this.ys.resize(h),this.Es=(n-s)/(t-1),0))},i.prototype.zF=function(i){return t.O.truncate((i-this.EH)/this.Es)},i.hL=65536,i}();t.Xt=i}(Q||(Q={})),function(t){var i,s;(s=i||(i={}))[s.enum_line=1]="enum_line",s[s.enum_arc=2]="enum_arc",s[s.enum_dummy=4]="enum_dummy",s[s.enum_concave_dip=8]="enum_concave_dip",s[s.enum_connection=3]="enum_connection";var n=function(){function i(){}return i.Qu=function(s,n,h,r,e,o){var a=new i;return a.Im=new t.h,a.Vm=new t.h,a.aw=new t.h,a.Im.L(s),a.Vm.L(n),a.aw.L(h),a.Co=r,a.qh=e,a.sh=o,a},i.construct=function(s,n,h,r){var e=new i;return e.Im=new t.h,e.Vm=new t.h,e.aw=new t.h,e.Im.L(s),e.Vm.L(n),e.aw.Rc(),e.Co=4,e.qh=h,e.sh=r,e},i}(),h=function(){function i(t,i,s,n,h,r){this.Yv=null,this.ya=0,this.EA=t,this.bI=this.$H=0,this.Ka=i,this.Mj=s,this.vk=n,this.Dq=h,this.Ub=r}return i.prototype.next=function(){for(var i=new t.Sa;;){if(this.ya==this.EA.I())return null;if(this.EA.ve(this.ya,i),this.ya++,!i.B())break}var s=!1;if(null==this.Yv&&(this.$H=i.Lg(),this.bI=i.ih(),this.Yv=o.buffer(i,this.Ka,this.Mj,this.vk,this.Dq,this.Ub),s=!0),this.yar)throw t.i.N();if(s.B())return new t.Da(s.description);var a=new t.l;return s.xc(a),0=e&&(e=96),o.rb=Math.abs(o.Ka),o.Kv=0!=o.rb?1/o.rb:0,isNaN(r)||0==r?r=1e-5*o.rb:r>.5*o.rb&&(r=.5*o.rb),12>e&&(e=12),(s=Math.abs(n)*(1-Math.cos(Math.PI/e)))>r?r=s:(s=Math.PI/Math.acos(1-r/Math.abs(n)))(e=t.O.truncate(s))&&(e=12,r=Math.abs(n)*(1-Math.cos(Math.PI/e))),o.vk=r,o.Dq=e,o.tA=Math.min(o.ct,.25*r),o.lE()},i.prototype.cv=function(){if(null==this.Id)this.Id=[];else if(0!==this.Id.length)return;var i=this.qE();i=t.O.truncate((i+3)/4);var s=.5*Math.PI/i;this.oA=s;for(var n=0;n<4*i;n++)this.Id.push(null);var h=Math.cos(s);s=Math.sin(s);var r=t.h.construct(0,1);for(n=0;n=this.Ka&&(i=new t.l,this.X.A(i),i.R()<=2*-this.Ka||i.ca()<=2*this.Ka))return new t.Da(this.X.description)}switch(this.X.getType()){case 33:return this.PN();case 550:return this.ON();case 1607:return this.RN();case 1736:return this.QN();case 197:return this.LN();default:throw t.i.Qa()}},i.prototype.RN=function(){if(this.EG(this.X)){var i=new t.Sa;this.X.ve(0,i);var s=new t.l;return this.X.A(s),i.Cb(s.sf()),this.Gu(i)}return this.X=this.WV(this.X),i=new r(this,this.oq),t.Gh.local().V(i,this.Mj,this.Ub).next()},i.prototype.QN=function(){if(0==this.Ka)return this.X;var i=t.Yl.local();if(this.cv(),this.X=i.V(this.X,null,!1,this.Ub),0>this.Ka){var s=this.X;return s=this.py(s,0,s.da()),i.V(s,this.Mj,!1,this.Ub)}return this.EG(this.X)?(i=new t.Sa,this.X.ve(0,i),s=new t.l,this.X.A(s),i.Cb(s.sf()),this.Gu(i)):(i=new e(this),t.Gh.local().V(i,this.Mj,this.Ub).next())},i.prototype.py=function(s,n,h){for(var r=new t.Da(s.description);ns.Ja(n))){var e=s.Ir(n),o=new t.l;if(s.Rj(n,o),0=this.Ka){if(0==this.Ka)i.ad(this.X,!1);else{var s=new t.Fh;this.X.bn(s),s.W(this.Ka,this.Ka),i.ad(s,!1)}return i}return i.ad(this.X,!1),this.X=i,this.jE(i,0)},i.prototype.jE=function(s,n){this.cv();var h=new t.Da(s.description),r=new t.h,e=new t.h,o=new t.h,a=new t.h,u=new t.h,f=new t.h,c=new t.h,l=new t.h,p=s.Ja(n),v=s.Ba(n),y=0;for(n=s.Ja(n);yi.Ja(s))return null;if(this.FG(i,s)&&0(i=-1>i?4:2*Math.PI/Math.acos(i)+.5)?i=4:i>this.Dq&&(i=this.Dq),t.O.truncate(i)},i.prototype.GD=function(i,s,n,h,r){this.cv();var e=new t.h;e.uc(n,s),e.scale(this.Kv);var o=new t.h;o.uc(h,s),o.scale(this.Kv),0>(e=Math.atan2(e.y,e.x)/this.oA)&&(e=this.Id.length+e),e=this.Id.length-e,0>(o=Math.atan2(o.y,o.x)/this.oA)&&(o=this.Id.length+o),(o=this.Id.length-o)o.I(a))return 0>e||(e=i,o=new t.Sa,e.ve(e.Ba(s),o),this.yu(h,o)),1;var u=o.Na(o.Xa(o.Ob(a))),f=new t.Dd;if(f.gg(-u.x,-u.y),o.Oc(f),r&&(this.tQ(o,a,e),2>o.I(a)))return 0>e||(e=i,o=new t.Sa,e.ve(e.Ba(s),o),this.yu(h,o)),1;this.Zd.length=0;var c=o.Ob(a);s=o.Xa(c);var l=1==e?o.Ma(s):o.U(s);i=1==e?o.U(s):o.Ma(s);var p=!0;r=new t.h,a=new t.h;var v=new t.h,y=new t.h,d=new t.h,b=new t.h,g=new t.h,w=new t.h,x=new t.h,m=new t.h,j=this.rb;c=o.Ja(c);for(var M=0;Ml||0>p&&0==l?this.Zd.push(n.Qu(y,d,r,2,this.Zd.length+1,this.Zd.length-1)):y.qb(d)||(this.Zd.push(n.construct(y,r,this.Zd.length+1,this.Zd.length-1,"dummy")),this.Zd.push(n.construct(r,d,this.Zd.length+1,this.Zd.length-1,"dummy"))),b.add(a,x),this.Zd.push(n.Qu(d,b,r,1,this.Zd.length+1,this.Zd.length-1)),y.L(b),m.L(x),v.L(r),r.L(a),w.L(g),l=s,s=i,p=!1,i=1==e?o.U(s):o.Ma(s);return this.Zd[this.Zd.length-1].qh=0,this.Zd[0].sh=this.Zd.length-1,this.YV(h),f.gg(u.x,u.y),h.YD(f,h.da()-1),1},i.prototype.YV=function(t){for(var i=this.zO(),s=!0,n=i+1,h=i;n!=i;h=n){var r=this.Zd[h];n=-1!=r.qh?r.qh:(h+1)%this.Zd.length,0!=r.Co&&(s&&t.Lt(r.Im),2==r.Co?this.GD(t,r.aw,r.Im,r.Vm,!0):t.Ci(r.Vm),s=!1)}},i.prototype.zO=function(){null==this.Ks&&(this.Ks=[null,null,null,null,null,null,null,null,null]);for(var i=0,s=0,n=this.Zd.length;s=this.rb)return!0}return!1},i.prototype.tQ=function(i,s,n){for(var h=0;1>h;h++){var r=!1,e=i.Ob(s),o=i.Ja(e);if(0==o)break;var a=o;if(3>o)break;!i.dc(e)&&(a=o-1),e=i.Xa(e),o=0z||0>A&&0==z||!this.Fv(v,l,p)||(b.L(p),N=!1,++M,r=!0),N){if(0.5*this.vk?(d.add(v,l),d.scale(.5),x.normalize(),x.ar(),m.L(x),m.scale(j-M),d.add(m),i.mf(o,d)):i.pd(o,!0),M=0}v.L(l),f=e}l.L(p),o=e,e=u,u=0s?(this.oq=!1,i):(this.oq=!0,t.Fg.Mk(i,this.ct,!1,!0,this.Ub))},i.prototype.yu=function(i,s){if(s=s.D(),null!=this.Id&&0!==this.Id.length){var n=new t.h;n.L(this.Id[0]),n.Ct(this.rb,s),i.Lt(n);for(var h=1,r=this.Id.length;h=s?1:-1;case 1:if(t.G=s?1:-1;case 2:if(t.v>=s&&t.C>s)break;return t.C<=s?1:-1;case 3:if(!(t.G>=s&&t.H>s))return t.H<=s?1:-1}return 0},i.prototype.Ay=function(t,i){return 1736==t.getType()?this.Cy(t,i):this.Dy(t)},i.prototype.Cy=function(i,s){if(0==this.Ca.R()||0==this.Ca.ca())return i.Ia();var n=new t.l;i.xc(n),this.X=this.g.Ib(i);var h=new t.l,r=new t.l,e=new t.h,o=new t.h,a=[0,0,0,0,0,0,0,0,0],u=[0,0,0,0,0,0,0,0,0];new t.ig;var f=new t.yb,c=new t.ia(0);c.Jb(Math.min(100,i.I()));for(var l=!1,p=0;!l&&4>p;p++){var v=!1,y=0!=(1&p),d=0;switch(p){case 0:d=this.Ca.v,v=n.v<=d&&n.C>=d;break;case 1:d=this.Ca.G,v=n.G<=d&&n.H>=d;break;case 2:d=this.Ca.C,v=n.v<=d&&n.C>=d;break;case 3:d=this.Ca.H,v=n.G<=d&&n.H>=d}if(v)for(l=!0,v=this.g.Ob(this.X);-1!=v;){var b=-1,g=-1,w=this.g.Xa(v),x=w;do{var m=this.g.bc(x);null==m&&(m=f,this.g.D(x,e),m.Dc(e),this.g.D(this.g.U(x),o),m.Qc(o)),m.A(h);var j=this.Lh(h,p,d),M=0,k=-1;if(-1==j){M=0<(m=m.cq(y,d,a,u))?this.g.Ul(x,u,m):0,M+=1;var z=x,A=this.g.U(z);for(m=0;mthis.g.Ja(v)?this.g.Zq(v):this.g.Rb(v)}}return l?i.Ia():(this.FB(),0u;u++){var f=!1,c=0!=(1&u),l=0;switch(u){case 0:l=this.Ca.v,f=a.v<=l&&a.C>=l;break;case 1:l=this.Ca.G,f=a.G<=l&&a.H>=l;break;case 2:l=this.Ca.C,f=a.v<=l&&a.C>=l;break;case 3:l=this.Ca.H,f=a.G<=l&&a.H>=l}if(f){f=o,o=i.Ia(),(f=f.Ga()).Zi();for(var p,v=new t.h;f.$a();)for(var y,d=!0;f.Ha();){var b=f.ha();b.A(s);var g=this.Lh(s,u,l);if(-1==g){if(0<(g=b.cq(c,l,h,r))){var w=0;p=b.ac();for(var x=0;x<=g;x++)if(w!=(y=x=(u=t.O.truncate(Math.min(Math.ceil(u/i),2048)))))){for(var f=1;fr.size)){var c=this;r.Vd(0,r.size,(function(t,i){return c.Mh(t,i)})),n=new t.h,e=new t.h,o=new t.h,e.Rc();var l=-1;a=new t.ia(0),u=new t.ia(0),f=this.g.Gd();for(var p=this.g.Gd(),v=0,y=r.size;vthis.Mh(l,g)&&(this.g.D(g,n),i?n.y==s:n.x==s)&&(a.add(l),w=!0,this.g.Ra(l,p,1)),0>this.Mh(l,d)&&(this.g.D(d,n),i?n.y==s:n.x==s)&&(w||a.add(l),this.g.Ra(l,f,1))}for(b=0,w=a.size;bthis.Mh(y,b)&&(this.g.D(b,a),i?a.y==s:a.x==s)&&(d=b),b=-1;var g=this.g.Ma(y);if(0>this.Mh(y,g)&&(this.g.D(g,a),i?a.y==s:a.x==s)&&(b=g),-1!=d&&-1!=b)this.Kh(y,h,r),this.g.pd(y,!1),this.Kh(d,h,r),this.g.pd(d,!1),c=!0;else if(-1!=d||-1!=b){for(g=v+1;gthis.Mh(w,x)&&(this.g.D(x,a),i?a.y==s:a.x==s)&&(m=x),x=this.g.Ma(w);var j=-1;if(0>this.Mh(w,x)&&(this.g.D(x,a),i?a.y==s:a.x==s)&&(j=x),-1!=m&&-1!=j){this.Kh(w,h,r),this.g.pd(w,!1),this.Kh(m,h,r),this.g.pd(m,!1),c=!0;break}if(-1!=d&&-1!=j){this.zt(h,y,d,w,j,r),c=!0;break}if(-1!=b&&-1!=m){this.zt(h,w,m,y,b,r),c=!0;break}}}if(c)break}}}if(!c)break}l=e,u.L(n)}}this.g.Td(r)},i.prototype.Kh=function(t,i,s){s=this.g.Pa(t,s),i.set(s,-1),s=this.g.Pa(t,this.ji),this.dd.set(s,-1),-1!=(i=this.g.bd(t))&&this.g.Xa(i)==t&&(this.g.Jf(i,-1),this.g.Wg(i,-1))},i.prototype.zt=function(t,i,s,n,h,r){this.g.Bc(i,n),this.g.Cc(n,i),this.g.Cc(s,h),this.g.Bc(h,s),this.Kh(n,t,r),this.g.mi(n,!1),this.Kh(h,t,r),this.g.mi(h,!0)},i.prototype.Ty=function(){for(var t=0,i=this.dd.size;t=o?(s=this.g.Pa(e,this.ji),this.dd.set(s,-1),e=this.g.pd(e,!1),2==o&&(s=this.g.Pa(e,this.ji),this.dd.set(s,-1),this.g.pd(e,!1)),o=r,r=this.g.Rb(r),this.g.Jf(o,-1),this.g.$q(o)):(this.g.cp(r,!1),this.g.Wg(r,this.g.Ma(e)),this.g.Vj(r,o),h+=o,n++,r=this.g.Rb(r))}}for(t=0,i=this.dd.size;t=o?(s=this.g.Pa(e,this.ji),this.dd.set(s,-1),e=this.g.pd(e,!1),2==o&&(0<=(s=this.g.Pa(e,this.ji))&&this.dd.set(s,-1),this.g.pd(e,!1)),o=r,this.g.Jf(o,-1),this.g.$q(o)):(this.g.kn(r,!0),this.g.Vj(r,o),this.g.Jf(r,e),this.g.Wg(r,this.g.Ma(e)),this.g.cp(r,!1),h+=o,n++)}for(this.g.Rl(this.X,n),this.g.Tj(this.X,h),t=0,i=this.g.ld;-1!=i;i=this.g.ue(i))t+=this.g.I(i);this.g.bC(t)},i.By=function(t,s,n){return new i(s).Ay(t,n)},i.clip=function(s,n,h,r){if(s.B())return s;if(n.B())return s.Ia();if(33==(h=s.getType()))return r=s.D(),n.contains(r)?s:s.Ia();if(197==h)return r=new t.l,s.A(r),r.Ea(n)?(n=new t.Fh,s.copyTo(n),n.Xo(r),n):s.Ia();var e=new t.l;if(s.xc(e),n.contains(e))return s;if(!n.isIntersecting(e))return s.Ia();if(null!=(e=s.Bb)&&null!=(e=e.Fk)){if(1==(e=e.Ro(n))){if(1736!=h)throw t.i.Qa();return(s=new t.Da(s.description)).tp(n),s}if(0==e)return s.Ia()}switch(h){case 550:h=null,e=s.I();for(var o=s.ub(0),a=0,u=0;u=s?1:-1;case 1:if(t.G=s?1:-1;case 2:if(t.v>=s&&t.C>s)break;return t.C<=s?1:-1;case 3:if(!(t.G>=s&&t.H>s))return t.H<=s?1:-1}return 0},i.prototype.Ay=function(t,i){return 1736==t.getType()?this.Cy(t,i):this.Dy(t)},i.prototype.Cy=function(i,s){if(0==this.Ca.R()||0==this.Ca.ca())return i.Ia();var n=new t.l;i.xc(n),this.X=this.g.Ib(i);var h=new t.l,r=new t.l,e=new t.h,o=new t.h,a=[0,0,0,0,0,0,0,0,0],u=[0,0,0,0,0,0,0,0,0],f=new t.yb,c=new t.ia(0);c.Jb(256);for(var l=!1,p=0;!l&&4>p;p++){var v=!1,y=0!=(1&p),d=0;switch(p){case 0:d=this.Ca.v,v=n.v<=d&&n.C>=d;break;case 1:d=this.Ca.G,v=n.G<=d&&n.H>=d;break;case 2:d=this.Ca.C,v=n.v<=d&&n.C>=d;break;case 3:d=this.Ca.H,v=n.G<=d&&n.H>=d}if(v)for(l=!0,v=this.g.Ob(this.X);-1!=v;){var b=!0,g=-1,w=-1,x=this.g.Xa(v),m=x;do{var j=this.g.bc(m);null==j&&(j=f,this.g.D(m,e),j.Dc(e),this.g.D(this.g.U(m),o),j.Qc(o)),j.A(h);var M=this.Lh(h,p,d),k=0,z=-1;if(-1==M){k=0<(j=j.cq(y,d,a,u))?this.g.LX(m,u,j):0,k+=1;var A=m,N=this.g.U(A);for(j=0;jp;p++){var v=!1,y=0!=(1&p),d=0;switch(p){case 0:d=this.Ca.v,v=a.v<=d&&a.C>=d;break;case 1:d=this.Ca.G,v=a.G<=d&&a.H>=d;break;case 2:d=this.Ca.C,v=a.v<=d&&a.C>=d;break;case 3:d=this.Ca.H,v=a.G<=d&&a.H>=d}if(v)for(v=o,o=i.Ia(),(v=v.Ga()).Zi();v.$a();)for(var b,g=!0;v.Ha();){var w=v.ha();w.A(s);var x=this.Lh(s,p,d);if(-1==x){if(0<(x=w.cq(y,d,h,r))){var m=0;w.Yp(u);for(var j=0;j<=x;j++)if(m!=(b=jh.x&&(h.x+=i)}else l=s.y-this.Ca.G,r.y=t.lc.sign(n.y-s.y),h.y=i*t.lc.Cn(Math.floor(Math.abs(l/i)),l)+this.Ca.G,0>h.y&&(h.y+=i);l=0!=c?n.y-s.y:n.x-s.x;var p=Math.abs(l);if(65536

=y||(e[p]=y,p++)}0!=p&&this.g.Ul(u,e,p)}}u=f}while(u!=a)}},i.prototype.Vl=function(i,s){for(var n=-1,h=new t.h,r=null,e=this.g.Ob(this.X);-1!=e;e=this.g.Rb(e))for(var o=this.g.Xa(e),a=0,u=this.g.Ja(e);ar.size)){var c=this;r.Vd(0,r.size,(function(t,i){return c.Mh(t,i)})),n=new t.h,e=new t.h,o=new t.h,e.Rc();var l=-1;a=new t.ia(0),u=new t.ia(0),f=null;for(var p=this.g.Gd(),v=this.g.Gd(),y=0,d=r.size;ye.compare(n)&&(i?n.y==s:n.x==s)&&(a.add(l),x=!0,this.g.Ra(l,v,1)),this.g.D(b,n),0>e.compare(n)&&(i?n.y==s:n.x==s)&&(x||a.add(l),this.g.Ra(l,p,1))}for(g=0,x=a.size;gu.compare(a)&&(i?a.y==s:a.x==s)&&(d=b),b=-1;var g=this.g.Ma(y);if(this.g.D(g,a),0>u.compare(a)&&(i?a.y==s:a.x==s)&&(b=g),-1!=d&&-1!=b)this.Kh(y,h,r),this.g.pd(y,!1),this.Kh(d,h,r),this.g.pd(d,!1),c=!0;else if(-1!=d||-1!=b){for(g=v+1;gu.compare(a)&&(i?a.y==s:a.x==s)&&(m=x),x=this.g.Ma(w);var j=-1;if(this.g.D(x,a),0>u.compare(a)&&(i?a.y==s:a.x==s)&&(j=x),-1!=m&&-1!=j){this.Kh(w,h,r),this.g.pd(w,!1),this.Kh(m,h,r),this.g.pd(m,!1),c=!0;break}if(-1!=d&&-1!=j){this.zt(h,y,d,w,j,r),c=!0;break}if(-1!=b&&-1!=m){this.zt(h,w,m,y,b,r),c=!0;break}}}if(c)break}}}if(!c)break}l=e,u.L(n)}this.g.Td(r)}},i.prototype.Kh=function(t,i,s){s=this.g.Pa(t,s),i.set(s,-1),s=this.g.Pa(t,this.ji),this.dd.set(s,-1),-1!=(i=this.g.bd(t))&&this.g.Xa(i)==t&&(this.g.Jf(i,-1),this.g.Wg(i,-1))},i.prototype.zt=function(t,i,s,n,h,r){this.g.Bc(i,n),this.g.Cc(n,i),this.g.Cc(s,h),this.g.Bc(h,s),this.Kh(n,t,r),this.g.mi(n,!1),this.Kh(h,t,r),this.g.mi(h,!0)},i.prototype.Ty=function(){for(var t=0,i=this.dd.size;t=o?(s=this.g.Pa(e,this.ji),this.dd.set(s,-1),e=this.g.pd(e,!1),2==o&&(0<=(s=this.g.Pa(e,this.ji))&&this.dd.set(s,-1),this.g.pd(e,!1)),o=r,this.g.Jf(o,-1),this.g.$q(o)):(this.g.kn(r,!0),this.g.Vj(r,o),this.g.Jf(r,e),this.g.Wg(r,this.g.Ma(e)),this.g.cp(r,!1),h+=o,n++)}for(this.g.Rl(this.X,n),this.g.Tj(this.X,h),t=0,i=this.g.ld;-1!=i;i=this.g.ue(i))t+=this.g.I(i);this.g.bC(t)},i.By=function(t,s,n,h){return new i(s,h).Ay(t,n)},i.clip=function(t,s,n,h,r){return i.Nu(t,s,null,n,h,r)},i.Nu=function(s,n,h,r,e,o){var a=s.getType();if(33==a)return e=s.D(),n.contains(e)?s:s.Ia();if(197==a)return e=new t.l,s.A(e),e.Ea(n)?(n=new t.Fh,s.copyTo(n),n.Xo(e),n):s.Ia();if(s.B())return s;if(n.B())return s.Ia();var u=new t.l;if(s.xc(u),n.contains(u))return s;if(!n.isIntersecting(u))return s.Ia();if((null!=h||isNaN(r))&&t.ta.ty(h,n,!1),!t.aa.xj(a))throw t.i.N();if(null!=(h=s.Bb)&&null!=(h=h.Fk)){if(1==(h=h.Ro(n))){if(1736!=a)throw t.i.fa("internal error");return(s=new t.Da(s.description)).tp(n),s}if(0==h)return s.Ia()}switch(a){case 550:for(o=null,a=s.I(),h=s.ub(0),r=0,e=new t.h,u=0;u=a;a+=1)for(var u=0;1>=u;u+=1){var f=n.jG(e+a,o+u),c=this.xl.rR(f);-1!=c&&(this.pq[r]=c,this.xs[r]=f,r++)}for(e=r-1;1<=e;e--)for(c=this.pq[e],o=e-1;0<=o;o--)if(c==this.pq[o]){this.xs[o]=-1,e!=--r&&(this.xs[e]=this.xs[r],this.pq[e]=this.pq[r]);break}for(o=0;os.Db())throw t.i.N();return 0==n||s.B()?s:((o=new i(o)).ko=s,o.Ka=n,o.qa=e,o.Ki=h,o.CA=r,o.Rx())},i.prototype.eM=function(){var i=this.ko,s=i.ac(),n=i.wc(),h=new t.h;return h.uc(n,s),h.normalize(),h.Hv(),h.scale(this.Ka),s.add(h),n.add(h),h=i.Ia(),i.Dc(s),i.Qc(n),h},i.prototype.dM=function(){var i=this.ko;if(0o&&(0this.Ka?-s:s,-1p&&(.017453292519943295>(v=2*Math.acos(p))&&(v=.017453292519943295),1<(c=t.O.truncate(s/v+1.5))&&(l/=c)),v=b+h,b=r.Pd(f,this.Ka,v),0==i&&(b.type|=1024),this.fc(b,i),p=this.Ka/Math.cos(l/2),v+=l/2,(b=r.Pd(f,p,v)).type|=1024,this.fc(b);0<--c;)v+=l,(b=r.Pd(f,p,v)).type|=1024,this.fc(b);(b=r.Pd(f,this.Ka,g-h)).type|=1024,this.fc(b)}else if(1==this.Ki)b=r.Pd(f,this.Ka,b+h),this.fc(b,i),b=r.Pd(f,this.Ka,g-h),this.fc(b);else if(0==this.Ki)for(p=1-o/Math.abs(this.Ka),c=1,l=g-h-(b+h),-1p&&(.017453292519943295>(v=2*Math.acos(p))&&(v=.017453292519943295),1<(c=t.O.truncate(Math.abs(l)/v+1.5))&&(l/=c)),p=this.Ka/Math.cos(.5*l),v=b+h+.5*l,b=r.Pd(f,p,v),this.fc(b,i);0<--c;)v+=l,b=r.Pd(f,p,v),this.fc(b);else 2==this.Ki?(p=c.x-f.x,v=c.y-f.y,.99999999<(c=(p*(y=l.x-f.x)+v*(d=l.y-f.y))/Math.sqrt(p*p+v*v)/Math.sqrt(y*y+d*d))?(b=r.Pd(f,1.4142135623730951*this.Ka,g-.25*s),this.fc(b,i),b=r.Pd(f,1.4142135623730951*this.Ka,g+.25*s),this.fc(b)):(c=Math.abs(this.Ka/Math.sin(.5*Math.acos(c))))>(l=Math.abs(this.CA*this.Ka))?(p=.5*(g-b),p=this.Ka/Math.abs(Math.sin(p)),b=r.Pd(f,p,.5*(b+g)),g=t.h.construct(b.x,b.y),b=t.h.construct(f.x,f.y),(f=new t.h).uc(g,b),(g=new t.h).HW(l/f.length(),f,b),b=(c-l)*Math.abs(this.Ka)/Math.sqrt(c*c-this.Ka*this.Ka),0b&&(g-=n),c=b-g(p=1.4142135623730951*this.Ka)?b+.25*s:b+.75*s,b=r.Pd(f,p,v),this.fc(b,i),v=0>p?g-.25*s:g-.75*s,b=r.Pd(f,p,v),this.fc(b)):(p=.5*(g-b),p=this.Ka/Math.abs(Math.sin(p)),gs))for(var n=0;n=n+1;i--)(s=r.al(t.Na(i))).type|=1024,this.wg.push(s);if(this.mE())if(2<=this.Yb.length){for(t=-1,(h=0!=(1024&this.Yb[this.gf-1].type))||(t=0),i=1;i=Math.min(s.x,n.x)&&Math.max(s.x,n.x)>=Math.min(t.x,i.x)&&Math.max(t.y,i.y)>=Math.min(s.y,n.y)&&Math.max(s.y,n.y)>=Math.min(t.y,i.y)},i.prototype.xQ=function(t,i,s,n,h){h.bE=!1;var e=(i.y-t.y)*(n.x-s.x)-(i.x-t.x)*(n.y-s.y),o=(s.y-t.y)*(i.x-t.x)-(s.x-t.x)*(i.y-t.y);if(0<=(e=0==e?2:o/e)&&1>=e){var a=e;if(e=(n.y-s.y)*(i.x-t.x)-(n.x-s.x)*(i.y-t.y),o=(t.y-s.y)*(n.x-s.x)-(t.x-s.x)*(n.y-s.y),0<=(e=0==e?2:o/e)&&1>=e)return h.an=r.TO(t.x+e*(i.x-t.x),t.y+e*(i.y-t.y)),h.an.Uh=s.Uh+a*(n.Uh-s.Uh),0!=a&&1!=a||0!=e&&1!=e||(h.bE=!0),h.VY=e,h.WY=a,!((0==a||1==a)&&0e||(0==e||1==e)&&0a)}return!1},i.prototype.QO=function(t){for(;this.Yb[t].shr-(n*=2))return!0;s=new t.h;var e=new t.h,o=new t.h;i.tc(n,s),i.tc(n+2,e),i.tc(n+4,o);var a=h.Wu(e,o,s);if(a.ps()||!h.um(a.value()))return!1;var u=t.h.construct(e.x,e.y),f=new t.h;for(n+=6;nh;h++){i.mB(h,n);var r=this.Cr(n);if(-1!=r){i.Hf(h,s);var e=this.g.fc(this.Ss,s);this.Fa.Sj(r,e)}}},h.prototype.oN=function(i){var s=new t.Sa,n=i.ac();if(-1!=(n=this.Cr(n))){i.To(s);var h=this.g.fc(this.Ss,s);this.Fa.Sj(n,h)}n=i.wc(),-1!=(n=this.Cr(n))&&(i.Po(s),i=this.g.fc(this.Ss,s),this.Fa.Sj(n,i))},h.prototype.nN=function(t){var i=t.D();-1!=(i=this.Cr(i))&&(t=this.g.fc(this.Ss,t),this.Fa.Sj(i,t))},h.prototype.Cr=function(t){var i=-1;if(0==this.Fa.size(-1))return this.Fa.addElement(-4,-1);if(1==this.Fa.size(-1)){var s=this.g.Na(this.Fa.ja(this.Fa.rc(-1)));return t.Rz(s)||(i=this.Fa.xn(-5)),i}return this.pC(t)},h.prototype.pC=function(i){var s=-1;do{var n=this.Fa.rc(-1),r=this.Fa.Fc(-1),e=this.Fa.ja(n),o=this.Fa.ja(r),a=new t.h,u=new t.h;if(this.Xh.D(e,a),this.Xh.D(o,u),e=t.h.Uq(u,i,a),h.um(e))s=this.Fa.xn(-1),(a=this.nC(i,r,n))!=n&&this.oC(i,n,this.Fa.we(a));else if(h.CG(e)){u=this.Fa.sv(-1);var f=this.Fa.rc(-1),c=this.Fa.Fc(-1);for(e=new t.h,o=new t.h;f!=this.Fa.we(c);){var l=this.Fa.ja(u);this.Xh.D(l,e),l=t.h.Uq(e,i,a),h.CG(l)?(c=u,u=this.Fa.ll(u)):(f=u,u=this.Fa.Xp(u))}if(u=c,a=f,l=this.Fa.ja(u),f=this.Fa.ja(a),this.Xh.D(l,e),this.Xh.D(f,o),a!=n&&(e=t.h.Uq(o,i,e),!h.um(e)))continue;s=this.Fa.zu(a,u,-2,!1),this.oC(i,u,r),this.nC(i,a,n)}else null==this.sb&&(this.sb=new t.yb),this.sb.Dc(u),this.sb.Qc(a),0>(a=this.sb.fe(i,!0))?(a=this.Fa.we(r),this.Fa.vd(r,-1),s=this.Fa.xn(-3),this.nC(i,a,n)):1t},h.CG=function(t){return 0r)throw t.i.fa("Internal Error: max number of iterations exceeded");var a=this.nM(s);if(h=h||a,this.tH&&(a=0!=this.g.Gp(s,!0,!1),h=h||a),a=!1,(0==e||o||t.$t.kI(!0,this.g,i,null,this.nd))&&(a=this.sM(n),h=h||a),!a)break;t.mp.zp(this.nd)}return h},i}();t.Tk=i}(Q||(Q={})),function(t){var i=function(){function i(t){this.$d=this.Mc=null,this.Ys=0,this.Ub=t,this.cA=!0}return i.prototype.uv=function(t,i){var s=this.g.bc(t);if(null==s){if(!this.g.ed(t,i))return null;s=i}return s},i.prototype.Xq=function(){var i;void 0===i&&(i=!1),this.Ys++,(i||0==(4095&this.Ys))&&(this.Ys=0,t.mp.zp(this.Ub))},i.prototype.nP=function(){var i=this.g.Yq(!1),s=!1,n=new t.yb,h=new t.yb,r=new t.l;r.Oa();var e=new t.l;e.Oa();for(var o=new t.Sa,a=new t.TC,u=i.next();-1!=u;u=i.next()){t.mp.zp(this.Ub);var f=null,c=!1;if(!t.aa.Rn(this.g.ic(i.ck))){if(null==(f=this.uv(u,n)))continue;if(f.A(r),r.W(this.qa,this.qa),f.Bi(this.qa)){if(!f.Bi(0))continue;c=!0,f=null}}var l=this.g.Yq(i),p=l.next();for(-1!=p&&(p=l.next());-1!=p;p=l.next()){var v=null,y=!1;if(!t.aa.Rn(this.g.ic(l.ck))){if(null==(v=this.uv(p,h)))continue;if(v.A(e),v.Bi(this.qa)){if(!v.Bi(0))continue;y=!0,v=null}}var d=0,b=0;if(null!=f&&null!=v)r.HG(e)&&(a.Oo(f),a.Oo(v),a.Ea(this.qa,!1),0<(d=a.ol(0))+(b=a.ol(1))&&(this.g.jr(u,a,0,!0),this.g.jr(p,a,1,!0)),a.clear());else if(null!=f){var g=new t.h;if(this.g.D(p,g),r.contains(g)){if(a.Oo(f),this.g.Vi(p,o),a.Kz(this.qa,o,!1),0<(d=a.ol(0)))if(this.g.jr(u,a,0,!0),y){for(y=-1,g=this.g.U(p);-1!=g&&g!=p&&(y=g,null!=(v=this.uv(g,h))&&v.Bi(0));g=this.g.U(g));for(g=p;-1!=g&&(this.g.Dh(g,a.Bf),g!=y);g=this.g.U(g));}else this.g.Dh(p,a.Bf);a.clear()}}else{if(null==v)continue;if(g=new t.h,this.g.D(u,g),e.W(this.qa,this.qa),e.contains(g)){if(a.Oo(v),this.g.Vi(u,o),a.Kz(this.qa,o,!1),0<(b=a.ol(0)))if(this.g.jr(p,a,0,!0),c){for(y=-1,g=this.g.U(u);-1!=g&&g!=u&&(y=g,null!=(v=this.uv(g,h))&&v.Bi(0));g=this.g.U(g));for(g=u;-1!=g&&(this.g.Dh(g,a.Bf),g!=y);g=this.g.U(g));}else this.g.Dh(u,a.Bf);a.clear()}}if(0!=d+b){if(0!=d){if(null==(f=this.g.bc(u))){if(!this.g.ed(u,n))continue;f=n,n.A(r)}else f.A(r);if(f.Bi(this.qa))break}s=!0}}}return s},i.prototype.oP=function(){return this.QU()},i.prototype.QU=function(){return(new t.RC).PX(this.g,this.qa)},i.prototype.lI=function(){var i=!1;null==this.Mc&&(this.Mc=new t.Yj);var s=new t.ia(0);s.Jb(this.g.fd+1);for(var n=this.g.Yq(),h=n.next();-1!=h;h=n.next())s.add(h);this.g.nx(s,s.size),s.add(-1),n=this.g.Gd(),h=this.g.Gd(),this.$d=new t.UC(this.g,this.qa,!this.cA),this.Mc.Vo(this.$d);var r=new t.ia(0),e=new t.ia(0),o=0;new t.h;var a=this.g.td;this.g.vb.mc();for(var u,f,c=this.g.vb.za[0].o,l=s.get(o++);-1!=l;){var p=u=c[2*(f=a.T(l,0))],v=f=c[2*f+1];do{var y=a.T(l,2),d=a.T(l,1);if(-1!=y){var b=a.T(y,0),g=c[2*b];0>(v<(b=c[2*b+1])?-1:v>b?1:pg?1:0)&&(e.add(l),e.add(y))}-1!=d&&(g=c[2*(b=a.T(d,0))],0>(v<(b=c[2*b+1])?-1:v>b?1:pg?1:0)&&(e.add(d),e.add(d))),-1!=(g=this.g.Pa(l,n))&&(r.add(g),this.g.Ra(l,n,-1)),-1!=(g=this.g.Pa(l,h))&&(r.add(g),this.g.Ra(l,h,-1)),-1!==(l=s.get(o++))&&(p=c[2*(v=a.T(l,0))],v=c[2*v+1])}while(-1!=l&&p===u&&v===f);for(p=1==r.size&&2==e.size,g=v=-1,y=0,d=r.size;yt.fd?t=s.nP():s.oP())},i.V=function(t,s,n){return i.fQ(t,t.IF(),s,n)},i.kI=function(s,n,h,r,e){if(!i.yE(n))return!1;var o=new i(e);if(o.g=n,o.qa=h,o.cA=s,o.lI())return null!=r&&r.Wt(o.Ni),!0;var a=new t.Dd;return a.$B(),n.Oc(a),(o=new i(e)).g=n,o.qa=h,o.cA=s,s=o.lI(),a.$B(),n.Oc(a),!!s&&(null!=r&&r.Wt(o.Ni),!0)},i.Ml=function(t,i){return!(16>(t=t.I()))&&2*t+Math.log(t)*Math.LOG10E/Math.log(2)*i<1*t*i},i.lP=function(s,n,h,r){var e=n.getType();if(t.aa.Hc(e))return new i(r).mP(s,n,h);throw t.i.fa("crack_A_with_B")},i.prototype.mP=function(n,h,r){var e=new t.l;n.xc(e);var o=new t.l;if(h.xc(o),o.W(r,r),!o.isIntersecting(e))return n;var a=n.Bb,u=null;null!=a&&(u=a.Fb),i.Ml(n,n.I())&&(u=t.ta.jj(n,o));var f=null!=u?u.getIterator():null,c=h.Ga();h=n.Ga();var l=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(o=[];c.$a();)for(;c.Ha();){var p=c.ha();if(null!=u){for(f.Uo(p,r),a=f.next();-1!=a;a=f.next())if(this.Xq(),h.Vb(u.ja(a),-1),h.Ha()){var v=(a=h.ha()).Ea(p,null,l,null,r);for(a=0;ai.t?1:t.ti.index?1:-1},t}()}(Q||(Q={})),function(t){var i;(i=t.KK||(t.KK={}))[i.Left=0]="Left",i[i.Right=1]="Right",i[i.Coincident=2]="Coincident",i[i.Undefined=3]="Undefined",i[i.Uncut=4]="Uncut";var s=function(t,i,s,n,h,r,e,o,a,u,f){this.X=t,this.bt=i,this.Ns=s,this.tg=n,this.Lm=u,this.Al=f};t.uY=s;var n=function(){function i(t,i){this.JH=t,this.Hi=i}return i.prototype.qM=function(i,s){var n=new t.h;this.Hi.D(i,n);var h=new t.h;return this.Hi.D(s,h),0!=(n=n.compare(h))?n:(i=this.Hi.Pa(i,this.JH))<(s=this.Hi.Pa(s,this.JH))?-1:i==s?0:1},i}(),h=function(t,i,s,n,h,r,e,o,a){this.tg=t,this.Ns=i,this.OA=s,this.UH=n,this.Ei=h,this.Al=r,this.Lm=e,this.VH=o,this.OT=a};t.tY=h,t.LK=function(){function i(){}return i.JK=function(n,h,r,e,o,a){if(h.B())n=new s(h,4,-1,-1,NaN,4,-1,-1,NaN,-1,-1,NaN,-1,-1,NaN),o.push(n);else if(r.B())n=new s(h,4,-1,-1,NaN,4,-1,-1,NaN,-1,-1,NaN,-1,-1,NaN),o.push(n);else{var u=new t.gd;if(u.Ib(h),u.Ib(r),t.Tk.V(u,e,a,!0),0==u.fd)n=new s(h.Ia(),4,-1,-1,NaN,4,-1,-1,NaN,-1,-1,NaN,-1,-1,NaN),o.push(n);else{for(h=0,r=u.Gd(),e=u.ld;-1!=e;e=u.ue(e))for(a=u.Ob(e);-1!=a;a=u.Rb(a))for(var f=u.Xa(a),c=0,l=u.Ja(a);c(p=p.Ea(u,null,c,l,0))&&(r=new h(e,r,c[0],NaN,p,a,o,l[0],NaN),n.push(r),0>(r=s.Pa(e,i))&&s.Ra(e,i,n.length-1)),!0},i.wM=function(i,s,n,r,e,o,a){var u=new t.yb,f=new t.yb,c=[0,0],l=[0,0],p=s.bc(e);return null==p&&(s.ed(e,u),p=u),null==(u=s.bc(a))&&(s.ed(a,f),u=f),2>(p=p.Ea(u,null,c,l,0))&&(r=new h(e,r,c[0],NaN,p,a,o,l[0],NaN),n.push(r),0>(r=s.Pa(e,i))&&s.Ra(e,i,n.length-1),!0)},i.xM=function(i,s,n,r,e,o,a,u){var f=new t.yb,c=new t.yb,l=[0,0],p=[0,0],v=s.bc(e);return null==v&&(s.ed(e,f),v=f),null==(f=s.bc(a))&&(s.ed(a,c),f=c),2==(v=v.Ea(f,null,l,p,0))?(r=new h(e,r,l[0],l[1],v,a,o,p[0],p[1]),n.push(r),0>(r=s.Pa(e,i))&&s.Ra(e,i,n.length-1),!0):(c=!1,e==u&&(r=new h(e,r,l[0],NaN,v,a,o,p[0],NaN),n.push(r),0>(r=s.Pa(e,i))&&s.Ra(e,i,n.length-1),c=!0),c)},i.yM=function(i,s,n,r,e,o,a,u){var f=new t.yb,c=new t.yb,l=[0,0],p=[0,0],v=s.bc(e);return null==v&&(s.ed(e,f),v=f),null==(f=s.bc(a))&&(s.ed(a,c),f=c),2==(v=v.Ea(f,null,l,p,0))?(r=new h(e,r,l[0],l[1],v,a,o,p[0],p[1]),n.push(r),0>(r=s.Pa(e,i))&&s.Ra(e,i,n.length-1),!0):(c=!1,e==u&&(r=new h(e,r,l[0],NaN,v,a,o,p[0],NaN),n.push(r),0>(r=s.Pa(e,i))&&s.Ra(e,i,n.length-1),c=!0),c)},i.cM=function(n,h,r,e){var o=[];o[0]=new t.h,o[1]=new t.h,o[2]=new t.h,o[3]=new t.h;var a=new t.h,u=new t.h,f=new t.h,c=new t.h,l=null;null!=e&&(l=new t.ig).Or();var p=0,v=null,y=new t.yb;new t.yb;for(var d=r.Ob(r.ld);-1!=d;d=r.Rb(d)){for(var b=4,g=-1,w=-1,x=-1,m=-1,j=NaN,M=!0,k=!1,z=!0,A=!0,N=!0,I=0,T=d,C=0,P=r.Xa(d),B=r.Ja(d),D=0;D=h.length-2||h[p+2].Ns!=g)&&(b=0):b=1):((E!=G||L&&0==G)&&(null!=e?(J=new s(v,3,g,F,E,b,T,w,C,S,O,H,x,m,j),e.push(J)):null.add(I)),b=1):0!=b?((E!=G||L&&0==G)&&(null!=e?(J=new s(v,0,g,F,E,b,T,w,C,S,O,H,x,m,j),e.push(J)):null.add(I)),R?(p>=h.length-2||h[p+2].Ns!=g)&&(b=1):b=0):((E!=G||L&&0==G)&&(null!=e?(J=new s(v,3,g,F,E,b,T,w,C,S,O,H,x,m,j),e.push(J)):null.add(I)),b=0),(E!=G||L&&0==G)&&(G=E,T=g,w=F,C=E,x=S,m=O,j=H,M=z=!1,A=N=!0))}}p++}1!=G&&(N&&(null!=e?v=new t.Ta:I=0),null!=e?(q.ah(G,1,l),v.oc(l.get(),A)):I++,A=N=!1,z=!0)}z&&(E=1,F=r.rj(d),F=r.Ma(F),O=S=-1,H=NaN,M?null!=e?(J=new s(v,4,g,F,E,b,T,w,C,S,O,H,x,m,j),e.push(J)):null.add(I):(M=1==b?0:0==b?1:3,null!=e?(J=new s(v,M,g,F,E,b,T,w,C,S,O,H,x,m,j),e.push(J)):null.add(I)))}},i.CM=function(s,n,h,r,e,o){var a=h[r].VH;if(1==a)return i.AM(s,n,h,r,e,o);if(0==a)return i.BM(s,n,h,r,e,o);throw t.i.Qa()},i.AM=function(i,s,n,h,r,e){var o=new t.yb,a=n[h].tg,u=n[h].Lm,f=n[h].Al,c=-1,l=-1,p=-1,v=-1;if(!i&&0.01*i&&(n*=1+(1+(t=t.xb/i))*t),this.pb=s,this.xb=n+2220446049250313e-31*Math.abs(s)},t.prototype.sqrt=function(){if(0<=this.pb){var t=Math.sqrt(this.pb),i=this.pb>10*this.xb?.5*this.xb/t:this.pb>this.xb?t-Math.sqrt(this.pb-this.xb):Math.max(t,Math.sqrt(this.pb+this.xb)-t);i+=2220446049250313e-31*Math.abs(t)}else this.pb<-1*this.xb?i=t=NaN:(t=0,i=Math.sqrt(this.xb));this.pb=t,this.xb=i},t.prototype.sin=function(t){var i=Math.sin(t.pb),s=Math.cos(t.pb);this.pb=i,i=Math.abs(i),this.xb=(Math.abs(s)+.5*i*t.xb)*t.xb+2220446049250313e-31*i},t.prototype.cos=function(t){var i=Math.sin(t.pb),s=Math.cos(t.pb);this.pb=s,s=Math.abs(s),this.xb=(Math.abs(i)+.5*s*t.xb)*t.xb+2220446049250313e-31*s},t.prototype.qg=function(){return Math.abs(this.pb)<=this.xb},t.prototype.ps=function(){return this.qg()&&0!=this.xb},t}();t.Wb=i}(Q||(Q={}));var tt=new Q.h,it=new Q.h,st=new Q.h,nt=new Q.h,ht=new Q.h;!function(t){var i,s;(s=i||(i={}))[s.closedPath=1]="closedPath",s[s.exteriorPath=2]="exteriorPath",s[s.ringAreaValid=4]="ringAreaValid";var n=function(){function i(t,i,s,n,h,r,e){void 0!==i?(this.ib=t,this.ck=i,this.bl=s,this.ii=n,this.ya=r,this.hA=e,this.ew=h):(this.ib=t.ib,this.ck=t.ck,this.bl=t.bl,this.ii=t.ii,this.ya=t.ya,this.hA=t.hA,this.ew=t.ew),this.bH=!0}return i.prototype.next=function(){return this.bH?(this.bH=!1,this.ii):-1!=this.ii?(this.ii=this.ib.U(this.ii),this.ya++,-1!=this.ii&&this.ii!=this.ew?this.ii:this.$T()):-1},i.prototype.$T=function(){for(this.bl=this.ib.Rb(this.bl),this.ya=0;-1!=this.ck;){for(;-1!=this.bl;this.bl=this.ib.Rb(this.bl))if(this.ew=this.ii=this.ib.Xa(this.bl),-1!=this.ii)return this.ii;if(this.ck=this.ib.ue(this.ck),-1==this.ck)break;this.hA&&!t.aa.Hc(this.ib.ic(this.ck))||(this.bl=this.ib.Ob(this.ck))}return-1},i.AP=function(t,s,n,h,r,e,o){return new i(t,s,n,h,r,e,o)},i}();t.zY=n,i=function(){function i(){this.jo=this.Am=this.wk=this.cd=this.Ck=this.vo=this.Oi=this.md=this.bi=this.Sg=this.We=this.Il=null,this.qw=this.ld=-1,this.fd=0,this.fA=!1,this.ht=this.it=this.vb=null}return i.prototype.Sh=function(t){return null!=this.We?this.We[t]:null},i.prototype.Xg=function(t,i){if(null==this.We){if(null==i)return;this.We=[];for(var s=0,n=this.vb.I();s=this.Oi.size&&(i=16>s?16:t.O.truncate(3*s/2),this.Oi.resize(i),this.vo.resize(i)),this.Oi.set(s,0),this.vo.set(s,0),s},i.prototype.sF=function(t){this.md.jd(t)},i.prototype.Vy=function(t){this.td.jd(t),this.fd--},i.prototype.oI=function(i){null==this.md&&(this.md=new t.$c(8),this.td=new t.$c(5),this.Oi=new t.be(0),this.vo=new t.be(0));var s=this.td.Ce(),n=0<=i?i:s;if(this.td.S(s,0,n),0>i){if(n>=this.vb.I()){if(i=16>n?16:t.O.truncate(3*n/2),this.vb.resize(i),null!=this.We)for(var h=0;hs.Ja(h))){var e=this.vf(i,-1);this.kn(e,s.dc(h));for(var o=s.Ba(h),a=s.Vc(h);oi.Ja(s))return n;this.Il.Fd(i,i.Ba(s),i.Vc(s)),this.it=this.vb.ub(0);var h=this.vf(n,-1);this.kn(h,i.dc(s)||!0);var r=null!=this.We&&null!=i.Ve,e=i.Ba(s);for(s=i.Vc(s);e=s.size&&s.resize(Math.max(t.O.truncate(1.25*i),16),-1),s.write(i,n)},i.prototype.KF=function(t,i){return(t=this.JF(t))<(i=this.wk[i]).size?i.read(t):-1},i.prototype.aF=function(){null==this.wk&&(this.wk=[]);for(var i=0;iu:2>u)?(o=this.Zq(o),h=0c){var l=c;null!=a&&(l=0l){var p=l;if(null!=a&&(p=0h||r>this.fd-1)throw t.i.N("invalid call");if(h>r&&!this.dc(i))throw t.i.N("cannot iterate across an open path");for(i=0;s!=n;s=this.U(s))h=this.Ua(s),null!=(r=this.Sh(h))?i+=r.Qb():(r=this.Ua(this.U(s)),i+=this.vb.yr(h,r));return i},i.prototype.Dh=function(t,i){var s=this.Ua(t);this.vb.Ht(s,i),null!=(s=this.Sh(s))&&s.setStart(i),-1!=(t=this.Ma(t))&&(t=this.Ua(t),null!=this.Sh(t)&&s.setEnd(i))},i.prototype.Vi=function(t,i){t=this.Ua(t),this.vb.ve(t,i)},i.prototype.mf=function(t,i){this.Cb(t,i.x,i.y)},i.prototype.Cb=function(t,i,s){var n=this.Ua(t);this.vb.Cb(n,i,s),null!=(n=this.Sh(n))&&n.ZB(i,s),-1!=(t=this.Ma(t))&&(t=this.Ua(t),null!=this.Sh(t)&&n.Ql(i,s))},i.prototype.D=function(t,i){this.vb.D(this.td.T(t,0),i)},i.prototype.Gc=function(t,i){this.vb.za[0].tc(2*this.td.T(t,0),i)},i.prototype.Na=function(i){var s=new t.h;return this.vb.D(this.td.T(i,0),s),s},i.prototype.dG=function(t,i){this.it.tc(2*t,i)},i.prototype.Uc=function(t,i,s){return this.vb.Uc(t,this.Ua(i),s)},i.prototype.setAttribute=function(t,i,s,n){this.vb.setAttribute(t,this.Ua(i),s,n)},i.prototype.Ua=function(t){return this.td.T(t,0)},i.prototype.ih=function(){var i=new t.h;return this.D(void 0,i),i.y},i.prototype.fq=function(t,i){t=this.Ua(t),i=this.Ua(i);var s=this.vb.za[0].o;return s[2*t]===s[2*i]&&s[2*t+1]===s[2*i+1]},i.prototype.Dv=function(t,i){t=this.Ua(t);var s=this.vb.za[0].o;return s[2*t]===i.x&&s[2*t+1]===i.y},i.prototype.vX=function(i,s){if(1>s&&(s=1),null==this.Sg){if(1==s)return;this.Sg=t.Yc.Dn(this.vb.I(),1)}(i=this.Ua(i))>=this.Sg.size&&this.Sg.resize(i+1,1),this.Sg.write(i,s)},i.prototype.cG=function(t){return t=this.Ua(t),null==this.Sg||t>=this.Sg.size?1:this.Sg.read(t)},i.prototype.Ra=function(t,i,s){i=this.bi[i],t=this.Ua(t),i.sizet?1:ir?1:0}))},i.prototype.jS=function(){for(var i=this.ld;-1!=i;i=this.ue(i))if(!t.aa.Hc(this.ic(i)))return!0;return!1},i.prototype.hC=function(t,i){for(var s=this.Ob(t),n=this.Ob(i),h=this.kv(t),r=this.kv(i),e=this.Ob(t);-1!=e;e=this.Rb(e))this.gx(e,i);for(e=this.Ob(i);-1!=e;e=this.Rb(e))this.gx(e,t);this.Zo(t,n),this.Zo(i,s),this.$o(t,r),this.$o(i,h),s=this.I(t),n=this.da(t),h=this.da(i),this.Tj(t,this.I(i)),this.Tj(i,s),this.Rl(t,h),this.Rl(i,n),s=this.cd.T(t,2),this.cd.S(t,2,this.cd.T(i,2)),this.cd.S(i,2,s)},i}(),t.gd=i}(Q||(Q={})),function(t){var i=function(i){function s(s,n,h,r){var e=i.call(this)||this;return e.$=new t.l,void 0===s?e.UE():"number"==typeof s?e.VO(s,n,h,r):s instanceof t.Sa?void 0!==n?e.Qu(s,n,h):e.WO(s):s instanceof t.ra?void 0!==n?e.YO(s,n):e.XO(s):s instanceof t.l?e.UO(s):e.UE(),e}return _(s,i),s.prototype.Qu=function(i,s,n){this.description=t.ee.og(),this.$.Oa(),i.B()||this.tu(i,s,n)},s.prototype.UO=function(i){this.description=t.ee.og(),this.$.K(i),this.$.normalize()},s.prototype.XO=function(i){if(null==i)throw t.i.N();this.description=i,this.$.Oa()},s.prototype.YO=function(i,s){if(null==i)throw t.i.N();this.description=i,this.$.K(s),this.$.normalize()},s.prototype.UE=function(){this.description=t.ee.og(),this.$.Oa()},s.prototype.WO=function(i){this.description=t.ee.og(),this.$.Oa(),i.B()||this.tu(i)},s.prototype.VO=function(i,s,n,h){this.description=t.ee.og(),this.K(i,s,n,h)},s.prototype.K=function(t,i,s,n){if(this.vc(),"number"==typeof t)this.$.K(t,i,s,n);else for(this.Oa(),i=0,s=t.length;i=t.ra.Va(s))throw t.i.N();var h=this.description.Pf(s);return this.ou(),0<=h?this.ka[this.kR(this.description,i)+this.description.LR(h)-2+n]:t.ra.se(s)},s.prototype.ou=function(){if(this.vc(),null==this.ka&&2=t.ra.Va(n))throw t.i.ce();var r=this.description.Pf(n);return 0<=r?(this.ou(),this.ka[s.Gg(this.description,i)+this.description.$j(r)-2+h]):t.ra.se(n)},s.prototype.vD=function(i,n,h,r){if(this.vc(),0==n)0!=i?0!=h?this.$.H=r:this.$.C=r:0!=h?this.$.G=r:this.$.v=r;else{if(h>=t.ra.Va(n))throw t.i.ce();if(!this.hasAttribute(n)){if(t.ra.DG(n,r))return;this.re(n)}n=this.description.Pf(n),this.ou(),this.ka[s.Gg(this.description,i)+this.description.$j(n)-2+h]=r}},s.Gg=function(t,i){return i*(t.Ae.length-2)},s.prototype.Ea=function(i){this.vc();var s=new t.l;return i.A(s),this.$.Ea(s)},s.prototype.isIntersecting=function(i){return i instanceof t.l?this.$.isIntersecting(i):this.$.isIntersecting(i.$)},s.prototype.Ju=function(t,i){this.vc(),t.B()?this.Oa():void 0!==i?this.tu(t,i):this.$.Ju(t.Lg(),t.ih())},s.prototype.offset=function(t,i){this.vc(),this.$.offset(t,i)},s.prototype.normalize=function(){this.vc(),this.$.normalize()},s.prototype.sf=function(i){if(void 0===i){if(i=new t.Sa(this.description),this.B())return i;for(s=this.description.Aa,n=1;nthis.C&&(this.C=n.x),n.ythis.H&&(this.H=n.y)}}else if(null==t||0==t.length)this.Oa();else for(n=t[0],this.K(n.x,n.y),s=1;ss?this.v=s:this.Cn?this.G=n:this.Ht?this.v=t:this.Ci?this.G=i:this.Hthis.C||this.G>this.H)&&this.Oa())},i.prototype.scale=function(t){0>t&&this.Oa(),this.B()||(this.v*=t,this.C*=t,this.G*=t,this.H*=t)},i.prototype.zoom=function(t,i){this.B()||this.K(this.sf(),t*this.R(),i*this.ca())},i.prototype.isIntersecting=function(t){return!this.B()&&!t.B()&&(this.v<=t.v?this.C>=t.v:t.C>=this.v)&&(this.G<=t.G?this.H>=t.G:t.H>=this.G)},i.prototype.HG=function(t){return(this.v<=t.v?this.C>=t.v:t.C>=this.v)&&(this.G<=t.G?this.H>=t.G:t.H>=this.G)},i.prototype.Ea=function(t){return!this.B()&&!t.B()&&(t.v>this.v&&(this.v=t.v),t.Cthis.G&&(this.G=t.G),t.Hi.length)throw t.i.N();null!=i[0]?i[0].ma(this.v,this.G):i[0]=t.h.construct(this.v,this.G),null!=i[1]?i[1].ma(this.v,this.H):i[1]=t.h.construct(this.v,this.H),null!=i[2]?i[2].ma(this.C,this.H):i[2]=t.h.construct(this.C,this.H),null!=i[3]?i[3].ma(this.C,this.G):i[3]=t.h.construct(this.C,this.G)},i.prototype.wF=function(){return this.B()?0:this.R()*this.ca()},i.prototype.yR=function(){return this.B()?0:2*(this.R()+this.ca())},i.prototype.gk=function(){return(this.C+this.v)/2},i.prototype.Jp=function(){return(this.H+this.G)/2},i.prototype.R=function(){return this.C-this.v},i.prototype.ca=function(){return this.H-this.G},i.prototype.move=function(t,i){this.B()||(this.v+=t,this.G+=i,this.C+=t,this.H+=i)},i.prototype.Ju=function(i,s){if(void 0!==s)this.move(i-this.gk(),s-this.Jp());else if(i instanceof t.h)this.Ju(i.x,i.y);else{if(!(i instanceof t.Sa))throw t.i.N();s=(this.C-this.v)/2;var n=(this.H-this.G)/2;this.v=i.Lg()-s,this.C=i.Lg()+s,this.G=i.ih()-n,this.H=i.ih()+n}},i.prototype.offset=function(t,i){this.v+=t,this.C+=t,this.G+=i,this.H+=i},i.prototype.normalize=function(){if(!this.B()){var t=Math.min(this.v,this.C),i=Math.max(this.v,this.C);this.v=t,this.C=i,t=Math.min(this.G,this.H),i=Math.max(this.G,this.H),this.G=t,this.H=i}},i.prototype.dn=function(t){t.ma(this.v,this.G)},i.prototype.$I=function(t){t.ma(this.C,this.G)},i.prototype.cJ=function(t){t.ma(this.v,this.H)},i.prototype.en=function(t){t.ma(this.C,this.H)},i.prototype.fT=function(){return this.B()||this.v<=this.C&&this.G<=this.H},i.prototype.sf=function(){return t.h.construct((this.C+this.v)/2,(this.H+this.G)/2)},i.prototype.mz=function(){return t.h.construct(this.v,this.G)},i.prototype.contains=function(s,n){if(void 0!==n)return s>=this.v&&s<=this.C&&n>=this.G&&n<=this.H;if(s instanceof t.Sa)return this.contains(s.Lg(),s.ih());if(s instanceof t.h)return this.contains(s.x,s.y);if(s instanceof i)return s.v>=this.v&&s.C<=this.C&&s.G>=this.G&&s.H<=this.H;throw t.i.N()},i.prototype.hm=function(s,n){if(void 0!==n)return s>this.v&&sthis.G&&nthis.v&&s.Cthis.G&&s.H>>32);var s=t.O.Th(i);return i=this.C,i=t.O.truncate(i^i>>>32),s=t.O.Th(i,s),i=this.G,i=t.O.truncate(i^i>>>32),s=t.O.Th(i,s),i=this.H,i=t.O.truncate(i^i>>>32),t.O.Th(i,s)},i.prototype.xr=function(){return this.B()?2220446049250313e-29:2220446049250313e-29*(Math.abs(this.v)+Math.abs(this.C)+Math.abs(this.G)+Math.abs(this.H)+1)},i.prototype.zy=function(t,s){var n=this.Zj(t),h=this.Zj(s);if(0!=(n&h))return 0;if(0==(n|h))return 4;var r=(0!=n?1:0)|(0!=h?2:0);do{var e=s.x-t.x,o=s.y-t.y;if(e>o?0!=(n&i.YC)?(0!=(n&i.ju)?(t.y+=o*(this.v-t.x)/e,t.x=this.v):(t.y+=o*(this.C-t.x)/e,t.x=this.C),n=this.Zj(t)):0!=(h&i.YC)?(0!=(h&i.ju)?(s.y+=o*(this.v-s.x)/e,s.x=this.v):(s.y+=o*(this.C-s.x)/e,s.x=this.C),h=this.Zj(s)):0!=n?(0!=(n&i.ku)?(t.x+=e*(this.G-t.y)/o,t.y=this.G):(t.x+=e*(this.H-t.y)/o,t.y=this.H),n=this.Zj(t)):(0!=(h&i.ku)?(s.x+=e*(this.G-s.y)/o,s.y=this.G):(s.x+=e*(this.H-s.y)/o,s.y=this.H),h=this.Zj(s)):0!=(n&i.ZC)?(0!=(n&i.ku)?(t.x+=e*(this.G-t.y)/o,t.y=this.G):(t.x+=e*(this.H-t.y)/o,t.y=this.H),n=this.Zj(t)):0!=(h&i.ZC)?(0!=(h&i.ku)?(s.x+=e*(this.G-s.y)/o,s.y=this.G):(s.x+=e*(this.H-s.y)/o,s.y=this.H),h=this.Zj(s)):0!=n?(0!=(n&i.ju)?(t.y+=o*(this.v-t.x)/e,t.x=this.v):(t.y+=o*(this.C-t.x)/e,t.x=this.C),n=this.Zj(t)):(0!=(h&i.ju)?(s.y+=o*(this.v-s.x)/e,s.x=this.v):(s.y+=o*(this.C-s.x)/e,s.x=this.C),h=this.Zj(s)),0!=(n&h))return 0}while(0!=(n|h));return r},i.prototype.Zj=function(t){return(t.xthis.C?1:0)<<1|(t.ythis.H?1:0)<<3},i.prototype.Bi=function(t){return!this.B()&&(this.R()<=t||this.ca()<=t)},i.prototype.tb=function(i){return i instanceof t.h?Math.sqrt(this.iK(i)):Math.sqrt(this.px(i))},i.prototype.px=function(t){var i=0,s=0,n=this.v-t.C;return n>i&&(i=n),(n=this.G-t.H)>s&&(s=n),(n=t.v-this.C)>i&&(i=n),(n=t.G-this.H)>s&&(s=n),i*i+s*s},i.prototype.iK=function(t){var i=0,s=0,n=this.v-t.x;return n>i&&(i=n),(n=this.G-t.y)>s&&(s=n),(n=t.x-this.C)>i&&(i=n),(n=t.y-this.H)>s&&(s=n),i*i+s*s},i.prototype.cn=function(t){this.B()?t.Oa():t.K(this.v,this.C)},i.ju=1,i.ku=4,i.YC=3,i.ZC=12,i}();t.l=i}(Q||(Q={})),function(t){var i,s;(s=i||(i={}))[s.initialize=0]="initialize",s[s.initializeRed=1]="initializeRed",s[s.initializeBlue=2]="initializeBlue",s[s.initializeRedBlue=3]="initializeRedBlue",s[s.sweep=4]="sweep",s[s.sweepBruteForce=5]="sweepBruteForce",s[s.sweepRedBlueBruteForce=6]="sweepRedBlueBruteForce",s[s.sweepRedBlue=7]="sweepRedBlue",s[s.sweepRed=8]="sweepRed",s[s.sweepBlue=9]="sweepBlue",s[s.iterate=10]="iterate",s[s.iterateRed=11]="iterateRed",s[s.iterateBlue=12]="iterateBlue",s[s.iterateBruteForce=13]="iterateBruteForce",s[s.iterateRedBlueBruteForce=14]="iterateRedBlueBruteForce",s[s.resetRed=15]="resetRed",s[s.resetBlue=16]="resetBlue";var n=function(){function t(t,i){this.ci=t,this.dH=i}return t.prototype.nr=function(t,i,s){this.ci.JX(s,t,i,this.dH)},t.prototype.$p=function(t){return this.ci.Rr(t,this.dH)},t}();i=function(){function i(){this.ow=this.oo=this.ff=this.rd=null,this.wq=new t.l,this.Am=this.Hj=this.Ij=this.Ad=this.Ef=this.Ld=this.cw=this.fo=this.qd=this.Eb=null,this.Xb=-1,this.qa=0,this.Nk()}return i.prototype.kr=function(){this.Nk(),this.Pv=!0,null==this.Eb?(this.fo=new t.ia(0),this.Eb=[]):(this.fo.Bh(0),this.Eb.length=0)},i.prototype.ad=function(i,s){if(!this.Pv)throw t.i.Hb();var n=new t.l;n.K(s),this.fo.add(i),this.Eb.push(n)},i.prototype.Fp=function(){if(!this.Pv)throw t.i.Hb();this.Pv=!1,null!=this.Eb&&0this.Eb.length)return this.pe=this.Eb.length,this.Xb=5,!0;null==this.rd&&(this.rd=new t.sr(!0),this.oo=this.rd.getIterator(),this.Ld=new t.ia(0)),this.rd.kr();for(var i=0;ithis.Eb.length||10>this.qd.length)return this.pe=this.Eb.length,this.Xb=6,!0;null==this.rd&&(this.rd=new t.sr(!0),this.oo=this.rd.getIterator(),this.Ld=new t.ia(0)),this.rd.kr();for(var i=0;ithis.Eb.length||10>this.qd.length)return this.pe=this.Eb.length,this.Xb=6,!0;null==this.ff&&(this.ff=new t.sr(!0),this.ow=this.ff.getIterator(),this.Ef=new t.ia(0)),this.ff.kr();for(var i=0;ithis.Eb.length||10>this.qd.length)return this.pe=this.Eb.length,this.Xb=6,!0;null==this.rd&&(this.rd=new t.sr(!0),this.oo=this.rd.getIterator(),this.Ld=new t.ia(0)),null==this.ff&&(this.ff=new t.sr(!0),this.ow=this.ff.getIterator(),this.Ef=new t.ia(0)),this.rd.kr();for(var i=0;i>1;return i.eq(t)?(this.rd.remove(s),0!=this.pe||(this.Af=this.Vf=-1,this.Ic=!0,!1)):(this.oo.EB(this.Eb[s].v,this.Eb[s].C,this.qa),this.Vf=s,this.Xb=10,!0)},i.prototype.QX=function(){return-1==--this.pe?(this.Af=this.Vf=-1,this.Ic=!0,!1):(this.Rg=this.Vf=this.pe,this.Xb=13,!0)},i.prototype.RX=function(){return-1==--this.pe?(this.Af=this.Vf=-1,this.Ic=!0,!1):(this.Vf=this.pe,this.Rg=this.qd.length,this.Xb=14,!0)},i.prototype.SX=function(){var t=this.Ld.get(this.pe-1),s=this.Ef.get(this.Rg-1),n=this.Rr(t,!0),h=this.Rr(s,!1);return n>h?this.ux():n>1;if(i.eq(s))return-1!=this.Df&&-1!=this.Ij.get(n)?(this.Ad.jd(this.Df,this.Ij.get(n)),this.Ij.set(n,-1)):this.rd.remove(n),0!=this.pe||(this.Af=this.Vf=-1,this.Ic=!0,!1);if(-1!=this.Cf&&0>1;if(i.eq(s))return-1!=this.Cf&&-1!=this.Hj.get(n)?(this.Ad.jd(this.Cf,this.Hj.get(n)),this.Hj.set(n,-1)):this.ff.remove(n),0!=this.Rg||(this.Af=this.Vf=-1,this.Ic=!0,!1);if(-1!=this.Df&&0>1;return this.rd.vj(t),this.Xb=4,!0},i.prototype.jT=function(){if(this.Vf=this.oo.next(),-1!=this.Vf)return!1;this.Af=this.Vf=-1;var t=this.Ef.get(this.Rg)>>1;return this.ff.vj(t),this.Xb=7,!0},i.prototype.gT=function(){if(this.Af=this.ow.next(),-1!=this.Af)return!1;var t=this.Ld.get(this.pe)>>1;return this.rd.vj(t),this.Xb=7,!0},i.prototype.hT=function(){if(-1==--this.Rg)return this.Xb=5,!0;this.wq.K(this.Eb[this.pe]);var t=this.Eb[this.Rg];return this.wq.W(this.qa,this.qa),!this.wq.isIntersecting(t)||(this.Af=this.Rg,!1)},i.prototype.iT=function(){if(-1==--this.Rg)return this.Xb=6,!0;this.wq.K(this.Eb[this.pe]);var t=this.qd[this.Rg];return this.wq.W(this.qa,this.qa),!this.wq.isIntersecting(t)||(this.Af=this.Rg,!1)},i.prototype.kJ=function(){return null==this.rd?(this.Ic=!0,!1):(this.pe=this.Ld.size,0>1],i.eq(t)?s.G-n:s.H+n):(s=this.qd[t>>1],i.eq(t)?s.G-n:s.H+n)},i}(),t.xC=i}(Q||(Q={})),function(t){var i=function(){function i(){}return i.construct=function(t,s,n,h,r,e){var o=new i;return o.v=t,o.G=s,o.Ye=n,o.C=h,o.H=r,o.Bg=e,o},i.prototype.Oa=function(){this.Ye=this.v=NaN},i.prototype.B=function(){return isNaN(this.v)},i.prototype.XS=function(){return isNaN(this.Ye)},i.prototype.K=function(t,i,s,n,h,r){void 0!==n?"number"==typeof t?(this.v=t,this.G=i,this.Ye=s,this.C=n,this.H=h,this.Bg=r):(this.v=t.x-.5*i,this.C=this.v+i,this.G=t.y-.5*s,this.H=this.G+s,this.Ye=t.z-.5*n,this.Bg=this.Ye+n):(this.v=t,this.G=i,this.Ye=s,this.C=t,this.H=i,this.Bg=s)},i.prototype.move=function(t){this.v+=t.x,this.G+=t.y,this.Ye+=t.z,this.C+=t.x,this.H+=t.y,this.Bg+=t.z},i.prototype.copyTo=function(t){t.v=this.v,t.G=this.G,t.C=this.C,t.H=this.H},i.prototype.Lk=function(t,i,s){this.v>t?this.v=t:this.Ci?this.G=i:this.Hs?this.Ye=s:this.Bgi.length)throw t.i.N();i[0]=new t.Nd(this.v,this.G,this.Ye),i[1]=new t.Nd(this.v,this.H,this.Ye),i[2]=new t.Nd(this.C,this.H,this.Ye),i[3]=new t.Nd(this.C,this.G,this.Ye),i[4]=new t.Nd(this.v,this.G,this.Bg),i[5]=new t.Nd(this.v,this.H,this.Bg),i[6]=new t.Nd(this.C,this.H,this.Bg),i[7]=new t.Nd(this.C,this.G,this.Bg)},i.prototype.Zw=function(t){if(null==t||0==t.length)this.Oa();else{var i=t[0];for(this.K(i.x,i.y,i.z),i=1;ithis.FA;){var o=this.sd.ha();if(h.L(o.ac()),r.L(o.wc()),h.scale(this.Wa.ec),r.scale(this.Wa.ec),t.cj.Mu(h,r)?h.x=r.x:t.cj.Ku(h,r)&&(r.x=h.x),this.uk.length=0,t.cj.tF(this.Wa.Tb,this.Wa.kc,this.Wa.ze,h,r,this.Wa.QA,this.Wa.Zs,e,this.Nj,this.Gs,this.uk,this.bw),null!=this.co&&(o=this.uk.slice(0),this.co.qG(this.co.da()-1,o,o.length-1)),t.cj.Lu(h,r)?(this.qq.Oa(),this.Wa.sy(h,this.sl,this.qq),this.Xn=!0):(this.qq.Oa(),this.Xn=this.xy(e[0],this.qq)),this.Xn){if(this.sd.li(),this.sd.Ez()){this.sd.li(),this.sd.ha();break}this.sd.DW();break}null==i&&(i=new t.Da).Yk(null,0),this.OD(i),s++}if(this.bw[0]=0,0=this.Nj[0]){var e=this.di+1.570796326794897;h=e+3.141592653589793-(this.di-this.Nj[0])}else h=(e=this.di+1.570796326794897)+3.141592653589793-(6.283185307179586-(this.Nj[0]-this.di));var o=!(this.di>=this.Nj[0]&&3.141592653589793>=this.di-this.Nj[0]||this.die;)u-=6.283185307179586;us.x-this.sk[0]?this.sk[0]-=6.283185307179586:3.141592653589793e?a.xX():a.$n=e,h=i.getType(),t.aa.yd(h)?((h=new t.Ta(i.description)).oc(i,!0),i=h,h=1607):197==h&&(h=new t.l,i.A(h),h.R()<=a.qa||h.ca()<=a.qa?((h=new t.Ta(i.description)).ad(i,!1),i=h,h=1607):((h=new t.Da(i.description)).ad(i,!1),i=h,h=1736)),a.yX(),t.aa.Rn(h)||a.zX(),a.rb<=.5*a.$n)return 1736!=h?new t.Da(i.description):a.Wv?i:t.cj.Qr(i,a.Qg,a.ze,a.QA,-1,o);if(0>a.Ka&&1736!=h)return new t.Da(i.description);if(a.Wv&&t.aa.Hc(h)?(s=t.cj.Qr(i,s,4,NaN,a.$n,o),i=t.cb.zh(s,a.Qg,a.Jc)):i=t.cb.zh(i,a.Qg,a.Jc),(i=t.Hh.lj(i,a.Jc)).B())return new t.Da(i.description);switch(!a.Wv&&t.aa.Hc(h)&&(i=t.cj.pI(a.ec,i)),i=n.KX(i,a.Jc),h){case 1736:s=a.UN(i);break;case 1607:s=a.VN(i);break;case 550:s=a.SN(i);break;case 33:s=a.TN(i);break;default:throw t.i.fa("corrupted_geometry")}return(a=t.cb.zh(s,a.Jc,a.Qg)).Jl(i.description),a},n.prototype.UN=function(i){var n=new t.Da;i=new s(this,i,n),i=t.Gh.local().V(i,this.Jc,this.Ub).next(),i=t.ip.nj(i,this.Jc,2);var h=new t.Dd;return h.scale(1/this.ec,1/this.ec),n.Oc(h),n=t.ip.nj(n,this.Jc,2),0<=this.Ka?t.Gh.local().V(n,i,this.Jc,this.Ub):t.kp.local().V(n,i,this.Jc,this.Ub)},n.prototype.VN=function(i){return i=new s(this,i,null),i=t.Gh.local().V(i,this.Jc,this.Ub).next(),t.ip.nj(i,this.Jc,2)},n.prototype.SN=function(s){return s=new i(this,s),s=t.Gh.local().V(s,this.Jc,this.Ub).next(),t.ip.nj(s,this.Jc,2)},n.prototype.TN=function(i){(i=i.D()).scale(this.ec);var s=new t.Da;return this.sy(i,!1,s),t.ip.nj(s,this.Jc,2)},n.prototype.xy=function(i,s,h,r,e,o){var a=i[0],u=i[i.length-1],f=a.y>u.y?a.y:u.y,c=t.F.q(this.Tb,this.kc,a.yt.Ke()&&(this.UV(t),!0)},n.prototype.OI=function(i,s,n){var h=n.I(),r=0e.x?(e=this.zq,h.gg(-this.Js,0)):(e=-this.zq,h.gg(this.Js,0)),s.add(i,!1),i.Oa(),n.add(s,!1),n.Oc(h),r=new t.l,n.A(r),r.W((this.Js-r.R())/2,0),r.G=-this.zq,r.H=this.zq;for(var a=0;a=a));)t.kb.yi(i,s,e.x,e.y,r,m,y,d),f?g.ma(y.u,d.u):(b.ma(y.u,d.u),n.gJ(e.x,b.x,w.x,c),g.ma(c[0]+b.x,b.y),w.L(g)),g.scale(h),l.wf(0,-1,g),o=m,m=x++*u}},n.dJ=function(i,s,n,h,r,e,o,a,u,f){var c=new t.h,l=new t.h,p=new t.ga(0),v=new t.ga(0);for(t.kb.yi(i,s,h.x,h.y,n,r,p,v),c.ma(p.u,v.u),t.kb.yi(i,s,h.x,h.y,n,e,p,v),l.ma(p.u,v.u),n=new t.ga(0),t.kb.Xy(i,s,o.x,o.y,c.x,c.y,n),u[0]=n.u,t.kb.Xy(i,s,o.x,o.y,l.x,l.y,n),f[0]=n.u;u[0]<=f[0];)u[0]+=6.283185307179586;for(;u[0]>f[0];)u[0]-=6.283185307179586;for(;u[0]>=a;)u[0]-=6.283185307179586,f[0]-=6.283185307179586;for(;u[0]e[i]?1:0})),s=i.Ia(),a=0;athis.rb/t&&(t=this.rb/500),.01>t&&(t=.01),this.$n=t},n}();t.VK=n}(Q||(Q={})),function(t){var i=function(){function i(){}return i.Mf=function(i,s){var n=new t.h;n.L(s),i.push(n)},i.up=function(t,i){t.add(i.x),t.add(i.y)},i.hB=function(t){t.Bh(t.size-2)},i.oB=function(t,i){i.ma(t.get(t.size-2),t.get(t.size-1))},i.Qr=function(s,n,h,r,e,o){if(null==s)throw t.i.N();var a=s.getType();if(s.B()||t.aa.Rn(a))return s;var u=new i;u.Qg=n,u.Jc=t.cb.sc(n);var f=t.cb.vv(u.Jc);if(u.Ub=o,u.Tb=t.cb.ev(u.Jc),u.kc=f*(2-f),u.ec=u.Jc.Hd().ai,u.Aq=u.Jc.Kn(),u.Zs=u.Aq*u.ec,u.AA=r,u.zA=e,u.ze=h,197==a?(h=new t.Da(s.description)).ad(s,!1):t.aa.yd(a)?(h=new t.Ta(s.description)).oc(s,!0):h=s,4!=u.ze){if((n=0==u.Qg.Nb(u.Jc)?t.cb.zh(h,u.Qg,u.Jc):t.Hh.lj(h,u.Jc)).B())return n;n=i.pI(u.ec,n),n=u.Zy(n),n=t.ip.nj(n,u.Jc,u.ze),u=t.cb.zh(n,u.Jc,u.Qg)}else{if(2==t.Eg.Sb(n)?(s=t.cb.ml(),(n=t.Xj.local().V(h,s,n,o))==s&&(n=new t.Da,s.copyTo(n))):n=t.Hh.lj(h,u.Jc),n.B())return n;u=u.CX(n)}return u},i.pI=function(s,n){var h=new t.l;if(n.xc(h),3.141592653589793>h.R()*s)return n;var r=!1;h=n.Ga();for(var e=new t.h,o=new t.h;h.$a();)for(;h.Ha();){var a=h.ha();if(e.L(a.ac()),o.L(a.wc()),e.scale(s),o.scale(s),3.141592653589793o.x-e.x)for(;-6.283185307179586>o.x-e.x;)o.x+=6.283185307179586;i.Wi(o.x,NaN,b),p.L(o)}else c.L(o),i.AU(c),i.Wi(c.x,d,b),p.ma(b[0]+c.x,c.y);.5>Math.abs(p.x-o.x)&&p.L(o),f?(a.Tw(0,y),v.L(l),v.scale(1/s),y.Cb(v),(u=h.vm())?r.nf(y):r.lineTo(y),h.Qn()&&!n.dc(h.gb)&&(a.Tw(1,y),v.L(p),v.scale(1/s),y.Cb(v),r.lineTo(y))):((u=h.vm())&&r.Hz(null,0),a=r.da()-1,v.L(l),v.scale(1/s),r.wf(a,-1,v),h.Qn()&&!n.dc(h.gb)&&(v.L(p),v.scale(1/s),r.wf(a,-1,v)))}return r},i.tF=function(s,n,h,r,e,o,a,u,f,c,l,p){var v=new t.h,y=new t.h,d=0w&&(w+=6.283185307179586),0>(b=b.u)&&(b+=6.283185307179586),null!=f&&(f[0]=g),null!=c&&(c[0]=w),null!=l&&(l[0]=b),c=f=NaN,null!=p&&(f=((c=t.F.Ah(s,n))-(l=t.F.q(s,n,r.y)))/g,c=(c+l)/g),l=i.Mu(r,e),b=i.Ku(r,e),w=l||b;var x=i.FE(r,e,u),m=new t.ga(0),j=new t.ga(0),M=new t.h,k=new t.h,z=new t.h;i.Wi(r.x,NaN,y);var A=[y[0]];if(g<=o)i.Mf(v,r),i.Wi(e.x,NaN,y),null!=p&&p.add(0),w?(l&&i.kB(r,e,p,v),b&&i.iB(r,e,p,v)):x?i.jB(r,e,d,f,c,p,v):0z.x&&(y[0]+=6.283185307179586,z.ma(y[0]+M.x,M.y)):I.xa.x?a.x+=6.283185307179586:3.141592653589793P;P++)if(I=N[P]*c+(1-N[P])*f,t.kb.oj(s,n,r.x,r.y,I*e,o,g,w,h),M.ma(g.u,w.u),0==P&&(C=I,k.L(M)),i.WW(m,M,j,A),A.hc(A.fe(M,!0),z),t.kb.wd(s,n,M.x,M.y,z.x,z.y,x,null,null,2),x.u>l){T=!0;break}T?(j.L(k),c=C,i.up(a,j),u.add(c)):(i.hB(a),u.En(u.size-1,1,u.size-1),0=a&&F.u<=o&&3.141592653589793>Math.abs(d.x-b.x))break;if(r.Ux(T,C)<=e)break}var U=q[A]*C+(1-q[A])*T;if(r.hc(U,p),z?g.ma(p.x*h,p.y*h):(k[0][0]=p.x,k[0][1]=p.y,t.cb.vt(),g.x=k[0][0]*h,g.y=k[0][1]*h),0==A&&(K=U,y.L(p),x.L(g),0o||3.141592653589793<=Math.abs(d.x-b.x)))){L=!0;break}if(P&&0o||3.141592653589793<=Math.abs(d.x-g.x)){L=!0;break}}else if(0a){L=!0;break}if(P){if(t.kb.wd(s,n,M.x,M.y,w.x,w.y,J,null,null,2),J.u>a){L=!0;break}if(t.kb.wd(s,n,w.x,w.y,g.x,g.y,R,null,null,2),R.u>a){L=!0;break}}}}L?(l.L(y),b.L(x),C=K,i.up(N,l),i.up(B,b),D.add(C)):(i.hB(N),i.hB(B),D.En(D.size-1,1,D.size-1),i.Mf(f,l),I+=F.u,null!=u&&u.add(I),0Math.abs(i.x-t.x)?(n.Dc(t),3.141592653589793<=s.x-t.x?n.Ql(s.x-6.283185307179586,s.y):3.141592653589793<=t.x-s.x?n.Ql(s.x+6.283185307179586,s.y):n.Ql(s.x,s.y)):(n.Dc(s),3.141592653589793<=t.x-s.x?n.Ql(t.x-6.283185307179586,t.y):3.141592653589793<=s.x-t.x?n.Ql(t.x+6.283185307179586,t.y):n.Ql(t.x,t.y))},i.YJ=function(t,i){for(var s=0;st.x)for(;-3.141592653589793>t.x;)t.x+=6.283185307179586;if(3.141592653589793s.v+e&&at?-t:t},t.Mb=function(i,s){return 0<=s?t.P(i):-t.P(i)},t.Y=function(i,s){return i==s||t.P(i-s)<=t.JC*(1+(t.P(i)+t.P(s))/2)},t.Cd=function(i){return 0==i||t.P(i)<=t.JC},t.Ah=function(i,s){var n=(s=(1-(s=Math.sqrt(1-s)))/(1+s))*s;return i/(1+s)*(1+n*(.25+n*(.015625+1/256*n)))*t.EL},t.EL=1.5707963267948966,t.JC=3552713678800501e-30,t}()}(Q||(Q={})),function(t){var i=function(t){this.Wf=t,this.Kk=this.Wf.getCode(),0>this.Kk&&(this.Kk=0)};t.DY=i;var s=function(){function s(t){void 0===t&&(t=null),this.Cj=null,this.Un=!1,null!==t&&(this.Cj=new i(t))}return s.prototype.Ec=function(){return null!=this.Cj?this.Cj.Kk:0},s.prototype.Of=function(){var t=new s;return this.copyTo(t),t},s.prototype.copyTo=function(t){t.Cj=this.Cj,t.Un=this.Un},s.prototype.Qz=function(){this.Un=!this.Un},s.prototype.qm=function(){return null!=this.Cj?this.Cj.Wf:null},s.prototype.LJ=function(s){if(0>=s)throw t.i.N();if(s!=this.Ec()){if(null==(s=t.pf.geogtran(s)))throw t.i.N("Geogtran not found.");this.Cj=new i(s)}},s.prototype.Bz=function(){return null==this.Cj?null:this.Cj.Wf.toString()},s.prototype.tX=function(s){if(null==s)throw t.i.N();var n=null;try{n=t.pf.fromString(t.Sc.PE_TYPE_GEOGTRAN,s)}catch(i){throw t.i.N()}this.Cj=new i(n)},s.prototype.Nb=function(t){return t==this||!(!(t instanceof s)||(0>=this.Ec()||this.Ec()!=t.Ec())&&!this.qm().isEqual(t.qm()))&&this.Un==t.Un},s.prototype.toString=function(){var t="GeographicTransformation: "+this.Bz();return 200t.I())},t.BE=function(t){return!(t.B()||1607!=t.getType()&&1736!=t.getType()||20>t.I())},t}();t.Uk=i}(Q||(Q={})),function(t){t.$b=function(){function i(){}return i.TT=function(i){var s=new t.Da;return s.sx(i.es(),i.gs()),s.yj(i.es(),i.fs()),s.yj(i.ds(),i.fs()),s.yj(i.ds(),i.gs()),s},i.zh=function(i,s){return null===i?null:t.Hx.local().V(i,s,null)},i.jY=function(i,s){var n=t.Gh.local();return i=new t.Zc(i),n.V(i,s,null).next()},i.im=function(i,s,n){return t.kp.local().V(i,s,n,null)},i.ep=function(i,s,n){return t.Kx.local().V(i,s,n,null)},i.VX=function(i,s,n){var h=t.Kx.local();for(i=new t.Zc(i),s=new t.Zc(s),n=h.V(i,s,n,null),h=[];null!=(s=n.next());)h.push(s);return h},i.Nb=function(i,s,n){return t.dj.local().V(3,i,s,n,null)},i.TP=function(i,s,n){return t.dj.local().V(4,i,s,n,null)},i.RS=function(i,s,n){var h=t.Xj.local();for(i=new t.Zc(i),s=new t.Zc(s),n=h.V(i,s,n,null),h=[];null!=(s=n.next());)h.push(s);return h},i.QP=function(i,s,n){var h=t.kp.local();for(i=new t.Zc(i),s=new t.Zc(s),n=h.V(i,s,n,null),h=[];null!=(s=n.next());)h.push(s);return h},i.Ea=function(i,s,n){return t.Xj.local().V(i,s,n,null)},i.QS=function(i,s,n){if(null===(i=t.Xj.local().V(i,s,n,null,1)))return[];if(550===i.getType()){for(s=[],n=0;ni.Db())return 0;var h=null;if(null!=s){if(h=s.Hd(),null!=n&&h.Ec()!=n.Ec()&&h.od!=n.od)throw t.i.Xk()}else if(null!=n)throw t.i.N();1736==i.getType()||197==i.getType()?s=i.mg():t.aa.yd(i.getType())?(s=new t.Ta(i.description)).oc(i,!0):s=i,i=0,s=s.Ga();for(var r=new t.h,e=new t.h;s.$a();)for(;s.Ha();){var o=s.ha();o.Yp(r),o.Tr(e),i+=t.h.tb(r,e)}return null!==h&&null!==n&&(i=t.Tc.Nh(i,h,n)),i},i.fP=function(t){return void 0!==t.points?i.mS(t,void 0!==t.hasZ&&t.hasZ,void 0!==t.hasM&&t.hasM):void 0!==t.rings?i.lG(t.rings,void 0!==t.hasZ&&t.hasZ,void 0!==t.hasM&&t.hasM,"P"):void 0!==t.paths?i.lG(t.paths,void 0!==t.hasZ&&t.hasZ,void 0!==t.hasM&&t.hasM,"L"):void 0!==t.x?i.nS(t):void 0!==t.xmin?i.lS(t):null},i.nS=function(i){if(null==i.x||"NaN"==i.x)return new t.Sa;var s=new t.Sa(i.x,i.y);return void 0!==i.z&&null!==i.z&&s.wX(i.z),void 0!==i.m&&null!==i.m&&s.hX(i.m),s},i.lS=function(i){if(null==i.xmin||"NaN"==i.xmin)return new t.Fh;var s=new t.Fh(i.xmin,i.ymin,i.xmax,i.ymax);return void 0!==i.zmin&&null!==i.zmin&&s.setInterval(1,0,i.zmin,i.zmax),void 0!==i.mmin&&null!==i.mmin&&s.setInterval(2,0,i.mmin,i.mmax),s},i.mS=function(i,s,n){var h=0,r=new t.de,e=3*i.points.length;0!=e%2&&e++,2>e&&(e=2);var o=t.O.truncate(3*i.points.length/2);4>o?o=4:16>o&&(o=16),e=t.Yc.Dn(e,0);var a=t.Yc.Dn(o);o=t.Yc.Dn(o);for(var u=0;u=e?(p[v]=!1,c+=1,a.add(f),u.add(r),f+=y):p[v]=!0}for(0!=(h=3*f)%2&&h++,2>h&&(h=2),4>(v=t.O.truncate(3*f/2))?v=4:16>v&&(v=16),h=t.Yc.Dn(h,0),r=t.Yc.Dn(v),e=t.Yc.Dn(v),v=y=0;vs)throw t.i.N();this.Qi.oa=i-n,this.Qi.va=s+n,this.hi.resize(0),this.he=0,this.sg[0]=0},i.prototype.Uo=function(t,i){this.Qi.oa=t-i,this.Qi.va=t+i,this.hi.resize(0),this.he=0,this.sg[0]=0},i.prototype.next=function(){if(!this.Ya.lq)throw t.i.Hb();if(0>this.he)return-1;for(var i=!0;i;)switch(this.sg[this.he]){case 1:i=this.FU();break;case 2:i=this.GU();break;case 3:i=this.HU();break;case 4:i=this.IU();break;case 5:i=this.GW();break;case 6:i=this.kT();break;case 7:i=this.tN();break;case 0:i=this.Gz();break;default:throw t.i.Qa()}return-1!=this.Og?this.Mp()>>1:-1},i.construct=function(t){var s=new i;return s.Ya=t,s.hi.Jb(20),s.he=-1,s},i.prototype.Gz=function(){return this.Og=this.vH=this.Mi=this.Lc=-1,null!=this.Ya.me&&0=this.Qi.oa?(this.ei=this.QR(),!1):(this.he--,!0)},i.prototype.tN=function(){return this.Og=this.ei,-1!=this.Og&&e.gq(this.Mp())?(this.ei=this.SF(),!1):(this.he--,!0)},i.prototype.SF=function(){return this.Ya.Sf?this.Ya.$f.lb(this.Og):this.Ya.Ti.lb(this.Og)},i.prototype.QR=function(){return this.Ya.Sf?this.Ya.$f.we(this.Og):this.Ya.Ti.we(this.Og)},i.prototype.Mp=function(){return this.Ya.Sf?this.Ya.$f.ja(this.Og):this.Ya.Ti.getData(this.Og)},i}();t.EY=r;var e=function(){function i(t){this.Am=this.$h=this.$f=this.Ti=this.Km=this.Ej=this.me=this.Fj=null,this.Sf=t,this.lq=this.Sv=!1}return i.prototype.kr=function(){this.Nk(!0)},i.prototype.Br=function(i,s){if(!this.Sv)throw t.i.Hb();this.Fj.push(new t.Nc(i,s))},i.prototype.Fp=function(){if(!this.Sv)throw t.i.fa("invalid call");this.Sv=!1,this.lq=!0,this.Sf||(this.vS(),this.Zv=this.Fj.length)},i.prototype.vj=function(i){if(!this.Sf||!this.lq)throw t.i.N("invalid call");if(-1==this.kf){var s=this.Fj.length;if(this.iA){var n=new t.ia(0);n.Jb(2*s),this.bJ(n),this.$h.Jb(2*s),this.$h.resize(0),this.aJ(n),this.Km.resize(s,-1),this.Km.Wj(-1,0,s),this.iA=!1}else this.Km.Wj(-1,0,s);this.kf=this.Tu()}s=this.pG(i<<1,this.kf),n=this.$f.addElement(1+(i<<1),this.xz(s)),this.VJ(s,n),this.Km.set(i,s),this.Zv++},i.prototype.remove=function(i){if(!this.Sf||!this.lq)throw t.i.fa("invalid call");var s=this.Km.get(i);if(-1==s)throw t.i.N("the interval does not exist in the interval tree");this.Km.set(i,-1),this.Zv--;var n=this.xz(s),h=this.$f.ZR(n);this.$f.vd(this.wR(s),n),this.$f.vd(this.TR(s),n),0==(i=this.$f.size(n))&&(this.$f.MP(n),this.ZJ(h,-1)),this.Ej.jd(s),n=this.UF(h);var r=this.qj(h),e=this.lk(h);for(s=0;!(0>1);-1!=r?this.VJ(r,this.Ti.addElement(this.xz(r),h)):(r=this.pG(h,this.kf),n.set(h>>1,r))}},i.prototype.pG=function(i,s){var n=s,h=s,r=-1,e=0,o=this.$h.size-1,a=0,u=i>>1,f=NaN,c=NaN,l=!0,p=this.DR(u);for(u=this.AR(u);l;){ev&&(vv)-1!=s&&(s==n?(h=n,f=v,c=-1!=(s=this.lk(n))?this.Np(s):NaN):c>1];return i.gq(t)?s.oa:s.va},i}();t.sr=e}(Q||(Q={})),function(t){var i=function(){function i(i){if(null==i)throw t.i.fa("Invalid arguement");this.hf=i;var s=i.nR();s.hS()?i.ef.IG()?this.lo=t.si.PannableFold:this.lo=t.si.Clip:this.lo=t.si.DontClip,s.iS()?i.Yf.IG()?this.Qm=t.si.PannableFold:this.Qm=t.si.Clip:this.Qm=t.si.DontClip,this.Bm=s.Jr,this.mH=s.Vu,i=this.hf.sH,this.aH=i.hs(2147483648),this.Uv=i.hs(1073741824)}return i.zh=function(t,i,s){return i.ww.zh(t,s)},i.Rt=function(t,i,s,n){return t.ww.Rt(i,s,n)},i.Qt=function(t,i,s,n){if(s=0>s?i.length:s,(t=t.ww.Rt(i,s,n))==s)return t;for(var h=i=0;he.H){var y=t.l.construct(u.v-1,e.G,u.C+1,e.H);if((v=t.ri.Nu(v,y,h,NaN,0,n)).B())return v}u.R()>2*e.R()&&(v=t.zb.Hp(v,-2*e.R(),2*e.R(),h,!0,0,!0,n))}u=this.mH,(e=!isNaN(u))&&(v=t.Xl.local().V(v,u,n)),y=c?r.kk():null;var d=NaN;f&&(d=h.zi());var b=null!=r.Wr();if(this.aH)f&&(t.zb.ur(h,d,v,a),e&&(f=h.hh(),u*=(d=h.sc().hh())/f)),t.zb.tr(this.hf,v,p,a),e&&(f=h.sc().hh(),u*=(d=r.sc().hh())/f),h=v;else{var g=new t.Ta(v.description);g.DD(v),f&&(t.zb.ur(h,d,g,a),e&&(f=h.hh(),u*=(d=h.sc().hh())/f)),t.zb.tr(this.hf,g,p,a),e&&(f=h.sc().pm(),u*=(d=r.sc().pm())/f),p=NaN,c?(y=r.kk(),p=r.zi()):isNaN(this.Bm)||(p=this.Bm),f=i.tv(h)|i.tv(r),d=10*l.Xd(0),this.Uv&&(f=3,d=0),h=t.zb.UQ(v,h,g,l,p,n,f,d)}return b&&(h=t.zb.XD(h,r,n)),c&&(o||(c=l.Oe().R(),h.Tg(0,0).R()>=c-l.Xd(0)&&(l=y.getNorthPoleLocation(),c=y.getSouthPoleLocation(),v=y.getNorthPoleGeometry(),y=y.getSouthPoleGeometry(),p=0,v==t.Cg.PE_POLE_POINT&&l!=t.Cg.PE_POLE_OUTSIDE_BOUNDARY&&(p=1),y==t.Cg.PE_POLE_POINT&&c!=t.Cg.PE_POLE_OUTSIDE_BOUNDARY&&(p|=2),0!==p&&(o=!0))),h=t.zb.Mz(h,r,this.Qm,n),e&&(h=t.Xl.local().V(h,u,n)),t.zb.Lx(r,h,a)),h.B()||(o&&(h=t.Yl.local().V(h,r,!1,n)),null!=s&&(h=s.Zk(h,!1),this.wp(s,t.bm.reverse,h),h=s.$k(h,!1))),h},i.tv=function(i){if(2!=i.Sb())return 0;var s=0,n=i.kk();i=n.getNorthPoleLocation();var h=n.getSouthPoleLocation(),r=n.getNorthPoleGeometry();return n=n.getSouthPoleGeometry(),r==t.Cg.PE_POLE_POINT&&i!=t.Cg.PE_POLE_OUTSIDE_BOUNDARY&&(s=1),n==t.Cg.PE_POLE_POINT&&h!=t.Cg.PE_POLE_OUTSIDE_BOUNDARY&&(s|=2),s},i.prototype.hW=function(s,n){var h=this.hf.ef,r=this.hf.Yf,e=h.Sb(),o=r.Sb(),a=t.O.Fu(Math.min(s.I(),64)),u=t.Ta.jg(s);3==e&&(e=(h=(s=h.Ji).fk()).Sb(),u=s.$k(u,!0),this.wp(s,t.bm.forward,u),u=s.Zk(u,!0)),s=null,3==o&&(o=(r=(s=r.Ji).fk()).Sb());var f=2==e;e=(o=2==o)?r.sc():r;var c=!o&&!this.Uv;if(f){if((u=t.zb.UI(u,h,this.lo,n)).B())return u}else{var l=new t.l;u.xc(l);var p=h.Oe();if((l.Gp.H)&&(l=t.l.construct(l.v-1,p.G,l.C+1,p.H),(u=t.ri.Nu(u,l,h,NaN,0,n)).B()))return u}var v=NaN;f&&(v=h.zi()),l=null!=r.Wr(),p=this.mH;var y=!isNaN(p);if(y&&(u=t.Xl.local().V(u,p,n)),this.aH)f&&t.zb.ur(h,v,u,a),y&&(f=h.hh(),p*=(v=h.sc().hh())/f),t.zb.tr(this.hf,u,c,a),y&&(f=h.sc().hh(),p*=(v=r.sc().hh())/f),h=u;else{var d=new t.Ta(u.description);d.DD(u),f&&(t.zb.ur(h,v,d,a),y&&(f=h.hh(),p*=(v=h.sc().hh())/f)),t.zb.tr(this.hf,d,c,a),y&&(f=h.sc().hh(),p*=(v=r.sc().hh())/f),c=NaN,o?c=r.zi():isNaN(this.Bm)||(c=this.Bm),f=i.tv(h)|i.tv(r),v=10*e.Xd(0),this.Uv&&(f=3,v=0),h=t.zb.VQ(u,h,d,e,c,n,f,v)}return l&&(h=t.zb.XD(h,r,n)),o&&(h=t.zb.Mz(h,r,this.Qm,n),y&&(h=t.Xl.local().V(h,p,n)),t.zb.Lx(r,h,a)),h.B()||null!=s&&(h=s.Zk(h,!1),this.wp(s,t.bm.reverse,h),h=s.$k(h,!1)),h},i.prototype.eW=function(i,s){var n=(i.ca()+i.R())/400;return 0!=n?(n=t.Xl.local().V(i,n,s),n=this.VI(n,s),s=i.Ia(),n.bn(s)):(s=new t.Sa(i.Ip()),n=this.XI(s),s=i.Ia(),n.B()?s.Oa():(i.copyTo(s),i=n.D(),s.K(i.x,i.y,i.x,i.y))),s},i.prototype.fW=function(i,s){i=t.aa.jg(i);var n=this.hf.ef,h=this.hf.Yf,r=n.Sb(),e=h.Sb(),o=t.O.Fu(Math.min(i.I(),64));if(3==r){var a=n.Ji;r=(n=a.fk()).Sb(),i=a.Zk(i,!0),this.wp(a,t.bm.forward,i),i=a.$k(i,!0)}if(2==r){if(this.lo==t.si.Clip?i=t.Xj.local().V(i,n.ml(),n,s):n.Wc()&&(r=new t.l,i.xc(r),n.Oe().contains(r)||(this.lo==t.si.PannableFold&&(i=t.zb.lj(i,n)),t.zb.Jt(i,n.Oe(),n.Xd(0),!0),i=t.zb.Fn(i,n,0,!0,0,s))),i.B())return i;t.zb.ur(n,0,i,o)}else t.zb.Jt(i,n.Oe(),n.Xd(0),!0);return t.zb.tr(this.hf,i,!1,o),n=0,r=!1,a=null,3==e&&(r=!0,e=(h=(a=h.Ji).fk()).Sb()),(e=2==e)?n=h.zi():isNaN(this.Bm)||(n=this.Bm),e&&this.Qm!=t.si.Clip||(i=t.zb.Fn(i,h.sc(),n,!1,0,s)),e&&(i=t.zb.Mz(i,h,this.Qm,s),t.zb.Lx(h,i,o),i.B())||r&&(i=a.Zk(i,!0),this.wp(a,t.bm.reverse,i),i=a.$k(i,!0)),i},i.prototype.wp=function(i,s,n){var h=n.I();if(0!=h){for(var r=n.ub(0),e=t.O.lg(200,0),o=[],a=0;ae.v+o&&ui?this.wv(s,n):this.gv(s,n);case 1:var h=this.wv(s,n);return s=this.gv(s,n),t.lc.hq(h,s,i);case 2:throw t.i.fa("not implemented")}throw t.i.Qa()},s.prototype.fe=function(t,i){var s=this.pa-this.sa,n=this.la-this.na,h=s*s+n*n;return 0==h?.5:(t=((t.x-this.sa)*s+(t.y-this.na)*n)/h,i||(0>t?t=0:1(i=(i-this.na)/t)||1(i=(i-this.sa)/t)||1(s=8881784197001252e-31*(Math.abs(n.x*s.y)+Math.abs(n.y*s.x)))?-1:i<-s?1:0},s.prototype.rp=function(i,s,n,h){var r=this.sa,e=this.na,o=i-r,a=s-e;if((o=Math.sqrt(o*o+a*a))<=Math.max(n,6661338147750939e-31*o))return h&&0==o?NaN:0;if(o=i-this.pa,a=s-this.la,(o=Math.sqrt(o*o+a*a))<=Math.max(n,6661338147750939e-31*o))return h&&0==o?NaN:1;if(o=this.pa-this.sa,a=this.la-this.na,0<(h=Math.sqrt(o*o+a*a))){var u=1/h,f=i-r,c=s-e,l=f*(o*=u)+c*(a*=u),p=17763568394002505e-31*(Math.abs(f*o)+Math.abs(c*a)),v=o;if(o=-a,a=v,l<-(p=Math.max(n,p))||l>h+p)return NaN;if(Math.abs(f*o+c*a)<=Math.max(n,17763568394002505e-31*(Math.abs(f*o)+Math.abs(c*a)))&&(.5>=(o=t.O.Rk(l*u,0,1))?(a=this.sa+(this.pa-this.sa)*o,h=this.na+(this.la-this.na)*o):(a=this.pa-(this.pa-this.sa)*(1-o),h=this.la-(this.la-this.na)*(1-o)),t.h.Oy(a,h,i,s)<=n)){if(.5>o){if(t.h.Oy(a,h,r,e)<=n)return 0}else if(t.h.Oy(a,h,this.pa,this.la)<=n)return 1;return o}}return NaN},s.prototype.Nb=function(t){return null!=t&&(t==this||t.constructor===this.constructor&&this.FM(t))},s.prototype.rD=function(i,s,n){var h=n?this.sa:this.pa;n=n?this.na:this.la;var r=new t.h;return r.x=i.pa-h,r.y=i.la-n,!(s.Qh(r)>6661338147750939e-31*s.fD(r))||(r.x=i.sa-h,r.y=i.na-n,s.Qh(r)<=6661338147750939e-31*s.fD(r))},s.prototype.qD=function(i){var s=new t.h;return s.x=this.pa-this.sa,s.y=this.la-this.na,!!this.rD(i,s,!1)&&(s.Sq(),!!this.rD(i,s,!0))},s.NM=function(t,i){var s=t.uu(i.sa,i.na),n=t.uu(i.pa,i.la);return!(0>s&&0>n||0s&&0>n||0(n=i.Qb())?t.qD(i):i.qD(t)))},s.LM=function(i,s,n){var h=t.h.construct(NaN,NaN),r=i.pa-i.sa,e=i.la-i.na,o=s.pa-s.sa,a=s.la-s.na,u=o*e-r*a;if(0==u)return h;var f=8881784197001252e-31*(Math.abs(o*e)+Math.abs(r*a)),c=s.sa-i.sa,l=s.na-i.na,p=o*l-c*a,v=p/u,y=Math.abs(u);return v<-(o=(8881784197001252e-31*(Math.abs(o*l)+Math.abs(c*a))*y+f*Math.abs(p))/(u*u)+2220446049250313e-31*Math.abs(v))||v>1+o||(o=(a=r*l-c*e)/u)<-(r=(8881784197001252e-31*(Math.abs(r*l)+Math.abs(c*e))*y+f*Math.abs(a))/(u*u)+2220446049250313e-31*Math.abs(o))||o>1+r||(v=t.O.Rk(v,0,1),r=t.O.Rk(o,0,1),e=i.hc(v),u=s.hc(r),(f=new t.h).uc(e,u),f.length()>n&&(f.add(e,u),f.scale(.5),v=i.fe(f,!1),r=s.fe(f,!1),i=i.hc(v),s=s.hc(r),i.sub(s),i.length()>n)||h.ma(v,r)),h},s.OM=function(t,i,n,h){var r=0;if((t.sa==i.sa&&t.na==i.na||t.sa==i.pa&&t.na==i.la)&&(r++,!h))return 1;if(t.pa==i.sa&&t.la==i.na||t.pa==i.pa&&t.la==i.la){if(2==++r)return 2;if(!h)return 1}return i.vi(t.sa,t.na,n)||i.vi(t.pa,t.la,n)||t.vi(i.sa,i.na,n)||t.vi(i.pa,i.la,n)?1:h&&0!=r||0==s.NM(t,i)?0:1},s.Zx=function(i,n,h,r,e,o){var a=0,u=i.rp(n.sa,n.na,o,!1),f=i.rp(n.pa,n.la,o,!1),c=n.rp(i.sa,i.na,o,!1),l=n.rp(i.pa,i.la,o,!1);return isNaN(u)||(null!=r&&(r[a]=u),null!=e&&(e[a]=0),null!=h&&(h[a]=t.h.construct(n.sa,n.na)),a++),isNaN(f)||(null!=r&&(r[a]=f),null!=e&&(e[a]=1),null!=h&&(h[a]=t.h.construct(n.pa,n.la)),a++),2==a||isNaN(c)||0==u&&0==c||0==f&&1==c||(null!=r&&(r[a]=0),null!=e&&(e[a]=c),null!=h&&(h[a]=t.h.construct(i.sa,i.na)),a++),2==a||isNaN(l)||1==u&&0==l||1==f&&1==l||(null!=r&&(r[a]=1),null!=e&&(e[a]=l),null!=h&&(h[a]=t.h.construct(n.pa,n.la)),a++),0r[1]&&(i=r[0],r[0]=r[1],r[1]=i,null!=e&&(r=e[0],e[0]=e[1],e[1]=r),null!=h&&(e=t.h.construct(h[0].x,h[0].y),h[0]=h[1],h[1]=e)),a):(a=s.LM(i,n,o),isNaN(a.x)?0:(null!=h&&(h[0]=i.hc(a.x)),null!=r&&(r[0]=a.x),null!=e&&(e[0]=a.y),1))},s.prototype.eG=function(){return 0},s.prototype.op=function(){},s.prototype.toString=function(){return"Line: ["+this.sa.toString()+", "+this.na.toString()+", "+this.pa.toString()+", "+this.la.toString()+"]"},s}(t.SC);t.yb=i}(Q||(Q={})),function(t){var i=function(){function t(){this.Jm=[],this.ya=-1}return t.prototype.La=function(){return this.ya},t.prototype.next=function(){if(null!=this.Jm&&0!=this.Jm.length){this.ya++;var t=this.Jm[0];return this.Jm=1>=this.Jm.length?[]:this.Jm.slice(1),t}return this.Jm=null},t.prototype.ZX=function(t){this.Jm.push(t)},t.prototype.qe=function(){},t}();t.gL=i}(Q||(Q={})),function(t){var i;(i=t.SL||(t.SL={}))[i.enumFillRuleOddEven=0]="enumFillRuleOddEven",i[i.enumFillRuleWinding=1]="enumFillRuleWinding";var s=function(i){function s(s,n){var h=i.call(this)||this;if(h.xf=!1,h.Eq=null,h.sq=0,h.rq=0,h.Aj=null,h.Mg=!1,h.nb=null,h.mb=null,h.Ve=null,h.Lj=null,h.Sd=null,h.tq=0,h.gb=0,h.xq=0,void 0===n)h.xf=s,h.Mg=!1,h.tq=0,h.sq=0,h.rq=0,h.wa=0,h.description=t.ee.og();else{if(null==n)throw t.i.N();h.xf=s,h.Mg=!1,h.tq=0,h.sq=0,h.rq=0,h.wa=0,h.description=n}return h.Aj=null,h.gb=0,h}return _(s,i),s.prototype.tm=function(){return 0s)throw t.i.Qa();if(this.dc(i)){if(null==this.mb)throw t.i.Qa();var n=this.wa,h=this.Ba(i),r=this.Vc(i);this.dm(this.wa+1),this.mc();for(var e=0,o=this.description.Aa;ei;s--)n=this.nb.read(s),this.nb.write(s,n+1);this.mb.KE(i,1)}},s.prototype.Ap=function(){if(this.wx(),void 0===t){this.Mg=!1;var t=this.da()-1}var i=this.mb.read(t);this.mb.write(t,1|i),null!=this.Ve&&(t=this.Vc(t)-1,this.Ve.write(t,1),this.Lj.write(t,-1))},s.prototype.dc=function(t){return 0!=(1&this.mb.read(t))},s.prototype.Nn=function(t){if(this.dc(t))return!0;var i=this.Ba(t);return!(i>(t=this.Vc(t)-1))&&(i=this.Na(i),t=this.Na(t),i.qb(t))},s.prototype.yv=function(t){return 0!=(2&this.mb.read(t))},s.prototype.oc=function(i,s){if(this.Jl(i.description),322!=i.getType())throw t.i.Qa();var n=new t.Sa;(s||this.B())&&(i.To(n),this.nf(n)),i.Po(n),this.lineTo(n)},s.prototype.tp=function(t){var i=0==this.wa;this.sx(t.v,t.G),this.yj(t.v,t.H),this.yj(t.C,t.H),this.yj(t.C,t.G),this.Ap(),this.Mg=!1,i&&this.Lf(256,!1)},s.prototype.ad=function(i,s){if(!i.B()){for(var n=0==this.wa,h=new t.Sa(this.description),r=0;4>r;r++)i.Hf(s?4-r-1:r,h),0==r?this.nf(h):this.lineTo(h);this.Ap(),this.Mg=!1,n&&!s&&this.Lf(256,!1)}},s.prototype.add=function(t,i){for(var s=0;ss&&(s=i.da()-1),s>=i.da()||0>n||0>h||h>i.rv(s))throw t.i.fa("index out of bounds");if(0!=h){var e=i.dc(s)&&n+h==i.rv(s);if(!e||1!=h){if(this.Mg=!1,this.Jl(i.description),n=i.Ba(s)+n+1,r&&(h++,n--),e&&h--,e=this.wa,this.dm(this.wa+h),this.mc(),r){if(0==h)return;this.nb.add(this.wa),r=i.mb.read(s),r&=-5,this.xf&&(r|=1),this.mb.write(this.mb.size-1,r),this.mb.add(0)}else this.nb.write(this.mb.size-1,this.wa);r=0;for(var o=this.description.Aa;rf||null==i.za[f]?this.za[r].Ln(u*e,t.ra.se(a),h*u,u*e):this.za[r].Mn(u*e,i.za[f],u*n,h*u,!0,u,u*e)}if(this.tm())throw t.i.Qa();if(i.yv(s))throw t.i.Qa();this.Pc(1993)}}},s.prototype.oJ=function(){for(var t=0,i=this.da();t=this.da())throw t.i.N();var s=this.Ba(i),n=this.Ja(i);i=this.dc(i)?1:0;for(var h=0,r=this.description.Aa;hi&&(i=s-1),i>=s)throw t.i.N();for(var n=this.Ba(i),h=this.Ja(i),r=0,e=this.description.Aa;r=s.da())throw t.i.N();var r=this.da();if(i>r)throw t.i.N();0>i&&(i=r),0>n&&(n=s.da()-1),this.Mg=!1,this.Jl(s.description),s.mc();var e=s.Ba(n),o=s.Ja(n),a=this.wa,u=s.dc(n)&&!h?1:0;this.dm(this.wa+o),this.mc();for(var f=i=i+1;h--)e=this.nb.read(h-1),this.nb.write(h,e+o);for(s.yv(n),this.mb.add(0),h=r-1;h>=i+1;h--)r=this.mb.read(h),r&=-5,this.mb.write(h+1,r);r=s.JR().read(n),r&=-5,this.xf&&(r|=1),this.mb.write(i,r)},s.prototype.Hz=function(i,s){var n=-1,h=this.da();if(n>h)throw t.i.N();0>n&&(n=h),this.Mg=!1;var r=this.wa;this.dm(this.wa+s),this.mc();var e=n=n+1;r--)e=this.nb.read(r-1),this.nb.write(r,e+s);for(this.mb.add(0),r=h-1;r>=n+1;r--)s=this.mb.read(r),s&=-5,this.mb.write(r+1,s);this.xf&&this.mb.write(n,1)},s.prototype.qG=function(i,s,n){var h=-1;if(0>i&&(i=this.da()),i>this.da()||h>this.Ja(i)||n>s.length)throw t.i.fa("index out of bounds");if(0!=n){i==this.da()&&(this.nb.add(this.wa),this.xf?this.mb.add(1):this.mb.add(0)),0>h&&(h=this.Ja(i)),this.mc();var r=this.wa;this.dm(this.wa+n),this.mc();for(var e=0,o=this.description.Aa;ei&&(i=this.da()),i>=h||s>this.Ja(i))throw t.i.fa("index out of bounds");i==this.da()&&(this.nb.add(this.wa),this.xf?this.mb.add(1):this.mb.add(0)),0>s&&(s=this.Ja(i));var r=this.wa;this.dm(this.wa+1),this.mc();var e=this.Ba(i);this.za[0].vj(2*(e+s),n,2*r),n=1;for(var o=this.description.Aa;ni&&(i=n-1),i>=n||s>=this.Ja(i))throw t.i.fa("index out of bounds");this.mc();var h=this.Ba(i);0>s&&(s=this.Ja(i)-1),s=h+s,h=0;for(var r=this.description.Aa;h=i+1;n--)s=this.nb.read(n),this.nb.write(n,s-1);this.wa--,this.Pg--,this.Pc(1993)},s.prototype.uE=function(i,s,n){var h=this.Ba(i)+s;if((n=this.Ba(n)+void 0)h||n>this.I()-1)throw t.i.N();s=0,(i=this.Ga()).Vb(h);do{for(;i.Ha()&&(h=i.ha(),i.wb()!=n);)s+=h=h.Qb();if(i.wb()==n)break}while(i.$a());return s},s.prototype.fO=function(i,s,n){if(s=this.Ba(i)+s,n=this.Ba(i)+n,0>s||n>this.I()-1)throw t.i.N();var h=this.Ga();if(s>n){if(!this.dc(i))throw t.i.N("cannot iterate across an open path");h.JB()}var r=i=0;h.Vb(s);do{r+=i,i=h.ha().Qb()}while(h.wb()!=n);return r},s.prototype.mg=function(){return t.pi.gm(this,null)},s.prototype.KS=function(i,s,n){for(var h=i;hs){var e=this.tm(),o=0;s=this.wa}else e=this.yv(s),o=this.Ba(s),s=this.Vc(s);for(;o=this.Ba(s))return s;s--}else s++;if(0<=s&&s=this.Ba(s)&&in){for(s=0;ss;){var h=s+(n-s>>1);if(i=(s=this.Vc(h))))return this.gb=h;s=h+1}}return this.gb=s},s.prototype.yz=function(){var t=this.I();if(!this.xf){t-=this.da();for(var i=0,s=this.da();in.RR()))return!0;this.Bb.yD(null)}return n=t.Nx.create(this,i,s),this.Bb.yD(n),!0},s.prototype.cc=function(){var t=i.prototype.cc.call(this);if(!this.Ac()){var s=this.da();null!=this.nb&&this.nb.An(t,0,s+1),null!=this.mb&&this.mb.An(t,0,s)}return t},s.prototype.ZF=function(t){return null!=this.Ve?this.Ve.read(t):1},s.prototype.bc=function(i,s,n){var h=this.sz(i);if(i==this.Vc(h)-1&&!this.dc(h))throw t.i.fa("index out of bounds");this.mc();var r=this.Ve,e=1;if(null!=r&&(e=7&r.read(i)),1!==e)throw t.i.Qa();if(s.Or(),s=s.get(),n?s.Nf(t.ee.og()):s.Nf(this.description),h=i==this.Vc(h)-1&&this.dc(h)?this.Ba(h):i+1,r=new t.h,this.D(i,r),s.Dc(r),this.D(h,r),s.Qc(r),!n)for(n=1,r=this.description.Aa;n=this.da())throw t.i.N();if(this.B())s.Oa();else{if(this.yv(i))throw t.i.fa("not implemented");var n=this.ub(0),h=new t.h,r=new t.l;r.Oa();var e=this.Ba(i);for(i=this.Vc(i);ethis.I()||(i=t.ta.nE(this),this.Bb.WM(i),0))},s.prototype.hM=function(){if(null==this.Bb&&(this.Bb=new t.Uk),null==this.Bb.zo){this.Bb.xD(null);var i=t.ta.YN(this);this.Bb.xD(i)}},s.prototype.Yo=function(t){this.xq=t},s.prototype.In=function(){return this.xq},s.prototype.DD=function(i){if(this==i)throw t.i.fa("MultiPathImpl.add");for(var s=this.da(),n=0;n=(s=this.Vc(s))||in?i.I():n,0>s||s>i.I()||ns?n:s,0>n||0>s)throw t.i.N();if(0!=s){n=s-0,s=this.wa,this.resize(this.wa+n);for(var h=0;hi||i>=this.I())throw t.i.fa("index out of bounds");this.mc();for(var s=0,n=this.description.Aa;ss||s>=this.wa||ns?s:t},i.Th=function(t,i){var s=5381;return((s=((s=((s=void 0!==i?(i<<5)+i+(255&t):(s<<5)+s+(255&t))<<5)+s+(t>>8&255))<<5)+s+(t>>16&255))<<5)+s+(t>>24&255)&2147483647},i.uj=function(){throw Error("Not Implemented")},i.bB=function(t){return i.aU(t)+12345&2147483647},i.XG=function(t){var s=32,n=t%i.Qx|0,h=t/i.Qx|0;return 0==(s&=63)?t:(32>s?(t=n>>>s|h<<32-s,s=h>>s):(t=h>>s-32,s=0<=h?0:-1),s*i.Qx+(t>>>0))},i.aU=function(t){var i=1103515245;return((i-20077)*(t|=0)|0)+(20077*t|0)|0},i.truncate=function(t){return 0>t?-1*Math.floor(Math.abs(t)):Math.floor(t)},i.MAX_SAFE_INTEGER=Math.pow(2,53)-1,i.MIN_SAFE_INTEGER=-i.MAX_SAFE_INTEGER,i.VC=65536,i.Qx=i.VC*i.VC,i}()}(Q||(Q={})),function(t){var i;(i=t.CL||(t.CL={}))[i.Project=0]="Project",i[i.Union=1]="Union",i[i.Difference=2]="Difference",i[i.Proximity2D=3]="Proximity2D",i[i.Relate=4]="Relate",i[i.Equals=5]="Equals",i[i.Disjoint=6]="Disjoint",i[i.Intersects=7]="Intersects",i[i.Within=8]="Within",i[i.Contains=9]="Contains",i[i.Crosses=10]="Crosses",i[i.Touches=11]="Touches",i[i.Overlaps=12]="Overlaps",i[i.Buffer=13]="Buffer",i[i.Distance=14]="Distance",i[i.Intersection=15]="Intersection",i[i.Clip=16]="Clip",i[i.Cut=17]="Cut",i[i.DensifyByLength=18]="DensifyByLength",i[i.DensifyByAngle=19]="DensifyByAngle",i[i.LabelPoint=20]="LabelPoint",i[i.GeodesicBuffer=21]="GeodesicBuffer",i[i.GeodeticDensifyByLength=22]="GeodeticDensifyByLength",i[i.ShapePreservingDensify=23]="ShapePreservingDensify",i[i.GeodeticLength=24]="GeodeticLength",i[i.GeodeticArea=25]="GeodeticArea",i[i.Simplify=26]="Simplify",i[i.SimplifyOGC=27]="SimplifyOGC",i[i.Offset=28]="Offset",i[i.Generalize=29]="Generalize",i[i.SymmetricDifference=30]="SymmetricDifference",i[i.ConvexHull=31]="ConvexHull",i[i.Boundary=32]="Boundary",i[i.SimpleRelation=33]="SimpleRelation";var s=function(){function t(){}return t.prototype.getType=function(){return null},t.prototype.wn=function(){},t.prototype.Iu=function(){return!1},t}();t.Je=s}(Q||(Q={})),function(t){var i=function(i){function s(){return null!==i&&i.apply(this,arguments)||this}return _(s,i),s.prototype.getType=function(){return 13},s.local=function(){return null===s.instance&&(s.instance=new s),s.instance},s.prototype.V=function(i,s,n,h,r){return i instanceof t.aa?(r=new t.Zc(i),this.V(r,s,[n],!1,h).next()):!0===h?(n=new t.BC(i,s,n,!1,r),t.Gh.local().V(n,s,r)):new t.BC(i,s,n,!1,r)},s.instance=null,s}(t.Je);t.AC=i}(Q||(Q={})),function(t){var i=function(){function i(i,s,n,h,r){this.ya=-1,this.Rd=i,this.$z=s,this.Cs=n,this.tT=new t.l,this.tT.Oa(),this.eo=-1,this.Ub=r}return i.prototype.next=function(){for(var t;null!=(t=this.Rd.next());)return this.ya=this.Rd.La(),this.eo+1=i.I():1==i.da()&&(2>=i.I()||t.Zt.JG(i,0)))},i}();t.DC=i}(Q||(Q={})),function(t){var i=function(i){function s(){return null!==i&&i.apply(this,arguments)||this}return _(s,i),s.prototype.getType=function(){return 17},s.local=function(){return null===s.instance&&(s.instance=new s),s.instance},s.prototype.V=function(i,s,n,h,r){return new t.nL(i,s,n,h,r)},s.instance=null,s}(t.Je);t.mL=i}(Q||(Q={})),function(t){var i=function(){function i(i,s,n,h,r){if(this.Tf=null,null==s||null==n)throw t.i.fa("invalid argument");this.qT=i,this.nA=s,this.lH=n,i=t.ta.mv(s,n),this.qa=t.ta.Wd(h,i,!0),this.kH=-1,this.nd=r}return i.prototype.La=function(){return 0},i.prototype.next=function(){return this.RQ(),++this.kHthis.Tf.length&&(this.Tf.length=0)},i.prototype.SQ=function(){var i=new t.ia(0),s=new t.gd,n=s.aF(),h=s.Ib(this.nA),r=s.Ib(this.lH),e=new t.Fg;try{e.Ft(s,this.qa,this.nd),e.dl(n,h,r,i);var o=s.Ne(h),a=new t.Da,u=new t.Da;for(this.Tf.length=0,this.Tf.push(a),this.Tf.push(u),h=0;h=s)throw t.i.N();return new t.oL(i,s,n)},s.instance=null,s}(t.Je);t.Xl=i}(Q||(Q={})),function(t){var i=function(){function i(t,i){this.ya=-1,this.Rd=t,this.Ps=i}return i.prototype.La=function(){return this.ya},i.prototype.next=function(){var t;return null!=(t=this.Rd.next())?(this.ya=this.Rd.La(),this.NP(t)):null},i.prototype.NP=function(i){if(i.B()||1>i.Db())return i;var s=i.getType();if(1736==s||1607==s)return this.Ny(i);if(t.aa.yd(s))return this.PP(i);if(197==s)return this.OP(i);throw t.i.Qa()},i.prototype.PP=function(i){if(i.Qb()<=this.Ps)return i;var s=new t.Ta(i.description);return s.oc(i,!0),this.Ny(s)},i.prototype.OP=function(i){var s=new t.Da(i.description);s.ad(i,!1);var n=new t.l;return i.A(n),i=n.ca(),n.R()<=this.Ps&&i<=this.Ps?s:this.Ny(s)},i.prototype.Ny=function(i){for(var s=i.Ia(),n=i.Ga();n.$a();)for(var h=!0;n.Ha();){var r=n.ha();if(322!=r.getType())throw t.i.fa("not implemented");var e=n.On(),o=r.Qb();if(o>this.Ps){var a=Math.ceil(o/this.Ps);o=new t.Sa(i.description),h&&(r.To(o),s.nf(o));var u=h=1/a,f=0;for(--a;fo)return i;var a=i.getType(),u=n.getType(),f=new t.l,c=new t.l,l=new t.l;i.A(f),n.A(c),l.K(f),l.Zb(c);var p=(l=t.ta.Wd(h,l,!0))*Math.sqrt(2)*1.00001,v=new t.l;if(v.K(f),v.W(p,p),!v.isIntersecting(c))return i;if(1==e&&2==o)return s.KV(i,n,u,h,r);if(33==a)switch(t.Vk.yd(u)?(h=new t.Ta(n.description),h.oc(n,!0)):h=n,u){case 1736:return s.XU(i,h,l);case 1607:return s.YU(i,h,l);case 550:return s.VU(i,h,l);case 197:return s.UU(i,h,l);case 33:return s.WU(i,h,l);default:throw t.i.N()}else if(550==a)switch(u){case 1736:return s.nU(i,n,l);case 197:return s.lU(i,n,l);case 33:return s.mU(i,n,l)}return t.Fg.im(i,n,h,r)},s.XU=function(i,s,n){return 0==t.hd.KG(s,i,n)?i:i.Ia()},s.YU=function(i,s,n){var h=i.D();s=s.Ga();for(var r=n*Math.sqrt(2)*1.00001,e=r*r,o=new t.l;s.$a();)for(;s.Ha();){var a=s.ha();if(a.A(o),o.W(r,r),o.contains(h)){if(a.qs(h,n))return i.Ia();var u=a.ac();if(t.h.yc(h,u)<=e)return i.Ia();if(u=a.wc(),t.h.yc(h,u)<=e)return i.Ia()}}return i},s.VU=function(i,s,n){var h=s.ub(0);s=s.I();var r=i.D(),e=new t.h;n=n*Math.sqrt(2)*1.00001,n*=n;for(var o=0;os.I()?this.gE(i,s,n):(this.Nt(),i=this.gE(s,i,n),this.Nt(),i):550==i.getType()&&t.aa.Hc(s.getType())?(i=this.hE(s,i,n),this.Nt(),i):550==s.getType()&&t.aa.Hc(i.getType())?this.hE(i,s,n):550==i.getType()&&550==s.getType()?i.I()>s.I()?this.iE(i,s):(this.Nt(),i=this.iE(s,i),this.Nt(),i):0},i.prototype.gE=function(i,s,n){var h=i.Ga(),r=s.Ga(),e=new t.l,o=new t.l,a=17976931348623157e292;if(!n&&this.pY(i,s,h,r))return 0;for(;h.$a();)for(;h.Ha();)if((i=h.ha()).A(e),!(e.px(this.oh)>a)){for(;r.$a();)for(;r.Ha();)if((s=r.ha()).A(o),e.px(o)e)){for(var f=0;fh))for(var f=0;fi.Ja(s))){var r=i.Ba(s),e=i.Vc(s)-1,o=i.ub(0),a=i.dc(s),u=new t.ia(0);u.Jb(i.Ja(s)+1);var f=new t.ia(0);for(f.Jb(i.Ja(s)+1),u.add(a?r:e),u.add(r),r=new t.h;1this.DH&&o>r&&(h=n,r=o)}return h},i.prototype.qe=function(){},i}();t.sL=i}(Q||(Q={})),function(t){var i=function(i){function s(){return null!==i&&i.apply(this,arguments)||this}return _(s,i),s.prototype.getType=function(){return 29},s.prototype.V=function(i,s,n,h){return i instanceof t.aa?(i=new t.Zc(i),this.V(i,s,n,h).next()):new t.sL(i,s,n,h)},s.local=function(){return null===s.instance&&(s.instance=new s),s.instance},s.instance=null,s}(t.Je);t.EC=i}(Q||(Q={})),function(t){var i=function(i){function s(){return null!==i&&i.apply(this,arguments)||this}return _(s,i),s.prototype.getType=function(){return 21},s.local=function(){return null===s.instance&&(s.instance=new s),s.instance},s.prototype.V=function(i,s,n,h,r,e,o,a){return i instanceof t.aa?(a=new t.Zc(i),this.V(a,s,n,[h],r,e,!1,o).next()):!0===o?(n=new t.GC(i,s,n,h,r,!1,!1,a),t.Gh.local().V(n,s,a)):new t.GC(i,s,n,h,r,!1,!1,a)},s.instance=null,s}(t.Je);t.FC=i}(Q||(Q={})),function(t){var i=function(){function i(i,s,n,h,r,e,o,a){if(e)throw t.i.Ie();if(null==s)throw t.i.N();this.ya=-1,this.Ms=i,this.vg=s,this.ze=n,this.Cs=h,this.$n=r,this.eo=-1,this.Ub=a,this.uT=new t.l,this.uT.Oa()}return i.prototype.next=function(){for(var t;null!=(t=this.Ms.next());)return this.ya=this.Ms.La(),this.eo+1i.Db())return 0;if(4==n)throw t.i.Ie();var h=t.cb.sc(s),r=t.cb.vv(h),e=t.cb.ev(h);r*=2-r;var o=h.Hd().ai,a=i.getType();if(1736==a||197==a)var u=i.mg();else t.aa.yd(a)?(u=new t.Ta(i.description)).oc(i,!0):u=i;if(0==h.Nb(s)){if(t.cb.Wc(s)){u=t.Hh.lj(u,s),1607==a&&u==i&&(u=t.aa.jg(i)),i=new t.Nc,t.cb.gh(s).cn(i),a=0;for(var f=u.I();a=this.Fi||7e||0==h&&550==n&&33==this.Dj?this.nJ():i.HB(s,r);if((-1==this.Fi||4==this.Fi)&&197==n&&197==this.Dj)return h=this.Se,n=new t.l,s.A(n),r=new t.l,h.A(r),n.Ea(r),h=new t.Fh,s.copyTo(h),h.Xo(n),h;if(197==n&&0==t.aa.tf(this.Dj)||197==this.Dj&&0==t.aa.tf(n))return r=197==n?s:this.Se,s=197==n?this.Se:s,n=new t.l,r.A(n),t.Ud.clip(s,n,h,0);if(0==t.aa.tf(n)&&0a&&(a=n.yz()),e=n.I()+h.I(),a*h.I()>Math.log(e)*e*4)return null;e=null,a=h.Ga(),null!=u&&null!=u.Fb&&(e=u.Fb),null==e&&20w){if(null!=e)for(null==h?h=e.vR(x,r):h.Uo(x,r),w=h.next();-1!=w;w=h.next()){a.Vb(e.ja(w)),w=a.ha();var m=x.Ea(w,null,f,null,r);for(w=0;wg?(p=u.wb()-n.Ba(b),v=1,g=0==g?3:2):v++:(i.oc(j,0==g),g=1);break;case 0:g=0,p=-1,v=0;break;default:return null}j=k}}}else{if(0>(w=this.QD(s,x.ac(),r)))return null;1==w?(2>g&&(p=u.wb()-n.Ba(b),g=0==g?3:2),v++):(p=-1,v=0)}c.clear(!1)}else 0!=w&&1==w&&(0==g?(g=3,p=u.wb()-n.Ba(b)):1==g?(g=2,p=u.wb()-n.Ba(b)):v++)}2<=g&&(i.Dr(n,b,p,v,3==g),p=-1)}return i},i.prototype.QD=function(i,s,n){return t.Dg.wm(i,s,n)},i.prototype.RD=function(i,s,n){var h=s.ac();s=s.wc();var r=t.Dg.wm(i,h,n),e=t.Dg.wm(i,s,n);return 1==r&&0==e||0==r&&1==e?-1:0==r||0==e?0:1==r||1==e?1:((r=new t.h).add(h,s),r.scale(.5),0==(i=t.Dg.wm(i,r,n))?0:1==i?1:-1)},i.HB=function(t,i){return i?t:t.Ia()},i.prototype.nJ=function(){return null==this.yH&&(this.yH=this.Se.Ia()),this.yH},i.prototype.qe=function(){},i}();t.HC=i}(Q||(Q={})),function(t){var i=function(i){function s(){return null!==i&&i.apply(this,arguments)||this}return _(s,i),s.prototype.getType=function(){return 28},s.local=function(){return null===s.instance&&(s.instance=new s),s.instance},s.prototype.V=function(i,s,n,h,r,e,o){return i instanceof t.aa?(i=new t.Zc(i),this.V(i,s,n,h,r,e,o).next()):new t.xL(i,s,n,h,r,e,o)},s.instance=null,s}(t.Je);t.IC=i}(Q||(Q={})),function(t){var i=function(){function i(t,i,s,n,h,r,e){this.ya=-1,this.Rd=t,this.Mj=i,this.Ka=s,this.Ki=n,this.CA=h,this.uH=r,this.nd=e}return i.prototype.next=function(){var t=this.Rd.next();return null!=t?(this.ya=this.Rd.La(),this.jL(t)):null},i.prototype.La=function(){return this.ya},i.prototype.jL=function(i){var s=0>=this.uH?t.ta.kj(this.Mj,i,!1):this.uH;return t.IK.V(i,this.Ka,this.Ki,this.CA,s,this.nd)},i.prototype.qe=function(){},i}();t.xL=i}(Q||(Q={})),function(t){var i;(i=t.NK||(t.NK={}))[i.clipToDomainOnly=1]="clipToDomainOnly",i[i.clipWithHorizon=2]="clipWithHorizon",i[i.foldAndClipWithHorizon=3]="foldAndClipWithHorizon";var s=function(i){function s(){return null!==i&&i.apply(this,arguments)||this}return _(s,i),s.prototype.getType=function(){return 0},s.local=function(){return null===s.instance&&(s.instance=new s),s.instance},s.prototype.V=function(i,s,n){return i instanceof t.aa?(i=new t.Zc(i),this.V(i,s,n).next()):new t.yL(i,s,n)},s.prototype.transform=function(i,s,n,h){return t.bu.transform(i,s,n,h,!0)},s.prototype.Qt=function(i,s,n,h){return t.bu.Qt(i,s,n,h)},s.instance=null,s}(t.Je);t.Hx=s}(Q||(Q={})),function(t){var i=function(){function i(t,i,s){this.ya=-1,this.Rd=t,this.MT=i,this.nd=s}return i.prototype.next=function(){var i=this.Rd.next();return null!=i?(this.ya=this.Rd.La(),t.bu.zh(i,this.MT,this.nd)):null},i.prototype.La=function(){return this.ya},i.prototype.qe=function(){},i}();t.yL=i}(Q||(Q={})),function(t){var i=function(){function i(){}return i.prototype.reset=function(){this.ph=this.xk=-1,this.us=this.kq=!1},i.prototype.AQ=function(t,i,s){for(t.Vb(i,s);t.Ha();){var n=t.ha();if(0!=(n=n.Qb()))return t.wb()}for(t.Vb(i,s);t.Ez();)if(0!=(n=(n=t.li()).Qb()))return t.wb();return-1},i.prototype.BQ=function(t,i){for(t.Vb(i,-1);t.Ez();)if(0!=t.li().Qb())return t.wb();return-1},i.prototype.zQ=function(t,i){for(t.Vb(i,-1),t.ha();t.Ha();)if(0!=t.ha().Qb())return t.wb();return-1},i.prototype.yQ=function(i,s,n,h){if(this.xk=this.AQ(s,n,h),-1!=this.xk){s.Vb(this.xk,-1);var r=s.ha(),e=r.hc(r.fe(i,!1));if(n=t.h.yc(e,i),(h=new t.h).L(e),h.sub(r.ac()),(e=new t.h).L(i),e.sub(r.ac()),this.kq=0>h.wi(e),this.ph=this.zQ(s,this.xk),-1!=this.ph){s.Vb(this.ph,-1);var o=(r=s.ha()).fe(i,!1);o=r.hc(o);var a=t.h.yc(o,i);a>n?this.ph=-1:(h.L(o),h.sub(r.ac()),e.L(i),e.sub(r.ac()),this.us=0>h.wi(e))}-1==this.ph&&(this.ph=this.BQ(s,this.xk),-1!=this.ph&&(s.Vb(this.ph,-1),o=(r=s.ha()).fe(i,!1),o=r.hc(o),(a=t.h.yc(o,i))>n?this.ph=-1:(h.L(o),h.sub(r.ac()),e.L(i),e.sub(r.ac()),this.us=0>h.wi(e),i=this.xk,this.xk=this.ph,this.ph=i,i=this.kq,this.kq=this.us,this.us=i)))}},i.prototype.cO=function(t,i,s,n,h){return s=s.Ga(),this.yQ(t,s,n,h),-1!=this.xk&&-1==this.ph?this.kq:-1!=this.xk&&-1!=this.ph?this.kq==this.us?this.kq:(s.Vb(this.xk,-1),t=s.ha().kg(),s.Vb(this.ph,-1),i=s.ha().kg(),0<=t.wi(i)):i},i}(),s=function(s){function n(){return null!==s&&s.apply(this,arguments)||this}return _(n,s),n.local=function(){return null===n.instance&&(n.instance=new n),n.instance},n.prototype.getType=function(){return 3},n.prototype.nz=function(i,s,n){var h;if(void 0===h&&(h=!1),i.B())return new t.$l;s=s.D();var r=i,e=i.getType();switch(197==e&&((r=new t.Da).ad(i,!1),e=1736),e){case 33:return this.xI(r,s);case 550:return this.jI(r,s);case 1607:case 1736:return this.bU(r,s,n,h);default:throw t.i.fa("not implemented")}},n.prototype.oz=function(i,s){if(i.B())return new t.$l;s=s.D();var n=i,h=i.getType();switch(197==h&&((n=new t.Da).ad(i,!1),h=1736),h){case 33:return this.xI(n,s);case 550:case 1607:case 1736:return this.jI(n,s);default:throw t.i.fa("not implemented")}},n.prototype.pz=function(i,s,n,h){if(0>h)throw t.i.N();if(i.B())return[];s=s.D();var r=i,e=i.getType();switch(197==e&&((r=new t.Da).ad(i,!1),e=1736),e){case 33:return this.TU(r,s,n,h);case 550:case 1607:case 1736:return this.tU(r,s,n,h);default:throw t.i.fa("not implemented")}},n.prototype.bU=function(s,n,h,r){if(1736==s.getType()&&h&&(h=new t.l,s.A(h),h=t.ta.Wd(null,h,!1),0!=(r?t.hd.Yd(s,n,0):t.hd.Yd(s,n,h)))){var e=new t.$l(n,0,0);return r&&e.WJ(!0),e}var o=s.Ga();e=new t.h;for(var a=h=-1,u=17976931348623157e292,f=0;o.$a();)for(;o.Ha();){var c=o.ha();c=c.hc(c.fe(n,!1));var l=t.h.yc(c,n);lt.h.Uq(n,c.ac(),c.wc()),1=s||(i.length=h),i.slice(0)},n.instance=null,n}(t.Je);t.Ix=s}(Q||(Q={})),function(t){var i=function(i){function s(){return null!==i&&i.apply(this,arguments)||this}return _(s,i),s.prototype.getType=function(){return 4},s.prototype.V=function(i,s,n,h,r){return t.am.yB(i,s,n,h,r)},s.local=function(){return null===s.instance&&(s.instance=new s),s.instance},s.prototype.Iu=function(i){return t.Vt.wy(i)},s.prototype.wn=function(i,s,n){t.Vt.CD(i,s,n)},s.instance=null,s}(t.Je);t.zL=i}(Q||(Q={})),function(t){var i=function(i){function s(){return null!==i&&i.apply(this,arguments)||this}return _(s,i),s.prototype.getType=function(){return 33},s.prototype.V=function(i,s,n,h,r){return 1073741824===i?!t.ud.zB(s,n,h,4,r):t.ud.zB(s,n,h,i,r)},s.local=function(){return null===s.instance&&(s.instance=new s),s.instance},s.prototype.Iu=function(i){return t.Vt.wy(i)},s.prototype.wn=function(i,s,n){t.Vt.CD(i,s,n)},s.instance=null,s}(t.Je);t.dj=i}(Q||(Q={})),function(t){var i=function(){function i(i,s,n,h){if(this.nd=h,this.rT=n,this.ya=-1,null==i)throw t.i.N();this.yk=i,this.Mj=s}return i.prototype.next=function(){var i;if(null!=(i=this.yk.next())){if(this.ya=this.yk.La(),null!=this.nd&&!this.nd.progress(-1,-1))throw t.i.fu("user_canceled");return this.eC(i)}return null},i.prototype.La=function(){return this.ya},i.prototype.eC=function(i){if(null==i)throw t.i.N();return t.Jx.cK(i,this.Mj,this.rT,this.nd)},i.prototype.qe=function(){},i}();t.AL=i}(Q||(Q={})),function(t){var i=function(i){function s(){return null!==i&&i.apply(this,arguments)||this}return _(s,i),s.prototype.getType=function(){return 26},s.prototype.V=function(i,s,n,h){return i instanceof t.aa?(i=new t.Zc(i),this.V(i,s,n,h).next()):new t.AL(i,s,n,h)},s.prototype.rs=function(i,s,n,h,r){return 0<(void 0!==h?t.Jx.rs(i,s,n,h,r):t.Jx.rs(i,s,!1,null,n))},s.local=function(){return null===s.instance&&(s.instance=new s),s.instance},s.instance=null,s}(t.Je);t.Yl=i}(Q||(Q={})),function(t){var i=function(){function t(){this.yq=0}return t.prototype.nX=function(t){this.yq&=-2,this.yq|=t?1:0},t.prototype.Wp=function(){return 0!=(1&this.yq)},t.prototype.XF=function(){return this.Wp()?0:1},t}();t.xY=i;var s=function(){},n=function(t,i,s,n){this.x=t,this.y=i,this.Ai=s,this.xm=n},h=function(){function t(t){this.Be=t}return t.prototype.compare=function(t,i,s){return t=t.ja(s),i=this.Be.lf.read(2*i),0>(i-=t=this.Be.lf.read(2*t))?-1:0r?1:0},t}(),e=function(){function i(i,s){this.YI=new t.h,this.parent=i,this.dS=s}return i.prototype.nr=function(t,i,s){var n=this.parent,h=this.dS;s.Vd(t,i,(function(t,i){return n.Mh(t,i,h)}))},i.prototype.$p=function(t){return t=this.parent.gi.get(t),this.parent.lf.tc(2*(t>>1),this.YI),this.YI.y+(0!=(1&t)?this.parent.Oj:-this.parent.Oj)},i}(),o=function(){function o(i,s,n,h,r){this.nH=i.description,this.X=i,this.Qg=s,this.Oj=t.ta.kj(this.Qg,i,!1),this.Bo=t.ta.kj(this.Qg,i,!0),this.xA=n,this.oT=this.nH.Aa,this.hb=[],this.po=[],this.mh=new t.jp,this.fb=new t.Yj,this.ke=new t.Md,this.ZG=this.ql=r}return o.prototype.eT=function(){return this.ZG=!0,(!t.aa.Hc(this.X.getType())||this.GE()&&this.DE(!1))&&this.mO()?t.aa.Hc(this.X.getType())?this.pO()?1607==this.X.getType()?this.rO()?2:0:this.sO()?this.tO():0:0:2:0},o.prototype.kC=function(i,s){var n=this.lf.read(2*i);i=this.lf.read(2*i+1);var h=this.lf.read(2*s);return s=this.lf.read(2*s+1),!t.Yt.Cv(n,i,h,s,this.Oj*this.Oj)||0!=this.X.Db()&&n==h&&i==s},o.prototype.GE=function(){for(var i=this.X,s=i.xf?3:2,n=0,h=i.da();nthis.Oj)){if(i&&h){var e=r.wv(1,0);if(r=r.wv(1,0),Math.abs(r-e)>s)continue}return this.ke=new t.Md(2,n.wb(),-1),!1}}return!0},o.prototype.mO=function(){var i=this.X,s=null;t.aa.Hc(this.X.getType())&&(s=this.X);var n=(this.ZG||this.ql)&&null!=s,r=i.I();this.lf=i.ub(0),this.gi=new t.ia(0),this.gi.Jb(2*r),this.fi=new t.ia(0),this.fi.Jb(2*r),n&&(null==this.Fl&&(this.Fl=new t.ia(0)),this.Fl.Jb(r));for(var o=i=0;o=s.Vc(i);)i++;this.Fl.add(i)}for((new t.Xt).sort(this.fi,0,2*r,new e(this,n)),this.fb.clear(),this.fb.Vo(new h(this)),this.fb.De(r),s=0,r*=2;s>1,0==(1&i)){if(i=this.fb.addElement(n,-1),-1!=(o=this.fb.we(i))&&!this.kC(this.fb.ja(o),n))return this.ke=new t.Md(3,n,this.fb.ja(o)),!1;var a=this.fb.lb(i);if(-1!=a&&!this.kC(this.fb.ja(a),n))return this.ke=new t.Md(3,n,this.fb.ja(a)),!1}else if(i=this.fb.search(n,-1),o=this.fb.we(i),a=this.fb.lb(i),this.fb.vd(i,-1),-1!=o&&-1!=a&&!this.kC(this.fb.ja(o),this.fb.ja(a)))return this.ke=new t.Md(3,this.fb.ja(o),this.fb.ja(a)),!1;return!0},o.prototype.pO=function(){return 10>this.X.I()?this.nO():this.oO()},o.prototype.oO=function(){var i=new t.gd;i.Ib(this.X);var s=new t.Md;return!t.$t.kI(!1,i,this.Oj,s,this.nd)||(s.Jo=i.Ua(s.Jo),s.Ko=i.Ua(s.Ko),this.ke.Wt(s),!1)},o.prototype.nO=function(){var i=this.X,s=i.Ga();for(i=i.Ga();s.$a();)for(;s.Ha();){var n=s.ha();if(!s.Qn()||!s.$S()){i.BW(s);do{for(;i.Ha();){var h=i.ha();if(0!=(h=n.zr(h,this.Oj,!0)))return this.ke=new t.Md(2==h?5:4,s.wb(),i.wb()),!1}}while(i.$a())}}return!0},o.prototype.sO=function(){var i=this.X;this.hb.length=0,this.po.length=0,this.Zf=i.Ga(),this.Zf.JB();var s=new t.ia(0);s.Jb(10);var n=NaN,h=0,r=0;for(i=2*i.I();r>=1;var o=this.lf.read(2*e),a=this.lf.read(2*e+1);if(0!=s.size&&(o!=n||a!=h)){if(!this.RI(s))return!1;null!=s&&s.clear(!1)}s.add(e),n=o,h=a}}return!!this.RI(s)},o.prototype.rO=function(){for(var i=this.X,n=Array(i.da()),h=0,r=i.da();h>1;this.lf.tc(2*o,e);var a=n[h=this.Fl.get(o)],u=i.Ba(h),f=i.Vc(h)-1;r.el=o==u||o==f,r.ny=this.ql?!a&&r.el:r.el,r.Ai=h,r.x=e.x,r.y=e.y,r.xm=o;for(var c=new s,l=1,p=this.fi.size;l>1,this.lf.tc(2*o,e),(h=this.Fl.get(o))!=r.Ai&&(a=n[h],u=i.Ba(h),f=i.Vc(h)-1);var v=o==u||o==f,y=this.ql?!a&&r.el:r.el;if(c.x=e.x,c.y=e.y,c.Ai=h,c.xm=o,c.ny=y,c.el=v,c.x==r.x&&c.y==r.y)if(this.ql){if(!(c.ny&&r.ny||c.Ai==r.Ai&&(c.el||r.el)))return this.ke=new t.Md(8,c.xm,r.xm),!1}else if(!c.el||!r.el)return this.ke=new t.Md(5,c.xm,r.xm),!1;h=r,r=c,c=h}return!0},o.prototype.JE=function(){for(var i=this.X,s=[],h=-1,r=!1,e=0,o=i.da();e>1;this.lf.tc(2*a,r),e=this.Fl.get(a),h=new n(r.x,r.y,e,a,s[e]),i=[];var u=1;for(o=this.fi.size;u>1,this.lf.tc(2*a,r),e=this.Fl.get(a),(e=new n(r.x,r.y,e,a,s[e])).x==h.x&&e.y==h.y){if(e.Ai==h.Ai)return this.ke=new t.Md(9,e.xm,h.xm),!1;0<=s[e.Ai]&&s[e.Ai]==s[h.Ai]&&(0!=i.length&&i[i.length-1]==h||i.push(h),i.push(e))}h=e}if(0==i.length)return!0;for(e=new t.jp(!0),t.O.$u(s,-1),r=-1,(u=new t.h).Rc(),h=0,o=i.length;h=i.Ke())return this.ke=new t.Md(6,1==i.da()?1:-1,-1),0;if(1==i.da())return this.ql&&!this.JE()?0:2;this.to=t.ia.qf(i.da(),0),this.JA=t.ia.qf(i.da(),-1);for(var s=-1,n=0,h=0,e=i.da();ho?0:256),0s||n>=1,(h=this.lf.read(2*n+1))!=this.Mo&&0!=i.size){if(!this.ut(i))return 0;null!=i&&i.clear(!1)}i.add(n),this.Mo=h}return 0r.la){var o=this.Zf.wb(),a=this.Su(r,h,this.Zf.gb,!0);0i.Ja(s.gb))){n.EW();for(var f,c,l=!0;s.Ha();){var p=s.ha(),v=n.li();if(s.wb()>n.wb())break;l&&(a.add(s.wb()),u.add(n.ik()),l=!1),c=a.Fc();var y=s.ik();if(1this.Bo?a.add(s.ik()):e&&(f=i.Uc(1,a.Fc(),0),p=p.gv(1,0),Math.abs(p-f)>o&&a.add(s.ik())),c>this.Bo?u.add(n.wb()):e&&(f=i.Uc(1,u.Fc(),0),p=v.gv(1,0),Math.abs(p-f)>o&&u.add(n.wb()))}if(a.Fc()u.size?a.If():u.If():(a.Fc()!=u.Fc()&&u.If(),u.If()),2<=u.size+a.size){for(l=new t.Sa,v=0,p=a.size;v>1;var r=h>>1,e=new t.h,o=new t.h;return this.lf.tc(2*s,e),e.y+=0!=(1&i)?this.Oj:-this.Oj,this.lf.tc(2*r,o),o.y+=0!=(1&h)?this.Oj:-this.Oj,0==(i=e.compare(o))&&n?0>(n=this.Fl.get(s)-this.Fl.get(r))?-1:0r.x)return 1;if(h.yr.y)return 1;for(h=1;hu)return 1}}return 0},o.prototype.PO=function(t,i){var s=this.Ou(t,i);return 0==s?ti?1:0o?i:n;if(i.B())return n;if(n.B())return i;var a=new t.l,u=new t.l,f=new t.l;return i.A(a),n.A(u),f.K(a),f.Zb(u),a=t.ta.Wd(h,f,!0),u=i.getType(),f=n.getType(),33==u&&33==f?s.aV(i,n,a):u!=f?0o?i:n:550==u?s.iI(i,n,a):s.iI(n,i,a):t.Fg.ep(i,n,h,r)},s.aV=function(i,s,n){n=n*Math.sqrt(2)*1.00001,n*=n;var h=i.D(),r=s.D(),e=new t.de(i.description);return t.h.yc(h,r)>n&&(e.add(i),e.add(s)),e},s.iI=function(i,s,n){var h=i.ub(0),r=i.I(),e=s.D(),o=i.Ia();n=n*Math.sqrt(2)*1.00001;var a=new t.l;if(i.A(a),a.W(n,n),a.contains(e)){n*=n,a=!1;for(var u=[],f=0;fthis.zk||0>this.bo)throw t.i.Qa();if(this.AH[this.bo])break}return this.ya++,this.fG(this.bo)}return this.ya=0,this.bo=this.zk,this.fG(this.zk)},n.prototype.La=function(){return this.ya},n.prototype.qK=function(){if(this.Ic)return!0;var i=null;if(null!=this.Rd&&null==(i=this.Rd.next())&&(this.Ic=!0,this.Rd=null),t.mp.zp(this.Ub),null!=i){var s=i.Db();this.AH[s]=!0,s>=this.zk&&!this.jA&&(this.ND(s,!1,i),s>this.zk&&!this.jA&&this.zW(s))}if(0this.Do.length)for(var o=0,a=Math.max(2,t+1);oe?t.F.Wq(p,l,c,v,0):t.F.Wq(p,c,l,v,0),d=[0,0,0],b=[0,0,0];var x=[0,0,0];c=[0,0,0],y=[0,0,0];var m=Math.acos(v[2]/1),j=1-n,M=Math.tan(m),k=1+M*M/j,z=2*p[2]*M/j;for(j=(-z+(M=Math.sqrt(z*z-4*k*(p[2]*p[2]/j-1))))/(k*=2),z=(-z-M)/k,M=Math.tan(m),m=(j+z)/2,p=((k=M*j+p[2])+(M*z+p[2]))/2,M=t.F.gp(j-m,k-p),j=p/w*1.570796326794897,z=0;100>z&&(k=(k=t.F.w(n,j))*k/Math.cos(j)*(Math.sin(j)-p*k/(1-n)),!t.s.Cd(k));z++)j-=k;p=t.F.n(1,n,j)*Math.cos(j),M=1-M/(p=Math.sqrt((p-m)*(p+m))),M*=2-M,k=t.F.on(d),m=t.F.on(b),j=t.F.on(x);var A=t.F.St(x,d);z=t.F.St(x,b),t.F.zx(x,d,c),t.F.zx(x,b,y),d=Math.acos(A/(j*k)),b=Math.acos(z/(j*m)),b*=t.s.Mb(1,t.F.St(c,y)),(1.570796326794897<=t.s.P(d)&&1.570796326794897<=t.s.P(b)||3.141592653589793y&&0>e)&&(e=t.F.ba(e+3.141592653589793)),null!=a&&(a.u=c),null!=u&&(u.u=y),null!=f&&(f.u=e)}}},i.rf=function(i,s,n,h,r,e,o,a){var u=[0,0,0],f=[0,0,0],c=[0,0,0],l=[0,0,0],p=[0,0,0],v=[0,0,0],y=[0,0,0],d=[0,0,0,0],b=new t.ga(0),g=new t.ga(0),w=new t.ga(0),x=new t.ga(0),m=new t.ga(0),j=new t.ga(0);if(null!=o&&null!=a)if(t.s.ti(s))t.Yg.rf(i,n,h,r,e,o,a);else if(t.s.Cd(r))null!=o&&(o.u=n),null!=a&&(a.u=h);else if(e=t.F.ba(e),0>r&&(r=t.s.P(r),e=t.F.ba(e+3.141592653589793)),n=t.F.ba(n),h=t.F.ba(h),1.570796326794897e?t.F.Wq(y,p,u,d,0):t.F.Wq(y,u,p,d,0),u=Math.acos(d[2]/1),d=Math.atan2(-d[1],-d[0]),h=1-s,m=1+(p=Math.tan(u))*p/h,h=(-(x=2*y[2]*p/h)+(p=Math.sqrt(x*x-4*m*(y[2]*y[2]/h-1))))/(m*=2),x=(-x-p)/m,p=Math.tan(u),u=(h+x)/2,y=((m=p*h+y[2])+(p*x+y[2]))/2,p=t.F.gp(h-u,m-y),M=y/M*1.570796326794897,h=0;100>h&&(x=(x=t.F.w(s,M))*x/Math.cos(M)*(Math.sin(M)-y*x/(1-s)),!t.s.Cd(x));h++)M-=x;M=t.F.n(1,s,M)*Math.cos(M),y=1-p/(M=Math.sqrt((M-u)*(M+u))),y*=2-y,v=Math.acos(t.F.St(v,f)/(t.F.on(v)*t.F.on(f))),v*=t.s.Mb(1,f[0]),e=(t.F.q(M,y,t.F.Qj(y,v))+i*t.s.Mb(1,e))/t.F.Ah(M,y),e=t.F.ba(1.570796326794897*e),e=t.F.Rq(y,e),t.F.n(M,y,e),p=t.F.ba(d+n),n=Math.cos(p),e=Math.sin(p),c[0]=l[0]*n+l[1]*-e,c[1]=l[0]*e+l[1]*n,c[2]=l[2],t.F.jO(s,c[0],c[1],c[2],w,g,b),null!=o&&(o.u=g.u),null!=a&&(a.u=w.u)}},i}()}(Q||(Q={})),function(t){var i=function(){function i(i){this.Ya=null,this.wt=new t.h,this.xt=new t.h,this.g=i}return i.prototype.compare=function(t,i,s){return this.g.Gc(i,this.wt),this.g.Gc(t.ja(s),this.xt),this.wt.compare(this.xt)},i}(),s=function(){function i(i){this.Bf=new t.h,this.Dk=new t.h,this.g=i}return i.prototype.Dh=function(t){this.Bf.L(t)},i.prototype.compare=function(t,i){return this.g.Gc(t.ja(i),this.Dk),this.Bf.compare(this.Dk)},i}(),n=function(t){function i(i){var s=t.call(this,i.g,i.qa,!1)||this;return s.ib=i,s}return _(i,t),i.prototype.compare=function(t,i,s){if(this.rg)return-1;var n=this.ib.Qd.Jn(this.ib.Rh(i));t=t.ja(s);var h=this.ib.Qd.Jn(this.ib.Rh(t));return this.Dm=s,this.RE(i,n,t,h)},i}(t.UC),h=function(t){function i(i){var s=t.call(this,i.g,i.qa)||this;return s.ib=i,s}return _(i,t),i.prototype.compare=function(t,i){return this.rg?-1:(t=this.ib.Qd.Jn(this.ib.Rh(t.ja(i))),this.Dm=i,this.SE(i,t))},i}(t.aM),r=function(){function r(){this.Mc=this.df=this.jo=this.Qd=this.lh=this.zd=this.hb=this.g=null,this.Ng=!1,this.vh=this.Nm=this.ie=this.Gk=this.nh=this.Ak=this.Ff=this.$d=null,this.xh=this.Jq=this.UA=this.qa=0,this.Xv=this.Wn=!1,this.yo=new t.h,this.Pi=new t.h,this.hb=new t.$c(8),this.zd=new t.$c(5),this.lh=new t.au,this.Qd=new t.au,this.Ng=!1,this.vh=new t.h,this.vh.ma(0,0),this.qa=0,this.xh=-1,this.Wn=!1,this.g=null,this.df=new t.Yj,this.Mc=new t.Yj,this.nh=new t.ia(0),this.Gk=new t.TC,this.Ff=new t.ia(0),this.Ak=new t.ia(0),this.jo=new t.Sa}return r.prototype.PX=function(i,s){var n=new t.Dd;return n.$B(),i.Oc(n),this.er(i),this.Wn=!1,this.qa=s,this.UA=s*s,s=this.jC(),i.Oc(n),s||(this.qQ(),s||this.jC()),-1!=this.xh&&(this.g.Td(this.xh),this.xh=-1),this.g=null,this.Wn},r.prototype.TX=function(t,i){this.er(t),this.Wn=!1,this.qa=i,this.UA=i*i,this.Ng=!1,this.jC(),this.Ng||(this.Ng=1==t.Gp(i,!0,!1)),-1!=this.xh&&(this.g.Td(this.xh),this.xh=-1),this.g=null},r.prototype.pg=function(t,i){return this.hb.T(t,0+i)},r.prototype.LB=function(t,i,s){this.hb.S(t,0+i,s)},r.prototype.Rh=function(t){return this.hb.T(t,2)},r.prototype.ZW=function(t,i){this.hb.S(t,2,i)},r.prototype.RF=function(t,i){return this.hb.T(t,3+i)},r.prototype.Pp=function(t){return this.hb.T(t,7)},r.prototype.Pl=function(t,i){this.hb.S(t,7,i)},r.prototype.Rp=function(t,i){return this.hb.T(t,3+this.Op(t,i))},r.prototype.fr=function(t,i,s){this.hb.S(t,3+this.Op(t,i),s)},r.prototype.NR=function(t,i){return this.hb.T(t,5+this.Op(t,i))},r.prototype.hr=function(t,i,s){this.hb.S(t,5+this.Op(t,i),s)},r.prototype.Sr=function(t){return this.zd.T(t,0)},r.prototype.UW=function(t,i){this.zd.S(t,0,i)},r.prototype.ez=function(t){return this.zd.T(t,4)},r.prototype.cr=function(t,i){this.zd.S(t,4,i)},r.prototype.il=function(t){return this.zd.T(t,1)},r.prototype.ln=function(t,i){this.zd.S(t,1,i)},r.prototype.dz=function(t){return this.zd.T(t,3)},r.prototype.Et=function(t,i){this.zd.S(t,3,i)},r.prototype.Ym=function(t){var i=this.zd.Ce(),s=this.lh.Ph();return this.UW(i,s),-1!=t?(this.lh.addElement(s,t),this.g.Ra(t,this.xh,i),this.cr(i,this.g.Ua(t))):this.cr(i,-1),i},r.prototype.HP=function(t){this.zd.jd(t)},r.prototype.LD=function(t,i){this.lh.addElement(this.Sr(t),i),this.g.Ra(i,this.xh,t)},r.prototype.nt=function(t){var i=this.hb.Ce(),s=this.Qd.Ph();return this.ZW(i,s),-1!=t&&this.Qd.addElement(s,t),i},r.prototype.MD=function(t,i){this.Qd.addElement(this.Rh(t),i)},r.prototype.Uu=function(t){this.hb.jd(t),0<=(t=this.nh.lF(t))&&this.nh.SV(t)},r.prototype.hj=function(i,s){if(-1==this.pg(i,0))this.LB(i,0,s);else{if(-1!=this.pg(i,1))throw t.i.Qa();this.LB(i,1,s)}this.ky(i,s)},r.prototype.ky=function(t,i){var s=this.il(i);if(-1!=s){var n=this.Rp(s,i);this.hr(n,i,t),this.fr(t,i,n),this.fr(s,i,t),this.hr(t,i,s)}else this.hr(t,i,t),this.fr(t,i,t),this.ln(i,t)},r.prototype.Op=function(t,i){return this.pg(t,0)==i?0:1},r.prototype.Xm=function(t,i){var s,n=this.dz(i);if(-1!=n&&(this.df.vd(n,-1),this.Et(i,-1)),-1!=(n=this.il(i))){var h=s=n;do{var r=!1,e=this.Op(s,i),o=this.RF(s,e);if(this.pg(s,e+1&1)==t){if(this.Xu(s),this.Qd.bh(this.Rh(s)),this.Uu(s),s==o){n=-1;break}n==s&&(n=this.il(i),h=o,r=!0)}s=o}while(s!=h||r);if(-1!=n){do{e=this.Op(s,i),o=this.RF(s,e),this.LB(s,e,t),s=o}while(s!=h);-1!=(s=this.il(t))?(h=this.Rp(s,t),r=this.Rp(n,t),h==s?(this.ln(t,n),this.ky(s,t),this.ln(t,s)):r==n&&this.ky(n,t),this.fr(n,t,h),this.hr(h,t,n),this.fr(s,t,r),this.hr(r,t,s)):this.ln(t,n)}}for(n=this.Sr(t),s=this.Sr(i),h=this.lh.rc(s);-1!=h;h=this.lh.lb(h))this.g.Ra(this.lh.ja(h),this.xh,t);this.lh.Hy(n,s),this.HP(i)},r.prototype.UT=function(t,i){var s=this.pg(t,0),n=this.pg(t,1),h=this.pg(i,0),r=this.pg(i,1);this.Qd.Hy(this.Rh(t),this.Rh(i)),i==this.il(s)&&this.ln(s,t),i==this.il(n)&&this.ln(n,t),this.Xu(i),this.Uu(i),s==h&&n==r||n==h&&s==r||(this.Hn(s,this.yo),this.Hn(h,this.Pi),this.yo.qb(this.Pi)?(s!=h&&this.Xm(s,h),n!=r&&this.Xm(n,r)):(n!=h&&this.Xm(n,h),s!=r&&this.Xm(s,r)))},r.prototype.Xu=function(t){var i=this.pg(t,1);this.dF(t,this.pg(t,0)),this.dF(t,i)},r.prototype.dF=function(t,i){var s=this.Rp(t,i),n=this.NR(t,i),h=this.il(i);s!=t?(this.fr(n,i,s),this.hr(s,i,n),h==t&&this.ln(i,s)):this.ln(i,-1)},r.prototype.WD=function(t,i,s){var n=this.Qd.rc(t),h=this.Qd.ja(n);t=this.Le(h);var r=this.Le(this.g.U(h));for(this.g.jr(h,i,s,!0),n=this.Qd.lb(n);-1!=n;n=this.Qd.lb(n)){h=this.Qd.ja(n);var e=this.Le(h)==t;this.g.jr(h,i,s,e)}n=i.Vp(s,0).ac(),i=i.Vp(s,i.ol(s)-1).wc(),this.BK(t,n),this.BK(r,i)},r.prototype.ZE=function(t,i,s){var n=this.Rh(t),h=this.pg(t,0),r=this.pg(t,1),e=this.nt(-1);for(this.nh.add(e),this.Pl(e,-3),this.Ff.add(e),this.hj(e,h),t=1,i=i.ol(s);tthis.ez(e)&&this.cr(e,this.g.Ua(r))),e=this.Ff.get(t),t-=2,this.MD(e,r),r=this.g.U(r)}while(0<=t)}this.Ff.clear(!1)},r.prototype.Le=function(t){return this.g.Pa(t,this.xh)},r.prototype.TI=function(i,s,n){var h=this.pg(s,0),r=new t.h;this.Hn(h,r);var e=new t.h,o=this.pg(s,1);this.Hn(o,e);var a=n.ol(i),u=n.Vp(i,0),f=new t.h;if(u.Yp(f),!r.qb(f)){if(!this.Ng){var c=r.compare(this.vh);0>c*(f=f.compare(this.vh))&&(this.Ng=!0)}this.vF(h,this.Ff),this.Ak.add(h)}for(!this.Ng&&1u.compare(this.vh))&&(this.Ng=!0)),i=(u=n.Vp(i,a-1)).wc(),e.qb(i)||(this.Ng||0>(c=e.compare(this.vh))*(f=i.compare(this.vh))&&(this.Ng=!0),this.vF(o,this.Ff),this.Ak.add(o)),this.Ff.add(s),e=0,o=this.Ff.size;eMath.max(100,this.g.fd)){this.nh.clear(!1),this.Ng=!0;break}var t=this.nh.Fc();this.nh.If(),this.Pl(t,-1),-1!=this.WS(t)&&this.wS(t),this.Vn=!1}},r.prototype.wS=function(t){if(this.Vn){var i=this.Mc.zu(this.MH,this.GH,t,!0);this.Vn=!1}else i=this.Mc.KD(t);-1==i?this.UT(this.Mc.ja(this.Mc.FF()),t):(this.Pl(t,i),this.$d.rg&&(this.$d.Kr(),this.oF(this.$d.Dm,i)))},r.prototype.WS=function(i){var s=this.pg(i,0);if(i=this.pg(i,1),this.Hn(s,this.yo),this.Hn(i,this.Pi),t.h.yc(this.yo,this.Pi)<=this.UA)return this.Ng=!0,-1;var n=this.yo.compare(this.vh),h=this.Pi.compare(this.vh);return 0>=n&&0=h&&0n&&(this.re(t),n=this.description.Pf(t)),null==this.ka&&this.un(),this.ka[this.description.$j(n)+i]=s},s.prototype.getType=function(){return 33},s.prototype.Db=function(){return 0},s.prototype.Oa=function(){this.vc(),null!=this.ka&&(this.ka[0]=NaN,this.ka[1]=NaN)},s.prototype.sn=function(i){if(null!=this.ka){for(var s=t.ee.Iw(i,this.description),n=[],h=0,r=0,e=i.Aa;r>>32),i=t.O.Th(h,i)}return i},s.prototype.mg=function(){return null},s}(t.aa);t.Sa=i}(Q||(Q={})),function(t){var i=function(){function t(t,i,s){void 0!==t&&(this.x=t,this.y=i,this.z=s)}return t.construct=function(i,s,n){var h=new t;return h.x=i,h.y=s,h.z=n,h},t.prototype.K=function(t,i,s){this.x=t,this.y=i,this.z=s},t.prototype.lx=function(){this.z=this.y=this.x=0},t.prototype.normalize=function(){var t=this.length();0==t&&(this.x/=t,this.y/=t,this.z/=t)},t.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.prototype.sub=function(i){return new t(this.x-i.x,this.y-i.y,this.z-i.z)},t.prototype.Ag=function(i){new t(this.x*i,this.y*i,this.z*i)},t.prototype.Qh=function(t){return this.x*t.x+this.y*t.y+this.z*t.z},t}();t.Nd=i}(Q||(Q={})),function(t){var i=function(){function i(t,i,s){this.Gw=this.DA=null,this.Xf=i,this.FT=i.y-s,this.ET=i.y+s,this.Ew=0,this.dA=t,this.qa=s,this.RT=s*s,this.eA=0!=s,this.Lv=!1}return i.prototype.result=function(){return 0!=this.Ew?1:0},i.prototype.ZM=function(i){return i=i.hc(i.fe(this.Xf,!1)),t.h.yc(i,this.Xf)<=this.RT},i.prototype.fF=function(t){if(!this.eA&&(this.dA&&this.Xf.qb(t.ac())||this.Xf.qb(t.wc())))this.Lv=!0;else if(t.na==this.Xf.y&&t.na==t.la){if(this.dA&&!this.eA){var i=Math.max(t.sa,t.pa);this.Xf.x>Math.min(t.sa,t.pa)&&this.Xf.xi?s=!0:this.Xf.x>=Math.min(t.sa,t.pa)&&(s=0t.wc().y?1:-1)}}},i.prototype.SI=function(t){var i=t.Tg(0,1);if(i.oa>this.ET||i.vathis.Xf.y||i.va(t=t.I()))&&2*t+Math.log(t)/Math.log(2)*i<1*t*i},i}();t.Dg=i}(Q||(Q={})),function(t){var i=function(t){function i(i){return t.call(this,!0,i)||this}return _(i,t),i.prototype.Ia=function(){return new i(this.description)},i.prototype.Db=function(){return 2},i.prototype.getType=function(){return 1736},i.prototype.xG=function(t,i,s){this.JS(t,i,s)},i.prototype.qR=function(){this.FR()},i}(t.Vk);t.Da=i}(Q||(Q={})),function(t){!function(t){t[t.PiPOutside=0]="PiPOutside",t[t.PiPInside=1]="PiPInside",t[t.PiPBoundary=2]="PiPBoundary"}(t.RL||(t.RL={})),t.hd=function(){function i(){}return i.KG=function(i,s,n){return 0==(i=t.Dg.bT(i,s,n))?0:1==i?1:2},i.Yd=function(i,s,n){return 0==(i=t.Dg.wm(i,s,n))?0:1==i?1:2},i.WX=function(s,n,h,r,e){if(n.lengthi?(0>i?i+=360:360<=i&&(i-=360),i):(0>(i=t.lc.RK(i))&&(i+=360),i)},i.gP=function(t){return 180<(t=i.hP(t))&&(t-=360),t},i.oW=57.29577951308232,i}();t.qr=i,t.Hh=function(){function s(){}return s.lj=function(i,s){var n=new t.l;i.A(n);var h=t.cb.gh(s),r=new t.l;return r.K(h),r.v=n.v,r.C=n.C,r.W(.01*r.ca(),0),s=t.ta.Wd(s,n,!1),r.contains(n)?i:t.Ud.clip(i,r,s,0)},s.ks=function(i,n,h,r,e){if(!t.cb.Wc(n))throw t.i.N();var o=t.ta.kj(n,i,!1),a=t.cb.gh(n),u=t.cb.sc(n),f=u.Hd().ai,c=t.cb.vv(u);u=t.cb.ev(u),c*=2-c;var l=new t.Nc;a.cn(l);var p=[[0,0],[0,0]];if(2==t.Eg.Sb(n)?r?(p[0][0]=s.Zm(e,l),p[0][1]=a.Jp(),t.cb.vt(),a=p[0][0]*f):(p[0][0]=a.gk(),p[0][1]=e,t.cb.vt(),a=p[0][1]*f):a=e*f,!r&&0!=a)throw t.i.N();var v=new t.ga,y=new t.gd;i=y.Ib(i);for(var d=[0],b=new t.h,g=new t.h,w=new t.h,x=new t.h,m=new t.h,j=new t.h,M=y.Ob(i);-1!=M;M=y.Rb(M)){var k=y.Xa(M);y.D(k,w);for(var z=!1,A=k=y.U(k);-1!=A;A=y.U(A)){if(A==k){if(z)break;z=!0}if(y.D(A,x),r&&oo||oo||!r&&o<-w.y&&x.y>o||o<-x.y&&w.y>o)do{if(!(Math.abs(w.x-x.x)>=.5*l.R())){if(2==t.Eg.Sb(n)?(p[0][0]=s.Zm(w.x,l),p[0][1]=w.y,p[1][0]=s.Zm(x.x,l),p[1][1]=x.y,t.cb.dW(),m.x=p[0][0]*f,m.y=p[0][1]*f,j.x=p[1][0]*f,j.y=p[1][1]*f):(m.x=w.x*f,m.y=w.y*f,j.x=x.x*f,j.y=x.y*f),j.x=6.283185307179586*(x.x-w.x)/l.R()+m.x,r){if(g.x=a,g.y=s.Nz(u,c,m,j,a,h),isNaN(g.y))break}else{if(g.x=s.Lz(u,c,m,j,h),isNaN(g.x))break;g.y=0}t.kb.wd(u,c,m.x,m.y,j.x,j.y,v,null,null,h);var N=v.u;t.kb.wd(u,c,m.x,m.y,g.x,g.y,v,null,null,h);var I=v.u;2==t.Eg.Sb(n)?(p[0][0]=g.x/f,p[0][1]=g.y/f,t.cb.bR(),r?(b.y=p[0][1],b.x=e):(b.x=s.os(p[0][0],w.x,x.x,l),b.y=e)):r?(b.x=e,b.y=g.y/f):(b.x=s.os(g.x/f,w.x,x.x,l),b.y=e),d[0]=0r.x)var a=r;else a=h,h=r;r=new t.ga(0);var u=new t.ga(0),f=new t.ga(0);t.kb.wd(i,n,a.x,a.y,h.x,h.y,u,r,null,o);var c=u.u,l=0,p=1,v=new t.h;for(v.L(a);c*(p-l)>1e-12*i;){var y=.5*(l+p);if(t.kb.oj(i,n,a.x,a.y,c*y,r.u,u,f,o),v.x=u.u,v.y=f.u,v.x==e)break;if(s.Sn(a.x,v.x,e))p=y;else{if(!s.Sn(h.x,v.x,e))return NaN;l=y}}return v.y},s.Sn=function(t,s,n){return t=i.Cp(t),s=i.mx(t,i.Cp(s)),0==(n=i.mx(t,i.Cp(n)))||0s&&0>n&&n>=s},s.Zm=function(t,i){var s=i.va-i.oa;return i.It(t-Math.floor((t-i.oa)/s)*s)},s.os=function(i,s,n,h){var r=new t.Nc;for(r.K(s,n),n=h.R(),i=Math.floor((i-s)/n)*n+i,r=r.sf();Math.abs(i-r)>Math.abs(i+n-r);)i+=n;return i},s.Lz=function(i,s,n,h,r){if(n.y>h.y)var e=h;else e=n,n=h;if((h=new t.Nc).K(e.y,n.y),!h.contains(0)||3.141592653589793<=Math.abs(e.x-n.x))return NaN;if(e.x==n.x)return e.x;var o=new t.ga(0),a=new t.ga(0),u=new t.ga(0);t.kb.wd(i,s,e.x,e.y,n.x,n.y,a,o,null,r);var f=a.u,c=0,l=1,p=new t.h;for(p.L(e);f*(l-c)>1e-12*i;){var v=.5*(c+l);if(t.kb.oj(i,s,e.x,e.y,f*v,o.u,a,u,r),p.x=a.u,p.y=u.u,h.K(e.y,p.y),0==p.y)break;if(h.contains(0))l=v;else{if(h.K(n.y,p.y),!h.contains(0))return NaN;c=v}}return p.x},s.Hp=function(i,s,n,h,r,e,o){var a=new t.l;if(i.A(a),a.B())return i;var u=new t.Nc;a.cn(u);var f=new t.Nc;if(f.K(s,s+n),f.contains(u)&&f.va!=u.va)return i;var c=new t.l;c.K(a);var l=i.getType();if(33==l)return((a=(c=r?i:i.Of()).Lg())=f.va||o&&a==f.va)&&(a+=Math.ceil((f.oa-a)/n)*n,a=f.It(a),c.cC(a)),c;if(550==l){for(h=(c=r?i:i.Of()).ub(0),l=2*c.I(),i=!1,r=0;r=f.va||o&&a==f.va)&&(i=!0,a+=Math.ceil((f.oa-a)/n)*n,a=f.It(a),h.write(r,a));return i&&c.Pc(1993),c}if(f.contains(u))return i;if(197==l)return n=r?i:i.Of(),a.Ea(c),n.Xo(a),n;var p=.1*Math.max(a.ca(),a.R());for(c.W(0,p),o=i,f=h.Xd(0),i=t.Gh.local(),r=new t.Dd;;){var v=Math.floor((u.oa-s)/n),y=Math.ceil((u.va-s)/n);if(!(3c.v;)(p=t.Ud.clip(o,c,f,0)).A(u),(1607==l?!p.B()&&(u.R()>f||u.ca()>f):!p.B()&&(1736!=l||u.R()>f))&&(p.Oc(r),p.A(u),s.A(e),e.W(f,f),e.isIntersecting(u)&&1736==l?s=i.V(s,p,h,null):s.add(p,!1)),c.move(n,0),r.shift(-n,0);return s},s.WI=function(i,s,n,h){var r=new t.de(n.description);r.Fd(n,0,-1),r=t.cb.zh(r,i,s);var e=n.I();if(h.Oa(),!t.cb.Wc(i)||e!=r.I())return!1;var o=new t.l;n.A(o);var a=new t.l;if(r.A(a),o=o.R(),a=a.R(),0!=o&&0!=a){if(a/=o,i=t.cb.gh(s).R()/t.cb.gh(i).R(),1e-10=i[n]?s[n]=i[n].toUpperCase():i[n];return s.join()}return i.toString(t.Sc.PE_STR_AUTH_TOP)},s.ur=function(i,s,n,h){var r=h.length,e=n.I();if(0!=e){var o=n.ub(0),a=Math.min(e,r),u=0,f=i.eh();isNaN(s)&&(s=0);for(var c=i.Wc(),l=179*(i=c?i.sc().Oe().R():0)/360;0y*t.lc.sign(d)&&Math.abs(v)>l&&(h[p][0]+=-y*i)}o.uC(u<<1,a,h),u+=a,e-=a,a=Math.min(e,r)}n.Pc(1993)}},s.IL=function(i,s,n,h){var r=0,e=i.eh();isNaN(r)&&(r=0);var o=i.Wc(),a=i.bf();i=360*a,a*=179;for(var u=h.length,f=0;fd*t.lc.sign(v)&&Math.abs(y)>a&&(h[c][0]-=d*i)}t.ta.Iy(s,f,h,l),f+=l}}},s.Lx=function(i,s,n){var h=n.length,r=s.I();if(!(1>r)){var e=s.ub(0),o=Math.min(r,h),a=0,u=i.eh(),f=i.Wc(),c=f?i.Oe().R():0,l=179*c/360,p=0;for(f&&(p=i.zi());0y*t.lc.sign(d)&&Math.abs(v)>l&&(n[i][0]+=-y*c)}e.uC(a<<1,o,n),a+=o,r-=o,o=Math.min(r,h)}s.Pc(1993)}},s.HL=function(i,s,n,h){if(0!=n){var r=i.eh(),e=i.Wc(),o=e?i.Oe().R():0,a=179*o/360,u=0;for(e&&(u=i.zi()),i=0;iv*t.lc.sign(s[l].x-u)&&Math.abs(p)>a&&(h[f][0]-=v*o)}t.ta.Iy(s,i,h,c),i+=c}}}},s.tr=function(i,s,n,h){var r=s.I();if(0!=r){var e=s.ub(0),o=i.ef,a=i.Yf,u=o.sc().Qp(),f=a.sc().Qp(),c=o.bf(),l=a.bf();if(null==(i=i.Wf)||0==i.count()){for(n=u/f,h=(o.Up()-a.Up())*l,f=-90*c,i=90*c,u=!1,l=1,o=2*r;lb?h[l][1]=b:h[l][1]<-b&&(h[l][1]=-b));for(c=0;cp){if(m){var O=k+(q+11*l&&(m=!1)}m||(E=F+(N-=t.lc.Cn(c,E-I)),++T,D=0!=N,G.x=E)}else C||t.ta.AG(B,P,G,M)&&(C=!0);D&&z.write(2*q,E),I=E,B.L(P),P.L(G)}0i?a=1:0>=u&&0.99*u&&(a=-1)):a=-1),0!=a&&((n=new t.Da(e.description)).tp(f),(n=t.Xl.local().V(n,h,o)).add(e,!1),g=!0,e=n),g&&(e=t.Yl.local().V(e,r,!1,o)),e},s.vQ=function(i,n,h,r,e){var o=h.I(),a=h.Na(0),u=h.Na(o-1);e=(r=s.dv(r,e)).R(),a=t.lc.sign(u.x-a.x);var f=new t.l;h.xc(f);var c=r.gk();if(u=c-e,c+=e,0<=a){var l=Math.ceil((u-f.v)/e);for(l*=e;u>f.v+l;)l+=e;for(;uf.v+l;)l+=e;p=l,720u;)1024<=b&&(b=0),v.move(l,0),y.Gb=l,h.Oc(y),d+=l,r.v<=d&&r.C>=d&&(e=f.I()-1),h.Cb(0,p),p=h.Na(o-1),f.Dr(h,0,0,o-1,!1);return h=new t.Da(f.description),o=0a?o:!o)?(a=t.h.construct(u.x,r.H),h.Ci(a),a=t.h.construct(r.gk(),r.H),h.Ci(a),r=t.h.construct(i.x,r.H)):(a=t.h.construct(u.x,r.G),h.Ci(a),a=t.h.construct(r.gk(),r.G),h.Ci(a),r=t.h.construct(i.x,r.G)),h.Ci(r),h.xG(0,n,0),h.kO(e),h},s.uQ=function(i,n,h,r,e){var o=new t.Da(i.description);o.add(i,!1),o.DB(0,o.I()-1);var a=new t.l;o.xc(a);var u=(h=s.dv(n,h)).R(),f=Math.ceil((h.v-a.v)/u);for(f*=u;h.v>a.v+f;)f+=u;for(;h.va.C)return e&&(e=o.Ke(),n=(o=t.Yl.local().V(o,n,!0,r)).Ke(),(n=t.lc.sign(e)!=t.lc.sign(n))&&o.oJ()),o;for((i=new t.Da(i.description)).add(o,!1),e=e||a.R()>u-n.Xd(0);a.v=n){a=!0;break}if(0!=(2&r)&&f.y<=-n){a=!0;break}}if(!a)return!1;e=!1,i&&(e=s.Nn(0)),o=(i=new t.gd).Ib(s),a=i.Ob(o);var c=-1,l=!0,p=new t.h;p.Rc(),u=new t.Sa;for(var v=-1,y=i.Xa(a);-1!=y;y=i.U(y)){f=i.Na(y);var d=0!=(1&r)&&90<=f.y?1:0;if(d|=0!=(2&r)&&f.y<=-n?2:0,0f){if((new t.l).K(y.v-u,-f,y.C+u,f),(o=t.ri.Nu(o,h,n,NaN,0,e)).B())return o;o.A(y)}if(b&&(h.Hy.H))return o.Ia();if(y.R()>l&&(o=s.Hp(o,p-c,l,n,!0,0,!0,e)).A(y),0!=(f=s.eO(y.v,y.C,h.v,h.C,l))&&y.move(f,0),y.C>h.C||y.vh.C)for(;y.v>=h.C;)y.move(-l,0),f-=l;for(;y.vf;f++){if(g?u=t.aa.Hc(a)?t.ri.clip(o,h,r,v,e):t.ri.clip(o,h,r,0,e):(u=t.Xj.local().V(o,d,n,e))==d&&(u=t.aa.jg(u)),h.v<=y.v&&h.C>=y.C||h.v>=y.v&&h.C<=y.C)return u;b[f]=u,0==f&&(y.move(-l,0),(u=new t.Dd).gg(-l,0),o.Oc(u))}if(550==a)b[0].Fd(b[1],0,-1);else if(t.aa.Hc(a))b[0].add(b[1],!1);else{if(33!=a)throw t.i.fa("intersect_with_GCS_horizon: unexpected geometry type");b[0].B()&&(b[0]=b[1])}return b[0]}if(h.Hy.H)return o;for(a=0;!o.B()&&y.C>h.v;)0!=a&&((u=new t.Dd).gg(a,0),o.Oc(u)),t.dj.local().V(4,o,d,n,e)||d==(o=t.kp.local().V(o,d,n,e))&&(o=t.aa.jg(o)),0!=a&&((v=new t.Dd).gg(-a,0),o.Oc(v)),a-=l,y.move(-l,0);return o},s.yG=function(n,h,r,e){if(0!=h&&e!=i.DontClip)if(e==i.PannableFold){e=r.HR();for(var o=h,a=0;ae.H||n[a].yu||n[a].y<-u)&&(n[a].Rc(),o--);if(0!=o){(o=new t.l).Zw(n,h),u=r.Vr();var c=r.hv();a=197==u.getType();var l=new t.l;if(u.A(l),!c||!(l.Ho.H))if(c)if(s.av(n,h,l.gk()-f,e),o=h,a)for(a=0;a=f||o&&c==f)&&(c+=Math.ceil((s-c)/n)*n,c=t.O.Rk(c,s,f),h.cC(c)),h}if(i.B())return i;if(c=new t.l,i.A(c),c.B())return i;var l=new t.Nc;c.cn(l);var p=new t.Nc;if(p.K(s,f),p.contains(l))return i;if((f=new t.l).K(c),550===u){for(a=(h=r?i:i.Of()).ub(0),u=2*h.I(),f=!1,s=0;s=p.va||o&&c==p.va)&&(f=!0,c+=Math.ceil((p.oa-c)/n)*n,c=p.It(c),a.write(s,c));return f&&h.Pc(1993),h}if(197==u)return n=r?i:i.Of(),c.Ea(f),n.Xo(c),n;var v=.1*Math.max(c.ca(),c.R());for(f.W(0,v),o=i,p=h.Xd(0),i=t.Gh.local(),r=new t.Dd;;){var y=Math.floor((l.oa-s)/n),d=Math.ceil((l.va-s)/n);if(!(3f.v;)(v=t.ri.clip(o,f,p,0,a)).A(l),(1607==u?!v.B()&&(l.R()>p||l.ca()>p):!v.B()&&(1736!=u||l.R()>p))&&(v.Oc(r),v.A(l),s.A(e),e.W(p,p),e.isIntersecting(l)&&1736==u?s=i.V(s,v,h,null):s.add(v,!1)),f.move(n,0),r.shift(-n,0);return s},s.av=function(i,s,n,h){for(var r=n+h,e=0;er||o==r)||(o+=Math.ceil((n-o)/h)*h,o=t.O.Rk(o,n,r),i[e].x=o)}},s.Fn=function(i,n,h,r,e,o){if(!n.Wc())throw t.i.fa("fold_into_360_degree_range");if(i.B())return i;if(2==n.Sb()){h=n.pv();var a=n.ov()-h}else{var u=n.bf();a=360*u,h-=180*u}return s.Hp(i,h,a,n,r,e,!0,o)},s.qF=function(t,i,n,h){if(2==n.Sb())h=n.pv(),n=n.ov()-h;else{var r=n.bf();n=360*r,h-=180*r}s.av(t,i,h,n)},s.lj=function(i,s){var n=s.Oe();if(33==i.getType()){var h=i.ih();return n.G<=h&&h<=n.H?i:i.Ia()}h=new t.l,i.A(h);var r=new t.l;return r.K(n),r.v=h.v,r.C=h.C,r.W(.01*r.ca(),0),n=t.ta.uy(s,h),r.contains(h)?i:t.ri.clip(i,r,n,0,null)},s.ir=function(t,i,s){return t>i.C&&t-i.Cn.H?t[r].Rc():t[r].x=s.ir(t[r].x,n,h)},s.Jt=function(i,n,h,r){if(!i.B()){var e=i.getType();if(!r||1736!=e)if(t.aa.xj(e)){r=i.ub(0),e=0;for(var o=i.I();ee||ee)||!a&&(0!=u||e<-M.y&&k.y>e||e<-k.y&&M.y>e))do{if(!(Math.abs(M.x-k.x)>=.5*v.R())){if(2==r.Sb()?(d[0][0]=s.Zm(M.x,v),d[0][1]=M.y,d[1][0]=s.Zm(k.x,v),d[1][1]=k.y,t.ej.projToGeogCenter(y,2,d,0),z.x=d[0][0]*c,z.y=d[0][1]*c,A.y=d[1][1]*c):(z.x=M.x*c,z.y=M.y*c,A.y=k.y*c),A.x=2*(k.x-M.x)*Math.PI/v.R()+z.x,a){if(x.x=f,x.y=s.Nz(l,p,z,A,f,o),isNaN(x.y))break;j[0]=x;var C=1}else if(o==n.GreatElliptic){var P=[0,0];if(0==(C=t.Ox.Oz(p,z,A,f,P)))break;x.x=P[0],x.y=f,j[0]=x,2==C&&(m.x=P[1],m.y=f,j[1]=m)}else{if(x.x=s.Lz(l,p,z,A,o),isNaN(x.x))break;x.y=0,j[0]=x,C=1}var B=-1;for(P=0;Pg[0]||(B=i.Ma(T),i.Ul(B,g,1),i.Cb(i.U(B),w.x,w.y),B=g[0])}}}while(0);M.L(k)}}},s.Zm=function(t,i){var s=i.va-i.oa;return i.It(t-Math.floor((t-i.oa)/s)*s)},s.os=function(i,s,n,h){var r=new t.Nc;for(r.K(s,n),n=h.R(),i=Math.floor((i-s)/n)*n+i,r=r.sf();Math.abs(i-r)>Math.abs(i+n-r);)i+=n;return i},s.Sn=function(i,s,n){return i=t.qr.Cp(i),s=t.qr.mx(i,t.qr.Cp(s)),0==(n=t.qr.mx(i,t.qr.Cp(n)))||0s&&0>n&&n>=s},s.Nz=function(i,h,r,e,o,a){if(a==n.GreatElliptic)return t.Ox.SS(h,r,e,o);if(Math.abs(r.x-e.x)>=Math.PI||!s.Sn(r.x,e.x,o))return NaN;if(r.x>e.x)var u=e;else u=r,r=e;e=new t.ga;var f=new t.ga,c=new t.ga;t.kb.wd(i,h,u.x,u.y,r.x,r.y,f,e,null,a);var l=f.u,p=0,v=1,y=new t.h;for(y.L(u);l*(v-p)>1e-12*i;){var d=.5*(p+v);if(t.kb.oj(i,h,u.x,u.y,l*d,e.u,f,c,a),y.x=f.u,y.y=c.u,y.x==o)break;if(s.Sn(u.x,y.x,o))v=d;else{if(!s.Sn(r.x,y.x,o))return NaN;p=d}}return y.y},s.Lz=function(i,s,h,r,e){if(e==n.GreatElliptic)return i=[0,0],t.Ox.Oz(s,h,r,0,i),i[0];if(h.y>r.y)var o=r;else o=h,h=r;if((r=new t.Nc).K(o.y,h.y),!r.contains(0)||Math.abs(o.x-h.x)>=Math.PI)return NaN;if(o.x==h.x)return o.x;var a=new t.ga,u=new t.ga,f=new t.ga;t.kb.wd(i,s,o.x,o.y,h.x,h.y,u,a,null,e);var c=u.u,l=0,p=1,v=new t.h;for(v.L(o);c*(p-l)>1e-12*i;){var y=.5*(l+p);if(t.kb.oj(i,s,o.x,o.y,c*y,a.u,u,f,e),v.x=u.u,v.y=f.u,r.K(o.y,v.y),0==v.y)break;if(r.contains(0))p=y;else{if(r.K(h.y,v.y),!r.contains(0))return NaN;l=y}}return v.x},s.WI=function(i,s,n,h){if(!i.ef.Wc())return!1;var r=new t.de(s.description);if(r.Fd(s,0,-1),h=t.Hx.local().V(r,i,h),r=s.I(),n.Oa(),r!=h.I())return!1;var e=new t.l;s.A(e);var o=new t.l;if(h.A(o),e=e.R(),o=o.R(),0!=e&&0!=o){if(o/=e,i=i.Yf.gh().R()/i.ef.gh().R(),1e-10=180*i&&(t-=360*i),t},s.UI=function(n,h,r,e){if(r==i.Clip){var o=h.ml();197==o.getType()?(r=new t.l,o.A(r),o=t.ta.uy(h,r),n=t.ri.clip(n,r,o,5e4*h.pm(),e)):t.dj.local().V(1,o,n,h,e)||(n=t.Xj.local().V(n,o,h,e))==o&&(n=t.Vk.jg(n))}else h.Wc()&&(e=new t.l,n.xc(e),h.Oe().contains(e)||(s.Jt(n,h.Oe(),h.Xd(0),!0),r==i.PannableFold&&(n=s.lj(n,h)),n=s.Fn(n,h,0,!0,1e5*h.pm(),null)));return n},s.XD=function(i,s,n){var h=s.Wr();if(null==h)return i;var r=(s=s.sc()).Oe().R(),e=new t.l;i.xc(e);var o=new t.Nc;e.cn(o),e=h.Ga(),h=null;for(var a=new t.Dd;e.$a();)for(;e.Ha();){var u=e.ha(),f=u.Tg(0,0),c=new t.Nc;for(c.K(f.oa,f.va),f=0;c.va>o.oa;)c.move(-r),--f;for(;c.oa<=o.va;){if(c.isIntersecting(o)){null==h&&(h=new t.Ta);var l=t.yb.cP(u.ac(),u.wc());0!=f&&(a.gg(f*r,0),l.Oc(a)),h.oc(l,!0)}c.move(r),++f}}return null!=h?(s=t.ta.gO(s,h),s=t.ta.Er(s),t.$t.lP(i,h,s,n)):i},s.eO=function(t,i,n,h,r){return t>=n&&i<=h?0:s.tE(.5*(i+t),n,h,r)},s.tE=function(i,s,n,h){return t.lc.round((.5*(n+s)-i)/h)*h},s.VQ=function(i,n,h,r,e,o,a,u){var f=s.dv(r,e),c=f.R(),l=c/360,p=s.pE*l,v=i.ub(0),y=n.Wc(),d=y?c/n.Oe().R():0;n=i.Ia();for(var b=0,g=h.da();bp){if(w){var S=j+D-1,O=j;(!M||D+11*l&&(y=!1)}w||(F=G+(z-=t.lc.Cn(c,F-A)),++N,B=0!=z,q.x=F)}else T||t.ta.AG(C,P,q,I)&&(T=!0);B&&k.write(2*D,F),A=F,C.L(P),P.L(q)}0!=N&&x.Pc(1993),w=x.Na(0),m=x.Na(m-1),t.h.tb(w,m),x=s.wQ(x,r,isNaN(e)?0:e,o),n.add(x,!1)}return i=r.Xd(0),h=f.R()/180,s.Jt(n,f,.1*i,!1),t.ri.clip(n,f,i,h,o)},s.wQ=function(t,i,n,h){return s.Fn(t,i,n,!0,0,h)},s.OS=function(i,s,n,h){var r=i.getType();if(1736==r)for(s=null!=s?s.Xd(0):0,r=0;rn)for(var r=new t.Sa,e=0;en)for(var r=new t.Sa,e=0;ethis.Io},i.prototype.fz=function(){if(this.B())throw t.i.fa("invalid call");return new t.Sa(this.Bs.x,this.Bs.y)},i.prototype.Ua=function(){if(this.B())throw t.i.fa("invalid call");return this.Io},i.prototype.hz=function(){if(this.B())throw t.i.fa("invalid call");return this.Ka},i.prototype.Sz=function(){return 0!=(1&this.nw)},i.prototype.ey=function(t,i,s,n){this.Bs.x=t,this.Bs.y=i,this.Io=s,this.Ka=n},i}();t.$l=s}(Q||(Q={})),function(t){var i=function(){function i(){}return i.prototype.Uo=function(i,s){if(this.th.resize(0),this.Ii.length=0,this.tk=-1,i.xc(this.Ek),this.Ek.W(s,s),this.Ek.isIntersecting(this.Fb.Ca)){var n=i.getType();(this.vs=t.aa.yd(n))?(this.TH=i.ac(),this.SH=i.wc(),this.qa=s):this.qa=NaN,this.th.add(this.Fb.kf),this.Ii.push(this.Fb.Ca),this.Qs=this.Fb.Ur(this.Fb.kf)}else this.Qs=-1},i.prototype.Xi=function(t,i){this.th.resize(0),this.Ii.length=0,this.tk=-1,this.Ek.K(t),this.Ek.W(i,i),this.qa=NaN,this.Ek.isIntersecting(this.Fb.Ca)?(this.th.add(this.Fb.kf),this.Ii.push(this.Fb.Ca),this.Qs=this.Fb.Ur(this.Fb.kf),this.vs=!1):this.Qs=-1},i.prototype.next=function(){if(0==this.th.size)return-1;this.tk=this.Qs;var i=null,n=null,h=null,r=null;this.vs&&(i=new t.h,n=new t.h,h=new t.l);for(var e=!1;!e;){for(;-1!=this.tk;){var o=this.Fb.bz(this.Fb.fv(this.tk));if(o.isIntersecting(this.Ek)){if(!this.vs){e=!0;break}if(i.L(this.TH),n.L(this.SH),h.K(o),h.W(this.qa,this.qa),0a;a++){var u=this.Fb.Lp(o,a);if(-1!=u&&0>h);0==r?(s.v=.5*(s.v+s.C),s.G=.5*(s.G+s.H)):1==r?(s.C=.5*(s.v+s.C),s.G=.5*(s.G+s.H)):(2==r?s.C=.5*(s.v+s.C):s.v=.5*(s.v+s.C),s.H=.5*(s.G+s.H))}return s},s.prototype.WR=function(t){return this.Az(t)},s.prototype.vR=function(t,s){return i.bP(this,t,s)},s.prototype.MF=function(t,s){return i.aP(this,t,s)},s.prototype.getIterator=function(){return i.$O(this)},s.prototype.Nk=function(i,s){if(0>s||32<2*s)throw t.i.N("invalid height");this.BT=s,this.Ca.K(i),this.kf=this.jf.Ce(),this.jx(this.kf,0),this.ax(this.kf,0),this.NJ(this.kf,0),this.KJ(this.kf,0)},s.prototype.zv=function(i,n,h,r,e,o,a){if(!r.contains(n))return 0==h?-1:this.zv(i,n,0,this.Ca,this.kf,o,a);if(!o)for(var u=e;-1!=u;u=this.IR(u))this.jx(u,this.Az(u)+1);(u=new t.l).K(r),r=e;var f=[];for(f[0]=new t.l,f[1]=new t.l,f[2]=new t.l,f[3]=new t.l;hl;l++)if(f[l].contains(n)){c=!0;var p=this.Lp(r,l);-1==p&&(p=this.rP(r,l)),this.jx(p,this.Az(p)+1),r=p,u.K(f[l]);break}if(!c)break}return this.sS(i,n,h,u,r,o,e,a)},s.prototype.sS=function(t,i,s,n,h,r,e,o){var a=this.NF(h);if(r){if(h==e)return o;this.SP(o),r=o}else r=this.tP(),this.NB(r,t),this.KW(this.fv(r),i);return this.mX(r,h),-1!=a?(this.hx(r,a),this.bx(a,r)):this.GJ(h,r),this.SB(h,r),this.ax(h,this.lv(h)+1),this.hO(h)&&this.MQ(s,n,h),r},s.prototype.SP=function(t){var i=this.WF(t),s=this.NF(i),n=this.OR(t),h=this.nv(t);this.Ur(i)==t?(-1!=h?this.hx(h,-1):this.SB(i,-1),this.GJ(i,h)):s==t?(this.bx(n,-1),this.SB(i,n)):(this.hx(h,n),this.bx(n,h)),this.hx(t,-1),this.bx(t,-1),this.ax(i,this.lv(i)-1)},s.EJ=function(t,i){var s=.5*(t.v+t.C),n=.5*(t.G+t.H);i[0].K(s,n,t.C,t.H),i[1].K(t.v,n,s,t.H),i[2].K(t.v,t.G,s,n),i[3].K(s,t.G,t.C,n)},s.prototype.hO=function(t){return 8==this.lv(t)&&!this.gG(t)},s.prototype.MQ=function(t,i,s){var n=this.Ur(s);do{var h=this.fv(n),r=this.Zh.T(n,0);h=this.bz(h),this.zv(r,h,t,i,s,!0,n),n=r=this.nv(n)}while(-1!=n)},s.prototype.iO=function(t){return 8<=this.lv(t)||this.gG(t)},s.prototype.gG=function(t){return-1!=this.Lp(t,0)||-1!=this.Lp(t,1)||-1!=this.Lp(t,2)||-1!=this.Lp(t,3)},s.prototype.rP=function(t,i){var s=this.jf.Ce();return this.OW(t,i,s),this.jx(s,0),this.ax(s,0),this.Pk(s,t),this.KJ(s,this.jv(t)+1),this.NJ(s,i<<2*this.jv(t)|this.QF(t)),s},s.prototype.tP=function(){var i=this.Zh.Ce();if(0>4)]|=this.iH<<2*(15&n)},t}();t.HY=s;var n=function(){function i(t,i,s){this.Vh=null,this.SA=this.Ik=this.cI=this.aI=this.Es=this.qH=this.Gf=this.Um=0,this.Ri=this.Jk=this.vl=null,this.Fz(t,i,s)}return i.create=function(s,n,h){if(!i.zE(s))throw t.i.N();return i.wP(s,n,h)},i.pW=function(i){switch(i){case 0:i=1024;break;case 1:i=16384;break;case 2:i=262144;break;default:throw t.i.fa("Internal Error")}return i},i.zE=function(t){return!(t.B()||1607!=t.getType()&&1736!=t.getType())},i.prototype.rQ=function(i,s){s=s.Ga();for(var n=new t.h,h=new t.h;s.$a();)for(;s.Ha();){var r=s.ha();if(322!=r.getType())throw t.i.fa("Internal Error");i.Eh(r.ac(),n),i.Eh(r.wc(),h),this.Ri.jy(n.x,n.y,h.x,h.y)}this.Ri.iJ(t.Px.Cx)},i.prototype.sQ=function(){throw t.i.fa("Internal Error")},i.prototype.Ry=function(i,s){for(var n=1;4>n;n++)i.jy(s[n-1].x,s[n-1].y,s[n].x,s[n].y);i.jy(s[3].x,s[3].y,s[0].x,s[0].y),this.Ri.iJ(t.Px.Cx)},i.prototype.rK=function(i,s,n){for(var h=[null,null,null,null],r=0;r(v=r.length());0==v?r.ma(1,0):(y||c.L(u),r.scale(n/v),e.ma(-r.y,r.x),o.ma(r.y,-r.x),a.sub(r),u.add(r),h[0].add(a,e),h[1].add(a,o),h[2].add(u,o),h[3].add(u,e),y?l=!0:this.Ry(i,h))}else l&&(this.Ry(i,h),l=!1),p=!0}l&&this.Ry(i,h)}},i.prototype.sC=function(i){return t.O.truncate(i*this.qH+this.aI)},i.prototype.tC=function(i){return t.O.truncate(i*this.Es+this.cI)},i.wP=function(t,s,n){return new i(t,s,n)},i.prototype.Fz=function(i,n,h){this.Gf=Math.max(t.O.truncate(2*Math.sqrt(h)+.5),64),this.Um=t.O.truncate((2*this.Gf+31)/32),this.vl=new t.l,this.Ik=n,h=0;for(var r=this.Gf,e=this.Um;8<=r;)h+=r*e,r=t.O.truncate(r/2),e=t.O.truncate((2*r+31)/32);this.Vh=t.O.lg(h,0),this.Ri=new t.Px,h=new s(this.Vh,this.Um,this),this.Ri.AX(this.Gf,this.Gf,h),i.A(this.vl),this.vl.W(n,n),r=new t.l;var o=n*(e=t.l.construct(1,1,this.Gf-2,this.Gf-2)).R();switch(n*=e.ca(),r.K(this.vl.sf(),Math.max(o,this.vl.R()),Math.max(n,this.vl.ca())),this.SA=this.Ik,this.Jk=new t.Dd,this.Jk.pS(r,e),new t.Dd,i.getType()){case 550:h.setColor(this.Ri,2),this.sQ();break;case 1607:h.setColor(this.Ri,2),this.rK(this.Ri,i,this.SA);break;case 1736:h.setColor(this.Ri,1),this.rQ(this.Jk,i),h.setColor(this.Ri,2),this.rK(this.Ri,i,this.SA)}this.qH=this.Jk.bb,this.Es=this.Jk.ab,this.aI=this.Jk.Gb,this.cI=this.Jk.Lb,this.XN()},i.prototype.XN=function(){this.Ri.flush();for(var i=0,s=this.Gf*this.Um,n=this.Gf,h=t.O.truncate(this.Gf/2),r=this.Um,e=t.O.truncate((2*h+31)/32);8>4;f=2*(15&f);var p=c>>4;c=2*(15&c);var v=this.Vh[i+r*o+l]>>f&3;v|=this.Vh[i+r*o+p]>>c&3,v|=this.Vh[i+r*a+l]>>f&3,v|=this.Vh[i+r*a+p]>>c&3,this.Vh[s+e*n+(u>>4)]|=v<<2*(15&u)}n=h,r=e,i=s,h=t.O.truncate(n/2),e=t.O.truncate((2*h+31)/32),s=i+r*n}},i.prototype.So=function(t,i){return this.vl.contains(t,i)?(t=this.sC(t),i=this.tC(i),0>t||t>=this.Gf||0>i||i>=this.Gf||0==(i=this.Vh[this.Um*i+(t>>4)]>>2*(15&t)&3)?0:1==i?1:2):0},i.prototype.Ro=function(i){if(!i.Ea(this.vl))return 0;var s=this.sC(i.v),n=this.sC(i.C),h=this.tC(i.G);if(i=this.tC(i.H),0>s&&(s=0),0>h&&(h=0),n>=this.Gf&&(n=this.Gf-1),i>=this.Gf&&(i=this.Gf-1),s>n||h>i)return 0;for(var r=Math.max(n-s,1)*Math.max(i-h,1),e=0,o=this.Um,a=this.Gf,u=0;;){if(32>r||16>a){for(r=h;r<=i;r++)for(var f=s;f<=n;f++)if(1<(u=this.Vh[e+o*r+(f>>4)]>>2*(15&f)&3))return 2;if(0==u)return 0;if(1==u)return 1}e+=o*a,a=t.O.truncate(a/2),o=t.O.truncate((2*a+31)/32),s=t.O.truncate(s/2),h=t.O.truncate(h/2),n=t.O.truncate(n/2),i=t.O.truncate(i/2),r=Math.max(n-s,1)*Math.max(i-h,1)}},i.prototype.RR=function(){return this.Gf*this.Um},i}();t.Nx=n}(Q||(Q={})),function(t){var i;(i=t.VL||(t.VL={}))[i.contains=1]="contains",i[i.within=2]="within",i[i.equals=3]="equals",i[i.disjoint=4]="disjoint",i[i.touches=8]="touches",i[i.crosses=16]="crosses",i[i.overlaps=32]="overlaps",i[i.unknown=0]="unknown",i[i.intersects=1073741824]="intersects";var s=function(){function t(){}return t.construct=function(i,s,n,h,r,e,o,a){var u=new t;return u.pw=i,u.Mm=s,u.Kj=n,u.Si=h,u.BH=r,u.SY=e,u.TY=o,u.UY=a,u},t}();t.Vt=function(){function i(){}return i.CD=function(s,n,h){if(i.wy(s)){var r=t.ta.kj(n,s,!1);n=!1,t.Uk.CE(s)&&(n=n||s.lu(r,h)),1736!=(r=s.getType())&&1607!=r||!t.Uk.AE(s)||0==h||(n=n||s.fj(h)),1736!=r&&1607!=r||!t.Uk.BE(s)||0==h||n||s.hM()}},i.wy=function(i){return t.Uk.CE(i)||t.Uk.AE(i)||t.Uk.BE(i)},i}();var n=function(){function i(){this.rh=[]}return i.zB=function(s,n,h,r,e){var o=s.getType(),a=n.getType();if(197==o){if(197==a)return i.tW(s,n,h,r);if(33==a)return 2==r?r=1:1==r&&(r=2),i.hJ(n,s,h,r)}else if(33==o){if(197==a)return i.hJ(s,n,h,r);if(33==a)return i.vW(s,n,h,r)}if(s.B()||n.B())return 4==r;var u=new t.l;s.A(u);var f=new t.l;n.A(f);var c=new t.l;if(c.K(u),c.Zb(f),h=t.ta.Wd(h,c,!1),i.dk(u,f,h))return 4==r;switch(u=!1,t.Vk.yd(o)&&((o=new t.Ta(s.description)).oc(s,!0),s=o,o=1607),t.Vk.yd(a)&&((a=new t.Ta(n.description)).oc(n,!0),n=a,a=1607),197!=o&&197!=a?(s.Db()4*Math.max(s.I(),n.I())*h)&&i.Wz(s,n,h,!0)))},i.kV=function(t,s,n){var h=i.qc(t,s,!0);return 4==h||1!=h&&2!=h&&1073741824!=h&&i.EI(t,s,n)},i.vV=function(t,s,n){var h=i.qc(t,s,!1);return 4!=h&&1!=h&&2!=h&&i.II(t,s,n,null)},i.qV=function(t,s,n,h){var r=i.qc(t,s,!1);return 4!=r&&1!=r&&2!=r&&i.FI(t,s,n,h)},i.Sw=function(s,n,h,r){var e=new t.l,o=new t.l;return s.A(e),n.A(o),!!i.zc(e,o,h)&&4!=(e=i.qc(s,n,!1))&&2!=e&&(1==e||i.BI(s,n,h,r))},i.lV=function(t,s,n){var h=i.qc(t,s,!0);return 4==h||1!=h&&1073741824!=h&&i.EI(t,s,n)},i.wV=function(t,s,n,h){var r=i.qc(t,s,!1);return 4!=r&&1!=r&&i.JI(t,s,n,h)},i.gV=function(t,s,n){var h=i.qc(t,s,!1);return 4!=h&&1!=h&&i.DI(t,s,n,null)},i.fB=function(s,n,h,r){var e=new t.l,o=new t.l;return s.A(e),n.A(o),!!i.zc(e,o,h)&&4!=(e=i.qc(s,n,!1))&&(1==e||i.CI(s,n,h,r))},i.jV=function(i,s,n){return 0==t.hd.KG(i,s,n)},i.uV=function(t,s,n){return s=s.D(),i.HI(t,s,n)},i.dV=function(t,s,n){return s=s.D(),i.AI(t,s,n)},i.iV=function(s,n,h){var r=i.qc(s,n,!1);if(4==r)return!0;if(1==r)return!1;r=new t.l,s.A(r),r.W(h,h);for(var e=new t.h,o=0;oh&&o.R()>h||o.ca()<=h&&o.R()<=h)&&(e=new t.Ta,o=new t.Sa,n.Hf(0,o),e.nf(o),n.Hf(2,o),e.lineTo(o),i.DI(s,e,h,r))},i.IV=function(s,n,h){var r=new t.l,e=new t.l;return s.A(r),n.A(e),!(!i.ek(r,e,h)||4==i.qc(s,n,!1))&&(!!i.dI(s,n,h)||i.Wz(s,n,h,!1))},i.GV=function(i,s,n){return 4==this.qc(i,s,!1)||!!new t.Zl(i,s,n,!0).next()&&!this.UG(i,s,n)},i.NI=function(s,n,h){if(4==i.qc(s,n,!1))return!1;var r=new t.be(0);if(0!=i.Xz(s,n,h,r))return!1;for(var e=new t.de,o=0;oh&&e.R()>h)&&i.ek(r,e,h)},i.DV=function(s,n,h){var r=new t.l,e=new t.l;return s.A(r),n.A(e),!i.zc(e,r,h)&&!i.TG(s,e,h)},i.OV=function(s,n,h){var r=new t.l,e=new t.l;if(s.A(r),n.A(e),e.ca()<=h&&e.R()<=h)return e=n.Ip(),i.Zz(s,e,h);if(e.ca()<=h||e.R()<=h)return e=new t.Ta,r=new t.Sa,n.Hf(0,r),e.nf(r),n.Hf(2,r),e.lineTo(r),i.NI(s,e,h);s=s.Ga(),n=new t.l,r=new t.l,n.K(e),r.K(e),n.W(-h,-h),r.W(h,h),e=!1;for(var o=new t.l,a=new t.l;s.$a();)for(;s.Ha();){if(s.ha().A(o),a.K(n),a.Ea(o),!a.B()&&(a.ca()>h||a.R()>h))return!1;a.K(r),a.Ea(o),a.B()||(e=!0)}return e},i.LV=function(s,n,h){var r=new t.l,e=new t.l;return s.A(r),n.A(e),!(i.zc(r,e,h)||i.zc(e,r,h)||i.zc(e,r,h)||e.ca()>h&&e.R()>h||e.ca()<=h&&e.R()<=h)&&(r=new t.Ta,e=new t.Sa,n.Hf(0,e),r.nf(e),n.Hf(2,e),r.lineTo(e),i.WG(s,r,h))},i.RV=function(s,n,h){var r=new t.l,e=new t.l;if(s.A(r),n.A(e),!i.zc(e,r,h)||e.ca()<=h&&e.R()<=h)return!1;if(e.ca()<=h||e.R()<=h)return i.zc(e,r,h);s=s.Ga(),(n=new t.l).K(e),n.W(-h,-h),e=!1,r=new t.l;for(var o=new t.l;s.$a();)for(;s.Ha();)s.ha().A(r),n.hm(r)?e=!0:(o.K(n),o.Ea(r),!o.B()&&(o.ca()>h||o.R()>h)&&(e=!0));return e},i.yV=function(s,n,h){var r=new t.l,e=new t.l;return n.A(e),s.A(r),!(!i.zc(r,e,h)||e.ca()>h&&e.R()>h)&&(e.ca()<=h&&e.R()<=h?(n=n.Ip(),i.SG(s,n,h)):(r=new t.Ta,e=new t.Sa,n.Hf(0,e),r.nf(e),n.Hf(2,e),r.lineTo(e),i.ym(r,s,h,!1)))},i.BV=function(s,n,h){var r=new t.l,e=new t.l;if(s.A(r),n.A(e),i.zc(e,r,h)||e.ca()<=h&&e.R()<=h)return!1;if(e.ca()<=h||e.R()<=h)return r=new t.Ta,e=new t.Sa,n.Hf(0,e),r.nf(e),n.Hf(2,e),r.lineTo(e),i.LI(s,r,h);s=s.Ga(),n=new t.l,(r=new t.l).K(e),n.K(e),r.W(-h,-h),n.W(h,h);for(var o=e=!1,a=new t.l,u=new t.l;s.$a();)for(;s.Ha();)if(s.ha().A(a),o||n.contains(a)||(o=!0),e||(u.K(r),u.Ea(a),!u.B()&&(u.ca()>h||u.R()>h)&&(e=!0)),e&&o)return!0;return!1},i.iU=function(s,n,h){var r=new t.l,e=new t.l;return s.A(r),n.A(e),!!i.ek(r,e,h)&&(!!i.jU(s,n,h)||i.YA(s,n,h,!1,!0,!1))},i.gU=function(t,s,n){return!i.gI(t,s,n)},i.oU=function(t,s,n){return i.YA(t,s,n,!1,!1,!0)},i.eI=function(s,n,h){var r=new t.l,e=new t.l;return s.A(r),n.A(e),!!i.zc(r,e,h)&&i.YA(n,s,h,!0,!1,!1)},i.Mw=function(i,s,n){n*=n;for(var h=new t.h,r=new t.h,e=0;eh||e.R()>h)&&i.ek(r,e,h)},i.fU=function(s,n,h){var r=new t.l,e=new t.l;if(s.A(r),n.A(e),i.zc(e,r,h))return!1;for((n=new t.l).K(e),n.W(h,h),h=new t.h,e=0;en?e.W(0,-n):e.W(-n,0);for(var a=0;an){if(s.y>e.G&&s.ye.v&&s.xh?r.W(0,-h):r.W(-h,0),o.W(h,h);for(var a=new t.h,u=0;uh?a.y>r.G&&a.yr.v&&a.xh||e.R()>h||(n=n.Ip(),i.kt(s,n,h)))},i.eU=function(s,n,h){var r=new t.l,e=new t.l;if(s.A(r),n.A(e),i.zc(e,r,h)||e.ca()<=h&&e.R()<=h)return!1;if(e.ca()<=h||e.R()<=h){n=new t.l,r=new t.l,n.K(e),e.ca()>h?n.W(0,-h):n.W(-h,0),r.K(e),r.W(h,h);for(var o=new t.h,a=!1,u=!1,f=0;fh?o.y>n.G&&o.yn.v&&o.xn*n},i.uI=function(t,s,n){return i.wI(t,s,n)},i.vI=function(s,n,h){var r=new t.l;return r.K(s),i.ek(r,n,h)},i.Rw=function(i,s,n){var h=new t.l;return h.K(s),h.W(n,n),!h.contains(i)},i.dB=function(i,s,n){if(s.ca()<=n&&s.R()<=n)return!1;var h=new t.l,r=new t.l;if(h.K(s),h.W(n,n),!h.contains(i))return!1;if(s.ca()<=n||s.R()<=n){if(r.K(s),s.ca()>n?r.W(0,-n):r.W(-n,0),s.ca()>n){if(i.y>r.G&&i.yr.v&&i.xn?h.W(0,-n):h.W(-n,0);var r=!1;return s.ca()>n?i.y>h.G&&i.yh.v&&i.xh&&s.R()>h&&(n.ca()<=h||n.R()<=h)?r=n:(r=s,s=n),r.ca()<=h||r.R()<=h){if(s.ca()<=h||s.R()<=h){n=new t.yb;var e=new t.yb,o=[0,0],a=[0,0],u=new t.h;return r.dn(u),n.Dc(u),r.en(u),n.Qc(u),s.dn(u),e.Dc(u),s.en(u),e.Qc(u),n.Ea(e,null,o,a,h),1==n.Ea(e,null,null,null,h)&&(0==o[0]||1==o[1]||0==a[0]||1==a[1])}return n=new t.l,e=new t.l,n.K(s),n.W(-h,-h),e.K(n),e.Ea(r),!(!e.B()&&(e.ca()>h||e.R()>h))}return s.W(h,h),(e=new t.l).K(r),e.Ea(s),!(e.B()||!e.B()&&e.ca()>h&&e.R()>h)},i.bQ=function(s,n,h){if(i.zc(s,n,h)||i.zc(n,s,h)||s.ca()<=h&&s.R()<=h||n.ca()<=h&&n.R()<=h)return!1;if(s.ca()<=h||s.R()<=h){if(n.ca()>h&&n.R()>h)return!1;var r=new t.yb,e=new t.yb,o=[0,0],a=[0,0],u=new t.h;return s.dn(u),r.Dc(u),s.en(u),r.Qc(u),n.dn(u),e.Dc(u),n.en(u),e.Qc(u),r.Ea(e,null,o,a,h),2==r.Ea(e,null,null,null,h)&&(0o[1])&&(0a[1])}return!(n.ca()<=h||n.R()<=h||((r=new t.l).K(s),r.Ea(n),r.B()||r.ca()<=h||r.R()<=h))},i.jF=function(s,n,h){if(!i.zc(s,n,h))return!1;if(s.ca()<=h&&s.R()<=h)return s=s.sf(),i.eB(s,n,h);if(n.ca()<=h&&n.R()<=h)return n=n.sf(),i.eB(n,s,h);if(s.ca()<=h||s.R()<=h)return i.zc(s,n,h);if(n.ca()<=h||n.R()<=h){var r=new t.l;return r.K(s),r.W(-h,-h),!!r.hm(n)||((s=new t.l).K(r),s.Ea(n),!(s.B()||s.ca()<=h&&s.R()<=h))}return i.zc(s,n,h)},i.aQ=function(s,n,h){if(i.zc(s,n,h)||i.zc(n,s,h)||s.ca()<=h&&s.R()<=h||n.ca()<=h&&n.R()<=h||n.ca()>h&&n.R()>h&&s.ca()>h&&s.R()>h)return!1;if(s.ca()>h&&s.R()>h)var r=n;else r=s,s=n;if(s.ca()>h&&s.R()>h){n=new t.l;var e=new t.l;return e.K(s),e.W(-h,-h),n.K(e),n.Ea(r),!(n.B()||n.ca()<=h&&n.R()<=h)}n=new t.yb,e=new t.yb;var o=[0,0],a=[0,0],u=new t.h;return r.dn(u),n.Dc(u),r.en(u),n.Qc(u),s.dn(u),e.Dc(u),s.en(u),e.Qc(u),n.Ea(e,null,o,a,h),1==n.Ea(e,null,null,null,h)&&0o[1]&&0a[1]},i.EI=function(i,s,n){var h=new t.l,r=new t.l,e=new t.Zl(i,s,n,!0);if(!e.next())return!0;if(this.UG(i,s,n))return!1;var o=i,a=null;1736==s.getType()&&(a=s);var u=!1,f=!1;do{var c=e.nl(),l=e.hl();if(l=s.Na(s.Ba(l)),h.K(e.uz()),h.W(n,n),h.contains(l)&&0!=(l=t.hd.Yd(o,l,0))||1736==s.getType()&&(c=i.Na(i.Ba(c)),r.K(e.az()),r.W(n,n),r.contains(c)&&0!=(l=t.hd.Yd(a,c,0))))return!1;u||(!t.Dg.Ml(i,s.da()-1)||null!=i.Bb&&null!=i.Bb.Fb?o=i:(o=new t.Da,i.copyTo(o),o.fj(1)),u=!0),1736!=s.getType()||f||(f=s,!t.Dg.Ml(f,i.da()-1)||null!=s.Bb&&null!=s.Bb.Fb?a=s:(a=new t.Da,f.copyTo(a),a.fj(1)),f=!0)}while(e.next());return!0},i.zc=function(i,s,n){var h=new t.l;return h.K(i),h.W(n,n),h.contains(s)},i.ls=function(i,s,n){var h=new t.l;return h.K(s),h.W(n,n),s=new t.h,i.dn(s),!(h.contains(s)&&(i.$I(s),h.contains(s)&&(i.cJ(s),h.contains(s)&&(i.en(s),h.contains(s)))))},i.dI=function(i,s,n){if(i.da()!=s.da()||i.I()!=s.I())return!1;var h=new t.h,r=new t.h,e=!0;n*=n;for(var o=0;on){e=!1;break}if(!e)break}return!!e},i.jU=function(i,s,n){if(i.I()!=s.I())return!1;var h=new t.h,r=new t.h,e=!0;n*=n;for(var o=0;on){e=!1;break}return!!e},i.YA=function(i,s,n,h,r,e){var o=!1;if(i.I()>s.I()){h&&(h=!1,o=!0);var a=s}else a=i,i=s;if(s=null,r||e||o){s=new t.pn(i.I());for(var u=0;us.I())var h=s;else h=i,i=s;s=new t.l;var r=new t.l,e=new t.l;h.A(s),i.A(r),s.W(n,n),r.W(n,n),e.K(s),e.Ea(r),r=new t.h;for(var o=new t.h,a=n*n,u=t.ta.oE(i,e),f=u.getIterator(),c=0;cr)return!1;if(g*(1-(x=a.Si))<=r||1==x)break}if(g*(1-x)>r)return!1;c=0,l.resize(0),p.rh.length=0}}return!0},i.WG=function(s,n,h){if(1>i.Xz(s,n,h,null))return!1;var r=new t.l,e=new t.l;s.A(r),n.A(e);var o=i.ls(r,e,h);return r=i.ls(e,r,h),!((!o||!r)&&(o&&!r?i.ym(n,s,h,!1):r&&!o?i.ym(s,n,h,!1):i.ym(s,n,h,!1)||i.ym(n,s,h,!1)))},i.Xz=function(n,h,r,e){function o(t,i){return y.QE(t,i)}if(n.yz()>h.yz())var a=h,u=n;else a=n,u=h;n=a.Ga(),h=u.Ga();var f=[0,0],c=[0,0],l=-1,p=0,v=new t.ia(0),y=new i,d=new t.l,b=new t.l,g=new t.l;a.A(d),u.A(b),d.W(r,r),b.W(r,r),g.K(d),g.Ea(b),a=null,null!=e&&(a=new t.h);var w=b=b=null,x=u.Bb;for(null!=x?(b=x.Fb,w=x.zo,null==b&&(b=t.ta.jj(u,g))):b=t.ta.jj(u,g),u=b.getIterator(),x=null,null!=w&&(x=w.getIterator());n.$a();)for(w=0;n.Ha();){var m=n.ha();if(m.A(d),d.isIntersecting(g)){if(null!=x&&(x.Xi(d,r),-1==x.next()))continue;var j=m.Qb();u.Uo(m,r);for(var M=u.next();-1!=M;M=u.next()){var k=b.ja(M);h.Vb(k);var z=h.ha(),A=z.Qb(),N=m.Ea(z,null,f,c,r);if(0r)return 1;var C=j*(I-M);if(h.Ha()){if(z=h.ha(),2==(N=m.Ea(z,null,f,null,r))){var P=f[1];if(C+(N=j*(P-(N=f[0])))>r)return 1}h.Vb(k),h.ha()}if(!h.vm()){if(h.li(),z=h.li(),2==(N=m.Ea(z,null,f,null,r))&&C+(N=j*((P=f[1])-(N=f[0])))>r)return 1;h.Vb(k),h.ha()}if(n.Ha()){if(k=n.wb(),2==(N=(m=n.ha()).Ea(z,null,f,null,r))&&C+(N=j*((P=f[1])-(N=f[0])))>r)return 1;n.Vb(k),n.ha()}if(!n.vm()){if(k=n.wb(),n.li(),2==(N=(m=n.li()).Ea(z,null,f,null,r))&&C+(N=A*((P=f[1])-(N=f[0])))>r)return 1;n.Vb(k),n.ha()}z=s.construct(n.wb(),n.gb,M,I,h.wb(),h.gb,l,T),y.rh.push(z),v.add(v.size)}l=0,null!=e&&(m.hc(M,a),e.add(a.x),e.add(a.y))}}if(pr)w=j*(z.Si-z.Kj),m=z.Si,M=z.Mm;else{if(z.Mm!=M?(w=j*(z.Si-z.Kj),M=z.Mm):w+=j*(z.Si-z.Kj),w>r)return 1;if(1==(m=z.Si))break}j*(1-m)>r&&(w=0),p=0,v.resize(0),y.rh.length=0}}}return l},i.UG=function(i,s,n){var h=i.Ga(),r=s.Ga();for(i=new t.Zl(i,s,n,!1);i.next();){s=i.nl();var e=i.hl();if(h.Vb(s),r.Vb(e),s=h.ha(),0n)return!1;c=!0}else if(0!=p){if(l=u[0],0<(c=a[0])&&1>c&&0l)return!1;c=!0}}return!!c&&(e=new t.l,o=new t.l,r=new t.l,i.A(e),s.A(o),e.W(1e3*n,1e3*n),o.W(1e3*n,1e3*n),r.K(e),r.Ea(o),!(10h&&(f=!0,c&&l))return!0}else if(0!=g&&(w=d[0],0<(g=y[0])&&1>g&&0w))return!0}if(e=new t.l,p=new t.l,e.K(o),e.W(1e3*h,1e3*h),p.K(a),p.W(1e3*h,1e3*h),u.K(e),u.Ea(p),o="",o=f?o+"**":o+"T*",c){if(10c&&0l)))return h[0]=!0,!1}if(!f){for(h[0]=!0,o=new t.l,i.A(o),o.W(n,n),u=i,f=!1,a=new t.l,h=0,r=s.da();hf&&0c)return!1;f=!0}}return!!f&&(e=new t.l,o=new t.l,r=new t.l,i.A(e),s.A(o),e.W(1e3*n,1e3*n),o.W(1e3*n,1e3*n),r.K(e),r.Ea(o),!(10c&&0l)return!0;c=!0}}return!!c&&(o=new t.l,a=new t.l,u=new t.l,f=new t.l,e=new t.l,s.A(o),n.A(a),i.ls(a,o,h)?(u.K(o),u.W(1e3*h,1e3*h),f.K(a),f.W(1e3*h,1e3*h),e.K(u),e.Ea(f),!(10e;e++){var o=h.charAt(e);if("*"!=o&&"T"!=o&&"F"!=o&&"0"!=o&&"1"!=o&&"2"!=o)throw t.i.fa("relation string")}if(0!=(e=this.MR(h,i.Db(),s.Db())))return t.ud.zB(i,s,n,e,r);e=new t.l,i.A(e),o=new t.l,s.A(o);var a=new t.l;if(a.K(e),a.Zb(o),n=t.ta.Wd(n,a,!1),i=this.WE(i,n),s=this.WE(s,n),i.B()||s.B())return this.uW(i,s,h);switch(e=i.getType(),o=s.getType(),a=!1,e){case 1736:switch(o){case 1736:a=this.rt(i,s,n,h,r);break;case 1607:a=this.$m(i,s,n,h,r);break;case 33:a=this.qt(i,s,n,h);break;case 550:a=this.pt(i,s,n,h,r)}break;case 1607:switch(o){case 1736:a=this.$m(s,i,n,this.Zp(h),r);break;case 1607:a=this.gB(i,s,n,h,r);break;case 33:a=this.tt(i,s,n,h,r);break;case 550:a=this.st(i,s,n,h,r)}break;case 33:switch(o){case 1736:a=this.qt(s,i,n,this.Zp(h));break;case 1607:a=this.tt(s,i,n,this.Zp(h),r);break;case 33:a=this.$U(i,s,n,h);break;case 550:a=this.lt(s,i,n,this.Zp(h))}break;case 550:switch(o){case 1736:a=this.pt(s,i,n,this.Zp(h),r);break;case 1607:a=this.st(s,i,n,this.Zp(h),r);break;case 550:a=this.ZA(i,s,n,h,r);break;case 33:a=this.lt(i,s,n,h)}break;default:a=!1}return a},i.rt=function(s,n,h,r,e){var o=new i;o.Yi(),o.bj(r),o.xJ();var a=new t.l,u=new t.l;return s.A(a),n.A(u),r=!1,t.ud.dk(a,u,h)&&(o.Cu(s,n),r=!0),r||(4==(a=t.ud.qc(s,n,!1))?(o.Cu(s,n),r=!0):1==a?(o.ly(n),r=!0):2==a&&(o.ZD(s),r=!0)),r||(s=(r=new t.gd).Ib(s),n=r.Ib(n),o.Wo(r,h,e),o.Bp(s,n),o.j.Ug()),i.fg(o.J,o.Xc)},i.Sw=function(s,n,h,r){var e=new i;e.Yi(),e.bj("T*****F**"),e.xJ();var o=new t.l,a=new t.l;s.A(o),n.A(a);var u=!1;return t.ud.dk(o,a,h)&&(e.Cu(s,n),u=!0),u||(4==(o=t.ud.qc(s,n,!1))?(e.Cu(s,n),u=!0):1==o?(e.ly(n),u=!0):2==o&&(e.ZD(s),u=!0)),u?this.fg(e.J,e.Xc):(s=(u=new t.gd).Ib(s),o=u.Ib(n),t.Tk.V(u,h,r,!1),h=u.Ne(o).mg(),u.Gp(0,!0,!0),t.rn.V(u,s,-1,!1,r),0!=u.I(s)&&(t.rn.V(u,o,-1,!1,r),e.er(u,r),(n=0==u.I(o))||(e.Bp(s,o),e.j.Ug(),o=this.fg(e.J,e.Xc))?(s=u.Ne(s),s=(u=new t.gd).Ib(s),o=u.Ib(h),e.er(u,r),e.le=0,e.Yi(),e.bj(n?"T*****F**":"******F**"),e.IB(),e.Bp(s,o),e.j.Ug(),this.fg(e.J,e.Xc)):o))},i.$m=function(s,n,h,r,e){var o=new i;o.Yi(),o.bj(r),o.IB();var a=new t.l,u=new t.l;return s.A(a),n.A(u),r=!1,t.ud.dk(a,u,h)&&(o.Du(s,n),r=!0),r||(4==(a=t.ud.qc(s,n,!1))?(o.Du(s,n),r=!0):1==a&&(o.$D(n),r=!0)),r||(s=(r=new t.gd).Ib(s),n=r.Ib(n),o.Wo(r,h,e),o.kh=o.j.Dp(),i.Jw(n,o.j,o.kh),o.Bp(s,n),o.j.Ep(o.kh),o.j.Ug()),i.fg(o.J,o.Xc)},i.fB=function(s,n,h,r){var e=new i;e.Yi(),e.bj("T*****F**"),e.IB();var o=new t.l,a=new t.l;s.A(o),n.A(a);var u=!1;return t.ud.dk(o,a,h)&&(e.Du(s,n),u=!0),u||(4==(o=t.ud.qc(s,n,!1))?(e.Du(s,n),u=!0):1==o&&(e.$D(n),u=!0)),u?this.fg(e.J,e.Xc):(s=(u=new t.gd).Ib(s),n=u.Ib(n),e.Wo(u,h,r),0!=u.I(s)&&(e.Bp(s,n),e.j.Ug(),this.fg(e.J,e.Xc)))},i.pt=function(s,n,h,r,e){var o=new i;o.Yi(),o.bj(r),o.yJ();var a=new t.l,u=new t.l;return s.A(a),n.A(u),r=!1,t.ud.dk(a,u,h)&&(o.Eu(s),r=!0),r||(4==(a=t.ud.qc(s,n,!1))?(o.Eu(s),r=!0):1==a&&(o.zN(),r=!0)),r||(s=(r=new t.gd).Ib(s),n=r.Ib(n),o.Wo(r,h,e),o.Gy(s,n),o.j.Ug()),i.fg(o.J,o.Xc)},i.gB=function(s,n,h,r,e){var o=new i;o.Yi(),o.bj(r),o.eX(),r=new t.l;var a=new t.l;s.A(r),n.A(a);var u=!1;return t.ud.dk(r,a,h)&&(o.PG(s,n),u=!0),u||4!=t.ud.qc(s,n,!1)||(o.PG(s,n),u=!0),u||(s=(r=new t.gd).Ib(s),n=r.Ib(n),o.Wo(r,h,e),o.Yh=o.j.Dp(),o.kh=o.j.Dp(),i.Jw(s,o.j,o.Yh),i.Jw(n,o.j,o.kh),o.Bp(s,n),o.j.Ep(o.Yh),o.j.Ep(o.kh),o.j.Ug()),i.fg(o.J,o.Xc)},i.st=function(s,n,h,r,e){var o=new i;o.Yi(),o.bj(r),o.MJ(),r=new t.l;var a=new t.l;s.A(r),n.A(a);var u=!1;return t.ud.dk(r,a,h)&&(o.Vz(s),u=!0),u||4!=t.ud.qc(s,n,!1)||(o.Vz(s),u=!0),u||(s=(r=new t.gd).Ib(s),n=r.Ib(n),o.Wo(r,h,e),o.Yh=o.j.Dp(),i.Jw(s,o.j,o.Yh),o.Gy(s,n),o.j.Ep(o.Yh),o.j.Ug()),i.fg(o.J,o.Xc)},i.ZA=function(s,n,h,r,e){var o=new i;o.Yi(),o.bj(r),o.RJ(),r=new t.l;var a=new t.l;s.A(r),n.A(a);var u=!1;return t.ud.dk(r,a,h)&&(o.yI(),u=!0),u||(s=(r=new t.gd).Ib(s),n=r.Ib(n),o.Wo(r,h,e),o.Gy(s,n),o.j.Ug()),i.fg(o.J,o.Xc)},i.qt=function(s,n,h,r){var e=new i;e.Yi(),e.bj(r),e.yJ();var o=new t.l;s.A(o),n=n.D();var a=!1;return t.ud.Rw(n,o,h)&&(e.Eu(s),a=!0),a||(1==(h=t.hd.Yd(s,n,h))?(e.J[0]=0,e.J[2]=2,e.J[3]=-1,e.J[5]=1,e.J[6]=-1):2==h?(e.J[6]=-1,0!=s.Ke()?(e.J[0]=-1,e.J[3]=0,e.J[2]=2,e.J[5]=1):(e.J[0]=0,e.J[3]=-1,e.J[5]=-1,h=new t.l,s.A(h),e.J[2]=0==h.ca()&&0==h.R()?-1:1)):e.Eu(s)),this.fg(e.J,r)},i.tt=function(s,n,h,r,e){var o=new i;o.Yi(),o.bj(r),o.MJ();var a=new t.l;s.A(a),r=n.D();var u=!1;if(t.ud.Rw(r,a,h)&&(o.Vz(s),u=!0),!u){a=null;var f=u=!1;(o.ea[0]||o.ea[6])&&(t.ud.Yz(s,r,h)?(o.ea[0]&&(a=t.pi.gm(s,e),f=!t.ud.kt(a,r,h),u=!0,o.J[0]=f?-1:0),o.J[6]=-1):(o.J[0]=-1,o.J[6]=0)),o.ea[3]&&(null!=a&&a.B()?o.J[3]=-1:(u||(null==a&&(a=t.pi.gm(s,e)),f=!t.ud.kt(a,r,h),u=!0),o.J[3]=f?0:-1)),o.ea[5]&&(null!=a&&a.B()?o.J[5]=-1:u&&!f?o.J[5]=0:(null==a&&(a=t.pi.gm(s,e)),e=t.ud.Nw(a,n,h),o.J[5]=e?-1:0)),o.ea[2]&&(0!=s.Qb()?o.J[2]=1:((e=new t.de(s.description)).Fd(s,0,s.I()),s=t.ud.Nw(e,n,h),o.J[2]=s?-1:0))}return this.fg(o.J,o.Xc)},i.lt=function(s,n,h,r){var e=new i;e.Yi(),e.bj(r),e.RJ();var o=new t.l;s.A(o),n=n.D();var a=!1;if(t.ud.Rw(n,o,h)&&(e.yI(),a=!0),!a){o=!1,a=!0,h*=h;for(var u=0;uo;o++)e[o]=-1;return t.h.yc(s,n)<=h*h?e[0]=0:(e[2]=0,e[6]=0),e[8]=2,i.fg(e,r)},i.fg=function(t,i){for(var s=0;9>s;s++)switch(i.charAt(s)){case"T":if(-1==t[s])return!1;break;case"F":if(-1!=t[s])return!1;break;case"0":if(0!=t[s])return!1;break;case"1":if(1!=t[s])return!1;break;case"2":if(2!=t[s])return!1}return!0},i.uW=function(i,s,n){var h=[-1,-1,-1,-1,-1,-1,-1,-1,-1];if(i.B()&&s.B()){for(var r=0;9>r;r++)h[r]=-1;return this.fg(h,n)}return r=!1,i.B()&&(i=s,r=!0),h[0]=-1,h[1]=-1,h[3]=-1,h[4]=-1,h[6]=-1,h[7]=-1,h[8]=2,s=i.getType(),t.aa.Hc(s)?1736==s?0!=i.Ke()?(h[2]=2,h[5]=1):(h[5]=-1,s=new t.l,i.A(s),h[2]=0==s.ca()&&0==s.R()?0:1):(s=0!=i.Qb(),h[2]=s?1:0,h[5]=t.pi.aq(i)?0:-1):(h[2]=0,h[5]=-1),r&&this.vK(h),this.fg(h,n)},i.MR=function(t,s,n){return i.dQ(t)?3:i.UP(t)?4:i.cY(t,s,n)?8:i.CP(t,s,n)?16:i.eP(t)?1:i.EU(t,s,n)?32:0},i.dQ=function(t){return"T"==t.charAt(0)&&"*"==t.charAt(1)&&"F"==t.charAt(2)&&"*"==t.charAt(3)&&"*"==t.charAt(4)&&"F"==t.charAt(5)&&"F"==t.charAt(6)&&"F"==t.charAt(7)&&"*"==t.charAt(8)},i.UP=function(t){return"F"==t.charAt(0)&&"F"==t.charAt(1)&&"*"==t.charAt(2)&&"F"==t.charAt(3)&&"F"==t.charAt(4)&&"*"==t.charAt(5)&&"*"==t.charAt(6)&&"*"==t.charAt(7)&&"*"==t.charAt(8)},i.cY=function(t,i,s){return(0!=i||0!=s)&&((2!=i||2!=s)&&("F"==t.charAt(0)&&"*"==t.charAt(1)&&"*"==t.charAt(2)&&"T"==t.charAt(3)&&"*"==t.charAt(4)&&"*"==t.charAt(5)&&"*"==t.charAt(6)&&"*"==t.charAt(7)&&"*"==t.charAt(8)||1==i&&1==s&&"F"==t.charAt(0)&&"T"==t.charAt(1)&&"*"==t.charAt(2)&&"*"==t.charAt(3)&&"*"==t.charAt(4)&&"*"==t.charAt(5)&&"*"==t.charAt(6)&&"*"==t.charAt(7)&&"*"==t.charAt(8))||0!=s&&"F"==t.charAt(0)&&"*"==t.charAt(1)&&"*"==t.charAt(2)&&"*"==t.charAt(3)&&"T"==t.charAt(4)&&"*"==t.charAt(5)&&"*"==t.charAt(6)&&"*"==t.charAt(7)&&"*"==t.charAt(8))},i.CP=function(t,i,s){return i>s?"T"==t.charAt(0)&&"*"==t.charAt(1)&&"*"==t.charAt(2)&&"*"==t.charAt(3)&&"*"==t.charAt(4)&&"*"==t.charAt(5)&&"T"==t.charAt(6)&&"*"==t.charAt(7)&&"*"==t.charAt(8):1==i&&1==s&&"0"==t.charAt(0)&&"*"==t.charAt(1)&&"*"==t.charAt(2)&&"*"==t.charAt(3)&&"*"==t.charAt(4)&&"*"==t.charAt(5)&&"*"==t.charAt(6)&&"*"==t.charAt(7)&&"*"==t.charAt(8)},i.eP=function(t){return"T"==t.charAt(0)&&"*"==t.charAt(1)&&"*"==t.charAt(2)&&"*"==t.charAt(3)&&"*"==t.charAt(4)&&"*"==t.charAt(5)&&"F"==t.charAt(6)&&"F"==t.charAt(7)&&"*"==t.charAt(8)},i.EU=function(t,i,s){if(i==s){if(1!=i)return"T"==t.charAt(0)&&"*"==t.charAt(1)&&"T"==t.charAt(2)&&"*"==t.charAt(3)&&"*"==t.charAt(4)&&"*"==t.charAt(5)&&"T"==t.charAt(6)&&"*"==t.charAt(7)&&"*"==t.charAt(8);if("1"==t.charAt(0)&&"*"==t.charAt(1)&&"T"==t.charAt(2)&&"*"==t.charAt(3)&&"*"==t.charAt(4)&&"*"==t.charAt(5)&&"T"==t.charAt(6)&&"*"==t.charAt(7)&&"*"==t.charAt(8))return!0}return!1},i.Jw=function(t,i,s){t=i.La(t);for(var n=i.Re;-1!=n;n=i.Rf(n))if(0!=(i.xd(n)&t)){var h=i.Me(n);if(-1==h)i.nn(n,s,0);else{var r=h,e=0;do{0!=(i.dh(r)&t)&&e++,r=i.jc(i.xa(r))}while(r!=h);i.nn(n,s,e)}}},i.Zp=function(t){var i=""+t.charAt(0);return i+=t.charAt(3),i+=t.charAt(6),i+=t.charAt(1),i+=t.charAt(4),i+=t.charAt(7),i+=t.charAt(2),(i+=t.charAt(5))+t.charAt(8)},i.prototype.Yi=function(){for(var t=0;9>t;t++)this.J[t]=-2,this.Za[t]=-2},i.vK=function(t){var i=t[1],s=t[2],n=t[5];t[1]=t[3],t[2]=t[6],t[5]=t[7],t[3]=i,t[6]=s,t[7]=n},i.prototype.bj=function(t){for(this.Xc=t,t=0;9>t;t++)"*"!=this.Xc.charAt(t)?(this.ea[t]=!0,this.le++):this.ea[t]=!1},i.prototype.UJ=function(){for(var t=0;9>t;t++)this.ea[t]&&-2==this.J[t]&&(this.J[t]=-1,this.ea[t]=!1)},i.prototype.pc=function(t){return!(-2==this.J[t]||(-1==this.J[t]?(this.ea[t]=!1,this.le--,0):"T"!=this.Xc.charAt(t)&&"F"!=this.Xc.charAt(t)&&this.J[t]r?1:0},i.prototype.reset=function(){this.yA=-1},i}(),n=function(){function n(){this.Wm=this.Gl=null,this.fb=new t.Yj,this.fb.RP(),this.$d=new s(this),this.fb.Vo(this.$d)}return n.prototype.HQ=function(){var i=!1;if(this.fw&&(i=this.IQ()),1==this.g.da(this.X)){var s=this.g.Ob(this.X);return i=this.g.wz(s),this.g.PB(s,!0),0>i&&(i=this.g.Xa(s),this.g.pJ(i),this.g.Wg(s,this.g.Ma(i)),!0)}for(this.El=this.g.Ky(),this.wo=this.g.Ky(),s=this.g.Ob(this.X);-1!=s;s=this.g.Rb(s))this.g.gr(s,this.El,0),this.g.gr(s,this.wo,-1);s=new t.ia(0),this.yh=NaN;var n=new t.h;this.et=this.g.da(this.X),this.ro=this.g.Gd(),this.Rs=this.g.Gd();for(var h=this.Gl.rc(this.Gl.je);-1!=h;h=this.Gl.lb(h)){var r=this.Gl.getData(h);if(this.g.Gc(r,n),n.y!=this.yh&&0!=s.size&&(i=this.ut(s)||i,this.$d.reset(),s.clear(!1)),s.add(r),this.yh=n.y,0==this.et)break}for(0=this.MA.length&&this.MA.push(new t.ig);var i=this.MA[this.Cw];return this.Cw++,i},s.prototype.clear=function(){this.wB(this.mo),this.wB(this.$s),this.wB(this.yw),this.Cw=0},s.prototype.Oo=function(t){this.mo.push(this.Ow(t))},s.prototype.ol=function(t){return 0==t?this.$s.length:this.yw.length},s.prototype.Vp=function(t,i){return this.SR(t,i).$i},s.prototype.Ea=function(i,s){if(2!=this.mo.length)throw t.i.Qa();this.qa=i;var n=t.lc.ox(.01*i),h=!1,r=this.mo[0],e=this.mo[1];if(s||0!=(5&r.$i.zr(e.$i,i,!0))){if(322==r.$i.getType()){var o=r.$i;if(322==e.$i.getType()){s=e.$i;var a=t.yb.Zx(o,s,null,this.Fq,this.Bk,i);if(0==a)throw t.yb.Zx(o,s,null,this.Fq,this.Bk,i),t.i.Qa();i=Array(9),t.O.$u(i,null);for(var u=0;un&&(h=!0)):l>v?(o.hc(f,d),f=new t.h,s.hc(c,f),t.h.yc(d,f)>n&&(h=!0)):(s.hc(c,d),l=new t.h,o.hc(f,l),t.h.yc(d,l)>n&&(h=!0)),i[u]=d}for(r=0,e=-1,u=0;u<=a;u++)(y=uthis.Bk[1]&&(y=this.Bk[0],this.Bk[0]=this.Bk[1],this.Bk[1]=y,u=o[0],o[0]=o[1],o[1]=u),r=0,e=-1,u=0;u<=a;u++)(y=u=e;e++){if((s=1>e?this.Fq[e]:1)!=n){var o=this.aB();i.ah(n,s,o),-1!=r&&o.get().Dc(h),1!=e&&o.get().Qc(h),n=s,this.$s.push(this.Ow(o.get()))}r=e}this.Bf.Cb(h)}},s}();t.TC=s}(Q||(Q={})),function(t){var i=function(){function i(i){this.Ds=this.rk=this.sb=null,this.ag=0,this.zm=!1,this.zf=-1,this.Cl=this.Jd=0,this.gb=-1,this.ib=i,this.ag=this.Wx(this.Cl),this.zm=!1,this.rk=null,this.Ds=new t.h}return i.prototype.BW=function(i){if(this.ib!=i.ib)throw t.i.Hb();this.zf=i.zf,this.Jd=i.Jd,this.gb=i.gb,this.Cl=i.Cl,this.ag=i.ag,this.zm=i.zm,this.rk=null},i.prototype.ha=function(){if(this.zf!=this.Jd&&this.BD(),this.zm)this.Jd=(this.Jd+1)%this.ag;else{if(this.Jd==this.ag)throw t.i.ce();this.Jd++}return this.rk},i.prototype.li=function(){if(this.zm)this.Jd=(this.ag+this.Jd-1)%this.ag;else{if(0==this.Jd)throw t.i.ce();this.Jd--}return this.Jd!=this.zf&&this.BD(),this.rk},i.prototype.DW=function(){this.zf=-1,this.Jd=0},i.prototype.EW=function(){this.Jd=this.ag,this.zf=-1},i.prototype.Vb=function(t,i){if(void 0===i&&(i=-1),0<=this.gb&&this.gb=s&&t=this.ib.Ba(i)&&t=this.ib.da()||(this.zf=-1,this.Jd=0,this.ag=this.Wx(this.gb),this.ib.Ba(this.gb),this.ib.dc(this.gb),this.Cl++,0))},i.prototype.Zi=function(){this.ag=this.Jd=this.zf=-1,this.Cl=0,this.gb=-1},i.prototype.Wx=function(t){if(this.ib.Ac())return 0;var i=1;return this.ib.dc(t)&&(i=0),this.ib.Ja(t)-i},i.prototype.On=function(){return this.zf==this.ag-1&&this.ib.dc(this.gb)},i.prototype.JB=function(){this.zm=!0},i.prototype.wb=function(){return this.ib.nb.o[this.gb]+this.zf},i.prototype.IM=function(){return this.ib.Ba(this.gb)},i.prototype.ik=function(){return this.On()?this.ib.Ba(this.gb):this.wb()+1},i.prototype.vm=function(){return 0==this.zf},i.prototype.Qn=function(){return this.zf==this.ag-1},i.prototype.Ha=function(){return this.Jdthis.Jd||this.Jd>=this.ag)throw t.i.ce();this.zf=this.Jd;var i=this.wb();this.ib.mc();var s=this.ib.Ve,n=1;switch(null!=s&&(n=7&s.read(i)),s=this.ib.description,n){case 1:null==this.sb&&(this.sb=new t.yb),this.rk=this.sb;break;case 2:throw t.i.fa("internal error");default:throw t.i.Qa()}this.rk.Nf(s),n=this.ik(),this.ib.Gc(i,this.Ds),this.rk.Dc(this.Ds),this.ib.Gc(n,this.Ds),this.rk.Qc(this.Ds);for(var h=1,r=s.Aa;hr&&(e=s,s=h,h=e,e=n,n=r,r=e,e=-1),!(0>r||n>=this.pl)){0>s&&0>h?h=s=-1:s>=this.oi&&h>=this.oi&&(h=s=this.oi);var o=(h-s)/(r-n);r>this.pl&&(h=o*((r=this.pl)-n)+s),0>n&&(s=o*(0-n)+s,n=0);var a=Math.max(this.oi+1,8388607);-8388607>s?(n=(0-s)/o+n,s=0):s>a&&(n=(this.oi-s)/o+n,s=this.oi),-8388607>h?r=(0-s)/o+n:h>a&&(r=(this.oi-s)/o+n),(n=t.O.truncate(n))!=(r=t.O.truncate(r))&&((h=new i).x=t.O.truncate(4294967296*s),h.y=n,h.H=r,h.WP=t.O.truncate(4294967296*o),h.dir=e,null==this.Wl&&(this.Wl=t.O.lg(this.pl,null)),h.next=this.Wl[h.y],this.Wl[h.y]=h,h.ythis.Kw&&(this.Kw=h.H),this.Tq++)}}},s.prototype.sN=function(){if(null!=this.Jh){for(var t=!1,i=null,s=this.Jh;null!=s;)if(s.y++,s.y==s.H){var n=s;s=s.next,null!=i?i.next=s:this.Jh=s,n.next=null}else s.x+=s.WP,null!=i&&i.x>s.x&&(t=!0),i=s,s=s.next;t&&(this.Jh=this.fK(this.Jh))}},s.prototype.lN=function(t){if(!(t>=this.pl)){var i=this.Wl[t];if(null!=i){this.Wl[t]=null,i=this.fK(i),this.Tq-=this.gK,t=this.Jh;for(var s=!0,n=i,h=null;null!=t&&null!=n;)t.x>n.x?(s&&(this.Jh=n),s=n.next,n.next=t,null!=h&&(h.next=n),h=n,n=s):(s=t.next,t.next=n,null!=h&&(h.next=t),h=t,t=s),s=!1;null==this.Jh&&(this.Jh=i)}}},s.eK=function(t,i){return 0>t?0:t>i?i:t},s.prototype.ZP=function(){if(null!=this.Jh)for(var i=0,n=this.Jh,h=t.O.truncate(t.O.XG(n.x)),r=n.next;null!=r;r=r.next)if(i=this.kF?1^i:i+r.dir,r.x>n.x){var e=t.O.truncate(t.O.XG(r.x));0!=i&&(n=s.eK(h,this.oi),(h=s.eK(e,this.oi))>n&&nthis.Kf[1].x&&(i=this.Kf[0],this.Kf[0]=this.Kf[1],this.Kf[1]=i):s.AN(this.Kf,n,(function(t,i){return t==i?0:t.xi.x?1:0})),i=this.Kf[0],this.Kf[0]=null,h=i,r=1;rthis.Wh.size)break;var u=this;for(this.xe.Vd(0,this.xe.size,(function(t,i){return u.pM(t,i)})),n=0,h=this.xe.size;nn?1:hr?1:0)&&(h=(t=u[f*t+3])<(i=u[f*i+3])?-1:t==i?0:1),h})),this.Pq=this.g.Gd(),this.oe=new t.jp,this.RA=this.oe.Ph(0),this.oe.fn(n),r=0;ra;a++){for(u=l[a],f=s[a],c=a-1;0<=c&&l[c]>u;)l[c+1]=l[c],s[c+1]=s[c],c--;l[c+1]=u,s[c+1]=f}return l=0,0!=s[0]&&(l|=1),0!=s[1]&&(l|=2),0!=s[2]&&(l|=4),0!=s[3]&&(l|=8),(5==l||10==l)&&(t==i?t?(this.g.Bc(o,n),this.g.Cc(n,o),this.g.Bc(h,e),this.g.Cc(e,h)):(this.g.Cc(o,n),this.g.Bc(n,o),this.g.Cc(h,e),this.g.Bc(e,h)):t?(this.g.Cc(n,r),this.g.Bc(r,n),this.g.Cc(e,h),this.g.Bc(h,e)):(this.g.Bc(n,r),this.g.Cc(r,n),this.g.Bc(e,h),this.g.Cc(h,e)),!0)},i.prototype.tD=function(t,i,s,n,h,r){this.MY?this.VM():this.UM(t,i,s,n,h,r)},i.prototype.VM=function(){throw t.i.fa("not implemented.")},i.prototype.UM=function(t,i,s,n,h,r){if(t!=i)t?(this.g.Bc(s,h),this.g.Cc(h,s),this.g.Bc(r,n),this.g.Cc(n,r),this.vn(h,s),this.ui(h,!0),this.g.mi(h,!0),this.bk(s),this.vn(r,n),this.ui(r,!0),this.g.mi(r,!1)):(this.g.Bc(h,s),this.g.Cc(s,h),this.g.Bc(n,r),this.g.Cc(r,n),this.vn(h,s),this.ui(h,!0),this.g.mi(h,!1),this.bk(s),this.vn(r,n),this.ui(r,!0),this.g.mi(r,!0)),this.bk(n);else{var e=t?s:n,o=i?h:r;for(t=t?n:s,i=i?r:h,h=!1,this.g.Bc(e,o),this.g.Bc(o,e),this.g.Cc(t,i),this.g.Cc(i,t),r=i;r!=o;)s=this.g.Ma(r),n=this.g.U(r),this.g.Cc(r,n),this.g.Bc(r,s),h=h||r==e,r=n;h||(s=this.g.Ma(o),n=this.g.U(o),this.g.Cc(o,n),this.g.Bc(o,s)),this.vn(o,e),this.ui(o,!0),this.g.mi(o,!1),this.bk(e),this.vn(i,t),this.ui(i,!0),this.g.mi(i,!1),this.bk(t)}},i.prototype.cD=function(){for(var t=!1,i=this.g.Ob(this.X);-1!=i;){for(var s=this.g.Xa(i),n=0,h=this.g.Ja(i);nthis.g.Ja(i)){for(t=this.g.Xa(i),n=0,h=this.g.Ja(i);n=s)throw t.i.N("Invalid or unsupported wkid: "+s);var n=new i;return n.dg=s,n},i.qP=function(s){if(null==s||0==s.length)throw t.i.N("Cannot create SpatialReference from null or empty text.");var n=new i;return n.wh=s,n},i.prototype.Nb=function(t){return this==t||null!=t&&this.constructor==t.constructor&&this.dg==t.dg&&(0!=this.dg||this.wh===t.wh)},i.prototype.toString=function(){return"[ tol: "+this.Kn()+"; wkid: "+this.Ec()+"; wkt: "+this.Bz()+"]"},i.prototype.cc=function(){if(""!==this.pp)return this.pp;var t=this.toString();if(Array.prototype.reduce)return this.pp="S"+t.split("").reduce((function(t,i){return(t=(t<<5)-t+i.charCodeAt(0))&t}),0);var i=0;if(0===t.length)return"";for(var s=0;s=i.length)throw t.i.N();var n=null;try{n=t.NC.fromString(i)}catch(t){n=null}return null==n?null:s.bD(n,!0)},s.prototype.by=function(t){this.Kd=t,this.Eo=this.Kd.Hd()},s.prototype.gy=function(t){this.KH=t,this.ST=null!=this.KH?this.KH.Eo:null},s.prototype.Wc=function(){return 0!=this.Sb()&&3!=this.Sb()&&this.Kd.Wc()},s.prototype.IG=function(){return 0!=this.Sb()&&(3==this.Sb()?this.Ji.fk().Wc():this.Kd.Wc())},s.prototype.eh=function(){return null!=this.Kd?this.Kd.Ue:null},s.prototype.pm=function(){return this.Kd.pm()},s.prototype.bf=function(){return this.Kd.bf()},s.prototype.hh=function(){return null!=this.Kd?this.Kd.sw:NaN},s.prototype.Up=function(){return this.Kd.Up()},s.prototype.Wr=function(){return this.Kd.Wr()},s.prototype.kk=function(){return this.Kd.kk()},s.prototype.kS=function(i){return t.OC.Py(this.Kd,i.Kd)},s.prototype.ml=function(){return this.Kd.ml()},s.prototype.Vr=function(){return this.Kd.Vr()},s.prototype.zi=function(){return 3==this.Sb()?this.Ji.fk().zi():this.Kd.zi()},s.prototype.gh=function(){if(!this.Wc())throw t.i.N("!isPannable()");var i=new t.l;return this.Kd.gh(i),i},s.prototype.Oe=function(){if(!this.Wc())throw t.i.N("!isPannable()");return this.Kd.so},s.prototype.HR=function(){if(!this.Wc())throw t.i.N("!isPannable()");var i=new t.l;return this.Kd.GR(i),i},s.prototype.pv=function(){if(!this.Wc())throw t.i.N("!isPannable()");return this.Kd.pv()},s.prototype.ov=function(){if(!this.Wc())throw t.i.N("!isPannable()");return this.Kd.ov()},s.prototype.Xr=function(){return null!=this.Ji?this.Ji.fk().Xr():this.Kd.Xr()},s.prototype.PQ=function(){return this.Kd.hv()},s.prototype.Qp=function(){return this.Eo.getUnitFactor()},s.prototype.vz=function(t){return this.Hq.vz(t)},s.prototype.sc=function(){var i=this.Sb();if(1==i)return this;if(3==i)return this.Ji.fk().sc();if(0==i)throw t.i.fa("invalid call");if(4===i)throw t.i.fa("invalid call");if(null!==this.jw)return this.jw;if(null==(i=this.eh().getGeogcs()))throw t.i.Qa();return this.jw=s.bF(i,this.Hq.VF())},s.bF=function(i,n){if(null==i)throw t.i.N("null pointer.");var h=new s;return i=s.mu(i,!0),h.Hq.Xx(i,null,n),h.by(i),h.gy(null),h.dg=i.$r(),h},s.prototype.Sb=function(){var i=this.eh();if(null!=i)switch(i.getType()){case t.Sc.PE_TYPE_GEOGCS:return 1;case t.Sc.PE_TYPE_PROJCS:return 2}return 4},s.prototype.hv=function(){return this.Kd.hv()},s.mu=function(i,n){var h=i.getCode();if(0>=h&&0<(h=t.pf.getCode(i))){if(null==(i=t.pf.coordsys(h)))throw t.i.N("Text to wkid mapping had failed: "+h);return s.mu(i,n)}return n&&0=h?i:t.pf.coordsys(h),i=new t.OC(i),s.lK[n]=i,0=i)throw t.i.N("Invalid or unsupported wkid: "+i);var n=s.qx[i];if(null!=n)return n;if(null==(n=t.pf.coordsys(i)))throw t.i.N("Invalid or unsupported wkid: "+i);return(n=s.mu(n,!1)).$r()!=i&&(s.qx[i]=n),n},s.kM=function(i){if(null==i||void 0===i||0==i.length)throw t.i.N("Cannot create SpatialReference from null or empty text.");var n=null;try{n=t.pf.fromString(t.Sc.PE_TYPE_COORDSYS,i)}catch(i){throw t.i.N("Cannot create SpatialReference from text. "+i.message)}if(null===n)throw t.i.N("Cannot create SpatialReference from text. ");return s.mu(n,!0)},s.bD=function(i,n){var h,r=i.getCode();if(0>=r&&0<(r=t.pf.getCode(i))){if(null===(r=t.pf.vertcs(r)))throw t.i.N();return s.bD(r,n)}if(n&&0=r||(h=t.pf.vertcs(r)),null===h)throw t.i.N();return h=new t.PL(h),s.mK[i]=h,0s&&(this.Pj=s/(h-this.Fm)),n=this.Gm+n,(r=t.O.truncate((n-this.Gm)*this.Pj))>s&&(this.Pj=s/(n-this.Gm))}},s.prototype.aC=function(t){switch(t){case 0:this.Ik=void 0;case 1:this.Mq=void 0;case 2:this.Lq=void 0}},s.prototype.Kn=function(t){switch(t){case 0:return this.Ik;case 1:return this.Mq;case 2:return this.Lq}return 0},s.prototype.vz=function(t){if(this.Rm==i.FloatingPoint)return 0;switch(t){case 0:return 1/this.Pj;case 1:case 2:return 1/this.Fo;default:return 0}},s.prototype.toString=function(){var t="SRPD [m_toleranceXY: "+this.Ik.toString();return(t=(t=(t=(t=(t=(t=(t=(t=(t=t+";m_falseX: "+this.Fm.toString())+";m_falseY: "+this.Gm.toString())+";m_unitsXY: "+this.Pj.toString())+";m_falseZ: "+this.sA.toString())+";m_unitsZ: "+this.Fo.toString())+";m_falseM: "+this.rA.toString())+";m_toleranceZ: "+this.Mq.toString())+";m_toleranceM: "+this.Lq.toString())+";m_precision: "+this.Rm.toString())+"] "},s}();t.ZL=n}(Q||(Q={})),function(t){function i(t,i){return 89.99999i&&(i=-89.99999),i*=.017453292519943,[111319.49079327169*t,3189068.5*Math.log((1+Math.sin(i))/(1-Math.sin(i)))]}function s(t,i,s){return t=t/6378137*57.29577951308232,s?[t,57.29577951308232*(1.5707963267948966-2*Math.atan(Math.exp(-1*i/6378137)))]:[t-360*Math.floor((t+180)/360),57.29577951308232*(1.5707963267948966-2*Math.atan(Math.exp(-1*i/6378137)))]}function n(i,s,n){var h=i.Of();if(33===i.getType())s=s(h.Lg(),h.ih()),h.Cb(s[0],s[1]);else if(197===i.getType()){var r=s(i.es(),i.gs(),n);s=s(i.ds(),i.fs(),n),h.K(r[0],r[1],s[0],s[1])}else for(r=new t.h,i=0;is&&(s=637.100877141506);for(var n,h=[],r=0;rthis.Hg&&this.Dz(t)},i.prototype.tx=function(t,i){t*=this.stride,i*=this.stride;for(var s=0;sthis.ns.va)return 1;s=i.na==i.la;var n=t.na==t.la;if(s||n){if(s&&n)return 0;if(i.na==t.na&&i.sa==t.sa)return s?1:-1;if(i.la==t.la&&i.pa==t.pa)return s?-1:1}return(s=i.Pe(this.yh,this.ms.oa))==(n=t.Pe(this.yh,this.ns.oa))&&((n=.5*((s=Math.min(i.la,t.la))+this.yh))==this.yh&&(n=s),s=i.Pe(n,this.ms.oa),n=t.Pe(n,this.ns.oa)),sn?1:0},i.prototype.aK=function(t){this.yh=t},i}(),h=function(){function i(i){this.ib=i,this.WH=new t.ig,this.Bf=new t.h,this.wA=new t.Nc}return i.prototype.kX=function(t){this.Bf.L(t)},i.prototype.compare=function(t,i){return this.ib.pB(t.ja(i),this.WH),t=this.WH.get(),this.wA.K(t.sa,t.pa),this.Bf.xthis.wA.va?1:(t=t.Pe(this.Bf.y,this.Bf.x),this.Bf.xt?1:0)},i}();i=function(){function i(){this.hH=this.Di=this.Gi=this.kA=this.Yn=this.ye=this.Kc=this.jh=this.ge=null,this.Go=this.xg=-1,this.gH=!0,this.pA=!1,this.lA=NaN,this.Ni=new t.Md,this.bO=2147483647,this.aO=t.O.truncate(-2147483648),this.cg=this.ae=this.Hl=this.Cq=this.Cm=this.Bq=this.Os=this.Re=-1,this.wa=0}return i.prototype.yy=function(t){this.lA=t},i.prototype.Ym=function(){null==this.ge&&(this.ge=new t.$c(8));var i=this.ge.Ce();return this.ge.S(i,1,0),i},i.prototype.vU=function(){null==this.Kc&&(this.Kc=new t.$c(8));var i=this.Kc.Ce();this.Kc.S(i,2,0),this.Kc.S(i,3,0);var s=this.Kc.Ce();return this.Kc.S(s,2,0),this.Kc.S(s,3,0),this.JJ(i,s),this.JJ(s,i),i},i.prototype.mI=function(){null==this.ye&&(this.ye=new t.$c(8));var i=this.ye.Ce();return this.ye.S(i,2,0),i},i.prototype.TW=function(t,i){this.ge.S(t,7,i)},i.prototype.mn=function(t,i){this.ge.S(t,2,i)},i.prototype.SW=function(t,i){this.ge.S(t,1,i)},i.prototype.lX=function(t,i){this.ge.S(t,3,i)},i.prototype.iX=function(t,i){this.ge.S(t,4,i)},i.prototype.cr=function(t,i){this.ge.S(t,5,i)},i.prototype.eR=function(t){return this.ge.T(t,5)},i.prototype.RW=function(t,i){this.ge.S(t,6,i)},i.prototype.cN=function(t,i){this.RW(i,t)},i.prototype.IJ=function(t,i){this.Kc.S(t,1,i)},i.prototype.JJ=function(t,i){this.Kc.S(t,4,i)},i.prototype.Tl=function(t,i){this.Kc.S(t,5,i)},i.prototype.Sl=function(t,i){this.Kc.S(t,6,i)},i.prototype.$W=function(t,i){this.Kc.S(t,2,i)},i.prototype.$w=function(t,i){this.Kc.S(t,3,i)},i.prototype.LF=function(t){return this.Kc.T(t,3)},i.prototype.Gt=function(t,i){this.Kc.S(t,7,i)},i.prototype.EK=function(t,i){if(-1!=this.mm(t))for(i=i?-1:t,t=this.mm(t);-1!=t;t=this.js(t))this.g.Ra(this.tj(t),this.Cq,i)},i.prototype.yx=function(t,i){-1!=t&&(this.EK(t,i),this.EK(this.xa(t),i))},i.prototype.Dt=function(t,i){this.ye.S(t,1,i)},i.prototype.Vg=function(t,i){this.ye.S(t,2,i)},i.prototype.jn=function(t,i){this.ye.S(t,3,i),this.NW(t,this.dR(i)),this.MW(i,t)},i.prototype.MW=function(t,i){this.ye.S(t,4,i)},i.prototype.NW=function(t,i){this.ye.S(t,5,i)},i.prototype.DJ=function(t,i){this.ye.S(t,6,i)},i.prototype.BJ=function(t,i){this.ye.S(t,7,i)},i.prototype.AJ=function(t,i){this.Yn.write(t,i)},i.prototype.CJ=function(t,i){this.kA.write(t,i)},i.prototype.kY=function(i){var s=0,n=0,h=this.AF(i),r=new t.h,e=new t.h,o=new t.h;this.Yr(h,r),e.L(r);var a=h;do{this.lm(a,o),n+=t.h.tb(e,o),this.$e(this.xa(a))!=i&&(s+=(o.x-r.x-(e.x-r.x))*(o.y-r.y+(e.y-r.y))*.5),e.L(o),a=this.jc(a)}while(a!=h);this.Yn.write(i,s),this.kA.write(i,n)},i.prototype.PU=function(i,s){var r=new n(this),e=new t.Yj;e.De(t.O.truncate(this.wa/2)),e.Vo(r);for(var o=new t.ia(0),a=this.$g(),u=null,f=0,c=new t.h,l=this.Re;-1!=l;l=this.Rf(l)){if(0==(255&++f)&&null!=s&&!s.progress(-1,-1))throw t.i.WC();var p=this.Me(l);if(-1!=p){if(o.Bh(0),!this.gY(e,a,o,p)){this.D(l,c),r.aK(c.y);var v=p;do{var y=this.Ab(v,a);-1!=y&&(e.vd(y,-1),this.Kb(v,a,-2)),v=this.jc(this.xa(v))}while(p!=v);v=p;do{-1==(y=this.Ab(v,a))&&(y=e.addElement(v,-1),o.add(y)),v=this.jc(this.xa(v))}while(p!=v)}for(p=o.size-1;0<=p;p--)y=o.get(p),v=e.ja(y),this.Kb(this.xa(v),a,y),this.OU(e,y,i)}else-1==this.cz(l)&&(null==u&&(u=new h(this)),this.D(l,c),u.kX(c),v=e.IW(u),p=this.Hl,-1!=v&&(y=e.ja(v),this.$e(y)==this.$e(this.xa(y))&&(y=this.OF(e,v)),-1!=y&&(p=this.$e(y))),this.cN(p,l))}this.Jg(a)},i.prototype.OU=function(t,i,s){var n=t.ja(i),h=this.$e(n);if(-1==this.Gn(h)){var r=this.OF(t,i),e=this.xa(n),o=this.$e(e);this.Kp(h),this.Kp(o);var a=this.Gn(h),u=this.Gn(o);if(-1==r&&-1==a&&(o==h?(this.jn(o,this.Hl),a=u=this.Hl):(-1==u&&(this.jn(o,this.Hl),u=this.Hl),this.jn(h,o),a=o)),-1!=r){var f=this.$e(r);-1==u&&(0>=this.Kp(f)?(u=this.Gn(f),this.jn(o,u)):(this.jn(o,f),u=f),o==h&&(a=u))}-1==a&&this.hY(h,o),0==s?this.jW(t,i,n,r,h,o):5==s?this.kW(t,i,n,e,h,o):4==s&&this.iW(n,r,h,o)}},i.prototype.jW=function(t,i,s,n,h,r){var e=this.hk(h);if(-1!=n){var o=this.hk(r),a=this.hk(this.$e(n));n=e&o&a,a^=a&this.dh(s),0!=(a|=n)&&(this.Vg(r,o|a),this.Vg(h,a|e),e=e||a)}for(i=t.lb(i);-1!=i&&(n=t.ja(i),s=this.$e(this.xa(n)),h=this.hk(s),r=this.dh(n),o=this.$e(n),n=h&(a=this.hk(o))&e,e^=e&r,0!=(e|=n));i=t.lb(i))this.Vg(s,h|e),this.Vg(o,a|e)},i.prototype.kW=function(i,s,n,h,r,e){if(r!=e){n=this.Ab(n,this.cg),n+=this.Ab(h,this.cg),h=0;var o=new t.ia(0),a=new t.ia(0);a.add(0);for(var u=i.rc(-1);u!=s;u=i.lb(u)){var f=i.ja(u),c=this.xa(f),l=this.$e(f),p=this.$e(c);if(l!=p){if(f=this.Ab(f,this.cg),h+=f+=this.Ab(c,this.cg),c=!1,0!=o.size&&o.Fc()==p&&(a.If(),o.If(),c=!0),-1==this.Gn(p))throw t.i.Qa();c&&this.Gn(p)==l||(a.add(h),o.add(l))}}h+=n,0!=o.size&&o.Fc()==e&&(a.If(),o.If()),0!=h?0==a.Fc()&&(i=this.g.ld,i=this.La(i),this.Vg(r,i)):0!=a.Fc()&&(i=this.g.ld,i=this.La(i),this.Vg(r,i))}},i.prototype.iW=function(t,i,s,n){var h=this.La(this.g.ld);if(-1==i)this.Vg(n,this.Go),0!=(1&(t=this.Ab(t,this.xg)))?this.Vg(s,h):this.Vg(s,this.Go);else{var r=this.hk(n);0==r?(r=this.hk(this.$e(i)),this.Vg(n,r),0!=(1&(t=this.Ab(t,this.xg)))?this.Vg(s,r==h?this.Go:h):this.Vg(s,r)):0!=(1&(t=this.Ab(t,this.xg)))?this.Vg(s,r==h?this.Go:h):this.Vg(s,r)}},i.prototype.gY=function(t,i,s,n){var h=n,r=-1,e=-1,o=0;do{if(2==o)return!1;var a=this.Ab(h,i);if(-1!=a){if(-1!=r)return!1;r=a}else{if(-1!=e)return!1;e=h}o++,h=this.jc(this.xa(h))}while(n!=h);return-1!=e&&-1!=r&&(this.Kb(t.ja(r),i,-2),t.Sj(r,e),s.add(r),!0)},i.prototype.hY=function(t,i){var s=this.Kp(t);if(0!=s){var n=this.Kp(i);(0n||0>s&&0f.compare(r)?u=1:e=-1,this.Kb(l,this.ae,0),this.Kb(c,this.ae,0),this.Kb(c,this.cg,u),this.Kb(l,this.cg,e)):7==i?(this.Kb(l,this.ae,this.Go),this.Kb(c,this.ae,1736==a?o:0)):4==i&&(this.Kb(l,this.ae,0),this.Kb(c,this.ae,0),this.Kb(c,this.xg,1),this.Kb(l,this.xg,1)),a=1736==a?this.aO:0,this.$w(c,o|a),this.$w(l,o|a)}}}}},i.prototype.VT=function(t,i){var s=this.mm(i);if(-1!=s){var n=this.mm(t);this.jh.S(s,1,n),this.Gt(t,s),this.Gt(i,-1)}t=this.xa(t),i=this.xa(i),-1!=(s=this.mm(i))&&(n=this.mm(t),this.jh.S(s,1,n),this.Gt(t,s),this.Gt(i,-1))},i.prototype.IX=function(i){function s(t,i){return h.HO(t,i)}var n=new t.ia(0);n.Jb(10);for(var h=this,r=this.Re;-1!=r;r=this.Rf(r)){n.clear(!1);var e=this.Me(r);if(-1!=e){var o=e;do{n.add(o),o=this.jc(this.xa(o))}while(o!=e);if(1n.Db())return i.ki(i.Xe(n.Ia()),s,"&")}return o=new i,a=(e=new t.gd).Ib(i.Xe(s)),n=e.Ib(i.Xe(n)),o.Ft(e,h,r),r=o.Av(a,n),s=i.ki(e.Ne(r),s,"&"),t.aa.Hc(s.getType())&&(s.Ch(2,h),1736==s.getType()&&s.fm()),s},i.bW=function(i,s,n){if(i.B()||s.B())return i.Ia();var h=[null],r=[0],e=2==s.Db();if(1!=s.Db()&&2!=s.Db())throw t.i.Qa();return h[0]=i.D(),e?t.hd.sK(s,h,1,n,r):t.hd.tK(s,h,1,n,r),0==r[0]?i.Ia():i},i.prototype.LU=function(i,s,n,h,r){if(i.B())return i;var e=new t.gd;return i=e.Ib(i),this.Mk(e,i,s,n,h,r)},i.prototype.NU=function(i,s,n,h,r,e){if(r&&550!=i.ic(s)){var o=new t.RC;o.TX(i,n),o.Ng?(t.Tk.V(i,n,e,!0),r=!1):this.j.yy(n)}else t.Tk.V(i,n,e,!0),r=!1;if(h&&550!=i.ic(s)?this.j.wJ(i,s,e):this.j.vJ(i,s,e),this.j.pA)return this.j.Ug(),this.j=null,this.Mk(i,s,n,h,!1,e);if(this.j.yy(NaN),e=this.j.La(s),this.bq(e+1),this.Gj[e]=!0,1736==i.ic(s)||h&&550!=i.ic(s))return i.Yo(s,0),s=this.Ot(s,-1,-1),(i=i.Ne(s)).Yo(0),r?i.Ch(1,0):(i.Ch(2,n),i.fm()),i;if(1607==i.ic(s))return s=this.Pt(-1),i=i.Ne(s),r||i.Ch(2,n),i;if(550==i.ic(s))return s=this.mr(),i=i.Ne(s),r||i.Ch(2,n),i;throw t.i.Qa()},i.prototype.Mk=function(i,s,n,h,r,e){this.j=new t.iu;try{return this.NU(i,s,n,h,r,e)}finally{this.j.Ug()}},i.Mk=function(t,s,n,h,r){return(new i).LU(t,s,n,h,r)},i.prototype.MU=function(i,s,n,h){this.Mv=i,this.j=new t.iu,i=s.In(n);var r=s.ic(n);if(1!=i||550==r?this.j.vJ(s,n,h):this.j.wJ(s,n,h),!this.j.pA)if(this.j.yy(NaN),h=this.j.La(n),this.bq(h+1),this.Gj[h]=!0,1736==s.ic(n)||1==i&&550!=s.ic(n))s.Yo(n,0),h=this.Ot(n,-1,-1),s.hC(h,n),s.BB(h);else if(1607==s.ic(n))h=this.Pt(-1),s.hC(h,n),s.BB(h);else{if(550!=s.ic(n))throw t.i.fa("internal error");h=this.mr(),s.hC(h,n),s.BB(h)}},i.prototype.im=function(i,s){var n=t.aa.tf(this.j.g.ic(i)),h=t.aa.tf(this.j.g.ic(s));if(n>h)return i;var r=this.j.La(i),e=this.j.La(s);if(this.bq(1+(r|e)),this.Gj[this.j.La(i)]=!0,2==n&&2==h)return this.Ot(i,s,-1);if(1==n&&2==h||1==n&&1==h)return this.Pt(-1);if(0==n)return this.mr();throw t.i.Qa()},i.prototype.Av=function(i,s){var n=t.aa.tf(this.j.g.ic(i)),h=t.aa.tf(this.j.g.ic(s)),r=this.j.La(i),e=this.j.La(s);if(this.bq(1+(r|e)),this.Gj[this.j.La(i)|this.j.La(s)]=!0,r=-1,1n.Db())return i.ki(i.Xe(s),s,"-");var e=new t.l;s.A(e);var o=new t.l;if(n.A(o),!e.isIntersecting(o))return i.ki(i.Xe(s),s,"-");var a=new t.l;return a.K(e),a.Zb(o),h=t.ta.Wd(h,a,!0),o=new i,a=(e=new t.gd).Ib(i.Xe(s)),n=e.Ib(i.Xe(n)),o.Ft(e,h,r),r=o.im(a,n),r=e.Ne(r),s=i.ki(r,s,"-"),t.aa.Hc(s.getType())&&(s.Ch(2,h),1736==s.getType()&&s.fm()),s},i.VP=function(s,n,h){if(2>s.length)throw t.i.N("not enough geometries to dissolve");for(var r=0,e=0,o=s.length;ec?i.Xe(s[l]):(s=2==r,n=t.ta.Wd(0==r?n:null,a,!0),(new i).Mk(u,f,n,s,!0,h))},i.Pz=function(s,n,h,r){var e=[null,null,null],o=new t.l;s.A(o);var a=new t.l;n.A(a);var u=new t.l;if(u.K(o),u.Zb(a),h=t.ta.Wd(h,u,!0),(u=new t.l).K(a),a=t.ta.Er(h),u.W(a,a),!o.isIntersecting(u)){if(s.Db()<=n.Db())return e[(s=i.ki(i.Xe(s.Ia()),s,"&")).Db()]=s,e;if(s.Db()>n.Db())return e[(s=i.ki(i.Xe(n.Ia()),s,"&")).Db()]=s,e}for(a=new i,u=(o=new t.gd).Ib(i.Xe(s)),n=o.Ib(i.Xe(n)),a.Ft(o,h,r),r=a.Pz(u,n),n=0;nn.Db())return i.ki(i.Xe(s),s,"^");if(s.Db()n;n++)s[n]=new t.h;i.nB(s),this.fY(s,s),i.Zw(s,4)}},i.prototype.fY=function(i,s){for(var n=0;n(s=.5*s.Sk())?Math.sqrt(h):Math.sqrt(s))},i.prototype.RB=function(){this.bb=1,this.jb=this.Gb=this.eb=0,this.ab=1,this.Lb=0},i.prototype.isIdentity=function(i){if(void 0!==i){var s=t.h.construct(0,1);return this.Eh(s,s),s.sub(t.h.construct(0,1)),!(s.Sk()>i*i)&&(s.ma(0,0),this.Eh(s,s),!(s.Sk()>i*i)&&(s.ma(1,0),this.Eh(s,s),s.sub(t.h.construct(1,0)),s.Sk()<=i*i))}return 1==this.bb&&1==this.ab&&0==this.eb&&0==this.Gb&&0==this.jb&&0==this.Lb},i.prototype.Bi=function(t){return Math.abs(this.bb*this.ab-this.jb*this.eb)<=2*t*(Math.abs(this.bb*this.ab)+Math.abs(this.jb*this.eb))},i.prototype.gg=function(t,i){this.bb=1,this.eb=0,this.Gb=t,this.jb=0,this.ab=1,this.Lb=i},i.prototype.setScale=function(t,i){void 0!==i?(this.bb=t,this.jb=this.Gb=this.eb=0,this.ab=i,this.Lb=0):this.setScale(t,t)},i.prototype.$B=function(){this.bb=0,this.eb=1,this.Gb=0,this.jb=1,this.Lb=this.ab=0},i.prototype.setRotate=function(t){this.pX(Math.cos(t),Math.sin(t))},i.prototype.pX=function(t,i){this.bb=t,this.eb=-i,this.Gb=0,this.jb=i,this.ab=t,this.Lb=0},i.prototype.shift=function(t,i){this.Gb+=t,this.Lb+=i},i.prototype.scale=function(t,i){this.bb*=t,this.eb*=t,this.Gb*=t,this.jb*=i,this.ab*=i,this.Lb*=i},i.prototype.flipX=function(t,i){this.bb=-this.bb,this.eb=-this.eb,this.Gb=t+i-this.Gb},i.prototype.flipY=function(t,i){this.jb=-this.jb,this.ab=-this.ab,this.Lb=t+i-this.Lb},i.prototype.rotate=function(t){var s=new i;s.setRotate(t),this.multiply(s)},i.prototype.inverse=function(t){if(void 0!==t){var i=this.bb*this.ab-this.eb*this.jb;0==i?t.lx():(i=1/i,t.Gb=(this.eb*this.Lb-this.Gb*this.ab)*i,t.Lb=(this.Gb*this.jb-this.bb*this.Lb)*i,t.bb=this.ab*i,t.eb=-this.eb*i,t.jb=-this.jb*i,t.ab=this.bb*i)}else this.inverse(this)},i}();t.Dd=i}(Q||(Q={})),function(t){var i=function(){function i(){}return i.prototype.lx=function(){this.hg=this.Lb=this.Gb=this.He=this.Fe=this.Ee=this.Ge=this.ab=this.eb=this.Ze=this.jb=this.bb=0},i.prototype.setScale=function(t,i,s){this.bb=t,this.eb=this.Ze=this.jb=0,this.ab=i,this.Fe=this.Ee=this.Ge=0,this.He=s,this.hg=this.Lb=this.Gb=0},i.prototype.setTranslate=function(t,i,s){this.bb=1,this.eb=this.Ze=this.jb=0,this.ab=1,this.Fe=this.Ee=this.Ge=0,this.He=1,this.Gb=t,this.Lb=i,this.hg=s},i.prototype.translate=function(t,i,s){this.Gb+=t,this.Lb+=i,this.hg+=s},i.prototype.mC=function(i){if(!i.B()){for(var s=new t.Nd[8],n=0;8>n;n++)s[n]=new t.Nd;i.nB(s),this.transform(s,8,s),i.Zw(s)}},i.prototype.transform=function(i,s,n){for(var h=0;hs;s++)t.uh[s]=-1;t.uh[t.bg[0]]=0}return t.jq=!0,t}return _(n,i),n.prototype.re=function(t){this.hasAttribute(t)||(this.uh[t]=0,this.jD())},n.prototype.removeAttribute=function(i){if(0==i)throw t.i.N("Position attribue cannot be removed");this.hasAttribute(i)&&(this.uh[i]=-1,this.jD())},n.prototype.reset=function(){this.bg[0]=0,this.Aa=1;for(var t=0;tt;t++)0<=this.uh[t]&&(this.bg[i]=t,this.uh[t]=i,i++,this.Aa++);this.jq=!0},n.prototype.cc=function(){return this.jq&&(this.wl=this.An(),this.jq=!1),this.wl},n.prototype.Nb=function(t){if(null==t)return!1;if(t==this)return!0;if(!(t instanceof n)||t.Aa!=this.Aa)return!1;for(var i=0;ih;h++)!t.hasAttribute(h)&&i.hasAttribute(h)&&(null==s&&(s=new n(t)),s.re(h));return null!=s?s.EF():t},n}(t.ra);t.ee=i;var s=function(){function t(){this.map=[];var t=new i;this.add(t),(t=new i).re(1),this.add(t)}return t.kz=function(){return t.bL},t.prototype.$R=function(){return t.ft},t.prototype.add=function(i){var s=i.cc();if(null!=t.ft&&t.ft.cc()==s&&i.GG(t.ft))return t.ft;if(null!=t.Dw&&t.Dw.cc()==s&&i.GG(t.Dw))return t.Dw;var n=null;return void 0!==this.map[s]&&(n=this.map[s]),null==n&&(1==(n=i.tM()).Aa?t.ft=n:2==n.Aa&&1==n.kd(1)?t.Dw=n:this.map[s]=n),n},t.bL=new t,t}()}(Q||(Q={}));var rt={feet:9002,kilometers:9036,meters:9001,miles:9093,"nautical-miles":9030,yards:9096},et={acres:109402,ares:109463,hectares:109401,"square-feet":109405,"square-kilometers":109414,"square-meters":109404,"square-miles":109439,"square-yards":109442},ot=new(function(){function t(){this.RM=50,this.np=new Map,this.gj=[]}return t.prototype.clear=function(){this.gj.length=0,this.np.clear()},t.prototype.delete=function(t){return!!this.np.delete(t)&&(this.gj.splice(this.gj.indexOf(t),1),!0)},t.prototype.get=function(t){var i=this.np.get(t);if(void 0!==i)return this.gj[0]!==t&&(this.gj.splice(this.gj.indexOf(t),1),this.gj.unshift(t)),i},t.prototype.has=function(t){return this.np.has(t)},t.prototype.set=function(t,i){return void 0!==this.get(t)&&this.delete(t),this.gj.unshift(t),this.np.set(t,i),this.oM(),this},t.prototype.oM=function(){for(;this.gj.length&&this.gj.length>this.RM;){var t=this.gj.pop();this.np.delete(t)}},t}()),at=((Y={}).convertJSONToGeometry=function(t){return Q.$b.fP(t)},Y.hasM=function(t){return t.hasAttribute(Q.Ih.M)},Y.hasZ=function(t){return t.hasAttribute(Q.Ih.Z)},Y.getPointX=function(t){return t.Lg()},Y.getPointY=function(t){return t.ih()},Y.getPointZ=function(t){return t.bS()},Y.getPointM=function(t){return t.zR()},Y.getXMin=function(t){return t.es()},Y.getYMin=function(t){return t.gs()},Y.getXMax=function(t){return t.ds()},Y.getYMax=function(t){return t.fs()},Y.getZExtent=function(t){return t.Tg(Q.Ih.Z,0)},Y.getMExtent=function(t){return t.Tg(Q.Ih.M,0)},Y.exportPaths=function(t){var i=[],s=t.da(),n=null,h=null,r=t.hasAttribute(Q.Ih.Z),e=t.hasAttribute(Q.Ih.M);r&&(n=t.ub(Q.Ih.Z)),e&&(h=t.ub(Q.Ih.M));for(var o=new Q.h,a=0;an[i]})}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}({__proto__:null,default:e},[r])}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9091.ac0af13aa42a28cf4f1b.js b/docs/sentinel1-explorer/9091.ac0af13aa42a28cf4f1b.js new file mode 100644 index 00000000..8c1679c4 --- /dev/null +++ b/docs/sentinel1-explorer/9091.ac0af13aa42a28cf4f1b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9091],{22445:function(e,t,r){r.d(t,{r:function(){return n}});class n{constructor(){this._outer=new Map}clear(){this._outer.clear()}get empty(){return 0===this._outer.size}get(e,t){return this._outer.get(e)?.get(t)}set(e,t,r){const n=this._outer.get(e);n?n.set(t,r):this._outer.set(e,new Map([[t,r]]))}delete(e,t){const r=this._outer.get(e);r&&(r.delete(t),0===r.size&&this._outer.delete(e))}forEach(e){this._outer.forEach(((t,r)=>e(t,r)))}}},19091:function(e,t,r){r.r(t),r.d(t,{BufferObject:function(){return n.f},FramebufferObject:function(){return i.X},Program:function(){return s.$},ProgramCache:function(){return o.G},Renderbuffer:function(){return u.r},ShaderCompiler:function(){return c.B},Texture:function(){return f.x},VertexArrayObject:function(){return a.U},createContext:function(){return _.k},createProgram:function(){return l.H},glslifyDefineMap:function(){return h.K}});var n=r(78951),i=r(18567),s=r(69609),o=r(18636),u=r(37165),c=r(78311),f=r(71449),a=r(29620),h=r(73353),l=r(84172),_=r(8396)},18636:function(e,t,r){r.d(t,{G:function(){return s}});var n=r(22445),i=r(69609);class s{constructor(e){this._rctx=e,this._store=new n.r}dispose(){this._store.forEach((e=>e.forEach((e=>e.dispose())))),this._store.clear()}acquire(e,t,r,n){const s=this._store.get(e,t);if(null!=s)return s.ref(),s;const o=new i.$(this._rctx,e,t,r,n);return o.ref(),this._store.set(e,t,o),o}get test(){let e=0;return this._store.forEach((t=>t.forEach((t=>e+=t.hasGLName?2:1)))),{cachedWebGLProgramObjects:e}}}},84172:function(e,t,r){r.d(t,{H:function(){return i}});var n=r(69609);function i(e,t,r=""){return new n.$(e,r+t.shaders.vertexShader,r+t.shaders.fragmentShader,t.attributes)}},78311:function(e,t,r){r.d(t,{B:function(){return n}});class n{constructor(e){this._readFile=e}resolveIncludes(e){return this._resolve(e)}_resolve(e,t=new Map){if(t.has(e))return t.get(e);const r=this._read(e);if(!r)throw new Error(`cannot find shader file ${e}`);const n=/^[^\S\n]*#include\s+<(\S+)>[^\S\n]?/gm;let i=n.exec(r);const s=[];for(;null!=i;)s.push({path:i[1],start:i.index,length:i[0].length}),i=n.exec(r);let o=0,u="";return s.forEach((e=>{u+=r.slice(o,e.start),u+=t.has(e.path)?"":this._resolve(e.path,t),o=e.start+e.length})),u+=r.slice(o),t.set(e,u),u}_read(e){return this._readFile(e)}}},29620:function(e,t,r){r.d(t,{U:function(){return f}});var n=r(13802),i=r(61681),s=r(86098),o=r(91907),u=r(62486);const c=()=>n.Z.getLogger("esri.views.webgl.VertexArrayObject");let f=class{constructor(e,t,r,n,i=null){this._context=e,this._locations=t,this._layout=r,this._buffers=n,this._indexBuffer=i,this._glName=null,this._initialized=!1}get glName(){return this._glName}get context(){return this._context}get vertexBuffers(){return this._buffers}get indexBuffer(){return this._indexBuffer}get byteSize(){return Object.keys(this._buffers).reduce(((e,t)=>e+this._buffers[t].usedMemory),null!=this._indexBuffer?this._indexBuffer.usedMemory:0)}get layout(){return this._layout}get locations(){return this._locations}get usedMemory(){return this.byteSize+(Object.keys(this._buffers).length+(this._indexBuffer?1:0))*s.ru}dispose(){if(this._context){this._context.getBoundVAO()===this&&this._context.bindVAO(null);for(const e in this._buffers)this._buffers[e]?.dispose(),delete this._buffers[e];this._indexBuffer=(0,i.M2)(this._indexBuffer),this.disposeVAOOnly()}else(this._glName||Object.getOwnPropertyNames(this._buffers).length>0)&&c().warn("Leaked WebGL VAO")}disposeVAOOnly(){this._glName&&(this._context.gl.deleteVertexArray(this._glName),this._glName=null,this._context.instanceCounter.decrement(o._g.VertexArrayObject,this)),this._context=null}initialize(){if(this._initialized)return;const{gl:e}=this._context,t=e.createVertexArray();e.bindVertexArray(t),this._bindLayout(),e.bindVertexArray(null),this._glName=t,this._context.instanceCounter.increment(o._g.VertexArrayObject,this),this._initialized=!0}bind(){this.initialize(),this._context.gl.bindVertexArray(this.glName)}_bindLayout(){const{_buffers:e,_layout:t,_indexBuffer:r}=this;e||c().error("Vertex buffer dictionary is empty!");const n=this._context.gl;for(const r in e){const n=e[r];n||c().error("Vertex buffer is uninitialized!");const i=t[r];i||c().error("Vertex element descriptor is empty!"),(0,u.XP)(this._context,this._locations,n,i)}null!=r&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,r.glName)}unbind(){this.initialize(),this._context.gl.bindVertexArray(null)}}},73353:function(e,t,r){function n(e){const{options:t,value:r}=e;return"number"==typeof t[r]}function i(e){let t="";for(const r in e){const i=e[r];if("boolean"==typeof i)i&&(t+=`#define ${r}\n`);else if("number"==typeof i)t+=`#define ${r} ${i.toFixed()}\n`;else if("object"==typeof i)if(n(i)){const{value:e,options:n,namespace:s}=i,o=s?`${s}_`:"";for(const e in n)t+=`#define ${o}${e} ${n[e].toFixed()}\n`;t+=`#define ${r} ${o}${e}\n`}else{const e=i.options;let n=0;for(const r in e)t+=`#define ${e[r]} ${(n++).toFixed()}\n`;t+=`#define ${r} ${e[i.value]}\n`}}return t}r.d(t,{K:function(){return i}})}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/910.cc1267b1eda2feb860ec.js b/docs/sentinel1-explorer/910.cc1267b1eda2feb860ec.js new file mode 100644 index 00000000..05d21b06 --- /dev/null +++ b/docs/sentinel1-explorer/910.cc1267b1eda2feb860ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[910,8705],{12348:function(e,t,s){s.d(t,{Z:function(){return r}});class r{constructor(e){this.size=0,this._start=0,this.maxSize=e,this._buffer=new Array(e)}get entries(){return this._buffer}enqueue(e){if(this.size===this.maxSize){const t=this._buffer[this._start];return this._buffer[this._start]=e,this._start=(this._start+1)%this.maxSize,t}return this._buffer[(this._start+this.size++)%this.maxSize]=e,null}dequeue(){if(0===this.size)return null;const e=this._buffer[this._start];return this._buffer[this._start]=null,this.size--,this._start=(this._start+1)%this.maxSize,e}peek(){return 0===this.size?null:this._buffer[this._start]}find(e){if(0===this.size)return null;for(const t of this._buffer)if(null!=t&&e(t))return t;return null}clear(e){let t=this.dequeue();for(;null!=t;)e&&e(t),t=this.dequeue()}}},66318:function(e,t,s){function r(e){return null!=a(e)||null!=o(e)}function i(e){return u.test(e)}function n(e){return a(e)??o(e)}function o(e){const t=new Date(e);return function(e,t){if(Number.isNaN(e.getTime()))return!1;let s=!0;if(l&&/\d+\W*$/.test(t)){const e=t.match(/[a-zA-Z]{2,}/);if(e){let t=!1,r=0;for(;!t&&r<=e.length;)t=!c.test(e[r]),r++;s=!t}}return s}(t,e)?Number.isNaN(t.getTime())?null:t.getTime()-6e4*t.getTimezoneOffset():null}function a(e){const t=u.exec(e);if(!t?.groups)return null;const s=t.groups,r=+s.year,i=+s.month-1,n=+s.day,o=+(s.hours??"0"),a=+(s.minutes??"0"),c=+(s.seconds??"0");if(o>23)return null;if(a>59)return null;if(c>59)return null;const l=s.ms??"0",h=l?+l.padEnd(3,"0").substring(0,3):0;let d;if(s.isUTC||!s.offsetSign)d=Date.UTC(r,i,n,o,a,c,h);else{const e=+s.offsetHours,t=+s.offsetMinutes;d=6e4*("+"===s.offsetSign?-1:1)*(60*e+t)+Date.UTC(r,i,n,o,a,c,h)}return Number.isNaN(d)?null:d}s.d(t,{mu:function(){return i},of:function(){return r},sG:function(){return n}});const u=/^(?:(?-?\d{4,})-(?\d{2})-(?\d{2}))(?:T(?\d{2}):(?\d{2}):(?\d{2})(?:\.(?\d+))?)?(?:(?Z)|(?:(?\+|-)(?\d{2}):(?\d{2})))?$/;const c=/^((jan(uary)?)|(feb(ruary)?)|(mar(ch)?)|(apr(il)?)|(may)|(jun(e)?)|(jul(y)?)|(aug(ust)?)|(sep(tember)?)|(oct(ober)?)|(nov(ember)?)|(dec(ember)?)|(am)|(pm)|(gmt)|(utc))$/i,l=!Number.isNaN(new Date("technology 10").getTime())},60814:function(e,t,s){s.d(t,{bU:function(){return v},fC:function(){return x},ir:function(){return p},zp:function(){return g}});s(39994);var r=s(19431),i=s(91772),n=s(89542),o=s(14685),a=s(14260),u=s(12065),c=s(15540),l=s(66069);const h=new Float64Array(2),d=new Float64Array(2),_="0123456789bcdefghjkmnpqrstuvwxyz",f=64;function p(e,t,s,r){const a=[e.xmin,e.ymin,e.xmax,e.ymax],h=n.Z.fromExtent(i.Z.fromBounds(a,r)),d=(0,l.iV)(h,r,o.Z.WGS84,{densificationStep:t*f});if(!d)return null;const _=(0,u.Uy)(new c.Z,d,!1,!1),p=_.coords.filter(((e,t)=>!(t%2))),y=_.coords.filter(((e,t)=>t%2)),m=Math.min(...p),b=Math.min(...y),w=Math.max(...p),I=Math.max(...y),v=g(m,b,s,o.Z.WGS84),S=g(w,I,s,o.Z.WGS84);return v&&S?{bounds:a,geohashBounds:{xLL:v[0],yLL:v[1],xTR:S[0],yTR:S[1]},level:s}:null}function g(e,t,s,i){if(i.isWebMercator){const i=(0,r.BV)(e/a.sv.radius),n=i-360*Math.floor((i+180)/360),o=[0,0];return S(o,0,(0,r.BV)(Math.PI/2-2*Math.atan(Math.exp(-t/a.sv.radius))),n,s),o}const n=(0,l.iV)({x:e,y:t},i,o.Z.WGS84);if(!n)return null;const u=[0,0];return S(u,0,n.y,n.x,s),u}function y(e){return _[e]}function m(e){return(e[0]+e[1])/2}function b(e,t,s){return e[0]=t,e[1]=s,e}function w(e,t){const s=m(e),r=t,i=!t;e[0]=i*e[0]+r*s,e[1]=i*s+r*e[1]}function I(e,t){const s=t>m(e);return w(e,s),s}function v(e,t){let s=-90,r=90,i=-180,n=180;for(let o=0;o>c,p=(_&e.geohashY)>>l;for(let e=h-1;e>=0;e--){const t=(i+n)/2,s=f&1<=0;e--){const t=(s+r)/2,i=p&1<s?1:0;n|=i<<29-(t+5*e),c=(1-i)*c+i*s,l=(1-i)*s+i*l}for(let t=0;t<5;t++){const r=(a+u)/2,i=s>r?1:0;o|=i<<29-(t+5*e),a=(1-i)*a+i*r,u=(1-i)*r+i*u}}e[2*t]=n,e[2*t+1]=o}function x(e,t,s){let r="";const i=b(h,-90,90),n=b(d,-180,180);for(let o=0;o=this._config.maxReconnectionAttempts?(o.Z.getLogger(this).error(new n.Z("websocket-connection","Exceeded maxReconnectionAttempts attempts. No further attempts will be made")),void this.destroy()):(o.Z.getLogger(this).error(new n.Z("websocket-connection",`Failed to connect. Attempting to reconnect in ${i}s`,r)),await(0,a.e4)(t),this._tryCreateWebSocket(e,Math.min(1.5*t,1e3*this._config.maxReconnectionInterval),s+1))}}_setWebSocketJSONParseHandler(e){e.onmessage=e=>{try{const t=JSON.parse(e.data);this._onMessage(t)}catch(e){return void o.Z.getLogger(this).error(new n.Z("websocket-connection","Failed to parse message, invalid JSON",{error:e}))}}}_createWebSocket(e){return new Promise(((t,s)=>{const r=new WebSocket(e);r.onopen=()=>{if(r.onopen=null,this.destroyed)return r.onclose=null,void r.close();r.onclose=e=>this._onClose(e),r.onerror=e=>this._onError(e),this._setWebSocketJSONParseHandler(r),t(r)},r.onclose=e=>{r.onopen=r.onclose=null,s(e)}}))}async _handshake(e=1e4){const t=this._websocket;if(null==t)return;const s=(0,a.hh)(),r=t.onmessage,{filter:i,outFields:u,spatialReference:c}=this._config;return s.timeout(e),t.onmessage=e=>{let a=null;try{a=JSON.parse(e.data)}catch(e){}a&&"object"==typeof a||(o.Z.getLogger(this).error(new n.Z("websocket-connection","Protocol violation. Handshake failed - malformed message",e.data)),s.reject(),this.destroy()),a.spatialReference?.wkid!==c?.wkid&&(o.Z.getLogger(this).error(new n.Z("websocket-connection",`Protocol violation. Handshake failed - expected wkid of ${c.wkid}`,e.data)),s.reject(),this.destroy()),"json"!==a.format&&(o.Z.getLogger(this).error(new n.Z("websocket-connection","Protocol violation. Handshake failed - format is not set",e.data)),s.reject(),this.destroy()),i&&a.filter!==i&&o.Z.getLogger(this).error(new n.Z("websocket-connection","Tried to set filter, but server doesn't support it")),u&&a.outFields!==u&&o.Z.getLogger(this).error(new n.Z("websocket-connection","Tried to set outFields, but server doesn't support it")),t.onmessage=r;for(const e of this._outstandingMessages)t.send(JSON.stringify(e));this._outstandingMessages=[],s.resolve()},t.send(JSON.stringify({filter:i,outFields:u,format:"json",spatialReference:{wkid:c.wkid}})),s.promise}_onMessage(e){if(this.onMessage(e),"type"in e)switch(e.type){case"features":case"featureResult":for(const t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}}_onError(e){const t="Encountered an error over WebSocket connection";this._set("errorString",t),o.Z.getLogger(this).error("websocket-connection",t)}_onClose(e){this._websocket=null,this.notifyChange("connectionStatus"),1e3!==e.code&&o.Z.getLogger(this).error("websocket-connection",`WebSocket closed unexpectedly with error code ${e.code}`),this.destroyed||this._open()}};(0,r._)([(0,l.Cb)()],y.prototype,"connectionStatus",null),(0,r._)([(0,l.Cb)()],y.prototype,"errorString",void 0),y=(0,r._)([(0,c.j)("esri.layers.graphics.sources.connections.WebSocketConnection")],y);var m=s(28500),b=s(14136),w=s(53736),I=s(14685);const v={maxQueryDepth:5,maxRecordCountFactor:3};let S=class extends y{constructor(e){super({...v,...e}),this._buddyServicesQuery=null,this._relatedFeatures=null}async _open(){const e=await this._fetchServiceDefinition(this._config.source);e.timeInfo.trackIdField||o.Z.getLogger(this).warn("GeoEvent service was configured without a TrackIdField. This may result in certain functionality being disabled. The purgeOptions.maxObservations property will have no effect.");const t=this._fetchWebSocketUrl(e.streamUrls,this._config.spatialReference);this._buddyServicesQuery||(this._buddyServicesQuery=this._queryBuddyServices()),await this._buddyServicesQuery,await this._tryCreateWebSocket(t);const{filter:s,outFields:r}=this._config;this.destroyed||this._setFilter(s,r)}_onMessage(e){if("attributes"in e){let t;try{t=this._enrich(e),null!=this._featureZScaler&&this._featureZScaler(t.geometry)}catch(e){return void o.Z.getLogger(this).error(new n.Z("geoevent-connection","Failed to parse message",e))}this.onFeature(t)}else this.onMessage(e)}async _fetchServiceDefinition(e){const t={f:"json",...this._config.customParameters},s=(0,i.Z)(e.path,{query:t,responseType:"json"}),r=(await s).data;return this._serviceDefinition=r,r}_fetchWebSocketUrl(e,t){const s=e[0],{urls:r,token:i}=s,n=this._inferWebSocketBaseUrl(r);return(0,u.fl)(`${n}/subscribe`,{outSR:""+t.wkid,token:i})}_inferWebSocketBaseUrl(e){if(1===e.length)return e[0];for(const t of e)if(t.includes("wss"))return t;return o.Z.getLogger(this).error(new n.Z("geoevent-connection","Unable to infer WebSocket url",e)),null}async _setFilter(e,t){const s=this._websocket;if(null==s||null==e&&null==t)return;const r=JSON.stringify({filter:this._serializeFilter(e,t)});let i=!1;const u=(0,a.hh)();return s.onmessage=e=>{const t=JSON.parse(e.data);t.filter&&(t.error&&(o.Z.getLogger(this).error(new n.Z("geoevent-connection","Failed to set service filter",t.error)),this._set("errorString",`Could not set service filter - ${t.error}`),u.reject(t.error)),this._setWebSocketJSONParseHandler(s),i=!0,u.resolve())},s.send(r),setTimeout((()=>{i||(this.destroyed||this._websocket!==s||o.Z.getLogger(this).error(new n.Z("geoevent-connection","Server timed out when setting filter")),u.reject())}),1e4),u.promise}_serializeFilter(e,t){const s={};if(null==e&&null==t)return s;if(e?.geometry)try{const t=(0,w.im)(e.geometry);if("extent"!==t.type)throw new n.Z(`Expected extent but found type ${t.type}`);s.geometry=JSON.stringify(t.shiftCentralMeridian())}catch(e){o.Z.getLogger(this).error(new n.Z("geoevent-connection","Encountered an error when setting connection geometryDefinition",e))}return e?.where&&"1 = 1"!==e.where&&"1=1"!==e.where&&(s.where=e.where),null!=t&&(s.outFields=t.join(",")),s}_enrich(e){if(!this._relatedFeatures)return e;const t=this._serviceDefinition.relatedFeatures.joinField,s=e.attributes[t],r=this._relatedFeatures.get(s);if(!r)return o.Z.getLogger(this).warn("geoevent-connection","Feature join failed. Is the join field configured correctly?",e),e;const{attributes:i,geometry:a}=r;for(const t in i)e.attributes[t]=i[t];return a&&(e.geometry=a),e.geometry||e.centroid||o.Z.getLogger(this).error(new n.Z("geoevent-connection","Found malformed feature - no geometry found",e)),e}async _queryBuddyServices(){try{const{relatedFeatures:e,keepLatestArchive:t}=this._serviceDefinition,s=this._queryRelatedFeatures(e),r=this._queryArchive(t);await s;const i=await r;if(!i)return;for(const e of i.features)this.onFeature(this._enrich(e))}catch(e){o.Z.getLogger(this).error(new n.Z("geoevent-connection","Encountered an error when querying buddy services",{error:e}))}}async _queryRelatedFeatures(e){if(!e)return;const t=await this._queryBuddy(e.featuresUrl);this._addRelatedFeatures(t)}async _queryArchive(e){if(e)return this._queryBuddy(e.featuresUrl)}async _queryBuddy(e){const t=new((await Promise.resolve().then(s.bind(s,12926))).default)({url:e}),{capabilities:r}=await t.load(),i=r.query.supportsMaxRecordCountFactor,n=r.query.supportsPagination,o=r.query.supportsCentroid,a=this._config.maxRecordCountFactor,u=t.capabilities.query.maxRecordCount,c=i?u*a:u,l=new b.Z;if(l.outFields=this._config.outFields??["*"],l.where=this._config.filter?.where??"1=1",l.returnGeometry=!0,l.returnExceededLimitFeatures=!0,l.outSpatialReference=I.Z.fromJSON(this._config.spatialReference),o&&(l.returnCentroid=!0),i&&(l.maxRecordCountFactor=a),n)return l.num=c,t.destroy(),this._queryPages(e,l);const h=await(0,m.JT)(e,l,this._config.sourceSpatialReference);return t.destroy(),h.data}async _queryPages(e,t,s=[],r=0){t.start=null!=t.num?r*t.num:null;const{data:i}=await(0,m.JT)(e,t,this._config.sourceSpatialReference);return i.exceededTransferLimit&&r<(this._config.maxQueryDepth??0)?(i.features.forEach((e=>s.push(e))),this._queryPages(e,t,s,r+1)):(s.forEach((e=>i.features.push(e))),i)}_addRelatedFeatures(e){const t=new Map,s=e.features,r=this._serviceDefinition.relatedFeatures.joinField;for(const e of s){const s=e.attributes[r];t.set(s,e)}this._relatedFeatures=t}};S=(0,r._)([(0,c.j)("esri.layers.graphics.sources.connections.GeoEventConnection")],S);const x=S;let k=class extends f{constructor(e){super({}),this.connectionStatus="connected",this.errorString=null;const{geometryType:t,spatialReference:s,sourceSpatialReference:r}=e;this._featureZScaler=(0,h.k)(t,r,s)}normalizeCtorArgs(){return{}}updateCustomParameters(e){}sendMessageToSocket(e){}sendMessageToClient(e){if("type"in e)switch(e.type){case"features":case"featureResult":for(const t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}this.onMessage(e)}};function F(e,t){if(null==e&&null==t)return null;const s={};return null!=t&&(s.geometry=t),null!=e&&(s.where=e),s}function T(e,t,s,r,i,n,o,a,u){const c={source:e,sourceSpatialReference:t,spatialReference:s,geometryType:r,filter:F(i,n),maxReconnectionAttempts:o,maxReconnectionInterval:a,customParameters:u};return e?e.path.startsWith("wss://")||e.path.startsWith("ws://")?new y(c):new x(c):new k(c)}(0,r._)([(0,l.Cb)()],k.prototype,"connectionStatus",void 0),(0,r._)([(0,l.Cb)()],k.prototype,"errorString",void 0),k=(0,r._)([(0,c.j)("esri.layers.support.ClientSideConnection")],k)},61957:function(e,t,s){s.d(t,{O3:function(){return S},lG:function(){return k},my:function(){return x},q9:function(){return l}});var r=s(66318),i=s(70375),n=s(35925),o=s(59958),a=s(15540),u=s(14845);const c={LineString:"esriGeometryPolyline",MultiLineString:"esriGeometryPolyline",MultiPoint:"esriGeometryMultipoint",Point:"esriGeometryPoint",Polygon:"esriGeometryPolygon",MultiPolygon:"esriGeometryPolygon"};function l(e){return c[e]}function*h(e){switch(e.type){case"Feature":yield e;break;case"FeatureCollection":for(const t of e.features)t&&(yield t)}}function*d(e){if(e)switch(e.type){case"Point":yield e.coordinates;break;case"LineString":case"MultiPoint":yield*e.coordinates;break;case"MultiLineString":case"Polygon":for(const t of e.coordinates)yield*t;break;case"MultiPolygon":for(const t of e.coordinates)for(const e of t)yield*e}}function _(e){for(const t of e)if(t.length>2)return!0;return!1}function f(e){let t=0;for(let s=0;s=0;r--)I(e,t[r],s);e.lengths.push(t.length)}function I(e,t,s){const[r,i,n]=t;e.coords.push(r,i),s.hasZ&&e.coords.push(n||0)}function v(e){switch(typeof e){case"string":return(0,r.mu)(e)?"esriFieldTypeDate":"esriFieldTypeString";case"number":return"esriFieldTypeDouble";default:return"unknown"}}function S(e,t=4326){if(!e)throw new i.Z("geojson-layer:empty","GeoJSON data is empty");if("Feature"!==e.type&&"FeatureCollection"!==e.type)throw new i.Z("geojson-layer:unsupported-geojson-object","missing or not supported GeoJSON object type",{data:e});const{crs:s}=e;if(!s)return;const r="string"==typeof s?s:"name"===s.type?s.properties.name:"EPSG"===s.type?s.properties.code:null,o=(0,n.oR)({wkid:t})?new RegExp(".*(CRS84H?|4326)$","i"):new RegExp(`.*(${t})$`,"i");if(!r||!o.test(r))throw new i.Z("geojson:unsupported-crs","unsupported GeoJSON 'crs' member",{crs:s})}function x(e,t={}){const s=[],r=new Set,i=new Set;let n,o=!1,a=null,c=!1,{geometryType:f=null}=t,p=!1;for(const t of h(e)){const{geometry:e,properties:h,id:g}=t;if((!e||(f||(f=l(e.type)),l(e.type)===f))&&(o||(o=_(d(e))),c||(c=null!=g,c&&(n=typeof g,h&&(a=Object.keys(h).filter((e=>h[e]===g))))),h&&a&&c&&null!=g&&(a.length>1?a=a.filter((e=>h[e]===g)):1===a.length&&(a=h[a[0]]===g?a:[])),!p&&h)){let e=!0;for(const t in h){if(r.has(t))continue;const n=h[t];if(null==n){e=!1,i.add(t);continue}const o=v(n);if("unknown"===o){i.add(t);continue}i.delete(t),r.add(t);const a=(0,u.q6)(t);a&&s.push({name:a,alias:t,type:o})}p=e}}const g=(0,u.q6)(1===a?.length&&a[0]||null)??void 0;if(g)for(const e of s)if(e.name===g&&(0,u.H7)(e)){e.type="esriFieldTypeOID";break}return{fields:s,geometryType:f,hasZ:o,objectIdFieldName:g,objectIdFieldType:n,unknownFields:Array.from(i)}}function k(e,t){return Array.from(function*(e,t={}){const{geometryType:s,objectIdField:r}=t;for(const i of e){const{geometry:e,properties:n,id:u}=i;if(e&&l(e.type)!==s)continue;const c=n||{};let h;r&&(h=c[r],null==u||h||(c[r]=h=u));const d=new o.u_(e?g(new a.Z,e,t):null,c,null,h??void 0);yield d}}(h(e),t))}},40400:function(e,t,s){s.d(t,{Dm:function(){return l},Hq:function(){return h},MS:function(){return d},bU:function(){return a}});var r=s(39994),i=s(67134),n=s(10287),o=s(86094);function a(e){return{renderer:{type:"simple",symbol:"esriGeometryPoint"===e||"esriGeometryMultipoint"===e?o.I4:"esriGeometryPolyline"===e?o.ET:o.lF}}}const u=/^[_$a-zA-Z][_$a-zA-Z0-9]*$/;let c=1;function l(e,t){if((0,r.Z)("esri-csp-restrictions"))return()=>({[t]:null,...e});try{let s=`this.${t} = null;`;for(const t in e)s+=`this${u.test(t)?`.${t}`:`["${t}"]`} = ${JSON.stringify(e[t])};`;const r=new Function(`\n return class AttributesClass$${c++} {\n constructor() {\n ${s};\n }\n }\n `)();return()=>new r}catch(s){return()=>({[t]:null,...e})}}function h(e={}){return[{name:"New Feature",description:"",prototype:{attributes:(0,i.d9)(e)}}]}function d(e,t){return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:e},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:t,supportsDelete:t,supportsEditing:t,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:t,supportsExceedsLimitStatistics:!0,supportsAsyncConvert3D:!1},query:n.g,queryRelated:{supportsCount:!0,supportsOrderBy:!0,supportsPagination:!0,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsGeometryUpdate:t,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}},24366:function(e,t,s){s.d(t,{O0:function(){return d},av:function(){return u},b:function(){return g},d1:function(){return l},og:function(){return p}});var r=s(66318),i=s(35925),n=s(14845);class o{constructor(){this.code=null,this.description=null}}class a{constructor(e){this.error=new o,this.globalId=null,this.objectId=null,this.success=!1,this.uniqueId=null,this.error.description=e}}function u(e){return new a(e)}class c{constructor(e){this.globalId=null,this.success=!0,this.objectId=this.uniqueId=e}}function l(e){return new c(e)}const h=new Set;function d(e,t,s,r=!1){h.clear();for(const i in s){const o=e.get(i);if(!o)continue;const a=_(o,s[i]);if(h.add(o.name),o&&(r||o.editable)){const e=(0,n.Qc)(o,a);if(e)return u((0,n.vP)(e,o,a));t[o.name]=a}}for(const t of e?.requiredFields??[])if(!h.has(t.name))return u(`missing required field "${t.name}"`);return null}function _(e,t){let s=t;return(0,n.H7)(e)&&"string"==typeof t?s=parseFloat(t):(0,n.qN)(e)&&null!=t&&"string"!=typeof t?s=String(t):(0,n.y2)(e)&&"string"==typeof t&&(s=(0,r.sG)(t)),(0,n.Pz)(s)}let f;function p(e,t){if(!e||!(0,i.JY)(t))return e;if("rings"in e||"paths"in e){if(null==f)throw new TypeError("geometry engine not loaded");return f.simplify(t,e)}return e}async function g(e,t){!(0,i.JY)(e)||"esriGeometryPolygon"!==t&&"esriGeometryPolyline"!==t||await async function(){return null==f&&(f=await Promise.all([s.e(9067),s.e(3296)]).then(s.bind(s,8923))),f}()}},53237:function(e,t,s){s.d(t,{$9:function(){return v},G4:function(){return T},Lu:function(){return I},WW:function(){return Z},d:function(){return O},eS:function(){return M},gp:function(){return C},j:function(){return F},w9:function(){return k},yN:function(){return q}});s(91957);var r=s(66341),i=s(70375),n=s(13802),o=s(3466),a=s(35925),u=s(39536),c=s(12065),l=s(61619),h=s(61957),d=s(40400),_=s(24366),f=s(28790),p=s(86349),g=s(72559),y=s(14685);const m=()=>n.Z.getLogger("esri.layers.ogc.ogcFeatureUtils"),b="startindex",w=new Set([b,"offset"]),I="http://www.opengis.net/def/crs/",v=`${I}OGC/1.3/CRS84`;var S,x;async function k(e,t,s={},n=5){const{links:a}=e,u=E(a,"items",S.geojson)||E(a,"http://www.opengis.net/def/rel/ogc/1.0/items",S.geojson);if(null==u)throw new i.Z("ogc-feature-layer:missing-items-page","Missing items url");const{apiKey:c,customParameters:l,signal:_}=s,y=(0,o.hF)(u.href,e.landingPage.url),w={limit:n,...l,token:c},I=(0,o.fl)(y,w),v={accept:S.geojson},{data:x}=await(0,r.Z)(I,{signal:_,headers:v}),k=D(I,n,x.links)??b;(0,h.O3)(x);const F=(0,h.my)(x,{geometryType:t.geometryType}),T=t.fields||F.fields||[],C=null!=t.hasZ?t.hasZ:F.hasZ,M=F.geometryType,O=t.objectIdField||F.objectIdFieldName||"OBJECTID";let q=t.timeInfo;const Z=T.find((({name:e})=>e===O));if(Z)Z.editable=!1,Z.nullable=!1;else{if(!F.objectIdFieldType)throw new i.Z("ogc-feature-layer:missing-feature-id","Collection geojson require a feature id as a unique identifier");T.unshift({name:O,alias:O,type:"number"===F.objectIdFieldType?"esriFieldTypeOID":"esriFieldTypeString",editable:!1,nullable:!1})}if(O!==F.objectIdFieldName){const e=T.find((({name:e})=>e===F.objectIdFieldName));e&&(e.type="esriFieldTypeInteger")}T===F.fields&&F.unknownFields.length>0&&m().warn({name:"ogc-feature-layer:unknown-field-types",message:"Some fields types couldn't be inferred from the features and were dropped",details:{unknownFields:F.unknownFields}});for(const e of T){if(null==e.name&&(e.name=e.alias),null==e.alias&&(e.alias=e.name),"esriFieldTypeOID"!==e.type&&"esriFieldTypeGlobalID"!==e.type&&(e.editable=null==e.editable||!!e.editable,e.nullable=null==e.nullable||!!e.nullable),!e.name)throw new i.Z("ogc-feature-layer:invalid-field-name","field name is missing",{field:e});if(!p.v.jsonValues.includes(e.type))throw new i.Z("ogc-feature-layer:invalid-field-type",`invalid type for field "${e.name}"`,{field:e})}if(q){const e=new f.Z(T);if(q.startTimeField){const t=e.get(q.startTimeField);t?(q.startTimeField=t.name,t.type="esriFieldTypeDate"):q.startTimeField=null}if(q.endTimeField){const t=e.get(q.endTimeField);t?(q.endTimeField=t.name,t.type="esriFieldTypeDate"):q.endTimeField=null}if(q.trackIdField){const t=e.get(q.trackIdField);t?q.trackIdField=t.name:(q.trackIdField=null,m().warn({name:"ogc-feature-layer:invalid-timeInfo-trackIdField",message:"trackIdField is missing",details:{timeInfo:q}}))}q.timeReference||={timeZoneIANA:g.pt},q.startTimeField||q.endTimeField||(m().warn({name:"ogc-feature-layer:invalid-timeInfo",message:"startTimeField and endTimeField are missing",details:{timeInfo:q}}),q=null)}return{drawingInfo:M?(0,d.bU)(M):null,extent:P(e),geometryType:M,fields:T,hasZ:!!C,objectIdField:O,paginationParameter:k,timeInfo:q}}async function F(e,t={}){const{links:s,url:n}=e,a=E(s,"data",S.json)||E(s,"http://www.opengis.net/def/rel/ogc/1.0/data",S.json);if(null==a)throw new i.Z("ogc-feature-layer:missing-collections-page","Missing collections url");const{apiKey:u,customParameters:c,signal:l}=t,h=(0,o.hF)(a.href,n),{data:d}=await(0,r.Z)(h,{signal:l,headers:{accept:S.json},query:{...c,token:u}});for(const t of d.collections)t.landingPage=e;return d}async function T(e,t={}){const{links:s,url:n}=e,a=E(s,"conformance",S.json)||E(s,"http://www.opengis.net/def/rel/ogc/1.0/conformance",S.json);if(null==a)throw new i.Z("ogc-feature-layer:missing-conformance-page","Missing conformance url");const{apiKey:u,customParameters:c,signal:l}=t,h=(0,o.hF)(a.href,n),{data:d}=await(0,r.Z)(h,{signal:l,headers:{accept:S.json},query:{...c,token:u}});return d}async function C(e,t={}){const{apiKey:s,customParameters:i,signal:n}=t,{data:o}=await(0,r.Z)(e,{signal:n,headers:{accept:S.json},query:{...i,token:s}});return o.url=e,o}async function M(e,t={}){const{links:s,url:i}=e,n=E(s,"service-desc",S.openapi);if(null==n)return m().warn("ogc-feature-layer:missing-openapi-page","The OGC API-Features server does not have an OpenAPI page."),null;const{apiKey:a,customParameters:u,signal:c}=t,l=(0,o.hF)(n.href,i),{data:h}=await(0,r.Z)(l,{signal:c,headers:{accept:S.openapi},query:{...u,token:a}});return h}function O(e){const t=/^http:\/\/www\.opengis.net\/def\/crs\/(?.*)\/(?.*)\/(?.*)$/i.exec(e),s=t?.groups;if(!s)return null;const{authority:r,code:i}=s;switch(r.toLowerCase()){case"ogc":switch(i.toLowerCase()){case"crs27":return y.Z.GCS_NAD_1927.wkid;case"crs83":return 4269;case"crs84":case"crs84h":return y.Z.WGS84.wkid;default:return null}case"esri":case"epsg":{const e=Number.parseInt(i,10);return Number.isNaN(e)?null:e}default:return null}}async function q(e,t,s){const r=await Z(e,t,s);return(0,c.cn)(r)}async function Z(e,t,s){const{collection:{links:n,landingPage:{url:d}},layerDefinition:p,maxRecordCount:g,queryParameters:{apiKey:m,customParameters:b},spatialReference:w,supportedCrs:I}=e,v=E(n,"items",S.geojson)||E(n,"http://www.opengis.net/def/rel/ogc/1.0/items",S.geojson);if(null==v)throw new i.Z("ogc-feature-layer:missing-items-page","Missing items url");const{geometry:x,num:k,start:F,timeExtent:T,where:C}=t;if(t.objectIds)throw new i.Z("ogc-feature-layer:query-by-objectids-not-supported","Queries with object ids are not supported");const M=y.Z.fromJSON(w),O=t.outSpatialReference??M,q=O.isWGS84?null:R(O,I),Z=A(x,I),j=function(e){if(null==e)return null;const{start:t,end:s}=e;return`${null!=t?t.toISOString():".."}/${null!=s?s.toISOString():".."}`}(T),P=null!=(H=C)&&H&&"1=1"!==H?H:null,D=k??(null==F?g:10),L=0===F?void 0:F,{fields:N,geometryType:G,hasZ:W,objectIdField:z,paginationParameter:U}=p,B=(0,o.hF)(v.href,d),{data:V}=await(0,r.Z)(B,{...s,query:{...b,...Z,crs:q,datetime:j,query:P,limit:D,[U]:L,token:m},headers:{accept:S.geojson}}),$=(0,h.lG)(V,{geometryType:G,hasZ:W,objectIdField:z}),Y=$.length===D&&!!E(V.links??[],"next",S.geojson),J=new f.Z(N);var H;for(const e of $){const t={};(0,_.O0)(J,t,e.attributes),t[z]=e.attributes[z],e.attributes=t}if(!q&&O.isWebMercator)for(const e of $)if(null!=e.geometry&&null!=G){const t=(0,c.di)(e.geometry,G,W,!1);t.spatialReference=y.Z.WGS84,e.geometry=(0,c.GH)((0,u.iV)(t,O))}for(const e of $)e.objectId=e.attributes[z];const Q=q||!q&&O.isWebMercator?O.toJSON():a.YU,X=new l.Z;return X.exceededTransferLimit=Y,X.features=$,X.fields=N,X.geometryType=G,X.hasZ=W,X.objectIdFieldName=z,X.spatialReference=Q,X}function R(e,t){const{isWebMercator:s,wkid:r}=e;if(!r)return null;const i=s?t[3857]??t[102100]??t[102113]??t[900913]:t[e.wkid];return i?`${I}${i}`:null}function j(e){if(null==e)return"";const{xmin:t,ymin:s,xmax:r,ymax:i}=e;return`${t},${s},${r},${i}`}function A(e,t){if(!function(e){return null!=e&&"extent"===e.type}(e))return null;const{spatialReference:s}=e;if(!s||s.isWGS84)return{bbox:j(e)};const r=R(s,t);return null!=r?{bbox:j(e),"bbox-crs":r}:s.isWebMercator?{bbox:j((0,u.iV)(e,y.Z.WGS84))}:null}function P(e){const t=e.extent?.spatial;if(!t)return null;const s=t.bbox[0],r=4===s.length,[i,n]=s,o=r?void 0:s[2];return{xmin:i,ymin:n,xmax:r?s[2]:s[3],ymax:r?s[3]:s[4],zmin:o,zmax:r?void 0:s[5],spatialReference:y.Z.WGS84.toJSON()}}function E(e,t,s){return e.find((({rel:e,type:r})=>e===t&&r===s))??e.find((({rel:e,type:s})=>e===t&&!s))}function D(e,t,s){if(!s)return;const r=E(s,"next",S.geojson),i=(0,o.mN)(r?.href)?.query;if(!i)return;const n=(0,o.mN)(e).query,a=Object.keys(n??{}),u=Object.entries(i).filter((([e])=>!a.includes(e))).find((([e,s])=>w.has(e.toLowerCase())&&Number.parseInt(s,10)===t)),c=u?.[0];return c}(x=S||(S={})).json="application/json",x.geojson="application/geo+json",x.openapi="application/vnd.oai.openapi+json;version=3.0"},26991:function(e,t,s){s.d(t,{EC:function(){return n},Oo:function(){return a},ck:function(){return o}});var r=s(30936),i=s(98114);const n={selection:e=>new i.Z({color:new r.Z([e.color.r/2,e.color.g/2,e.color.b/2,e.color.a])}),highlight:e=>e,popup:e=>new i.Z({color:new r.Z([e.color.g,e.color.b,e.color.r,e.color.a])})};function o(e){if(!e)return 0;let t=1;for(const s in n){if(s===e)break;t<<=1}return t}const a=Object.keys(n)},14266:function(e,t,s){s.d(t,{BZ:function(){return G},FM:function(){return P},GV:function(){return B},Ib:function(){return f},J1:function(){return z},JS:function(){return E},KA:function(){return D},Kg:function(){return n},Kt:function(){return d},Ly:function(){return b},NG:function(){return N},NY:function(){return p},Of:function(){return x},Pp:function(){return u},Sf:function(){return S},Uz:function(){return L},Vo:function(){return R},Zt:function(){return v},_8:function(){return V},_E:function(){return Z},ad:function(){return a},bm:function(){return y},ce:function(){return w},cz:function(){return I},dD:function(){return q},do:function(){return M},g3:function(){return T},gj:function(){return h},i9:function(){return i},iD:function(){return l},j1:function(){return m},k9:function(){return r},kU:function(){return C},l3:function(){return U},nY:function(){return O},nn:function(){return W},oh:function(){return o},qu:function(){return A},s4:function(){return j},uk:function(){return c},vk:function(){return k},wJ:function(){return _},wi:function(){return F},zZ:function(){return g}});const r=1e-30,i=512,n=128,o=511,a=16777216,u=8,c=29,l=24,h=4,d=0,_=0,f=0,p=1,g=2,y=3,m=4,b=5,w=6,I=12,v=5,S=6,x=5,k=6;var F;!function(e){e[e.FilterFlags=0]="FilterFlags",e[e.Animation=1]="Animation",e[e.GPGPU=2]="GPGPU",e[e.VV=3]="VV",e[e.DD0=4]="DD0",e[e.DD1=5]="DD1",e[e.DD2=6]="DD2"}(F||(F={}));const T=8,C=T<<1,M=1.05,O=1,q=5,Z=6,R=1.15,j=2,A=128-2*j,P=2,E=10,D=1024,L=128,N=4,G=1,W=1<<20,z=.75,U=10,B=.75,V=256},91631:function(e,t,s){s.r(t),s.d(t,{default:function(){return Jt}});var r=s(70375),i=s(23148),n=s(39994),o=s(66581),a=s(78668),u=s(4157),c=s(76868),l=s(95550),h=s(81590),d=s(64970),_=s(87241),f=(s(17224),s(23656),s(14266));class p{constructor(e){this._client=e,this.layerView=this._client.createInvokeProxy("",{ignoreConnectionErrors:!0}),this.container=this._client.createInvokeProxy("container",{ignoreConnectionErrors:!0}),this.eventLog=this._client.createInvokeProxy("eventLog",{ignoreConnectionErrors:!0})}}var g=s(61681),y=s(27281),m=s(14685),b=s(18470),w=s(6413);const I=128;function v(e){switch(e){case 1:case 8:case 32:return-1;case 2:case 64:return 0;case 4:case 16:case I:return 1}}function S(e){switch(e){case 1:case 2:case 4:return-1;case 8:case 16:return 0;case 32:case 64:case I:return 1}}class x{constructor(e,t,s,r=0){this.tileKey=e,this._bufferingEnabled=t,this._sizeHint=r,this._meshes={self:new b._(this.id,this._sizeHint),neighbors:new Array},this._currentRecordOverlaps=0,this._currentEntityOverlaps=0,this._copyBufferedDataIntoSelf=s&&this._bufferingEnabled&&0===e.level}get id(){return this.tileKey.id}vertexCount(){return this._meshes.self.vertexCount()}indexCount(){return this._meshes.self.indexCount()}indexEnsureSize(e){this._meshes.self.indexEnsureSize(e)}entityStart(e,t=e){this._currentEntityOverlaps=0,this._meshes.self.entityStart(e,t)}entityRecordCount(){return this._meshes.self.entityRecordCount()}entityEnd(){if(this._meshes.self.entityEnd(),this._bufferingEnabled){if(this._copyBufferedDataIntoSelf)return;for(let e=0;e<8;e++){const t=1<{const i=s.serialize(),n=1<=f.i9-i?41:189)|(t<0+n?224:t>=f.i9-n?7:231));this._currentRecordOverlaps|=o}_copyIntoNeighbors(){for(let e=0;e<8;e++){const t=1<0){const e=this.getBackgroundFill();if(e)return[...e,...s]}return s}getSortKey(e,t){return 0}doMatch(e,t){return null}async fetchResources(e,t){}}class C extends T{static async fromDictionaryRenderer(e,t,s){return new C(e,t,s)}constructor(e,t,s){super(),this._storage=e,this._schema=t,this._viewParams=s,this._hashToGroup=new Map}get fieldMap(){return this._schema.fieldMap}async fetchResources(e,t){const s=t.getCursor(),r=[];for(;s.next();)r.push(this._updateMeshWriterGroup(e,s));await Promise.all(r)}match(e,t){const s=e.getAttributeHash();return this._hashToGroup.get(s)}async _updateMeshWriterGroup(e,t){const s=t.readLegacyFeatureForDisplay(),r=t.getAttributeHash();if(this._hashToGroup.has(r))return;this._hashToGroup.set(r,null);const i=await e.fetchDictionaryResourceImmediate({type:"dictionary-request",feature:s});if(!i)return;const n=await(0,F.yj)(this._storage,e,i.meshes,this._viewParams);this._hashToGroup.set(r,n)}}class M extends T{constructor(e,t){super(),this._intervals=[],this._isMaxInclusive=t,this._field=e}static async fromIntervalSchema(e,t,s,r){const i=await e.createComputedField(s),n=new M(i,s.isMaxInclusive);await Promise.all(s.intervals.map((async s=>{const i=await(0,F.yj)(e,t,s.meshes,r);n.add(s,i)})));const o=await(0,F.yj)(e,t,s.defaultSymbol,r);n.setDefault(o);const a=await(0,F.yj)(e,t,s.backgroundFill,r);return n.setBackgroundFill(a),n}add(e,t){this._intervals.push({interval:e,result:t}),this._intervals.sort(((e,t)=>e.interval.min-t.interval.min))}size(){return super.size()+this._intervals.length}doMatch(e,t){const s=this._field?.read(e,t);if(null==s||isNaN(s)||s===1/0||s===-1/0)return null;for(let e=0;e=t.min,n=this._isMaxInclusive?s<=t.max:s{const i=await(0,F.yj)(e,t,s.meshes,r);return{minScale:s.minScale,maxScale:s.maxScale,meshes:i,expression:null,where:await e.createWhereClause(s.where)}})),n=await Promise.all(i);return new O(n)}constructor(e){super(),this._labels=e}match(e,t){if(!this._labels.length)return null;const s=this._getLabels(t.$view.scale),r=[];for(const t of s)t.where&&!t.where(e)||r.push(...t.meshes);return r}_getLabels(e){return this._labels.filter((t=>this._validForTileScale(t,e)))}_validForTileScale(e,t){const s=t-t/4,r=t+t/2;return(!e.minScale||e.minScale>=s)&&(!e.maxScale||e.maxScale<=r)}}class q extends T{constructor(e,t){super(),this._defaultSymbolSortKey=0,this._nullResult=null,this._resultsMap=new Map,this._fields=[],this._fields=e,this._separator=t||""}static async fromMatcherSchema(e,t,s,r){const i=s.expression?[e.createComputedField({expression:s.expression})]:[s.field?e.createComputedField({field:s.field}):null,s.field2?e.createComputedField({field:s.field2}):null,s.field3?e.createComputedField({field:s.field3}):null],n=(await Promise.all(i)).filter((e=>!!e)),o=new q(n,s.fieldDelimiter),a=await(0,F.yj)(e,t,s.defaultSymbol,r);o.setDefault(a);const u=await(0,F.yj)(e,t,s.backgroundFill,r);return o.setBackgroundFill(u),await Promise.all(s.map.map((async(s,i)=>{const n=await(0,F.yj)(e,t,s.symbol,r);""===s.value?o.setNullResult(n):o.add(s.value,n,i+1)}))),o}setNullResult(e){this._nullResult=e}getSortKey(e,t){const s=this._getValueFromFields(e,t);if(null==s||""===s||""===s)return 0;const r=this._resultsMap.get(s.toString());return r?r.sortKey:this._defaultSymbolSortKey}add(e,t,s){this._resultsMap.set(e.toString(),{meshWriters:t,sortKey:s}),this._defaultSymbolSortKey=Math.max(this._defaultSymbolSortKey,s+1)}size(){return super.size()+this._resultsMap.size}doMatch(e,t){const s=this._getValueFromFields(e,t);if(null!==this._nullResult&&(null==s||""===s||""===s))return this._nullResult;if(null==s)return null;const r=s.toString();return this._resultsMap.get(r)?.meshWriters}_getValueFromFields(e,t){const s=[];for(const r of this._fields){const i=r.read(e,t);null==i||""===i?s.push(""):s.push(i)}return s.join(this._separator)}}async function Z(e,t,s,r){switch(s.type){case"simple":case"heatmap":case"dot-density":case"pie-chart":return T.from(e,t,s,r);case"interval":return M.fromIntervalSchema(e,t,s,r);case"dictionary":return C.fromDictionaryRenderer(e,s,r);case"label":return O.fromLabelSchema(e,t,s,r);case"map":return q.fromMatcherSchema(e,t,s,r);case"subtype":return R.fromSubtypes(e,t,s,r);case"cluster":return j.fromClusterSchema(e,t,s,r);default:throw new Error("Impl")}}class R extends T{constructor(e,t){super(),this._subMatchers=e,this._subtypeField=t}static async fromSubtypes(e,t,s,r){const i=new Map,n=[];for(const o in s.renderers){const a=parseInt(o,10),u=Z(e,t,s.renderers[o],r).then((e=>i.set(a,e)));n.push(u)}return await Promise.all(n),new R(i,s.subtypeField)}match(e,t){const s=e.readAttribute(this._subtypeField),r=this._subMatchers.get(s);return r?r.match(e,t):null}}class j extends T{static async fromClusterSchema(e,t,s,r){const[i,n]=await Promise.all([Z(e,t,s.feature,r),Z(e,t,s.cluster,r)]);return new j(i,n)}constructor(e,t){super(),this._featureMatcher=e,this._clusterMatcher=t}match(e,t){return 1===e.readAttribute("cluster_count")?this._featureMatcher.match(e,t):this._clusterMatcher.match(e,t)}}class A extends k{static async create(e,t,s,r){const i=await Z(e,t,s.symbology,r),n=s.labels?await Z(e,t,s.labels,r):null;return new A(i,n)}constructor(e,t){super(),this._symbology=e,this._labels=t}destroy(){}async enqueueMatcherRequests(e,t){await Promise.all([this._symbology.fetchResources(e,t),this._labels?.fetchResources(e,t)])}enqueueWriterRequests(e,t,s){const r=this._symbology.match(t,s);if(r){for(const i of r)i.enqueueRequest(e,t,s);if(this._labels){const r=this._labels.match(t,s);if(!r)return;for(const i of r)i.enqueueRequest(e,t,s)}}}write(e,t,s,r,i){const n=this._symbology.match(s,r);if(n){for(const o of n)o.write(e,t,s,r,i);if(e.entityRecordCount()>=1&&this._labels){const o=this._labels.match(s,r);if(!o)return;for(const a of o)a.setReferences(n),a.write(e,t,s,r,i)}}}getSortKey(e,t){return this._symbology.getSortKey(e,t)}}var P=s(33178),E=s(99542);class D{constructor(e){this._outstandingMessages=[],this._queue=new E.e({concurrency:e.concurrency,process:t=>e.process(t)})}async push(e){if(e.end)return await Promise.all(this._outstandingMessages),await this._queue.push(e),void(this._outstandingMessages=[]);const t=this._queue.push(e);return this._outstandingMessages.push(t),t}}s(91957);var L=s(60814),N=s(12065),G=s(59958),W=s(66069),z=s(427);class U{static async create(e,t){if("count"===t.statisticType){const e=new z.J(1);return new U(t.name,t.alias,t.type,t.statisticType,e)}const s=await e.createComputedField({expression:t.onStatisticExpression?.expression,field:t.onStatisticField});return new U(t.name,t.alias,t.type,t.statisticType,s)}constructor(e,t,s,r,i){this.name=e,this.alias=t,this.type=s,this.statisticType=r,this.computed=i}}var B=s(31355),V=s(37116),$=s(12102),Y=s(66608);class J{constructor(e){this.subscription=e,this.handledChunks=new Set}destroy(){}}class H{constructor(e,t){this._source=e,this._attributeStore=t,this._sendStates=new Map}destroy(){}get enablePixelBuffering(){return!0}onSubscribe(e){const t=this.createState(e);this._sendStates.set(e.key.id,t),this.updateChunks()}onUnsubscribe(e){this._sendStates.get(e.key.id)?.destroy(),this._sendStates.delete(e.key.id)}invalidate(){const e=Array.from(this._sendStates.values());this._sendStates.clear();for(const t of e)t.destroy(),this.onSubscribe(t.subscription)}invalidateAttributeData(){}getFeatureObjectIdsForAggregate(e){throw new Error("InternalError: AggregateId lookup not supported")}getDisplayIds(e){return this.displayMap(e,(e=>e),(e=>e))}getDisplayAndObjectIds(e){return this.displayMap(e,(e=>e),((e,t,s)=>[e,s]))}afterUpdateChunks(){}}class Q extends H{constructor(e,t,s,r){super(e,t),this.spatialReference=s,this.aggregateFields=r,this.events=new B.Z,this.featureAdapter=$.n}get aggregateQueryEngine(){return this._aggregateQueryEngine||(this._aggregateQueryEngine=new Y.q({featureStore:this,fieldsIndex:this._metadata.fieldsIndex,geometryType:this._metadata.geometryType,objectIdField:this._metadata.objectIdField,spatialReference:this.spatialReference})),this._aggregateQueryEngine}removeChunks(e){}forEach(e){return this.forEachAggregateWorldSpace(e)}forEachInBounds(e,t){}forEachBounds(e,t){const s=(0,V.Ue)();for(const r of e){const e=(0,N.$)(s,r.geometry,!1,!1);e&&t(e)}}}class X{constructor(e,t,s,r,i){this.subscription=e,this.reader=t,this.clear=s,this.end=r,this.debugInfo=i,this.type="append"}get id(){return this.subscription.tile.id}createMessage(e,t,s){return{type:"append",clear:this.clear,id:this.id,append:e,end:this.end,debugInfo:this.debugInfo,subscriptionVesrion:this.subscription.version,version:t,attributeEpoch:s}}}class K{constructor(e,t,s,r,i){this.subscription=e,this.reader=t,this.remove=s,this.end=r,this.debugInfo=i,this.type="update"}get id(){return this.subscription.tile.id}createMessage(e,t,s){return{type:"update",id:this.id,modify:e,debugInfo:this.debugInfo,remove:this.remove,version:t,subscriptionVesrion:this.subscription.version,end:this.end,attributeEpoch:s}}}var ee=s(46878),te=s(45904),se=s(60997),re=s(28790),ie=s(98416);class ne extends ie.s{static fromFeatures(e,t){const{objectIdField:s,geometryType:r}=t,i=(0,N.Yn)([],e,r,!1,!1,s);for(let t=0;t!(null!=e.objectId&&t.has(e.objectId))))}getSize(){return this._features.length}getCursor(){return this.copy()}getInTransform(){return this._transform}getAttributeHash(){let e="";for(const t in this._current.attributes)e+=this._current.attributes[t];return e}getIndex(){return this._featureIndex}setIndex(e){this._featureIndex=e}getObjectId(){return this._current?.objectId}getDisplayId(){return this._current.displayId}setDisplayId(e){this._current.displayId=e}copy(){const e=new ne(this._features,this.metadata);return this.copyInto(e),e}next(){for(;++this._featureIndexU.create(n,e)))),u=e.featureFilter?await te.Z.create({geometryType:s.metadata.geometryType,hasM:!1,hasZ:!1,timeInfo:s.metadata.timeInfo,fieldsIndex:s.metadata.fieldsIndex,spatialReference:t,filterJSON:e.featureFilter}):null;return await(0,W._W)(t,m.Z.WGS84),new ae({fields:a,geohashLevel:o,spatialReference:t,featureFilter:u,timeZone:i},e.fields,s,r)}constructor(e,t,s,r){super(s,r,e.spatialReference,e.fields),this._indexOptions=e,this._metadata=new se.A({geometryType:"esriGeometryPolygon",objectIdField:"aggregateId",fields:t,globalIdField:null,spatialReference:s.metadata.spatialReference,subtypeField:null,subtypes:null,timeInfo:null,timeReferenceUnknownClient:null,typeIdField:null,types:null})}createState(e){return new oe(e,this._attributeStore)}async*applyOverride(e){for(const e of this._sendStates.values()){e.reset();const t=new X(e.subscription,ne.empty(this._source.metadata),!0,!1,{});yield t}}displayMap(e,t,s){const r=new Map(e.map((e=>[t(e),e]))),i=[];for(const e of this._sendStates.values())for(const t of e.featuresWorldSpace()){const{objectId:e,displayId:n}=t,o=r.get(e);if(null!=o){const t=s(n,o,e);i.push(t),r.delete(e)}}return i}getDisplayFeatures(e){const t=new Set(e),s=new Set,r=[];for(const e of this._sendStates.values())for(const i of e.featuresWorldSpace())t.has(i.displayId)&&!s.has(i.objectId)&&(i.geometry&&r.push({...(0,N.EI)(i,this._metadata.geometryType,!1,!1),displayId:i.displayId}),s.add(i.objectId));return{features:[],aggregates:r}}getFeatureObjectIdsForAggregate(e){for(const t of this._sendStates.values())for(const s of t.bins.values())if(s.id===e)return Array.from(s.objectIds);return[]}async*updateChunks(){if(this._source.chunks().length)for(const e of this._sendStates.values())yield*this._update(e,this._source)}forEachAggregateWorldSpace(e){for(const t of this._sendStates.values())for(const s of t.featuresWorldSpace())e(s)}async*_update(e,t){const{handledChunks:s,subscription:r,bins:i}=e,{spatialReference:n,geohashLevel:o}=this._indexOptions,a=r.tile;if(e.done)return;for(const r of t.chunks()){if(s.has(r.chunkId))continue;s.add(r.chunkId);const t=r.queryInfo;if("tileId"in t){const e=new _.Z(t.tileId);if(e.level!==a.level||e.world!==a.key.world)continue}const u=r.getGeohashIndex(this._indexOptions),c=e.getGeohashBounds(n,o);null!=c&&u.putBins(i,c)}const u=[],c=r.tile.transform,l=r.tile.key.level;for(const e of i.values()){if(e.cachedFeature)e.cachedFeature.attributes=e.getAttributes();else{const t=e.getGeometry(this.spatialReference,c),s=new G.u_(t,e.getAttributes(),null);t||(s.centroid=e.getGeometryCentroid(this.spatialReference,c)),s.objectId=e.id,s.displayId=this._attributeStore.createDisplayIdForObjectId(`${s.objectId}.${l}`),e.cachedFeature=s}u.push(e.cachedFeature)}this.events.emit("changed"),e.done=!t.updateTracking.updating;const h=ne.fromOptimizedFeatures(u,this._metadata,c),d=h.getCursor(),f=e.subscription.tile.createArcadeEvaluationOptions(this._indexOptions.timeZone);for(;d.next();)this._attributeStore.setAttributeData(d.getDisplayId(),d,f);const p=new K(e.subscription,h,[],e.done,{});yield p}}var ue=s(15540),ce=s(56692);const le=Math.PI/180;class he{static create(e){return new he(e.map((e=>function(e){switch(e.statisticType){case"min":return new _e(e);case"max":return new fe(e);case"avg":return new ge(e);case"avg_angle":return new ye(e);case"sum":case"count":return new pe(e);case"mode":return new me(e)}}(e))))}constructor(e){this._statistics=e}values(){return this._statistics.values()}insert(e,t){for(const s of this._statistics)s.insert(e,t)}merge(e){for(let t=0;te.clone())))}}class de{constructor(e){this.field=e}insert(e,t){if(!this.field.computed)return;const s=this.field.computed.read(e,t);(0,ce.s_)(s)||this._insertValue(s)}}class _e extends de{constructor(){super(...arguments),this.type="min",this.value=Number.MAX_VALUE}_insertValue(e){this.value=Math.min(this.value,e)}merge(e){this.value=Math.min(this.value,e.value)}clone(){const e=new _e(this.field);return e.value=this.value,e}}class fe extends de{constructor(){super(...arguments),this.type="max",this.value=Number.MIN_VALUE}_insertValue(e){this.value=Math.max(this.value,e)}merge(e){this.value=Math.max(this.value,e.value)}clone(){const e=new fe(this.field);return e.value=this.value,e}}class pe extends de{constructor(){super(...arguments),this.type="sum",this.value=0}_insertValue(e){this.value+=e}merge(e){this.value+=e.value}clone(){const e=new pe(this.field);return e.value=this.value,e}}class ge extends de{constructor(){super(...arguments),this.type="avg",this._total=0,this._count=0}get value(){return this._total/this._count}_insertValue(e){this._total+=e,this._count+=1}merge(e){this._total+=e._total,this._count+=e._count}clone(){const e=new ge(this.field);return e._total=this._total,e._count=this._count,e}}class ye extends de{constructor(){super(...arguments),this.type="avg_angle",this._x=0,this._y=0,this._count=0}get value(){const e=this._x/this._count,t=this._y/this._count,s=180/Math.PI;return Math.atan2(t,e)*s}_insertValue(e){this._x=this._x+Math.cos(e*le),this._y=this._y+Math.sin(e*le),this._count+=1}merge(e){this._x+=e._x,this._y+=e._y,this._count+=e._count}clone(){const e=new ye(this.field);return e._x=this._x,e._y=this._y,e._count=this._count,e}}class me extends de{constructor(){super(...arguments),this._frequencies=new Map}get value(){let e,t=0;for(const[s,r]of this._frequencies.entries())r>t&&(t=r,e=s);return e}_insertValue(e){const t=this._frequencies.get(e);null!=t?this._frequencies.set(e,t+1):this._frequencies.set(e,1)}merge(e){for(const[t,s]of e._frequencies.entries()){const e=this._frequencies.get(t);null!=e?this._frequencies.set(t,e+s):this._frequencies.set(t,s)}}clone(){const e=new me(this.field);return e._frequencies=new Map(this._frequencies),e}}class be{static createId(e,t){return`${e}.${t}`}static create(e,t,s,r){return new be(e,t,he.create(s),r)}constructor(e,t,s,r){this.gridX=e,this.gridY=t,this._statistics=s,this._worldUnitsPerCell=r,this._count=0,this._xWorldTotal=0,this._yWorldTotal=0,this._objectIds=new Set}get id(){return be.createId(this.gridX,this.gridY)}get count(){return this._count}get statistics(){return this._statistics}get objectIds(){return this._objectIds}get firstObjectId(){return this._objectIds.values().next().value}get centroidXWorld(){return this._xWorldTotal/this._count}get centroidYWorld(){return this._yWorldTotal/this._count}clone(){const e=new be(this.gridX,this.gridY,this._statistics.clone(),this._worldUnitsPerCell);return e._count=this._count,e._xWorldTotal=this._xWorldTotal,e._yWorldTotal=this._yWorldTotal,e._firstFeatureAttributes=this._firstFeatureAttributes,e._objectIds=new Set(this._objectIds),e}insert(e,t,s,r){0===this._count?this._firstFeatureAttributes=e.readAttributes():this._firstFeatureAttributes=null,this._count+=1,this._xWorldTotal+=s,this._yWorldTotal+=r,this._statistics.insert(e,t),this._objectIds.add(e.getObjectId())}merge(e){if(0!==e._count){this._count+=e._count,this._firstFeatureAttributes=e._firstFeatureAttributes,this._xWorldTotal+=e._xWorldTotal,this._yWorldTotal+=e._yWorldTotal,this._statistics.merge(e._statistics);for(const t of e._objectIds.values())this._objectIds.add(t)}}getCentroidX(e){return null==e?this.centroidXWorld:(0,N.Jd)(e,this.centroidXWorld)}getCentroidY(e){return null==e?this.centroidYWorld:(0,N.IN)(e,this.centroidYWorld)}getCentroid(e){const t=new ue.Z([],[this.centroidXWorld,this.centroidYWorld]);if(null!=e){const s=new ue.Z;return(0,N.Nh)(s,t,!1,!1,"esriGeometryPoint",e)}return t}getGeometricCentroid(e){const t=this.gridX*this._worldUnitsPerCell+.5*this._worldUnitsPerCell,s=this.gridY*this._worldUnitsPerCell+.5*this._worldUnitsPerCell,r=new ue.Z([],[t,s]);if(null!=e){const t=new ue.Z;return(0,N.Nh)(t,r,!1,!1,"esriGeometryPoint",e)}return r}getAttributes(){const e={aggregateId:this.id};for(const t of this._statistics.values())e[t.field.name]=t.value;return null!=this._firstFeatureAttributes?{...e,...this._firstFeatureAttributes}:e}}var we=s(17321);function Ie(e,t){return(0,we.c9)(e)*we.hd*96/t}class ve{constructor(e){this._options=e,this._cells=new Map,this._pixelsPerMapUnit=Ie(e.spatialReference,e.scale)}insert(e,t){const s=e.getCursor(),r={$view:{scale:this._options.scale,timeZone:this._options.timeZone}};for(;s.next();)this._insertFeature(s,r,t)}putCellsInBounds(e,t){const[s,r,i,n]=t,o=Math.floor(s*this._pixelsPerMapUnit/this._options.cellSize),a=Math.floor(r*this._pixelsPerMapUnit/this._options.cellSize),u=Math.ceil(i*this._pixelsPerMapUnit/this._options.cellSize),c=Math.ceil(n*this._pixelsPerMapUnit/this._options.cellSize);for(let t=a;t<=c;t++)for(let s=o;s<=u;s++){const r=`${s}.${t}`,i=this._cells.get(r);if(!i)continue;const n=e.get(i.id);n?i&&!e.has(i.id)&&n.merge(i):e.set(i.id,i.clone())}}putCells(e){for(const t of this._cells.values()){const s=e.get(t.id);s?s.merge(t):e.set(t.id,t.clone())}}_insertFeature(e,t,s){const{featureFilter:r}=this._options;if(null!==r&&!r.check(e))return;let i=0,n=0;if("esriGeometryPoint"===e.geometryType)i=e.readXWorldSpace(),n=e.readYWorldSpace();else{if(s){const t=e.readCentroidForDisplay();if(null==t)return;const[s,r]=t.coords;if(s<0||s>f.i9||r<0||r>f.i9)return}const t=e.readCentroidWorldSpace();if(null==t)return;i=t.coords[0],n=t.coords[1]}const o=i*this._pixelsPerMapUnit,a=n*this._pixelsPerMapUnit,u=Math.floor(o/this._options.cellSize),c=Math.floor(a/this._options.cellSize);this._getCellOrCreate(u,c).insert(e,t,i,n)}_getCellOrCreate(e,t){const s=be.createId(e,t);let r=this._cells.get(s);if(!r){const i=1*this._options.cellSize/this._pixelsPerMapUnit;r=be.create(e,t,this._options.fields,i),this._cells.set(s,r)}return r}}class Se{constructor(e,t){this.inner=e,this.displayId=t}}const xe=128;class ke extends J{constructor(e){super(e),this.didSend=!1,this.done=!1}}class Fe{constructor(e,t,s,r,i){this._level=e,this._scale=t,this._indexOptions=s,this._clusterRadius=r,this._store=i,this._cells=new Map,this._handledChunks=new Set,this._statistics=new Map,this._clusters=new Map}destroy(){this._clearClusters()}_clearClusters(){for(const e of this._clusters.values())this._store.releaseDisplayIdForObjectId(e.inner.id);this._clusters.clear()}*aggregatesWorldSpace(){for(const e of this._clusters.values()){const t=e.inner.getCentroid(null),s=new G.u_(t,e.inner.getAttributes(),null);s.objectId=e.inner.id,s.displayId=e.displayId,yield s}}clusters(){return this._clusters.values()}updateChunks(e,t){let s=!1;for(const t of e){const e=t.queryInfo;"tileId"in e&&new _.Z(e.tileId).level!==this._level||(this._handledChunks.has(t.normalizedChunkId)||(this._handledChunks.add(t.normalizedChunkId),s=!0,t.getGridIndex({...this._indexOptions,scale:this._scale}).putCells(this._cells)))}const r={xMin:1/0,yMin:1/0,xMax:-1/0,yMax:-1/0},i=Ie(this._indexOptions.spatialReference,this._scale),n=this._indexOptions.cellSize;for(const{subscription:e}of t){const t=e.tile.bounds,s=Math.floor(t[0]*i/n),o=Math.floor(t[1]*i/n),a=Math.ceil(t[2]*i/n),u=Math.ceil(t[3]*i/n);r.xMin=Math.min(r.xMin,s),r.yMin=Math.min(r.yMin,o),r.xMax=Math.max(r.xMax,a),r.yMax=Math.max(r.yMax,u)}return null!=this._lastCellBounds&&r.xMin===this._lastCellBounds.xMin&&r.yMin===this._lastCellBounds.yMin&&r.yMin===this._lastCellBounds.yMin&&r.yMax===this._lastCellBounds.yMax||(s=!0,this._lastCellBounds=r),s&&this._clusterCells(r),s}async updateStatistics(e){let t=!1;for(const e of this._clusters.values())e.inner.count>1&&(t=this._updateAggregateStatistics(this._statistics,e.inner)||t);if(t){const t=Array.from(this._statistics.entries()).map((([e,t])=>({fieldName:e,minValue:t.minValue,maxValue:t.maxValue})));await e.container.updateStatistics(this._level,t)}}createAggregateFeatures(e,t){const s=e.subscription,r=[],i=s.tile.transform;for(const e of this._clusters.values()){let t=e.inner.getCentroidX(i);const n=e.inner.getCentroidY(i),o=s.tile.lod,a=o.wrap?o.worldSize[0]:null,u=1===e.inner.count?e.inner.firstObjectId:e.inner.id,c=e.displayId;if(null!=a)if(1===a){const s=new ue.Z([],[t,n]),i=new G.u_(s,e.inner.getAttributes(),null);i.geometry.coords[0]-=f.i9,i.objectId=u,i.displayId=c,r.push(i);const o=new ue.Z([],[t,n]),a=new G.u_(o,e.inner.getAttributes(),null);a.geometry.coords[0]+=f.i9,a.objectId=u,a.displayId=c,r.push(a)}else t>f.i9+f.i9/2?t-=a*f.i9:t<-f.i9/2&&(t+=a*f.i9);if(t=-128&&n=-128){const s=new ue.Z([],[t,n]),i=new G.u_(s,e.inner.getAttributes(),null);i.objectId=u,i.displayId=c,r.push(i)}}return ne.fromOptimizedFeatures(r,t,s.tile.transform)}_clusterCells(e){let t=Array.from(this._cells.values());t=t.sort(((e,t)=>t.count-e.count));const s=[];for(const e of this._clusters.values())s.push(e.inner.id);this._clusters.clear();const r=this._clusterRadius*(1/Ie(this._indexOptions.spatialReference,this._scale)),i=1+this._clusterRadius/this._indexOptions.cellSize,n=new Set;for(const s of t){if(n.has(s.id))continue;if(s.gridXe.xMax||s.gridYe.yMax)continue;const t=this._store.createDisplayIdForObjectId(s.id),o=new Se(s.clone(),t);n.add(s.id),this._clusters.set(s.id,o);const a=s.centroidXWorld,u=s.centroidYWorld;for(let e=s.gridY-i;e<=s.gridY+i;e++)for(let t=s.gridX-i;t<=s.gridX+i;t++){if(e===s.gridY&&t===s.gridX)continue;const i=this._cells.get(be.createId(t,e));if(!i||n.has(i.id))continue;const c=Math.abs(i.centroidXWorld-a),l=Math.abs(i.centroidYWorld-u);cU.create(o,e)))),spatialReference:s,featureFilter:t.featureFilter?await te.Z.create({geometryType:r.metadata.geometryType,hasM:!1,hasZ:!1,timeInfo:r.metadata.timeInfo,fieldsIndex:r.metadata.fieldsIndex,spatialReference:s,filterJSON:t.featureFilter}):null,cellSize:t.clusterRadius/4,timeZone:n};return new Te(e,t.clusterRadius,a,t.fields,r,i)}constructor(e,t,s,r,i,n){super(i,n,s.spatialReference,s.fields),this._connection=e,this._clusterRadius=t,this._indexOptions=s,this._cellsPerScale=new Map,this._metadata=new se.A({geometryType:"esriGeometryPoint",objectIdField:"aggregateId",fields:[...r,...this._source.metadata.fieldsIndex.fields,{name:"aggregateId",alias:"aggregateId",type:"esriFieldTypeOID"}],globalIdField:null,spatialReference:i.metadata.spatialReference,subtypeField:null,subtypes:null,timeInfo:null,timeReferenceUnknownClient:null,typeIdField:null,types:null})}get enablePixelBuffering(){return!1}invalidate(){super.invalidate();for(const e of this._cellsPerScale.values())e.destroy();this._cellsPerScale.clear()}onSubscribe(e){super.onSubscribe(e),this._requiredLevel=e.tile.level,this._requiredScale=e.tile.scale}createState(e){return new ke(e)}async*applyOverride(e){for(const e of this._cellsPerScale.values())e.destroy();this._cellsPerScale.clear();for(const e of this._sendStates.values())e.done=!1}displayMap(e,t,s){const r=new Map(e.map((e=>[t(e),e]))),i=[],n=this._getClusterState(this._requiredLevel,this._requiredScale);for(const e of n.clusters()){const t=r.get(e.inner.id);if(null==t){if(1===e.inner.count){const t=r.get(e.inner.firstObjectId);if(null!=t){const n=s(e.displayId,t,e.inner.firstObjectId);i.push(n),r.delete(e.inner.firstObjectId)}}}else{const n=s(e.displayId,t,e.inner.id);i.push(n),r.delete(e.inner.id)}}return i}getDisplayFeatures(e){const t=new Set(e),s=new Set,r=[],i=[],n=this._getClusterState(this._requiredLevel,this._requiredScale);for(const e of n.aggregatesWorldSpace())if(t.has(e.displayId)&&!s.has(e.displayId)){const t=(0,N.EI)(e,this._metadata.geometryType,!1,!1);if(s.add(e.displayId),1===t.attributes.cluster_count){r.push({...t,displayId:e.displayId});continue}i.push({...t,displayId:e.displayId})}return{features:r,aggregates:i}}getFeatureObjectIdsForAggregate(e){const t=this._getClusterState(this._requiredLevel,this._requiredScale);for(const s of t.clusters())if(s.inner.id===e)return Array.from(s.inner.objectIds);return[]}async*updateChunks(){const e=this._source.chunks();if(!e.length)return;const t=this._getClusterState(this._requiredLevel,this._requiredScale),s=Array.from(this._sendStates.values()).filter((e=>e.subscription.tile.level===this._requiredLevel));if(t.updateChunks(e,s)||!this._source.updateTracking.updating)for(const e of s)e.subscription.tile.level===this._requiredLevel&&(e.didSend=!1,e.done=!1);const r=Array.from(this._sendStates.values()).filter((e=>e.done)).map((e=>e.subscription.tile.key)),i=new Set(r);for(const e of this._sendStates.values()){if(this._source.updateTracking.updating){if(r.some((t=>t.containsChild(e.subscription.tile.key))))continue;if(e.subscription.tile.key.getChildKeys().every((e=>i.has(e))))continue}e.didSend||e.subscription.tile.level!==this._requiredLevel||(e.didSend=!0,yield*this._update(e,t,this._source))}await t.updateStatistics(this._connection)}forEachAggregateWorldSpace(e){if(null==this._requiredLevel||null==this._requiredScale)return;const t=this._getClusterState(this._requiredLevel,this._requiredScale);for(const s of t.aggregatesWorldSpace())e(s)}_getClusterState(e,t){if(null==e||null==t)throw new Error("InternalError: Level and scale must be defined");let s=this._cellsPerScale.get(t);return s||(s=new Fe(e,t,this._indexOptions,this._clusterRadius,this._attributeStore),this._cellsPerScale.set(t,s)),s}async*_update(e,t,s){if(e.done)return;const r=t.createAggregateFeatures(e,this._metadata);this.events.emit("changed"),e.done=!s.updateTracking.updating;const i=r.getCursor(),n=e.subscription.tile.createArcadeEvaluationOptions(this._indexOptions.timeZone);for(;i.next();)this._attributeStore.setAttributeData(i.getDisplayId(),i,n);const o=new X(e.subscription,r,!0,e.done,{});yield o}}var Ce=s(39947);class Me{static fromReader(e){const t=[],s=e.copy(),r=(0,V.Ue)();for(;s.next();)s.getBounds(r)&&t.push(s.getIndex());const i=(0,Ce.r)(9,(e=>(s.setIndex(e),{minX:s.getBoundsXMin(),minY:s.getBoundsYMin(),maxX:s.getBoundsXMax(),maxY:s.getBoundsYMax()})));return i.load(t),new Me(i)}constructor(e){this._index=e}search(e){const t={minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]};return this._index.search(t)}}class Oe{static create(e,t,s,r){const i=he.create(e),n=new Array(32);for(let e=0;e=n)return;const h=Math.ceil((u+1)/2),d=Math.floor((u+1)/2),_=1-u%2,f=30-(3*h+2*d),p=30-(2*h+3*d),g=(r&7*_+3*(1-_)<>f,y=(i&3*_+7*(1-_)<>p,m=g+y*(8*_+4*(1-_));c=c<<3*_+2*(1-_)|g,l=l<<2*_+3*(1-_)|y,null==a.children[m]&&(a.children[m]=Oe.create(this._fields,c,l,u+1)),u+=1,a=a.children[m]}}putBins(e,t){for(const s of this.getNodes(t)){const t=e.get(s.id);t?t.merge(s):e.set(s.id,s.clone())}}getNodes(e){const t=[],{geohashBounds:s,level:r}=e;let i=this._root;for(;null!==i;){const e=i.depth,n=i.xNode,o=i.yNode;if(e>=r){t.push(i),i=i.next;continue}const a=Math.ceil((e+1)/2),u=Math.floor((e+1)/2),c=1-e%2,l=30-(3*a+2*u),h=30-(2*a+3*u),d=~((1<>l,p=(s.yLL&_)>>h,g=(s.xTR&d)>>l,y=(s.yTR&_)>>h,m=n<<3*c+2*(1-c),b=o<<2*c+3*(1-c),w=m+8*c+4*(1-c),I=b+4*c+8*(1-c),v=Math.max(m,f),S=Math.max(b,p),x=Math.min(w,g),k=Math.min(I,y);let F=null,T=null;for(let e=S;e<=k;e++)for(let t=v;t<=x;t++){const s=t-m+(e-b)*(8*c+4*(1-c)),r=i.children[s];r&&(F||(F=r,F.next=i.next),T&&(T.next=r),T=r,r.next=i.next)}i=F||i.next}return t}}class Ze{constructor(e){this._options=e,this._tree=new qe(e.fields)}insert(e,t){const s=e.getCursor(),r={$view:{scale:0,timeZone:this._options.timeZone}};for(;s.next();)this._insertFeature(s,r,t)}putBins(e,t){this._tree.putBins(e,t)}_insertFeature(e,t,s){const{featureFilter:r,geohashLevel:i,spatialReference:n}=this._options;if(null!==r&&!r.check(e))return;let o=0,a=0;if("esriGeometryPoint"===e.geometryType)o=e.readXWorldSpace(),a=e.readYWorldSpace();else{if(s){const t=e.readCentroidForDisplay();if(null==t)return;const[s,r]=t.coords;if(s<0||s>f.i9||r<0||r>f.i9)return}const t=e.readCentroidWorldSpace();if(null==t)return;o=t.coords[0],a=t.coords[1]}const u=(0,L.zp)(o,a,i,n);u&&this._tree.insert(e,o,a,u[0],u[1],i,t)}}class Re extends ie.s{static from(e,t){return new Re(e.copy(),t)}constructor(e,t){super(e.metadata),this._currentIndex=-1,this._displayTranslationX=0,this._displayTranslationY=0,this._displayScaleX=1,this._displayScaleY=1,this._reader=e,this._indices=t,this._isPoint="esriGeometryPoint"===e.geometryType}setTransformForDisplay(e){const t=this._reader.getInTransform();if(null==t){const[t,s]=e.scale,[r,i]=e.translate;return this._displayTranslationX=-r/t,this._displayScaleX=1/t,this._displayTranslationY=i/s,this._displayScaleY=1/-s,void(this._displayTransform=e)}const[s,r]=t.scale,[i,n]=t.translate,[o,a]=e.scale,[u,c]=e.translate;if(this._displayScaleX=s/o,this._displayTranslationX=(i-u)/o,this._displayScaleY=r/a,this._displayTranslationY=(-n+c)/a,!this._isPoint&&t)throw new Error("InternalError: Relative transformations not supported for non-point features");this._displayTransform=e}getInTransform(){return this._reader.getInTransform()}get fields(){return this._reader.fields}get hasNext(){return this._currentIndex+1[t(e),e]))),i=[];for(const e of this._source.chunks()){const t=e.reader.getCursor();for(;t.next();){const e=t.getObjectId(),n=t.getDisplayId(),o=r.get(e);if(null!=o){const t=s(n,o,e);i.push(t),r.delete(e)}}}return i}getDisplayFeatures(e){const t=new Set(e),s=new Set,r=[];for(const e of this._source.chunks()){const i=e.reader.getCursor();for(;i.next();){const e=i.getObjectId(),n=i.getDisplayId();t.has(n)&&!s.has(e)&&(r.push({...i.readLegacyFeatureWorldSpace(),displayId:n}),s.add(e))}}return{features:r,aggregates:[]}}async*applyOverride(e){const t=[],s=e.reader.getCursor();for(;s.next();){const e=s.getObjectId();t.push(e);const r=this._attributeStore.createDisplayIdForObjectId(e);s.setDisplayId(r),this._attributeStore.setAttributeData(r,s,this._evalOptions)}const r=this.getDisplayIds(t),i=this.getDisplayIds(e.removed),n=new Ae(this._source.metadata);n.applyOverrides(e),this.handledChunks.add(n.chunkId),this.handledChunksForAttributeData.add(n.chunkId),this.handledChunksForIdCreation.add(n.chunkId);for(const e of this._sendStates.values())e.handledChunks.add(n.chunkId),yield new K(e.subscription,null,r,!1,n.queryInfo);for(const e of this._sendStates.values()){const t=n.getTileReader(e.subscription.tile);yield new K(e.subscription,t,i,!1,n.queryInfo)}for(const t of e.removed)this._attributeStore.releaseDisplayIdForObjectId(t)}async*updateChunks(){if(this._source.chunks().length){await this._updateAttributeData();for(const e of this._sendStates.values())yield*this._update(e)}}removeChunks(e){for(const t of e)this.handledChunks.delete(t.chunkId),this.handledChunksForAttributeData.delete(t.chunkId),this._cleanupChunkIds(t)}afterUpdateChunks(){for(const e of this._streamLayerDeferredObjectIdsToRemove)this._attributeStore.releaseDisplayIdForObjectId(e);this._streamLayerDeferredObjectIdsToRemove=[]}_cleanupChunkIds(e){if(this.handledChunksForIdCreation.has(e.chunkId)){const t=e.reader.getCursor();for(;t.next();){const e=t.getObjectId();this._source.isStream?this._streamLayerDeferredObjectIdsToRemove.push(e):this._attributeStore.releaseDisplayIdForObjectId(e)}this.handledChunksForIdCreation.delete(e.chunkId)}}async _updateAttributeData(){for(const e of this._source.chunks()){const{chunkId:t,reader:s}=e;if(!this.handledChunksForIdCreation.has(t)){this.handledChunksForIdCreation.add(t);const e=s.getCursor();for(;e.next();){const t=this._attributeStore.createDisplayIdForObjectId(e.getObjectId());e.setDisplayId(t)}}}for(const e of this._source.chunks())if(!this.handledChunksForAttributeData.has(e.chunkId)){this.handledChunksForAttributeData.add(e.chunkId);const t=e.reader.getCursor();for(;t.next();){const e=t.getDisplayId();this._attributeStore.setAttributeData(e,t,this._evalOptions)}}}*_update(e){const{subscription:t,handledChunks:s}=e;for(const r of this._source.chunks()){const{chunkId:i}=r;if(s.has(i))continue;s.add(i);const n=r.getTileReader(t.tile);n&&(yield new X(e.subscription,n,!1,r.end,r.queryInfo))}}}var De=s(83491);class Le{constructor(e,t){this._connection=e,this._source=t,this._version=1,this._proxy=new P.f({fetch:(e,t)=>this._connection.layerView.fetch(e,t),fetchDictionary:(e,t)=>this._connection.layerView.fetchDictionary(e,t)}),this._attributeStore=new De.p({isLocal:!1,update:e=>(0,a.R8)(this._connection.container.updateAttributeView(e))})}destroy(){this._proxy.destory(),this._strategy?.destroy(),this._attributeStore.destroy()}get aggregateQueryEngine(){return this._strategy?.aggregateQueryEngine}getDisplayFeatures(e){return this._strategy?this._strategy.getDisplayFeatures(e):{features:[],aggregates:[]}}getFeatureObjectIdsForAggregate(e){return this._strategy?this._strategy.getFeatureObjectIdsForAggregate(e):[]}onSubscribe(e){this._strategy?.onSubscribe(e)}onUnsubscribe(e){this._strategy?.onUnsubscribe(e)}async update(e,t,s,r,i){const o=e.processor,a=(0,y.Hg)(this._schema,o);if(!a&&!r)return;(0,n.Z)("esri-2d-update-debug"),this._schema=o;const u=m.Z.fromJSON(e.source.mutable.dataFilter.outSpatialReference),c=new ee.O({fields:this._source.metadata.fieldsIndex,spatialReference:u});return await this._attributeStore.update(o.storage,c,this._source.metadata,u,t),this._strategy?.invalidateAttributeData(),r||(0,y.uD)(a,"mesh")?((0,y.uD)(a,"mesh.strategy")&&await this._updateStrategy(o.mesh.strategy,u,i,o.mesh.timeZone),this._updateSortKey(c,"sortKey"in o.mesh?o.mesh.sortKey:null),((0,y.uD)(a,"mesh.factory")||"dictionary"===o.mesh.factory.symbology.type)&&(this._factory=await A.create(c,this._proxy,o.mesh.factory,s)),this._invalidate(),this._version=t,this._connection.container.updateRenderState(this._version)):void 0}async applyOverride(e){if(!this._strategy)return;const t=this._strategy.applyOverride(e);for await(const e of t)try{await this._process(e)}catch(e){}this._source.applyOverride(e)}async updateChunks(){await this._doUpdateChunks(),this._strategy?.afterUpdateChunks()}async removeChunks(e){this._strategy?.removeChunks(e),this._attributeStore.incrementDisplayIdGeneration()}updateHighlight({highlights:e}){if(!this._strategy)return void this._attributeStore.setHighlight(e.map((({objectId:e,highlightFlags:t})=>({objectId:e,highlightFlags:t,displayId:-1}))),e);const t=this._strategy.displayMap(e,(({objectId:e})=>e),((e,{highlightFlags:t},s)=>({objectId:s,displayId:e,highlightFlags:t})));this._attributeStore.setHighlight(t,e)}async _doUpdateChunks(){if(!this._strategy)return;const e=this._strategy.updateChunks(),t=[],s=new Map;for await(const r of e){let e=s.get(r.id);null==e&&(e=new D({concurrency:16,process:e=>this._process(e)}),s.set(r.id,e));const i=e.push(r).catch((e=>(0,a.H9)(e)));t.push(i)}try{await Promise.all(t)}catch(e){}(0,n.Z)("esri-2d-update-debug"),await this._attributeStore.sendUpdates(),(0,n.Z)("esri-2d-update-debug")}async _updateStrategy(e,t,s,r){switch(this._strategy?.destroy(),e.type){case"feature":this._strategy=new Ee(this._source,this._attributeStore,r);break;case"binning":this._strategy=await ae.create(e,t,this._source,this._attributeStore,r);break;case"cluster":this._strategy=await Te.create(this._connection,e,t,this._source,this._attributeStore,r)}for(const e of s)this._strategy.onSubscribe(e)}async _updateSortKey(e,t){if(this._sortInfo=(0,g.SC)(this._sortInfo?.computed),null!=t){const s=t.byRenderer?null:await e.createComputedField(t);this._sortInfo={...t,computed:s}}}_invalidate(){this._strategy&&this._strategy.invalidate()}async _process(e){const t=e.subscription;if((0,n.Z)("esri-2d-update-debug")){t.tile}await this._fetchResources(e),(0,a.k_)(t.signal);const s=await this._write(e,t.tile.createArcadeEvaluationOptions(this._schema.mesh.timeZone)),r=t.tile.tileInfoView.tileInfo.isWrappable,{message:i,transferList:o}=s.serialize(r),u=e.createMessage(i,this._version,this._attributeStore.epoch);if((0,a.k_)(t.signal),this._connection.container.onMessage(u,{signal:t.signal,transferList:o}),this._attributeStore.sendUpdates(),(0,n.Z)("esri-2d-update-debug")){t.tile}}async _fetchResources(e){await this._fetchMatcherResources(e),await this._fetchWriterResources(e)}async _fetchMatcherResources(e){if(e.reader)return this._factory.enqueueMatcherRequests(this._proxy,e.reader)}async _fetchWriterResources(e){if(!e.reader)return;const t=e.reader.getCursor(),s=e.subscription.tile.createArcadeEvaluationOptions(this._schema.mesh.timeZone);for(;t.next();)this._factory.enqueueWriterRequests(this._proxy,t,s);await this._proxy.fetchEnqueuedResources()}async _write(e,t){const s=e.subscription.tile,r=e.reader?.getCursor(),i=r?.getSize()??0,n=s.tileInfoView.tileInfo.isWrappable,o=new x(s.key,this._strategy.enablePixelBuffering,n,i);if(!r)return o;const a=s.createArcadeEvaluationOptions(this._schema.mesh.timeZone);for(;r.next();){const e=this._getSortKeyValue(r,t);o.entityStart(r.getDisplayId(),e),this._factory.write(o,this._proxy,r,a,s.level),o.entityEnd()}return o}_getSortKeyValue(e,t){if(!this._sortInfo)return 0;const{computed:s,order:r,byRenderer:i}=this._sortInfo,n=i?this._factory.getSortKey(e,t):s?.read(e,t);return null==n||isNaN(n)?0:n*("asc"===r?-1:1)}}var Ne=s(66341),Ge=s(28500);class We{static from(e){let t=0,s=0,r=0;return e.forEach((e=>{const i=e._readGeometry();i&&(s+=i.isPoint?1:i.lengths.reduce(((e,t)=>e+t),0),r+=i.isPoint?1:i.lengths.length,t+=1)})),new We(t,s,r)}constructor(e,t,s){this.featureCount=e,this.vertexCount=t,this.ringCount=s}toJSON(){return{featureCount:this.featureCount,ringCount:this.featureCount,vertexCount:this.featureCount}}}var ze=s(37956),Ue=s(20692),Be=s(14136);class Ve{static fromSchema(e,t){return new Ve(function(e,t){const{service:s}=e,r=s.orderByFields??t.objectIdField+" ASC",i=s.source,n={returnCentroid:!(null!==i&&"object"==typeof i&&"path"in i&&(0,Ue.M8)(i.path))&&"esriGeometryPolygon"===t.geometryType,returnGeometry:!0,timeReferenceUnknownClient:t.timeReferenceUnknownClient??void 0,outSpatialReference:m.Z.fromJSON(e.mutable.dataFilter.outSpatialReference),orderByFields:[r],where:e.mutable.dataFilter.definitionExpression??"1=1",outFields:e.mutable.availableFields};if("feature"===e.type){const{gdbVersion:t,historicMoment:s,timeExtent:r}=e.mutable.dataFilter;return{...n,gdbVersion:t,historicMoment:s?new Date(s):null,timeExtent:r?ze.Z.fromJSON(r):null,outFields:e.mutable.availableFields}}return n}(e,t),e.mutable.dataFilter.customParameters,t.geometryType,e.service.queryMetadata.capabilities)}constructor(e,t,s,r){this._queryParams=e,this._customParameters=t,this._geometryType=s,this._capabilities=r}get pageSize(){if(null==this._capabilities)throw new Error("InternalError: Service does not support paged queries");const{query:e}=this._capabilities,t=e.supportsMaxRecordCountFactor?4:null,s=(e.maxRecordCount??8e3)*(t??1);return Math.min(8e3,s)}updateFields(e){this._queryParams.outFields=e}createPatchFieldsQuery(e,t){const s=e.clone();if("*"===this._queryParams.outFields[0]){if("*"===(s.outFields??[])[0])return null;s.outFields=this._queryParams.outFields}else{const e=new Set(this._queryParams.outFields),r=[];for(const s of e)t.hasField(s)||r.push(s);if(0===r.length)return null;s.outFields=r}return s.returnGeometry=!1,s.returnCentroid=!1,s.quantizationParameters=null,s.cacheHint=!0,{inner:s,customParameters:this._customParameters}}createQuery(e={}){if(!this._queryParams)throw new Error("InternalError: queryInfo should be defined");return{inner:new Be.Z({...this._queryParams,...e}),customParameters:this._customParameters}}createTileQuery(e,t){if(null==this._capabilities)throw new Error("InternalError: Service does not support tile queries");const s=this.createQuery(t),r=s.inner;return r.quantizationParameters=t.quantizationParameters??e.getQuantizationParameters(),r.resultType="tile",r.geometry=e.extent,this._capabilities.query.supportsQuantization?"esriGeometryPolyline"===this._geometryType&&(r.maxAllowableOffset=e.resolution*(0,n.Z)("feature-polyline-generalization-factor")):"esriGeometryPolyline"!==this._geometryType&&"esriGeometryPolygon"!==this._geometryType||(r.maxAllowableOffset=e.resolution,"esriGeometryPolyline"===this._geometryType&&(r.maxAllowableOffset*=(0,n.Z)("feature-polyline-generalization-factor"))),r.defaultSpatialReferenceEnabled=this._capabilities.query.supportsDefaultSpatialReference,r.compactGeometryEnabled=this._capabilities.query.supportsCompactGeometry,this._capabilities.query.supportsMaxRecordCountFactor&&(r.maxRecordCountFactor=4),s}createPagedTileQuery(e,t){const s=this.pageSize;return this.createTileQuery(e,{start:s*t,num:s,returnExceededLimitFeatures:!0})}createPagedQuery(e){const t=this.pageSize;return this.createQuery({start:t*e,num:t,returnExceededLimitFeatures:!0,maxRecordCountFactor:4})}}var $e=s(36663),Ye=s(74396),Je=s(81977),He=s(13802),Qe=s(40266);let Xe=class extends Ye.Z{constructor(e){super(),this._connection=e,this._enabledEventTypes=new Set,this._updateInfo={websocket:0,client:0},this._lastTime=performance.now(),this.addHandles([(0,c.YP)((()=>this._strategy?.connectionStatus??"disconnected"),(e=>{this._layerView.setProperty({propertyName:"pipelineConnectionStatus",value:e})}),{initial:!0}),(0,c.YP)((()=>this._strategy?.errorString||null),(e=>this._layerView.setProperty({propertyName:"pipelineErrorString",value:e})),{initial:!0})])}destroy(){this._strategy=null,this.removeAllHandles()}get _layerView(){return this._connection.layerView}set strategy(e){null==this._strategy&&this._resetUpdateInfo(performance.now());const t="event-handles";this.removeHandles(t),null!=e&&this.addHandles([e.events.on("data-received",(e=>this._onFeature(e))),e.events.on("message-received",(e=>this._onWebSocketMessage(e))),e.events.on("features-updated",(e=>this._onUpdate(e))),e.events.on("tick",(()=>this._onTick()))],t),this._strategy=e}updateCustomParameters(e){null!=e&&this._strategy?.updateCustomParameters(e)}sendMessageToSocket(e){this._strategy?.sendMessageToSocket(e)}sendMessageToClient(e){this._strategy?.sendMessageToClient(e)}enableEvent(e,t){t?this._enabledEventTypes.add(e):this._enabledEventTypes.delete(e)}disconnect(){this._strategy?.disconnect()}connect(){this._strategy?.connect()}clear(){this._strategy?.clear()}_onWebSocketMessage(e){this._enabledEventTypes.has("message-received")&&this._layerView.emitEvent({name:"message-received",event:e})}_onFeature(e){this._updateInfo.websocket++,this._enabledEventTypes.has("data-received")&&this._layerView.emitEvent({name:"data-received",event:{attributes:e.attributes,centroid:e.centroid,geometry:e.geometry}})}_onUpdate(e){this._updateInfo.client+=e}_onTick(){const e=performance.now(),t=e-this._lastTime;if(t>2500){const s=Math.round(this._updateInfo.client/(t/1e3)),r=Math.round(this._updateInfo.websocket/(t/1e3));this._resetUpdateInfo(e),this._layerView.emitEvent({name:"update-rate",event:{client:s,websocket:r}})}}_resetUpdateInfo(e){this._lastTime=e,this._updateInfo.client=0,this._updateInfo.websocket=0}};(0,$e._)([(0,Je.Cb)()],Xe.prototype,"_strategy",void 0),Xe=(0,$e._)([(0,Qe.j)("esri.views.2d.layers.features.sources.StreamMessenger")],Xe);class Ke{constructor(e){this._store=e,this._controller=new AbortController}destroy(){this._controller.abort()}get _options(){return{signal:this._controller.signal}}async queryOverride(e){throw new Error("InternalError: LoadStrategy does not support fetching")}}var et=s(97595),tt=s(7505),st=s(53237),rt=s(76480),it=s(28802),nt=s(81500);const ot=268435455;class at{constructor(){this.hasFeatures=!1,this.exceededTransferLimit=!1,this.fieldCount=0,this.featureCount=0,this.objectIdFieldIndex=0,this.vertexCount=0,this.offsets={attributes:new Array,geometry:new Array},this.centroid=new Array}}const ut=268435455,ct=128e3,lt={small:{delta:new Int32Array(128),decoded:new Int32Array(128)},large:{delta:new Int32Array(ct),decoded:new Int32Array(ct)}};function ht(e){return e<=lt.small.delta.length?lt.small:(e<=lt.large.delta.length||(lt.large.delta=new Int32Array(Math.round(1.25*e)),lt.large.decoded=new Int32Array(Math.round(1.25*e))),lt.large)}function dt(e){for(;e.next();){if(1===e.tag())return e.getMessage();e.skip()}return null}function _t(e,t,s,r,i,n){return.5*Math.abs(e*r+s*n+i*t-e*n-s*t-i*r)}function ft(e,t,s,r){return 0==e*r-s*t&&e*s+t*r>0}class pt extends ie.s{static fromBuffer(e,t,s=!1){const i=t.geometryType,n=function(e){try{const t=2,s=new rt.Z(new Uint8Array(e),new DataView(e));for(;s.next();){if(s.tag()===t)return dt(s.getMessage());s.skip()}}catch(e){const t=new r.Z("query:parsing-pbf","Error while parsing FeatureSet PBF payload",{error:e});He.Z.getLogger("esri.view.2d.layers.features.support.FeatureSetReaderPBF").error(t)}return null}(e),o=function(e,t,s=!1){const i=e.asUnsafe(),n=i.pos(),o=new at;let a=0,u=0,c=null,l=null,h=null,d=!1;const _=[];for(;i.next();)switch(i.tag()){case 1:c=i.getString();break;case 3:l=i.getString();break;case 12:h=i.processMessage(nt.G$);break;case 9:if(o.exceededTransferLimit=i.getBool(),o.exceededTransferLimit){o.offsets.geometry=s?new Float64Array(8e3):new Int32Array(8e3),o.centroid=s?new Float64Array(16e3):new Int32Array(16e3);for(let e=0;eu.length)for(let e=0;e=e?(c+=-.5*(o-l)*(f+h),i>1&&ft(u[a-2],u[a-1],d,_)?(u[a-2]+=d,u[a-1]+=_):(u[a++]=d,u[a++]=_,i++),l=o,h=f):(s+=d,n+=_),d=s,_=n,r++}i<3||o?a-=2*i:(c+=-.5*(l+d-l)*(h+_+h),ft(u[a-2],u[a-1],d,_)?(u[a-2]+=d,u[a-1]+=_,n.push(i)):(u[a++]=d,u[a++]=_,n.push(++i)))}else{let e=0,r=t.getSInt32(),i=t.getSInt32();this.hasZ&&t.getSInt32(),this.hasM&&t.getSInt32(),u[a++]=r,u[a++]=i,e+=1;for(let n=1;n2&&ft(u[a-2],u[a-1],s,o)?(u[a-2]+=s,u[a-1]+=o):(u[a++]=s,u[a++]=o,e+=1),r=l,i=h}n.push(e)}break}default:t.skip()}return this._cache.area=c,n.length?new ue.Z(n,u):null}}class gt{constructor(e,t){this.service=e,this._metadata=t}destroy(){}}class yt extends gt{constructor(e,t){super(e,t),this._portsOpen=async function(e){const t=new et.Z;return await t.open(e,{}),t}(e.source).then((e=>this.client=e))}destroy(){this.client.close(),this.client=null}async executeQuery(e,t){await this._portsOpen;const s=await this.client.invoke("queryFeatures",e.toJSON(),t);return ne.fromFeatureSet(s,this._metadata)}}class mt extends gt{async executeQuery(e,t){const{data:s}=await(0,Ge.n7)(this.service.source,e,t),r=!e.quantizationParameters;return pt.fromBuffer(s,this._metadata,r)}}class bt extends gt{async executeQuery(e,t){const{source:s,queryMetadata:r}=this.service,i=r.capabilities;if(null!=e.quantizationParameters&&!i.query.supportsQuantization){const r=e.clone(),i=(0,tt.vY)(r.quantizationParameters);r.quantizationParameters=null;const{data:n}=await(0,Ge.JT)(s,r,this._metadata.spatialReference,t),o=(0,N.h_)(n,this._metadata.objectIdField);return(0,N.RZ)(i,o),ne.fromOptimizedFeatureSet(o,this._metadata)}const{data:n}=await(0,Ge.JT)(s,e,this._metadata.spatialReference,t);return"esriGeometryPoint"===this._metadata.geometryType&&(n.features=n.features?.filter((e=>{if(null!=e.geometry){const t=e.geometry;return Number.isFinite(t.x)&&Number.isFinite(t.y)}return!0}))),ne.fromFeatureSet(n,this._metadata)}}class wt extends gt{async executeQuery(e,t){const{capabilities:s}=this.service.queryMetadata;if(e.quantizationParameters&&!s.query.supportsQuantization){const s=e.clone(),r=(0,tt.vY)(s.quantizationParameters);s.quantizationParameters=null;const i=await(0,st.WW)(this.service.source,e,t);return(0,N.RZ)(r,i),ne.fromOptimizedFeatureSet(i,this._metadata)}const r=await(0,st.WW)(this.service.source,e,t);return ne.fromOptimizedFeatureSet(r,this._metadata)}}class It extends Ke{constructor(e,t,s,r,i){super(s),this._serviceInfo=e,this._queryInfo=t,this._metadata=r,this._eventLog=i,this._queue=new E.e({concurrency:16,process:async e=>{const t={signal:e.options?.signal,query:e.query.customParameters};return this._adapter.executeQuery(e.query.inner,t)}}),this._adapter=function(e,t){switch(e.type){case"memory":return new yt(e,t);case"ogc":return new wt(e,t);case"feature-service":return e.queryMetadata.capabilities.query.supportsFormatPBF&&(0,n.Z)("featurelayer-pbf")?new mt(e,t):new bt(e,t)}}(e,r)}async updateFields(e){this._queryInfo.updateFields(e);const t=Array.from(this._store.chunks()).map((async e=>{const t=Be.Z.fromJSON(e.queryInfo.queryJSON);if(t)try{return await this._tryUpdateFields(e.reader,t),null}catch(e){return e}})),s=(await Promise.all(t)).filter((e=>e));if(s.length)throw new r.Z("featurelayer-query","Encountered errors when downloading fields",{errors:s})}async queryOverride({edits:e}){const t=[],s=[];for(const r of e.removed)null!=r.objectId&&-1!==r.objectId?t.push(r.objectId):s.push(r.globalId);s.length&&t.push(...this._mapGlobalIdsToObjectIds(s));const r=e.addOrModified.map((({objectId:e})=>e));let i;if(r.length){const e=this._queryInfo.createQuery({objectIds:r});i=await this._fetch(e)}else i=ne.empty(this._metadata);return{reader:i,removed:t}}_mapGlobalIdsToObjectIds(e){const t=new Set(e),s=this._metadata.globalIdField;if(null==s)throw new Error("InternalError: Recieved an edit with globalIds, but not supported by the service");const r=[];return this._store.forEachUnsafe((e=>{const i=e.readAttribute(s);t.has(i)&&r.push(e.getObjectId())})),r}async _fetch(e,t){const s=await this._enqueue(e,t);return await this._tryUpdateFields(s,e.inner),s}async _tryUpdateFields(e,t){const s=this._queryInfo.createPatchFieldsQuery(t,e);if(!s)return;const r=await this._enqueue(s,this._options);e.joinAttributes(r)}async _enqueue(e,t){return this._eventLog.onEvent({type:"fetchStart"}),this._queue.push({query:e,options:t}).finally((()=>{this._eventLog.onEvent({type:"fetchEnd",done:0===this._queue.length})}))}}class vt extends It{constructor(){super(...arguments),this._chunksById=new Map}unload(e){this._removeChunks(e.tile)}_addChunk(e){const t=e.tile.id;this._chunksById.has(t)||this._chunksById.set(t,[]);(e.size()||e.first||e.end)&&((0,n.Z)("esri-2d-update-debug"),this._chunksById.get(t).push(e),this._store.insert(e))}_removeChunks(e){const t=this._chunksById.get(e.key.id)??[];for(const e of t)(0,n.Z)("esri-2d-update-debug"),this._store.remove(e);this._chunksById.delete(e.key.id)}}class St extends je{constructor(e,t,s,r,i,n){super(),this._reader=e,this._queryJSON=t,this._tile=s,this._sourceTile=r,this._sourceTileDepth=i,this._end=n,this.chunkId=`${this._tile.key.id}.${this._sourceTile?.key.id}${this._end?"e":""}`,this.normalizedChunkId=`${this._tile.key.normalizedId}.${this._sourceTile?.key.normalizedId}${this._end?"e":""}`}get queryInfo(){return{type:"drill-down-tile",chunkId:this.chunkId,tileId:this._tile.key.id,queryJSON:this._queryJSON,sourceTileDepth:this._sourceTileDepth,sourceTileId:this._sourceTile?.key.id,size:this.size(),end:this.end}}get first(){return 0===this._sourceTileDepth}get reader(){return this._reader}get end(){return this._end}get tile(){return this._tile}get isTiled(){return!0}getTileReader(e){return this._tile.key.id===e.key.id?this.reader:null}}class xt{constructor(e,t){this.subscription=e,this._tileIdToResult=new Map,this._controller=new AbortController,(0,a.fu)(e.options,(()=>this._controller.abort())),(0,a.fu)(t,(()=>this._controller.abort()))}get(e){return this._tileIdToResult.get(e)}set(e,t){this._tileIdToResult.set(e,t)}get options(){return{signal:this._controller.signal}}}class kt extends vt{constructor(){super(...arguments),this._loadStates=new Map}get about(){return{willQueryAllFeatures:!1,willQueryFullResolutionGeometry:!1}}async load(e){this._loadStates.has(e.key.id)||this._loadStates.set(e.key.id,new xt(e,this._options));const t=this._loadStates.get(e.key.id);let s;try{for await(const s of this._fetchChunkInfos(t,e.tile,0)){const{queryJSON:t,reader:r,sourceTile:i,sourceTileDepth:n,tile:o}=s,u=new St(r,t,o,i,n,!1);(0,a.k_)(e.options),this._addChunk(u)}}catch(e){s=e}const r=new St(ne.empty(this._metadata),null,e.tile,null,-1,!0);if(this._addChunk(r),s)throw s}unload(e){super.unload(e),this._loadStates.delete(e.key.id)}async*_fetchChunkInfos(e,t,s){let r=e.get(t.id);const i=!!r;if(r||(r=await this._fetchChunkInfo(e,t,s),e.set(t.id,r)),r.reader.exceededTransferLimit&&s<(0,n.Z)("featurelayer-query-max-depth"))for(const r of t.createChildTiles())yield*this._fetchChunkInfos(e,r,s+1);else i||(yield r)}async _fetchChunkInfo(e,t,s){const r=e.subscription.tile.getQuantizationParameters(),i=this._queryInfo.createTileQuery(t,{returnExceededLimitFeatures:!1,quantizationParameters:r});return{reader:await this._fetch(i,e.subscription.options),queryJSON:i.inner.toJSON(),tile:e.subscription.tile,sourceTile:t,sourceTileDepth:s}}}class Ft extends je{constructor(e,t,s,r,i){super(),this._reader=e,this._queryJSON=t,this._tile=s,this._page=r,this._end=i,this.chunkId=`${this._tile.key.id}.${this._page}${this.end?"e":""}`,this.normalizedChunkId=`${this._tile.key.normalizedId}.${this._page}${this.end?"e":""}`}get queryInfo(){return{type:"paged-tile",chunkId:this.chunkId,tileId:this._tile.key.id,queryJSON:this._queryJSON,page:this._page,size:this.size(),end:this.end}}get reader(){return this._reader}get first(){return 0===this._page}get end(){return this._end}get page(){return this._page}get tile(){return this._tile}get isTiled(){return!0}getTileReader(e){return this._tile.key.id===e.key.id?this.reader:null}}class Tt{constructor(e,t){this.subscription=e,this._pages=new Set,this._controller=new AbortController,this._done=!1,(0,a.fu)(e.options,(()=>this._controller.abort())),(0,a.fu)(t,(()=>this._controller.abort()))}resetAbortController(){this._controller=new AbortController}get pageStart(){let e=-1;for(const t of this._pages.values())e=Math.max(e,t);return e+1}get done(){return this._done}get options(){return{signal:this._controller.signal}}add(e,t){this._pages.add(e),this._done=this._done||t}}class Ct extends vt{constructor(){super(...arguments),this._loadStates=new Map}get about(){return{willQueryAllFeatures:!1,willQueryFullResolutionGeometry:!1}}async load(e){this._loadStates.has(e.key.id)||this._loadStates.set(e.key.id,new Tt(e,this._options));const t=this._loadStates.get(e.key.id);let s;t.resetAbortController();try{await this._fetchPages(t)}catch(e){s=e}const r=new Ft(ne.empty(this._metadata),null,e.tile,-1,!0);if((0,a.Hc)(t.options)||this._addChunk(r),s)throw s}unload(e){super.unload(e),this._loadStates.delete(e.key.id)}async _fetchPages(e){let t=0,s=e.pageStart,r=1;for(;t<20&&!e.done;){const i=[];for(let t=0;tt)).sort(((e,t)=>this._random.getInt()-this._random.getInt())),i=await Promise.all(s.map((e=>this._downloadPage(e)))),n=new Mt(ne.empty(this._metadata),null,-1,!0);this._store.insert(n);const o=i.filter((e=>e));if(o.length)throw new r.Z("featurelayer-query","Encountered errors when downloading data",{errors:o})}async _downloadPage(e){try{const t=this._queryInfo.createPagedQuery(e),s=await this._fetch(t,this._options),r=new Mt(s,t.inner.toJSON(),e,!1);return(0,a.k_)(this._options),this._store.insert(r),null}catch(e){return e}}}var qt=s(12348),Zt=s(19431);const Rt="__esri_timestamp__";class jt{constructor(e,t,s,r,i=128){this._trackIdToObservations=new Map,this._idCounter=0,this._lastPurge=performance.now(),this._addOrUpdated=new Map,this._removed=[],this._maxAge=0,this._timeInfo=s,this._purgeOptions=r,this.store=e,this.objectIdField=t,this.purgeInterval=i,this._useGeneratedIds="__esri_stream_id__"===this.objectIdField}removeById(e){this._removed.push(e)}removeByTrackId(e){const t=this._trackIdToObservations.get(e);if(t)for(const e of t.entries)this._removed.push(e)}add(e){if(this._useGeneratedIds){const t=this._nextId();e.attributes[this.objectIdField]=t,e.objectId=t}else e.objectId=e.attributes[this.objectIdField];const t=e.objectId;if(this._addOrUpdated.set(t,e),this._maxAge=Math.max(this._maxAge,e.attributes[this._timeInfo.startTimeField]),!this._timeInfo.trackIdField)return null==this._trackIdLessObservations&&(this._trackIdLessObservations=new qt.Z(1e5)),void this._trackIdLessObservations.enqueue(t);const s=e.attributes[this._timeInfo.trackIdField];if(!this._trackIdToObservations.has(s)){const e=null!=this._purgeOptions?.maxObservations?this._purgeOptions.maxObservations:1e3,t=(0,Zt.uZ)(e,0,1e3);this._trackIdToObservations.set(s,new qt.Z(t))}const r=this._trackIdToObservations.get(s),i=r?.enqueue(t);null!=i&&(this._addOrUpdated.has(i)?this._addOrUpdated.delete(i):this._removed.push(i))}checkForUpdates(){const e=this._getToAdd(),t=this._getToRemove(),s=performance.now();s-this._lastPurge>=this.purgeInterval&&(this._purge(s),this._lastPurge=s);const r=[];if(null!=t)for(const e of t){const t=this.store.removeById(e);null!=t&&r.push(t)}const i=[];if(null!=e){const r=new Set(t??[]);for(const t of e)r.has(t.objectId)||(t.attributes[Rt]=s,this.store.add(t),i.push(t))}return!(!i.length&&!r?.length||(this.store.update(i,r),0))}_getToAdd(){if(!this._addOrUpdated.size)return null;const e=new Array(this._addOrUpdated.size);let t=0;return this._addOrUpdated.forEach((s=>e[t++]=s)),this._addOrUpdated.clear(),e}_getToRemove(){const e=this._removed;return this._removed.length?(this._removed=[],e):null}_nextId(){const e=this._idCounter;return this._idCounter=(this._idCounter+1)%4294967294+1,e}_purge(e){const t=this._purgeOptions;null!=t&&(this._purgeSomeByDisplayCount(t),this._purgeByAge(t),this._purgeByAgeReceived(e,t),this._purgeTracks())}_purgeSomeByDisplayCount(e){if(!e.displayCount)return;let t=this.store.size;if(t>e.displayCount){if(this._timeInfo.trackIdField)for(const s of this._trackIdToObservations.values())if(t>e.displayCount&&s.size){const e=s.dequeue();this._removed.push(e),t--}if(null!=this._trackIdLessObservations){let s=t-e.displayCount;for(;s-- >0;){const e=this._trackIdLessObservations.dequeue();null!=e&&this._removed.push(e)}}}}_purgeByAge(e){const t=this._timeInfo?.startTimeField;if(!e.age||!t)return;const s=60*e.age*1e3,r=this._maxAge-s;this.store.forEach((e=>{e.attributes[t]{e.attributes[Rt]{0===e.size&&this._trackIdToObservations.delete(t)}))}}var At=s(8705);let Pt=class extends Ye.Z{constructor(e){super(e)}get connectionStatus(){return this.connection?.connectionStatus}get errorString(){return this.connection?.errorString}};(0,$e._)([(0,Je.Cb)()],Pt.prototype,"connection",void 0),(0,$e._)([(0,Je.Cb)()],Pt.prototype,"connectionStatus",null),(0,$e._)([(0,Je.Cb)()],Pt.prototype,"errorString",null),Pt=(0,$e._)([(0,Qe.j)("esri.views.2d.layers.features.sources.StreamConnectionState")],Pt);class Et{constructor(e,t){this._metadata=e,this._onUpdate=t,this._objectIdToFeature=new Map}get size(){return this._objectIdToFeature.size}get reader(){return ne.fromFeatures([...this._objectIdToFeature.values()],this._metadata)}add(e){this._objectIdToFeature.set(e.objectId,e)}forEach(e){this._objectIdToFeature.forEach(e)}removeById(e){const t=this._objectIdToFeature.get(e);return t?(this._objectIdToFeature.delete(e),t):null}clear(){this._objectIdToFeature=new Map}update(e,t){this._onUpdate(e?.length??0)}}class Dt extends je{constructor(e){super(),this._reader=e,this.chunkId="stream-chunk",this.normalizedChunkId="stream-chunk"}get reader(){return this._reader}get first(){return!0}get end(){return!0}get queryInfo(){return{type:"stream",chunkId:this.chunkId,size:this.size(),end:this.end}}get isTiled(){return!1}getTileReader(e){const t=this.queryFeaturesInBounds(e.bounds);return t.setTransformForDisplay(e.transform),t}}class Lt extends Ke{constructor(e,t,s,r,i){super(s),this._service=e,this._dataFilter=t,this._streamOptions=r,this._metadata=i,this._connectionState=new Pt,this._forceRefresh=!1,this.events=new B.Z;const{objectIdField:n,timeInfo:o}=this._metadata,{purgeOptions:a}=t;this._stagingStore=new Et(this._metadata,(e=>this.events.emit("features-updated",e))),this._manager=new jt(this._stagingStore,n,o,a),this.connect()}destroy(){super.destroy(),this.disconnect()}get about(){return{willQueryAllFeatures:!1,willQueryFullResolutionGeometry:!1}}get connectionStatus(){return this._connectionState.connectionStatus}get errorString(){return this._connectionState?.errorString}async refresh(){const e=null!=this._chunk;this._manager.checkForUpdates()||!e||this._forceRefresh?(this._chunk&&this._store.remove(this._chunk),this._forceRefresh=!1,this._chunk=new Dt(this._stagingStore.reader),this._store.insert(this._chunk),this.events.emit("tick")):this.events.emit("tick")}async updateFields(e){throw new Error("Updating available fields not supported for StreamLayer")}async load(e){}unload(e){}disconnect(){this._connection=(0,g.SC)(this._connection),this._connectionState.connection=null,this._handlesGroup?.remove()}connect(){if(null!=this._connection)return;const{geometryType:e,spatialReference:t}=this._metadata,{maxReconnectionAttempts:s,maxReconnectionInterval:r,geometryDefinition:n,definitionExpression:o,customParameters:a}=this._dataFilter;this._connection=(0,At.createConnection)(this._service.source,t,this._streamOptions.outSR,e,o,n,s,r,a),this._handlesGroup=(0,i.AL)([this._connection.on("data-received",(e=>this._onFeature(e))),this._connection.on("message-received",(e=>this._onWebSocketMessage(e)))]),this._connectionState.connection=this._connection}clear(){this._manager.checkForUpdates(),this._stagingStore.clear(),this._forceRefresh=!0}updateCustomParameters(e){this._connection?.updateCustomParameters(e)}sendMessageToSocket(e){this._connection?.sendMessageToSocket(e)}sendMessageToClient(e){this._connection?.sendMessageToClient(e)}_onWebSocketMessage(e){if("type"in e)switch(e.type){case"delete":if(e.objectIds)for(const t of e.objectIds)this._manager.removeById(t);if(e.trackIds)for(const t of e.trackIds)this._manager.removeByTrackId(t);break;case"clear":this.clear()}this.events.emit("message-received",e)}_onFeature(e){try{this._manager.add(e),this.events.emit("data-received",e)}catch(e){}}}var Nt=s(40989);class Gt{constructor(e){this._onChange=e,this._chunks=new Map,this._chunksToRemove=[],this.events=new B.Z,this.featureAdapter=new Nt.t}destroy(){this.clear()}clear(){for(const e of this._chunks.values())this._chunksToRemove.push(e);this._chunks.clear(),null!=this._overrideChunk&&this._chunksToRemove.push(this._overrideChunk),this._overrideChunk=null}*chunks(){this._overrideChunk&&(yield this._overrideChunk),yield*this._chunks.values()}insert(e){(0,n.Z)("esri-2d-update-debug"),this._overrideChunk?.overridenIds.size&&e.reader.removeIds(this._overrideChunk.overridenIds),this._chunks.set(e.chunkId,e),this.events.emit("changed"),this._onChange()}remove(e){(0,n.Z)("esri-2d-update-debug"),this._chunks.delete(e.chunkId),this._chunksToRemove.push(e)}cleanupRemovedChunks(){const e=this._chunksToRemove;return this._chunksToRemove=[],e}applyOverrides(e,t){null==this._overrideChunk&&(this._overrideChunk=new Ae(t)),this._overrideChunk.applyOverrides(e);for(const e of this._chunks.values())e.reader.removeIds(this._overrideChunk.overridenIds),e.invalidate()}forEach(e){const t=new Set;for(const s of this.chunks()){const r=s.reader.getCursor();for(;r.next();){const s=r.getObjectId();t.has(s)||(e(r.copy()),t.add(s))}}}forEachUnsafe(e){const t=new Set;for(const s of this.chunks()){const r=s.reader.getCursor();for(;r.next();){const s=r.getObjectId();t.has(s)||(e(r),t.add(s))}}}forEachInBounds(e,t){const s=new Set;for(const r of this.chunks()){const i=r.queryFeaturesInBounds(e);for(;i.next();){const e=i.getObjectId();s.has(e)||(t(i.copy()),s.add(e))}}}forEachBounds(e,t){const s=(0,V.Ue)();for(const r of e)r.getBounds(s)&&t(s)}}var Wt=s(89370);class zt{constructor(e,t,s,r){this._aggregateAdapter=e,this._subscriptions=t,this._onChange=s,this._connection=r,this._updateTracking=new Wt.x({debugName:"FeatureSource"}),this._didInvalidateData=!1,this._store=new Gt(this._onChange)}destroy(){this._strategy?.destroy(),this._store.destroy(),this._streamMessenger?.destroy()}get _eventLog(){return this._connection.eventLog}get metadata(){if(!this._metadata)throw new Error("InternalError: Metadata not defined. Was update called?");return this._metadata}get service(){return this._schema.service}get store(){return this._store}get streamMessenger(){return null==this._streamMessenger&&this._initStreamMessenger(),this._streamMessenger}get statistics(){return We.from(this._store)}get updateTracking(){return this._updateTracking}get queryEngine(){if(!this._queryEngine){if(!this._schema)return null;const{dataFilter:e}=this._schema.mutable,t=this._schema.mutable.availableFields,s=this._metadata;this._queryEngine=new Y.q({featureStore:this._store,fieldsIndex:s.fieldsIndex,geometryType:s.geometryType,objectIdField:s.objectIdField,hasM:!1,hasZ:!1,spatialReference:e.outSpatialReference,cacheSpatialQueries:!0,aggregateAdapter:this._aggregateAdapter,timeInfo:s.timeInfo,definitionExpression:e.definitionExpression,availableFields:t})}return this._queryEngine}get isStream(){return"stream"===this._schema.type}chunks(){return Array.from(this._store.chunks())}cleanupRemovedChunks(){return this._store.cleanupRemovedChunks()}onSubscribe(e){this._eventLog.onEvent({type:"subscribe",tile:e.tile.id});const t=this._strategy?.load(e);t&&(t.then((()=>this._eventLog.onEvent({type:"loaded",tile:e.tile.id}))).catch((t=>this._eventLog.onEvent({type:"error",tile:e.tile.id,error:t}))),this._updateTracking.addPromise(t))}onResume(e){this._updateTracking.addPromise((0,a.R8)(this._strategy?.load(e)))}onUnsubscribe(e){this._eventLog.onEvent({type:"unsubscribe",tile:e.tile.id}),this._strategy?.unload(e)}getOverride(e){return this._updateTracking.addPromise(this._doGetOverride(e))}applyOverride(e){this._didInvalidateData=!0,this._store.applyOverrides(e,this.metadata)}async update(e,t){const s=e.source,r=(0,y.Hg)(this._schema?.mutable,s.mutable);if(!r)return!1;if((0,n.Z)("esri-2d-update-debug"),this._schema=s,this._metadata=new se.A(this._schema.service.metadata),this._queryEngine?.destroy(),this._queryEngine=null,"feature"===this._schema.type&&null!=this._schema.service.queryMetadata.lastEditDate&&(this._lastEditDate=this._schema.service.queryMetadata.lastEditDate),null==this._streamMessenger&&"stream"===this._schema.type&&this._initStreamMessenger(),(0,y.$c)(r,"sourceRefreshVersion")&&this._strategy?.refresh)return await this._strategy.refresh(),!0;if("feature"===s.type&&(0,y.$c)(r,"availableFields")){if(await this._queryLastEditDateChanged()||this._didInvalidateData)this._didInvalidateData=!1,await this._updateStrategy(t);else{this._eventLog.onEvent({type:"updateFieldsStart"});try{await this._strategy.updateFields(s.mutable.availableFields),this._eventLog.onEvent({type:"updateFieldsEnd"})}catch(e){this._eventLog.onEvent({type:"updateFieldsError",error:e})}}return!1}return!(!(0,y.jW)(r,"dataFilter")&&!(0,y.jW)(r,"sourceRefreshVersion")||(await this._updateStrategy(t),0))}_initStreamMessenger(){null==this._streamMessenger&&(this._streamMessenger=new Xe(this._connection))}async _doGetOverride(e){return this._strategy.queryOverride(e)}async _queryLastEditDateChanged(){if(null==this._lastEditDate)return!1;const e=this._schema.service.source,t={...e.query,f:"json"},s=(await(0,Ne.Z)(e.path,{query:t,responseType:"json"})).data.editingInfo.lastEditDate;return s!==this._lastEditDate&&(this._lastEditDate=s,!0)}async _createStrategy(){const e=this.service,t="isSourceHosted"in e&&e.isSourceHosted,s=Array.isArray(e.source),r=e.source&&"collection"in e.source,i=t||s||r;if("stream"===this._schema.type){const e=new Lt(this._schema.service,this._schema.mutable.dataFilter,this._store,{outSR:this._schema.mutable.dataFilter.outSpatialReference},this.metadata);return this._streamMessenger.strategy=e,e}const n=Ve.fromSchema(this._schema,this._metadata),o=await this._supportSnapshotMode(this._schema,n);return o?new Ot(this._schema.service,n,this._store,o.featureCount,this.metadata,this._eventLog):i?new Ct(this._schema.service,n,this._store,this.metadata,this._eventLog):new kt(this._schema.service,n,this._store,this.metadata,this._eventLog)}async _updateStrategy(e){const t=await this._createStrategy();this._eventLog.onEvent({type:"updateStrategyStart",about:t.about});const s=!!this._strategy;this._store.clear(),this._strategy?.destroy(),this._strategy=t,(0,n.Z)("esri-2d-update-debug");const r=Array.from(this._subscriptions.values());if(!r.length)return void this._eventLog.onEvent({type:"updateStrategyEnd"});const i=Promise.all(r.map((e=>this._strategy.load(e).then((()=>this._eventLog.onEvent({type:"loaded",tile:e.tile.id}))).catch((t=>this._eventLog.onEvent({type:"error",tile:e.tile.id,error:t}))))));this._updateTracking.addPromise(i);try{s&&await i}catch(e){(0,a.H9)(e)}this._eventLog.onEvent({type:"updateStrategyEnd"}),(0,n.Z)("esri-2d-update-debug")}async _supportSnapshotMode(e,t){const{queryMetadata:s}=e.service,r=s.snapshotInfo;if(!r||!r.supportsSnapshotMinThreshold||!r.snapshotCountThresholds)return null;const i=e.service.source,n=t.createQuery();n.inner.orderByFields=[],n.inner.returnGeometry=!1;const o=(await(0,Ge.hH)(i,n.inner,{query:n.customParameters})).data.count,{min:a,max:u}=r.snapshotCountThresholds;return o<=a||r.supportsSnapshotMaxThreshold&&othis._processor.getFeatureObjectIdsForAggregate(e)},this._subscriptions=new Map,this._updateRequested=!1,this._updateSubscriptionRequests=[],this._updateHighlightRequests=[]}destroy(){this._subscriptions.clear(),this._processor.destroy(),this._source.destroy(),this._handles.remove(),this._editState=null,this._tileInfoView=null}onDetach(){this.destroy(),this._initialize(this._connection)}_initialize(e){this._source=new zt(this._aggregateAdapter,this._subscriptions,(()=>this._requestUpdate()),e),this._processor=new Le(e,this._source),this._handles=(0,i.AL)([(0,c.YP)((()=>this._source.updateTracking.updating),(()=>{this._requestUpdate(),this._connection.layerView.setUpdating({data:this._source.updateTracking.updating,pipeline:!0})}))])}set remoteClient(e){this._connection=new p(e),this._initialize(this._connection)}get features(){const e=this._source.queryEngine;if(!e)throw new r.Z("no-queryEngine","No query engine defined");return e}get aggregates(){const e=this._processor.aggregateQueryEngine;if(!e)throw new r.Z("no-queryEngine","No aggregate query engine defined");return e}get processor(){return this._processor}get streamMessenger(){return this._source.streamMessenger}getDisplayFeatures(e){return this._processor.getDisplayFeatures(e)}async updateSchema(e,t){return(0,n.Z)("esri-2d-update-debug")&&this._updateSchemaState,this._updateSchemaState=new Yt(e,t),this._requestUpdate(),this._updateSchemaState.resolver.promise}updateSubscriptions(e){this._updateSubscriptionRequests.push(e),this._requestUpdate()}updateHighlight(e){this._updateHighlightRequests.push(e),this._requestUpdate()}async onEdits(e){if(null!=this._editState)throw new r.Z("InternalError - Already processing an edit");this._editState=new $t(e);const t=this._editState.resolver.promise;return this._requestUpdate(),t}queryStatistics(){return this._source.statistics.toJSON()}async queryVisibleFeatures(e,t){return this.features.executeQuery(e,t)}async queryHeatmapStatistics(e){const t=Math.round((0,l.F2)(e.radius));let s=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;const i="string"==typeof e.fieldOffset,n=e.fieldOffset??0,o=Array.from(this._subscriptions.values()),a=this._source.chunks(),u=t**2,c=3/(Math.PI*u),h=2*t,d=Math.ceil(f.i9/h);for(const t of o){const o=t.tile,l=new Float64Array(d*d);for(const t of a){const s=t.getTileReader(o);if(!s)continue;const r=s.getCursor();for(;r.next();){let t=1;if(null!=e.field){const s=r.readAttribute(e.field);t=i?-1*+s:+s+n}const s=r.readXForDisplay()/h,o=r.readYForDisplay()/h,a=Math.floor(s),_=Math.floor(o);if(a<0||_<0||a>=d||_>=d)continue;const f=((.5+a-s)*h)**2+((.5+_-o)*h)**2;if(f>u)continue;const p=t*(c*(1-f/u)**2);l[_+a*d]+=p}}for(let e=0;ee+t.size()),0)<=e.minFeatureCount){if(!this._source.updateTracking.updating){const e=[];return this._source.store.forEachUnsafe((t=>e.push(t.readLegacyFeatureWorldSpace()))),e}return null}const s=new Set,r=[],i=t.map((e=>e.reader.getCursor())),n=new u.Z,o=3*e.sampleSize;for(let a=0;a=e.sampleSize?r:null}_requestUpdate(){this._updateRequested||(this._updateRequested=!0,(0,o.Y)((()=>this._scheduleNextUpdate())))}_scheduleNextUpdate(){this._updateRequested&&(this._ongoingUpdate||(this._ongoingUpdate=this._doUpdate().finally((()=>{this._ongoingUpdate=null,this._scheduleNextUpdate()})),this._updateRequested=!1))}_subscribe(e){const t=e.tileId;if(this._subscriptions.has(t)){const s=this._subscriptions.get(t);return void(s.paused&&((0,n.Z)("esri-2d-update-debug"),s.resume(),s.version=e.version,this._source.onResume(s)))}(0,n.Z)("esri-2d-update-debug");const s=new Vt.n(this._tileInfoView,t),r=new Bt(s,e.version);this._subscriptions.set(t,r),this._source.onSubscribe(r),this._processor.onSubscribe(r)}_unsubscribe(e){const t=this._subscriptions.get(e);t&&((0,n.Z)("esri-2d-update-debug"),this._source.onUnsubscribe(t),this._processor.onUnsubscribe(t),this._subscriptions.delete(t.key.id),t.destroy())}_pauseSubscription(e){const t=this._subscriptions.get(e);t&&((0,n.Z)("esri-2d-update-debug"),t.pause())}async _doUpdate(){if((0,n.Z)("esri-2d-update-debug"),await this._connection.layerView.setUpdating({data:this._source.updateTracking.updating,pipeline:!0}),this._updateSubscriptionRequests.length){const e=this._updateSubscriptionRequests;this._updateSubscriptionRequests=[];for(const t of e)this._doUpdateSubscriptions(t)}const e=this._updateSchemaState;if(this._updateSchemaState=null,null!=e){const{schema:t,version:s}=e;await this._doUpdateSchema(t,s)}const t=this._editState;if(this._editState=null,null!=t){(0,n.Z)("esri-2d-update-debug");const e=await this._source.getOverride(t.edit);await this._processor.applyOverride(e),(0,n.Z)("esri-2d-update-debug")}if(this._updateHighlightRequests.length){const e=this._updateHighlightRequests;this._updateHighlightRequests=[];for(const t of e)this._processor.updateHighlight(t)}const s=this._source.cleanupRemovedChunks();this._processor.removeChunks(s);try{this._subscriptions.size&&((0,n.Z)("esri-2d-update-debug"),await this._processor.updateChunks(),(0,n.Z)("esri-2d-update-debug"))}catch(e){(0,a.H9)(e)}null!=t&&t.resolver.resolve(),null!=e&&e.resolver.resolve(),this._updateRequested?((0,n.Z)("esri-2d-update-debug"),await this._connection.layerView.setUpdating({data:this._source.updateTracking.updating,pipeline:!0})):((0,n.Z)("esri-2d-update-debug"),await this._connection.layerView.setUpdating({data:this._source.updateTracking.updating,pipeline:this._updateRequested}))}async _doUpdateSchema(e,t){if((0,n.Z)("esri-2d-update-debug"),!this._tileInfoView){const t=h.Z.fromJSON(e.source.tileInfoJSON);this._tileInfoView=new d.Z(t)}const s={tileInfo:this._tileInfoView?.tileInfo};try{const r=await this._source.update(e,t),i=Array.from(this._subscriptions.values());await this._processor.update(e,t,s,r,i)}catch(e){}(0,n.Z)("esri-2d-update-debug")}_doUpdateSubscriptions(e){if((0,n.Z)("esri-2d-update-debug"),!this._tileInfoView){const t=h.Z.fromJSON(e.tileInfoJSON);this._tileInfoView=new d.Z(t)}for(const t of e.subscribe)this._subscribe(t);for(const t of e.unsubscribe)this._unsubscribe(t);if((0,n.Z)("featurelayer-query-pausing-enabled"))for(const t of e.pause)this._pauseSubscription(t)}}},6413:function(e,t,s){function r(e,t,s,r){const i=e.clone(),n=1<=n?(i.col=o-n,i.world+=1):i.col=o,i.row=a,i}s.d(t,{M:function(){return r}})}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9110.fa9d5f28e6f3b77a029d.js b/docs/sentinel1-explorer/9110.fa9d5f28e6f3b77a029d.js new file mode 100644 index 00000000..4f622b43 --- /dev/null +++ b/docs/sentinel1-explorer/9110.fa9d5f28e6f3b77a029d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9110],{49110:function(I,M,N){N.r(M),N.d(M,{default:function(){return c}});const c="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41IiB2aWV3Qm94PSIwIDAgMjU2IDI1NiI+PHBhdGggZD0iTTEyOCA4YzY2LjIzIDAgMTIwIDUzLjc3IDEyMCAxMjBzLTUzLjc3IDEyMC0xMjAgMTIwUzggMTk0LjIzIDggMTI4IDYxLjc3IDggMTI4IDhtMCA4YzYxLjgxNCAwIDExMiA1MC4xODYgMTEyIDExMnMtNTAuMTg2IDExMi0xMTIgMTEyUzE2IDE4OS44MTQgMTYgMTI4IDY2LjE4NiAxNiAxMjggMTYiIHN0eWxlPSJmaWxsOnVybCgjYSk7c3Ryb2tlOiMwMDA7c3Ryb2tlLW9wYWNpdHk6LjU7c3Ryb2tlLXdpZHRoOi45NnB4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNS4zMzMgLTUuMzMzKXNjYWxlKDEuMDQxNjcpIi8+PHBhdGggZD0iTTEyOCA4YzY2LjIzIDAgMTIwIDUzLjc3IDEyMCAxMjBzLTUzLjc3IDEyMC0xMjAgMTIwUzggMTk0LjIzIDggMTI4IDYxLjc3IDggMTI4IDhtMCA0LjI5OGM2My44NTcgMCAxMTUuNzAyIDUxLjg0NSAxMTUuNzAyIDExNS43MDJTMTkxLjg1NyAyNDMuNzAyIDEyOCAyNDMuNzAyIDEyLjI5OCAxOTEuODU3IDEyLjI5OCAxMjggNjQuMTQzIDEyLjI5OCAxMjggMTIuMjk4IiBzdHlsZT0iZmlsbDp1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSgxODAgMTI4LjUzNCAxMjguNTM0KXNjYWxlKDEuMDA4MzQpIi8+PGNpcmNsZSBjeD0iMTI4IiBjeT0iMTI4IiByPSIxMTIiIHN0eWxlPSJmaWxsOnVybCgjYykiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjMzMyAtNS4zMzMpc2NhbGUoMS4wNDE2NykiLz48cGF0aCBkPSJNMTI4IDIwYzkxLjg4NCAxLjgxMSAxMDcgODggMTA3IDg4cy00NS4xODYtMjgtMTA3LTI4LTEwNyAyOC0xMDcgMjggMjEuMjQ0LTg5LjY5IDEwNy04OCIgc3R5bGU9ImZpbGw6dXJsKCNkKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuMzMzIC01LjMzMylzY2FsZSgxLjA0MTY3KSIvPjxwYXRoIGQ9Ik0xMjggMTMxLjU2VjE1OCIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6Ljk2cHg7c3Ryb2tlLWxpbmVjYXA6YnV0dCIgdHJhbnNmb3JtPSJyb3RhdGUoOTAgMTMzLjA3NCAxMjcuNzQpc2NhbGUoMS4wNDE2NykiLz48cGF0aCBkPSJNMTI4IDEyOS42NHYyNi40NCIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6Ljk2cHg7c3Ryb2tlLWxpbmVjYXA6YnV0dCIgdHJhbnNmb3JtPSJyb3RhdGUoOTAgMTUwLjA3NCAxNDQuNzQpc2NhbGUoMS4wNDE2NykiLz48cGF0aCBkPSJNMTI4IDEzMS41NlYxNTgiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDA7c3Ryb2tlLXdpZHRoOi45NnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQiIHRyYW5zZm9ybT0icm90YXRlKDE4MCAxMzAuNjY4IDEzMC40MDcpc2NhbGUoMS4wNDE2NykiLz48cGF0aCBkPSJNMTI4IDEyOS42NHYyNi40NCIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6Ljk2cHg7c3Ryb2tlLWxpbmVjYXA6YnV0dCIgdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDEzMC42NjggMTQ3LjQwNylzY2FsZSgxLjA0MTY3KSIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9IjAiIHgyPSIxIiB5MT0iMCIgeTI9IjAiIGdyYWRpZW50VHJhbnNmb3JtPSJyb3RhdGUoNDcuNjE3IC0yMS44OCA3NS4xNTYpc2NhbGUoMjM3LjgzNSkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOndoaXRlO3N0b3Atb3BhY2l0eToxIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojZGFkYWRhO3N0b3Atb3BhY2l0eToxIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImIiIHgxPSIwIiB4Mj0iMSIgeTE9IjAiIHkyPSIwIiBncmFkaWVudFRyYW5zZm9ybT0icm90YXRlKDQ3LjYxNyAtMjEuODggNzUuMTU2KXNjYWxlKDIzNy44MzUpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjp3aGl0ZTtzdG9wLW9wYWNpdHk6MSIvPjxzdG9wIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzlhOWE5YTtzdG9wLW9wYWNpdHk6MSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJkIiB4MT0iMCIgeDI9IjEiIHkxPSIwIiB5Mj0iMCIgZ3JhZGllbnRUcmFuc2Zvcm09InJvdGF0ZSgtOTAgMTA0IC0yNClzY2FsZSg2MC4wMjM2KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6d2hpdGU7c3RvcC1vcGFjaXR5Oi4wNSIvPjxzdG9wIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6d2hpdGU7c3RvcC1vcGFjaXR5Oi40Ii8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9ImMiIGN4PSIwIiBjeT0iMCIgcj0iMSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxNjUgLTEgMSAxNjUgMTI4IDIxMSkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOndoaXRlO3N0b3Atb3BhY2l0eTouNDQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOndoaXRlO3N0b3Atb3BhY2l0eTowIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PC9zdmc+"}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9112.1b0946b5e59198d81b3b.js b/docs/sentinel1-explorer/9112.1b0946b5e59198d81b3b.js new file mode 100644 index 00000000..eeff532b --- /dev/null +++ b/docs/sentinel1-explorer/9112.1b0946b5e59198d81b3b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9112,5423,5831],{12408:function(e,r,a){a.d(r,{L:function(){return n}});var t=a(40371);class n{constructor(){this._serviceMetadatas=new Map,this._itemDatas=new Map}async fetchServiceMetadata(e,r){const a=this._serviceMetadatas.get(e);if(a)return a;const n=await(0,t.T)(e,r);return this._serviceMetadatas.set(e,n),n}async fetchItemData(e){const{id:r}=e;if(!r)return null;const{_itemDatas:a}=this;if(a.has(r))return a.get(r);const t=await e.fetchData();return a.set(r,t),t}async fetchCustomParameters(e,r){const a=await this.fetchItemData(e);return a&&"object"==typeof a&&(r?r(a):a.customParameters)||null}}},53264:function(e,r,a){a.d(r,{w:function(){return u}});var t=a(88256),n=a(66341),s=a(70375),i=a(78668),c=a(20692),o=a(93968),l=a(53110);async function u(e,r){const a=(0,c.Qc)(e);if(!a)throw new s.Z("invalid-url","Invalid scene service url");const u={...r,sceneServerUrl:a.url.path,layerId:a.sublayer??void 0};if(u.sceneLayerItem??=await async function(e){const r=(await y(e)).serviceItemId;if(!r)return null;const a=new l.default({id:r,apiKey:e.apiKey}),s=await async function(e){const r=t.id?.findServerInfo(e.sceneServerUrl);if(r?.owningSystemUrl)return r.owningSystemUrl;const a=e.sceneServerUrl.replace(/(.*\/rest)\/.*/i,"$1")+"/info";try{const r=(await(0,n.Z)(a,{query:{f:"json"},responseType:"json",signal:e.signal})).data.owningSystemUrl;if(r)return r}catch(e){(0,i.r9)(e)}return null}(e);null!=s&&(a.portal=new o.Z({url:s}));try{return a.load({signal:e.signal})}catch(e){return(0,i.r9)(e),null}}(u),null==u.sceneLayerItem)return p(u.sceneServerUrl.replace("/SceneServer","/FeatureServer"),u);const f=await async function({sceneLayerItem:e,signal:r}){if(!e)return null;try{const a=(await e.fetchRelatedItems({relationshipType:"Service2Service",direction:"reverse"},{signal:r})).find((e=>"Feature Service"===e.type))||null;if(!a)return null;const t=new l.default({portal:a.portal,id:a.id});return await t.load(),t}catch(e){return(0,i.r9)(e),null}}(u);if(!f?.url)throw new s.Z("related-service-not-found","Could not find feature service through portal item relationship");u.featureServiceItem=f;const d=await p(f.url,u);return d.portalItem=f,d}async function y(e){if(e.rootDocument)return e.rootDocument;const r={query:{f:"json",...e.customParameters,token:e.apiKey},responseType:"json",signal:e.signal};try{const a=await(0,n.Z)(e.sceneServerUrl,r);e.rootDocument=a.data}catch{e.rootDocument={}}return e.rootDocument}async function p(e,r){const a=(0,c.Qc)(e);if(!a)throw new s.Z("invalid-feature-service-url","Invalid feature service url");const t=a.url.path,i=r.layerId;if(null==i)return{serverUrl:t};const o=y(r),l=r.featureServiceItem?await r.featureServiceItem.fetchData("json"):null,u=(l?.layers?.[0]||l?.tables?.[0])?.customParameters,p=e=>{const a={query:{f:"json",...u},responseType:"json",authMode:e,signal:r.signal};return(0,n.Z)(t,a)},f=p("anonymous").catch((()=>p("no-prompt"))),[d,L]=await Promise.all([f,o]),m=L?.layers,S=d.data&&d.data.layers;if(!Array.isArray(S))throw new Error("expected layers array");if(Array.isArray(m)){for(let e=0;easync function(e,r){return async function(e,r,a){const t=new e;return t.read(r,a.context),"group"===t.type&&("GroupLayer"===r.layerType?await M(t,r,a):T(r)?function(e,r,a){r.itemId&&(e.portalItem=new i.default({id:r.itemId,portal:a?.portal}),e.when((()=>{const t=t=>{const n=t.layerId;G(t,e,r,n,a);const s=r.featureCollection?.layers?.[n];s&&t.read(s,a)};e.layers?.forEach(t),e.tables?.forEach(t)})))}(t,r,a.context):v(r)&&await async function(e,r,a){const t=s.T.FeatureLayer,n=await t(),i=r.featureCollection,c=i?.showLegend,o=i?.layers?.map(((t,s)=>{const i=new n;i.read(t,a);const o={...a,ignoreDefaults:!0};return G(i,e,r,s,o),null!=c&&i.read({showLegend:c},o),i}));e.layers.addMany(o??[])}(t,r,a.context)),await(0,l.y)(t,a.context),t}(await g(e,r),e,r)}(e,a))),n=await Promise.allSettled(t);for(const r of n)"rejected"===r.status||r.value&&e.add(r.value)}const y={ArcGISDimensionLayer:"DimensionLayer",ArcGISFeatureLayer:"FeatureLayer",ArcGISImageServiceLayer:"ImageryLayer",ArcGISMapServiceLayer:"MapImageLayer",PointCloudLayer:"PointCloudLayer",ArcGISSceneServiceLayer:"SceneLayer",IntegratedMeshLayer:"IntegratedMeshLayer",OGCFeatureLayer:"OGCFeatureLayer",BuildingSceneLayer:"BuildingSceneLayer",ArcGISTiledElevationServiceLayer:"ElevationLayer",ArcGISTiledImageServiceLayer:"ImageryTileLayer",ArcGISTiledMapServiceLayer:"TileLayer",GroupLayer:"GroupLayer",GeoJSON:"GeoJSONLayer",WebTiledLayer:"WebTileLayer",CSV:"CSVLayer",VectorTileLayer:"VectorTileLayer",WFS:"WFSLayer",WMS:"WMSLayer",DefaultTileLayer:"TileLayer",IntegratedMesh3DTilesLayer:"IntegratedMesh3DTilesLayer",KML:"KMLLayer",RasterDataLayer:"UnsupportedLayer",Voxel:"VoxelLayer",LineOfSightLayer:"LineOfSightLayer"},p={ArcGISTiledElevationServiceLayer:"ElevationLayer",DefaultTileLayer:"ElevationLayer",RasterDataElevationLayer:"UnsupportedLayer"},f={ArcGISFeatureLayer:"FeatureLayer"},d={ArcGISTiledMapServiceLayer:"TileLayer",ArcGISTiledImageServiceLayer:"ImageryTileLayer",OpenStreetMap:"OpenStreetMapLayer",WebTiledLayer:"WebTileLayer",VectorTileLayer:"VectorTileLayer",ArcGISImageServiceLayer:"UnsupportedLayer",WMS:"UnsupportedLayer",ArcGISMapServiceLayer:"UnsupportedLayer",ArcGISSceneServiceLayer:"SceneLayer",DefaultTileLayer:"TileLayer"},L={ArcGISAnnotationLayer:"UnsupportedLayer",ArcGISDimensionLayer:"UnsupportedLayer",ArcGISFeatureLayer:"FeatureLayer",ArcGISImageServiceLayer:"ImageryLayer",ArcGISImageServiceVectorLayer:"ImageryLayer",ArcGISMapServiceLayer:"MapImageLayer",ArcGISStreamLayer:"StreamLayer",ArcGISTiledImageServiceLayer:"ImageryTileLayer",ArcGISTiledMapServiceLayer:"TileLayer",BingMapsAerial:"BingMapsLayer",BingMapsRoad:"BingMapsLayer",BingMapsHybrid:"BingMapsLayer",CatalogLayer:"CatalogLayer",CSV:"CSVLayer",DefaultTileLayer:"TileLayer",GeoRSS:"GeoRSSLayer",GeoJSON:"GeoJSONLayer",GroupLayer:"GroupLayer",KML:"KMLLayer",KnowledgeGraphLayer:"UnsupportedLayer",MediaLayer:"MediaLayer",OGCFeatureLayer:"OGCFeatureLayer",OrientedImageryLayer:"OrientedImageryLayer",SubtypeGroupLayer:"SubtypeGroupLayer",VectorTileLayer:"VectorTileLayer",WFS:"WFSLayer",WMS:"WMSLayer",WebTiledLayer:"WebTileLayer"},m={ArcGISFeatureLayer:"FeatureLayer",SubtypeGroupTable:"UnsupportedLayer"},S={ArcGISImageServiceLayer:"ImageryLayer",ArcGISImageServiceVectorLayer:"ImageryLayer",ArcGISMapServiceLayer:"MapImageLayer",ArcGISTiledImageServiceLayer:"ImageryTileLayer",ArcGISTiledMapServiceLayer:"TileLayer",OpenStreetMap:"OpenStreetMapLayer",VectorTileLayer:"VectorTileLayer",WebTiledLayer:"WebTileLayer",BingMapsAerial:"BingMapsLayer",BingMapsRoad:"BingMapsLayer",BingMapsHybrid:"BingMapsLayer",WMS:"WMSLayer",DefaultTileLayer:"TileLayer"},w={...L,LinkChartLayer:"LinkChartLayer"},I={...m},h={...S};async function g(e,r){const a=r.context,t=b(a);let l=e.layerType||e.type;!l&&r?.defaultLayerType&&(l=r.defaultLayerType);const u=t[l];let y=u?s.T[u]:s.T.UnknownLayer;if(T(e)){const r=a?.portal;if(e.itemId){const a=new i.default({id:e.itemId,portal:r});await a.load();const t=(await(0,o.v)(a,new n.L)).className||"UnknownLayer";y=s.T[t]}}else"ArcGISFeatureLayer"===l?function(e){return c(e,"notes")}(e)||function(e){return c(e,"markup")}(e)?y=s.T.MapNotesLayer:function(e){return c(e,"route")}(e)?y=s.T.RouteLayer:v(e)&&(y=s.T.GroupLayer):e.wmtsInfo?.url&&e.wmtsInfo.layerIdentifier?y=s.T.WMTSLayer:"WFS"===l&&"2.0.0"!==e.wfsInfo?.version&&(y=s.T.UnsupportedLayer);return y()}function v(e){return"ArcGISFeatureLayer"===e.layerType&&!T(e)&&(e.featureCollection?.layers?.length??0)>1}function T(e){return"Feature Collection"===e.type}function b(e){let r;switch(e.origin){case"web-scene":switch(e.layerContainerType){case"basemap":r=d;break;case"ground":r=p;break;case"tables":r=f;break;default:r=y}break;case"link-chart":switch(e.layerContainerType){case"basemap":r=h;break;case"tables":r=I;break;default:r=w}break;default:switch(e.layerContainerType){case"basemap":r=S;break;case"tables":r=m;break;default:r=L}}return r}async function M(e,r,a){const n=new t.Z,s=u(n,Array.isArray(r.layers)?r.layers:[],a);try{try{if(await s,"group"===e.type)return e.layers.addMany(n),e}catch(r){e.destroy();for(const e of n)e.destroy();throw r}}catch(e){throw e}}function G(e,r,a,t,n){e.read({id:`${r.id}-sublayer-${t}`,visibility:a.visibleLayers?.includes(t)??!0},n)}},49112:function(e,r,a){a.d(r,{load:function(){return L}});var t=a(70375),n=a(20692),s=a(8308),i=a(12408),c=a(45423),o=a(92557),l=a(93968),u=a(84513),y=a(91362),p=a(31370),f=a(16603),d=a(40371);async function L(e,r){const a=e.instance.portalItem;if(a?.id)return await a.load(r),function(e){const r=e.instance.portalItem;if(!r?.type||!e.supportedTypes.includes(r.type))throw new t.Z("portal:invalid-layer-item-type","Invalid layer item type '${type}', expected '${expectedType}'",{type:r?.type,expectedType:e.supportedTypes.join(", ")})}(e),e.validateItem&&e.validateItem(a),async function(e,r){const a=e.instance,n=a.portalItem;if(!n)return;const{url:o,title:l}=n,L=(0,u.h)(n,"portal-item");if("group"===a.type)return async function(e,r,a){const n=e.portalItem;if(!e.sourceIsPortalItem)return;const{title:o,type:l}=n;if("Group Layer"===l){if(!(0,p._$)(n,"Map"))throw new t.Z("portal:invalid-layer-item-typekeyword","'Group Layer' item without 'Map' type keyword is not supported");return async function(e){const r=e.portalItem,a=await r.fetchData("json");if(!a)return;const t=(0,u.h)(r,"web-map");e.read(a,t),await(0,c.populateGroupLayer)(e,a,{context:t}),e.resourceReferences={portalItem:r,paths:t.readResourcePaths??[]}}(e)}return e.read({title:o},r),async function(e,r){let a;const{portalItem:n}=e;if(!n)return;const c=n.type,o=r.layerModuleTypeMap;switch(c){case"Feature Service":case"Feature Collection":a=o.FeatureLayer;break;case"Stream Service":a=o.StreamLayer;break;case"Scene Service":a=o.SceneLayer;break;default:throw new t.Z("portal:unsupported-item-type-as-group",`The item type '${c}' is not supported as a 'IGroupLayer'`)}const l=new i.L;let[u,p]=await Promise.all([a(),w(r,l)]),f=()=>u;if("Feature Service"===c){const r=(0,y.uE)(p)?.customParameters;p=n.url?await(0,y.$O)(p,n.url,l):{};const a=(0,y.XX)(p),t=(0,y._Y)(p),i=(0,y.H2)(p),c=[];if(a.length||t?.length){a.length&&c.push("SubtypeGroupLayer"),t?.length&&c.push("OrientedImageryLayer"),i?.length&&c.push("CatalogLayer");const e=[];for(const r of c){const a=o[r];e.push(a())}const r=await Promise.all(e),n=new Map;c.forEach(((e,a)=>{n.set(e,r[a])})),f=e=>e.layerType?n.get(e.layerType)??u:u}const d=await async function(e,r){const{layersJSON:a}=await(0,s.V)(e,r);if(!a)return null;const t=[...a.layers,...a.tables];return e=>t.find((r=>r.id===e.id))}(n.url,{customParameters:r,loadContext:l});return await m(e,f,p,d)}return"Scene Service"===c&&n.url&&(p=await(0,y.CD)(n,p,l)),(0,y.Q4)(p)>0?await m(e,f,p):await async function(e,r){const{portalItem:a}=e;if(!a?.url)return;const t=await(0,d.T)(a.url);t&&m(e,r,{layers:t.layers?.map(y.bS),tables:t.tables?.map(y.bS)})}(e,f)}(e,a)}(a,L,e);o&&"media"!==a.type&&a.read({url:o},L);const S=new i.L,I=await w(e,S,r);return I&&a.read(I,L),a.resourceReferences={portalItem:n,paths:L.readResourcePaths??[]},"subtype-group"!==a.type&&a.read({title:l},L),(0,f.y)(a,L)}(e,r)}async function m(e,r,a,t){let n=a.layers||[];const s=a.tables||[];if("Feature Collection"===e.portalItem?.type?(n.forEach(((e,r)=>{e.id=r,"Table"===e?.layerDefinition?.type&&s.push(e)})),n=n.filter((e=>"Table"!==e?.layerDefinition?.type))):(n.reverse(),s.reverse()),n.forEach((n=>{const s=t?.(n);if(s||!t){const t=S(e,r(n),a,n,s);e.add(t)}})),s.length){const r=await o.T.FeatureLayer();s.forEach((n=>{const s=t?.(n);if(s||!t){const t=S(e,r,a,n,s);e.tables.add(t)}}))}}function S(e,r,a,t,n){const s=e.portalItem,i={portalItem:s.clone(),layerId:t.id};null!=t.url&&(i.url=t.url);const c=new r(i);if("sourceJSON"in c&&(c.sourceJSON=n),"subtype-group"!==c.type&&"catalog"!==c.type&&(c.sublayerTitleMode="service-name"),"Feature Collection"===s.type){const e={origin:"portal-item",portal:s.portal||l.Z.getDefault()};c.read(t,e);const r=a.showLegend;null!=r&&c.read({showLegend:r},e)}return c}async function w(e,r,a){if(!1===e.supportsData)return;const t=e.instance,s=t.portalItem;if(!s)return;let i=null;try{i=await s.fetchData("json",a)}catch(e){}if(function(e){return"stream"!==e.type&&"layerId"in e}(t)){let e=null;const a=await async function(e,r,a){if(r?.layers&&r?.tables)return(0,y.Q4)(r);const t=(0,n.Qc)(e.url);if(!t)return 1;const s=await a.fetchServiceMetadata(t.url.path,{customParameters:(0,y.uE)(r)?.customParameters}).catch((()=>null));return(r?.layers?.length??s?.layers?.length??0)+(r?.tables?.length??s?.tables?.length??0)}(s,i,r);if((i?.layers||i?.tables)&&a>0){if(null==t.layerId){const e=(0,y.XX)(i);t.layerId="subtype-group"===t.type?e?.[0]:(0,y.Ok)(i)}e=function(e,r){const{layerId:a}=r,t=e.layers?.find((e=>e.id===a))||e.tables?.find((e=>e.id===a));return t&&function(e,r){return!("feature"===r.type&&"layerType"in e&&"SubtypeGroupLayer"===e.layerType||"subtype-group"===r.type&&!("layerType"in e))}(t,r)?t:null}(i,t),e&&null!=i.showLegend&&(e.showLegend=i.showLegend)}return a>1&&"sublayerTitleMode"in t&&"service-name"!==t.sublayerTitleMode&&(t.sublayerTitleMode="item-title-and-service-name"),e}return i}},91362:function(e,r,a){a.d(r,{$O:function(){return s},CD:function(){return p},H2:function(){return y},Ok:function(){return i},Q4:function(){return o},XX:function(){return l},_Y:function(){return u},bS:function(){return n},uE:function(){return c}});var t=a(53264);function n(e){const r={id:e.id,name:e.name};return"Oriented Imagery Layer"===e.type&&(r.layerType="OrientedImageryLayer"),r}async function s(e,r,a){if(null==e?.layers||null==e?.tables){const t=await a.fetchServiceMetadata(r,{customParameters:c(e)?.customParameters});(e=e||{}).layers=e.layers||t?.layers?.map(n),e.tables=e.tables||t?.tables?.map(n)}return e}function i(e){const{layers:r,tables:a}=e;return r?.length?r[0].id:a?.length?a[0].id:null}function c(e){if(!e)return null;const{layers:r,tables:a}=e;return r?.length?r[0]:a?.length?a[0]:null}function o(e){return(e?.layers?.length??0)+(e?.tables?.length??0)}function l(e){const r=[];return e?.layers?.forEach((e=>{"SubtypeGroupLayer"===e.layerType&&r.push(e.id)})),r}function u(e){return e?.layers?.filter((({layerType:e})=>"OrientedImageryLayer"===e)).map((({id:e})=>e))}function y(e){return e?.layers?.filter((({layerType:e})=>"CatalogLayer"===e)).map((({id:e})=>e))}async function p(e,r,a){if(!e?.url)return r??{};if(r??={},!r.layers){const t=await a.fetchServiceMetadata(e.url);r.layers=t.layers?.map(n)}const{serverUrl:s,portalItem:i}=await(0,t.w)(e.url,{sceneLayerItem:e,customParameters:c(r)?.customParameters}).catch((()=>({serverUrl:null,portalItem:null})));if(null==s)return r.tables=[],r;if(!r.tables&&i){const e=await i.fetchData();if(e?.tables)r.tables=e.tables.map(n);else{const t=await a.fetchServiceMetadata(s,{customParameters:c(e)?.customParameters});r.tables=t?.tables?.map(n)}}if(r.tables)for(const e of r.tables)e.url=`${s}/${e.id}`;return r}},55831:function(e,r,a){a.d(r,{fromItem:function(){return y},v:function(){return p}});var t=a(70375),n=a(53264),s=a(12408),i=a(54957),c=a(92557),o=a(53110),l=a(91362),u=a(31370);async function y(e){!e.portalItem||e.portalItem instanceof o.default||(e={...e,portalItem:new o.default(e.portalItem)});const r=await async function(e){await e.load();const r=new s.L;return async function(e){const r=e.className,a=c.T[r];return{constructor:await a(),properties:e.properties}}(await p(e,r))}(e.portalItem);return new(0,r.constructor)({portalItem:e.portalItem,...r.properties})}async function p(e,r){switch(e.type){case"3DTiles Service":return{className:"IntegratedMesh3DTilesLayer"};case"CSV":return{className:"CSVLayer"};case"Feature Collection":return async function(e){await e.load();const r=(0,u._$)(e,"Map Notes"),a=(0,u._$)(e,"Markup");if(r||a)return{className:"MapNotesLayer"};if((0,u._$)(e,"Route Layer"))return{className:"RouteLayer"};const t=await e.fetchData();return 1===(0,l.Q4)(t)?{className:"FeatureLayer"}:{className:"GroupLayer"}}(e);case"Feature Service":return async function(e,r){const a=await f(e,r);if("object"==typeof a){const{sourceJSON:e,className:r}=a,t={sourceJSON:e};return null!=a.id&&(t.layerId=a.id),{className:r||"FeatureLayer",properties:t}}return{className:"GroupLayer"}}(e,r);case"Feed":case"Stream Service":return{className:"StreamLayer"};case"GeoJson":return{className:"GeoJSONLayer"};case"Group Layer":return{className:"GroupLayer"};case"Image Service":return async function(e,r){await e.load();const a=e.typeKeywords?.map((e=>e.toLowerCase()))??[];if(a.includes("elevation 3d layer"))return{className:"ElevationLayer"};if(a.includes("tiled imagery"))return{className:"ImageryTileLayer"};const t=await r.fetchItemData(e),n=t?.layerType;if("ArcGISTiledImageServiceLayer"===n)return{className:"ImageryTileLayer"};if("ArcGISImageServiceLayer"===n)return{className:"ImageryLayer"};const s=await r.fetchServiceMetadata(e.url,{customParameters:await r.fetchCustomParameters(e)}),i=s.cacheType?.toLowerCase(),c=s.capabilities?.toLowerCase().includes("tilesonly");return"map"===i||c?{className:"ImageryTileLayer"}:{className:"ImageryLayer"}}(e,r);case"KML":return{className:"KMLLayer"};case"Map Service":return async function(e,r){return await async function(e,r){const{tileInfo:a}=await r.fetchServiceMetadata(e.url,{customParameters:await r.fetchCustomParameters(e)});return a}(e,r)?{className:"TileLayer"}:{className:"MapImageLayer"}}(e,r);case"Media Layer":return{className:"MediaLayer"};case"Scene Service":return async function(e,r){const a=await f(e,r,(async()=>{try{if(!e.url)return[];const{serverUrl:a}=await(0,n.w)(e.url,{sceneLayerItem:e}),t=await r.fetchServiceMetadata(a);return t?.tables??[]}catch{return[]}}));if("object"==typeof a){const t={};let n;if(null!=a.id?(t.layerId=a.id,n=`${e.url}/layers/${a.id}`):n=e.url,e.typeKeywords?.length)for(const r of Object.keys(i.fb))if(e.typeKeywords.includes(r))return{className:i.fb[r]};const s=await r.fetchServiceMetadata(n,{customParameters:await r.fetchCustomParameters(e,(e=>(0,l.uE)(e)?.customParameters))});return{className:i.fb[s?.layerType]||"SceneLayer",properties:t}}if(!1===a){const a=await r.fetchServiceMetadata(e.url);if("Voxel"===a?.layerType)return{className:"VoxelLayer"}}return{className:"GroupLayer"}}(e,r);case"Vector Tile Service":return{className:"VectorTileLayer"};case"WFS":return{className:"WFSLayer"};case"WMS":return{className:"WMSLayer"};case"WMTS":return{className:"WMTSLayer"};default:throw new t.Z("portal:unknown-item-type","Unknown item type '${type}'",{type:e.type})}}async function f(e,r,a){const{url:t,type:n}=e,s="Feature Service"===n;if(!t)return{};if(/\/\d+$/.test(t)){if(s){const a=await r.fetchServiceMetadata(t,{customParameters:await r.fetchCustomParameters(e,(e=>(0,l.uE)(e)?.customParameters))});if("Oriented Imagery Layer"===a.type)return{id:a.id,className:"OrientedImageryLayer",sourceJSON:a}}return{}}await e.load();let i=await r.fetchItemData(e);if(s){const e=await(0,l.$O)(i,t,r),a=d(e);if("object"==typeof a){const r=(0,l.XX)(e),t=(0,l._Y)(e),n=(0,l.H2)(e);a.className=null!=a.id&&r.includes(a.id)?"SubtypeGroupLayer":null!=a.id&&t?.includes(a.id)?"OrientedImageryLayer":null!=a.id&&n?.includes(a.id)?"CatalogLayer":"FeatureLayer"}return a}if("Scene Service"===n&&(i=await(0,l.CD)(e,i,r)),(0,l.Q4)(i)>0)return d(i);const c=await r.fetchServiceMetadata(t);return a&&(c.tables=await a()),d(c)}function d(e){return 1===(0,l.Q4)(e)&&{id:(0,l.Ok)(e)}}},40371:function(e,r,a){a.d(r,{T:function(){return n}});var t=a(66341);async function n(e,r){const{data:a}=await(0,t.Z)(e,{responseType:"json",query:{f:"json",...r?.customParameters,token:r?.apiKey}});return a}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9145.e19b68c694e8066b7c80.js b/docs/sentinel1-explorer/9145.e19b68c694e8066b7c80.js new file mode 100644 index 00000000..57ecba51 --- /dev/null +++ b/docs/sentinel1-explorer/9145.e19b68c694e8066b7c80.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9145],{79145:function(t,n,e){e.d(n,{A:function(){return B},C:function(){return T},a:function(){return D},b:function(){return F},c:function(){return L},d:function(){return Y},e:function(){return $},f:function(){return M},g:function(){return _},h:function(){return N},i:function(){return J},j:function(){return A},k:function(){return R},l:function(){return p},m:function(){return C},n:function(){return x},o:function(){return z},q:function(){return q},r:function(){return V},s:function(){return H},t:function(){return G},u:function(){return K}});var r=e(96472),o=(e(25177),["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"]),i=o.join(","),u="undefined"==typeof Element,l=u?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,a=!u&&Element.prototype.getRootNode?function(t){var n;return null==t||null===(n=t.getRootNode)||void 0===n?void 0:n.call(t)}:function(t){return null==t?void 0:t.ownerDocument},c=function t(n,e){var r;void 0===e&&(e=!0);var o=null==n||null===(r=n.getAttribute)||void 0===r?void 0:r.call(n,"inert");return""===o||"true"===o||e&&n&&t(n.parentNode)},f=function(t,n,e){if(c(t))return[];var r=Array.prototype.slice.apply(t.querySelectorAll(i));return n&&l.call(t,i)&&r.unshift(t),r=r.filter(e)},d=function t(n,e,r){for(var o=[],u=Array.from(n);u.length;){var a=u.shift();if(!c(a,!1))if("SLOT"===a.tagName){var f=a.assignedElements(),d=t(f.length?f:a.children,!0,r);r.flatten?o.push.apply(o,d):o.push({scopeParent:a,candidates:d})}else{l.call(a,i)&&r.filter(a)&&(e||!n.includes(a))&&o.push(a);var s=a.shadowRoot||"function"==typeof r.getShadowRoot&&r.getShadowRoot(a),p=!c(s,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(a));if(s&&p){var h=t(!0===s?a.children:s.children,!0,r);r.flatten?o.push.apply(o,h):o.push({scopeParent:a,candidates:h})}else u.unshift.apply(u,a.children)}}return o},s=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},p=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||function(t){var n,e=null==t||null===(n=t.getAttribute)||void 0===n?void 0:n.call(t,"contenteditable");return""===e||"true"===e}(t))&&!s(t)?0:t.tabIndex},h=function(t,n){return t.tabIndex===n.tabIndex?t.documentOrder-n.documentOrder:t.tabIndex-n.tabIndex},m=function(t){return"INPUT"===t.tagName},g=function(t){return function(t){return m(t)&&"radio"===t.type}(t)&&!function(t){if(!t.name)return!0;var n,e=t.form||a(t),r=function(t){return e.querySelectorAll('input[type="radio"][name="'+t+'"]')};if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)n=r(window.CSS.escape(t.name));else try{n=r(t.name)}catch(t){return!1}var o=function(t,n){for(var e=0;esummary:first-of-type")?t.parentElement:t;if(l.call(o,"details:not([open]) *"))return!0;if(e&&"full"!==e&&"legacy-full"!==e){if("non-zero-area"===e)return y(t)}else{if("function"==typeof r){for(var i=t;t;){var u=t.parentElement,c=a(t);if(u&&!u.shadowRoot&&!0===r(u))return y(t);t=t.assignedSlot?t.assignedSlot:u||c===t.ownerDocument?u:c.host}t=i}if(function(t){var n,e,r,o,i=t&&a(t),u=null===(n=i)||void 0===n?void 0:n.host,l=!1;if(i&&i!==t)for(l=!!(null!==(e=u)&&void 0!==e&&null!==(r=e.ownerDocument)&&void 0!==r&&r.contains(u)||null!=t&&null!==(o=t.ownerDocument)&&void 0!==o&&o.contains(t));!l&&u;){var c,f,d;l=!(null===(f=u=null===(c=i=a(u))||void 0===c?void 0:c.host)||void 0===f||null===(d=f.ownerDocument)||void 0===d||!d.contains(u))}return l}(t))return!t.getClientRects().length;if("legacy-full"!==e)return!0}return!1},S=function(t,n){return!(n.disabled||c(n)||function(t){return m(t)&&"hidden"===t.type}(n)||v(n,t)||function(t){return"DETAILS"===t.tagName&&Array.prototype.slice.apply(t.children).some((function(t){return"SUMMARY"===t.tagName}))}(n)||function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var n=t.parentElement;n;){if("FIELDSET"===n.tagName&&n.disabled){for(var e=0;e=0)},E=function t(n){var e=[],r=[];return n.forEach((function(n,o){var i=!!n.scopeParent,u=i?n.scopeParent:n,l=function(t,n){var e=p(t);return e<0&&n&&!s(t)?0:e}(u,i),a=i?t(n.candidates):u;0===l?i?e.push.apply(e,a):e.push(u):r.push({documentOrder:o,tabIndex:l,item:n,isScope:i,content:a})})),r.sort(h).reduce((function(t,n){return n.isScope?t.push.apply(t,n.content):t.push(n.content),t}),[]).concat(e)},N=function(t,n){var e;return e=(n=n||{}).getShadowRoot?d([t],n.includeContainer,{filter:w.bind(null,n),flatten:!1,getShadowRoot:n.getShadowRoot,shadowRootFilter:b}):f(t,n.includeContainer,w.bind(null,n)),E(e)},A=function(t,n){return(n=n||{}).getShadowRoot?d([t],n.includeContainer,{filter:S.bind(null,n),flatten:!0,getShadowRoot:n.getShadowRoot}):f(t,n.includeContainer,S.bind(null,n))},R=function(t,n){if(n=n||{},!t)throw new Error("No node provided");return!1!==l.call(t,i)&&w(n,t)},I=o.concat("iframe").join(","),C=function(t,n){if(n=n||{},!t)throw new Error("No node provided");return!1!==l.call(t,I)&&S(n,t)};const x={getShadowRoot:!0};function T(t){return t?t.id=t.id||`${t.tagName.toLowerCase()}-${(0,r.g)()}`:""}function D(t){const n=L(t,"[dir]");return n?n.getAttribute("dir"):"ltr"}function O(t){return t.getRootNode()}function k(t){return t.host||null}function q(t,{selector:n,id:e}){return function t(r){if(!r)return null;r.assignedSlot&&(r=r.assignedSlot);const o=O(r),i=e?"getElementById"in o?o.getElementById(e):null:n?o.querySelector(n):null,u=k(o);return i||(u?t(u):null)}(t)}function L(t,n){return function t(e){return e?e.closest(n)||t(k(O(e))):null}(t)}function P(t,n){return j(t,n)}function j(t,n){if(!t)return;const e=n(t);if(void 0!==e)return e;const{parentNode:r}=t;return j(r instanceof ShadowRoot?r.host:r,n)}function F(t,n){return!!P(n,(n=>n===t||void 0))}async function $(t){if(t)return function(t){return"function"==typeof t?.setFocus}(t)?t.setFocus():t.focus()}function B(t){if(t)return N(t,x)[0]??t}function M(t){B(t)?.focus()}const U=":not([slot])";function _(t,n,e){n&&!Array.isArray(n)&&"string"!=typeof n&&(e=n,n=null);const r=n?Array.isArray(n)?n.map((t=>`[slot="${t}"]`)).join(","):`[slot="${n}"]`:U;return e?.all?function(t,n,e){let r=n===U?X(t,U):Array.from(t.querySelectorAll(n));r=e&&!1===e.direct?r:r.filter((n=>n.parentElement===t)),r=e?.matches?r.filter((t=>t?.matches(e.matches))):r;const o=e?.selector;return o?r.map((t=>Array.from(t.querySelectorAll(o)))).reduce(((t,n)=>[...t,...n]),[]).filter((t=>!!t)):r}(t,r,e):function(t,n,e){let r=n===U?X(t,U)[0]||null:t.querySelector(n);r=e&&!1===e.direct||r?.parentElement===t?r:null,r=e?.matches?r?.matches(e.matches)?r:null:r;const o=e?.selector;return o?r?.querySelector(o):r}(t,r,e)}function X(t,n){return t?Array.from(t.children||[]).filter((t=>t?.matches(n))):[]}function z(t,n,e){return"string"==typeof n&&""!==n?n:""===n?t[e]:void 0}function G(t){return Boolean(t).toString()}function V(t){return Y(t)||function(t){return!!function(t){return function(t){return t.target.assignedNodes({flatten:!0})}(t).filter((t=>t.nodeType===Node.TEXT_NODE)).map((t=>t.textContent)).join("").trim()}(t)}(t)}function Y(t){return!!H(t).length}function H(t){return t.target.assignedElements({flatten:!0})}function J(t){return!(!t.isPrimary||0!==t.button)}function K(t,n){if(t.parentNode!==n.parentNode)return!1;const e=Array.from(t.parentNode.children);return e.indexOf(t)[2,1,1,1,3].map((t=>{let n="";for(let e=0;e0){const t=1/Math.sqrt(c);e[f]=t*o,e[f+1]=t*a,e[f+2]=t*s}i+=r,f+=n}}Object.freeze(Object.defineProperty({__proto__:null,normalize:d,normalizeView:l,scale:c,scaleView:s,shiftRight:function(e,t,n){const r=Math.min(e.count,t.count),o=e.typedBuffer,i=e.typedBufferStride,f=t.typedBuffer,a=t.typedBufferStride;let s=0,c=0;for(let e=0;e>n,o[c+1]=f[s+1]>>n,o[c+2]=f[s+2]>>n,s+=a,c+=i},transformMat3:a,transformMat3View:f,transformMat4:i,transformMat4View:o,translate:u},Symbol.toStringTag,{value:"Module"}))},92570:function(e,t,n){n.d(t,{JK:function(){return a},QZ:function(){return i},Rq:function(){return f},bg:function(){return o},mB:function(){return s}});var r=n(86098);function o(e,t=!1){return e<=r.c8?t?new Array(e).fill(0):new Array(e):new Float64Array(e)}function i(e){return((0,r.kJ)(e)?e.length:e.byteLength/8)<=r.c8?Array.from(e):new Float64Array(e)}function f(e,t,n){return Array.isArray(e)?e.slice(t,t+n):e.subarray(t,t+n)}function a(e,t){for(let n=0;nr.Z.getLogger("esri.views.3d.support.buffer.math")},49194:function(e,t,n){n.r(t),n.d(t,{destroyContext:function(){return _},dracoDecompressPointCloudData:function(){return w},filterObbsForModifications:function(){return S},filterObbsForModificationsSync:function(){return x},initialize:function(){return P},interpretObbModificationResults:function(){return R},process:function(){return g},project:function(){return v},setLegacySchema:function(){return A},setModifications:function(){return M},setModificationsSync:function(){return I},test:function(){return N},transformNormals:function(){return B}});var r,o,i=n(14685),f=n(92570),a=n(58626),s=n(51619),c=n(6766);!function(e){e[e.None=0]="None",e[e.Int16=1]="Int16",e[e.Int32=2]="Int32"}(r||(r={})),function(e){e[e.Replace=0]="Replace",e[e.Outside=1]="Outside",e[e.Inside=2]="Inside",e[e.Finished=3]="Finished"}(o||(o={}));var u=n(36567);function l(e){return(0,u.V)(`esri/libs/i3s/${e}`)}let d;var y,h,p,m,b;n(52721),n(91917),n(32411);!function(e){e[e.Unmodified=0]="Unmodified",e[e.Culled=1]="Culled",e[e.NotChecked=2]="NotChecked"}(y||(y={})),function(e){e[e.Unmodified=0]="Unmodified",e[e.PotentiallyModified=1]="PotentiallyModified",e[e.Culled=2]="Culled",e[e.Unknown=3]="Unknown",e[e.NotChecked=4]="NotChecked"}(h||(h={}));!function(e){e[e.Unknown=0]="Unknown",e[e.Uncached=1]="Uncached",e[e.Cached=2]="Cached"}(p||(p={})),function(e){e[e.None=0]="None",e[e.MaxScreenThreshold=1]="MaxScreenThreshold",e[e.ScreenSpaceRelative=2]="ScreenSpaceRelative",e[e.RemovedFeatureDiameter=3]="RemovedFeatureDiameter",e[e.DistanceRangeFromDefaultCamera=4]="DistanceRangeFromDefaultCamera"}(m||(m={})),function(e){e[e.Hole=0]="Hole",e[e.Leaf=1]="Leaf"}(b||(b={}));async function g(e){L=await C();const t=[e.geometryBuffer];return{result:U(L,e,t),transferList:t}}async function w(e){L=await C();const t=[e.geometryBuffer],{geometryBuffer:n}=e,r=n.byteLength,o=L._malloc(r),i=new Uint8Array(L.HEAPU8.buffer,o,r);i.set(new Uint8Array(n));const f=L.dracoDecompressPointCloudData(o,i.byteLength);if(L._free(o),f.error.length>0)throw new Error(`i3s.wasm: ${f.error}`);const a=f.featureIds?.length>0?f.featureIds.slice():null,s=f.positions.slice();return a&&t.push(a.buffer),t.push(s.buffer),{result:{positions:s,featureIds:a},transferList:t}}async function S(e){await C(),x(e);const t={buffer:e.buffer};return{result:t,transferList:[t.buffer]}}async function M(e){await C(),I(e)}async function A(e){L=await C(),L.setLegacySchema(e.context,e.jsonSchema)}async function v(e){const{localMatrix:t,origin:r,positions:o,vertexSpace:c,localMode:u}=e,l=i.Z.fromJSON(e.inSpatialReference),d=i.Z.fromJSON(e.outSpatialReference);let y;if("georeferenced"===c.type&&null==c.origin){const[{projectBuffer:e},{initializeProjection:t}]=await Promise.all([Promise.resolve().then(n.bind(n,22349)),Promise.resolve().then(n.bind(n,28105))]);await t(l,d),y=new Float64Array(o.length),e(o,l,0,y,d,0,y.length/3)}else{const e="georeferenced"===c.type?a.Z.fromJSON(c):s.Z.fromJSON(c),{project:r}=await n.e(1780).then(n.bind(n,91780));y=(0,f.mB)(r({positions:o,transform:t?{localMatrix:t}:void 0,vertexSpace:e,inSpatialReference:l,outSpatialReference:d,localMode:u}))}const h=y.length,[p,m,b]=r;for(let e=0;ee.some((e=>"color"===e.name)))),normal:t.needNormals&&t.layouts.some((e=>e.some((e=>"normalCompressed"===e.name)))),uv0:t.layouts.some((e=>e.some((e=>"uv0"===e.name)))),uvRegion:t.layouts.some((e=>e.some((e=>"uvRegion"===e.name)))),featureIndex:S.featureIndex},A=e.process(o,!!t.obbData,h,m.byteLength,S,M,p,c,d,y,t.normalReferenceFrame);if(e._free(p),e._free(h),A.error.length>0)throw new Error(`i3s.wasm: ${A.error}`);if(A.discarded)return null;const v=A.componentOffsets.length>0?A.componentOffsets.slice():null,B=A.featureIds.length>0?A.featureIds.slice():null,_=A.anchorIds.length>0?Array.from(A.anchorIds):null,E=A.anchors.length>0?Array.from(A.anchors):null,L=A.interleavedVertedData.slice().buffer,I=A.indicesType===r.Int16?new Uint16Array(A.indices.buffer,A.indices.byteOffset,A.indices.byteLength/2).slice():new Uint32Array(A.indices.buffer,A.indices.byteOffset,A.indices.byteLength/4).slice(),U=A.positions.slice(),R=A.positionIndicesType===r.Int16?new Uint16Array(A.positionIndices.buffer,A.positionIndices.byteOffset,A.positionIndices.byteLength/2).slice():new Uint32Array(A.positionIndices.buffer,A.positionIndices.byteOffset,A.positionIndices.byteLength/4).slice(),x={layout:t.layouts[0],interleavedVertexData:L,indices:I,hasColors:A.hasColors,hasModifications:A.hasModifications,positionData:{data:U,indices:R}};return B&&n.push(B.buffer),v&&n.push(v.buffer),n.push(L),n.push(I.buffer),n.push(U.buffer),n.push(R.buffer),{componentOffsets:v,featureIds:B,anchorIds:_,anchors:E,transformedGeometry:x,obb:A.obb}}function R(e){return 0===e?h.Unmodified:1===e?h.PotentiallyModified:2===e?h.Culled:h.Unknown}function x(e){if(!L)return;const{context:t,buffer:n}=e,r=L._malloc(n.byteLength),o=n.byteLength/Float64Array.BYTES_PER_ELEMENT,i=new Float64Array(L.HEAPU8.buffer,r,o),f=new Float64Array(n);i.set(f),L.filterOBBs(t,r,o),f.set(i),L._free(r)}function F(e){L&&0===L.destroy(e)&&(L=null)}function O(e,t){for(let n=0;nn.e(9597).then(n.bind(n,79597)).then((e=>e.i)).then((({default:t})=>{const n=t({locateFile:l,onRuntimeInitialized:()=>e(n)});delete n.then})))).catch((e=>{throw e}))),d).then((e=>(L=e,E=null,L)))),E)}const N={transform:(e,t)=>L&&U(L,e,t),destroy:F}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/922.8ea149c01b4af86736e6.js b/docs/sentinel1-explorer/922.8ea149c01b4af86736e6.js new file mode 100644 index 00000000..d2819e23 --- /dev/null +++ b/docs/sentinel1-explorer/922.8ea149c01b4af86736e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[922],{4279:function(n,t,e){e.d(t,{A:function(){return D},B:function(){return T},C:function(){return b},D:function(){return A},E:function(){return _},F:function(){return L},G:function(){return I},H:function(){return V},I:function(){return j},J:function(){return k},K:function(){return C},L:function(){return H},M:function(){return O},N:function(){return q},a:function(){return c},b:function(){return s},c:function(){return o},d:function(){return f},e:function(){return u},f:function(){return a},g:function(){return B},h:function(){return l},i:function(){return h},j:function(){return d},k:function(){return x},l:function(){return v},m:function(){return y},n:function(){return M},o:function(){return g},p:function(){return w},q:function(){return P},r:function(){return m},s:function(){return N},t:function(){return p},u:function(){return R},v:function(){return Z},w:function(){return G},x:function(){return z},y:function(){return E},z:function(){return S}});var r=e(89067),i=e(61107);function u(n){return r.G.extendedSpatialReferenceInfo(n)}function o(n,t,e){return r.G.clip(i.N,n,t,e)}function c(n,t,e){return r.G.cut(i.N,n,t,e)}function s(n,t,e){return r.G.contains(i.N,n,t,e)}function f(n,t,e){return r.G.crosses(i.N,n,t,e)}function a(n,t,e,u){return r.G.distance(i.N,n,t,e,u)}function l(n,t,e){return r.G.equals(i.N,n,t,e)}function h(n,t,e){return r.G.intersects(i.N,n,t,e)}function p(n,t,e){return r.G.touches(i.N,n,t,e)}function G(n,t,e){return r.G.within(i.N,n,t,e)}function d(n,t,e){return r.G.disjoint(i.N,n,t,e)}function g(n,t,e){return r.G.overlaps(i.N,n,t,e)}function m(n,t,e,u){return r.G.relate(i.N,n,t,e,u)}function x(n,t){return r.G.isSimple(i.N,n,t)}function N(n,t){return r.G.simplify(i.N,n,t)}function v(n,t,e=!1){return r.G.convexHull(i.N,n,t,e)}function y(n,t,e){return r.G.difference(i.N,n,t,e)}function M(n,t,e){return r.G.symmetricDifference(i.N,n,t,e)}function w(n,t,e){return r.G.intersect(i.N,n,t,e)}function R(n,t,e=null){return r.G.union(i.N,n,t,e)}function P(n,t,e,u,o,c,s){return r.G.offset(i.N,n,t,e,u,o,c,s)}function Z(n,t,e,u,o=!1){return r.G.buffer(i.N,n,t,e,u,o)}function z(n,t,e,u,o,c,s){return r.G.geodesicBuffer(i.N,n,t,e,u,o,c,s)}function E(n,t,e,u=!0){return r.G.nearestCoordinate(i.N,n,t,e,u)}function S(n,t,e){return r.G.nearestVertex(i.N,n,t,e)}function D(n,t,e,u,o){return r.G.nearestVertices(i.N,n,t,e,u,o)}function T(n,t,e,i){if(null==t||null==i)throw new Error("Illegal Argument Exception");const u=r.G.rotate(t,e,i);return u.spatialReference=n,u}function b(n,t,e){if(null==t||null==e)throw new Error("Illegal Argument Exception");const i=r.G.flipHorizontal(t,e);return i.spatialReference=n,i}function A(n,t,e){if(null==t||null==e)throw new Error("Illegal Argument Exception");const i=r.G.flipVertical(t,e);return i.spatialReference=n,i}function _(n,t,e,u,o){return r.G.generalize(i.N,n,t,e,u,o)}function L(n,t,e,u){return r.G.densify(i.N,n,t,e,u)}function I(n,t,e,u,o=0){return r.G.geodesicDensify(i.N,n,t,e,u,o)}function V(n,t,e){return r.G.planarArea(i.N,n,t,e)}function j(n,t,e){return r.G.planarLength(i.N,n,t,e)}function k(n,t,e,u){return r.G.geodesicArea(i.N,n,t,e,u)}function C(n,t,e,u){return r.G.geodesicLength(i.N,n,t,e,u)}function H(n,t,e){return null==t||null==e?[]:r.G.intersectLinesToPoints(i.N,n,t,e)}function O(n,t){r.G.changeDefaultSpatialReferenceTolerance(n,t)}function q(n){r.G.clearDefaultSpatialReferenceTolerance(n)}const B=Object.freeze(Object.defineProperty({__proto__:null,buffer:Z,changeDefaultSpatialReferenceTolerance:O,clearDefaultSpatialReferenceTolerance:q,clip:o,contains:s,convexHull:v,crosses:f,cut:c,densify:L,difference:y,disjoint:d,distance:a,equals:l,extendedSpatialReferenceInfo:u,flipHorizontal:b,flipVertical:A,generalize:_,geodesicArea:k,geodesicBuffer:z,geodesicDensify:I,geodesicLength:C,intersect:w,intersectLinesToPoints:H,intersects:h,isSimple:x,nearestCoordinate:E,nearestVertex:S,nearestVertices:D,offset:P,overlaps:g,planarArea:V,planarLength:j,relate:m,rotate:T,simplify:N,symmetricDifference:M,touches:p,union:R,within:G},Symbol.toStringTag,{value:"Module"}))},61107:function(n,t,e){e.d(t,{N:function(){return r}});const r={convertToGEGeometry:function(n,t){return null==t?null:n.convertJSONToGeometry(t)},exportPoint:function(n,t,e){const r=new i(n.getPointX(t),n.getPointY(t),e),u=n.hasZ(t),o=n.hasM(t);return u&&(r.z=n.getPointZ(t)),o&&(r.m=n.getPointM(t)),r},exportPolygon:function(n,t,e){return new u(n.exportPaths(t),e,n.hasZ(t),n.hasM(t))},exportPolyline:function(n,t,e){return new o(n.exportPaths(t),e,n.hasZ(t),n.hasM(t))},exportMultipoint:function(n,t,e){return new c(n.exportPoints(t),e,n.hasZ(t),n.hasM(t))},exportExtent:function(n,t,e){const r=n.hasZ(t),i=n.hasM(t),u=new s(n.getXMin(t),n.getYMin(t),n.getXMax(t),n.getYMax(t),e);if(r){const e=n.getZExtent(t);u.zmin=e.vmin,u.zmax=e.vmax}if(i){const e=n.getMExtent(t);u.mmin=e.vmin,u.mmax=e.vmax}return u}};class i{constructor(n,t,e){this.x=n,this.y=t,this.spatialReference=e,this.z=void 0,this.m=void 0}}class u{constructor(n,t,e,r){this.rings=n,this.spatialReference=t,this.hasZ=void 0,this.hasM=void 0,e&&(this.hasZ=e),r&&(this.hasM=r)}}class o{constructor(n,t,e,r){this.paths=n,this.spatialReference=t,this.hasZ=void 0,this.hasM=void 0,e&&(this.hasZ=e),r&&(this.hasM=r)}}class c{constructor(n,t,e,r){this.points=n,this.spatialReference=t,this.hasZ=void 0,this.hasM=void 0,e&&(this.hasZ=e),r&&(this.hasM=r)}}class s{constructor(n,t,e,r,i){this.xmin=n,this.ymin=t,this.xmax=e,this.ymax=r,this.spatialReference=i,this.zmin=void 0,this.zmax=void 0,this.mmin=void 0,this.mmax=void 0}}},50922:function(n,t,e){e.r(t),e.d(t,{executeGEOperation:function(){return i}});var r=e(4279);function i(n){return(0,r.g[n.operation])(...n.parameters)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9229.c2f73b4f12c2b356d015.js b/docs/sentinel1-explorer/9229.c2f73b4f12c2b356d015.js new file mode 100644 index 00000000..27e8ff97 --- /dev/null +++ b/docs/sentinel1-explorer/9229.c2f73b4f12c2b356d015.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9229],{77765:function(e,t,i){i.d(t,{B:function(){return r},R:function(){return a}});var s=i(3027);class a extends s.R{_beforeChanged(){super._beforeChanged(),(this.isDirty("cornerRadiusTL")||this.isDirty("cornerRadiusTR")||this.isDirty("cornerRadiusBR")||this.isDirty("cornerRadiusBL"))&&(this._clear=!0)}_draw(){let e=this.width(),t=this.height(),i=e,a=t,r=i/Math.abs(e),n=a/Math.abs(t);if((0,s.k)(i)&&(0,s.k)(a)){let e=Math.min(i,a)/2,t=(0,s.l)(this.get("cornerRadiusTL",8),e),o=(0,s.l)(this.get("cornerRadiusTR",8),e),h=(0,s.l)(this.get("cornerRadiusBR",8),e),l=(0,s.l)(this.get("cornerRadiusBL",8),e),u=Math.min(Math.abs(i/2),Math.abs(a/2));t=(0,s.f)(t,0,u),o=(0,s.f)(o,0,u),h=(0,s.f)(h,0,u),l=(0,s.f)(l,0,u);const d=this._display;d.moveTo(t*r,0),d.lineTo(i-o*r,0),o>0&&d.arcTo(i,0,i,o*n,o),d.lineTo(i,a-h*n),h>0&&d.arcTo(i,a,i-h*r,a,h),d.lineTo(l*r,a),l>0&&d.arcTo(0,a,0,a-l*n,l),d.lineTo(0,t*n),t>0&&d.arcTo(0,0,t*r,0,t),d.closePath()}}}Object.defineProperty(a,"className",{enumerable:!0,configurable:!0,writable:!0,value:"RoundedRectangle"}),Object.defineProperty(a,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.R.classNames.concat([a.className])});class r extends s.g{_afterNew(){this._settings.themeTags=(0,s.m)(this._settings.themeTags,["button"]),super._afterNew(),this._settings.background||this.set("background",a.new(this._root,{themeTags:(0,s.m)(this._settings.themeTags,["background"])})),this.setPrivate("trustBounds",!0)}_prepareChildren(){if(super._prepareChildren(),this.isDirty("icon")){const e=this._prevSettings.icon,t=this.get("icon");t!==e&&(this._disposeProperty("icon"),e&&e.dispose(),t&&this.children.push(t),this._prevSettings.icon=t)}if(this.isDirty("label")){const e=this._prevSettings.label,t=this.get("label");t!==e&&(this._disposeProperty("label"),e&&e.dispose(),t&&this.children.push(t),this._prevSettings.label=t)}}}Object.defineProperty(r,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Button"}),Object.defineProperty(r,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.g.classNames.concat([r.className])})},50240:function(e,t,i){i.d(t,{C:function(){return a}});var s=i(3027);class a extends s.E{_afterNew(){super._afterNewApplyThemes(),this._dirty.colors=!1}_beforeChanged(){this.isDirty("colors")&&this.reset()}generateColors(){this.setPrivate("currentPass",this.getPrivate("currentPass",0)+1);const e=this.getPrivate("currentPass"),t=this.get("colors",[this.get("baseColor",s.C.fromHex(16711680))]);this.getPrivate("numColors")||this.setPrivate("numColors",t.length);const i=this.getPrivate("numColors"),a=this.get("passOptions"),r=this.get("reuse");for(let n=0;n1;)r-=1;let o=i.s+(a.saturation||0)*e;o>1&&(o=1),o<0&&(o=0);let h=i.l+(a.lightness||0)*e;for(;h>1;)h-=1;t.push(s.C.fromHSL(r,o,h))}}getIndex(e){const t=this.get("colors",[]),i=this.get("saturation");return e>=t.length?(this.generateColors(),this.getIndex(e)):null!=i?s.C.saturate(t[e],i):t[e]}next(){let e=this.getPrivate("currentStep",this.get("startIndex",0));return this.setPrivate("currentStep",e+this.get("step",1)),this.getIndex(e)}reset(){this.setPrivate("currentStep",this.get("startIndex",0)),this.setPrivate("currentPass",0)}}Object.defineProperty(a,"className",{enumerable:!0,configurable:!0,writable:!0,value:"ColorSet"}),Object.defineProperty(a,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.E.classNames.concat([a.className])})},26754:function(e,t,i){i.d(t,{T:function(){return r}});var s=i(3027);class a extends s.e{_beforeChanged(){super._beforeChanged(),(this.isDirty("pointerBaseWidth")||this.isDirty("cornerRadius")||this.isDirty("pointerLength")||this.isDirty("pointerX")||this.isDirty("pointerY")||this.isDirty("width")||this.isDirty("height"))&&(this._clear=!0)}_changed(){if(super._changed(),this._clear){this.markDirtyBounds();let e=this.width(),t=this.height();if(e>0&&t>0){let i=this.get("cornerRadius",8);i=(0,s.f)(i,0,Math.min(e/2,t/2));let a=this.get("pointerX",0),r=this.get("pointerY",0),n=this.get("pointerBaseWidth",15)/2,o=0,h=0,l=0,u=(a-o)*(t-h)-(r-h)*(e-o),d=(a-l)*(0-t)-(r-t)*(e-l);const g=this._display;if(g.moveTo(i,0),u>0&&d>0){let t=Math.round((0,s.f)(a,i+n,e-n-i));r=(0,s.f)(r,-1/0,0),g.lineTo(t-n,0),g.lineTo(a,r),g.lineTo(t+n,0)}if(g.lineTo(e-i,0),g.arcTo(e,0,e,i,i),u>0&&d<0){let o=Math.round((0,s.f)(r,i+n,t-n-i));a=(0,s.f)(a,e,1/0),g.lineTo(e,i),g.lineTo(e,Math.max(o-n,i)),g.lineTo(a,r),g.lineTo(e,o+n)}if(g.lineTo(e,t-i),g.arcTo(e,t,e-i,t,i),u<0&&d<0){let o=Math.round((0,s.f)(a,i+n,e-n-i));r=(0,s.f)(r,t,1/0),g.lineTo(e-i,t),g.lineTo(o+n,t),g.lineTo(a,r),g.lineTo(o-n,t)}if(g.lineTo(i,t),g.arcTo(0,t,0,t-i,i),u<0&&d>0){let e=Math.round((0,s.f)(r,i+n,t-i-n));a=(0,s.f)(a,-1/0,0),g.lineTo(0,t-i),g.lineTo(0,e+n),g.lineTo(a,r),g.lineTo(0,Math.max(e-n,i))}g.lineTo(0,i),g.arcTo(0,0,i,0,i),g.closePath()}}}}Object.defineProperty(a,"className",{enumerable:!0,configurable:!0,writable:!0,value:"PointedRectangle"}),Object.defineProperty(a,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.e.classNames.concat([a.className])});class r extends s.g{constructor(e,t,i,s=[]){super(e,t,i,s),Object.defineProperty(this,"_fx",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_fy",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_label",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_fillDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_strokeDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_labelDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_w",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_h",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_keepHoverDp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_htmlContentHovered",{enumerable:!0,configurable:!0,writable:!0,value:!1})}_afterNew(){this._settings.themeTags=(0,s.m)(this._settings.themeTags,["tooltip"]),super._afterNew(),this.set("background",a.new(this._root,{themeTags:["tooltip","background"]})),this._label=this.children.push(s.L.new(this._root,{})),this._disposers.push(this._label.events.on("boundschanged",(()=>{this._updateBackground()}))),this._disposers.push(this.on("bounds",(()=>{this._updateBackground()}))),this._updateTextColor(),this._root.tooltipContainer.children.push(this),this.hide(0),this._disposers.push(this.label.onPrivate("htmlElement",(e=>{e&&((0,s.h)(e,"pointerover",(e=>{this._htmlContentHovered=!0})),(0,s.h)(e,"pointerout",(e=>{this._htmlContentHovered=!1})))}))),this._root._tooltips.push(this)}get label(){return this._label}dispose(){super.dispose(),(0,s.r)(this._root._tooltips,this)}_updateChildren(){super._updateChildren(),(this.isDirty("pointerOrientation")||this.isPrivateDirty("minWidth")||this.isPrivateDirty("minHeight"))&&this.get("background")._markDirtyKey("width"),null!=this.get("labelText")&&this.label.set("text",this.get("labelText")),null!=this.get("labelHTML")&&this.label.set("html",this.get("labelHTML"))}_changed(){if(super._changed(),(this.isDirty("pointTo")||this.isDirty("pointerOrientation"))&&this._updateBackground(),this.isDirty("tooltipTarget")&&this.updateBackgroundColor(),this.isDirty("keepTargetHover"))if(this.get("keepTargetHover")){const e=this.get("background");this._keepHoverDp=new s.M([e.events.on("pointerover",(e=>{let t=this.get("tooltipTarget");t&&(t.parent&&t.parent.getPrivate("tooltipTarget")==t&&(t=t.parent),t.hover())})),e.events.on("pointerout",(e=>{let t=this.get("tooltipTarget");t&&(t.parent&&t.parent.getPrivate("tooltipTarget")==t&&(t=t.parent),this._htmlContentHovered||t.unhover())}))]),this.label.onPrivate("htmlElement",(t=>{this._keepHoverDp&&t&&this._keepHoverDp.disposers.push((0,s.h)(t,"pointerleave",(t=>{const i=this.root._renderer.getEvent(t);e.events.dispatch("pointerout",{type:"pointerout",originalEvent:i.event,point:i.point,simulated:!1,target:e})})))}))}else this._keepHoverDp&&(this._keepHoverDp.dispose(),this._keepHoverDp=void 0)}_onShow(){super._onShow(),this.updateBackgroundColor()}updateBackgroundColor(){let e=this.get("tooltipTarget");const t=this.get("background");let i,s;e&&t&&(i=e.get("fill"),s=e.get("stroke"),null==i&&(i=s),this.get("getFillFromSprite")&&(this._fillDp&&this._fillDp.dispose(),null!=i&&t.set("fill",i),this._fillDp=e.on("fill",(e=>{null!=e&&(t.set("fill",e),this._updateTextColor(e))})),this._disposers.push(this._fillDp)),this.get("getStrokeFromSprite")&&(this._strokeDp&&this._strokeDp.dispose(),null!=i&&t.set("stroke",i),this._strokeDp=e.on("fill",(e=>{null!=e&&t.set("stroke",e)})),this._disposers.push(this._strokeDp)),this.get("getLabelFillFromSprite")&&(this._labelDp&&this._labelDp.dispose(),null!=i&&this.label.set("fill",i),this._labelDp=e.on("fill",(e=>{null!=e&&this.label.set("fill",e)})),this._disposers.push(this._labelDp))),this._updateTextColor(i)}_updateTextColor(e){this.get("autoTextColor")&&(null==e&&(e=this.get("background").get("fill")),null==e&&(e=this._root.interfaceColors.get("background")),e instanceof s.C&&this.label.set("fill",s.C.alternative(e,this._root.interfaceColors.get("alternativeText"),this._root.interfaceColors.get("text"))))}_setDataItem(e){super._setDataItem(e),this.label._setDataItem(e)}_updateBackground(){super.updateBackground();const e=this._root.container;if(e){let t=.5,i=.5,r=this.get("centerX");r instanceof s.P&&(t=r.value);let n=this.get("centerY");n instanceof s.P&&(i=n.value);let o=e.width(),h=e.height(),l=this.parent,u=0,d=0;if(l){u=l.x(),d=l.y();const e=l.get("layerMargin");e&&(u+=e.left||0,d+=e.top||0,o+=(e.left||0)+(e.right||0),h+=(e.top||0)+(e.bottom||0))}const g=this.get("bounds",{left:-u,top:-d,right:o-u,bottom:h-d});this._updateBounds();let p=this.width(),c=this.height();0===p&&(p=this._w),0===c&&(c=this._h);let m=this.get("pointTo",{x:o/2,y:h/2}),b=m.x,f=m.y,_=this.get("pointerOrientation"),v=this.get("background"),y=0,w=0,x=0;v instanceof a&&(y=v.get("pointerLength",0),w=v.get("strokeWidth",0)/2,x=w,v.set("width",p),v.set("height",c));let T=0,X=0,D=g.right-g.left,C=g.bottom-g.top;"horizontal"==_||"left"==_||"right"==_?(w=0,"horizontal"==_?b>g.left+D/2?(b-=p*(1-t)+y,x*=-1):b+=p*t+y:"left"==_?b+=p*(1-t)+y:(b-=p*t+y,x*=-1)):(x=0,"vertical"==_?f>g.top+c/2+y?f-=c*(1-i)+y:(f+=c*i+y,w*=-1):"down"==_?f-=c*(1-i)+y:(f+=c*i+y,w*=-1)),b=(0,s.f)(b,g.left+p*t,g.left+D-p*(1-t))+x,f=(0,s.f)(f,g.top+c*i,g.top+C-c*(1-i))-w,T=m.x-b+p*t+x,X=m.y-f+c*i-w,this._fx=b,this._fy=f;const P=this.get("animationDuration",0);if(P>0&&this.get("visible")&&this.get("opacity")>.1){const e=this.get("animationEasing");this.animate({key:"x",to:b,duration:P,easing:e}),this.animate({key:"y",to:f,duration:P,easing:e})}else this.set("x",b),this.set("y",f);v instanceof a&&(v.set("pointerX",T),v.set("pointerY",X)),p>0&&(this._w=p),c>0&&(this._h=c)}}}Object.defineProperty(r,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Tooltip"}),Object.defineProperty(r,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.g.classNames.concat([r.className])})},9229:function(e,t,i){i.d(t,{AnimatedThemeAm5:function(){return u},ColorSetAm5:function(){return h.C},DarkThemeAm5:function(){return a},ResponsiveThemeAm5:function(){return r},ScrollbarAm5:function(){return l},ThemeAm5:function(){return s.T},TooltipAm5:function(){return o.T},colorAm5:function(){return s.d},esriChartColorSet:function(){return d}});var s=i(3027);class a extends s.T{setupDefaultRules(){super.setupDefaultRules(),this.rule("InterfaceColors").setAll({stroke:s.C.fromHex(0),fill:s.C.fromHex(2829099),primaryButton:s.C.lighten(s.C.fromHex(6788316),-.2),primaryButtonHover:s.C.lighten(s.C.fromHex(6779356),-.2),primaryButtonDown:s.C.lighten(s.C.fromHex(6872181),-.2),primaryButtonActive:s.C.lighten(s.C.fromHex(6872182),-.2),primaryButtonText:s.C.fromHex(16777215),primaryButtonStroke:s.C.lighten(s.C.fromHex(6788316),-.2),secondaryButton:s.C.fromHex(3881787),secondaryButtonHover:s.C.lighten(s.C.fromHex(3881787),.1),secondaryButtonDown:s.C.lighten(s.C.fromHex(3881787),.15),secondaryButtonActive:s.C.lighten(s.C.fromHex(3881787),.2),secondaryButtonText:s.C.fromHex(12303291),secondaryButtonStroke:s.C.lighten(s.C.fromHex(3881787),-.2),grid:s.C.fromHex(12303291),background:s.C.fromHex(0),alternativeBackground:s.C.fromHex(16777215),text:s.C.fromHex(16777215),alternativeText:s.C.fromHex(0),disabled:s.C.fromHex(11382189),positive:s.C.fromHex(5288704),negative:s.C.fromHex(11730944)})}}class r extends s.T{constructor(e,t){super(e,t),Object.defineProperty(this,"_dp",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"responsiveRules",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this._dp=new s.M([this._root._rootContainer.onPrivate("width",(e=>{this._isUsed()&&this._maybeApplyRules()})),this._root._rootContainer.onPrivate("height",(e=>{this._isUsed()&&this._maybeApplyRules()}))])}static widthXXS(e,t){return e<=r.XXS}static widthXS(e,t){return e<=r.XS}static widthS(e,t){return e<=r.S}static widthM(e,t){return e<=r.M}static widthL(e,t){return e<=r.L}static widthXL(e,t){return e<=r.XL}static widthXXL(e,t){return e<=r.XXL}static heightXXS(e,t){return t<=r.XXS}static heightXS(e,t){return t<=r.XS}static heightS(e,t){return t<=r.S}static heightM(e,t){return t<=r.M}static heightL(e,t){return t<=r.L}static heightXL(e,t){return t<=r.XL}static heightXXL(e,t){return t<=r.XXL}static isXXS(e,t){return e<=r.XXS&&t<=r.XXS}static isXS(e,t){return e<=r.XS&&t<=r.XS}static isS(e,t){return e<=r.S&&t<=r.S}static isM(e,t){return e<=r.M&&t<=r.M}static isL(e,t){return e<=r.L&&t<=r.L}static isXL(e,t){return e<=r.XL&&t<=r.XL}static isXXL(e,t){return e<=r.XXL&&t<=r.XXL}static maybeXXS(e,t){return e<=r.XXS||t<=r.XXS}static maybeXS(e,t){return e<=r.XS||t<=r.XS}static maybeS(e,t){return e<=r.S||t<=r.S}static maybeM(e,t){return e<=r.M||t<=r.M}static maybeL(e,t){return e<=r.L||t<=r.L}static maybeXL(e,t){return e<=r.XL||t<=r.XL}static maybeXXL(e,t){return e<=r.XXL||t<=r.XXL}static newEmpty(e){return new this(e,!0)}addRule(e){return e.name&&!e.template&&(e.template=this.rule(e.name,e.tags)),this.responsiveRules.push(e),this._maybeApplyRule(e),e}removeRule(e){(0,s.r)(this.responsiveRules,e)}dispose(){this._dp&&this._dp.dispose()}_isUsed(){return-1!==this._root._rootContainer.get("themes").indexOf(this)}_maybeApplyRules(){(0,s.i)(this.responsiveRules,(e=>{this._maybeUnapplyRule(e)})),(0,s.i)(this.responsiveRules,(e=>{this._maybeApplyRule(e)}))}_maybeApplyRule(e){if(e.applied)return;const t=this._root._rootContainer.getPrivate("width"),i=this._root._rootContainer.getPrivate("height");e.relevant.call(e,t,i)&&(e.applied=!0,e.template&&e.settings&&e.template.setAll(e.settings),e.applying&&e.applying.call(e))}_maybeUnapplyRule(e){if(!e.applied)return;const t=this._root._rootContainer.getPrivate("width"),i=this._root._rootContainer.getPrivate("height");e.relevant.call(e,t,i)||(e.applied=!1,e.template&&e.template.removeAll(),e.removing&&e.removing.call(e))}setupDefaultRules(){super.setupDefaultRules();const e=e=>this.addRule(e);e({name:"Chart",relevant:r.widthXXS,settings:{paddingLeft:0,paddingRight:0}}),e({name:"Chart",relevant:r.heightXXS,settings:{paddingTop:0,paddingBottom:0}}),e({name:"Bullet",relevant:r.isXS,settings:{forceHidden:!0}}),e({name:"Legend",relevant:r.isXS,settings:{forceHidden:!0}}),e({name:"HeatLegend",tags:["vertical"],relevant:r.widthXS,settings:{forceHidden:!0}}),e({name:"HeatLegend",tags:["horizontal"],relevant:r.heightXS,settings:{forceHidden:!0}}),e({name:"Label",tags:["heatlegend","start"],relevant:r.maybeXS,settings:{forceHidden:!0}}),e({name:"Label",tags:["heatlegend","end"],relevant:r.maybeXS,settings:{forceHidden:!0}}),e({name:"Button",tags:["resize"],relevant:r.maybeXS,settings:{forceHidden:!0}}),e({name:"AxisRendererX",relevant:r.heightXS,settings:{inside:!0}}),e({name:"AxisRendererY",relevant:r.widthXS,settings:{inside:!0}}),e({name:"AxisRendererXLabel",relevant:r.heightXS,settings:{minPosition:.1,maxPosition:.9}}),e({name:"AxisLabel",tags:["y"],relevant:r.widthXS,settings:{centerY:s.a,maxPosition:.9}}),e({name:"AxisLabel",tags:["x"],relevant:r.heightXXS,settings:{forceHidden:!0}}),e({name:"AxisLabel",tags:["x","minor"],relevant:r.widthXXL,settings:{forceHidden:!0}}),e({name:"AxisLabel",tags:["y"],relevant:r.widthXXS,settings:{forceHidden:!0}}),e({name:"AxisLabel",tags:["y","minor"],relevant:r.heightXXL,settings:{forceHidden:!0}}),e({name:"AxisTick",tags:["x"],relevant:r.heightXS,settings:{inside:!0,minPosition:.1,maxPosition:.9}}),e({name:"AxisTick",tags:["y"],relevant:r.widthXXS,settings:{inside:!0,minPosition:.1,maxPosition:.9}}),e({name:"Grid",relevant:r.maybeXXS,settings:{forceHidden:!0}}),e({name:"RadialLabel",tags:["radial"],relevant:r.maybeXS,settings:{forceHidden:!0}}),e({name:"RadialLabel",tags:["circular"],relevant:r.maybeS,settings:{inside:!0}}),e({name:"AxisTick",relevant:r.maybeS,settings:{inside:!0}}),e({name:"RadialLabel",tags:["circular"],relevant:r.maybeXS,settings:{forceHidden:!0}}),e({name:"AxisTick",tags:["circular"],relevant:r.maybeXS,settings:{inside:!0}}),e({name:"PieChart",relevant:r.maybeXS,settings:{radius:(0,s.j)(99)}}),e({name:"PieChart",relevant:r.widthM,settings:{radius:(0,s.j)(99)}}),e({name:"RadialLabel",tags:["pie"],relevant:r.maybeXS,settings:{forceHidden:!0}}),e({name:"RadialLabel",tags:["pie"],relevant:r.widthM,settings:{forceHidden:!0}}),e({name:"Tick",tags:["pie"],relevant:r.maybeXS,settings:{forceHidden:!0}}),e({name:"Tick",tags:["pie"],relevant:r.widthM,settings:{forceHidden:!0}}),e({name:"FunnelSeries",relevant:r.widthM,settings:{alignLabels:!1}}),e({name:"Label",tags:["funnel","vertical"],relevant:r.widthL,settings:{forceHidden:!0}}),e({name:"Tick",tags:["funnel","vertical"],relevant:r.widthL,settings:{forceHidden:!0}}),e({name:"Label",tags:["funnel","horizontal"],relevant:r.heightS,settings:{forceHidden:!0}}),e({name:"Tick",tags:["funnel","horizontal"],relevant:r.heightS,settings:{forceHidden:!0}}),e({name:"PyramidSeries",relevant:r.widthM,settings:{alignLabels:!1}}),e({name:"Label",tags:["pyramid","vertical"],relevant:r.widthL,settings:{forceHidden:!0}}),e({name:"Tick",tags:["pyramid","vertical"],relevant:r.widthL,settings:{forceHidden:!0}}),e({name:"Label",tags:["pyramid","horizontal"],relevant:r.heightS,settings:{forceHidden:!0}}),e({name:"Tick",tags:["pyramid","horizontal"],relevant:r.heightS,settings:{forceHidden:!0}}),e({name:"PictorialStackedSeries",relevant:r.widthM,settings:{alignLabels:!1}}),e({name:"Label",tags:["pictorial","vertical"],relevant:r.widthL,settings:{forceHidden:!0}}),e({name:"Tick",tags:["pictorial","vertical"],relevant:r.widthL,settings:{forceHidden:!0}}),e({name:"Label",tags:["pictorial","horizontal"],relevant:r.heightS,settings:{forceHidden:!0}}),e({name:"Tick",tags:["pictorial","horizontal"],relevant:r.heightS,settings:{forceHidden:!0}}),e({name:"Label",tags:["flow","horizontal"],relevant:r.widthS,settings:{forceHidden:!0}}),e({name:"Label",tags:["flow","vertical"],relevant:r.heightS,settings:{forceHidden:!0}}),e({name:"Chord",relevant:r.maybeXS,settings:{radius:(0,s.j)(99)}}),e({name:"Label",tags:["hierarchy","node"],relevant:r.maybeXS,settings:{forceHidden:!0}})}}Object.defineProperty(r,"XXS",{enumerable:!0,configurable:!0,writable:!0,value:100}),Object.defineProperty(r,"XS",{enumerable:!0,configurable:!0,writable:!0,value:200}),Object.defineProperty(r,"S",{enumerable:!0,configurable:!0,writable:!0,value:300}),Object.defineProperty(r,"M",{enumerable:!0,configurable:!0,writable:!0,value:400}),Object.defineProperty(r,"L",{enumerable:!0,configurable:!0,writable:!0,value:600}),Object.defineProperty(r,"XL",{enumerable:!0,configurable:!0,writable:!0,value:800}),Object.defineProperty(r,"XXL",{enumerable:!0,configurable:!0,writable:!0,value:1e3});var n=i(77765),o=i(26754),h=i(50240);class l extends s.g{constructor(){super(...arguments),Object.defineProperty(this,"thumb",{enumerable:!0,configurable:!0,writable:!0,value:this._makeThumb()}),Object.defineProperty(this,"startGrip",{enumerable:!0,configurable:!0,writable:!0,value:this._makeButton()}),Object.defineProperty(this,"endGrip",{enumerable:!0,configurable:!0,writable:!0,value:this._makeButton()}),Object.defineProperty(this,"_thumbBusy",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_startDown",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_endDown",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_thumbDown",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_gripDown",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}_addOrientationClass(){this._settings.themeTags=(0,s.m)(this._settings.themeTags,["scrollbar",this._settings.orientation]),this._settings.background||(this._settings.background=n.R.new(this._root,{themeTags:(0,s.m)(this._settings.themeTags,["main","background"])}))}_makeButton(){return this.children.push(n.B.new(this._root,{themeTags:["resize","button",this.get("orientation")],icon:s.e.new(this._root,{themeTags:["icon"]})}))}_makeThumb(){return this.children.push(n.R.new(this._root,{themeTags:["thumb",this.get("orientation")]}))}_handleAnimation(e){e&&this._disposers.push(e.events.on("stopped",(()=>{this.setPrivateRaw("isBusy",!1),this._thumbBusy=!1})))}_afterNew(){this._addOrientationClass(),super._afterNew();const e=this.startGrip,t=this.endGrip,i=this.thumb,a=this.get("background");a&&this._disposers.push(a.events.on("click",(e=>{this.setPrivateRaw("isBusy",!0);const t=this._display.toLocal(e.point),s=this.width(),a=this.height(),r=this.get("orientation");let n,o,h;n="vertical"==r?(t.y-i.height()/2)/a:(t.x-i.width()/2)/s,"vertical"==r?(o=n*a,h="y"):(o=n*s,h="x");const l=this.get("animationDuration",0);l>0?(this._thumbBusy=!0,this._handleAnimation(this.thumb.animate({key:h,to:o,duration:l,easing:this.get("animationEasing")}))):(this.thumb.set(h,o),this._root.events.once("frameended",(()=>{this.setPrivateRaw("isBusy",!1)})))}))),this._disposers.push(i.events.on("dblclick",(e=>{if(!(0,s.n)(e.originalEvent,this))return;const t=this.get("animationDuration",0),i=this.get("animationEasing");this.animate({key:"start",to:0,duration:t,easing:i}),this.animate({key:"end",to:1,duration:t,easing:i})}))),this._disposers.push(e.events.on("pointerdown",(()=>{this.setPrivateRaw("isBusy",!0),this._startDown=!0,this._gripDown="start"}))),this._disposers.push(t.events.on("pointerdown",(()=>{this.setPrivateRaw("isBusy",!0),this._endDown=!0,this._gripDown="end"}))),this._disposers.push(i.events.on("pointerdown",(()=>{this.setPrivateRaw("isBusy",!0),this._thumbDown=!0,this._gripDown=void 0}))),this._disposers.push(e.events.on("globalpointerup",(()=>{this._startDown&&this.setPrivateRaw("isBusy",!1),this._startDown=!1}))),this._disposers.push(t.events.on("globalpointerup",(()=>{this._endDown&&this.setPrivateRaw("isBusy",!1),this._endDown=!1}))),this._disposers.push(i.events.on("globalpointerup",(()=>{this._thumbDown&&this.setPrivateRaw("isBusy",!1),this._thumbDown=!1}))),this._disposers.push(e.on("x",(()=>{this._updateThumb()}))),this._disposers.push(t.on("x",(()=>{this._updateThumb()}))),this._disposers.push(e.on("y",(()=>{this._updateThumb()}))),this._disposers.push(t.on("y",(()=>{this._updateThumb()}))),this._disposers.push(i.events.on("positionchanged",(()=>{this._updateGripsByThumb()}))),"vertical"==this.get("orientation")?(e.set("x",0),t.set("x",0),this._disposers.push(i.adapters.add("y",(e=>Math.max(Math.min(Number(e),this.height()-i.height()),0)))),this._disposers.push(i.adapters.add("x",(e=>this.width()/2))),this._disposers.push(e.adapters.add("x",(e=>this.width()/2))),this._disposers.push(t.adapters.add("x",(e=>this.width()/2))),this._disposers.push(e.adapters.add("y",(e=>Math.max(Math.min(Number(e),this.height()),0)))),this._disposers.push(t.adapters.add("y",(e=>Math.max(Math.min(Number(e),this.height()),0))))):(e.set("y",0),t.set("y",0),this._disposers.push(i.adapters.add("x",(e=>Math.max(Math.min(Number(e),this.width()-i.width()),0)))),this._disposers.push(i.adapters.add("y",(e=>this.height()/2))),this._disposers.push(e.adapters.add("y",(e=>this.height()/2))),this._disposers.push(t.adapters.add("y",(e=>this.height()/2))),this._disposers.push(e.adapters.add("x",(e=>Math.max(Math.min(Number(e),this.width()),0)))),this._disposers.push(t.adapters.add("x",(e=>Math.max(Math.min(Number(e),this.width()),0)))))}_updateChildren(){super._updateChildren(),(this.isDirty("end")||this.isDirty("start")||this._sizeDirty)&&this.updateGrips()}_changed(){if(super._changed(),this.isDirty("start")||this.isDirty("end")){const e="rangechanged";this.events.isEnabled(e)&&this.events.dispatch(e,{type:e,target:this,start:this.get("start",0),end:this.get("end",1),grip:this._gripDown})}}updateGrips(){const e=this.startGrip,t=this.endGrip,i=this.get("orientation"),s=this.height(),a=this.width();"vertical"==i?(e.set("y",s*this.get("start",0)),t.set("y",s*this.get("end",1))):(e.set("x",a*this.get("start",0)),t.set("x",a*this.get("end",1)));const r=this.getPrivate("positionTextFunction"),n=Math.round(100*this.get("start",0)),o=Math.round(100*this.get("end",0));let h,l;r?(h=r.call(this,this.get("start",0)),l=r.call(this,this.get("end",0))):(h=n+"%",l=o+"%"),e.set("ariaLabel",this._t("From %1",void 0,h)),e.set("ariaValueNow",""+n),e.set("ariaValueText",n+"%"),e.set("ariaValueMin","0"),e.set("ariaValueMax","100"),t.set("ariaLabel",this._t("To %1",void 0,l)),t.set("ariaValueNow",""+o),t.set("ariaValueText",o+"%"),t.set("ariaValueMin","0"),t.set("ariaValueMax","100")}_updateThumb(){const e=this.thumb,t=this.startGrip,i=this.endGrip,a=this.height(),r=this.width();let n=t.x(),o=i.x(),h=t.y(),l=i.y(),u=0,d=1;"vertical"==this.get("orientation")?(0,s.k)(h)&&(0,s.k)(l)&&(this._thumbBusy||e.isDragging()||(e.set("height",l-h),e.set("y",h)),u=h/a,d=l/a):(0,s.k)(n)&&(0,s.k)(o)&&(this._thumbBusy||e.isDragging()||(e.set("width",o-n),e.set("x",n)),u=n/r,d=o/r),!this.getPrivate("isBusy")||this.get("start")==u&&this.get("end")==d||(this.set("start",u),this.set("end",d));const g=this.getPrivate("positionTextFunction"),p=Math.round(100*this.get("start",0)),c=Math.round(100*this.get("end",0));let m,b;g?(m=g.call(this,this.get("start",0)),b=g.call(this,this.get("end",0))):(m=p+"%",b=c+"%"),e.set("ariaLabel",this._t("From %1 to %2",void 0,m,b)),e.set("ariaValueNow",""+p),e.set("ariaValueText",p+"%")}_updateGripsByThumb(){const e=this.thumb,t=this.startGrip,i=this.endGrip;if("vertical"==this.get("orientation")){const s=e.height();t.set("y",e.y()),i.set("y",e.y()+s)}else{const s=e.width();t.set("x",e.x()),i.set("x",e.x()+s)}}}Object.defineProperty(l,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Scrollbar"}),Object.defineProperty(l,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:s.g.classNames.concat([l.className])});class u extends s.T{setupDefaultRules(){super.setupDefaultRules(),this.rule("Component").setAll({interpolationDuration:600}),this.rule("Hierarchy").set("animationDuration",600),this.rule("Scrollbar").set("animationDuration",600),this.rule("Tooltip").set("animationDuration",300),this.rule("MapChart").set("animationDuration",1e3),this.rule("MapChart").set("wheelDuration",300),this.rule("Entity").setAll({stateAnimationDuration:600}),this.rule("Sprite").states.create("default",{stateAnimationDuration:600}),this.rule("Tooltip",["axis"]).setAll({animationDuration:200}),this.rule("WordCloud").set("animationDuration",500),this.rule("Polygon").set("animationDuration",600),this.rule("ArcDiagram").set("animationDuration",600)}}const d=["#2888B8","#EB7028","#48A375","#9370B1","#e55035","#3d9ccc","#DC7B04","#b87bb0","#3fa681","#EE6386"].map((e=>(0,s.d)(e)))}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9341.2ab444f88c2b4c5f4f5b.js b/docs/sentinel1-explorer/9341.2ab444f88c2b4c5f4f5b.js new file mode 100644 index 00000000..28582296 --- /dev/null +++ b/docs/sentinel1-explorer/9341.2ab444f88c2b4c5f4f5b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9341],{39434:function(e,_,r){r.r(_),r.d(_,{default:function(){return d}});const d={_decimalSeparator:",",_thousandSeparator:" ",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"m.ē.",_era_bc:"p.m.ē.",A:"priekšp.",P:"pēcp.",AM:"priekšp.",PM:"pēcp.","A.M.":"priekšpusdienā","P.M.":"pēcpusdienā",January:"janvāris",February:"februāris",March:"marts",April:"aprīlis",May:"maijs",June:"jūnijs",July:"jūlijs",August:"augusts",September:"septembris",October:"oktobris",November:"novembris",December:"decembris",Jan:"janv.",Feb:"febr.",Mar:"marts",Apr:"apr.","May(short)":"maijs",Jun:"jūn.",Jul:"jūl.",Aug:"aug.",Sep:"sept.",Oct:"okt.",Nov:"nov.",Dec:"dec.",Sunday:"svētdiena",Monday:"pirmdiena",Tuesday:"otrdiena",Wednesday:"trešdiena",Thursday:"ceturtdiena",Friday:"piektdiena",Saturday:"sestdiena",Sun:"svētd.",Mon:"pirmd.",Tue:"otrd.",Wed:"trešd.",Thu:"ceturtd.",Fri:"piektd.",Sat:"sestd.",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:_="st";break;case 2:_="nd";break;case 3:_="rd"}return _},"Zoom Out":"Tālummaiņa",Play:"Darbināt",Stop:"Apturēt",Legend:"Apzīmējumi","Press ENTER to toggle":"",Loading:"Ielādē",Home:"Sākums",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"Drukāt",Image:"Attēls",Data:"Dati",Print:"Drukāt","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"No %1 līdz %2","From %1":"No %1","To %1":"Līdz %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9361.6d1dffd85cb0010dfb4c.js b/docs/sentinel1-explorer/9361.6d1dffd85cb0010dfb4c.js new file mode 100644 index 00000000..f85067f8 --- /dev/null +++ b/docs/sentinel1-explorer/9361.6d1dffd85cb0010dfb4c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9361],{59361:function(e,t,r){r.r(t),r.d(t,{submitTraceJob:function(){return c},trace:function(){return o}});var a=r(66341),n=r(84238),s=r(37017);async function o(e,t,r){const o=(0,n.en)(e),c=t.toJSON();c.traceLocations=JSON.stringify(t.traceLocations),t.resultTypes&&(c.resultTypes=JSON.stringify(t.resultTypes));const i=(0,n.lA)(o.query,{query:(0,n.cv)({...c,f:"json"}),...r}),u=`${o.path}/trace`;return(0,a.Z)(u,i).then((e=>function(e,t){const{data:r}=e,a=s.Z.fromJSON(r.traceResults);return a.aggregatedGeometry&&t&&(a.aggregatedGeometry.line&&(a.aggregatedGeometry.line.spatialReference=t.clone()),a.aggregatedGeometry.multipoint&&(a.aggregatedGeometry.multipoint.spatialReference=t.clone()),a.aggregatedGeometry.polygon&&(a.aggregatedGeometry.polygon.spatialReference=t.clone())),a}(e,t.outSpatialReference)))}async function c(e,t,r){const s=(0,n.en)(e),o=t.toJSON();o.traceLocations=JSON.stringify(t.traceLocations),t.resultTypes&&(o.resultTypes=JSON.stringify(t.resultTypes));const c=(0,n.lA)(s.query,{query:(0,n.cv)({...o,async:!0,f:"json"}),...r}),i=`${s.path}/trace`,{data:u}=await(0,a.Z)(i,c);return u.statusUrl}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9420.906154ee4f385accfe0c.js b/docs/sentinel1-explorer/9420.906154ee4f385accfe0c.js new file mode 100644 index 00000000..ce4a6c29 --- /dev/null +++ b/docs/sentinel1-explorer/9420.906154ee4f385accfe0c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9420],{69420:function(e,r,t){t.r(r),t.d(r,{default:function(){return V}});var i=t(36663),s=t(66341),a=t(37956),o=t(70375),n=t(63592),l=t(15842),y=t(78668),p=t(81977),u=t(7283),c=(t(4157),t(39994),t(34248)),h=t(40266),m=t(39835),d=t(65943),b=t(91772),f=t(68577),g=t(35925),v=t(38481),S=t(91223),_=t(81432),x=t(87232),I=t(27668),C=t(63989),w=t(43330),L=t(18241),O=t(12478),E=t(95874),P=t(80002),T=t(2030),D=t(51599),F=t(24065),N=t(4452),M=t(23875),R=t(93698),Z=t(76912),j=t(72559);let J=class extends((0,I.h)((0,T.n)((0,E.M)((0,P.x)((0,_.O)((0,x.Y)((0,w.q)((0,L.I)((0,l.R)((0,O.Q)((0,S.V)((0,C.N)(v.Z))))))))))))){constructor(...e){super(...e),this.dateFieldsTimeZone=null,this.datesInUnknownTimezone=!1,this.dpi=96,this.gdbVersion=null,this.imageFormat="png24",this.imageMaxHeight=2048,this.imageMaxWidth=2048,this.imageTransparency=!0,this.isReference=null,this.labelsVisible=!1,this.operationalLayerType="ArcGISMapServiceLayer",this.preferredTimeZone=null,this.sourceJSON=null,this.sublayers=null,this.type="map-image",this.url=null}normalizeCtorArgs(e,r){return"string"==typeof e?{url:e,...r}:e}load(e){const r=null!=e?e.signal:null;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Map Service"]},e).catch(y.r9).then((()=>this._fetchService(r)))),Promise.resolve(this)}readImageFormat(e,r){const t=r.supportedImageFormatTypes;return t&&t.includes("PNG32")?"png32":"png24"}writeSublayers(e,r,t,i){if(!this.loaded||!e)return;const s=e.slice().reverse().flatten((({sublayers:e})=>e&&e.toArray().reverse())).toArray();let a=!1;if(this.capabilities?.operations.supportsExportMap&&this.capabilities?.exportMap?.supportsDynamicLayers){const e=(0,d.M9)(i.origin);if(e===d.s3.PORTAL_ITEM){const e=this.createSublayersForOrigin("service").sublayers;a=(0,R.QV)(s,e,d.s3.SERVICE)}else if(e>d.s3.PORTAL_ITEM){const e=this.createSublayersForOrigin("portal-item");a=(0,R.QV)(s,e.sublayers,(0,d.M9)(e.origin))}}const o=[],n={writeSublayerStructure:a,...i};let l=a;s.forEach((e=>{const r=e.write({},n);o.push(r),l=l||"user"===e.originOf("visible")})),o.some((e=>Object.keys(e).length>1))&&(r.layers=o),l&&(r.visibleLayers=s.filter((e=>e.visible)).map((e=>e.id)))}createExportImageParameters(e,r,t,i){const s=i?.pixelRatio||1;e&&this.version>=10&&(e=e.clone().shiftCentralMeridian());const a=new F.R({layer:this,floors:i?.floors,scale:(0,f.yZ)({extent:e,width:r})*s}),o=a.toJSON();a.destroy();const n=!i?.rotation||this.version<10.3?{}:{rotation:-i.rotation},l=e?.spatialReference,y=(0,g.B9)(l);o.dpi*=s;const p={};if(i?.timeExtent){const{start:e,end:r}=i.timeExtent.toJSON();p.time=e&&r&&e===r?""+e:`${e??"null"},${r??"null"}`}else this.timeInfo&&!this.timeInfo.hasLiveData&&(p.time="null,null");return{bbox:e&&e.xmin+","+e.ymin+","+e.xmax+","+e.ymax,bboxSR:y,imageSR:y,size:r+","+t,...o,...n,...p}}async fetchImage(e,r,t,i){const{data:s}=await this._fetchImage("image",e,r,t,i);return s}async fetchImageBitmap(e,r,t,i){const{data:s,url:a}=await this._fetchImage("blob",e,r,t,i);return(0,N.g)(s,a,i?.signal)}async fetchRecomputedExtents(e={}){const r={...e,query:{returnUpdates:!0,f:"json",...this.customParameters,token:this.apiKey}},{data:t}=await(0,s.Z)(this.url,r),{extent:i,fullExtent:o,timeExtent:n}=t,l=i||o;return{fullExtent:l&&b.Z.fromJSON(l),timeExtent:n&&a.Z.fromJSON({start:n[0],end:n[1]})}}loadAll(){return(0,n.G)(this,(e=>{e(this.allSublayers)}))}serviceSupportsSpatialReference(e){return(0,Z.D)(this,e)}async _fetchImage(e,r,t,i,a){const n={responseType:e,signal:a?.signal??null,query:{...this.parsedUrl.query,...this.createExportImageParameters(r,t,i,a),f:"image",...this.refreshParameters,...this.customParameters,token:this.apiKey}},l=this.parsedUrl.path+"/export";if(null!=n.query?.dynamicLayers&&!this.capabilities?.exportMap?.supportsDynamicLayers)throw new o.Z("mapimagelayer:dynamiclayer-not-supported",`service ${this.url} doesn't support dynamic layers, which is required to be able to change the sublayer's order, rendering, labeling or source.`,{query:n.query});try{const{data:e}=await(0,s.Z)(l,n);return{data:e,url:l}}catch(e){if((0,y.D_)(e))throw e;throw new o.Z("mapimagelayer:image-fetch-error",`Unable to load image: ${l}`,{error:e})}}async _fetchService(e){if(this.sourceJSON)return void this.read(this.sourceJSON,{origin:"service",url:this.parsedUrl});const{data:r,ssl:t}=await(0,s.Z)(this.parsedUrl.path,{query:{f:"json",...this.parsedUrl.query,...this.customParameters,token:this.apiKey},signal:e});t&&(this.url=this.url.replace(/^http:/i,"https:")),this.sourceJSON=r,this.read(r,{origin:"service",url:this.parsedUrl})}};(0,i._)([(0,p.Cb)((0,j.mi)("dateFieldsTimeReference"))],J.prototype,"dateFieldsTimeZone",void 0),(0,i._)([(0,p.Cb)({type:Boolean})],J.prototype,"datesInUnknownTimezone",void 0),(0,i._)([(0,p.Cb)()],J.prototype,"dpi",void 0),(0,i._)([(0,p.Cb)()],J.prototype,"gdbVersion",void 0),(0,i._)([(0,p.Cb)()],J.prototype,"imageFormat",void 0),(0,i._)([(0,c.r)("imageFormat",["supportedImageFormatTypes"])],J.prototype,"readImageFormat",null),(0,i._)([(0,p.Cb)({json:{origins:{service:{read:{source:"maxImageHeight"}}}}})],J.prototype,"imageMaxHeight",void 0),(0,i._)([(0,p.Cb)({json:{origins:{service:{read:{source:"maxImageWidth"}}}}})],J.prototype,"imageMaxWidth",void 0),(0,i._)([(0,p.Cb)()],J.prototype,"imageTransparency",void 0),(0,i._)([(0,p.Cb)({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],J.prototype,"isReference",void 0),(0,i._)([(0,p.Cb)({json:{read:!1,write:!1}})],J.prototype,"labelsVisible",void 0),(0,i._)([(0,p.Cb)({type:["ArcGISMapServiceLayer"]})],J.prototype,"operationalLayerType",void 0),(0,i._)([(0,p.Cb)({json:{read:!1,write:!1}})],J.prototype,"popupEnabled",void 0),(0,i._)([(0,p.Cb)((0,j.mi)("preferredTimeReference"))],J.prototype,"preferredTimeZone",void 0),(0,i._)([(0,p.Cb)()],J.prototype,"sourceJSON",void 0),(0,i._)([(0,p.Cb)({json:{write:{ignoreOrigin:!0}}})],J.prototype,"sublayers",void 0),(0,i._)([(0,m.c)("sublayers",{layers:{type:[M.Z]},visibleLayers:{type:[u.z8]}})],J.prototype,"writeSublayers",null),(0,i._)([(0,p.Cb)({type:["show","hide","hide-children"]})],J.prototype,"listMode",void 0),(0,i._)([(0,p.Cb)({json:{read:!1},readOnly:!0,value:"map-image"})],J.prototype,"type",void 0),(0,i._)([(0,p.Cb)(D.HQ)],J.prototype,"url",void 0),J=(0,i._)([(0,h.j)("esri.layers.MapImageLayer")],J);const V=J},24065:function(e,r,t){t.d(r,{R:function(){return h}});var i=t(36663),s=t(74396),a=t(84684),o=t(81977),n=(t(39994),t(13802),t(4157),t(40266)),l=t(68577),y=t(51599),p=t(21586),u=t(93698);const c={visible:"visibleSublayers",definitionExpression:"layerDefs",labelingInfo:"hasDynamicLayers",labelsVisible:"hasDynamicLayers",opacity:"hasDynamicLayers",minScale:"visibleSublayers",maxScale:"visibleSublayers",renderer:"hasDynamicLayers",source:"hasDynamicLayers"};let h=class extends s.Z{constructor(e){super(e),this.floors=null,this.scale=0}destroy(){this.layer=null}get dynamicLayers(){if(!this.hasDynamicLayers)return null;const e=this.visibleSublayers.map((e=>{const r=(0,p.f)(this.floors,e);return e.toExportImageJSON(r)}));return e.length?JSON.stringify(e):null}get hasDynamicLayers(){return this.layer&&(0,u.FN)(this.visibleSublayers,this.layer.serviceSublayers,this.layer.gdbVersion)}set layer(e){this._get("layer")!==e&&(this._set("layer",e),this.removeHandles("layer"),e&&this.addHandles([e.allSublayers.on("change",(()=>this.notifyChange("visibleSublayers"))),e.on("sublayer-update",(e=>this.notifyChange(c[e.propertyName])))],"layer"))}get layers(){const e=this.visibleSublayers;return e?e.length?"show:"+e.map((e=>e.id)).join(","):"show:-1":null}get layerDefs(){const e=!!this.floors?.length,r=this.visibleSublayers.filter((r=>null!=r.definitionExpression||e&&null!=r.floorInfo));return r.length?JSON.stringify(r.reduce(((e,r)=>{const t=(0,p.f)(this.floors,r),i=(0,a._)(t,r.definitionExpression);return null!=i&&(e[r.id]=i),e}),{})):null}get version(){this.commitProperty("layers"),this.commitProperty("layerDefs"),this.commitProperty("dynamicLayers"),this.commitProperty("timeExtent");const e=this.layer;return e&&(e.commitProperty("dpi"),e.commitProperty("imageFormat"),e.commitProperty("imageTransparency"),e.commitProperty("gdbVersion")),(this._get("version")||0)+1}get visibleSublayers(){const e=[];if(!this.layer)return e;const r=this.layer.sublayers,t=this.scale,i=r=>{r.visible&&(0===t||(0,l.o2)(t,r.minScale,r.maxScale))&&(r.sublayers?r.sublayers.forEach(i):e.unshift(r))};r&&r.forEach(i);const s=this._get("visibleSublayers");return!s||s.length!==e.length||s.some(((r,t)=>e[t]!==r))?e:s}toJSON(){const e=this.layer;let r={dpi:e.dpi,format:e.imageFormat,transparent:e.imageTransparency,gdbVersion:e.gdbVersion||null};return this.hasDynamicLayers&&this.dynamicLayers?r.dynamicLayers=this.dynamicLayers:r={...r,layers:this.layers,layerDefs:this.layerDefs},r}};(0,i._)([(0,o.Cb)({readOnly:!0})],h.prototype,"dynamicLayers",null),(0,i._)([(0,o.Cb)()],h.prototype,"floors",void 0),(0,i._)([(0,o.Cb)({readOnly:!0})],h.prototype,"hasDynamicLayers",null),(0,i._)([(0,o.Cb)()],h.prototype,"layer",null),(0,i._)([(0,o.Cb)({readOnly:!0})],h.prototype,"layers",null),(0,i._)([(0,o.Cb)({readOnly:!0})],h.prototype,"layerDefs",null),(0,i._)([(0,o.Cb)({type:Number})],h.prototype,"scale",void 0),(0,i._)([(0,o.Cb)(y.qG)],h.prototype,"timeExtent",void 0),(0,i._)([(0,o.Cb)({readOnly:!0})],h.prototype,"version",null),(0,i._)([(0,o.Cb)({readOnly:!0})],h.prototype,"visibleSublayers",null),h=(0,i._)([(0,n.j)("esri.layers.mixins.ExportImageParameters")],h)},21586:function(e,r,t){function i(e){const r=e.layer;return"floorInfo"in r&&r.floorInfo?.floorField&&"floors"in e.view?a(e.view.floors,r.floorInfo.floorField):null}function s(e,r){return"floorInfo"in r&&r.floorInfo?.floorField?a(e,r.floorInfo.floorField):null}function a(e,r){if(!e?.length)return null;const t=e.filter((e=>""!==e)).map((e=>`'${e}'`));return t.push("''"),`${r} IN (${t.join(",")}) OR ${r} IS NULL`}t.d(r,{c:function(){return i},f:function(){return s}})}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9431.e5d0bcad265d2d1a4a9b.js b/docs/sentinel1-explorer/9431.e5d0bcad265d2d1a4a9b.js new file mode 100644 index 00000000..8a2c055c --- /dev/null +++ b/docs/sentinel1-explorer/9431.e5d0bcad265d2d1a4a9b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9431],{24778:function(e,t,i){i.d(t,{b:function(){return f}});var s=i(70375),r=i(39994),n=i(13802),a=i(78668),h=i(14266),o=i(88013),l=i(64429),d=i(91907),u=i(18567),c=i(71449),p=i(80479);class g{constructor(e,t,i){this._texture=null,this._lastTexture=null,this._fbos={},this.texelSize=4;const{buffer:s,pixelType:r,textureOnly:n}=e,a=(0,l.UK)(r);this.blockIndex=i,this.pixelType=r,this.size=t,this.textureOnly=n,n||(this.data=new a(s)),this._resetRange()}destroy(){this._texture?.dispose();for(const e in this._fbos){const t=this._fbos[e];t&&("0"===e&&t.detachColorTexture(),t.dispose()),this._fbos[e]=null}this._texture=null}get _textureDesc(){const e=new p.X;return e.wrapMode=d.e8.CLAMP_TO_EDGE,e.samplingMode=d.cw.NEAREST,e.dataType=this.pixelType,e.width=this.size,e.height=this.size,e}setData(e,t,i){const s=(0,o.jL)(e),r=this.data,n=s*this.texelSize+t;!r||n>=r.length||(r[n]=i,this.dirtyStart=Math.min(this.dirtyStart,s),this.dirtyEnd=Math.max(this.dirtyEnd,s))}getData(e,t){if(null==this.data)return null;const i=(0,o.jL)(e)*this.texelSize+t;return!this.data||i>=this.data.length?null:this.data[i]}getTexture(e){return this._texture??this._initTexture(e)}getFBO(e,t=0){if(!this._fbos[t]){const i=0===t?this.getTexture(e):this._textureDesc;this._fbos[t]=new u.X(e,i)}return this._fbos[t]}get hasDirty(){const e=this.dirtyStart;return this.dirtyEnd>=e}updateTexture(e,t){try{const t=this.dirtyStart,i=this.dirtyEnd;if(!this.hasDirty)return;(0,r.Z)("esri-2d-update-debug"),this._resetRange();const a=this.data.buffer,h=this.getTexture(e),o=4,d=(t-t%this.size)/this.size,u=(i-i%this.size)/this.size,c=d,p=this.size,g=u,_=d*this.size*o,y=(p+g*this.size)*o-_,f=(0,l.UK)(this.pixelType),v=new f(a,_*f.BYTES_PER_ELEMENT,y),w=this.size,b=g-c+1;if(b>this.size)return void n.Z.getLogger("esri.views.2d.engine.webgl.AttributeStoreView").error(new s.Z("mapview-webgl","Out-of-bounds index when updating AttributeData"));h.updateData(0,0,c,w,b,v)}catch(e){}}update(e){const{data:t,start:i,end:s}=e;if(null!=t&&null!=this.data){const s=this.data,r=i*this.texelSize;for(let i=0;inull!=e?new g(e,this.size,t):null));else for(let e=0;e{(0,r.Z)("esri-2d-update-debug")})),this._version=e.version,this._pendingAttributeUpdates.push({inner:e,resolver:t}),(0,r.Z)("esri-2d-update-debug")}get currentEpoch(){return this._epoch}update(){if(this._locked)return;const e=this._pendingAttributeUpdates;this._pendingAttributeUpdates=[];for(const{inner:t,resolver:i}of e){const{blockData:e,initArgs:s,sendUpdateEpoch:n,version:a}=t;(0,r.Z)("esri-2d-update-debug"),this._version=a,this._epoch=n,null!=s&&this._initialize(s);const h=this._data;for(let t=0;te.destroy())),this.removeAllChildren(),this.attributeView.destroy()}doRender(e){e.context.capabilities.enable("textureFloat"),super.doRender(e)}createRenderParams(e){const t=super.createRenderParams(e);return t.attributeView=this.attributeView,t.instanceStore=this._instanceStore,t.statisticsByLevel=this._statisticsByLevel,t}}},70179:function(e,t,i){i.d(t,{Z:function(){return l}});var s=i(39994),r=i(38716),n=i(10994),a=i(22598),h=i(27946);const o=(e,t)=>e.key.level-t.key.level!=0?e.key.level-t.key.level:e.key.row-t.key.row!=0?e.key.row-t.key.row:e.key.col-t.key.col;class l extends n.Z{constructor(e){super(),this._tileInfoView=e}renderChildren(e){this.sortChildren(o),this.setStencilReference(e),super.renderChildren(e)}createRenderParams(e){const{state:t}=e,i=super.createRenderParams(e);return i.requiredLevel=this._tileInfoView.getClosestInfoForScale(t.scale).level,i.displayLevel=this._tileInfoView.tileInfo.scaleToZoom(t.scale),i}prepareRenderPasses(e){const t=super.prepareRenderPasses(e);return t.push(e.registerRenderPass({name:"stencil",brushes:[a.Z],drawPhase:r.jx.DEBUG|r.jx.MAP|r.jx.HIGHLIGHT|r.jx.LABEL,target:()=>this.getStencilTarget()})),(0,s.Z)("esri-tiles-debug")&&t.push(e.registerRenderPass({name:"tileInfo",brushes:[h.Z],drawPhase:r.jx.DEBUG,target:()=>this.children})),t}getStencilTarget(){return this.children}setStencilReference(e){let t=1;for(const e of this.children)e.stencilRef=t++}}},16699:function(e,t,i){i.d(t,{o:function(){return r}});var s=i(77206);class r{constructor(e,t,i,s,r){this._instanceId=e,this.techniqueRef=t,this._meshWriterName=i,this._input=s,this.optionalAttributes=r}get instanceId(){return(0,s.G)(this._instanceId)}createMeshInfo(e){return{id:this._instanceId,meshWriterName:this._meshWriterName,options:e,optionalAttributes:this.optionalAttributes}}getInput(){return this._input}setInput(e){this._input=e}}},66878:function(e,t,i){i.d(t,{y:function(){return w}});var s=i(36663),r=i(6865),n=i(58811),a=i(70375),h=i(76868),o=i(81977),l=(i(39994),i(13802),i(4157),i(40266)),d=i(68577),u=i(10530),c=i(98114),p=i(55755),g=i(88723),_=i(96294);let y=class extends _.Z{constructor(e){super(e),this.type="path",this.path=[]}commitVersionProperties(){this.commitProperty("path")}};(0,s._)([(0,o.Cb)({type:[[[Number]]],json:{write:!0}})],y.prototype,"path",void 0),y=(0,s._)([(0,l.j)("esri.views.layers.support.Path")],y);const f=y,v=r.Z.ofType({key:"type",base:null,typeMap:{rect:p.Z,path:f,geometry:g.Z}}),w=e=>{let t=class extends e{constructor(){super(...arguments),this.attached=!1,this.clips=new v,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this.visibleAtCurrentScale=!1,this.highlightOptions=null}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new a.Z("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new u.W),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([(0,h.YP)((()=>this.suspended),(e=>{this.container&&(this.container.visible=!e)}),h.tX),(0,h.YP)((()=>this.updateSuspended),(e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()}),h.tX),(0,h.YP)((()=>this.layer?.opacity??1),(e=>{this.container&&(this.container.opacity=e)}),h.tX),(0,h.YP)((()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal"),(e=>{this.container&&(this.container.blendMode=e)}),h.tX),(0,h.YP)((()=>this.layer&&"effect"in this.layer?this.layer.effect:null),(e=>{this.container&&(this.container.effect=e)}),h.tX),(0,h.YP)((()=>this.highlightOptions),(e=>this.container.highlightOptions=e),h.tX),(0,h.on)((()=>this.clips),"change",(()=>{this.container&&(this.container.clips=this.clips)}),h.tX),(0,h.YP)((()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null})),(({scale:e})=>{const t=null!=e&&this.isVisibleAtScale(e);t!==this.visibleAtCurrentScale&&this._set("visibleAtCurrentScale",t)}),h.tX)],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then((e=>{e===this&&this.processAttach()}),(()=>{})):this.when().then((()=>{this.processAttach()}),(()=>{})))}destroy(){this.processDetach(),this.updateRequested=!1}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updateSuspended(){return this.suspended}get updating(){return this.spatialReferenceSupported&&(!this.attached||!this.suspended&&(this.updateRequested||this.isUpdating())||!!this._updatingHandles?.updating)}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}isVisibleAtScale(e){const t=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;if(!t)return!0;const{minScale:i,maxScale:s}=t;return(0,d.o2)(e,i,s)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){return!!this.spatialReferenceSupported&&!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported,i=this.visibleAtCurrentScale;return t&&(e.spatialReferenceNotSupported=t),i&&(e.outsideScaleRange=i),e}addAttachHandles(e){this.addHandles(e,"attach")}};return(0,s._)([(0,o.Cb)()],t.prototype,"attached",void 0),(0,s._)([(0,o.Cb)({type:v,set(e){const t=(0,n.Z)(e,this._get("clips"),v);this._set("clips",t)}})],t.prototype,"clips",void 0),(0,s._)([(0,o.Cb)()],t.prototype,"container",void 0),(0,s._)([(0,o.Cb)()],t.prototype,"moving",void 0),(0,s._)([(0,o.Cb)({readOnly:!0})],t.prototype,"spatialReferenceSupported",null),(0,s._)([(0,o.Cb)({readOnly:!0})],t.prototype,"updateParameters",void 0),(0,s._)([(0,o.Cb)()],t.prototype,"updateRequested",void 0),(0,s._)([(0,o.Cb)()],t.prototype,"updateSuspended",null),(0,s._)([(0,o.Cb)()],t.prototype,"updating",null),(0,s._)([(0,o.Cb)()],t.prototype,"view",void 0),(0,s._)([(0,o.Cb)({readOnly:!0})],t.prototype,"visibleAtCurrentScale",void 0),(0,s._)([(0,o.Cb)({type:c.Z})],t.prototype,"highlightOptions",void 0),t=(0,s._)([(0,l.j)("esri.views.2d.layers.LayerView2D")],t),t}},79431:function(e,t,i){i.r(t),i.d(t,{default:function(){return T}});var s=i(36663),r=i(7753),n=i(6865),a=i(81739),h=i(23148),o=i(76868),l=i(81977),d=(i(39994),i(13802),i(40266)),u=i(51801),c=i(45340),p=i(6199),g=i(52182),_=i(79259),y=i(92524),f=i(76045),v=i(26991),w=i(66878),b=i(68114),m=i(18133),x=i(26216);const S=["route-info","direction-line","direction-point","polygon-barrier","polyline-barrier","point-barrier","stop"],R={graphic:null,property:null,oldValue:null,newValue:null};function C(e){return e instanceof u.Z||e instanceof c.Z||e instanceof p.Z||e instanceof g.Z||e instanceof _.Z||e instanceof y.Z||e instanceof f.Z}let M=class extends((0,w.y)(x.Z)){constructor(){super(...arguments),this._graphics=new n.Z,this._highlightIds=new Map,this._networkFeatureMap=new Map,this._networkGraphicMap=new Map}get _routeItems(){return new a.Z({getCollections:()=>null==this.layer||this.destroyed?[]:[null!=this.layer.routeInfo?new n.Z([this.layer.routeInfo]):null,this.layer.directionLines,this.layer.directionPoints,this.layer.polygonBarriers,this.layer.polylineBarriers,this.layer.pointBarriers,this.layer.stops]})}initialize(){this._updatingHandles.addOnCollectionChange((()=>this._routeItems),(e=>this._routeItemsChanged(e)),o.nn)}destroy(){this._networkFeatureMap.clear(),this._networkGraphicMap.clear(),this._graphics.removeAll(),this._get("_routeItems")?.destroy()}attach(){this._createGraphicsView()}detach(){this._destroyGraphicsView()}async fetchPopupFeaturesAtLocation(e,t){return this._graphicsView.hitTest(e).filter((({popupTemplate:e})=>!!e))}highlight(e){let t;t=C(e)?[this._getNetworkFeatureUid(e)]:function(e){return Array.isArray(e)&&e.length>0&&C(e[0])}(e)?e.map((e=>this._getNetworkFeatureUid(e))):function(e){return n.Z.isCollection(e)&&e.length&&C(e.at(0))}(e)?e.map((e=>this._getNetworkFeatureUid(e))).toArray():[e.uid];const i=t.filter(r.pC);return i.length?(this._addHighlight(i),(0,h.kB)((()=>this._removeHighlight(i)))):(0,h.kB)()}async hitTest(e,t){if(this.suspended)return null;const i=this._graphicsView.hitTest(e).filter(r.pC).map((e=>this._networkGraphicMap.get(e)));if(!i.length)return null;const{layer:s}=this;return i.reverse().map((t=>({type:"route",layer:s,mapPoint:e,networkFeature:t})))}isUpdating(){return this._graphicsView.updating}moveStart(){}moveEnd(){}update(e){this._graphicsView.processUpdate(e)}viewChange(){this._graphicsView.viewChange()}_addHighlight(e){for(const t of e)if(this._highlightIds.has(t)){const e=this._highlightIds.get(t);this._highlightIds.set(t,e+1)}else this._highlightIds.set(t,1);this._updateHighlight()}_createGraphic(e){const t=e.toGraphic();return t.layer=this.layer,t.sourceLayer=this.layer,t}_createGraphicsView(){const e=this.view,t=new b.Z(e.featuresTilingScheme);this._graphicsView=new m.Z({container:t,graphics:this._graphics,requestUpdateCallback:()=>this.requestUpdate(),view:e}),this.container.addChild(t),this._updateHighlight()}_destroyGraphicsView(){this.container.removeChild(this._graphicsView.container),this._graphicsView.destroy()}_getDrawOrder(e){const t=this._networkGraphicMap.get(e);return S.indexOf(t.type)}_getNetworkFeatureUid(e){return this._networkFeatureMap.has(e)?this._networkFeatureMap.get(e).uid:null}_removeHighlight(e){for(const t of e)if(this._highlightIds.has(t)){const e=this._highlightIds.get(t)-1;0===e?this._highlightIds.delete(t):this._highlightIds.set(t,e)}this._updateHighlight()}_routeItemsChanged(e){if(e.removed.length){this._graphics.removeMany(e.removed.map((e=>{const t=this._networkFeatureMap.get(e);return this._networkFeatureMap.delete(e),this._networkGraphicMap.delete(t),t})));for(const t of e.removed)this.removeHandles(t)}if(e.added.length){this._graphics.addMany(e.added.map((e=>{const t=this._createGraphic(e);return null==t.symbol?null:(this._networkFeatureMap.set(e,t),this._networkGraphicMap.set(t,e),t)})).filter(r.pC));for(const t of e.added)this.addHandles([(0,o.YP)((()=>t.geometry),((e,i)=>{this._updateGraphic(t,"geometry",e,i)})),(0,o.YP)((()=>t.symbol),((e,i)=>{this._updateGraphic(t,"symbol",e,i)}))],t);this._graphics.sort(((e,t)=>this._getDrawOrder(e)-this._getDrawOrder(t)))}}_updateGraphic(e,t,i,s){if(!this._networkFeatureMap.has(e)){const t=this._createGraphic(e);return this._networkFeatureMap.set(e,t),this._networkGraphicMap.set(t,e),void this._graphics.add(t)}const r=this._networkFeatureMap.get(e);r[t]=i,R.graphic=r,R.property=t,R.oldValue=s,R.newValue=i,this._graphicsView.graphicUpdateHandler(R)}_updateHighlight(){const e=Array.from(this._highlightIds.keys()),t=(0,v.ck)("highlight");this._graphicsView.setHighlight(e.map((e=>({objectId:e,highlightFlags:t}))))}};(0,s._)([(0,l.Cb)()],M.prototype,"_graphics",void 0),(0,s._)([(0,l.Cb)()],M.prototype,"_routeItems",null),M=(0,s._)([(0,d.j)("esri.views.2d.layers.RouteLayerView2D")],M);const T=M},81110:function(e,t,i){i.d(t,{K:function(){return M}});var s=i(61681),r=i(24778),n=i(38716),a=i(16699),h=i(56144),o=i(77206);let l=0;function d(e,t,i){return new a.o((0,o.W)(l++),e,e.meshWriter.name,t,i)}const u={geometry:{visualVariableColor:null,visualVariableOpacity:null,visualVariableSizeMinMaxValue:null,visualVariableSizeScaleStops:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null,visualVariableRotation:null}};class c{constructor(){this.instances={fill:d(h.k2.fill,u,{zoomRange:!0}),marker:d(h.k2.marker,u,{zoomRange:!0}),line:d(h.k2.line,u,{zoomRange:!0}),text:d(h.k2.text,u,{zoomRange:!0,referenceSymbol:!1,clipAngle:!1}),complexFill:d(h.k2.complexFill,u,{zoomRange:!0}),texturedLine:d(h.k2.texturedLine,u,{zoomRange:!0})},this._instancesById=Object.values(this.instances).reduce(((e,t)=>(e.set(t.instanceId,t),e)),new Map)}getInstance(e){return this._instancesById.get(e)}}var p=i(46332),g=i(38642),_=i(45867),y=i(17703),f=i(29927),v=i(51118),w=i(64429),b=i(78951),m=i(91907),x=i(29620);const S=Math.PI/180;class R extends v.s{constructor(e){super(),this._program=null,this._vao=null,this._vertexBuffer=null,this._indexBuffer=null,this._dvsMat3=(0,g.Ue)(),this._localOrigin={x:0,y:0},this._getBounds=e}destroy(){this._vao&&(this._vao.dispose(),this._vao=null,this._vertexBuffer=null,this._indexBuffer=null),this._program=(0,s.M2)(this._program)}doRender(e){const{context:t}=e,i=this._getBounds();if(i.length<1)return;this._createShaderProgram(t),this._updateMatricesAndLocalOrigin(e),this._updateBufferData(t,i),t.setBlendingEnabled(!0),t.setDepthTestEnabled(!1),t.setStencilWriteMask(0),t.setStencilTestEnabled(!1),t.setBlendFunction(m.zi.ONE,m.zi.ONE_MINUS_SRC_ALPHA),t.setColorMask(!0,!0,!0,!0);const s=this._program;t.bindVAO(this._vao),t.useProgram(s),s.setUniformMatrix3fv("u_dvsMat3",this._dvsMat3),t.gl.lineWidth(1),t.drawElements(m.MX.LINES,8*i.length,m.g.UNSIGNED_INT,0),t.bindVAO()}_createTransforms(){return{displayViewScreenMat3:(0,g.Ue)()}}_createShaderProgram(e){if(this._program)return;this._program=e.programCache.acquire("precision highp float;\n uniform mat3 u_dvsMat3;\n\n attribute vec2 a_position;\n\n void main() {\n mediump vec3 pos = u_dvsMat3 * vec3(a_position, 1.0);\n gl_Position = vec4(pos.xy, 0.0, 1.0);\n }","precision mediump float;\n void main() {\n gl_FragColor = vec4(0.75, 0.0, 0.0, 0.75);\n }",C().attributes)}_updateMatricesAndLocalOrigin(e){const{state:t}=e,{displayMat3:i,size:s,resolution:r,pixelRatio:n,rotation:a,viewpoint:h}=t,o=S*a,{x:l,y:d}=h.targetGeometry,u=(0,f.or)(l,t.spatialReference);this._localOrigin.x=u,this._localOrigin.y=d;const c=n*s[0],g=n*s[1],v=r*c,w=r*g,b=(0,p.yR)(this._dvsMat3);(0,p.Jp)(b,b,i),(0,p.Iu)(b,b,(0,_.al)(c/2,g/2)),(0,p.bA)(b,b,(0,y.al)(s[0]/v,-g/w,1)),(0,p.U1)(b,b,-o)}_updateBufferData(e,t){const{x:i,y:s}=this._localOrigin,r=8*t.length,n=new Float32Array(r),a=new Uint32Array(8*t.length);let h=0,o=0;for(const e of t)e&&(n[2*h]=e[0]-i,n[2*h+1]=e[1]-s,n[2*h+2]=e[0]-i,n[2*h+3]=e[3]-s,n[2*h+4]=e[2]-i,n[2*h+5]=e[3]-s,n[2*h+6]=e[2]-i,n[2*h+7]=e[1]-s,a[o]=h+0,a[o+1]=h+3,a[o+2]=h+3,a[o+3]=h+2,a[o+4]=h+2,a[o+5]=h+1,a[o+6]=h+1,a[o+7]=h+0,h+=4,o+=8);if(this._vertexBuffer?this._vertexBuffer.setData(n.buffer):this._vertexBuffer=b.f.createVertex(e,m.l1.DYNAMIC_DRAW,n.buffer),this._indexBuffer?this._indexBuffer.setData(a):this._indexBuffer=b.f.createIndex(e,m.l1.DYNAMIC_DRAW,a),!this._vao){const t=C();this._vao=new x.U(e,t.attributes,t.bufferLayouts,{geometry:this._vertexBuffer},this._indexBuffer)}}}const C=()=>(0,w.cM)("bounds",{geometry:[{location:0,name:"a_position",count:2,type:m.g.FLOAT}]});class M extends r.b{constructor(e){super(e),this._instanceStore=new c,this.checkHighlight=()=>!0}destroy(){super.destroy(),this._boundsRenderer=(0,s.SC)(this._boundsRenderer)}get instanceStore(){return this._instanceStore}enableRenderingBounds(e){this._boundsRenderer=new R(e),this.requestRender()}get hasHighlight(){return this.checkHighlight()}onTileData(e,t){e.onMessage(t),this.contains(e)||this.addChild(e),this.requestRender()}_renderChildren(e,t){e.selection=t;for(const t of this.children){if(!t.visible)continue;const i=t.getDisplayList(e.drawPhase,this._instanceStore,n.gl.STRICT_ORDER);i?.render(e)}}}},68114:function(e,t,i){i.d(t,{Z:function(){return a}});var s=i(38716),r=i(81110),n=i(41214);class a extends r.K{renderChildren(e){for(const t of this.children)t.setTransform(e.state);if(super.renderChildren(e),this.attributeView.update(),this.children.some((e=>e.hasData))){switch(e.drawPhase){case s.jx.MAP:this._renderChildren(e,s.Xq.All);break;case s.jx.HIGHLIGHT:this.hasHighlight&&this._renderHighlight(e)}this._boundsRenderer&&this._boundsRenderer.doRender(e)}}_renderHighlight(e){(0,n.P9)(e,!1,(e=>{this._renderChildren(e,s.Xq.Highlight)}))}}},26216:function(e,t,i){i.d(t,{Z:function(){return g}});var s=i(36663),r=i(74396),n=i(31355),a=i(86618),h=i(13802),o=i(61681),l=i(64189),d=i(81977),u=(i(39994),i(4157),i(40266)),c=i(98940);let p=class extends((0,a.IG)((0,l.v)(n.Z.EventedMixin(r.Z)))){constructor(e){super(e),this._updatingHandles=new c.R,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",i=this.layer?.title||"no title";h.Z.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${i}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=(0,o.SC)(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}canResume(){return this.visible&&this.layer?.loaded&&!this.parent?.suspended&&this.view?.ready||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{};return this.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};(0,s._)([(0,d.Cb)()],p.prototype,"fullOpacity",null),(0,s._)([(0,d.Cb)()],p.prototype,"layer",void 0),(0,s._)([(0,d.Cb)()],p.prototype,"parent",void 0),(0,s._)([(0,d.Cb)({readOnly:!0})],p.prototype,"suspended",null),(0,s._)([(0,d.Cb)({readOnly:!0})],p.prototype,"suspendInfo",null),(0,s._)([(0,d.Cb)({readOnly:!0})],p.prototype,"legendEnabled",null),(0,s._)([(0,d.Cb)({type:Boolean,readOnly:!0})],p.prototype,"updating",null),(0,s._)([(0,d.Cb)({readOnly:!0})],p.prototype,"updatingProgress",null),(0,s._)([(0,d.Cb)()],p.prototype,"visible",null),(0,s._)([(0,d.Cb)()],p.prototype,"view",void 0),p=(0,s._)([(0,u.j)("esri.views.layers.LayerView")],p);const g=p},88723:function(e,t,i){i.d(t,{Z:function(){return g}});var s,r=i(36663),n=(i(91957),i(81977)),a=(i(39994),i(13802),i(4157),i(40266)),h=i(20031),o=i(53736),l=i(96294),d=i(91772),u=i(89542);const c={base:h.Z,key:"type",typeMap:{extent:d.Z,polygon:u.Z}};let p=s=class extends l.Z{constructor(e){super(e),this.type="geometry",this.geometry=null}clone(){return new s({geometry:this.geometry?.clone()??null})}commitVersionProperties(){this.commitProperty("geometry")}};(0,r._)([(0,n.Cb)({types:c,json:{read:o.im,write:!0}})],p.prototype,"geometry",void 0),p=s=(0,r._)([(0,a.j)("esri.views.layers.support.Geometry")],p);const g=p}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9457.4bf6a4bf172cb3961657.js b/docs/sentinel1-explorer/9457.4bf6a4bf172cb3961657.js new file mode 100644 index 00000000..65724c7b --- /dev/null +++ b/docs/sentinel1-explorer/9457.4bf6a4bf172cb3961657.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9457],{29457:function(e,_,r){r.r(_),r.d(_,{default:function(){return d}});const d={_decimalSeparator:".",_thousandSeparator:",",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date:"yyyy-MM-dd",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"AD",_era_bc:"BC",A:"AM",P:"PM",AM:"AM",PM:"PM","A.M.":"오전","P.M.":"오후",January:"1월",February:"2월",March:"3월",April:"4월",May:"5월",June:"6월",July:"7월",August:"8월",September:"9월",October:"10월",November:"11월",December:"12월",Jan:"1월",Feb:"2월",Mar:"3월",Apr:"4월","May(short)":"5월",Jun:"6월",Jul:"7월",Aug:"8월",Sep:"9월",Oct:"10월",Nov:"11월",Dec:"12월",Sunday:"일요일",Monday:"월요일",Tuesday:"화요일",Wednesday:"수요일",Thursday:"목요일",Friday:"금요일",Saturday:"토요일",Sun:"일",Mon:"월",Tue:"화",Wed:"수",Thu:"목",Fri:"금",Sat:"토",_dateOrd:function(e){let _="일";if(e<11||e>13)switch(e%10){case 1:case 2:case 3:_="일"}return _},"Zoom Out":"축소",Play:"시작",Stop:"정지",Legend:"범례","Press ENTER to toggle":"켜고 끄려면 클릭, 탭 혹은 엔터를 눌러주세요.",Loading:"불러오는 중",Home:"홈",Chart:"차트","Serial chart":"시리얼 차트","X/Y chart":"X/Y 차트","Pie chart":"파이 차트","Gauge chart":"게이지 차트","Radar chart":"레이더 차트","Sankey diagram":"생키 다이어그램","Flow diagram":"플로우 다이어그램","Chord diagram":"코드 다이어그램","TreeMap chart":"트리맵 차트","Force directed tree":"포스 디렉티드 트리","Sliced chart":"슬라이스 차트",Series:"시리즈","Candlestick Series":"캔들스틱 시리즈","OHLC Series":"OHLC 시리즈","Column Series":"컬럼 시리즈","Line Series":"라인 시리즈","Pie Slice Series":"파이 슬라이스 시리즈","Funnel Series":"퍼널 시리즈","Pyramid Series":"피라미드 시리즈","X/Y Series":"X/Y 시리즈",Map:"맵","Press ENTER to zoom in":"확대하려면 엔터를 누르세요.","Press ENTER to zoom out":"축소하려면 엔터를 누르세요.","Use arrow keys to zoom in and out":"확대 혹은 축소하려면 방향키를 이용하세요.","Use plus and minus keys on your keyboard to zoom in and out":"확대 혹은 축소하려면 키보드의 +/- 키를 이용하세요.",Export:"내보내기",Image:"이미지",Data:"데이터",Print:"인쇄","Press ENTER to open":"열려면, 클릭, 탭 또는 엔터를 누르세요.","Press ENTER to print.":"출력하려면, 클릭, 탭 또는 엔터를 누르세요.","Press ENTER to export as %1.":"%1(으)로 내보내려면 클릭, 탭 또는 엔터를 누르세요.","(Press ESC to close this message)":"(이 메시지를 끄려면 ESC를 누르세요.)","Image Export Complete":"이미지 내보내기 완료","Export operation took longer than expected. Something might have gone wrong.":"내보내기가 지연되고 있습니다. 문제가 없는지 확인이 필요합니다.","Saved from":"다음으로부터 저장됨: ",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"선택 범위를 변경하려면 선택 버튼이나 좌우 화살표를 이용하세요.","Use left and right arrows to move selection":"선택 범위를 움직이려면 좌우 화살표를 이용하세요.","Use left and right arrows to move left selection":"왼쪽 선택 범위를 움직이려면 좌우 화살표를 이용하세요.","Use left and right arrows to move right selection":"오른쪽 선택 범위를 움직이려면 좌우 화살표를 이용하세요.","Use TAB select grip buttons or up and down arrows to change selection":"선택 범위를 변경하려면 선택 버튼이나 상하 화살표를 이용하세요.","Use up and down arrows to move selection":"선택 범위를 움직이려면 상하 화살표를 이용하세요.","Use up and down arrows to move lower selection":"하단 선택 범위를 움직이려면 상하 화살표를 이용하세요.","Use up and down arrows to move upper selection":"상단 선택 범위를 움직이려면 상하 화살표를 이용하세요.","From %1 to %2":"%1 부터 %2 까지","From %1":"%1 부터","To %1":"%1 까지","No parser available for file: %1":"파일 파싱 불가능: %1","Error parsing file: %1":"파일 파싱 오류: %1","Unable to load file: %1":"파일 로드 불가능: %1","Invalid date":"날짜 올바르지 않음"}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9516.45c667b8c469691879f6.js b/docs/sentinel1-explorer/9516.45c667b8c469691879f6.js new file mode 100644 index 00000000..b84a2580 --- /dev/null +++ b/docs/sentinel1-explorer/9516.45c667b8c469691879f6.js @@ -0,0 +1,2 @@ +/*! For license information please see 9516.45c667b8c469691879f6.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9516],{19516:function(e,t,i){i.d(t,{A:function(){return C},d:function(){return L}});var a=i(77210),n=i(79145),o=i(96472),r=i(64426),c=i(16265),l=i(19417),s=i(85545),d=i(90326),u=i(53801),h=i(44586),v=i(92708);const f="button",m="button--text-visible",g="button--compact",p="indicator-text",b="icon-container",k="slot-container",x="slot-container--hidden",y="text-container",z="text-container--visible",_="indicator-with-icon",w="indicator-without-icon",E="tooltip",C=(0,a.GH)(class extends a.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.mutationObserver=(0,s.c)("mutation",(()=>(0,a.xE)(this))),this.guid=`calcite-action-${(0,o.g)()}`,this.indicatorId=`${this.guid}-indicator`,this.buttonId=`${this.guid}-button`,this.handleTooltipSlotChange=e=>{const t=e.target.assignedElements({flatten:!0}).filter((e=>e?.matches("calcite-tooltip")))[0];t&&(t.referenceElement=this.buttonEl)},this.active=!1,this.alignment=void 0,this.appearance="solid",this.compact=!1,this.disabled=!1,this.icon=void 0,this.iconFlipRtl=!1,this.indicator=!1,this.label=void 0,this.loading=!1,this.scale="m",this.text=void 0,this.textEnabled=!1,this.messages=void 0,this.messageOverrides=void 0,this.effectiveLocale="",this.defaultMessages=void 0}onMessagesChange(){}effectiveLocaleChange(){(0,u.u)(this,this.effectiveLocale)}connectedCallback(){(0,r.c)(this),(0,l.c)(this),(0,u.c)(this),this.mutationObserver?.observe(this.el,{childList:!0,subtree:!0})}async componentWillLoad(){(0,c.s)(this),a.Z5.isBrowser&&await(0,u.s)(this)}componentDidLoad(){(0,c.a)(this)}disconnectedCallback(){(0,r.d)(this),(0,l.d)(this),(0,u.d)(this),this.mutationObserver?.disconnect()}componentDidRender(){(0,r.u)(this)}async setFocus(){await(0,c.c)(this),this.buttonEl?.focus()}renderTextContainer(){const{text:e,textEnabled:t}=this,i={[y]:!0,[z]:t};return e?(0,a.h)("div",{class:i,key:"text-container"},e):null}renderIndicatorText(){const{indicator:e,messages:t,indicatorId:i,buttonId:n}=this;return(0,a.h)("div",{"aria-labelledby":n,"aria-live":"polite",class:p,id:i,role:"region"},e?t.indicator:null)}renderIconContainer(){const{loading:e,icon:t,scale:i,el:n,iconFlipRtl:o,indicator:r}=this,c="l"===i?"l":"m",l=e?(0,a.h)("calcite-loader",{inline:!0,label:this.messages.loading,scale:c}):null,s=t?(0,a.h)("calcite-icon",{class:{[_]:r},flipRtl:o,icon:t,scale:(0,d.g)(this.scale)}):null,u=l||s,h=u||n.children?.length,v=(0,a.h)("div",{class:{[k]:!0,[x]:e}},(0,a.h)("slot",null));return h?(0,a.h)("div",{"aria-hidden":"true",class:b,key:"icon-container"},u,v):null}render(){const{active:e,compact:t,disabled:i,icon:o,loading:c,textEnabled:l,label:s,text:d,indicator:u,indicatorId:h,buttonId:v,messages:p}=this,b=`${s||d}${u?` (${p.indicator})`:""}`,k={[f]:!0,[m]:l,[g]:t};return(0,a.h)(a.AA,null,(0,a.h)(r.I,{disabled:i},(0,a.h)("button",{"aria-busy":(0,n.t)(c),"aria-controls":u?h:null,"aria-disabled":(0,n.t)(i),"aria-label":b,"aria-pressed":(0,n.t)(e),class:k,disabled:i,id:v,ref:e=>this.buttonEl=e},this.renderIconContainer(),this.renderTextContainer(),!o&&u&&(0,a.h)("div",{class:w,key:"indicator-no-icon"})),(0,a.h)("slot",{name:E,onSlotchange:this.handleTooltipSlotChange}),this.renderIndicatorText()))}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return':host{box-sizing:border-box;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2);font-size:var(--calcite-font-size--1)}:host *{box-sizing:border-box}:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:flex;background-color:transparent;--calcite-action-indicator-color:var(--calcite-color-brand);--calcite-action-color-transparent-hover:var(--calcite-color-transparent-hover);--calcite-action-color-transparent-press:var(--calcite-color-transparent-press)}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.interaction-container{display:contents}.button{position:relative;margin:0px;display:flex;inline-size:auto;cursor:pointer;align-items:center;justify-content:flex-start;border-style:none;background-color:var(--calcite-color-foreground-1);fill:var(--calcite-color-text-3);font-family:var(--calcite-sans-family);font-size:var(--calcite-font-size--2);line-height:1rem;font-weight:var(--calcite-font-weight-medium);color:var(--calcite-color-text-3);outline-color:transparent;text-align:unset;flex:1 0 auto}.button:hover{background-color:var(--calcite-color-foreground-2);fill:var(--calcite-color-text-1);color:var(--calcite-color-text-1)}.button:focus{background-color:var(--calcite-color-foreground-2);fill:var(--calcite-color-text-1);color:var(--calcite-color-text-1);outline:2px solid var(--calcite-ui-focus-color, var(--calcite-color-brand-hover, var(--calcite--color-brand)));outline-offset:calc(\n -2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-offset-invert-focus),\n 1\n )\n )\n )}.button:active{background-color:var(--calcite-color-foreground-3)}.button .icon-container{pointer-events:none;margin:0px;display:flex;align-items:center;justify-content:center;min-inline-size:1rem;min-block-size:1rem}.button .text-container{margin:0px;inline-size:0px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5rem;opacity:0;transition-property:opacity;transition-duration:150ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-property:margin;transition-property:inline-size}.button .text-container--visible{inline-size:auto;flex:1 1 auto;opacity:1}:host([data-active]) .button{outline:2px solid var(--calcite-ui-focus-color, var(--calcite-color-brand-hover, var(--calcite--color-brand)));outline-offset:calc(\n -2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-offset-invert-focus),\n 1\n )\n )\n )}:host([scale=s]) .button{padding-inline:0.5rem;padding-block:0.25rem;font-size:var(--calcite-font-size--2);line-height:1rem;font-weight:var(--calcite-font-weight-normal)}:host([scale=s]) .button--text-visible .icon-container{margin-inline-end:0.5rem}:host([scale=m]) .button{padding-inline:1rem;padding-block:0.75rem;font-size:var(--calcite-font-size--1);line-height:1rem;font-weight:var(--calcite-font-weight-normal)}:host([scale=m]) .button--text-visible .icon-container{margin-inline-end:0.75rem}:host([scale=l]) .button{padding:1.25rem;font-size:var(--calcite-font-size-0);line-height:1.25rem;font-weight:var(--calcite-font-weight-normal)}:host([scale=l]) .button--text-visible .icon-container{margin-inline-end:1rem}:host([alignment=center]) .button{justify-content:center}:host([alignment=end]) .button{justify-content:flex-end}:host([alignment=center]) .button .text-container--visible,:host([alignment=end]) .button .text-container--visible{flex:0 1 auto}:host([scale=s][compact]) .button,:host([scale=m][compact]) .button,:host([scale=l][compact]) .button{padding-inline:0px}.slot-container{display:flex}.slot-container--hidden{display:none}.button--text-visible{inline-size:100%}:host([active]) .button,:host([active]) .button:hover,:host([active]) .button:focus,:host([active][loading]) .button{background-color:var(--calcite-color-foreground-3);fill:var(--calcite-color-text-1);color:var(--calcite-color-text-1)}:host([active]) .button:active{background-color:var(--calcite-color-foreground-1)}:host([appearance=transparent]) .button{background-color:transparent}:host([appearance=transparent][active]) .button,:host([appearance=transparent]) .button:hover,:host([appearance=transparent]) .button:focus{background-color:var(--calcite-action-color-transparent-hover)}:host([appearance=transparent]) .button:active{background-color:var(--calcite-action-color-transparent-press)}:host([appearance=transparent][disabled]) .button{background-color:transparent}:host([loading][appearance=solid]) .button,:host([loading][appearance=solid]) .button:hover,:host([loading][appearance=solid]) .button:focus{background-color:var(--calcite-color-foreground-1)}:host([loading][appearance=solid]) .button .text-container,:host([loading][appearance=solid]) .button:hover .text-container,:host([loading][appearance=solid]) .button:focus .text-container{opacity:var(--calcite-opacity-disabled)}:host([loading]) calcite-loader[inline]{color:var(--calcite-color-text-3);margin-inline-end:0px}:host([disabled]) .button,:host([disabled]) .button:hover,:host([disabled]) .button:focus{cursor:default;background-color:var(--calcite-color-foreground-1);opacity:var(--calcite-opacity-disabled)}:host([disabled][active]) .button,:host([disabled][active]) .button:hover,:host([disabled][active]) .button:focus{background-color:var(--calcite-color-foreground-3);opacity:var(--calcite-opacity-disabled)}:host([appearance=transparent]) .button{background-color:transparent;transition-property:box-shadow;transition-duration:150ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.indicator-with-icon{position:relative}.indicator-with-icon::after{content:"";position:absolute;block-size:0.5rem;inline-size:0.5rem;border-radius:9999px;inset-block-end:-0.275rem;inset-inline-end:-0.275rem;background-color:var(--calcite-action-indicator-color)}.indicator-without-icon{margin-inline:0.25rem;inline-size:1rem;position:relative}.indicator-without-icon::after{content:"";position:absolute;block-size:0.5rem;inline-size:0.5rem;border-radius:9999px;inset-block-end:-0.275rem;inset-inline-end:-0.275rem;background-color:var(--calcite-action-indicator-color)}.indicator-text{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}:host([hidden]){display:none}[hidden]{display:none}'}},[1,"calcite-action",{active:[516],alignment:[513],appearance:[513],compact:[516],disabled:[516],icon:[1],iconFlipRtl:[516,"icon-flip-rtl"],indicator:[516],label:[1],loading:[516],scale:[513],text:[1],textEnabled:[516,"text-enabled"],messages:[1040],messageOverrides:[1040],effectiveLocale:[32],defaultMessages:[32],setFocus:[64]},void 0,{messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}]);function L(){if("undefined"==typeof customElements)return;["calcite-action","calcite-icon","calcite-loader"].forEach((e=>{switch(e){case"calcite-action":customElements.get(e)||customElements.define(e,C);break;case"calcite-icon":customElements.get(e)||(0,h.d)();break;case"calcite-loader":customElements.get(e)||(0,v.d)()}}))}L()},64426:function(e,t,i){i.d(t,{I:function(){return k},c:function(){return g},d:function(){return p},u:function(){return u}});var a=i(77210);const n=/firefox/i.test(function(){if(!a.Z5.isBrowser)return"";const e=navigator.userAgentData;return e?.brands?e.brands.map((({brand:e,version:t})=>`${e}/${t}`)).join(" "):navigator.userAgent}()),o=n?new WeakMap:null;function r(){const{disabled:e}=this;e||HTMLElement.prototype.click.call(this)}function c(e){const t=e.target;if(n&&!o.get(t))return;const{disabled:i}=t;i&&e.preventDefault()}const l=["mousedown","mouseup","click"];function s(e){const t=e.target;n&&!o.get(t)||t.disabled&&(e.stopImmediatePropagation(),e.preventDefault())}const d={capture:!0};function u(e){if(e.disabled)return e.el.setAttribute("aria-disabled","true"),e.el.contains(document.activeElement)&&document.activeElement.blur(),void h(e);f(e),e.el.removeAttribute("aria-disabled")}function h(e){if(e.el.click=r,n){const t=function(e){return e.el.parentElement||e.el}(e),i=o.get(e.el);return i!==t&&(m(i),o.set(e.el,t)),void v(o.get(e.el))}v(e.el)}function v(e){e&&(e.addEventListener("pointerdown",c,d),l.forEach((t=>e.addEventListener(t,s,d))))}function f(e){if(delete e.el.click,n)return m(o.get(e.el)),void o.delete(e.el);m(e.el)}function m(e){e&&(e.removeEventListener("pointerdown",c,d),l.forEach((t=>e.removeEventListener(t,s,d))))}function g(e){e.disabled&&n&&h(e)}function p(e){n&&f(e)}const b={container:"interaction-container"};function k({disabled:e},t){return(0,a.h)("div",{class:b.container,inert:e},...t)}},92708:function(e,t,i){i.d(t,{L:function(){return o},d:function(){return r}});var a=i(77210),n=i(96472);const o=(0,a.GH)(class extends a.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.inline=!1,this.label=void 0,this.scale="m",this.type=void 0,this.value=0,this.text=""}render(){const{el:e,inline:t,label:i,scale:o,text:r,type:c,value:l}=this,s=e.id||(0,n.g)(),d=t?this.getInlineSize(o):this.getSize(o),u=.45*d,h=`0 0 ${d} ${d}`,v="determinate"===c,f=2*u*Math.PI,m=l/100*f,g=f-m,p=Math.floor(l),b={"aria-valuenow":p,"aria-valuemin":0,"aria-valuemax":100,complete:100===p},k={r:u,cx:d/2,cy:d/2},x={"stroke-dasharray":`${m} ${g}`};return(0,a.h)(a.AA,{"aria-label":i,id:s,role:"progressbar",...v?b:{}},(0,a.h)("div",{class:"loader__svgs"},(0,a.h)("svg",{"aria-hidden":"true",class:"loader__svg loader__svg--1",viewBox:h},(0,a.h)("circle",{...k})),(0,a.h)("svg",{"aria-hidden":"true",class:"loader__svg loader__svg--2",viewBox:h},(0,a.h)("circle",{...k})),(0,a.h)("svg",{"aria-hidden":"true",class:"loader__svg loader__svg--3",viewBox:h,...v?{style:x}:{}},(0,a.h)("circle",{...k}))),r&&(0,a.h)("div",{class:"loader__text"},r),v&&(0,a.h)("div",{class:"loader__percentage"},l))}getSize(e){return{s:32,m:56,l:80}[e]}getInlineSize(e){return{s:12,m:16,l:20}[e]}get el(){return this}static get style(){return'@charset "UTF-8";@media (prefers-reduced-motion: reduce){:root{--calcite-internal-duration-factor:0}}:host{position:relative;margin-inline:auto;display:none;align-items:center;justify-content:center;opacity:1;min-block-size:var(--calcite-loader-size);font-size:var(--calcite-loader-font-size);stroke:var(--calcite-color-brand);stroke-width:3;fill:none;transform:scale(1, 1);animation:loader-color-shift calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 2 / var(--calcite-internal-duration-factor)) alternate-reverse infinite linear;padding-block:var(--calcite-loader-padding, 4rem);will-change:contents}:host([scale=s]){--calcite-loader-font-size:var(--calcite-font-size--2);--calcite-loader-size:2rem;--calcite-loader-size-inline:0.75rem}:host([scale=m]){--calcite-loader-font-size:var(--calcite-font-size-0);--calcite-loader-size:4rem;--calcite-loader-size-inline:1rem}:host([scale=l]){--calcite-loader-font-size:var(--calcite-font-size-2);--calcite-loader-size:6rem;--calcite-loader-size-inline:1.5rem}:host([no-padding]){padding-block:0px}:host{display:flex}.loader__text{display:block;text-align:center;font-size:var(--calcite-font-size--2);line-height:1rem;color:var(--calcite-color-text-1);margin-block-start:calc(var(--calcite-loader-size) + 1.5rem)}.loader__percentage{position:absolute;display:block;text-align:center;color:var(--calcite-color-text-1);font-size:var(--calcite-loader-font-size);inline-size:var(--calcite-loader-size);inset-inline-start:50%;margin-inline-start:calc(var(--calcite-loader-size) / 2 * -1);line-height:0.25;transform:scale(1, 1)}.loader__svgs{position:absolute;overflow:visible;opacity:1;inline-size:var(--calcite-loader-size);block-size:var(--calcite-loader-size);inset-inline-start:50%;margin-inline-start:calc(var(--calcite-loader-size) / 2 * -1);animation-iteration-count:infinite;animation-timing-function:linear;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 6.66 / var(--calcite-internal-duration-factor));animation-name:loader-clockwise}.loader__svg{position:absolute;inset-block-start:0px;transform-origin:center;overflow:visible;inset-inline-start:0;inline-size:var(--calcite-loader-size);block-size:var(--calcite-loader-size);animation-iteration-count:infinite;animation-timing-function:linear}@supports (display: grid){.loader__svg--1{animation-name:loader-offset-1}.loader__svg--2{animation-name:loader-offset-2}.loader__svg--3{animation-name:loader-offset-3}}:host([type=determinate]){animation:none;stroke:var(--calcite-color-border-3)}:host([type=determinate]) .loader__svgs{animation:none}:host([type=determinate]) .loader__svg--3{animation:none;stroke:var(--calcite-color-brand);stroke-dasharray:150.79632;transform:rotate(-90deg);transition:all var(--calcite-internal-animation-timing-fast) linear}:host([inline]){position:relative;margin:0px;animation:none;stroke:currentColor;stroke-width:2;padding-block:0px;block-size:var(--calcite-loader-size-inline);min-block-size:var(--calcite-loader-size-inline);inline-size:var(--calcite-loader-size-inline);margin-inline-end:calc(var(--calcite-loader-size-inline) * 0.5);vertical-align:calc(var(--calcite-loader-size-inline) * -1 * 0.2)}:host([inline]) .loader__svgs{inset-block-start:0px;margin:0px;inset-inline-start:0;inline-size:var(--calcite-loader-size-inline);block-size:var(--calcite-loader-size-inline)}:host([inline]) .loader__svg{inline-size:var(--calcite-loader-size-inline);block-size:var(--calcite-loader-size-inline)}:host([complete]){opacity:0;transform:scale(0.75, 0.75);transform-origin:center;transition:opacity var(--calcite-internal-animation-timing-medium) linear 1000ms, transform var(--calcite-internal-animation-timing-medium) linear 1000ms}:host([complete]) .loader__svgs{opacity:0;transform:scale(0.75, 0.75);transform-origin:center;transition:opacity calc(180ms * var(--calcite-internal-duration-factor)) linear 800ms, transform calc(180ms * var(--calcite-internal-duration-factor)) linear 800ms}:host([complete]) .loader__percentage{color:var(--calcite-color-brand);transform:scale(1.05, 1.05);transform-origin:center;transition:color var(--calcite-internal-animation-timing-medium) linear, transform var(--calcite-internal-animation-timing-medium) linear}.loader__svg--1{stroke-dasharray:27.9252444444 139.6262222222;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 4.8 / var(--calcite-internal-duration-factor))}@keyframes loader-offset-1{0%{stroke-dasharray:27.9252444444 251.3272;stroke-dashoffset:0}50%{stroke-dasharray:139.6262222222 139.6262222222;stroke-dashoffset:-83.7757333333}100%{stroke-dasharray:27.9252444444 251.3272;stroke-dashoffset:-279.2524444444}}.loader__svg--2{stroke-dasharray:55.8504888889 139.6262222222;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 6.4 / var(--calcite-internal-duration-factor))}@keyframes loader-offset-2{0%{stroke-dasharray:55.8504888889 223.4019555556;stroke-dashoffset:0}50%{stroke-dasharray:139.6262222222 139.6262222222;stroke-dashoffset:-97.7383555556}100%{stroke-dasharray:55.8504888889 223.4019555556;stroke-dashoffset:-279.2524444444}}.loader__svg--3{stroke-dasharray:13.9626222222 139.6262222222;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 7.734 / var(--calcite-internal-duration-factor))}@keyframes loader-offset-3{0%{stroke-dasharray:13.9626222222 265.2898222222;stroke-dashoffset:0}50%{stroke-dasharray:139.6262222222 139.6262222222;stroke-dashoffset:-76.7944222222}100%{stroke-dasharray:13.9626222222 265.2898222222;stroke-dashoffset:-279.2524444444}}@keyframes loader-color-shift{0%{stroke:var(--calcite-color-brand)}33%{stroke:var(--calcite-color-brand-press)}66%{stroke:var(--calcite-color-brand-hover)}100%{stroke:var(--calcite-color-brand)}}@keyframes loader-clockwise{100%{transform:rotate(360deg)}}:host([hidden]){display:none}[hidden]{display:none}'}},[1,"calcite-loader",{inline:[516],label:[1],scale:[513],type:[513],value:[2],text:[1]}]);function r(){if("undefined"==typeof customElements)return;["calcite-loader"].forEach((e=>{if("calcite-loader"===e)customElements.get(e)||customElements.define(e,o)}))}r()}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9516.45c667b8c469691879f6.js.LICENSE.txt b/docs/sentinel1-explorer/9516.45c667b8c469691879f6.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/9516.45c667b8c469691879f6.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/953.447177fec985cffe0de2.js b/docs/sentinel1-explorer/953.447177fec985cffe0de2.js new file mode 100644 index 00000000..fe3ba266 --- /dev/null +++ b/docs/sentinel1-explorer/953.447177fec985cffe0de2.js @@ -0,0 +1,2 @@ +/*! For license information please see 953.447177fec985cffe0de2.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[953],{30953:function(e,n,r){r.r(n),r.d(n,{CalciteAction:function(){return u},defineCustomElement:function(){return c}});var t=r(19516);const u=t.A,c=t.d}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/953.447177fec985cffe0de2.js.LICENSE.txt b/docs/sentinel1-explorer/953.447177fec985cffe0de2.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/953.447177fec985cffe0de2.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/9547.0bc410f2ed4b5307c98f.js b/docs/sentinel1-explorer/9547.0bc410f2ed4b5307c98f.js new file mode 100644 index 00000000..c6036d2c --- /dev/null +++ b/docs/sentinel1-explorer/9547.0bc410f2ed4b5307c98f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9547],{99547:function(e,t,r){r.r(t),r.d(t,{default:function(){return a}});const a={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - d MMM",_date_hour:"HH:mm",_date_hour_full:"HH:mm - d MMM",_date_day:"d MMM",_date_day_full:"d MMM",_date_week:"ww",_date_week_full:"d MMM",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_second:"ss",_duration_minute:"mm",_duration_hour:"hh",_duration_day:"dd",_duration_week:"ww",_duration_month:"MM",_duration_year:"yyyy",_era_ad:"AD",_era_bc:"v.C.",A:"A",P:"P",AM:"AM",PM:"PM","A.M.":"a.m.","P.M.":"p.m.",January:"januari",February:"februari",March:"maart",April:"april",May:"mei",June:"juni",July:"juli",August:"augustus",September:"september",October:"oktober",November:"november",December:"december",Jan:"jan",Feb:"feb",Mar:"mrt",Apr:"apr","May(short)":"mei",Jun:"jun",Jul:"jul",Aug:"aug",Sep:"sep",Oct:"okt",Nov:"nov",Dec:"dec",Sunday:"zondag",Monday:"maandag",Tuesday:"dinsdag",Wednesday:"woensdag",Thursday:"donderdag",Friday:"vrijdag",Saturday:"zaterdag",Sun:"Zo",Mon:"Ma",Tue:"Di",Wed:"Wo",Thu:"Do",Fri:"Vr",Sat:"Za",_dateOrd:function(e){let t="de";return(1==e||8==e||e>19)&&(t="ste"),t},"Zoom Out":"Uitzoomen",Play:"Afspelen",Stop:"Stoppen",Legend:"Legenda","Press ENTER to toggle":"Klik, tik of druk op Enter om aan of uit te zetten",Loading:"Laden",Home:"Home",Chart:"Grafiek","Serial chart":"Periodieke grafiek","X/Y chart":"X-Y grafiek","Pie chart":"Taartdiagram","Gauge chart":"Meterdiagram","Radar chart":"Radardiagram","Sankey diagram":"Sankey-diagram","Chord diagram":"Chord-diagram","Flow diagram":"Flow-diagram","TreeMap chart":"Treemap-grafiek",Series:"Reeks","Candlestick Series":"Candlestick-reeks","Column Series":"Kolomreeks","Line Series":"Lijnreeks","Pie Slice Series":"Taartpuntreeks","X/Y Series":"XY reeks",Map:"Kaart","Press ENTER to zoom in":"Druk op Enter om in te zoomen","Press ENTER to zoom out":"Druk op Enter om uit te zoomen","Use arrow keys to zoom in and out":"Zoom in of uit met de pijltjestoetsen","Use plus and minus keys on your keyboard to zoom in and out":"Zoom in of uit met de plus- en minustoetsen",Export:"Exporteren",Image:"Afbeelding",Data:"Data",Print:"Printen","Press ENTER to open":"Klik, tik of druk op Enter om te openen","Press ENTER to print.":"Klik, tik of druk op Enter om te printen","Press ENTER to export as %1.":"Klik, tik of druk op Enter om te exporteren als %1","(Press ESC to close this message)":"(Druk op ESC om dit bericht te sluiten)","Image Export Complete":"Afbeelding exporteren gereed","Export operation took longer than expected. Something might have gone wrong.":"Exportproces duurt langer dan verwacht. Er is misschien iets fout gegaan.","Saved from":"Opgeslagen via:",PNG:"PNG",JPG:"JPG",GIF:"GIF",SVG:"SVG",PDF:"PDF",JSON:"JSON",CSV:"CSV",XLSX:"XLSX",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"Gebruik Tab om de hendels te selecteren of linker- en rechterpijltje om de selectie te veranderen","Use left and right arrows to move selection":"Gebruik linker- en rechterpijltje om de selectie te verplaatsen","Use left and right arrows to move left selection":"Gebruik linker- en rechterpijltje om de linkerselectie te verplaatsen","Use left and right arrows to move right selection":"Gebruik linker- en rechterpijltje om de rechterselectie te verplaatsen","Use TAB select grip buttons or up and down arrows to change selection":"Gebruik Tab om de hendels te selecteren of pijltje omhoog en omlaag om de selectie te veranderen","Use up and down arrows to move selection":"Gebruik pijltje omhoog en omlaag om de selectie te verplaatsen","Use up and down arrows to move lower selection":"Gebruik pijltje omhoog en omlaag om de onderste selectie te verplaatsen","Use up and down arrows to move upper selection":"Gebruik pijltje omhoog en omlaag om de bovenste selectie te verplaatsen","From %1 to %2":"Van %1 tot %2","From %1":"Van %1","To %1":"Tot %2","No parser available for file: %1":"Geen data-parser beschikbaar voor dit bestand: %1","Error parsing file: %1":"Fout tijdens parsen van bestand: %1","Unable to load file: %1":"Kan bestand niet laden: %1","Invalid date":"Ongeldige datum"}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9597.a946b10a11f4a47e95d8.js b/docs/sentinel1-explorer/9597.a946b10a11f4a47e95d8.js new file mode 100644 index 00000000..bdf32c7a --- /dev/null +++ b/docs/sentinel1-explorer/9597.a946b10a11f4a47e95d8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9597],{79597:function(r,n,e){e.r(n),e.d(n,{i:function(){return f}});var t,i,o,a=e(58340),u={exports:{}};t=u,i="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,o=function(r={}){var n,e,t=void 0!==r?r:{};t.ready=new Promise(((r,t)=>{n=r,e=t}));var o=Object.assign({},t),a="object"==typeof window,u="function"==typeof importScripts;"object"==typeof process&&"object"==typeof process.versions&&process.versions.node;var c,f="";(a||u)&&(u?f=self.location.href:"undefined"!=typeof document&&document.currentScript&&(f=document.currentScript.src),i&&(f=i),f=0!==f.indexOf("blob:")?f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):"",u&&(c=r=>{var n=new XMLHttpRequest;return n.open("GET",r,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}));var s,l,d=t.print||void 0,p=t.printErr||void 0;Object.assign(t,o),o=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram,t.quit&&t.quit,t.wasmBinary&&(s=t.wasmBinary),t.noExitRuntime,"object"!=typeof WebAssembly&&S("no native wasm support detected");var h,v,m,g,y,_,w,b,A,T=!1;function C(){var r=l.buffer;t.HEAP8=h=new Int8Array(r),t.HEAP16=m=new Int16Array(r),t.HEAP32=y=new Int32Array(r),t.HEAPU8=v=new Uint8Array(r),t.HEAPU16=g=new Uint16Array(r),t.HEAPU32=_=new Uint32Array(r),t.HEAPF32=w=new Float32Array(r),t.HEAPF64=b=new Float64Array(r)}var P=[],k=[],E=[];function W(r){P.unshift(r)}function j(r){E.unshift(r)}var F=0,R=null;function S(r){t.onAbort&&t.onAbort(r),p(r="Aborted("+r+")"),T=!0,r+=". Build with -sASSERTIONS for more info.";var n=new WebAssembly.RuntimeError(r);throw e(n),n}var x,U="data:application/octet-stream;base64,";function I(r){return r.startsWith(U)}function O(r){try{if(r==x&&s)return new Uint8Array(s);if(c)return c(r);throw"both async and sync fetching of the wasm failed"}catch(r){S(r)}}function z(r,n,e){return function(r){return s||!a&&!u||"function"!=typeof fetch?Promise.resolve().then((()=>O(r))):fetch(r,{credentials:"same-origin"}).then((n=>{if(!n.ok)throw"failed to load wasm binary file at '"+r+"'";return n.arrayBuffer()})).catch((()=>O(r)))}(r).then((r=>WebAssembly.instantiate(r,n))).then((r=>r)).then(e,(r=>{p("failed to asynchronously prepare wasm: "+r),S(r)}))}function D(r){for(;r.length>0;)r.shift()(t)}I(x="i3s.wasm")||(x=function(r){return t.locateFile?t.locateFile(r,f):f+r}(x));var V=[];function H(r){var n=V[r];return n||(r>=V.length&&(V.length=r+1),V[r]=n=A.get(r)),n}function M(r){this.excPtr=r,this.ptr=r-24,this.set_type=function(r){_[this.ptr+4>>2]=r},this.get_type=function(){return _[this.ptr+4>>2]},this.set_destructor=function(r){_[this.ptr+8>>2]=r},this.get_destructor=function(){return _[this.ptr+8>>2]},this.set_caught=function(r){r=r?1:0,h[this.ptr+12>>0]=r},this.get_caught=function(){return 0!=h[this.ptr+12>>0]},this.set_rethrown=function(r){r=r?1:0,h[this.ptr+13>>0]=r},this.get_rethrown=function(){return 0!=h[this.ptr+13>>0]},this.init=function(r,n){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(n)},this.set_adjusted_ptr=function(r){_[this.ptr+16>>2]=r},this.get_adjusted_ptr=function(){return _[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Vr(this.get_type()))return _[this.excPtr>>2];var r=this.get_adjusted_ptr();return 0!==r?r:this.excPtr}}var B={};function q(r){for(;r.length;){var n=r.pop();r.pop()(n)}}function N(r){return this.fromWireType(y[r>>2])}var L={},G={},X={},Z=48,$=57;function J(r){if(void 0===r)return"_unknown";var n=(r=r.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return n>=Z&&n<=$?"_"+r:r}function K(r,n){var e=function(r,n){return{[r=J(r)]:function(){return n.apply(this,arguments)}}[r]}(n,(function(r){this.name=n,this.message=r;var e=new Error(r).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))}));return e.prototype=Object.create(r.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},e}var Q=void 0;function Y(r){throw new Q(r)}function rr(r,n,e){function t(n){var t=e(n);t.length!==r.length&&Y("Mismatched type converter count");for(var i=0;i{G.hasOwnProperty(r)?i[n]=G[r]:(o.push(r),L.hasOwnProperty(r)||(L[r]=[]),L[r].push((()=>{i[n]=G[r],++a===o.length&&t(i)})))})),0===o.length&&t(i)}function nr(r){switch(r){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+r)}}var er=void 0;function tr(r){for(var n="",e=r;v[e];)n+=er[v[e++]];return n}var ir=void 0;function or(r){throw new ir(r)}function ar(r,n,e={}){if(!("argPackAdvance"in n))throw new TypeError("registerType registeredInstance requires argPackAdvance");var t=n.name;if(r||or('type "'+t+'" must have a positive integer typeid pointer'),G.hasOwnProperty(r)){if(e.ignoreDuplicateRegistrations)return;or("Cannot register type '"+t+"' twice")}if(G[r]=n,delete X[r],L.hasOwnProperty(r)){var i=L[r];delete L[r],i.forEach((r=>r()))}}var ur=new function(){this.allocated=[void 0],this.freelist=[],this.get=function(r){return this.allocated[r]},this.allocate=function(r){let n=this.freelist.pop()||this.allocated.length;return this.allocated[n]=r,n},this.free=function(r){this.allocated[r]=void 0,this.freelist.push(r)}};function cr(r){r>=ur.reserved&&0==--ur.get(r).refcount&&ur.free(r)}function fr(){for(var r=0,n=ur.reserved;n(r||or("Cannot use deleted val. handle = "+r),ur.get(r).value),lr=r=>{switch(r){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return ur.allocate({refcount:1,value:r})}};function dr(r,n){switch(n){case 2:return function(r){return this.fromWireType(w[r>>2])};case 3:return function(r){return this.fromWireType(b[r>>3])};default:throw new TypeError("Unknown float type: "+r)}}function pr(r,n,e){t.hasOwnProperty(r)?((void 0===e||void 0!==t[r].overloadTable&&void 0!==t[r].overloadTable[e])&&or("Cannot register public name '"+r+"' twice"),function(r,n,e){if(void 0===r[n].overloadTable){var t=r[n];r[n]=function(){return r[n].overloadTable.hasOwnProperty(arguments.length)||or("Function '"+e+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+r[n].overloadTable+")!"),r[n].overloadTable[arguments.length].apply(this,arguments)},r[n].overloadTable=[],r[n].overloadTable[t.argCount]=t}}(t,r,r),t.hasOwnProperty(e)&&or("Cannot register multiple overloads of a function with the same number of arguments ("+e+")!"),t[r].overloadTable[e]=n):(t[r]=n,void 0!==e&&(t[r].numArguments=e))}function hr(r,n,e){t.hasOwnProperty(r)||Y("Replacing nonexistant public symbol"),void 0!==t[r].overloadTable&&void 0!==e?t[r].overloadTable[e]=n:(t[r]=n,t[r].argCount=e)}function vr(r,n,e){return r.includes("j")?function(r,n,e){var i=t["dynCall_"+r];return e&&e.length?i.apply(null,[n].concat(e)):i.call(null,n)}(r,n,e):H(n).apply(null,e)}function mr(r,n){var e=(r=tr(r)).includes("j")?function(r,n){var e=[];return function(){return e.length=0,Object.assign(e,arguments),vr(r,n,e)}}(r,n):H(n);return"function"!=typeof e&&or("unknown function pointer with signature "+r+": "+n),e}var gr=void 0;function yr(r){var n=zr(r),e=tr(n);return Or(n),e}function _r(r,n,e){switch(n){case 0:return e?function(r){return h[r]}:function(r){return v[r]};case 1:return e?function(r){return m[r>>1]}:function(r){return g[r>>1]};case 2:return e?function(r){return y[r>>2]}:function(r){return _[r>>2]};default:throw new TypeError("Unknown integer type: "+r)}}var wr="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function br(r,n,e){for(var t=n+e,i=n;r[i]&&!(i>=t);)++i;if(i-n>16&&r.buffer&&wr)return wr.decode(r.subarray(n,i));for(var o="";n>10,56320|1023&f)}}else o+=String.fromCharCode((31&a)<<6|u)}else o+=String.fromCharCode(a)}return o}function Ar(r,n){return r?br(v,r,n):""}var Tr="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function Cr(r,n){for(var e=r,t=e>>1,i=t+n/2;!(t>=i)&&g[t];)++t;if((e=t<<1)-r>32&&Tr)return Tr.decode(v.subarray(r,e));for(var o="",a=0;!(a>=n/2);++a){var u=m[r+2*a>>1];if(0==u)break;o+=String.fromCharCode(u)}return o}function Pr(r,n,e){if(void 0===e&&(e=2147483647),e<2)return 0;for(var t=n,i=(e-=2)<2*r.length?e/2:r.length,o=0;o>1]=a,n+=2}return m[n>>1]=0,n-t}function kr(r){return 2*r.length}function Er(r,n){for(var e=0,t="";!(e>=n/4);){var i=y[r+4*e>>2];if(0==i)break;if(++e,i>=65536){var o=i-65536;t+=String.fromCharCode(55296|o>>10,56320|1023&o)}else t+=String.fromCharCode(i)}return t}function Wr(r,n,e){if(void 0===e&&(e=2147483647),e<4)return 0;for(var t=n,i=t+e-4,o=0;o=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&r.charCodeAt(++o)),y[n>>2]=a,(n+=4)+4>i)break}return y[n>>2]=0,n-t}function jr(r){for(var n=0,e=0;e=55296&&t<=57343&&++e,n+=4}return n}var Fr={};function Rr(r){var n=l.buffer;try{return l.grow(r-n.byteLength+65535>>>16),C(),1}catch(r){}}var Sr=[null,[],[]];function xr(r,n){var e=Sr[r];0===n||10===n?((1===r?d:p)(br(e,0)),e.length=0):e.push(n)}Q=t.InternalError=K(Error,"InternalError"),function(){for(var r=new Array(256),n=0;n<256;++n)r[n]=String.fromCharCode(n);er=r}(),ir=t.BindingError=K(Error,"BindingError"),ur.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),ur.reserved=ur.allocated.length,t.count_emval_handles=fr,gr=t.UnboundTypeError=K(Error,"UnboundTypeError");var Ur={__call_sighandler:function(r,n){H(r)(n)},__cxa_throw:function(r,n,e){throw new M(r).init(n,e),r},_embind_finalize_value_object:function(r){var n=B[r];delete B[r];var e=n.rawConstructor,t=n.rawDestructor,i=n.fields;rr([r],i.map((r=>r.getterReturnType)).concat(i.map((r=>r.setterArgumentType))),(r=>{var o={};return i.forEach(((n,e)=>{var t=n.fieldName,a=r[e],u=n.getter,c=n.getterContext,f=r[e+i.length],s=n.setter,l=n.setterContext;o[t]={read:r=>a.fromWireType(u(c,r)),write:(r,n)=>{var e=[];s(l,r,f.toWireType(e,n)),q(e)}}})),[{name:n.name,fromWireType:function(r){var n={};for(var e in o)n[e]=o[e].read(r);return t(r),n},toWireType:function(r,n){for(var i in o)if(!(i in n))throw new TypeError('Missing field: "'+i+'"');var a=e();for(i in o)o[i].write(a,n[i]);return null!==r&&r.push(t,a),a},argPackAdvance:8,readValueFromPointer:N,destructorFunction:t}]}))},_embind_register_bigint:function(r,n,e,t,i){},_embind_register_bool:function(r,n,e,t,i){var o=nr(e);ar(r,{name:n=tr(n),fromWireType:function(r){return!!r},toWireType:function(r,n){return n?t:i},argPackAdvance:8,readValueFromPointer:function(r){var t;if(1===e)t=h;else if(2===e)t=m;else{if(4!==e)throw new TypeError("Unknown boolean type size: "+n);t=y}return this.fromWireType(t[r>>o])},destructorFunction:null})},_embind_register_emval:function(r,n){ar(r,{name:n=tr(n),fromWireType:function(r){var n=sr(r);return cr(r),n},toWireType:function(r,n){return lr(n)},argPackAdvance:8,readValueFromPointer:N,destructorFunction:null})},_embind_register_float:function(r,n,e){var t=nr(e);ar(r,{name:n=tr(n),fromWireType:function(r){return r},toWireType:function(r,n){return n},argPackAdvance:8,readValueFromPointer:dr(n,t),destructorFunction:null})},_embind_register_function:function(r,n,e,t,i,o,a){var u=function(r,n){for(var e=[],t=0;t>2]);return e}(n,e);r=tr(r),i=mr(t,i),pr(r,(function(){!function(r,n){var e=[],t={};throw n.forEach((function r(n){t[n]||G[n]||(X[n]?X[n].forEach(r):(e.push(n),t[n]=!0))})),new gr(r+": "+e.map(yr).join([", "]))}("Cannot call "+r+" due to unbound types",u)}),n-1),rr([],u,(function(e){var t=[e[0],null].concat(e.slice(1));return hr(r,function(r,n,e,t,i,o){var a=n.length;a<2&&or("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var u=null!==n[1]&&null!==e,c=!1,f=1;fr;if(0===t){var u=32-8*e;a=r=>r<>>u}var c=n.includes("unsigned");ar(r,{name:n,fromWireType:a,toWireType:c?function(r,n){return this.name,n>>>0}:function(r,n){return this.name,n},argPackAdvance:8,readValueFromPointer:_r(n,o,0!==t),destructorFunction:null})},_embind_register_memory_view:function(r,n,e){var t=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][n];function i(r){var n=_,e=n[r>>=2],i=n[r+1];return new t(n.buffer,i,e)}ar(r,{name:e=tr(e),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(r,n){var e="std::string"===(n=tr(n));ar(r,{name:n,fromWireType:function(r){var n,t=_[r>>2],i=r+4;if(e)for(var o=i,a=0;a<=t;++a){var u=i+a;if(a==t||0==v[u]){var c=Ar(o,u-o);void 0===n?n=c:(n+=String.fromCharCode(0),n+=c),o=u+1}}else{var f=new Array(t);for(a=0;a=55296&&t<=57343?(n+=4,++e):n+=3}return n}(n):n.length;var o=Ir(4+t+1),a=o+4;if(_[o>>2]=t,e&&i)!function(r,n,e){(function(r,n,e,t){if(!(t>0))return 0;for(var i=e,o=e+t-1,a=0;a=55296&&u<=57343&&(u=65536+((1023&u)<<10)|1023&r.charCodeAt(++a)),u<=127){if(e>=o)break;n[e++]=u}else if(u<=2047){if(e+1>=o)break;n[e++]=192|u>>6,n[e++]=128|63&u}else if(u<=65535){if(e+2>=o)break;n[e++]=224|u>>12,n[e++]=128|u>>6&63,n[e++]=128|63&u}else{if(e+3>=o)break;n[e++]=240|u>>18,n[e++]=128|u>>12&63,n[e++]=128|u>>6&63,n[e++]=128|63&u}}n[e]=0})(r,v,n,e)}(n,a,t+1);else if(i)for(var u=0;u255&&(Or(a),or("String has UTF-16 code units that do not fit in 8 bits")),v[a+u]=c}else for(u=0;ug,u=1):4===n&&(t=Er,i=Wr,a=jr,o=()=>_,u=2),ar(r,{name:e,fromWireType:function(r){for(var e,i=_[r>>2],a=o(),c=r+4,f=0;f<=i;++f){var s=r+4+f*n;if(f==i||0==a[s>>u]){var l=t(c,s-c);void 0===e?e=l:(e+=String.fromCharCode(0),e+=l),c=s+n}}return Or(r),e},toWireType:function(r,t){"string"!=typeof t&&or("Cannot pass non-string to C++ string type "+e);var o=a(t),c=Ir(4+o+n);return _[c>>2]=o>>u,i(t,c+4,o+n),null!==r&&r.push(Or,c),c},argPackAdvance:8,readValueFromPointer:N,destructorFunction:function(r){Or(r)}})},_embind_register_value_object:function(r,n,e,t,i,o){B[r]={name:tr(n),rawConstructor:mr(e,t),rawDestructor:mr(i,o),fields:[]}},_embind_register_value_object_field:function(r,n,e,t,i,o,a,u,c,f){B[r].fields.push({fieldName:tr(n),getterReturnType:e,getter:mr(t,i),getterContext:o,setterArgumentType:a,setter:mr(u,c),setterContext:f})},_embind_register_void:function(r,n){ar(r,{isVoid:!0,name:n=tr(n),argPackAdvance:0,fromWireType:function(){},toWireType:function(r,n){}})},_emval_decref:cr,_emval_incref:function(r){r>4&&(ur.get(r).refcount+=1)},_emval_new_cstring:function(r){return lr(function(r){var n=Fr[r];return void 0===n?tr(r):n}(r))},_emval_take_value:function(r,n){var e=(r=function(r,n){var e=G[r];return void 0===e&&or(n+" has unknown type "+yr(r)),e}(r,"_emval_take_value")).readValueFromPointer(n);return lr(e)},abort:function(){S("")},emscripten_memcpy_big:function(r,n,e){v.copyWithin(r,n,n+e)},emscripten_resize_heap:function(r){var n=v.length,e=2147483648;if((r>>>=0)>e)return!1;let t=(r,n)=>r+(n-r%n)%n;for(var i=1;i<=4;i*=2){var o=n*(1+.2/i);if(o=Math.min(o,r+100663296),Rr(Math.min(e,t(Math.max(r,o),65536))))return!0}return!1},fd_close:function(r){return 52},fd_seek:function(r,n,e,t,i){return 70},fd_write:function(r,n,e,t){for(var i=0,o=0;o>2],u=_[n+4>>2];n+=8;for(var c=0;c>2]=i,0}};!function(){var r={env:Ur,wasi_snapshot_preview1:Ur};function n(r,n){var e=r.exports;return t.asm=e,l=t.asm.memory,C(),A=t.asm.__indirect_function_table,function(r){k.unshift(r)}(t.asm.__wasm_call_ctors),function(r){if(F--,t.monitorRunDependencies&&t.monitorRunDependencies(F),0==F&&R){var n=R;R=null,n()}}(),e}if(F++,t.monitorRunDependencies&&t.monitorRunDependencies(F),t.instantiateWasm)try{return t.instantiateWasm(r,n)}catch(r){p("Module.instantiateWasm callback failed with error: "+r),e(r)}(function(r,n,e,t){return r||"function"!=typeof WebAssembly.instantiateStreaming||I(n)||"function"!=typeof fetch?z(n,e,t):fetch(n,{credentials:"same-origin"}).then((r=>WebAssembly.instantiateStreaming(r,e).then(t,(function(r){return p("wasm streaming compile failed: "+r),p("falling back to ArrayBuffer instantiation"),z(n,e,t)}))))})(s,x,r,(function(r){n(r.instance)})).catch(e)}();var Ir=function(){return(Ir=t.asm.malloc).apply(null,arguments)},Or=function(){return(Or=t.asm.free).apply(null,arguments)},zr=function(){return(zr=t.asm.__getTypeName).apply(null,arguments)};t.__embind_initialize_bindings=function(){return(t.__embind_initialize_bindings=t.asm._embind_initialize_bindings).apply(null,arguments)};var Dr,Vr=function(){return(Vr=t.asm.__cxa_is_pointer_type).apply(null,arguments)};function Hr(){function r(){Dr||(Dr=!0,t.calledRun=!0,T||(D(k),n(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)j(t.postRun.shift());D(E)}()))}F>0||(function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)W(t.preRun.shift());D(P)}(),F>0||(t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){t.setStatus("")}),1),r()}),1)):r()))}if(t.dynCall_vij=function(){return(t.dynCall_vij=t.asm.dynCall_vij).apply(null,arguments)},t.dynCall_jiji=function(){return(t.dynCall_jiji=t.asm.dynCall_jiji).apply(null,arguments)},R=function r(){Dr||Hr(),Dr||(R=r)},t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return Hr(),r.ready},t.exports=o;const c=(0,a.g)(u.exports),f=Object.freeze(Object.defineProperty({__proto__:null,default:c},Symbol.toStringTag,{value:"Module"}))}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9612.07a38515fdfc224d84cf.js b/docs/sentinel1-explorer/9612.07a38515fdfc224d84cf.js new file mode 100644 index 00000000..436cd94f --- /dev/null +++ b/docs/sentinel1-explorer/9612.07a38515fdfc224d84cf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9612],{60814:function(e,t,i){i.d(t,{bU:function(){return k},fC:function(){return M},ir:function(){return m},zp:function(){return f}});i(39994);var a=i(19431),n=i(91772),s=i(89542),r=i(14685),o=i(14260),l=i(12065),h=i(15540),p=i(66069);const u=new Float64Array(2),d=new Float64Array(2),y="0123456789bcdefghjkmnpqrstuvwxyz",c=64;function m(e,t,i,a){const o=[e.xmin,e.ymin,e.xmax,e.ymax],u=s.Z.fromExtent(n.Z.fromBounds(o,a)),d=(0,p.iV)(u,a,r.Z.WGS84,{densificationStep:t*c});if(!d)return null;const y=(0,l.Uy)(new h.Z,d,!1,!1),m=y.coords.filter(((e,t)=>!(t%2))),g=y.coords.filter(((e,t)=>t%2)),b=Math.min(...m),C=Math.min(...g),T=Math.max(...m),w=Math.max(...g),k=f(b,C,i,r.Z.WGS84),L=f(T,w,i,r.Z.WGS84);return k&&L?{bounds:o,geohashBounds:{xLL:k[0],yLL:k[1],xTR:L[0],yTR:L[1]},level:i}:null}function f(e,t,i,n){if(n.isWebMercator){const n=(0,a.BV)(e/o.sv.radius),s=n-360*Math.floor((n+180)/360),r=[0,0];return L(r,0,(0,a.BV)(Math.PI/2-2*Math.atan(Math.exp(-t/o.sv.radius))),s,i),r}const s=(0,p.iV)({x:e,y:t},n,r.Z.WGS84);if(!s)return null;const l=[0,0];return L(l,0,s.y,s.x,i),l}function g(e){return y[e]}function b(e){return(e[0]+e[1])/2}function C(e,t,i){return e[0]=t,e[1]=i,e}function T(e,t){const i=b(e),a=t,n=!t;e[0]=n*e[0]+a*i,e[1]=n*i+a*e[1]}function w(e,t){const i=t>b(e);return T(e,i),i}function k(e,t){let i=-90,a=90,n=-180,s=180;for(let r=0;r>h,m=(y&e.geohashY)>>p;for(let e=u-1;e>=0;e--){const t=(n+s)/2,i=c&1<=0;e--){const t=(i+a)/2,n=m&1<i?1:0;s|=n<<29-(t+5*e),h=(1-n)*h+n*i,p=(1-n)*i+n*p}for(let t=0;t<5;t++){const a=(o+l)/2,n=i>a?1:0;r|=n<<29-(t+5*e),o=(1-n)*o+n*a,l=(1-n)*a+n*l}}e[2*t]=s,e[2*t+1]=r}function M(e,t,i){let a="";const n=C(u,-90,90),s=C(d,-180,180);for(let r=0;r{this._featureLookup.delete(e)}))}readFromStoreByList(e){const t=[];return e.forEach((e=>{const i=this.readFromStoreById(e);i&&t.push(i)})),t}readFromStoreById(e){return this._featureLookup.get(e)??null}writeToStore(e,t,i){const a=[];return e.forEach((e=>{if(!e?.id)return;e.properties||(e.properties=[]);let n,s=null;if(i&&e.properties[i]&&(s=(0,d.GH)(e.properties[i])),"originId"in e&&"destinationId"in e&&(e.properties.ESRI__ORIGIN_ID=e.originId,e.properties.ESRI__DESTINATION_ID=e.destinationId),e.properties[t]=e.id,e.id&&this._featureLookup.has(e.id)&&this._featureLookup.get(e.id).attributes){const a=this._featureLookup.get(e.id),r=JSON.parse(JSON.stringify(Object.assign(a.attributes,e.properties)));i&&e.properties[i]&&(r[i]=(0,w.im)(e.properties[i])),n=new T.u_(s?JSON.parse(JSON.stringify(s)):a?.geometry?JSON.parse(JSON.stringify(a.geometry)):null,r,null,e.properties[t])}else n=new T.u_(s?JSON.parse(JSON.stringify(s)):null,e.properties,null,e.properties[t]);this._featureLookup.set(e.id,n),a.push(n)})),a}}i(66341);var L,M=i(41350),E=i(76512);i(14685);!function(e){e.ELEMENTUID="ELEMENTUID",e.TYPENAME="TYPENAME"}(L||(L={}));L.ELEMENTUID,L.TYPENAME;var I,x;!function(e){e[e.ELEMENTUID=0]="ELEMENTUID",e[e.TYPENAME=1]="TYPENAME"}(I||(I={})),function(e){e[e.ELEMENTUID=0]="ELEMENTUID",e[e.TYPENAME=1]="TYPENAME",e[e.FROMUID=2]="FROMUID",e[e.TOUID=3]="TOUID"}(x||(x={}));var _,D,N,v;i(65726),i(79458);function R(e){if(!e.spatialReference.isWGS84)throw new s.Z("knowledge-graph:layer-support-utils","The extentToInBoundsRings function only supports WGS84 spatial references.");let t;return t=e.xmax>180&&e.xmin<180?[[[e.xmin,e.ymin],[e.xmin,e.ymax],[180,e.ymax],[180,e.ymin],[e.xmin,e.ymin]],[[-180,e.ymin],[-180,e.ymax],[e.xmax-360,e.ymax],[e.xmax-360,e.ymin],[-180,e.ymin]]]:e.xmax>180&&e.xmin>180?[[[e.xmin-360,e.ymin],[e.xmin-360,e.ymax],[e.xmax-360,e.ymax],[e.xmax-360,e.ymin],[e.xmin-360,e.ymin]]]:e.xmax>-180&&e.xmin<-180?[[[e.xmin+360,e.ymin],[e.xmin+360,e.ymax],[180,e.ymax],[180,e.ymin],[e.xmin+360,e.ymin]],[[-180,e.ymin],[-180,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[-180,e.ymin]]]:e.xmax<-180&&e.xmin<-180?[[[e.xmin+360,e.ymin],[e.xmin+360,e.ymax],[e.xmax+360,e.ymax],[e.xmax+360,e.ymin],[e.xmin+360,e.ymin]]]:[[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]],t}!function(e){e[e.featureResult=0]="featureResult",e[e.countResult=1]="countResult",e[e.idsResult=2]="idsResult"}(_||(_={})),function(e){e[e.upperLeft=0]="upperLeft",e[e.lowerLeft=1]="lowerLeft"}(D||(D={})),function(e){e[e.sqlTypeBigInt=0]="sqlTypeBigInt",e[e.sqlTypeBinary=1]="sqlTypeBinary",e[e.sqlTypeBit=2]="sqlTypeBit",e[e.sqlTypeChar=3]="sqlTypeChar",e[e.sqlTypeDate=4]="sqlTypeDate",e[e.sqlTypeDecimal=5]="sqlTypeDecimal",e[e.sqlTypeDouble=6]="sqlTypeDouble",e[e.sqlTypeFloat=7]="sqlTypeFloat",e[e.sqlTypeGeometry=8]="sqlTypeGeometry",e[e.sqlTypeGUID=9]="sqlTypeGUID",e[e.sqlTypeInteger=10]="sqlTypeInteger",e[e.sqlTypeLongNVarchar=11]="sqlTypeLongNVarchar",e[e.sqlTypeLongVarbinary=12]="sqlTypeLongVarbinary",e[e.sqlTypeLongVarchar=13]="sqlTypeLongVarchar",e[e.sqlTypeNChar=14]="sqlTypeNChar",e[e.sqlTypeNVarChar=15]="sqlTypeNVarChar",e[e.sqlTypeOther=16]="sqlTypeOther",e[e.sqlTypeReal=17]="sqlTypeReal",e[e.sqlTypeSmallInt=18]="sqlTypeSmallInt",e[e.sqlTypeSqlXml=19]="sqlTypeSqlXml",e[e.sqlTypeTime=20]="sqlTypeTime",e[e.sqlTypeTimestamp=21]="sqlTypeTimestamp",e[e.sqlTypeTimestamp2=22]="sqlTypeTimestamp2",e[e.sqlTypeTinyInt=23]="sqlTypeTinyInt",e[e.sqlTypeVarbinary=24]="sqlTypeVarbinary",e[e.sqlTypeVarchar=25]="sqlTypeVarchar"}(N||(N={})),function(e){e[e.OID_ARRAY=0]="OID_ARRAY",e[e.GLOBALID_ARRAY=1]="GLOBALID_ARRAY",e[e.STRING_ARRAY=2]="STRING_ARRAY",e[e.IDENTIFIER_ARRAY=3]="IDENTIFIER_ARRAY"}(v||(v={}));var S=i(14136),A=i(91772);const G="ESRI__ID",Z="ESRI__ORIGIN_ID",j="ESRI__DESTINATION_ID",F="ESRI__LAYOUT_GEOMETRY",q="ESRI__AGGREGATION_COUNT",O=12;let P=class extends c.Z{constructor(e){super(e),this._processingCacheUpdatesLookup=new Map,this.knowledgeGraph=null,this.inclusionModeDefinition={generateAllSublayers:!0,namedTypeDefinitions:new Map},this.entityTypeNames=new Set,this.relationshipTypeNames=new Set,this.geographicLookup=new Map,this.sublayerCaches=new Map,this.nodeConnectionsLookup=new Map,this.relationshipConnectionsLookup=new Map,this.memberIdTypeLookup=new Map;const t=new Map;e.knowledgeGraph.dataModel.entityTypes?.forEach((i=>{i.name&&(t.set(i.name,"entity"),this._processingCacheUpdatesLookup.set(i.name,[]),e.inclusionModeDefinition&&!e.inclusionModeDefinition?.generateAllSublayers||this.entityTypeNames.add(i.name),i.properties?.forEach((e=>{e.geometryType&&"esriGeometryNull"!==e.geometryType&&this.geographicLookup.set(i.name,{name:e.name??"",geometryType:e.geometryType})})))})),e.knowledgeGraph.dataModel.relationshipTypes?.forEach((i=>{i.name&&(t.set(i.name,"relationship"),this._processingCacheUpdatesLookup.set(i.name,[]),e.inclusionModeDefinition&&!e.inclusionModeDefinition?.generateAllSublayers||this.relationshipTypeNames.add(i.name),i.properties?.forEach((e=>{e.geometryType&&"esriGeometryNull"!==e.geometryType&&this.geographicLookup.set(i.name,{name:e.name??"",geometryType:e.geometryType})})))})),e.inclusionModeDefinition?.namedTypeDefinitions.forEach(((i,a)=>{if("entity"===t.get(a))this.entityTypeNames.add(a);else{if("relationship"!==t.get(a))return r.Z.getLogger(this).warn(`A named type, ${a}, was in the inclusion list that wasn't in the data model and will be removed`),void e.inclusionModeDefinition?.namedTypeDefinitions.delete(a);this.relationshipTypeNames.add(a)}const n=new Map;i.members?.forEach((e=>{(0,m.s1)(this.memberIdTypeLookup,e.id,(()=>new Set)).add(a);const t=this.getById(e.id);t&&n.set(e.id,t)})),this.sublayerCaches.set(a,n)}))}addToLayer(e){e.forEach((({typeName:e,id:t})=>{if(!this.inclusionModeDefinition)throw new s.Z("knowledge-graph:layer-data-manager","You cannot add to a layer's exclusion list if it was not created with an exclusion list originally");if(this.inclusionModeDefinition.namedTypeDefinitions.has(e)){if(this.inclusionModeDefinition.namedTypeDefinitions.has(e)){const i=this.inclusionModeDefinition.namedTypeDefinitions.get(e);i.members||(i.members=new Map),i.members.set(t,{id:t}),(0,m.s1)(this.memberIdTypeLookup,t,(()=>new Set)).add(e)}}else{const i=new Map;i.set(t,{id:t}),this.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!1,members:i}),(0,m.s1)(this.memberIdTypeLookup,t,(()=>new Set)).add(e)}}))}getById(e){return k.getInstance().readFromStoreById(e)}async getData(e,t,i){if(t.objectType.name&&this.inclusionModeDefinition?.namedTypeDefinitions&&this.inclusionModeDefinition.namedTypeDefinitions.size>0&&!this.inclusionModeDefinition.namedTypeDefinitions.has(t.objectType.name))return[];let a;if(a=e||new S.Z({where:"1=1",outFields:["*"]}),"link-chart"===t.parentCompositeLayer.type){const e=t.parentCompositeLayer,i=this._processingCacheUpdatesLookup.get(t.objectType.name??""),n=a.outFields,s=a.geometry;let r="",o="";s&&s.extent&&(r=(0,p.fC)(s.extent.ymin,s.extent.xmin,O),o=(0,p.fC)(s.extent.ymax,s.extent.xmax,O)),n&&1===n.length&&n[0]===G&&"1=1"===a.where||await Promise.all(i??[]);const l=this.sublayerCaches.has(t.objectType.name??"")?Array.from(this.sublayerCaches.get(t.objectType.name)?.values()):[],h=[];return l.forEach((i=>{if(this.relationshipTypeNames.has(t.objectType.name)?i.geometry=e.relationshipLinkChartDiagramLookup.get(i.attributes[t.objectIdField]):i.geometry=e.entityLinkChartDiagramLookup.get(i.attributes[t.objectIdField]),i.attributes[F]=i.geometry,r&&o){const a=e.linkChartGeohashLookup.get(i.attributes[t.objectIdField]);a?a>=r&&a<=o&&h.push(i):h.push(i)}else h.push(i)})),h}return this.retrieveDataFromService(a,t,i)}async getConnectedRecordIds(e,t){const i=[];let a="";const n=[],s=new Map;if(e.forEach((e=>{if(this.memberIdTypeLookup.has(e))for(const t of this.memberIdTypeLookup.get(e)){if(!this.entityTypeNames.has(t))return;s.has(t)?s.get(t)?.push(e):s.set(t,[e])}})),t&&0!==t?.length){for(const e of t)a=a+e+"|";a=a.slice(0,-1)}return s.forEach(((e,s)=>{let o;o=t&&0!==t?.length?`MATCH (n:${s})-[r:${a}]-(m) WHERE id(n) IN $ids RETURN id(r), type(r), id(m), labels(m)[0]`:`MATCH (n:${s})-[r]-(m) WHERE id(n) IN $ids RETURN id(r), type(r), id(m), labels(m)[0]`;const l=new Promise((t=>{(async()=>{const t=(await(0,M.executeQueryStreaming)(this.knowledgeGraph,new E.Z({openCypherQuery:o,bindParameters:{ids:e}}))).resultRowsStream.getReader();try{for(;;){const{done:e,value:a}=await t.read();if(e)break;for(let e=0;e{t()}))}));n.push(l)})),this.refreshCacheContent(),await Promise.all(n),i}async refreshCacheContent(e,t,i,a=!0){const n=k.getInstance(),r=[],o=new Map,l=new Map;this.knowledgeGraph.dataModel.entityTypes?.forEach((e=>{e.name&&l.set(e.name,e)})),this.knowledgeGraph.dataModel.relationshipTypes?.forEach((e=>{e.name&&l.set(e.name,e)})),e||this.inclusionModeDefinition?e?e.forEach((e=>{if(this.memberIdTypeLookup.has(e))for(const t of this.memberIdTypeLookup.get(e))o.has(t)?o.get(t)?.push(e):o.set(t,[e])})):this.inclusionModeDefinition?.namedTypeDefinitions?.forEach(((e,t)=>{e.useAllData?o.set(t,null):e.members&&e.members.forEach((e=>{o.has(t)&&null!==o.get(t)?o.get(t)?.push(e.id):o.set(t,[e.id])}))})):(this.knowledgeGraph.dataModel.entityTypes?.forEach((e=>{e.name&&o.set(e.name,null)})),this.knowledgeGraph.dataModel.entityTypes?.forEach((e=>{e.name&&o.set(e.name,null)})));for(const[e,h]of o){const o=new Promise((r=>{(async()=>{const r=new Set,o=[];let p,u="",d=!1;if(t||l.get(e)?.properties?.forEach((e=>{e.name&&r.add(e.name)})),i&&this.geographicLookup.has(e)){const t=this.geographicLookup.get(e)?.name;t&&r.add(t)}if(this.entityTypeNames.has(e))u=`MATCH (n:${e}) ${h?"WHERE id(n) IN $ids ":""}return ID(n)`,r.forEach((e=>{u+=`, n.${e}`,o.push(e)}));else{if(!this.relationshipTypeNames.has(e))throw new s.Z("knowledge-graph:layer-data-manager",`The graph type of ${e} could not be determined. Was this type set in the KG data model and inclusion definition?`);d=!0,u=`MATCH ()-[n:${e}]->() ${h?"WHERE id(n) IN $ids ":""}return ID(n), id(startNode(n)), id(endNode(n))`,r.forEach((e=>{u+=`, n.${e}`,o.push(e)}))}p=new E.Z(h?{openCypherQuery:u,bindParameters:{ids:h}}:{openCypherQuery:u});const y=(await(0,M.executeQueryStreaming)(this.knowledgeGraph,p)).resultRowsStream.getReader();for(;;){const{done:t,value:i}=await y.read();if(t)break;const s=[];for(let e=0;enew Set)).add(r.id),(0,m.s1)(this.nodeConnectionsLookup,r.destinationId,(()=>new Set)).add(r.id),(0,m.s1)(this.relationshipConnectionsLookup,r.id,(()=>[r.originId,r.destinationId])));a{l?.set(t.attributes[G],t),a&&!this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members.has(t.attributes[G])&&(this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members.set(t.attributes[G],{id:t.attributes[G]}),(0,m.s1)(this.memberIdTypeLookup,t.attributes[G],(()=>new Set)).add(e))}))}})().then((()=>{r(null)}))}));r.push(o),this._processingCacheUpdatesLookup.get(e)?.push(o)}await Promise.all(r)}removeFromLayer(e){const t=new Set,i=new Set(e.map((e=>e.id)));for(const i of e)t.add(i.typeName),1===this.memberIdTypeLookup.get(i.id)?.size?this.memberIdTypeLookup.delete(i.id):this.memberIdTypeLookup.get(i.id)?.delete(i.typeName),this.inclusionModeDefinition?.namedTypeDefinitions.forEach(((e,t)=>{t===i.typeName&&e.members?.has(i.id)&&e.members.delete(i.id)}));t.forEach((e=>{this.sublayerCaches.get(e)?.forEach(((t,a)=>{i.has(a)&&this.sublayerCaches.get(e)?.delete(a)}))}))}async retrieveDataFromService(e,t,i){const a=k.getInstance(),n=new Set,r=[];let o,l="",h=[];const p="relationship"===t.graphType,u=this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData,d=t.parentCompositeLayer.sublayerIdsCache.get(t.objectType.name);let y=!u&&d?Array.from(d).sort():null;if(this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData)this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData&&null!=e.objectIds&&(y=e.objectIds);else if(null!=e.objectIds&&y&&y.length>0){const t=e.objectIds;e.objectIds=y.filter((e=>t.includes(e)))}else if(null!=e.objectIds)y=e.objectIds;else{if(this.inclusionModeDefinition?.namedTypeDefinitions.has(t.objectType.name)&&(!this.inclusionModeDefinition.namedTypeDefinitions.get(t.objectType.name)?.members||this.inclusionModeDefinition.namedTypeDefinitions.get(t.objectType.name)?.members?.size<1))return e.objectIds=[],[];e.objectIds=y}if(null!=e.outFields){const i=e.outFields;i.includes("*")?t.fields.forEach((e=>{n.add(e.name)})):i.forEach((e=>{e!==G&&e!==t.geometryFieldName&&n.add(e)}))}if(null!=e.geometry){const i=e.geometry;let a;const h=t.parentCompositeLayer.dataManager.knowledgeGraph.serviceDefinition,u=h?.spatialReference,d=h?.serviceCapabilities?.geometryCapabilities;let y=d?.geometryMaxBoundingRectangleSizeX,c=d?.geometryMaxBoundingRectangleSizeY;if(i?.extent?.spatialReference&&!i.spatialReference?.isWGS84?(await(0,b.initializeProjection)(i.extent.spatialReference,C.YU),a=(0,b.project)(i.extent,C.YU)):a=i.extent,y&&c&&u){if(4326!==u.wkid){const e=new A.Z({spatialReference:u,xmax:y,ymax:c}),t=(0,b.project)(e,C.YU);y=t.xmax,c=t.ymax}if(a.xmax-a.xmin>y)throw new s.Z("knowledge-graph:layer-data-manager",`Extent x bounds should be within ${y}° latitude, limit exceeded`);if(a.ymax-a.ymin>c)throw new s.Z("knowledge-graph:layer-data-manager",`Extent y bounds should be within ${c}° longitude, limit exceeded`)}if(null!=e.where&&"1=1"!==e.where){const i=await(0,f.E)(e.where.toUpperCase(),t.fieldsIndex);t.fields.forEach((e=>{i.fieldNames.includes(e.name)&&n.add(e.name)}))}l=p?`Match ()-[n:${t.objectType.name}]->() WHERE esri.graph.ST_Intersects($param_filter_geom, n.${t.geometryFieldName}) return ID(n), id(startNode(r)), id(endNode(r))`:`Match (n:${t.objectType.name}) WHERE esri.graph.ST_Intersects($param_filter_geom, n.${t.geometryFieldName}) return ID(n)`,t.geometryFieldName&&n.add(t.geometryFieldName),n.forEach((e=>{l+=`, n.${e}`,r.push(e)})),o=new E.Z({openCypherQuery:l,bindParameters:{param_filter_geom:new g.Z({rings:R(a)})}})}else{let i="";if(null!=e.where&&"1=1"!==e.where){const a=await(0,f.E)(e.where,t.fieldsIndex);t.fields.forEach((e=>{a.fieldNames.includes(e.name)&&n.add(e.name)}));const s=new Set(["column-reference","string","number","binary-expression"]),r=new Set(["=","<","<=","<>",">",">=","AND","OR","LIKE"]);let o=!1;const l=e=>{if("column-reference"===e.type)return`n.${e.column}`;if("string"===e.type)return`'${e.value}'`;if("number"===e.type)return`${e.value}`;if("binary-expression"===e.type&&s.has(e.left.type)&&s.has(e.right.type)&&r.has(e.operator))return`${l(e.left)} ${e.operator} ${l(e.right)}`;if("binary-expression"===e.type&&"LIKE"===e.operator){let t="";if("function"===e.left.type&&"column-reference"===e.left.args.value[0].type)t+=`lower(n.${e.left.args.value[0].column})`;else{if("column-reference"!==e.left.type)return o=!0,"";t+=`lower(n.${e.left.column})`}if(t+=" CONTAINS (","string"!==e.right.type)return o=!0,"";{let i=e.right.value;"%"===i.charAt(0)&&(i=i.slice(1)),"%"===i.charAt(i.length-1)&&(i=i.slice(0,-1)),t+=`'${i.toLowerCase()}')`}return t}return o=!0,""};i=l(a.parseTree),o&&(i="")}let a="";a=p?`Match ()-[n:${t.objectType.name}]->()`:`Match (n:${t.objectType.name})`;let s=!1;y&&(s=!0,a+=" WHERE ID(n) IN $ids"),i&&(a+=s?" AND":" WHERE",a+=` ${i}`),a+=" return ID(n)",p&&(a+=", id(startNode(n)), id(endNode(n))"),e.returnGeometry&&t.geometryFieldName&&n.add(t.geometryFieldName),n.forEach((e=>{a+=`, n.${e}`,r.push(e)})),o=new E.Z(y?{openCypherQuery:a,bindParameters:{ids:y}}:{openCypherQuery:a})}const c=(await(0,M.executeQueryStreaming)(t.parentCompositeLayer.dataManager.knowledgeGraph,o,i)).resultRowsStream.getReader();for(;;){const{done:e,value:i}=await c.read();if(e)break;const n=[];for(let e=0;e{let t=class extends e{constructor(){super(...arguments),this.fields=[],this.fieldsIndex=null}};return(0,a._)([(0,l.Cb)(J.fields)],t.prototype,"fields",void 0),(0,a._)([(0,l.Cb)(J.fieldsIndex)],t.prototype,"fieldsIndex",void 0),t=(0,a._)([(0,h.j)("esri.layers.knowledgeGraphLayer.KnowledgeGraphSublayerBase")],t),t};var V=i(27668),W=i(82733),K=i(12478),X=i(95874),ee=i(51599),te=i(12512),ie=i(14845),ae=i(51211),ne=i(10171),se=i(56481),re=i(90819),oe=i(59659);let le=class extends((0,W.M)(Y((0,V.h)((0,X.M)((0,K.Q)(u.Z)))))){constructor(e){if(super(e),this.capabilities=(0,z.MS)(!1,!1),this.definitionExpression="",this.displayField="",this.elevationInfo=null,this.geometryType=null,this.geometryFieldName=null,this.graphType=null,this.hasM=!1,this.hasZ=!1,this.labelsVisible=null,this.labelingInfo=null,this.objectIdField=G,this.objectType=null,this.parentCompositeLayer=null,this.popupEnabled=!0,this.popupTemplate=null,this.source={openPorts:()=>this.load().then((()=>{const e=new MessageChannel;return new se.Z(e.port1,{channel:e,client:{queryFeatures:(e,t={})=>{const i=S.Z.fromJSON(e);return this.queryFeaturesJSON(i,t)}}}),[e.port2]}))},this.type="knowledge-graph-sublayer","link-chart"===e.parentCompositeLayer.type)"relationship"===e.graphType?this.geometryType="polyline":this.geometryType="point",this.geometryFieldName=F;else if(e.parentCompositeLayer.dataManager.geographicLookup.get(e.objectType.name)?.geometryType&&"esriGeometryNull"!==e.parentCompositeLayer.dataManager.geographicLookup.get(e.objectType.name)?.geometryType){const t=e.parentCompositeLayer.dataManager.geographicLookup.get(e.objectType.name);this.geometryFieldName=t?.name??null,this.geometryType=t?.geometryType?oe.M.fromJSON(t.geometryType):null;const i=t?.name,a=i?e.objectType.properties?.[i]:null;a?(this.hasM=a.hasM??!1,this.hasZ=a.hasZ??!1):(this.hasM=!1,this.hasZ=!1)}else this.geometryType=null;e.objectType.properties?.forEach((e=>{let t=e.fieldType;"esriFieldTypeOID"===t&&(t="esriFieldTypeInteger"),this.fields.push(te.Z.fromJSON({name:e.name,type:t,alias:e.alias,defaultValue:null,editable:e.editable,nullable:e.nullable}))})),this.fields.push(te.Z.fromJSON({name:this.objectIdField,type:"esriFieldTypeString",alias:this.objectIdField,editable:!1})),this.fields.push(te.Z.fromJSON({name:q,type:"esriFieldTypeInteger",alias:q,editable:!1})),this._set("fields",[...this.fields]),e.parentCompositeLayer.dataManager.knowledgeGraph.dataModel?.spatialReference&&(this.spatialReference=e.parentCompositeLayer.dataManager.knowledgeGraph.dataModel.spatialReference),"link-chart"===e.parentCompositeLayer.type?"relationship"===e.graphType?this.renderer=(0,U.i)((0,z.bU)(oe.M.toJSON("polyline")).renderer):this.renderer=(0,U.i)((0,z.bU)(oe.M.toJSON("point")).renderer):this.renderer=(0,U.i)((0,z.bU)(oe.M.toJSON(this.geometryType)).renderer)}get defaultPopupTemplate(){return this.createPopupTemplate()}set renderer(e){(0,ie.YN)(e,this.fieldsIndex),this._set("renderer",e)}createPopupTemplate(e){return(0,ne.eZ)(this,e)}createQuery(){return new S.Z({where:"1=1",outFields:["*"]})}getField(e){for(let t=0;t{e.sourceLayer=this})),n}async queryFeaturesJSON(e,t){const{resolvedQuery:i,queryEngine:a}=await this._setupQueryObjects(e);return await a.executeQuery(i.toJSON(),t?.signal)}async queryFeatureCount(e,t){const{resolvedQuery:i,queryEngine:a}=await this._setupQueryObjects(e);return a.executeQueryForCount(i.toJSON(),t?.signal)}async queryExtent(e={},t){const i={...e,returnGeometry:!0},{resolvedQuery:a,queryEngine:n}=await this._setupQueryObjects(i),s=await n.executeQueryForExtent(a.toJSON(),t?.signal);let r;return r=null!=s.extent?.xmin&&null!=s.extent?.xmax&&null!=s.extent?.ymin&&null!=s.extent?.ymax?new A.Z(s.extent):new A.Z,{count:s.count,extent:r}}async queryObjectIds(e,t){const i=S.Z.from(e);let a;if("link-chart"===this.parentCompositeLayer.type&&this._cachedQueryEngine)a=this._cachedQueryEngine;else{const e=await this.parentCompositeLayer.dataManager.getData(i,this,t);a=this.loadQueryEngine(e)}return a.executeQueryForIds(i.toJSON(),t?.signal)}loadQueryEngine(e){const t=new $.Z({geometryType:oe.M.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ}),i=new H.q({fieldsIndex:this.fieldsIndex.toJSON(),geometryType:oe.M.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ,objectIdField:this.objectIdField,spatialReference:this.spatialReference.toJSON(),timeInfo:null,featureStore:t});return i.featureStore.addMany(e),i}async refreshCachedQueryEngine(){const e=await this.parentCompositeLayer.dataManager.getData(new S.Z({where:"1=1",outFields:[G]}),this);this._cachedQueryEngine=this.loadQueryEngine(e)}async _setupQueryObjects(e,t){const i=S.Z.from(e),a=i.geometry;let n;if(a&&!a.spatialReference?.isWGS84&&(await(0,b.initializeProjection)(a.spatialReference,C.YU),i.geometry=(0,b.project)(a instanceof g.Z||a instanceof re.Z?a:a.extent,C.YU)),"link-chart"===this.parentCompositeLayer.type&&this._cachedQueryEngine)n=this._cachedQueryEngine;else{const e=await this.parentCompositeLayer.dataManager.getData(i,this,t);n=this.loadQueryEngine(e)}return{resolvedQuery:i,queryEngine:n}}};(0,a._)([(0,l.Cb)()],le.prototype,"capabilities",void 0),(0,a._)([(0,l.Cb)({readOnly:!0})],le.prototype,"defaultPopupTemplate",null),(0,a._)([(0,l.Cb)()],le.prototype,"definitionExpression",void 0),(0,a._)([(0,l.Cb)()],le.prototype,"displayField",void 0),(0,a._)([(0,l.Cb)()],le.prototype,"elevationInfo",void 0),(0,a._)([(0,l.Cb)()],le.prototype,"geometryType",void 0),(0,a._)([(0,l.Cb)()],le.prototype,"geometryFieldName",void 0),(0,a._)([(0,l.Cb)()],le.prototype,"graphType",void 0),(0,a._)([(0,l.Cb)()],le.prototype,"hasM",void 0),(0,a._)([(0,l.Cb)()],le.prototype,"hasZ",void 0),(0,a._)([(0,l.Cb)()],le.prototype,"labelsVisible",void 0),(0,a._)([(0,l.Cb)()],le.prototype,"labelingInfo",void 0),(0,a._)([(0,l.Cb)()],le.prototype,"objectIdField",void 0),(0,a._)([(0,l.Cb)()],le.prototype,"objectType",void 0),(0,a._)([(0,l.Cb)()],le.prototype,"parentCompositeLayer",void 0),(0,a._)([(0,l.Cb)(ee.C_)],le.prototype,"popupEnabled",void 0),(0,a._)([(0,l.Cb)({type:B.Z,json:{name:"popupInfo",write:!0}})],le.prototype,"popupTemplate",void 0),(0,a._)([(0,l.Cb)({types:Q.A,json:{write:{target:"layerDefinition.drawingInfo.renderer"}}})],le.prototype,"renderer",null),(0,a._)([(0,l.Cb)()],le.prototype,"source",void 0),(0,a._)([(0,l.Cb)({json:{read:!1}})],le.prototype,"type",void 0),le=(0,a._)([(0,h.j)("esri.layers.knowledgeGraph.KnowledgeGraphSublayer")],le);const he=le;var pe=i(36567);let ue,de=null;function ye(){return ue||(ue=i.e(5672).then(i.bind(i,25672)).then((e=>e.l)).then((({default:e})=>e({locateFile:e=>(0,pe.V)(`esri/libs/linkchartlayout/${e}`)}))).then((e=>{!function(e){de=e}(e)})),ue)}var ce,me;function fe(e,t,i,a,n,s){const r=i.length,o=n.length,l=Float64Array.BYTES_PER_ELEMENT,h=Uint32Array.BYTES_PER_ELEMENT,p=Uint8Array.BYTES_PER_ELEMENT,u=15+r*(p+2*l)+o*(2*h),d=de._malloc(u);try{const p=d+16-d%16,u=p+r*l,y=u+r*l,c=y+o*h,m=c+o*h,f=()=>[de.HEAPF64.subarray(p>>3,(p>>3)+r),de.HEAPF64.subarray(u>>3,(u>>3)+r),de.HEAPU32.subarray(y>>2,(y>>2)+o),de.HEAPU32.subarray(c>>2,(c>>2)+o),de.HEAPU8.subarray(m,m+r)],[g,b,C,T,w]=f();g.set(i),b.set(a),C.set(n),T.set(s),w.set(t);let k=e(r,m,p,u,o,y,c),L=null;if(k){const e=de.getLayoutLinksTypes(),t=de.getLayoutLinksVerticesEndIndices(),i=de.getLayoutLinksVertices(),a=de.countLayoutLinksVertices();!o||e&&t?a&&!i?k=!1:L={types:new Uint8Array(de.HEAPU8.subarray(e,e+o)),vertexEndIndex:new Uint32Array(de.HEAPU32.subarray(t>>2,(t>>2)+o)),vertices:new Float64Array(de.HEAPF64.subarray(i>>3,(i>>3)+2*a))}:k=!1}const[M,E,I,x,_]=f();return i.set(M),a.set(E),n.set(I),s.set(x),t.set(_),{success:k,links:L}}finally{de._free(d),de.cleanupLayout()}}!function(e){e[e.None=0]="None",e[e.IsMovable=1]="IsMovable",e[e.IsGeographic=2]="IsGeographic",e[e.IsRoot=4]="IsRoot"}(ce||(ce={})),function(e){e[e.Regular=0]="Regular",e[e.Orthogonal=1]="Orthogonal",e[e.Curved=2]="Curved",e[e.Recursive=3]="Recursive"}(me||(me={}));var ge,be,Ce,Te,we,ke,Le,Me;!function(e){e.getMinIdealEdgeLength=function(){return de.getMinIdealEdgeLength()},e.apply=function(e,t,i,a,n,s=2,r=1,o=-1){return fe(((e,t,i,a,n,l,h)=>de.applyForceDirectedLayout(e,t,i,a,n,l,h,s,r,o)),e,t,i,a,n)}}(ge||(ge={})),function(e){e.apply=function(e,t,i,a,n,s=2,r=1,o=-1){return fe(((e,t,i,a,n,l,h)=>de.applyCommunityLayout(e,t,i,a,n,l,h,s,r,o)),e,t,i,a,n)}}(be||(be={})),function(e){e.apply=function(e,t,i,a,n){return fe(de.applySimpleLayout,e,t,i,a,n)}}(Ce||(Ce={})),function(e){e.apply=function(e,t,i,a,n){return fe(de.applyHierarchicalLayout,e,t,i,a,n)}}(Te||(Te={})),function(e){e.apply=function(e,t,i,a,n){return fe(de.applyRadialTreeLayout,e,t,i,a,n)}}(we||(we={})),function(e){e.apply=function(e,t,i,a,n){return fe(de.applySmartTreeLayout,e,t,i,a,n)}}(ke||(ke={})),function(e){e[e.Undirected=0]="Undirected",e[e.Directed=1]="Directed",e[e.Reversed=2]="Reversed"}(Le||(Le={})),function(e){e[e.ByCC_Raw=0]="ByCC_Raw",e[e.ByCC_NormalizeGlobally=1]="ByCC_NormalizeGlobally",e[e.ByCC_NormalizeByCC=2]="ByCC_NormalizeByCC"}(Me||(Me={}));var Ee=i(17176),Ie=i(92484),xe=i(67666);let _e=class extends((0,V.h)((0,X.M)(u.Z))){constructor(e){if(super(e),this.dataPreloadedInLocalCache=!1,this.defaultLinkChartConfig=null,this._currentLinkChartConfig={layoutMode:"RADIAL_TREE"},this._graphTypeLookup=new Map,this.dataManager=null,this.knowledgeGraph=null,this.layers=new n.Z,this.entityLinkChartDiagramLookup=new Map,this.relationshipLinkChartDiagramLookup=new Map,this.linkChartExtent=new A.Z({xmin:-1e-7,ymin:-1e-7,xmax:1e-7,ymax:1e-7}),this.linkChartGeohashLookup=new Map,this.memberEntityTypes=null,this.memberRelationshipTypes=null,this.sublayerIdsCache=new Map,this.tables=new n.Z,this.type="link-chart",this._originalInclusionList=e.inclusionModeDefinition,e.dataPreloadedInLocalCache&&!e.inclusionModeDefinition)throw new s.Z("knowledge-graph:linkchart-layer-constructor","If creating a link chart composite layer and configured that data is already loaded in the cache, you must specify an inclusion list so the Composite Layer knows what records belong to it")}normalizeCtorArgs(e){return{url:e.url,title:e.title,dataPreloadedInLocalCache:e.dataPreloadedInLocalCache,defaultLinkChartConfig:e.defaultLinkChartConfig}}_initializeLayerProperties(e){if(!this.title&&this.url){const e=this.url.split("/");this.title=e[e.length-2]}const t=new Set;let i=[],a=[];if(e.inclusionModeDefinition&&(!e.inclusionModeDefinition.namedTypeDefinitions||e.inclusionModeDefinition.namedTypeDefinitions.size<1))throw new s.Z("knowledge-graph:composite-layer-constructor","If an explicit inclusion definition is defined, at least one namedTypeDefinition must also be defined");e.knowledgeGraph.dataModel.entityTypes?.forEach((e=>{e.name&&this._graphTypeLookup.set(e.name,e)})),e.knowledgeGraph.dataModel.relationshipTypes?.forEach((e=>{e.name&&this._graphTypeLookup.set(e.name,e)})),e.inclusionModeDefinition?.generateAllSublayers?(i=e.knowledgeGraph.dataModel.entityTypes??[],a=e.knowledgeGraph.dataModel.relationshipTypes??[]):e.inclusionModeDefinition?.namedTypeDefinitions&&e.inclusionModeDefinition?.namedTypeDefinitions.size>0?e.inclusionModeDefinition?.namedTypeDefinitions.forEach(((n,s)=>{if(!this._graphTypeLookup.get(s))return r.Z.getLogger(this).warn(`A named type, ${s}, was in the inclusion list that wasn't in the data model and will be removed`),void e.inclusionModeDefinition?.namedTypeDefinitions.delete(s);this._graphTypeLookup.get(s)instanceof Ie.Z||"strictOrigin"in this._graphTypeLookup.get(s)?t.has(s)||(t.add(s),a.push(this._graphTypeLookup.get(s))):this._graphTypeLookup.get(s)instanceof Ee.Z||"properties"in this._graphTypeLookup.get(s)?t.has(s)||(t.add(s),i.push(this._graphTypeLookup.get(s))):(r.Z.getLogger(this).warn(`A named type, ${s}, was in the inclusion list that wasn't properly modeled and will be removed`),e.inclusionModeDefinition?.namedTypeDefinitions.delete(s))})):(i=e.knowledgeGraph.dataModel.entityTypes??[],a=e.knowledgeGraph.dataModel.relationshipTypes??[]);const n=new P({knowledgeGraph:e.knowledgeGraph,inclusionModeDefinition:e.inclusionModeDefinition});this.knowledgeGraph=e.knowledgeGraph,this.memberEntityTypes=i,this.memberRelationshipTypes=a,this.dataManager=n}load(e){return this.addResolvingPromise(new Promise((t=>{(0,M.fetchKnowledgeGraph)(this.url).then((i=>{if(this._initializeLayerProperties({knowledgeGraph:i,inclusionModeDefinition:this._originalInclusionList}),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.size||(this.dataManager.inclusionModeDefinition={generateAllSublayers:!1,namedTypeDefinitions:new Map},this.dataManager.knowledgeGraph.dataModel.entityTypes?.forEach((e=>{e.name&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.set(e.name,{useAllData:!0})})),this.dataManager.knowledgeGraph.dataModel.relationshipTypes?.forEach((e=>{e.name&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.set(e.name,{useAllData:!0})}))),this.dataPreloadedInLocalCache)this.loadLayerAssumingLocalCache(),this.dataManager.inclusionModeDefinition&&(this.dataManager.inclusionModeDefinition.generateAllSublayers=!1),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.forEach((e=>{e.useAllData=!1,e.members?.forEach((e=>{let t;t=e.linkChartLocation instanceof y.Z?e.linkChartLocation:e.linkChartLocation?(0,d.GH)(e.linkChartLocation):null,t&&2===t.coords.length&&0===t.lengths.length?(this.linkChartGeohashLookup.set(e.id,(0,p.fC)(t.coords[1],t.coords[0],O)),this.entityLinkChartDiagramLookup.set(e.id,t)):(this.linkChartGeohashLookup.set(e.id,""),this.relationshipLinkChartDiagramLookup.set(e.id,t))})),this.addResolvingPromise(this._initializeDiagram().then((async()=>{this.layers.forEach((async e=>{await e.refreshCachedQueryEngine()})),this.tables.forEach((async e=>{await e.refreshCachedQueryEngine()}))})))}));else{const t="GEOGRAPHIC"===this.defaultLinkChartConfig?.layoutMode;this.addResolvingPromise(this.dataManager.refreshCacheContent(void 0,!1,t,!0).then((async()=>{(0,o.k_)(e);const t=[],i=[];this.loadLayerAssumingLocalCache(),this.dataManager.inclusionModeDefinition&&(this.dataManager.inclusionModeDefinition.generateAllSublayers=!1,this.dataManager.inclusionModeDefinition.namedTypeDefinitions.forEach((e=>{e.useAllData=!1}))),await this._initializeDiagram(),this.layers.forEach((e=>{i.push(e.refreshCachedQueryEngine()),t.push(new Promise((t=>{e.on("layerview-create",(()=>{t(null)}))})))})),this.tables.forEach((e=>{i.push(e.refreshCachedQueryEngine())})),await Promise.all(i)})))}t(null)}))}))),Promise.resolve(this)}async addRecords(e,t){let i=[];t?.cascadeAddRelationshipEndNodes&&this.dataManager.knowledgeGraph.dataModel&&(i=await async function(e,t){const i=[],a=new Map,n=[];if(t.dataModel?.relationshipTypes)for(const e of t.dataModel.relationshipTypes)e.name&&a.set(e.name,[]);for(const t of e)a.has(t.typeName)&&a.get(t.typeName)?.push(t.id);for(const[e,s]of a){if(s.length<1)continue;const a=new E.Z({openCypherQuery:`MATCH (n)-[r:${e}]->(m) WHERE id(r) in $ids RETURN id(n), labels(n)[0], id(m), labels(m)[0]`,bindParameters:{ids:s}});n.push((0,M.executeQueryStreaming)(t,a).then((async e=>{const t=e.resultRowsStream.getReader();for(;;){const{done:e,value:a}=await t.read();if(e)break;for(const e of a)i.push({id:e[0],typeName:e[1]}),i.push({id:e[2],typeName:e[3]})}})))}return await Promise.all(n),i}(e,this.dataManager.knowledgeGraph));const a=e.concat(i).filter((e=>!this.sublayerIdsCache.get(e.typeName)?.has(e.id)));await this._handleNewRecords(a)}async removeRecords(e,{cascadeRemoveRelationships:t=!0,recalculateLayout:i=!1}={cascadeRemoveRelationships:!0,recalculateLayout:!1}){let a=[];for(const t of e)!1===this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(t.typeName)?.useAllData&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(t.typeName)?.members?.has(t.id)&&a.push(t);if(t){const e=new Set,t=[];for(const t of a)if(this.dataManager.nodeConnectionsLookup.has(t.id))for(const i of this.dataManager.nodeConnectionsLookup.get(t.id))e.add(i);for(const i of e)if(this.dataManager.memberIdTypeLookup.has(i))for(const e of this.dataManager.memberIdTypeLookup.get(i))this.dataManager.relationshipTypeNames.has(e)&&t.push({id:i,typeName:e});a=a.concat(t)}this.dataManager.removeFromLayer(a);for(const e of a)this.sublayerIdsCache.get(e.typeName)?.delete(e.id),this.dataManager.relationshipTypeNames.has(e.typeName)?this.relationshipLinkChartDiagramLookup.delete(e.id):this.entityLinkChartDiagramLookup.delete(e.id);i&&await this.calculateLinkChartLayout(this._currentLinkChartConfig.layoutMode,{});const n=[];return this.layers.forEach((e=>{n.push(e.refreshCachedQueryEngine())})),await Promise.all(n),this._refreshNamedTypes(),a}async expand(e,t){const i=await this.dataManager.getConnectedRecordIds(e,t),a=i.filter((e=>!this.sublayerIdsCache.get(e.typeName)?.has(e.id)));return await this._handleNewRecords(i),{records:a}}loadLayerAssumingLocalCache(){this.memberRelationshipTypes.forEach((e=>{const t=new he({objectType:e,parentCompositeLayer:this,graphType:"relationship",title:e.name});t.geometryType?this.layers.push(t):this.tables.push(t),this.dataManager.sublayerCaches.has(e.name)||this.dataManager.sublayerCaches.set(e.name,new Map)})),this.memberEntityTypes.forEach((e=>{const t=new he({objectType:e,parentCompositeLayer:this,graphType:"entity",title:e.name});t.geometryType?this.layers.push(t):this.tables.push(t),this.dataManager.sublayerCaches.has(e.name)||this.dataManager.sublayerCaches.set(e.name,new Map)})),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.forEach(((e,t)=>{const i=((e,t,i)=>(e.has(t)||e.set(t,i()),e.get(t)))(this.sublayerIdsCache,t,(()=>new Set));e.members?.forEach((e=>{if(i.add(e.id),e.linkChartLocation)if(e.linkChartLocation instanceof y.Z)this.dataManager.relationshipTypeNames.has(t)?this.relationshipLinkChartDiagramLookup.set(e.id,e.linkChartLocation):this.entityLinkChartDiagramLookup.set(e.id,e.linkChartLocation),2===e.linkChartLocation.coords.length&&0===e.linkChartLocation.lengths.length?this.linkChartGeohashLookup.set(e.id,(0,p.fC)(e.linkChartLocation.coords[1],e.linkChartLocation.coords[0],O)):this.linkChartGeohashLookup.set(e.id,"");else{const i=(0,d.GH)(e.linkChartLocation);this.dataManager.relationshipTypeNames.has(t)?this.relationshipLinkChartDiagramLookup.set(e.id,e.linkChartLocation?i:null):this.entityLinkChartDiagramLookup.set(e.id,e.linkChartLocation?i:null),"x"in e.linkChartLocation&&"y"in e.linkChartLocation?this.linkChartGeohashLookup.set(e.id,(0,p.fC)(e.linkChartLocation.x,e.linkChartLocation.y,O)):this.linkChartGeohashLookup.set(e.id,"")}}))}))}async calculateLinkChartLayout(e="RADIAL_TREE",t){const i=[],a=[],n=[];this.dataManager.sublayerCaches.forEach(((e,t)=>{this.dataManager.entityTypeNames.has(t)?e.forEach((e=>{i.push({typeName:t,feature:e})})):this.dataManager.relationshipTypeNames.has(t)&&e.forEach((e=>{a.push({typeName:t,feature:e})}))})),this.entityLinkChartDiagramLookup=new Map,this.relationshipLinkChartDiagramLookup=new Map;const o=new Map,l=new Map,h=new Map,u=new Map,y=new Uint8Array(i.length),c=new Float64Array(i.length),m=new Float64Array(i.length),f=new Uint32Array(a.length),g=new Uint32Array(a.length),b=[],C=new A.Z({xmin:-1e-7,ymin:-1e-7,xmax:1e-7,ymax:1e-7});let T,w="FORCE_DIRECTED",k=0,L=0;switch(w="GEOGRAPHIC"===e?"FORCE_DIRECTED":e,w){case"FORCE_DIRECTED":T=ge.apply;break;case"COMMUNITY":T=be.apply;break;case"HIERARCHICAL":T=Te.apply;break;case"RADIAL_TREE":T=we.apply;break;case"SMART_TREE":T=ke.apply;break;default:T=Ce.apply}i.forEach((({typeName:i,feature:a})=>{if(t?.lockedNodeLocations?.has(a.attributes[G])){"GEOGRAPHIC"===e&&this.dataManager.geographicLookup.has(i)?y[k]=ce.IsGeographic:y[k]=ce.None;const n=t.lockedNodeLocations.get(a.attributes[G]);c[k]=n.x,m[k]=n.y}else if("GEOGRAPHIC"===e&&this.dataManager.geographicLookup.has(i)){y[k]=ce.IsGeographic;let e=null;const t=a.attributes[this.dataManager.geographicLookup.get(i).name],n=this.dataManager.geographicLookup.get(i)?.geometryType;switch(n){case"esriGeometryPoint":c[k]=t?.x,m[k]=t?.y;break;case"esriGeometryPolygon":e=t?.centroid,null!=e?.x&&null!=e?.y?(c[k]=e.x,m[k]=e.y):y[k]=ce.IsMovable;break;case"esriGeometryPolyline":case"esriGeometryMultipoint":e=t?.extent?.center,null!=e?.x&&null!=e?.y?(c[k]=e.x,m[k]=e.y):y[k]=ce.IsMovable;break;default:y[k]=ce.IsMovable}(null==c[k]||null==m[k]||Number.isNaN(c[k])||Number.isNaN(m[k]))&&(y[k]=ce.IsMovable,c[k]=0,m[k]=0)}else y[k]=ce.IsMovable,c[k]=0,m[k]=0;u.set(a.attributes[G],k),b[k]={feature:a,typeName:i},k++}));let M=!1;const E=new Map;a.forEach((e=>{const t=e.feature.attributes[Z],i=e.feature.attributes[j],a=u.get(t),s=u.get(i);if(void 0!==a&&void 0!==s){const r=t+"-"+i,o=E.get(r),l=o?.has(e.typeName);l||(f[L]=a,g[L]=s,void 0===o?E.set(r,new Map([[e.typeName,L]])):o.set(e.typeName,L),L++),n.push(e)}else M=!0,this.relationshipLinkChartDiagramLookup.set(t,null),this.linkChartGeohashLookup.set(t,null)})),M&&r.Z.getLogger(this).warn("A relationship is a member of this layer that has either origin or destination entity nodes that are not members. The diagram geometry will be set to null"),await ye();const{success:I,links:x}=T(y,c,m,f.subarray(0,L),g.subarray(0,L));if(!I)throw new s.Z("knowledge-graph:layout-failed","Attempting to arrange the records in the specified layout failed");for(let e=0;e84.9999?m[e]=84.9999:m[e]<-84.9999&&(m[e]=-84.9999),c[e]>179.9999?c[e]=179.9999:c[e]<-179.9999&&(c[e]=-179.9999),b[e].feature.attributes[F]=new xe.Z(c[e],m[e]),o.has(b[e].typeName)){const t=o.get(b[e].typeName);t?.set(b[e].feature.attributes[G],b[e].feature)}else{const t=new Map;t.set(b[e].feature.attributes[G],b[e].feature),o.set(b[e].typeName,t)}h.set(b[e].feature.attributes[G],b[e].feature);const t=(0,d.GH)(b[e].feature.attributes[F]);this.entityLinkChartDiagramLookup.set(b[e].feature.attributes[G],b[e].feature.attributes[F]?t:null),this.linkChartGeohashLookup.set(b[e].feature.attributes[G],(0,p.fC)(b[e].feature.attributes[F].y,b[e].feature.attributes[F].x,O)),b[e].feature.attributes[F].xC.xmax&&(C.xmax=b[e].feature.attributes[F].x),b[e].feature.attributes[F].yC.ymax&&(C.ymax=b[e].feature.attributes[F].y)}if(this.linkChartExtent.xmin=C.xmin,this.linkChartExtent.xmax=C.xmax,this.linkChartExtent.ymin=C.ymin,this.linkChartExtent.ymax=C.ymax,!x)throw new s.Z("knowledge-graph:layout-failed","Attempting to retrieve link geometry from diagram engine failed");const _=new Map,D=new Map,N=new Map,v=new Set;for(let e=0;e85.5?t[e][1]=85.5:t[e][1]<-85.5&&(t[e][1]=-85.5),t[e][0]>179.9999?t[e][0]=179.9999:t[e][0]<-179.9999&&(t[e][0]=-179.9999);_.has(o)?_.get(o).push(t):_.set(o,[t])}const c=_.get(o);D.has(o)||(D.set(o,new Map),N.set(o,new Map));const m=D.get(o),f=N.get(o);m.has(i.typeName)||(m.set(i.typeName,c.shift()),f.set(i.typeName,0));const g=m.get(i.typeName);f.set(i.typeName,f.get(i.typeName)+1);const C=new re.Z({paths:g});if(i.feature.attributes[F]=C,l.has(i.typeName)){const e=l.get(i.typeName);e?.set(i.feature.attributes[G],i.feature)}else{const e=new Map;e.set(i.feature.attributes[G],i.feature),l.set(i.typeName,e)}h.set(i.feature.attributes[G],i.feature);const T=(0,d.GH)(i.feature.attributes[F]);this.relationshipLinkChartDiagramLookup.set(i.feature.attributes[G],i.feature.attributes[F]?T:null),this.linkChartGeohashLookup.set(i.feature.attributes[G],"")}for(const e of n)e.feature.attributes[q]=N.get(e.feature.attributes[Z]+"-"+e.feature.attributes[j])?.get(e.typeName)??null;return this._currentLinkChartConfig={layoutMode:e},{nodes:o,links:l,idMap:h}}async applyNewLinkChartLayout(e="RADIAL_TREE",t){const i=[];await this.calculateLinkChartLayout(e,t),this.layers.forEach((e=>{i.push(e.refreshCachedQueryEngine())})),await Promise.all(i),this._refreshNamedTypes()}getCurrentNodeLocations(){const e=new Map;return this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach((t=>{t?.members?.forEach((t=>{const i=t.linkChartLocation;let a;const n=t.id;i&&(a="x"in i?{x:i.x,y:i.y}:{x:i.coords[0],y:i.coords[1]},e.set(n,new xe.Z({x:a.x,y:a.y})))}))})),e}async synchronizeInclusionListWithCache(){return new Promise((e=>{this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.forEach(((e,t)=>{if(e.useAllData=!1,e.members&&e.members.size>0){if(!this.dataManager.sublayerCaches.get(t))return;const i=new Set(Array.from(this.dataManager.sublayerCaches.get(t).keys()));Array.from(e.members.keys()).filter((e=>!i.has(e))).forEach((t=>{e.members?.delete(t)}))}})),e()}))}async refreshLinkChartCache(e){await this.dataManager.refreshCacheContent(e);const t=[];this.layers.forEach((e=>{t.push(e.refreshCachedQueryEngine())})),await Promise.all(t),this._refreshNamedTypes()}async _handleNewRecords(e){const t=[];this.dataManager.addToLayer(e);for(const i of e)this.sublayerIdsCache.has(i.typeName)||(this.sublayerIdsCache.set(i.typeName,new Set),t.push(i.typeName)),this.sublayerIdsCache.get(i.typeName).add(i.id);for(const e of t)if(this._graphTypeLookup.has(e)){const t=this._graphTypeLookup.get(e),i="endPoints"in t?"relationship":"entity",a=new he({objectType:t,parentCompositeLayer:this,graphType:i,title:e});"entity"===i?this.dataManager.entityTypeNames.add(e):this.dataManager.relationshipTypeNames.add(e),a.geometryType?this.layers.push(a):this.tables.push(a),this.dataManager.sublayerCaches.set(e,new Map)}await this.dataManager.refreshCacheContent(e.map((e=>e.id))),await this.applyNewLinkChartLayout(this._currentLinkChartConfig.layoutMode)}async _initializeDiagram(){this.defaultLinkChartConfig?this.defaultLinkChartConfig.doNotRecalculateLayout?(this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach(((e,t)=>{e?.members?.forEach((e=>{const i=e.linkChartLocation;let a;const n=e.id;if(!i)return;a="x"in i?{x:i.x,y:i.y}:{x:i.coords[0],y:i.coords[1]};const s=(0,d.GH)(a);this.dataManager.relationshipTypeNames.has(t)?this.relationshipLinkChartDiagramLookup.set(n,s):this.entityLinkChartDiagramLookup.set(n,s),this.linkChartGeohashLookup.set(n,(0,p.fC)(a.x,a.y,O)),this.linkChartExtent.xmin>a.x&&(this.linkChartExtent.xmin=a.x),this.linkChartExtent.xmaxa.y&&(this.linkChartExtent.ymin=a.y),this.linkChartExtent.ymax{e.name&&this.dataManager.sublayerCaches.get(e.name)?.forEach((e=>{const t=this.relationshipLinkChartDiagramLookup.get(e.attributes[Z]),i=this.relationshipLinkChartDiagramLookup.get(e.attributes[j]);if(t&&i){const a=(0,d.GH)(new re.Z({paths:[[t.coords[0],t.coords[1]],[i.coords[0],i.coords[1]]]}));this.relationshipLinkChartDiagramLookup.set(e.attributes[G],a)}else this.relationshipLinkChartDiagramLookup.set(e.attributes[G],null);this.linkChartGeohashLookup.set(e.attributes[G],"")}))}))):await this.calculateLinkChartLayout(this.defaultLinkChartConfig.layoutMode,{lockedNodeLocations:this.getCurrentNodeLocations()}):await this.calculateLinkChartLayout("RADIAL_TREE",{lockedNodeLocations:this.getCurrentNodeLocations()})}_refreshNamedTypes(){for(const e of this.layers)e.emit("refresh",{dataChanged:!0});for(const e of this.tables)e.emit("refresh",{dataChanged:!0})}};(0,a._)([(0,l.Cb)()],_e.prototype,"dataPreloadedInLocalCache",void 0),(0,a._)([(0,l.Cb)()],_e.prototype,"defaultLinkChartConfig",void 0),(0,a._)([(0,l.Cb)()],_e.prototype,"dataManager",void 0),(0,a._)([(0,l.Cb)()],_e.prototype,"knowledgeGraph",void 0),(0,a._)([(0,l.Cb)()],_e.prototype,"layers",void 0),(0,a._)([(0,l.Cb)()],_e.prototype,"entityLinkChartDiagramLookup",void 0),(0,a._)([(0,l.Cb)()],_e.prototype,"relationshipLinkChartDiagramLookup",void 0),(0,a._)([(0,l.Cb)()],_e.prototype,"linkChartExtent",void 0),(0,a._)([(0,l.Cb)()],_e.prototype,"linkChartGeohashLookup",void 0),(0,a._)([(0,l.Cb)()],_e.prototype,"memberEntityTypes",void 0),(0,a._)([(0,l.Cb)()],_e.prototype,"memberRelationshipTypes",void 0),(0,a._)([(0,l.Cb)()],_e.prototype,"sublayerIdsCache",void 0),(0,a._)([(0,l.Cb)()],_e.prototype,"tables",void 0),(0,a._)([(0,l.Cb)({json:{read:!1}})],_e.prototype,"type",void 0),_e=(0,a._)([(0,h.j)("esri.layers.LinkChartLayer")],_e);const De=_e},69400:function(e,t,i){i.d(t,{Z:function(){return c}});var a=i(7753),n=i(70375),s=i(31355),r=i(13802),o=i(37116),l=i(24568),h=i(12065),p=i(117),u=i(28098),d=i(12102);const y=(0,o.Ue)();class c{constructor(e){this.geometryInfo=e,this._boundsStore=new p.H,this._featuresById=new Map,this._markedIds=new Set,this.events=new s.Z,this.featureAdapter=d.n}get geometryType(){return this.geometryInfo.geometryType}get hasM(){return this.geometryInfo.hasM}get hasZ(){return this.geometryInfo.hasZ}get numFeatures(){return this._featuresById.size}get fullBounds(){return this._boundsStore.fullBounds}get storeStatistics(){let e=0;return this._featuresById.forEach((t=>{null!=t.geometry&&t.geometry.coords&&(e+=t.geometry.coords.length)})),{featureCount:this._featuresById.size,vertexCount:e/(this.hasZ?this.hasM?4:3:this.hasM?3:2)}}getFullExtent(e){if(null==this.fullBounds)return null;const[t,i,a,n]=this.fullBounds;return{xmin:t,ymin:i,xmax:a,ymax:n,spatialReference:(0,u.S2)(e)}}add(e){this._add(e),this._emitChanged()}addMany(e){for(const t of e)this._add(t);this._emitChanged()}upsertMany(e){const t=e.map((e=>this._upsert(e)));return this._emitChanged(),t.filter(a.pC)}clear(){this._featuresById.clear(),this._boundsStore.clear(),this._emitChanged()}removeById(e){const t=this._featuresById.get(e);return t?(this._remove(t),this._emitChanged(),t):null}removeManyById(e){this._boundsStore.invalidateIndex();for(const t of e){const e=this._featuresById.get(t);e&&this._remove(e)}this._emitChanged()}forEachBounds(e,t){for(const i of e){const e=this._boundsStore.get(i.objectId);e&&t((0,o.JR)(y,e))}}getFeature(e){return this._featuresById.get(e)}has(e){return this._featuresById.has(e)}forEach(e){this._featuresById.forEach((t=>e(t)))}forEachInBounds(e,t){this._boundsStore.forEachInBounds(e,(e=>{t(this._featuresById.get(e))}))}startMarkingUsedFeatures(){this._boundsStore.invalidateIndex(),this._markedIds.clear()}sweep(){let e=!1;this._featuresById.forEach(((t,i)=>{this._markedIds.has(i)||(e=!0,this._remove(t))})),this._markedIds.clear(),e&&this._emitChanged()}_emitChanged(){this.events.emit("changed",void 0)}_add(e){if(!e)return;const t=e.objectId;if(null==t)return void r.Z.getLogger("esri.layers.graphics.data.FeatureStore").error(new n.Z("featurestore:invalid-feature","feature id is missing",{feature:e}));const i=this._featuresById.get(t);let a;if(this._markedIds.add(t),i?(e.displayId=i.displayId,a=this._boundsStore.get(t),this._boundsStore.delete(t)):null!=this.onFeatureAdd&&this.onFeatureAdd(e),!e.geometry?.coords?.length)return this._boundsStore.set(t,null),void this._featuresById.set(t,e);a=(0,h.$)(null!=a?a:(0,l.Ue)(),e.geometry,this.geometryInfo.hasZ,this.geometryInfo.hasM),null!=a&&this._boundsStore.set(t,a),this._featuresById.set(t,e)}_upsert(e){const t=e?.objectId;if(null==t)return r.Z.getLogger("esri.layers.graphics.data.FeatureStore").error(new n.Z("featurestore:invalid-feature","feature id is missing",{feature:e})),null;const i=this._featuresById.get(t);if(!i)return this._add(e),e;this._markedIds.add(t);const{geometry:a,attributes:s}=e;for(const e in s)i.attributes[e]=s[e];return a&&(i.geometry=a,this._boundsStore.set(t,(0,h.$)((0,l.Ue)(),a,this.geometryInfo.hasZ,this.geometryInfo.hasM)??null)),i}_remove(e){null!=this.onFeatureRemove&&this.onFeatureRemove(e);const t=e.objectId;return this._markedIds.delete(t),this._boundsStore.delete(t),this._featuresById.delete(t),e}}},40400:function(e,t,i){i.d(t,{Dm:function(){return p},Hq:function(){return u},MS:function(){return d},bU:function(){return o}});var a=i(39994),n=i(67134),s=i(10287),r=i(86094);function o(e){return{renderer:{type:"simple",symbol:"esriGeometryPoint"===e||"esriGeometryMultipoint"===e?r.I4:"esriGeometryPolyline"===e?r.ET:r.lF}}}const l=/^[_$a-zA-Z][_$a-zA-Z0-9]*$/;let h=1;function p(e,t){if((0,a.Z)("esri-csp-restrictions"))return()=>({[t]:null,...e});try{let i=`this.${t} = null;`;for(const t in e)i+=`this${l.test(t)?`.${t}`:`["${t}"]`} = ${JSON.stringify(e[t])};`;const a=new Function(`\n return class AttributesClass$${h++} {\n constructor() {\n ${i};\n }\n }\n `)();return()=>new a}catch(i){return()=>({[t]:null,...e})}}function u(e={}){return[{name:"New Feature",description:"",prototype:{attributes:(0,n.d9)(e)}}]}function d(e,t){return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:e},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:t,supportsDelete:t,supportsEditing:t,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:t,supportsExceedsLimitStatistics:!0,supportsAsyncConvert3D:!1},query:s.g,queryRelated:{supportsCount:!0,supportsOrderBy:!0,supportsPagination:!0,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsGeometryUpdate:t,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}},99606:function(e,t,i){i.d(t,{Z:function(){return h}});var a=i(36663),n=(i(91957),i(81977)),s=(i(39994),i(13802),i(4157),i(40266)),r=i(63055),o=i(67666);let l=class extends r.Z{constructor(e){super(e),this.layoutGeometry=null}};(0,a._)([(0,n.Cb)({type:o.Z,json:{write:!0}})],l.prototype,"layoutGeometry",void 0),l=(0,a._)([(0,s.j)("esri.rest.knowledgeGraph.Entity")],l);const h=l},63055:function(e,t,i){i.d(t,{Z:function(){return l}});var a=i(36663),n=i(81977),s=(i(39994),i(13802),i(4157),i(40266)),r=i(60915);let o=class extends r.Z{constructor(e){super(e),this.typeName=null,this.id=null}};(0,a._)([(0,n.Cb)({type:String,json:{write:!0}})],o.prototype,"typeName",void 0),(0,a._)([(0,n.Cb)({type:String,json:{write:!0}})],o.prototype,"id",void 0),o=(0,a._)([(0,s.j)("esri.rest.knowledgeGraph.GraphNamedObject")],o);const l=o},60915:function(e,t,i){i.d(t,{Z:function(){return l}});var a=i(36663),n=i(82064),s=i(81977),r=(i(39994),i(13802),i(4157),i(40266));let o=class extends n.wq{constructor(e){super(e),this.properties=null}};(0,a._)([(0,s.Cb)({json:{write:!0}})],o.prototype,"properties",void 0),o=(0,a._)([(0,r.j)("esri.rest.knowledgeGraph.GraphObject")],o);const l=o},76512:function(e,t,i){i.d(t,{Z:function(){return p}});var a=i(36663),n=i(81977),s=(i(39994),i(13802),i(4157),i(40266)),r=i(74396);let o=class extends r.Z{constructor(e){super(e),this.openCypherQuery=""}};(0,a._)([(0,n.Cb)()],o.prototype,"openCypherQuery",void 0),o=(0,a._)([(0,s.j)("esri.rest.knowledgeGraph.GraphQuery")],o);const l=o;let h=class extends l{constructor(e){super(e),this.bindParameters=null,this.bindGeometryQuantizationParameters=null,this.outputQuantizationParameters=null,this.outputSpatialReference=null}};(0,a._)([(0,n.Cb)()],h.prototype,"bindParameters",void 0),(0,a._)([(0,n.Cb)()],h.prototype,"bindGeometryQuantizationParameters",void 0),(0,a._)([(0,n.Cb)()],h.prototype,"outputQuantizationParameters",void 0),(0,a._)([(0,n.Cb)()],h.prototype,"outputSpatialReference",void 0),h=(0,a._)([(0,s.j)("esri.rest.knowledgeGraph.GraphQueryStreaming")],h);const p=h},29197:function(e,t,i){i.d(t,{Z:function(){return o}});var a=i(36663),n=(i(13802),i(39994),i(4157),i(70375),i(40266)),s=i(60915);let r=class extends s.Z{constructor(e){super(e)}};r=(0,a._)([(0,n.j)("esri.rest.knowledgeGraph.ObjectValue")],r);const o=r},78755:function(e,t,i){i.d(t,{Z:function(){return h}});var a=i(36663),n=i(82064),s=i(81977),r=(i(39994),i(13802),i(4157),i(40266)),o=i(60915);let l=class extends n.wq{constructor(e){super(e),this.path=null}};(0,a._)([(0,s.Cb)({type:[o.Z],json:{write:!0}})],l.prototype,"path",void 0),l=(0,a._)([(0,r.j)("esri.rest.knowledgeGraph.Path")],l);const h=l},70206:function(e,t,i){i.d(t,{Z:function(){return h}});var a=i(36663),n=(i(91957),i(81977)),s=(i(39994),i(13802),i(4157),i(40266)),r=i(63055),o=i(90819);let l=class extends r.Z{constructor(e){super(e),this.originId=null,this.destinationId=null,this.layoutGeometry=null}};(0,a._)([(0,n.Cb)({type:String,json:{write:!0}})],l.prototype,"originId",void 0),(0,a._)([(0,n.Cb)({type:String,json:{write:!0}})],l.prototype,"destinationId",void 0),(0,a._)([(0,n.Cb)({type:o.Z,json:{write:!0}})],l.prototype,"layoutGeometry",void 0),l=(0,a._)([(0,s.j)("esri.rest.Relationship.Relationship")],l);const h=l}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9725.fdf68bdcc8b9339b7200.js b/docs/sentinel1-explorer/9725.fdf68bdcc8b9339b7200.js new file mode 100644 index 00000000..fb57f615 --- /dev/null +++ b/docs/sentinel1-explorer/9725.fdf68bdcc8b9339b7200.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9725],{83270:function(t,e,n){var i,r,o,a,s,u,c,l,p,f,N,g,d,m,S;n.d(e,{Em:function(){return h},Nl:function(){return S},Q3:function(){return b}}),function(t){t.U8="U8",t.I8="I8",t.U16="U16",t.I16="I16",t.U32="U32",t.I32="I32",t.F32="F32",t.F64="F64",t.Utf8String="Utf8String",t.NotSet="NotSet"}(i||(i={})),function(t){t.Png="Png",t.Jpeg="Jpeg",t.Dds="Dds",t.Raw="Raw",t.Dxt1="Dxt1",t.Dxt5="Dxt5",t.Etc2="Etc2",t.Astc="Astc",t.Pvrtc="Pvrtc",t.NotSet="NotSet"}(r||(r={})),function(t){t.Rgb8="Rgb8",t.Rgba8="Rgba8",t.R8="R8",t.Bgr8="Bgr8",t.Bgra8="Bgra8",t.Rg8="Rg8",t.NotSet="NotSet"}(o||(o={})),function(t){t.Position="Position",t.Normal="Normal",t.TexCoord="TexCoord",t.Color="Color",t.Tangent="Tangent",t.FeatureIndex="FeatureIndex",t.UvRegion="UvRegion",t.NotSet="NotSet"}(a||(a={})),function(t){t.Opaque="Opaque",t.Mask="Mask",t.Blend="Blend"}(s||(s={})),function(t){t.None="None",t.Mask="Mask",t.Alpha="Alpha",t.PreMultAlpha="PreMultAlpha",t.NotSet="NotSet"}(u||(u={})),function(t){t.Points="Points",t.Lines="Lines",t.LineStrip="LineStrip",t.Triangles="Triangles",t.TriangleStrip="TriangleStrip",t.NotSet="NotSet"}(c||(c={})),function(t){t.None="None",t.WrapXBit="WrapXBit",t.WrapYBit="WrapYBit",t.WrapXy="WrapXy",t.NotSet="NotSet"}(l||(l={})),function(t){t.Linear="Linear",t.Nearest="Nearest",t.NotSet="NotSet"}(p||(p={})),function(t){t.Linear="Linear",t.Nearest="Nearest",t.NearestMipmapNearest="NearestMipmapNearest",t.LinearMipmapNearest="LinearMipmapNearest",t.NearestMipmapLinear="NearestMipmapLinear",t.LinearMipmapLinear="LinearMipmapLinear",t.NotSet="NotSet"}(f||(f={})),function(t){t.FeatureId="FeatureId",t.GlobalUid="GlobalUid",t.UnspecifiedDateTime="UnspecifiedDateTime",t.EcmaIso8601DateTime="EcmaIso8601DateTime",t.EcmaIso8601DateOnly="EcmaIso8601DateOnly",t.TimeOnly="TimeOnly",t.TimeStamp="TimeStamp",t.ColorRgb="ColorRgb",t.ColorRgba="ColorRgba",t.Unrecognized="Unrecognized",t.NotSet="NotSet"}(N||(N={})),function(t){t.Texture="Texture",t.VertexAtrb="VertexAtrb",t.Implicit="Implicit",t.NotSet="NotSet"}(g||(g={})),function(t){t.Front="Front",t.Back="Back",t.None="None",t.NotSet="NotSet"}(d||(d={})),function(t){t.Pbr="Pbr",t.Unlit="Unlit"}(m||(m={})),function(t){t[t.Succeeded=0]="Succeeded",t[t.Failed=1]="Failed",t[t.MissingInputs=2]="MissingInputs"}(S||(S={}));const b=-1,h=-2},75582:function(t,e,n){n.d(e,{J:function(){return o},O:function(){return r}});var i=n(36567);function r(){return new Promise((t=>n.e(3295).then(n.bind(n,43295)).then((t=>t.l)).then((({default:e})=>{const n=e({locateFile:a,onRuntimeInitialized:()=>t(n)})})))).catch((t=>{throw t}))}function o(){return new Promise((t=>n.e(829).then(n.bind(n,10829)).then((t=>t.l)).then((({default:e})=>{const n=e({locateFile:a,onRuntimeInitialized:()=>t(n)})})))).catch((t=>{throw t}))}function a(t){return(0,i.V)(`esri/libs/lyr3d/${t}`)}},89725:function(t,e,n){n.r(e),n.d(e,{destroyWasm:function(){return u},initialize:function(){return c},process:function(){return s}});var i=n(83270),r=n(75582);let o,a;async function s(t){if(await c(),t.inputs.length<1)return{result:{status:i.Nl.Failed,error:"",jobDescJson:"",data:new Uint8Array(0),missingInputUrls:[]},transferList:[]};const e={ptrs:[],sizes:[]};for(const n of t.inputs){const t=a._malloc(n.byteLength);new Uint8Array(a.HEAPU8.buffer,t,n.byteLength).set(new Uint8Array(n)),e.ptrs.push(t),e.sizes.push(n.byteLength)}const n=a.process(t.jobDescJson,e,t.isMissingResourceCase),r=n.status===i.Nl.Succeeded&&n.data,o=n.status===i.Nl.MissingInputs&&n.missingInputUrls.length>0;if(r){const t=n.data.slice();n.data=t}else o&&(n.jobDescJson=n.jobDescJson.slice(0),n.originalInputs=t.inputs);for(let t=0;t{a=t,a.initialize_lyr3d_worker_wasm(),o=null}))),o)}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9731.da3cf09cb82545b98992.js b/docs/sentinel1-explorer/9731.da3cf09cb82545b98992.js new file mode 100644 index 00000000..aa1997f4 --- /dev/null +++ b/docs/sentinel1-explorer/9731.da3cf09cb82545b98992.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9731],{59731:function(t,e,o){o.r(e),o.d(e,{default:function(){return y}});var n,s=o(36663),i=o(82064),r=o(81977),a=o(7283),c=(o(4157),o(39994),o(40266)),p=o(91772),u=o(14685);let m=n=class extends i.wq{static from(t){return(0,a.TJ)(n,t)}constructor(t){super(t),this.returnAttachmentAssociations=!1,this.returnConnectivityAssociations=!1,this.returnContainmentAssociations=!1,this.extent=null,this.maxGeometryCount=null,this.outSpatialReference=null,this.gdbVersion=null,this.moment=null}};(0,s._)([(0,r.Cb)({type:Boolean,json:{read:{source:"attachmentAssociations"},write:{target:"attachmentAssociations"}}})],m.prototype,"returnAttachmentAssociations",void 0),(0,s._)([(0,r.Cb)({type:Boolean,json:{read:{source:"connectivityAssociations"},write:{target:"connectivityAssociations"}}})],m.prototype,"returnConnectivityAssociations",void 0),(0,s._)([(0,r.Cb)({type:Boolean,json:{read:{source:"containmentAssociations"},write:{target:"containmentAssociations"}}})],m.prototype,"returnContainmentAssociations",void 0),(0,s._)([(0,r.Cb)({type:p.Z,json:{write:!0}})],m.prototype,"extent",void 0),(0,s._)([(0,r.Cb)({type:Number,json:{write:!0}})],m.prototype,"maxGeometryCount",void 0),(0,s._)([(0,r.Cb)({type:u.Z,json:{read:{source:"outSR"},write:{target:"outSR"}}})],m.prototype,"outSpatialReference",void 0),(0,s._)([(0,r.Cb)({type:String,json:{write:!0}})],m.prototype,"gdbVersion",void 0),(0,s._)([(0,r.Cb)({type:Date,json:{type:Number,write:{writer:(t,e)=>{e.moment=t?.getTime()}}}})],m.prototype,"moment",void 0),m=n=(0,s._)([(0,c.j)("esri.rest.networks.support.SynthesizeAssociationGeometriesParameters")],m);const y=m}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9758.4ac458ba7cd9014c4e41.js b/docs/sentinel1-explorer/9758.4ac458ba7cd9014c4e41.js new file mode 100644 index 00000000..ebcc931c --- /dev/null +++ b/docs/sentinel1-explorer/9758.4ac458ba7cd9014c4e41.js @@ -0,0 +1,2 @@ +/*! For license information please see 9758.4ac458ba7cd9014c4e41.js.LICENSE.txt */ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9758],{79758:function(e,t,i){i.r(t),i.d(t,{CalciteModal:function(){return K},defineCustomElement:function(){return N}});var a=i(77210),o=i(14974),n=i(79145),s=i(38652),l=i(16265),r=i(85545),c=i(18811),d=i(19417),h=i(53801),m=i(90326),p=i(44586),u=i(92708),v=i(45067);const f="modal",g="title",b="header",k="footer",x="scrim",z="back",y="close",w="secondary",C="primary",_="container",E="container--open",M="content",O="content--no-footer",S="content-bottom",L="content-top",B="slotted-in-shell",T="modal--opening-idle",D="modal--opening-active",F="modal--closing-idle",H="modal--closing-active",$="x",W="content",I="content-bottom",V="content-top",P="header",j="back",A="secondary",R="primary";let G=0,q="";const U=(0,a.GH)(class extends a.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.calciteModalBeforeClose=(0,a.yM)(this,"calciteModalBeforeClose",6),this.calciteModalClose=(0,a.yM)(this,"calciteModalClose",6),this.calciteModalBeforeOpen=(0,a.yM)(this,"calciteModalBeforeOpen",6),this.calciteModalOpen=(0,a.yM)(this,"calciteModalOpen",6),this.ignoreOpenChange=!1,this.mutationObserver=(0,r.c)("mutation",(()=>this.handleMutationObserver())),this.cssVarObserver=(0,r.c)("mutation",(()=>{this.updateSizeCssVars()})),this.openTransitionProp="opacity",this.setTransitionEl=e=>{this.transitionEl=e},this.openEnd=()=>{this.setFocus(),this.el.removeEventListener("calciteModalOpen",this.openEnd)},this.handleCloseClick=()=>{this.open=!1},this.handleOutsideClose=()=>{this.outsideCloseDisabled||(this.open=!1)},this.closeModal=async()=>{if(this.beforeClose)try{await this.beforeClose(this.el)}catch(e){return void requestAnimationFrame((()=>{this.ignoreOpenChange=!0,this.open=!0,this.ignoreOpenChange=!1}))}G--,this.opened=!1,this.removeOverflowHiddenClass()},this.handleMutationObserver=()=>{this.updateFooterVisibility(),this.updateFocusTrapElements()},this.updateFooterVisibility=()=>{this.hasFooter=!!(0,n.g)(this.el,[j,R,A])},this.updateSizeCssVars=()=>{this.cssWidth=getComputedStyle(this.el).getPropertyValue("--calcite-modal-width"),this.cssHeight=getComputedStyle(this.el).getPropertyValue("--calcite-modal-height")},this.contentTopSlotChangeHandler=e=>{this.hasContentTop=(0,n.d)(e)},this.contentBottomSlotChangeHandler=e=>{this.hasContentBottom=(0,n.d)(e)},this.open=!1,this.opened=!1,this.beforeClose=void 0,this.closeButtonDisabled=!1,this.focusTrapDisabled=!1,this.outsideCloseDisabled=!1,this.docked=void 0,this.escapeDisabled=!1,this.scale="m",this.widthScale="m",this.fullscreen=void 0,this.kind=void 0,this.messages=void 0,this.messageOverrides=void 0,this.slottedInShell=void 0,this.cssWidth=void 0,this.cssHeight=void 0,this.hasFooter=!0,this.hasContentTop=!1,this.hasContentBottom=!1,this.effectiveLocale=void 0,this.defaultMessages=void 0}handleFocusTrapDisabled(e){this.open&&(e?(0,s.d)(this):(0,s.a)(this))}onMessagesChange(){}async componentWillLoad(){await(0,h.s)(this),(0,l.s)(this),this.open&&this.openModal()}componentDidLoad(){(0,l.a)(this)}connectedCallback(){this.mutationObserver?.observe(this.el,{childList:!0,subtree:!0}),this.cssVarObserver?.observe(this.el,{attributeFilter:["style"]}),this.updateSizeCssVars(),this.updateFooterVisibility(),(0,o.c)(this),(0,d.c)(this),(0,h.c)(this),(0,s.c)(this)}disconnectedCallback(){this.removeOverflowHiddenClass(),this.mutationObserver?.disconnect(),this.cssVarObserver?.disconnect(),(0,o.d)(this),(0,s.d)(this),(0,d.d)(this),(0,h.d)(this),this.slottedInShell=!1}render(){return(0,a.h)(a.AA,{"aria-describedby":this.contentId,"aria-labelledby":this.titleId,"aria-modal":"true",role:"dialog"},(0,a.h)("div",{class:{[_]:!0,[E]:this.opened,[B]:this.slottedInShell}},(0,a.h)("calcite-scrim",{class:x,onClick:this.handleOutsideClose}),this.renderStyle(),(0,a.h)("div",{class:{[f]:!0},ref:this.setTransitionEl},(0,a.h)("div",{class:b},this.renderCloseButton(),(0,a.h)("header",{class:g},(0,a.h)("slot",{name:b}))),this.renderContentTop(),(0,a.h)("div",{class:{[M]:!0,[O]:!this.hasFooter},ref:e=>this.modalContent=e},(0,a.h)("slot",{name:W})),this.renderContentBottom(),this.renderFooter())))}renderFooter(){return this.hasFooter?(0,a.h)("div",{class:k,key:"footer"},(0,a.h)("span",{class:z},(0,a.h)("slot",{name:j})),(0,a.h)("span",{class:w},(0,a.h)("slot",{name:A})),(0,a.h)("span",{class:C},(0,a.h)("slot",{name:R}))):null}renderContentTop(){return(0,a.h)("div",{class:L,hidden:!this.hasContentTop},(0,a.h)("slot",{name:V,onSlotchange:this.contentTopSlotChangeHandler}))}renderContentBottom(){return(0,a.h)("div",{class:S,hidden:!this.hasContentBottom},(0,a.h)("slot",{name:I,onSlotchange:this.contentBottomSlotChangeHandler}))}renderCloseButton(){return this.closeButtonDisabled?null:(0,a.h)("button",{"aria-label":this.messages.close,class:y,key:"button",onClick:this.handleCloseClick,title:this.messages.close,ref:e=>this.closeButtonEl=e},(0,a.h)("calcite-icon",{icon:$,scale:(0,m.g)(this.scale)}))}renderStyle(){if(!this.fullscreen&&(this.cssWidth||this.cssHeight))return(0,a.h)("style",null,`.${_} {\n ${this.docked&&this.cssWidth?"align-items: center !important;":""}\n }\n .${f} {\n block-size: ${this.cssHeight?this.cssHeight:"auto"} !important;\n ${this.cssWidth?`inline-size: ${this.cssWidth} !important;`:""}\n ${this.cssWidth?`max-inline-size: ${this.cssWidth} !important;`:""}\n ${this.docked?"border-radius: var(--calcite-border-radius) !important;":""}\n }\n @media screen and (max-width: ${this.cssWidth}) {\n .${_} {\n ${this.docked?"align-items: flex-end !important;":""}\n }\n .${f} {\n max-block-size: 100% !important;\n inline-size: 100% !important;\n max-inline-size: 100% !important;\n min-inline-size: 100% !important;\n margin: 0 !important;\n ${this.docked?"":"block-size: 100% !important;"}\n ${this.docked?"":"border-radius: 0 !important;"}\n ${this.docked?"border-radius: var(--calcite-border-radius) var(--calcite-border-radius) 0 0 !important;":""}\n }\n }\n `)}effectiveLocaleChange(){(0,h.u)(this,this.effectiveLocale)}handleEscape(e){!this.open||this.escapeDisabled||"Escape"!==e.key||e.defaultPrevented||(this.open=!1,e.preventDefault())}async setFocus(){await(0,l.c)(this),(0,n.f)(this.el)}async updateFocusTrapElements(){(0,s.u)(this)}async scrollContent(e=0,t=0){this.modalContent&&(this.modalContent.scrollTo?this.modalContent.scrollTo({top:e,left:t,behavior:"smooth"}):(this.modalContent.scrollTop=e,this.modalContent.scrollLeft=t))}onBeforeOpen(){this.transitionEl.classList.add(D),this.calciteModalBeforeOpen.emit()}onOpen(){this.transitionEl.classList.remove(T,D),this.calciteModalOpen.emit(),(0,s.a)(this)}onBeforeClose(){this.transitionEl.classList.add(H),this.calciteModalBeforeClose.emit()}onClose(){this.transitionEl.classList.remove(F,H),this.calciteModalClose.emit(),(0,s.d)(this)}toggleModal(e){this.ignoreOpenChange||(e?this.openModal():this.closeModal())}handleOpenedChange(e){const t=e?T:F;this.transitionEl.classList.add(t),(0,c.o)(this)}async openModal(){await(0,m.c)(this.el),this.el.addEventListener("calciteModalOpen",this.openEnd),this.opened=!0;const e=(0,n.g)(this.el,P),t=(0,n.g)(this.el,W);this.titleId=(0,n.C)(e),this.contentId=(0,n.C)(t),this.slottedInShell||(0===G&&(q=document.documentElement.style.overflow),G++,document.documentElement.style.setProperty("overflow","hidden"))}removeOverflowHiddenClass(){document.documentElement.style.setProperty("overflow",q)}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{focusTrapDisabled:["handleFocusTrapDisabled"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"],open:["toggleModal"],opened:["handleOpenedChange"]}}static get style(){return":host{--calcite-modal-scrim-background:rgba(0, 0, 0, 0.85);position:absolute;inset:0px;z-index:var(--calcite-z-index-overlay);display:flex;opacity:0;visibility:hidden !important;transition:visibility 0ms linear var(--calcite-internal-animation-timing-slow), opacity var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88);--calcite-modal-scrim-background-internal:rgba(0, 0, 0, 0.85)}.content-top[hidden],.content-bottom[hidden]{display:none}.container{position:fixed;inset:0px;z-index:var(--calcite-z-index-overlay);display:flex;align-items:center;justify-content:center;overflow-y:hidden;color:var(--calcite-color-text-2);opacity:0;visibility:hidden !important;transition:visibility 0ms linear var(--calcite-internal-animation-timing-slow), opacity var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88)}:host([scale=s]){--calcite-modal-padding-internal:0.75rem;--calcite-modal-padding-large-internal:1rem;--calcite-modal-title-text-internal:var(--calcite-font-size-1);--calcite-modal-content-text-internal:var(--calcite-font-size--1)}:host([scale=m]){--calcite-modal-padding-internal:1rem;--calcite-modal-padding-large-internal:1.25rem;--calcite-modal-title-text-internal:var(--calcite-font-size-2);--calcite-modal-content-text-internal:var(--calcite-font-size-0)}:host([scale=l]){--calcite-modal-padding-internal:1.25rem;--calcite-modal-padding-large-internal:1.5rem;--calcite-modal-title-text-internal:var(--calcite-font-size-3);--calcite-modal-content-text-internal:var(--calcite-font-size-1)}.scrim{--calcite-scrim-background:var(--calcite-modal-scrim-background, var(--calcite-color-transparent-scrim));position:fixed;inset:0px;display:flex;overflow-y:hidden}.modal{pointer-events:none;z-index:var(--calcite-z-index-modal);float:none;margin:1.5rem;box-sizing:border-box;display:flex;inline-size:100%;flex-direction:column;overflow:hidden;border-radius:0.25rem;background-color:var(--calcite-color-foreground-1);opacity:0;--tw-shadow:0 2px 12px -4px rgba(0, 0, 0, 0.2), 0 2px 4px -2px rgba(0, 0, 0, 0.16);--tw-shadow-colored:0 2px 12px -4px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);-webkit-overflow-scrolling:touch;visibility:hidden;transition:transform var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88), visibility 0ms linear var(--calcite-internal-animation-timing-slow), opacity var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88);--calcite-modal-hidden-position:translate3d(0, 20px, 0);--calcite-modal-shown-position:translate3d(0, 0, 0)}.modal--opening-idle{transform:var(--calcite-modal-hidden-position)}.modal--opening-active{transform:var(--calcite-modal-shown-position)}.modal--closing-idle{transform:var(--calcite-modal-shown-position)}.modal--closing-active{transform:var(--calcite-modal-hidden-position)}:host([opened]){opacity:1;visibility:visible !important;transition-delay:0ms}.container--open{opacity:1;visibility:visible !important;transition-delay:0ms}.container--open .modal{pointer-events:auto;visibility:visible;opacity:1;transition:transform var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88), visibility 0ms linear, opacity var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88), max-inline-size var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88), max-block-size var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88);transition-delay:0ms}.header{z-index:var(--calcite-z-index-header);display:flex;min-inline-size:0px;max-inline-size:100%;border-start-start-radius:0.25rem;border-start-end-radius:0.25rem;border-width:0px;border-block-end-width:1px;border-style:solid;border-color:var(--calcite-color-border-3);background-color:var(--calcite-color-foreground-1);flex:0 0 auto}.close{order:2;margin:0px;cursor:pointer;appearance:none;border-style:none;background-color:transparent;color:var(--calcite-color-text-3);outline-color:transparent;transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s;padding-block:var(--calcite-modal-padding-internal);padding-inline:var(--calcite-modal-padding-internal);flex:0 0 auto}.close calcite-icon{pointer-events:none;vertical-align:-2px}.close:focus{outline:2px solid var(--calcite-ui-focus-color, var(--calcite-color-brand-hover, var(--calcite--color-brand)));outline-offset:calc(\n -2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-offset-invert-focus),\n 1\n )\n )\n )}.close:hover,.close:focus,.close:active{background-color:var(--calcite-color-foreground-2);color:var(--calcite-color-text-1)}.title{order:1;display:flex;min-inline-size:0px;align-items:center;flex:1 1 auto;padding-block:var(--calcite-modal-padding-internal);padding-inline:var(--calcite-modal-padding-large-internal)}slot[name=header]::slotted(*),*::slotted([slot=header]){margin:0px;font-weight:var(--calcite-font-weight-normal);color:var(--calcite-color-text-1);font-size:var(--calcite-modal-title-text-internal)}.content{position:relative;box-sizing:border-box;display:block;block-size:100%;overflow:auto;padding:0px;background-color:var(--calcite-modal-content-background, var(--calcite-color-foreground-1));max-block-size:100%;padding:var(--calcite-modal-content-padding, var(--calcite-modal-padding-internal))}.content-top,.content-bottom{z-index:var(--calcite-z-index-header);display:flex;border-width:0px;border-style:solid;border-color:var(--calcite-color-border-3);background-color:var(--calcite-color-foreground-1);flex:0 0 auto;padding:var(--calcite-modal-padding-internal)}.content-top{min-inline-size:0px;max-inline-size:100%;border-block-end-width:1px}.content-bottom{margin-block-start:auto;box-sizing:border-box;inline-size:100%;justify-content:space-between;border-block-start-width:1px}.content-top:not(.header~.content-top){border-start-start-radius:0.25rem;border-start-end-radius:0.25rem}.content-bottom:not(.content-bottom~.footer),.content--no-footer{border-end-end-radius:0.25rem;border-end-start-radius:0.25rem}slot[name=content]::slotted(*),*::slotted([slot=content]){font-size:var(--calcite-modal-context-text-internal)}.footer{z-index:var(--calcite-z-index-header);margin-block-start:auto;box-sizing:border-box;display:flex;inline-size:100%;justify-content:space-between;border-end-end-radius:0.25rem;border-end-start-radius:0.25rem;border-width:0px;border-block-start-width:1px;border-style:solid;border-color:var(--calcite-color-border-3);background-color:var(--calcite-color-foreground-1);flex:0 0 auto;padding-block:var(--calcite-modal-padding-internal);padding-inline:var(--calcite-modal-padding-large-internal)}.footer--hide-back .back,.footer--hide-secondary .secondary{display:none}.back{display:block;margin-inline-end:auto}.secondary{margin-inline:0.25rem;display:block}slot[name=primary]{display:block}:host([width=small]) .modal{inline-size:auto}:host([width-scale=s]) .modal{max-block-size:100%;max-inline-size:100%;inline-size:var(--calcite-modal-width, 32rem);block-size:var(--calcite-modal-height, auto)}@media screen and (max-width: 35rem){:host([width-scale=s]) .modal{margin:0px;block-size:100%;max-block-size:100%;inline-size:100%;max-inline-size:100%}:host([width-scale=s]) .content{flex:1 1 auto;max-block-size:unset}:host([width-scale=s][docked]) .container{align-items:flex-end}}:host([width-scale=m]) .modal{max-block-size:100%;max-inline-size:100%;inline-size:var(--calcite-modal-width, 48rem);block-size:var(--calcite-modal-height, auto)}@media screen and (max-width: 51rem){:host([width-scale=m]) .modal{margin:0px;block-size:100%;max-block-size:100%;inline-size:100%;max-inline-size:100%}:host([width-scale=m]) .content{flex:1 1 auto;max-block-size:unset}:host([width-scale=m][docked]) .container{align-items:flex-end}}:host([width-scale=l]) .modal{max-block-size:100%;max-inline-size:100%;inline-size:var(--calcite-modal-width, 94rem);block-size:var(--calcite-modal-height, auto)}@media screen and (max-width: 97rem){:host([width-scale=l]) .modal{margin:0px;block-size:100%;max-block-size:100%;inline-size:100%;max-inline-size:100%}:host([width-scale=l]) .content{flex:1 1 auto;max-block-size:unset}:host([width-scale=l][docked]) .container{align-items:flex-end}}:host([fullscreen]) .modal{margin:0px;block-size:100%;max-block-size:100%;inline-size:100%;max-inline-size:100%;border-radius:0px;--calcite-modal-hidden-position:translate3D(0, 20px, 0) scale(0.95);--calcite-modal-shown-position:translate3D(0, 0, 0) scale(1)}:host([fullscreen]) .content{max-block-size:100%;flex:1 1 auto}:host([opened][fullscreen]) .header,:host([opened][fullscreen]) .footer,:host([opened][fullscreen]) .content-top,:host([opened][fullscreen]) .content-bottom{border-radius:0}:host([docked]) .modal{block-size:var(--calcite-modal-height, auto)}:host([docked]) .content{block-size:auto;flex:1 1 auto}:host([kind=brand]) .modal{border-color:var(--calcite-color-brand)}:host([kind=danger]) .modal{border-color:var(--calcite-color-status-danger)}:host([kind=info]) .modal{border-color:var(--calcite-color-status-info)}:host([kind=success]) .modal{border-color:var(--calcite-color-status-success)}:host([kind=warning]) .modal{border-color:var(--calcite-color-status-warning)}:host([kind=brand]) .modal,:host([kind=danger]) .modal,:host([kind=info]) .modal,:host([kind=success]) .modal,:host([kind=warning]) .modal{border-width:0px;border-block-start-width:4px;border-style:solid}:host([kind=brand]) .header,:host([kind=brand]) .content-top,:host([kind=danger]) .header,:host([kind=danger]) .content-top,:host([kind=info]) .header,:host([kind=info]) .content-top,:host([kind=success]) .header,:host([kind=success]) .content-top,:host([kind=warning]) .header,:host([kind=warning]) .content-top{border-radius:0.25rem;border-end-end-radius:0px;border-end-start-radius:0px}@media screen and (max-width: 860px){* slot[name=header]::slotted(content-top),* content-top::slotted([slot=header]){font-size:var(--calcite-font-size-1)}.footer,.content-bottom{position:sticky;inset-block-end:0px}}@media screen and (max-width: 480px){.footer,.content-bottom{flex-direction:column}.back,.secondary{margin:0px;margin-block-end:0.25rem}}.container.slotted-in-shell{position:absolute;pointer-events:auto}.container.slotted-in-shell calcite-scrim{position:absolute}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-modal",{open:[1540],opened:[1540],beforeClose:[16],closeButtonDisabled:[516,"close-button-disabled"],focusTrapDisabled:[516,"focus-trap-disabled"],outsideCloseDisabled:[516,"outside-close-disabled"],docked:[516],escapeDisabled:[516,"escape-disabled"],scale:[513],widthScale:[513,"width-scale"],fullscreen:[516],kind:[513],messages:[1040],messageOverrides:[1040],slottedInShell:[1028,"slotted-in-shell"],cssWidth:[32],cssHeight:[32],hasFooter:[32],hasContentTop:[32],hasContentBottom:[32],effectiveLocale:[32],defaultMessages:[32],setFocus:[64],updateFocusTrapElements:[64],scrollContent:[64]},[[8,"keydown","handleEscape"]],{focusTrapDisabled:["handleFocusTrapDisabled"],messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"],open:["toggleModal"],opened:["handleOpenedChange"]}]);function J(){if("undefined"==typeof customElements)return;["calcite-modal","calcite-icon","calcite-loader","calcite-scrim"].forEach((e=>{switch(e){case"calcite-modal":customElements.get(e)||customElements.define(e,U);break;case"calcite-icon":customElements.get(e)||(0,p.d)();break;case"calcite-loader":customElements.get(e)||(0,u.d)();break;case"calcite-scrim":customElements.get(e)||(0,v.d)()}}))}J();const K=U,N=J},14974:function(e,t,i){i.d(t,{c:function(){return r},d:function(){return c}});var a=i(77210),o=i(85545);const n=new Set;let s;const l={childList:!0};function r(e){s||(s=(0,o.c)("mutation",d)),s.observe(e.el,l)}function c(e){n.delete(e.el),d(s.takeRecords()),s.disconnect();for(const[e]of n.entries())s.observe(e,l)}function d(e){e.forEach((({target:e})=>{(0,a.xE)(e)}))}},92708:function(e,t,i){i.d(t,{L:function(){return n},d:function(){return s}});var a=i(77210),o=i(96472);const n=(0,a.GH)(class extends a.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.inline=!1,this.label=void 0,this.scale="m",this.type=void 0,this.value=0,this.text=""}render(){const{el:e,inline:t,label:i,scale:n,text:s,type:l,value:r}=this,c=e.id||(0,o.g)(),d=t?this.getInlineSize(n):this.getSize(n),h=.45*d,m=`0 0 ${d} ${d}`,p="determinate"===l,u=2*h*Math.PI,v=r/100*u,f=u-v,g=Math.floor(r),b={"aria-valuenow":g,"aria-valuemin":0,"aria-valuemax":100,complete:100===g},k={r:h,cx:d/2,cy:d/2},x={"stroke-dasharray":`${v} ${f}`};return(0,a.h)(a.AA,{"aria-label":i,id:c,role:"progressbar",...p?b:{}},(0,a.h)("div",{class:"loader__svgs"},(0,a.h)("svg",{"aria-hidden":"true",class:"loader__svg loader__svg--1",viewBox:m},(0,a.h)("circle",{...k})),(0,a.h)("svg",{"aria-hidden":"true",class:"loader__svg loader__svg--2",viewBox:m},(0,a.h)("circle",{...k})),(0,a.h)("svg",{"aria-hidden":"true",class:"loader__svg loader__svg--3",viewBox:m,...p?{style:x}:{}},(0,a.h)("circle",{...k}))),s&&(0,a.h)("div",{class:"loader__text"},s),p&&(0,a.h)("div",{class:"loader__percentage"},r))}getSize(e){return{s:32,m:56,l:80}[e]}getInlineSize(e){return{s:12,m:16,l:20}[e]}get el(){return this}static get style(){return'@charset "UTF-8";@media (prefers-reduced-motion: reduce){:root{--calcite-internal-duration-factor:0}}:host{position:relative;margin-inline:auto;display:none;align-items:center;justify-content:center;opacity:1;min-block-size:var(--calcite-loader-size);font-size:var(--calcite-loader-font-size);stroke:var(--calcite-color-brand);stroke-width:3;fill:none;transform:scale(1, 1);animation:loader-color-shift calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 2 / var(--calcite-internal-duration-factor)) alternate-reverse infinite linear;padding-block:var(--calcite-loader-padding, 4rem);will-change:contents}:host([scale=s]){--calcite-loader-font-size:var(--calcite-font-size--2);--calcite-loader-size:2rem;--calcite-loader-size-inline:0.75rem}:host([scale=m]){--calcite-loader-font-size:var(--calcite-font-size-0);--calcite-loader-size:4rem;--calcite-loader-size-inline:1rem}:host([scale=l]){--calcite-loader-font-size:var(--calcite-font-size-2);--calcite-loader-size:6rem;--calcite-loader-size-inline:1.5rem}:host([no-padding]){padding-block:0px}:host{display:flex}.loader__text{display:block;text-align:center;font-size:var(--calcite-font-size--2);line-height:1rem;color:var(--calcite-color-text-1);margin-block-start:calc(var(--calcite-loader-size) + 1.5rem)}.loader__percentage{position:absolute;display:block;text-align:center;color:var(--calcite-color-text-1);font-size:var(--calcite-loader-font-size);inline-size:var(--calcite-loader-size);inset-inline-start:50%;margin-inline-start:calc(var(--calcite-loader-size) / 2 * -1);line-height:0.25;transform:scale(1, 1)}.loader__svgs{position:absolute;overflow:visible;opacity:1;inline-size:var(--calcite-loader-size);block-size:var(--calcite-loader-size);inset-inline-start:50%;margin-inline-start:calc(var(--calcite-loader-size) / 2 * -1);animation-iteration-count:infinite;animation-timing-function:linear;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 6.66 / var(--calcite-internal-duration-factor));animation-name:loader-clockwise}.loader__svg{position:absolute;inset-block-start:0px;transform-origin:center;overflow:visible;inset-inline-start:0;inline-size:var(--calcite-loader-size);block-size:var(--calcite-loader-size);animation-iteration-count:infinite;animation-timing-function:linear}@supports (display: grid){.loader__svg--1{animation-name:loader-offset-1}.loader__svg--2{animation-name:loader-offset-2}.loader__svg--3{animation-name:loader-offset-3}}:host([type=determinate]){animation:none;stroke:var(--calcite-color-border-3)}:host([type=determinate]) .loader__svgs{animation:none}:host([type=determinate]) .loader__svg--3{animation:none;stroke:var(--calcite-color-brand);stroke-dasharray:150.79632;transform:rotate(-90deg);transition:all var(--calcite-internal-animation-timing-fast) linear}:host([inline]){position:relative;margin:0px;animation:none;stroke:currentColor;stroke-width:2;padding-block:0px;block-size:var(--calcite-loader-size-inline);min-block-size:var(--calcite-loader-size-inline);inline-size:var(--calcite-loader-size-inline);margin-inline-end:calc(var(--calcite-loader-size-inline) * 0.5);vertical-align:calc(var(--calcite-loader-size-inline) * -1 * 0.2)}:host([inline]) .loader__svgs{inset-block-start:0px;margin:0px;inset-inline-start:0;inline-size:var(--calcite-loader-size-inline);block-size:var(--calcite-loader-size-inline)}:host([inline]) .loader__svg{inline-size:var(--calcite-loader-size-inline);block-size:var(--calcite-loader-size-inline)}:host([complete]){opacity:0;transform:scale(0.75, 0.75);transform-origin:center;transition:opacity var(--calcite-internal-animation-timing-medium) linear 1000ms, transform var(--calcite-internal-animation-timing-medium) linear 1000ms}:host([complete]) .loader__svgs{opacity:0;transform:scale(0.75, 0.75);transform-origin:center;transition:opacity calc(180ms * var(--calcite-internal-duration-factor)) linear 800ms, transform calc(180ms * var(--calcite-internal-duration-factor)) linear 800ms}:host([complete]) .loader__percentage{color:var(--calcite-color-brand);transform:scale(1.05, 1.05);transform-origin:center;transition:color var(--calcite-internal-animation-timing-medium) linear, transform var(--calcite-internal-animation-timing-medium) linear}.loader__svg--1{stroke-dasharray:27.9252444444 139.6262222222;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 4.8 / var(--calcite-internal-duration-factor))}@keyframes loader-offset-1{0%{stroke-dasharray:27.9252444444 251.3272;stroke-dashoffset:0}50%{stroke-dasharray:139.6262222222 139.6262222222;stroke-dashoffset:-83.7757333333}100%{stroke-dasharray:27.9252444444 251.3272;stroke-dashoffset:-279.2524444444}}.loader__svg--2{stroke-dasharray:55.8504888889 139.6262222222;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 6.4 / var(--calcite-internal-duration-factor))}@keyframes loader-offset-2{0%{stroke-dasharray:55.8504888889 223.4019555556;stroke-dashoffset:0}50%{stroke-dasharray:139.6262222222 139.6262222222;stroke-dashoffset:-97.7383555556}100%{stroke-dasharray:55.8504888889 223.4019555556;stroke-dashoffset:-279.2524444444}}.loader__svg--3{stroke-dasharray:13.9626222222 139.6262222222;animation-duration:calc(var(--calcite-internal-animation-timing-slow) / var(--calcite-internal-duration-factor) * 7.734 / var(--calcite-internal-duration-factor))}@keyframes loader-offset-3{0%{stroke-dasharray:13.9626222222 265.2898222222;stroke-dashoffset:0}50%{stroke-dasharray:139.6262222222 139.6262222222;stroke-dashoffset:-76.7944222222}100%{stroke-dasharray:13.9626222222 265.2898222222;stroke-dashoffset:-279.2524444444}}@keyframes loader-color-shift{0%{stroke:var(--calcite-color-brand)}33%{stroke:var(--calcite-color-brand-press)}66%{stroke:var(--calcite-color-brand-hover)}100%{stroke:var(--calcite-color-brand)}}@keyframes loader-clockwise{100%{transform:rotate(360deg)}}:host([hidden]){display:none}[hidden]{display:none}'}},[1,"calcite-loader",{inline:[516],label:[1],scale:[513],type:[513],value:[2],text:[1]}]);function s(){if("undefined"==typeof customElements)return;["calcite-loader"].forEach((e=>{if("calcite-loader"===e)customElements.get(e)||customElements.define(e,n)}))}s()},45067:function(e,t,i){i.d(t,{d:function(){return u}});var a=i(77210),o=i(19417),n=i(53801),s=i(85545),l=i(79145),r=i(92708);const c="scrim",d="content",h=72,m=480,p=(0,a.GH)(class extends a.mv{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.resizeObserver=(0,s.c)("resize",(()=>this.handleResize())),this.handleDefaultSlotChange=e=>{this.hasContent=(0,l.r)(e)},this.storeLoaderEl=e=>{this.loaderEl=e,this.handleResize()},this.loading=!1,this.messages=void 0,this.messageOverrides=void 0,this.loaderScale=void 0,this.defaultMessages=void 0,this.effectiveLocale="",this.hasContent=!1}onMessagesChange(){}effectiveLocaleChange(){(0,n.u)(this,this.effectiveLocale)}connectedCallback(){(0,o.c)(this),(0,n.c)(this),this.resizeObserver?.observe(this.el)}async componentWillLoad(){await(0,n.s)(this)}disconnectedCallback(){(0,o.d)(this),(0,n.d)(this),this.resizeObserver?.disconnect()}render(){const{hasContent:e,loading:t,messages:i}=this;return(0,a.h)("div",{class:c},t?(0,a.h)("calcite-loader",{label:i.loading,scale:this.loaderScale,ref:this.storeLoaderEl}):null,(0,a.h)("div",{class:d,hidden:!e},(0,a.h)("slot",{onSlotchange:this.handleDefaultSlotChange})))}getScale(e){return e=m?"l":"m"}handleResize(){const{loaderEl:e,el:t}=this;e&&(this.loaderScale=this.getScale(Math.min(t.clientHeight,t.clientWidth)??0))}static get assetsDirs(){return["assets"]}get el(){return this}static get watchers(){return{messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}}static get style(){return":host{--calcite-scrim-background:var(--calcite-color-transparent-scrim);position:absolute;inset:0px;z-index:var(--calcite-z-index-overlay);display:flex;block-size:100%;inline-size:100%;flex-direction:column;align-items:stretch}@keyframes calcite-scrim-fade-in{0%{--tw-bg-opacity:0}100%{--tw-text-opacity:1}}.scrim{position:absolute;inset:0px;display:flex;flex-direction:column;align-content:center;align-items:center;justify-content:center;overflow:hidden;animation:calcite-scrim-fade-in var(--calcite-internal-animation-timing-medium) ease-in-out;background-color:var(--calcite-scrim-background, var(--calcite-color-transparent-scrim))}.content{padding:1rem}:host([hidden]){display:none}[hidden]{display:none}"}},[1,"calcite-scrim",{loading:[516],messages:[1040],messageOverrides:[1040],loaderScale:[32],defaultMessages:[32],effectiveLocale:[32],hasContent:[32]},void 0,{messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}]);function u(){if("undefined"==typeof customElements)return;["calcite-scrim","calcite-loader"].forEach((e=>{switch(e){case"calcite-scrim":customElements.get(e)||customElements.define(e,p);break;case"calcite-loader":customElements.get(e)||(0,r.d)()}}))}u()}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9758.4ac458ba7cd9014c4e41.js.LICENSE.txt b/docs/sentinel1-explorer/9758.4ac458ba7cd9014c4e41.js.LICENSE.txt new file mode 100644 index 00000000..67c93b1e --- /dev/null +++ b/docs/sentinel1-explorer/9758.4ac458ba7cd9014c4e41.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * All material copyright ESRI, All Rights Reserved, unless otherwise specified. + * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details. + * v2.5.1 + */ diff --git a/docs/sentinel1-explorer/9794.378f9a5226c435c3b103.js b/docs/sentinel1-explorer/9794.378f9a5226c435c3b103.js new file mode 100644 index 00000000..4cbe062a --- /dev/null +++ b/docs/sentinel1-explorer/9794.378f9a5226c435c3b103.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9794],{99794:function(e,_,r){r.r(_),r.d(_,{default:function(){return o}});const o={_decimalSeparator:".",_thousandSeparator:",",_percentPrefix:null,_percentSuffix:"%",_big_number_suffix_3:"k",_big_number_suffix_6:"M",_big_number_suffix_9:"G",_big_number_suffix_12:"T",_big_number_suffix_15:"P",_big_number_suffix_18:"E",_big_number_suffix_21:"Z",_big_number_suffix_24:"Y",_small_number_suffix_3:"m",_small_number_suffix_6:"μ",_small_number_suffix_9:"n",_small_number_suffix_12:"p",_small_number_suffix_15:"f",_small_number_suffix_18:"a",_small_number_suffix_21:"z",_small_number_suffix_24:"y",_byte_suffix_B:"B",_byte_suffix_KB:"KB",_byte_suffix_MB:"MB",_byte_suffix_GB:"GB",_byte_suffix_TB:"TB",_byte_suffix_PB:"PB",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - MMM dd, yyyy",_date_hour:"HH:mm",_date_hour_full:"HH:mm - MMM dd, yyyy",_date_day:"MMM dd",_date_day_full:"MMM dd, yyyy",_date_week:"ww",_date_week_full:"MMM dd, yyyy",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_millisecond_second:"ss.SSS",_duration_millisecond_minute:"mm:ss SSS",_duration_millisecond_hour:"hh:mm:ss SSS",_duration_millisecond_day:"d'd' mm:ss SSS",_duration_millisecond_week:"d'd' mm:ss SSS",_duration_millisecond_month:"M'm' dd'd' mm:ss SSS",_duration_millisecond_year:"y'y' MM'm' dd'd' mm:ss SSS",_duration_second:"ss",_duration_second_minute:"mm:ss",_duration_second_hour:"hh:mm:ss",_duration_second_day:"d'd' hh:mm:ss",_duration_second_week:"d'd' hh:mm:ss",_duration_second_month:"M'm' dd'd' hh:mm:ss",_duration_second_year:"y'y' MM'm' dd'd' hh:mm:ss",_duration_minute:"mm",_duration_minute_hour:"hh:mm",_duration_minute_day:"d'd' hh:mm",_duration_minute_week:"d'd' hh:mm",_duration_minute_month:"M'm' dd'd' hh:mm",_duration_minute_year:"y'y' MM'm' dd'd' hh:mm",_duration_hour:"hh'h'",_duration_hour_day:"d'd' hh'h'",_duration_hour_week:"d'd' hh'h'",_duration_hour_month:"M'm' dd'd' hh'h'",_duration_hour_year:"y'y' MM'm' dd'd' hh'h'",_duration_day:"d'd'",_duration_day_week:"d'd'",_duration_day_month:"M'm' dd'd'",_duration_day_year:"y'y' MM'm' dd'd'",_duration_week:"w'w'",_duration_week_month:"w'w'",_duration_week_year:"w'w'",_duration_month:"M'm'",_duration_month_year:"y'y' MM'm'",_duration_year:"y'y'",_era_ad:"西元",_era_bc:"西元前",A:"上午",P:"下午",AM:"上午",PM:"下午","A.M.":"上午","P.M.":"下午",January:"1月",February:"2月",March:"3月",April:"4月",May:"5月",June:"6月",July:"7月",August:"8月",September:"9月",October:"10月",November:"11月",December:"12月",Jan:"1月",Feb:"2月",Mar:"3月",Apr:"4月","May(short)":"5月",Jun:"6月",Jul:"7月",Aug:"8月",Sep:"9月",Oct:"10月",Nov:"11月",Dec:"12月",Sunday:"星期日",Monday:"星期一",Tuesday:"星期二",Wednesday:"星期三",Thursday:"星期四",Friday:"星期五",Saturday:"星期六",Sun:"週日",Mon:"週一",Tue:"週二",Wed:"週三",Thu:"週四",Fri:"週五",Sat:"週六",_dateOrd:function(e){let _="th";if(e<11||e>13)switch(e%10){case 1:case 2:case 3:_="日"}return _},"Zoom Out":"縮放",Play:"播放",Stop:"停止",Legend:"圖例","Press ENTER to toggle":"",Loading:"正在載入",Home:"首頁",Chart:"","Serial chart":"","X/Y chart":"","Pie chart":"","Gauge chart":"","Radar chart":"","Sankey diagram":"","Flow diagram":"","Chord diagram":"","TreeMap chart":"","Sliced chart":"",Series:"","Candlestick Series":"","OHLC Series":"","Column Series":"","Line Series":"","Pie Slice Series":"","Funnel Series":"","Pyramid Series":"","X/Y Series":"",Map:"","Press ENTER to zoom in":"","Press ENTER to zoom out":"","Use arrow keys to zoom in and out":"","Use plus and minus keys on your keyboard to zoom in and out":"",Export:"列印",Image:"影像",Data:"資料",Print:"列印","Press ENTER to open":"","Press ENTER to print.":"","Press ENTER to export as %1.":"","(Press ESC to close this message)":"","Image Export Complete":"","Export operation took longer than expected. Something might have gone wrong.":"","Saved from":"",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"","Use left and right arrows to move selection":"","Use left and right arrows to move left selection":"","Use left and right arrows to move right selection":"","Use TAB select grip buttons or up and down arrows to change selection":"","Use up and down arrows to move selection":"","Use up and down arrows to move lower selection":"","Use up and down arrows to move upper selection":"","From %1 to %2":"從 %1 至 %2","From %1":"從 %1","To %1":"至 %1","No parser available for file: %1":"","Error parsing file: %1":"","Unable to load file: %1":"","Invalid date":""}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9821.2169ca81413e3af14bc6.js b/docs/sentinel1-explorer/9821.2169ca81413e3af14bc6.js new file mode 100644 index 00000000..93675f25 --- /dev/null +++ b/docs/sentinel1-explorer/9821.2169ca81413e3af14bc6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9821],{9821:function(e,t,i){i.r(t),i.d(t,{default:function(){return c}});var n=i(19431),a={};a.defaultNoDataValue=(0,n.oK)(-1/0),a.decode=function(e,t){var i=(t=t||{}).encodedMaskData||null===t.encodedMaskData,f=o(e,t.inputOffset||0,i),u=null!=t.noDataValue?(0,n.oK)(t.noDataValue):a.defaultNoDataValue,m=l(f,t.pixelType||Float32Array,t.encodedMaskData,u,t.returnMask),c={width:f.width,height:f.height,pixelData:m.resultPixels,minValue:f.pixels.minValue,maxValue:f.pixels.maxValue,noDataValue:u};return m.resultMask&&(c.maskData=m.resultMask),t.returnEncodedMask&&f.mask&&(c.encodedMaskData=f.mask.bitset?f.mask.bitset:null),t.returnFileInfo&&(c.fileInfo=s(f,u),t.computeUsedBitDepths&&(c.fileInfo.bitDepths=r(f))),c};var l=function(e,t,i,n,a){var l,s,r=0,o=e.pixels.numBlocksX,u=e.pixels.numBlocksY,m=Math.floor(e.width/o),c=Math.floor(e.height/u),d=2*e.maxZError;i=i||(e.mask?e.mask.bitset:null),l=new t(e.width*e.height),a&&i&&(s=new Uint8Array(e.width*e.height));for(var g,h,k=new Float32Array(m*c),x=0;x<=u;x++){var p=x!==u?c:e.height%u;if(0!==p)for(var w=0;w<=o;w++){var y=w!==o?m:e.width%o;if(0!==y){var V,B,v,U,D=x*e.width*c+w*m,b=e.width-y,M=e.pixels.blocks[r];if(M.encoding<2?(0===M.encoding?V=M.rawData:(f(M.stuffedData,M.bitsPerPixel,M.numValidPixels,M.offset,d,k,e.pixels.maxValue),V=k),B=0):v=2===M.encoding?0:M.offset,i)for(h=0;h>3],U<<=7&D),g=0;g>3]),128&U?(s&&(s[D]=1),l[D++]=M.encoding<2?V[B++]:v):(s&&(s[D]=0),l[D++]=n),U<<=1;D+=b}else if(M.encoding<2)for(h=0;h0){var s=new Uint8Array(Math.ceil(n.width*n.height/8)),r=(l=new DataView(e,t,n.mask.numBytes)).getInt16(0,!0),o=2,f=0;do{if(r>0)for(;r--;)s[f++]=l.getUint8(o++);else{var u=l.getUint8(o++);for(r=-r;r--;)s[f++]=u}r=l.getInt16(o,!0),o+=2}while(o0?1:0),g=c+(n.height%c>0?1:0);n.pixels.blocks=new Array(d*g);for(var h=1e9,k=0,x=0;x3)throw"Invalid block encoding ("+V.encoding+")";if(2!==V.encoding){if(0!==B&&2!==B){if(B>>=6,V.offsetType=B,2===B)V.offset=l.getInt8(1),w++;else if(1===B)V.offset=l.getInt16(1,!0),w+=2;else{if(0!==B)throw"Invalid block offset type";V.offset=l.getFloat32(1,!0),w+=4}if(h=Math.min(V.offset,h),1===V.encoding)if(B=l.getUint8(w),w++,V.bitsPerPixel=63&B,B>>=6,V.numValidPixelsType=B,2===B)V.numValidPixels=l.getUint8(w),w++;else if(1===B)V.numValidPixels=l.getUint16(w,!0),w+=2;else{if(0!==B)throw"Invalid valid pixel count type";V.numValidPixels=l.getUint32(w,!0),w+=4}}var v;if(t+=w,3!=V.encoding)if(0===V.encoding){var U=(n.pixels.numBytes-1)/4;if(U!==Math.floor(U))throw"uncompressed block has invalid length";v=new ArrayBuffer(4*U),new Uint8Array(v).set(new Uint8Array(e,t,4*U));for(var D=new Float32Array(v),b=0;b=t)o=f>>>c-t&u,c-=t;else{var h=t-c;o=(f&u)<>>(c=32-h)}l[r]=o{await this.load();const{extent:e,timeExtent:r}=await this._connection.invoke("refresh",t);return e&&(this.sourceJSON.extent=e),r&&(this.sourceJSON.timeInfo.timeExtent=[r.start,r.end]),{dataChanged:!0,updates:{extent:this.sourceJSON.extent,timeInfo:this.sourceJSON.timeInfo}}}))}load(t){const e=null!=t?t.signal:null;return this.addResolvingPromise(this._startWorker(e)),Promise.resolve(this)}destroy(){this._connection?.close(),this._connection=null}async openPorts(){return await this.load(),this._connection.openPorts()}async queryFeatures(t,e={}){await this.load(e);const r=await this._connection.invoke("queryFeatures",t?t.toJSON():null,e);return h.Z.fromJSON(r)}async queryFeaturesJSON(t,e={}){return await this.load(e),this._connection.invoke("queryFeatures",t?t.toJSON():null,e)}async queryFeatureCount(t,e={}){return await this.load(e),this._connection.invoke("queryFeatureCount",t?t.toJSON():null,e)}async queryObjectIds(t,e={}){return await this.load(e),this._connection.invoke("queryObjectIds",t?t.toJSON():null,e)}async queryExtent(t,e={}){await this.load(e);const r=await this._connection.invoke("queryExtent",t?t.toJSON():null,e);return{count:r.count,extent:m.Z.fromJSON(r.extent)}}async querySnapping(t,e={}){return await this.load(e),this._connection.invoke("querySnapping",t,e)}async _startWorker(t){this._connection=await(0,y.bA)("CSVSourceWorker",{strategy:(0,u.Z)("feature-layers-workers")?"dedicated":"local",signal:t,registryTarget:this});const{url:e,delimiter:r,fields:s,latitudeField:o,longitudeField:i,spatialReference:n,timeInfo:a}=this.loadOptions,l=await this._connection.invoke("load",{url:e,customParameters:this.customParameters,parsingOptions:{delimiter:r,fields:s?.map((t=>t.toJSON())),latitudeField:o,longitudeField:i,spatialReference:n?.toJSON(),timeInfo:a?.toJSON()}},{signal:t});this.locationInfo=l.locationInfo,this.sourceJSON=l.layerDefinition,this.delimiter=l.delimiter}};(0,s._)([(0,a.Cb)()],f.prototype,"type",void 0),(0,s._)([(0,a.Cb)()],f.prototype,"loadOptions",void 0),(0,s._)([(0,a.Cb)()],f.prototype,"customParameters",void 0),(0,s._)([(0,a.Cb)()],f.prototype,"locationInfo",void 0),(0,s._)([(0,a.Cb)()],f.prototype,"sourceJSON",void 0),(0,s._)([(0,a.Cb)()],f.prototype,"delimiter",void 0),f=(0,s._)([(0,p.j)("esri.layers.graphics.sources.CSVSource")],f);var g=r(40400),v=r(14136),b=r(16641),S=r(14685);function C(t,e){throw new o.Z(e,`CSVLayer (title: ${t.title}, id: ${t.id}) cannot be saved to a portal item`)}let w=class extends c.default{constructor(...t){super(...t),this.geometryType="point",this.capabilities=(0,g.MS)(!1,!1),this.delimiter=null,this.editingEnabled=!1,this.fields=null,this.latitudeField=null,this.locationType="coordinates",this.longitudeField=null,this.operationalLayerType="CSV",this.outFields=["*"],this.path=null,this.spatialReference=S.Z.WGS84,this.source=null,this.type="csv"}normalizeCtorArgs(t,e){return"string"==typeof t?{url:t,...e}:t}load(t){const e=null!=t?t.signal:null,r=this.loadFromPortal({supportedTypes:["CSV"],supportsData:!1},t).catch(i.r9).then((async()=>this.initLayerProperties(await this.createGraphicsSource(e))));return this.addResolvingPromise(r),Promise.resolve(this)}get isTable(){return this.loaded&&null==this.geometryType}readWebMapLabelsVisible(t,e){return null!=e.showLabels?e.showLabels:!!e.layerDefinition?.drawingInfo?.labelingInfo}set url(t){if(!t)return void this._set("url",t);const e=(0,n.mN)(t);this._set("url",e.path),e.query&&(this.customParameters={...this.customParameters,...e.query})}async createGraphicsSource(t){const e=new f({loadOptions:{delimiter:this.delimiter,fields:this.fields,latitudeField:this.latitudeField??void 0,longitudeField:this.longitudeField??void 0,spatialReference:this.spatialReference??void 0,timeInfo:this.timeInfo??void 0,url:this.url},customParameters:this.customParameters??void 0});return this._set("source",e),await e.load({signal:t}),this.read({locationInfo:e.locationInfo,columnDelimiter:e.delimiter},{origin:"service",url:this.parsedUrl}),e}queryFeatures(t,e){return this.load().then((()=>this.source.queryFeatures(v.Z.from(t)||this.createQuery()))).then((t=>{if(t?.features)for(const e of t.features)e.layer=e.sourceLayer=this;return t}))}queryObjectIds(t,e){return this.load().then((()=>this.source.queryObjectIds(v.Z.from(t)||this.createQuery())))}queryFeatureCount(t,e){return this.load().then((()=>this.source.queryFeatureCount(v.Z.from(t)||this.createQuery())))}queryExtent(t,e){return this.load().then((()=>this.source.queryExtent(v.Z.from(t)||this.createQuery())))}read(t,e){super.read(t,e),e&&"service"===e.origin&&this.revert(["latitudeField","longitudeField"],"service")}write(t,e){return super.write(t,{...e,writeLayerSchema:!0})}clone(){throw new o.Z("csv-layer:clone",`CSVLayer (title: ${this.title}, id: ${this.id}) cannot be cloned`)}async save(t){return C(this,"csv-layer:save")}async saveAs(t,e){return C(this,"csv-layer:save-as")}async hasDataChanged(){try{const{dataChanged:t,updates:e}=await this.source.refresh(this.customParameters);return null!=e&&this.read(e,{origin:"service",url:this.parsedUrl,ignoreDefaults:!0}),t}catch{}return!1}_verifyFields(){}_verifySource(){}_hasMemorySource(){return!1}};(0,s._)([(0,a.Cb)({readOnly:!0,json:{read:!1,write:!1}})],w.prototype,"capabilities",void 0),(0,s._)([(0,a.Cb)({type:[","," ",";","|","\t"],json:{read:{source:"columnDelimiter"},write:{target:"columnDelimiter",ignoreOrigin:!0}}})],w.prototype,"delimiter",void 0),(0,s._)([(0,a.Cb)({readOnly:!0,type:Boolean,json:{origins:{"web-scene":{read:!1,write:!1}}}})],w.prototype,"editingEnabled",void 0),(0,s._)([(0,a.Cb)({json:{read:{source:"layerDefinition.fields"},write:{target:"layerDefinition.fields"}}})],w.prototype,"fields",void 0),(0,s._)([(0,a.Cb)({type:Boolean,readOnly:!0})],w.prototype,"isTable",null),(0,s._)([(0,l.r)("web-map","labelsVisible",["layerDefinition.drawingInfo.labelingInfo","showLabels"])],w.prototype,"readWebMapLabelsVisible",null),(0,s._)([(0,a.Cb)({type:String,json:{read:{source:"locationInfo.latitudeFieldName"},write:{target:"locationInfo.latitudeFieldName",ignoreOrigin:!0}}})],w.prototype,"latitudeField",void 0),(0,s._)([(0,a.Cb)({type:["show","hide"]})],w.prototype,"listMode",void 0),(0,s._)([(0,a.Cb)({type:["coordinates"],json:{read:{source:"locationInfo.locationType"},write:{target:"locationInfo.locationType",ignoreOrigin:!0,isRequired:!0}}})],w.prototype,"locationType",void 0),(0,s._)([(0,a.Cb)({type:String,json:{read:{source:"locationInfo.longitudeFieldName"},write:{target:"locationInfo.longitudeFieldName",ignoreOrigin:!0}}})],w.prototype,"longitudeField",void 0),(0,s._)([(0,a.Cb)({type:["CSV"]})],w.prototype,"operationalLayerType",void 0),(0,s._)([(0,a.Cb)()],w.prototype,"outFields",void 0),(0,s._)([(0,a.Cb)({type:String,json:{origins:{"web-scene":{read:!1,write:!1}},read:!1,write:!1}})],w.prototype,"path",void 0),(0,s._)([(0,a.Cb)({json:{read:!1},cast:null,type:f,readOnly:!0})],w.prototype,"source",void 0),(0,s._)([(0,a.Cb)({json:{read:!1},value:"csv",readOnly:!0})],w.prototype,"type",void 0),(0,s._)([(0,a.Cb)({json:{read:b.r,write:{isRequired:!0,ignoreOrigin:!0,writer:b.w}}})],w.prototype,"url",null),w=(0,s._)([(0,p.j)("esri.layers.CSVLayer")],w);const _=w},10287:function(t,e,r){r.d(e,{g:function(){return s}});const s={supportsStatistics:!0,supportsPercentileStatistics:!0,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsCentroid:!0,supportsCacheHint:!1,supportsDistance:!0,supportsDistinct:!0,supportsExtent:!0,supportsGeometryProperties:!1,supportsHavingClause:!0,supportsOrderBy:!0,supportsPagination:!0,supportsQuantization:!0,supportsQuantizationEditMode:!1,supportsQueryGeometry:!0,supportsResultType:!1,supportsSqlExpression:!0,supportsMaxRecordCountFactor:!1,supportsStandardizedQueriesOnly:!0,supportsTopFeaturesQuery:!1,supportsQueryByAnonymous:!0,supportsQueryByOthers:!0,supportsHistoricMoment:!1,supportsFormatPBF:!1,supportsDisjointSpatialRelationship:!0,supportsDefaultSpatialReference:!1,supportsFullTextSearch:!1,supportsCompactGeometry:!1,maxRecordCountFactor:void 0,maxRecordCount:void 0,standardMaxRecordCount:void 0,tileMaxRecordCount:void 0}},40400:function(t,e,r){r.d(e,{Dm:function(){return p},Hq:function(){return c},MS:function(){return d},bU:function(){return a}});var s=r(39994),o=r(67134),i=r(10287),n=r(86094);function a(t){return{renderer:{type:"simple",symbol:"esriGeometryPoint"===t||"esriGeometryMultipoint"===t?n.I4:"esriGeometryPolyline"===t?n.ET:n.lF}}}const u=/^[_$a-zA-Z][_$a-zA-Z0-9]*$/;let l=1;function p(t,e){if((0,s.Z)("esri-csp-restrictions"))return()=>({[e]:null,...t});try{let r=`this.${e} = null;`;for(const e in t)r+=`this${u.test(e)?`.${e}`:`["${e}"]`} = ${JSON.stringify(t[e])};`;const s=new Function(`\n return class AttributesClass$${l++} {\n constructor() {\n ${r};\n }\n }\n `)();return()=>new s}catch(r){return()=>({[e]:null,...t})}}function c(t={}){return[{name:"New Feature",description:"",prototype:{attributes:(0,o.d9)(t)}}]}function d(t,e){return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:t},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:e,supportsDelete:e,supportsEditing:e,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:e,supportsExceedsLimitStatistics:!0,supportsAsyncConvert3D:!1},query:i.g,queryRelated:{supportsCount:!0,supportsOrderBy:!0,supportsPagination:!0,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsGeometryUpdate:e,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9855.faa70eef46f39ef717a0.js b/docs/sentinel1-explorer/9855.faa70eef46f39ef717a0.js new file mode 100644 index 00000000..ec3ff918 --- /dev/null +++ b/docs/sentinel1-explorer/9855.faa70eef46f39ef717a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9855],{29855:function(e,t,o){o.r(t),o.d(t,{default:function(){return H}});var i=o(36663),r=o(70375),n=o(25709),a=o(81977),s=o(69236),p=o(40266),l=o(12926),y=o(41151),u=o(82064),c=(o(39994),o(13802),o(4157),o(74396));const f=[2155,2194,2204,2222,2223,2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2314,2867,2868,2869,2870,2871,2872,2873,2874,2875,2876,2877,2878,2879,2880,2881,2882,2883,2884,2885,2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,2898,2899,2900,2901,2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921,2922,2923,2924,2925,2926,2927,2928,2929,2930,2964,2965,2966,2967,2968,2992,2994,3080,3089,3091,3102,3359,3359,3361,3363,3365,3366,3404,3407,3417,3418,3419,3420,3421,3422,3423,3424,3425,3426,3427,3428,3429,3430,3431,3432,3433,3434,3435,3436,3437,3438,3441,3442,3443,3444,3445,3446,3451,3452,3453,3454,3455,3456,3457,3458,3459,3479,3481,3483,3485,3487,3490,3492,3494,3496,3498,3500,3502,3504,3506,3508,3510,3512,3515,3517,3519,3521,3523,3525,3527,3529,3531,3533,3535,3537,3539,3541,3543,3545,3547,3549,3551,3553,3560,3561,3562,3563,3564,3565,3566,3567,3568,3569,3570,3582,3584,3586,3588,3590,3593,3598,3600,3605,3608,3610,3612,3614,3616,3618,3620,3622,3624,3626,3628,3630,3632,3634,3636,3640,3642,3644,3646,3648,3650,3652,3654,3656,3658,3660,3662,3664,3668,3670,3672,3674,3676,3677,3679,3680,3682,3683,3686,3688,3690,3692,3696,3698,3700,3728,3729,3730,3731,3732,3733,3734,3735,3736,3737,3738,3739,3753,3754,3755,3756,3757,3758,3759,3760,3991,3992,4217,4399,4400,4401,4402,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4418,4419,4420,4421,4422,4423,4424,4425,4426,4427,4428,4429,4430,4431,4432,4433,4438,4439,4455,4456,4457,5466,5588,5589,5623,5624,5625,5646,5654,5655,6128,6129,6141,6200,6201,6202,6391,6405,6407,6409,6411,6413,6416,6418,6420,6422,6424,6426,6428,6430,6432,6434,6436,6438,6441,6443,6445,6447,6449,6451,6453,6455,6457,6459,6461,6463,6465,6467,6469,6471,6473,6475,6477,6479,6484,6486,6488,6490,6492,6494,6496,6499,6501,6503,6505,6507,6510,6515,6517,6519,6521,6523,6525,6527,6529,6531,6533,6535,6537,6539,6541,6543,6545,6547,6549,6551,6553,6555,6557,6559,6561,6563,6565,6568,6570,6572,6574,6576,6578,6582,6584,6586,6588,6590,6593,6595,6597,6599,6601,6603,6605,6607,6609,6612,6614,6616,6618,6625,6626,6627,6633,6785,6787,6789,6791,6793,6795,6797,6799,6801,6803,6805,6807,6809,6811,6813,6815,6817,6819,6821,6823,6825,6827,6829,6831,6833,6835,6837,6839,6841,6843,6845,6847,6849,6851,6853,6855,6857,6859,6861,6863,6868,6880,6885,6887,6923,6925,6966,6997,7057,7058,7059,7060,7061,7062,7063,7064,7065,7066,7067,7068,7069,7070,7119,7120,7121,7122,7123,7124,7125,7126,7127,7128,7132,7258,7260,7262,7264,7266,7268,7270,7272,7274,7276,7278,7280,7282,7284,7286,7288,7290,7292,7294,7296,7298,7300,7302,7304,7306,7308,7310,7312,7314,7316,7318,7320,7322,7324,7326,7328,7330,7332,7334,7336,7338,7340,7342,7344,7346,7348,7350,7352,7354,7356,7358,7360,7362,7364,7366,7368,7370,7558,7587,7588,7589,7590,7591,7592,7593,7594,7595,7596,7597,7598,7599,7600,7601,7602,7603,7604,7605,7606,7607,7608,7609,7610,7611,7612,7613,7614,7615,7616,7617,7618,7619,7620,7621,7622,7623,7624,7625,7626,7627,7628,7629,7630,7631,7632,7633,7634,7635,7636,7637,7638,7639,7640,7641,7642,7643,7644,7645,24100,26729,26730,26731,26732,26733,26734,26735,26736,26737,26738,26739,26740,26741,26742,26743,26744,26745,26746,26747,26748,26749,26750,26751,26752,26753,26754,26755,26756,26757,26758,26759,26760,26766,26767,26768,26769,26770,26771,26772,26773,26774,26775,26776,26777,26778,26779,26780,26781,26782,26783,26784,26785,26786,26787,26791,26792,26793,26794,26795,26796,26797,26798,26799,26801,26802,26803,26811,26812,26813,26814,26815,26819,26820,26821,26822,26825,26826,26830,26831,26832,26833,26836,26837,26841,26842,26843,26844,26847,26848,26849,26850,26851,26852,26853,26854,26855,26856,26857,26858,26859,26860,26861,26862,26863,26864,26865,26866,26867,26868,26869,26870,32001,32002,32003,32005,32006,32007,32008,32009,32010,32011,32012,32013,32014,32015,32016,32017,32018,32019,32020,32021,32022,32023,32024,32025,32026,32027,32028,32029,32030,32031,32033,32034,32035,32036,32037,32038,32039,32040,32041,32042,32043,32044,32045,32046,32047,32048,32049,32050,32051,32052,32053,32054,32055,32056,32057,32058,32064,32065,32066,32067,32074,32075,32076,32077,32099,32164,32165,32166,32167,32664,32665,32666,32667,65061,102120,102121,102629,102630,102631,102632,102633,102634,102635,102636,102637,102638,102639,102640,102641,102642,102643,102644,102645,102646,102648,102649,102650,102651,102652,102653,102654,102655,102656,102657,102658,102659,102660,102661,102662,102663,102664,102665,102666,102667,102668,102669,102670,102671,102672,102673,102674,102675,102676,102677,102678,102679,102680,102681,102682,102683,102684,102685,102686,102687,102688,102689,102690,102691,102692,102693,102694,102695,102696,102697,102698,102700,102704,102707,102708,102709,102710,102711,102712,102713,102714,102715,102716,102717,102718,102719,102720,102721,102722,102723,102724,102725,102726,102727,102728,102729,102730,102733,102734,102735,102736,102737,102738,102739,102740,102741,102742,102743,102744,102745,102746,102747,102748,102749,102750,102751,102752,102753,102754,102755,102756,102757,102758,102761,102766],d=[5614,5702,6130,6131,6132,6358,6359,6360],h=[115700,4326];function m(e){return f.includes(e)?"feet":"meters"}function b(e,t){return"number"==typeof e?d.includes(e)?"feet":"meters":m(t)}function v(e,t){return e&&h.includes(e)||4326===t?"ellipsoidal":"gravity-related-height"}let g=class extends c.Z{constructor(){super(...arguments),this.verticalWKID=null}get isAdvanced(){const{affineTransformations:e,focalLength:t,principalOffsetPoint:o,radialDistortionCoefficients:i,tangentialDistortionCoefficients:r}=this;return e?.length>1&&!Number.isNaN(t)&&o?.length>1&&i?.length>1&&r?.length>1}get unitAndHeightInfo(){const{horizontalWKID:e,verticalWKID:t}=this;let o=e,i=t;const r=this;if(4===r.type){const{properties:e}=r;o=4326,i=e.verticalWKID}return{heightModel:v(i,o),heightUnit:b(i,o),horizontalUnit:m(o)}}};(0,i._)([(0,a.Cb)({json:{write:!0}})],g.prototype,"affineTransformations",void 0),(0,i._)([(0,a.Cb)({json:{write:!0}})],g.prototype,"focalLength",void 0),(0,i._)([(0,a.Cb)({json:{write:!0}})],g.prototype,"principalOffsetPoint",void 0),(0,i._)([(0,a.Cb)({json:{write:!0}})],g.prototype,"radialDistortionCoefficients",void 0),(0,i._)([(0,a.Cb)({json:{write:!0}})],g.prototype,"tangentialDistortionCoefficients",void 0),(0,i._)([(0,a.Cb)({json:{write:!0}})],g.prototype,"horizontalWKID",void 0),(0,i._)([(0,a.Cb)({json:{write:!0}})],g.prototype,"verticalWKID",void 0),(0,i._)([(0,a.Cb)({json:{write:!0}})],g.prototype,"x",void 0),(0,i._)([(0,a.Cb)({json:{write:!0}})],g.prototype,"y",void 0),(0,i._)([(0,a.Cb)({json:{write:!0}})],g.prototype,"z",void 0),(0,i._)([(0,a.Cb)({json:{write:!0}})],g.prototype,"type",void 0),(0,i._)([(0,a.Cb)({readOnly:!0})],g.prototype,"unitAndHeightInfo",null),g=(0,i._)([(0,p.j)("esri.layers.orientedImagery.core.CameraOrientation")],g);const C=g;let _=class extends((0,y.J)((0,u.eC)(C))){constructor(){super(...arguments),this.type=1}toString(){const{type:e,horizontalWKID:t,verticalWKID:o,x:i,y:r,z:n,heading:a,pitch:s,roll:p,affineTransformations:l,focalLength:y,principalOffsetPoint:u,radialDistortionCoefficients:c,tangentialDistortionCoefficients:f}=this,d=[e,t,o,i,r,n,a,s,p];return this.isAdvanced&&(l?.forEach((e=>d.push(e))),d.push(y),u?.forEach((e=>d.push(e))),c?.forEach((e=>d.push(e))),f?.forEach((e=>d.push(e)))),d.map((e=>Number.isNaN(e)?"":e)).join("|")}};(0,i._)([(0,a.Cb)({json:{write:!0}})],_.prototype,"type",void 0),(0,i._)([(0,a.Cb)({type:[Number],json:{write:!0}})],_.prototype,"affineTransformations",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],_.prototype,"focalLength",void 0),(0,i._)([(0,a.Cb)({type:[Number],json:{write:!0}})],_.prototype,"principalOffsetPoint",void 0),(0,i._)([(0,a.Cb)({type:[Number],json:{write:!0}})],_.prototype,"radialDistortionCoefficients",void 0),(0,i._)([(0,a.Cb)({type:[Number],json:{write:!0}})],_.prototype,"tangentialDistortionCoefficients",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],_.prototype,"heading",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],_.prototype,"pitch",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],_.prototype,"roll",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],_.prototype,"horizontalWKID",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],_.prototype,"verticalWKID",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],_.prototype,"x",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],_.prototype,"y",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],_.prototype,"z",void 0),_=(0,i._)([(0,p.j)("esri.layers.orientedImagery.core.CameraOrientationHPR")],_);const j=_;let w=class extends((0,y.J)((0,u.eC)(C))){constructor(){super(...arguments),this.type=2,this.verticalWKID=null}toString(){const{type:e,horizontalWKID:t,verticalWKID:o,x:i,y:r,z:n,omega:a,phi:s,kappa:p,affineTransformations:l,focalLength:y,principalOffsetPoint:u,radialDistortionCoefficients:c,tangentialDistortionCoefficients:f}=this,d=[e,t,o,i,r,n,a,s,p];return this.isAdvanced&&(l?.forEach((e=>d.push(e))),d.push(y),u?.forEach((e=>d.push(e))),c?.forEach((e=>d.push(e))),f?.forEach((e=>d.push(e)))),d.map((e=>isNaN(e)?"":e)).join("|")}};(0,i._)([(0,a.Cb)({json:{write:!0}})],w.prototype,"type",void 0),(0,i._)([(0,a.Cb)({type:[Number],json:{write:!0}})],w.prototype,"affineTransformations",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],w.prototype,"focalLength",void 0),(0,i._)([(0,a.Cb)({type:[Number],json:{write:!0}})],w.prototype,"principalOffsetPoint",void 0),(0,i._)([(0,a.Cb)({type:[Number],json:{write:!0}})],w.prototype,"radialDistortionCoefficients",void 0),(0,i._)([(0,a.Cb)({type:[Number],json:{write:!0}})],w.prototype,"tangentialDistortionCoefficients",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],w.prototype,"omega",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],w.prototype,"phi",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],w.prototype,"kappa",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],w.prototype,"horizontalWKID",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],w.prototype,"verticalWKID",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],w.prototype,"x",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],w.prototype,"y",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],w.prototype,"z",void 0),w=(0,i._)([(0,p.j)("esri.layers.orientedImagery.core.CameraOrientationOPK")],w);const P=w;let N=class extends((0,y.J)((0,u.eC)(C))){constructor(){super(...arguments),this.type=3}get isAdvanced(){const{affineTransformations:e,focalLength:t,principalOffsetPoint:o,radialDistortionCoefficients:i,tangentialDistortionCoefficients:r}=this;return e?.length>1||!Number.isNaN(t)||o?.length>1||i?.length>1||r?.length>1}toString(){const{type:e,horizontalWKID:t,verticalWKID:o,x:i,y:r,z:n,yaw:a,pitch:s,roll:p,affineTransformations:l,focalLength:y,principalOffsetPoint:u,radialDistortionCoefficients:c,tangentialDistortionCoefficients:f}=this,d=[e,t,o,i,r,n,a,s,p];return this.isAdvanced&&(l?.forEach((e=>d.push(e))),d.push(y),u?.forEach((e=>d.push(e))),u?.forEach((e=>d.push(e))),c?.forEach((e=>d.push(e))),f?.forEach((e=>d.push(e)))),d.map((e=>Number.isNaN(e)?"":e)).join("|")}};(0,i._)([(0,a.Cb)({json:{write:!0}})],N.prototype,"type",void 0),(0,i._)([(0,a.Cb)({type:[Number],json:{write:!0}})],N.prototype,"affineTransformations",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],N.prototype,"focalLength",void 0),(0,i._)([(0,a.Cb)({type:[Number],json:{write:!0}})],N.prototype,"principalOffsetPoint",void 0),(0,i._)([(0,a.Cb)({type:[Number],json:{write:!0}})],N.prototype,"radialDistortionCoefficients",void 0),(0,i._)([(0,a.Cb)({type:[Number],json:{write:!0}})],N.prototype,"tangentialDistortionCoefficients",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],N.prototype,"yaw",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],N.prototype,"pitch",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],N.prototype,"roll",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],N.prototype,"horizontalWKID",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],N.prototype,"verticalWKID",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],N.prototype,"x",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],N.prototype,"y",void 0),(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],N.prototype,"z",void 0),N=(0,i._)([(0,p.j)("esri.layers.orientedImagery.core.CameraOrientationYPR")],N);const D=N;o(40371);let I=class extends u.wq{constructor(){super(...arguments),this.url=null}};(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],I.prototype,"lod",void 0),(0,i._)([(0,a.Cb)({type:String,json:{write:!0}})],I.prototype,"rasterFunction",void 0),(0,i._)([(0,a.Cb)({type:String,json:{write:!0}})],I.prototype,"url",void 0),I=(0,i._)([(0,p.j)("esri.layers.orientedImagery.core.ElevationSourceDefinitions.ElevationSource")],I);let x=class extends u.wq{constructor(){super(...arguments),this.constantElevation=null}};(0,i._)([(0,a.Cb)({type:Number,json:{write:!0}})],x.prototype,"constantElevation",void 0),x=(0,i._)([(0,p.j)("esri.layers.orientedImagery.cor.ElevationSourceDefinitions.ConstantElevation")],x);var S;!function(e){e[e.HPR=1]="HPR",e[e.OPK=2]="OPK",e[e.YPR=3]="YPR",e[e.LTP=4]="LTP"}(S||(S={}));var O=o(60435);function K(e,t,o){return e?(e=>null!=e&&"constantElevation"in e&&"number"==typeof e.constantElevation)(e)?new x(e):function(e,t,o){let{url:i}=e;return i?(i=function(e,t,o){return t&&(e=`${t}${e}`),o&&(e+=`${o}`),e}(i,t,o),new I({...e,url:i})):null}(e,t,o):e}const z=new n.X({Minutes:"minutes",Hours:"hours",Days:"days",Weeks:"weeks",Months:"months",Years:"years"}),W=new n.X({360:"360",Horizontal:"horizontal",Inspection:"inspection",Nadir:"nadir",Oblique:"oblique","":null}),T=new Map;T.set(`${S.OPK}`,{desc:"Using Omega Phi Kappa",constructor:P}),T.set(`${S.HPR}`,{desc:"Using Heading, Pitch and Roll",constructor:j}),T.set(`${S.YPR}`,{desc:"Using Yaw, Pitch and Roll",constructor:D});const E=new Map;function L(e,t,o){return{name:`orientedImageryProperties.${e}`,write:!t||{target:`orientedImageryProperties.${e}`,writer:t},origins:{service:{name:`orientedImageryInfo.orientedImageryProperties.${e}`,write:t,read:o}}}}E.set(`${S.HPR}`,(function(e){const[t,o,i,r,n,a,s,p,l,y,u,c,f,d,h,m,b,v,g,C,_,j]=e.slice(1),w=[l,y,u,c,f,d].map((e=>Number(e))),P=[m,b].map((e=>Number(e))),N=[v,g,C],D=[_,j];return{horizontalWKID:t,verticalWKID:o,x:i,y:r,z:n,heading:a,pitch:s,roll:p,affineTransformations:6===w.filter(O.h).length?w:null,focalLength:h,principalOffsetPoint:2!==P.filter(O.h).length?null:P,radialDistortionCoefficients:3!==N.filter(O.h).length?null:N,tangentialDistortionCoefficients:2!==D.filter(O.h).length?null:D}})),E.set(`${S.YPR}`,(function(e){const[t,o,i,r,n,a,s,p,l,y,u,c,f,d,h,m,b,v,g,C,_,j]=e.slice(1),w=[l,y,u,c,f,d].map((e=>Number(e))),P=[m,b].map((e=>Number(e))),N=[v,g,C],D=[_,j];return{horizontalWKID:t,verticalWKID:o,x:i,y:r,z:n,yaw:a,pitch:s,roll:p,affineTransformations:6===w.filter(O.h).length?w:null,focalLength:h,principalOffsetPoint:2!==P.filter(O.h).length?null:P,radialDistortionCoefficients:3!==N.filter(O.h).length?null:N,tangentialDistortionCoefficients:2!==D.filter(O.h).length?null:D}})),E.set(`${S.OPK}`,(function(e){const[t,o,i,r,n,a,s,p,l,y,u,c,f,d,h,m,b,v,g,C,_,j]=e.slice(1),w=[l,y,u,c,f,d].map((e=>Number(e))),P=[m,b].map((e=>Number(e))),N=[v,g,C].map((e=>Number(e))),D=[_,j].map((e=>Number(e)));return{horizontalWKID:t,verticalWKID:o,x:i,y:r,z:n,omega:a,phi:s,kappa:p,affineTransformations:6===w.filter(O.h).length?w:null,focalLength:h,principalOffsetPoint:2!==P.filter(O.h).length?null:P,radialDistortionCoefficients:3!==N.filter(O.h).length?[0,0,0]:N,tangentialDistortionCoefficients:2!==D.filter(O.h).length?[0,0]:D}})),E.set(`${S.LTP}`,(function(e){const[t,o,i,r,n,...a]=e.slice(1),s=E.get(n);return s?{latitude:t,longitude:o,ellipsoidRadius:i,squaredEccentricity:r,properties:s([n,"",...a])}:null}));let R=class extends l.default{constructor(){super(...arguments),this.cameraHeading=null,this.cameraHeight=null,this.cameraPitch=null,this.cameraRoll=null,this.coveragePercent=null,this.demPathPrefix=null,this.demPathSuffix=null,this.depthImagePathPrefix=null,this.depthImagePathSuffix=null,this.elevationSource=null,this.farDistance=null,this.geometryType="point",this.horizontalFieldOfView=null,this.horizontalMeasurementUnit=null,this.imagePathPrefix=null,this.imagePathSuffix=null,this.imageRotation=null,this.maximumDistance=null,this.nearDistance=null,this.operationalLayerType="OrientedImageryLayer",this.orientationAccuracy=null,this.orientedImageryType=null,this.type="oriented-imagery",this.timeIntervalUnit=null,this.verticalFieldOfView=null,this.verticalMeasurementUnit=null,this.videoPathPrefix=null,this.videoPathSuffix=null}get effectiveElevationSource(){const{elevationSource:e,demPathPrefix:t,demPathSuffix:o}=this;return K(e,t,o)}findFirstValidLayerId(e){return e.layers?.find((e=>"Oriented Imagery Layer"===e.type))?.id}_verifySource(){if(super._verifySource(),"point"!==this.geometryType)throw new r.Z("oriented-imagery-layer:invalid-geometry-type","OrientedImageryLayer only supports point geometry type")}};(0,i._)([(0,a.Cb)({type:Number,json:L("cameraHeading")})],R.prototype,"cameraHeading",void 0),(0,i._)([(0,a.Cb)({type:Number,json:L("cameraHeight")})],R.prototype,"cameraHeight",void 0),(0,i._)([(0,a.Cb)({type:Number,json:L("cameraPitch")})],R.prototype,"cameraPitch",void 0),(0,i._)([(0,a.Cb)({type:Number,json:L("cameraRoll")})],R.prototype,"cameraRoll",void 0),(0,i._)([(0,a.Cb)({type:Number,json:L("coveragePercent")})],R.prototype,"coveragePercent",void 0),(0,i._)([(0,a.Cb)({type:String,json:L("demPathPrefix")})],R.prototype,"demPathPrefix",void 0),(0,i._)([(0,a.Cb)({type:String,json:L("demPathSuffix")})],R.prototype,"demPathSuffix",void 0),(0,i._)([(0,a.Cb)({type:String,json:L("depthImagePathPrefix")})],R.prototype,"depthImagePathPrefix",void 0),(0,i._)([(0,a.Cb)({type:String,json:L("depthImagePathSuffix")})],R.prototype,"depthImagePathSuffix",void 0),(0,i._)([(0,a.Cb)({type:Object,json:L("elevationSource")})],R.prototype,"elevationSource",void 0),(0,i._)([(0,a.Cb)()],R.prototype,"effectiveElevationSource",null),(0,i._)([(0,a.Cb)({type:Number,json:L("farDistance")})],R.prototype,"farDistance",void 0),(0,i._)([(0,a.Cb)({json:{write:!0}})],R.prototype,"geometryType",void 0),(0,i._)([(0,a.Cb)({type:Number,json:L("horizontalFieldOfView")})],R.prototype,"horizontalFieldOfView",void 0),(0,i._)([(0,a.Cb)({type:String,json:L("horizontalMeasurementUnit")})],R.prototype,"horizontalMeasurementUnit",void 0),(0,i._)([(0,a.Cb)({type:String,json:L("imagePathPrefix")})],R.prototype,"imagePathPrefix",void 0),(0,i._)([(0,a.Cb)({type:String,json:L("imagePathSuffix")})],R.prototype,"imagePathSuffix",void 0),(0,i._)([(0,a.Cb)({type:Number,json:L("imageRotation")})],R.prototype,"imageRotation",void 0),(0,i._)([(0,a.Cb)({type:Number,json:L("maximumDistance")})],R.prototype,"maximumDistance",void 0),(0,i._)([(0,a.Cb)({type:Number,json:L("nearDistance")})],R.prototype,"nearDistance",void 0),(0,i._)([(0,a.Cb)({type:["OrientedImageryLayer"]})],R.prototype,"operationalLayerType",void 0),(0,i._)([(0,a.Cb)({json:L("orientationAccuracy",((e,t)=>{e&&(t.orientationAccuracy=e.join(","))}))}),(0,s.p)((e=>e?e.trim().split(",").map(Number):null))],R.prototype,"orientationAccuracy",void 0),(0,i._)([(0,a.Cb)({json:{...L("orientedImageryType",W.write,W.read),type:W.apiValues}})],R.prototype,"orientedImageryType",void 0),(0,i._)([(0,a.Cb)({json:{read:!1},value:"oriented-imagery",readOnly:!0})],R.prototype,"type",void 0),(0,i._)([(0,a.Cb)({json:{...L("timeIntervalUnit",z.write,z.read),type:z.apiValues}})],R.prototype,"timeIntervalUnit",void 0),(0,i._)([(0,a.Cb)({type:Number,json:L("verticalFieldOfView")})],R.prototype,"verticalFieldOfView",void 0),(0,i._)([(0,a.Cb)({json:{...L("verticalMeasurementUnit"),type:new n.X({Feet:"feet",Meter:"meter"}).apiValues}})],R.prototype,"verticalMeasurementUnit",void 0),(0,i._)([(0,a.Cb)({type:String,json:L("videoPathPrefix")})],R.prototype,"videoPathPrefix",void 0),(0,i._)([(0,a.Cb)({type:String,json:L("videoPathSuffix")})],R.prototype,"videoPathSuffix",void 0),R=(0,i._)([(0,p.j)("esri.layers.OrientedImageryLayer")],R);const H=R},40371:function(e,t,o){o.d(t,{T:function(){return r}});var i=o(66341);async function r(e,t){const{data:o}=await(0,i.Z)(e,{responseType:"json",query:{f:"json",...t?.customParameters,token:t?.apiKey}});return o}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9859.b853d92a999cd6d1cbba.js b/docs/sentinel1-explorer/9859.b853d92a999cd6d1cbba.js new file mode 100644 index 00000000..76b888e2 --- /dev/null +++ b/docs/sentinel1-explorer/9859.b853d92a999cd6d1cbba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9859],{89859:function(e,t,l){l.r(t),l.d(t,{default:function(){return x}});var r,o=l(36663),s=(l(91957),l(66341)),i=l(70375),n=l(15842),a=l(21130),p=l(3466),u=l(81977),c=(l(39994),l(13802),l(4157),l(34248)),y=l(40266),h=l(39835),d=l(38481),m=l(27668),f=l(43330),v=l(18241),w=l(12478),b=l(95874),g=l(4452),Z=l(13054),T=l(81590),_=l(14790),C=l(91772),R=l(14685),j=l(67666);let S=r=class extends((0,m.h)((0,w.Q)((0,b.M)((0,f.q)((0,v.I)((0,n.R)(d.Z))))))){constructor(...e){super(...e),this.copyright="",this.fullExtent=new C.Z(-20037508.342787,-20037508.34278,20037508.34278,20037508.342787,R.Z.WebMercator),this.legendEnabled=!1,this.isReference=null,this.popupEnabled=!1,this.spatialReference=R.Z.WebMercator,this.subDomains=null,this.tileInfo=new T.Z({size:[256,256],dpi:96,format:"png8",compressionQuality:0,origin:new j.Z({x:-20037508.342787,y:20037508.342787,spatialReference:R.Z.WebMercator}),spatialReference:R.Z.WebMercator,lods:[new Z.Z({level:0,scale:591657527.591555,resolution:156543.033928}),new Z.Z({level:1,scale:295828763.795777,resolution:78271.5169639999}),new Z.Z({level:2,scale:147914381.897889,resolution:39135.7584820001}),new Z.Z({level:3,scale:73957190.948944,resolution:19567.8792409999}),new Z.Z({level:4,scale:36978595.474472,resolution:9783.93962049996}),new Z.Z({level:5,scale:18489297.737236,resolution:4891.96981024998}),new Z.Z({level:6,scale:9244648.868618,resolution:2445.98490512499}),new Z.Z({level:7,scale:4622324.434309,resolution:1222.99245256249}),new Z.Z({level:8,scale:2311162.217155,resolution:611.49622628138}),new Z.Z({level:9,scale:1155581.108577,resolution:305.748113140558}),new Z.Z({level:10,scale:577790.554289,resolution:152.874056570411}),new Z.Z({level:11,scale:288895.277144,resolution:76.4370282850732}),new Z.Z({level:12,scale:144447.638572,resolution:38.2185141425366}),new Z.Z({level:13,scale:72223.819286,resolution:19.1092570712683}),new Z.Z({level:14,scale:36111.909643,resolution:9.55462853563415}),new Z.Z({level:15,scale:18055.954822,resolution:4.77731426794937}),new Z.Z({level:16,scale:9027.977411,resolution:2.38865713397468}),new Z.Z({level:17,scale:4513.988705,resolution:1.19432856685505}),new Z.Z({level:18,scale:2256.994353,resolution:.597164283559817}),new Z.Z({level:19,scale:1128.497176,resolution:.298582141647617}),new Z.Z({level:20,scale:564.248588,resolution:.14929107082380833}),new Z.Z({level:21,scale:282.124294,resolution:.07464553541190416}),new Z.Z({level:22,scale:141.062147,resolution:.03732276770595208}),new Z.Z({level:23,scale:70.5310735,resolution:.01866138385297604})]}),this.type="web-tile",this.urlTemplate=null,this.wmtsInfo=null}normalizeCtorArgs(e,t){return"string"==typeof e?{urlTemplate:e,...t}:e}load(e){const t=this.loadFromPortal({supportedTypes:["WMTS"]},e).then((()=>{let e="";if(this.urlTemplate)if(this.spatialReference.equals(this.tileInfo.spatialReference)){const t=new p.R9(this.urlTemplate);!(this.subDomains&&this.subDomains.length>0)&&t.authority?.includes("{subDomain}")&&(e="is missing 'subDomains' property")}else e="spatialReference must match tileInfo.spatialReference";else e="is missing the required 'urlTemplate' property value";if(e)throw new i.Z("web-tile-layer:load",`WebTileLayer (title: '${this.title}', id: '${this.id}') ${e}`)}));return this.addResolvingPromise(t),Promise.resolve(this)}get levelValues(){const e=[];if(!this.tileInfo)return null;for(const t of this.tileInfo.lods)e[t.level]=t.levelValue||t.level;return e}readSpatialReference(e,t){return e||R.Z.fromJSON(t.fullExtent?.spatialReference)}get tileServers(){if(!this.urlTemplate)return null;const e=[],{urlTemplate:t,subDomains:l}=this,r=new p.R9(t),o=r.scheme?r.scheme+"://":"//",s=o+r.authority+"/",i=r.authority;if(i?.includes("{subDomain}")){if(l&&l.length>0&&i.split(".").length>1)for(const t of l)e.push(o+i.replaceAll(/\{subDomain\}/gi,t)+"/")}else e.push(s);return e.map(p.xs)}get urlPath(){if(!this.urlTemplate)return null;const e=this.urlTemplate,t=new p.R9(e),l=(t.scheme?t.scheme+"://":"//")+t.authority+"/";return e.substring(l.length)}readUrlTemplate(e,t){return e||t.templateUrl}writeUrlTemplate(e,t){(0,p.oC)(e)&&(e="https:"+e),e&&(e=e.replaceAll(/\{z\}/gi,"{level}").replaceAll(/\{x\}/gi,"{col}").replaceAll(/\{y\}/gi,"{row}"),e=(0,p.Fv)(e)),t.templateUrl=e}fetchTile(e,t,l,r={}){const{signal:o}=r,i=this.getTileUrl(e,t,l),n={responseType:"image",signal:o,query:{...this.refreshParameters}};return(0,s.Z)(i,n).then((e=>e.data))}async fetchImageBitmapTile(e,t,l,o={}){const{signal:i}=o;if(this.fetchTile!==r.prototype.fetchTile){const r=await this.fetchTile(e,t,l,o);return(0,g.V)(r,e,t,l,i)}const n=this.getTileUrl(e,t,l),a={responseType:"blob",signal:i,query:{...this.refreshParameters}},{data:p}=await(0,s.Z)(n,a);return(0,g.V)(p,e,t,l,i)}getTileUrl(e,t,l){const{levelValues:r,tileServers:o,urlPath:s}=this;if(!r||!o||!s)return"";const i=r[e];return o[t%o.length]+(0,a.gx)(s,{level:i,z:i,col:l,x:l,row:t,y:t})}};(0,o._)([(0,u.Cb)({type:String,value:"",json:{write:!0}})],S.prototype,"copyright",void 0),(0,o._)([(0,u.Cb)({type:C.Z,json:{write:!0},nonNullable:!0})],S.prototype,"fullExtent",void 0),(0,o._)([(0,u.Cb)({readOnly:!0,json:{read:!1,write:!1}})],S.prototype,"legendEnabled",void 0),(0,o._)([(0,u.Cb)({type:["show","hide"]})],S.prototype,"listMode",void 0),(0,o._)([(0,u.Cb)({json:{read:!0,write:!0}})],S.prototype,"blendMode",void 0),(0,o._)([(0,u.Cb)()],S.prototype,"levelValues",null),(0,o._)([(0,u.Cb)({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],S.prototype,"isReference",void 0),(0,o._)([(0,u.Cb)({type:["WebTiledLayer"],value:"WebTiledLayer"})],S.prototype,"operationalLayerType",void 0),(0,o._)([(0,u.Cb)({readOnly:!0,json:{read:!1,write:!1}})],S.prototype,"popupEnabled",void 0),(0,o._)([(0,u.Cb)({type:R.Z})],S.prototype,"spatialReference",void 0),(0,o._)([(0,c.r)("spatialReference",["spatialReference","fullExtent.spatialReference"])],S.prototype,"readSpatialReference",null),(0,o._)([(0,u.Cb)({type:[String],json:{write:!0}})],S.prototype,"subDomains",void 0),(0,o._)([(0,u.Cb)({type:T.Z,json:{write:!0}})],S.prototype,"tileInfo",void 0),(0,o._)([(0,u.Cb)({readOnly:!0})],S.prototype,"tileServers",null),(0,o._)([(0,u.Cb)({json:{read:!1}})],S.prototype,"type",void 0),(0,o._)([(0,u.Cb)()],S.prototype,"urlPath",null),(0,o._)([(0,u.Cb)({type:String,json:{origins:{"portal-item":{read:{source:"url"}}}}})],S.prototype,"urlTemplate",void 0),(0,o._)([(0,c.r)("urlTemplate",["urlTemplate","templateUrl"])],S.prototype,"readUrlTemplate",null),(0,o._)([(0,h.c)("urlTemplate",{templateUrl:{type:String}})],S.prototype,"writeUrlTemplate",null),(0,o._)([(0,u.Cb)({type:_.B,json:{write:!0}})],S.prototype,"wmtsInfo",void 0),S=r=(0,o._)([(0,y.j)("esri.layers.WebTileLayer")],S);const x=S},14790:function(e,t,l){l.d(t,{B:function(){return p}});var r,o=l(36663),s=l(82064),i=l(67134),n=l(81977),a=(l(39994),l(13802),l(40266));let p=r=class extends s.wq{constructor(e){super(e)}clone(){return new r({customLayerParameters:(0,i.d9)(this.customLayerParameters),customParameters:(0,i.d9)(this.customParameters),layerIdentifier:this.layerIdentifier,tileMatrixSet:this.tileMatrixSet,url:this.url})}};(0,o._)([(0,n.Cb)({json:{type:Object,write:!0}})],p.prototype,"customLayerParameters",void 0),(0,o._)([(0,n.Cb)({json:{type:Object,write:!0}})],p.prototype,"customParameters",void 0),(0,o._)([(0,n.Cb)({type:String,json:{write:!0}})],p.prototype,"layerIdentifier",void 0),(0,o._)([(0,n.Cb)({type:String,json:{write:!0}})],p.prototype,"tileMatrixSet",void 0),(0,o._)([(0,n.Cb)({type:String,json:{write:!0}})],p.prototype,"url",void 0),p=r=(0,o._)([(0,a.j)("esri.layer.support.WMTSLayerInfo")],p)}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9862.aec2be77ffbf48243391.js b/docs/sentinel1-explorer/9862.aec2be77ffbf48243391.js new file mode 100644 index 00000000..cf313acd --- /dev/null +++ b/docs/sentinel1-explorer/9862.aec2be77ffbf48243391.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9862,9859],{69862:function(e,t,r){r.r(t),r.d(t,{default:function(){return ge}});var i,l=r(36663),s=r(66341),o=r(7753),n=r(6865),a=r(70375),u=r(67134),p=r(15842),c=r(86745),d=r(78668),m=r(76868),h=r(3466),y=r(81977),f=(r(39994),r(13802),r(34248)),g=r(40266),w=r(39835),v=r(91772),x=r(38481),b=r(89859),C=r(27668),S=r(43330),M=r(18241),T=r(12478),I=r(95874),_=r(4452),L=r(81590),P=r(88289),E=r(14790),R=r(82064);r(4157);let Z=i=class extends R.wq{constructor(e){super(e),this.fullExtent=null,this.id=null,this.tileInfo=null}clone(){const e=new i;return this.hasOwnProperty("fullExtent")&&(e.fullExtent=this.fullExtent&&this.fullExtent.clone()),this.hasOwnProperty("id")&&(e.id=this.id),this.hasOwnProperty("tileInfo")&&(e.tileInfo=this.tileInfo&&this.tileInfo.clone()),e}};(0,l._)([(0,y.Cb)({type:v.Z,json:{read:{source:"fullExtent"}}})],Z.prototype,"fullExtent",void 0),(0,l._)([(0,y.Cb)({type:String,json:{read:{source:"id"}}})],Z.prototype,"id",void 0),(0,l._)([(0,y.Cb)({type:L.Z,json:{read:{source:"tileInfo"}}})],Z.prototype,"tileInfo",void 0),Z=i=(0,l._)([(0,g.j)("esri.layer.support.TileMatrixSet")],Z);const A=Z;var O;let j=O=class extends R.wq{constructor(e){super(e),this.id=null,this.title=null,this.description=null,this.legendUrl=null}clone(){const e=new O;return this.hasOwnProperty("description")&&(e.description=this.description),this.hasOwnProperty("id")&&(e.id=this.id),this.hasOwnProperty("isDefault")&&(e.isDefault=this.isDefault),this.hasOwnProperty("keywords")&&(e.keywords=this.keywords&&this.keywords.slice()),this.hasOwnProperty("legendUrl")&&(e.legendUrl=this.legendUrl),this.hasOwnProperty("title")&&(e.title=this.title),e}};(0,l._)([(0,y.Cb)({json:{read:{source:"id"}}})],j.prototype,"id",void 0),(0,l._)([(0,y.Cb)({json:{read:{source:"title"}}})],j.prototype,"title",void 0),(0,l._)([(0,y.Cb)({json:{read:{source:"abstract"}}})],j.prototype,"description",void 0),(0,l._)([(0,y.Cb)({json:{read:{source:"legendUrl"}}})],j.prototype,"legendUrl",void 0),(0,l._)([(0,y.Cb)({json:{read:{source:"isDefault"}}})],j.prototype,"isDefault",void 0),(0,l._)([(0,y.Cb)({json:{read:{source:"keywords"}}})],j.prototype,"keywords",void 0),j=O=(0,l._)([(0,g.j)("esri.layer.support.WMTSStyle")],j);const F=j;var U;let V=U=class extends R.wq{constructor(e){super(e),this.description=null,this.fullExtent=null,this.fullExtents=null,this.id=null,this.imageFormats=null,this.layer=null,this.parent=null,this.styles=null,this.title=null,this.tileMatrixSetId=null,this.tileMatrixSets=null}readFullExtent(e,t){return(e=t.fullExtent)?v.Z.fromJSON(e):null}readFullExtents(e,t){return t.fullExtents?.length?t.fullExtents.map((e=>v.Z.fromJSON(e))):t.tileMatrixSets?.map((e=>v.Z.fromJSON(e.fullExtent))).filter((e=>e))??[]}get imageFormat(){let e=this._get("imageFormat");return e||(e=this.imageFormats&&this.imageFormats.length?this.imageFormats[0]:""),e}set imageFormat(e){const t=this.imageFormats;e&&(e.includes("image/")||t&&!t.includes(e))&&(e.includes("image/")||(e="image/"+e),t&&!t.includes(e))||this._set("imageFormat",e)}get styleId(){let e=this._get("styleId");return e||(e=this.styles?.at(0)?.id??""),e}set styleId(e){this._set("styleId",e)}get tileMatrixSet(){return this.tileMatrixSets?this.tileMatrixSets.find((e=>e.id===this.tileMatrixSetId)):null}clone(){const e=new U;return this.hasOwnProperty("description")&&(e.description=this.description),this.hasOwnProperty("imageFormats")&&(e.imageFormats=this.imageFormats&&this.imageFormats.slice()),this.hasOwnProperty("imageFormat")&&(e.imageFormat=this.imageFormat),this.hasOwnProperty("fullExtent")&&(e.fullExtent=this.fullExtent?.clone()),this.hasOwnProperty("id")&&(e.id=this.id),this.hasOwnProperty("layer")&&(e.layer=this.layer),this.hasOwnProperty("styleId")&&(e.styleId=this.styleId),this.hasOwnProperty("styles")&&(e.styles=this.styles?.clone()),this.hasOwnProperty("tileMatrixSetId")&&(e.tileMatrixSetId=this.tileMatrixSetId),this.hasOwnProperty("tileMatrixSets")&&(e.tileMatrixSets=this.tileMatrixSets?.clone()),this.hasOwnProperty("title")&&(e.title=this.title),e}};(0,l._)([(0,y.Cb)()],V.prototype,"description",void 0),(0,l._)([(0,y.Cb)()],V.prototype,"fullExtent",void 0),(0,l._)([(0,f.r)("fullExtent",["fullExtent"])],V.prototype,"readFullExtent",null),(0,l._)([(0,y.Cb)({readOnly:!0})],V.prototype,"fullExtents",void 0),(0,l._)([(0,f.r)("fullExtents",["fullExtents","tileMatrixSets"])],V.prototype,"readFullExtents",null),(0,l._)([(0,y.Cb)()],V.prototype,"id",void 0),(0,l._)([(0,y.Cb)()],V.prototype,"imageFormat",null),(0,l._)([(0,y.Cb)({json:{read:{source:"formats"}}})],V.prototype,"imageFormats",void 0),(0,l._)([(0,y.Cb)()],V.prototype,"layer",void 0),(0,l._)([(0,y.Cb)()],V.prototype,"parent",void 0),(0,l._)([(0,y.Cb)()],V.prototype,"styleId",null),(0,l._)([(0,y.Cb)({type:n.Z.ofType(F),json:{read:{source:"styles"}}})],V.prototype,"styles",void 0),(0,l._)([(0,y.Cb)({json:{write:{ignoreOrigin:!0}}})],V.prototype,"title",void 0),(0,l._)([(0,y.Cb)()],V.prototype,"tileMatrixSetId",void 0),(0,l._)([(0,y.Cb)({readOnly:!0})],V.prototype,"tileMatrixSet",null),(0,l._)([(0,y.Cb)({type:n.Z.ofType(A),json:{read:{source:"tileMatrixSets"}}})],V.prototype,"tileMatrixSets",void 0),V=U=(0,l._)([(0,g.j)("esri.layers.support.WMTSSublayer")],V);const N=V;var W=r(69442),k=r(67666),D=r(36644),B=r(73616),q=r(94477),K=r(13054);const $=90.71428571428571;function J(e){const t=e.replaceAll(/ows:/gi,"");if(!G("Contents",(new DOMParser).parseFromString(t,"text/xml").documentElement))throw new a.Z("wmtslayer:wmts-capabilities-xml-is-not-valid","the wmts get capabilities response is not compliant",{text:e})}function z(e){return e.nodeType===Node.ELEMENT_NODE}function G(e,t){for(let r=0;re.textContent)).filter(o.pC)}function Y(e,t){return e.split(">").forEach((e=>{t&&(t=G(e,t))})),t&&t.textContent}function X(e,t,r,i){let l;return Array.prototype.slice.call(i.childNodes).some((i=>{if(i.nodeName.includes(e)){const e=G(t,i),s=e?.textContent;if(s===r||r.split(":")&&r.split(":")[1]===s)return l=i,!0}return!1})),l}function ee(e,t,r,i,l){const s=Y("Abstract",t),o=Q("Format",t);return{id:e,fullExtent:ie(t),fullExtents:le(t),description:s,formats:o,styles:se(t,i),title:Y("Title",t),tileMatrixSets:oe(l,t,r)}}function te(e,t){const r=[],i=e.layerMap?.get(t);if(!i)return null;const l=H("ResourceURL",i),s=H("Dimension",i);let o,n,a,u;return s.length&&(o=Y("Identifier",s[0]),n=Q("Default",s[0])||Q("Value",s[0])),s.length>1&&(a=Y("Identifier",s[1]),u=Q("Default",s[1])||Q("Value",s[1])),e.dimensionMap.set(t,{dimensions:n,dimensions2:u}),l.forEach((e=>{let t=e.getAttribute("template");if("tile"===e.getAttribute("resourceType")){if(o&&n.length)if(t.includes("{"+o+"}"))t=t.replace("{"+o+"}","{dimensionValue}");else{const e=t.toLowerCase().indexOf("{"+o.toLowerCase()+"}");e>-1&&(t=t.substring(0,e)+"{dimensionValue}"+t.substring(e+o.length+2))}if(a&&u.length)if(t.includes("{"+a+"}"))t=t.replace("{"+a+"}","{dimensionValue2}");else{const e=t.toLowerCase().indexOf("{"+a.toLowerCase()+"}");e>-1&&(t=t.substring(0,e)+"{dimensionValue2}"+t.substring(e+a.length+2))}r.push({template:t,format:e.getAttribute("format"),resourceType:"tile"})}})),r}function re(e,t,r,i,l,s,o,n){const a=function(e,t,r){const i=te(e,t),l=i?.filter((e=>e.format===r));return(l?.length?l:i)??[]}(e,t,i);if(!(a?.length>0))return"";const{dimensionMap:u}=e,p=u.get(t).dimensions?.[0],c=u.get(t).dimensions2?.[0];return a[o%a.length].template.replaceAll(/\{Style\}/gi,l??"").replaceAll(/\{TileMatrixSet\}/gi,r??"").replaceAll(/\{TileMatrix\}/gi,s).replaceAll(/\{TileRow\}/gi,""+o).replaceAll(/\{TileCol\}/gi,""+n).replaceAll(/\{dimensionValue\}/gi,p).replaceAll(/\{dimensionValue2\}/gi,c)}function ie(e){const t=G("WGS84BoundingBox",e),r=t?Y("LowerCorner",t).split(" "):["-180","-90"],i=t?Y("UpperCorner",t).split(" "):["180","90"];return{xmin:parseFloat(r[0]),ymin:parseFloat(r[1]),xmax:parseFloat(i[0]),ymax:parseFloat(i[1]),spatialReference:{wkid:4326}}}function le(e){const t=[];return(0,q.h)(e,{BoundingBox:e=>{if(!e.getAttribute("crs"))return;const r=e.getAttribute("crs").toLowerCase(),i=ne(r),l=r.includes("epsg")&&(0,B.A)(i.wkid);let s,o,n,a;(0,q.h)(e,{LowerCorner:e=>{[s,o]=e.textContent.split(" ").map((e=>Number.parseFloat(e))),l&&([s,o]=[o,s])},UpperCorner:e=>{[n,a]=e.textContent.split(" ").map((e=>Number.parseFloat(e))),l&&([n,a]=[a,n])}}),t.push({xmin:s,ymin:o,xmax:n,ymax:a,spatialReference:i})}}),t}function se(e,t){return H("Style",e).map((e=>{const r=G("LegendURL",e),i=G("Keywords",e),l=i?Q("Keyword",i):[];let s=r&&r.getAttribute("xlink:href");return t&&(s=s&&s.replace(/^http:/i,"https:")),{abstract:Y("Abstract",e),id:Y("Identifier",e),isDefault:"true"===e.getAttribute("isDefault"),keywords:l,legendUrl:s,title:Y("Title",e)}}))}function oe(e,t,r){return H("TileMatrixSetLink",t).map((t=>function(e,t,r){const i=G("TileMatrixSet",t).textContent,l=Q("TileMatrix",t),s=r.find((e=>{const t=G("Identifier",e),r=t?.textContent;return!!(r===i||i.split(":")&&i.split(":")[1]===r)})),o=G("TileMatrixSetLimits",t),n=o&&H("TileMatrixLimits",o),a=new Map;if(n?.length)for(const e of n){const t=G("TileMatrix",e).textContent,r=+G("MinTileRow",e).textContent,i=+G("MaxTileRow",e).textContent,l=+G("MinTileCol",e).textContent,s=+G("MaxTileCol",e).textContent;a.set(t,{minCol:l,maxCol:s,minRow:r,maxRow:i})}const u=Y("SupportedCRS",s).toLowerCase(),p=function(e,t){return ae(G("TileMatrix",e),t)}(s,u),c=p.spatialReference,d=G("TileMatrix",s),m=[parseInt(Y("TileWidth",d),10),parseInt(Y("TileHeight",d),10)],h=[];l.length?l.forEach(((e,t)=>{const r=X("TileMatrix","Identifier",e,s);h.push(de(r,u,t,i,a))})):H("TileMatrix",s).forEach(((e,t)=>{h.push(de(e,u,t,i,a))}));const y=function(e,t,r,i,l){const s=G("BoundingBox",t);let o,n,a,u,p,c;if(s&&(o=Y("LowerCorner",s).split(" "),n=Y("UpperCorner",s).split(" ")),o&&o.length>1&&n&&n.length>1)a=parseFloat(o[0]),p=parseFloat(o[1]),u=parseFloat(n[0]),c=parseFloat(n[1]);else{const e=G("TileMatrix",t),s=parseInt(Y("MatrixWidth",e),10),o=parseInt(Y("MatrixHeight",e),10);a=r.x,c=r.y,u=a+s*i[0]*l.resolution,p=c-o*i[1]*l.resolution}return function(e,t,r){return"1.0.0"===e&&(0,B.A)(t.wkid)&&!(r.spatialReference.isGeographic&&r.x<-90&&r.y>=-90)}(e,r.spatialReference,r)?new v.Z(p,a,c,u,r.spatialReference):new v.Z(a,p,u,c,r.spatialReference)}(e,s,p,m,h[0]).toJSON(),f=new L.Z({dpi:96,spatialReference:c,size:m,origin:p,lods:h}).toJSON();return{id:i,fullExtent:y,tileInfo:f}}(e,t,r)))}function ne(e){e=e.toLowerCase();let t=parseInt(e.split(":").pop(),10);900913!==t&&3857!==t||(t=102100);const r=function(e){return e.includes("crs84")||e.includes("crs:84")?ue.CRS84:e.includes("crs83")||e.includes("crs:83")?ue.CRS83:e.includes("crs27")||e.includes("crs:27")?ue.CRS27:null}(e);return null!=r&&(t=r),{wkid:t}}function ae(e,t){const r=ne(t),[i,l]=Y("TopLeftCorner",e).split(" ").map((e=>parseFloat(e))),s=t.includes("epsg")&&(0,B.A)(r.wkid);return new k.Z(s?{x:l,y:i,spatialReference:r}:{x:i,y:l,spatialReference:r})}var ue,pe,ce;function de(e,t,r,i,l){const s=ne(t),o=Y("Identifier",e);let n=parseFloat(Y("ScaleDenominator",e));const a=me(s.wkid,n,i);n*=96/$;const u=+Y("MatrixWidth",e),p=+Y("MatrixHeight",e),{maxCol:c=u-1,maxRow:d=p-1,minCol:m=0,minRow:h=0}=l.get(o)??{},{x:y,y:f}=ae(e,t);return new K.Z({cols:[m,c],level:r,levelValue:o,origin:[y,f],scale:n,resolution:a,rows:[h,d]})}function me(e,t,r){let i;return i=D.Z.hasOwnProperty(""+e)?D.Z.values[D.Z[e]]:"default028mm"===r?6370997*Math.PI/180:(0,W.e8)(e).metersPerDegree,7*t/25e3/i}(pe=ue||(ue={}))[pe.CRS84=4326]="CRS84",pe[pe.CRS83=4269]="CRS83",pe[pe.CRS27=4267]="CRS27";const he={"image/png":".png","image/png8":".png","image/png24":".png","image/png32":".png","image/jpg":".jpg","image/jpeg":".jpeg","image/gif":".gif","image/bmp":".bmp","image/tiff":".tif","image/jpgpng":"","image/jpegpng":"","image/unknown":""},ye=new Set(["version","service","request","layer","style","format","tilematrixset","tilematrix","tilerow","tilecol"]);let fe=ce=class extends((0,C.h)((0,T.Q)((0,I.M)((0,S.q)((0,M.I)((0,p.R)(x.Z))))))){constructor(...e){super(...e),this.activeLayer=null,this.copyright="",this.customParameters=null,this.customLayerParameters=null,this.fullExtent=null,this.operationalLayerType="WebTiledLayer",this.resourceInfo=null,this.serviceMode="RESTful",this.sublayers=null,this.type="wmts",this.version="1.0.0",this.addHandles([(0,m.YP)((()=>this.activeLayer),((e,t)=>{t&&!this.sublayers?.includes(t)&&(t.layer=null,t.parent=null),e&&(e.layer=this,e.parent=this)}),m.Z_),(0,m.on)((()=>this.sublayers),"after-add",(({item:e})=>{e.layer=this,e.parent=this}),m.Z_),(0,m.on)((()=>this.sublayers),"after-remove",(({item:e})=>{e.layer=null,e.parent=null}),m.Z_),(0,m.YP)((()=>this.sublayers),((e,t)=>{if(t)for(const e of t)e.layer=null,e.parent=null;if(e)for(const t of e)t.layer=this,t.parent=this}),m.Z_)])}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["WMTS"]},e).catch(d.r9).then((()=>this._fetchService(e))).catch((e=>{throw(0,d.r9)(e),new a.Z("wmtslayer:unsupported-service-data","Invalid response from the WMTS service.",{error:e})}))),Promise.resolve(this)}readActiveLayerFromService(e,t,r){this.activeLayer||(this.activeLayer=new N);let i=t.layers.find((e=>e.id===this.activeLayer.id));return i||(i=t.layers[0]),this.activeLayer.read(i,r),this.activeLayer}readActiveLayerFromItemOrWebDoc(e,t){const{templateUrl:r,wmtsInfo:i}=t,l=r?this._getLowerCasedUrlParams(r):null,s=i?.layerIdentifier;let o=null;const n=i?.tileMatrixSet;n&&(Array.isArray(n)?n.length&&(o=n[0]):o=n);const a=l?.format,u=l?.style;return new N({id:s,imageFormat:a,styleId:u,tileMatrixSetId:o})}writeActiveLayer(e,t,r,i){const l=this.activeLayer;t.templateUrl=this.getUrlTemplate(l.id,l.tileMatrixSetId,l.imageFormat,l.styleId);const s=(0,c.hS)("tileMatrixSet.tileInfo",l);t.tileInfo=s?s.toJSON(i):null,t.wmtsInfo={...t.wmtsInfo,layerIdentifier:l.id,tileMatrixSet:l.tileMatrixSetId}}readCustomParameters(e,t){const r=t.wmtsInfo;return r?this._mergeParams(r.customParameters,r.url):null}get fullExtents(){return this.activeLayer.fullExtents}readServiceMode(e,t){return t.templateUrl.includes("?")?"KVP":"RESTful"}readSublayersFromService(e,t,r){return function(e,t){return e.map((e=>{const r=new N;return r.read(e,t),r}))}(t.layers,r)}get supportedSpatialReferences(){return this.activeLayer.tileMatrixSets?.map((e=>e.tileInfo?.spatialReference)).toArray().filter(o.pC)??[]}get tilemapCache(){const e=this.activeLayer?.tileMatrixSet?.tileInfo;return e?new P.Z(e):void 0}get title(){return this.activeLayer?.title??"Layer"}set title(e){this._overrideIfSome("title",e)}get url(){return this._get("url")}set url(e){e&&"/"===e.substr(-1)?this._set("url",e.slice(0,-1)):this._set("url",e)}createWebTileLayer(e){const t=this.getUrlTemplate(this.activeLayer.id,this.activeLayer.tileMatrixSetId,this.activeLayer.imageFormat,this.activeLayer.styleId),r=this._getTileMatrixSetById(e.tileMatrixSetId),i=r?.tileInfo,l=e.fullExtent,s=new E.B({layerIdentifier:e.id,tileMatrixSet:e.tileMatrixSetId,url:this.url});return this.customLayerParameters&&(s.customLayerParameters=this.customLayerParameters),this.customParameters&&(s.customParameters=this.customParameters),new b.default({fullExtent:l,urlTemplate:t,tileInfo:i,wmtsInfo:s})}async fetchTile(e,t,r,i={}){const{signal:l}=i,o=this.getTileUrl(e,t,r),{data:n}=await(0,s.Z)(o,{responseType:"image",signal:l});return n}async fetchImageBitmapTile(e,t,r,i={}){const{signal:l}=i;if(this.fetchTile!==ce.prototype.fetchTile){const s=await this.fetchTile(e,t,r,i);return(0,_.V)(s,e,t,r,l)}const o=this.getTileUrl(e,t,r),{data:n}=await(0,s.Z)(o,{responseType:"blob",signal:l});return(0,_.V)(n,e,t,r,l)}findSublayerById(e){return this.sublayers?.find((t=>t.id===e))}getTileUrl(e,t,r){const i=this._getTileMatrixSetById(this.activeLayer.tileMatrixSetId),l=i?.tileInfo?.lods[e],s=l?l.levelValue||`${l.level}`:`${e}`;let o=this.resourceInfo?"":re({dimensionMap:this.dimensionMap,layerMap:this.layerMap},this.activeLayer.id,this.activeLayer.tileMatrixSetId,this.activeLayer.imageFormat,this.activeLayer.styleId,s,t,r);return o||(o=this.getUrlTemplate(this.activeLayer.id,this.activeLayer.tileMatrixSetId,this.activeLayer.imageFormat,this.activeLayer.styleId).replaceAll(/\{level\}/gi,s).replaceAll(/\{row\}/gi,`${t}`).replaceAll(/\{col\}/gi,`${r}`)),o=this._appendCustomLayerParameters(o),o}getUrlTemplate(e,t,r,i){if(!this.resourceInfo){const r=function(e,t,r,i){const{dimensionMap:l}=e,s=te(e,t);let o="";if(s&&s.length>0){const e=l.get(t).dimensions?.[0],n=l.get(t).dimensions2?.[0];o=s[0].template,o.endsWith(".xxx")&&(o=o.slice(0,-4)),o=o.replaceAll(/\{Style\}/gi,i),o=o.replaceAll(/\{TileMatrixSet\}/gi,r),o=o.replaceAll(/\{TileMatrix\}/gi,"{level}"),o=o.replaceAll(/\{TileRow\}/gi,"{row}"),o=o.replaceAll(/\{TileCol\}/gi,"{col}"),o=o.replaceAll(/\{dimensionValue\}/gi,e),o=o.replaceAll(/\{dimensionValue2\}/gi,n)}return o}({dimensionMap:this.dimensionMap,layerMap:this.layerMap},e,t,i);if(r)return r}if("KVP"===this.serviceMode)return this.url+"?SERVICE=WMTS&VERSION="+this.version+"&REQUEST=GetTile&LAYER="+e+"&STYLE="+i+"&FORMAT="+r+"&TILEMATRIXSET="+t+"&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}";if("RESTful"===this.serviceMode){let l="";return he[r.toLowerCase()]&&(l=he[r.toLowerCase()]),this.url+e+"/"+i+"/"+t+"/{level}/{row}/{col}"+l}return""}async _fetchService(e){let t;if(this.resourceInfo)"KVP"===this.resourceInfo.serviceMode&&(this.url+=this.url.includes("?")?"":"?"),t={ssl:!1,data:this.resourceInfo};else try{t=await this._getCapabilities(this.serviceMode,e),J(t.data)}catch{const r="KVP"===this.serviceMode?"RESTful":"KVP";try{t=await this._getCapabilities(r,e),J(t.data),this.serviceMode=r}catch(e){throw new a.Z("wmtslayer:unsupported-service-data","Services does not support RESTful or KVP service modes.",{error:e})}}this.resourceInfo?t.data=function(e){return e.layers.forEach((e=>{e.tileMatrixSets?.forEach((e=>{const t=e.tileInfo;t&&96!==t.dpi&&(t.lods?.forEach((r=>{r.scale=96*r.scale/t.dpi,r.resolution=me(t.spatialReference?.wkid,r.scale*$/96,e.id)})),t.dpi=96)}))})),e}(t.data):t.data=function(e,t){e=e.replaceAll(/ows:/gi,"");const r=(new DOMParser).parseFromString(e,"text/xml").documentElement,i=new Map,l=new Map,s=G("Contents",r);if(!s)throw new a.Z("wmtslayer:wmts-capabilities-xml-is-not-valid");const o=G("OperationsMetadata",r),n=o?.querySelector("[name='GetTile']"),u=n?.getElementsByTagName("Get"),p=u&&Array.prototype.slice.call(u),c=t.url?.indexOf("https"),d=void 0!==c&&c>-1;let m,h,y=t.serviceMode,f=t?.url;if(p?.length&&p.some((e=>{const t=G("Constraint",e);return!t||X("AllowedValues","Value",y,t)?(f=e.attributes[0].nodeValue,!0):(!t||X("AllowedValues","Value","RESTful",t)||X("AllowedValues","Value","REST",t)?h=e.attributes[0].nodeValue:t&&!X("AllowedValues","Value","KVP",t)||(m=e.attributes[0].nodeValue),!1)})),!f)if(h)f=h,y="RESTful";else if(m)f=m,y="KVP";else{const e=G("ServiceMetadataURL",r);f=e?.getAttribute("xlink:href")}const g=f.indexOf("1.0.0/");-1===g&&"RESTful"===y?f+="/":g>-1&&(f=f.substring(0,g)),"KVP"===y&&(f+=g>-1?"":"?"),d&&(f=f.replace(/^http:/i,"https:"));const w=Y("ServiceIdentification>ServiceTypeVersion",r),v=Y("ServiceIdentification>AccessConstraints",r),x=v&&/^none$/i.test(v)?null:v,b=H("Layer",s),C=H("TileMatrixSet",s),S=b.map((e=>{const t=Y("Identifier",e);return i.set(t,e),ee(t,e,C,d,w)}));return{copyright:x,dimensionMap:l,layerMap:i,layers:S,serviceMode:y,tileUrl:f}}(t.data,{serviceMode:this.serviceMode,url:this.url}),t.data&&this.read(t.data,{origin:"service"})}async _getCapabilities(e,t){const r=this._getCapabilitiesUrl(e);return await(0,s.Z)(r,{...t,responseType:"text"})}_getTileMatrixSetById(e){const t=this.findSublayerById(this.activeLayer.id),r=t?.tileMatrixSets?.find((t=>t.id===e));return r}_appendCustomParameters(e){return this._appendParameters(e,this.customParameters)}_appendCustomLayerParameters(e){return this._appendParameters(e,{...(0,u.d9)(this.customParameters),...this.customLayerParameters})}_appendParameters(e,t){const r=(0,h.mN)(e),i={...r.query,...t},l=(0,h.B7)(i);return""===l?r.path:`${r.path}?${l}`}_getCapabilitiesUrl(e){this.url=(0,h.mN)(this.url).path;let t=this.url;switch(e){case"KVP":t+=`?request=GetCapabilities&service=WMTS&version=${this.version}`;break;case"RESTful":{const e=`/${this.version}/WMTSCapabilities.xml`,r=new RegExp(e,"i");t=t.replace(r,""),t+=e;break}}return this._appendCustomParameters(t)}_getLowerCasedUrlParams(e){if(!e)return null;const t=(0,h.mN)(e).query;if(!t)return null;const r={};return Object.keys(t).forEach((e=>{r[e.toLowerCase()]=t[e]})),r}_mergeParams(e,t){const r=this._getLowerCasedUrlParams(t);if(r){const t=Object.keys(r);t.length&&(e=e?(0,u.d9)(e):{},t.forEach((t=>{e.hasOwnProperty(t)||ye.has(t)||(e[t]=r[t])})))}return e}};(0,l._)([(0,y.Cb)()],fe.prototype,"dimensionMap",void 0),(0,l._)([(0,y.Cb)()],fe.prototype,"layerMap",void 0),(0,l._)([(0,y.Cb)({type:N,json:{origins:{"web-document":{write:{ignoreOrigin:!0}}}}})],fe.prototype,"activeLayer",void 0),(0,l._)([(0,f.r)("service","activeLayer",["layers"])],fe.prototype,"readActiveLayerFromService",null),(0,l._)([(0,f.r)(["web-document","portal-item"],"activeLayer",["wmtsInfo"])],fe.prototype,"readActiveLayerFromItemOrWebDoc",null),(0,l._)([(0,w.c)(["web-document","portal-item"],"activeLayer",{templateUrl:{type:String},tileInfo:{type:L.Z},"wmtsInfo.layerIdentifier":{type:String},"wmtsInfo.tileMatrixSet":{type:String}})],fe.prototype,"writeActiveLayer",null),(0,l._)([(0,y.Cb)({type:String,value:"",json:{write:!0}})],fe.prototype,"copyright",void 0),(0,l._)([(0,y.Cb)({type:["show","hide"]})],fe.prototype,"listMode",void 0),(0,l._)([(0,y.Cb)({json:{read:!0,write:!0}})],fe.prototype,"blendMode",void 0),(0,l._)([(0,y.Cb)({json:{origins:{"web-document":{read:{source:["wmtsInfo.customParameters","wmtsInfo.url"]},write:{target:"wmtsInfo.customParameters"}},"portal-item":{read:{source:["wmtsInfo.customParameters","wmtsInfo.url"]},write:{target:"wmtsInfo.customParameters"}}}}})],fe.prototype,"customParameters",void 0),(0,l._)([(0,f.r)(["portal-item","web-document"],"customParameters")],fe.prototype,"readCustomParameters",null),(0,l._)([(0,y.Cb)({json:{origins:{"web-document":{read:{source:"wmtsInfo.customLayerParameters"},write:{target:"wmtsInfo.customLayerParameters"}},"portal-item":{read:{source:"wmtsInfo.customLayerParameters"},write:{target:"wmtsInfo.customLayerParameters"}}}}})],fe.prototype,"customLayerParameters",void 0),(0,l._)([(0,y.Cb)({type:v.Z,json:{write:{ignoreOrigin:!0},origins:{"web-document":{read:{source:"fullExtent"}},"portal-item":{read:{source:"fullExtent"}}}}})],fe.prototype,"fullExtent",void 0),(0,l._)([(0,y.Cb)({readOnly:!0})],fe.prototype,"fullExtents",null),(0,l._)([(0,y.Cb)({type:["WebTiledLayer"]})],fe.prototype,"operationalLayerType",void 0),(0,l._)([(0,y.Cb)()],fe.prototype,"resourceInfo",void 0),(0,l._)([(0,y.Cb)()],fe.prototype,"serviceMode",void 0),(0,l._)([(0,f.r)(["portal-item","web-document"],"serviceMode",["templateUrl"])],fe.prototype,"readServiceMode",null),(0,l._)([(0,y.Cb)({type:n.Z.ofType(N)})],fe.prototype,"sublayers",void 0),(0,l._)([(0,f.r)("service","sublayers",["layers"])],fe.prototype,"readSublayersFromService",null),(0,l._)([(0,y.Cb)({readOnly:!0})],fe.prototype,"supportedSpatialReferences",null),(0,l._)([(0,y.Cb)({readOnly:!0})],fe.prototype,"tilemapCache",null),(0,l._)([(0,y.Cb)({json:{read:{source:"title"}}})],fe.prototype,"title",null),(0,l._)([(0,y.Cb)({json:{read:!1},readOnly:!0,value:"wmts"})],fe.prototype,"type",void 0),(0,l._)([(0,y.Cb)({json:{origins:{service:{read:{source:"tileUrl"}},"web-document":{read:{source:"wmtsInfo.url"},write:{target:"wmtsInfo.url"}},"portal-item":{read:{source:"wmtsInfo.url"},write:{target:"wmtsInfo.url"}}}}})],fe.prototype,"url",null),(0,l._)([(0,y.Cb)()],fe.prototype,"version",void 0),fe=ce=(0,l._)([(0,g.j)("esri.layers.WMTSLayer")],fe);const ge=fe},89859:function(e,t,r){r.r(t),r.d(t,{default:function(){return L}});var i,l=r(36663),s=(r(91957),r(66341)),o=r(70375),n=r(15842),a=r(21130),u=r(3466),p=r(81977),c=(r(39994),r(13802),r(4157),r(34248)),d=r(40266),m=r(39835),h=r(38481),y=r(27668),f=r(43330),g=r(18241),w=r(12478),v=r(95874),x=r(4452),b=r(13054),C=r(81590),S=r(14790),M=r(91772),T=r(14685),I=r(67666);let _=i=class extends((0,y.h)((0,w.Q)((0,v.M)((0,f.q)((0,g.I)((0,n.R)(h.Z))))))){constructor(...e){super(...e),this.copyright="",this.fullExtent=new M.Z(-20037508.342787,-20037508.34278,20037508.34278,20037508.342787,T.Z.WebMercator),this.legendEnabled=!1,this.isReference=null,this.popupEnabled=!1,this.spatialReference=T.Z.WebMercator,this.subDomains=null,this.tileInfo=new C.Z({size:[256,256],dpi:96,format:"png8",compressionQuality:0,origin:new I.Z({x:-20037508.342787,y:20037508.342787,spatialReference:T.Z.WebMercator}),spatialReference:T.Z.WebMercator,lods:[new b.Z({level:0,scale:591657527.591555,resolution:156543.033928}),new b.Z({level:1,scale:295828763.795777,resolution:78271.5169639999}),new b.Z({level:2,scale:147914381.897889,resolution:39135.7584820001}),new b.Z({level:3,scale:73957190.948944,resolution:19567.8792409999}),new b.Z({level:4,scale:36978595.474472,resolution:9783.93962049996}),new b.Z({level:5,scale:18489297.737236,resolution:4891.96981024998}),new b.Z({level:6,scale:9244648.868618,resolution:2445.98490512499}),new b.Z({level:7,scale:4622324.434309,resolution:1222.99245256249}),new b.Z({level:8,scale:2311162.217155,resolution:611.49622628138}),new b.Z({level:9,scale:1155581.108577,resolution:305.748113140558}),new b.Z({level:10,scale:577790.554289,resolution:152.874056570411}),new b.Z({level:11,scale:288895.277144,resolution:76.4370282850732}),new b.Z({level:12,scale:144447.638572,resolution:38.2185141425366}),new b.Z({level:13,scale:72223.819286,resolution:19.1092570712683}),new b.Z({level:14,scale:36111.909643,resolution:9.55462853563415}),new b.Z({level:15,scale:18055.954822,resolution:4.77731426794937}),new b.Z({level:16,scale:9027.977411,resolution:2.38865713397468}),new b.Z({level:17,scale:4513.988705,resolution:1.19432856685505}),new b.Z({level:18,scale:2256.994353,resolution:.597164283559817}),new b.Z({level:19,scale:1128.497176,resolution:.298582141647617}),new b.Z({level:20,scale:564.248588,resolution:.14929107082380833}),new b.Z({level:21,scale:282.124294,resolution:.07464553541190416}),new b.Z({level:22,scale:141.062147,resolution:.03732276770595208}),new b.Z({level:23,scale:70.5310735,resolution:.01866138385297604})]}),this.type="web-tile",this.urlTemplate=null,this.wmtsInfo=null}normalizeCtorArgs(e,t){return"string"==typeof e?{urlTemplate:e,...t}:e}load(e){const t=this.loadFromPortal({supportedTypes:["WMTS"]},e).then((()=>{let e="";if(this.urlTemplate)if(this.spatialReference.equals(this.tileInfo.spatialReference)){const t=new u.R9(this.urlTemplate);!(this.subDomains&&this.subDomains.length>0)&&t.authority?.includes("{subDomain}")&&(e="is missing 'subDomains' property")}else e="spatialReference must match tileInfo.spatialReference";else e="is missing the required 'urlTemplate' property value";if(e)throw new o.Z("web-tile-layer:load",`WebTileLayer (title: '${this.title}', id: '${this.id}') ${e}`)}));return this.addResolvingPromise(t),Promise.resolve(this)}get levelValues(){const e=[];if(!this.tileInfo)return null;for(const t of this.tileInfo.lods)e[t.level]=t.levelValue||t.level;return e}readSpatialReference(e,t){return e||T.Z.fromJSON(t.fullExtent?.spatialReference)}get tileServers(){if(!this.urlTemplate)return null;const e=[],{urlTemplate:t,subDomains:r}=this,i=new u.R9(t),l=i.scheme?i.scheme+"://":"//",s=l+i.authority+"/",o=i.authority;if(o?.includes("{subDomain}")){if(r&&r.length>0&&o.split(".").length>1)for(const t of r)e.push(l+o.replaceAll(/\{subDomain\}/gi,t)+"/")}else e.push(s);return e.map(u.xs)}get urlPath(){if(!this.urlTemplate)return null;const e=this.urlTemplate,t=new u.R9(e),r=(t.scheme?t.scheme+"://":"//")+t.authority+"/";return e.substring(r.length)}readUrlTemplate(e,t){return e||t.templateUrl}writeUrlTemplate(e,t){(0,u.oC)(e)&&(e="https:"+e),e&&(e=e.replaceAll(/\{z\}/gi,"{level}").replaceAll(/\{x\}/gi,"{col}").replaceAll(/\{y\}/gi,"{row}"),e=(0,u.Fv)(e)),t.templateUrl=e}fetchTile(e,t,r,i={}){const{signal:l}=i,o=this.getTileUrl(e,t,r),n={responseType:"image",signal:l,query:{...this.refreshParameters}};return(0,s.Z)(o,n).then((e=>e.data))}async fetchImageBitmapTile(e,t,r,l={}){const{signal:o}=l;if(this.fetchTile!==i.prototype.fetchTile){const i=await this.fetchTile(e,t,r,l);return(0,x.V)(i,e,t,r,o)}const n=this.getTileUrl(e,t,r),a={responseType:"blob",signal:o,query:{...this.refreshParameters}},{data:u}=await(0,s.Z)(n,a);return(0,x.V)(u,e,t,r,o)}getTileUrl(e,t,r){const{levelValues:i,tileServers:l,urlPath:s}=this;if(!i||!l||!s)return"";const o=i[e];return l[t%l.length]+(0,a.gx)(s,{level:o,z:o,col:r,x:r,row:t,y:t})}};(0,l._)([(0,p.Cb)({type:String,value:"",json:{write:!0}})],_.prototype,"copyright",void 0),(0,l._)([(0,p.Cb)({type:M.Z,json:{write:!0},nonNullable:!0})],_.prototype,"fullExtent",void 0),(0,l._)([(0,p.Cb)({readOnly:!0,json:{read:!1,write:!1}})],_.prototype,"legendEnabled",void 0),(0,l._)([(0,p.Cb)({type:["show","hide"]})],_.prototype,"listMode",void 0),(0,l._)([(0,p.Cb)({json:{read:!0,write:!0}})],_.prototype,"blendMode",void 0),(0,l._)([(0,p.Cb)()],_.prototype,"levelValues",null),(0,l._)([(0,p.Cb)({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],_.prototype,"isReference",void 0),(0,l._)([(0,p.Cb)({type:["WebTiledLayer"],value:"WebTiledLayer"})],_.prototype,"operationalLayerType",void 0),(0,l._)([(0,p.Cb)({readOnly:!0,json:{read:!1,write:!1}})],_.prototype,"popupEnabled",void 0),(0,l._)([(0,p.Cb)({type:T.Z})],_.prototype,"spatialReference",void 0),(0,l._)([(0,c.r)("spatialReference",["spatialReference","fullExtent.spatialReference"])],_.prototype,"readSpatialReference",null),(0,l._)([(0,p.Cb)({type:[String],json:{write:!0}})],_.prototype,"subDomains",void 0),(0,l._)([(0,p.Cb)({type:C.Z,json:{write:!0}})],_.prototype,"tileInfo",void 0),(0,l._)([(0,p.Cb)({readOnly:!0})],_.prototype,"tileServers",null),(0,l._)([(0,p.Cb)({json:{read:!1}})],_.prototype,"type",void 0),(0,l._)([(0,p.Cb)()],_.prototype,"urlPath",null),(0,l._)([(0,p.Cb)({type:String,json:{origins:{"portal-item":{read:{source:"url"}}}}})],_.prototype,"urlTemplate",void 0),(0,l._)([(0,c.r)("urlTemplate",["urlTemplate","templateUrl"])],_.prototype,"readUrlTemplate",null),(0,l._)([(0,m.c)("urlTemplate",{templateUrl:{type:String}})],_.prototype,"writeUrlTemplate",null),(0,l._)([(0,p.Cb)({type:S.B,json:{write:!0}})],_.prototype,"wmtsInfo",void 0),_=i=(0,l._)([(0,d.j)("esri.layers.WebTileLayer")],_);const L=_},73616:function(e,t,r){r.d(t,{A:function(){return l}});const i=[[3819,3819],[3821,3824],[3889,3889],[3906,3906],[4001,4025],[4027,4036],[4039,4047],[4052,4055],[4074,4075],[4080,4081],[4120,4176],[4178,4185],[4188,4216],[4218,4289],[4291,4304],[4306,4319],[4322,4326],[4463,4463],[4470,4470],[4475,4475],[4483,4483],[4490,4490],[4555,4558],[4600,4646],[4657,4765],[4801,4811],[4813,4821],[4823,4824],[4901,4904],[5013,5013],[5132,5132],[5228,5229],[5233,5233],[5246,5246],[5252,5252],[5264,5264],[5324,5340],[5354,5354],[5360,5360],[5365,5365],[5370,5373],[5381,5381],[5393,5393],[5451,5451],[5464,5464],[5467,5467],[5489,5489],[5524,5524],[5527,5527],[5546,5546],[2044,2045],[2081,2083],[2085,2086],[2093,2093],[2096,2098],[2105,2132],[2169,2170],[2176,2180],[2193,2193],[2200,2200],[2206,2212],[2319,2319],[2320,2462],[2523,2549],[2551,2735],[2738,2758],[2935,2941],[2953,2953],[3006,3030],[3034,3035],[3038,3051],[3058,3059],[3068,3068],[3114,3118],[3126,3138],[3150,3151],[3300,3301],[3328,3335],[3346,3346],[3350,3352],[3366,3366],[3389,3390],[3416,3417],[3833,3841],[3844,3850],[3854,3854],[3873,3885],[3907,3910],[4026,4026],[4037,4038],[4417,4417],[4434,4434],[4491,4554],[4839,4839],[5048,5048],[5105,5130],[5253,5259],[5269,5275],[5343,5349],[5479,5482],[5518,5519],[5520,5520],[20004,20032],[20064,20092],[21413,21423],[21473,21483],[21896,21899],[22171,22177],[22181,22187],[22191,22197],[25884,25884],[27205,27232],[27391,27398],[27492,27492],[28402,28432],[28462,28492],[30161,30179],[30800,30800],[31251,31259],[31275,31279],[31281,31290],[31466,31700]];function l(e){return null!=e&&i.some((([t,r])=>e>=t&&e<=r))}},94477:function(e,t,r){function i(e,t){if(e&&t)for(const r of e.children)if(r.localName in t){const e=t[r.localName];if("function"==typeof e){const t=e(r);t&&i(r,t)}else i(r,e)}}function*l(e,t){for(const r of e.children)if(r.localName in t){const e=t[r.localName];"function"==typeof e?yield e(r):yield*l(r,e)}}r.d(t,{H:function(){return l},h:function(){return i}})},14790:function(e,t,r){r.d(t,{B:function(){return u}});var i,l=r(36663),s=r(82064),o=r(67134),n=r(81977),a=(r(39994),r(13802),r(40266));let u=i=class extends s.wq{constructor(e){super(e)}clone(){return new i({customLayerParameters:(0,o.d9)(this.customLayerParameters),customParameters:(0,o.d9)(this.customParameters),layerIdentifier:this.layerIdentifier,tileMatrixSet:this.tileMatrixSet,url:this.url})}};(0,l._)([(0,n.Cb)({json:{type:Object,write:!0}})],u.prototype,"customLayerParameters",void 0),(0,l._)([(0,n.Cb)({json:{type:Object,write:!0}})],u.prototype,"customParameters",void 0),(0,l._)([(0,n.Cb)({type:String,json:{write:!0}})],u.prototype,"layerIdentifier",void 0),(0,l._)([(0,n.Cb)({type:String,json:{write:!0}})],u.prototype,"tileMatrixSet",void 0),(0,l._)([(0,n.Cb)({type:String,json:{write:!0}})],u.prototype,"url",void 0),u=i=(0,l._)([(0,a.j)("esri.layer.support.WMTSLayerInfo")],u)}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9871.3799ecb96b2e30770997.js b/docs/sentinel1-explorer/9871.3799ecb96b2e30770997.js new file mode 100644 index 00000000..ed1238c8 --- /dev/null +++ b/docs/sentinel1-explorer/9871.3799ecb96b2e30770997.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9871],{59871:function(e,t,r){r.r(t),r.d(t,{default:function(){return Xe}});var s=r(36663),i=r(6865),o=r(81739),n=r(70375),a=r(67134),l=r(63592),p=r(13802),u=r(15842),d=r(78668),y=r(3466),c=r(81977),h=(r(39994),r(34248)),f=r(40266),b=r(14685),g=r(38481),m=r(80085),v=r(80020),_=(r(86004),r(55565),r(16192),r(71297),r(878),r(22836),r(50172),r(72043),r(72506),r(54021)),w=r(66341),S=r(25709),C=r(68309),I=r(64189),x=(r(4157),r(79438)),j=r(91772),O=r(12926),T=r(86618),F=r(7283),L=r(51599);let E=class extends((0,T.IG)(u.w)){constructor(e){super(e),this.title="",this.id=-1,this.modelName=null,this.isEmpty=null,this.legendEnabled=!0,this.visible=!0,this.opacity=1}readTitle(e,t){return"string"==typeof t.alias?t.alias:"string"==typeof t.name?t.name:""}readIdOnlyOnce(e){return-1!==this.id?this.id:"number"==typeof e?e:-1}};(0,s._)([(0,c.Cb)({type:String,json:{origins:{"web-scene":{write:!0},"portal-item":{write:!0}}}})],E.prototype,"title",void 0),(0,s._)([(0,h.r)("service","title",["alias","name"])],E.prototype,"readTitle",null),(0,s._)([(0,c.Cb)()],E.prototype,"layer",void 0),(0,s._)([(0,c.Cb)({type:F.z8,readOnly:!0,json:{read:!1,write:{ignoreOrigin:!0}}})],E.prototype,"id",void 0),(0,s._)([(0,h.r)("service","id")],E.prototype,"readIdOnlyOnce",null),(0,s._)([(0,c.Cb)((0,L.Lx)(String))],E.prototype,"modelName",void 0),(0,s._)([(0,c.Cb)((0,L.Lx)(Boolean))],E.prototype,"isEmpty",void 0),(0,s._)([(0,c.Cb)({type:Boolean,nonNullable:!0})],E.prototype,"legendEnabled",void 0),(0,s._)([(0,c.Cb)({type:Boolean,json:{name:"visibility",write:!0}})],E.prototype,"visible",void 0),(0,s._)([(0,c.Cb)({type:Number,json:{write:!0}})],E.prototype,"opacity",void 0),E=(0,s._)([(0,f.j)("esri.layers.buildingSublayers.BuildingSublayer")],E);const A=E;var B=r(23745),q=r(31484),Z=r(89076),P=r(28790),R=r(14845),U=r(40909),k=r(97304),M=r(14136),N=r(10171),Q=r(74710),D=r(32411),V=r(59439);const K=(0,Z.v)();let z=class extends((0,B.G)(C.Z.LoadableMixin((0,I.v)(A)))){constructor(e){super(e),this.type="building-component",this.nodePages=null,this.materialDefinitions=[],this.textureSetDefinitions=[],this.geometryDefinitions=[],this.indexInfo=null,this.serviceUpdateTimeStamp=null,this.store=null,this.attributeStorageInfo=[],this.fields=[],this.associatedLayer=null,this.outFields=null,this.listMode="show",this.renderer=null,this.definitionExpression=null,this.popupEnabled=!0,this.popupTemplate=null,this.layerType="3d-object"}get parsedUrl(){return this.layer?{path:`${this.layer.parsedUrl?.path}/sublayers/${this.id}`,query:this.layer.parsedUrl?.query}:{path:""}}get fieldsIndex(){return new P.Z(this.fields)}readAssociatedLayer(e,t){const r=this.layer.associatedFeatureServiceItem,s=t.associatedLayerID;return null!=r&&"number"==typeof s?new O.default({portalItem:r,customParameters:this.customParameters,layerId:s}):null}get objectIdField(){if(null!=this.fields)for(const e of this.fields)if("oid"===e.type)return e.name;return null}get displayField(){return null!=this.associatedLayer?this.associatedLayer.displayField:void 0}get apiKey(){return this.layer.apiKey}get customParameters(){return this.layer.customParameters}get fullExtent(){return this.layer.fullExtent}get spatialReference(){return this.layer.spatialReference}get version(){return this.layer.version}get elevationInfo(){return this.layer.elevationInfo}get minScale(){return this.layer.minScale}get maxScale(){return this.layer.maxScale}get effectiveScaleRange(){return this.layer.effectiveScaleRange}get defaultPopupTemplate(){return this.createPopupTemplate()}load(e){const t=null!=e?e.signal:null,r=this._fetchService(t).then((()=>{this.indexInfo=(0,U.T)(this.parsedUrl.path,this.rootNode,this.nodePages,this.customParameters,this.apiKey,p.Z.getLogger(this),t)}));return this.addResolvingPromise(r),Promise.resolve(this)}createPopupTemplate(e){return(0,N.eZ)(this,e)}async _fetchService(e){const t=(await(0,w.Z)(this.parsedUrl.path,{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e})).data;this.read(t,{origin:"service",url:this.parsedUrl})}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){const r=this.getFeatureType(t?.feature)?.domains?.[e];return r&&"inherited"!==r.type?r:this.getField(e)?.domain??null}getFeatureType(e){return e&&null!=this.associatedLayer?this.associatedLayer.getFeatureType(e):null}get types(){return null!=this.associatedLayer?this.associatedLayer.types??[]:[]}get typeIdField(){return null!=this.associatedLayer?this.associatedLayer.typeIdField:null}get geometryType(){return"3d-object"===this.layerType?"mesh":"point"}get profile(){return"3d-object"===this.layerType?"mesh-pyramids":"points"}get capabilities(){const e=null!=this.associatedLayer&&this.associatedLayer.capabilities?this.associatedLayer.capabilities:q.C,{query:t,data:{supportsZ:r,supportsM:s,isVersioned:i}}=e;return{query:t,data:{supportsZ:r,supportsM:s,isVersioned:i}}}createQuery(){const e=new M.Z;return"mesh"!==this.geometryType&&(e.returnGeometry=!0,e.returnZ=!0),e.where=this.definitionExpression||"1=1",e.sqlFormat="standard",e}queryExtent(e,t){return this._getAssociatedLayerForQuery().then((r=>r.queryExtent(e||this.createQuery(),t)))}queryFeatureCount(e,t){return this._getAssociatedLayerForQuery().then((r=>r.queryFeatureCount(e||this.createQuery(),t)))}queryFeatures(e,t){return this._getAssociatedLayerForQuery().then((r=>r.queryFeatures(e||this.createQuery(),t))).then((e=>{if(e?.features)for(const t of e.features)t.layer=this.layer,t.sourceLayer=this;return e}))}queryObjectIds(e,t){return this._getAssociatedLayerForQuery().then((r=>r.queryObjectIds(e||this.createQuery(),t)))}async queryCachedAttributes(e,t){const r=(0,R.Lk)(this.fieldsIndex,await(0,V.e7)(this,(0,V.V5)(this)));return(0,D.xe)(this.parsedUrl.path,this.attributeStorageInfo,e,t,r,this.apiKey,this.customParameters)}async queryCachedFeature(e,t){const r=await this.queryCachedAttributes(e,[t]);if(!r||0===r.length)throw new n.Z("scenelayer:feature-not-in-cached-data","Feature not found in cached data");const s=new m.Z;return s.attributes=r[0],s.layer=this,s.sourceLayer=this,s}getFieldUsageInfo(e){return this.fieldsIndex.has(e)?{supportsLabelingInfo:!1,supportsRenderer:!1,supportsPopupTemplate:!1,supportsLayerQuery:!1}:{supportsLabelingInfo:!1,supportsRenderer:!0,supportsPopupTemplate:!0,supportsLayerQuery:null!=this.associatedLayer}}_getAssociatedLayerForQuery(){const e=this.associatedLayer;return null!=e&&e.loaded?Promise.resolve(e):this._loadAssociatedLayerForQuery()}async _loadAssociatedLayerForQuery(){if(await this.load(),null==this.associatedLayer)throw new n.Z("buildingscenelayer:query-not-available","BuildingSceneLayer component layer queries are not available without an associated feature layer",{layer:this});try{await this.associatedLayer.load()}catch(e){throw new n.Z("buildingscenelayer:query-not-available","BuildingSceneLayer associated feature layer could not be loaded",{layer:this,error:e})}return this.associatedLayer}};(0,s._)([(0,c.Cb)({readOnly:!0})],z.prototype,"parsedUrl",null),(0,s._)([(0,c.Cb)({type:k.U4,readOnly:!0})],z.prototype,"nodePages",void 0),(0,s._)([(0,c.Cb)({type:[k.QI],readOnly:!0})],z.prototype,"materialDefinitions",void 0),(0,s._)([(0,c.Cb)({type:[k.Yh],readOnly:!0})],z.prototype,"textureSetDefinitions",void 0),(0,s._)([(0,c.Cb)({type:[k.H3],readOnly:!0})],z.prototype,"geometryDefinitions",void 0),(0,s._)([(0,c.Cb)({readOnly:!0})],z.prototype,"serviceUpdateTimeStamp",void 0),(0,s._)([(0,c.Cb)({readOnly:!0})],z.prototype,"store",void 0),(0,s._)([(0,c.Cb)({type:String,readOnly:!0,json:{read:{source:"store.rootNode"}}})],z.prototype,"rootNode",void 0),(0,s._)([(0,c.Cb)({readOnly:!0})],z.prototype,"attributeStorageInfo",void 0),(0,s._)([(0,c.Cb)(K.fields)],z.prototype,"fields",void 0),(0,s._)([(0,c.Cb)({readOnly:!0})],z.prototype,"fieldsIndex",null),(0,s._)([(0,c.Cb)({readOnly:!0,type:O.default})],z.prototype,"associatedLayer",void 0),(0,s._)([(0,h.r)("service","associatedLayer",["associatedLayerID"])],z.prototype,"readAssociatedLayer",null),(0,s._)([(0,c.Cb)(K.outFields)],z.prototype,"outFields",void 0),(0,s._)([(0,c.Cb)({type:String,readOnly:!0})],z.prototype,"objectIdField",null),(0,s._)([(0,c.Cb)({readOnly:!0,type:String,json:{read:!1}})],z.prototype,"displayField",null),(0,s._)([(0,c.Cb)({readOnly:!0,type:String})],z.prototype,"apiKey",null),(0,s._)([(0,c.Cb)({readOnly:!0,type:String})],z.prototype,"customParameters",null),(0,s._)([(0,c.Cb)({readOnly:!0,type:j.Z})],z.prototype,"fullExtent",null),(0,s._)([(0,c.Cb)({readOnly:!0,type:b.Z})],z.prototype,"spatialReference",null),(0,s._)([(0,c.Cb)({readOnly:!0})],z.prototype,"version",null),(0,s._)([(0,c.Cb)({readOnly:!0,type:Q.Z})],z.prototype,"elevationInfo",null),(0,s._)([(0,c.Cb)({readOnly:!0,type:Number})],z.prototype,"minScale",null),(0,s._)([(0,c.Cb)({readOnly:!0,type:Number})],z.prototype,"maxScale",null),(0,s._)([(0,c.Cb)({readOnly:!0,type:Number})],z.prototype,"effectiveScaleRange",null),(0,s._)([(0,c.Cb)({type:["hide","show"],json:{write:!0}})],z.prototype,"listMode",void 0),(0,s._)([(0,c.Cb)({types:_.o,json:{origins:{service:{read:{source:"drawingInfo.renderer"}}},name:"layerDefinition.drawingInfo.renderer",write:!0},value:null})],z.prototype,"renderer",void 0),(0,s._)([(0,c.Cb)({type:String,json:{origins:{service:{read:!1,write:!1}},name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],z.prototype,"definitionExpression",void 0),(0,s._)([(0,c.Cb)(L.C_)],z.prototype,"popupEnabled",void 0),(0,s._)([(0,c.Cb)({type:v.Z,json:{read:{source:"popupInfo"},write:{target:"popupInfo"}}})],z.prototype,"popupTemplate",void 0),(0,s._)([(0,c.Cb)({readOnly:!0,type:String,json:{origins:{service:{read:{source:"store.normalReferenceFrame"}}},read:!1}})],z.prototype,"normalReferenceFrame",void 0),(0,s._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],z.prototype,"defaultPopupTemplate",null),(0,s._)([(0,c.Cb)()],z.prototype,"types",null),(0,s._)([(0,c.Cb)()],z.prototype,"typeIdField",null),(0,s._)([(0,c.Cb)({json:{write:!1}}),(0,x.J)(new S.X({"3DObject":"3d-object",Point:"point"}))],z.prototype,"layerType",void 0),(0,s._)([(0,c.Cb)()],z.prototype,"geometryType",null),(0,s._)([(0,c.Cb)()],z.prototype,"profile",null),(0,s._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],z.prototype,"capabilities",null),z=(0,s._)([(0,f.j)("esri.layers.buildingSublayers.BuildingComponentSublayer")],z);const H=z;var G,J=r(96863);const $={type:i.Z,readOnly:!0,json:{origins:{service:{read:{source:"sublayers",reader:W}}},read:!1}};function W(e,t,r){if(e&&Array.isArray(e))return new i.Z(e.map((e=>{const t=function(e){return"group"===e.layerType?X:H}(e);if(t){const s=new t;return s.read(e,r),s}return r?.messages&&e&&r.messages.push(new J.Z("building-scene-layer:unsupported-sublayer-type","Building scene sublayer of type '"+(e.type||"unknown")+"' are not supported",{definition:e,context:r})),null})))}let X=G=class extends A{constructor(e){super(e),this.type="building-group",this.listMode="show",this.sublayers=null}loadAll(){return(0,l.w)(this,(e=>G.forEachSublayer(this.sublayers,(t=>{"building-group"!==t.type&&e(t)}))))}};var Y;(0,s._)([(0,c.Cb)({type:["hide","show","hide-children"],json:{write:!0}})],X.prototype,"listMode",void 0),(0,s._)([(0,c.Cb)($)],X.prototype,"sublayers",void 0),X=G=(0,s._)([(0,f.j)("esri.layers.buildingSublayers.BuildingGroupSublayer")],X),(Y=X||(X={})).sublayersProperty=$,Y.readSublayers=W,Y.forEachSublayer=function e(t,r){t.forEach((t=>{r(t),"building-group"===t.type&&e(t.sublayers,r)}))};const ee=X;var te=r(91223),re=r(87232),se=r(63989),ie=r(43330),oe=r(18241),ne=r(95874),ae=r(93902),le=r(53264),pe=r(82064),ue=r(12173);let de=class extends pe.wq{constructor(){super(...arguments),this.type=null}};(0,s._)([(0,c.Cb)({type:String,readOnly:!0,json:{write:!0}})],de.prototype,"type",void 0),de=(0,s._)([(0,f.j)("esri.layers.support.BuildingFilterAuthoringInfo")],de);const ye=de;var ce;let he=ce=class extends pe.wq{constructor(){super(...arguments),this.filterType=null,this.filterValues=null}clone(){return new ce({filterType:this.filterType,filterValues:(0,a.d9)(this.filterValues)})}};(0,s._)([(0,c.Cb)({type:String,json:{write:!0}})],he.prototype,"filterType",void 0),(0,s._)([(0,c.Cb)({type:[String],json:{write:!0}})],he.prototype,"filterValues",void 0),he=ce=(0,s._)([(0,f.j)("esri.layers.support.BuildingFilterAuthoringInfoType")],he);const fe=he;var be;const ge=i.Z.ofType(fe);let me=be=class extends pe.wq{clone(){return new be({filterTypes:(0,a.d9)(this.filterTypes)})}};(0,s._)([(0,c.Cb)({type:ge,json:{write:!0}})],me.prototype,"filterTypes",void 0),me=be=(0,s._)([(0,f.j)("esri.layers.support.BuildingFilterAuthoringInfoBlock")],me);const ve=me;var _e;const we=i.Z.ofType(ve);let Se=_e=class extends ye{constructor(){super(...arguments),this.type="checkbox"}clone(){return new _e({filterBlocks:(0,a.d9)(this.filterBlocks)})}};(0,s._)([(0,c.Cb)({type:["checkbox"]})],Se.prototype,"type",void 0),(0,s._)([(0,c.Cb)({type:we,json:{write:!0}})],Se.prototype,"filterBlocks",void 0),Se=_e=(0,s._)([(0,f.j)("esri.layers.support.BuildingFilterAuthoringInfoCheckbox")],Se);const Ce=Se;let Ie=class extends pe.wq{};(0,s._)([(0,c.Cb)({readOnly:!0,json:{read:!1}})],Ie.prototype,"type",void 0),Ie=(0,s._)([(0,f.j)("esri.layers.support.BuildingFilterMode")],Ie);const xe=Ie;var je;let Oe=je=class extends xe{constructor(){super(...arguments),this.type="solid"}clone(){return new je}};(0,s._)([(0,c.Cb)({type:["solid"],readOnly:!0,json:{write:!0}})],Oe.prototype,"type",void 0),Oe=je=(0,s._)([(0,f.j)("esri.layers.support.BuildingFilterModeSolid")],Oe);const Te=Oe;var Fe,Le=r(64372);let Ee=Fe=class extends xe{constructor(){super(...arguments),this.type="wire-frame",this.edges=null}clone(){return new Fe({edges:(0,a.d9)(this.edges)})}};(0,s._)([(0,x.J)({wireFrame:"wire-frame"})],Ee.prototype,"type",void 0),(0,s._)([(0,c.Cb)(Le.Z)],Ee.prototype,"edges",void 0),Ee=Fe=(0,s._)([(0,f.j)("esri.layers.support.BuildingFilterModeWireFrame")],Ee);const Ae=Ee;var Be;let qe=Be=class extends xe{constructor(){super(...arguments),this.type="x-ray"}clone(){return new Be}};(0,s._)([(0,c.Cb)({type:["x-ray"],readOnly:!0,json:{write:!0}})],qe.prototype,"type",void 0),qe=Be=(0,s._)([(0,f.j)("esri.layers.support.BuildingFilterModeXRay")],qe);const Ze=qe;var Pe;const Re={nonNullable:!0,types:{key:"type",base:xe,typeMap:{solid:Te,"wire-frame":Ae,"x-ray":Ze}},json:{read:e=>{switch(e?.type){case"solid":return Te.fromJSON(e);case"wireFrame":return Ae.fromJSON(e);case"x-ray":return Ze.fromJSON(e);default:return}},write:{enabled:!0,isRequired:!0}}};let Ue=Pe=class extends pe.wq{constructor(){super(...arguments),this.filterExpression=null,this.filterMode=new Te,this.title=""}clone(){return new Pe({filterExpression:this.filterExpression,filterMode:(0,a.d9)(this.filterMode),title:this.title})}};(0,s._)([(0,c.Cb)({type:String,json:{write:{enabled:!0,isRequired:!0}}})],Ue.prototype,"filterExpression",void 0),(0,s._)([(0,c.Cb)(Re)],Ue.prototype,"filterMode",void 0),(0,s._)([(0,c.Cb)({type:String,json:{write:{enabled:!0,isRequired:!0}}})],Ue.prototype,"title",void 0),Ue=Pe=(0,s._)([(0,f.j)("esri.layers.support.BuildingFilterBlock")],Ue);const ke=Ue;var Me;const Ne=i.Z.ofType(ke);let Qe=Me=class extends pe.wq{constructor(){super(...arguments),this.description=null,this.filterBlocks=null,this.id=(0,ue.DO)(),this.name=null}clone(){return new Me({description:this.description,filterBlocks:(0,a.d9)(this.filterBlocks),id:this.id,name:this.name,filterAuthoringInfo:(0,a.d9)(this.filterAuthoringInfo)})}};(0,s._)([(0,c.Cb)({type:String,json:{write:!0}})],Qe.prototype,"description",void 0),(0,s._)([(0,c.Cb)({type:Ne,json:{write:{enabled:!0,isRequired:!0}}})],Qe.prototype,"filterBlocks",void 0),(0,s._)([(0,c.Cb)({types:{key:"type",base:ye,typeMap:{checkbox:Ce}},json:{read:e=>"checkbox"===e?.type?Ce.fromJSON(e):null,write:!0}})],Qe.prototype,"filterAuthoringInfo",void 0),(0,s._)([(0,c.Cb)({type:String,constructOnly:!0,json:{write:{enabled:!0,isRequired:!0}}})],Qe.prototype,"id",void 0),(0,s._)([(0,c.Cb)({type:String,json:{write:{enabled:!0,isRequired:!0}}})],Qe.prototype,"name",void 0),Qe=Me=(0,s._)([(0,f.j)("esri.layers.support.BuildingFilter")],Qe);const De=Qe;let Ve=class extends pe.wq{constructor(){super(...arguments),this.fieldName=null,this.modelName=null,this.label=null,this.min=null,this.max=null,this.mostFrequentValues=null,this.subLayerIds=null}};(0,s._)([(0,c.Cb)({type:String})],Ve.prototype,"fieldName",void 0),(0,s._)([(0,c.Cb)({type:String})],Ve.prototype,"modelName",void 0),(0,s._)([(0,c.Cb)({type:String})],Ve.prototype,"label",void 0),(0,s._)([(0,c.Cb)({type:Number})],Ve.prototype,"min",void 0),(0,s._)([(0,c.Cb)({type:Number})],Ve.prototype,"max",void 0),(0,s._)([(0,c.Cb)({json:{read:e=>Array.isArray(e)&&(e.every((e=>"string"==typeof e))||e.every((e=>"number"==typeof e)))?e.slice():null}})],Ve.prototype,"mostFrequentValues",void 0),(0,s._)([(0,c.Cb)({type:[Number]})],Ve.prototype,"subLayerIds",void 0),Ve=(0,s._)([(0,f.j)("esri.layers.support.BuildingFieldStatistics")],Ve);let Ke=class extends(C.Z.LoadableMixin((0,I.v)(pe.wq))){constructor(){super(...arguments),this.url=null}get fields(){return this.loaded||"loading"===this.loadStatus?this._get("fields"):(p.Z.getLogger(this).error("building summary statistics are not loaded"),null)}load(e){const t=null!=e?e.signal:null;return this.addResolvingPromise(this._fetchService(t)),Promise.resolve(this)}async _fetchService(e){const t=(await(0,w.Z)(this.url,{query:{f:"json"},responseType:"json",signal:e})).data;this.read(t,{origin:"service"})}};(0,s._)([(0,c.Cb)({constructOnly:!0,type:String})],Ke.prototype,"url",void 0),(0,s._)([(0,c.Cb)({readOnly:!0,type:[Ve],json:{read:{source:"summary"}}})],Ke.prototype,"fields",null),Ke=(0,s._)([(0,f.j)("esri.layers.support.BuildingSummaryStatistics")],Ke);const ze=Ke;var He=r(83772);const Ge=i.Z.ofType(De),Je=(0,a.d9)(ee.sublayersProperty),$e=Je.json?.origins;$e&&($e["web-scene"]={type:[H],write:{enabled:!0,overridePolicy:()=>({enabled:!1})}},$e["portal-item"]={type:[H],write:{enabled:!0,overridePolicy:()=>({enabled:!1})}});let We=class extends((0,ae.Vt)((0,re.Y)((0,ie.q)((0,oe.I)((0,ne.M)((0,u.R)((0,se.N)((0,te.V)(g.Z))))))))){constructor(e){super(e),this.operationalLayerType="BuildingSceneLayer",this.allSublayers=new o.Z({getCollections:()=>[this.sublayers],getChildrenFunction:e=>"building-group"===e.type?e.sublayers:null}),this.sublayers=null,this._sublayerOverrides=null,this.filters=new Ge,this.activeFilterId=null,this.summaryStatistics=null,this.outFields=null,this.legendEnabled=!0,this.type="building-scene"}normalizeCtorArgs(e){return"string"==typeof e?{url:e}:e??{}}destroy(){this.allSublayers.destroy()}readSublayers(e,t,r){const s=ee.readSublayers(e,t,r);return ee.forEachSublayer(s,(e=>e.layer=this)),this._sublayerOverrides&&(this.applySublayerOverrides(s,this._sublayerOverrides),this._sublayerOverrides=null),s}applySublayerOverrides(e,{overrides:t,context:r}){ee.forEachSublayer(e,(e=>e.read(t.get(e.id),r)))}readSublayerOverrides(e,t){const r=new Map;for(const s of e)null!=s&&"object"==typeof s&&"number"==typeof s.id?r.set(s.id,s):t.messages?.push(new n.Z("building-scene-layer:invalid-sublayer-override","Invalid value for sublayer override. Not an object or no id specified.",{value:s}));return{overrides:r,context:t}}writeSublayerOverrides(e,t,r){const s=[];ee.forEachSublayer(this.sublayers,(e=>{const t=e.write({},r);Object.keys(t).length>1&&s.push(t)})),s.length>0&&(t.sublayers=s)}writeUnappliedOverrides(e,t){t.sublayers=[],e.overrides.forEach((e=>{t.sublayers.push((0,a.d9)(e))}))}write(e,t){return e=super.write(e,t),!t||"web-scene"!==t.origin&&"portal-item"!==t.origin||(this.sublayers?this.writeSublayerOverrides(this.sublayers,e,t):this._sublayerOverrides&&this.writeUnappliedOverrides(this._sublayerOverrides,e)),e}read(e,t){if(super.read(e,t),t&&("web-scene"===t.origin||"portal-item"===t.origin)&&null!=e&&Array.isArray(e.sublayers)){const r=this.readSublayerOverrides(e.sublayers,t);this.sublayers?this.applySublayerOverrides(this.sublayers,r):this._sublayerOverrides=r}}readSummaryStatistics(e,t){if("string"==typeof t.statisticsHRef){const e=(0,y.v_)(this.parsedUrl?.path,t.statisticsHRef);return new ze({url:e})}return null}set elevationInfo(e){this._set("elevationInfo",e),this._validateElevationInfo()}load(e){const t=null!=e?e.signal:null,r=this.loadFromPortal({supportedTypes:["Scene Service"]},e).catch(d.r9).then((()=>this._fetchService(t))).then((()=>this._fetchAssociatedFeatureService(t)));return this.addResolvingPromise(r),Promise.resolve(this)}loadAll(){return(0,l.G)(this,(e=>{ee.forEachSublayer(this.sublayers,(t=>{"building-group"!==t.type&&e(t)})),this.summaryStatistics&&e(this.summaryStatistics)}))}async saveAs(e,t){return this._debouncedSaveOperations(ae.xp.SAVE_AS,{...t,getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:"building-scene"},e)}async save(){const e={getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:"building-scene"};return this._debouncedSaveOperations(ae.xp.SAVE,e)}validateLayer(e){if(!e.layerType||"Building"!==e.layerType)throw new n.Z("buildingscenelayer:layer-type-not-supported","BuildingSceneLayer does not support this layer type",{layerType:e.layerType})}_getTypeKeywords(){return["Building"]}async _fetchAssociatedFeatureService(e){try{const{portalItem:t}=await(0,le.w)(`${this.url}/layers/${this.layerId}`,{sceneLayerItem:this.portalItem,customParameters:this.customParameters,apiKey:this.apiKey,signal:e});this.associatedFeatureServiceItem=t}catch(e){p.Z.getLogger(this).warn("Associated feature service item could not be loaded",e)}}_validateElevationInfo(){const e=this.elevationInfo,t="Building scene layers";(0,He.LR)(p.Z.getLogger(this),(0,He.Uy)(t,"absolute-height",e)),(0,He.LR)(p.Z.getLogger(this),(0,He.kf)(t,e))}};(0,s._)([(0,c.Cb)({type:["BuildingSceneLayer"]})],We.prototype,"operationalLayerType",void 0),(0,s._)([(0,c.Cb)({readOnly:!0})],We.prototype,"allSublayers",void 0),(0,s._)([(0,c.Cb)(Je)],We.prototype,"sublayers",void 0),(0,s._)([(0,h.r)("service","sublayers")],We.prototype,"readSublayers",null),(0,s._)([(0,c.Cb)({type:Ge,nonNullable:!0,json:{write:!0}})],We.prototype,"filters",void 0),(0,s._)([(0,c.Cb)({type:String,json:{write:!0}})],We.prototype,"activeFilterId",void 0),(0,s._)([(0,c.Cb)({readOnly:!0,type:ze})],We.prototype,"summaryStatistics",void 0),(0,s._)([(0,h.r)("summaryStatistics",["statisticsHRef"])],We.prototype,"readSummaryStatistics",null),(0,s._)([(0,c.Cb)({type:[String],json:{read:!1}})],We.prototype,"outFields",void 0),(0,s._)([(0,c.Cb)(L.vg)],We.prototype,"fullExtent",void 0),(0,s._)([(0,c.Cb)(L.rn)],We.prototype,"legendEnabled",void 0),(0,s._)([(0,c.Cb)({type:["show","hide","hide-children"]})],We.prototype,"listMode",void 0),(0,s._)([(0,c.Cb)((0,L.Lx)(b.Z))],We.prototype,"spatialReference",void 0),(0,s._)([(0,c.Cb)(L.PV)],We.prototype,"elevationInfo",null),(0,s._)([(0,c.Cb)({json:{read:!1},readOnly:!0})],We.prototype,"type",void 0),(0,s._)([(0,c.Cb)()],We.prototype,"associatedFeatureServiceItem",void 0),We=(0,s._)([(0,f.j)("esri.layers.BuildingSceneLayer")],We);const Xe=We},23745:function(e,t,r){r.d(t,{G:function(){return u}});var s=r(36663),i=r(37956),o=r(74589),n=r(81977),a=(r(39994),r(13802),r(4157),r(40266)),l=r(14845),p=r(23756);const u=e=>{let t=class extends e{get timeInfo(){const e=this.associatedLayer?.timeInfo;if(null==e)return e;const t=e.clone();return(0,l.UF)(t,this.fieldsIndex),t}set timeInfo(e){(0,l.UF)(e,this.fieldsIndex),this._override("timeInfo",e)}get timeExtent(){return this.associatedLayer?.timeExtent}set timeExtent(e){this._override("timeExtent",e)}get timeOffset(){return this.associatedLayer?.timeOffset}set timeOffset(e){this._override("timeOffset",e)}get useViewTime(){return this.associatedLayer?.useViewTime??!0}set useViewTime(e){this._override("useViewTime",e)}get datesInUnknownTimezone(){return this.associatedLayer?.datesInUnknownTimezone??!1}set datesInUnknownTimezone(e){this._override("datesInUnknownTimezone",e)}};return(0,s._)([(0,n.Cb)({type:p.Z})],t.prototype,"timeInfo",null),(0,s._)([(0,n.Cb)({type:i.Z})],t.prototype,"timeExtent",null),(0,s._)([(0,n.Cb)({type:o.Z})],t.prototype,"timeOffset",null),(0,s._)([(0,n.Cb)({type:Boolean,nonNullable:!0})],t.prototype,"useViewTime",null),(0,s._)([(0,n.Cb)({type:Boolean,nonNullable:!0})],t.prototype,"datesInUnknownTimezone",null),t=(0,s._)([(0,a.j)("esri.layers.mixins.TemporalSceneLayer")],t),t}},53264:function(e,t,r){r.d(t,{w:function(){return u}});var s=r(88256),i=r(66341),o=r(70375),n=r(78668),a=r(20692),l=r(93968),p=r(53110);async function u(e,t){const r=(0,a.Qc)(e);if(!r)throw new o.Z("invalid-url","Invalid scene service url");const u={...t,sceneServerUrl:r.url.path,layerId:r.sublayer??void 0};if(u.sceneLayerItem??=await async function(e){const t=(await d(e)).serviceItemId;if(!t)return null;const r=new p.default({id:t,apiKey:e.apiKey}),o=await async function(e){const t=s.id?.findServerInfo(e.sceneServerUrl);if(t?.owningSystemUrl)return t.owningSystemUrl;const r=e.sceneServerUrl.replace(/(.*\/rest)\/.*/i,"$1")+"/info";try{const t=(await(0,i.Z)(r,{query:{f:"json"},responseType:"json",signal:e.signal})).data.owningSystemUrl;if(t)return t}catch(e){(0,n.r9)(e)}return null}(e);null!=o&&(r.portal=new l.Z({url:o}));try{return r.load({signal:e.signal})}catch(e){return(0,n.r9)(e),null}}(u),null==u.sceneLayerItem)return y(u.sceneServerUrl.replace("/SceneServer","/FeatureServer"),u);const c=await async function({sceneLayerItem:e,signal:t}){if(!e)return null;try{const r=(await e.fetchRelatedItems({relationshipType:"Service2Service",direction:"reverse"},{signal:t})).find((e=>"Feature Service"===e.type))||null;if(!r)return null;const s=new p.default({portal:r.portal,id:r.id});return await s.load(),s}catch(e){return(0,n.r9)(e),null}}(u);if(!c?.url)throw new o.Z("related-service-not-found","Could not find feature service through portal item relationship");u.featureServiceItem=c;const h=await y(c.url,u);return h.portalItem=c,h}async function d(e){if(e.rootDocument)return e.rootDocument;const t={query:{f:"json",...e.customParameters,token:e.apiKey},responseType:"json",signal:e.signal};try{const r=await(0,i.Z)(e.sceneServerUrl,t);e.rootDocument=r.data}catch{e.rootDocument={}}return e.rootDocument}async function y(e,t){const r=(0,a.Qc)(e);if(!r)throw new o.Z("invalid-feature-service-url","Invalid feature service url");const s=r.url.path,n=t.layerId;if(null==n)return{serverUrl:s};const l=d(t),p=t.featureServiceItem?await t.featureServiceItem.fetchData("json"):null,u=(p?.layers?.[0]||p?.tables?.[0])?.customParameters,y=e=>{const r={query:{f:"json",...u},responseType:"json",authMode:e,signal:t.signal};return(0,i.Z)(s,r)},c=y("anonymous").catch((()=>y("no-prompt"))),[h,f]=await Promise.all([c,l]),b=f?.layers,g=h.data&&h.data.layers;if(!Array.isArray(g))throw new Error("expected layers array");if(Array.isArray(b)){for(let e=0;e{const{keyField:r}=t;u&&r&&e.fieldsIndex?.has(r)&&!u.includes(r)&&u.push(r)})),u}function o(e,t){return e.popupTemplate?e.popupTemplate:null!=t&&t.defaultPopupTemplateEnabled&&null!=e.defaultPopupTemplate?e.defaultPopupTemplate:null}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/990.8c2da22cadc0f8ca4f62.js b/docs/sentinel1-explorer/990.8c2da22cadc0f8ca4f62.js new file mode 100644 index 00000000..e5d0c9d5 --- /dev/null +++ b/docs/sentinel1-explorer/990.8c2da22cadc0f8ca4f62.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[990],{80990:function(e,a,r){r.r(a),r.d(a,{default:function(){return o}});const o={_decimalSeparator:",",_thousandSeparator:".",_percentPrefix:null,_percentSuffix:"%",_date_millisecond:"mm:ss SSS",_date_millisecond_full:"HH:mm:ss SSS",_date_second:"HH:mm:ss",_date_second_full:"HH:mm:ss",_date_minute:"HH:mm",_date_minute_full:"HH:mm - dd MMM",_date_hour:"HH:mm",_date_hour_full:"HH:mm - dd MMM",_date_day:"dd MMM",_date_day_full:"dd MMM",_date_week:"ww",_date_week_full:"dd MMM",_date_month:"MMM",_date_month_full:"MMM, yyyy",_date_year:"yyyy",_duration_millisecond:"SSS",_duration_second:"ss",_duration_minute:"mm",_duration_hour:"hh",_duration_day:"dd",_duration_week:"ww",_duration_month:"MM",_duration_year:"yyyy",_era_ad:"DC",_era_bc:"AC",A:"",P:"",AM:"",PM:"","A.M.":"","P.M.":"",January:"Enero",February:"Febrero",March:"Marzo",April:"Abril",May:"Mayo",June:"Junio",July:"Julio",August:"Agosto",September:"Septiembre",October:"Octubre",November:"Noviembre",December:"Diciembre",Jan:"Ene",Feb:"Feb",Mar:"Mar",Apr:"Abr","May(short)":"May",Jun:"Jun",Jul:"Jul",Aug:"Ago",Sep:"Sep",Oct:"Oct",Nov:"Nov",Dec:"Dic",Sunday:"Domingo",Monday:"Lunes",Tuesday:"Martes",Wednesday:"Miércoles",Thursday:"Jueves",Friday:"Viernes",Saturday:"Sábado",Sun:"Dom",Mon:"Lun",Tue:"Mar",Wed:"Mie",Thu:"Jue",Fri:"Vie",Sat:"Sáb",_dateOrd:function(e){return"º"},"Zoom Out":"Aumentar Zoom",Play:"Reproducir",Stop:"Detener",Legend:"Leyenda","Press ENTER to toggle":"Haga clic, toque o presione ENTER para alternar",Loading:"Cargando",Home:"Inicio",Chart:"Gráfico","Serial chart":"Gráfico de serie","X/Y chart":"Gráfico X/Y","Pie chart":"Gráfico circular","Gauge chart":"Gráfico de medidor radial","Radar chart":"Gráfico de radar","Sankey diagram":"Diagrama de sankey","Chord diagram":"Diagrama de cuerdas","Flow diagram":"Diagrama de flujo","TreeMap chart":"Gráfico de mapa de árbol",Series:"Series","Candlestick Series":"Series de velas","Column Series":"Series de columnas","Line Series":"Series de líneas","Pie Slice Series":"Series de trozos circular","X/Y Series":"Series de X/Y",Map:"Mapa","Press ENTER to zoom in":"Presione ENTER para aumentar el zoom","Press ENTER to zoom out":"Presione ENTER para disminuir el zoom","Use arrow keys to zoom in and out":"Use los cursores para disminuir o aumentar el zoom","Use plus and minus keys on your keyboard to zoom in and out":"Use las teclas mas o menos en su teclado para disminuir ou aumentar el zoom",Export:"Exportar",Image:"Imagen",Data:"Datos",Print:"Imprimir","Press ENTER to open":"Haga clic, toque o presione ENTER para abrir","Press ENTER to print.":"Haga clic, toque o presione ENTER para imprimir","Press ENTER to export as %1.":"Haga clic, toque o presione ENTER para exportar como %1.","(Press ESC to close this message)":"(Presione ESC para cerrar este mensaje)","Image Export Complete":"Exportación de imagen completada","Export operation took longer than expected. Something might have gone wrong.":"La operación de exportación llevó más tiempo de lo esperado. Algo pudo haber salido mal.","Saved from":"Guardado de",PNG:"",JPG:"",GIF:"",SVG:"",PDF:"",JSON:"",CSV:"",XLSX:"",HTML:"","Use TAB to select grip buttons or left and right arrows to change selection":"Use TAB para seleccionar los botones de agarre o las flechas izquierda y derecha para cambiar la selección","Use left and right arrows to move selection":"Use las flechas izquierda y derecha para mover la selección","Use left and right arrows to move left selection":"Use las flechas izquierda y derecha para mover la selección izquierda","Use left and right arrows to move right selection":"Use las flechas izquierda y derecha para mover la selección derecha","Use TAB select grip buttons or up and down arrows to change selection":"Utilice los botones de control de selección TAB o flechas arriba y abajo para cambiar la selección","Use up and down arrows to move selection":"Use las flechas hacia arriba y hacia abajo para mover la selección","Use up and down arrows to move lower selection":"Use las flechas hacia arriba y hacia abajo para mover la selección inferior","Use up and down arrows to move upper selection":"Use las flechas hacia arriba y hacia abajo para mover la selección superior","From %1 to %2":"Desde %1 hasta %2","From %1":"Desde %1","To %1":"Hasta %1","No parser available for file: %1":"No hay analizador disponible para el archivo: %1","Error parsing file: %1":"Error al analizar el archivo: %1","Unable to load file: %1":"No se puede cargar el archivo: %1","Invalid date":"Fecha inválida"}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9911.5c36d8d14c5a14e53800.js b/docs/sentinel1-explorer/9911.5c36d8d14c5a14e53800.js new file mode 100644 index 00000000..a854e7ad --- /dev/null +++ b/docs/sentinel1-explorer/9911.5c36d8d14c5a14e53800.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9911],{99911:function(e,t,o){o.r(t),o.d(t,{default:function(){return y}});var r,i=o(36663),s=(o(91957),o(82064)),a=o(81977),n=o(7283),p=(o(4157),o(39994),o(40266)),l=o(5029),d=o(91772);let u=r=class extends s.wq{static from(e){return(0,n.TJ)(r,e)}constructor(e){super(e),this.gdbVersion=null,this.sessionID=null,this.validationType=null,this.validateArea=null,this.validationSet=null}};(0,i._)([(0,a.Cb)({type:String,json:{write:!0}})],u.prototype,"gdbVersion",void 0),(0,i._)([(0,a.Cb)({type:String,json:{write:!0}})],u.prototype,"sessionID",void 0),(0,i._)([(0,a.Cb)({type:l.k3.apiValues,json:{type:l.k3.jsonValues,read:l.k3.read,write:l.k3.write}})],u.prototype,"validationType",void 0),(0,i._)([(0,a.Cb)({type:d.Z,json:{write:!0}})],u.prototype,"validateArea",void 0),(0,i._)([(0,a.Cb)({type:[Object],json:{write:!0}})],u.prototype,"validationSet",void 0),u=r=(0,i._)([(0,p.j)("esri.rest.networks.support.ValidateNetworkTopologyParameters")],u);const y=u}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/994.d8e9c94b0a3cca406f27.js b/docs/sentinel1-explorer/994.d8e9c94b0a3cca406f27.js new file mode 100644 index 00000000..1a95da6b --- /dev/null +++ b/docs/sentinel1-explorer/994.d8e9c94b0a3cca406f27.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[994],{55939:function(e,t,n){function i(){return new Float32Array(4)}function a(e,t,n,i){const a=new Float32Array(4);return a[0]=e,a[1]=t,a[2]=n,a[3]=i,a}function o(){return i()}function r(){return a(1,1,1,1)}function l(){return a(1,0,0,0)}function s(){return a(0,1,0,0)}function u(){return a(0,0,1,0)}function c(){return a(0,0,0,1)}n.d(t,{al:function(){return a}});const f=o(),d=r(),_=l(),v=s(),m=u(),p=c();Object.freeze(Object.defineProperty({__proto__:null,ONES:d,UNIT_W:p,UNIT_X:_,UNIT_Y:v,UNIT_Z:m,ZEROS:f,clone:function(e){const t=new Float32Array(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},create:i,createView:function(e,t){return new Float32Array(e,t,4)},fromValues:a,ones:r,unitW:c,unitX:l,unitY:s,unitZ:u,zeros:o},Symbol.toStringTag,{value:"Module"}))},98831:function(e,t,n){n.d(t,{U:function(){return P}});var i=n(69118),a=n(55939),o=n(64429),r=n(29316),l=n(96227),s=n(91907),u=n(84172);class c extends r.Z{constructor(){super(...arguments),this._color=(0,a.al)(0,1,0,1)}dispose(){this._program&&this._program.dispose()}prepareState({context:e}){e.setStencilTestEnabled(!0),e.setBlendingEnabled(!1),e.setFaceCullingEnabled(!1),e.setColorMask(!1,!1,!1,!1),e.setStencilOp(s.xS.KEEP,s.xS.KEEP,s.xS.REPLACE),e.setStencilWriteMask(255),e.setStencilFunction(s.wb.ALWAYS,0,255)}draw(e,t){const{context:n,state:i,requestRender:a,allowDelayedRender:r}=e,c=(0,o.cM)("clip",{geometry:[{location:0,name:"a_pos",count:2,type:s.g.SHORT}]}),f=t.getVAO(n,i,c.attributes,c.bufferLayouts);null!=f.indexBuffer&&(this._program||(this._program=(0,u.H)(n,l.O)),!r||null==a||this._program.compiled?(n.useProgram(this._program),this._program.setUniform2fv("u_coord_range",[1,1]),this._program.setUniform4fv("u_color",this._color),this._program.setUniformMatrix3fv("u_dvsMat3",i.displayMat3),n.bindVAO(f),n.drawElements(s.MX.TRIANGLES,f.indexBuffer.size,s.g.UNSIGNED_INT,0),n.bindVAO()):a())}}var f=n(14266);class d extends r.Z{constructor(){super(...arguments),this._desc={vsPath:"overlay/overlay",fsPath:"overlay/overlay",attributes:new Map([["a_pos",0],["a_uv",1]])}}dispose(){}prepareState({context:e}){e.setBlendingEnabled(!0),e.setColorMask(!0,!0,!0,!0),e.setBlendFunctionSeparate(s.zi.ONE,s.zi.ONE_MINUS_SRC_ALPHA,s.zi.ONE,s.zi.ONE_MINUS_SRC_ALPHA),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilFunction(s.wb.GREATER,255,255)}draw(e,t){const{context:n,painter:i,requestRender:a,allowDelayedRender:r}=e;if(!t.isReady)return;const{computedOpacity:l,dvsMat3:u,isWrapAround:c,perspectiveTransform:d,texture:_}=t;e.timeline.begin(this.name);const v=i.materialManager.getProgram(this._desc);if(r&&null!=a&&!v.compiled)return void a();const m=(0,o.cM)("overlay",{geometry:[{location:0,name:"a_pos",count:2,type:s.g.FLOAT}],tex:[{location:1,name:"a_uv",count:2,type:s.g.UNSIGNED_SHORT}]}),p=t.getVAO(n,m.bufferLayouts,m.attributes);if(!p)return;n.bindVAO(p),n.useProgram(v),n.bindTexture(_,f.Ib),v.setUniformMatrix3fv("u_dvsMat3",u),v.setUniform1i("u_texture",f.Ib),v.setUniform1f("u_opacity",l),v.setUniform2fv("u_perspective",d);const g=c?10:4;n.drawArrays(s.MX.TRIANGLE_STRIP,0,g),n.bindVAO(),e.timeline.end(this.name)}}var _=n(22598),v=n(27946),m=n(19431),p=n(38642),g=n(78951),h=n(29620);class x extends r.Z{constructor(){super(...arguments),this._color=(0,a.al)(1,0,0,1),this._patternMatrix=(0,p.Ue)(),this._programOptions={id:!1,pattern:!1}}dispose(){this._vao&&(this._vao.dispose(),this._vao=null)}drawMany(e,t){const{context:n,painter:i,requestRender:a,allowDelayedRender:o}=e;this._loadWGLResources(e);const r=e.displayLevel,l=e.styleLayer,u=l.backgroundMaterial,c=i.vectorTilesMaterialManager,d=l.getPaintValue("background-color",r),_=l.getPaintValue("background-opacity",r),v=l.getPaintValue("background-pattern",r),p=void 0!==v,g=1|window.devicePixelRatio,h=e.spriteMosaic;let x,y;const b=g>f.Vo?2:1,S=this._programOptions;S.pattern=p;const T=c.getMaterialProgram(n,u,S);if(!o||null==a||T.compiled){if(n.bindVAO(this._vao),n.useProgram(T),p){const e=h.getMosaicItemPosition(v,!0);if(null!=e){const{tl:t,br:i,page:a}=e;x=i[0]-t[0],y=i[1]-t[1];const o=h.getPageSize(a);null!=o&&(h.bind(n,s.cw.LINEAR,a,f.dD),T.setUniform4f("u_tlbr",t[0],t[1],i[0],i[1]),T.setUniform2fv("u_mosaicSize",o),T.setUniform1i("u_texture",f.dD))}T.setUniform1f("u_opacity",_)}else{const e=d[3]*_;this._color[0]=e*d[0],this._color[1]=e*d[1],this._color[2]=e*d[2],this._color[3]=e,T.setUniform4fv("u_color",this._color)}T.setUniform1f("u_depth",l.z||0);for(const e of t){if(T.setUniform1f("u_coord_range",e.rangeX),T.setUniformMatrix3fv("u_dvsMat3",e.transforms.displayViewScreenMat3),p){const t=Math.max(2**(Math.round(r)-e.key.level),1),n=b*e.width*t,i=n/(0,m.fp)(x),a=n/(0,m.fp)(y);this._patternMatrix[0]=i,this._patternMatrix[4]=a,T.setUniformMatrix3fv("u_pattern_matrix",this._patternMatrix)}n.setStencilFunction(s.wb.EQUAL,0,255),n.drawArrays(s.MX.TRIANGLE_STRIP,0,4)}}else a()}_loadWGLResources(e){if(this._vao)return;const{context:t,styleLayer:n}=e,i=n.backgroundMaterial,a=new Int8Array([0,0,1,0,0,1,1,1]),o=g.f.createVertex(t,s.l1.STATIC_DRAW,a),r=new h.U(t,i.getAttributeLocations(),i.getLayoutInfo(),{geometry:o});this._vao=r}}var y=n(61296);class b extends r.Z{constructor(){super(...arguments),this._programOptions={id:!1}}dispose(){}drawMany(e,t){const{context:n,displayLevel:i,requiredLevel:a,state:o,painter:r,spriteMosaic:l,styleLayerUID:u,requestRender:c,allowDelayedRender:f}=e;if(!t.some((e=>e.layerData.get(u)?.circleIndexCount??!1)))return;const d=e.styleLayer,_=d.circleMaterial,v=r.vectorTilesMaterialManager,m=d.getPaintValue("circle-translate",i),p=d.getPaintValue("circle-translate-anchor",i),g=this._programOptions,h=v.getMaterialProgram(n,_,g);if(f&&null!=c&&!h.compiled)return void c();n.useProgram(h),h.setUniformMatrix3fv("u_displayMat3",p===y.fD.VIEWPORT?o.displayMat3:o.displayViewMat3),h.setUniform2fv("u_circleTranslation",m),h.setUniform1f("u_depth",d.z),h.setUniform1f("u_antialiasingWidth",1.2);let x=-1;for(const e of t){if(!e.layerData.has(u))continue;e.key.level!==x&&(x=e.key.level,_.setDataUniforms(h,i,d,x,l));const t=e.layerData.get(u);if(!t.circleIndexCount)continue;t.prepareForRendering(n);const o=t.vao;null!=o&&(n.bindVAO(o),h.setUniformMatrix3fv("u_dvsMat3",e.transforms.displayViewScreenMat3),a!==e.key.level?n.setStencilFunction(s.wb.EQUAL,e.stencilRef,255):n.setStencilFunction(s.wb.GREATER,255,255),n.drawElements(s.MX.TRIANGLES,t.circleIndexCount,s.g.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*t.circleIndexStart),e.triangleCount+=t.circleIndexCount/3)}}}const S=1/65536;class T extends r.Z{constructor(){super(...arguments),this._fillProgramOptions={id:!1,pattern:!1},this._outlineProgramOptions={id:!1}}dispose(){}drawMany(e,t){const{displayLevel:n,renderPass:i,spriteMosaic:a,styleLayerUID:o}=e;let r=!1;for(const e of t)if(e.layerData.has(o)){const t=e.layerData.get(o);if(t.fillIndexCount>0||t.outlineIndexCount>0){r=!0;break}}if(!r)return;const l=e.styleLayer,s=l.getPaintProperty("fill-pattern"),u=void 0!==s,c=u&&s.isDataDriven;let f;if(u&&!c){const e=s.getValue(n);f=a.getMosaicItemPosition(e,!0)}const d=!u&&l.getPaintValue("fill-antialias",n);let _=!0,v=1;if(!u){const e=l.getPaintProperty("fill-color"),t=l.getPaintProperty("fill-opacity");if(!e?.isDataDriven&&!t?.isDataDriven){const e=l.getPaintValue("fill-color",n);v=l.getPaintValue("fill-opacity",n)*e[3],v>=1&&(_=!1)}}if(_&&"opaque"===i)return;const m=l.getPaintValue("fill-translate",n),p=l.getPaintValue("fill-translate-anchor",n);(_||"translucent"!==i)&&this._drawFill(e,o,l,t,m,p,u,f,c);const g=!l.hasDataDrivenOutlineColor&&l.outlineUsesFillColor&&v<1;d&&"opaque"!==i&&!g&&this._drawOutline(e,o,l,t,m,p)}_drawFill(e,t,n,i,a,o,r,l,u){if(r&&!u&&null==l)return;const{context:c,displayLevel:d,state:_,painter:v,pixelRatio:m,spriteMosaic:p,requestRender:g,allowDelayedRender:h}=e,x=n.fillMaterial,b=v.vectorTilesMaterialManager,T=m>f.Vo?2:1,I=this._fillProgramOptions;I.pattern=r;const C=b.getMaterialProgram(c,x,I);if(h&&null!=g&&!C.compiled)return void g();if(c.useProgram(C),null!=l){const{page:e}=l,t=p.getPageSize(e);null!=t&&(p.bind(c,s.cw.LINEAR,e,f.dD),C.setUniform2fv("u_mosaicSize",t),C.setUniform1i("u_texture",f.dD))}C.setUniformMatrix3fv("u_displayMat3",o===y.fD.VIEWPORT?_.displayMat3:_.displayViewMat3),C.setUniform2fv("u_fillTranslation",a),C.setUniform1f("u_depth",n.z+S);let E=-1;for(const e of i){if(!e.layerData.has(t))continue;e.key.level!==E&&(E=e.key.level,x.setDataUniforms(C,d,n,E,p));const i=e.layerData.get(t);if(!i.fillIndexCount)continue;i.prepareForRendering(c);const a=i.fillVAO;if(null!=a){if(c.bindVAO(a),C.setUniformMatrix3fv("u_dvsMat3",e.transforms.displayViewScreenMat3),c.setStencilFunction(s.wb.EQUAL,e.stencilRef,255),r){const t=Math.max(2**(Math.round(d)-e.key.level),1),n=e.rangeX/(T*e.width*t);C.setUniform1f("u_patternFactor",n)}if(u){const e=i.patternMap;if(!e)continue;for(const[t,n]of e){const e=p.getPageSize(t);null!=e&&(p.bind(c,s.cw.LINEAR,t,f.dD),C.setUniform2fv("u_mosaicSize",e),C.setUniform1i("u_texture",f.dD),c.drawElements(s.MX.TRIANGLES,n[1],s.g.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*n[0]))}}else c.drawElements(s.MX.TRIANGLES,i.fillIndexCount,s.g.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*i.fillIndexStart);e.triangleCount+=i.fillIndexCount/3}}}_drawOutline(e,t,n,i,a,o){const{context:r,displayLevel:l,state:u,painter:c,pixelRatio:f,spriteMosaic:d,requestRender:_,allowDelayedRender:v}=e,m=n.outlineMaterial,p=c.vectorTilesMaterialManager,g=.75/f,h=this._outlineProgramOptions,x=p.getMaterialProgram(r,m,h);if(v&&null!=_&&!x.compiled)return void _();r.useProgram(x),x.setUniformMatrix3fv("u_displayMat3",o===y.fD.VIEWPORT?u.displayMat3:u.displayViewMat3),x.setUniform2fv("u_fillTranslation",a),x.setUniform1f("u_depth",n.z+S),x.setUniform1f("u_outline_width",g);let b=-1;for(const e of i){if(!e.layerData.has(t))continue;e.key.level!==b&&(b=e.key.level,m.setDataUniforms(x,l,n,b,d));const i=e.layerData.get(t);if(i.prepareForRendering(r),!i.outlineIndexCount)continue;const a=i.outlineVAO;null!=a&&(r.bindVAO(a),x.setUniformMatrix3fv("u_dvsMat3",e.transforms.displayViewScreenMat3),r.setStencilFunction(s.wb.EQUAL,e.stencilRef,255),r.drawElements(s.MX.TRIANGLES,i.outlineIndexCount,s.g.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*i.outlineIndexStart),e.triangleCount+=i.outlineIndexCount/3)}}}class I extends r.Z{constructor(){super(...arguments),this._programOptions={id:!1,pattern:!1,sdf:!1}}dispose(){}drawMany(e,t){const{context:n,displayLevel:i,state:a,painter:o,pixelRatio:r,spriteMosaic:l,styleLayerUID:u,requestRender:c,allowDelayedRender:d}=e;if(!t.some((e=>e.layerData.get(u)?.lineIndexCount??!1)))return;const _=e.styleLayer,v=_.lineMaterial,m=o.vectorTilesMaterialManager,p=_.getPaintValue("line-translate",i),g=_.getPaintValue("line-translate-anchor",i),h=_.getPaintProperty("line-pattern"),x=void 0!==h,b=x&&h.isDataDriven;let S,T;if(x&&!b){const e=h.getValue(i);S=l.getMosaicItemPosition(e)}let I=!1;if(!x){const e=_.getPaintProperty("line-dasharray");if(T=void 0!==e,I=T&&e.isDataDriven,T&&!I){const t=e.getValue(i),n=_.getDashKey(t,_.getLayoutValue("line-cap",i));S=l.getMosaicItemPosition(n)}}const C=1/r,E=this._programOptions;E.pattern=x,E.sdf=T;const O=m.getMaterialProgram(n,v,E);if(d&&null!=c&&!O.compiled)return void c();if(n.useProgram(O),O.setUniformMatrix3fv("u_displayViewMat3",a.displayViewMat3),O.setUniformMatrix3fv("u_displayMat3",g===y.fD.VIEWPORT?a.displayMat3:a.displayViewMat3),O.setUniform2fv("u_lineTranslation",p),O.setUniform1f("u_depth",_.z),O.setUniform1f("u_antialiasing",C),S&&null!=S){const{page:e}=S,t=l.getPageSize(e);null!=t&&(l.bind(n,s.cw.LINEAR,e,f.dD),O.setUniform2fv("u_mosaicSize",t),O.setUniform1i("u_texture",f.dD))}let A=-1;for(const e of t){if(!e.layerData.has(u))continue;e.key.level!==A&&(A=e.key.level,v.setDataUniforms(O,i,_,A,l));const t=2**(i-A)/r;O.setUniform1f("u_zoomFactor",t);const a=e.layerData.get(u);if(!a.lineIndexCount)continue;a.prepareForRendering(n);const o=a.vao;if(null!=o){if(n.bindVAO(o),O.setUniformMatrix3fv("u_dvsMat3",e.transforms.displayViewScreenMat3),n.setStencilFunction(s.wb.EQUAL,e.stencilRef,255),b||I){const e=a.patternMap;if(!e)continue;for(const[t,i]of e){const e=l.getPageSize(t);null!=e&&(l.bind(n,s.cw.LINEAR,t,f.dD),O.setUniform2fv("u_mosaicSize",e),O.setUniform1i("u_texture",f.dD),n.drawElements(s.MX.TRIANGLES,i[1],s.g.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*i[0]))}}else n.drawElements(s.MX.TRIANGLES,a.lineIndexCount,s.g.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*a.lineIndexStart);e.triangleCount+=a.lineIndexCount/3}}}}var C=n(45867),E=n(2509),O=n(71200);class A extends r.Z{constructor(){super(...arguments),this._iconProgramOptions={id:!1,sdf:!1},this._sdfProgramOptions={id:!1},this._spritesTextureSize=(0,C.Ue)()}dispose(){}drawMany(e,t){const n=e.styleLayer;this._drawIcons(e,n,t),this._drawText(e,n,t)}_drawIcons(e,t,n){const{context:i,displayLevel:a,painter:o,spriteMosaic:r,state:l,styleLayerUID:s,requestRender:u,allowDelayedRender:c}=e,d=t.iconMaterial,_=o.vectorTilesMaterialManager;let v,m=!1;for(const e of n)if(e.layerData.has(s)&&(v=e.layerData.get(s),v.iconPerPageElementsMap.size>0)){m=!0;break}if(!m)return;const p=t.getPaintValue("icon-translate",a),g=t.getPaintValue("icon-translate-anchor",a);let h=t.getLayoutValue("icon-rotation-alignment",a);h===y.aF.AUTO&&(h=t.getLayoutValue("symbol-placement",a)===y.R.POINT?y.aF.VIEWPORT:y.aF.MAP);const x=h===y.aF.MAP,b=t.getLayoutValue("icon-keep-upright",a)&&x,S=v.isIconSDF,T=this._iconProgramOptions;T.sdf=S;const I=_.getMaterialProgram(i,d,T);if(c&&null!=u&&!I.compiled)return void u();i.useProgram(I),I.setUniformMatrix3fv("u_displayViewMat3",h===y.aF.MAP?l.displayViewMat3:l.displayMat3),I.setUniformMatrix3fv("u_displayMat3",g===y.fD.VIEWPORT?l.displayMat3:l.displayViewMat3),I.setUniform2fv("u_iconTranslation",p),I.setUniform1f("u_depth",t.z),I.setUniform1f("u_mapRotation",(0,O.s5)(l.rotation)),I.setUniform1f("u_keepUpright",b?1:0),I.setUniform1f("u_level",10*a),I.setUniform1i("u_texture",f.dD),I.setUniform1f("u_fadeDuration",E.v7/1e3);let C=-1;for(const o of n){if(!o.layerData.has(s))continue;if(o.key.level!==C&&(C=o.key.level,d.setDataUniforms(I,a,t,C,r)),v=o.layerData.get(s),0===v.iconPerPageElementsMap.size)continue;v.prepareForRendering(i),v.updateOpacityInfo();const n=v.iconVAO;if(null!=n){i.bindVAO(n),I.setUniformMatrix3fv("u_dvsMat3",o.transforms.displayViewScreenMat3),I.setUniform1f("u_time",(performance.now()-v.lastOpacityUpdate)/1e3);for(const[t,n]of v.iconPerPageElementsMap)this._renderIconRange(e,I,n,t,o)}}}_renderIconRange(e,t,n,i,a){const{context:o,spriteMosaic:r}=e;this._spritesTextureSize[0]=r.getWidth(i)/4,this._spritesTextureSize[1]=r.getHeight(i)/4,t.setUniform2fv("u_mosaicSize",this._spritesTextureSize),r.bind(o,s.cw.LINEAR,i,f.dD),this._setStencilState(e,a),o.drawElements(s.MX.TRIANGLES,n[1],s.g.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*n[0]),a.triangleCount+=n[1]/3}_drawText(e,t,n){const{context:i,displayLevel:a,glyphMosaic:o,painter:r,pixelRatio:l,spriteMosaic:s,state:u,styleLayerUID:c,requestRender:d,allowDelayedRender:_}=e,v=t.textMaterial,m=r.vectorTilesMaterialManager;let p,g=!1;for(const e of n)if(e.layerData.has(c)&&(p=e.layerData.get(c),p.glyphPerPageElementsMap.size>0)){g=!0;break}if(!g)return;const h=t.getPaintProperty("text-opacity");if(h&&!h.isDataDriven&&0===h.getValue(a))return;const x=t.getPaintProperty("text-color"),b=!x||x.isDataDriven||x.getValue(a)[3]>0,S=t.getPaintProperty("text-halo-width"),T=t.getPaintProperty("text-halo-color"),I=(!S||S.isDataDriven||S.getValue(a)>0)&&(!T||T.isDataDriven||T.getValue(a)[3]>0);if(!b&&!I)return;let A=t.getLayoutValue("text-rotation-alignment",a);A===y.aF.AUTO&&(A=t.getLayoutValue("symbol-placement",a)===y.R.POINT?y.aF.VIEWPORT:y.aF.MAP);const P=A===y.aF.MAP,L=t.getLayoutValue("text-keep-upright",a)&&P,R=.8*3/l;this._glyphTextureSize||(this._glyphTextureSize=(0,C.al)(o.width/4,o.height/4));const D=t.getPaintValue("text-translate",a),M=t.getPaintValue("text-translate-anchor",a),z=this._sdfProgramOptions,N=m.getMaterialProgram(i,v,z);if(_&&null!=d&&!N.compiled)return void d();i.useProgram(N),N.setUniformMatrix3fv("u_displayViewMat3",A===y.aF.MAP?u.displayViewMat3:u.displayMat3),N.setUniformMatrix3fv("u_displayMat3",M===y.fD.VIEWPORT?u.displayMat3:u.displayViewMat3),N.setUniform2fv("u_textTranslation",D),N.setUniform1f("u_depth",t.z+152587890625e-16),N.setUniform2fv("u_mosaicSize",this._glyphTextureSize),N.setUniform1f("u_mapRotation",(0,O.s5)(u.rotation)),N.setUniform1f("u_keepUpright",L?1:0),N.setUniform1f("u_level",10*a),N.setUniform1i("u_texture",f._E),N.setUniform1f("u_antialiasingWidth",R),N.setUniform1f("u_fadeDuration",E.v7/1e3);let w=-1;for(const r of n){if(!r.layerData.has(c))continue;if(r.key.level!==w&&(w=r.key.level,v.setDataUniforms(N,a,t,w,s)),p=r.layerData.get(c),0===p.glyphPerPageElementsMap.size)continue;p.prepareForRendering(i),p.updateOpacityInfo();const n=p.textVAO;if(null==n)continue;i.bindVAO(n),N.setUniformMatrix3fv("u_dvsMat3",r.transforms.displayViewScreenMat3),this._setStencilState(e,r);const l=(performance.now()-p.lastOpacityUpdate)/1e3;N.setUniform1f("u_time",l),p.glyphPerPageElementsMap.forEach(((e,t)=>{this._renderGlyphRange(i,e,t,o,N,I,b,r)}))}}_renderGlyphRange(e,t,n,i,a,o,r,l){i.bind(e,s.cw.LINEAR,n,f._E),o&&(a.setUniform1f("u_halo",1),e.drawElements(s.MX.TRIANGLES,t[1],s.g.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*t[0]),l.triangleCount+=t[1]/3),r&&(a.setUniform1f("u_halo",0),e.drawElements(s.MX.TRIANGLES,t[1],s.g.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*t[0]),l.triangleCount+=t[1]/3)}_setStencilState(e,t){const{context:n,is3D:i,stencilSymbols:a}=e;if(n.setStencilTestEnabled(!0),a)return n.setStencilWriteMask(255),void n.setStencilFunction(s.wb.ALWAYS,t.stencilRef,255);n.setStencilWriteMask(0),i?n.setStencilFunction(s.wb.EQUAL,t.stencilRef,255):n.setStencilFunction(s.wb.GREATER,255,255)}}const P={clip:c,stencil:_.Z,bitmap:i.Z,overlay:d,tileDebugInfo:v.Z,vtlBackground:x,vtlFill:T,vtlLine:I,vtlCircle:b,vtlSymbol:A}},2509:function(e,t,n){n.d(t,{JM:function(){return o},R8:function(){return i},cn:function(){return a},v7:function(){return r}});const i=!0,a=32,o=1.5,r=200},61296:function(e,t,n){n.d(t,{EE:function(){return a},R:function(){return o},_5:function(){return u},aF:function(){return r},f2:function(){return v},fD:function(){return c},fR:function(){return i},nR:function(){return s},r1:function(){return f},vL:function(){return l}});var i,a,o,r,l,s,u,c,f,d,_=n(25609);(d=i||(i={}))[d.BACKGROUND=0]="BACKGROUND",d[d.FILL=1]="FILL",d[d.LINE=2]="LINE",d[d.SYMBOL=3]="SYMBOL",d[d.CIRCLE=4]="CIRCLE",function(e){e[e.VISIBLE=0]="VISIBLE",e[e.NONE=1]="NONE"}(a||(a={})),function(e){e[e.POINT=0]="POINT",e[e.LINE=1]="LINE",e[e.LINE_CENTER=2]="LINE_CENTER"}(o||(o={})),function(e){e[e.MAP=0]="MAP",e[e.VIEWPORT=1]="VIEWPORT",e[e.AUTO=2]="AUTO"}(r||(r={})),function(e){e[e.AUTO=0]="AUTO",e[e.LEFT=1]="LEFT",e[e.CENTER=2]="CENTER",e[e.RIGHT=3]="RIGHT"}(l||(l={})),function(e){e[e.CENTER=0]="CENTER",e[e.LEFT=1]="LEFT",e[e.RIGHT=2]="RIGHT",e[e.TOP=3]="TOP",e[e.BOTTOM=4]="BOTTOM",e[e.TOP_LEFT=5]="TOP_LEFT",e[e.TOP_RIGHT=6]="TOP_RIGHT",e[e.BOTTOM_LEFT=7]="BOTTOM_LEFT",e[e.BOTTOM_RIGHT=8]="BOTTOM_RIGHT"}(s||(s={})),function(e){e[e.NONE=0]="NONE",e[e.UPPERCASE=1]="UPPERCASE",e[e.LOWERCASE=2]="LOWERCASE"}(u||(u={})),function(e){e[e.MAP=0]="MAP",e[e.VIEWPORT=1]="VIEWPORT"}(c||(c={})),function(e){e[e.HORIZONTAL=0]="HORIZONTAL",e[e.VERTICAL=1]="VERTICAL"}(f||(f={}));class v{}v.backgroundLayoutDefinition={visibility:{type:"enum",values:["visible","none"],default:a.VISIBLE}},v.fillLayoutDefinition={visibility:{type:"enum",values:["visible","none"],default:a.VISIBLE}},v.lineLayoutDefinition={visibility:{type:"enum",values:["visible","none"],default:a.VISIBLE},"line-cap":{type:"enum",values:["butt","round","square"],default:_.RL.BUTT},"line-join":{type:"enum",values:["bevel","round","miter"],default:_.AH.MITER},"line-miter-limit":{type:"number",default:2},"line-round-limit":{type:"number",default:1.05}},v.symbolLayoutDefinition={visibility:{type:"enum",values:["visible","none"],default:a.VISIBLE},"symbol-avoid-edges":{type:"boolean",default:!1},"symbol-placement":{type:"enum",values:["point","line","line-center"],default:o.POINT},"symbol-sort-key":{type:"number",default:-1},"symbol-spacing":{type:"number",minimum:1,default:250},"icon-allow-overlap":{type:"boolean",default:!1},"icon-anchor":{type:"enum",values:["center","left","right","top","bottom","top-left","top-right","bottom-left","bottom-right"],default:s.CENTER},"icon-ignore-placement":{type:"boolean",default:!1},"icon-image":{type:"string"},"icon-keep-upright":{type:"boolean",default:!1},"icon-offset":{type:"array",value:"number",length:2,default:[0,0]},"icon-optional":{type:"boolean",default:!1},"icon-padding":{type:"number",minimum:0,default:2},"icon-rotate":{type:"number",default:0},"icon-rotation-alignment":{type:"enum",values:["map","viewport","auto"],default:r.AUTO},"icon-size":{type:"number",minimum:0,default:1},"text-allow-overlap":{type:"boolean",default:!1},"text-anchor":{type:"enum",values:["center","left","right","top","bottom","top-left","top-right","bottom-left","bottom-right"],default:s.CENTER},"text-field":{type:"string"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"]},"text-ignore-placement":{type:"boolean",default:!1},"text-justify":{type:"enum",values:["auto","left","center","right"],default:l.CENTER},"text-keep-upright":{type:"boolean",default:!0},"text-letter-spacing":{type:"number",default:0},"text-line-height":{type:"number",default:1.2},"text-max-angle":{type:"number",minimum:0,default:45},"text-max-width":{type:"number",minimum:0,default:10},"text-offset":{type:"array",value:"number",length:2,default:[0,0]},"text-optional":{type:"boolean",default:!1},"text-padding":{type:"number",minimum:0,default:2},"text-rotate":{type:"number",default:0},"text-rotation-alignment":{type:"enum",values:["map","viewport","auto"],default:r.AUTO},"text-size":{type:"number",minimum:0,default:16},"text-transform":{type:"enum",values:["none","uppercase","lowercase"],default:u.NONE},"text-writing-mode":{type:"array",value:"enum",values:["horizontal","vertical"],default:[f.HORIZONTAL]}},v.circleLayoutDefinition={visibility:{type:"enum",values:["visible","none"],default:a.VISIBLE}},v.backgroundPaintDefinition={"background-color":{type:"color",default:[0,0,0,1]},"background-opacity":{type:"number",minimum:0,maximum:1,default:1},"background-pattern":{type:"string"}},v.fillPaintDefinition={"fill-antialias":{type:"boolean",default:!0},"fill-color":{type:"color",default:[0,0,0,1]},"fill-opacity":{type:"number",minimum:0,maximum:1,default:1},"fill-outline-color":{type:"color",default:[0,0,0,0]},"fill-pattern":{type:"string"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0]},"fill-translate-anchor":{type:"enum",values:["map","viewport"],default:c.MAP}},v.linePaintDefinition={"line-blur":{type:"number",minimum:0,default:0},"line-color":{type:"color",default:[0,0,0,1]},"line-dasharray":{type:"array",value:"number",default:[]},"line-gap-width":{type:"number",minimum:0,default:0},"line-offset":{type:"number",default:0},"line-opacity":{type:"number",minimum:0,maximum:1,default:1},"line-pattern":{type:"string"},"line-translate":{type:"array",value:"number",length:2,default:[0,0]},"line-translate-anchor":{type:"enum",values:["map","viewport"],default:c.MAP},"line-width":{type:"number",minimum:0,default:1}},v.symbolPaintDefinition={"icon-color":{type:"color",default:[0,0,0,1]},"icon-halo-blur":{type:"number",minimum:0,default:0},"icon-halo-color":{type:"color",default:[0,0,0,0]},"icon-halo-width":{type:"number",minimum:0,default:0},"icon-opacity":{type:"number",minimum:0,maximum:1,default:1},"icon-translate":{type:"array",value:"number",length:2,default:[0,0]},"icon-translate-anchor":{type:"enum",values:["map","viewport"],default:c.MAP},"text-color":{type:"color",default:[0,0,0,1]},"text-halo-blur":{type:"number",minimum:0,default:0},"text-halo-color":{type:"color",default:[0,0,0,0]},"text-halo-width":{type:"number",minimum:0,default:0},"text-opacity":{type:"number",minimum:0,maximum:1,default:1},"text-translate":{type:"array",value:"number",length:2,default:[0,0]},"text-translate-anchor":{type:"enum",values:["map","viewport"],default:c.MAP}},v.rasterPaintDefinition={"raster-opacity":{type:"number",minimum:0,maximum:1,default:1},"raster-hue-rotate":{type:"number",default:0},"raster-brightness-min":{type:"number",minimum:0,maximum:1,default:0},"raster-brightness-max":{type:"number",minimum:0,maximum:1,default:1},"raster-saturation":{type:"number",minimum:-1,maximum:1,default:0},"raster-contrast":{type:"number",minimum:-1,maximum:1,default:0},"raster-fade-duration":{type:"number",minimum:0,default:300}},v.circlePaintDefinition={"circle-blur":{type:"number",minimum:0,default:0},"circle-color":{type:"color",default:[0,0,0,1]},"circle-opacity":{type:"number",minimum:0,maximum:1,default:1},"circle-radius":{type:"number",minimum:0,default:5},"circle-stroke-color":{type:"color",default:[0,0,0,1]},"circle-stroke-opacity":{type:"number",minimum:0,maximum:1,default:1},"circle-stroke-width":{type:"number",minimum:0,default:0},"circle-translate":{type:"array",value:"number",length:2,default:[0,0]},"circle-translate-anchor":{type:"enum",values:["map","viewport"],default:c.MAP}}},27894:function(e,t,n){n.d(t,{As:function(){return r},cD:function(){return l},sy:function(){return o}});var i=n(91907),a=n(41163);const o={geometry:[new a.G("a_pos",2,i.g.BYTE,0,2)]},r={geometry:[new a.G("a_pos",2,i.g.BYTE,0,4),new a.G("a_tex",2,i.g.BYTE,2,4)]},l={geometry:[new a.G("a_pos",2,i.g.UNSIGNED_SHORT,0,4)]}},605:function(e,t,n){n.d(t,{$:function(){return M}});var i=n(39994),a=n(13802),o=n(43056),r=n(76231),l=n(46332),s=n(38642),u=n(14266),c=n(27954);class f extends c.I{constructor(e,t,n,i){super(e,t,n,i,u.i9,u.i9)}destroy(){super.destroy()}setTransform(e){const t=this.resolution/e.resolution,n=this.transforms.tileMat3,[i,a]=e.toScreenNoRotation([0,0],[this.x,this.y]),s=this.width/this.rangeX*t,u=this.height/this.rangeY*t;(0,l.t8)(n,s,0,0,0,u,0,i,a,1),(0,l.Jp)(this.transforms.displayViewScreenMat3,e.displayViewMat3,n);const c=this.transforms.labelMat2d,f=window.devicePixelRatio,d=(0,r.t8)((0,o.Ue)(),s*f,0,0,u*f,i*f,a*f);(0,r.Jp)(c,e.viewMat2d,d)}_createTransforms(){return{labelMat2d:(0,o.Ue)(),tileMat3:(0,s.Ue)(),displayViewScreenMat3:(0,s.Ue)()}}}var d=n(72797),_=n(38716),v=n(47126);function m(e,t){return e<<16|255&t}class p{constructor(e,t,n,i,a){this.instance=e,this.materialKey=t,this.target=n,this.start=i,this.count=a}get textureKey(){return 255&this.materialKey}get indexEnd(){return this.start+this.count}extend(e){this.count+=e}render(e){this.instance.techniqueRef.render(e,this)}}class g{constructor(){this._length=0,this._minOrderedLength=0,this._materialKeys=new Set}static fromDisplayEntities(e,t,n,i){const a=new g;for(const o of e.values())for(const e of o.records){const o=n.getInstance(e.instanceId),r=m(o.instanceId,e.textureKey);a.addRecord(o,r,e.indexStart,e.indexCount,e.vertexStart,e.vertexCount,t,i)}return a}get length(){return this._length}get minOrderedLength(){return this._minOrderedLength}get minUnorderedLength(){return this._materialKeys.size}render(e){const{drawPhase:t}=e;for(const n of this.infos())n.instance.techniqueRef.drawPhase&t&&n.render(e)}addRecord(e,t,n,i,a,o,r,l){let s=n,u=i;if(u||(s=a,u=o),!u)return;if(null==this._head){const n=new p(e,t,r,s,u);return this._head=new v.a(n),this._tail=this._head,this._length++,void this._minOrderedLength++}if(l===_.gl.STRICT_ORDER)return this._insert(e,t,r,s,u,this._tail,null);let c=null,f=this._head;const d=e.instanceId,m=e.techniqueRef.symbologyPlane;if(l===_.gl.STRICT_MARKERS_AND_TEXT&&(m===_.mH.MARKER||m===_.mH.TEXT))return this._insert(e,t,r,s,u,this._tail,null);for(;f;){const n=f.data.instance,i=n.instanceId,a=n.techniqueRef.symbologyPlane,o=c?.data.instance.instanceId;if(m=1){const t=this.index.operations[this.index.operations.length-1];t.srcFrom+t.count===e.indexStart&&(t.count+=e.indexCount,n=!0)}n||this.index.operations.push({srcFrom:e.indexStart,dstFrom:this.index.count,count:e.indexCount,mutate:t}),e.indexStart=this.index.count,this.index.count+=e.indexCount}}var x=n(14771),y=n(61681),b=n(8530),S=n(20627),T=n(78951),I=n(91907);class C{constructor(e,t,n,i){this._pool=i;const a=S.$.create(t*n*Uint32Array.BYTES_PER_ELEMENT,this._pool);this.size=t,this.strideInt=n,this.bufferType=e,this.dirty={start:1/0,end:0},this.memoryStats={bytesUsed:0,bytesReserved:t*n*Uint32Array.BYTES_PER_ELEMENT},this._gpu=null,this._cpu=a,this.clear()}get elementSize(){return this._cpu.length/this.strideInt}get intSize(){return this.fillPointer*this.strideInt}get byteSize(){return this.intSize*Uint32Array.BYTES_PER_ELEMENT}get invalidated(){return this.bufferSize>0&&!this._gpu}get invalidatedComputeBuffer(){return this.bufferSize>0&&!this._gpuComputeTriangles}invalidate(){this._invalidateTriangleBuffer(),this._gpu?.dispose(),this._gpu=null}_invalidateTriangleBuffer(){this._gpuComputeTriangles?.dispose(),this._gpuComputeTriangles=null}destroy(){this._gpu?.dispose(),this._gpuComputeTriangles?.dispose(),this._cpu?.destroy()}clear(){this.dirty.start=1/0,this.dirty.end=0,this.freeList=new v.m({start:0,end:this._cpu.length/this.strideInt}),this.fillPointer=0}ensure(e){if(!(this.maxAvailableSpace()>=e)&&e*this.strideInt>this._cpu.length-this.fillPointer){this.invalidate();const t=this._cpu.length/this.strideInt,n=Math.round(1.25*(t+e)),i=n*this.strideInt;this._cpu.expand(i*Uint32Array.BYTES_PER_ELEMENT),this.freeList.free(t,n-t),this.memoryStats.bytesReserved+=(n-t)*this.strideInt*Uint32Array.BYTES_PER_ELEMENT}}set(e,t){this._cpu.array[e]!==t&&(this._cpu.array[e]=t,this.dirty.start=Math.min(e,this.dirty.start),this.dirty.end=Math.max(e+1,this.dirty.end))}getGPUBuffer(e,t=!1){if(!this.bufferSize)return null;if(t){if("index"!==this.bufferType)throw new Error("Tired to get triangle buffer, but target is not an index buffer");return null==this._gpuComputeTriangles&&(this._gpuComputeTriangles=this._createComputeBuffer(e)),this._gpuComputeTriangles}return null==this._gpu&&(this._gpu=this._createBuffer(e)),this._gpu}getView(e,t){return this._cpu.getUint32View(e,t/Uint32Array.BYTES_PER_ELEMENT)}get bufferSize(){return this._cpu.length/this.strideInt}maxAvailableSpace(){return this.freeList.maxAvailableSpace()}insert(e,t,n,i){const a=n*this.strideInt;if(!a)return 0;const o=t*this.strideInt*Uint32Array.BYTES_PER_ELEMENT,r=new Uint32Array(e,o,a),l=this.freeList.firstFit(n);(0,y.O3)(l,"First fit region must be defined");const s=l*this.strideInt,u=a;if(this._cpu.array.set(r,s),0!==i)for(let e=0;ei,o=this._cpu,r=S.$.create(i,this._pool);a||r.array.set(this._cpu.getUint32View(0,this.intSize));for(const e of t)if(a||e.srcFrom!==e.dstFrom||0!==e.mutate){this.dirty.start=Math.min(this.dirty.start,e.dstFrom*this.strideInt),this.dirty.end=Math.max(this.dirty.end,(e.dstFrom+e.count)*this.strideInt);for(let t=0;tt.locations.has(e.name)));if(!n)return{attributes:a,hash:this._layout.hash,stride:this._layout.stride};const o=Object.values(i).flat().join("-");if(this._computeLayouts.has(o))return this._computeLayouts.get(o);const r=this._layout.stride;for(const{name:e,count:t,type:n,normalized:o,offset:l,packPrecisionFactor:s}of this._layout.attributes){const u=i[e];null!=u&&2===u.length&&(a.push({name:u[0],count:t,type:n,normalized:o,offset:l+r,packPrecisionFactor:s}),a.push({name:u[1],count:t,type:n,normalized:o,offset:l+2*r,packPrecisionFactor:s}))}const l={attributes:a,stride:r,hash:(0,O.ig)(a)};return this._computeLayouts.set(o,l),l}getDrawArgs(e,t,n,i){return i?{primitive:I.MX.POINTS,count:t/3,offset:n/3}:{primitive:e,count:t,offset:n}}getDebugVertexInfo(e){if(!this._vertexBuffer)return null;const t=this.getLayout(e);if(null==t)return null;const n=t.stride,i=this._vertexBuffer.getView(0,this._vertexBuffer.byteSize),a=new DataView(i.slice().buffer);let o=i.byteLength/n;e.useComputeBuffer&&(o=this._indexBuffer.fillPointer/3);const r=this._indexBuffer.getView(0,this._indexBuffer.byteSize);let l=0;const s=[];for(let i=0;i"pos"===e.name||"position"===e.name)),!this._position)throw new Error("InternalError: Unable to find position attribute");this._indexBuffer=new C("index",Math.max(t,1e3),1,this._bufferPool),this._vertexBuffer=new C("vertex",Math.max(n,1e3),i,this._bufferPool)}}append(e){const t=e.layout.stride,n=e.indices.byteLength/Uint32Array.BYTES_PER_ELEMENT,i=e.vertices.byteLength/t;this._ensure(e.layout,n,i);const{vertices:a,indices:o}=e,r=this._vertexBuffer.insert(a,0,a.byteLength/t,0);return{vertexFrom:r,indexFrom:this._indexBuffer.insert(o,0,o.byteLength/4,r)}}copyRecordFrom(e,t,n,i){const{indexStart:a,indexCount:o,vertexStart:r,vertexCount:l}=t;this._ensure(e._layout,o,l);const s=e._position,u=n*(s.packPrecisionFactor??1),c=i*(s.packPrecisionFactor??1),f=s.offset,d=(0,b.UJ)(u,c),_=this._vertexBuffer.copyFrom(e._vertexBuffer,r,l,d,f),v=this._indexBuffer.copyFrom(e._indexBuffer,a,o,_-r,0),m=t.clone();return m.vertexStart=_,m.indexStart=v,m.overlaps=0,m}remove(e,t,n,i){this._indexBuffer.free(e,t),this._vertexBuffer.free(n,i)}upload(){this._invalidated=!0}getVAO(e,t,n){if(!this._vertexBuffer||!this._indexBuffer||!this._vertexBuffer.bufferSize)return null;const i=n?.useComputeBuffer?1:0;let a=this._vaos.get(i);if(this._invalidated||n?.useComputeBuffer){(this._vertexBuffer.invalidated||this._indexBuffer.invalidated||n?.useComputeBuffer&&this._indexBuffer.invalidatedComputeBuffer)&&(this._vertexBuffer.invalidate(),this._indexBuffer.invalidate(),a?.disposeVAOOnly(),a=null),this._vertexBuffer.upload(),this._indexBuffer.upload();const o=this._indexBuffer.getGPUBuffer(e,1===i),r=this._vertexBuffer.getGPUBuffer(e);a||(a=new A.U(e,t.locations,this._getVertexAttributeLayout(this.getLayout(n)),{geometry:r},o),this._vaos.set(i,a)),this._invalidated=!1}return a}get memoryStats(){return{bytesUsed:this._vertexBuffer.memoryStats.bytesUsed+this._indexBuffer.memoryStats.bytesUsed,bytesReserved:this._vertexBuffer.memoryStats.bytesReserved+this._indexBuffer.memoryStats.bytesReserved,vertex:this._vertexBuffer.memoryStats,index:this._indexBuffer.memoryStats}}reshuffle(e){this._vertexBuffer&&this._vertexBuffer.reshuffle(e.vertex.count,e.vertex.operations),this._indexBuffer&&this._indexBuffer.reshuffle(e.index.count,e.index.operations)}}class L{constructor(e){this._pos=0,this._buffer=e,this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer)}readInt32(){return this._i32View[this._pos++]}readF32(){return this._f32View[this._pos++]}}var R=n(2154);let D=0;class M extends f{constructor(e,t,n,i,a=!1){super(e,t,n,i),this._meshes=new Map,this._entities=[],this._invalidated=!1,this._nextUploadAllowed=!1,this.tileAge=D++,this._metrics=[],this._entityIds=new Set,this._entityIdsFromBuffer=new Set,this._attributeEpoch=0,this._encounteredEnd=!1,this.visible=!0,this.transforms.labelMat2d=(0,o.Ue)(),this.enableDeferredUploads=a}destroy(){super.destroy(),this.clear()}clear(){for(const e of this._meshes.values())e.destroy();this._meshes.clear(),this._entities=[],this._metrics=[],this._displayList=null,this._invalidated=!0,this._entityIds.clear(),this._nextUploadAllowed=!0}beforeRender(e){super.beforeRender(e),this._needsReshuffle&&e.reshuffleManager.schedule(this)}tryReady(e){const t=this._invalidated&&!this._uploadAllowed;return!(this._isReady||t||!this._encounteredEnd||!(e>=this._attributeEpoch)||((0,i.Z)("esri-2d-update-debug"),this.ready(),this.requestRender(),0))}get labelMetrics(){return this._metrics}get hasData(){return!!this._meshes.size}get needsUpload(){return this._invalidated}get _uploadAllowed(){return!this.enableDeferredUploads||this._nextUploadAllowed}upload(){this._nextUploadAllowed=!0}getDisplayList(e,t,n=_.gl.BATCHING){if(this._uploadAllowed&&this._invalidated){this._entities.sort(((e,t)=>{const n=t.sortKey,i=e.sortKey;return i===n?e.id-t.id:i-n})),n===_.gl.BATCHING&&this.reshuffle(!0),this._displayList=g.fromDisplayEntities(this._entities,this,t,n);for(const e of this._meshes.values())e.upload();this.debugInfo.display.length=this._displayList.length,this.debugInfo.display.minOrderedLength=this._displayList.minOrderedLength,this.debugInfo.display.minUnorderedLength=this._displayList.minUnorderedLength,this.requestRender(),this._invalidated=!1,this._nextUploadAllowed=!1}return this._displayList}getMesh(e){if(!this._meshes.has(e))throw new Error(`InternalError: Unable to find VAO for instance: ${e}`);return this._meshes.get(e)}getSortKeys(e){const t=new Map;for(const{id:n,sortKey:i}of this._entities)if(e.has(n)&&t.set(n,i),t.size===e.size)break;return t}onMessage(e){switch(e.type){case"append":this._onAppendMessage(e);break;case"update":this._onUpdateMessage(e)}if(this._aggregateMemoryStats(),this.requestRender(),e.end){if((0,i.Z)("esri-2d-update-debug"),!e.attributeEpoch)throw new Error("InternalError: Attribute epoch not defined.");this._attributeEpoch=e.attributeEpoch,this._encounteredEnd=!0}}_onAppendMessage(e){if((0,i.Z)("esri-2d-update-debug"),e.clear&&this.clear(),!e.append)return;const t=(0,R.h)(new L(e.append.entities),d.Z);this._insert(t,e.append.data,!1)}_onUpdateMessage(e){(0,i.Z)("esri-2d-update-debug");const t=(0,R.h)(new L(e.modify.entities),d.Z),n=t.map((e=>e.id)),a=e.isPixelBuffer??!1,o=[...e.remove,...n];a?this._removeByIdsFromBuffer(o):this._removeByIds(o),this._insert(t,e.modify.data,a)}reshuffle(e=!1){if(this.destroyed)return;const t=new Map;for(const n of this._entities)for(const i of n.records){const n=this._meshes.get(i.instanceId);let a=t.get(n);a||(a=new h(e),t.set(n,a)),a.copyRecord(i)}for(const[e,n]of t)e.reshuffle(n);this._invalidated=!0,this._aggregateMemoryStats(),(0,i.Z)("esri-2d-update-debug")&&a.Z.getLogger("esri.views.2d.engine.webgl.FeatureTile").info(`Tile ${this.key.id} was reshuffled.`)}copyPixelBufferedEntitesFrom(e,t,n,i){const a=n*u.i9,o=i*u.i9;for(const n of e._entities){let i=null;for(const r of n.records)if(r.overlaps&t){const t=this._ensureMesh(r.instanceId),l=e.getMesh(r.instanceId),s=t.copyRecordFrom(l,r,a,o);i||(i=new d.Z(n.id,n.sortKey),this._entityIdsFromBuffer.add(n.id),this._entities.push(i)),i.records.push(s)}}this._invalidated=!0}_ensureMesh(e){return this._meshes.has(e)||this._meshes.set(e,new P(this._stage.bufferPool)),this._meshes.get(e)}_insert(e,t,n){if(!e.length)return;this._removeDuplicatedBufferedEntites(e);const i=this._insertVertexData(t);for(const t of e){for(const e of t.records)e.updateBaseOffsets(i.get(e.instanceId));n?this._tryInsertBufferedEntity(t):this._insertEntity(t)}this._invalidated=!0}_insertVertexData(e){const t=new Map;for(const n of e){const{instanceId:e}=n,i=this._ensureMesh(e).append(n);if(n.metrics){const e=(0,R.h)(new L(n.metrics),x.O)??[];this._metrics.push(...e)}t.set(e,i)}return t}_insertEntity(e){(0,i.Z)("esri-2d-update-debug")&&this._entityIds.has(e.id),this._entityIds.add(e.id),this._entities.push(e)}_tryInsertBufferedEntity(e){this._entityIds.has(e.id)?this._removeRecordsFromMesh(e.records):(this._entityIdsFromBuffer.add(e.id),this._entities.push(e))}_removeDuplicatedBufferedEntites(e){if(!this._entityIdsFromBuffer.size)return;const t=[];for(const n of e)this._entityIdsFromBuffer.has(n.id)&&t.push(n.id);this._removeByIds(t)}_removeByIdsFromBuffer(e){this._removeByIds(e.filter((e=>this._entityIdsFromBuffer.has(e))))}_removeByIds(e){if(0===e.length)return;const t=new Set(e),n=[];for(const e of this._entities)t.has(e.id)?this._remove(e):n.push(e);this._entities=n,this._invalidated=!0}_remove(e){this._removeRecordsFromMesh(e.records),this._entityIds.delete(e.id),this._entityIdsFromBuffer.delete(e.id)}_removeRecordsFromMesh(e){for(const t of e){const{instanceId:e,indexStart:n,indexCount:i,vertexStart:a,vertexCount:o}=t;this._meshes.get(e)?.remove(n,i,a,o)}}_aggregateMemoryStats(){this.debugInfo.memory.bytesUsed=0,this.debugInfo.memory.bytesReserved=0;for(const[e,t]of this._meshes)this.debugInfo.memory.bytesUsed+=t.memoryStats.bytesUsed,this.debugInfo.memory.bytesReserved+=t.memoryStats.bytesReserved}get _needsReshuffle(){if(this.destroyed)return!1;const{bytesUsed:e,bytesReserved:t}=this.debugInfo.memory,n=e/t,{minOrderedLength:i,length:a}=this.debugInfo.display;return t>u.nn&&nu.l3&&i/a=0?e:e+t}function r(e){return o(e*i,256)}function l(e){return Math.log(e)*a}},20627:function(e,t,n){n.d(t,{$:function(){return r},o:function(){return s}});var i=n(39994),a=n(61681),o=n(47126);(0,i.Z)("esri-2d-log-allocations");class r{static create(e,t){const n=t.acquireUint32Array(e);return new r(n,t)}constructor(e,t){this._array=e,this._pool=t}get array(){return this._array}get length(){return this._array.length}getUint32View(e,t){return new Uint32Array(this._array.buffer,e+this._array.byteOffset,t)}expand(e){if(e<=this._array.byteLength)return;const t=this._pool.acquireUint32Array(e);t.set(this._array),this._pool.releaseUint32Array(this._array),this._array=t}destroy(){this._pool.releaseUint32Array(this._array)}}class l{constructor(){this._data=new ArrayBuffer(l.BYTE_LENGTH),this._freeList=new o.m({start:0,end:this._data.byteLength})}static get BYTE_LENGTH(){return 16e6}get buffer(){return this._data}acquireUint32Array(e){const t=this._freeList.firstFit(e);return null==t?null:new Uint32Array(this._data,t,e/Uint32Array.BYTES_PER_ELEMENT)}releaseUint32Array(e){this._freeList.free(e.byteOffset,e.byteLength)}}class s{constructor(){this._pages=[],this._pagesByBuffer=new Map,this._bytesAllocated=0}destroy(){this._pages=[],this._pagesByBuffer=null}get _bytesTotal(){return this._pages.length*l.BYTE_LENGTH}acquireUint32Array(e){if(this._bytesAllocated+=e,e>=l.BYTE_LENGTH)return new Uint32Array(e/Uint32Array.BYTES_PER_ELEMENT);for(const t of this._pages){const n=t.acquireUint32Array(e);if(null!=n)return n}const t=this._addPage().acquireUint32Array(e);return(0,a.O3)(t,"Expected to allocate page"),t}releaseUint32Array(e){this._bytesAllocated-=e.byteLength;const t=this._pagesByBuffer.get(e.buffer);t&&t.releaseUint32Array(e)}_addPage(){const e=new l;return this._pages.push(e),this._pagesByBuffer.set(e.buffer,e),e}}},27954:function(e,t,n){n.d(t,{I:function(){return r}});var i=n(46332),a=n(51118),o=n(87241);class r extends a.s{constructor(e,t,n,i,a,r,l=a,s=r){super(),this.tileDebugInfoTexture=null,this.debugInfo={display:{length:0,minOrderedLength:0,minUnorderedLength:0,triangleCount:0},memory:{bytesUsed:0,bytesReserved:0}},this._destroyed=!1,this.key=new o.Z(e),this.resolution=t,this.x=n,this.y=i,this.width=a,this.height=r,this.rangeX=l,this.rangeY=s}destroy(){this.tileDebugInfoTexture&&(this.tileDebugInfoTexture.dispose(),this.tileDebugInfoTexture=null),this._destroyed=!0}get debugSlot(){let e=this;for(;e.parent!==this._stage;){if(!e.parent)return 0;e=e.parent}return this._stage.children.indexOf(e)}setTransform(e){const t=this.resolution/(e.resolution*e.pixelRatio),n=this.transforms.tileMat3,[a,o]=e.toScreenNoRotation([0,0],[this.x,this.y]),r=this.width/this.rangeX*t,l=this.height/this.rangeY*t;(0,i.t8)(n,r,0,0,0,l,0,a,o,1),(0,i.Jp)(this.transforms.displayViewScreenMat3,e.displayViewMat3,n)}get destroyed(){return this._destroyed}}},86424:function(e,t,n){n.d(t,{Z:function(){return s}});var i=n(12441),a=n(78951),o=n(91907),r=n(29620),l=n(41163);class s{constructor(e,t){this._rctx=e,this._attributes=[{name:"position",offset:0,type:o.g.SHORT,count:2}],this.layout={hash:(0,i.ig)(this._attributes),attributes:this._attributes,stride:4},this._vertexBuffer=a.f.createVertex(e,o.l1.STATIC_DRAW,new Uint16Array(t)),this._vao=new r.U(e,new Map([["a_position",0]]),{geometry:[new l.G("a_position",2,o.g.SHORT,0,4)]},{geometry:this._vertexBuffer}),this._count=t.length/2}bind(){this._rctx.bindVAO(this._vao)}unbind(){this._rctx.bindVAO(null)}dispose(){this._vao.dispose()}draw(){this._rctx.bindVAO(this._vao),this._rctx.drawArrays(o.MX.TRIANGLE_STRIP,0,this._count)}}},10994:function(e,t,n){n.d(t,{Z:function(){return C}});n(39994);var i=n(98831),a=n(10530),o=n(70375),r=n(13802),l=n(76868),s=n(38642),u=n(51118),c=n(5992),f=n(36531),d=n(84164),_=n(12065),v=n(15540),m=n(8530),p=n(78951),g=n(91907);const h=(e,t,n,i)=>{let a=0;for(let i=1;i0:a<0},x=({coords:e,lengths:t},n)=>{const i=[];for(let a=0,o=0;a{switch(e.BYTES_PER_ELEMENT){case 1:return g.g.UNSIGNED_BYTE;case 2:return g.g.UNSIGNED_SHORT;case 4:return g.g.UNSIGNED_INT;default:throw new o.Z("Cannot get DataType of array")}})(this.indices)}getIndexBuffer(e,t=g.l1.STATIC_DRAW){return this._cache.indexBuffer||(this._cache.indexBuffer=p.f.createIndex(e,t,this.indices)),this._cache.indexBuffer}getVertexBuffers(e,t=g.l1.STATIC_DRAW){return this._cache.vertexBuffers||(this._cache.vertexBuffers=Object.keys(this.vertices).reduce(((n,i)=>({...n,[i]:p.f.createVertex(e,t,this.vertices[i])})),{})),this._cache.vertexBuffers}}var b=n(29620);const S=e=>parseFloat(e)/100;class T extends u.s{constructor(e,t){super(),this._clip=t,this._cache={},this.stage=e,this._handle=(0,l.YP)((()=>t.version),(()=>this._invalidate())),this.ready()}static fromClipArea(e,t){return new T(e,t)}_destroyGL(){null!=this._cache.mesh&&(this._cache.mesh.destroy(),this._cache.mesh=null),null!=this._cache.vao&&(this._cache.vao.dispose(),this._cache.vao=null)}destroy(){this._destroyGL(),this._handle.remove()}getVAO(e,t,n,i){const[a,o]=t.size;if("geometry"!==this._clip.type&&this._lastWidth===a&&this._lastHeight===o||(this._lastWidth=a,this._lastHeight=o,this._destroyGL()),null==this._cache.vao){const a=this._createMesh(t,this._clip),o=a.getIndexBuffer(e),r=a.getVertexBuffers(e);this._cache.mesh=a,this._cache.vao=new b.U(e,n,i,r,o)}return this._cache.vao}_createTransforms(){return{displayViewScreenMat3:(0,s.Ue)()}}_invalidate(){this._destroyGL(),this.requestRender()}_createScreenRect(e,t){const[n,i]=e.size,a="string"==typeof t.left?S(t.left)*n:t.left,o="string"==typeof t.right?S(t.right)*n:t.right,r="string"==typeof t.top?S(t.top)*i:t.top,l="string"==typeof t.bottom?S(t.bottom)*i:t.bottom,s=a,u=r;return{x:s,y:u,width:Math.max(n-o-s,0),height:Math.max(i-l-u,0)}}_createMesh(e,t){switch(t.type){case"rect":return y.fromRect(this._createScreenRect(e,t));case"path":return y.fromPath(t);case"geometry":return y.fromGeometry(e,t);default:return r.Z.getLogger("esri.views.2d.engine.webgl.ClippingInfo").error(new o.Z("mapview-bad-type","Unable to create ClippingInfo mesh from clip of type: ${clip.type}")),y.fromRect({x:0,y:0,width:1,height:1})}}}var I=n(38716);class C extends a.W{set clips(e){super.clips=e,this._updateClippingInfo(e)}renderChildren(e){e.painter.setPipelineState(null),null==this._renderPasses&&(this._renderPasses=this.prepareRenderPasses(e.painter));for(const t of this._renderPasses)try{t.render(e)}catch(e){}}prepareRenderPasses(e){return[e.registerRenderPass({name:"clip",brushes:[i.U.clip],target:()=>this._clippingInfos,drawPhase:I.jx.MAP|I.jx.LABEL|I.jx.LABEL_ALPHA|I.jx.DEBUG|I.jx.HIGHLIGHT})]}_updateClippingInfo(e){null!=this._clippingInfos&&(this._clippingInfos.forEach((e=>e.destroy())),this._clippingInfos=null),null!=e&&e.length&&(this._clippingInfos=e.items.map((e=>T.fromClipArea(this.stage,e)))),this.requestRender()}}},69118:function(e,t,n){n.d(t,{Z:function(){return u}});var i=n(14266),a=n(86424),o=n(29316),r=n(91907);const l={nearest:{defines:[],samplingMode:r.cw.NEAREST,mips:!1},bilinear:{defines:[],samplingMode:r.cw.LINEAR,mips:!1},bicubic:{defines:["bicubic"],samplingMode:r.cw.LINEAR,mips:!1},trilinear:{defines:[],samplingMode:r.cw.LINEAR_MIPMAP_LINEAR,mips:!0}},s=(e,t,n)=>{if("dynamic"===n.samplingMode){const{state:n}=e,i=t.resolution/t.pixelRatio/n.resolution,a=Math.round(e.pixelRatio)!==e.pixelRatio,o=i>1.05||i<.95;return n.rotation||o||a||t.isSourceScaled||t.rotation?l.bilinear:l.nearest}return l[n.samplingMode]};class u extends o.Z{constructor(){super(...arguments),this._desc={vsPath:"raster/bitmap",fsPath:"raster/bitmap",attributes:new Map([["a_pos",0]])}}dispose(){this._quad&&this._quad.dispose()}prepareState({context:e}){e.setBlendingEnabled(!0),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0)}draw(e,t){const{context:n,renderingOptions:o,painter:l,requestRender:u,allowDelayedRender:c}=e;if(!t.source||!t.isReady)return;const f=s(e,t,o),d=l.materialManager.getProgram(this._desc,f.defines);if(c&&null!=u&&!d.compiled)return void u();e.timeline.begin(this.name),"additive"===t.blendFunction?n.setBlendFunctionSeparate(r.zi.ONE,r.zi.ONE,r.zi.ONE,r.zi.ONE):n.setBlendFunctionSeparate(r.zi.ONE,r.zi.ONE_MINUS_SRC_ALPHA,r.zi.ONE,r.zi.ONE_MINUS_SRC_ALPHA),n.setStencilFunction(r.wb.EQUAL,t.stencilRef,255),this._quad||(this._quad=new a.Z(n,[0,0,1,0,0,1,1,1]));const{coordScale:_,computedOpacity:v,transforms:m}=t;t.setSamplingProfile(f),t.bind(e.context,i.Ib),n.useProgram(d),d.setUniformMatrix3fv("u_dvsMat3",m.displayViewScreenMat3),d.setUniform1i("u_texture",i.Ib),d.setUniform2fv("u_coordScale",_),d.setUniform1f("u_opacity",v),this._quad.draw(),e.timeline.end(this.name)}}},29316:function(e,t,n){n.d(t,{Z:function(){return i}});class i{constructor(){this.name=this.constructor.name||"UnnamedBrush",this.brushEffect=null}prepareState(e,t){}draw(e,t,n){}drawMany(e,t,n){for(const i of t)i.visible&&this.draw(e,i,n)}}},22598:function(e,t,n){n.d(t,{Z:function(){return f}});var i=n(55939),a=n(27894),o=n(29316),r=n(96227),l=n(78951),s=n(91907),u=n(84172),c=n(29620);class f extends o.Z{constructor(){super(...arguments),this._color=(0,i.al)(1,0,0,1),this._initialized=!1}dispose(){this._solidProgram&&(this._solidProgram.dispose(),this._solidProgram=null),this._solidVertexArrayObject&&(this._solidVertexArrayObject.dispose(),this._solidVertexArrayObject=null)}prepareState({context:e}){e.setDepthWriteEnabled(!1),e.setDepthTestEnabled(!1),e.setStencilTestEnabled(!0),e.setBlendingEnabled(!1),e.setColorMask(!1,!1,!1,!1),e.setStencilOp(s.xS.KEEP,s.xS.KEEP,s.xS.REPLACE),e.setStencilWriteMask(255)}draw(e,t){const{context:n,requestRender:i,allowDelayedRender:a}=e;this._initialized||this._initialize(n),!a||null==i||this._solidProgram.compiled?(n.setStencilFunctionSeparate(s.LR.FRONT_AND_BACK,s.wb.GREATER,t.stencilRef,255),n.bindVAO(this._solidVertexArrayObject),n.useProgram(this._solidProgram),this._solidProgram.setUniformMatrix3fv("u_dvsMat3",t.transforms.displayViewScreenMat3),this._solidProgram.setUniform2fv("u_coord_range",[t.rangeX,t.rangeY]),this._solidProgram.setUniform1f("u_depth",0),this._solidProgram.setUniform4fv("u_color",this._color),n.drawArrays(s.MX.TRIANGLE_STRIP,0,4),n.bindVAO()):i()}_initialize(e){if(this._initialized)return!0;const t=(0,u.H)(e,r.O);if(!t)return!1;const n=new Int8Array([0,0,1,0,0,1,1,1]),i=l.f.createVertex(e,s.l1.STATIC_DRAW,n),o=new c.U(e,r.O.attributes,a.sy,{geometry:i});return this._solidProgram=t,this._solidVertexArrayObject=o,this._initialized=!0,!0}}},27946:function(e,t,n){n.d(t,{Z:function(){return p}});var i=n(55939),a=n(27894),o=n(605),r=n(29316),l=n(96227),s=n(17429),u=n(78951),c=n(91907),f=n(84172),d=n(71449),_=n(80479),v=n(29620);const m=16;class p extends r.Z{constructor(){super(...arguments),this._color=(0,i.al)(1,0,0,1)}dispose(){this._outlineProgram?.dispose(),this._outlineProgram=null,this._tileInfoProgram?.dispose(),this._tileInfoProgram=null,this._outlineVertexArrayObject?.dispose(),this._outlineVertexArrayObject=null,this._tileInfoVertexArrayObject?.dispose(),this._tileInfoVertexArrayObject=null,this._ctx=null}prepareState({context:e}){e.setBlendingEnabled(!0),e.setBlendFunctionSeparate(c.zi.ONE,c.zi.ONE_MINUS_SRC_ALPHA,c.zi.ONE,c.zi.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!1)}draw(e,t){const{context:n,requestRender:i,allowDelayedRender:a}=e;if(!t.isReady&&t instanceof o.$&&t.hasData)return;if(this._loadWGLResources(n),a&&null!=i&&(!this._outlineProgram.compiled||!this._tileInfoProgram.compiled))return void i();n.bindVAO(this._outlineVertexArrayObject),n.useProgram(this._outlineProgram),this._outlineProgram.setUniformMatrix3fv("u_dvsMat3",t.transforms.displayViewScreenMat3),this._outlineProgram.setUniform2f("u_coord_range",t.rangeX,t.rangeY),this._outlineProgram.setUniform1f("u_depth",0),this._outlineProgram.setUniform4fv("u_color",this._color),n.drawArrays(c.MX.LINE_STRIP,0,4);const r=this._getTexture(n,t);r?(n.bindVAO(this._tileInfoVertexArrayObject),n.useProgram(this._tileInfoProgram),n.bindTexture(r,0),this._tileInfoProgram.setUniformMatrix3fv("u_dvsMat3",t.transforms.displayViewScreenMat3),this._tileInfoProgram.setUniform1f("u_depth",0),this._tileInfoProgram.setUniform2f("u_coord_ratio",t.rangeX/t.width,t.rangeY/t.height),this._tileInfoProgram.setUniform2f("u_delta",0,0),this._tileInfoProgram.setUniform2f("u_dimensions",r.descriptor.width,r.descriptor.height),n.drawArrays(c.MX.TRIANGLE_STRIP,0,4),n.bindVAO()):n.bindVAO()}_loadWGLResources(e){if(this._outlineProgram&&this._tileInfoProgram)return;const t=(0,f.H)(e,l.O),n=(0,f.H)(e,s.s),i=new Int8Array([0,0,1,0,1,1,0,1]),o=u.f.createVertex(e,c.l1.STATIC_DRAW,i),r=new v.U(e,l.O.attributes,a.sy,{geometry:o}),d=new Int8Array([0,0,1,0,0,1,1,1]),_=u.f.createVertex(e,c.l1.STATIC_DRAW,d),m=new v.U(e,s.s.attributes,a.sy,{geometry:_});this._outlineProgram=t,this._tileInfoProgram=n,this._outlineVertexArrayObject=r,this._tileInfoVertexArrayObject=m}_getTexture(e,t){if(!this._ctx){const e=document.createElement("canvas");e.width=512,e.height=512,this._ctx=e.getContext("2d")}if(!t.tileDebugInfoTexture){const n=new _.X;n.wrapMode=c.e8.CLAMP_TO_EDGE,n.samplingMode=c.cw.LINEAR,n.isImmutable=!0,n.width=512,n.height=512,t.tileDebugInfoTexture=new d.x(e,n)}const n=this._ctx;n.clearRect(0,0,n.canvas.width,n.canvas.height),n.textAlign="left",n.textBaseline="top",n.font="14px sans-serif",n.lineWidth=2,n.fillStyle="white",n.strokeStyle="black";const{debugSlot:i}=t;let a=8+99.2*i;const o=`${i}) ${t.key.id} (${t.constructor.name})`;n.strokeText(o,8,a),n.fillText(o,8,a),a+=m;const{debugInfo:r}=t;if(r){const{length:e,minOrderedLength:t,minUnorderedLength:i,triangleCount:o}=r.display;if(e>0){const t=`Length: ${e}`;n.strokeText(t,8,a),n.fillText(t,8,a),a+=m}if(t){const e=`Min ordered length: ${t}`;n.strokeText(e,8,a),n.fillText(e,8,a),a+=m}if(i){const e=`Min unordered length: ${i}`;n.strokeText(e,8,a),n.fillText(e,8,a),a+=m}if(o>0){o>1e5&&(n.fillStyle="red",n.strokeStyle="white");const e=`Triangle count: ${o}`;n.strokeText(e,8,a),n.fillText(e,8,a),a+=m}const{bytesUsed:l,bytesReserved:s}=r.memory;if(n.fillStyle="white",n.strokeStyle="black",l>0||s>0){const e=`Memory usage: ${l} of ${s} bytes`;n.strokeText(e,8,a),n.fillText(e,8,a),a+=m}}return t.tileDebugInfoTexture.setData(n.canvas),t.tileDebugInfoTexture}}},47126:function(e,t,n){n.d(t,{a:function(){return i},m:function(){return a}});class i{constructor(e){if(this.next=null,!Array.isArray(e))return void(this.data=e);this.data=e[0];let t=this;for(let n=1;ne(t.data)?this:t;return this.next?this.next.max(e,n):n}remove(e,t=null){return this===e?t?(t.next=this.next,t):this.next:this.next?.remove(e,this)??null}get last(){return this.next?this.next.last:this}}class a{constructor(e){this._head=null,null!=e&&(this._head=new i(e))}get head(){return this._head}maxAvailableSpace(){if(null==this._head)return 0;const e=this._head.max((e=>e.end-e.start));return e.data.end-e.data.start}firstFit(e){if(null==this._head)return null;let t=null,n=this._head;for(;n;){const i=n.data.end-n.data.start;if(i===e)return t?t.next=n.next:this._head=n.next,n.data.start;if(i>e){const t=n.data.start;return n.data.start+=e,t}t=n,n=n.next}return null}free(e,t){const n=e+t;if(null==this._head){const t=new i({start:e,end:n});return void(this._head=t)}if(n<=this._head.data.start){if(n===this._head.data.start)return void(this._head.data.start-=t);const a=new i({start:e,end:n});return a.next=this._head,void(this._head=a)}let a=this._head,o=a.next;for(;o;){if(o.data.start>=n){if(a.data.end===e){if(a.data.end+=t,a.data.end===o.data.start){const e=o.data.end-o.data.start;return a.data.end+=e,void(a.next=o.next)}return}if(o.data.start===n)return void(o.data.start-=t);const r=new i({start:e,end:n});return r.next=a.next,void(a.next=r)}a=o,o=o.next}if(e===a.data.end)return void(a.data.end+=t);const r=new i({start:e,end:n});a.next=r}clear(){this._head=null}}},96227:function(e,t,n){n.d(t,{O:function(){return a}});var i=n(74580);const a={shaders:{vertexShader:(0,i.w)("background/background.vert"),fragmentShader:(0,i.w)("background/background.frag")},attributes:new Map([["a_pos",0]])}},17429:function(e,t,n){n.d(t,{s:function(){return a}});var i=n(74580);const a={shaders:{vertexShader:(0,i.w)("tileInfo/tileInfo.vert"),fragmentShader:(0,i.w)("tileInfo/tileInfo.frag")},attributes:new Map([["a_pos",0]])}},74580:function(e,t,n){n.d(t,{w:function(){return o}});const i=new(n(78311).B)((a={background:{"background.frag":"uniform lowp vec4 u_color;\nvoid main() {\ngl_FragColor = u_color;\n}","background.vert":"attribute vec2 a_pos;\nuniform highp mat3 u_dvsMat3;\nuniform mediump vec2 u_coord_range;\nuniform mediump float u_depth;\nvoid main() {\nvec3 v_pos = u_dvsMat3 * vec3(u_coord_range * a_pos, 1.0);\ngl_Position = vec4(v_pos.xy, 0.0, 1.0);\n}"},bitBlit:{"bitBlit.frag":"uniform lowp sampler2D u_tex;\nuniform lowp float u_opacity;\nvarying mediump vec2 v_uv;\nvoid main() {\nlowp vec4 color = texture2D(u_tex, v_uv);\ngl_FragColor = color * u_opacity;\n}","bitBlit.vert":"attribute vec2 a_pos;\nattribute vec2 a_tex;\nvarying mediump vec2 v_uv;\nvoid main(void) {\ngl_Position = vec4(a_pos , 0.0, 1.0);\nv_uv = a_tex;\n}"},blend:{"blend.frag":"precision mediump float;\nuniform sampler2D u_layerTexture;\nuniform lowp float u_opacity;\nuniform lowp float u_inFadeOpacity;\n#ifndef NORMAL\nuniform sampler2D u_backbufferTexture;\n#endif\nvarying mediump vec2 v_uv;\nfloat rgb2v(in vec3 c) {\nreturn max(c.x, max(c.y, c.z));\n}\nvec3 rgb2hsv(in vec3 c) {\nvec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\nvec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);\nvec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);\nfloat d = q.x - min(q.w, q.y);\nfloat e = 1.0e-10;\nreturn vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), min(d / (q.x + e), 1.0), q.x);\n}\nvec3 hsv2rgb(in vec3 c) {\nvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\nvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\nreturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\nvec3 tint(in vec3 Cb, in vec3 Cs) {\nfloat vIn = rgb2v(Cb);\nvec3 hsvTint = rgb2hsv(Cs);\nvec3 hsvOut = vec3(hsvTint.x, hsvTint.y, vIn * hsvTint.z);\nreturn hsv2rgb(hsvOut);\n}\nfloat overlay(in float Cb, in float Cs) {\nreturn (1.0 - step(0.5, Cs)) * (1.0 - 2.0 * (1.0 - Cs ) * (1.0 - Cb)) + step(0.5, Cs) * (2.0 * Cs * Cb);\n}\nfloat colorDodge(in float Cb, in float Cs) {\nreturn (Cb == 0.0) ? 0.0 : (Cs == 1.0) ? 1.0 : min(1.0, Cb / (1.0 - Cs));\n}\nfloat colorBurn(in float Cb, in float Cs) {\nreturn (Cb == 1.0) ? 1.0 : (Cs == 0.0) ? 0.0 : 1.0 - min(1.0, (1.0 - Cb) / Cs);\n}\nfloat hardLight(in float Cb, in float Cs) {\nreturn (1.0 - step(0.5, Cs)) * (2.0 * Cs * Cb) + step(0.5, Cs) * (1.0 - 2.0 * (1.0 - Cs) * (1.0 - Cb));\n}\nfloat reflectBlend(in float Cb, in float Cs) {\nreturn (Cs == 1.0) ? Cs : min(Cb * Cb / (1.0 - Cs), 1.0);\n}\nfloat softLight(in float Cb, in float Cs) {\nif (Cs <= 0.5) {\nreturn Cb - (1.0 - 2.0 * Cs) * Cb * (1.0 - Cb);\n}\nif (Cb <= 0.25) {\nreturn Cb + (2.0 * Cs - 1.0) * Cb * ((16.0 * Cb - 12.0) * Cb + 3.0);\n}\nreturn Cb + (2.0 * Cs - 1.0) * (sqrt(Cb) - Cb);\n}\nfloat vividLight(in float Cb, in float Cs) {\nreturn (1.0 - step(0.5, Cs)) * colorBurn(Cb, 2.0 * Cs) + step(0.5, Cs) * colorDodge(Cb, (2.0 * (Cs - 0.5)));\n}\nfloat minv3(in vec3 c) {\nreturn min(min(c.r, c.g), c.b);\n}\nfloat maxv3(in vec3 c) {\nreturn max(max(c.r, c.g), c.b);\n}\nfloat lumv3(in vec3 c) {\nreturn dot(c, vec3(0.3, 0.59, 0.11));\n}\nfloat satv3(vec3 c) {\nreturn maxv3(c) - minv3(c);\n}\nvec3 clipColor(vec3 color) {\nfloat lum = lumv3(color);\nfloat mincol = minv3(color);\nfloat maxcol = maxv3(color);\nif (mincol < 0.0) {\ncolor = lum + ((color - lum) * lum) / (lum - mincol);\n}\nif (maxcol > 1.0) {\ncolor = lum + ((color - lum) * (1.0 - lum)) / (maxcol - lum);\n}\nreturn color;\n}\nvec3 setLum(vec3 cbase, vec3 clum) {\nfloat lbase = lumv3(cbase);\nfloat llum = lumv3(clum);\nfloat ldiff = llum - lbase;\nvec3 color = cbase + vec3(ldiff);\nreturn clipColor(color);\n}\nvec3 setLumSat(vec3 cbase, vec3 csat, vec3 clum)\n{\nfloat minbase = minv3(cbase);\nfloat sbase = satv3(cbase);\nfloat ssat = satv3(csat);\nvec3 color;\nif (sbase > 0.0) {\ncolor = (cbase - minbase) * ssat / sbase;\n} else {\ncolor = vec3(0.0);\n}\nreturn setLum(color, clum);\n}\nvoid main() {\nvec4 src = texture2D(u_layerTexture, v_uv);\n#ifdef NORMAL\ngl_FragColor = src * u_opacity;\n#else\nvec4 dst = texture2D(u_backbufferTexture, v_uv);\nvec3 Cs = src.a == 0.0 ? src.rgb : vec3(src.rgb / src.a);\nvec3 Cb = dst.a == 0.0 ? dst.rgb : vec3(dst.rgb / dst.a);\nfloat as = u_opacity * src.a;\nfloat ab = dst.a;\n#ifdef DESTINATION_OVER\ngl_FragColor = vec4(as * Cs * (1.0 - ab) + ab * Cb, as + ab - as * ab);\n#endif\n#ifdef SOURCE_IN\nvec4 color = vec4(as * Cs * ab, as * ab);\nvec4 fadeColor = (1.0 - u_opacity) * u_inFadeOpacity * vec4(ab * Cb, ab);\ngl_FragColor = color + fadeColor;\n#endif\n#ifdef DESTINATION_IN\nvec4 color = vec4(ab * Cb * as, ab * as);\nvec4 fadeColor = (1.0 - u_opacity) * u_inFadeOpacity * vec4(ab * Cb, ab);\ngl_FragColor = color + fadeColor;\n#endif\n#ifdef SOURCE_OUT\ngl_FragColor = vec4(as * Cs * (1.0 - ab), as * (1.0 - ab));\n#endif\n#ifdef DESTINATION_OUT\ngl_FragColor = vec4(ab * Cb * (1.0 - as), ab * (1.0 - as));\n#endif\n#ifdef SOURCE_ATOP\ngl_FragColor = vec4(as * Cs * ab + ab * Cb * (1.0 - as), ab);\n#endif\n#ifdef DESTINATION_ATOP\ngl_FragColor = vec4(as * Cs * (1.0 - ab) + ab * Cb * as, as);\n#endif\n#ifdef XOR\ngl_FragColor = vec4(as * Cs * (1.0 - ab) + ab * Cb * (1.0 - as),\nas * (1.0 - ab) + ab * (1.0 - as));\n#endif\n#ifdef MULTIPLY\ngl_FragColor = vec4(as * Cs * ab * Cb + (1.0 - ab) * as * Cs + (1.0 - as) * ab * Cb,\nas + ab * (1.0 - as));\n#endif\n#ifdef SCREEN\ngl_FragColor = vec4((Cs + Cb - Cs * Cb) * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef OVERLAY\nvec3 f = vec3(overlay(Cb.r, Cs.r), overlay(Cb.g, Cs.g), overlay(Cb.b, Cs.b));\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef DARKEN\ngl_FragColor = vec4(min(Cs, Cb) * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef LIGHTER\ngl_FragColor = vec4(as * Cs + ab * Cb, as + ab);\n#endif\n#ifdef LIGHTEN\ngl_FragColor = vec4(max(Cs, Cb) * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef COLOR_DODGE\nvec3 f = clamp(vec3(colorDodge(Cb.r, Cs.r), colorDodge(Cb.g, Cs.g), colorDodge(Cb.b, Cs.b)), vec3(0.0), vec3(1.0));\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef COLOR_BURN\nvec3 f = vec3(colorBurn(Cb.r, Cs.r), colorBurn(Cb.g, Cs.g), colorBurn(Cb.b, Cs.b));\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef HARD_LIGHT\nvec3 f = vec3(hardLight(Cb.r, Cs.r), hardLight(Cb.g, Cs.g), hardLight(Cb.b, Cs.b));\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef SOFT_LIGHT\nvec3 f = vec3(softLight(Cb.r, Cs.r), softLight(Cb.g, Cs.g), softLight(Cb.b, Cs.b));\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef DIFFERENCE\ngl_FragColor = vec4(abs(Cb - Cs) * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef EXCLUSION\nvec3 f = Cs + Cb - 2.0 * Cs * Cb;\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef INVERT\ngl_FragColor = vec4((1.0 - Cb) * as * ab + Cb * ab * (1.0 - as), ab);\n#endif\n#ifdef VIVID_LIGHT\nvec3 f = vec3(clamp(vividLight(Cb.r, Cs.r), 0.0, 1.0),\nclamp(vividLight(Cb.g, Cs.g), 0.0, 1.0),\nclamp(vividLight(Cb.b, Cs.b), 0.0, 1.0));\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef HUE\nvec3 f = setLumSat(Cs,Cb,Cb);\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef SATURATION\nvec3 f = setLumSat(Cb,Cs,Cb);\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef COLOR\nvec3 f = setLum(Cs,Cb);\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef LUMINOSITY\nvec3 f = setLum(Cb,Cs);\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef PLUS\ngl_FragColor = clamp(vec4(src.r + Cb.r, src.g + Cb.g, src.b + Cb.b, as + ab), 0.0, 1.0);\n#endif\n#ifdef MINUS\ngl_FragColor = vec4(clamp(vec3(Cb.r - src.r, Cb.g - src.g, Cb.b - src.b), 0.0, 1.0), ab * as);\n#endif\n#ifdef AVERAGE\nvec3 f = (Cb + Cs) / 2.0;\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#ifdef REFLECT\nvec3 f = clamp(vec3(reflectBlend(Cb.r, Cs.r),\nreflectBlend(Cb.g, Cs.g),\nreflectBlend(Cb.b, Cs.b)), vec3(0.0), vec3(1.0));\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\nas + ab * (1.0 - as));\n#endif\n#endif\n}","blend.vert":"attribute vec2 a_position;\nvarying mediump vec2 v_uv;\nvoid main(void) {\ngl_Position = vec4(a_position , 0.0, 1.0);\nv_uv = (a_position + 1.0) / 2.0;\n}"},debug:{overlay:{"overlay.frag":"precision mediump float;\nvarying vec4 v_color;\nvoid main(void) {\ngl_FragColor = v_color;\n}","overlay.vert":"attribute vec3 a_PositionAndFlags;\nuniform mat3 u_dvsMat3;\nuniform vec4 u_colors[4];\nuniform float u_opacities[4];\nvarying vec4 v_color;\nvoid main(void) {\nvec2 position = a_PositionAndFlags.xy;\nfloat flags = a_PositionAndFlags.z;\nint colorIndex = int(mod(flags, 4.0));\nvec4 color;\nfor (int i = 0; i < 4; i++) {\ncolor = u_colors[i];\nif (i == colorIndex) {\nbreak;\n}\n}\nint opacityIndex = int(mod(floor(flags / 4.0), 4.0));\nfloat opacity;\nfor (int i = 0; i < 4; i++) {\nopacity = u_opacities[i];\nif (i == opacityIndex) {\nbreak;\n}\n}\nv_color = color * opacity;\ngl_Position = vec4((u_dvsMat3 * vec3(position, 1.0)).xy, 0.0, 1.0);\n}"}},dot:{dot:{"dot.frag":"precision mediump float;\nvarying vec4 v_color;\nvarying float v_dotRatio;\nvarying float v_invEdgeRatio;\nuniform highp float u_tileZoomFactor;\nvoid main()\n{\nfloat dist = length(gl_PointCoord - vec2(.5, .5)) * 2.;\nfloat alpha = smoothstep(0., 1., v_invEdgeRatio * (dist - v_dotRatio) + 1.);\ngl_FragColor = v_color * alpha;\n}","dot.vert":"precision highp float;\nattribute vec2 a_pos;\nuniform sampler2D u_texture;\nuniform highp mat3 u_dvsMat3;\nuniform highp float u_tileZoomFactor;\nuniform highp float u_dotSize;\nuniform highp float u_pixelRatio;\nvarying vec2 v_pos;\nvarying vec4 v_color;\nvarying float v_dotRatio;\nvarying float v_invEdgeRatio;\nconst float EPSILON = 0.000001;\nvoid main()\n{\nmat3 tileToTileTexture = mat3( 1., 0., 0.,\n0., -1., 0.,\n0., 1., 1. );\nvec3 texCoords = tileToTileTexture * vec3(a_pos.xy / 512., 1.);\nv_color = texture2D(u_texture, texCoords.xy);\nfloat smoothEdgeWidth = max(u_dotSize / 2., 1.) ;\nfloat z = 0.;\nz += 2.0 * step(v_color.a, EPSILON);\ngl_PointSize = (smoothEdgeWidth + u_dotSize);\ngl_Position = vec4((u_dvsMat3 * vec3(a_pos + .5, 1.)).xy, z, 1.);\nv_dotRatio = u_dotSize / gl_PointSize;\nv_invEdgeRatio = -1. / ( smoothEdgeWidth / gl_PointSize );\ngl_PointSize *= (u_pixelRatio * u_tileZoomFactor);\n}"}},filtering:{"bicubic.glsl":"vec4 computeWeights(float v) {\nfloat b = 1.0 / 6.0;\nfloat v2 = v * v;\nfloat v3 = v2 * v;\nfloat w0 = b * (-v3 + 3.0 * v2 - 3.0 * v + 1.0);\nfloat w1 = b * (3.0 * v3 - 6.0 * v2 + 4.0);\nfloat w2 = b * (-3.0 * v3 + 3.0 * v2 + 3.0 * v + 1.0);\nfloat w3 = b * v3;\nreturn vec4(w0, w1, w2, w3);\n}\nvec4 bicubicOffsetsAndWeights(float v) {\nvec4 w = computeWeights(v);\nfloat g0 = w.x + w.y;\nfloat g1 = w.z + w.w;\nfloat h0 = 1.0 - (w.y / g0) + v;\nfloat h1 = 1.0 + (w.w / g1) - v;\nreturn vec4(h0, h1, g0, g1);\n}\nvec4 sampleBicubicBSpline(sampler2D sampler, vec2 coords, vec2 texSize) {\nvec2 eX = vec2(1.0 / texSize.x, 0.0);\nvec2 eY = vec2(0.0, 1.0 / texSize.y);\nvec2 texel = coords * texSize - 0.5;\nvec3 hgX = bicubicOffsetsAndWeights(fract(texel).x).xyz;\nvec3 hgY = bicubicOffsetsAndWeights(fract(texel).y).xyz;\nvec2 coords10 = coords + hgX.x * eX;\nvec2 coords00 = coords - hgX.y * eX;\nvec2 coords11 = coords10 + hgY.x * eY;\nvec2 coords01 = coords00 + hgY.x * eY;\ncoords10 = coords10 - hgY.y * eY;\ncoords00 = coords00 - hgY.y * eY;\nvec4 color00 = texture2D(sampler, coords00);\nvec4 color10 = texture2D(sampler, coords10);\nvec4 color01 = texture2D(sampler, coords01);\nvec4 color11 = texture2D(sampler, coords11);\ncolor00 = mix(color00, color01, hgY.z);\ncolor10 = mix(color10, color11, hgY.z);\ncolor00 = mix(color00, color10, hgX.z);\nreturn color00;\n}","bilinear.glsl":"vec4 sampleBilinear(sampler2D sampler, vec2 coords, vec2 texSize) {\nvec2 texelStart = floor(coords * texSize);\nvec2 coord0 = texelStart / texSize;\nvec2 coord1 = (texelStart + vec2(1.0, 0.0)) / texSize;\nvec2 coord2 = (texelStart + vec2(0.0, 1.0)) / texSize;\nvec2 coord3 = (texelStart + vec2(1.0, 1.0)) / texSize;\nvec4 color0 = texture2D(sampler, coord0);\nvec4 color1 = texture2D(sampler, coord1);\nvec4 color2 = texture2D(sampler, coord2);\nvec4 color3 = texture2D(sampler, coord3);\nvec2 blend = fract(coords * texSize);\nvec4 color01 = mix(color0, color1, blend.x);\nvec4 color23 = mix(color2, color3, blend.x);\nvec4 color = mix(color01, color23, blend.y);\n#ifdef NNEDGE\nfloat alpha = floor(color0.a * color1.a * color2.a * color3.a + 0.5);\ncolor = color * alpha + (1.0 - alpha) * texture2D(sampler, coords);\n#endif\nreturn color;\n}","epx.glsl":"vec4 sampleEPX(sampler2D sampler, float size, vec2 coords, vec2 texSize) {\nvec2 invSize = 1.0 / texSize;\nvec2 texel = coords * texSize;\nvec2 texel_i = floor(texel);\nvec2 texel_frac = fract(texel);\nvec4 colorP = texture2D(sampler, texel_i * invSize);\nvec4 colorP1 = vec4(colorP);\nvec4 colorP2 = vec4(colorP);\nvec4 colorP3 = vec4(colorP);\nvec4 colorP4 = vec4(colorP);\nvec4 colorA = texture2D(sampler, (texel_i - vec2(0.0, 1.0)) * invSize);\nvec4 colorB = texture2D(sampler, (texel_i + vec2(1.0, 0.0)) * invSize);\nvec4 colorC = texture2D(sampler, (texel_i - vec2(1.0, 0.0)) * invSize);\nvec4 colorD = texture2D(sampler, (texel_i + vec2(0.0, 1.0)) * invSize);\nif (colorC == colorA && colorC != colorD && colorA != colorB) {\ncolorP1 = colorA;\n}\nif (colorA == colorB && colorA != colorC && colorB != colorD) {\ncolorP2 = colorB;\n}\nif (colorD == colorC && colorD != colorB && colorC != colorA) {\ncolorP3 = colorC;\n}\nif (colorB == colorD && colorB != colorA && colorD != colorC) {\ncolorP4 = colorD;\n}\nvec4 colorP12 = mix(colorP1, colorP2, texel_frac.x);\nvec4 colorP34 = mix(colorP1, colorP2, texel_frac.x);\nreturn mix(colorP12, colorP34, texel_frac.y);\n}"},fx:{integrate:{"integrate.frag":"precision mediump float;\nuniform lowp sampler2D u_sourceTexture;\nuniform lowp sampler2D u_maskTexture;\nuniform mediump float u_zoomLevel;\nuniform highp float u_timeDelta;\nuniform highp float u_animationTime;\nvarying highp vec2 v_texcoord;\n#include \nvoid main()\n{\n#ifdef DELTA\nvec4 texel = texture2D(u_sourceTexture, v_texcoord);\nvec4 data0 = texture2D(u_maskTexture, v_texcoord);\nfloat flags = data0.r * 255.0;\nfloat groupMinZoom = data0.g * 255.0;\nfloat wouldClip = float(groupMinZoom == 0.);\nfloat direction = wouldClip * 1.0 + (1.0 - wouldClip) * -1.0;\nfloat dt = u_timeDelta / max(u_animationTime, 0.0001);\nvec4 nextState = vec4(texel + direction * dt);\ngl_FragColor = vec4(nextState);\n#elif defined(UPDATE)\nvec4 texel = texture2D(u_sourceTexture, v_texcoord);\ngl_FragColor = texel;\n#endif\n}","integrate.vert":"precision mediump float;\nattribute vec2 a_pos;\nvarying highp vec2 v_texcoord;\nvoid main()\n{\nv_texcoord = a_pos;\ngl_Position = vec4(a_pos * 2.0 - 1.0, 0.0, 1.0);\n}"}},heatmap:{heatmapResolve:{"heatmapResolve.frag":"precision highp float;\n#ifdef HEATMAP_PRECISION_HALF_FLOAT\n#define COMPRESSION_FACTOR 4.0\n#else\n#define COMPRESSION_FACTOR 1.0\n#endif\nuniform sampler2D u_texture;\nuniform sampler2D u_gradient;\nuniform vec2 u_densityMinAndInvRange;\nuniform float u_densityNormalization;\nvarying vec2 v_uv;\nvoid main() {\nvec4 data = texture2D(u_texture, v_uv);\nfloat density = data.r * COMPRESSION_FACTOR;\ndensity *= u_densityNormalization;\ndensity = (density - u_densityMinAndInvRange.x) * u_densityMinAndInvRange.y;\nvec4 color = texture2D(u_gradient, vec2(density, 0.5));\ngl_FragColor = vec4(color.rgb * color.a, color.a);\n}","heatmapResolve.vert":"precision highp float;\nattribute vec2 a_pos;\nvarying vec2 v_uv;\nvoid main() {\nv_uv = a_pos;\ngl_Position = vec4(a_pos * 2.0 - 1.0, 1., 1.);\n}"}},highlight:{"blur.frag":"varying mediump vec2 v_texcoord;\nuniform mediump vec4 u_direction;\nuniform mediump mat4 u_channelSelector;\nuniform mediump float u_sigma;\nuniform sampler2D u_texture;\nmediump float gauss1(mediump vec2 dir) {\nreturn exp(-dot(dir, dir) / (2.0 * u_sigma * u_sigma));\n}\nmediump vec4 selectChannel(mediump vec4 sample) {\nreturn u_channelSelector * sample;\n}\nvoid accumGauss1(mediump float i, inout mediump float tot, inout mediump float weight) {\nmediump float w = gauss1(i * u_direction.xy);\ntot += selectChannel(texture2D(u_texture, v_texcoord + i * u_direction.zw))[3] * w;\nweight += w;\n}\nvoid main(void) {\nmediump float tot = 0.0;\nmediump float weight = 0.0;\naccumGauss1(-5.0, tot, weight);\naccumGauss1(-4.0, tot, weight);\naccumGauss1(-3.0, tot, weight);\naccumGauss1(-2.0, tot, weight);\naccumGauss1(-1.0, tot, weight);\naccumGauss1(0.0, tot, weight);\naccumGauss1(1.0, tot, weight);\naccumGauss1(2.0, tot, weight);\naccumGauss1(3.0, tot, weight);\naccumGauss1(4.0, tot, weight);\naccumGauss1(5.0, tot, weight);\ngl_FragColor = vec4(0.0, 0.0, 0.0, tot / weight);\n}","highlight.frag":"varying mediump vec2 v_texcoord;\nuniform sampler2D u_texture;\nuniform mediump float u_sigma;\nuniform sampler2D u_shade;\nuniform mediump vec2 u_minMaxDistance;\nmediump float estimateDistance() {\nmediump float y = texture2D(u_texture, v_texcoord)[3];\nconst mediump float y0 = 0.5;\nmediump float m0 = 1.0 / (sqrt(2.0 * 3.1415) * u_sigma);\nmediump float d = (y - y0) / m0;\nreturn d;\n}\nmediump vec4 shade(mediump float d) {\nmediump float mappedDistance = (d - u_minMaxDistance.x) / (u_minMaxDistance.y - u_minMaxDistance.x);\nmappedDistance = clamp(mappedDistance, 0.0, 1.0);\nreturn texture2D(u_shade, vec2(mappedDistance, 0.5));\n}\nvoid main(void) {\nmediump float d = estimateDistance();\ngl_FragColor = shade(d);\n}","textured.vert":"attribute mediump vec2 a_position;\nattribute mediump vec2 a_texcoord;\nvarying mediump vec2 v_texcoord;\nvoid main(void) {\ngl_Position = vec4(a_position, 0.0, 1.0);\nv_texcoord = a_texcoord;\n}"},magnifier:{"magnifier.frag":"uniform lowp vec4 u_background;\nuniform mediump sampler2D u_readbackTexture;\nuniform mediump sampler2D u_maskTexture;\nuniform mediump sampler2D u_overlayTexture;\nuniform bool u_maskEnabled;\nuniform bool u_overlayEnabled;\nvarying mediump vec2 v_texCoord;\nconst lowp float barrelFactor = 1.1;\nlowp vec2 barrel(lowp vec2 uv) {\nlowp vec2 uvn = uv * 2.0 - 1.0;\nif (uvn.x == 0.0 && uvn.y == 0.0) {\nreturn vec2(0.5, 0.5);\n}\nlowp float theta = atan(uvn.y, uvn.x);\nlowp float r = pow(length(uvn), barrelFactor);\nreturn r * vec2(cos(theta), sin(theta)) * 0.5 + 0.5;\n}\nvoid main(void)\n{\nlowp vec4 color = texture2D(u_readbackTexture, barrel(v_texCoord));\ncolor = (color + (1.0 - color.a) * u_background);\nlowp float mask = u_maskEnabled ? texture2D(u_maskTexture, v_texCoord).a : 1.0;\ncolor *= mask;\nlowp vec4 overlayColor = u_overlayEnabled ? texture2D(u_overlayTexture, v_texCoord) : vec4(0);\ngl_FragColor = overlayColor + (1.0 - overlayColor.a) * color;\n}","magnifier.vert":"precision mediump float;\nattribute mediump vec2 a_pos;\nuniform mediump vec4 u_drawPos;\nvarying mediump vec2 v_texCoord;\nvoid main(void)\n{\nv_texCoord = a_pos;\ngl_Position = vec4(u_drawPos.xy + vec2(a_pos - 0.5) * u_drawPos.zw, 0.0, 1.0);\n}"},materials:{"attributeData.glsl":"uniform highp sampler2D filterFlags;\nuniform highp sampler2D animation;\nuniform highp sampler2D gpgpu;\nuniform highp sampler2D visualVariableData;\nuniform highp sampler2D dataDriven0;\nuniform highp sampler2D dataDriven1;\nuniform highp sampler2D dataDriven2;\nuniform float size;\nhighp vec2 getAttributeDataCoords(in highp vec3 id) {\nhighp vec3 texel = unpackDisplayIdTexel(id);\nhighp float u32 = float(int(texel.r) + int(texel.g) * 256 + int(texel.b) * 256 * 256);\nhighp float col = mod(u32, size);\nhighp float row = (u32 - col) / size;\nhighp float u = col / size;\nhighp float v = row / size;\nreturn vec2(u, v);\n}\nhighp vec2 getAttributeDataTextureCoords(in highp vec3 id) {\nreturn (getAttributeDataCoords(id) * 2.0) - 1.0 + (.5 / vec2(size));\n}\nhighp vec4 getFilterData(in highp vec3 id) {\nvec2 coords = getAttributeDataCoords(id);\nreturn texture2D(filterFlags, coords);\n}\nhighp vec4 getAnimation(in highp vec3 id) {\nhighp vec2 coords = getAttributeDataCoords(id);\nreturn texture2D(animation, coords);\n}\nhighp vec4 getVisualVariableData(in highp vec3 id) {\nhighp vec2 coords = getAttributeDataCoords(id);\nreturn texture2D(visualVariableData, coords);\n}\nhighp vec4 getDataDriven0(in highp vec3 id) {\nhighp vec2 coords = getAttributeDataCoords(id);\nreturn texture2D(dataDriven0, coords);\n}\nhighp vec4 getDataDriven1(in highp vec3 id) {\nhighp vec2 coords = getAttributeDataCoords(id);\nreturn texture2D(dataDriven1, coords);\n}\nhighp vec4 getGPGPU(in highp vec3 id) {\nhighp vec2 coords = getAttributeDataCoords(id);\nreturn texture2D(gpgpu, coords);\n}\nhighp vec4 getDataDriven2(in highp vec3 id) {\nhighp vec2 coords = getAttributeDataCoords(id);\nreturn texture2D(dataDriven2, coords);\n}\nfloat u88VVToFloat(in vec2 v) {\nbool isMagic = v.x == 255.0 && v.y == 255.0;\nif (isMagic) {\nreturn NAN_MAGIC_NUMBER;\n}\nreturn (v.x + v.y * float(0x100)) - 32768.0;\n}","barycentric.glsl":"float inTriangle(vec3 bary) {\nvec3 absBary = abs(bary);\nreturn step((absBary.x + absBary.y + absBary.z), 1.05);\n}\nvec3 xyToBarycentric(in vec2 pos, in vec2 v0, in vec2 v1, in vec2 v2) {\nmat3 xyToBarycentricMat3 = mat3(\nv1.x * v2.y - v2.x * v1.y, v2.x * v0.y - v0.x * v2.y, v0.x * v1.y - v1.x * v0.y,\nv1.y - v2.y, v2.y - v0.y, v0.y - v1.y,\nv2.x - v1.x, v0.x - v2.x, v1.x - v0.x\n);\nfloat A2 = v0.x * (v1.y - v2.y) + v1.x * (v2.y - v0.y) + v2.x * (v0.y - v1.y);\nreturn (1. / A2) * xyToBarycentricMat3 * vec3(1., pos);\n}","constants.glsl":"const float C_DEG_TO_RAD = 3.14159265359 / 180.0;\nconst float C_256_TO_RAD = 3.14159265359 / 128.0;\nconst float C_RAD_TO_DEG = 180.0 / 3.141592654;\nconst float POSITION_PRECISION = 1.0 / 8.0;\nconst float FILL_POSITION_PRECISION = 1.0 / 1.0;\nconst float SOFT_EDGE_RATIO = 1.0;\nconst float THIN_LINE_WIDTH_FACTOR = 1.1;\nconst float THIN_LINE_HALF_WIDTH = 1.0;\nconst float EXTRUDE_SCALE_PLACEMENT_PADDING = 1.0 / 4.0;\nconst float OFFSET_PRECISION = 1.0 / 8.0;\nconst float OUTLINE_SCALE = 1.0 / 5.0;\nconst float SDF_FONT_SIZE = 24.0;\nconst float MAX_SDF_DISTANCE = 8.0;\nconst float PLACEMENT_PADDING = 8.0;\nconst float EPSILON = 0.00001;\nconst float EPSILON_HITTEST = 0.05;\nconst int MAX_FILTER_COUNT = 2;\nconst int ATTR_VV_SIZE = 0;\nconst int ATTR_VV_COLOR = 1;\nconst int ATTR_VV_OPACITY = 2;\nconst int ATTR_VV_ROTATION = 3;\nconst highp float NAN_MAGIC_NUMBER = 1e-30;\nconst int BITSET_GENERIC_LOCK_COLOR = 1;\nconst int BITSET_GENERIC_CONSIDER_ALPHA_ONLY = 4;\nconst int BITSET_MARKER_ALIGNMENT_MAP = 0;\nconst int BITSET_MARKER_OUTLINE_ALLOW_COLOR_OVERRIDE = 2;\nconst int BITSET_MARKER_SCALE_SYMBOLS_PROPORTIONALLY = 3;\nconst int BITSET_TYPE_FILL_OUTLINE = 0;\nconst int BITSET_FILL_RANDOM_PATTERN_OFFSET = 2;\nconst int BITSET_FILL_HAS_UNRESOLVED_REPLACEMENT_COLOR = 3;\nconst int BITSET_FILL_HAS_PATTERN_HEIGHT_PRECISION_FACTOR = 5;\nconst int BITSET_FILL_HAS_PATTERN_WIDTH_PRECISION_FACTOR = 6;\nconst int BITSET_LINE_SCALE_DASH = 2;",fill:{"common.glsl":"#include \n#ifdef PATTERN\nuniform mediump vec2 u_mosaicSize;\nvarying mediump float v_sampleAlphaOnly;\n#endif\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\nuniform lowp vec4 u_isActive[ 2 ];\nuniform highp float u_dotValue;\nuniform highp float u_tileDotsOverArea;\nuniform highp float u_dotTextureDotCount;\nuniform mediump float u_tileZoomFactor;\n#endif\nvarying highp vec3 v_id;\nvarying lowp vec4 v_color;\nvarying lowp float v_opacity;\nvarying mediump vec4 v_aux1;\n#ifdef PATTERN\nvarying mediump vec2 v_tileTextureCoord;\n#endif\n#ifdef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\nvarying lowp float v_isOutline;\n#endif\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\nvarying highp vec2 v_dotTextureCoords;\nvarying highp vec4 v_dotThresholds[ 2 ];\n#endif","fill.frag":"precision highp float;\n#include \n#include \n#include \n#ifdef PATTERN\nuniform lowp sampler2D u_texture;\n#endif\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\nuniform mediump mat4 u_dotColors[ 2 ];\nuniform sampler2D u_dotTextures[ 2 ];\nuniform vec4 u_dotBackgroundColor;\n#endif\n#ifdef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\n#include \n#include \nlowp vec4 drawLine() {\nfloat v_lineWidth = v_aux1.x;\nvec2 v_normal = v_aux1.yz;\nLineData inputs = LineData(\nv_color,\nv_normal,\nv_lineWidth,\nv_opacity,\nv_id\n);\nreturn shadeLine(inputs);\n}\n#endif\nlowp vec4 drawFill() {\nlowp vec4 out_color = vec4(0.);\n#ifdef HITTEST\nout_color = v_color;\n#elif defined(PATTERN)\nmediump vec4 v_tlbr = v_aux1;\nmediump vec2 normalizedTextureCoord = mod(v_tileTextureCoord, 1.0);\nmediump vec2 samplePos = mix(v_tlbr.xy, v_tlbr.zw, normalizedTextureCoord);\nlowp vec4 color = texture2D(u_texture, samplePos);\nif (v_sampleAlphaOnly > 0.5) {\ncolor.rgb = vec3(color.a);\n}\nout_color = v_opacity * v_color * color;\n#elif SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY && !defined(HIGHLIGHT)\nvec4 textureThresholds0 = texture2D(u_dotTextures[0], v_dotTextureCoords);\nvec4 textureThresholds1 = texture2D(u_dotTextures[1], v_dotTextureCoords);\nvec4 difference0 = v_dotThresholds[0] - textureThresholds0;\nvec4 difference1 = v_dotThresholds[1] - textureThresholds1;\n#ifdef DD_DOT_BLENDING\nvec4 isPositive0 = step(0.0, difference0);\nvec4 isPositive1 = step(0.0, difference1);\nfloat weightSum = dot(isPositive0, difference0) + dot(isPositive1, difference1);\nfloat lessThanEqZero = step(weightSum, 0.0);\nfloat greaterThanZero = 1.0 - lessThanEqZero ;\nfloat divisor = (weightSum + lessThanEqZero);\nvec4 weights0 = difference0 * isPositive0 / divisor;\nvec4 weights1 = difference1 * isPositive1 / divisor;\nvec4 dotColor = u_dotColors[0] * weights0 + u_dotColors[1] * weights1;\nvec4 preEffectColor = greaterThanZero * dotColor + lessThanEqZero * u_dotBackgroundColor;\n#else\nfloat diffMax = max(max4(difference0), max4(difference1));\nfloat lessThanZero = step(diffMax, 0.0);\nfloat greaterOrEqZero = 1.0 - lessThanZero;\nvec4 isMax0 = step(diffMax, difference0);\nvec4 isMax1 = step(diffMax, difference1);\nvec4 dotColor = u_dotColors[0] * isMax0 + u_dotColors[1] * isMax1;\nvec4 preEffectColor = greaterOrEqZero * dotColor + lessThanZero * u_dotBackgroundColor;\n#endif\nout_color = preEffectColor;\n#else\nout_color = v_opacity * v_color;\n#endif\n#ifdef HIGHLIGHT\nout_color.a = 1.0;\n#endif\nreturn out_color;\n}\nvoid main() {\n#ifdef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\nif (v_isOutline > 0.5) {\ngl_FragColor = drawLine();\n} else {\ngl_FragColor = drawFill();\n}\n#else\ngl_FragColor = drawFill();\n#endif\n}","fill.vert":"#include \n#define PACKED_LINE\nprecision highp float;\nattribute float a_bitset;\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\nattribute float a_inverseArea;\nvec4 a_color = vec4(0.0, 0.0, 0.0, 1.0);\nvec2 a_zoomRange = vec2(0.0, 10000.0);\n#else\nattribute vec4 a_color;\nattribute vec4 a_aux2;\nattribute vec4 a_aux3;\n#ifndef SYMBOLOGY_TYPE_IS_SIMPLE_LIKE\nattribute vec4 a_aux1;\nattribute vec2 a_zoomRange;\n#else\nvec2 a_zoomRange = vec2(0.0, 10000.0);\n#endif\n#endif\nuniform vec2 u_tileOffset;\nuniform vec2 u_maxIntNumOfCrossing;\n#include \n#include \n#include \n#include \nconst float INV_SCALE_COMPRESSION_FACTOR = 1.0 / 128.0;\nconst float MAX_REPRESENTABLE_INT = 16777216.0;\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\nvec4 dotThreshold(vec4 featureAttrOverFeatureArea, float dotValue, float tileDotsOverArea) {\nreturn featureAttrOverFeatureArea * (1.0 / dotValue) * (1.0 / tileDotsOverArea);\n}\n#endif\n#ifdef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\n#include \n#include \nvoid drawLine(out lowp vec4 out_color, out highp vec3 out_pos) {\nLineData outputs = buildLine(\nout_pos,\na_id,\na_pos,\na_color,\n(a_aux3.xy - 128.) / 16.,\n(a_aux3.zw - 128.) / 16.,\n0.,\na_aux2.z / 16.,\na_bitset,\nvec4(0.),\nvec2(0.),\na_aux2.w / 16.\n);\nv_id = outputs.id;\nv_opacity = outputs.opacity;\nv_aux1 = vec4(outputs.lineHalfWidth, outputs.normal, 0.);\nout_color = outputs.color;\n}\n#endif\nvoid drawFill(out lowp vec4 out_color, out highp vec3 out_pos) {\nfloat a_bitSet = a_bitset;\nout_color = getColor(a_color, a_bitSet, BITSET_GENERIC_LOCK_COLOR);\nv_opacity = getOpacity();\nv_id = norm(a_id);\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\nmat3 tileToTileNormalized = mat3( 2. / 512., 0., 0.,\n0., -2. / 512., 0.,\n-1., 1., 1. );\nout_pos = tileToTileNormalized * vec3((a_pos * FILL_POSITION_PRECISION), 1.);\n#else\nout_pos = u_dvsMat3 * vec3(a_pos * FILL_POSITION_PRECISION, 1.);\n#endif\n#ifdef PATTERN\nvec4 a_tlbr = a_aux1;\nfloat a_width = a_aux2.x;\nfloat a_height = a_aux2.y;\nvec2 a_offset = a_aux2.zw;\nvec2 a_scale = a_aux3.xy;\nfloat a_angle = a_aux3.z;\nif (getBit(a_bitset, BITSET_FILL_HAS_PATTERN_WIDTH_PRECISION_FACTOR) > 0.5) {\na_width *= INV_SCALE_COMPRESSION_FACTOR;\n}\nif (getBit(a_bitset, BITSET_FILL_HAS_PATTERN_HEIGHT_PRECISION_FACTOR) > 0.5) {\na_height *= INV_SCALE_COMPRESSION_FACTOR;\n}\nvec2 scale = INV_SCALE_COMPRESSION_FACTOR * a_scale;\nfloat width = u_zoomFactor * a_width * scale.x;\nfloat height = u_zoomFactor * a_height * scale.y;\nfloat angle = C_256_TO_RAD * a_angle;\nfloat sinA = sin(angle);\nfloat cosA = cos(angle);\nfloat dx = 0.0;\nfloat dy = 0.0;\nif (getBit(a_bitset, BITSET_FILL_RANDOM_PATTERN_OFFSET) > 0.5) {\nfloat id = rgba2float(vec4(a_id, 0.0));\ndx = rand(vec2(id, 0.0));\ndy = rand(vec2(0.0, id));\n}\nmat3 patternMatrix = mat3(cosA / width, sinA / height, 0,\n-sinA / width, cosA / height, 0,\ndx, dy, 1);\nvec2 patternSize = vec2(a_width, a_height);\nvec2 numPatternsPerMaxInt = vec2(MAX_REPRESENTABLE_INT) / patternSize;\nvec2 maxIntCrossingOffsetCorrection = patternSize * fract(u_maxIntNumOfCrossing * numPatternsPerMaxInt);\nvec2 tileOffset = u_tileOffset + maxIntCrossingOffsetCorrection - 0.5 * patternSize;\ntileOffset = vec2(tileOffset.x * cosA - tileOffset.y * sinA, tileOffset.x * sinA + tileOffset.y * cosA);\ntileOffset = mod(tileOffset, patternSize);\nvec2 symbolOffset = u_zoomFactor * scale * vec2(a_offset - tileOffset) / vec2(width, height);\nv_tileTextureCoord = (patternMatrix * vec3(a_pos * FILL_POSITION_PRECISION, 1.0)).xy - symbolOffset;\nv_aux1 = a_tlbr / u_mosaicSize.xyxy;\nv_sampleAlphaOnly = getBit(a_bitset, BITSET_GENERIC_CONSIDER_ALPHA_ONLY);\nif (getBit(a_bitSet, BITSET_FILL_HAS_UNRESOLVED_REPLACEMENT_COLOR) > 0.5) {\n#ifdef VV_COLOR\nv_sampleAlphaOnly *= (1.0 - float(isNan(VV_ADATA[ATTR_VV_COLOR]))) * (1.0 - getBit(a_bitSet, BITSET_GENERIC_LOCK_COLOR));\n#else\nv_sampleAlphaOnly = 0.0;\n#endif\n}\n#elif SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\nvec4 ddAttributeData0 = getAttributeData2(a_id) * u_isActive[0] * a_inverseArea;\nvec4 ddAttributeData1 = getAttributeData3(a_id) * u_isActive[1] * a_inverseArea;\nfloat size = u_tileZoomFactor * 512.0 * 1.0 / u_pixelRatio;\nv_dotThresholds[0] = dotThreshold(ddAttributeData0, u_dotValue, u_tileDotsOverArea);\nv_dotThresholds[1] = dotThreshold(ddAttributeData1, u_dotValue, u_tileDotsOverArea);\nv_dotTextureCoords = (a_pos * FILL_POSITION_PRECISION + 0.5) / size;\n#endif\n}\n#ifdef HITTEST\nvoid draw(out lowp vec4 out_color, out highp vec3 out_pos) {\n#ifdef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\nif (getBit(a_bitset, BITSET_TYPE_FILL_OUTLINE) > 0.5) {\nout_pos = vec3(0., 0., 2.);\nreturn;\n}\n#endif\nhittestFill(out_color, out_pos);\ngl_PointSize = 1.0;\n}\n#elif defined(SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE)\nvoid draw(out lowp vec4 out_color, out highp vec3 out_pos) {\nv_isOutline = getBit(a_bitset, BITSET_TYPE_FILL_OUTLINE);\nif (v_isOutline > 0.5) {\ndrawLine(out_color, out_pos);\n} else {\ndrawFill(out_color, out_pos);\n}\n}\n#else\n#define draw drawFill\n#endif\nvoid main()\n{\nINIT;\nhighp vec3 pos = vec3(0.);\nhighp vec4 color = vec4(0.);\ndraw(color, pos);\nv_color = color;\ngl_Position = vec4(clip(v_color, pos, getFilterFlags(), a_zoomRange), 1.0);\n}","hittest.glsl":"#ifdef HITTEST\n#include \nattribute vec2 a_pos1;\nattribute vec2 a_pos2;\nvoid hittestFill(\nout lowp vec4 out_color,\nout highp vec3 out_pos\n) {\nvec3 pos = u_viewMat3 * u_tileMat3 * vec3(a_pos * FILL_POSITION_PRECISION, 1.);\nvec3 pos1 = u_viewMat3 * u_tileMat3 * vec3(a_pos1 * FILL_POSITION_PRECISION, 1.);\nvec3 pos2 = u_viewMat3 * u_tileMat3 * vec3(a_pos2 * FILL_POSITION_PRECISION, 1.);\nfloat hittestDist = u_hittestDist;\nfloat dist = distPointTriangle(u_hittestPos, pos.xy, pos1.xy, pos2.xy);\nout_pos = vec3(getAttributeDataTextureCoords(a_id), 0.0);\nif (dist < 0. || dist >= hittestDist) {\nout_pos.z += 2.0;\n}\nout_color = vec4(1. / 255., 0, 0, dist == 0. ? (1. / 255.) : 0.);\n}\n#endif"},hittest:{"common.glsl":"#ifdef HITTEST\nuniform float hittestDist;\nuniform highp vec2 hittestPos;\nfloat projectScalar(vec2 a, vec2 b) {\nreturn dot(a, normalize(b));\n}\nfloat distPointSegment(vec2 p0, vec2 p1, vec2 p2) {\nvec2 L = p2 - p1;\nvec2 A = p0 - p1;\nfloat projAL = projectScalar(A, L);\nfloat t = clamp(projAL / length(L), 0., 1.);\nreturn distance(p0, p1 + t * (p2 - p1));\n}\nvoid hittestMarker(out lowp vec4 out_color, out highp vec3 out_pos, in highp vec3 pos, float size) {\nfloat dist = distance(pos, vec3(hittestPos, 1.));\nout_pos = vec3(getAttributeDataTextureCoords(a_id), 0.0);\nif ((dist - size) > hittestDist) {\nout_pos.z += 2.0;\n}\nout_color = vec4(1. / 255., 0, 0, (dist - size) < 0. ? (1. / 255.) : 0.);\n}\nfloat intersectPointTriangleBary(vec2 p, vec2 a, vec2 b, vec2 c) {\nreturn inTriangle(xyToBarycentric(p, a, b, c));\n}\nfloat distPointTriangle(vec2 p, vec2 a, vec2 b, vec2 c) {\nvec2 ba = b - a;\nvec2 ca = c - a;\nfloat crossProduct = ba.x * ca.y - ca.x * ba.y;\nbool isParallel = crossProduct < EPSILON_HITTEST && crossProduct > -EPSILON_HITTEST;\nif (isParallel) {\nreturn -1.;\n}\nif (intersectPointTriangleBary(p.xy, a, b, c) == 1.) {\nreturn 0.;\n}\nfloat distAB = distPointSegment(p, a, b);\nfloat distBC = distPointSegment(p, b, c);\nfloat distCA = distPointSegment(p, c, a);\nreturn min(min(distAB, distBC), distCA);\n}\n#endif"},icon:{"common.glsl":"#include \nuniform lowp vec2 u_mosaicSize;\nvarying lowp vec4 v_color;\nvarying highp vec3 v_id;\nvarying highp vec4 v_sizeTex;\nvarying mediump vec3 v_pos;\nvarying lowp float v_opacity;\nuniform lowp sampler2D u_texture;\n#ifdef SDF\nvarying lowp vec4 v_outlineColor;\nvarying mediump float v_outlineWidth;\nvarying mediump float v_distRatio;\nvarying mediump float v_overridingOutlineColor;\nvarying mediump float v_isThin;\n#endif\n#ifdef SDF\nvec4 getColor(vec2 v_size, vec2 v_tex) {\n#ifdef HITTEST\nlowp vec4 fillPixelColor = vec4(1.0);\n#else\nlowp vec4 fillPixelColor = v_color;\n#endif\nfloat d = 0.5 - rgba2float(texture2D(u_texture, v_tex));\nfloat size = max(v_size.x, v_size.y);\nfloat dist = d * size * SOFT_EDGE_RATIO * v_distRatio;\nfillPixelColor *= clamp(0.5 - dist, 0.0, 1.0);\nfloat outlineWidth = v_outlineWidth;\n#ifdef HIGHLIGHT\noutlineWidth = max(outlineWidth, 4.0 * v_isThin);\n#endif\nif (outlineWidth > 0.25) {\nlowp vec4 outlinePixelColor = v_overridingOutlineColor * v_color + (1.0 - v_overridingOutlineColor) * v_outlineColor;\nfloat clampedOutlineSize = min(outlineWidth, size);\noutlinePixelColor *= clamp(0.5 - abs(dist) + clampedOutlineSize * 0.5, 0.0, 1.0);\nreturn v_opacity * ((1.0 - outlinePixelColor.a) * fillPixelColor + outlinePixelColor);\n}\nreturn v_opacity * fillPixelColor;\n}\n#else\nvec4 getColor(vec2 _v_size, vec2 v_tex) {\nlowp vec4 texColor = texture2D(u_texture, v_tex);\nreturn v_opacity * texColor * v_color;\n}\n#endif",heatmapAccumulate:{"common.glsl":"varying lowp vec4 v_hittestResult;\nvarying mediump vec2 v_offsetFromCenter;\nvarying highp float v_fieldValue;","heatmapAccumulate.frag":"precision mediump float;\n#include \n#ifdef HEATMAP_PRECISION_HALF_FLOAT\n#define COMPRESSION_FACTOR 0.25\n#else\n#define COMPRESSION_FACTOR 1.0\n#endif\nuniform lowp sampler2D u_texture;\nvoid main() {\n#ifdef HITTEST\ngl_FragColor = v_hittestResult;\n#else\nfloat radius = length(v_offsetFromCenter);\nfloat shapeWeight = step(radius, 1.0);\nfloat oneMinusRadiusSquared = 1.0 - radius * radius;\nfloat kernelWeight = oneMinusRadiusSquared * oneMinusRadiusSquared;\ngl_FragColor = vec4(shapeWeight * kernelWeight * v_fieldValue * COMPRESSION_FACTOR);\n#endif\n}","heatmapAccumulate.vert":"precision highp float;\nattribute vec2 a_vertexOffset;\nvec4 a_color = vec4(0.0);\nvec2 a_zoomRange = vec2(0.0, 10000.0);\nuniform float u_radius;\nuniform float u_isFieldActive;\n#include \n#include \n#include \nvoid main() {\nfloat filterFlags = getFilterFlags();\n#ifdef HITTEST\nhighp vec4 out_hittestResult = vec4(0.);\nhighp vec3 out_pos = vec3(0.);\nvec3 pos = u_viewMat3 * u_tileMat3 * vec3(a_pos * POSITION_PRECISION, 1.0);\nhittestMarker(out_hittestResult, out_pos, pos, u_radius);\nv_hittestResult = out_hittestResult;\ngl_PointSize = 1.;\ngl_Position = vec4(clip(a_color, out_pos, filterFlags, a_zoomRange), 1.0);\n#else\nv_offsetFromCenter = sign(a_vertexOffset);\nv_fieldValue = getAttributeData2(a_id).x * u_isFieldActive + 1.0 - u_isFieldActive;\nvec3 centerPos = u_dvsMat3 * vec3(a_pos * POSITION_PRECISION, 1.0);\nvec3 vertexPos = centerPos + u_displayViewMat3 * vec3(v_offsetFromCenter, 0.0) * u_radius;\ngl_Position = vec4(clip(a_color, vertexPos, filterFlags, a_zoomRange), 1.0);\n#endif\n}"},"hittest.glsl":"#ifdef HITTEST\n#include \nattribute vec2 a_vertexOffset1;\nattribute vec2 a_vertexOffset2;\nattribute vec2 a_texCoords1;\nattribute vec2 a_texCoords2;\nvec2 getTextureCoords(in vec3 bary, in vec2 texCoords0, in vec2 texCoords1, in vec2 texCoords2) {\nreturn texCoords0 * bary.x + texCoords1 * bary.y + texCoords2 * bary.z;\n}\nvoid hittestIcon(\ninout lowp vec4 out_color,\nout highp vec3 out_pos,\nin vec3 pos,\nin vec3 offset,\nin vec2 size,\nin float scaleFactor,\nin float isMapAligned\n) {\nout_pos = vec3(getAttributeDataTextureCoords(a_id), 0.0);\nvec3 posBase = u_viewMat3 * u_tileMat3 * pos;\nvec3 offset1 = scaleFactor * vec3(a_vertexOffset1 / 16.0, 0.);\nvec3 offset2 = scaleFactor * vec3(a_vertexOffset2 / 16.0, 0.);\nvec2 pos0 = (posBase + getMatrixNoDisplay(isMapAligned) * offset).xy;\nvec2 pos1 = (posBase + getMatrixNoDisplay(isMapAligned) * offset1).xy;\nvec2 pos2 = (posBase + getMatrixNoDisplay(isMapAligned) * offset2).xy;\nvec3 bary0 = xyToBarycentric(u_hittestPos + vec2(-u_hittestDist, -u_hittestDist), pos0, pos1, pos2);\nvec3 bary1 = xyToBarycentric(u_hittestPos + vec2(0., -u_hittestDist), pos0, pos1, pos2);\nvec3 bary2 = xyToBarycentric(u_hittestPos + vec2(u_hittestDist, -u_hittestDist), pos0, pos1, pos2);\nvec3 bary3 = xyToBarycentric(u_hittestPos + vec2(-u_hittestDist, 0.), pos0, pos1, pos2);\nvec3 bary4 = xyToBarycentric(u_hittestPos, pos0, pos1, pos2);\nvec3 bary5 = xyToBarycentric(u_hittestPos + vec2(u_hittestDist, 0.), pos0, pos1, pos2);\nvec3 bary6 = xyToBarycentric(u_hittestPos + vec2(-u_hittestDist, u_hittestDist), pos0, pos1, pos2);\nvec3 bary7 = xyToBarycentric(u_hittestPos + vec2(0., u_hittestDist), pos0, pos1, pos2);\nvec3 bary8 = xyToBarycentric(u_hittestPos + vec2(u_hittestDist, u_hittestDist), pos0, pos1, pos2);\nvec2 tex0 = a_texCoords / u_mosaicSize;\nvec2 tex1 = a_texCoords1 / u_mosaicSize;\nvec2 tex2 = a_texCoords2 / u_mosaicSize;\nfloat alphaSum = 0.;\nalphaSum += inTriangle(bary0) * getColor(size, getTextureCoords(bary0, tex0, tex1, tex2)).a;\nalphaSum += inTriangle(bary1) * getColor(size, getTextureCoords(bary1, tex0, tex1, tex2)).a;\nalphaSum += inTriangle(bary2) * getColor(size, getTextureCoords(bary2, tex0, tex1, tex2)).a;\nalphaSum += inTriangle(bary3) * getColor(size, getTextureCoords(bary3, tex0, tex1, tex2)).a;\nalphaSum += inTriangle(bary4) * getColor(size, getTextureCoords(bary4, tex0, tex1, tex2)).a;\nalphaSum += inTriangle(bary5) * getColor(size, getTextureCoords(bary5, tex0, tex1, tex2)).a;\nalphaSum += inTriangle(bary6) * getColor(size, getTextureCoords(bary6, tex0, tex1, tex2)).a;\nalphaSum += inTriangle(bary7) * getColor(size, getTextureCoords(bary7, tex0, tex1, tex2)).a;\nout_pos.z += step(alphaSum, .05) * 2.0;\nout_color = vec4(1. / 255., 0., 0., alphaSum / 255.);\n}\n#endif","icon.frag":"precision mediump float;\n#include \n#include \n#include \nvoid main()\n{\n#ifdef HITTEST\nvec4 color = v_color;\n#else\nvec4 color = getColor(v_sizeTex.xy, v_sizeTex.zw);\n#endif\n#ifdef HIGHLIGHT\ncolor.a = step(1.0 / 255.0, color.a);\n#endif\ngl_FragColor = color;\n}","icon.vert":"precision highp float;\nattribute vec4 a_color;\nattribute vec4 a_outlineColor;\nattribute vec4 a_sizeAndOutlineWidth;\nattribute vec2 a_vertexOffset;\nattribute vec2 a_texCoords;\nattribute vec2 a_bitSetAndDistRatio;\nattribute vec2 a_zoomRange;\n#include \n#include \n#include \nfloat getMarkerScaleFactor(inout vec2 size, in float referenceSize) {\n#ifdef VV_SIZE\nfloat f = getSize(size.y) / size.y;\nfloat sizeFactor = size.y / referenceSize;\nreturn getSize(referenceSize) / referenceSize;\n#else\nreturn 1.;\n#endif\n}\nvoid main()\n{\nINIT;\nfloat a_bitSet = a_bitSetAndDistRatio.x;\nvec3 pos = vec3(a_pos * POSITION_PRECISION, 1.0);\nvec2 size = a_sizeAndOutlineWidth.xy * a_sizeAndOutlineWidth.xy / 128.0;\nvec3 offset = vec3(a_vertexOffset / 16.0, 0.);\nfloat outlineSize = a_sizeAndOutlineWidth.z * a_sizeAndOutlineWidth.z / 128.0;\nfloat isMapAligned = getBit(a_bitSet, BITSET_MARKER_ALIGNMENT_MAP);\nfloat referenceSize = a_sizeAndOutlineWidth.w * a_sizeAndOutlineWidth.w / 128.0;\nfloat scaleSymbolProportionally = getBit(a_bitSet, BITSET_MARKER_SCALE_SYMBOLS_PROPORTIONALLY);\nfloat scaleFactor = getMarkerScaleFactor(size, referenceSize);\nsize.xy *= scaleFactor;\noffset.xy *= scaleFactor;\noutlineSize *= scaleSymbolProportionally * (scaleFactor - 1.0) + 1.0;\nvec2 v_tex = a_texCoords / u_mosaicSize;\nfloat filterFlags = getFilterFlags();\nv_color = getColor(a_color, a_bitSet, BITSET_GENERIC_LOCK_COLOR);\nv_opacity = getOpacity();\nv_id = norm(a_id);\nv_pos = u_dvsMat3 * pos + getMatrix(isMapAligned) * getRotation() * offset;\nv_sizeTex = vec4(size.xy, v_tex.xy);\n#ifdef SDF\nv_isThin = getBit(a_bitSet, BITSET_MARKER_OUTLINE_ALLOW_COLOR_OVERRIDE);\n#ifdef VV_COLOR\nv_overridingOutlineColor = v_isThin;\n#else\nv_overridingOutlineColor = 0.0;\n#endif\nv_outlineWidth = min(outlineSize, max(max(size.x, size.y) - 0.99, 0.0));\nv_outlineColor = a_outlineColor;\nv_distRatio = a_bitSetAndDistRatio.y / 128.0;\n#endif\n#ifdef HITTEST\nhighp vec4 out_color = vec4(0.);\nhighp vec3 out_pos = vec3(0.);\nhittestIcon(out_color, out_pos, pos, offset, size, scaleFactor, isMapAligned);\nv_color = out_color;\ngl_PointSize = 1.;\ngl_Position = vec4(clip(v_color, out_pos, filterFlags, a_zoomRange), 1.0);\n#else\ngl_Position = vec4(clip(v_color, v_pos, filterFlags, a_zoomRange), 1.0);\n#endif\n}"},label:{"common.glsl":"uniform mediump float u_zoomLevel;\nuniform mediump float u_mapRotation;\nuniform mediump float u_mapAligned;\nuniform mediump vec2 u_mosaicSize;\nvarying mediump float v_antialiasingWidth;\nvarying mediump float v_edgeDistanceOffset;\nvarying mediump vec2 v_tex;\nvarying mediump vec4 v_color;\nvarying lowp vec4 v_animation;","label.frag":"#include ","label.vert":"precision highp float;\n#include \n#include \nattribute vec4 a_color;\nattribute vec4 a_haloColor;\nattribute vec4 a_texAndSize;\nattribute vec4 a_refSymbolAndPlacementOffset;\nattribute vec4 a_glyphData;\nattribute vec2 a_vertexOffset;\nattribute vec2 a_texCoords;\nuniform float u_isHaloPass;\nuniform float u_isBackgroundPass;\nuniform float u_mapRotation;\nuniform float u_mapAligned;\nfloat getZ(in float minZoom, in float maxZoom, in float angle) {\nfloat glyphAngle = angle * 360.0 / 254.0;\nfloat mapAngle = u_mapRotation * 360.0 / 254.0;\nfloat diffAngle = min(360.0 - abs(mapAngle - glyphAngle), abs(mapAngle - glyphAngle));\nfloat z = 0.0;\nz += u_mapAligned * (2.0 * (1.0 - step(minZoom, u_currentZoom)));\nz += u_mapAligned * 2.0 * step(90.0, diffAngle);\nz += 2.0 * (1.0 - step(u_currentZoom, maxZoom));\nreturn z;\n}\nvoid main()\n{\nINIT;\nfloat groupMinZoom = getMinZoom();\nfloat glyphMinZoom = a_glyphData.x;\nfloat glyphMaxZoom = a_glyphData.y;\nfloat glyphAngle = a_glyphData.z;\nfloat a_isBackground = a_glyphData.w;\nfloat a_minZoom = max(groupMinZoom, glyphMinZoom);\nfloat a_placementPadding = a_refSymbolAndPlacementOffset.x * EXTRUDE_SCALE_PLACEMENT_PADDING;\nvec2 a_placementDir = unpack_u8_nf32(a_refSymbolAndPlacementOffset.zw);\nfloat a_refSymbolSize = a_refSymbolAndPlacementOffset.y;\nfloat fontSize = a_texAndSize.z;\nfloat haloSize = a_texAndSize.w * OUTLINE_SCALE;\nvec2 vertexOffset = a_vertexOffset * OFFSET_PRECISION;\nvec3 pos = vec3(a_pos * POSITION_PRECISION, 1.0);\nfloat z = getZ(a_minZoom, glyphMaxZoom, glyphAngle);\nfloat fontScale = fontSize / SDF_FONT_SIZE;\nfloat halfSize = getSize(a_refSymbolSize) / 2.0;\nfloat animation = pow(getAnimationState(), vec4(2.0)).r;\nfloat isText = 1.0 - a_isBackground;\nfloat isBackground = u_isBackgroundPass * a_isBackground;\nvec4 nonHaloColor = (isBackground + isText) * a_color;\nv_color = animation * ((1.0 - u_isHaloPass) * nonHaloColor + (u_isHaloPass * a_haloColor));\nv_opacity = 1.0;\nv_tex = a_texCoords / u_mosaicSize;\nv_edgeDistanceOffset = u_isHaloPass * haloSize / fontScale / MAX_SDF_DISTANCE;\nv_antialiasingWidth = 0.105 * SDF_FONT_SIZE / fontSize / u_pixelRatio;\nvec2 placementOffset = a_placementDir * (halfSize + a_placementPadding);\nvec3 glyphOffset = u_displayMat3 * vec3(vertexOffset + placementOffset, 0.0);\nvec3 v_pos = vec3((u_dvsMat3 * pos + glyphOffset).xy, z);\nfloat isHidden = u_isBackgroundPass * isText + (1.0 - u_isBackgroundPass) * a_isBackground;\nv_pos.z += 2.0 * isHidden;\ngl_Position = vec4(v_pos, 1.0);\n#ifdef DEBUG\nv_color = vec4(a_color.rgb, z == 0.0 ? 1.0 : 0.645);\n#endif\n}"},line:{"common.glsl":"varying lowp vec4 v_color;\nvarying highp vec3 v_id;\nvarying mediump vec2 v_normal;\nvarying mediump float v_lineHalfWidth;\nvarying lowp float v_opacity;\n#ifdef PATTERN\nvarying mediump vec4 v_tlbr;\nvarying mediump vec2 v_patternSize;\n#endif\n#if defined(PATTERN) || defined(SDF)\nvarying highp float v_accumulatedDistance;\n#endif\n#ifdef SDF\nvarying mediump float v_lineWidthRatio;\n#endif","hittest.glsl":"#include \n#ifdef HITTEST\nattribute vec2 a_pos1;\nattribute vec2 a_pos2;\nvoid hittestLine(out lowp vec4 out_color, out highp vec3 out_pos, float halfWidth) {\nvec3 pos = u_viewMat3 * u_tileMat3 * vec3(a_pos * POSITION_PRECISION, 1.);\nvec3 pos1 = u_viewMat3 * u_tileMat3 * vec3(a_pos1 * POSITION_PRECISION, 1.);\nvec3 pos2 = u_viewMat3 * u_tileMat3 * vec3(a_pos2 * POSITION_PRECISION, 1.);\nvec3 outTextureCoords = vec3(getAttributeDataTextureCoords(a_id), 0.0);\nfloat dist = min(distPointSegment(u_hittestPos, pos.xy, pos1.xy),\ndistPointSegment(u_hittestPos, pos.xy, pos2.xy)) - halfWidth;\nout_pos = vec3(getAttributeDataTextureCoords(a_id), 0.0);\nif (dist >= u_hittestDist) {\nout_pos.z += 2.0;\n}\nout_color = vec4(1. / 255., 0, 0, dist <= 0. ? (1. / 255.) : 0.);\n}\n#endif","line.frag":"precision lowp float;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef HITTEST\nvoid main() {\ngl_FragColor = v_color;\n}\n#else\nvoid main() {\nLineData inputs = LineData(\nv_color,\nv_normal,\nv_lineHalfWidth,\nv_opacity,\n#ifndef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\n#ifdef PATTERN\nv_tlbr,\nv_patternSize,\n#endif\n#ifdef SDF\nv_lineWidthRatio,\n#endif\n#if defined(PATTERN) || defined(SDF)\nv_accumulatedDistance,\n#endif\n#endif\nv_id\n);\ngl_FragColor = shadeLine(inputs);\n}\n#endif","line.vert":"precision highp float;\nattribute vec4 a_color;\nattribute vec4 a_offsetAndNormal;\nattribute vec2 a_accumulatedDistanceAndHalfWidth;\nattribute vec4 a_tlbr;\nattribute vec4 a_segmentDirection;\nattribute vec2 a_aux;\nattribute vec2 a_zoomRange;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef HITTEST\nvoid draw() {\nfloat aa = 0.5 * u_antialiasing;\nfloat a_halfWidth = a_accumulatedDistanceAndHalfWidth.y / 16.;\nfloat a_cimHalfWidth = a_aux.x / 16. ;\nvec2 a_offset = a_offsetAndNormal.xy / 16.;\nfloat baseWidth = getBaseLineHalfWidth(a_halfWidth, a_cimHalfWidth);\nfloat halfWidth = getLineHalfWidth(baseWidth, aa);\nhighp vec3 pos = vec3(0.);\nv_color = vec4(0.);\nhittestLine(v_color, pos, halfWidth);\ngl_PointSize = 1.;\ngl_Position = vec4(clip(v_color, pos, getFilterFlags(), a_zoomRange), 1.0);\n}\n#else\nvoid draw()\n{\nhighp vec3 pos = vec3(0.);\nLineData outputs = buildLine(\npos,\na_id,\na_pos,\na_color,\na_offsetAndNormal.xy / 16.,\na_offsetAndNormal.zw / 16.,\na_accumulatedDistanceAndHalfWidth.x,\na_accumulatedDistanceAndHalfWidth.y / 16.,\na_segmentDirection.w,\na_tlbr,\na_segmentDirection.xy / 16.,\na_aux.x / 16.\n);\nv_id = outputs.id;\nv_color = outputs.color;\nv_normal = outputs.normal;\nv_lineHalfWidth = outputs.lineHalfWidth;\nv_opacity = outputs.opacity;\n#ifndef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\n#ifdef PATTERN\nv_tlbr = outputs.tlbr;\nv_patternSize = outputs.patternSize;\n#endif\n#ifdef SDF\nv_lineWidthRatio = outputs.lineWidthRatio;\n#endif\n#if defined(PATTERN) || defined(SDF)\nv_accumulatedDistance = outputs.accumulatedDistance;\n#endif\n#endif\ngl_Position = vec4(clip(outputs.color, pos, getFilterFlags(), a_zoomRange), 1.0);\n}\n#endif\nvoid main() {\nINIT;\ndraw();\n}"},pie:{"pie.common.glsl":"uniform float outlineWidth;\nuniform mediump float sectorThreshold;\nvarying vec3 v_id;\nvarying vec3 v_pos;\nvarying vec2 v_offset;\nvarying vec4 v_color;\nvarying float v_size;\nvarying float v_numOfEntries;\nvarying float v_maxSectorAngle;\nvarying vec2 v_filteredSectorToColorId[numberOfFields];\nvarying vec2 v_texCoords;\nvarying float v_outlineWidth;\nvarying float v_opacity;\nstruct FilteredChartInfo {\nfloat endSectorAngle;\nint colorId;\n};","pie.frag":"precision highp float;\n#include \n#include \n#include \n#include \nuniform lowp vec4 colors[numberOfFields];\nuniform lowp vec4 defaultColor;\nuniform lowp vec4 othersColor;\nuniform lowp vec4 outlineColor;\nuniform float donutRatio;\nlowp vec4 getSectorColor(in int index, in vec2 filteredSectorToColorId[numberOfFields]) {\nmediump int colorIndex = int(filteredSectorToColorId[index].y);\nreturn colors[colorIndex];\n}\nconst int OTHER_SECTOR_ID = 255;\n#ifdef HITTEST\nvec4 getColor() {\nfloat distanceSize = length(v_offset) * v_size;\nfloat donutSize = donutRatio * v_size;\nfloat alpha = step(donutSize, distanceSize) * (1.0 - step(v_size, distanceSize));\nreturn v_color;\n}\n#else\nvec4 getColor() {\nfloat angle = 90.0 - C_RAD_TO_DEG * atan2(v_offset.y, v_offset.x);\nif (angle < 0.0) {\nangle += 360.0;\n} else if (angle > 360.0) {\nangle = mod(angle, 360.0);\n}\nint numOfEntries = int(v_numOfEntries);\nfloat maxSectorAngle = v_maxSectorAngle;\nlowp vec4 fillColor = (maxSectorAngle > 0.0 || sectorThreshold > 0.0) ? othersColor : defaultColor;\nlowp vec4 prevColor = vec4(0.0);\nlowp vec4 nextColor = vec4(0.0);\nfloat startSectorAngle = 0.0;\nfloat endSectorAngle = 0.0;\nif (angle < maxSectorAngle) {\nfor (int index = 0; index < numberOfFields; ++index) {\nstartSectorAngle = endSectorAngle;\nendSectorAngle = v_filteredSectorToColorId[index].x;\nif (endSectorAngle > angle) {\nfillColor = getSectorColor(index, v_filteredSectorToColorId);\nprevColor = sectorThreshold != 0.0 && index == 0 && abs(360.0 - maxSectorAngle) < EPSILON ? othersColor :\ngetSectorColor(index > 0 ? index - 1 : numOfEntries - 1, v_filteredSectorToColorId);\nnextColor = sectorThreshold != 0.0 && abs(endSectorAngle - maxSectorAngle) < EPSILON ? othersColor :\ngetSectorColor(index < numOfEntries - 1 ? index + 1 : 0, v_filteredSectorToColorId);\nbreak;\n}\nif (index == numOfEntries - 1) {\nbreak;\n}\n}\n} else {\nprevColor = getSectorColor(numOfEntries - 1, v_filteredSectorToColorId);\nnextColor = getSectorColor(0, v_filteredSectorToColorId);\nstartSectorAngle = maxSectorAngle;\nendSectorAngle = 360.0;\n}\nlowp vec4 outlineColor = outlineColor;\nfloat offset = length(v_offset);\nfloat distanceSize = offset * v_size;\nif (startSectorAngle != 0.0 || endSectorAngle != 360.0) {\nfloat distanceToStartSector = (angle - startSectorAngle);\nfloat distanceToEndSector = (endSectorAngle - angle);\nfloat sectorThreshold = 0.6;\nfloat beginSectorAlpha = smoothstep(0.0, sectorThreshold, distanceToStartSector * offset);\nfloat endSectorAlpha = smoothstep(0.0, sectorThreshold, distanceToEndSector * offset);\nif (endSectorAlpha > 0.0) {\nfillColor = mix(nextColor, fillColor, endSectorAlpha);\n} else if (beginSectorAlpha > 0.0) {\nfillColor = mix(prevColor, fillColor, beginSectorAlpha);\n}\n}\nfloat donutSize = donutRatio * (v_size - v_outlineWidth);\nfloat endOfDonut = donutSize - v_outlineWidth;\nfloat aaThreshold = 0.75;\nfloat innerCircleAlpha = endOfDonut - aaThreshold > 0.0 ? smoothstep(endOfDonut - aaThreshold, endOfDonut + aaThreshold, distanceSize) : 1.0;\nfloat outerCircleAlpha = 1.0 - smoothstep(v_size - aaThreshold, v_size + aaThreshold , distanceSize);\nfloat circleAlpha = innerCircleAlpha * outerCircleAlpha;\nfloat startOfOutline = v_size - v_outlineWidth;\nif (startOfOutline > 0.0 && v_outlineWidth > 0.25) {\nfloat outlineFactor = smoothstep(startOfOutline - aaThreshold, startOfOutline + aaThreshold, distanceSize);\nfloat innerLineFactor = donutSize - aaThreshold > 0.0 ? 1.0 - smoothstep(donutSize - aaThreshold, donutSize + aaThreshold , distanceSize) : 0.0;\nfillColor = mix(fillColor, outlineColor, innerLineFactor + outlineFactor);\n}\nreturn v_opacity * circleAlpha * fillColor;\n}\n#endif\nvoid main()\n{\nvec4 color = getColor();\n#ifdef highlight\ncolor.a = step(1.0 / 255.0, color.a);\n#endif\ngl_FragColor = color;\n}","pie.vert":"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nattribute float a_bitSet;\nattribute vec2 a_offset;\nattribute vec2 a_texCoords;\nattribute vec2 a_size;\nattribute float a_referenceSize;\nattribute vec2 a_zoomRange;\nint filterValue(in float sectorAngle,\nin int currentIndex,\ninout FilteredChartInfo filteredInfo,\ninout vec2 filteredSectorToColorId[numberOfFields]) {\nif (sectorAngle > sectorThreshold * 360.0) {\nfilteredInfo.endSectorAngle += sectorAngle;\nfilteredSectorToColorId[filteredInfo.colorId] = vec2(filteredInfo.endSectorAngle, currentIndex);\n++filteredInfo.colorId;\n}\nreturn 0;\n}\nint filterValues(inout vec2 filteredSectorToColorId[numberOfFields],\ninout FilteredChartInfo filteredInfo,\nin float sectorAngles[numberOfFields]) {\nfor (int index = 0; index < numberOfFields; ++index) {\nfloat sectorValue = sectorAngles[index];\nfilterValue(sectorValue, index, filteredInfo, filteredSectorToColorId);\n}\nreturn filteredInfo.colorId;\n}\nvec2 getMarkerSize(inout vec2 offset, inout vec2 baseSize, inout float outlineSize, in float a_referenceSize, in float bitSet) {\nvec2 outSize = baseSize;\n#ifdef VV_SIZE\nfloat r = getSize(a_referenceSize, currentScale) / a_referenceSize;\noutSize.xy *= r;\noffset.xy *= r;\nfloat scaleSymbolProportionally = getBit(bitSet, BITSET_MARKER_SCALE_SYMBOLS_PROPORTIONALLY);\noutlineSize *= scaleSymbolProportionally * (r - 1.0) + 1.0;\n#endif\nreturn outSize;\n}\nvec3 getOffset(in vec2 in_offset, float a_bitSet) {\nfloat isMapAligned = getBit(a_bitSet, BITSET_MARKER_ALIGNMENT_MAP);\nvec3 offset = vec3(in_offset, 0.0);\nreturn getMatrix(isMapAligned) * offset;\n}\nfloat filterNaNValues(in float value) {\nreturn value != NAN_MAGIC_NUMBER && value > 0.0 ? value : 0.0;\n}\nvoid main()\n{\nINIT;\nvec2 a_size = a_size;\nvec2 a_offset = a_offset / 16.0;\nfloat outlineSize = outlineWidth;\nfloat a_bitSet = a_bitSet;\nfloat a_referenceSize = a_referenceSize;\nvec2 a_texCoords = a_texCoords / 4.0;\nvec2 markerSize = getMarkerSize(a_offset, a_size, outlineSize, a_referenceSize, a_bitSet);\nfloat filterFlags = getFilterFlags();\nvec3 pos = vec3(a_pos / 10.0, 1.0);\nv_opacity = getOpacity();\nv_id = norm(a_id);\nv_pos = displayViewScreenMat3 * pos + getOffset(a_offset, a_bitSet);\nv_offset = sign(a_texCoords - 0.5);\nv_size = max(markerSize.x, markerSize.y);\nv_outlineWidth = outlineSize;\nfloat attributeData[10];\nvec4 attributeData3 = getDataDriven0(a_id);\nattributeData[0] = filterNaNValues(attributeData3.x);\nattributeData[1] = filterNaNValues(attributeData3.y);\nattributeData[2] = filterNaNValues(attributeData3.z);\nattributeData[3] = filterNaNValues(attributeData3.w);\n#if (numberOfFields > 4)\nvec4 attributeData4 = getDataDriven1(a_id);\nattributeData[4] = filterNaNValues(attributeData4.x);\nattributeData[5] = filterNaNValues(attributeData4.y);\nattributeData[6] = filterNaNValues(attributeData4.z);\nattributeData[7] = filterNaNValues(attributeData4.w);\n#endif\n#if (numberOfFields > 8)\nvec4 attributeData5 = getDataDriven2(a_id);\nattributeData[8] = filterNaNValues(attributeData5.x);\nattributeData[9] = filterNaNValues(attributeData5.y);\n#endif\nfloat sum = 0.0;\nfor (int i = 0; i < numberOfFields; ++i) {\nsum += attributeData[i];\n}\nfloat sectorAngles[numberOfFields];\nfor (int i = 0; i < numberOfFields; ++i) {\nsectorAngles[i] = 360.0 * attributeData[i] / sum;\n}\nvec2 filteredSectorToColorId[numberOfFields];\nFilteredChartInfo filteredInfo = FilteredChartInfo(0.0, 0);\nint numOfEntries = filterValues(filteredSectorToColorId, filteredInfo, sectorAngles);\nv_numOfEntries = float(numOfEntries);\nv_maxSectorAngle = filteredInfo.endSectorAngle;\nv_filteredSectorToColorId = filteredSectorToColorId;\n#ifdef HITTEST\nhighp vec3 out_pos = vec3(0.0);\nv_color = vec4(0.0);\nhittestMarker(v_color, out_pos, viewMat3 * tileMat3 * pos, v_size);\ngl_PointSize = 1.0;\ngl_Position = vec4(clip(v_color, out_pos, filterFlags, a_zoomRange), 1.0);\n#else\ngl_Position = vec4(clip(v_color, v_pos, filterFlags, a_zoomRange), 1.0);\n#endif\n}"},shared:{line:{"common.glsl":"#if !defined(SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE) && defined(PATTERN)\nuniform mediump vec2 u_mosaicSize;\nvarying mediump float v_sampleAlphaOnly;\n#endif\nstruct LineData {\nlowp vec4 color;\nmediump vec2 normal;\nmediump float lineHalfWidth;\nlowp float opacity;\n#ifndef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\n#ifdef PATTERN\nmediump vec4 tlbr;\nmediump vec2 patternSize;\n#endif\n#ifdef SDF\nmediump float lineWidthRatio;\n#endif\n#if defined(PATTERN) || defined(SDF)\nhighp float accumulatedDistance;\n#endif\n#endif\nhighp vec3 id;\n};","line.frag":"uniform lowp float u_blur;\n#if !defined(SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE) && !defined(HIGHLIGHT)\n#if defined(PATTERN) || defined(SDF)\nuniform sampler2D u_texture;\nuniform highp float u_pixelRatio;\n#endif\n#endif\n#if defined(SDF) && !defined(HIGHLIGHT) && !defined(SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE)\nlowp vec4 getLineColor(LineData line) {\nmediump float adjustedPatternWidth = line.patternSize.x * 2.0 * line.lineWidthRatio;\nmediump float relativeTexX = fract(line.accumulatedDistance / adjustedPatternWidth);\nmediump float relativeTexY = 0.5 + 0.25 * line.normal.y;\nmediump vec2 texCoord = mix(line.tlbr.xy, line.tlbr.zw, vec2(relativeTexX, relativeTexY));\nmediump float d = rgba2float(texture2D(u_texture, texCoord)) - 0.5;\nfloat dist = d * line.lineHalfWidth;\nreturn line.opacity * clamp(0.5 - dist, 0.0, 1.0) * line.color;\n}\n#elif defined(PATTERN) && !defined(HIGHLIGHT) && !defined(SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE)\nlowp vec4 getLineColor(LineData line) {\nmediump float lineHalfWidth = line.lineHalfWidth;\nmediump float adjustedPatternHeight = line.patternSize.y * 2.0 * lineHalfWidth / line.patternSize.x;\nmediump float relativeTexY = fract(line.accumulatedDistance / adjustedPatternHeight);\nmediump float relativeTexX = 0.5 + 0.5 * line.normal.y;\nmediump vec2 texCoord = mix(line.tlbr.xy, line.tlbr.zw, vec2(relativeTexX, relativeTexY));\nlowp vec4 color = texture2D(u_texture, texCoord);\n#ifdef VV_COLOR\nif (v_sampleAlphaOnly > 0.5) {\ncolor.rgb = vec3(color.a);\n}\n#endif\nreturn line.opacity * line.color * color;\n}\n#else\nlowp vec4 getLineColor(LineData line) {\nreturn line.opacity * line.color;\n}\n#endif\nvec4 shadeLine(LineData line)\n{\nmediump float thinLineFactor = max(THIN_LINE_WIDTH_FACTOR * step(line.lineHalfWidth, THIN_LINE_HALF_WIDTH), 1.0);\nmediump float fragDist = length(line.normal) * line.lineHalfWidth;\nlowp float alpha = clamp(thinLineFactor * (line.lineHalfWidth - fragDist) / (u_blur + thinLineFactor - 1.0), 0.0, 1.0);\nlowp vec4 out_color = getLineColor(line) * alpha;\n#ifdef HIGHLIGHT\nout_color.a = step(1.0 / 255.0, out_color.a);\n#endif\n#ifdef ID\nif (out_color.a < 1.0 / 255.0) {\ndiscard;\n}\nout_color = vec4(line.id, 0.0);\n#endif\nreturn out_color;\n}","line.vert":"float getBaseLineHalfWidth(in float lineHalfWidth, in float referenceHalfWidth) {\n#ifdef VV_SIZE\nfloat refLineWidth = 2.0 * referenceHalfWidth;\nreturn 0.5 * (lineHalfWidth / max(referenceHalfWidth, EPSILON)) * getSize(refLineWidth);\n#else\nreturn lineHalfWidth;\n#endif\n}\nfloat getLineHalfWidth(in float baseWidth, in float aa) {\nfloat halfWidth = max(baseWidth + aa, 0.45) + 0.1 * aa;\n#ifdef HIGHLIGHT\nhalfWidth = max(halfWidth, 2.0);\n#endif\nreturn halfWidth;\n}\nvec2 getDist(in vec2 offset, in float halfWidth) {\nfloat thinLineFactor = max(THIN_LINE_WIDTH_FACTOR * step(halfWidth, THIN_LINE_HALF_WIDTH), 1.0);\nreturn thinLineFactor * halfWidth * offset;\n}\nLineData buildLine(\nout vec3 out_pos,\nin vec3 in_id,\nin vec2 in_pos,\nin vec4 in_color,\nin vec2 in_offset,\nin vec2 in_normal,\nin float in_accumulatedDist,\nin float in_lineHalfWidth,\nin float in_bitSet,\nin vec4 in_tlbr,\nin vec2 in_segmentDirection,\nin float in_referenceHalfWidth\n)\n{\nfloat aa = 0.5 * u_antialiasing;\nfloat baseWidth = getBaseLineHalfWidth(in_lineHalfWidth, in_referenceHalfWidth);\nfloat halfWidth = getLineHalfWidth(baseWidth, aa);\nfloat z = 2.0 * step(baseWidth, 0.0);\nvec2 dist = getDist(in_offset, halfWidth);\nvec3 offset = u_displayViewMat3 * vec3(dist, 0.0);\nvec3 pos = u_dvsMat3 * vec3(in_pos * POSITION_PRECISION, 1.0) + offset;\n#ifdef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\nvec4 color = in_color;\nfloat opacity = 1.0;\n#else\nvec4 color = getColor(in_color, in_bitSet, BITSET_GENERIC_LOCK_COLOR);\nfloat opacity = getOpacity();\n#ifdef SDF\nconst float SDF_PATTERN_HALF_WIDTH = 15.5;\nfloat scaleDash = getBit(in_bitSet, BITSET_LINE_SCALE_DASH);\nfloat lineWidthRatio = (scaleDash * max(halfWidth - 0.55 * u_antialiasing, 0.25) + (1.0 - scaleDash)) / SDF_PATTERN_HALF_WIDTH;\n#endif\n#endif\n#if !defined(SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE) && defined(PATTERN)\nv_sampleAlphaOnly = getBit(in_bitSet, BITSET_GENERIC_CONSIDER_ALPHA_ONLY);\n#endif\nout_pos = vec3(pos.xy, z);\nreturn LineData(\ncolor,\nin_normal,\nhalfWidth,\nopacity,\n#ifndef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\n#ifdef PATTERN\nin_tlbr / u_mosaicSize.xyxy,\nvec2(in_tlbr.z - in_tlbr.x, in_tlbr.w - in_tlbr.y),\n#endif\n#ifdef SDF\nlineWidthRatio,\n#endif\n#if defined(PATTERN) || defined(SDF)\nin_accumulatedDist * u_zoomFactor + dot(in_segmentDirection, dist),\n#endif\n#endif\nnorm(in_id)\n);\n}"}},"symbologyTypeUtils.glsl":"#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_OUTLINE_FILL || SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_OUTLINE_FILL_SIMPLE\n#define SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\n#endif\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_SIMPLE || SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_OUTLINE_FILL_SIMPLE\n#define SYMBOLOGY_TYPE_IS_SIMPLE_LIKE\n#endif",text:{"common.glsl":"uniform highp vec2 u_mosaicSize;\nvarying highp vec3 v_id;\nvarying mediump vec3 v_pos;\nvarying lowp float v_opacity;\nvarying lowp vec4 v_color;\nvarying highp vec2 v_tex;\nvarying mediump float v_antialiasingWidth;\nvarying mediump float v_edgeDistanceOffset;\nvarying lowp float v_transparency;","hittest.glsl":"#include ","text.frag":"precision mediump float;\n#include \nuniform lowp sampler2D u_texture;\n#ifdef HITTEST\nvec4 getColor() {\nreturn v_color;\n}\n#else\nvec4 getColor()\n{\nfloat SDF_CUTOFF = (2.0 / 8.0);\nfloat SDF_BASE_EDGE_DIST = 1.0 - SDF_CUTOFF;\nlowp float dist = texture2D(u_texture, v_tex).a;\nmediump float edge = SDF_BASE_EDGE_DIST - v_edgeDistanceOffset;\n#ifdef HIGHLIGHT\nedge /= 2.0;\n#endif\nlowp float aa = v_antialiasingWidth;\nlowp float alpha = smoothstep(edge - aa, edge + aa, dist);\nreturn alpha * v_color * v_opacity;\n}\n#endif\nvoid main()\n{\ngl_FragColor = getColor();\n}","text.vert":"precision highp float;\n#include \n#include \n#include \n#include \nattribute vec4 a_color;\nattribute vec4 a_haloColor;\nattribute vec4 a_texFontSize;\nattribute vec4 a_aux;\nattribute vec2 a_zoomRange;\nattribute vec2 a_vertexOffset;\nattribute vec2 a_texCoords;\nuniform float u_isHaloPass;\nuniform float u_isBackgroundPass;\nfloat getTextSize(inout vec2 offset, inout float baseSize, in float referenceSize) {\n#ifdef VV_SIZE\nfloat r = getSize(referenceSize) / referenceSize;\nbaseSize *= r;\noffset.xy *= r;\nreturn baseSize;\n#endif\nreturn baseSize;\n}\nvoid main()\n{\nINIT;\nfloat a_isBackground = a_aux.y;\nfloat a_referenceSize = a_aux.z * a_aux.z / 256.0;\nfloat a_bitSet = a_aux.w;\nfloat a_fontSize = a_texFontSize.z;\nvec2 a_offset = a_vertexOffset * OFFSET_PRECISION;\nvec3 in_pos = vec3(a_pos * POSITION_PRECISION, 1.0);\nfloat fontSize = getTextSize(a_offset, a_fontSize, a_referenceSize);\nfloat fontScale = fontSize / SDF_FONT_SIZE;\nvec3 offset = getRotation() * vec3(a_offset, 0.0);\nmat3 extrudeMatrix = getBit(a_bitSet, 0) == 1.0 ? u_displayViewMat3 : u_displayMat3;\nfloat isText = 1.0 - a_isBackground;\nfloat isBackground = u_isBackgroundPass * a_isBackground;\nvec4 nonHaloColor = (isBackground * a_color) + (isText * getColor(a_color, a_bitSet, 1));\nv_color = u_isHaloPass * a_haloColor + (1.0 - u_isHaloPass) * nonHaloColor;\nv_opacity = getOpacity();\nv_id = norm(a_id);\nv_tex = a_texCoords / u_mosaicSize;\nv_pos = u_dvsMat3 * in_pos + extrudeMatrix * offset;\nfloat isHidden = u_isBackgroundPass * isText + (1.0 - u_isBackgroundPass) * a_isBackground;\nv_pos.z += 2.0 * isHidden;\nv_edgeDistanceOffset = u_isHaloPass * OUTLINE_SCALE * a_texFontSize.w / fontScale / MAX_SDF_DISTANCE;\nv_antialiasingWidth = 0.105 * SDF_FONT_SIZE / fontSize / u_pixelRatio;\n#ifdef HITTEST\nhighp vec3 out_pos = vec3(0.);\nv_color = vec4(0.);\nhittestMarker(v_color, out_pos, u_viewMat3 * u_tileMat3 * vec3(a_pos * POSITION_PRECISION, 1.0)\n+ u_tileMat3 * offset, fontSize / 2.);\ngl_PointSize = 1.;\ngl_Position = vec4(clip(v_color, out_pos, getFilterFlags(), a_zoomRange), 1.0);\n#else\ngl_Position = vec4(clip(v_color, v_pos, getFilterFlags(), a_zoomRange), 1.0);\n#endif\n}"},"utils.glsl":"float rshift(in float u32, in int amount) {\nreturn floor(u32 / pow(2.0, float(amount)));\n}\nfloat getBit(in float bitset, in int bitIndex) {\nfloat offset = pow(2.0, float(bitIndex));\nreturn mod(floor(bitset / offset), 2.0);\n}\nconst int highlightReasonsLength = 3;\nfloat getFilterBit(in float bitset, in int bitIndex) {\nreturn getBit(bitset, bitIndex + highlightReasonsLength);\n}\nfloat getHighlightBit(in float bitset, in int bitIndex) {\nreturn getBit(bitset, bitIndex);\n}\nhighp vec3 unpackDisplayIdTexel(in highp vec3 bitset) {\nfloat isAggregate = getBit(bitset.b, 7);\nreturn (1.0 - isAggregate) * bitset + isAggregate * (vec3(bitset.rgb) - vec3(0.0, 0.0, float(0x80)));\n}\nvec4 unpack(in float u32) {\nfloat r = mod(rshift(u32, 0), 255.0);\nfloat g = mod(rshift(u32, 8), 255.0);\nfloat b = mod(rshift(u32, 16), 255.0);\nfloat a = mod(rshift(u32, 24), 255.0);\nreturn vec4(r, g, b, a);\n}\nvec3 norm(in vec3 v) {\nreturn v /= 255.0;\n}\nvec4 norm(in vec4 v) {\nreturn v /= 255.0;\n}\nfloat max4(vec4 target) {\nreturn max(max(max(target.x, target.y), target.z), target.w);\n}\nvec2 unpack_u8_nf32(vec2 bytes) {\nreturn (bytes - 127.0) / 127.0;\n}\nhighp float rand(in vec2 co) {\nhighp float a = 12.9898;\nhighp float b = 78.233;\nhighp float c = 43758.5453;\nhighp float dt = dot(co, vec2(a,b));\nhighp float sn = mod(dt, 3.14);\nreturn fract(sin(sn) * c);\n}","vcommon.glsl":"#include \n#include \n#include \n#include \n#include \nattribute vec2 a_pos;\nattribute highp vec3 a_id;\nuniform highp mat3 displayViewScreenMat3;\nuniform highp mat3 displayViewMat3;\nuniform highp mat3 displayMat3;\nuniform highp mat3 tileMat3;\nuniform highp mat3 viewMat3;\nuniform highp float pixelRatio;\nuniform mediump float zoomFactor;\nuniform mediump float antialiasing;\nuniform mediump float currentScale;\nuniform mediump float currentZoom;\nuniform mediump float metersPerSRUnit;\nvec4 VV_ADATA = vec4(0.0);\nvoid loadVisualVariableData(inout vec4 target) {\ntarget.rgba = getVisualVariableData(a_id);\n}\n#ifdef VV\n#define INIT loadVisualVariableData(VV_ADATA)\n#else\n#define INIT\n#endif\nvec4 getColor(in vec4 a_color, in float a_bitSet, int index) {\n#ifdef VV_COLOR\nfloat isColorLocked = getBit(a_bitSet, index);\nreturn getVVColor(VV_ADATA[ATTR_VV_COLOR], a_color, isColorLocked);\n#else\nreturn a_color;\n#endif\n}\nfloat getOpacity() {\n#ifdef VV_OPACITY\nreturn getVVOpacity(VV_ADATA[ATTR_VV_OPACITY]);\n#else\nreturn 1.0;\n#endif\n}\nfloat getSize(in float in_size, in float currentScale) {\n#ifdef VV_SIZE\nreturn getVVSize(in_size, VV_ADATA[ATTR_VV_SIZE], currentScale);\n#else\nreturn in_size;\n#endif\n}\nmat3 getRotation() {\n#ifdef VV_ROTATION\nreturn getVVRotationMat3(mod(VV_ADATA[ATTR_VV_ROTATION], 360.0));\n#else\nreturn mat3(1.0);\n#endif\n}\nfloat getFilterFlags() {\n#ifdef IGNORES_SAMPLER_PRECISION\nreturn ceil(getFilterData(a_id).x * 255.0);\n#else\nreturn getFilterData(a_id).x * 255.0;\n#endif\n}\nvec4 getAnimationState() {\nreturn getAnimation(a_id);\n}\nfloat getMinZoom() {\nvec4 data0 = getFilterData(a_id) * 255.0;\nreturn data0.g;\n}\nmat3 getMatrixNoDisplay(float isMapAligned) {\nreturn isMapAligned * viewMat3 * tileMat3 + (1.0 - isMapAligned) * tileMat3;\n}\nmat3 getMatrix(float isMapAligned) {\nreturn isMapAligned * displayViewMat3 + (1.0 - isMapAligned) * displayMat3;\n}\nfloat checkHighlightBit(float filterFlags, int index) {\nreturn getHighlightBit(filterFlags, index);\n}\nfloat checkHighlight(float filterFlags) {\nfloat result = checkHighlightBit(filterFlags, 0);\nfor (int i = 1; i < highlightReasonsLength; i++) {\nresult = result + checkHighlightBit(filterFlags, i);\n}\nreturn step(0.1, result);\n}\nvec3 clip(inout vec4 color, inout vec3 pos, in float filterFlags, in vec2 minMaxZoom) {\npos.z += 2.0 * (1.0 - getFilterBit(filterFlags, 0));\n#ifdef inside\npos.z += 2.0 * (1.0 - getFilterBit(filterFlags, 1));\n#elif defined(outside)\npos.z += 2.0 * getFilterBit(filterFlags, 1);\n#elif defined(highlight)\n#if !defined(highlight_all)\npos.z += 2.0 * (1.0 - checkHighlight(filterFlags));\n#endif\n#endif\npos.z += 2.0 * (step(minMaxZoom.y, currentZoom) + (1.0 - step(minMaxZoom.x, currentZoom)));\nreturn pos;\n}","vv.glsl":"#if defined(VV_SIZE_MIN_MAX_VALUE) || defined(VV_SIZE_SCALE_STOPS) || defined(VV_SIZE_FIELD_STOPS) || defined(VV_SIZE_UNIT_VALUE)\n#define VV_SIZE\n#endif\n#if defined(VV_COLOR) || defined(VV_SIZE) || defined(VV_OPACITY) || defined(VV_ROTATION)\n#define VV\n#endif\n#ifdef VV_COLOR\nuniform highp float colorValues[8];\nuniform vec4 colors[8];\n#endif\n#ifdef VV_SIZE_MIN_MAX_VALUE\nuniform highp vec4 minMaxValueAndSize;\n#endif\n#ifdef VV_SIZE_SCALE_STOPS\nuniform highp float values[8];\nuniform float sizes[8];\n#endif\n#ifdef VV_SIZE_FIELD_STOPS\nuniform highp float values[8];\nuniform float sizes[8];\n#endif\n#ifdef VV_SIZE_UNIT_VALUE\nuniform highp float unitMeterRatio;\n#endif\n#ifdef VV_OPACITY\nuniform highp float opacityValues[8];\nuniform float opacities[8];\n#endif\n#ifdef VV_ROTATION\nuniform lowp float rotationType;\n#endif\nbool isNan(float val) {\nreturn (val == NAN_MAGIC_NUMBER);\n}\n#ifdef VV_SIZE_MIN_MAX_VALUE\nfloat getVVMinMaxSize(float sizeValue, float fallback) {\nif (isNan(sizeValue)) {\nreturn fallback;\n}\nfloat interpolationRatio = (sizeValue - minMaxValueAndSize.x) / (minMaxValueAndSize.y - minMaxValueAndSize.x);\ninterpolationRatio = clamp(interpolationRatio, 0.0, 1.0);\nreturn minMaxValueAndSize.z + interpolationRatio * (minMaxValueAndSize.w - minMaxValueAndSize.z);\n}\n#endif\n#ifdef VV_SIZE_SCALE_STOPS\nfloat getVVScaleStopsSize(float currentScale) {\nfloat outSize;\nif (currentScale <= values[0]) {\noutSize = sizes[0];\n} else {\nif (currentScale >= values[7]) {\noutSize = sizes[7];\n} else {\nint index;\nindex = -1;\nfor (int i = 0; i < 8; i++) {\nif (values[i] > currentScale) {\nindex = i;\nbreak;\n}\n}\nint prevIndex = index - 1;\nfloat a = currentScale - values[prevIndex];\nfloat b = values[index] - values[prevIndex];\noutSize = mix(sizes[prevIndex], sizes[index], a / b);\n}\n}\nreturn outSize;\n}\n#endif\n#ifdef VV_SIZE_FIELD_STOPS\nconst int VV_SIZE_N = 8;\nfloat getVVStopsSize(float sizeValue, float fallback) {\nif (isNan(sizeValue)) {\nreturn fallback;\n}\nif (sizeValue <= values[0]) {\nreturn sizes[0];\n}\nfor (int i = 1; i < VV_SIZE_N; ++i) {\nif (values[i] >= sizeValue) {\nfloat f = (sizeValue - values[i-1]) / (values[i] - values[i-1]);\nreturn mix(sizes[i-1], sizes[i], f);\n}\n}\nreturn sizes[VV_SIZE_N - 1];\n}\n#endif\n#ifdef VV_SIZE_UNIT_VALUE\nfloat getVVUnitValue(float sizeValue, float fallback) {\nif (isNan(sizeValue)) {\nreturn fallback;\n}\nreturn sizeValue * (metersPerSRUnit / unitMeterRatio);\n}\n#endif\n#ifdef VV_OPACITY\nconst int VV_OPACITY_N = 8;\nfloat getVVOpacity(float opacityValue) {\nif (isNan(opacityValue)) {\nreturn 1.0;\n}\nif (opacityValue <= opacityValues[0]) {\nreturn opacities[0];\n}\nfor (int i = 1; i < VV_OPACITY_N; ++i) {\nif (opacityValues[i] >= opacityValue) {\nfloat f = (opacityValue - opacityValues[i-1]) / (opacityValues[i] - opacityValues[i-1]);\nreturn mix(opacities[i-1], opacities[i], f);\n}\n}\nreturn opacities[VV_OPACITY_N - 1];\n}\n#endif\n#ifdef VV_ROTATION\nmat4 getVVRotation(float rotationValue) {\nif (isNan(rotationValue)) {\nreturn mat4(1, 0, 0, 0,\n0, 1, 0, 0,\n0, 0, 1, 0,\n0, 0, 0, 1);\n}\nfloat rotation = rotationValue;\nif (rotationType == 1.0) {\nrotation = 90.0 - rotation;\n}\nfloat angle = C_DEG_TO_RAD * rotation;\nfloat sinA = sin(angle);\nfloat cosA = cos(angle);\nreturn mat4(cosA, sinA, 0, 0,\n-sinA, cosA, 0, 0,\n0, 0, 1, 0,\n0, 0, 0, 1);\n}\nmat3 getVVRotationMat3(float rotationValue) {\nif (isNan(rotationValue)) {\nreturn mat3(1, 0, 0,\n0, 1, 0,\n0, 0, 1);\n}\nfloat rotation = rotationValue;\nif (rotationType == 1.0) {\nrotation = 90.0 - rotation;\n}\nfloat angle = C_DEG_TO_RAD * -rotation;\nfloat sinA = sin(angle);\nfloat cosA = cos(angle);\nreturn mat3(cosA, -sinA, 0,\nsinA, cosA, 0,\n0, 0, 1);\n}\n#endif\n#ifdef VV_COLOR\nconst int VV_COLOR_N = 8;\nvec4 getVVColor(float colorValue, vec4 fallback, float isColorLocked) {\nif (isNan(colorValue) || isColorLocked == 1.0) {\nreturn fallback;\n}\nif (colorValue <= colorValues[0]) {\nreturn colors[0];\n}\nfor (int i = 1; i < VV_COLOR_N; ++i) {\nif (colorValues[i] >= colorValue) {\nfloat f = (colorValue - colorValues[i-1]) / (colorValues[i] - colorValues[i-1]);\nreturn mix(colors[i-1], colors[i], f);\n}\n}\nreturn colors[VV_COLOR_N - 1];\n}\n#endif\nfloat getVVSize(in float size, in float vvSize, in float currentScale) {\n#ifdef VV_SIZE_MIN_MAX_VALUE\nreturn getVVMinMaxSize(vvSize, size);\n#elif defined(VV_SIZE_SCALE_STOPS)\nfloat outSize = getVVScaleStopsSize(currentScale);\nreturn isNan(outSize) ? size : outSize;\n#elif defined(VV_SIZE_FIELD_STOPS)\nfloat outSize = getVVStopsSize(vvSize, size);\nreturn isNan(outSize) ? size : outSize;\n#elif defined(VV_SIZE_UNIT_VALUE)\nreturn getVVUnitValue(vvSize, size);\n#else\nreturn size;\n#endif\n}"},overlay:{overlay:{"overlay.frag":"precision lowp float;\nuniform lowp sampler2D u_texture;\nuniform lowp float u_opacity;\nvarying mediump vec2 v_uv;\nvoid main() {\nvec4 color = texture2D(u_texture, v_uv);\ngl_FragColor = color * u_opacity;\n}","overlay.vert":"precision mediump float;\nattribute vec2 a_pos;\nattribute vec2 a_uv;\nuniform highp mat3 u_dvsMat3;\nuniform mediump vec2 u_perspective;\nvarying mediump vec2 v_uv;\nvoid main(void) {\nv_uv = a_uv;\nfloat w = 1.0 + dot(a_uv, u_perspective);\nvec3 pos = u_dvsMat3 * vec3(a_pos, 1.0);\ngl_Position = vec4(w * pos.xy, 0.0, w);\n}"}},"post-processing":{blit:{"blit.frag":"precision mediump float;\nuniform sampler2D u_texture;\nvarying vec2 v_uv;\nvoid main() {\ngl_FragColor = texture2D(u_texture, v_uv);\n}"},bloom:{composite:{"composite.frag":"precision mediump float;\nvarying vec2 v_uv;\nuniform sampler2D u_blurTexture1;\nuniform sampler2D u_blurTexture2;\nuniform sampler2D u_blurTexture3;\nuniform sampler2D u_blurTexture4;\nuniform sampler2D u_blurTexture5;\nuniform float u_bloomStrength;\nuniform float u_bloomRadius;\nuniform float u_bloomFactors[NUMMIPS];\nuniform vec3 u_bloomTintColors[NUMMIPS];\nfloat lerpBloomFactor(const in float factor) {\nfloat mirrorFactor = 1.2 - factor;\nreturn mix(factor, mirrorFactor, u_bloomRadius);\n}\nvoid main() {\nvec4 color = u_bloomStrength * (\nlerpBloomFactor(u_bloomFactors[0]) * vec4(u_bloomTintColors[0], 1.0) * texture2D(u_blurTexture1, v_uv) +\nlerpBloomFactor(u_bloomFactors[1]) * vec4(u_bloomTintColors[1], 1.0) * texture2D(u_blurTexture2, v_uv) +\nlerpBloomFactor(u_bloomFactors[2]) * vec4(u_bloomTintColors[2], 1.0) * texture2D(u_blurTexture3, v_uv) +\nlerpBloomFactor(u_bloomFactors[3]) * vec4(u_bloomTintColors[3], 1.0) * texture2D(u_blurTexture4, v_uv) +\nlerpBloomFactor(u_bloomFactors[4]) * vec4(u_bloomTintColors[4], 1.0) * texture2D(u_blurTexture5, v_uv)\n);\ngl_FragColor = clamp(color, 0.0, 1.0);\n}"},gaussianBlur:{"gaussianBlur.frag":"precision mediump float;\nuniform sampler2D u_colorTexture;\nuniform vec2 u_texSize;\nuniform vec2 u_direction;\nvarying vec2 v_uv;\n#define KERNEL_RADIUS RADIUS\n#define SIGMA RADIUS\nfloat gaussianPdf(in float x, in float sigma) {\nreturn 0.39894 * exp(-0.5 * x * x / ( sigma * sigma)) / sigma;\n}\nvoid main() {\nvec2 invSize = 1.0 / u_texSize;\nfloat fSigma = float(SIGMA);\nfloat weightSum = gaussianPdf(0.0, fSigma);\nvec4 pixelColorSum = texture2D(u_colorTexture, v_uv) * weightSum;\nfor (int i = 1; i < KERNEL_RADIUS; i ++) {\nfloat x = float(i);\nfloat w = gaussianPdf(x, fSigma);\nvec2 uvOffset = u_direction * invSize * x;\nvec4 sample1 = texture2D(u_colorTexture, v_uv + uvOffset);\nvec4 sample2 = texture2D(u_colorTexture, v_uv - uvOffset);\npixelColorSum += (sample1 + sample2) * w;\nweightSum += 2.0 * w;\n}\ngl_FragColor = pixelColorSum /weightSum;\n}"},luminosityHighPass:{"luminosityHighPass.frag":"precision mediump float;\nuniform sampler2D u_texture;\nuniform vec3 u_defaultColor;\nuniform float u_defaultOpacity;\nuniform float u_luminosityThreshold;\nuniform float u_smoothWidth;\nvarying vec2 v_uv;\nvoid main() {\nvec4 texel = texture2D(u_texture, v_uv);\nvec3 luma = vec3(0.299, 0.587, 0.114);\nfloat v = dot(texel.xyz, luma);\nvec4 outputColor = vec4(u_defaultColor.rgb, u_defaultOpacity);\nfloat alpha = smoothstep(u_luminosityThreshold, u_luminosityThreshold + u_smoothWidth, v);\ngl_FragColor = mix(outputColor, texel, alpha);\n}"}},blur:{gaussianBlur:{"gaussianBlur.frag":"precision mediump float;\nuniform sampler2D u_colorTexture;\nuniform vec2 u_texSize;\nuniform vec2 u_direction;\nuniform float u_sigma;\nvarying vec2 v_uv;\n#define KERNEL_RADIUS RADIUS\nfloat gaussianPdf(in float x, in float sigma) {\nreturn 0.39894 * exp(-0.5 * x * x / ( sigma * sigma)) / sigma;\n}\nvoid main() {\nvec2 invSize = 1.0 / u_texSize;\nfloat fSigma = u_sigma;\nfloat weightSum = gaussianPdf(0.0, fSigma);\nvec4 pixelColorSum = texture2D(u_colorTexture, v_uv) * weightSum;\nfor (int i = 1; i < KERNEL_RADIUS; i ++) {\nfloat x = float(i);\nfloat w = gaussianPdf(x, fSigma);\nvec2 uvOffset = u_direction * invSize * x;\nvec4 sample1 = texture2D(u_colorTexture, v_uv + uvOffset);\nvec4 sample2 = texture2D(u_colorTexture, v_uv - uvOffset);\npixelColorSum += (sample1 + sample2) * w;\nweightSum += 2.0 * w;\n}\ngl_FragColor = pixelColorSum /weightSum;\n}"},"radial-blur":{"radial-blur.frag":"precision mediump float;\nuniform sampler2D u_colorTexture;\nvarying vec2 v_uv;\nconst float sampleDist = 1.0;\nconst float sampleStrength = 2.2;\nvoid main(void) {\nfloat samples[10];\nsamples[0] = -0.08;\nsamples[1] = -0.05;\nsamples[2] = -0.03;\nsamples[3] = -0.02;\nsamples[4] = -0.01;\nsamples[5] = 0.01;\nsamples[6] = 0.02;\nsamples[7] = 0.03;\nsamples[8] = 0.05;\nsamples[9] = 0.08;\nvec2 dir = 0.5 - v_uv;\nfloat dist = sqrt(dir.x * dir.x + dir.y * dir.y);\ndir = dir / dist;\nvec4 color = texture2D(u_colorTexture,v_uv);\nvec4 sum = color;\nfor (int i = 0; i < 10; i++) {\nsum += texture2D(u_colorTexture, v_uv + dir * samples[i] * sampleDist);\n}\nsum *= 1.0 / 11.0;\nfloat t = dist * sampleStrength;\nt = clamp(t, 0.0, 1.0);\ngl_FragColor = mix(color, sum, t);\n}"}},dra:{"dra.frag":"precision mediump float;\nuniform sampler2D u_minColor;\nuniform sampler2D u_maxColor;\nuniform sampler2D u_texture;\nvarying vec2 v_uv;\nvoid main() {\nvec4 minColor = texture2D(u_minColor, vec2(0.5));\nvec4 maxColor = texture2D(u_maxColor, vec2(0.5));\nvec4 color = texture2D(u_texture, v_uv);\nvec3 minColorUnpremultiply = minColor.rgb / minColor.a;\nvec3 maxColorUnpremultiply = maxColor.rgb / maxColor.a;\nvec3 colorUnpremultiply = color.rgb / color.a;\nvec3 range = maxColorUnpremultiply - minColorUnpremultiply;\ngl_FragColor = vec4(color.a * (colorUnpremultiply - minColorUnpremultiply) / range, color.a);\n}","min-max":{"min-max.frag":"#extension GL_EXT_draw_buffers : require\nprecision mediump float;\n#define CELL_SIZE 2\nuniform sampler2D u_minTexture;\nuniform sampler2D u_maxTexture;\nuniform vec2 u_srcResolution;\nuniform vec2 u_dstResolution;\nvarying vec2 v_uv;\nvoid main() {\nvec2 srcPixel = floor(gl_FragCoord.xy) * float(CELL_SIZE);\nvec2 onePixel = vec2(1.0) / u_srcResolution;\nvec2 uv = (srcPixel + 0.5) / u_srcResolution;\nvec4 minColor = vec4(1.0);\nvec4 maxColor = vec4(0.0);\nfor (int y = 0; y < CELL_SIZE; ++y) {\nfor (int x = 0; x < CELL_SIZE; ++x) {\nvec2 offset = uv + vec2(x, y) * onePixel;\nminColor = min(minColor, texture2D(u_minTexture, offset));\nmaxColor = max(maxColor, texture2D(u_maxTexture, offset));\n}\n}\ngl_FragData[0] = minColor;\ngl_FragData[1] = maxColor;\n}"}},"drop-shadow":{composite:{"composite.frag":"precision mediump float;\nuniform sampler2D u_layerFBOTexture;\nuniform sampler2D u_blurTexture;\nuniform vec4 u_shadowColor;\nuniform vec2 u_shadowOffset;\nuniform highp mat3 u_displayViewMat3;\nvarying vec2 v_uv;\nvoid main() {\nvec3 offset = u_displayViewMat3 * vec3(u_shadowOffset, 0.0);\nvec4 layerColor = texture2D(u_layerFBOTexture, v_uv);\nvec4 blurColor = texture2D(u_blurTexture, v_uv - offset.xy / 2.0);\ngl_FragColor = ((1.0 - layerColor.a) * blurColor.a * u_shadowColor + layerColor);\n}"}},"edge-detect":{"frei-chen":{"frei-chen.frag":"precision mediump float;\nuniform sampler2D u_colorTexture;\nuniform vec2 u_texSize;\nvarying vec2 v_uv;\nvec2 texel = vec2(1.0 / u_texSize.x, 1.0 / u_texSize.y);\nmat3 G[9];\nconst mat3 g0 = mat3( 0.3535533845424652, 0, -0.3535533845424652, 0.5, 0, -0.5, 0.3535533845424652, 0, -0.3535533845424652 );\nconst mat3 g1 = mat3( 0.3535533845424652, 0.5, 0.3535533845424652, 0, 0, 0, -0.3535533845424652, -0.5, -0.3535533845424652 );\nconst mat3 g2 = mat3( 0, 0.3535533845424652, -0.5, -0.3535533845424652, 0, 0.3535533845424652, 0.5, -0.3535533845424652, 0 );\nconst mat3 g3 = mat3( 0.5, -0.3535533845424652, 0, -0.3535533845424652, 0, 0.3535533845424652, 0, 0.3535533845424652, -0.5 );\nconst mat3 g4 = mat3( 0, -0.5, 0, 0.5, 0, 0.5, 0, -0.5, 0 );\nconst mat3 g5 = mat3( -0.5, 0, 0.5, 0, 0, 0, 0.5, 0, -0.5 );\nconst mat3 g6 = mat3( 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.6666666865348816, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204 );\nconst mat3 g7 = mat3( -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, 0.6666666865348816, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408 );\nconst mat3 g8 = mat3( 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408 );\nvoid main() {\nG[0] = g0,\nG[1] = g1,\nG[2] = g2,\nG[3] = g3,\nG[4] = g4,\nG[5] = g5,\nG[6] = g6,\nG[7] = g7,\nG[8] = g8;\nmat3 I;\nfloat cnv[9];\nvec3 sample;\nfor (float i = 0.0; i < 3.0; i++) {\nfor (float j = 0.0; j < 3.0; j++) {\nsample = texture2D(u_colorTexture, v_uv + texel * vec2(i - 1.0,j - 1.0)).rgb;\nI[int(i)][int(j)] = length(sample);\n}\n}\nfor (int i = 0; i < 9; i++) {\nfloat dp3 = dot(G[i][0], I[0]) + dot(G[i][1], I[1]) + dot(G[i][2], I[2]);\ncnv[i] = dp3 * dp3;\n}\nfloat M = (cnv[0] + cnv[1]) + (cnv[2] + cnv[3]);\nfloat S = (cnv[4] + cnv[5]) + (cnv[6] + cnv[7]) + (cnv[8] + M);\ngl_FragColor = vec4(vec3(sqrt(M / S)), texture2D(u_colorTexture, v_uv).a);\n}"},sobel:{"sobel.frag":"precision mediump float;\nuniform sampler2D u_colorTexture;\nvarying vec2 v_uv;\nuniform vec2 u_texSize;\nvec2 texel = vec2(1.0 / u_texSize.x, 1.0 / u_texSize.y);\nmat3 G[2];\nconst mat3 g0 = mat3( 1.0, 2.0, 1.0, 0.0, 0.0, 0.0, -1.0, -2.0, -1.0 );\nconst mat3 g1 = mat3( 1.0, 0.0, -1.0, 2.0, 0.0, -2.0, 1.0, 0.0, -1.0 );\nvoid main() {\nmat3 I;\nfloat cnv[2];\nvec3 sample;\nG[0] = g0;\nG[1] = g1;\nfor (float i = 0.0; i < 3.0; i++) {\nfor (float j = 0.0; j < 3.0; j++) {\nsample = texture2D( u_colorTexture, v_uv + texel * vec2(i-1.0,j-1.0) ).rgb;\nI[int(i)][int(j)] = length(sample);\n}\n}\nfor (int i = 0; i < 2; i++) {\nfloat dp3 = dot(G[i][0], I[0]) + dot(G[i][1], I[1]) + dot(G[i][2], I[2]);\ncnv[i] = dp3 * dp3;\n}\ngl_FragColor = vec4(vec3(0.5 * sqrt(cnv[0] * cnv[0] + cnv[1] * cnv[1])), texture2D(u_colorTexture, v_uv).a);\n}"}},"edge-enhance":{"edge-enhance.frag":"precision mediump float;\nuniform sampler2D u_colorTexture;\nvarying vec2 v_uv;\nuniform vec2 u_texSize;\nvec2 texel = vec2(1.0 / u_texSize.x, 1.0 / u_texSize.y);\nmat3 G[2];\nconst mat3 g0 = mat3( 1.0, 0.0, -1.0, 1.0, 0.0, -1.0, 1.0, 0.0, -1.0 );\nconst mat3 g1 = mat3( 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, -1.0, -1.0, -1.0 );\nvoid main() {\nmat3 I;\nfloat cnv[2];\nvec3 sample;\nG[0] = g0;\nG[1] = g1;\nfor (float i = 0.0; i < 3.0; i++) {\nfor (float j = 0.0; j < 3.0; j++) {\nsample = texture2D( u_colorTexture, v_uv + texel * vec2(i-1.0,j-1.0) ).rgb;\nI[int(i)][int(j)] = length(sample);\n}\n}\nfor (int i = 0; i < 2; i++) {\nfloat dp3 = dot(G[i][0], I[0]) + dot(G[i][1], I[1]) + dot(G[i][2], I[2]);\ncnv[i] = dp3 * dp3;\n}\nvec4 color = texture2D(u_colorTexture, v_uv);\ngl_FragColor = vec4(0.5 * sqrt(cnv[0] * cnv[0] + cnv[1] * cnv[1]) * color);\n}"},filterEffect:{"filterEffect.frag":"precision mediump float;\nuniform sampler2D u_colorTexture;\nuniform mat4 u_coefficients;\nvarying vec2 v_uv;\nvoid main() {\nvec4 color = texture2D(u_colorTexture, v_uv);\nvec4 rgbw = u_coefficients * vec4(color.a > 0.0 ? color.rgb / color.a : vec3(0.0), 1.0);\nfloat a = color.a;\ngl_FragColor = vec4(a * rgbw.rgb, a);\n}"},pp:{"pp.vert":"precision mediump float;\nattribute vec2 a_position;\nvarying vec2 v_uv;\nvoid main() {\ngl_Position = vec4(a_position, 0.0, 1.0);\nv_uv = (a_position + 1.0) / 2.0;\n}"}},raster:{bitmap:{"bitmap.frag":"precision mediump float;\nvarying highp vec2 v_texcoord;\nuniform sampler2D u_texture;\nuniform highp vec2 u_coordScale;\nuniform lowp float u_opacity;\n#include \nvoid main() {\n#ifdef BICUBIC\nvec4 color = sampleBicubicBSpline(u_texture, v_texcoord, u_coordScale);\n#else\nvec4 color = texture2D(u_texture, v_texcoord);\n#endif\ngl_FragColor = vec4(color.rgb * u_opacity, color.a * u_opacity);\n}","bitmap.vert":"precision mediump float;\nattribute vec2 a_pos;\nuniform highp mat3 u_dvsMat3;\nuniform highp vec2 u_coordScale;\nvarying highp vec2 v_texcoord;\nvoid main()\n{\nv_texcoord = a_pos;\ngl_Position = vec4(u_dvsMat3 * vec3(a_pos * u_coordScale, 1.0), 1.0);\n}"},common:{"common.glsl":"uniform sampler2D u_image;\nuniform int u_bandCount;\nuniform bool u_flipY;\nuniform float u_opacity;\nuniform int u_resampling;\nuniform vec2 u_srcImageSize;\n#ifdef APPLY_PROJECTION\n#include \n#endif\n#ifdef BICUBIC\n#include \n#endif\n#ifdef BILINEAR\n#include \n#endif\nvec2 getPixelLocation(vec2 coords) {\nvec2 targetLocation = u_flipY ? vec2(coords.s, 1.0 - coords.t) : coords;\n#ifdef APPLY_PROJECTION\ntargetLocation = projectPixelLocation(targetLocation);\n#endif\nreturn targetLocation;\n}\nbool isOutside(vec2 coords){\nif (coords.t>1.00001 ||coords.t<-0.00001 || coords.s>1.00001 ||coords.s<-0.00001) {\nreturn true;\n} else {\nreturn false;\n}\n}\nvec4 getPixel(vec2 pixelLocation) {\n#ifdef BICUBIC\nvec4 color = sampleBicubicBSpline(u_image, pixelLocation, u_srcImageSize);\n#elif defined(BILINEAR)\nvec4 color = sampleBilinear(u_image, pixelLocation, u_srcImageSize);\n#else\nvec4 color = texture2D(u_image, pixelLocation);\n#endif\nreturn color;\n}","common.vert":"precision mediump float;\nattribute vec2 a_pos;\nuniform highp mat3 u_dvsMat3;\nuniform highp vec2 u_coordScale;\nuniform highp float u_scale;\nuniform highp vec2 u_offset;\nvarying highp vec2 v_texcoord;\nvoid main()\n{\nv_texcoord = a_pos * u_scale + u_offset;\ngl_Position = vec4(u_dvsMat3 * vec3(a_pos * u_coordScale, 1.0), 1.0);\n}","contrastBrightness.glsl":"uniform float u_contrastOffset;\nuniform float u_brightnessOffset;\nvec4 adjustContrastBrightness(vec4 currentPixel, bool isFloat) {\nvec4 pixelValue = isFloat ? currentPixel * 255.0 : currentPixel;\nfloat maxI = 255.0;\nfloat mid = 128.0;\nfloat c = u_contrastOffset;\nfloat b = u_brightnessOffset;\nvec4 v;\nif (c > 0.0 && c < 100.0) {\nv = (200.0 * pixelValue - 100.0 * maxI + 2.0 * maxI * b) / (2.0 * (100.0 - c)) + mid;\n} else if (c <= 0.0 && c > -100.0) {\nv = (200.0 * pixelValue - 100.0 * maxI + 2.0 * maxI * b) * (100.0 + c) / 20000.0 + mid;\n} else if (c == 100.0) {\nv = (200.0 * pixelValue - 100.0 * maxI + (maxI + 1.0) * (100.0 - c) + 2.0 * maxI * b);\nv = (sign(v) + 1.0) / 2.0;\n} else if (c == -100.0) {\nv = vec4(mid, mid, mid, currentPixel.a);\n}\nvec3 rgb = clamp(v.rgb / 255.0, 0.0, 1.0);\nreturn vec4(rgb, currentPixel.a);\n}","getSurfaceValues.glsl":"#include \nvoid getSurfaceValues(sampler2D imageTexture, vec2 texCoord, vec2 srcImageSize, inout float values[10]) {\nvec2 onePixel = 1.0 / srcImageSize;\nvec4 va = texture2D(imageTexture, mirror(texCoord + onePixel * vec2(-1.0, -1.0)));\nvec4 vb = texture2D(imageTexture, mirror(texCoord + onePixel * vec2(0.0, -1.0)));\nvec4 vc = texture2D(imageTexture, mirror(texCoord + onePixel * vec2(1.0, -1.0)));\nvec4 vd = texture2D(imageTexture, mirror(texCoord + onePixel * vec2(-1.0, 0.0)));\nvec4 ve = texture2D(imageTexture, mirror(texCoord));\nvec4 vf = texture2D(imageTexture, mirror(texCoord + onePixel * vec2(1.0, 0.0)));\nvec4 vg = texture2D(imageTexture, mirror(texCoord + onePixel * vec2(-1.0, 1.0)));\nvec4 vh = texture2D(imageTexture, mirror(texCoord + onePixel * vec2(0.0, 1.0)));\nvec4 vi = texture2D(imageTexture, mirror(texCoord + onePixel * vec2(1.0, 1.0)));\nfloat alpha = va.a * vb.a * vc.a * vd.a * ve.a * vf.a * vg.a * vh.a * vi.a;\nvalues[0] = va.r;\nvalues[1] = vb.r;\nvalues[2] = vc.r;\nvalues[3] = vd.r;\nvalues[4] = ve.r;\nvalues[5] = vf.r;\nvalues[6] = vg.r;\nvalues[7] = vh.r;\nvalues[8] = vi.r;\nvalues[9] = alpha;\n}","inverse.glsl":"float invertValue(float value) {\nfloat s = sign(value);\nreturn (s * s) / (value + abs(s) - 1.0);\n}","mirror.glsl":"vec2 mirror(vec2 pos) {\nvec2 pos1 = abs(pos);\nreturn step(pos1, vec2(1.0, 1.0)) * pos1 + step(1.0, pos1) * (2.0 - pos1);\n}","projection.glsl":"uniform sampler2D u_transformGrid;\nuniform vec2 u_transformSpacing;\nuniform vec2 u_transformGridSize;\nuniform vec2 u_targetImageSize;\nvec2 projectPixelLocation(vec2 coords) {\n#ifdef LOOKUP_PROJECTION\nvec4 pv = texture2D(u_transformGrid, coords);\nreturn vec2(pv.r, pv.g);\n#endif\nvec2 index_image = floor(coords * u_targetImageSize);\nvec2 oneTransformPixel = vec2(0.25 / u_transformGridSize.s, 1.0 / u_transformGridSize.t);\nvec2 index_transform = floor(index_image / u_transformSpacing) / u_transformGridSize;\nvec2 pos = fract((index_image + vec2(0.5, 0.5)) / u_transformSpacing);\nvec2 srcLocation;\nvec2 transform_location = index_transform + oneTransformPixel * 0.5;\nif (pos.s <= pos.t) {\nvec4 ll_abc = texture2D(u_transformGrid, vec2(transform_location.s, transform_location.t));\nvec4 ll_def = texture2D(u_transformGrid, vec2(transform_location.s + oneTransformPixel.s, transform_location.t));\nsrcLocation.s = dot(ll_abc.rgb, vec3(pos, 1.0));\nsrcLocation.t = dot(ll_def.rgb, vec3(pos, 1.0));\n} else {\nvec4 ur_abc = texture2D(u_transformGrid, vec2(transform_location.s + 2.0 * oneTransformPixel.s, transform_location.t));\nvec4 ur_def = texture2D(u_transformGrid, vec2(transform_location.s + 3.0 * oneTransformPixel.s, transform_location.t));\nsrcLocation.s = dot(ur_abc.rgb, vec3(pos, 1.0));\nsrcLocation.t = dot(ur_def.rgb, vec3(pos, 1.0));\n}\nreturn srcLocation;\n}"},flow:{"getFadeOpacity.glsl":"uniform float u_decayRate;\nuniform float u_fadeToZero;\nfloat getFadeOpacity(float x) {\nfloat cutOff = mix(0.0, exp(-u_decayRate), u_fadeToZero);\nreturn (exp(-u_decayRate * x) - cutOff) / (1.0 - cutOff);\n}","getFragmentColor.glsl":"vec4 getFragmentColor(vec4 color, float dist, float size, float featheringSize) {\nfloat featheringStart = clamp(0.5 - featheringSize / size, 0.0, 0.5);\nif (dist > featheringStart) {\ncolor *= 1.0 - (dist - featheringStart) / (0.5 - featheringStart);\n}\nreturn color;\n}",imagery:{"imagery.frag":"precision highp float;\nvarying vec2 v_texcoord;\nuniform sampler2D u_texture;\nuniform float u_Min;\nuniform float u_Max;\nuniform float u_featheringSize;\n#include \nfloat getIntensity(float v) {\nreturn u_Min + v * (u_Max - u_Min);\n}\nvoid main(void) {\nvec4 sampled = texture2D(u_texture, v_texcoord);\nfloat intensity = getIntensity(sampled.r);\ngl_FragColor = getColor(intensity);\ngl_FragColor.a *= getOpacity(sampled.r);\ngl_FragColor.a *= sampled.a;\ngl_FragColor.rgb *= gl_FragColor.a;\n}","imagery.vert":"attribute vec2 a_position;\nattribute vec2 a_texcoord;\nuniform mat3 u_dvsMat3;\nvarying vec2 v_texcoord;\nvoid main(void) {\nvec2 xy = (u_dvsMat3 * vec3(a_position, 1.0)).xy;\ngl_Position = vec4(xy, 0.0, 1.0);\nv_texcoord = a_texcoord;\n}"},particles:{"particles.frag":"precision highp float;\nvarying vec4 v_color;\nvarying vec2 v_texcoord;\nvarying float v_size;\nuniform float u_featheringSize;\n#include \nvoid main(void) {\ngl_FragColor = getFragmentColor(v_color, length(v_texcoord - 0.5), v_size, u_featheringSize);\n}","particles.vert":"attribute vec4 a_xyts0;\nattribute vec4 a_xyts1;\nattribute vec4 a_typeIdDurationSeed;\nattribute vec4 a_extrudeInfo;\nuniform mat3 u_dvsMat3;\nuniform mat3 u_displayViewMat3;\nuniform float u_time;\nuniform float u_trailLength;\nuniform float u_flowSpeed;\nvarying vec4 v_color;\nvarying vec2 v_texcoord;\nvarying float v_size;\nuniform float u_featheringSize;\nuniform float u_introFade;\n#include \n#include \nvoid main(void) {\nvec2 position0 = a_xyts0.xy;\nfloat t0 = a_xyts0.z;\nfloat speed0 = a_xyts0.w;\nvec2 position1 = a_xyts1.xy;\nfloat t1 = a_xyts1.z;\nfloat speed1 = a_xyts1.w;\nfloat type = a_typeIdDurationSeed.x;\nfloat id = a_typeIdDurationSeed.y;\nfloat duration = a_typeIdDurationSeed.z;\nfloat seed = a_typeIdDurationSeed.w;\nvec2 e0 = a_extrudeInfo.xy;\nvec2 e1 = a_extrudeInfo.zw;\nfloat animationPeriod = duration + u_trailLength;\nfloat scaledTime = u_time * u_flowSpeed;\nfloat randomizedTime = scaledTime + seed * animationPeriod;\nfloat t = mod(randomizedTime, animationPeriod);\nfloat fUnclamped = (t - t0) / (t1 - t0);\nfloat f = clamp(fUnclamped, 0.0, 1.0);\nfloat clampedTime = mix(t0, t1, f);\nfloat speed = mix(speed0, speed1, f);\nvec2 extrude;\nvec2 position;\nfloat fadeOpacity;\nfloat introOpacity;\nif (type == 2.0) {\nif (fUnclamped < 0.0 || (fUnclamped > 1.0 && t1 != duration)) {\ngl_Position = vec4(0.0, 0.0, -2.0, 1.0);\nreturn;\n}\nvec2 ortho = mix(e0, e1, f);\nvec2 parallel;\nparallel = normalize(position1 - position0) * 0.5;\nif (id == 1.0) {\nextrude = ortho;\nv_texcoord = vec2(0.5, 0.0);\n} else if (id == 2.0) {\nextrude = -ortho;\nv_texcoord = vec2(0.5, 1.0);\n} else if (id == 3.0) {\nextrude = ortho + parallel;\nv_texcoord = vec2(1.0, 0.0);\n} else if (id == 4.0) {\nextrude = -ortho + parallel;\nv_texcoord = vec2(1.0, 1.0);\n}\nfadeOpacity = getFadeOpacity((t - clampedTime) / u_trailLength);\nintroOpacity = 1.0 - exp(-clampedTime);\nv_size = getSize(speed);\nv_color = getColor(speed);\nv_color.a *= getOpacity(speed);\nposition = mix(position0, position1, f);\n} else {\nif (fUnclamped < 0.0) {\ngl_Position = vec4(0.0, 0.0, -2.0, 1.0);\nreturn;\n}\nif (id == 1.0) {\nextrude = e0;\nv_texcoord = vec2(0.5, 0.0);\nfadeOpacity = getFadeOpacity((t - t0) / u_trailLength);\nintroOpacity = 1.0 - exp(-t0);\nv_size = getSize(speed0);\nv_color = getColor(speed0);\nv_color.a *= getOpacity(speed0);\nposition = position0;\n} else if (id == 2.0) {\nextrude = -e0;\nv_texcoord = vec2(0.5, 1.0);\nfadeOpacity = getFadeOpacity((t - t0) / u_trailLength);\nintroOpacity = 1.0 - exp(-t0);\nv_size = getSize(speed0);\nv_color = getColor(speed0);\nv_color.a *= getOpacity(speed0);\nposition = position0;\n} else if (id == 3.0) {\nextrude = mix(e0, e1, f);\nv_texcoord = vec2(0.5, 0.0);\nfadeOpacity = getFadeOpacity((t - clampedTime) / u_trailLength);\nintroOpacity = 1.0 - exp(-clampedTime);\nv_size = getSize(speed);\nv_color = getColor(speed);\nv_color.a *= getOpacity(speed);\nposition = mix(position0, position1, f);\n} else if (id == 4.0) {\nextrude = -mix(e0, e1, f);\nv_texcoord = vec2(0.5, 1.0);\nfadeOpacity = getFadeOpacity((t - clampedTime) / u_trailLength);\nintroOpacity = 1.0 - exp(-clampedTime);\nv_size = getSize(speed);\nv_color = getColor(speed);\nv_color.a *= getOpacity(speed);\nposition = mix(position0, position1, f);\n}\n}\nvec2 xy = (u_dvsMat3 * vec3(position, 1.0) + u_displayViewMat3 * vec3(extrude * v_size, 0.0)).xy;\ngl_Position = vec4(xy, 0.0, 1.0);\nv_color.a *= fadeOpacity;\nv_color.a *= mix(1.0, introOpacity, u_introFade);\nv_color.rgb *= v_color.a;\n}"},streamlines:{"streamlines.frag":"precision highp float;\nvarying float v_side;\nvarying float v_time;\nvarying float v_totalTime;\nvarying float v_timeSeed;\nvarying vec4 v_color;\nvarying float v_size;\nuniform float u_time;\nuniform float u_trailLength;\nuniform float u_flowSpeed;\nuniform float u_featheringSize;\nuniform float u_introFade;\n#include \n#include \nvoid main(void) {\nfloat t = mod(v_timeSeed * (v_totalTime + u_trailLength) + u_time * u_flowSpeed, v_totalTime + u_trailLength) - v_time;\nvec4 color = v_color * step(0.0, t) * getFadeOpacity(t / u_trailLength);\ncolor *= mix(1.0, 1.0 - exp(-v_time), u_introFade);\ngl_FragColor = getFragmentColor(color, length((v_side + 1.0) / 2.0 - 0.5), v_size, u_featheringSize);\n}","streamlines.vert":"attribute vec3 a_positionAndSide;\nattribute vec3 a_timeInfo;\nattribute vec2 a_extrude;\nattribute float a_speed;\nuniform mat3 u_dvsMat3;\nuniform mat3 u_displayViewMat3;\nvarying float v_time;\nvarying float v_totalTime;\nvarying float v_timeSeed;\nvarying vec4 v_color;\nvarying float v_side;\nvarying float v_size;\nuniform float u_featheringSize;\n#include \nvoid main(void) {\nvec4 lineColor = getColor(a_speed);\nfloat lineOpacity = getOpacity(a_speed);\nfloat lineSize = getSize(a_speed);\nvec2 position = a_positionAndSide.xy;\nv_side = a_positionAndSide.z;\nvec2 xy = (u_dvsMat3 * vec3(position, 1.0) + u_displayViewMat3 * vec3(a_extrude * lineSize, 0.0)).xy;\ngl_Position = vec4(xy, 0.0, 1.0);\nv_time = a_timeInfo.x;\nv_totalTime = a_timeInfo.y;\nv_timeSeed = a_timeInfo.z;\nv_color = lineColor;\nv_color.a *= lineOpacity;\nv_color.rgb *= v_color.a;\nv_size = lineSize;\n}"},"vv.glsl":"#define MAX_STOPS 8\n#ifdef VV_COLOR\nuniform float u_color_stops[MAX_STOPS];\nuniform vec4 u_color_values[MAX_STOPS];\nuniform int u_color_count;\n#else\nuniform vec4 u_color;\n#endif\n#ifdef VV_OPACITY\nuniform float u_opacity_stops[MAX_STOPS];\nuniform float u_opacity_values[MAX_STOPS];\nuniform int u_opacity_count;\n#else\nuniform float u_opacity;\n#endif\n#ifdef VV_SIZE\nuniform float u_size_stops[MAX_STOPS];\nuniform float u_size_values[MAX_STOPS];\nuniform int u_size_count;\n#else\nuniform float u_size;\n#endif\nuniform float u_featheringOffset;\nvec4 getColor(float x) {\n#ifdef VV_COLOR\nvec4 color = u_color_values[0];\n{\nfor (int i = 1; i < MAX_STOPS; i++) {\nif (i >= u_color_count) {\nbreak;\n}\nfloat x1 = u_color_stops[i - 1];\nif (x < x1) {\nbreak;\n}\nfloat x2 = u_color_stops[i];\nvec4 y2 = u_color_values[i];\nif (x < x2) {\nvec4 y1 = u_color_values[i - 1];\ncolor = y1 + (y2 - y1) * (x - x1) / (x2 - x1);\n} else {\ncolor = y2;\n}\n}\n}\n#else\nvec4 color = u_color;\n#endif\nreturn color;\n}\nfloat getOpacity(float x) {\n#ifdef VV_OPACITY\nfloat opacity = u_opacity_values[0];\n{\nfor (int i = 1; i < MAX_STOPS; i++) {\nif (i >= u_opacity_count) {\nbreak;\n}\nfloat x1 = u_opacity_stops[i - 1];\nif (x < x1) {\nbreak;\n}\nfloat x2 = u_opacity_stops[i];\nfloat y2 = u_opacity_values[i];\nif (x < x2) {\nfloat y1 = u_opacity_values[i - 1];\nopacity = y1 + (y2 - y1) * (x - x1) / (x2 - x1);\n} else {\nopacity = y2;\n}\n}\n}\n#else\nfloat opacity = u_opacity;\n#endif\nreturn opacity;\n}\nfloat getSize(float x) {\n#ifdef VV_SIZE\nfloat size = u_size_values[0];\n{\nfor (int i = 1; i < MAX_STOPS; i++) {\nif (i >= u_size_count) {\nbreak;\n}\nfloat x1 = u_size_stops[i - 1];\nif (x < x1) {\nbreak;\n}\nfloat x2 = u_size_stops[i];\nfloat y2 = u_size_values[i];\nif (x < x2) {\nfloat y1 = u_size_values[i - 1];\nsize = y1 + (y2 - y1) * (x - x1) / (x2 - x1);\n} else {\nsize = y2;\n}\n}\n}\n#else\nfloat size = u_size;\n#endif\nreturn size + 2.0 * u_featheringSize * u_featheringOffset;\n}"},hillshade:{"hillshade.frag":"precision mediump float;\nvarying highp vec2 v_texcoord;\n#include \nuniform int u_hillshadeType;\nuniform float u_sinZcosAs[6];\nuniform float u_sinZsinAs[6];\nuniform float u_cosZs[6];\nuniform float u_weights[6];\nuniform vec2 u_factor;\nuniform float u_minValue;\nuniform float u_maxValue;\n#include \n#include \nvec3 rgb2hsv(vec3 c) {\nvec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\nvec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);\nvec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);\nfloat d = q.x - min(q.w, q.y);\nfloat e = 1.0e-10;\nreturn vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), min(d / (q.x + e), 1.0), q.x);\n}\nvec3 hsv2rgb(vec3 c) {\nvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\nvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\nreturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\nvec4 overlay(float val, float minValue, float maxValue, float hillshade) {\nval = clamp((val - minValue) / (maxValue - minValue), 0.0, 1.0);\nvec4 rgb = colorize(vec4(val, val, val, 1.0), 255.0);\nvec3 hsv = rgb2hsv(rgb.xyz);\nhsv.z = hillshade;\nreturn vec4(hsv2rgb(hsv), 1.0) * rgb.a;\n}\nvoid main() {\nvec2 pixelLocation = getPixelLocation(v_texcoord);\nif (isOutside(pixelLocation)) {\ngl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\nreturn;\n}\nvec4 currentPixel = getPixel(pixelLocation);\nif (currentPixel.a == 0.0) {\ngl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\nreturn;\n}\nfloat pv[10];\ngetSurfaceValues(u_image, pixelLocation, u_srcImageSize, pv);\nfloat alpha = pv[9];\nfloat dzx = (pv[2] + 2.0 * pv[5] + pv[8] - pv[0] - 2.0 * pv[3] - pv[6]) * u_factor.s;\nfloat dzy = (pv[6] + 2.0 * pv[7] + pv[8] - pv[0] - 2.0 * pv[1] - pv[2]) * u_factor.t;\nfloat dzd = sqrt(1.0 + dzx * dzx + dzy * dzy);\nfloat hillshade = 0.0;\nif (u_hillshadeType == 0){\nfloat cosDelta = u_sinZsinAs[0] * dzy - u_sinZcosAs[0] * dzx;\nfloat z = (u_cosZs[0] + cosDelta) / dzd;\nif (z < 0.0) z = 0.0;\nhillshade = z;\n} else {\nfor (int k = 0; k < 6; k++) {\nfloat cosDelta = u_sinZsinAs[k] * dzy - u_sinZcosAs[k] * dzx;\nfloat z = (u_cosZs[k] + cosDelta) / dzd;\nif (z < 0.0) z = 0.0;\nhillshade = hillshade + z * u_weights[k];\nif (k == 5) break;\n}\n}\n#ifdef APPLY_COLORMAP\ngl_FragColor = overlay(pv[4], u_minValue, u_maxValue, hillshade) * alpha * u_opacity;\n#else\ngl_FragColor = vec4(hillshade, hillshade, hillshade, 1.0) * alpha * u_opacity;\n#endif\n}"},lut:{"colorize.glsl":"uniform sampler2D u_colormap;\nuniform float u_colormapOffset;\nuniform float u_colormapMaxIndex;\nvec4 colorize(vec4 currentPixel, float scaleFactor) {\nfloat clrIndex = clamp(currentPixel.r * scaleFactor - u_colormapOffset, 0.0, u_colormapMaxIndex);\nvec2 clrPosition = vec2((clrIndex + 0.5) / (u_colormapMaxIndex + 1.0), 0.0);\nvec4 color = texture2D(u_colormap, clrPosition);\nvec4 result = vec4(color.rgb, color.a * currentPixel.a);\nreturn result;\n}","lut.frag":"precision mediump float;\nvarying highp vec2 v_texcoord;\n#include \n#include \nvoid main() {\nvec2 pixelLocation = getPixelLocation(v_texcoord);\nif (isOutside(pixelLocation)) {\ngl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\nreturn;\n}\nvec4 currentPixel = getPixel(pixelLocation);\nvec4 result = colorize(currentPixel, 1.0);\ngl_FragColor = vec4(result.xyz, 1.0) * result.a * u_opacity;\n}"},magdir:{"magdir.frag":"precision mediump float;\nvarying vec4 v_color;\nuniform lowp float u_opacity;\nvoid main() {\ngl_FragColor = v_color * u_opacity;\n}","magdir.vert":"precision mediump float;\nattribute vec2 a_pos;\nattribute vec2 a_offset;\nattribute vec2 a_vv;\nuniform highp mat3 u_dvsMat3;\nuniform highp vec2 u_coordScale;\nuniform vec2 u_symbolSize;\nuniform vec2 u_symbolPercentRange;\nuniform vec2 u_dataRange;\nuniform float u_rotation;\nuniform vec4 u_colors[12];\nvarying vec4 v_color;\nvoid main()\n{\nfloat angle = a_offset.y + u_rotation;\n#ifndef ROTATION_GEOGRAPHIC\nangle = 3.14159265359 * 2.0 - angle - 3.14159265359 / 2.0;\n#endif\nvec2 offset = vec2(cos(angle), sin(angle)) * a_offset.x;\n#ifdef DATA_RANGE\nfloat valuePercentage = clamp((a_vv.y - u_dataRange.x) / (u_dataRange.y - u_dataRange.x), 0.0, 1.0);\nfloat sizeRatio = u_symbolPercentRange.x + valuePercentage * (u_symbolPercentRange.y - u_symbolPercentRange.x);\nfloat sizePercentage = clamp(sizeRatio, u_symbolPercentRange.x, u_symbolPercentRange.y);\n#else\nfloat sizePercentage = (u_symbolPercentRange.x + u_symbolPercentRange.y) / 2.0;\n#endif\nvec2 pos = a_pos + offset * sizePercentage * u_symbolSize;\nv_color = u_colors[int(a_vv.x)];\ngl_Position = vec4(u_dvsMat3 * vec3(pos * u_coordScale, 1.0), 1.0);\n}"},reproject:{"reproject.frag":"precision mediump float;\nvarying vec2 v_texcoord;\n#include \nvoid main() {\nvec2 pixelLocation = getPixelLocation(v_texcoord);\nif (isOutside(pixelLocation)) {\ngl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\nreturn;\n}\nvec4 currentPixel = getPixel(pixelLocation);\ngl_FragColor = vec4(currentPixel.rgb, 1.0) * currentPixel.a * u_opacity;\n}","reproject.vert":"precision mediump float;\nattribute vec2 a_position;\nvarying highp vec2 v_texcoord;\nvoid main()\n{\nv_texcoord = a_position;\ngl_Position = vec4(2.0 * (a_position - 0.5), 0.0, 1.0);\n}"},rfx:{aspect:{"aspect.frag":"precision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texcoord;\nuniform vec2 u_cellSize;\nuniform vec2 u_srcImageSize;\n#include \nconst float pi = 3.14159265359;\nvoid main() {\nfloat pv[10];\ngetSurfaceValues(u_image, v_texcoord, u_srcImageSize, pv);\nfloat alpha = pv[9];\nfloat dzx = (pv[2] + 2.0 * pv[5] + pv[8] - pv[0] - 2.0 * pv[3] - pv[6]) / (8.0 * u_cellSize[0]);\nfloat dzy = -(pv[6] + 2.0 * pv[7] + pv[8] - pv[0] - 2.0 * pv[1] - pv[2]) / (8.0 * u_cellSize[1]);\nalpha *= sign(abs(dzx) + abs(dzy));\nfloat aspect_rad = (dzx == 0.0) ? (step(0.0, dzy) * 0.5 * pi + step(dzy, 0.0) * 1.5 * pi) : mod((2.5 * pi + atan(dzy, -dzx)), 2.0 * pi);\nfloat aspect = aspect_rad * 180.0 / pi;\ngl_FragColor = vec4(aspect, aspect, aspect, 1.0) * alpha;\n}"},bandarithmetic:{"bandarithmetic.frag":"precision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texcoord;\nuniform mediump mat3 u_bandIndexMat3;\nuniform float u_adjustments[3];\n#include \nvoid main() {\nvec4 pv = texture2D(u_image, v_texcoord);\nvec3 pv2 = u_bandIndexMat3 * pv.rgb;\nfloat nir = pv2.r;\nfloat red = pv2.g;\nfloat index;\n#ifdef NDXI\nindex = (nir - red) * invertValue(nir + red);\n#elif defined(SR)\nindex = nir * invertValue(red);\n#elif defined(CI)\nindex = nir * invertValue(red) - 1.0;\n#elif defined(SAVI)\nindex = (nir - red) * invertValue(nir + red + u_adjustments[0]) * (1.0 + u_adjustments[0]);\n#elif defined(TSAVI)\nfloat s = u_adjustments[0];\nfloat a = u_adjustments[1];\nfloat x = u_adjustments[2];\nfloat y = -a * s + x * (1.0 + s * s);\nindex = (s * (nir - s * red - a)) * invertValue(a * nir + red + y);\n#elif defined(MSAVI)\nfloat nir2 = 2.0 * nir + 1.0;\nindex = 0.5 * (nir2 - sqrt(nir2 * nir2 - 8.0 * (nir - red)));\n#elif defined(GEMI)\nfloat eta = (2.0 * (nir * nir - red * red) + 1.5 * nir + 0.5 * red) * invertValue(nir + red + 0.5);\nindex = eta * (1.0 - 0.25 * eta) - (red - 0.125) * invertValue(1.0 - red);\n#elif defined(PVI)\nfloat a = u_adjustments[0];\nfloat b = u_adjustments[1];\nfloat y = sqrt(1.0 + a * a);\nindex = (nir - a * red - b) * invertValue(y);\n#elif defined(VARI)\nindex = (pv2.g - pv2.r) * invertValue(pv2.g + pv2.r - pv2.b);\n#elif defined(MTVI)\nfloat green = pv2.b;\nfloat v = sqrt(pow((2.0 * nir + 1.0), 2.0) - (6.0 * nir - 5.0 * sqrt(red)) - 0.5);\nindex = 1.5 * (1.2 * (nir - green) - 2.5 * (red - green)) * invertValue(v);\n#elif defined(RTVICORE)\nfloat green = pv2.b;\nindex = 100.0 * (nir - red) - 10.0 * (nir - green);\n#elif defined(EVI)\nfloat blue = pv2.b;\nfloat denom = nir + 6.0 * red - 7.5 * blue + 1.0;\nindex = (2.5 * (nir - red)) * invertValue(denom);\n#elif defined(WNDWI)\nfloat g = pv2.r;\nfloat n = pv2.g;\nfloat s = pv2.s;\nfloat a = u_adjustments[0];\nfloat denom = g + a * n + (1.0 - a) * s;\nindex = (g - a * n - (1 - a) * s) * invertValue(denom);\n#elif defined(BAI)\nindex = invertValue(pow((0.1 - red), 2.0) + pow((0.06 - nir), 2.0));\n#else\ngl_FragColor = pv;\nreturn;\n#endif\ngl_FragColor = vec4(index, index, index, pv.a);\n}"},compositeband:{"compositeband.frag":"precision mediump float;\nuniform sampler2D u_image;\nuniform sampler2D u_image1;\nuniform sampler2D u_image2;\n#ifdef ONE_CONSTANT\nuniform float u_image1Const;\n#ifdef TWO_CONSTANT\nuniform float u_image2Const;\n#endif\nuniform mat3 u_imageSwap;\n#endif\nvarying vec2 v_texcoord;\nvoid main() {\nvec4 pv0 = texture2D(u_image, v_texcoord);\nfloat a = pv0.r;\nfloat alpha = pv0.a;\n#ifdef TWO_CONSTANT\nfloat b = u_image1Const;\nfloat c = u_image2Const;\nvec3 abc = u_imageSwap * vec3(a, b, c);\na = abc.s;\nb = abc.t;\nc = abc.p;\n#elif defined(ONE_CONSTANT)\nvec4 pv1 = texture2D(u_image1, v_texcoord);\nfloat b = pv1.r;\nfloat c = u_image1Const;\nvec3 abc = u_imageSwap * vec3(a, b, c);\na = abc.s;\nb = abc.t;\nc = abc.p;\nalpha *= pv1.a;\n#else\nvec4 pv1 = texture2D(u_image1, v_texcoord);\nvec4 pv2 = texture2D(u_image2, v_texcoord);\nfloat b = pv1.r;\nfloat c = pv2.r;\nalpha = alpha * pv1.a * pv2.a;\n#endif\ngl_FragColor = vec4(a, b, c, alpha);\n}"},contrast:{"contrast.frag":"precision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texcoord;\n#include \nvoid main() {\nvec4 pv = texture2D(u_image, v_texcoord);\nvec4 result = adjustContrastBrightness(pv, false) ;\ngl_FragColor = vec4(result.rgb * 255.0, result.a);\n}"},convolution:{"convolution.frag":"precision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texcoord;\nuniform vec2 u_srcImageSize;\n#define KERNEL_SIZE_ROWS ROWS\n#define KERNEL_SIZE_COLS COLS\nuniform vec2 u_clampRange;\nuniform float u_kernel[25];\n#include \nvoid main() {\nvec3 rgb = vec3(0.0, 0.0, 0.0);\nvec2 resolution = 1.0 / u_srcImageSize;\nfloat rowOffset = -float(floor(float(KERNEL_SIZE_ROWS) / 2.0));\nfloat colOffset = -float(floor(float(KERNEL_SIZE_COLS) / 2.0));\nfloat alpha = 1.0;\nfor (int row = 0; row < KERNEL_SIZE_ROWS; row++) {\nfloat pos_row = rowOffset + float(row);\nfor (int col = 0; col < KERNEL_SIZE_COLS; col++) {\nvec2 pos = v_texcoord + vec2(colOffset + float(col), pos_row) * resolution;\nvec4 pv = texture2D(u_image, mirror(pos));\nrgb += pv.rgb * u_kernel[row * KERNEL_SIZE_COLS + col];\nalpha *= pv.a;\n}\n}\nrgb = clamp(rgb, u_clampRange.s, u_clampRange.t);\ngl_FragColor = vec4(rgb * alpha, alpha);\n}"},curvature:{"curvature.frag":"precision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texcoord;\nuniform float u_zlFactor;\nuniform vec2 u_srcImageSize;\n#include \nvoid main() {\nfloat pv[10];\ngetSurfaceValues(u_image, v_texcoord, u_srcImageSize, pv);\nfloat alpha = pv[9];\nfloat d = ((pv[3] + pv[5]) * 0.5 - pv[4]);\nfloat e = ((pv[1] + pv[7]) * 0.5 - pv[4]);\nfloat curvature = 0.0;\n#ifdef STANDARD\ncurvature = -u_zlFactor * (d + e);\ngl_FragColor = vec4(curvature, curvature, curvature, alpha);\n#else\nfloat f = (-pv[0] + pv[2] + pv[6] - pv[8]) / 4.0;\nfloat g = (-pv[3] + pv[5]) / 2.0;\nfloat h = (pv[1] - pv[7]) / 2.0;\nfloat g2 = g * g;\nfloat h2 = h * h;\n#ifdef PROFILE\ncurvature = (u_zlFactor * (d * g2 + e * h2 + f * g * h)) / (g2 + h2);\n#else\ncurvature = (-u_zlFactor * (d * h2 + e * g2 - f * g * h)) / (g2 + h2);\n#endif\n#endif\ngl_FragColor = vec4(curvature, curvature, curvature, alpha);\n}"},extractband:{"extractband.frag":"precision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texcoord;\nuniform mediump mat3 u_bandIndexMat3;\nvoid main() {\nvec4 pv = texture2D(u_image, v_texcoord);\nvec3 pv2 = u_bandIndexMat3 * pv.rgb;\ngl_FragColor = vec4(pv2, pv.a);\n}"},focalstatistics:{"focalstatistics.frag":"precision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texcoord;\nuniform vec2 u_srcImageSize;\n#define KERNEL_SIZE_ROWS ROWS\n#define KERNEL_SIZE_COLS COLS\nuniform vec2 u_clampRange;\n#include \n#include \nvoid main() {\nvec2 resolution = 1.0 / u_srcImageSize;\nfloat rowOffset = -float(floor(float(KERNEL_SIZE_ROWS) / 2.0));\nfloat colOffset = -float(floor(float(KERNEL_SIZE_COLS) / 2.0));\nfloat count = 0.0;\n#ifdef STDDEV\nvec3 sum = vec3(0.0, 0.0, 0.0);\nvec3 sum2 = vec3(0.0, 0.0, 0.0);\n#endif\nvec4 currentPixel = texture2D(u_image, v_texcoord);\nvec3 rgb = currentPixel.rgb;\nfor (int row = 0; row < KERNEL_SIZE_ROWS; row++) {\nfloat pos_row = rowOffset + float(row);\nfor (int col = 0; col < KERNEL_SIZE_COLS; col++) {\nvec2 pos = v_texcoord + vec2(colOffset + float(col), pos_row) * resolution;\nvec4 pv = texture2D(u_image, mirror(pos));\ncount += pv.a;\n#ifdef MIN\nrgb = min(rgb, pv.rgb);\n#elif defined(MAX)\nrgb = max(rgb, pv.rgb);\n#elif defined(MEAN)\nrgb += pv.rgb;\n#elif defined(STDDEV)\nsum += pv.rgb;\nsum2 += (pv.rgb * pv.rgb);\n#endif\n}\n}\n#ifdef MEAN\nrgb *= invertValue(count);\n#elif defined(STDDEV)\nrgb = sqrt((sum2 - sum * sum * invertValue(count)) * invertValue(count));\n#endif\nfloat alpha = step(0.9999, count);\nrgb = clamp(rgb, u_clampRange.s, u_clampRange.t);\n#ifdef FILL\nrgb = (1.0 - currentPixel.a) * rgb + currentPixel.a * currentPixel.rgb;\n#endif\ngl_FragColor = vec4(rgb * alpha, alpha);\n}"},grayscale:{"grayscale.frag":"precision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texcoord;\nuniform vec3 u_weights;\nvoid main() {\nvec4 pv = texture2D(u_image, v_texcoord);\nfloat value = dot(u_weights, pv.rgb);\ngl_FragColor = vec4(value, value, value, pv.a);\n}"},local:{"local.frag":"precision mediump float;\nuniform sampler2D u_image;\nuniform sampler2D u_image1;\n#ifdef ONE_CONSTANT\nuniform float u_image1Const;\n#ifdef TWO_CONSTANT\nuniform float u_image2Const;\n#endif\nuniform mat3 u_imageSwap;\n#endif\nvarying vec2 v_texcoord;\nuniform vec2 u_domainRange;\n#include \nvoid main() {\nvec4 pv0 = texture2D(u_image, v_texcoord);\nfloat a = pv0.r;\n#ifdef TWO_IMAGES\n#ifdef ONE_CONSTANT\nfloat b = u_image1Const;\nvec3 abc = u_imageSwap * vec3(a, b, 0);\na = abc.s;\nb = abc.t;\n#else\nvec4 pv1 = texture2D(u_image1, v_texcoord);\nfloat b = pv1.r;\n#endif\n#elif defined(CONDITIONAL)\n#ifdef TWO_CONSTANT\nfloat b = u_image1Const;\nfloat c = u_image2Const;\nvec3 abc = u_imageSwap * vec3(a, b, c);\na = abc.s;\nb = abc.t;\nc = abc.p;\n#elif defined(ONE_CONSTANT)\nvec4 pv1 = texture2D(u_image1, v_texcoord);\nfloat b = pv1.r;\nfloat c = u_image1Const;\nvec3 abc = u_imageSwap * vec3(a, b, c);\na = abc.s;\nb = abc.t;\nc = abc.p;\n#else\nvec4 pv1 = texture2D(u_image1, v_texcoord);\nvec4 pv2 = texture2D(u_image2, v_texcoord);\nfloat b = pv1.r;\nfloat c = pv2.r;\n#endif\n#endif\nfloat result = a;\nfloat alpha = pv0.a;\n#ifdef PLUS\nresult = a + b;\n#elif defined(MINUS)\nresult = a - b;\n#elif defined(TIMES)\nresult = a * b;\n#elif defined(DIVIDE)\nresult = a * invertValue(b);\nalpha *= float(abs(sign(b)));\n#elif defined(FLOATDIVIDE)\nresult = a * invertValue(b);\nalpha *= float(abs(sign(b)));\n#elif defined(FLOORDIVIDE)\nresult = floor(a * invertValue(b));\nalpha *= float(abs(sign(b)));\n#elif defined(SQUARE)\nresult = a * a;\n#elif defined(SQRT)\nresult = sqrt(a);\n#elif defined(POWER)\nresult = pow(a, b);\n#elif defined(LN)\nresult = a <= 0.0 ? 0.0: log(a);\nalpha *= float(a > 0.0);\n#elif defined(LOG_1_0)\nresult = a <= 0.0 ? 0.0: log2(a) * invertValue(log2(10.0));\nalpha *= float(a > 0.0);\n#elif defined(LOG_2)\nresult = a <= 0.0 ? 0.0: log2(a);\nalpha *= float(a > 0.0);\n#elif defined(EXP)\nresult = exp(a);\n#elif defined(EXP_1_0)\nresult = pow(10.0, a);\n#elif defined(EXP_2)\nresult = pow(2.0, a);\n#elif defined(ROUNDDOWN)\nresult = floor(a);\n#elif defined(ROUNDUP)\nresult = ceil(a);\n#elif defined(INT)\nresult = float(sign(a)) * floor(abs(a));\n#elif defined(MOD)\nresult = mod(a, b);\n#elif defined(NEGATE)\nresult = -a;\n#elif defined(ABS)\nresult = abs(a);\n#elif defined(ACOS)\nresult = abs(a) > 1.0 ? 0.0: acos(a);\nalpha *= step(abs(a), 1.00001);\n#elif defined(ACOSH)\nresult = acosh(a);\n#elif defined(ASIN)\nresult = abs(a) > 1.0 ? 0.0: asin(a);\nalpha *= step(abs(a), 1.00001);\n#elif defined(ASINH)\nresult = asinh(a);\n#elif defined(ATAN)\nresult = atan(a);\n#elif defined(ATANH)\nresult = abs(a) > 1.0 ? 0.0: atanh(a);\nalpha *= step(abs(a), 1.0);\n#elif defined(ATAN_2)\nresult = atan(a, b);\n#elif defined(COS)\nresult = cos(a);\n#elif defined(COSH)\nresult = cosh(a);\n#elif defined(SIN)\nresult = sin(a);\n#elif defined(SINH)\nresult = sinh(a);\n#elif defined(TAN)\nresult = tan(a);\n#elif defined(TANH)\nresult = tanh(a);\n#elif defined(BITWISEAND)\nresult = a & b;\n#elif defined(BITWISEOR)\nresult = a | b;\n#elif defined(BITWISELEFTSHIFT)\nresult = a << b;\n#elif defined(BITWISERIGHTSHIFT)\nresult = a >> b;\n#elif defined(BITWISENOT)\nresult = ~a;\n#elif defined(BITWISEXOR)\nresult = a ^ b;\n#elif defined(BOOLEANAND)\nresult = float((a != 0.0) && (b != 0.0));\n#elif defined(BOOLEANNOT)\nresult = float(a == 0.0);\n#elif defined(BOOLEANOR)\nresult = float((a != 0.0) || (b != 0.0));\n#elif defined(BOOLEANXOR)\nresult = float((a != 0.0) ^^ (b != 0.0));\n#elif defined(GREATERTHAN)\nresult = float(a > b);\n#elif defined(GREATERTHANEQUAL)\nresult = float(a >= b);\n#elif defined(LESSTHAN)\nresult = float(a < b);\n#elif defined(LESSTHANEQUAL)\nresult = float(a <= b);\n#elif defined(EQUALTO)\nresult = float(a == b);\n#elif defined(NOTEQUAL)\nresult = float(a != b);\n#elif defined(ISNULL)\nresult = float(alpha == 0.0);\nalpha = 1.0;\n#elif defined(SETNULL)\nfloat maskValue = float(a == 0.0);\nresult = maskValue * b;\nalpha *= maskValue;\n#elif defined(CONDITIONAL)\nfloat weight = float(abs(sign(a)));\nresult = weight * b + (1.0 - weight) * c;\n#endif\nbool isInvalid = result < u_domainRange.s || result > u_domainRange.t;\nresult = isInvalid ? 0.0 : result;\nalpha *= float(!isInvalid);\n#ifdef ROUND_OUTPUT\nresult = floor(result + 0.5);\n#endif\ngl_FragColor = vec4(result, result, result, alpha);\n}"},mask:{"mask.frag":"precision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texcoord;\n#define LEN_INCLUDED_RANGES 6\n#define LEN_NODATA_VALUES 6\nuniform highp float u_includedRanges[6];\nuniform highp float u_noDataValues[6];\nfloat maskFactor(float bandValue, float fromValue, float to) {\nfloat factor = 1.0;\nfor (int i = 0; i < LEN_NODATA_VALUES; i++) {\nfactor *= float(u_noDataValues[i] != bandValue);\n}\nfactor *= step(fromValue, bandValue) * step(bandValue, to);\nreturn factor;\n}\nvoid main() {\nvec4 pv = texture2D(u_image, v_texcoord);\nfloat redFactor = maskFactor(pv.r, u_includedRanges[0], u_includedRanges[1]);\n#ifdef MULTI_BAND\nfloat greenFactor = maskFactor(pv.g, u_includedRanges[2], u_includedRanges[3]);\nfloat blueFactor = maskFactor(pv.b, u_includedRanges[4], u_includedRanges[5]);\nfloat maskFactor = redFactor * greenFactor * blueFactor;\ngl_FragColor = pv * maskFactor;\n#else\ngl_FragColor = pv * redFactor;\n#endif\n}"},ndvi:{"ndvi.frag":"precision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texcoord;\nuniform mediump mat3 u_bandIndexMat3;\n#include \nvoid main() {\nvec4 pv = texture2D(u_image, v_texcoord);\nvec3 pv2 = u_bandIndexMat3 * pv.rgb;\nfloat nir = pv2.r;\nfloat red = pv2.g;\nfloat index = (nir - red) * invertValue(nir + red);\n#ifdef SCALED\nindex = floor((index + 1.0) * 100.0 + 0.5);\n#endif\ngl_FragColor = vec4(index, index, index, pv.a);\n}"},remap:{"remap.frag":"precision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texcoord;\n#define LEN_REMAP_RANGES 18\n#define LEN_NODATA_RANGES 12\nuniform highp float u_rangeMaps[18];\nuniform highp float u_noDataRanges[12];\nuniform highp float u_unmatchMask;\nuniform vec2 u_clampRange;\nvoid main() {\nvec4 pv = texture2D(u_image, v_texcoord);\nfloat factor = 1.0;\nfloat bandValue = pv.r;\nfor (int i = 0; i < LEN_NODATA_RANGES; i+=2) {\nfloat inside = 1.0 - step(u_noDataRanges[i], bandValue) * step(bandValue, u_noDataRanges[i+1]);\nfactor *= inside;\n}\nfloat mapValue = 0.0;\nfloat includeMask = 0.0;\nfor (int i = 0; i < LEN_REMAP_RANGES; i+=3) {\nfloat stepMask = step(u_rangeMaps[i], bandValue) * step(bandValue, u_rangeMaps[i+1]);\nincludeMask = (1.0 - stepMask) * includeMask + stepMask;\nmapValue = (1.0 - stepMask) * mapValue + stepMask * u_rangeMaps[i+2];\n}\nbandValue = factor * (mapValue + (1.0 - includeMask) * u_unmatchMask * pv.r);\nfloat bandMask = factor * max(u_unmatchMask, includeMask);\nbandValue = clamp(bandValue, u_clampRange.s, u_clampRange.t);\ngl_FragColor = vec4(bandValue, bandValue, bandValue, bandMask * pv.a);\n}"},slope:{"slope.frag":"precision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texcoord;\nuniform vec2 u_cellSize;\nuniform float u_zFactor;\nuniform vec2 u_srcImageSize;\nuniform float u_pixelSizePower;\nuniform float u_pixelSizeFactor;\n#include \nvoid main() {\nfloat pv[10];\ngetSurfaceValues(u_image, v_texcoord, u_srcImageSize, pv);\nfloat alpha = pv[9];\nfloat xf = (u_zFactor + pow(u_cellSize[0], u_pixelSizePower) * u_pixelSizeFactor) / (8.0 * u_cellSize[0]);\nfloat yf = (u_zFactor + pow(u_cellSize[1], u_pixelSizePower) * u_pixelSizeFactor) / (8.0 * u_cellSize[1]);\nfloat dzx = (pv[2] + 2.0 * pv[5] + pv[8] - pv[0] - 2.0 * pv[3] - pv[6]) * xf;\nfloat dzy = -(pv[6] + 2.0 * pv[7] + pv[8] - pv[0] - 2.0 * pv[1] - pv[2]) * yf;\nfloat rise2run = sqrt(dzx * dzx + dzy * dzy);\n#ifdef PERCENT_RISE\nfloat percentRise = rise2run * 100.0;\ngl_FragColor = vec4(percentRise, percentRise, percentRise, alpha);\n#else\nfloat degree = atan(rise2run) * 57.2957795;\ngl_FragColor = vec4(degree, degree, degree, alpha);\n#endif\n}"},stretch:{"stretch.frag":"precision mediump float;\nuniform sampler2D u_image;\nvarying highp vec2 v_texcoord;\nuniform float u_minCutOff[3];\nuniform float u_maxCutOff[3];\nuniform float u_minOutput;\nuniform float u_maxOutput;\nuniform float u_factor[3];\nuniform float u_gamma[3];\nuniform float u_gammaCorrection[3];\nfloat stretchOneValue(float val, float minCutOff, float maxCutOff, float minOutput, float maxOutput, float factor, float gamma, float gammaCorrection) {\nval = clamp(val, minCutOff, maxCutOff);\nfloat stretchedVal;\n#ifdef USE_GAMMA\nfloat tempf = 1.0;\nfloat outRange = maxOutput - minOutput;\nfloat relativeVal = (val - minCutOff) / (maxCutOff - minCutOff);\ntempf -= step(1.0, gamma) * sign(gamma - 1.0) * pow(1.0 / outRange, relativeVal * gammaCorrection);\nstretchedVal = tempf * outRange * pow(relativeVal, 1.0 / gamma) + minOutput;\nstretchedVal = clamp(stretchedVal, minOutput, maxOutput);\n#else\nstretchedVal = minOutput + (val - minCutOff) * factor;\n#endif\n#ifdef ROUND_OUTPUT\nstretchedVal = floor(stretchedVal + 0.5);\n#endif\nreturn stretchedVal;\n}\nvoid main() {\nvec4 currentPixel = texture2D(u_image, v_texcoord);\nfloat redVal = stretchOneValue(currentPixel.r, u_minCutOff[0], u_maxCutOff[0], u_minOutput, u_maxOutput, u_factor[0], u_gamma[0], u_gammaCorrection[0]);\n#ifdef MULTI_BAND\nfloat greenVal = stretchOneValue(currentPixel.g, u_minCutOff[1], u_maxCutOff[1], u_minOutput, u_maxOutput, u_factor[1], u_gamma[1], u_gammaCorrection[1]);\nfloat blueVal = stretchOneValue(currentPixel.b, u_minCutOff[2], u_maxCutOff[2], u_minOutput, u_maxOutput, u_factor[2], u_gamma[2], u_gammaCorrection[2]);\ngl_FragColor = vec4(redVal, greenVal, blueVal, currentPixel.a);\n#else\ngl_FragColor = vec4(redVal, redVal, redVal, currentPixel.a);\n#endif\n}"},vs:{"vs.vert":"precision mediump float;\nattribute vec2 a_pos;\nuniform highp mat3 u_dvsMat3;\nuniform highp vec2 u_coordScale;\nvarying highp vec2 v_texcoord;\nvoid main()\n{\nv_texcoord = a_pos;\ngl_Position = vec4(u_dvsMat3 * vec3(a_pos * u_coordScale, 1.0), 1.0);\n}"}},scalar:{"scalar.frag":"precision mediump float;\nuniform lowp float u_opacity;\nvarying vec2 v_pos;\nconst vec4 outlineColor = vec4(0.2, 0.2, 0.2, 1.0);\nconst float outlineSize = 0.02;\nconst float innerRadius = 0.25;\nconst float outerRadius = 0.42;\nconst float innerSquareLength = 0.15;\nvoid main() {\nmediump float dist = length(v_pos);\nmediump float fillalpha1 = smoothstep(outerRadius, outerRadius + outlineSize, dist);\nfillalpha1 *= (1.0-smoothstep(outerRadius + outlineSize, outerRadius + 0.1 + outlineSize, dist));\n#ifdef INNER_CIRCLE\nmediump float fillalpha2 = smoothstep(innerRadius, innerRadius + outlineSize, dist);\nfillalpha2 *= (1.0-smoothstep(innerRadius + outlineSize, innerRadius + 0.1 + outlineSize, dist));\n#else\nmediump float fillalpha2 = (abs(v_pos.x) < innerSquareLength ? 1.0 : 0.0) * (abs(v_pos.y) < innerSquareLength ? 1.0 : 0.0);\n#endif\ngl_FragColor = (fillalpha2 + fillalpha1) * outlineColor * u_opacity;\n}","scalar.vert":"precision mediump float;\nattribute vec2 a_pos;\nattribute vec2 a_offset;\nattribute vec2 a_vv;\nuniform highp mat3 u_dvsMat3;\nuniform highp vec2 u_coordScale;\nuniform vec2 u_symbolSize;\nuniform vec2 u_symbolPercentRange;\nuniform vec2 u_dataRange;\nvarying vec2 v_pos;\nvoid main()\n{\n#ifdef DATA_RANGE\nfloat valuePercentage = clamp((a_vv.y - u_dataRange.x) / (u_dataRange.y - u_dataRange.x), 0.0, 1.0);\nfloat sizeRatio = u_symbolPercentRange.x + valuePercentage * (u_symbolPercentRange.y - u_symbolPercentRange.x);\nfloat sizePercentage = clamp(sizeRatio, u_symbolPercentRange.x, u_symbolPercentRange.y);\n#else\nfloat sizePercentage = (u_symbolPercentRange.x + u_symbolPercentRange.y) / 2.0;\n#endif\nvec2 size = u_symbolSize * sizePercentage;\nvec2 pos = a_pos + a_offset * size;\nv_pos = a_offset;\ngl_Position = vec4(u_dvsMat3 * vec3(pos * u_coordScale, 1.0), 1.0);\n}"},stretch:{"stretch.frag":"precision mediump float;\nvarying highp vec2 v_texcoord;\n#include \nuniform float u_minCutOff[3];\nuniform float u_maxCutOff[3];\nuniform float u_minOutput;\nuniform float u_maxOutput;\nuniform float u_factor[3];\nuniform bool u_useGamma;\nuniform float u_gamma[3];\nuniform float u_gammaCorrection[3];\n#include \nfloat stretchOneValue(float val, float minCutOff, float maxCutOff, float minOutput, float maxOutput, float factor, bool useGamma, float gamma, float gammaCorrection) {\nif (val >= maxCutOff) {\nreturn maxOutput;\n} else if (val <= minCutOff) {\nreturn minOutput;\n}\nfloat stretchedVal;\nif (useGamma) {\nfloat tempf = 1.0;\nfloat outRange = maxOutput - minOutput;\nfloat relativeVal = (val - minCutOff) / (maxCutOff - minCutOff);\nif (gamma > 1.0) {\ntempf -= pow(1.0 / outRange, relativeVal * gammaCorrection);\n}\nstretchedVal = (tempf * outRange * pow(relativeVal, 1.0 / gamma) + minOutput) / 255.0;\n} else {\nstretchedVal = minOutput + (val - minCutOff) * factor;\n}\nreturn stretchedVal;\n}\nvoid main() {\nvec2 pixelLocation = getPixelLocation(v_texcoord);\nif (isOutside(pixelLocation)) {\ngl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\nreturn;\n}\nvec4 currentPixel = getPixel(pixelLocation);\n#ifdef NOOP\ngl_FragColor = vec4(currentPixel.rgb, 1.0) * currentPixel.a * u_opacity;\nreturn;\n#endif\nif (u_bandCount == 1) {\nfloat grayVal = stretchOneValue(currentPixel.r, u_minCutOff[0], u_maxCutOff[0], u_minOutput, u_maxOutput, u_factor[0], u_useGamma, u_gamma[0], u_gammaCorrection[0]);\n#ifdef APPLY_COLORMAP\nvec4 result = colorize(vec4(grayVal, grayVal, grayVal, 1.0), u_useGamma ? 255.0 : 1.0);\ngl_FragColor = vec4(result.xyz, 1.0) * result.a * currentPixel.a * u_opacity;\n#else\ngl_FragColor = vec4(grayVal, grayVal, grayVal, 1.0) * currentPixel.a * u_opacity;\n#endif\n} else {\nfloat redVal = stretchOneValue(currentPixel.r, u_minCutOff[0], u_maxCutOff[0], u_minOutput, u_maxOutput, u_factor[0], u_useGamma, u_gamma[0], u_gammaCorrection[0]);\nfloat greenVal = stretchOneValue(currentPixel.g, u_minCutOff[1], u_maxCutOff[1], u_minOutput, u_maxOutput, u_factor[1], u_useGamma, u_gamma[1], u_gammaCorrection[1]);\nfloat blueVal = stretchOneValue(currentPixel.b, u_minCutOff[2], u_maxCutOff[2], u_minOutput, u_maxOutput, u_factor[2], u_useGamma, u_gamma[2], u_gammaCorrection[2]);\ngl_FragColor = vec4(redVal, greenVal, blueVal, 1.0) * currentPixel.a * u_opacity;\n}\n}"}},stencil:{"stencil.frag":"void main() {\ngl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\n}","stencil.vert":"attribute vec2 a_pos;\nuniform mat3 u_worldExtent;\nvoid main() {\ngl_Position = vec4(u_worldExtent * vec3(a_pos, 1.0), 1.0);\n}"},test:{"TestShader.common.glsl":"#ifndef RETURN_RED\nvarying vec4 v_color;\n#endif\nvarying vec2 v_offset;","TestShader.frag":"precision highp float;\n#include \nvoid main() {\nif (v_offset.x > -.5 && v_offset.y > -.5 && v_offset.x < .5 && v_offset.y < .5) {\ndiscard;\n}\n#ifdef RETURN_RED\ngl_FragColor = vec4(1., 0., 0., 1.);\n#else\ngl_FragColor = v_color;\n#endif\n}","TestShader.vert":"const float POS_PRECISION_FACTOR = 10.;\nconst float OFFSET_PRECISION_FACTOR = 10.;\nconst float SIZE_PRECISION_FACTOR = 10.;\nattribute vec2 a_pos_packed;\nattribute vec2 a_offset_packed;\nattribute float a_size_packed;\n#ifdef DATA_DRIVEN_COLOR\nconst float u_dataDrivenColor_validValues[4] = float[4](0., 0., 1., 0.);\nuniform vec4 u_dataDrivenColor_colorFallback;\nuniform vec4 u_dataDrivenColor_color;\n#endif\nuniform float u_view_zoomLevel;\n#include \n#ifdef DATA_DRIVEN_COLOR\nvec4 getColor(float value) {\nint index = -1;\nfor (int i = 0; i < 4; i++) {\nif (u_dataDrivenColor_validValues[i] == value) {\nindex = i;\nbreak;\n}\n}\nif (index == -1) {\nreturn u_dataDrivenColor_colorFallback;\n}\nreturn u_dataDrivenColor_color;\n}\n#endif\nvoid main() {\nvec2 a_pos = a_pos_packed / POS_PRECISION_FACTOR;\nvec2 a_offset = a_offset_packed / OFFSET_PRECISION_FACTOR;\nfloat a_size = a_size_packed / SIZE_PRECISION_FACTOR;\nvec4 color = vec4(1., 0., 0., 1.);\n#ifdef DATA_DRIVEN_COLOR\ncolor = getColor(1.);\n#endif\nvec2 offsetScaled = a_offset * a_size;\nvec4 pos = vec4(a_pos.xy + offsetScaled, 0., 1.);\ngl_Position = pos;\n#ifndef RETURN_RED\nv_color = color;\n#endif\nv_offset = a_offset;\n}"},tileInfo:{"tileInfo.frag":"uniform mediump sampler2D u_texture;\nvarying mediump vec2 v_tex;\nvoid main(void) {\nlowp vec4 color = texture2D(u_texture, v_tex);\ncolor.rgb *= color.a;\ngl_FragColor = color;\n}","tileInfo.vert":"attribute vec2 a_pos;\nuniform highp mat3 u_dvsMat3;\nuniform mediump float u_depth;\nuniform mediump vec2 u_coord_ratio;\nuniform mediump vec2 u_delta;\nuniform mediump vec2 u_dimensions;\nvarying mediump vec2 v_tex;\nvoid main() {\nmediump vec2 offset = u_coord_ratio * vec2(u_delta + a_pos * u_dimensions);\nvec3 v_pos = u_dvsMat3 * vec3(offset, 1.0);\ngl_Position = vec4(v_pos.xy, 0.0, 1.0);\nv_tex = a_pos;\n}"},util:{"atan2.glsl":"float atan2(in float y, in float x) {\nfloat t0, t1, t2, t3, t4;\nt3 = abs(x);\nt1 = abs(y);\nt0 = max(t3, t1);\nt1 = min(t3, t1);\nt3 = 1.0 / t0;\nt3 = t1 * t3;\nt4 = t3 * t3;\nt0 = - 0.013480470;\nt0 = t0 * t4 + 0.057477314;\nt0 = t0 * t4 - 0.121239071;\nt0 = t0 * t4 + 0.195635925;\nt0 = t0 * t4 - 0.332994597;\nt0 = t0 * t4 + 0.999995630;\nt3 = t0 * t3;\nt3 = (abs(y) > abs(x)) ? 1.570796327 - t3 : t3;\nt3 = x < 0.0 ? 3.141592654 - t3 : t3;\nt3 = y < 0.0 ? -t3 : t3;\nreturn t3;\n}","encoding.glsl":"const vec4 rgba2float_factors = vec4(\n255.0 / (256.0),\n255.0 / (256.0 * 256.0),\n255.0 / (256.0 * 256.0 * 256.0),\n255.0 / (256.0 * 256.0 * 256.0 * 256.0)\n);\nfloat rgba2float(vec4 rgba) {\nreturn dot(rgba, rgba2float_factors);\n}"}},function(e){let t=a;return e.split("/").forEach((e=>{t&&(t=t[e])})),t}));var a;function o(e){return i.resolveIncludes(e)}},84172:function(e,t,n){n.d(t,{H:function(){return a}});var i=n(69609);function a(e,t,n=""){return new i.$(e,n+t.shaders.vertexShader,n+t.shaders.fragmentShader,t.attributes)}},78311:function(e,t,n){n.d(t,{B:function(){return i}});class i{constructor(e){this._readFile=e}resolveIncludes(e){return this._resolve(e)}_resolve(e,t=new Map){if(t.has(e))return t.get(e);const n=this._read(e);if(!n)throw new Error(`cannot find shader file ${e}`);const i=/^[^\S\n]*#include\s+<(\S+)>[^\S\n]?/gm;let a=i.exec(n);const o=[];for(;null!=a;)o.push({path:a[1],start:a.index,length:a[0].length}),a=i.exec(n);let r=0,l="";return o.forEach((e=>{l+=n.slice(r,e.start),l+=t.has(e.path)?"":this._resolve(e.path,t),r=e.start+e.length})),l+=n.slice(r),t.set(e,l),l}_read(e){return this._readFile(e)}}},29620:function(e,t,n){n.d(t,{U:function(){return u}});var i=n(13802),a=n(61681),o=n(86098),r=n(91907),l=n(62486);const s=()=>i.Z.getLogger("esri.views.webgl.VertexArrayObject");let u=class{constructor(e,t,n,i,a=null){this._context=e,this._locations=t,this._layout=n,this._buffers=i,this._indexBuffer=a,this._glName=null,this._initialized=!1}get glName(){return this._glName}get context(){return this._context}get vertexBuffers(){return this._buffers}get indexBuffer(){return this._indexBuffer}get byteSize(){return Object.keys(this._buffers).reduce(((e,t)=>e+this._buffers[t].usedMemory),null!=this._indexBuffer?this._indexBuffer.usedMemory:0)}get layout(){return this._layout}get locations(){return this._locations}get usedMemory(){return this.byteSize+(Object.keys(this._buffers).length+(this._indexBuffer?1:0))*o.ru}dispose(){if(this._context){this._context.getBoundVAO()===this&&this._context.bindVAO(null);for(const e in this._buffers)this._buffers[e]?.dispose(),delete this._buffers[e];this._indexBuffer=(0,a.M2)(this._indexBuffer),this.disposeVAOOnly()}else(this._glName||Object.getOwnPropertyNames(this._buffers).length>0)&&s().warn("Leaked WebGL VAO")}disposeVAOOnly(){this._glName&&(this._context.gl.deleteVertexArray(this._glName),this._glName=null,this._context.instanceCounter.decrement(r._g.VertexArrayObject,this)),this._context=null}initialize(){if(this._initialized)return;const{gl:e}=this._context,t=e.createVertexArray();e.bindVertexArray(t),this._bindLayout(),e.bindVertexArray(null),this._glName=t,this._context.instanceCounter.increment(r._g.VertexArrayObject,this),this._initialized=!0}bind(){this.initialize(),this._context.gl.bindVertexArray(this.glName)}_bindLayout(){const{_buffers:e,_layout:t,_indexBuffer:n}=this;e||s().error("Vertex buffer dictionary is empty!");const i=this._context.gl;for(const n in e){const i=e[n];i||s().error("Vertex buffer is uninitialized!");const a=t[n];a||s().error("Vertex element descriptor is empty!"),(0,l.XP)(this._context,this._locations,i,a)}null!=n&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,n.glName)}unbind(){this.initialize(),this._context.gl.bindVertexArray(null)}}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/9955.c55960e65592dc034b63.js b/docs/sentinel1-explorer/9955.c55960e65592dc034b63.js new file mode 100644 index 00000000..7fdb2a92 --- /dev/null +++ b/docs/sentinel1-explorer/9955.c55960e65592dc034b63.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkimagery_explorer_apps=self.webpackChunkimagery_explorer_apps||[]).push([[9955],{66318:function(e,t,n){function s(e){return null!=a(e)||null!=o(e)}function r(e){return u.test(e)}function i(e){return a(e)??o(e)}function o(e){const t=new Date(e);return function(e,t){if(Number.isNaN(e.getTime()))return!1;let n=!0;if(d&&/\d+\W*$/.test(t)){const e=t.match(/[a-zA-Z]{2,}/);if(e){let t=!1,s=0;for(;!t&&s<=e.length;)t=!l.test(e[s]),s++;n=!t}}return n}(t,e)?Number.isNaN(t.getTime())?null:t.getTime()-6e4*t.getTimezoneOffset():null}function a(e){const t=u.exec(e);if(!t?.groups)return null;const n=t.groups,s=+n.year,r=+n.month-1,i=+n.day,o=+(n.hours??"0"),a=+(n.minutes??"0"),l=+(n.seconds??"0");if(o>23)return null;if(a>59)return null;if(l>59)return null;const d=n.ms??"0",c=d?+d.padEnd(3,"0").substring(0,3):0;let p;if(n.isUTC||!n.offsetSign)p=Date.UTC(s,r,i,o,a,l,c);else{const e=+n.offsetHours,t=+n.offsetMinutes;p=6e4*("+"===n.offsetSign?-1:1)*(60*e+t)+Date.UTC(s,r,i,o,a,l,c)}return Number.isNaN(p)?null:p}n.d(t,{mu:function(){return r},of:function(){return s},sG:function(){return i}});const u=/^(?:(?-?\d{4,})-(?\d{2})-(?\d{2}))(?:T(?\d{2}):(?\d{2}):(?\d{2})(?:\.(?\d+))?)?(?:(?Z)|(?:(?\+|-)(?\d{2}):(?\d{2})))?$/;const l=/^((jan(uary)?)|(feb(ruary)?)|(mar(ch)?)|(apr(il)?)|(may)|(jun(e)?)|(jul(y)?)|(aug(ust)?)|(sep(tember)?)|(oct(ober)?)|(nov(ember)?)|(dec(ember)?)|(am)|(pm)|(gmt)|(utc))$/i,d=!Number.isNaN(new Date("technology 10").getTime())},69400:function(e,t,n){n.d(t,{Z:function(){return h}});var s=n(7753),r=n(70375),i=n(31355),o=n(13802),a=n(37116),u=n(24568),l=n(12065),d=n(117),c=n(28098),p=n(12102);const f=(0,a.Ue)();class h{constructor(e){this.geometryInfo=e,this._boundsStore=new d.H,this._featuresById=new Map,this._markedIds=new Set,this.events=new i.Z,this.featureAdapter=p.n}get geometryType(){return this.geometryInfo.geometryType}get hasM(){return this.geometryInfo.hasM}get hasZ(){return this.geometryInfo.hasZ}get numFeatures(){return this._featuresById.size}get fullBounds(){return this._boundsStore.fullBounds}get storeStatistics(){let e=0;return this._featuresById.forEach((t=>{null!=t.geometry&&t.geometry.coords&&(e+=t.geometry.coords.length)})),{featureCount:this._featuresById.size,vertexCount:e/(this.hasZ?this.hasM?4:3:this.hasM?3:2)}}getFullExtent(e){if(null==this.fullBounds)return null;const[t,n,s,r]=this.fullBounds;return{xmin:t,ymin:n,xmax:s,ymax:r,spatialReference:(0,c.S2)(e)}}add(e){this._add(e),this._emitChanged()}addMany(e){for(const t of e)this._add(t);this._emitChanged()}upsertMany(e){const t=e.map((e=>this._upsert(e)));return this._emitChanged(),t.filter(s.pC)}clear(){this._featuresById.clear(),this._boundsStore.clear(),this._emitChanged()}removeById(e){const t=this._featuresById.get(e);return t?(this._remove(t),this._emitChanged(),t):null}removeManyById(e){this._boundsStore.invalidateIndex();for(const t of e){const e=this._featuresById.get(t);e&&this._remove(e)}this._emitChanged()}forEachBounds(e,t){for(const n of e){const e=this._boundsStore.get(n.objectId);e&&t((0,a.JR)(f,e))}}getFeature(e){return this._featuresById.get(e)}has(e){return this._featuresById.has(e)}forEach(e){this._featuresById.forEach((t=>e(t)))}forEachInBounds(e,t){this._boundsStore.forEachInBounds(e,(e=>{t(this._featuresById.get(e))}))}startMarkingUsedFeatures(){this._boundsStore.invalidateIndex(),this._markedIds.clear()}sweep(){let e=!1;this._featuresById.forEach(((t,n)=>{this._markedIds.has(n)||(e=!0,this._remove(t))})),this._markedIds.clear(),e&&this._emitChanged()}_emitChanged(){this.events.emit("changed",void 0)}_add(e){if(!e)return;const t=e.objectId;if(null==t)return void o.Z.getLogger("esri.layers.graphics.data.FeatureStore").error(new r.Z("featurestore:invalid-feature","feature id is missing",{feature:e}));const n=this._featuresById.get(t);let s;if(this._markedIds.add(t),n?(e.displayId=n.displayId,s=this._boundsStore.get(t),this._boundsStore.delete(t)):null!=this.onFeatureAdd&&this.onFeatureAdd(e),!e.geometry?.coords?.length)return this._boundsStore.set(t,null),void this._featuresById.set(t,e);s=(0,l.$)(null!=s?s:(0,u.Ue)(),e.geometry,this.geometryInfo.hasZ,this.geometryInfo.hasM),null!=s&&this._boundsStore.set(t,s),this._featuresById.set(t,e)}_upsert(e){const t=e?.objectId;if(null==t)return o.Z.getLogger("esri.layers.graphics.data.FeatureStore").error(new r.Z("featurestore:invalid-feature","feature id is missing",{feature:e})),null;const n=this._featuresById.get(t);if(!n)return this._add(e),e;this._markedIds.add(t);const{geometry:s,attributes:i}=e;for(const e in i)n.attributes[e]=i[e];return s&&(n.geometry=s,this._boundsStore.set(t,(0,l.$)((0,u.Ue)(),s,this.geometryInfo.hasZ,this.geometryInfo.hasM)??null)),n}_remove(e){null!=this.onFeatureRemove&&this.onFeatureRemove(e);const t=e.objectId;return this._markedIds.delete(t),this._boundsStore.delete(t),this._featuresById.delete(t),e}}},59955:function(e,t,n){n.r(t),n.d(t,{default:function(){return w}});var s=n(66341),r=n(67979),i=n(70375),o=n(13802),a=n(78668),u=n(53736),l=n(35925),d=n(12065),c=n(69400),p=n(66069),f=n(66608),h=n(61957),y=n(40400),m=n(24366),g=n(28790),_=n(86349),I=n(14845),b=n(72559);const F={hasAttachments:!1,capabilities:"query, editing, create, delete, update",useStandardizedQueries:!0,supportsCoordinatesQuantization:!0,supportsReturningQueryGeometry:!0,advancedQueryCapabilities:{supportsQueryAttachments:!1,supportsStatistics:!0,supportsPercentileStatistics:!0,supportsReturningGeometryCentroid:!0,supportsQueryWithDistance:!0,supportsDistinct:!0,supportsReturningQueryExtent:!0,supportsReturningGeometryProperties:!1,supportsHavingClause:!0,supportsOrderBy:!0,supportsPagination:!0,supportsQueryWithResultType:!1,supportsSqlExpression:!0,supportsDisjointSpatialRel:!0}};class w{constructor(){this._queryEngine=null,this._snapshotFeatures=async e=>{const t=await this._fetch(e);return this._createFeatures(t)}}destroy(){this._queryEngine?.destroy(),this._queryEngine=this._createDefaultAttributes=null}async load(e,t={}){this._loadOptions={url:e.url,customParameters:e.customParameters};const n=[],[s]=await Promise.all([e.url?this._fetch(t?.signal):null,this._checkProjection(e.spatialReference)]),r=(0,h.my)(s,{geometryType:e.geometryType}),o=e.fields||r.fields||[],a=null!=e.hasZ?e.hasZ:r.hasZ,u=r.geometryType;let d=e.objectIdField||r.objectIdFieldName||"__OBJECTID";const p=e.spatialReference||l.YU;let m=e.timeInfo;o===r.fields&&r.unknownFields.length>0&&n.push({name:"geojson-layer:unknown-field-types",message:"Some fields types couldn't be inferred from the features and were dropped",details:{unknownFields:r.unknownFields}});const w=new g.Z(o);let E=w.get(d);E?("esriFieldTypeString"!==E.type&&(E.type="esriFieldTypeOID"),E.editable=!1,E.nullable=!1,d=E.name):(E={alias:d,name:d,type:"string"===r.objectIdFieldType?"esriFieldTypeString":"esriFieldTypeOID",editable:!1,nullable:!1},o.unshift(E));const S={};for(const e of o){if(null==e.name&&(e.name=e.alias),null==e.alias&&(e.alias=e.name),!e.name)throw new i.Z("geojson-layer:invalid-field-name","field name is missing",{field:e});if(!_.v.jsonValues.includes(e.type))throw new i.Z("geojson-layer:invalid-field-type",`invalid type for field "${e.name}"`,{field:e});if(e.name!==E.name){const t=(0,I.os)(e);void 0!==t&&(S[e.name]=t)}null==e.length&&(e.length=(0,I.ZR)(e))}if(m){if(m.startTimeField){const e=w.get(m.startTimeField);e?(m.startTimeField=e.name,e.type="esriFieldTypeDate"):m.startTimeField=null}if(m.endTimeField){const e=w.get(m.endTimeField);e?(m.endTimeField=e.name,e.type="esriFieldTypeDate"):m.endTimeField=null}if(m.trackIdField){const e=w.get(m.trackIdField);e?m.trackIdField=e.name:(m.trackIdField=null,n.push({name:"geojson-layer:invalid-timeInfo-trackIdField",message:"trackIdField is missing",details:{timeInfo:m}}))}m.startTimeField||m.endTimeField||(n.push({name:"geojson-layer:invalid-timeInfo",message:"startTimeField and endTimeField are missing",details:{timeInfo:m}}),m=null)}const T=u?(0,y.bU)(u):void 0,j=w.dateFields.length?{timeZoneIANA:b.pt}:null,q={warnings:n,featureErrors:[],layerDefinition:{...F,drawingInfo:T??void 0,templates:(0,y.Hq)(S),extent:void 0,geometryType:u,objectIdField:d,fields:o,hasZ:!!a,timeInfo:m,dateFieldsTimeReference:j}};this._queryEngine=new f.q({fieldsIndex:g.Z.fromLayerJSON({fields:o,timeInfo:m,dateFieldsTimeReference:j}),geometryType:u,hasM:!1,hasZ:a,objectIdField:d,spatialReference:p,timeInfo:m,featureStore:new c.Z({geometryType:u,hasM:!1,hasZ:a}),cacheSpatialQueries:!0});const v=this._queryEngine.fieldsIndex.requiredFields.indexOf(E);v>-1&&this._queryEngine.fieldsIndex.requiredFields.splice(v,1),this._createDefaultAttributes=(0,y.Dm)(S,d);const x=await this._createFeatures(s);this._objectIdGenerator=this._createObjectIdGenerator(this._queryEngine,x);const Z=this._normalizeFeatures(x,q.featureErrors);this._queryEngine.featureStore.addMany(Z);const{fullExtent:C,timeExtent:k}=await this._queryEngine.fetchRecomputedExtents();if(q.layerDefinition.extent=C,k){const{start:e,end:t}=k;q.layerDefinition.timeInfo.timeExtent=[e,t]}return q}async applyEdits(e){const{spatialReference:t,geometryType:n}=this._queryEngine;return await Promise.all([(0,m.b)(t,n),(0,p._W)(e.adds,t),(0,p._W)(e.updates,t)]),await this._waitSnapshotComplete(),this._applyEdits(e)}async queryFeatures(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQuery(e,t.signal)}async queryFeatureCount(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForCount(e,t.signal)}async queryObjectIds(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForIds(e,t.signal)}async queryExtent(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForExtent(e,t.signal)}async querySnapping(e,t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForSnapping(e,t.signal)}async refresh(e){this._loadOptions.customParameters=e,this._snapshotTask?.abort(),this._snapshotTask=(0,r.vr)(this._snapshotFeatures),this._snapshotTask.promise.then((e=>{this._queryEngine.featureStore.clear(),this._objectIdGenerator=this._createObjectIdGenerator(this._queryEngine,e);const t=this._normalizeFeatures(e);t&&this._queryEngine.featureStore.addMany(t)}),(e=>{this._queryEngine.featureStore.clear(),(0,a.D_)(e)||o.Z.getLogger("esri.layers.GeoJSONLayer").error(new i.Z("geojson-layer:refresh","An error occurred during refresh",{error:e}))})),await this._waitSnapshotComplete();const{fullExtent:t,timeExtent:n}=await this._queryEngine.fetchRecomputedExtents();return{extent:t,timeExtent:n}}async _createFeatures(e){if(null==e)return[];const{geometryType:t,hasZ:n,objectIdField:s}=this._queryEngine,r=(0,h.lG)(e,{geometryType:t,hasZ:n,objectIdField:s});if(!(0,l.fS)(this._queryEngine.spatialReference,l.YU))for(const e of r)null!=e.geometry&&(e.geometry=(0,d.GH)((0,p.iV)((0,d.di)(e.geometry,this._queryEngine.geometryType,this._queryEngine.hasZ,!1),l.YU,this._queryEngine.spatialReference)));return r}async _waitSnapshotComplete(){if(this._snapshotTask&&!this._snapshotTask.finished){try{await this._snapshotTask.promise}catch{}return this._waitSnapshotComplete()}}async _fetch(e){const{url:t,customParameters:n}=this._loadOptions,r=(await(0,s.Z)(t,{responseType:"json",query:{...n},signal:e})).data;return(0,h.O3)(r),r}_normalizeFeatures(e,t){const{objectIdField:n,fieldsIndex:s}=this._queryEngine,r=[];for(const i of e){const e=this._createDefaultAttributes(),o=(0,m.O0)(s,e,i.attributes,!0);o?t?.push(o):(this._assignObjectId(e,i.attributes,!0),i.attributes=e,i.objectId=e[n],r.push(i))}return r}async _applyEdits(e){const{adds:t,updates:n,deletes:s}=e,r={addResults:[],deleteResults:[],updateResults:[],uidToObjectId:{}};if(t?.length&&this._applyAddEdits(r,t),n?.length&&this._applyUpdateEdits(r,n),s?.length){for(const e of s)r.deleteResults.push((0,m.d1)(e));this._queryEngine.featureStore.removeManyById(s)}const{fullExtent:i,timeExtent:o}=await this._queryEngine.fetchRecomputedExtents();return{extent:i,timeExtent:o,featureEditResults:r}}_applyAddEdits(e,t){const{addResults:n}=e,{geometryType:s,hasM:r,hasZ:i,objectIdField:o,spatialReference:a,featureStore:l,fieldsIndex:c}=this._queryEngine,f=[];for(const r of t){if(r.geometry&&s!==(0,u.Ji)(r.geometry)){n.push((0,m.av)("Incorrect geometry type."));continue}const t=this._createDefaultAttributes(),i=(0,m.O0)(c,t,r.attributes);if(i)n.push(i);else{if(this._assignObjectId(t,r.attributes),r.attributes=t,null!=r.uid){const t=r.attributes[o];e.uidToObjectId[r.uid]=t}if(null!=r.geometry){const e=r.geometry.spatialReference??a;r.geometry=(0,p.iV)((0,m.og)(r.geometry,e),e,a)}f.push(r),n.push((0,m.d1)(r.attributes[o]))}}l.addMany((0,d.Yn)([],f,s,i,r,o))}_applyUpdateEdits({updateResults:e},t){const{geometryType:n,hasM:s,hasZ:r,objectIdField:i,spatialReference:o,featureStore:a,fieldsIndex:l}=this._queryEngine;for(const c of t){const{attributes:t,geometry:f}=c,h=t?.[i];if(null==h){e.push((0,m.av)(`Identifier field ${i} missing`));continue}if(!a.has(h)){e.push((0,m.av)(`Feature with object id ${h} missing`));continue}const y=(0,d.EI)(a.getFeature(h),n,r,s);if(null!=f){if(n!==(0,u.Ji)(f)){e.push((0,m.av)("Incorrect geometry type."));continue}const t=f.spatialReference??o;y.geometry=(0,p.iV)((0,m.og)(f,t),t,o)}if(t){const n=(0,m.O0)(l,y.attributes,t);if(n){e.push(n);continue}}a.add((0,d.XA)(y,n,r,s,i)),e.push((0,m.d1)(h))}}_createObjectIdGenerator(e,t){const n=e.fieldsIndex.get(e.objectIdField);if("esriFieldTypeString"===n.type)return()=>n.name+"-"+Date.now().toString(16);let s=Number.NEGATIVE_INFINITY;for(const e of t)e.objectId&&(s=Math.max(s,e.objectId));return s=Math.max(0,s)+1,()=>s++}_assignObjectId(e,t,n=!1){const s=this._queryEngine.objectIdField;e[s]=n&&s in t?t[s]:this._objectIdGenerator()}async _checkProjection(e){try{await(0,p._W)(l.YU,e)}catch{throw new i.Z("geojson-layer","Projection not supported")}}}},61957:function(e,t,n){n.d(t,{O3:function(){return E},lG:function(){return T},my:function(){return S},q9:function(){return d}});var s=n(66318),r=n(70375),i=n(35925),o=n(59958),a=n(15540),u=n(14845);const l={LineString:"esriGeometryPolyline",MultiLineString:"esriGeometryPolyline",MultiPoint:"esriGeometryMultipoint",Point:"esriGeometryPoint",Polygon:"esriGeometryPolygon",MultiPolygon:"esriGeometryPolygon"};function d(e){return l[e]}function*c(e){switch(e.type){case"Feature":yield e;break;case"FeatureCollection":for(const t of e.features)t&&(yield t)}}function*p(e){if(e)switch(e.type){case"Point":yield e.coordinates;break;case"LineString":case"MultiPoint":yield*e.coordinates;break;case"MultiLineString":case"Polygon":for(const t of e.coordinates)yield*t;break;case"MultiPolygon":for(const t of e.coordinates)for(const e of t)yield*e}}function f(e){for(const t of e)if(t.length>2)return!0;return!1}function h(e){let t=0;for(let n=0;n=0;s--)F(e,t[s],n);e.lengths.push(t.length)}function F(e,t,n){const[s,r,i]=t;e.coords.push(s,r),n.hasZ&&e.coords.push(i||0)}function w(e){switch(typeof e){case"string":return(0,s.mu)(e)?"esriFieldTypeDate":"esriFieldTypeString";case"number":return"esriFieldTypeDouble";default:return"unknown"}}function E(e,t=4326){if(!e)throw new r.Z("geojson-layer:empty","GeoJSON data is empty");if("Feature"!==e.type&&"FeatureCollection"!==e.type)throw new r.Z("geojson-layer:unsupported-geojson-object","missing or not supported GeoJSON object type",{data:e});const{crs:n}=e;if(!n)return;const s="string"==typeof n?n:"name"===n.type?n.properties.name:"EPSG"===n.type?n.properties.code:null,o=(0,i.oR)({wkid:t})?new RegExp(".*(CRS84H?|4326)$","i"):new RegExp(`.*(${t})$`,"i");if(!s||!o.test(s))throw new r.Z("geojson:unsupported-crs","unsupported GeoJSON 'crs' member",{crs:n})}function S(e,t={}){const n=[],s=new Set,r=new Set;let i,o=!1,a=null,l=!1,{geometryType:h=null}=t,y=!1;for(const t of c(e)){const{geometry:e,properties:c,id:m}=t;if((!e||(h||(h=d(e.type)),d(e.type)===h))&&(o||(o=f(p(e))),l||(l=null!=m,l&&(i=typeof m,c&&(a=Object.keys(c).filter((e=>c[e]===m))))),c&&a&&l&&null!=m&&(a.length>1?a=a.filter((e=>c[e]===m)):1===a.length&&(a=c[a[0]]===m?a:[])),!y&&c)){let e=!0;for(const t in c){if(s.has(t))continue;const i=c[t];if(null==i){e=!1,r.add(t);continue}const o=w(i);if("unknown"===o){r.add(t);continue}r.delete(t),s.add(t);const a=(0,u.q6)(t);a&&n.push({name:a,alias:t,type:o})}y=e}}const m=(0,u.q6)(1===a?.length&&a[0]||null)??void 0;if(m)for(const e of n)if(e.name===m&&(0,u.H7)(e)){e.type="esriFieldTypeOID";break}return{fields:n,geometryType:h,hasZ:o,objectIdFieldName:m,objectIdFieldType:i,unknownFields:Array.from(r)}}function T(e,t){return Array.from(function*(e,t={}){const{geometryType:n,objectIdField:s}=t;for(const r of e){const{geometry:e,properties:i,id:u}=r;if(e&&d(e.type)!==n)continue;const l=i||{};let c;s&&(c=l[s],null==u||c||(l[s]=c=u));const p=new o.u_(e?m(new a.Z,e,t):null,l,null,c??void 0);yield p}}(c(e),t))}},40400:function(e,t,n){n.d(t,{Dm:function(){return d},Hq:function(){return c},MS:function(){return p},bU:function(){return a}});var s=n(39994),r=n(67134),i=n(10287),o=n(86094);function a(e){return{renderer:{type:"simple",symbol:"esriGeometryPoint"===e||"esriGeometryMultipoint"===e?o.I4:"esriGeometryPolyline"===e?o.ET:o.lF}}}const u=/^[_$a-zA-Z][_$a-zA-Z0-9]*$/;let l=1;function d(e,t){if((0,s.Z)("esri-csp-restrictions"))return()=>({[t]:null,...e});try{let n=`this.${t} = null;`;for(const t in e)n+=`this${u.test(t)?`.${t}`:`["${t}"]`} = ${JSON.stringify(e[t])};`;const s=new Function(`\n return class AttributesClass$${l++} {\n constructor() {\n ${n};\n }\n }\n `)();return()=>new s}catch(n){return()=>({[t]:null,...e})}}function c(e={}){return[{name:"New Feature",description:"",prototype:{attributes:(0,r.d9)(e)}}]}function p(e,t){return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:e},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:t,supportsDelete:t,supportsEditing:t,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:t,supportsExceedsLimitStatistics:!0,supportsAsyncConvert3D:!1},query:i.g,queryRelated:{supportsCount:!0,supportsOrderBy:!0,supportsPagination:!0,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsGeometryUpdate:t,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}},24366:function(e,t,n){n.d(t,{O0:function(){return p},av:function(){return u},b:function(){return m},d1:function(){return d},og:function(){return y}});var s=n(66318),r=n(35925),i=n(14845);class o{constructor(){this.code=null,this.description=null}}class a{constructor(e){this.error=new o,this.globalId=null,this.objectId=null,this.success=!1,this.uniqueId=null,this.error.description=e}}function u(e){return new a(e)}class l{constructor(e){this.globalId=null,this.success=!0,this.objectId=this.uniqueId=e}}function d(e){return new l(e)}const c=new Set;function p(e,t,n,s=!1){c.clear();for(const r in n){const o=e.get(r);if(!o)continue;const a=f(o,n[r]);if(c.add(o.name),o&&(s||o.editable)){const e=(0,i.Qc)(o,a);if(e)return u((0,i.vP)(e,o,a));t[o.name]=a}}for(const t of e?.requiredFields??[])if(!c.has(t.name))return u(`missing required field "${t.name}"`);return null}function f(e,t){let n=t;return(0,i.H7)(e)&&"string"==typeof t?n=parseFloat(t):(0,i.qN)(e)&&null!=t&&"string"!=typeof t?n=String(t):(0,i.y2)(e)&&"string"==typeof t&&(n=(0,s.sG)(t)),(0,i.Pz)(n)}let h;function y(e,t){if(!e||!(0,r.JY)(t))return e;if("rings"in e||"paths"in e){if(null==h)throw new TypeError("geometry engine not loaded");return h.simplify(t,e)}return e}async function m(e,t){!(0,r.JY)(e)||"esriGeometryPolygon"!==t&&"esriGeometryPolyline"!==t||await async function(){return null==h&&(h=await Promise.all([n.e(9067),n.e(3296)]).then(n.bind(n,8923))),h}()}}}]); \ No newline at end of file diff --git a/docs/sentinel1-explorer/Amazon.238aa8dbf697de794b4416030d12783b.jpg b/docs/sentinel1-explorer/Amazon.238aa8dbf697de794b4416030d12783b.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9ff206ef5aaeb2b598674b34caf6734bd340217a GIT binary patch literal 5594 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 literal 0 HcmV?d00001 diff --git a/docs/sentinel1-explorer/Composite_Blue.a7ebe07b0181f4ba69b7f8d6720497b5.png b/docs/sentinel1-explorer/Composite_Blue.a7ebe07b0181f4ba69b7f8d6720497b5.png new file mode 100644 index 0000000000000000000000000000000000000000..e0c6368f78c026ad84173228a2a4643178d69645 GIT binary patch literal 505 zcmV-)tss)hN(3#eEo`jx zABd^FMzA$OvgBmB+p(C_L|N~W+zV5@3_QGFg_}(>9n&7tHWY!dMsJ;BHRp@tbu=BT zR`+df)})^ZMqm5t<~;En#o9t7eY735hqg8k>^!^r=chhs+}<9kCncdoF&BZLZD_~f z{@s_JJbtShthjuk$*rce5P>L7NDbI|aR+?<^v&qY9_ts;3H^oSia-xMfBMd&2X9=v ze#LNji8MvK5Xn#xDdH?!QG^l}U(p`w?ME_5E=i4cwrU>Rf{bSmV3 v(5aCw=uF7J(3z3r&{9Z_Tj^Cw$+GVktJAMc!Fs~C00000NkvXXu0mjf6Zq6# literal 0 HcmV?d00001 diff --git a/docs/sentinel1-explorer/Composite_Green.b751b38133e2588f27e594925df30140.png b/docs/sentinel1-explorer/Composite_Green.b751b38133e2588f27e594925df30140.png new file mode 100644 index 0000000000000000000000000000000000000000..73b0c9ca4f0c36b8c925ed2600bc24069ac8aa13 GIT binary patch literal 547 zcmV+;0^I$HP)qHg+*eJl*v$oM1+uZvWR~#pp7>m-E1Q90!WyPS%PjR zl{DsS5eXV3l8S`J-)hS-JU6YBdrO_BtWRVee#vnZY@-_ZQfi1BQDi<%Ft@ z2-Eg}Q_0k6miK$Csq3~pGx;s_C&Uf>uC?aB`xE&}!u+Jwzz_fc002ovPDHLkV1nbp6c)I$ztaD0e0sv04f4%?! literal 0 HcmV?d00001 diff --git a/docs/sentinel1-explorer/Composite_Red.1506162e49d8733e9898726f758df1a9.png b/docs/sentinel1-explorer/Composite_Red.1506162e49d8733e9898726f758df1a9.png new file mode 100644 index 0000000000000000000000000000000000000000..d4ac31da7fd521c5767ba6d24f3585cb6a97abc8 GIT binary patch literal 496 zcmVKpV0v|t}V z9JE_?=%%C!{io$Poo`xzT6LlB11xr*D)b5`tKi^$+*x&ND?$LG7Opu8HA=r m0H}e~;8H~ROYt9wi0} literal 0 HcmV?d00001 diff --git a/docs/sentinel1-explorer/CraterLakeAlt.81ff9fcf9d10bc36c94031de43146608.jpg b/docs/sentinel1-explorer/CraterLakeAlt.81ff9fcf9d10bc36c94031de43146608.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4f091c93a9782149539cc4d2abc8c5add7b4f28a GIT binary patch literal 3577 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 J-s;jm{~Ni7X3+ou literal 0 HcmV?d00001 diff --git a/docs/sentinel1-explorer/Garig.0fbb4c6154a30577899eeb921c1a0894.jpg b/docs/sentinel1-explorer/Garig.0fbb4c6154a30577899eeb921c1a0894.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9811b8912627d820af14ec06ec98b91bc49b5d5c GIT binary patch literal 4892 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 TFFre?{Ro|B4bDm2moxtdL>mlr literal 0 HcmV?d00001 diff --git a/docs/sentinel1-explorer/RGBComposite.ce33953b497e8ed72040319d9e107c78.png b/docs/sentinel1-explorer/RGBComposite.ce33953b497e8ed72040319d9e107c78.png new file mode 100644 index 0000000000000000000000000000000000000000..85c0ab2f910eef420261137924ef3e6a3bebd251 GIT binary patch literal 15307 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 literal 0 HcmV?d00001 diff --git a/docs/sentinel1-explorer/Render_VV_VH.47c6c27f1aaa735eea5e724598336a52.jpg b/docs/sentinel1-explorer/Render_VV_VH.47c6c27f1aaa735eea5e724598336a52.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a95212a05b14ef19ec6bb2d136a89a760005b216 GIT binary patch literal 5256 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 literal 0 HcmV?d00001 diff --git a/docs/sentinel1-explorer/Render_WaterIndex.6fc26ca848cb3b3681fbc5cdd46c54f0.jpg b/docs/sentinel1-explorer/Render_WaterIndex.6fc26ca848cb3b3681fbc5cdd46c54f0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..be39d1a0beb10e2396d18ba87b04bee293aa6cd3 GIT binary patch literal 5706 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 HyXF4?a)N2U literal 0 HcmV?d00001 diff --git a/docs/sentinel1-explorer/Richat.7497712f01c9c1017399b271a08cfbde.jpg b/docs/sentinel1-explorer/Richat.7497712f01c9c1017399b271a08cfbde.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3b9437d4eba2130bc76fe4df0e99d46f67a4dfa3 GIT binary patch literal 5671 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 QaR2}S07*qoM6N<$f|v#7egFUf literal 0 HcmV?d00001 diff --git a/docs/sentinel1-explorer/SAR_WaterAnomaly_Legend.a786dbad9a25724d50bcabdbef0b1ed1.png b/docs/sentinel1-explorer/SAR_WaterAnomaly_Legend.a786dbad9a25724d50bcabdbef0b1ed1.png new file mode 100644 index 0000000000000000000000000000000000000000..a5e02c52d6998ff28cbd39aa0a5991da18a2c3be GIT binary patch literal 1882 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 literal 0 HcmV?d00001 diff --git a/docs/sentinel1-explorer/Torshavn.9d59687646b4d64d99ff6d71ce40926d.jpg b/docs/sentinel1-explorer/Torshavn.9d59687646b4d64d99ff6d71ce40926d.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5a8a23a7531989d2c071cfe11363eace7b0c6f1b GIT binary patch literal 4749 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 literal 0 HcmV?d00001 diff --git a/docs/sentinel1-explorer/index.html b/docs/sentinel1-explorer/index.html new file mode 100644 index 00000000..b025af1b --- /dev/null +++ b/docs/sentinel1-explorer/index.html @@ -0,0 +1 @@ +Esri | Sentinel-1 Explorer

Esri | Sentinel-1 Explorer

Loading...
\ No newline at end of file diff --git a/docs/sentinel1-explorer/main.7a9aa3d2385a9946d55e.js b/docs/sentinel1-explorer/main.7a9aa3d2385a9946d55e.js new file mode 100644 index 00000000..8f0a8061 --- /dev/null +++ b/docs/sentinel1-explorer/main.7a9aa3d2385a9946d55e.js @@ -0,0 +1,2 @@ +/*! For license information please see main.7a9aa3d2385a9946d55e.js.LICENSE.txt */ +!function(){var e,t,n={77210:function(e,t,n){"use strict";n.d(t,{Z5:function(){return Le},HY:function(){return wn},mv:function(){return Fn},AA:function(){return Ye},yM:function(){return ot},xE:function(){return Bt},K3:function(){return je},h:function(){return We},GH:function(){return vn},wj:function(){return Xn},YY:function(){return De}});const r=!1,i=!0,o=!1,s=!0,a=!0,l=!0,u=!0,c=!0,d=!0,h=!0,p=!0,f=!0,m=!0,y=!0,g=!0,b=!1,v=!0,w=!0,_=!0,x=!0,S=!0,C=!0,M=!0,I=!0,T=!0,E=!0,k=!0,A=!0,P=!0,R=!1,O=!0,N=!0,L=!0,j=!0,D=!0,F=!0,Z=!0,z=!0,V=!0,U=!0,B=!0,G=!0,q=!0,$=!0,H=!0,W=!1,J=!1,Y=!1,X=!1,K=!1,Q=!1,ee=!1,te=!1,ne=!1,re=!0,ie=!1,oe=!1,se=!1,ae=!0,le=!1,ue=!1,ce=!1,de=!0,he=!0,pe=!0,fe=!0,me=!0,ye=!0,ge=!1,be=!1,ve=!1,we=!0,_e=!1,xe="app";let Se,Ce,Me,Ie,Te=0,Ee=!1,ke=!1,Ae=!1,Pe=!1,Re=null,Oe=0,Ne=!1;const Le={isDev:!!Y,isBrowser:!0,isServer:!1,isTesting:!!X},je=e=>{const t=new URL(e,Zn.$resourcesUrl$);return t.origin!==jn.location.origin?t.href:t.pathname},De=e=>Zn.$resourcesUrl$=e,Fe=(e,t="")=>{if(ne&&performance.mark){const n=`st:${e}:${t}:${Te++}`;return performance.mark(n),()=>performance.measure(`[Stencil] ${e}() <${t}>`,n)}return()=>{}},Ze="s-id",ze="sty-id",Ve="c-id",Ue="slot-fb{display:contents}slot-fb[hidden]{display:none}",Be="http://www.w3.org/1999/xlink",Ge=["formAssociatedCallback","formResetCallback","formDisabledCallback","formStateRestoreCallback"],qe={},$e=e=>"object"===(e=typeof e)||"function"===e;function He(e){var t,n,r;return null!==(r=null===(n=null===(t=e.head)||void 0===t?void 0:t.querySelector('meta[name="csp-nonce"]'))||void 0===n?void 0:n.getAttribute("content"))&&void 0!==r?r:void 0}const We=(e,t,...n)=>{let r=null,i=null,o=null,s=!1,a=!1;const l=[],u=t=>{for(let n=0;ne[t])).join(" "))}if(Y&&l.some(Xe)&&An("The must be the single root component. Make sure:\n- You are NOT using hostData() and in the same component.\n- is used once, and it's the single root component of the render() function."),F&&"function"==typeof e)return e(null===t?{}:t,l,Ke);const c=Je(e,null);return c.$attrs$=t,l.length>0&&(c.$children$=l),Z&&(c.$key$=i),re&&(c.$name$=o),c},Je=(e,t)=>{const n={$flags$:0,$tag$:e,$text$:t,$elm$:null,$children$:null};return L&&(n.$attrs$=null),Z&&(n.$key$=null),re&&(n.$name$=null),n},Ye={},Xe=e=>e&&e.$tag$===Ye,Ke={forEach:(e,t)=>e.map(Qe).forEach(t),map:(e,t)=>e.map(Qe).map(t).map(et)},Qe=e=>({vattrs:e.$attrs$,vchildren:e.$children$,vkey:e.$key$,vname:e.$name$,vtag:e.$tag$,vtext:e.$text$}),et=e=>{if("function"==typeof e.vtag){const t=Object.assign({},e.vattrs);return e.vkey&&(t.key=e.vkey),e.vname&&(t.name=e.vname),We(e.vtag,t,...e.vchildren||[])}const t=Je(e.vtag,e.vtext);return t.$attrs$=e.vattrs,t.$children$=e.vchildren,t.$key$=e.vkey,t.$name$=e.vname,t},tt=e=>{const t=Object.keys(e),n=t.indexOf("value");if(-1===n)return;const r=t.indexOf("type"),i=t.indexOf("min"),o=t.indexOf("max"),s=t.indexOf("step");(n should be set after "min", "max", "type" and "step"')},nt=(e,t,n,r,i,o,s)=>{let a,l,u,c;if(1===o.nodeType){for(a=o.getAttribute(Ve),a&&(l=a.split("."),l[0]!==s&&"0"!==l[0]||(u={$flags$:0,$hostId$:l[0],$nodeId$:l[1],$depth$:l[2],$index$:l[3],$tag$:o.tagName.toLowerCase(),$elm$:o,$attrs$:null,$children$:null,$key$:null,$name$:null,$text$:null},t.push(u),o.removeAttribute(Ve),e.$children$||(e.$children$=[]),e.$children$[u.$index$]=u,e=u,r&&"0"===u.$depth$&&(r[u.$index$]=u.$elm$))),c=o.childNodes.length-1;c>=0;c--)nt(e,t,n,r,i,o.childNodes[c],s);if(o.shadowRoot)for(c=o.shadowRoot.childNodes.length-1;c>=0;c--)nt(e,t,n,r,i,o.shadowRoot.childNodes[c],s)}else if(8===o.nodeType)l=o.nodeValue.split("."),l[1]!==s&&"0"!==l[1]||(a=l[0],u={$flags$:0,$hostId$:l[1],$nodeId$:l[2],$depth$:l[3],$index$:l[4],$elm$:o,$attrs$:null,$children$:null,$key$:null,$name$:null,$tag$:null,$text$:null},"t"===a?(u.$elm$=o.nextSibling,u.$elm$&&3===u.$elm$.nodeType&&(u.$text$=u.$elm$.textContent,t.push(u),o.remove(),e.$children$||(e.$children$=[]),e.$children$[u.$index$]=u,r&&"0"===u.$depth$&&(r[u.$index$]=u.$elm$))):u.$hostId$===s&&("s"===a?(u.$tag$="slot",l[5]?o["s-sn"]=u.$name$=l[5]:o["s-sn"]="",o["s-sr"]=!0,T&&r&&(u.$elm$=Dn.createElement(u.$tag$),u.$name$&&u.$elm$.setAttribute("name",u.$name$),o.parentNode.insertBefore(u.$elm$,o),o.remove(),"0"===u.$depth$&&(r[u.$index$]=u.$elm$)),n.push(u),e.$children$||(e.$children$=[]),e.$children$[u.$index$]=u):"r"===a&&(T&&r?o.remove():re&&(i["s-cr"]=o,o["s-cn"]=!0))));else if(e&&"style"===e.$tag$){const t=Je(null,o.textContent);t.$elm$=o,t.$index$="0",e.$children$=[t]}},rt=(e,t)=>{if(1===e.nodeType){let n=0;for(;nLn.map((t=>t(e))).find((e=>!!e)),ot=(e,t,n)=>{const r=(e=>te?In(e).$hostElement$:e)(e);return{emit:e=>(Y&&!r.isConnected&&Pn(`The "${t}" event was emitted, but the dispatcher node is no longer connected to the dom.`),st(r,t,{bubbles:!!(4&n),composed:!!(2&n),cancelable:!!(1&n),detail:e}))}},st=(e,t,n)=>{const r=Zn.ce(t,n);return e.dispatchEvent(r),r},at=new WeakMap,lt=(e,t,n)=>{let r=Nn.get(e);Un&&n?(r=r||new CSSStyleSheet,"string"==typeof r?r=t:r.replaceSync(t)):r=t,Nn.set(e,r)},ut=(e,t,n)=>{var r;const i=dt(t,n),o=Nn.get(i);if(!we)return i;if(e=11===e.nodeType?e:Dn,o)if("string"==typeof o){e=e.head||e;let n,s=at.get(e);if(s||at.set(e,s=new Set),!s.has(i)){if(Q&&e.host&&(n=e.querySelector(`[${ze}="${i}"]`)))n.innerHTML=o;else{n=Dn.createElement("style"),n.innerHTML=o;const t=null!==(r=Zn.$nonce$)&&void 0!==r?r:He(Dn);null!=t&&n.setAttribute("nonce",t),(K||W)&&n.setAttribute(ze,i),e.insertBefore(n,e.querySelector("link"))}4&t.$flags$&&(n.innerHTML+=Ue),s&&s.add(i)}}else fe&&!e.adoptedStyleSheets.includes(o)&&(e.adoptedStyleSheets=[...e.adoptedStyleSheets,o]);return i},ct=e=>{const t=e.$cmpMeta$,n=e.$hostElement$,r=t.$flags$,i=Fe("attachStyles",t.$tagName$),o=ut(T&&zn&&n.shadowRoot?n.shadowRoot:n.getRootNode(),t,e.$modeName$);(T||I)&&k&&10&r&&(n["s-sc"]=o,n.classList.add(o+"-h"),I&&2&r&&n.classList.add(o+"-s")),i()},dt=(e,t)=>"sc-"+(x&&t&&32&e.$flags$?e.$tagName$+"-"+t:e.$tagName$),ht=(e,t,n,r,i,o)=>{if(n!==r){let s=En(e,t),a=t.toLowerCase();if(D&&"class"===t){const t=e.classList,i=ft(n),o=ft(r);t.remove(...i.filter((e=>e&&!o.includes(e)))),t.add(...o.filter((e=>e&&!i.includes(e))))}else if(G&&"style"===t){if(N)for(const t in n)r&&null!=r[t]||(!K&&t.includes("-")?e.style.removeProperty(t):e.style[t]="");for(const t in r)n&&r[t]===n[t]||(!K&&t.includes("-")?e.style.setProperty(t,r[t]):e.style[t]=r[t])}else if(Z&&"key"===t);else if(V&&"ref"===t)r&&r(e);else if(!z||(te?s:e.__lookupSetter__(t))||"o"!==t[0]||"n"!==t[1]){if(U){const l=$e(r);if((s||l&&null!==r)&&!i)try{if(e.tagName.includes("-"))e[t]=r;else{const i=null==r?"":r;"list"===t?s=!1:null!=n&&e[t]==i||(e[t]=i)}}catch(e){}let u=!1;j&&a!==(a=a.replace(/^xlink\:?/,""))&&(t=a,u=!0),null==r||!1===r?!1===r&&""!==e.getAttribute(t)||(j&&u?e.removeAttributeNS(Be,t):e.removeAttribute(t)):(!s||4&o||i)&&!l&&(r=!0===r?"":r,j&&u?e.setAttributeNS(Be,t,r):e.setAttribute(t,r))}}else if(t="-"===t[2]?t.slice(3):En(jn,a)?a.slice(2):a[2]+t.slice(3),n||r){const i=t.endsWith(mt);t=t.replace(yt,""),n&&Zn.rel(e,t,n,i),r&&Zn.ael(e,t,r,i)}}},pt=/\s/,ft=e=>e?e.split(pt):[],mt="Capture",yt=new RegExp(mt+"$"),gt=(e,t,n,r)=>{const i=11===t.$elm$.nodeType&&t.$elm$.host?t.$elm$.host:t.$elm$,o=e&&e.$attrs$||qe,s=t.$attrs$||qe;if(N)for(r in o)r in s||ht(i,r,o[r],void 0,n,t.$flags$);for(r in s)ht(i,r,o[r],s[r],n,t.$flags$)},bt=(e,t,n,r)=>{var i;const o=t.$children$[n];let s,a,l,u=0;if(re&&!Ee&&(Ae=!0,"slot"===o.$tag$&&(Se&&r.classList.add(Se+"-s"),o.$flags$|=o.$children$?2:1)),Y&&o.$elm$&&An(`The JSX ${null!==o.$text$?`"${o.$text$}" text`:`"${o.$tag$}" element`} node should not be shared within the same renderer. The renderer caches element lookups in order to improve performance. However, a side effect from this is that the exact same JSX node should not be reused. For more information please see https://stenciljs.com/docs/templating-jsx#avoid-shared-jsx-nodes`),q&&null!==o.$text$)s=o.$elm$=Dn.createTextNode(o.$text$);else if(re&&1&o.$flags$)s=o.$elm$=J||K?Ot(o):Dn.createTextNode("");else{if(O&&!Pe&&(Pe="svg"===o.$tag$),s=o.$elm$=O?Dn.createElementNS(Pe?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",re&&2&o.$flags$?"slot-fb":o.$tag$):Dn.createElement(re&&2&o.$flags$?"slot-fb":o.$tag$),O&&Pe&&"foreignObject"===o.$tag$&&(Pe=!1),L&>(null,o,Pe),(T||I)&&null!=Se&&s["s-si"]!==Se&&s.classList.add(s["s-si"]=Se),o.$children$)for(u=0;u{Zn.$flags$|=1;const t=e.closest(Me.toLowerCase());if(null!=t)for(const n of Array.from(e.childNodes))null!=n["s-sh"]&&(t.insertBefore(n,null),n["s-sh"]=void 0,1===n.nodeType&&n["s-sn"]&&n.setAttribute("slot",n["s-sn"]),Ae=!0);Zn.$flags$&=-2},wt=(e,t)=>{var n;Zn.$flags$|=1;const r=e.childNodes;for(let e=r.length-1;e>=0;e--){const i=r[e];i["s-hn"]!==Me&&i["s-ol"]&&(Mt(i).insertBefore(i,Ct(i)),i["s-ol"].remove(),i["s-ol"]=void 0,i["s-sh"]=void 0,1===i.nodeType&&i.setAttribute("slot",null!==(n=i["s-sn"])&&void 0!==n?n:""),Ae=!0),t&&wt(i,t)}Zn.$flags$&=-2},_t=(e,t,n,r,i,o)=>{let s,a=re&&e["s-cr"]&&e["s-cr"].parentNode||e;for(T&&a.shadowRoot&&a.tagName===Me&&(a=a.shadowRoot);i<=o;++i)r[i]&&(s=bt(null,n,i,e),s&&(r[i].$elm$=s,a.insertBefore(s,re?Ct(t):t)))},xt=(e,t,n)=>{for(let r=t;r<=n;++r){const t=e[r];if(t){const e=t.$elm$;Pt(t),e&&(re&&(ke=!0,e["s-ol"]?e["s-ol"].remove():wt(e,!0)),e.remove())}}},St=(e,t,n=!1)=>e.$tag$===t.$tag$&&(re&&"slot"===e.$tag$?e.$name$===t.$name$:!(Z&&!n)||e.$key$===t.$key$),Ct=e=>e&&e["s-ol"]||e,Mt=e=>(e["s-ol"]?e["s-ol"]:e).parentNode,It=(e,t,n=!1)=>{const r=t.$elm$=e.$elm$,i=e.$children$,o=t.$children$,s=t.$tag$,a=t.$text$;let l;q&&null!==a?q&&re&&(l=r["s-cr"])?l.parentNode.textContent=a:q&&e.$text$!==a&&(r.data=a):(O&&(Pe="svg"===s||"foreignObject"!==s&&Pe),(L||M)&&(E&&"slot"===s||gt(e,t,Pe)),N&&null!==i&&null!==o?((e,t,n,r,i=!1)=>{let o,s,a=0,l=0,u=0,c=0,d=t.length-1,h=t[0],p=t[d],f=r.length-1,m=r[0],y=r[f];for(;a<=d&&l<=f;)if(null==h)h=t[++a];else if(null==p)p=t[--d];else if(null==m)m=r[++l];else if(null==y)y=r[--f];else if(St(h,m,i))It(h,m,i),h=t[++a],m=r[++l];else if(St(p,y,i))It(p,y,i),p=t[--d],y=r[--f];else if(St(h,y,i))!re||"slot"!==h.$tag$&&"slot"!==y.$tag$||wt(h.$elm$.parentNode,!1),It(h,y,i),e.insertBefore(h.$elm$,p.$elm$.nextSibling),h=t[++a],y=r[--f];else if(St(p,m,i))!re||"slot"!==h.$tag$&&"slot"!==y.$tag$||wt(p.$elm$.parentNode,!1),It(p,m,i),e.insertBefore(p.$elm$,h.$elm$),p=t[--d],m=r[++l];else{if(u=-1,Z)for(c=a;c<=d;++c)if(t[c]&&null!==t[c].$key$&&t[c].$key$===m.$key$){u=c;break}Z&&u>=0?(s=t[u],s.$tag$!==m.$tag$?o=bt(t&&t[l],n,u,e):(It(s,m,i),t[u]=void 0,o=s.$elm$),m=r[++l]):(o=bt(t&&t[l],n,l,e),m=r[++l]),o&&(re?Mt(h.$elm$).insertBefore(o,Ct(h.$elm$)):h.$elm$.parentNode.insertBefore(o,h.$elm$))}a>d?_t(e,null==r[f+1]?null:r[f+1].$elm$,n,r,l,f):N&&l>f&&xt(t,a,d)})(r,i,t,o,n):null!==o?(N&&q&&null!==e.$text$&&(r.textContent=""),_t(r,null,t,o,0,o.length-1)):N&&null!==i&&xt(i,0,i.length-1),O&&Pe&&"svg"===s&&(Pe=!1))},Tt=e=>{const t=e.childNodes;for(const e of t)if(1===e.nodeType){if(e["s-sr"]){const n=e["s-sn"];e.hidden=!1;for(const r of t)if(r!==e)if(r["s-hn"]!==e["s-hn"]||""!==n){if(1===r.nodeType&&(n===r.getAttribute("slot")||n===r["s-sn"])){e.hidden=!0;break}}else if(1===r.nodeType||3===r.nodeType&&""!==r.textContent.trim()){e.hidden=!0;break}}Tt(e)}},Et=[],kt=e=>{let t,n,r;for(const i of e.childNodes){if(i["s-sr"]&&(t=i["s-cr"])&&t.parentNode){n=t.parentNode.childNodes;const e=i["s-sn"];for(r=n.length-1;r>=0;r--)if(t=n[r],!(t["s-cn"]||t["s-nr"]||t["s-hn"]===i["s-hn"]||_e&&t["s-sh"]&&t["s-sh"]===i["s-hn"]))if(At(t,e)){let n=Et.find((e=>e.$nodeToRelocate$===t));ke=!0,t["s-sn"]=t["s-sn"]||e,n?(n.$nodeToRelocate$["s-sh"]=i["s-hn"],n.$slotRefNode$=i):(t["s-sh"]=i["s-hn"],Et.push({$slotRefNode$:i,$nodeToRelocate$:t})),t["s-sr"]&&Et.map((e=>{At(e.$nodeToRelocate$,t["s-sn"])&&(n=Et.find((e=>e.$nodeToRelocate$===t)),n&&!e.$slotRefNode$&&(e.$slotRefNode$=n.$slotRefNode$))}))}else Et.some((e=>e.$nodeToRelocate$===t))||Et.push({$nodeToRelocate$:t})}1===i.nodeType&&kt(i)}},At=(e,t)=>1===e.nodeType?null===e.getAttribute("slot")&&""===t||e.getAttribute("slot")===t:e["s-sn"]===t||""===t,Pt=e=>{V&&(e.$attrs$&&e.$attrs$.ref&&e.$attrs$.ref(null),e.$children$&&e.$children$.map(Pt))},Rt=(e,t,n=!1)=>{var r,i,o,s,a;const l=e.$hostElement$,u=e.$cmpMeta$,c=e.$vnode$||Je(null,null),d=Xe(t)?t:We(null,null,t);if(Me=l.tagName,Y&&Array.isArray(t)&&t.some(Xe))throw new Error(`The must be the single root component.\nLooks like the render() function of "${Me.toLowerCase()}" is returning an array that contains the .\n\nThe render() function should look like this instead:\n\nrender() {\n // Do not return an array\n return (\n {content}\n );\n}\n `);if(M&&u.$attrsToReflect$&&(d.$attrs$=d.$attrs$||{},u.$attrsToReflect$.map((([e,t])=>d.$attrs$[t]=l[e]))),n&&d.$attrs$)for(const e of Object.keys(d.$attrs$))l.hasAttribute(e)&&!["key","ref","style","class"].includes(e)&&(d.$attrs$[e]=l[e]);if(d.$tag$=null,d.$flags$|=4,e.$vnode$=d,d.$elm$=c.$elm$=T&&l.shadowRoot||l,(I||T)&&(Se=l["s-sc"]),re&&(Ce=l["s-cr"],Ee=zn&&0!=(1&u.$flags$),ke=!1),It(c,d,n),re){if(Zn.$flags$|=1,Ae){kt(d.$elm$);for(const e of Et){const t=e.$nodeToRelocate$;if(!t["s-ol"]){const e=J||K?Nt(t):Dn.createTextNode("");e["s-nr"]=t,t.parentNode.insertBefore(t["s-ol"]=e,t)}}for(const e of Et){const t=e.$nodeToRelocate$,a=e.$slotRefNode$;if(a){const e=a.parentNode;let n=a.nextSibling;if(!_e||n&&1===n.nodeType){let o=null===(r=t["s-ol"])||void 0===r?void 0:r.previousSibling;for(;o;){let r=null!==(i=o["s-nr"])&&void 0!==i?i:null;if(r&&r["s-sn"]===t["s-sn"]&&e===r.parentNode&&(r=r.nextSibling,!r||!r["s-nr"])){n=r;break}o=o.previousSibling}}(!n&&e!==t.parentNode||t.nextSibling!==n)&&t!==n&&(_e||t["s-hn"]||!t["s-ol"]||(t["s-hn"]=t["s-ol"].parentNode.nodeName),_e&&1===t.nodeType&&a["s-fs"]!==t.getAttribute("slot")&&(a["s-fs"]?t.setAttribute("slot",a["s-fs"]):t.removeAttribute("slot")),e.insertBefore(t,n),1===t.nodeType&&(t.hidden=null!==(o=t["s-ih"])&&void 0!==o&&o))}else 1===t.nodeType&&(n&&(t["s-ih"]=null!==(s=t.hidden)&&void 0!==s&&s),t.hidden=!0)}}ke&&Tt(d.$elm$),Zn.$flags$&=-2,Et.length=0}if(_e&&2&u.$flags$)for(const e of d.$elm$.childNodes)e["s-hn"]===Me||e["s-sh"]||(n&&null==e["s-ih"]&&(e["s-ih"]=null!==(a=e.hidden)&&void 0!==a&&a),e.hidden=!0)},Ot=e=>Dn.createComment(` (host=${Me.toLowerCase()})`),Nt=e=>Dn.createComment("org-location for "+(e.localName?`<${e.localName}> (host=${e["s-hn"]})`:`[${e.textContent}]`)),Lt=(e,t)=>{be&&t&&!e.$onRenderResolve$&&t["s-p"]&&t["s-p"].push(new Promise((t=>e.$onRenderResolve$=t)))},jt=(e,t)=>{if(H&&N&&(e.$flags$|=16),be&&4&e.$flags$)return void(e.$flags$|=512);Lt(e,e.$ancestorComponent$);const n=()=>Dt(e,t);return H?Kn(n):n()},Dt=(e,t)=>{const n=e.$hostElement$,r=Fe("scheduleUpdate",e.$cmpMeta$.$tagName$),i=te?e.$lazyInstance$:n;let o;return t?(te&&f&&(e.$flags$|=256,e.$queuedListeners$&&(e.$queuedListeners$.map((([e,t])=>qt(i,e,t))),e.$queuedListeners$=void 0)),$t(n,"componentWillLoad"),l&&(o=qt(i,"componentWillLoad"))):($t(n,"componentWillUpdate"),u&&(o=qt(i,"componentWillUpdate"))),$t(n,"componentWillRender"),c&&(o=Ft(o,(()=>qt(i,"componentWillRender")))),r(),Ft(o,(()=>zt(e,i,t)))},Ft=(e,t)=>Zt(e)?e.then(t):t(),Zt=e=>e instanceof Promise||e&&e.then&&"function"==typeof e.then,zt=async(e,t,n)=>{var r;const i=e.$hostElement$,o=Fe("update",e.$cmpMeta$.$tagName$),s=i["s-rc"];P&&n&&ct(e);const a=Fe("render",e.$cmpMeta$.$tagName$);if(Y&&(e.$flags$|=1024),K?await Vt(e,t,i,n):Vt(e,t,i,n),Y&&(e.$renderCount$=void 0===e.$renderCount$?1:e.$renderCount$+1,e.$flags$&=-1025),K)try{Wt(i),n&&(1&e.$cmpMeta$.$flags$?i["s-en"]="":2&e.$cmpMeta$.$flags$&&(i["s-en"]="c"))}catch(e){kn(e,i)}if(be&&s&&(s.map((e=>e())),i["s-rc"]=void 0),a(),o(),be){const t=null!==(r=i["s-p"])&&void 0!==r?r:[],n=()=>Ut(e);0===t.length?n():(Promise.all(t).then(n),e.$flags$|=4,t.length=0)}else Ut(e)},Vt=(e,t,n,i)=>{const o=!!r,s=!!te,a=!!H,l=!!N;try{if(Re=t,t=(o||t.render)&&t.render(),l&&a&&(e.$flags$&=-17),(l||s)&&(e.$flags$|=2),p||M)if(B||M){if(K)return Promise.resolve(t).then((t=>Rt(e,t,i)));Rt(e,t,i)}else{const r=n.shadowRoot;1&e.$cmpMeta$.$flags$?r.textContent=t:n.textContent=t}}catch(t){kn(t,e.$hostElement$)}return Re=null,null},Ut=e=>{const t=e.$cmpMeta$.$tagName$,n=e.$hostElement$,r=Fe("postUpdate",t),o=te?e.$lazyInstance$:n,l=e.$ancestorComponent$;a&&(Y&&(e.$flags$|=1024),qt(o,"componentDidRender"),Y&&(e.$flags$&=-1025)),$t(n,"componentDidRender"),64&e.$flags$?(s&&(Y&&(e.$flags$|=1024),qt(o,"componentDidUpdate"),Y&&(e.$flags$&=-1025)),$t(n,"componentDidUpdate"),r()):(e.$flags$|=64,be&&k&&Ht(n),i&&(Y&&(e.$flags$|=2048),qt(o,"componentDidLoad"),Y&&(e.$flags$&=-2049)),$t(n,"componentDidLoad"),r(),be&&(e.$onReadyResolve$(n),l||Gt(t))),_&&te&&e.$onInstanceResolve$(n),be&&(e.$onRenderResolve$&&(e.$onRenderResolve$(),e.$onRenderResolve$=void 0),512&e.$flags$&&Yn((()=>jt(e,!1))),e.$flags$&=-517)},Bt=e=>{if(N&&(Le.isBrowser||Le.isTesting)){const t=In(e),n=t.$hostElement$.isConnected;return n&&2==(18&t.$flags$)&&jt(t,!1),n}return!1},Gt=e=>{k&&Ht(Dn.documentElement),ve&&(Zn.$flags$|=2),Yn((()=>st(jn,"appload",{detail:{namespace:xe}}))),ne&&performance.measure&&performance.measure(`[Stencil] ${xe} initial load (by ${e})`,"st:app:start")},qt=(e,t,n)=>{if(e&&e[t])try{return e[t](n)}catch(e){kn(e)}},$t=(e,t)=>{ee&&st(e,"stencil_"+t,{bubbles:!0,composed:!0,detail:{namespace:xe}})},Ht=e=>ae?e.classList.add("hydrated"):se?e.setAttribute("hydrated",""):void 0,Wt=e=>{const t=e.children;if(null!=t)for(let e=0,n=t.length;e{const i=In(e),o=te?i.$hostElement$:e,s=i.$instanceValues$.get(t),a=i.$flags$,l=te?i.$lazyInstance$:o;var u,c;u=n,c=r.$members$[t][0],n=null==u||$e(u)?u:de&&4&c?"false"!==u&&(""===u||!!u):he&&2&c?parseFloat(u):pe&&1&c?String(u):u;const d=Number.isNaN(s)&&Number.isNaN(n);if((!te||!(8&a)||void 0===s)&&(n!==s&&!d)&&(i.$instanceValues$.set(t,n),Y&&(1024&i.$flags$?Pn(`The state/prop "${t}" changed during rendering. This can potentially lead to infinite-loops and other bugs.`,"\nElement",o,"\nNew value",n,"\nOld value",s):2048&i.$flags$&&Pn(`The state/prop "${t}" changed during "componentDidLoad()", this triggers extra re-renders, try to setup on "componentWillLoad()"`,"\nElement",o,"\nNew value",n,"\nOld value",s)),!te||l)){if($&&r.$watchers$&&128&a){const e=r.$watchers$[t];e&&e.map((e=>{try{l[e](n,s,t)}catch(e){kn(e,o)}}))}if(N&&2==(18&a)){if(me&&l.componentShouldUpdate&&!1===l.componentShouldUpdate(n,s,t))return;jt(i,!1)}}},Yt=(e,t,n)=>{var r;const i=e.prototype;if(R&&64&t.$flags$&&1&n&&Ge.forEach((e=>Object.defineProperty(i,e,{value(...t){const n=In(this),r=te?n.$hostElement$:this,i=te?n.$lazyInstance$:r;if(i){const n=i[e];"function"==typeof n&&n.call(i,...t)}else n.$onReadyPromise$.then((n=>{const r=n[e];"function"==typeof r&&r.call(n,...t)}))}}))),w&&t.$members$){$&&e.watchers&&(t.$watchers$=e.watchers);const o=Object.entries(t.$members$);if(o.map((([e,[r]])=>{(C||A)&&(31&r||(!te||2&n)&&32&r)?Object.defineProperty(i,e,{get(){return t=e,In(this).$instanceValues$.get(t);var t},set(i){if(Y){const i=In(this);0==(1&n)&&0===(i&&8&i.$flags$)&&0!=(31&r)&&0==(1024&r)&&Pn(`@Prop() "${e}" on <${t.$tagName$}> is immutable but was modified from within the component.\nMore information: https://stenciljs.com/docs/properties#prop-mutability`)}Jt(this,e,i,t)},configurable:!0,enumerable:!0}):te&&_&&1&n&&64&r&&Object.defineProperty(i,e,{value(...t){var n;const r=In(this);return null===(n=null==r?void 0:r.$onInstancePromise$)||void 0===n?void 0:n.then((()=>{var n;return null===(n=r.$lazyInstance$)||void 0===n?void 0:n[e](...t)}))}})})),S&&(!te||1&n)){const n=new Map;i.attributeChangedCallback=function(e,r,o){Zn.jmp((()=>{var s;const a=n.get(e);if(this.hasOwnProperty(a))o=this[a],delete this[a];else{if(i.hasOwnProperty(a)&&"number"==typeof this[a]&&this[a]==o)return;if(null==a){const n=In(this),i=null==n?void 0:n.$flags$;if(i&&!(8&i)&&128&i&&o!==r){const i=te?n.$hostElement$:this,a=te?n.$lazyInstance$:i,l=null===(s=t.$watchers$)||void 0===s?void 0:s[e];null==l||l.forEach((t=>{null!=a[t]&&a[t].call(a,o,r,e)}))}return}}this[a]=(null!==o||"boolean"!=typeof this[a])&&o}))},e.observedAttributes=Array.from(new Set([...Object.keys(null!==(r=t.$watchers$)&&void 0!==r?r:{}),...o.filter((([e,t])=>15&t[0])).map((([e,r])=>{var i;const o=r[1]||e;return n.set(o,e),M&&512&r[0]&&(null===(i=t.$attrsToReflect$)||void 0===i||i.push([e,o])),o}))]))}}return e},Xt=async(e,t,r,i)=>{let o;if(0==(32&t.$flags$)){if(t.$flags$|=32,te||Q){if(o=On(r,t,i),o.then){const e=(s=`st:load:${r.$tagName$}:${t.$modeName$}`,a=`[Stencil] Load module for <${r.$tagName$}>`,ne&&performance.mark?(0===performance.getEntriesByName(s,"mark").length&&performance.mark(s),()=>{0===performance.getEntriesByName(a,"measure").length&&performance.measure(a,s)}):()=>{});o=await o,e()}if((Y||J)&&!o)throw new Error(`Constructor for "${r.$tagName$}#${t.$modeName$}" was not found`);w&&!o.isProxied&&($&&(r.$watchers$=o.watchers),Yt(o,r,2),o.isProxied=!0);const e=Fe("createInstance",r.$tagName$);w&&(t.$flags$|=8);try{new o(t)}catch(e){kn(e)}w&&(t.$flags$&=-9),$&&(t.$flags$|=128),e(),Kt(t.$lazyInstance$)}else o=e.constructor,customElements.whenDefined(r.$tagName$).then((()=>t.$flags$|=128));if(P&&o.style){let i=o.style;x&&"string"!=typeof i&&(i=i[t.$modeName$=it(e)],K&&t.$modeName$&&e.setAttribute("s-mode",t.$modeName$));const s=dt(r,t.$modeName$);if(!Nn.has(s)){const e=Fe("registerStyles",r.$tagName$);!K&&T&&ue&&8&r.$flags$&&(i=await n.e(576).then(n.bind(n,20576)).then((e=>e.scopeCss(i,s,!1)))),lt(s,i,!!(1&r.$flags$)),e()}}}var s,a;const l=t.$ancestorComponent$,u=()=>jt(t,!0);be&&l&&l["s-rc"]?l["s-rc"].push(u):u()},Kt=e=>{te&&d&&qt(e,"connectedCallback")},Qt=e=>{if(0==(1&Zn.$flags$)){const t=In(e),n=t.$cmpMeta$,r=Fe("connectedCallback",n.$tagName$);if(b&&_n(e,t,n.$listeners$,!0),1&t.$flags$)_n(e,t,n.$listeners$,!1),(null==t?void 0:t.$lazyInstance$)?Kt(t.$lazyInstance$):(null==t?void 0:t.$onReadyPromise$)&&t.$onReadyPromise$.then((()=>Kt(t.$lazyInstance$)));else{let r;if(t.$flags$|=1,Q&&(r=e.getAttribute(Ze),r)){if(T&&zn&&1&n.$flags$){const t=x?ut(e.shadowRoot,n,e.getAttribute("s-mode")):ut(e.shadowRoot,n);e.classList.remove(t+"-h",t+"-s")}((e,t,n,r)=>{const i=Fe("hydrateClient",t),o=e.shadowRoot,s=[],a=T&&o?[]:null,l=r.$vnode$=Je(t,null);Zn.$orgLocNodes$||rt(Dn.body,Zn.$orgLocNodes$=new Map),e[Ze]=n,e.removeAttribute(Ze),nt(l,s,[],a,e,e,n),s.map((e=>{const n=e.$hostId$+"."+e.$nodeId$,r=Zn.$orgLocNodes$.get(n),i=e.$elm$;r&&zn&&""===r["s-en"]&&r.parentNode.insertBefore(i,r.nextSibling),o||(i["s-hn"]=t,r&&(i["s-ol"]=r,i["s-ol"]["s-nr"]=i)),Zn.$orgLocNodes$.delete(n)})),T&&o&&a.map((e=>{e&&o.appendChild(e)})),i()})(e,n.$tagName$,r,t)}if(re&&!r&&(K||(E||T)&&12&n.$flags$)&&en(e),be){let n=e;for(;n=n.parentNode||n.host;)if(Q&&1===n.nodeType&&n.hasAttribute("s-id")&&n["s-p"]||n["s-p"]){Lt(t,t.$ancestorComponent$=n);break}}C&&!K&&n.$members$&&Object.entries(n.$members$).map((([t,[n]])=>{if(31&n&&e.hasOwnProperty(t)){const n=e[t];delete e[t],e[t]=n}})),ge?Yn((()=>Xt(e,t,n))):Xt(e,t,n)}r()}},en=e=>{const t=e["s-cr"]=Dn.createComment(J?`content-ref (host=${e.localName})`:"");t["s-cn"]=!0,e.insertBefore(t,e.firstChild)},tn=e=>{te&&h&&qt(e,"disconnectedCallback"),o&&qt(e,"componentDidUnload")},nn=async e=>{if(0==(1&Zn.$flags$)){const t=In(e);f&&t.$rmListeners$&&(t.$rmListeners$.map((e=>e())),t.$rmListeners$=void 0),te?(null==t?void 0:t.$lazyInstance$)?tn(t.$lazyInstance$):(null==t?void 0:t.$onReadyPromise$)&&t.$onReadyPromise$.then((()=>tn(t.$lazyInstance$))):tn(e)}},rn=(e,t)=>{on(e),sn(e),un(e),ln(e),hn(e),cn(e),dn(e),pn(e),fn(e,t),an(e)},on=e=>{const t=e.cloneNode;e.cloneNode=function(e){const n=this,r=!!T&&(n.shadowRoot&&zn),i=t.call(n,!!r&&e);if(E&&!r&&e){let e,t,r=0;const o=["s-id","s-cr","s-lr","s-rc","s-sc","s-p","s-cn","s-sr","s-sn","s-hn","s-ol","s-nr","s-si"];for(;r!n.childNodes[r][e])),e&&(ie&&i.__appendChild?i.__appendChild(e.cloneNode(!0)):i.appendChild(e.cloneNode(!0))),t&&i.appendChild(n.childNodes[r].cloneNode(!0))}return i}},sn=e=>{e.__appendChild=e.appendChild,e.appendChild=function(e){const t=e["s-sn"]=yn(e),n=gn(this.childNodes,t);if(n){const r=bn(n,t),i=r[r.length-1];return i.parentNode.insertBefore(e,i.nextSibling),void Tt(this)}return this.__appendChild(e)}},an=e=>{e.__removeChild=e.removeChild,e.removeChild=function(e){if(e&&void 0!==e["s-sn"]){const t=gn(this.childNodes,e["s-sn"]);if(t){const n=bn(t,e["s-sn"]).find((t=>t===e));if(n)return n.remove(),void Tt(this)}}return this.__removeChild(e)}},ln=e=>{const t=e.prepend;e.prepend=function(...e){e.forEach((e=>{"string"==typeof e&&(e=this.ownerDocument.createTextNode(e));const n=e["s-sn"]=yn(e),r=gn(this.childNodes,n);if(r){const t=document.createTextNode("");t["s-nr"]=e,r["s-cr"].parentNode.__appendChild(t),e["s-ol"]=t;const i=bn(r,n)[0];return i.parentNode.insertBefore(e,i.nextSibling)}return 1===e.nodeType&&e.getAttribute("slot")&&(e.hidden=!0),t.call(this,e)}))}},un=e=>{e.append=function(...e){e.forEach((e=>{"string"==typeof e&&(e=this.ownerDocument.createTextNode(e)),this.appendChild(e)}))}},cn=e=>{const t=e.insertAdjacentHTML;e.insertAdjacentHTML=function(e,n){if("afterbegin"!==e&&"beforeend"!==e)return t.call(this,e,n);const r=this.ownerDocument.createElement("_");let i;if(r.innerHTML=n,"afterbegin"===e)for(;i=r.firstChild;)this.prepend(i);else if("beforeend"===e)for(;i=r.firstChild;)this.append(i)}},dn=e=>{e.insertAdjacentText=function(e,t){this.insertAdjacentHTML(e,t)}},hn=e=>{const t=e.insertAdjacentElement;e.insertAdjacentElement=function(e,n){return"afterbegin"!==e&&"beforeend"!==e?t.call(this,e,n):"afterbegin"===e?(this.prepend(n),n):"beforeend"===e?(this.append(n),n):n}},pn=e=>{const t=Object.getOwnPropertyDescriptor(Node.prototype,"textContent");Object.defineProperty(e,"__textContent",t),_e?Object.defineProperty(e,"textContent",{get(){return" "+mn(this.childNodes).map((e=>{var t,n;const r=[];let i=e.nextSibling;for(;i&&i["s-sn"]===e["s-sn"];)3!==i.nodeType&&1!==i.nodeType||r.push(null!==(n=null===(t=i.textContent)||void 0===t?void 0:t.trim())&&void 0!==n?n:""),i=i.nextSibling;return r.filter((e=>""!==e)).join(" ")})).filter((e=>""!==e)).join(" ")+" "},set(e){mn(this.childNodes).forEach((t=>{let n=t.nextSibling;for(;n&&n["s-sn"]===t["s-sn"];){const e=n;n=n.nextSibling,e.remove()}if(""===t["s-sn"]){const n=this.ownerDocument.createTextNode(e);n["s-sn"]="",t.parentElement.insertBefore(n,t.nextSibling)}else t.remove()}))}}):Object.defineProperty(e,"textContent",{get(){var e;const t=gn(this.childNodes,"");return 3===(null===(e=null==t?void 0:t.nextSibling)||void 0===e?void 0:e.nodeType)?t.nextSibling.textContent:t?t.textContent:this.__textContent},set(e){var t;const n=gn(this.childNodes,"");if(3===(null===(t=null==n?void 0:n.nextSibling)||void 0===t?void 0:t.nodeType))n.nextSibling.textContent=e;else if(n)n.textContent=e;else{this.__textContent=e;const t=this["s-cr"];t&&this.insertBefore(t,this.firstChild)}}})},fn=(e,t)=>{class n extends Array{item(e){return this[e]}}if(8&t.$flags$){const t=e.__lookupGetter__("childNodes");Object.defineProperty(e,"children",{get(){return this.childNodes.map((e=>1===e.nodeType))}}),Object.defineProperty(e,"childElementCount",{get(){return e.children.length}}),Object.defineProperty(e,"childNodes",{get(){const e=t.call(this);if(0==(1&Zn.$flags$)&&2&In(this).$flags$){const t=new n;for(let n=0;n{const t=[];for(const n of Array.from(e))n["s-sr"]&&t.push(n),t.push(...mn(n.childNodes));return t},yn=e=>e["s-sn"]||1===e.nodeType&&e.getAttribute("slot")||"",gn=(e,t)=>{let n,r=0;for(;r{const n=[e];for(;(e=e.nextSibling)&&e["s-sn"]===t;)n.push(e);return n},vn=(e,t)=>{const n={$flags$:t[0],$tagName$:t[1]};w&&(n.$members$=t[2]),f&&(n.$listeners$=t[3]),$&&(n.$watchers$=e.$watchers$),M&&(n.$attrsToReflect$=[]),T&&!zn&&1&n.$flags$&&(n.$flags$|=8),_e&&I&&2&n.$flags$?rn(e.prototype,n):(ce&&fn(e.prototype,n),oe&&on(e.prototype),ie&&sn(e.prototype),le&&2&n.$flags$&&pn(e.prototype));const r=e.prototype.connectedCallback,i=e.prototype.disconnectedCallback;return Object.assign(e.prototype,{__registerHost(){Tn(this,n)},connectedCallback(){Qt(this),d&&r&&r.call(this)},disconnectedCallback(){nn(this),h&&i&&i.call(this)},__attachShadow(){zn?ye?this.attachShadow({mode:"open",delegatesFocus:!!(16&n.$flags$)}):this.attachShadow({mode:"open"}):this.shadowRoot=this}}),e.is=n.$tagName$,Yt(e,n,3)},wn=(e,t)=>t,_n=(e,t,n,r)=>{f&&n&&(b&&(n=r?n.filter((([e])=>32&e)):n.filter((([e])=>!(32&e)))),n.map((([n,r,i])=>{const o=v?Sn(e,n):e,s=xn(t,i),a=Cn(n);Zn.ael(o,r,s,a),(t.$rmListeners$=t.$rmListeners$||[]).push((()=>Zn.rel(o,r,s,a)))})))},xn=(e,t)=>n=>{try{te?256&e.$flags$?e.$lazyInstance$[t](n):(e.$queuedListeners$=e.$queuedListeners$||[]).push([t,n]):e.$hostElement$[t](n)}catch(e){kn(e)}},Sn=(e,t)=>y&&4&t?Dn:m&&8&t?jn:g&&16&t?Dn.body:b&&32&t?e.parentElement:e,Cn=e=>Vn?{passive:0!=(1&e),capture:0!=(2&e)}:0!=(2&e),Mn=new WeakMap,In=e=>Mn.get(e),Tn=(e,t)=>{const n={$flags$:0,$hostElement$:e,$cmpMeta$:t,$instanceValues$:new Map};return Y&&(n.$renderCount$=0),_&&te&&(n.$onInstancePromise$=new Promise((e=>n.$onInstanceResolve$=e))),be&&(n.$onReadyPromise$=new Promise((e=>n.$onReadyResolve$=e)),e["s-p"]=[],e["s-rc"]=[]),_n(e,n,t.$listeners$,!1),Mn.set(e,n)},En=(e,t)=>t in e,kn=(e,t)=>(Ie||console.error)(e,t),An=(...e)=>{},Pn=(...e)=>{},Rn=new Map,On=(e,t,r)=>{const i=e.$tagName$.replace(/-/g,"_"),o=e.$lazyBundleId$;if(Y&&"string"!=typeof o)return void An(`Trying to lazily load component <${e.$tagName$}> with style mode "${t.$modeName$}", but it does not exist.`);const s=!W&&Rn.get(o);return s?s[i]:n(41993)(`./${o}.entry.js${W&&r?"?s-hmr="+r:""}`).then((e=>(W||Rn.set(o,e),e[i])),kn)},Nn=new Map,Ln=[],jn="undefined"!=typeof window?window:{},Dn=jn.document||{head:{}},Fn=jn.HTMLElement||class{},Zn={$flags$:0,$resourcesUrl$:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,n,r)=>e.addEventListener(t,n,r),rel:(e,t,n,r)=>e.removeEventListener(t,n,r),ce:(e,t)=>new CustomEvent(e,t)},zn=!ue||!T||(()=>(Dn.head.attachShadow+"").indexOf("[native")>-1)(),Vn=(()=>{let e=!1;try{Dn.addEventListener("e",null,Object.defineProperty({},"passive",{get(){e=!0}}))}catch(e){}return e})(),Un=!!fe&&(()=>{try{return new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync}catch(e){}return!1})(),Bn=[],Gn=[],qn=[],$n=(e,t)=>n=>{e.push(n),Ne||(Ne=!0,t&&4&Zn.$flags$?Yn(Jn):Zn.raf(Jn))},Hn=e=>{for(let t=0;t{let n=0,r=0;for(;n{if(ve&&Oe++,Hn(Bn),ve){const e=2==(6&Zn.$flags$)?performance.now()+14*Math.ceil(.1*Oe):1/0;Wn(Gn,e),Wn(qn,e),Gn.length>0&&(qn.push(...Gn),Gn.length=0),(Ne=Bn.length+Gn.length+qn.length>0)?Zn.raf(Jn):Oe=0}else Hn(Gn),(Ne=Bn.length>0)&&Zn.raf(Jn)},Yn=e=>{return Promise.resolve(t).then(e);var t},Xn=$n(Bn,!1),Kn=$n(Gn,!0)},41993:function(e){function t(e){return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}))}t.keys=function(){return[]},t.resolve=t,t.id=41993,e.exports=t},48117:function(e){var t;t=()=>(()=>{"use strict";var e={267:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.allowedToUse=void 0,t.allowedToUse=()=>{const{hostname:e}=window.location;return!(!e.endsWith("arcgis.com")&&!e.endsWith("esri.com"))}},913:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getAPIRootURL=t.useProdService=t.setCustomAPIRootURL=void 0;const n=["https://imagery-animation.eastus2.cloudapp.azure.com","https://imagery-animation2.eastus2.cloudapp.azure.com"];let r="livingatlas.arcgis.com"===window.location.host||"livingatlasstg.arcgis.com"===window.location.host,i="";t.setCustomAPIRootURL=e=>{i=e},t.useProdService=()=>{r=!0},t.getAPIRootURL=()=>{if(i)return i;if(!r)return"https://imagery-animation-dev.westus2.cloudapp.azure.com";const e=Math.floor(Math.random()*n.length);return n[e]}},601:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ESRI_LOGO_DARK_BASE64=t.ESRI_LOGO_LIGHT_BASE64=void 0,t.ESRI_LOGO_LIGHT_BASE64="data:image/png;base64,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",t.ESRI_LOGO_DARK_BASE64="data:image/png;base64,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"},465:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.convertImages2Video=void 0;const i=n(267),o=n(913),s=n(382),a=n(255),l=n(805);t.convertImages2Video=({data:e,animationSpeed:t,outputWidth:n,outputHeight:u,authoringApp:c,abortController:d})=>r(void 0,void 0,void 0,(function*(){if(!(0,i.allowedToUse)())throw new Error("The service is only accessible to living atlas applications.");if(!(null==e?void 0:e.length))throw new Error("Array of animation frame data cannot be empty.");if((null==e?void 0:e.length)>30)throw new Error("exceeded maximum number (30) of frames.");if(n>1920&&u>1080||u>1920&&n>1080)throw new Error("exceeded maximum dimension (1920x1080 or 1080x1920) of the output video.");if(!(0,l.isValidOutputSize)(n,u))throw new Error("invalid dimension of the output video.");if((0,a.shouldBeRateLimited)())throw new Error("the maximum number of jobs allowed per minute has been exceeded.");const h=(0,o.getAPIRootURL)(),p="image/jpeg",f=new FormData;let m=60;t&&(m=1e3/t),f.append("framerate",m.toString());const y=e[0].image.width,g=e[0].image.height;for(let t=0;tr(void 0,void 0,void 0,(function*(){let i=0;const o=`${e}/api/job/${t}/status`;return new Promise(((e,t)=>{const s=()=>r(void 0,void 0,void 0,(function*(){try{if((yield fetch(o,{signal:n.signal})).ok)return e(!0);i<5?(i++,s()):t()}catch(e){t(e)}}));s()}))})))(h,v,d);const w=yield((e,t,n)=>r(void 0,void 0,void 0,(function*(){const r=`${e}/video/${t}.mp4`,i=yield fetch(r,{signal:n.signal});return yield i.blob()})))(h,v,d);return{filename:v+".mp4",fileContent:w}}))},382:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.getImageBlob=t.calculateImageCrop=t.getFileName=void 0;const i=n(601);t.getFileName=(e,t,n)=>{let r=e.toString();for(;r.length{const i=t/e;let o=r*i,s=r;return o>n&&(o=n,s=n*(1/i)),o=Math.floor(o),s=Math.floor(s),{sx:Math.floor(Math.abs(o-n)/2),sy:Math.floor(Math.abs(s-r)/2),sWidth:o,sHeight:s}},t.getImageBlob=({image:e,imageInfo:n,outputContentType:i,outputHeight:a,outputWidth:l,sourceImageWidth:u,sourceImageHeight:c,authoringApp:d})=>r(void 0,void 0,void 0,(function*(){const r=document.createElement("canvas"),h=r.getContext("2d");a%2!=0&&(a-=1),l%2!=0&&(l-=1),r.width=l,r.height=a;const{sx:p,sy:f,sWidth:m,sHeight:y}=(0,t.calculateImageCrop)({outputHeight:a,outputWidth:l,sourceImageHeight:c,sourceImageWidth:u});return h.drawImage(e,p,f,m,y,0,0,r.width,r.height),yield s(r),o(r,d,n),yield new Promise(((e,t)=>{r.toBlob(e,i)}))}));const o=(e,t,n)=>{if(!t||!n)return;const{width:r}=e,i=e.getContext("2d");i.fillStyle="rgba(0,0,0,.3)",i.rect(0,0,r,24),i.fill(),i.shadowColor="black",i.shadowBlur=5,i.fillStyle="rgba(255,255,255,.9)",i.font="1rem Avenir Next";const o=i.measureText(t),s=i.measureText(n);i.fillText(t,10,18);const a=Math.max(r-s.width-10,o.width+20);i.fillText(n,a,18)},s=e=>{const t=e.getContext("2d"),{width:n,height:r}=e;return new Promise((e=>{const o=new Image;o.onload=function(){const i=o.width,s=o.height;t.drawImage(o,n-(i+10),r-(s+10)),e()},o.src=i.ESRI_LOGO_DARK_BASE64}))}},255:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldBeRateLimited=void 0;const n=[];t.shouldBeRateLimited=()=>{const e=(new Date).getTime();for(;n.length&&e-n[0]>6e4;)n.shift();return n.length>=4||(n.push(e),!1)}},805:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isValidOutputSize=void 0;const n=[[1920,1080],[1080,720],[1080,1080],[720,720],[1080,1920],[720,1080]];t.isValidOutputSize=(e,t)=>!!n.find((n=>n[0]===e&&n[1]===t))}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}var r={};return(()=>{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.useProdService=e.setCustomAPIRootURL=e.convertImages2Video=void 0;var t=n(465);Object.defineProperty(e,"convertImages2Video",{enumerable:!0,get:function(){return t.convertImages2Video}});var i=n(913);Object.defineProperty(e,"setCustomAPIRootURL",{enumerable:!0,get:function(){return i.setCustomAPIRootURL}}),Object.defineProperty(e,"useProdService",{enumerable:!0,get:function(){return i.useProdService}})})(),r})(),e.exports=t()},74560:function(e,t,n){var r,i;e.exports=(r=n(67294),i=n(93937),function(){"use strict";var e={8463:function(e,t,n){var r=n(8081),i=n.n(r),o=n(3645),s=n.n(o)()(i());s.push([e.id,".bar-label-text-group text{\r\n fill: var(--bar-label-text-color);\r\n font-size: var(--bar-label-text-font-size);\r\n transform: translateY(var(--bar-label-text-translate-y-position))\r\n}\r\n\r\n.bar-label-text-group text.is-sticky {\r\n transform: translateY(var(--bar-label-text-translate-y-position-sticky))\r\n}",""]),t.Z=s},5543:function(e,t,n){var r=n(8081),i=n.n(r),o=n(3645),s=n.n(o)()(i());s.push([e.id,".crosshair-reference-line-group {\r\n pointer-events: none;\r\n}\r\n\r\n.crosshair-reference-line-group line {\r\n stroke: var(--crosshair-reference-line-color);\r\n stroke-width: var(--crosshair-reference-line-width);\r\n stroke-dasharray: var(--crosshair-reference-line-stroke-dasharray);\r\n}",""]),t.Z=s},4574:function(e,t,n){var r=n(8081),i=n.n(r),o=n(3645),s=n.n(o)()(i());s.push([e.id,".grouped-bar-divider-line {\r\n stroke: var(--divider-line-color);\r\n width: var(--divider-line-width);\r\n pointer-events: none;\r\n}",""]),t.Z=s},3493:function(e,t,n){var r=n(8081),i=n.n(r),o=n(3645),s=n.n(o)()(i());s.push([e.id,".grouped-bar-label-text-group text{\r\n fill: var(--bar-label-text-color);\r\n font-size: var(--bar-label-text-font-size);\r\n transform: translateY(var(--bar-label-text-translate-y-position))\r\n}\r\n\r\n.grouped-bar-label-text-group text.is-sticky {\r\n transform: translateY(var(--bar-label-text-translate-y-position-sticky))\r\n}",""]),t.Z=s},2878:function(e,t,n){var r=n(8081),i=n.n(r),o=n(3645),s=n.n(o)()(i());s.push([e.id,".horizontal-reference-line-group {\r\n pointer-events: none;\r\n}\r\n\r\n.horizontal-reference-line-group line {\r\n pointer-events: none;\r\n stroke: var(--horizontal-reference-line-color);\r\n /* stroke-width: var(--horizontal-reference-line-width); */\r\n stroke-dasharray: var(--horizontal-reference-line-stroke-dasharray);\r\n}\r\n\r\n.horizontal-reference-line-group text {\r\n font-size: var(--horizontal-reference-line-label-text-size);\r\n fill: var(--horizontal-reference-line-label-text-color);\r\n}",""]),t.Z=s},8622:function(e,t,n){var r=n(8081),i=n.n(r),o=n(3645),s=n.n(o)()(i());s.push([e.id,"/* .reference-line-group {\r\n pointer-events: none;\r\n} */\r\n\r\n.vertical-reference-line-group line {\r\n pointer-events: none;\r\n stroke: var(--vertical-reference-line-color);\r\n stroke-width: var(--vertical-reference-line-width);\r\n stroke-dasharray: var(--vertical-reference-line-stroke-dasharray);\r\n}",""]),t.Z=s},3819:function(e,t,n){var r=n(8081),i=n.n(r),o=n(3645),s=n.n(o)()(i());s.push([e.id,".axis .tick text {\r\n fill: var(--axis-tick-text-color);\r\n font-size: var(--axis-tick-text-font-size);\r\n}\r\n\r\n.axis .tick line {\r\n stroke: var(--axis-tick-line-color);\r\n pointer-events: none;\r\n}\r\n\r\n.axis .domain {\r\n stroke: var(--axis-tick-line-color);\r\n}\r\n\r\n.axis.show-grid .tick line {\r\n stroke-dasharray: 1 1;\r\n pointer-events: none;\r\n}",""]),t.Z=s},7179:function(e,t,n){var r=n(8081),i=n.n(r),o=n(3645),s=n.n(o)()(i());s.push([e.id,":root {\r\n /*\r\n * variables that control the style of the axis tick line and text\r\n */\r\n --axis-tick-line-color: rgba(0,0,0,.5);\r\n --axis-tick-text-color: #303030;\r\n --axis-tick-text-font-size: 10px;\r\n\r\n /*\r\n * variables that control the style of the bar label text\r\n */\r\n --bar-label-text-color: #303030;\r\n --bar-label-text-font-size: 10px;\r\n /*\r\n * this variable will be used to adjust the position of \r\n * bar-label-text-group text element along the y axis.\r\n */\r\n --bar-label-text-translate-y-position: -8px;\r\n --bar-label-text-translate-y-position-sticky: -8px;\r\n\r\n /*\r\n * variables that control the style of the chart tooltip\r\n */\r\n --tooltip-background-color: rgba(255,255,255,1);\r\n --tooltip-text-color: #303030;\r\n --tooltip-text-font-size: .8rem;\r\n --tooltip-max-width: 200px;\r\n --tooltip-border-color: transparent;\r\n --tooltip-dropshadow-color: rgba(0,0,0,.2);\r\n\r\n /*\r\n * variables that control the style of crosshair reference line\r\n */\r\n --crosshair-reference-line-color: rgba(0,0,0,.5);\r\n --crosshair-reference-line-width: 1px;\r\n --crosshair-reference-line-stroke-dasharray: 1 1;\r\n\r\n /*\r\n * variables that control the style of user provided vertical reference line\r\n */\r\n --vertical-reference-line-color: rgba(50, 50, 50, .5);\r\n --vertical-reference-line-width: 1px;\r\n --vertical-reference-line-stroke-dasharray: none;\r\n\r\n /*\r\n * variables that control the style of user provided horizontal reference line\r\n */\r\n --horizontal-reference-line-color: rgba(50, 50, 50, .5);\r\n --horizontal-reference-line-width: 1px;\r\n --horizontal-reference-line-stroke-dasharray: none;\r\n --horizontal-reference-line-label-text-color: rgba(30, 30, 30, .9);\r\n --horizontal-reference-line-label-text-size: .8rem;\r\n\r\n /*\r\n * variables that control the style of divider line that is used in Diverging Bar Chart and similar\r\n */\r\n --divider-line-color: rgba(0,0,0,.5);\r\n --divider-line-width: 1px;\r\n}",""]),t.Z=s},3645:function(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,i,o){"string"==typeof e&&(e=[[null,e,void 0]]);var s={};if(r)for(var a=0;a0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=o),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),i&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=i):c[4]="".concat(i)),t.push(c))}},t}},8081:function(e){e.exports=function(e){return e[1]}},5251:function(e,t,n){var r=n(8156),i=Symbol.for("react.element"),o=Symbol.for("react.fragment"),s=Object.prototype.hasOwnProperty,a=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,o={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)s.call(t,r)&&!l.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:i,type:e,key:u,ref:c,props:o,_owner:a.current}}t.Fragment=o,t.jsx=u,t.jsxs=u},5893:function(e,t,n){e.exports=n(5251)},2415:function(e,t,n){n.r(t);var r=n(3379),i=n.n(r),o=n(7795),s=n.n(o),a=n(569),l=n.n(a),u=n(3565),c=n.n(u),d=n(9216),h=n.n(d),p=n(4589),f=n.n(p),m=n(8463),y={};y.styleTagTransform=f(),y.setAttributes=c(),y.insert=l().bind(null,"head"),y.domAPI=s(),y.insertStyleElement=h(),i()(m.Z,y),t.default=m.Z&&m.Z.locals?m.Z.locals:void 0},6994:function(e,t,n){n.r(t);var r=n(3379),i=n.n(r),o=n(7795),s=n.n(o),a=n(569),l=n.n(a),u=n(3565),c=n.n(u),d=n(9216),h=n.n(d),p=n(4589),f=n.n(p),m=n(5543),y={};y.styleTagTransform=f(),y.setAttributes=c(),y.insert=l().bind(null,"head"),y.domAPI=s(),y.insertStyleElement=h(),i()(m.Z,y),t.default=m.Z&&m.Z.locals?m.Z.locals:void 0},9662:function(e,t,n){n.r(t);var r=n(3379),i=n.n(r),o=n(7795),s=n.n(o),a=n(569),l=n.n(a),u=n(3565),c=n.n(u),d=n(9216),h=n.n(d),p=n(4589),f=n.n(p),m=n(4574),y={};y.styleTagTransform=f(),y.setAttributes=c(),y.insert=l().bind(null,"head"),y.domAPI=s(),y.insertStyleElement=h(),i()(m.Z,y),t.default=m.Z&&m.Z.locals?m.Z.locals:void 0},6526:function(e,t,n){n.r(t);var r=n(3379),i=n.n(r),o=n(7795),s=n.n(o),a=n(569),l=n.n(a),u=n(3565),c=n.n(u),d=n(9216),h=n.n(d),p=n(4589),f=n.n(p),m=n(3493),y={};y.styleTagTransform=f(),y.setAttributes=c(),y.insert=l().bind(null,"head"),y.domAPI=s(),y.insertStyleElement=h(),i()(m.Z,y),t.default=m.Z&&m.Z.locals?m.Z.locals:void 0},6673:function(e,t,n){n.r(t);var r=n(3379),i=n.n(r),o=n(7795),s=n.n(o),a=n(569),l=n.n(a),u=n(3565),c=n.n(u),d=n(9216),h=n.n(d),p=n(4589),f=n.n(p),m=n(2878),y={};y.styleTagTransform=f(),y.setAttributes=c(),y.insert=l().bind(null,"head"),y.domAPI=s(),y.insertStyleElement=h(),i()(m.Z,y),t.default=m.Z&&m.Z.locals?m.Z.locals:void 0},7782:function(e,t,n){n.r(t);var r=n(3379),i=n.n(r),o=n(7795),s=n.n(o),a=n(569),l=n.n(a),u=n(3565),c=n.n(u),d=n(9216),h=n.n(d),p=n(4589),f=n.n(p),m=n(8622),y={};y.styleTagTransform=f(),y.setAttributes=c(),y.insert=l().bind(null,"head"),y.domAPI=s(),y.insertStyleElement=h(),i()(m.Z,y),t.default=m.Z&&m.Z.locals?m.Z.locals:void 0},5526:function(e,t,n){n.r(t);var r=n(3379),i=n.n(r),o=n(7795),s=n.n(o),a=n(569),l=n.n(a),u=n(3565),c=n.n(u),d=n(9216),h=n.n(d),p=n(4589),f=n.n(p),m=n(3819),y={};y.styleTagTransform=f(),y.setAttributes=c(),y.insert=l().bind(null,"head"),y.domAPI=s(),y.insertStyleElement=h(),i()(m.Z,y),t.default=m.Z&&m.Z.locals?m.Z.locals:void 0},7141:function(e,t,n){n.r(t);var r=n(3379),i=n.n(r),o=n(7795),s=n.n(o),a=n(569),l=n.n(a),u=n(3565),c=n.n(u),d=n(9216),h=n.n(d),p=n(4589),f=n.n(p),m=n(7179),y={};y.styleTagTransform=f(),y.setAttributes=c(),y.insert=l().bind(null,"head"),y.domAPI=s(),y.insertStyleElement=h(),i()(m.Z,y),t.default=m.Z&&m.Z.locals?m.Z.locals:void 0},3379:function(e){var t=[];function n(e){for(var n=-1,r=0;r0?" ".concat(n.layer):""," {")),r+=n.css,i&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},4589:function(e){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},761:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Area=void 0;var s=n(5893),a=o(n(8156)),l=n(9990);t.Area=function(e){var t=e.xScale,n=e.yScale,r=e.data,i=e.svgContainerData,o=e.fill,u=void 0===o?"skyblue":o,c=a.default.useRef(),d=a.useMemo((function(){var e=n.domain()[0];return l.area().x((function(e){return t(e.x)})).y0(n(e)).y1((function(e){return n(e.y)}))}),[t,n]);return a.useEffect((function(){var e;i&&t&&n&&r&&((e=l.select(c.current).select("path")).size()&&e.remove().exit(),l.select(c.current).append("path").data([r]).style("fill",u).attr("d",d))}),[t,n,r]),s.jsx("g",{ref:c,className:"area-group"},void 0)}},4456:function(e,t,n){var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n")}),[Z,t]);return o.jsxs("div",r({style:{position:"relative",width:P||"100%",height:R||"100%"}},{children:[o.jsxs(l.default,r({margin:N,dimensionOnChange:D},{children:[o.jsx(f.default,{xScale:G,yScale:q,width:A,data:t},void 0),o.jsx(u.BottomAxis,{scale:G,showGridLines:null==S?void 0:S.showGridLines,numberOfTicks:null==S?void 0:S.numberOfTicks,tickFormatFunction:null==S?void 0:S.tickFormatFunction,shouldRotateTextLabels:S.shouldRotateTextLabels},void 0),o.jsx(c.LeftAxis,{scale:q,showGridLines:M.showGridLines,numberOfTicks:M.numberOfTicks,tickFormatFunction:null==M?void 0:M.tickFormatFunction},void 0),n?o.jsx(y.VerticalCrosshairLine,{xPosition:Z?Z.xPosition:null},void 0):o.jsx(o.Fragment,{},void 0),o.jsx(d.PointerEventsOverlay,{xScale:G,xDomain:t[0].values.map((function(e){return e.x})),hoveredChartItemOnChange:z},void 0),T&&T.length?T.map((function(e){return o.jsx(g.VerticalReferenceLine,{xPosition:G(e.x),onMouseEnter:B.bind(null,e),onMouseLeave:B.bind(null,null)},e.x)})):o.jsx(o.Fragment,{},void 0),k&&k.length?k.map((function(e){return o.jsx(b.HorizontalReferenceLine,{y1:q(e.y1),y2:q(e.y2),label:e.label},e.y1+"-"+e.y2)})):o.jsx(o.Fragment,{},void 0)]}),void 0),n&&Z&&o.jsx(p.Tooltip,{content:$,xPosition:Z.xPosition,dimension:j,margin:N},void 0),U&&o.jsx(h.TooltipOnTop,{content:U.tooltip,xPosition:G(U.x),dimension:j,margin:N},void 0)]}),void 0)}},5528:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Tooltip=void 0;var s=n(5893),a=o(n(8156));t.Tooltip=function(e){var t=e.content,n=e.dimension,r=e.xPosition,i=e.margin,o=a.default.useRef(),l=a.default.useState({top:0,left:0}),u=l[0],c=l[1];return a.useEffect((function(){null!==r&&null!==t&&function(){var e=o.current;if(e){var t=n.width,s=n.height,a=i.left,l=t+i.left,u=e.offsetWidth,d=s/2-e.offsetHeight/2,h=r+i.left,p=h+u>=l?h-(u+15):Math.max(h+15,a);c({top:d,left:p})}}()}),[r,t]),t?s.jsx("div",{ref:o,style:{position:"absolute",left:u.left+"px",top:u.top+"px",padding:".1rem .2rem",pointerEvents:"none",boxSizing:"border-box",boxShadow:"0 0 5px 2px var(--tooltip-dropshadow-color)",maxWidth:"var(--tooltip-max-width)",zIndex:5,background:"var(--tooltip-background-color)",color:"var(--tooltip-text-color)",fontSize:"var(--tooltip-text-font-size)",border:"solid 1px var(--tooltip-border-color)"},dangerouslySetInnerHTML:{__html:t}},void 0):null}},7131:function(e,t,n){var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0?"-":"+",r=Math.abs(e),i=Math.floor(r/60),o=r%60;if(0===o)return n+String(i);var s=t||"";return n+String(i)+s+(0,u.default)(o,2)}function b(e,t){return e%60==0?(e>0?"-":"+")+(0,u.default)(Math.abs(e)/60,2):v(e,t)}function v(e,t){var n=t||"",r=e>0?"-":"+",i=Math.abs(e);return r+(0,u.default)(Math.floor(i/60),2)+n+(0,u.default)(i%60,2)}var w={G:function(e,t,n){var r=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var r=e.getUTCFullYear(),i=r>0?r:1-r;return n.ordinalNumber(i,{unit:"year"})}return c.default.y(e,t)},Y:function(e,t,n,r){var i=(0,l.default)(e,r),o=i>0?i:1-i;if("YY"===t){var s=o%100;return(0,u.default)(s,2)}return"Yo"===t?n.ordinalNumber(o,{unit:"year"}):(0,u.default)(o,t.length)},R:function(e,t){var n=(0,s.default)(e);return(0,u.default)(n,t.length)},u:function(e,t){var n=e.getUTCFullYear();return(0,u.default)(n,t.length)},Q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return(0,u.default)(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return(0,u.default)(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){var r=e.getUTCMonth();switch(t){case"M":case"MM":return c.default.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){var r=e.getUTCMonth();switch(t){case"L":return String(r+1);case"LL":return(0,u.default)(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){var i=(0,a.default)(e,r);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):(0,u.default)(i,t.length)},I:function(e,t,n){var r=(0,o.default)(e);return"Io"===t?n.ordinalNumber(r,{unit:"week"}):(0,u.default)(r,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):c.default.d(e,t)},D:function(e,t,n){var r=(0,i.default)(e);return"Do"===t?n.ordinalNumber(r,{unit:"dayOfYear"}):(0,u.default)(r,t.length)},E:function(e,t,n){var r=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){var i=e.getUTCDay(),o=(i-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return(0,u.default)(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){var i=e.getUTCDay(),o=(i-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return(0,u.default)(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){var r=e.getUTCDay(),i=0===r?7:r;switch(t){case"i":return String(i);case"ii":return(0,u.default)(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){var r=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){var r,i=e.getUTCHours();switch(r=12===i?h:0===i?d:i/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){var r,i=e.getUTCHours();switch(r=i>=17?m:i>=12?f:i>=4?p:y,t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var r=e.getUTCHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return c.default.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):c.default.H(e,t)},K:function(e,t,n){var r=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(r,{unit:"hour"}):(0,u.default)(r,t.length)},k:function(e,t,n){var r=e.getUTCHours();return 0===r&&(r=24),"ko"===t?n.ordinalNumber(r,{unit:"hour"}):(0,u.default)(r,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):c.default.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):c.default.s(e,t)},S:function(e,t){return c.default.S(e,t)},X:function(e,t,n,r){var i=(r._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(t){case"X":return b(i);case"XXXX":case"XX":return v(i);default:return v(i,":")}},x:function(e,t,n,r){var i=(r._originalDate||e).getTimezoneOffset();switch(t){case"x":return b(i);case"xxxx":case"xx":return v(i);default:return v(i,":")}},O:function(e,t,n,r){var i=(r._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+g(i,":");default:return"GMT"+v(i,":")}},z:function(e,t,n,r){var i=(r._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+g(i,":");default:return"GMT"+v(i,":")}},t:function(e,t,n,r){var i=r._originalDate||e,o=Math.floor(i.getTime()/1e3);return(0,u.default)(o,t.length)},T:function(e,t,n,r){var i=(r._originalDate||e).getTime();return(0,u.default)(i,t.length)}};t.default=w,e.exports=t.default},62699:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(87394)),o={y:function(e,t){var n=e.getUTCFullYear(),r=n>0?n:1-n;return(0,i.default)("yy"===t?r%100:r,t.length)},M:function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):(0,i.default)(n+1,2)},d:function(e,t){return(0,i.default)(e.getUTCDate(),t.length)},a:function(e,t){var n=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return"am"===n?"a.m.":"p.m."}},h:function(e,t){return(0,i.default)(e.getUTCHours()%12||12,t.length)},H:function(e,t){return(0,i.default)(e.getUTCHours(),t.length)},m:function(e,t){return(0,i.default)(e.getUTCMinutes(),t.length)},s:function(e,t){return(0,i.default)(e.getUTCSeconds(),t.length)},S:function(e,t){var n=t.length,r=e.getUTCMilliseconds(),o=Math.floor(r*Math.pow(10,n-3));return(0,i.default)(o,t.length)}};t.default=o,e.exports=t.default},95209:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},r=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},i={p:r,P:function(e,t){var i,o=e.match(/(P+)(p+)?/)||[],s=o[1],a=o[2];if(!a)return n(e,t);switch(s){case"P":i=t.dateTime({width:"short"});break;case"PP":i=t.dateTime({width:"medium"});break;case"PPP":i=t.dateTime({width:"long"});break;default:i=t.dateTime({width:"full"})}return i.replace("{{date}}",n(s,t)).replace("{{time}}",r(a,t))}};t.default=i,e.exports=t.default},93561:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()},e.exports=t.default},21603:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(1,arguments);var t=(0,i.default)(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var r=t.getTime(),a=n-r;return Math.floor(a/s)+1};var i=r(n(71171)),o=r(n(68734)),s=864e5;e.exports=t.default},81370:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(1,arguments);var t=(0,i.default)(e),n=t.getUTCFullYear(),r=new Date(0);r.setUTCFullYear(n+1,0,4),r.setUTCHours(0,0,0,0);var a=(0,s.default)(r),l=new Date(0);l.setUTCFullYear(n,0,4),l.setUTCHours(0,0,0,0);var u=(0,s.default)(l);return t.getTime()>=a.getTime()?n+1:t.getTime()>=u.getTime()?n:n-1};var i=r(n(71171)),o=r(n(68734)),s=r(n(80079));e.exports=t.default},91354:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(1,arguments);var t=(0,i.default)(e),n=(0,o.default)(t).getTime()-(0,s.default)(t).getTime();return Math.round(n/l)+1};var i=r(n(71171)),o=r(n(80079)),s=r(n(94275)),a=r(n(68734)),l=6048e5;e.exports=t.default},66226:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n,r,u,c,d,h,p,f;(0,o.default)(1,arguments);var m=(0,i.default)(e),y=m.getUTCFullYear(),g=(0,l.getDefaultOptions)(),b=(0,a.default)(null!==(n=null!==(r=null!==(u=null!==(c=null==t?void 0:t.firstWeekContainsDate)&&void 0!==c?c:null==t||null===(d=t.locale)||void 0===d||null===(h=d.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==u?u:g.firstWeekContainsDate)&&void 0!==r?r:null===(p=g.locale)||void 0===p||null===(f=p.options)||void 0===f?void 0:f.firstWeekContainsDate)&&void 0!==n?n:1);if(!(b>=1&&b<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var v=new Date(0);v.setUTCFullYear(y+1,0,b),v.setUTCHours(0,0,0,0);var w=(0,s.default)(v,t),_=new Date(0);_.setUTCFullYear(y,0,b),_.setUTCHours(0,0,0,0);var x=(0,s.default)(_,t);return m.getTime()>=w.getTime()?y+1:m.getTime()>=x.getTime()?y:y-1};var i=r(n(71171)),o=r(n(68734)),s=r(n(69209)),a=r(n(82084)),l=n(98729);e.exports=t.default},60623:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,a.default)(1,arguments);var n=(0,i.default)(e),r=(0,o.default)(n,t).getTime()-(0,s.default)(n,t).getTime();return Math.round(r/l)+1};var i=r(n(71171)),o=r(n(69209)),s=r(n(34118)),a=r(n(68734)),l=6048e5;e.exports=t.default},56736:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isProtectedDayOfYearToken=function(e){return-1!==n.indexOf(e)},t.isProtectedWeekYearToken=function(e){return-1!==r.indexOf(e)},t.throwProtectedError=function(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))};var n=["D","DD"],r=["YY","YYYY"]},68734:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")},e.exports=t.default},94275:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,s.default)(1,arguments);var t=(0,i.default)(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),(0,o.default)(n)};var i=r(n(81370)),o=r(n(80079)),s=r(n(68734));e.exports=t.default},80079:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(1,arguments);var t=(0,i.default)(e),n=t.getUTCDay(),r=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-r),t.setUTCHours(0,0,0,0),t};var i=r(n(71171)),o=r(n(68734));e.exports=t.default},34118:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n,r,u,c,d,h,p,f;(0,o.default)(1,arguments);var m=(0,l.getDefaultOptions)(),y=(0,a.default)(null!==(n=null!==(r=null!==(u=null!==(c=null==t?void 0:t.firstWeekContainsDate)&&void 0!==c?c:null==t||null===(d=t.locale)||void 0===d||null===(h=d.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==u?u:m.firstWeekContainsDate)&&void 0!==r?r:null===(p=m.locale)||void 0===p||null===(f=p.options)||void 0===f?void 0:f.firstWeekContainsDate)&&void 0!==n?n:1),g=(0,i.default)(e,t),b=new Date(0);return b.setUTCFullYear(g,0,y),b.setUTCHours(0,0,0,0),(0,s.default)(b,t)};var i=r(n(66226)),o=r(n(68734)),s=r(n(69209)),a=r(n(82084)),l=n(98729);e.exports=t.default},69209:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n,r,l,u,c,d,h,p;(0,o.default)(1,arguments);var f=(0,a.getDefaultOptions)(),m=(0,s.default)(null!==(n=null!==(r=null!==(l=null!==(u=null==t?void 0:t.weekStartsOn)&&void 0!==u?u:null==t||null===(c=t.locale)||void 0===c||null===(d=c.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==l?l:f.weekStartsOn)&&void 0!==r?r:null===(h=f.locale)||void 0===h||null===(p=h.options)||void 0===p?void 0:p.weekStartsOn)&&void 0!==n?n:0);if(!(m>=0&&m<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var y=(0,i.default)(e),g=y.getUTCDay(),b=(g=1&&z<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var V=(0,d.default)(null!==(k=null!==(A=null!==(P=null!==(R=null==n?void 0:n.weekStartsOn)&&void 0!==R?R:null==n||null===(O=n.locale)||void 0===O||null===(N=O.options)||void 0===N?void 0:N.weekStartsOn)&&void 0!==P?P:F.weekStartsOn)&&void 0!==A?A:null===(L=F.locale)||void 0===L||null===(j=L.options)||void 0===j?void 0:j.weekStartsOn)&&void 0!==k?k:0);if(!(V>=0&&V<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!Z.localize)throw new RangeError("locale must contain localize property");if(!Z.formatLong)throw new RangeError("locale must contain formatLong property");var U=(0,s.default)(e);if(!(0,i.default)(U))throw new RangeError("Invalid time value");var B=(0,u.default)(U),G=(0,o.default)(U,B),q={firstWeekContainsDate:z,weekStartsOn:V,locale:Z,_originalDate:U};return D.match(y).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,l.default[t])(e,Z.formatLong):e})).join("").match(m).map((function(r){if("''"===r)return"'";var i=r[0];if("'"===i)return function(e){var t=e.match(g);if(!t)return e;return t[1].replace(b,"'")}(r);var o=a.default[i];if(o)return null!=n&&n.useAdditionalWeekYearTokens||!(0,c.isProtectedWeekYearToken)(r)||(0,c.throwProtectedError)(r,t,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!(0,c.isProtectedDayOfYearToken)(r)||(0,c.throwProtectedError)(r,t,String(e)),o(G,r,Z.localize,q);if(i.match(v))throw new RangeError("Format string contains an unescaped latin alphabet character `"+i+"`");return r})).join("")};var i=r(n(39989)),o=r(n(33239)),s=r(n(71171)),a=r(n(52084)),l=r(n(95209)),u=r(n(93561)),c=n(56736),d=r(n(82084)),h=r(n(68734)),p=n(98729),f=r(n(97561)),m=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,y=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,g=/^'([^]*?)'?$/,b=/''/g,v=/[a-zA-Z]/;e.exports=t.default},62382:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(1,arguments),e instanceof Date||"object"===(0,i.default)(e)&&"[object Date]"===Object.prototype.toString.call(e)};var i=r(n(18698)),o=r(n(68734));e.exports=t.default},39989:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if((0,s.default)(1,arguments),!(0,i.default)(e)&&"number"!=typeof e)return!1;var t=(0,o.default)(e);return!isNaN(Number(t))};var i=r(n(62382)),o=r(n(71171)),s=r(n(68734));e.exports=t.default},20289:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}},e.exports=t.default},16245:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t,n){var r;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,o=null!=n&&n.width?String(n.width):i;r=e.formattingValues[o]||e.formattingValues[i]}else{var s=e.defaultWidth,a=null!=n&&n.width?String(n.width):e.defaultWidth;r=e.values[a]||e.values[s]}return r[e.argumentCallback?e.argumentCallback(t):t]}},e.exports=t.default},43421:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],o=t.match(i);if(!o)return null;var s,a=o[0],l=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],u=Array.isArray(l)?function(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},r=t.match(e.matchPattern);if(!r)return null;var i=r[0],o=t.match(e.parsePattern);if(!o)return null;var s=e.valueCallback?e.valueCallback(o[0]):o[0];return{value:s=n.valueCallback?n.valueCallback(s):s,rest:t.slice(i.length)}}},e.exports=t.default},71924:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},r=function(e,t,r){var i,o=n[e];return i="string"==typeof o?o:1===t?o.one:o.other.replace("{{count}}",t.toString()),null!=r&&r.addSuffix?r.comparison&&r.comparison>0?"in "+i:i+" ago":i};t.default=r,e.exports=t.default},95062:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(20289)),o={date:(0,i.default)({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:(0,i.default)({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:(0,i.default)({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})};t.default=o,e.exports=t.default},5102:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},r=function(e,t,r,i){return n[e]};t.default=r,e.exports=t.default},87839:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(16245)),o={ordinalNumber:function(e,t){var n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:(0,i.default)({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:(0,i.default)({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:(0,i.default)({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:(0,i.default)({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:(0,i.default)({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};t.default=o,e.exports=t.default},9796:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(43421)),o={ordinalNumber:(0,r(n(78926)).default)({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}}),era:(0,i.default)({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:(0,i.default)({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:(0,i.default)({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:(0,i.default)({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:(0,i.default)({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})};t.default=o,e.exports=t.default},82512:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(71924)),o=r(n(95062)),s=r(n(5102)),a=r(n(87839)),l=r(n(9796)),u={code:"en-US",formatDistance:i.default,formatLong:o.default,formatRelative:s.default,localize:a.default,match:l.default,options:{weekStartsOn:0,firstWeekContainsDate:1}};t.default=u,e.exports=t.default},33239:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,o.default)(2,arguments);var n=(0,s.default)(t);return(0,i.default)(e,-n)};var i=r(n(5065)),o=r(n(68734)),s=r(n(82084));e.exports=t.default},71171:function(e,t,n){"use strict";var r=n(64836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===(0,i.default)(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):new Date(NaN)};var i=r(n(18698)),o=r(n(68734));e.exports=t.default},68174:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getRoundedTimestamp=void 0;t.getRoundedTimestamp=(e=5)=>{const t=6e4*(e=e||5),n=new Date;return new Date(Math.floor(n.getTime()/t)*t).getTime()/1e3}},42860:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tile2lat=t.tile2Long=t.lat2tile=t.long2tile=void 0;t.long2tile=(e,t)=>Math.floor((e+180)/360*Math.pow(2,t));t.lat2tile=(e,t)=>Math.floor((1-Math.log(Math.tan(e*Math.PI/180)+1/Math.cos(e*Math.PI/180))/Math.PI)/2*Math.pow(2,t));t.tile2Long=(e,t)=>e/Math.pow(2,t)*360-180;t.tile2lat=(e,t)=>{const n=Math.PI-2*Math.PI*e/Math.pow(2,t);return 180/Math.PI*Math.atan(.5*(Math.exp(n)-Math.exp(-n)))}},91951:function(e,t,n){"use strict";t.s2=t.D=t.x6=void 0;const r=n(68174);const i=n(42860);const o=n(94533);Object.defineProperty(t,"x6",{enumerable:!0,get:function(){return o.numberWithCommas}});const s=n(38694);const a=n(39879);Object.defineProperty(t,"D",{enumerable:!0,get:function(){return a.generateUID}}),Object.defineProperty(t,"s2",{enumerable:!0,get:function(){return a.isMobileDevice}})},39879:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isMobileDevice=t.generateUID=void 0;t.generateUID=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}));t.isMobileDevice=()=>{let e=!1;return(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(navigator.userAgent.substr(0,4)))&&(e=!0),e}},94533:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.numberWithCommas=t.abbreviateNumber=void 0;t.abbreviateNumber=(e,t)=>{if(null===e)return null;if(0===e)return"0";t=!t||t<0?0:t,t=e>1e4?0:1;const n=e.toPrecision(2).split("e"),r=1===n.length?0:Math.floor(Math.min(+n[1].slice(1),14)/3),i=r<1?+e.toFixed(0+t):+(e/Math.pow(10,3*r)).toFixed(t);return(i<0?i:Math.abs(i))+["","K","M","B","T"][r]};t.numberWithCommas=e=>e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")},38694:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.trunc=t.capitalizeFirstLetter=void 0;t.capitalizeFirstLetter=e=>e.toLowerCase().split(" ").map((e=>e.charAt(0).toUpperCase()+e.substring(1))).join(" ");t.trunc=(e="",t=0,n=!1)=>{if(e.length<=t)return e;const r=e.slice(0,t-1);return(n?r.slice(0,r.lastIndexOf(" ")):r)+"..."}},8679:function(e,t,n){"use strict";var r=n(59864),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},s={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},a={};function l(e){return r.isMemo(e)?s:a[e.$$typeof]||i}a[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},a[r.Memo]=s;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,f=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(f){var i=p(n);i&&i!==f&&e(t,i,r)}var s=c(n);d&&(s=s.concat(d(n)));for(var a=l(t),m=l(n),y=0;y
From 42d2e7b9bb02d35c519096a1b1f63ff9e6983fbc Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 1 Jul 2024 10:15:22 -0700 Subject: [PATCH 106/151] feat(shared): Include estimated area calculation for Change Detection ref #41 - refactor: totalVisibleAreaInSqKm and countOfVisiblePixels should be saved to Map reducer - refactor(shared): rename useCalcMaskArea to useCalculateTotalAreaByPixelsCount - refactor(shared): add TotalVisibleAreaInfo component - feat: show Estimated Change Area in Change Compare tool --- .../ChangeCompareLayerContainer.tsx | 18 ++++++- .../ChangeCompareToolContainer.tsx | 8 +-- .../MaskLayer/Sentinel1MaskLayer.tsx | 6 +-- .../components/MaskTool/Sentinel1MaskTool.tsx | 7 ++- .../ChangeCompareToolControls.tsx | 19 +++---- .../MaskTool/MaskLayerVisibleAreaInfo.tsx | 40 --------------- src/shared/components/MaskTool/index.ts | 2 +- .../TotalAreaInfo/TotalAreaInfo.tsx | 50 +++++++++++++++++++ ...=> useCalculateTotalAreaByPixelsCount.tsx} | 18 +++---- src/shared/store/Map/reducer.ts | 21 ++++++++ src/shared/store/Map/selectors.ts | 10 ++++ src/shared/store/MaskTool/reducer.ts | 42 ++++++++-------- src/shared/store/MaskTool/selectors.ts | 18 +++---- src/shared/utils/url-hash-params/maskTool.ts | 4 +- 14 files changed, 159 insertions(+), 104 deletions(-) delete mode 100644 src/shared/components/MaskTool/MaskLayerVisibleAreaInfo.tsx create mode 100644 src/shared/components/TotalAreaInfo/TotalAreaInfo.tsx rename src/shared/hooks/{useCalculateMaskLayerArea.tsx => useCalculateTotalAreaByPixelsCount.tsx} (70%) diff --git a/src/sentinel-1-explorer/components/ChangeCompareLayer/ChangeCompareLayerContainer.tsx b/src/sentinel-1-explorer/components/ChangeCompareLayer/ChangeCompareLayerContainer.tsx index 51e8f7e8..c96fef3f 100644 --- a/src/sentinel-1-explorer/components/ChangeCompareLayer/ChangeCompareLayerContainer.tsx +++ b/src/sentinel-1-explorer/components/ChangeCompareLayer/ChangeCompareLayerContainer.tsx @@ -45,6 +45,9 @@ import { minus, } from '@arcgis/core/layers/support/rasterFunctionUtils'; import { selectPolarizationFilter } from '@shared/store/Sentinel1/selectors'; +import { useDispatch } from 'react-redux'; +import { countOfVisiblePixelsChanged } from '@shared/store/Map/reducer'; +import { useCalculateTotalAreaByPixelsCount } from '@shared/hooks/useCalculateTotalAreaByPixelsCount'; type Props = { mapView?: MapView; @@ -65,7 +68,9 @@ export const ChangeCompareLayerContainer: FC = ({ mapView, groupLayer, }) => { - const mode = useSelector(selectAppMode); + // const mode = useSelector(selectAppMode); + + const dispatach = useDispatch(); const selectedOption: ChangeCompareToolOption4Sentinel1 = useSelector( selectSelectedOption4ChangeCompareTool @@ -170,6 +175,14 @@ export const ChangeCompareLayerContainer: FC = ({ polarizationFilter, ]); + useCalculateTotalAreaByPixelsCount({ + objectId: + queryParams4SceneA?.objectIdOfSelectedScene || + queryParams4SceneB?.objectIdOfSelectedScene, + serviceURL: SENTINEL_1_SERVICE_URL, + pixelSize: mapView.resolution, + }); + return ( = ({ selectedPixelValueRange={selectedRange} fullPixelValueRange={fullPixelValueRange} getPixelColor={getPixelColor4ChangeCompareLayer} + countOfPixelsOnChange={(totalPixels, visiblePixels) => { + dispatach(countOfVisiblePixelsChanged(visiblePixels)); + }} /> ); }; diff --git a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx index 4cb71026..0689c633 100644 --- a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx +++ b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx @@ -47,6 +47,7 @@ import { SENTINEL1_WATER_INDEX_PIXEL_RANGE, } from '@shared/services/sentinel-1/config'; import { useSyncCalendarDateRange } from '../../hooks/useSyncCalendarDateRange'; +import { TotalVisibleAreaInfo } from '@shared/components/TotalAreaInfo/TotalAreaInfo'; /** * the index that user can select for the Change Compare Tool @@ -164,10 +165,9 @@ export const ChangeCompareToolContainer = () => { return (
- + + + {selectedOption === 'log difference' && (
diff --git a/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx b/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx index 21526bfd..780e9b7a 100644 --- a/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx +++ b/src/sentinel-1-explorer/components/MaskLayer/Sentinel1MaskLayer.tsx @@ -47,8 +47,8 @@ import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; import { Sentinel1PixelValueRangeByIndex } from '../MaskTool/Sentinel1MaskTool'; import { WaterLandMaskLayer } from './WaterLandMaskLayer'; import { useDispatch } from 'react-redux'; -import { countOfVisiblePixelsChanged } from '@shared/store/MaskTool/reducer'; -import { useCalculateMaskArea } from '@shared/hooks/useCalculateMaskLayerArea'; +import { countOfVisiblePixelsChanged } from '@shared/store/Map/reducer'; +import { useCalculateTotalAreaByPixelsCount } from '@shared/hooks/useCalculateTotalAreaByPixelsCount'; type Props = { mapView?: MapView; @@ -134,7 +134,7 @@ export const Sentinel1MaskLayer: FC = ({ mapView, groupLayer }) => { groupLayer.add(groupLayer4MaskAndWaterLandLayersRef.current); }; - useCalculateMaskArea({ + useCalculateTotalAreaByPixelsCount({ objectId: objectIdOfSelectedScene, serviceURL: SENTINEL_1_SERVICE_URL, pixelSize: mapView.resolution, diff --git a/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx b/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx index b3ebcc91..02eba6c6 100644 --- a/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx +++ b/src/sentinel-1-explorer/components/MaskTool/Sentinel1MaskTool.tsx @@ -19,7 +19,7 @@ import { AnalysisToolHeader } from '@shared/components/AnalysisToolHeader'; import { MaskLayerRenderingControls, MaskToolWarnigMessage, - MaskLayerVisibleAreaInfo, + // MaskLayerVisibleAreaInfo, } from '@shared/components/MaskTool'; import { selectedIndex4MaskToolChanged } from '@shared/store/MaskTool/reducer'; import { @@ -44,6 +44,7 @@ import { SENTINEL1_WATER_INDEX_PIXEL_RANGE, SENTINEL1_SHIP_AND_URBAN_INDEX_PIXEL_RANGE, } from '@shared/services/sentinel-1/config'; +import { TotalVisibleAreaInfo } from '@shared/components/TotalAreaInfo/TotalAreaInfo'; export const Sentinel1PixelValueRangeByIndex: Record = { water: SENTINEL1_WATER_INDEX_PIXEL_RANGE, @@ -136,7 +137,9 @@ export const Sentinel1MaskTool = () => { ) : ( <>
- +
+ +
= ({ - legendTitle, legendLabelText = [], }: Props) => { const dispatch = useDispatch(); @@ -155,14 +151,13 @@ export const ChangeCompareToolControls: FC = ({ } return ( -
-
- {legendTitle && ( -
- {legendTitle} -
- )} +
+
+ {/* {legendTitle} */} + +
+
{ - const maskArea = useSelector(selectMaskLayerVisibleArea); - - const isMapUpdating = useSelector(selectIsMapUpdating); - - if (maskArea === null) { - return null; - } - - const getFormattedArea = () => { - if (!maskArea) { - return 0; - } - - if (maskArea > 100) { - return numberWithCommas(Math.floor(maskArea)); - } - - return maskArea.toFixed(2); - }; - - return ( -
- {isMapUpdating ? ( -
- - Loading mask layer -
- ) : ( -

Estimated Mask Area: {getFormattedArea()} Sq.Km

- )} -
- ); -}; diff --git a/src/shared/components/MaskTool/index.ts b/src/shared/components/MaskTool/index.ts index e8eb1067..4726803c 100644 --- a/src/shared/components/MaskTool/index.ts +++ b/src/shared/components/MaskTool/index.ts @@ -15,4 +15,4 @@ export { RenderingControlsContainer as MaskLayerRenderingControls } from './RenderingControlsContainer'; export { WarningMessage as MaskToolWarnigMessage } from './WarningMessage'; -export { MaskLayerVisibleAreaInfo } from './MaskLayerVisibleAreaInfo'; +// export { MaskLayerVisibleAreaInfo } from './MaskLayerVisibleAreaInfo'; diff --git a/src/shared/components/TotalAreaInfo/TotalAreaInfo.tsx b/src/shared/components/TotalAreaInfo/TotalAreaInfo.tsx new file mode 100644 index 00000000..bc2a893d --- /dev/null +++ b/src/shared/components/TotalAreaInfo/TotalAreaInfo.tsx @@ -0,0 +1,50 @@ +import { selectIsMapUpdating } from '@shared/store/Map/selectors'; +import { selectTotalVisibleArea } from '@shared/store/Map/selectors'; +import { numberWithCommas } from 'helper-toolkit-ts'; +import React, { FC } from 'react'; +import { useSelector } from 'react-redux'; + +type Props = { + /** + * label text to be place next to the number of total area + * that provide some context about what this total area is for (e.g. 'Estimated Mask Area') + */ + label: string; +}; + +export const TotalVisibleAreaInfo: FC = ({ label }: Props) => { + const totalArea = useSelector(selectTotalVisibleArea); + + const isMapUpdating = useSelector(selectIsMapUpdating); + + if (totalArea === null) { + return null; + } + + const getFormattedArea = () => { + if (!totalArea) { + return 0; + } + + if (totalArea > 100) { + return numberWithCommas(Math.floor(totalArea)); + } + + return totalArea.toFixed(2); + }; + + return ( +
+ {isMapUpdating ? ( +
+ + Loading... +
+ ) : ( +

+ {label}: {getFormattedArea()} Sq.Km +

+ )} +
+ ); +}; diff --git a/src/shared/hooks/useCalculateMaskLayerArea.tsx b/src/shared/hooks/useCalculateTotalAreaByPixelsCount.tsx similarity index 70% rename from src/shared/hooks/useCalculateMaskLayerArea.tsx rename to src/shared/hooks/useCalculateTotalAreaByPixelsCount.tsx index 9628b4d7..8b980de8 100644 --- a/src/shared/hooks/useCalculateMaskLayerArea.tsx +++ b/src/shared/hooks/useCalculateTotalAreaByPixelsCount.tsx @@ -1,23 +1,23 @@ -import MapView from '@arcgis/core/views/MapView'; +// import MapView from '@arcgis/core/views/MapView'; import { useCalculatePixelArea } from '@shared/hooks/useCalculatePixelArea'; -import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; -import { totalVisibleAreaInSqKmChanged } from '@shared/store/MaskTool/reducer'; -import { selectCountOfVisiblePixels } from '@shared/store/MaskTool/selectors'; -import { debounce } from '@shared/utils/snippets/debounce'; +// import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; +import { totalVisibleAreaInSqKmChanged } from '@shared/store/Map/reducer'; +import { selectCountOfVisiblePixels } from '@shared/store/Map/selectors'; +// import { debounce } from '@shared/utils/snippets/debounce'; import React, { useEffect, useRef } from 'react'; import { useDispatch } from 'react-redux'; import { useSelector } from 'react-redux'; /** - * Custom hook that calculates the total visible area of the mask layer based on - * the count of visible pixels of the mask layer. + * Custom hook that calculates the total visible area based on + * the count of visible pixels of the imagery layer in Mask Index or Change Compare tools. * * @param {Object} params - The parameters object. * @param {number} params.objectId - The object ID of the imagery scene. * @param {string} params.serviceURL - The service URL for the imagery layer. * @param {pixelSize} params.pixelSize - Represents the size of one pixel in map units. */ -export const useCalculateMaskArea = ({ +export const useCalculateTotalAreaByPixelsCount = ({ objectId, serviceURL, pixelSize, @@ -47,5 +47,5 @@ export const useCalculateMaskArea = ({ useEffect(() => { clacAreaByNumOfPixels(countOfVisiblePixels); - }, [countOfVisiblePixels]); + }, [countOfVisiblePixels, pixelAreaInSqMeter]); }; diff --git a/src/shared/store/Map/reducer.ts b/src/shared/store/Map/reducer.ts index 1f895a1d..11dbfaad 100644 --- a/src/shared/store/Map/reducer.ts +++ b/src/shared/store/Map/reducer.ts @@ -75,6 +75,14 @@ export type MapState = { * Indicates whether the map is being updated by additional data requests to the network, or by processing received data. */ isUpadting: boolean; + /** + * total visible area of the Imagery layer (with pixel filters) in square kilometers + */ + totalVisibleAreaInSqKm: number; + /** + * total number of visible pixels of the Imagery layer (with pixel filters) + */ + countOfVisiblePixels: number; }; export const initialMapState: MapState = { @@ -90,6 +98,8 @@ export const initialMapState: MapState = { swipeWidgetHanlderPosition: 50, popupAnchorLocation: null, isUpadting: false, + totalVisibleAreaInSqKm: null, + countOfVisiblePixels: 0, }; const slice = createSlice({ @@ -135,6 +145,15 @@ const slice = createSlice({ isUpdatingChanged: (state, action: PayloadAction) => { state.isUpadting = action.payload; }, + totalVisibleAreaInSqKmChanged: ( + state, + action: PayloadAction + ) => { + state.totalVisibleAreaInSqKm = action.payload; + }, + countOfVisiblePixelsChanged: (state, action: PayloadAction) => { + state.countOfVisiblePixels = action.payload; + }, }, }); @@ -153,6 +172,8 @@ export const { swipeWidgetHanlderPositionChanged, popupAnchorLocationChanged, isUpdatingChanged, + totalVisibleAreaInSqKmChanged, + countOfVisiblePixelsChanged, } = slice.actions; export default reducer; diff --git a/src/shared/store/Map/selectors.ts b/src/shared/store/Map/selectors.ts index deb23a90..7b666ba3 100644 --- a/src/shared/store/Map/selectors.ts +++ b/src/shared/store/Map/selectors.ts @@ -75,3 +75,13 @@ export const selectIsMapUpdating = createSelector( (state: RootState) => state.Map.isUpadting, (isUpadting) => isUpadting ); + +export const selectTotalVisibleArea = createSelector( + (state: RootState) => state.Map.totalVisibleAreaInSqKm, + (totalVisibleAreaInSqKm) => totalVisibleAreaInSqKm +); + +export const selectCountOfVisiblePixels = createSelector( + (state: RootState) => state.Map.countOfVisiblePixels, + (countOfVisiblePixels) => countOfVisiblePixels +); diff --git a/src/shared/store/MaskTool/reducer.ts b/src/shared/store/MaskTool/reducer.ts index e1eac06e..5950344d 100644 --- a/src/shared/store/MaskTool/reducer.ts +++ b/src/shared/store/MaskTool/reducer.ts @@ -53,14 +53,14 @@ export type MaskToolState = { * if true, mask layer should be used to clip the imagery scene */ shouldClipMaskLayer: boolean; - /** - * total visible area of the Mask layer in square kilometers - */ - totalVisibleAreaInSqKm: number; - /** - * total number of visible pixels - */ - countOfVisiblePixels: number; + // /** + // * total visible area of the Mask layer in square kilometers + // */ + // totalVisibleAreaInSqKm: number; + // /** + // * total number of visible pixels + // */ + // countOfVisiblePixels: number; }; export const DefaultPixelValueRangeBySelectedIndex: MaskToolPixelValueRangeBySpectralIndex = @@ -114,8 +114,8 @@ export const initialMaskToolState: MaskToolState = { ship: [255, 0, 21], urban: [255, 0, 21], }, - totalVisibleAreaInSqKm: null, - countOfVisiblePixels: 0, + // totalVisibleAreaInSqKm: null, + // countOfVisiblePixels: 0, }; const slice = createSlice({ @@ -149,15 +149,15 @@ const slice = createSlice({ shouldClipMaskLayerToggled: (state, action: PayloadAction) => { state.shouldClipMaskLayer = !state.shouldClipMaskLayer; }, - totalVisibleAreaInSqKmChanged: ( - state, - action: PayloadAction - ) => { - state.totalVisibleAreaInSqKm = action.payload; - }, - countOfVisiblePixelsChanged: (state, action: PayloadAction) => { - state.countOfVisiblePixels = action.payload; - }, + // totalVisibleAreaInSqKmChanged: ( + // state, + // action: PayloadAction + // ) => { + // state.totalVisibleAreaInSqKm = action.payload; + // }, + // countOfVisiblePixelsChanged: (state, action: PayloadAction) => { + // state.countOfVisiblePixels = action.payload; + // }, }, }); @@ -170,8 +170,8 @@ export const { maskLayerOpacityChanged, shouldClipMaskLayerToggled, maskLayerPixelColorChanged, - totalVisibleAreaInSqKmChanged, - countOfVisiblePixelsChanged, + // totalVisibleAreaInSqKmChanged, + // countOfVisiblePixelsChanged, } = slice.actions; export default reducer; diff --git a/src/shared/store/MaskTool/selectors.ts b/src/shared/store/MaskTool/selectors.ts index 4054c4e8..ba1b362f 100644 --- a/src/shared/store/MaskTool/selectors.ts +++ b/src/shared/store/MaskTool/selectors.ts @@ -50,12 +50,12 @@ export const selectMaskToolState = createSelector( (maskTool) => maskTool ); -export const selectMaskLayerVisibleArea = createSelector( - (state: RootState) => state.MaskTool.totalVisibleAreaInSqKm, - (totalVisibleAreaInSqKm) => totalVisibleAreaInSqKm -); - -export const selectCountOfVisiblePixels = createSelector( - (state: RootState) => state.MaskTool.countOfVisiblePixels, - (countOfVisiblePixels) => countOfVisiblePixels -); +// export const selectMaskLayerVisibleArea = createSelector( +// (state: RootState) => state.MaskTool.totalVisibleAreaInSqKm, +// (totalVisibleAreaInSqKm) => totalVisibleAreaInSqKm +// ); + +// export const selectCountOfVisiblePixels = createSelector( +// (state: RootState) => state.MaskTool.countOfVisiblePixels, +// (countOfVisiblePixels) => countOfVisiblePixels +// ); diff --git a/src/shared/utils/url-hash-params/maskTool.ts b/src/shared/utils/url-hash-params/maskTool.ts index a49fb44a..3c05e107 100644 --- a/src/shared/utils/url-hash-params/maskTool.ts +++ b/src/shared/utils/url-hash-params/maskTool.ts @@ -97,8 +97,8 @@ export const decodeMaskToolData = ( maskLayerOpacity: +maskLayerOpacity, pixelValueRangeBySelectedIndex, pixelColorBySelectedIndex, - totalVisibleAreaInSqKm: 0, - countOfVisiblePixels: 0, + // totalVisibleAreaInSqKm: 0, + // countOfVisiblePixels: 0, }; }; From a260d031a89bacdce122a8195e4e21c87160555f Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 1 Jul 2024 13:36:33 -0700 Subject: [PATCH 107/151] fix(shared): Swipe Widget should use renderer of main scene as default for the secondary scene ref #49 --- .../getPreloadedState4Sentinel1Explorer.ts | 2 +- .../SwipeWidget/SwipeWidget4ImageryLayers.tsx | 19 ++++++++++++++++++- src/shared/store/ImageryScene/reducer.ts | 4 ++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts index 5e7035a0..8553c2a3 100644 --- a/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts +++ b/src/sentinel-1-explorer/store/getPreloadedState4Sentinel1Explorer.ts @@ -137,7 +137,7 @@ const getPreloadedImageryScenesState = (): ImageryScenesState => { const queryParams4SecondaryScene = getQueryParams4SecondarySceneFromHashParams() || { ...DefaultQueryParams4ImageryScene, - rasterFunctionName: defaultRasterFunction, + rasterFunctionName: null, }; const listOfQueryParams = getListOfQueryParamsFromHashParams() || []; diff --git a/src/shared/components/SwipeWidget/SwipeWidget4ImageryLayers.tsx b/src/shared/components/SwipeWidget/SwipeWidget4ImageryLayers.tsx index 6a0d5e44..887fbad5 100644 --- a/src/shared/components/SwipeWidget/SwipeWidget4ImageryLayers.tsx +++ b/src/shared/components/SwipeWidget/SwipeWidget4ImageryLayers.tsx @@ -14,7 +14,7 @@ */ import MapView from '@arcgis/core/views/MapView'; -import React, { FC } from 'react'; +import React, { FC, useEffect } from 'react'; import SwipeWidget from '@shared/components/SwipeWidget/SwipeWidget'; import { useSelector } from 'react-redux'; import { @@ -26,6 +26,10 @@ import { import { useDispatch } from 'react-redux'; import { swipeWidgetHanlderPositionChanged } from '@shared/store/Map/reducer'; import { useImageryLayerByObjectId } from '../ImageryLayer/useImageLayer'; +import { + QueryParams4ImageryScene, + queryParams4SecondarySceneChanged, +} from '@shared/store/ImageryScene/reducer'; type Props = { /** @@ -49,6 +53,19 @@ export const SwipeWidget4ImageryLayers: FC = ({ // const isSwipeWidgetVisible = appMode === 'swipe'; + useEffect(() => { + // If a raster function is not explicitly selected for the imagery scene on the right side, + // we want it to inherit the raster function from the main scene on the left side. + if (!queryParams4RightSide?.rasterFunctionName) { + const updatedQueryParams: QueryParams4ImageryScene = { + ...queryParams4RightSide, + rasterFunctionName: queryParams4LeftSide.rasterFunctionName, + }; + + dispatch(queryParams4SecondarySceneChanged(updatedQueryParams)); + } + }, [queryParams4RightSide?.rasterFunctionName]); + const leadingLayer = useImageryLayerByObjectId({ url: serviceUrl, visible: diff --git a/src/shared/store/ImageryScene/reducer.ts b/src/shared/store/ImageryScene/reducer.ts index 12dc25c5..fd39c7bd 100644 --- a/src/shared/store/ImageryScene/reducer.ts +++ b/src/shared/store/ImageryScene/reducer.ts @@ -19,10 +19,10 @@ import { PayloadAction, // createAsyncThunk } from '@reduxjs/toolkit'; -import { getCurrentYear } from '@shared/utils/date-time/getCurrentDateTime'; +// import { getCurrentYear } from '@shared/utils/date-time/getCurrentDateTime'; import { getDateRangeForPast12Month, - getDateRangeForYear, + // getDateRangeForYear, } from '@shared/utils/date-time/getTimeRange'; import { DateRange } from '@typing/shared'; From a1f034b8d223ae84eec66e71e936deed70fe1c88 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 2 Jul 2024 12:56:19 -0700 Subject: [PATCH 108/151] fix(shared): style of the AppHeader component --- src/shared/components/AppHeader/AppHeader.tsx | 76 ++++++++++--------- 1 file changed, 41 insertions(+), 35 deletions(-) diff --git a/src/shared/components/AppHeader/AppHeader.tsx b/src/shared/components/AppHeader/AppHeader.tsx index 865315f1..b1162d75 100644 --- a/src/shared/components/AppHeader/AppHeader.tsx +++ b/src/shared/components/AppHeader/AppHeader.tsx @@ -130,43 +130,49 @@ const AppHeader: FC = ({ title }) => { )}
+
- {showImageryExplorerAppsList && ( -
-
- Image Explorer Apps -
- - {IMAGERY_EXPLORER_APPS - // should not show current app in the list - .filter((d) => d.appName !== APP_NAME) - .map((d) => { - return ( - -
- {d.title} - {/* */} -
-
- ); - })} + {showImageryExplorerAppsList && ( +
+
+ Image Explorer Apps
- )} -
+ + {IMAGERY_EXPLORER_APPS + // should not show current app in the list + .filter((d) => d.appName !== APP_NAME) + .map((d) => { + return ( + +
+ + + {d.title} + +
+
+ ); + })} +
+ )}
); }; From 3df505ed20daaf9b0e3f6595504c19771e5bfa83 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 3 Jul 2024 05:35:18 -0700 Subject: [PATCH 109/151] chore(shared): update AppHeader and add sentinel1 explorer to list of IMAGERY_EXPLORER_APPS --- src/shared/components/AppHeader/AppHeader.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/shared/components/AppHeader/AppHeader.tsx b/src/shared/components/AppHeader/AppHeader.tsx index b1162d75..a407a558 100644 --- a/src/shared/components/AppHeader/AppHeader.tsx +++ b/src/shared/components/AppHeader/AppHeader.tsx @@ -48,6 +48,11 @@ const IMAGERY_EXPLORER_APPS: { title: 'Landsat Explorer', url: '/landsatexplorer', }, + { + appName: 'sentinel1-explorer', + title: 'Sentinel-1 Explorer', + url: '/sentinel1explorer', + }, ]; const AppHeader: FC = ({ title }) => { From cd2e73c291ccc9e41563a23c95dc2b3c22814898 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 3 Jul 2024 09:48:12 -0700 Subject: [PATCH 110/151] fix(sentinel1explorer): Temporal Profile Tool should use Orbit Direction from Selected Scene ref #54 - fix(shared): updateTemporalProfileToolData should be triggered when objectId of selected scene is changed --- .../Sentinel1TemporalProfileTool.tsx | 10 +++++----- .../useUpdateTemporalProfileToolData.tsx | 7 ++++++- .../sentinel-1/getTemporalProfileData.ts | 20 +++++++++++++++---- src/shared/store/TrendTool/thunks.ts | 6 ++++-- 4 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx b/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx index eccba065..4b8ebaf3 100644 --- a/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx +++ b/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx @@ -73,10 +73,10 @@ export const Sentinel1TemporalProfileTool = () => { const tool = useSelector(selectActiveAnalysisTool); - const orbitDirection = useSelector(selectSentinel1OrbitDirection); + // const orbitDirection = useSelector(selectSentinel1OrbitDirection); - // const { rasterFunctionName, acquisitionDate, objectIdOfSelectedScene } = - // useSelector(selectQueryParams4SceneInSelectedMode) || {}; + const { objectIdOfSelectedScene } = + useSelector(selectQueryParams4SceneInSelectedMode) || {}; // const error = useSelector(selectError4TemporalProfileTool); @@ -116,7 +116,7 @@ export const Sentinel1TemporalProfileTool = () => { const data: TemporalProfileData[] = await getSentinel1TemporalProfileData({ queryLocation, - orbitDirection, + objectId: objectIdOfSelectedScene, acquisitionMonth, acquisitionYear, abortController, @@ -124,7 +124,7 @@ export const Sentinel1TemporalProfileTool = () => { return data; }, - [orbitDirection] + [objectIdOfSelectedScene] ); /** diff --git a/src/shared/components/TemproalProfileTool/useUpdateTemporalProfileToolData.tsx b/src/shared/components/TemproalProfileTool/useUpdateTemporalProfileToolData.tsx index 2b992025..120a0a21 100644 --- a/src/shared/components/TemproalProfileTool/useUpdateTemporalProfileToolData.tsx +++ b/src/shared/components/TemproalProfileTool/useUpdateTemporalProfileToolData.tsx @@ -28,7 +28,7 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { useSelector } from 'react-redux'; import { selectActiveAnalysisTool, - // selectQueryParams4SceneInSelectedMode, + selectQueryParams4SceneInSelectedMode, } from '@shared/store/ImageryScene/selectors'; // import { SpectralIndex } from '@typing/imagery-service'; import { selectLandsatMissionsToBeExcluded } from '@shared/store/Landsat/selectors'; @@ -59,6 +59,9 @@ export const useUpdateTemporalProfileToolData = ( const missionsToBeExcluded = useSelector(selectLandsatMissionsToBeExcluded); + const { objectIdOfSelectedScene } = + useSelector(selectQueryParams4SceneInSelectedMode) || {}; + const updateTrendToolDataDebounced = useCallback( debounce(() => { dispatch( @@ -90,6 +93,7 @@ export const useUpdateTemporalProfileToolData = ( tool, selectedTrendToolOption, missionsToBeExcluded, + objectIdOfSelectedScene, ]); // triggered when user selects a new acquisition year that will be used to draw the "month-to-month" trend data @@ -111,5 +115,6 @@ export const useUpdateTemporalProfileToolData = ( tool, selectedTrendToolOption, missionsToBeExcluded, + objectIdOfSelectedScene, ]); }; diff --git a/src/shared/services/sentinel-1/getTemporalProfileData.ts b/src/shared/services/sentinel-1/getTemporalProfileData.ts index 3c40b41c..ea524394 100644 --- a/src/shared/services/sentinel-1/getTemporalProfileData.ts +++ b/src/shared/services/sentinel-1/getTemporalProfileData.ts @@ -4,7 +4,10 @@ import { Sentinel1Scene, TemporalProfileData, } from '@typing/imagery-service'; -import { getSentinel1Scenes } from './getSentinel1Scenes'; +import { + getSentinel1SceneByObjectId, + getSentinel1Scenes, +} from './getSentinel1Scenes'; import { getDateRangeForYear } from '@shared/utils/date-time/getTimeRange'; // import { splitObjectIdsToSeparateGroups } from '../helpers/splitObjectIdsToSeparateGroups'; // import { identify } from '../helpers/identify'; @@ -22,9 +25,13 @@ type GetSentinel1TemporalProfileDataOptions = { */ acquisitionYear: number; /** - * orbit direction + * object id of selected sentinel-1 scene */ - orbitDirection: Sentinel1OrbitDirection; + objectId: number; + // /** + // * orbit direction + // */ + // orbitDirection: Sentinel1OrbitDirection; /** * abortController that will be used to cancel the pending requests */ @@ -33,7 +40,8 @@ type GetSentinel1TemporalProfileDataOptions = { export const getSentinel1TemporalProfileData = async ({ queryLocation, - orbitDirection, + // orbitDirection, + objectId, acquisitionMonth, acquisitionYear, abortController, @@ -42,6 +50,10 @@ export const getSentinel1TemporalProfileData = async ({ let sentinel1Scenes: Sentinel1Scene[] = []; + // get data of selected sentinel-1 scene and use the orbit direction of this scene to query temporal profile data + const selectedScene = await getSentinel1SceneByObjectId(objectId); + const orbitDirection = selectedScene.orbitDirection; + if (acquisitionMonth) { // query Sentinel-1 scenes based on input location and acquisition month to show "year-to-year" trend sentinel1Scenes = await getSentinel1Scenes({ diff --git a/src/shared/store/TrendTool/thunks.ts b/src/shared/store/TrendTool/thunks.ts index c1ea724a..cce30ab4 100644 --- a/src/shared/store/TrendTool/thunks.ts +++ b/src/shared/store/TrendTool/thunks.ts @@ -125,6 +125,8 @@ export const updateTemporalProfileToolData = ); dispatch(trendToolDataUpdated(data)); + + dispatch(trendToolIsLoadingChanged(false)); } catch (err) { // no need to throw the error // is caused by the user aborting the pending query @@ -139,9 +141,9 @@ export const updateTemporalProfileToolData = 'failed to fetch data for temporal profile tool' ) ); - // throw err; - } finally { + dispatch(trendToolIsLoadingChanged(false)); + // throw err; } }; From 32f9f934f16340bb9b3dace5ad0a2967eb11ff92 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 3 Jul 2024 10:05:04 -0700 Subject: [PATCH 111/151] fix(shared): custom map attribution should hide map scale and resolution in mobile view --- .../components/CustomMapArrtribution/CustomMapArrtribution.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/components/CustomMapArrtribution/CustomMapArrtribution.tsx b/src/shared/components/CustomMapArrtribution/CustomMapArrtribution.tsx index 647079e8..c56bc932 100644 --- a/src/shared/components/CustomMapArrtribution/CustomMapArrtribution.tsx +++ b/src/shared/components/CustomMapArrtribution/CustomMapArrtribution.tsx @@ -77,7 +77,7 @@ const CustomMapArrtribution: FC = ({ atrribution }) => {
{mapScale !== null && resolution !== null && ( -
+
1:{numberWithCommas(+mapScale.toFixed(0))} | 1px:{' '} From b0e653ce37b7f95be6a02466fdf6e5b022ed083a Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 3 Jul 2024 13:15:43 -0700 Subject: [PATCH 112/151] feat(sentinel1explorer): Show Foot Print for Change Compare and Temporal Composite tool ref #55 --- .../LockedRelativeOrbitFootprintLayer.tsx | 78 +++++++++++++++++++ ...edRelativeOrbitFootprintLayerContainer.tsx | 61 +++++++++++++++ .../index.ts | 1 + .../components/Map/Map.tsx | 2 + .../hooks/useLockedRelativeOrbit.tsx | 9 ++- .../useQueryAvailableSentinel1Scenes.tsx | 6 +- 6 files changed, 151 insertions(+), 6 deletions(-) create mode 100644 src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayer.tsx create mode 100644 src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx create mode 100644 src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/index.ts diff --git a/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayer.tsx b/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayer.tsx new file mode 100644 index 00000000..af76c57a --- /dev/null +++ b/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayer.tsx @@ -0,0 +1,78 @@ +import GraphicsLayer from '@arcgis/core/layers/GraphicsLayer'; +import GroupLayer from '@arcgis/core/layers/GroupLayer'; +import MapView from '@arcgis/core/views/MapView'; +import Graphic from '@arcgis/core/Graphic'; +import { IFeature } from '@esri/arcgis-rest-feature-service'; +import React, { FC, useEffect, useMemo, useRef } from 'react'; +import { Point, Polygon } from '@arcgis/core/geometry'; + +type Props = { + visible: boolean; + mapView?: MapView; + groupLayer?: GroupLayer; + /** + * feature that provides geometry of the foot print + */ + footPrintFeature: IFeature; +}; + +export const LockedRelativeOrbitFootprintLayer: FC = ({ + visible, + mapView, + groupLayer, + footPrintFeature, +}) => { + const footprintLayer = useRef(); + + const init = () => { + footprintLayer.current = new GraphicsLayer({ + visible, + }); + + groupLayer.add(footprintLayer.current); + }; + + useEffect(() => { + if (!footprintLayer.current) { + init(); + } + }, [groupLayer]); + + useEffect(() => { + if (footprintLayer.current) { + footprintLayer.current.visible = visible; + } + }, [visible]); + + useEffect(() => { + if (!footprintLayer.current) { + return; + } + + footprintLayer.current.removeAll(); + + if (footPrintFeature) { + const geometry = footPrintFeature.geometry as any; + + const graphic = new Graphic({ + geometry: new Polygon({ + rings: geometry.rings, + spatialReference: geometry.spatialReference, + }), + symbol: { + type: 'simple-fill', // autocasts as new SimpleFillSymbol() + color: [0, 35, 47, 0.2], + outline: { + // autocasts as new SimpleLineSymbol() + color: [191, 238, 254, 1], + width: 1, + }, + } as any, + }); + + footprintLayer.current.add(graphic); + } + }, [footPrintFeature]); + + return null; +}; diff --git a/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx b/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx new file mode 100644 index 00000000..23341af4 --- /dev/null +++ b/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx @@ -0,0 +1,61 @@ +import GroupLayer from '@arcgis/core/layers/GroupLayer'; +import MapView from '@arcgis/core/views/MapView'; +import React, { FC, useEffect, useMemo, useState } from 'react'; +import { useLockedRelativeOrbit } from '../../hooks/useLockedRelativeOrbit'; +import { LockedRelativeOrbitFootprintLayer } from './LockedRelativeOrbitFootprintLayer'; +import { IFeature } from '@esri/arcgis-rest-feature-service'; +import { getFeatureByObjectId } from '@shared/services/helpers/getFeatureById'; +import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; +import { useSelector } from 'react-redux'; +import { selectQueryParams4SceneInSelectedMode } from '@shared/store/ImageryScene/selectors'; + +type Props = { + mapView?: MapView; + groupLayer?: GroupLayer; +}; + +export const LockedRelativeOrbitFootprintLayerContainer: FC = ({ + mapView, + groupLayer, +}) => { + /** + * Locked relative orbit to be used by the different Analyze tools (e.g. temporal composite and change compare) + */ + const { lockedRelativeOrbit, sentinel1Scene } = useLockedRelativeOrbit(); + + const { objectIdOfSelectedScene } = + useSelector(selectQueryParams4SceneInSelectedMode) || {}; + + const [footPrintFeature, setFootPrintFeature] = useState(); + + const isVisible = useMemo(() => { + // no need to show it if user has already selected an scene + if (objectIdOfSelectedScene) { + return false; + } + + return lockedRelativeOrbit !== null; + }, [lockedRelativeOrbit, objectIdOfSelectedScene]); + + useEffect(() => { + (async () => { + const feature = sentinel1Scene + ? await getFeatureByObjectId( + SENTINEL_1_SERVICE_URL, + sentinel1Scene.objectId + ) + : null; + + setFootPrintFeature(feature); + })(); + }, [sentinel1Scene]); + + return ( + + ); +}; diff --git a/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/index.ts b/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/index.ts new file mode 100644 index 00000000..ab36ec4f --- /dev/null +++ b/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/index.ts @@ -0,0 +1 @@ +export { LockedRelativeOrbitFootprintLayerContainer as LockedRelativeOrbitFootprintLayer } from './LockedRelativeOrbitFootprintLayerContainer'; diff --git a/src/sentinel-1-explorer/components/Map/Map.tsx b/src/sentinel-1-explorer/components/Map/Map.tsx index 13902c2e..e1c7e8d0 100644 --- a/src/sentinel-1-explorer/components/Map/Map.tsx +++ b/src/sentinel-1-explorer/components/Map/Map.tsx @@ -39,6 +39,7 @@ import { ChangeCompareLayer4Sentinel1 } from '../ChangeCompareLayer'; import { updateQueryLocation4TrendTool } from '@shared/store/TrendTool/thunks'; import { useDispatch } from 'react-redux'; import { Sentinel1MaskLayer } from '../MaskLayer'; +import { LockedRelativeOrbitFootprintLayer } from '../LockedRelativeOrbitFootprintLayer'; export const Map = () => { const dispatch = useDispatch(); @@ -54,6 +55,7 @@ export const Map = () => { // hillsahde/terrain layer can be added on top of it with blend mode applied index={1} > + diff --git a/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit.tsx b/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit.tsx index 044ddd00..c116662e 100644 --- a/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit.tsx +++ b/src/sentinel-1-explorer/hooks/useLockedRelativeOrbit.tsx @@ -27,7 +27,7 @@ import { Sentinel1Scene } from '@typing/imagery-service'; import { getSentinel1SceneByObjectId } from '@shared/services/sentinel-1/getSentinel1Scenes'; /** - * Custom hook that returns the relative orbit to be used by the different Analyze tools (e.g. temporal composite and change compare). + * Custom hook that returns the relative orbit (and the associated sentinel 1 scene) to be used by the different Analyze tools (e.g. temporal composite and change compare). * These tools require all scenes selected by the user to have the same relative orbit. * This hook tries to find the first scene that the user has selected and uses the relative orbit of that scene to * query the rest of the scenes. @@ -55,7 +55,7 @@ export const useLockedRelativeOrbit = () => { * useMemo hook to compute the relative orbit based on the mode, active analysis tool, and selected Sentinel-1 scene. * The relative orbit is only relevant when the mode is 'analysis' and the analysis tool is 'temporal composite' or 'change compare'. */ - const relativeOrbit: string = useMemo(() => { + const lockedRelativeOrbit: string = useMemo(() => { if (mode !== 'analysis' || !sentinel1Scene) { return null; } @@ -121,5 +121,8 @@ export const useLockedRelativeOrbit = () => { })(); }, [queryParams?.objectIdOfSelectedScene, mode, analysisTool]); - return relativeOrbit; + return { + lockedRelativeOrbit, + sentinel1Scene, + }; }; diff --git a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx index ad6c236b..e3a86e22 100644 --- a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx +++ b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx @@ -65,7 +65,7 @@ export const useQueryAvailableSentinel1Scenes = (): void => { * Locked relative orbit to be used by the Analyze tools to ensure all Sentinel-1 * scenes selected by the user to have the same relative orbit. */ - const lockedRelativeOrbitOfSentinelScene = useLockedRelativeOrbit(); + const { lockedRelativeOrbit } = useLockedRelativeOrbit(); useEffect(() => { if (!center || !acquisitionDateRange) { @@ -86,7 +86,7 @@ export const useQueryAvailableSentinel1Scenes = (): void => { dispatch( queryAvailableSentinel1Scenes({ acquisitionDateRange, - relativeOrbit: lockedRelativeOrbitOfSentinelScene, + relativeOrbit: lockedRelativeOrbit, }) ); }, [ @@ -95,7 +95,7 @@ export const useQueryAvailableSentinel1Scenes = (): void => { acquisitionDateRange?.endDate, isAnimationPlaying, orbitDirection, - lockedRelativeOrbitOfSentinelScene, + lockedRelativeOrbit, // dualPolarizationOnly, ]); From df5b1046804e83399898e058349593fa160f6da1 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 3 Jul 2024 13:53:47 -0700 Subject: [PATCH 113/151] feat(landsatexplorer): Add estimated area calculation to Index Mask ref #52 --- .../MaskLayer/MaskLayerContainer.tsx | 26 +++++++++---------- .../components/MaskTool/MaskToolContainer.tsx | 7 ++++- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx b/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx index b7960798..cebad5f1 100644 --- a/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx +++ b/src/landsat-explorer/components/MaskLayer/MaskLayerContainer.tsx @@ -41,6 +41,9 @@ import { LANDSAT_SURFACE_TEMPERATURE_MIN_CELSIUS, LANDSAT_SURFACE_TEMPERATURE_MIN_FAHRENHEIT, } from '@shared/services/landsat-level-2/config'; +import { useCalculateTotalAreaByPixelsCount } from '@shared/hooks/useCalculateTotalAreaByPixelsCount'; +import { useDispatch } from 'react-redux'; +import { countOfVisiblePixelsChanged } from '@shared/store/Map/reducer'; type Props = { mapView?: MapView; @@ -65,6 +68,8 @@ export const getRasterFunctionBySpectralIndex = ( }; export const MaskLayerContainer: FC = ({ mapView, groupLayer }) => { + const dispatach = useDispatch(); + const mode = useSelector(selectAppMode); const spectralIndex = useSelector( @@ -118,19 +123,11 @@ export const MaskLayerContainer: FC = ({ mapView, groupLayer }) => { return [-1, 1]; }, [spectralIndex]); - // return ( - // - // ); + useCalculateTotalAreaByPixelsCount({ + objectId: objectIdOfSelectedScene, + serviceURL: LANDSAT_LEVEL_2_SERVICE_URL, + pixelSize: mapView.resolution, + }); return ( = ({ mapView, groupLayer }) => { pixelColor={pixelColor} opacity={opacity} blendMode={shouldClip ? 'destination-atop' : 'normal'} + countOfPixelsOnChange={(totalPixels, visiblePixels) => { + dispatach(countOfVisiblePixelsChanged(visiblePixels)); + }} /> ); }; diff --git a/src/landsat-explorer/components/MaskTool/MaskToolContainer.tsx b/src/landsat-explorer/components/MaskTool/MaskToolContainer.tsx index 188daf5c..4d7a13a9 100644 --- a/src/landsat-explorer/components/MaskTool/MaskToolContainer.tsx +++ b/src/landsat-explorer/components/MaskTool/MaskToolContainer.tsx @@ -43,6 +43,7 @@ import { SurfaceTempCelsiusPixelRangeSlider, SurfaceTempFarhenheitPixelRangeSlider, } from './SurfaceTempPixelRangeSlider'; +import { TotalVisibleAreaInfo } from '@shared/components/TotalAreaInfo/TotalAreaInfo'; export const MaskToolContainer = () => { const dispatch = useDispatch(); @@ -126,7 +127,11 @@ export const MaskToolContainer = () => { ) : ( <> -
+
+
+ +
+ {selectedSpectralIndex === 'temperature celcius' && ( )} From cc80a4b7282f6f898e375d9f20c0b3d6433f0484 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 3 Jul 2024 14:05:21 -0700 Subject: [PATCH 114/151] feat(landsatexplorer): Add estimated area calculation to Change Compare tool ref #52 --- .../ChangeLayer/ChangeLayerContainer.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/landsat-explorer/components/ChangeLayer/ChangeLayerContainer.tsx b/src/landsat-explorer/components/ChangeLayer/ChangeLayerContainer.tsx index b0ffc5b7..574676b2 100644 --- a/src/landsat-explorer/components/ChangeLayer/ChangeLayerContainer.tsx +++ b/src/landsat-explorer/components/ChangeLayer/ChangeLayerContainer.tsx @@ -39,6 +39,9 @@ import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; import { LANDSAT_LEVEL_2_SERVICE_URL } from '@shared/services/landsat-level-2/config'; import { getPixelColor4ChangeCompareLayer } from '@shared/components/ChangeCompareTool/helpers'; import { ImageryLayerWithPixelFilter } from '@shared/components/ImageryLayerWithPixelFilter'; +import { useCalculateTotalAreaByPixelsCount } from '@shared/hooks/useCalculateTotalAreaByPixelsCount'; +import { useDispatch } from 'react-redux'; +import { countOfVisiblePixelsChanged } from '@shared/store/Map/reducer'; type Props = { mapView?: MapView; @@ -153,6 +156,8 @@ export const getRasterFunction4ChangeLayer = async ( }; export const ChangeLayerContainer: FC = ({ mapView, groupLayer }) => { + const dispatach = useDispatch(); + const mode = useSelector(selectAppMode); const spectralIndex = useSelector( @@ -231,6 +236,14 @@ export const ChangeLayerContainer: FC = ({ mapView, groupLayer }) => { // /> // ); + useCalculateTotalAreaByPixelsCount({ + objectId: + queryParams4SceneA?.objectIdOfSelectedScene || + queryParams4SceneB?.objectIdOfSelectedScene, + serviceURL: LANDSAT_LEVEL_2_SERVICE_URL, + pixelSize: mapView.resolution, + }); + return ( = ({ mapView, groupLayer }) => { selectedPixelValueRange={selectedRange} fullPixelValueRange={fullPixelValueRange} getPixelColor={getPixelColor4ChangeCompareLayer} + countOfPixelsOnChange={(totalPixels, visiblePixels) => { + dispatach(countOfVisiblePixelsChanged(visiblePixels)); + }} /> ); }; From 804090d96f7819f9f7254aeda78491df32e66dfe Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 3 Jul 2024 15:31:04 -0700 Subject: [PATCH 115/151] fix(shared): ImageryLayerWithPxielFilter should redraw when visible prop changes --- .../ImageryLayerWithPixelFilter.tsx | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx b/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx index 02e5ea4d..9a4a068b 100644 --- a/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx +++ b/src/shared/components/ImageryLayerWithPixelFilter/ImageryLayerWithPixelFilter.tsx @@ -323,18 +323,18 @@ export const ImageryLayerWithPixelFilter: FC = ({ layerRef.current.opacity = opacity; }, [opacity]); - useEffect(() => { - if (!layerRef.current) { - return; - } + // useEffect(() => { + // if (!layerRef.current) { + // return; + // } - layerRef.current.visible = visible; + // layerRef.current.visible = visible; - // if (visible) { - // // reorder it to make sure it is the top most layer on the map - // groupLayer.reorder(layerRef.current, mapView.map.layers.length - 1); - // } - }, [visible]); + // // if (visible) { + // // // reorder it to make sure it is the top most layer on the map + // // groupLayer.reorder(layerRef.current, mapView.map.layers.length - 1); + // // } + // }, [visible]); useEffect(() => { selectedRangeRef.current = selectedPixelValueRange; @@ -342,7 +342,13 @@ export const ImageryLayerWithPixelFilter: FC = ({ fullPixelValueRangeRef.current = fullPixelValueRange; pixelColorRef.current = pixelColor; - if (layerRef.current) { + if (!layerRef.current) { + return; + } + + layerRef.current.visible = visible; + + if (visible) { layerRef.current.redraw(); } }, [ @@ -350,6 +356,7 @@ export const ImageryLayerWithPixelFilter: FC = ({ selectedPixelValueRange4Band2, fullPixelValueRange, pixelColor, + visible, ]); useEffect(() => { From e4a50235d43866cbe705954ec414d96709823e76 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 3 Jul 2024 16:24:12 -0700 Subject: [PATCH 116/151] feat(shared): add Doc Panel component --- .../components/DocPanel/Sentinel1DocPanel.tsx | 15 +++++ .../components/DocPanel/index.ts | 1 + .../components/Layout/Layout.tsx | 7 ++- src/shared/components/AppHeader/AppHeader.tsx | 22 ++++++- src/shared/components/DocPanel/DocPanel.tsx | 59 +++++++++++++++++++ src/shared/store/UI/reducer.ts | 9 +++ src/shared/store/UI/selectors.ts | 5 ++ 7 files changed, 114 insertions(+), 4 deletions(-) create mode 100644 src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx create mode 100644 src/sentinel-1-explorer/components/DocPanel/index.ts create mode 100644 src/shared/components/DocPanel/DocPanel.tsx diff --git a/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx b/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx new file mode 100644 index 00000000..f029309d --- /dev/null +++ b/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx @@ -0,0 +1,15 @@ +import { DocPanel } from '@shared/components/DocPanel/DocPanel'; +import React from 'react'; + +export const Sentinel1DocPanel = () => { + return ( + +

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum + labore, laudantium sit impedit saepe quas, suscipit repudiandae + assumenda harum aperiam maiores unde? Tempore quia deleniti + soluta vel saepe voluptatibus magni. +

+
+ ); +}; diff --git a/src/sentinel-1-explorer/components/DocPanel/index.ts b/src/sentinel-1-explorer/components/DocPanel/index.ts new file mode 100644 index 00000000..f9745653 --- /dev/null +++ b/src/sentinel-1-explorer/components/DocPanel/index.ts @@ -0,0 +1 @@ +export { Sentinel1DocPanel } from './Sentinel1DocPanel'; diff --git a/src/sentinel-1-explorer/components/Layout/Layout.tsx b/src/sentinel-1-explorer/components/Layout/Layout.tsx index 63ab0c58..942d1e60 100644 --- a/src/sentinel-1-explorer/components/Layout/Layout.tsx +++ b/src/sentinel-1-explorer/components/Layout/Layout.tsx @@ -49,6 +49,7 @@ import { Sentinel1MaskTool } from '../MaskTool'; import { useSaveSentinel1State2HashParams } from '../../hooks/saveSentinel1State2HashParams'; import { Sentinel1InterestingPlaces } from '../InterestingPlaces'; import { Sentinel1DynamicModeInfo } from '../Sentinel1DynamicModeInfo/Sentinel1DynamicModeInfo'; +import { Sentinel1DocPanel } from '../DocPanel'; export const Layout = () => { const mode = useSelector(selectAppMode); @@ -78,7 +79,7 @@ export const Layout = () => { if (IS_MOBILE_DEVICE) { return ( <> - +
@@ -86,13 +87,14 @@ export const Layout = () => {
+ ); } return ( <> - +
@@ -158,6 +160,7 @@ export const Layout = () => {
+ ); }; diff --git a/src/shared/components/AppHeader/AppHeader.tsx b/src/shared/components/AppHeader/AppHeader.tsx index a407a558..f4e281cd 100644 --- a/src/shared/components/AppHeader/AppHeader.tsx +++ b/src/shared/components/AppHeader/AppHeader.tsx @@ -18,7 +18,10 @@ import React, { FC, useEffect, useRef, useState } from 'react'; import classNames from 'classnames'; import { useSelector } from 'react-redux'; import { useDispatch } from 'react-redux'; -import { shouldShowAboutThisAppToggled } from '../../store/UI/reducer'; +import { + shouldShowAboutThisAppToggled, + showDocPanelToggled, +} from '../../store/UI/reducer'; import useOnClickOutside from '@shared/hooks/useOnClickOutside'; import { selectIsAnimationPlaying } from '@shared/store/UI/selectors'; import { APP_NAME, AppName } from '@shared/config'; @@ -31,6 +34,10 @@ type Props = { * title of the explorer app */ title: string; + /** + * if true, show the doc button that allows user to launch the doc panel + */ + showDocButton?: boolean; }; const IMAGERY_EXPLORER_APPS: { @@ -55,7 +62,7 @@ const IMAGERY_EXPLORER_APPS: { }, ]; -const AppHeader: FC = ({ title }) => { +const AppHeader: FC = ({ title, showDocButton }) => { const dispatch = useDispatch(); const isAnimationPlaying = useSelector(selectIsAnimationPlaying); @@ -137,6 +144,17 @@ const AppHeader: FC = ({ title }) => {
+ {showDocButton && ( +
{ + dispatch(showDocPanelToggled()); + }} + > + +
+ )} + {showImageryExplorerAppsList && (
= ({ children }) => { + const dispatch = useDispatch(); + + const show = useSelector(selectShouldShowDocPanel); + + const isAnimationPlaying = useSelector(selectIsAnimationPlaying); + + if (!show || isAnimationPlaying) { + return null; + } + + return ( +
+ { + dispatch(showDocPanelToggled()); + }} + /> + +
+ {children} +
+
+ ); +}; diff --git a/src/shared/store/UI/reducer.ts b/src/shared/store/UI/reducer.ts index 451483db..5ba7b0f2 100644 --- a/src/shared/store/UI/reducer.ts +++ b/src/shared/store/UI/reducer.ts @@ -84,6 +84,10 @@ export type UIState = { * if true, show Save Webmap Panel */ showSaveWebMapPanel?: boolean; + /** + * if true, show Documentation Panel + */ + showDocPanel?: boolean; }; export const initialUIState: UIState = { @@ -98,6 +102,7 @@ export const initialUIState: UIState = { nameOfSelectedInterestingPlace: '', showDownloadPanel: false, showSaveWebMapPanel: false, + showDocPanel: false, }; const slice = createSlice({ @@ -153,6 +158,9 @@ const slice = createSlice({ showSaveWebMapPanelToggled: (state) => { state.showSaveWebMapPanel = !state.showSaveWebMapPanel; }, + showDocPanelToggled: (state) => { + state.showDocPanel = !state.showDocPanel; + }, }, }); @@ -171,6 +179,7 @@ export const { nameOfSelectedInterestingPlaceChanged, showDownloadPanelToggled, showSaveWebMapPanelToggled, + showDocPanelToggled, } = slice.actions; export default reducer; diff --git a/src/shared/store/UI/selectors.ts b/src/shared/store/UI/selectors.ts index 00f6ece4..34eacaf7 100644 --- a/src/shared/store/UI/selectors.ts +++ b/src/shared/store/UI/selectors.ts @@ -75,3 +75,8 @@ export const selectAnimationLinkIsCopied = createSelector( (state: RootState) => state.UI.animationLinkIsCopied, (animationLinkIsCopied) => animationLinkIsCopied ); + +export const selectShouldShowDocPanel = createSelector( + (state: RootState) => state.UI.showDocPanel, + (showDocPanel) => showDocPanel +); From 4de085cf8cb2220bb9d6d878be698265f97c7803 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Wed, 3 Jul 2024 16:28:28 -0700 Subject: [PATCH 117/151] fix(landsatexplorer): add label text to Change Tool Controls --- .../ChangeCompareToolContainer.tsx | 92 +------------------ 1 file changed, 3 insertions(+), 89 deletions(-) diff --git a/src/landsat-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx b/src/landsat-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx index 255321bf..b83d9baf 100644 --- a/src/landsat-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx +++ b/src/landsat-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx @@ -36,21 +36,11 @@ import { ChangeCompareToolControls, } from '@shared/components/ChangeCompareTool'; -export const ChangeCompareToolContainer = () => { - // const dispatch = useDispatch(); +const LEGEND_LABEL_TEXT = ['decrease', 'no change', 'increase']; +export const ChangeCompareToolContainer = () => { const tool = useSelector(selectActiveAnalysisTool); - // const selectedRange = useSelector( - // selectUserSelectedRangeInChangeCompareTool - // ); - - // const selectedSpectralIndex = useSelector( - // selectSelectedOption4ChangeCompareTool - // ); - - // const isChangeLayerOn = useSelector(selectChangeCompareLayerIsOn); - if (tool !== 'change') { return null; } @@ -73,83 +63,7 @@ export const ChangeCompareToolContainer = () => { }, ]} /> - - - {/* { - dispatch( - selectedOption4ChangeCompareToolChanged( - val as SpectralIndex - ) - ); - }} - /> */} - {/* {isChangeLayerOn ? ( -
-
-
-
- - { - dispatch(selectedRangeUpdated(vals)); - }} - min={-2} - max={2} - steps={0.1} - tickLabels={[-2, -1, 0, 1, 2]} - countOfTicks={17} - showSliderTooltip={true} - /> - -
-
-
- decrease -
-
- no change -
-
- increase -
-
-
-
- ) : ( -
-

- Select two scenes, SCENE A and SCENE B, and then click - VIEW CHANGE. -

-
- )} */} +
); }; From d058096824a38faf7058dd1b4976adda6e405d07 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 4 Jul 2024 06:11:52 -0700 Subject: [PATCH 118/151] fix(sentinel1explorer): bug with 'shouldForceSceneReselection' in useQueryAvailableSentinel1Scenes hook should only turn on 'shouldForceSceneReselection' when user makes a new selectiion of the orbit direction filter ref #57 --- .../hooks/useQueryAvailableSentinel1Scenes.tsx | 5 ++++- src/shared/components/MapPopup/MapPopup.tsx | 2 +- src/shared/store/Sentinel1/thunks.ts | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx index e3a86e22..43b97c95 100644 --- a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx +++ b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx @@ -79,7 +79,10 @@ export const useQueryAvailableSentinel1Scenes = (): void => { // Set `shouldForceSceneReselection` to true when the user makes a new selection of the orbit direction filter. // This will force the `useFindSelectedSceneByDate` custom hook to disregard the currently selected scene and // select a new scene based on the current state of all filters. - if (orbitDirection !== previousOrbitDirection) { + if ( + previousOrbitDirection && + orbitDirection !== previousOrbitDirection + ) { dispatch(shouldForceSceneReselectionUpdated(true)); } diff --git a/src/shared/components/MapPopup/MapPopup.tsx b/src/shared/components/MapPopup/MapPopup.tsx index f9b293d9..d72e9166 100644 --- a/src/shared/components/MapPopup/MapPopup.tsx +++ b/src/shared/components/MapPopup/MapPopup.tsx @@ -78,7 +78,7 @@ export const MapPopup: FC = ({ data, mapView, onOpen }: Props) => { const openPopupRef = useRef(); const closePopUp = (message: string) => { - console.log('calling closePopUp', message); + // console.log('calling closePopUp', message); mapView.closePopup(); diff --git a/src/shared/store/Sentinel1/thunks.ts b/src/shared/store/Sentinel1/thunks.ts index c3b3671a..90c6cd09 100644 --- a/src/shared/store/Sentinel1/thunks.ts +++ b/src/shared/store/Sentinel1/thunks.ts @@ -103,6 +103,6 @@ export const queryAvailableSentinel1Scenes = dispatch(availableImageryScenesUpdated(imageryScenes)); }); } catch (err) { - console.error(err); + console.error(err.message); } }; From b6f23773d9d8b101c10150ef2342000ca161a4ee Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 4 Jul 2024 06:58:55 -0700 Subject: [PATCH 119/151] refactor(sentinel1explorer): useLockedRelativeOrbit should return objectId of scene --- .../LockedRelativeOrbitFootprintLayerContainer.tsx | 9 +++++---- src/sentinel-1-explorer/hooks/useLockedRelativeOrbit.tsx | 4 ++-- src/shared/services/sentinel-1/getSentinel1Scenes.ts | 6 ++++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx b/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx index 23341af4..655ee5d2 100644 --- a/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx +++ b/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx @@ -21,7 +21,8 @@ export const LockedRelativeOrbitFootprintLayerContainer: FC = ({ /** * Locked relative orbit to be used by the different Analyze tools (e.g. temporal composite and change compare) */ - const { lockedRelativeOrbit, sentinel1Scene } = useLockedRelativeOrbit(); + const { lockedRelativeOrbit, objectIdOfSceneWithLockedRelativeOrbit } = + useLockedRelativeOrbit(); const { objectIdOfSelectedScene } = useSelector(selectQueryParams4SceneInSelectedMode) || {}; @@ -39,16 +40,16 @@ export const LockedRelativeOrbitFootprintLayerContainer: FC = ({ useEffect(() => { (async () => { - const feature = sentinel1Scene + const feature = objectIdOfSceneWithLockedRelativeOrbit ? await getFeatureByObjectId( SENTINEL_1_SERVICE_URL, - sentinel1Scene.objectId + objectIdOfSceneWithLockedRelativeOrbit ) : null; setFootPrintFeature(feature); })(); - }, [sentinel1Scene]); + }, [objectIdOfSceneWithLockedRelativeOrbit]); return ( { return { lockedRelativeOrbit, - sentinel1Scene, + objectIdOfSceneWithLockedRelativeOrbit: sentinel1Scene?.objectId, }; }; diff --git a/src/shared/services/sentinel-1/getSentinel1Scenes.ts b/src/shared/services/sentinel-1/getSentinel1Scenes.ts index 45a115ee..0eae4222 100644 --- a/src/shared/services/sentinel-1/getSentinel1Scenes.ts +++ b/src/shared/services/sentinel-1/getSentinel1Scenes.ts @@ -239,7 +239,8 @@ export const getSentinel1Scenes = async ({ * @returns The formatted Sentinel-11 Scene corresponding to the objectId */ export const getSentinel1SceneByObjectId = async ( - objectId: number + objectId: number, + abortController?: AbortController ): Promise => { // Check if the Sentinel-1 scene already exists in the cache if (sentinel1SceneByObjectId.has(objectId)) { @@ -248,7 +249,8 @@ export const getSentinel1SceneByObjectId = async ( const feature = await getFeatureByObjectId( SENTINEL_1_SERVICE_URL, - objectId + objectId, + abortController ); if (!feature) { From 59ae0e0eceffb87e1f5b84677db9269b73f1b6bd Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Thu, 4 Jul 2024 07:39:25 -0700 Subject: [PATCH 120/151] feat(sentinel1explorer): update Doc component --- .../components/DocPanel/Sentinel1DocPanel.tsx | 234 +++++++++++++++++- .../components/DocPanel/img/fig1.jpg | Bin 0 -> 25230 bytes .../components/DocPanel/img/fig2.jpg | Bin 0 -> 26385 bytes 3 files changed, 228 insertions(+), 6 deletions(-) create mode 100644 src/sentinel-1-explorer/components/DocPanel/img/fig1.jpg create mode 100644 src/sentinel-1-explorer/components/DocPanel/img/fig2.jpg diff --git a/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx b/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx index f029309d..c9aa51b2 100644 --- a/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx +++ b/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx @@ -1,15 +1,237 @@ import { DocPanel } from '@shared/components/DocPanel/DocPanel'; import React from 'react'; +import Fig1 from './img/fig1.jpg'; +import Fig2 from './img/fig2.jpg'; export const Sentinel1DocPanel = () => { return ( -

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum - labore, laudantium sit impedit saepe quas, suscipit repudiandae - assumenda harum aperiam maiores unde? Tempore quia deleniti - soluta vel saepe voluptatibus magni. -

+
+

+ Sentinel-1 SAR Quick Reference Guide +

+ +
+

About This User Guide

+ +

+ This quick reference guide is intended to provide a + technical overview and context for the Sentinel-1 SAR + imagery you see in the Sentinel-1 Explorer. It is not + intended to be a comprehensive technical guide. +

+
+ +
+

Sentinel-1

+ +
+

Mission

+ +

+ The Sentinel-1 mission is designed as a dual + satellite constellation carrying advanced radar + sensors to collect imagery of Earth’s surface both + day and night and in all weather conditions. +

+
+ +
+

Coverage

+ +

+ Total coverage is global. However, in December 2021, + Sentinel-1B experienced a power anomaly resulting in + permanent loss of data transmission. From 2022-2024, + the mission has continued with a single satellite, + Sentinel-1A affecting coverage and frequency of + collection. In Q4 2024, Sentinel-1C will launch and + the mission will once again operate as a dual + satellite constellation. +

+
+ +
+

Data Acquisition

+ +

+ Sentinel-1 active sensors collect data leveraging + C-Band synthetic aperture radar (SAR). The sensors + collect data by actively sending and receiving radar + signals that echo off the Earth’s surface. The + echoes returned to the sensor are known as + backscatter. Measurements of this backscatter + provides information about the characteristics of + the surface at any given location. More on + backscatter below. +

+ +

+ Because radar signals are not dependent upon solar + illumination and are unimpeded by clouds, haze, and + smoke, Sentinel-1 collects imagery of the Earth’s + surface day and night and in all weather conditions. +

+
+ +
+

Backscatter

+ +

+ As noted in the previous section, the echoes of + microwave signals off the Earth’s surface are known + as backscatter. Two types of information are + obtained from backscatter: amplitude and phase. The + amplitude of backscatter provides information about + the characteristics of the surface at any given + location. For the purposes of this document, we are + only focused on the amplitude of backscatter. More + backscatter received = higher energy return = higher + amplitude = brighter pixels. More on this in the + Image Interpretation section. +

+ +

+ One of the most important factors influencing the + amplitude of backscatter is surface roughness. A + very smooth surface, like water or pavement, results + in high specular reflection where the microwave + signals reflect away from the sensor with little to + no backscatter return. In contrast, a very rough + surface causes diffuse scattering and a relatively + high volume of return. +

+ +
+ + +

+ Figure 1. Source:{' '} + + The SAR Handbook + +

+
+ +

+ As noted above, rougher surfaces produce diffuse + scattering, resulting in more energy returned to the + sensor. Tree canopies tend to cause volumetric + scattering, resulting in relatively lower returns. + Objects such as buildings and ships can cause what + is known as double bounce, resulting in very strong + returns with most of the original signal directed + back to the sensor. This effect is amplified when + the vertical object is adjacent to a very smooth + surface which would otherwise result in specular + reflection (e.g. a ship on smooth water). +

+ +
+ +

+ The polarization of the microwave signals can also + contribute to the overall amplitude of backscatter. + Sentinel-1 is a dual polarized sensor. It transmits + microwave signals which are vertically oriented + relative to the plane of the Earth’s surface. While + the backscatter often maintains its original + vertical orientation, echoed signals can change + orientation and return horizontally. This dual + polarization is expressed as VV and VH, where the + first character denotes the transmitted orientation + and the second denotes the received orientation. It + should be noted the scattering types described above + do not contribute equally to each polarization. More + on this in the next section. +

+
+ +
+

Image interpretation

+ +

+ The Sentinel-1 imagery available in ArcGIS Living + Atlas and used in the Sentinel-1 Explorer do not + include the phase portion of the SAR data, which + includes the measurement of time it takes to + transmit and receive the microwave signals. Instead, + the image only provides the amplitude information + described above in terms of the amount of energy + returned from the transmitted signals. +

+ +

+ The imagery here has a Radiometric Terrain + Correction (RTC) applied making it a mapping + friendly product ready for certain types of + analysis. These include applications such as + flooding, change detection, agriculture, water + quality, deforestation, and more. +

+ +

+ As noted in the previous section, Sentinel-1 is dual + polarized. Each polarization, VV and VH, are stored + as separate bands in the RTC image product, where + band-1 is VV, and band-2 is VH. Each band can be + used independently or in conjunction with one + another, for visualization and analysis. VH signals + are most prevalent in areas of volume scattering. + This makes it useful in determining land cover types + such as forested vs non-forested areas. +

+
+ +
+

+ References and additional information +

+ +
    +
  1. + + ASF – Introduction to SAR + +
  2. +
  3. + + SERVIR – The SAR Handbook + +
  4. +
+
+
+
); }; diff --git a/src/sentinel-1-explorer/components/DocPanel/img/fig1.jpg b/src/sentinel-1-explorer/components/DocPanel/img/fig1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..443e7e427d664cd5eccf5e4d941b0ee50f260ca5 GIT binary patch literal 25230 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 UJj{Qe8UCL&@&E1j@V|fl2SIc(yZ`_I literal 0 HcmV?d00001 diff --git a/src/sentinel-1-explorer/components/DocPanel/img/fig2.jpg b/src/sentinel-1-explorer/components/DocPanel/img/fig2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c3d63392cdd5d73d4e0f50db03dedefbc2a9178b GIT binary patch literal 26385 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 Date: Fri, 5 Jul 2024 09:52:13 -0700 Subject: [PATCH 121/151] chore(sentinel1explorer): update Temporal Profile tool tooltip text --- .../TemporalProfileTool/Sentinel1TemporalProfileTool.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx b/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx index 4b8ebaf3..549f1e6f 100644 --- a/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx +++ b/src/sentinel-1-explorer/components/TemporalProfileTool/Sentinel1TemporalProfileTool.tsx @@ -158,7 +158,7 @@ export const Sentinel1TemporalProfileTool = () => { label: 'water anomaly', }, ]} - tooltipText={`The most recent scene within each month in the selected time interval will be sampled to show a temporal profile and trend for the selected point and category.`} + tooltipText={`The most recent scene within each month in the selected time interval, and with the same orbit direction, will be sampled to show a temporal profile and trend for the selected point and category.`} />

From f8d2ace9593a06b3666d1709c918bc50763ccbae Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 5 Jul 2024 10:15:20 -0700 Subject: [PATCH 122/151] refactor(sentinel1explorer): locked relative orbit should be saved to Sentinel1 slice of redux store --- ...edRelativeOrbitFootprintLayerContainer.tsx | 18 +++++----- .../hooks/useLockedRelativeOrbit.tsx | 36 ++++++++++++++----- .../useQueryAvailableSentinel1Scenes.tsx | 15 +++++--- src/shared/store/Sentinel1/reducer.ts | 17 +++++++++ src/shared/store/Sentinel1/selectors.ts | 5 +++ 5 files changed, 68 insertions(+), 23 deletions(-) diff --git a/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx b/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx index 655ee5d2..f85d6893 100644 --- a/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx +++ b/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx @@ -8,6 +8,7 @@ import { getFeatureByObjectId } from '@shared/services/helpers/getFeatureById'; import { SENTINEL_1_SERVICE_URL } from '@shared/services/sentinel-1/config'; import { useSelector } from 'react-redux'; import { selectQueryParams4SceneInSelectedMode } from '@shared/store/ImageryScene/selectors'; +import { selectLockedRelativeOrbit } from '@shared/store/Sentinel1/selectors'; type Props = { mapView?: MapView; @@ -21,8 +22,8 @@ export const LockedRelativeOrbitFootprintLayerContainer: FC = ({ /** * Locked relative orbit to be used by the different Analyze tools (e.g. temporal composite and change compare) */ - const { lockedRelativeOrbit, objectIdOfSceneWithLockedRelativeOrbit } = - useLockedRelativeOrbit(); + const { relativeOrbit, objectId } = + useSelector(selectLockedRelativeOrbit) || {}; const { objectIdOfSelectedScene } = useSelector(selectQueryParams4SceneInSelectedMode) || {}; @@ -35,21 +36,18 @@ export const LockedRelativeOrbitFootprintLayerContainer: FC = ({ return false; } - return lockedRelativeOrbit !== null; - }, [lockedRelativeOrbit, objectIdOfSelectedScene]); + return relativeOrbit !== undefined; + }, [relativeOrbit, objectIdOfSelectedScene]); useEffect(() => { (async () => { - const feature = objectIdOfSceneWithLockedRelativeOrbit - ? await getFeatureByObjectId( - SENTINEL_1_SERVICE_URL, - objectIdOfSceneWithLockedRelativeOrbit - ) + const feature = objectId + ? await getFeatureByObjectId(SENTINEL_1_SERVICE_URL, objectId) : null; setFootPrintFeature(feature); })(); - }, [objectIdOfSceneWithLockedRelativeOrbit]); + }, [objectId]); return ( { + const dispatch = useDispatch(); + const mode = useSelector(selectAppMode); const analysisTool = useSelector(selectActiveAnalysisTool); @@ -55,7 +62,7 @@ export const useLockedRelativeOrbit = () => { * useMemo hook to compute the relative orbit based on the mode, active analysis tool, and selected Sentinel-1 scene. * The relative orbit is only relevant when the mode is 'analysis' and the analysis tool is 'temporal composite' or 'change compare'. */ - const lockedRelativeOrbit: string = useMemo(() => { + const lockedRelativeOrbit: LockedRelativeOrbitInfo = useMemo(() => { if (mode !== 'analysis' || !sentinel1Scene) { return null; } @@ -67,7 +74,16 @@ export const useLockedRelativeOrbit = () => { return null; } - return sentinel1Scene?.relativeOrbit; + if (!sentinel1Scene) { + return null; + } + + const { relativeOrbit, objectId } = sentinel1Scene; + + return { + relativeOrbit, + objectId, + }; }, [mode, analysisTool, sentinel1Scene]); /** @@ -121,8 +137,12 @@ export const useLockedRelativeOrbit = () => { })(); }, [queryParams?.objectIdOfSelectedScene, mode, analysisTool]); - return { - lockedRelativeOrbit, - objectIdOfSceneWithLockedRelativeOrbit: sentinel1Scene?.objectId, - }; + useEffect(() => { + dispatch(lockedRelativeOrbitChanged(lockedRelativeOrbit)); + }, [lockedRelativeOrbit]); + + // return { + // lockedRelativeOrbit, + // objectIdOfSceneWithLockedRelativeOrbit: sentinel1Scene?.objectId, + // }; }; diff --git a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx index 43b97c95..b2e824e8 100644 --- a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx +++ b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx @@ -26,7 +26,10 @@ import { selectListOfQueryParams, selectQueryParams4SceneInSelectedMode, } from '@shared/store/ImageryScene/selectors'; -import { selectSentinel1OrbitDirection } from '@shared/store/Sentinel1/selectors'; +import { + selectLockedRelativeOrbit, + selectSentinel1OrbitDirection, +} from '@shared/store/Sentinel1/selectors'; import { Sentinel1Scene } from '@typing/imagery-service'; import { getSentinel1SceneByObjectId } from '@shared/services/sentinel-1/getSentinel1Scenes'; import { useLockedRelativeOrbit } from './useLockedRelativeOrbit'; @@ -61,11 +64,13 @@ export const useQueryAvailableSentinel1Scenes = (): void => { const previousOrbitDirection = usePrevious(orbitDirection); + const { relativeOrbit } = useSelector(selectLockedRelativeOrbit) || {}; + /** - * Locked relative orbit to be used by the Analyze tools to ensure all Sentinel-1 + * This custom hook helps to determine the Locked relative orbit to be used by the Analyze tools to ensure all Sentinel-1 * scenes selected by the user to have the same relative orbit. */ - const { lockedRelativeOrbit } = useLockedRelativeOrbit(); + useLockedRelativeOrbit(); useEffect(() => { if (!center || !acquisitionDateRange) { @@ -89,7 +94,7 @@ export const useQueryAvailableSentinel1Scenes = (): void => { dispatch( queryAvailableSentinel1Scenes({ acquisitionDateRange, - relativeOrbit: lockedRelativeOrbit, + relativeOrbit, }) ); }, [ @@ -98,7 +103,7 @@ export const useQueryAvailableSentinel1Scenes = (): void => { acquisitionDateRange?.endDate, isAnimationPlaying, orbitDirection, - lockedRelativeOrbit, + relativeOrbit, // dualPolarizationOnly, ]); diff --git a/src/shared/store/Sentinel1/reducer.ts b/src/shared/store/Sentinel1/reducer.ts index ac1f1f2b..d164abba 100644 --- a/src/shared/store/Sentinel1/reducer.ts +++ b/src/shared/store/Sentinel1/reducer.ts @@ -26,6 +26,11 @@ import { export type Sentinel1PolarizationFilter = 'VV' | 'VH'; +export type LockedRelativeOrbitInfo = { + relativeOrbit: string; + objectId: number; +}; + export type Sentinel1State = { /** * Sentinel-1 scenes that intersect with center point of map view and were acquired during the input year. @@ -41,6 +46,10 @@ export type Sentinel1State = { * The polarization filter that allows user to switch between VV and VH */ polarizationFilter: Sentinel1PolarizationFilter; + /** + * the relative orbit that will be used to lock the scene selection to make sure the Analyze tools like Change Compare or Temporal Composite always use scenes have the same relative orbit + */ + lockedRelativeOrbit: LockedRelativeOrbitInfo; }; export const initialSentinel1State: Sentinel1State = { @@ -50,6 +59,7 @@ export const initialSentinel1State: Sentinel1State = { }, orbitDirection: 'Ascending', polarizationFilter: 'VV', + lockedRelativeOrbit: null, }; const slice = createSlice({ @@ -90,6 +100,12 @@ const slice = createSlice({ ) => { state.polarizationFilter = action.payload; }, + lockedRelativeOrbitChanged: ( + state, + action: PayloadAction + ) => { + state.lockedRelativeOrbit = action.payload; + }, }, }); @@ -99,6 +115,7 @@ export const { sentinel1ScenesUpdated, orbitDirectionChanged, polarizationFilterChanged, + lockedRelativeOrbitChanged, } = slice.actions; export default reducer; diff --git a/src/shared/store/Sentinel1/selectors.ts b/src/shared/store/Sentinel1/selectors.ts index ff5e95a5..f3d4df74 100644 --- a/src/shared/store/Sentinel1/selectors.ts +++ b/src/shared/store/Sentinel1/selectors.ts @@ -35,3 +35,8 @@ export const selectSentinel1State = createSelector( (state: RootState) => state.Sentinel1, (Sentinel1) => Sentinel1 ); + +export const selectLockedRelativeOrbit = createSelector( + (state: RootState) => state.Sentinel1.lockedRelativeOrbit, + (lockedRelativeOrbit) => lockedRelativeOrbit +); From c55257c0bc647d6b7acc9c0fc522b43f7a8e5104 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 5 Jul 2024 10:21:42 -0700 Subject: [PATCH 123/151] refactor(sentinel1explorer): update lockedRelativeOrbitInfo of Sentinel1 State use prop names that are more explicit --- ...LockedRelativeOrbitFootprintLayerContainer.tsx | 15 +++++++++------ .../hooks/useLockedRelativeOrbit.tsx | 8 ++++---- .../hooks/useQueryAvailableSentinel1Scenes.tsx | 7 ++++--- src/shared/store/Sentinel1/reducer.ts | 14 +++++++------- src/shared/store/Sentinel1/selectors.ts | 4 ++-- 5 files changed, 26 insertions(+), 22 deletions(-) diff --git a/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx b/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx index f85d6893..c51eaeac 100644 --- a/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx +++ b/src/sentinel-1-explorer/components/LockedRelativeOrbitFootprintLayer/LockedRelativeOrbitFootprintLayerContainer.tsx @@ -22,7 +22,7 @@ export const LockedRelativeOrbitFootprintLayerContainer: FC = ({ /** * Locked relative orbit to be used by the different Analyze tools (e.g. temporal composite and change compare) */ - const { relativeOrbit, objectId } = + const { lockedRelativeOrbit, objectIdOfSceneWithLockedRelativeOrbit } = useSelector(selectLockedRelativeOrbit) || {}; const { objectIdOfSelectedScene } = @@ -36,18 +36,21 @@ export const LockedRelativeOrbitFootprintLayerContainer: FC = ({ return false; } - return relativeOrbit !== undefined; - }, [relativeOrbit, objectIdOfSelectedScene]); + return lockedRelativeOrbit !== undefined; + }, [lockedRelativeOrbit, objectIdOfSelectedScene]); useEffect(() => { (async () => { - const feature = objectId - ? await getFeatureByObjectId(SENTINEL_1_SERVICE_URL, objectId) + const feature = objectIdOfSceneWithLockedRelativeOrbit + ? await getFeatureByObjectId( + SENTINEL_1_SERVICE_URL, + objectIdOfSceneWithLockedRelativeOrbit + ) : null; setFootPrintFeature(feature); })(); - }, [objectId]); + }, [objectIdOfSceneWithLockedRelativeOrbit]); return ( { const { relativeOrbit, objectId } = sentinel1Scene; return { - relativeOrbit, - objectId, + lockedRelativeOrbit: relativeOrbit, + objectIdOfSceneWithLockedRelativeOrbit: objectId, }; }, [mode, analysisTool, sentinel1Scene]); @@ -138,7 +138,7 @@ export const useLockedRelativeOrbit = () => { }, [queryParams?.objectIdOfSelectedScene, mode, analysisTool]); useEffect(() => { - dispatch(lockedRelativeOrbitChanged(lockedRelativeOrbit)); + dispatch(lockedRelativeOrbitInfoChanged(lockedRelativeOrbit)); }, [lockedRelativeOrbit]); // return { diff --git a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx index b2e824e8..a7806e4a 100644 --- a/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx +++ b/src/sentinel-1-explorer/hooks/useQueryAvailableSentinel1Scenes.tsx @@ -64,7 +64,8 @@ export const useQueryAvailableSentinel1Scenes = (): void => { const previousOrbitDirection = usePrevious(orbitDirection); - const { relativeOrbit } = useSelector(selectLockedRelativeOrbit) || {}; + const { lockedRelativeOrbit } = + useSelector(selectLockedRelativeOrbit) || {}; /** * This custom hook helps to determine the Locked relative orbit to be used by the Analyze tools to ensure all Sentinel-1 @@ -94,7 +95,7 @@ export const useQueryAvailableSentinel1Scenes = (): void => { dispatch( queryAvailableSentinel1Scenes({ acquisitionDateRange, - relativeOrbit, + relativeOrbit: lockedRelativeOrbit, }) ); }, [ @@ -103,7 +104,7 @@ export const useQueryAvailableSentinel1Scenes = (): void => { acquisitionDateRange?.endDate, isAnimationPlaying, orbitDirection, - relativeOrbit, + lockedRelativeOrbit, // dualPolarizationOnly, ]); diff --git a/src/shared/store/Sentinel1/reducer.ts b/src/shared/store/Sentinel1/reducer.ts index d164abba..e68406e5 100644 --- a/src/shared/store/Sentinel1/reducer.ts +++ b/src/shared/store/Sentinel1/reducer.ts @@ -27,8 +27,8 @@ import { export type Sentinel1PolarizationFilter = 'VV' | 'VH'; export type LockedRelativeOrbitInfo = { - relativeOrbit: string; - objectId: number; + lockedRelativeOrbit: string; + objectIdOfSceneWithLockedRelativeOrbit: number; }; export type Sentinel1State = { @@ -49,7 +49,7 @@ export type Sentinel1State = { /** * the relative orbit that will be used to lock the scene selection to make sure the Analyze tools like Change Compare or Temporal Composite always use scenes have the same relative orbit */ - lockedRelativeOrbit: LockedRelativeOrbitInfo; + lockedRelativeOrbitInfo: LockedRelativeOrbitInfo; }; export const initialSentinel1State: Sentinel1State = { @@ -59,7 +59,7 @@ export const initialSentinel1State: Sentinel1State = { }, orbitDirection: 'Ascending', polarizationFilter: 'VV', - lockedRelativeOrbit: null, + lockedRelativeOrbitInfo: null, }; const slice = createSlice({ @@ -100,11 +100,11 @@ const slice = createSlice({ ) => { state.polarizationFilter = action.payload; }, - lockedRelativeOrbitChanged: ( + lockedRelativeOrbitInfoChanged: ( state, action: PayloadAction ) => { - state.lockedRelativeOrbit = action.payload; + state.lockedRelativeOrbitInfo = action.payload; }, }, }); @@ -115,7 +115,7 @@ export const { sentinel1ScenesUpdated, orbitDirectionChanged, polarizationFilterChanged, - lockedRelativeOrbitChanged, + lockedRelativeOrbitInfoChanged, } = slice.actions; export default reducer; diff --git a/src/shared/store/Sentinel1/selectors.ts b/src/shared/store/Sentinel1/selectors.ts index f3d4df74..2a1cda9d 100644 --- a/src/shared/store/Sentinel1/selectors.ts +++ b/src/shared/store/Sentinel1/selectors.ts @@ -37,6 +37,6 @@ export const selectSentinel1State = createSelector( ); export const selectLockedRelativeOrbit = createSelector( - (state: RootState) => state.Sentinel1.lockedRelativeOrbit, - (lockedRelativeOrbit) => lockedRelativeOrbit + (state: RootState) => state.Sentinel1.lockedRelativeOrbitInfo, + (lockedRelativeOrbitInfo) => lockedRelativeOrbitInfo ); From 90a7d77e7c3507ac04cac2cfce709c5e236e2e2e Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 5 Jul 2024 10:50:05 -0700 Subject: [PATCH 124/151] fix(sentinel1explorer): show comparison topic in Change Compare tool --- .../ChangeCompareToolContainer.tsx | 7 +++++-- .../ChangeCompareToolControls.tsx | 14 +++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx index 0689c633..93f2a7eb 100644 --- a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx +++ b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx @@ -131,7 +131,7 @@ export const ChangeCompareToolContainer = () => { return ['decrease', '', 'increase']; }, [selectedOption]); - const legendTitle = useMemo(() => { + const comparisonTopic = useMemo(() => { if (selectedOption === 'log difference') { return 'Backscatter'; } @@ -166,7 +166,10 @@ export const ChangeCompareToolContainer = () => {
- + {selectedOption === 'log difference' && (
diff --git a/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx index 19e04d86..3a99329c 100644 --- a/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx +++ b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx @@ -39,10 +39,16 @@ type Props = { * the label text to be placed at the bottom of the pixel range selector. e.g. `['decrease', 'no change', 'increase']` */ legendLabelText?: string[]; + /** + * The selected parameter for comparison, such as 'Water Index' or 'Log Difference'. + * It will be displayed along with the Estimated area info. + */ + comparisonTopic?: string; }; export const ChangeCompareToolControls: FC = ({ legendLabelText = [], + comparisonTopic, }: Props) => { const dispatch = useDispatch(); @@ -154,7 +160,13 @@ export const ChangeCompareToolControls: FC = ({
{/* {legendTitle} */} - +
From 0c619857790dc2d990d50b1c450eca883cd517a2 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 5 Jul 2024 11:17:21 -0700 Subject: [PATCH 125/151] fix(shared): Scene Info table should use Tooltip Component from @shared/components --- .../SceneInfoTable/SceneInfoTable.tsx | 68 +++++++++++-------- 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/src/shared/components/SceneInfoTable/SceneInfoTable.tsx b/src/shared/components/SceneInfoTable/SceneInfoTable.tsx index ebdd535f..0f98a71d 100644 --- a/src/shared/components/SceneInfoTable/SceneInfoTable.tsx +++ b/src/shared/components/SceneInfoTable/SceneInfoTable.tsx @@ -17,6 +17,7 @@ import { delay } from '@shared/utils/snippets/delay'; import classNames from 'classnames'; import { generateUID } from 'helper-toolkit-ts'; import React, { FC, useState } from 'react'; +import { Tooltip } from '../Tooltip'; /** * data for a single row in Scene Info Table @@ -58,6 +59,42 @@ const SceneInfoRow: FC = ({ name, value, clickToCopy }) => { setHasCopied2Clipboard(false); }; + const getContentOfValueField = () => { + const valueField = ( + + {value} + + ); + + if (!clickToCopy) { + return valueField; + } + + const tooltipContent = ` +

${value}

+

+ ${ + hasCopied2Clipboard + ? `Copied to clipboard` + : 'Click to copy to clipboard.' + } +

+ `; + + return ( + + {valueField} + + ); + }; + return ( <>
= ({ name, value, clickToCopy }) => { }} onClick={valueOnClickHandler} > - - {value} - - - {clickToCopy && ( - - )} + {getContentOfValueField()}
); From 5b7a2cc840816a162fae9c45098c64248ecf31be Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 5 Jul 2024 12:54:39 -0700 Subject: [PATCH 126/151] fix(sentinel1explorer): update tooltip and preselection text of Change Compare tool ref #59 --- .../ChangeCompareTool/ChangeCompareToolContainer.tsx | 6 +++++- .../ChangeCompareTool/ChangeCompareToolControls.tsx | 12 +++++++++--- .../ChangeCompareTool/ChangeCompareToolHeader.tsx | 10 +++++++++- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx index 93f2a7eb..9ddb0e2e 100644 --- a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx +++ b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx @@ -164,11 +164,15 @@ export const ChangeCompareToolContainer = () => { return (
- + {selectedOption === 'log difference' && ( diff --git a/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx index 3a99329c..7c250aad 100644 --- a/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx +++ b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx @@ -44,11 +44,17 @@ type Props = { * It will be displayed along with the Estimated area info. */ comparisonTopic?: string; + /** + * The preselection dialogue text message will be displayed when the change layer is not turned on. + * This text provide user instruction about how to use this tool + */ + preselectionText?: string; }; export const ChangeCompareToolControls: FC = ({ legendLabelText = [], comparisonTopic, + preselectionText, }: Props) => { const dispatch = useDispatch(); @@ -147,10 +153,10 @@ export const ChangeCompareToolControls: FC = ({ if (!isChangeLayerOn) { return ( -
+

- Select two scenes, SCENE A and SCENE B, and then click VIEW - CHANGE. + {preselectionText || + 'Select two scenes, SCENE A and SCENE B, and then click VIEW CHANGE.'}

); diff --git a/src/shared/components/ChangeCompareTool/ChangeCompareToolHeader.tsx b/src/shared/components/ChangeCompareTool/ChangeCompareToolHeader.tsx index da3d867c..ab012a6e 100644 --- a/src/shared/components/ChangeCompareTool/ChangeCompareToolHeader.tsx +++ b/src/shared/components/ChangeCompareTool/ChangeCompareToolHeader.tsx @@ -39,9 +39,16 @@ type Props = { value: SpectralIndex | string; label: string; }[]; + /** + * tooltip text for the info icon of the Change Compare tool + */ + tooltipText?: string; }; -export const ChangeCompareToolHeader: FC = ({ options }: Props) => { +export const ChangeCompareToolHeader: FC = ({ + options, + tooltipText, +}: Props) => { const dispatch = useDispatch(); const tool = useSelector(selectActiveAnalysisTool); @@ -58,6 +65,7 @@ export const ChangeCompareToolHeader: FC = ({ options }: Props) => { dropdownListOptions={options} selectedValue={selectedOption} tooltipText={ + tooltipText || 'Compare and report changes between two selected images. Change is always calculated and reported chronologically from oldest to newest.' } dropdownMenuSelectedItemOnChange={(val) => { From f9e1a4e83ae3e9032b4d0f0c3da50e746f841ddb Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 5 Jul 2024 12:59:56 -0700 Subject: [PATCH 127/151] feat(shared): add Add tool tip to 'About this app' icon ref #60 --- src/shared/components/AppHeader/AppHeader.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/shared/components/AppHeader/AppHeader.tsx b/src/shared/components/AppHeader/AppHeader.tsx index f4e281cd..c50ba87f 100644 --- a/src/shared/components/AppHeader/AppHeader.tsx +++ b/src/shared/components/AppHeader/AppHeader.tsx @@ -102,6 +102,7 @@ const AppHeader: FC = ({ title, showDocButton }) => { onClick={() => { dispatch(shouldShowAboutThisAppToggled()); }} + title="About this app" > Date: Fri, 5 Jul 2024 13:13:56 -0700 Subject: [PATCH 128/151] fix(sentinel1explorer): minot fix for the Documentation Panel ref #58 --- .../components/DocPanel/Sentinel1DocPanel.tsx | 5 +++-- src/sentinel-1-explorer/components/Layout/Layout.tsx | 6 +++++- src/shared/components/AppHeader/AppHeader.tsx | 7 ++++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx b/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx index c9aa51b2..8cad9d0f 100644 --- a/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx +++ b/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx @@ -40,7 +40,8 @@ export const Sentinel1DocPanel = () => {

Coverage

- Total coverage is global. However, in December 2021, + Total coverage is global and includes imagery from + 2014 to present. However, in December 2021, Sentinel-1B experienced a power anomaly resulting in permanent loss of data transmission. From 2022-2024, the mission has continued with a single satellite, @@ -167,7 +168,7 @@ export const Sentinel1DocPanel = () => {

-

Image interpretation

+

Image Interpretation

The Sentinel-1 imagery available in ArcGIS Living diff --git a/src/sentinel-1-explorer/components/Layout/Layout.tsx b/src/sentinel-1-explorer/components/Layout/Layout.tsx index 942d1e60..3e6a3da8 100644 --- a/src/sentinel-1-explorer/components/Layout/Layout.tsx +++ b/src/sentinel-1-explorer/components/Layout/Layout.tsx @@ -94,7 +94,11 @@ export const Layout = () => { return ( <> - +

diff --git a/src/shared/components/AppHeader/AppHeader.tsx b/src/shared/components/AppHeader/AppHeader.tsx index c50ba87f..327fcba3 100644 --- a/src/shared/components/AppHeader/AppHeader.tsx +++ b/src/shared/components/AppHeader/AppHeader.tsx @@ -38,6 +38,10 @@ type Props = { * if true, show the doc button that allows user to launch the doc panel */ showDocButton?: boolean; + /** + * tooltip text for the open documentation button + */ + docButtonTooltip?: string; }; const IMAGERY_EXPLORER_APPS: { @@ -62,7 +66,7 @@ const IMAGERY_EXPLORER_APPS: { }, ]; -const AppHeader: FC = ({ title, showDocButton }) => { +const AppHeader: FC = ({ title, showDocButton, docButtonTooltip }) => { const dispatch = useDispatch(); const isAnimationPlaying = useSelector(selectIsAnimationPlaying); @@ -151,6 +155,7 @@ const AppHeader: FC = ({ title, showDocButton }) => { onClick={() => { dispatch(showDocPanelToggled()); }} + title={docButtonTooltip || ''} >
From 6c5388ed3b0ee79aabe68cd62f4a4bd20b5e41a8 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 5 Jul 2024 13:51:08 -0700 Subject: [PATCH 129/151] fix(sentinel1explorer): style and text for the Total Area info of Change Tool --- .../ChangeCompareTool/ChangeCompareToolContainer.tsx | 10 ++++++---- src/shared/components/TotalAreaInfo/TotalAreaInfo.tsx | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx index 9ddb0e2e..e1492c95 100644 --- a/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx +++ b/src/sentinel-1-explorer/components/ChangeCompareTool/ChangeCompareToolContainer.tsx @@ -136,11 +136,13 @@ export const ChangeCompareToolContainer = () => { return 'Backscatter'; } - const data = ChangeCompareToolOptions.find( - (d) => d.value === selectedOption - ); + return ''; - return data?.label || selectedOption; + // const data = ChangeCompareToolOptions.find( + // (d) => d.value === selectedOption + // ); + + // return data?.label || selectedOption; }, [selectedOption]); useSyncCalendarDateRange(); diff --git a/src/shared/components/TotalAreaInfo/TotalAreaInfo.tsx b/src/shared/components/TotalAreaInfo/TotalAreaInfo.tsx index bc2a893d..805371c6 100644 --- a/src/shared/components/TotalAreaInfo/TotalAreaInfo.tsx +++ b/src/shared/components/TotalAreaInfo/TotalAreaInfo.tsx @@ -42,7 +42,7 @@ export const TotalVisibleAreaInfo: FC = ({ label }: Props) => {
) : (

- {label}: {getFormattedArea()} Sq.Km + {label}: {getFormattedArea()} km²

)}
From 2c4ceb5fb1ae5113179327dc6694e9a9a758b9d3 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Fri, 5 Jul 2024 14:30:56 -0700 Subject: [PATCH 130/151] doc: add Sentinel-1 Explorer section to README --- README.md | 49 +++++++++++++++++++++++ public/thumbnails/sentinel1-explorer.jpg | Bin 0 -> 474971 bytes 2 files changed, 49 insertions(+) create mode 100644 public/thumbnails/sentinel1-explorer.jpg diff --git a/README.md b/README.md index c5c365c8..4529e34e 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ This repository contains a collection of Imagery Explorer web applications devel - [Getting Started](#getting-started) - [Landsat Explorer](#landsat-explorer) - [Sentinel-2 Landcover Explorer](#sentinel-2-land-cover-explorer) +- [Sentinel-1 Explorer](#sentinel-1-explorer) ## Getting Started Before you begin, make sure you have a fresh version of [Node.js](https://nodejs.org/en/) and NPM installed. The current Long Term Support (LTS) release is an ideal starting point. @@ -102,6 +103,54 @@ npm run build:landcover ### Resources - [Global Land Cover Revealed](https://www.esri.com/arcgis-blog/products/arcgis-living-atlas/imagery/global-land-cover-revealed/) +## Sentinel-1 Explorer + +Sentinel-1 SAR imagery helps to track and document land use and land change associated with climate change, urbanization, drought, wildfire, deforestation, and other natural processes and human activity. + +Through an intuitive user experience, this app leverages a variety of ArcGIS capabilities to explore and begin to unlock the wealth of information that Sentinel-1 provides. + +[View it live](https://livingatlas.arcgis.com/sentinel1explorer/) + +![App](./public/thumbnails/sentinel1-explorer.jpg) + +### Features: +- Visual exploration of a Dynamic global mosaic of the best available Sentinel-1 scenes. +- On-the-fly multispectral band combinations and indices for visualization and analysis. +- Interactive Find a Scene by location, sensor, time, and cloud cover. +- Visual change by time, and comparison of different renderings, with Swipe and Animation modes. +- Analysis such as threshold masking and temporal profiles for vegetation, water, land surface temperature, and more. + +### Usage +Before running the application, update the `"sentinel-1` URLs in the [`config.json`](./src/config.json) to use the URL of your service proxy for [Sentinel-1 RTC](https://sentinel1.imagery1.arcgis.com/arcgis/rest/services/Sentinel1RTC/ImageServer). + +[`config.json`](./src/config.json): +```js +{ + //... + "services": { + "sentinel-1": { + "development": "URL_OF_YOUR_PROXY_SERVICE_FOR_SENTINEL_1", + "production": "URL_OF_YOUR_PROXY_SERVICE_FOR_SENTINEL_1" + } + } +} +``` + +To run and test the app on your local machine: +```sh +npm run start:sentinel1 +``` + +To build the app, you can run the command below, this will place all files needed for deployment into the `/dist/sentinel1-explorer` directory. +```sh +npm run build:sentinel1 +``` + +### Sentinel-1 RTC Imagery Service Licensing +- Sentinel-1 RTC Source Imagery – The source imagery is hosted on Microsoft Planetary Computer under an open [CC BY 4.0 license](https://creativecommons.org/licenses/by/4.0/). +- Sentinel-1 RTC Image Service - This work is licensed under the Esri Master License Agreement. [View Summary](https://downloads2.esri.com/arcgisonline/docs/tou_summary.pdf) | [View Terms of Use](https://www.esri.com/en-us/legal/terms/full-master-agreement) + + ## Issues Find a bug or want to request a new feature? Please let us know by submitting an issue. diff --git a/public/thumbnails/sentinel1-explorer.jpg b/public/thumbnails/sentinel1-explorer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e5d26b7a6331afa5aafffd453d0329418bcb86b2 GIT binary patch literal 474971 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

From 2955f1fe600eb372df4d6cdd840c64b903d19b13 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 8 Jul 2024 06:37:52 -0700 Subject: [PATCH 132/151] fix(share): Scene B in Swipe Tool not inheriting Scene A renderer ref #61 --- .../components/SwipeWidget/SwipeWidget4ImageryLayers.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/shared/components/SwipeWidget/SwipeWidget4ImageryLayers.tsx b/src/shared/components/SwipeWidget/SwipeWidget4ImageryLayers.tsx index 887fbad5..c8ac2036 100644 --- a/src/shared/components/SwipeWidget/SwipeWidget4ImageryLayers.tsx +++ b/src/shared/components/SwipeWidget/SwipeWidget4ImageryLayers.tsx @@ -54,6 +54,11 @@ export const SwipeWidget4ImageryLayers: FC = ({ // const isSwipeWidgetVisible = appMode === 'swipe'; useEffect(() => { + // should only sync the renderer of right side when swipe widget is on + if (!isSwipeWidgetVisible) { + return; + } + // If a raster function is not explicitly selected for the imagery scene on the right side, // we want it to inherit the raster function from the main scene on the left side. if (!queryParams4RightSide?.rasterFunctionName) { @@ -64,7 +69,7 @@ export const SwipeWidget4ImageryLayers: FC = ({ dispatch(queryParams4SecondarySceneChanged(updatedQueryParams)); } - }, [queryParams4RightSide?.rasterFunctionName]); + }, [queryParams4RightSide?.rasterFunctionName, isSwipeWidgetVisible]); const leadingLayer = useImageryLayerByObjectId({ url: serviceUrl, From ad59161672f78b7980e44cfb5b7595b50d1a077c Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 8 Jul 2024 06:47:16 -0700 Subject: [PATCH 133/151] doc(sentinel1explorer): update Doc Panel --- .../components/DocPanel/Sentinel1DocPanel.tsx | 39 ++++++++++++++---- .../DocPanel/img/data-acquisition-fig1.jpg | Bin 0 -> 60184 bytes 2 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 src/sentinel-1-explorer/components/DocPanel/img/data-acquisition-fig1.jpg diff --git a/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx b/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx index ba3ee665..926dfdd4 100644 --- a/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx +++ b/src/sentinel-1-explorer/components/DocPanel/Sentinel1DocPanel.tsx @@ -2,6 +2,7 @@ import { DocPanel } from '@shared/components/DocPanel/DocPanel'; import React from 'react'; import Fig1 from './img/fig1.jpg'; import Fig2 from './img/fig2.jpg'; +import DataAcquisitionFig1 from './img/data-acquisition-fig1.jpg'; export const Sentinel1DocPanel = () => { return ( @@ -58,21 +59,43 @@ export const Sentinel1DocPanel = () => {

Sentinel-1 active sensors collect data leveraging C-Band synthetic aperture radar (SAR). The sensors - collect data by actively sending and receiving radar - signals that echo off the Earth’s surface. The - echoes returned to the sensor are known as + collect data by actively sending and receiving + microwave signals that echo off the Earth’s surface. + The echoes returned to the sensor are known as backscatter. Measurements of this backscatter provides information about the characteristics of the surface at any given location. More on backscatter below.

-

- Because radar signals are not dependent upon solar - illumination and are unimpeded by clouds, haze, and - smoke, Sentinel-1 collects imagery of the Earth’s - surface day and night and in all weather conditions. +

+ Because microwave signals are not dependent upon + solar illumination and are unimpeded by clouds, + haze, and smoke, Sentinel-1 collects imagery of the + Earth’s surface day and night and in all weather + conditions.

+ +
diff --git a/src/sentinel-1-explorer/components/DocPanel/img/data-acquisition-fig1.jpg b/src/sentinel-1-explorer/components/DocPanel/img/data-acquisition-fig1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..edf1cc131682c3662d3205b5c24804c909336011 GIT binary patch literal 60184 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 literal 0 HcmV?d00001 From 6c41a1896ab0900163a2834377ea42b847d55c90 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 8 Jul 2024 07:07:18 -0700 Subject: [PATCH 134/151] fix(shared): close button should use fixed position --- src/shared/components/CloseButton/CloseButton.css | 2 +- src/shared/components/CloseButton/CloseButton.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/shared/components/CloseButton/CloseButton.css b/src/shared/components/CloseButton/CloseButton.css index c8516e47..0e624248 100644 --- a/src/shared/components/CloseButton/CloseButton.css +++ b/src/shared/components/CloseButton/CloseButton.css @@ -1,5 +1,5 @@ .close-button::before { - @apply absolute top-0 right-0 w-52 h-52 pointer-events-none z-0; + @apply fixed top-0 right-0 w-52 h-52 pointer-events-none z-0; content: ' '; background: linear-gradient(215deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 40%); } \ No newline at end of file diff --git a/src/shared/components/CloseButton/CloseButton.tsx b/src/shared/components/CloseButton/CloseButton.tsx index f1d4d690..0758687b 100644 --- a/src/shared/components/CloseButton/CloseButton.tsx +++ b/src/shared/components/CloseButton/CloseButton.tsx @@ -29,7 +29,7 @@ export const CloseButton: FC = ({ onClick }: Props) => { viewBox="0 0 32 32" height="64" width="64" - className="absolute top-1 right-1 cursor-pointer with-drop-shadow" + className="fixed top-1 right-1 cursor-pointer with-drop-shadow" onClick={onClick} > Date: Mon, 8 Jul 2024 11:35:18 -0700 Subject: [PATCH 135/151] fix(shared): URL Hash Params should update query params for secondary scene when selected analyze tool is changed ref #62 --- src/shared/hooks/useSaveAppState2HashParams.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/hooks/useSaveAppState2HashParams.tsx b/src/shared/hooks/useSaveAppState2HashParams.tsx index e25aa8a0..f854c330 100644 --- a/src/shared/hooks/useSaveAppState2HashParams.tsx +++ b/src/shared/hooks/useSaveAppState2HashParams.tsx @@ -105,7 +105,7 @@ export const useSaveAppState2HashParams = () => { } saveQueryParams4SecondarySceneToHashParams(queryParams); - }, [mode, queryParams4SecondaryScene]); + }, [mode, analysisTool, queryParams4SecondaryScene]); useEffect(() => { saveMaskToolToHashParams( From 4b143281e27c9b9ef9ec80a4842ecdf8c4f48f60 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 8 Jul 2024 13:12:49 -0700 Subject: [PATCH 136/151] chore: update favicon image --- public/esri-favicon-light-32.png | Bin 0 -> 334 bytes public/index.html | 7 ++----- 2 files changed, 2 insertions(+), 5 deletions(-) create mode 100644 public/esri-favicon-light-32.png diff --git a/public/esri-favicon-light-32.png b/public/esri-favicon-light-32.png new file mode 100644 index 0000000000000000000000000000000000000000..11e9a291300571a73bdd19eb79b63db31a70be65 GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy#sNMduI>ds3{?jiDi4Cl`uz-5 zM;Iy(fw>~O zDHSNU%hSa%q$2L^g@ai~40v2GrbkcHwVrwJ|NmQk5*#dEFZS6=XBLM0@Bff5et9xe zsDE6;JfG)F-OIG*sxFGZKg}fldS6;)DtqRP5RcW|#~KV1PiU=q_|tEJ)jY>vER2db z8zci#;$xZioSoMwwr)G8V8Hj4<_o+}ImEcBuT^rq%HQ}*p*10<@$vRtzKHD)Sa*h* zc&_zetK&YC*vsn6`|5hrW3d(Clk!c~LwB=Z>QkOoJI!w0%KJL+?| <%= htmlWebpackPlugin.options.title %> - + + - From 15a5e1d1ca666abc8d0c38cb4f57a28986f4abba Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 8 Jul 2024 13:42:23 -0700 Subject: [PATCH 137/151] feat(shared): update slider step value for change compare control from 0.05 to 0.01 --- .../components/ChangeCompareTool/ChangeCompareToolControls.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx index 7c250aad..026f0a97 100644 --- a/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx +++ b/src/shared/components/ChangeCompareTool/ChangeCompareToolControls.tsx @@ -97,7 +97,7 @@ export const ChangeCompareToolControls: FC = ({ }} min={min} max={max} - steps={0.05} + steps={0.01} showSliderTooltip={true} /> ); From b1cfb0aea00471f693316ff5f277e488a3e463eb Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Mon, 8 Jul 2024 14:00:35 -0700 Subject: [PATCH 138/151] feat(share): add Zoom2ExtentContainer to shared components --- src/landsat-explorer/components/Map/Map.tsx | 4 +- .../ZoomToExtent/ZoomToExtentContainer.tsx | 202 +++++++++--------- .../components/ZoomToExtent/index.ts | 30 +-- .../components/Map/Map.tsx | 2 +- .../components/Map/Map.tsx | 4 +- .../ZoomToExtent/ZoomToExtentContainer.tsx | 107 ++++++++++ src/shared/components/ZoomToExtent/index.ts | 1 + 7 files changed, 229 insertions(+), 121 deletions(-) create mode 100644 src/shared/components/ZoomToExtent/ZoomToExtentContainer.tsx create mode 100644 src/shared/components/ZoomToExtent/index.ts diff --git a/src/landsat-explorer/components/Map/Map.tsx b/src/landsat-explorer/components/Map/Map.tsx index 7e7272d1..c5ba314a 100644 --- a/src/landsat-explorer/components/Map/Map.tsx +++ b/src/landsat-explorer/components/Map/Map.tsx @@ -26,7 +26,6 @@ import { Popup } from '../PopUp'; import { MapPopUpAnchorPoint } from '@shared/components/MapPopUpAnchorPoint'; import { HillshadeLayer } from '@shared/components/HillshadeLayer/HillshadeLayer'; import { ChangeLayer } from '../ChangeLayer'; -import { ZoomToExtent } from '../ZoomToExtent'; import { ScreenshotWidget } from '@shared/components/ScreenshotWidget/ScreenshotWidget'; import { MapMagnifier } from '@shared/components/MapMagnifier'; import CustomMapArrtribution from '@shared/components/CustomMapArrtribution/CustomMapArrtribution'; @@ -37,6 +36,7 @@ import { useDispatch } from 'react-redux'; import { updateQueryLocation4TrendTool } from '@shared/store/TrendTool/thunks'; import { updateQueryLocation4SpectralProfileTool } from '@shared/store/SpectralProfileTool/thunks'; import { SwipeWidget4ImageryLayers } from '@shared/components/SwipeWidget/SwipeWidget4ImageryLayers'; +import { ZoomToExtent } from '@shared/components/ZoomToExtent'; const Map = () => { const dispatch = useDispatch(); @@ -75,7 +75,7 @@ const Map = () => { nativeScale={113386} tooltip={"Zoom to Landsat's native resolution"} /> - + diff --git a/src/landsat-explorer/components/ZoomToExtent/ZoomToExtentContainer.tsx b/src/landsat-explorer/components/ZoomToExtent/ZoomToExtentContainer.tsx index 74596124..3a06a7b2 100644 --- a/src/landsat-explorer/components/ZoomToExtent/ZoomToExtentContainer.tsx +++ b/src/landsat-explorer/components/ZoomToExtent/ZoomToExtentContainer.tsx @@ -1,101 +1,101 @@ -/* Copyright 2024 Esri - * - * Licensed under the Apache License Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import React, { FC, useMemo, useState } from 'react'; -import { - selectAnimationStatus, - selectIsAnimationPlaying, -} from '@shared/store/UI/selectors'; -import MapView from '@arcgis/core/views/MapView'; -import { useSelector } from 'react-redux'; -import { ZoomToExtent } from '@shared/components/ZoomToExtent/ZoomToExtent'; -import { - selectAppMode, - selectQueryParams4SceneInSelectedMode, -} from '@shared/store/ImageryScene/selectors'; -import { - getExtentOfLandsatSceneByObjectId, - // getLandsatFeatureByObjectId, -} from '@shared/services/landsat-level-2/getLandsatScenes'; - -type Props = { - mapView?: MapView; -}; - -export const ZoomToExtentContainer: FC = ({ mapView }) => { - // const animationStatus = useSelector(selectAnimationStatus); - - const isAnimationPlaying = useSelector(selectIsAnimationPlaying); - - const mode = useSelector(selectAppMode); - - const { objectIdOfSelectedScene } = - useSelector(selectQueryParams4SceneInSelectedMode) || {}; - - const [isLoadingExtent, setIsLoadingExtent] = useState(false); - - const disabled = useMemo(() => { - if (mode === 'dynamic') { - return false; - } - - // zoom button should be disabled not in dynamic mode and there is no selected scene - if (!objectIdOfSelectedScene) { - return true; - } - - return false; - }, [mode, objectIdOfSelectedScene, isLoadingExtent]); - - const zoomToExtentOfSelectedScene = async () => { - if (!objectIdOfSelectedScene) { - return; - } - - setIsLoadingExtent(true); - - try { - const extent = await getExtentOfLandsatSceneByObjectId( - objectIdOfSelectedScene - ); - mapView.extent = extent as any; - } catch (err) { - console.log(err); - } - - setIsLoadingExtent(false); - }; - - return ( -

- Generally, lighter colors are rougher surfaces and darker colors - are smoother + Lighter colors are higher overall backscatter and darker colors + are lower.

{tooltipData && tooltipContent && (
- {tooltipContent[0]} + {/* {tooltipContent[0]}
- {tooltipContent[1]} + {tooltipContent[1]} */} + {tooltipContent.map((text, index) => { + const key = `${text}-${index}`; + return ( +

+ {text} +

+ ); + })}
)}
From 2441a8b843d36b49fef4c3f0dcdf77924ae6ce27 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 9 Jul 2024 07:27:34 -0700 Subject: [PATCH 146/151] doc: add Changelog file --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..dd6f7e86 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,16 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). + +## [Unreleased] + +### Added + +### Changed + +### Fixed + +### Removed + From ba662d3c517512a33644657d25bb3b4439a9714b Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 9 Jul 2024 10:36:39 -0700 Subject: [PATCH 147/151] doc: update Changelog --- CHANGELOG.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd6f7e86..c935b9e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,10 +7,59 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Unreleased] ### Added +### Changed +### Fixed +### Removed + +## 2024 July Release + +## Sentinel-1 Explorer + +### Added +- add Temporal Composite Tool +- add Change Detection Tool +- add Index Mask Tool +- add Temporal Profile Tool +- add Orbit Direction Filter +- lock relative orbit orbit direction for Change Detection tool and Temporal Composite Tool +- show Foot Print for Change Compare and Temporal Composite tool +- add documentation panel + +## Landsat Explorer + +### Added +- add Raster Function Templates of the Landsat Level-2 service ### Changed +- Scene Info table should display ID in one line +- use `useImageryLayerByObjectId` custom hook from `shared/hooks` to get Landsat Layer +- use `getFeatureByObjectId` from `shared/services/helpers` +- use `getExtentByObjectId` from `shared/services/helpers` +- use `intersectWithImageryScene` from `shared/services/helpers` +- use `identify` from `shared/services/helpers` +- update `queryAvailableScenes` in `/@shared/store/Landsat/thunks` to use `deduplicateListOfImageryScenes` +- use `@shared/components/ImageryLayer/ImageryLayerByObjectID` instead of `LandsatLayer` +- use `@shared/components/SwipeWidget/SwipeWidget4ImageryLayers` +- `` should be passed as a child components to `Calendar`. +- update `` to use `useShouldShowSecondaryControls` hook +- use `` `from @shared/components/MapPopup` +- use `Change Compare Tool` from `@shared/components/ChandCompareTool` +- update `MaskLayer` to use `ImageryLayerWithPixelFilter` +- update `ChangeCompareLayer` to use `ImageryLayerWithPixelFilter` -### Fixed +## Shared -### Removed +### Added +- add tooltip and click to copy feature to Scene Info component +- add Play/Pause button to AnimationDownloadPanel +- include estimated area calculation for Mask tool +- include estimated area calculation for Change Detection +- display current map scale and pixel resolution in Custom Attribution component +- add Documentation Panel +### Changed +- upgrade @arcgis/core to use version 4.29 +- update animation panel to re-fetch animation images when user minimizes bottom panel +- use `.env` to save `WEBPACK_DEV_SERVER_HOSTNAME` +- add Zoom2ExtentContainer to shared components +- update map popup to include X/Y coordinates From cf4c153dd8d083da3a9c140064e59110f9cc8fa4 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 9 Jul 2024 10:45:17 -0700 Subject: [PATCH 148/151] fix(sentinel1explorer): update Temporal Composite Tool legend tooltip text --- .../TemporalCompositeTool/Legend.tsx | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/sentinel-1-explorer/components/TemporalCompositeTool/Legend.tsx b/src/sentinel-1-explorer/components/TemporalCompositeTool/Legend.tsx index 39fe2118..549ae666 100644 --- a/src/sentinel-1-explorer/components/TemporalCompositeTool/Legend.tsx +++ b/src/sentinel-1-explorer/components/TemporalCompositeTool/Legend.tsx @@ -108,9 +108,9 @@ export const TemproalCompositeToolLegend: FC = ({ if (tooltipData.colorGroup === 'Red') { return [ - `High backscatter:`, + `Higher backscatter:`, `${formattedDateRedBand}`, - `Low backscatter:`, + `Lower backscatter:`, `${formattedDateGreenBand}`, `${formattedDateBlueBand}`, ]; @@ -118,9 +118,9 @@ export const TemproalCompositeToolLegend: FC = ({ if (tooltipData.colorGroup === 'Green') { return [ - `High backscatter:`, + `Higher backscatter:`, ` ${formattedDateGreenBand}`, - `Low backscatter:`, + `Lower backscatter:`, `${formattedDateRedBand}`, `${formattedDateBlueBand}`, ]; @@ -128,9 +128,9 @@ export const TemproalCompositeToolLegend: FC = ({ if (tooltipData.colorGroup === 'Blue') { return [ - `High backscatter:`, + `Higher backscatter:`, `${formattedDateBlueBand}`, - `Low backscatter:`, + `Lower backscatter:`, `${formattedDateRedBand}`, `${formattedDateGreenBand}`, ]; @@ -138,30 +138,30 @@ export const TemproalCompositeToolLegend: FC = ({ if (tooltipData.colorGroup === 'Yellow') { return [ - `High backscatter:`, + `Higher backscatter:`, `${formattedDateRedBand}`, `${formattedDateGreenBand}`, - `Low backscatter:`, + `Lower backscatter:`, `${formattedDateBlueBand}`, ]; } if (tooltipData.colorGroup === 'Magenta') { return [ - `High backscatter: `, + `Higher backscatter: `, `${formattedDateRedBand}`, `${formattedDateBlueBand}`, - `Low backscatter: `, + `Lower backscatter: `, `${formattedDateGreenBand}`, ]; } if (tooltipData.colorGroup === 'Cyan') { return [ - `High backscatter:`, + `Higher backscatter:`, ` ${formattedDateGreenBand}`, `${formattedDateBlueBand}`, - `Low backscatter:`, + `Lower backscatter:`, `${formattedDateRedBand}`, ]; } From 4225d44fd5b705edd15c8bc8ddb0d365c929f368 Mon Sep 17 00:00:00 2001 From: Jinnan Zhang Date: Tue, 9 Jul 2024 11:02:46 -0700 Subject: [PATCH 149/151] chore: add copyright header text --- .../AnimationStatusControls.tsx | 15 + .../ModeSelector/ModeSelectorContainer.tsx | 15 + .../ControlPanel/ModeSelector/index.ts | 15 + .../ControlPanel/TimeSelector/Dropdown.tsx | 108 ------- .../ControlPanel/TimeSelector/index.ts | 15 + .../components/MapView/MapView.tsx | 15 + .../components/SwipeWidget/SwipeWidget.tsx | 191 ----------- .../SwipeWidget/SwipeWidget4Landcover.tsx | 15 + .../SwipeWidget/SwipeWidget4Sentinel2.tsx | 15 + .../components/SwipeWidget/index.ts | 15 + .../hooks/useSaveAppState2HashParams.tsx | 15 + src/landcover-explorer/store/index.ts | 15 + .../AnalyzeToolSelector.tsx | 15 + .../components/ChangeLayer/ChangeLayer.tsx | 297 ------------------ .../components/ChangeLayer/helpers.ts | 76 ----- .../LandsatDynamicModeInfo.tsx | 15 + .../components/MaskLayer/MaskLayer.tsx | 249 --------------- .../components/PopUp/PopUp.tsx | 244 -------------- .../components/PopUp/index.ts | 15 + .../LandsatTemporalProfileChart.tsx | 15 + .../TemporalProfileTool/TrendChart.tsx | 233 -------------- .../TrendChartContainer.tsx | 131 -------- .../useCustomDomain4YScale.tsx | 15 + .../ZoomToExtent/ZoomToExtentContainer.tsx | 101 ------ .../components/ZoomToExtent/index.ts | 16 - .../AnalyzeToolSelector.tsx | 15 + .../components/ChangeCompareLayer/index.ts | 15 + .../ChangeCompareTool/PolarizationFilter.tsx | 15 + .../components/DocPanel/Sentinel1DocPanel.tsx | 15 + .../components/DocPanel/index.ts | 15 + .../LockedRelativeOrbitFootprintLayer.tsx | 15 + ...edRelativeOrbitFootprintLayerContainer.tsx | 15 + .../index.ts | 15 + .../MaskLayer/Sentinel1MaskLayer.tsx | 24 +- .../MaskLayer/WaterLandMaskLayer.tsx | 15 + .../components/MaskLayer/index.ts | 15 + .../components/MaskTool/index.ts | 15 + .../components/OrbitDirectionFilter/index.ts | 15 + .../components/Popup/helper.ts | 50 --- .../components/Popup/index.ts | 15 + .../Sentinel1DynamicModeInfo.tsx | 15 + .../TemporalCompositeLayerContainer.tsx | 15 + .../TemporalCompositeLayer/index.ts | 15 + .../TemporalCompositeLayerSelector.tsx | 15 + ...emporalCompositeLayerSelectorContainer.tsx | 15 + .../TemporalCompositeLayerSelector/index.ts | 15 + .../TemporalCompositeTool/Controls.tsx | 15 + .../TemporalCompositeTool/Legend.tsx | 15 + .../TemporalCompositeTool.tsx | 15 + .../TemporalCompositeTool/helpers.ts | 15 + .../Sentinel1TemporalProfileChart.tsx | 15 + .../components/TemporalProfileTool/index.ts | 15 + .../useCustomDomain4YScale.tsx | 15 + .../WaterLandMaskLayer4WaterAnomaly.tsx | 15 + src/sentinel-1-explorer/contans/index.ts | 15 + .../hooks/saveSentinel1State2HashParams.tsx | 15 + .../hooks/useSyncCalendarDateRange.tsx | 15 + .../PlayPauseButton.tsx | 15 + .../components/ChangeCompareLayer/index.ts | 15 + .../useChangeCompareLayerVisibility.tsx | 15 + .../components/ChangeCompareTool/index.ts | 15 + .../ImageryLayerWithPixelFilter/index.ts | 15 + .../components/MapActionButton/index.ts | 15 + src/shared/components/MapPopup/helper.ts | 15 + .../components/MaskTool/WarningMessage.tsx | 15 + .../components/TemporalProfileChart/index.ts | 15 + .../TemporalProfileToolHeader.tsx | 15 + .../useSyncSelectedYearAndMonth.tsx | 15 + .../TotalAreaInfo/TotalAreaInfo.tsx | 15 + src/shared/components/ZoomToExtent/index.ts | 15 + src/shared/hooks/useCalculatePixelArea.tsx | 15 + .../useCalculateTotalAreaByPixelsCount.tsx | 15 + .../hooks/useCurrenPageBecomesVisible.tsx | 15 + src/shared/hooks/useRevalidateToken.tsx | 15 + src/shared/hooks/useVisibilityState.tsx | 15 + .../services/helpers/calculatePixelArea.ts | 15 + .../helpers/deduplicateListOfScenes.test.ts | 15 + .../helpers/deduplicateListOfScenes.ts | 15 + .../services/helpers/getCentroidByObjectId.ts | 15 + src/shared/services/helpers/getExtentById.ts | 15 + src/shared/services/helpers/getFeatureById.ts | 15 + src/shared/services/helpers/getPixelValues.ts | 15 + .../getPixelValuesFromIdentifyTaskResponse.ts | 15 + .../helpers/getRasterFunctionLabelText.ts | 43 --- .../helpers/intersectWithImageryScene.ts | 15 + .../helpers/splitObjectIdsToSeparateGroups.ts | 15 + .../services/landsat-level-2/exportImage.ts | 73 ----- .../services/landsat-level-2/getSamples.ts | 87 ----- .../sentinel-1/covert2ImageryScenes.ts | 15 + .../sentinel-1/getTemporalProfileData.ts | 15 + src/shared/services/sentinel-1/helper.ts | 15 + src/shared/utils/url-hash-params/sentinel1.ts | 15 + .../url-hash-params/temporalCompositeTool.ts | 15 + src/types/argis-sdk-for-javascript.d.ts | 15 + 94 files changed, 1198 insertions(+), 1910 deletions(-) delete mode 100644 src/landcover-explorer/components/ControlPanel/TimeSelector/Dropdown.tsx delete mode 100644 src/landcover-explorer/components/SwipeWidget/SwipeWidget.tsx delete mode 100644 src/landsat-explorer/components/ChangeLayer/ChangeLayer.tsx delete mode 100644 src/landsat-explorer/components/ChangeLayer/helpers.ts delete mode 100644 src/landsat-explorer/components/MaskLayer/MaskLayer.tsx delete mode 100644 src/landsat-explorer/components/PopUp/PopUp.tsx delete mode 100644 src/landsat-explorer/components/TemporalProfileTool/TrendChart.tsx delete mode 100644 src/landsat-explorer/components/TemporalProfileTool/TrendChartContainer.tsx delete mode 100644 src/landsat-explorer/components/ZoomToExtent/ZoomToExtentContainer.tsx delete mode 100644 src/landsat-explorer/components/ZoomToExtent/index.ts delete mode 100644 src/sentinel-1-explorer/components/Popup/helper.ts delete mode 100644 src/shared/services/helpers/getRasterFunctionLabelText.ts delete mode 100644 src/shared/services/landsat-level-2/exportImage.ts delete mode 100644 src/shared/services/landsat-level-2/getSamples.ts diff --git a/src/landcover-explorer/components/ControlPanel/AnimationControls/AnimationStatusControls.tsx b/src/landcover-explorer/components/ControlPanel/AnimationControls/AnimationStatusControls.tsx index e78b7971..6c9682f6 100644 --- a/src/landcover-explorer/components/ControlPanel/AnimationControls/AnimationStatusControls.tsx +++ b/src/landcover-explorer/components/ControlPanel/AnimationControls/AnimationStatusControls.tsx @@ -1,3 +1,18 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import React from 'react'; import AnimationStatusButton from './AnimationStatusButton'; import { useSelector } from 'react-redux'; diff --git a/src/landcover-explorer/components/ControlPanel/ModeSelector/ModeSelectorContainer.tsx b/src/landcover-explorer/components/ControlPanel/ModeSelector/ModeSelectorContainer.tsx index 86a32341..45deb154 100644 --- a/src/landcover-explorer/components/ControlPanel/ModeSelector/ModeSelectorContainer.tsx +++ b/src/landcover-explorer/components/ControlPanel/ModeSelector/ModeSelectorContainer.tsx @@ -1,3 +1,18 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { ContainerOfSecondaryControls } from '@shared/components/ModeSelector'; import React from 'react'; import { ModeSelector } from './ModeSelector'; diff --git a/src/landcover-explorer/components/ControlPanel/ModeSelector/index.ts b/src/landcover-explorer/components/ControlPanel/ModeSelector/index.ts index 17595a47..d2813b4d 100644 --- a/src/landcover-explorer/components/ControlPanel/ModeSelector/index.ts +++ b/src/landcover-explorer/components/ControlPanel/ModeSelector/index.ts @@ -1 +1,16 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + export { ModeSelectorContainer as ModeSelector } from './ModeSelectorContainer'; diff --git a/src/landcover-explorer/components/ControlPanel/TimeSelector/Dropdown.tsx b/src/landcover-explorer/components/ControlPanel/TimeSelector/Dropdown.tsx deleted file mode 100644 index a1e7ce73..00000000 --- a/src/landcover-explorer/components/ControlPanel/TimeSelector/Dropdown.tsx +++ /dev/null @@ -1,108 +0,0 @@ -// /* Copyright 2024 Esri -// * -// * Licensed under the Apache License Version 2.0 (the "License"); -// * you may not use this file except in compliance with the License. -// * You may obtain a copy of the License at -// * -// * http://www.apache.org/licenses/LICENSE-2.0 -// * -// * Unless required by applicable law or agreed to in writing, software -// * distributed under the License is distributed on an "AS IS" BASIS, -// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// * See the License for the specific language governing permissions and -// * limitations under the License. -// */ - -// import classNames from 'classnames'; -// import React, { FC, useRef, useState } from 'react'; -// import useOnClickOutside from '@shared/hooks/useOnClickOutside'; - -// type DropdownData = { -// /** -// * value of this item -// */ -// value: string; -// /** -// * label text will be displayed -// */ -// label?: string; -// /** -// * If true, this item is selected -// */ -// active: boolean; -// }; - -// type Props = { -// data: DropdownData[]; -// disabled?: boolean; -// onChange: (val: string) => void; -// }; - -// const Dropdown: FC = ({ data, disabled, onChange }: Props) => { -// const [shouldShowOptions, setShouldShowOptions] = useState(false); - -// const containerRef = useRef(); - -// useOnClickOutside(containerRef, () => { -// setShouldShowOptions(false); -// }); - -// const getLabelForActiveItem = () => { -// let activeItem = data.find((d) => d.active); - -// activeItem = activeItem || data[0]; - -// return activeItem.label || activeItem.value; -// }; - -// return ( -//
-//
{ -// setShouldShowOptions(true); -// }} -// > -// {getLabelForActiveItem()} - -// -// -// -// -//
- -// {shouldShowOptions && ( -//
-// {data.map((d, index) => { -// const { value, label } = d; - -// return ( -//
{ -// onChange(value); -// setShouldShowOptions(false); -// }} -// > -// {label || value} -//
-// ); -// })} -//
-// )} -//
-// ); -// }; - -// export default Dropdown; diff --git a/src/landcover-explorer/components/ControlPanel/TimeSelector/index.ts b/src/landcover-explorer/components/ControlPanel/TimeSelector/index.ts index f9d9a1b5..c2a3f524 100644 --- a/src/landcover-explorer/components/ControlPanel/TimeSelector/index.ts +++ b/src/landcover-explorer/components/ControlPanel/TimeSelector/index.ts @@ -1 +1,16 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + export { TimeSelectorContainer as TimeSelector } from './TimeSelectorContainer'; diff --git a/src/landcover-explorer/components/MapView/MapView.tsx b/src/landcover-explorer/components/MapView/MapView.tsx index 4e7e9f11..39649f77 100644 --- a/src/landcover-explorer/components/MapView/MapView.tsx +++ b/src/landcover-explorer/components/MapView/MapView.tsx @@ -1,3 +1,18 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + // import React, { useEffect, useState, useRef } from 'react'; // import ArcGISMapView from '@arcgis/core/views/MapView'; diff --git a/src/landcover-explorer/components/SwipeWidget/SwipeWidget.tsx b/src/landcover-explorer/components/SwipeWidget/SwipeWidget.tsx deleted file mode 100644 index 01b756b2..00000000 --- a/src/landcover-explorer/components/SwipeWidget/SwipeWidget.tsx +++ /dev/null @@ -1,191 +0,0 @@ -// /* Copyright 2024 Esri -// * -// * Licensed under the Apache License Version 2.0 (the "License"); -// * you may not use this file except in compliance with the License. -// * You may obtain a copy of the License at -// * -// * http://www.apache.org/licenses/LICENSE-2.0 -// * -// * Unless required by applicable law or agreed to in writing, software -// * distributed under the License is distributed on an "AS IS" BASIS, -// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// * See the License for the specific language governing permissions and -// * limitations under the License. -// */ - -// import './style.css'; -// import React, { FC, useEffect, useMemo, useRef } from 'react'; - -// import Swipe from '@arcgis/core/widgets/Swipe'; -// import IMapView from '@arcgis/core/views/MapView'; -// import useLandCoverLayer from '../LandcoverLayer/useLandCoverLayer'; -// // import IImageryLayer from '@arcgis/core/layers/ImageryLayer'; -// import useSentinel2Layer from '../Sentinel2Layer/useSentinel2Layer'; -// // import { LandCoverClassification } from '@shared/services/sentinel-2-10m-landcover/rasterAttributeTable'; -// import * as reactiveUtils from '@arcgis/core/core/reactiveUtils'; - -// type Props = { -// /** -// * If true, display sentinel 2 imagery layer -// */ -// shouldShowSentinel2Layer: boolean; -// /** -// * The year that will be used to get the leading layer -// */ -// yearForLeadingLayer: number; -// /** -// * The year that will be used to get the trailing layer -// */ -// yearForTailingLayer: number; -// /** -// * Indicate if Swipe Widget is visible -// */ -// visible: boolean; -// /** -// * Map view that contains Swipe Widget -// */ -// mapView?: IMapView; -// /** -// * Fires when user drag and change swipe position -// */ -// positionOnChange: (position: number) => void; -// /** -// * Fires when user hover in/out handler element, which toggle dispalys the reference info -// */ -// referenceInfoOnToggle: (shouldDisplay: boolean) => void; -// }; - -// /** -// * Swipe Widget to compare land cover layers from two different years -// */ -// const SwipeWidget: FC = ({ -// shouldShowSentinel2Layer, -// yearForLeadingLayer, -// yearForTailingLayer, -// mapView, -// visible, -// positionOnChange, -// referenceInfoOnToggle, -// }: Props) => { -// const swipeWidgetRef = useRef(); - -// const leadingLandCoverLayer = useLandCoverLayer({ -// year: yearForLeadingLayer, -// visible: visible && shouldShowSentinel2Layer === false, -// }); - -// const leadingSentinel2Layer = useSentinel2Layer({ -// year: yearForLeadingLayer, -// visible: visible && shouldShowSentinel2Layer, -// }); - -// const trailingLandcoverLayer = useLandCoverLayer({ -// year: yearForTailingLayer, -// visible: visible && shouldShowSentinel2Layer === false, -// }); - -// const trailingSentinel2Layer = useSentinel2Layer({ -// year: yearForTailingLayer, -// visible: visible && shouldShowSentinel2Layer, -// }); - -// const init = async () => { -// mapView.map.addMany([ -// leadingLandCoverLayer, -// leadingSentinel2Layer, -// trailingLandcoverLayer, -// trailingSentinel2Layer, -// ]); - -// swipeWidgetRef.current = new Swipe({ -// view: mapView, -// leadingLayers: [leadingLandCoverLayer, leadingSentinel2Layer], -// trailingLayers: [trailingLandcoverLayer, trailingSentinel2Layer], -// direction: 'horizontal', -// position: 50, // position set to middle of the view (50%) -// visible, -// }); - -// // console.log(swipeWidgetRef.current) -// mapView.ui.add(swipeWidgetRef.current); - -// reactiveUtils.watch( -// () => swipeWidgetRef.current.position, -// (position: number) => { -// // console.log('position changes for swipe widget', position); -// positionOnChange(position); -// } -// ); - -// swipeWidgetRef.current.when(() => { -// addMouseEventHandlers(); -// }); -// }; - -// const addMouseEventHandlers = () => { -// const handleElem = document.querySelector('.esri-swipe__container'); - -// if (!handleElem) { -// return; -// } - -// handleElem.addEventListener('mouseenter', () => { -// // console.log('mouseenter'); -// referenceInfoOnToggle(true); -// }); - -// handleElem.addEventListener('mouseleave', () => { -// // console.log('mouseleave'); -// referenceInfoOnToggle(false); -// }); - -// // console.log(handleElem) -// }; - -// useEffect(() => { -// // initiate swipe widget -// if ( -// !swipeWidgetRef.current && -// leadingLandCoverLayer && -// leadingSentinel2Layer && -// trailingLandcoverLayer && -// trailingSentinel2Layer -// ) { -// init(); -// } -// }, [ -// mapView, -// leadingLandCoverLayer, -// leadingSentinel2Layer, -// trailingLandcoverLayer, -// trailingSentinel2Layer, -// ]); - -// // useEffect(() => { -// // if (swipeWidgetRef.current) { -// // toggleDisplayLayers(); -// // } -// // }, [shouldShowSentinel2Layer]); - -// useEffect(() => { -// if (swipeWidgetRef.current) { -// swipeWidgetRef.current.visible = visible; - -// if (visible) { -// // why need to wait for 1 second?? -// // for some reason '.esri-swipe__container' won't be ready -// // if we call `addMouseEventHandlers` right after swipe widget becomes visible, -// // tried using swipeWidgetRef.current.when but that didn't work either, -// // so the only workaround that I can come up with add this moment is using a setTimeout, -// // not a decent solution, definitely need to be fixed in future -// setTimeout(() => { -// addMouseEventHandlers(); -// }, 1000); -// } -// } -// }, [visible]); - -// return null; -// }; - -// export default SwipeWidget; diff --git a/src/landcover-explorer/components/SwipeWidget/SwipeWidget4Landcover.tsx b/src/landcover-explorer/components/SwipeWidget/SwipeWidget4Landcover.tsx index d38494b7..dbd9f5ac 100644 --- a/src/landcover-explorer/components/SwipeWidget/SwipeWidget4Landcover.tsx +++ b/src/landcover-explorer/components/SwipeWidget/SwipeWidget4Landcover.tsx @@ -1,3 +1,18 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import React, { FC } from 'react'; import useLandCoverLayer from '../LandcoverLayer/useLandCoverLayer'; import { useSelector } from 'react-redux'; diff --git a/src/landcover-explorer/components/SwipeWidget/SwipeWidget4Sentinel2.tsx b/src/landcover-explorer/components/SwipeWidget/SwipeWidget4Sentinel2.tsx index e23ef26d..c72f72c1 100644 --- a/src/landcover-explorer/components/SwipeWidget/SwipeWidget4Sentinel2.tsx +++ b/src/landcover-explorer/components/SwipeWidget/SwipeWidget4Sentinel2.tsx @@ -1,3 +1,18 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import React, { FC } from 'react'; import useLandCoverLayer from '../LandcoverLayer/useLandCoverLayer'; import { useSelector } from 'react-redux'; diff --git a/src/landcover-explorer/components/SwipeWidget/index.ts b/src/landcover-explorer/components/SwipeWidget/index.ts index 012d49c7..e4b82e64 100644 --- a/src/landcover-explorer/components/SwipeWidget/index.ts +++ b/src/landcover-explorer/components/SwipeWidget/index.ts @@ -1,2 +1,17 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + export { SwipeWidget4Landcover } from './SwipeWidget4Landcover'; export { SwipeWidget4Sentinel2 } from './SwipeWidget4Sentinel2'; diff --git a/src/landcover-explorer/hooks/useSaveAppState2HashParams.tsx b/src/landcover-explorer/hooks/useSaveAppState2HashParams.tsx index 1300b160..f63a3c08 100644 --- a/src/landcover-explorer/hooks/useSaveAppState2HashParams.tsx +++ b/src/landcover-explorer/hooks/useSaveAppState2HashParams.tsx @@ -1,3 +1,18 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import React, { FC, useEffect } from 'react'; import { selectYearsForSwipeWidgetLayers } from '@shared/store/LandcoverExplorer/selectors'; diff --git a/src/landcover-explorer/store/index.ts b/src/landcover-explorer/store/index.ts index 7e5c0054..405a2493 100644 --- a/src/landcover-explorer/store/index.ts +++ b/src/landcover-explorer/store/index.ts @@ -1,3 +1,18 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import configureAppStore from '@shared/store/configureStore'; import { getPreloadedState } from './getPreloadedState'; diff --git a/src/landsat-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx b/src/landsat-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx index e6339e0e..9fa23d17 100644 --- a/src/landsat-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx +++ b/src/landsat-explorer/components/AnalyzeToolSelector/AnalyzeToolSelector.tsx @@ -1,3 +1,18 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import React from 'react'; import { AnalysisToolSelector } from '@shared/components/AnalysisToolSelector'; import { AnalyzeToolSelectorData } from '@shared/components/AnalysisToolSelector/AnalysisToolSelectorContainer'; diff --git a/src/landsat-explorer/components/ChangeLayer/ChangeLayer.tsx b/src/landsat-explorer/components/ChangeLayer/ChangeLayer.tsx deleted file mode 100644 index cb6cd5b7..00000000 --- a/src/landsat-explorer/components/ChangeLayer/ChangeLayer.tsx +++ /dev/null @@ -1,297 +0,0 @@ -// /* Copyright 2024 Esri -// * -// * Licensed under the Apache License Version 2.0 (the "License"); -// * you may not use this file except in compliance with the License. -// * You may obtain a copy of the License at -// * -// * http://www.apache.org/licenses/LICENSE-2.0 -// * -// * Unless required by applicable law or agreed to in writing, software -// * distributed under the License is distributed on an "AS IS" BASIS, -// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// * See the License for the specific language governing permissions and -// * limitations under the License. -// */ - -// import React, { FC, useEffect, useRef, useState } from 'react'; -// import ImageryLayer from '@arcgis/core/layers/ImageryLayer'; -// import { LANDSAT_LEVEL_2_SERVICE_URL } from '@shared/services/landsat-level-2/config'; -// import MapView from '@arcgis/core/views/MapView'; -// import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; -// import PixelBlock from '@arcgis/core/layers/support/PixelBlock'; -// import GroupLayer from '@arcgis/core/layers/GroupLayer'; -// import { getBandIndexesBySpectralIndex } from '@shared/services/landsat-level-2/helpers'; -// import { SpectralIndex } from '@typing/imagery-service'; -// import { QueryParams4ImageryScene } from '@shared/store/ImageryScene/reducer'; -// import { getLandsatFeatureByObjectId } from '@shared/services/landsat-level-2/getLandsatScenes'; -// import { formattedDateString2Unixtimestamp } from '@shared/utils/date-time/formatDateString'; -// import { getPixelColor } from './helpers'; - -// type Props = { -// mapView?: MapView; -// groupLayer?: GroupLayer; -// /** -// * name of selected spectral index -// */ -// spectralIndex: SpectralIndex; -// /** -// * query params of the first selected Landsat scene -// */ -// queryParams4SceneA: QueryParams4ImageryScene; -// /** -// * query params of the second selected Landsat scene -// */ -// queryParams4SceneB: QueryParams4ImageryScene; -// /** -// * visibility of the landsat layer -// */ -// visible?: boolean; -// /** -// * user selected mask index range -// */ -// selectedRange: number[]; -// }; - -// type PixelData = { -// pixelBlock: PixelBlock; -// }; - -// /** -// * This function retrieves a raster function that can be used to visualize changes between two input Landsat scenes. -// * The output raster function applies an `Arithmetic` operation to calculate the difference of a selected spectral index -// * between two input rasters. -// * -// * @param spectralIndex - The user-selected spectral index to analyze changes. -// * @param queryParams4SceneA - Query parameters for the first selected Landsat scene. -// * @param queryParams4SceneB - Query parameters for the second selected Landsat scene. -// * @returns A Raster Function that contains the `Arithmetic` function to visualize spectral index changes. -// * -// * @see https://developers.arcgis.com/documentation/common-data-types/raster-function-objects.htm -// */ -// export const getRasterFunction4ChangeLayer = async ( -// /** -// * name of selected spectral index -// */ -// spectralIndex: SpectralIndex, -// /** -// * query params of the first selected Landsat scene -// */ -// queryParams4SceneA: QueryParams4ImageryScene, -// /** -// * query params of the second selected Landsat scene -// */ -// queryParams4SceneB: QueryParams4ImageryScene -// ): Promise => { -// if (!spectralIndex) { -// return null; -// } - -// if ( -// !queryParams4SceneA?.objectIdOfSelectedScene || -// !queryParams4SceneB?.objectIdOfSelectedScene -// ) { -// return null; -// } - -// // Sort query parameters by acquisition date in ascending order. -// const [ -// queryParams4SceneAcquiredInEarlierDate, -// queryParams4SceneAcquiredInLaterDate, -// ] = [queryParams4SceneA, queryParams4SceneB].sort((a, b) => { -// return ( -// formattedDateString2Unixtimestamp(a.acquisitionDate) - -// formattedDateString2Unixtimestamp(b.acquisitionDate) -// ); -// }); - -// try { -// // Get the band index for the selected spectral index. -// const bandIndex = getBandIndexesBySpectralIndex(spectralIndex); - -// // Retrieve the feature associated with the later acquired Landsat scene. -// const feature = await getLandsatFeatureByObjectId( -// queryParams4SceneAcquiredInLaterDate?.objectIdOfSelectedScene -// ); - -// return new RasterFunction({ -// // the Clip function clips a raster using a rectangular shape according to the extents defined, -// // or clips a raster to the shape of an input polygon feature class. -// functionName: 'Clip', -// functionArguments: { -// // a polygon or envelope -// ClippingGeometry: feature.geometry, -// // use 1 to keep image inside of the geometry -// ClippingType: 1, -// Raster: { -// // The `Arithmetic` function performs an arithmetic operation between two rasters. -// rasterFunction: 'Arithmetic', -// rasterFunctionArguments: { -// Raster: { -// rasterFunction: 'BandArithmetic', -// rasterFunctionArguments: { -// Raster: `$${queryParams4SceneAcquiredInLaterDate.objectIdOfSelectedScene}`, -// Method: 0, -// BandIndexes: bandIndex, -// }, -// outputPixelType: 'F32', -// }, -// Raster2: { -// rasterFunction: 'BandArithmetic', -// rasterFunctionArguments: { -// Raster: `$${queryParams4SceneAcquiredInEarlierDate.objectIdOfSelectedScene}`, -// Method: 0, -// BandIndexes: bandIndex, -// }, -// outputPixelType: 'F32', -// }, -// // 1=esriRasterPlus, 2=esriRasterMinus, 3=esriRasterMultiply, 4=esriRasterDivide, 5=esriRasterPower, 6=esriRasterMode -// Operation: 2, -// // default 0; 0=esriExtentFirstOf, 1=esriExtentIntersectionOf, 2=esriExtentUnionOf, 3=esriExtentLastOf -// ExtentType: 1, -// // 0=esriCellsizeFirstOf, 1=esriCellsizeMinOf, 2=esriCellsizeMaxOf, 3=esriCellsizeMeanOf, 4=esriCellsizeLastOf -// CellsizeType: 0, -// }, -// outputPixelType: 'F32', -// }, -// }, -// }); -// } catch (err) { -// console.error(err); - -// // handle any potential errors and return null in case of failure. -// return null; -// } -// }; - -// export const ChangeLayer: FC = ({ -// mapView, -// groupLayer, -// spectralIndex, -// queryParams4SceneA, -// queryParams4SceneB, -// visible, -// selectedRange, -// }) => { -// const layerRef = useRef(); - -// const selectedRangeRef = useRef(); - -// /** -// * initialize landsat layer using mosaic created using the input year -// */ -// const init = async () => { -// const rasterFunction = await getRasterFunction4ChangeLayer( -// spectralIndex, -// queryParams4SceneA, -// queryParams4SceneB -// ); - -// layerRef.current = new ImageryLayer({ -// // URL to the imagery service -// url: LANDSAT_LEVEL_2_SERVICE_URL, -// mosaicRule: null, -// format: 'lerc', -// rasterFunction, -// visible, -// pixelFilter: maskPixels, -// effect: 'drop-shadow(2px, 2px, 3px, #000)', -// }); - -// groupLayer.add(layerRef.current); -// }; - -// const maskPixels = (pixelData: PixelData) => { -// // const color = colorRef.current || [255, 255, 255]; - -// const { pixelBlock } = pixelData || {}; - -// if (!pixelBlock) { -// return; -// } - -// const { pixels, width, height } = pixelBlock; - -// if (!pixels) { -// return; -// } - -// const p1 = pixels[0]; - -// const n = pixels[0].length; - -// if (!pixelBlock.mask) { -// pixelBlock.mask = new Uint8Array(n); -// } - -// const pr = new Uint8Array(n); -// const pg = new Uint8Array(n); -// const pb = new Uint8Array(n); - -// const numPixels = width * height; - -// const [min, max] = selectedRangeRef.current || [0, 0]; - -// for (let i = 0; i < numPixels; i++) { -// if (p1[i] < min || p1[i] > max || p1[i] === 0) { -// pixelBlock.mask[i] = 0; -// continue; -// } - -// const color = getPixelColor(p1[i]); - -// pixelBlock.mask[i] = 1; - -// pr[i] = color[0]; -// pg[i] = color[1]; -// pb[i] = color[2]; -// } - -// pixelBlock.pixels = [pr, pg, pb]; - -// pixelBlock.pixelType = 'u8'; -// }; - -// useEffect(() => { -// if (groupLayer && !layerRef.current) { -// init(); -// } -// }, [groupLayer]); - -// useEffect(() => { -// (async () => { -// if (!layerRef.current) { -// return; -// } - -// layerRef.current.rasterFunction = -// (await getRasterFunction4ChangeLayer( -// spectralIndex, -// queryParams4SceneA, -// queryParams4SceneB -// )) as any; -// })(); -// }, [spectralIndex, queryParams4SceneA, queryParams4SceneB]); - -// useEffect(() => { -// if (!layerRef.current) { -// return; -// } - -// layerRef.current.visible = visible; - -// if (visible) { -// // reorder it to make sure it is the top most layer on the map -// groupLayer.reorder(layerRef.current, mapView.map.layers.length - 1); -// } -// }, [visible]); - -// useEffect(() => { -// selectedRangeRef.current = selectedRange; - -// if (layerRef.current) { -// layerRef.current.redraw(); -// } -// }, [selectedRange]); - -// return null; -// }; diff --git a/src/landsat-explorer/components/ChangeLayer/helpers.ts b/src/landsat-explorer/components/ChangeLayer/helpers.ts deleted file mode 100644 index c5617ebf..00000000 --- a/src/landsat-explorer/components/ChangeLayer/helpers.ts +++ /dev/null @@ -1,76 +0,0 @@ -// /* Copyright 2024 Esri -// * -// * Licensed under the Apache License Version 2.0 (the "License"); -// * you may not use this file except in compliance with the License. -// * You may obtain a copy of the License at -// * -// * http://www.apache.org/licenses/LICENSE-2.0 -// * -// * Unless required by applicable law or agreed to in writing, software -// * distributed under the License is distributed on an "AS IS" BASIS, -// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// * See the License for the specific language governing permissions and -// * limitations under the License. -// */ - -// import { hexToRgb } from '@shared/utils/snippets/hex2rgb'; - -// // const ColorRamps = ['#511C02', '#A93A03', '#FFE599', '#0084A8', '#004053']; -// const ColorRamps = [ -// '#511C02', -// '#662302', -// '#7E2B03', -// '#953303', -// '#AD430B', -// '#C47033', -// '#DB9D5A', -// '#F3CC83', -// '#DED89B', -// '#9BBF9F', -// '#57A5A3', -// '#118AA7', -// '#007797', -// '#006480', -// '#005168', -// '#004053', -// ]; - -// const ColorRampsInRGB = ColorRamps.map((hex) => { -// return hexToRgb(hex); -// }); - -// /** -// * return the color ramp as css gradient -// * @returns css gradient string (e.g. `linear-gradient(90deg, rgba(0,132,255,1) 0%, rgba(118,177,196,1) 25%, rgba(173,65,9,1) 100%)`) -// */ -// export const getChangeCompareLayerColorrampAsCSSGradient = () => { -// const stops = ColorRamps.map((color, index) => { -// const pos = (index / (ColorRamps.length - 1)) * 100; -// return `${color} ${pos}%`; -// }); - -// const output = `linear-gradient(90deg, ${stops.join(', ')})`; - -// return output; -// }; - -// /** -// * Get the RGB color corresponding to a given value within a predefined pixel value range. -// * -// * @param value - The numeric value to map to a color within the range. -// * @returns An array representing the RGB color value as three integers in the range [0, 255]. -// */ -// export const getPixelColor = (value: number): number[] => { -// // the minimum and maximum values for the pixel value range. -// const MIN = -2; -// const MAX = 2; - -// const RANGE = MAX - MIN; - -// // Normalize the input value to be within the [0, RANGE] range. -// value = value - MIN; - -// const index = Math.floor((value / RANGE) * (ColorRampsInRGB.length - 1)); - -// return ColorRampsInRGB[index]; -// }; diff --git a/src/landsat-explorer/components/LandsatDynamicModeInfo/LandsatDynamicModeInfo.tsx b/src/landsat-explorer/components/LandsatDynamicModeInfo/LandsatDynamicModeInfo.tsx index 9059418e..cdbea766 100644 --- a/src/landsat-explorer/components/LandsatDynamicModeInfo/LandsatDynamicModeInfo.tsx +++ b/src/landsat-explorer/components/LandsatDynamicModeInfo/LandsatDynamicModeInfo.tsx @@ -1,3 +1,18 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { DynamicModeInfo } from '@shared/components/DynamicModeInfo'; import React from 'react'; diff --git a/src/landsat-explorer/components/MaskLayer/MaskLayer.tsx b/src/landsat-explorer/components/MaskLayer/MaskLayer.tsx deleted file mode 100644 index b5c11bef..00000000 --- a/src/landsat-explorer/components/MaskLayer/MaskLayer.tsx +++ /dev/null @@ -1,249 +0,0 @@ -// /* Copyright 2024 Esri -// * -// * Licensed under the Apache License Version 2.0 (the "License"); -// * you may not use this file except in compliance with the License. -// * You may obtain a copy of the License at -// * -// * http://www.apache.org/licenses/LICENSE-2.0 -// * -// * Unless required by applicable law or agreed to in writing, software -// * distributed under the License is distributed on an "AS IS" BASIS, -// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// * See the License for the specific language governing permissions and -// * limitations under the License. -// */ - -// import React, { FC, useEffect, useRef, useState } from 'react'; -// import ImageryLayer from '@arcgis/core/layers/ImageryLayer'; -// import MosaicRule from '@arcgis/core/layers/support/MosaicRule'; -// import { LANDSAT_LEVEL_2_SERVICE_URL } from '@shared/services/landsat-level-2/config'; -// import MapView from '@arcgis/core/views/MapView'; -// import { getMosaicRule } from '../LandsatLayer/useLandsatLayer'; -// import RasterFunction from '@arcgis/core/layers/support/RasterFunction'; -// import PixelBlock from '@arcgis/core/layers/support/PixelBlock'; -// import GroupLayer from '@arcgis/core/layers/GroupLayer'; -// import { getBandIndexesBySpectralIndex } from '@shared/services/landsat-level-2/helpers'; -// import { SpectralIndex } from '@typing/imagery-service'; - -// type Props = { -// mapView?: MapView; -// groupLayer?: GroupLayer; -// /** -// * name of selected spectral index that will be used to create raster function render the mask layer -// */ -// spectralIndex: SpectralIndex; -// /** -// * object id of the selected Landsat scene -// */ -// objectId?: number; -// /** -// * visibility of the landsat layer -// */ -// visible?: boolean; -// /** -// * user selected mask index range -// */ -// selectedRange: number[]; -// /** -// * color in format of [red, green, blue] -// */ -// color: number[]; -// /** -// * opacity of the mask layer -// */ -// opacity: number; -// /** -// * if true, use the mask layer to clip the landsat scene via blend mode -// */ -// shouldClip: boolean; -// }; - -// type PixelData = { -// pixelBlock: PixelBlock; -// }; - -// export const getRasterFunctionBySpectralIndex = async ( -// spectralIndex: SpectralIndex -// ): Promise => { -// if (!spectralIndex) { -// return null; -// } - -// return new RasterFunction({ -// functionName: 'BandArithmetic', -// outputPixelType: 'f32', -// functionArguments: { -// Method: 0, -// BandIndexes: getBandIndexesBySpectralIndex(spectralIndex), -// }, -// }); -// }; - -// export const MaskLayer: FC = ({ -// mapView, -// groupLayer, -// spectralIndex, -// objectId, -// visible, -// selectedRange, -// color, -// opacity, -// shouldClip, -// }) => { -// const layerRef = useRef(); - -// const selectedRangeRef = useRef(); - -// const colorRef = useRef(); - -// /** -// * initialize landsat layer using mosaic created using the input year -// */ -// const init = async () => { -// const mosaicRule = objectId ? await getMosaicRule(objectId) : null; - -// const rasterFunction = await getRasterFunctionBySpectralIndex( -// spectralIndex -// ); - -// layerRef.current = new ImageryLayer({ -// // URL to the imagery service -// url: LANDSAT_LEVEL_2_SERVICE_URL, -// mosaicRule, -// format: 'lerc', -// rasterFunction, -// visible, -// pixelFilter: maskPixels, -// blendMode: shouldClip ? 'destination-atop' : null, -// effect: 'drop-shadow(2px, 2px, 3px, #000)', -// }); - -// groupLayer.add(layerRef.current); -// }; - -// const maskPixels = (pixelData: PixelData) => { -// const color = colorRef.current || [255, 255, 255]; - -// const { pixelBlock } = pixelData || {}; - -// if (!pixelBlock) { -// return; -// } - -// const { pixels, width, height } = pixelBlock; - -// if (!pixels) { -// return; -// } - -// const p1 = pixels[0]; - -// const n = pixels[0].length; - -// if (!pixelBlock.mask) { -// pixelBlock.mask = new Uint8Array(n); -// } - -// const pr = new Uint8Array(n); -// const pg = new Uint8Array(n); -// const pb = new Uint8Array(n); - -// const numPixels = width * height; - -// const [min, max] = selectedRangeRef.current || [0, 0]; - -// for (let i = 0; i < numPixels; i++) { -// if (p1[i] < min || p1[i] > max || p1[i] === 0) { -// // should exclude pixels that are outside of the user selected range and -// // pixels with value of 0 since those are pixels -// // outside of the mask layer's actual boundary -// pixelBlock.mask[i] = 0; -// continue; -// } - -// pixelBlock.mask[i] = 1; - -// pr[i] = color[0]; -// pg[i] = color[1]; -// pb[i] = color[2]; -// } - -// pixelBlock.pixels = [pr, pg, pb]; - -// pixelBlock.pixelType = 'u8'; -// }; - -// useEffect(() => { -// if (groupLayer && !layerRef.current) { -// init(); -// } -// }, [groupLayer]); - -// useEffect(() => { -// (async () => { -// if (!layerRef.current) { -// return; -// } - -// layerRef.current.rasterFunction = -// (await getRasterFunctionBySpectralIndex(spectralIndex)) as any; -// })(); -// }, [spectralIndex]); - -// useEffect(() => { -// (async () => { -// if (!layerRef.current) { -// return; -// } - -// layerRef.current.mosaicRule = await getMosaicRule(objectId); -// })(); -// }, [objectId]); - -// useEffect(() => { -// if (!layerRef.current) { -// return; -// } - -// layerRef.current.visible = visible; - -// if (visible) { -// // reorder it to make sure it is the top most layer on the map -// groupLayer.reorder(layerRef.current, mapView.map.layers.length - 1); -// } -// }, [visible]); - -// useEffect(() => { -// selectedRangeRef.current = selectedRange; -// colorRef.current = color; - -// if (layerRef.current) { -// layerRef.current.redraw(); -// } -// }, [selectedRange, color]); - -// useEffect(() => { -// if (layerRef.current) { -// layerRef.current.opacity = opacity; -// } -// }, [opacity]); - -// useEffect(() => { -// if (layerRef.current) { -// // layerRef.current.blendMode = shouldClip -// // ? 'destination-atop' -// // : null; - -// if (shouldClip) { -// layerRef.current.blendMode = 'destination-atop'; -// } else { -// // in order to reset the blend mode to null, -// // we need to remove the exiting mask layer and create a new instance of the mask layer -// groupLayer.remove(layerRef.current); -// init(); -// } -// } -// }, [shouldClip]); - -// return null; -// }; diff --git a/src/landsat-explorer/components/PopUp/PopUp.tsx b/src/landsat-explorer/components/PopUp/PopUp.tsx deleted file mode 100644 index c8ccabd0..00000000 --- a/src/landsat-explorer/components/PopUp/PopUp.tsx +++ /dev/null @@ -1,244 +0,0 @@ -// /* Copyright 2024 Esri -// * -// * Licensed under the Apache License Version 2.0 (the "License"); -// * you may not use this file except in compliance with the License. -// * You may obtain a copy of the License at -// * -// * http://www.apache.org/licenses/LICENSE-2.0 -// * -// * Unless required by applicable law or agreed to in writing, software -// * distributed under the License is distributed on an "AS IS" BASIS, -// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// * See the License for the specific language governing permissions and -// * limitations under the License. -// */ - -// // import './PopUp.css'; -// import React, { FC, useCallback, useEffect, useRef } from 'react'; -// import MapView from '@arcgis/core/views/MapView'; -// import Point from '@arcgis/core/geometry/Point'; -// import { useSelector } from 'react-redux'; -// import { -// selectActiveAnalysisTool, -// selectAppMode, -// selectQueryParams4MainScene, -// selectQueryParams4SecondaryScene, -// } from '@shared/store/ImageryScene/selectors'; -// import { selectSwipeWidgetHandlerPosition } from '@shared/store/Map/selectors'; -// import { useDispatch } from 'react-redux'; -// import { popupAnchorLocationChanged } from '@shared/store/Map/reducer'; -// import { getLoadingIndicator, getMainContent } from './helper'; -// import { watch } from '@arcgis/core/core/reactiveUtils'; -// import { -// getPixelValuesFromIdentifyTaskResponse, -// identify, -// } from '@shared/services/landsat-level-2/identify'; -// import { getFormattedLandsatScenes } from '@shared/services/landsat-level-2/getLandsatScenes'; -// import { formatInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone'; -// // import { canBeConvertedToNumber } from '@shared/utils/snippets/canBeConvertedToNumber'; - -// type Props = { -// mapView?: MapView; -// }; - -// type MapViewOnClickHandler = (mapPoint: Point, mousePointX: number) => void; - -// let controller: AbortController = null; - -// /** -// * Check and see if user clicked on the left side of the swipe widget -// * @param swipePosition position of the swipe handler, value should be bewteen 0 - 100 -// * @param mapViewWidth width of the map view container -// * @param mouseX x position of the mouse click event -// * @returns boolean indicates if clicked on left side -// */ -// const didClickOnLeftSideOfSwipeWidget = ( -// swipePosition: number, -// mapViewWidth: number, -// mouseX: number -// ) => { -// const widthOfLeftHalf = mapViewWidth * (swipePosition / 100); -// return mouseX <= widthOfLeftHalf; -// }; - -// export const Popup: FC = ({ mapView }: Props) => { -// const dispatch = useDispatch(); - -// const mode = useSelector(selectAppMode); - -// const analysisTool = useSelector(selectActiveAnalysisTool); - -// const queryParams4MainScene = useSelector(selectQueryParams4MainScene); - -// const queryParams4SecondaryScene = useSelector( -// selectQueryParams4SecondaryScene -// ); - -// const swipePosition = useSelector(selectSwipeWidgetHandlerPosition); - -// const openPopupRef = useRef(); - -// const closePopUp = (message: string) => { -// console.log('calling closePopUp', message); - -// if (controller) { -// controller.abort(); -// } - -// mapView.closePopup(); - -// dispatch(popupAnchorLocationChanged(null)); -// }; - -// openPopupRef.current = async (mapPoint: Point, mousePointX: number) => { -// // no need to show pop-up if in Animation Mode -// if (mode === 'animate') { -// return; -// } - -// // no need to show pop-up when using Trend or Spectral Profile Tool -// if ( -// mode === 'analysis' && -// (analysisTool === 'trend' || analysisTool === 'spectral') -// ) { -// return; -// } - -// dispatch(popupAnchorLocationChanged(mapPoint.toJSON())); - -// mapView.popup.open({ -// title: null, -// location: mapPoint, -// content: getLoadingIndicator(), -// }); - -// try { -// let queryParams = queryParams4MainScene; - -// // in swipe mode, we need to use the query Params based on position of mouse click event -// if (mode === 'swipe') { -// queryParams = didClickOnLeftSideOfSwipeWidget( -// swipePosition, -// mapView.width, -// mousePointX -// ) -// ? queryParams4MainScene -// : queryParams4SecondaryScene; -// } - -// if (controller) { -// controller.abort(); -// } - -// controller = new AbortController(); - -// const res = await identify({ -// point: mapPoint, -// objectId: -// mode !== 'dynamic' -// ? queryParams?.objectIdOfSelectedScene -// : null, -// abortController: controller, -// }); - -// // console.log(res) - -// const features = res?.catalogItems?.features; - -// if (!features.length) { -// throw new Error('cannot find landsat scene'); -// } - -// const sceneData = getFormattedLandsatScenes(features)[0]; - -// const bandValues: number[] = -// getPixelValuesFromIdentifyTaskResponse(res); - -// if (!bandValues) { -// throw new Error('identify task does not return band values'); -// } -// // console.log(bandValues) - -// const title = `${sceneData.satellite} | ${formatInUTCTimeZone( -// sceneData.acquisitionDate, -// 'MMM dd, yyyy' -// )}`; - -// mapView.openPopup({ -// // Set the popup's title to the coordinates of the location -// title: title, -// location: mapPoint, // Set the location of the popup to the clicked location -// content: getMainContent(bandValues, mapPoint), -// }); -// } catch (err: any) { -// console.error( -// 'failed to open popup for landsat scene', -// err.message -// ); - -// // no need to close popup if the user just clicked on a different location before -// // the popup data is returned -// if (err.message.includes('aborted')) { -// return; -// } - -// closePopUp('close because error happened during data fetching'); -// } -// }; - -// const init = async () => { -// // It's necessary to overwrite the default click for the popup -// // behavior in order to display your own popup -// mapView.popupEnabled = false; -// mapView.popup.dockEnabled = false; -// mapView.popup.collapseEnabled = false; -// mapView.popup.alignment = 'bottom-right'; - -// mapView.on('click', (evt) => { -// openPopupRef.current(evt.mapPoint, evt.x); -// }); - -// watch( -// () => mapView.popup.visible, -// (newVal, oldVal) => { -// // this callback sometimes get triggered before the popup get launched for the first time -// // therefore we should only proceed when both the new value and old value if ready -// if (newVal === undefined || oldVal === undefined) { -// return; -// } - -// if (oldVal === true && newVal === false) { -// // need to call closePopup whne popup becomes invisible -// // so the Popup anchor location can also be removed from the map -// closePopUp( -// 'close because mapView.popup.visible becomes false' -// ); -// } -// } -// ); -// }; - -// useEffect(() => { -// if (mapView) { -// init(); -// } -// }, [mapView]); - -// useEffect(() => { -// if (mapView) { -// if (!mapView?.popup?.visible) { -// return; -// } - -// closePopUp('close because app state has changed'); -// } -// }, [ -// mode, -// analysisTool, -// queryParams4MainScene?.objectIdOfSelectedScene, -// queryParams4SecondaryScene?.objectIdOfSelectedScene, -// swipePosition, -// ]); - -// return null; -// }; diff --git a/src/landsat-explorer/components/PopUp/index.ts b/src/landsat-explorer/components/PopUp/index.ts index 7049eb82..cb92293f 100644 --- a/src/landsat-explorer/components/PopUp/index.ts +++ b/src/landsat-explorer/components/PopUp/index.ts @@ -1 +1,16 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + export { PopupContainer as Popup } from './PopupContainer'; diff --git a/src/landsat-explorer/components/TemporalProfileTool/LandsatTemporalProfileChart.tsx b/src/landsat-explorer/components/TemporalProfileTool/LandsatTemporalProfileChart.tsx index 520b9d15..43e57acb 100644 --- a/src/landsat-explorer/components/TemporalProfileTool/LandsatTemporalProfileChart.tsx +++ b/src/landsat-explorer/components/TemporalProfileTool/LandsatTemporalProfileChart.tsx @@ -1,3 +1,18 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import React from 'react'; import { useTemporalProfileDataAsChartData } from './useTemporalProfileDataAsChartData'; import { useCustomDomain4YScale } from './useCustomDomain4YScale'; diff --git a/src/landsat-explorer/components/TemporalProfileTool/TrendChart.tsx b/src/landsat-explorer/components/TemporalProfileTool/TrendChart.tsx deleted file mode 100644 index f22f05ed..00000000 --- a/src/landsat-explorer/components/TemporalProfileTool/TrendChart.tsx +++ /dev/null @@ -1,233 +0,0 @@ -// /* Copyright 2024 Esri -// * -// * Licensed under the Apache License Version 2.0 (the "License"); -// * you may not use this file except in compliance with the License. -// * You may obtain a copy of the License at -// * -// * http://www.apache.org/licenses/LICENSE-2.0 -// * -// * Unless required by applicable law or agreed to in writing, software -// * distributed under the License is distributed on an "AS IS" BASIS, -// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// * See the License for the specific language governing permissions and -// * limitations under the License. -// */ - -// import React, { FC, useMemo } from 'react'; -// // import { useSelector } from 'react-redux'; -// import { LineChartBasic } from '@vannizhang/react-d3-charts'; -// // import { selectQueryParams4SceneInSelectedMode } from '@shared/store/ImageryScene/selectors'; -// import { -// formattedDateString2Unixtimestamp, -// getMonthFromFormattedDateString, -// getYearFromFormattedDateString, -// } from '@shared/utils/date-time/formatDateString'; -// import { VerticalReferenceLineData } from '@vannizhang/react-d3-charts/dist/LineChart/types'; -// import { DATE_FORMAT } from '@shared/constants/UI'; -// import { TemporalProfileData } from '@typing/imagery-service'; -// import { SpectralIndex } from '@typing/imagery-service'; -// import { LineChartDataItem } from '@vannizhang/react-d3-charts/dist/LineChart/types'; -// // import { -// // LANDSAT_SURFACE_TEMPERATURE_MIN_CELSIUS, -// // LANDSAT_SURFACE_TEMPERATURE_MIN_FAHRENHEIT, -// // LANDSAT_SURFACE_TEMPERATURE_MAX_CELSIUS, -// // LANDSAT_SURFACE_TEMPERATURE_MAX_FAHRENHEIT, -// // } from '@shared/services/landsat-level-2/config'; -// // import { calcSpectralIndex } from '@shared/services/landsat-level-2/helpers'; -// // import { selectTrendToolOption } from '@shared/store/TrendTool/selectors'; -// // import { getMonthAbbreviation } from '@shared/utils/date-time/getMonthName'; -// import { TrendToolOption } from '@shared/store/TrendTool/reducer'; -// import { calcTrendLine } from '../../../shared/components/TemporalProfileChart/helpers'; -// import { getMonthAbbreviation } from '@shared/utils/date-time/monthHelpers'; -// import { formatInUTCTimeZone } from '@shared/utils/date-time/formatInUTCTimeZone'; - -// type Props = { -// /** -// * data that will be used to plot the Line chart for the Temporal Profile Tool -// */ -// chartData: LineChartDataItem[]; -// /** -// * custom domain for the Y-Scale of the Line chart -// */ -// customDomain4YScale: number[]; -// /** -// * user selected trend tool option -// */ -// trendToolOption: TrendToolOption; -// /** -// * user selected acquisition year for the 'month-to-month' option -// */ -// acquisitionYear: number; -// /** -// * user selected acquisition date in format of (YYYY-MM-DD) -// * this date will be rendered as a vertical reference line in the trend chart -// */ -// selectedAcquisitionDate: string; -// onClickHandler: (index: number) => void; -// }; - -// export const TemporalProfileChart: FC = ({ -// chartData, -// customDomain4YScale, -// trendToolOption, -// acquisitionYear, -// selectedAcquisitionDate, -// onClickHandler, -// }: Props) => { -// // const trendToolOption = useSelector(selectTrendToolOption); - -// // const queryParams4SelectedScene = -// // useSelector(selectQueryParams4SceneInSelectedMode) || {}; - -// const customDomain4XScale = useMemo(() => { -// if (!chartData.length) { -// return null; -// } - -// if (trendToolOption === 'month-to-month') { -// // use 1 (for Janurary) and 12 (for December) as the x domain -// return [1, 12]; -// } - -// let xMax = chartData[chartData.length - 1].x; - -// // In the "year-to-year" option, we aim to display the indicator line for the selected acquisition date on the chart. -// // To achieve this, we adjust the xMax value to ensure it fits within the chart's boundaries. -// // In the "month-to-month" option, we only display the indicator line for the selected acquisition date if it falls within the user-selected acquisition year. -// if (trendToolOption === 'year-to-year' && selectedAcquisitionDate) { -// xMax = Math.max( -// // user selected acquisition date in Calendar component -// formattedDateString2Unixtimestamp(selectedAcquisitionDate), -// // acquisition date of the last item in the chart data -// chartData[chartData.length - 1].x -// ); -// } - -// const xMin = chartData[0].x; - -// return [xMin, xMax]; -// }, [chartData, selectedAcquisitionDate, trendToolOption]); - -// const trendLineData = useMemo(() => { -// if (!chartData || !chartData.length) { -// return []; -// } - -// const yVals = chartData.map((d) => d.y); - -// const [y1, y2] = calcTrendLine(yVals); - -// return [ -// { -// y1, -// y2, -// }, -// ]; -// }, [chartData]); - -// const getData4VerticalReferenceLine = (): VerticalReferenceLineData[] => { -// if (!selectedAcquisitionDate || !chartData.length) { -// return null; -// } - -// const timestampOfAcquisitionDate = formattedDateString2Unixtimestamp( -// selectedAcquisitionDate -// ); - -// if (trendToolOption === 'month-to-month') { -// // only show vertical reference line if the year of user selected acquisition date -// // is the same as user selected acquisition year of the trend tool -// return getYearFromFormattedDateString(selectedAcquisitionDate) === -// acquisitionYear -// ? [ -// { -// x: getMonthFromFormattedDateString( -// selectedAcquisitionDate -// ), -// tooltip: `Selected Image:
${formatInUTCTimeZone( -// timestampOfAcquisitionDate, -// DATE_FORMAT -// )}`, -// }, -// ] -// : []; -// } - -// return [ -// { -// x: timestampOfAcquisitionDate, -// tooltip: `Selected Image:
${formatInUTCTimeZone( -// timestampOfAcquisitionDate, -// DATE_FORMAT -// )}`, -// }, -// ]; -// }; - -// if (!chartData || !chartData.length) { -// return null; -// } - -// return ( -//
-// { -// if (!val) { -// return ''; -// } - -// if (trendToolOption === 'year-to-year') { -// return formatInUTCTimeZone(val, 'yyyy'); -// } - -// return getMonthAbbreviation(val).slice(0, 1); -// }, -// }} -// verticalReferenceLines={getData4VerticalReferenceLine()} -// horizontalReferenceLines={trendLineData} -// onClick={onClickHandler} -// /> -//
-// ); -// }; diff --git a/src/landsat-explorer/components/TemporalProfileTool/TrendChartContainer.tsx b/src/landsat-explorer/components/TemporalProfileTool/TrendChartContainer.tsx deleted file mode 100644 index 203cfe67..00000000 --- a/src/landsat-explorer/components/TemporalProfileTool/TrendChartContainer.tsx +++ /dev/null @@ -1,131 +0,0 @@ -// /* Copyright 2024 Esri -// * -// * Licensed under the Apache License Version 2.0 (the "License"); -// * you may not use this file except in compliance with the License. -// * You may obtain a copy of the License at -// * -// * http://www.apache.org/licenses/LICENSE-2.0 -// * -// * Unless required by applicable law or agreed to in writing, software -// * distributed under the License is distributed on an "AS IS" BASIS, -// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// * See the License for the specific language governing permissions and -// * limitations under the License. -// */ - -// import { -// selectTrendToolData, -// selectQueryLocation4TrendTool, -// selectAcquisitionYear4TrendTool, -// selectTrendToolOption, -// selectIsLoadingData4TrendingTool, -// selectError4TemporalProfileTool, -// } from '@shared/store/TrendTool/selectors'; -// import React, { FC, useEffect, useMemo, useState } from 'react'; -// import { useDispatch } from 'react-redux'; -// import { useSelector } from 'react-redux'; -// import { TemporalProfileChart } from './TrendChart'; -// import { -// updateAcquisitionDate, -// updateObjectIdOfSelectedScene, -// } from '@shared/store/ImageryScene/thunks'; - -// import { centerChanged } from '@shared/store/Map/reducer'; -// import { batch } from 'react-redux'; -// import { selectQueryParams4MainScene } from '@shared/store/ImageryScene/selectors'; -// import { LineChartDataItem } from '@vannizhang/react-d3-charts/dist/LineChart/types'; - -// type Props = { -// /** -// * data that will be used to plot the Line chart for the Temporal Profile Tool -// */ -// chartData: LineChartDataItem[]; -// /** -// * custom domain for the Y-Scale of the Line chart -// */ -// customDomain4YScale: number[]; -// }; - -// export const TrendChartContainer:FC = ({ -// chartData, -// customDomain4YScale -// }) => { -// const dispatch = useDispatch(); - -// const queryLocation = useSelector(selectQueryLocation4TrendTool); - -// const acquisitionYear = useSelector(selectAcquisitionYear4TrendTool); - -// const temporalProfileData = useSelector(selectTrendToolData); - -// const queryParams4MainScene = useSelector(selectQueryParams4MainScene); - -// const trendToolOption = useSelector(selectTrendToolOption); - -// const isLoading = useSelector(selectIsLoadingData4TrendingTool); - -// const error = useSelector(selectError4TemporalProfileTool); - -// const message = useMemo(() => { -// if (isLoading) { -// return 'fetching temporal profile data'; -// } - -// if (!temporalProfileData.length) { -// return 'Select a scene and click a location within that scene to generate a temporal profile for the selected category.'; -// } - -// return ''; -// }, [temporalProfileData, isLoading]); - -// if (message) { -// return ( -//
-// {isLoading && } -//

{message}

-//
-// ); -// } - -// if (error) { -// return ( -//
-// {error} -//
-// ); -// } - -// return ( -// { -// // select user clicked temporal profile chart data element -// const clickedDataItem = temporalProfileData[index]; - -// if (!clickedDataItem) { -// return; -// } - -// batch(() => { -// // update the center of the map using user selected query location to -// // invoke query that fetches the landsat scenes that intersects with the query location -// dispatch(centerChanged([queryLocation.x, queryLocation.y])); - -// // unselect the selected imagery scene so that a new scene can be selected -// dispatch(updateObjectIdOfSelectedScene(null)); - -// dispatch( -// updateAcquisitionDate( -// clickedDataItem.formattedAcquisitionDate, -// true -// ) -// ); -// }); -// }} -// /> -// ); -// }; diff --git a/src/landsat-explorer/components/TemporalProfileTool/useCustomDomain4YScale.tsx b/src/landsat-explorer/components/TemporalProfileTool/useCustomDomain4YScale.tsx index 8a75b237..262fdfa2 100644 --- a/src/landsat-explorer/components/TemporalProfileTool/useCustomDomain4YScale.tsx +++ b/src/landsat-explorer/components/TemporalProfileTool/useCustomDomain4YScale.tsx @@ -1,3 +1,18 @@ +/* Copyright 2024 Esri + * + * Licensed under the Apache License Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { selectSelectedIndex4TrendTool } from '@shared/store/TrendTool/selectors'; import { SpectralIndex } from '@typing/imagery-service'; import { LineChartDataItem } from '@vannizhang/react-d3-charts/dist/LineChart/types'; diff --git a/src/landsat-explorer/components/ZoomToExtent/ZoomToExtentContainer.tsx b/src/landsat-explorer/components/ZoomToExtent/ZoomToExtentContainer.tsx deleted file mode 100644 index 3a06a7b2..00000000 --- a/src/landsat-explorer/components/ZoomToExtent/ZoomToExtentContainer.tsx +++ /dev/null @@ -1,101 +0,0 @@ -// /* Copyright 2024 Esri -// * -// * Licensed under the Apache License Version 2.0 (the "License"); -// * you may not use this file except in compliance with the License. -// * You may obtain a copy of the License at -// * -// * http://www.apache.org/licenses/LICENSE-2.0 -// * -// * Unless required by applicable law or agreed to in writing, software -// * distributed under the License is distributed on an "AS IS" BASIS, -// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// * See the License for the specific language governing permissions and -// * limitations under the License. -// */ - -// import React, { FC, useMemo, useState } from 'react'; -// import { -// selectAnimationStatus, -// selectIsAnimationPlaying, -// } from '@shared/store/UI/selectors'; -// import MapView from '@arcgis/core/views/MapView'; -// import { useSelector } from 'react-redux'; -// import { ZoomToExtent } from '@shared/components/ZoomToExtent/ZoomToExtent'; -// import { -// selectAppMode, -// selectQueryParams4SceneInSelectedMode, -// } from '@shared/store/ImageryScene/selectors'; -// import { -// getExtentOfLandsatSceneByObjectId, -// // getLandsatFeatureByObjectId, -// } from '@shared/services/landsat-level-2/getLandsatScenes'; - -// type Props = { -// mapView?: MapView; -// }; - -// export const ZoomToExtentContainer: FC = ({ mapView }) => { -// // const animationStatus = useSelector(selectAnimationStatus); - -// const isAnimationPlaying = useSelector(selectIsAnimationPlaying); - -// const mode = useSelector(selectAppMode); - -// const { objectIdOfSelectedScene } = -// useSelector(selectQueryParams4SceneInSelectedMode) || {}; - -// const [isLoadingExtent, setIsLoadingExtent] = useState(false); - -// const disabled = useMemo(() => { -// if (mode === 'dynamic') { -// return false; -// } - -// // zoom button should be disabled not in dynamic mode and there is no selected scene -// if (!objectIdOfSelectedScene) { -// return true; -// } - -// return false; -// }, [mode, objectIdOfSelectedScene, isLoadingExtent]); - -// const zoomToExtentOfSelectedScene = async () => { -// if (!objectIdOfSelectedScene) { -// return; -// } - -// setIsLoadingExtent(true); - -// try { -// const extent = await getExtentOfLandsatSceneByObjectId( -// objectIdOfSelectedScene -// ); -// mapView.extent = extent as any; -// } catch (err) { -// console.log(err); -// } - -// setIsLoadingExtent(false); -// }; - -// return ( -//